Undo capability for memory devices
AssigneeMicron Technology, Inc.
InventorsTony M. Brewer, David Boles, David Andrew Roberts
Life of this patent
Estimating the term…
Abstract
Disclosed in some examples are methods, systems, memory devices, and machine-readable mediums that allows an application thread to indicate an undo logging operation when calculations are beginning that may need to be rolled back if a crash or other failure occurs. During the undo logging operation, memory writes an identified memory are done to a copy and the original value is preserved. If the undo logging operation is committed, then the copy becomes the correct value and may then be subsequently used in place of the original, or the value stored in the copy is copied to the original. If the undo logging operation is abandoned, the copy is not preserved and the value goes back to the original.
Claims27
A method comprising:
- receiving, from an application, an indication of a start of an undo logging operation, the indication of the start of the undo logging operation identifying a first physical memory block of a memory device, the first physical memory block addressed by one or more memory lines;
- responsive to receiving, from the application, the indication of the start of the undo logging operation:
- receiving a write request for a memory address range assigned to the first physical memory block of the memory device;
- responsive to the write request:
- allocating a second physical memory block of the memory device;
- updating at least one bit of a metadata data structure for the memory address range from indicating that memory requests are to be serviced at the first physical memory block to indicate that memory requests are to be serviced at the second physical memory block;
- and
- servicing the memory request for the memory address range using the second physical memory block;
- and
- determining that the undo logging operation failed;
- and
- responsive to determining that the undo logging operation failed, updating the at least one bit of the metadata data structure for the memory line from indicating that memory requests are to be serviced at the second physical memory block to indicate that memory requests are to be serviced at the first physical memory block.
A computing device comprising:
- a processor;
- a memory, storing instructions, which when executed by the processor causes the computing device to perform operations comprising:
- receiving, from an application, an indication of a start of an undo logging operation, the indication of the start of the undo logging operation identifying a first physical memory block of a memory device, the first physical memory block addressed by one or more memory lines;
- responsive to receiving, from the application, the indication of the start of the undo logging operation:
- receiving a write request for a memory address range assigned to the first physical memory block of the memory device;
- responsive to the write request:
- allocating a second physical memory block of the memory device;
- updating at least one bit of a metadata data structure for the memory address range from indicating that memory requests are to be serviced at the first physical memory block to indicate that memory requests are to be serviced at the second physical memory block;
- and
- servicing the memory request for the memory address range using the second physical memory block;
- and
- determining that the undo logging operation failed;
- and
- responsive to determining that the undo logging operation failed, updating the at least one bit metadata data structure for the memory line from indicating that memory requests are to be serviced at the second physical memory block to indicate that memory requests are to be serviced at the first physical memory block.
A non-transitory machine-readable medium, storing instructions, which when executed by a machine causes the machine to perform operations comprising:
- receiving, from an application, an indication of a start of an undo logging operation, the indication of the start of the undo logging operation identifying a first physical memory block of a memory device, the first physical memory block addressed by one or more memory lines;
- responsive to receiving, from the application, the indication of the start of the undo logging operation:
- receiving a write request for a memory address range assigned to the first physical memory block of the memory device;
- responsive to the write request:
- allocating a second physical memory block of the memory device;
- updating at least one bit of a metadata data structure for the memory address range from indicating that memory requests are to be serviced at the first physical memory block to indicate that memory requests are to be serviced at the second physical memory block;
- and
- servicing the memory request for the memory address range using the second physical memory block;
- and
- determining that the undo logging operation failed;
- and
- responsive to determining that the undo logging operation failed, updating the at least one bit metadata data structure for the memory line from indicating that memory requests are to be serviced at the second physical memory block to indicate that memory requests are to be serviced at the first physical memory block.
Dependencies are inferred from the claim text.