Versioning data stored on memory device
AssigneeMicron Technology, Inc.
InventorsDavid Andrew Roberts, Sean Stephen Eilert
Life of this patent
Estimating the term…
Abstract
Various embodiments enable versioning of data stored on a memory device, where the versioning allows the memory device to maintain different versions of data within a set of physical memory locations (e.g., a row) of the memory device. In particular, some embodiments provide for a memory device or a memory sub-system that uses versioning of stored data to facilitate a rollback operation/behavior, a checkpoint operation/behavior, or both. Additionally, some embodiments provide for a transactional memory device or a transactional memory sub-system that uses versioning of stored data to enable rollback of a memory transaction, commitment of a memory transaction, or handling of a read or write command associated with respect to a memory transaction.
Claims20
A system comprising:
- a memory device comprising a row buffer;
- and
- a processing device, operatively coupled to the memory device, the processing device configured to perform operations comprising:
- receiving, from a host system, a memory command associated with a memory address, the memory address mapping to a set of physical memory locations of the memory device, the row buffer of the memory device being configured to store a plurality of data units for the set of physical memory locations and to store selection data and rollback data, the selection data and the rollback data being read from the set of physical memory locations into the row buffer at a same time the plurality of data units is read from the set of physical memory locations into the row buffer;
- and
- in response to receiving the memory command, performing a data versioning operation on the set of physical memory locations using the row buffer and at least one of the selection data or the rollback data, the selection data and the rollback data being associated with the set of physical memory locations, the selection data comprising a current selection value that identifies a currently-selected data unit of the plurality of data units, and the rollback data comprising a current rollback value that indicates whether the currently-selected data unit has been written to since a last time a checkpoint operation was performed on the set of physical memory locations.
A method comprising:
- receiving, from a host system and at a memory sub-system controller of a memory sub-system, a first memory command to write host data to a memory address, the memory address mapping to a set of physical memory locations of a memory device of the memory sub-system, and a row buffer of the memory device being configured to store a plurality of data units for the set of physical memory locations and to store selection data and rollback data, the selection data and the rollback data being read from the set of physical memory locations into the row buffer at a same time the plurality of data units is read from the set of physical memory locations into the row buffer;
- and
- in response to receiving the first memory command:
- reading a current rollback value of the rollback data associated with the set of physical memory locations;
- determining, based on the current rollback value, that a currently-selected data unit of the plurality of data units has not been written to since a last time a checkpoint operation was performed on the set of physical memory locations, the currently-selected data unit being identified by a current selection value of the selection data, the selection data being associated with the set of physical memory locations;
- and
- writing the host data to the row buffer based on the determining that the currently-selected data unit has not been written to since the last time the checkpoint operation was performed on the set of physical memory locations.
At least one non-transitory machine-readable storage medium comprising instructions that, when executed by a processing device, cause the processing device to perform operations comprising:
- receiving, from a host system, a first memory command to read requested data from a memory address, the first memory command indicating that the first memory command is part of a memory transaction associated with the memory address, the memory address mapping to a set of physical memory locations of a memory device, and a row buffer of the memory device being configured to store a plurality of data units for the set of physical memory locations and to store selection data and rollback data, the selection data and the rollback data being read from the set of physical memory locations into the row buffer at a same time the plurality of data units is read from the set of physical memory locations into the row buffer;
- and
- in response to receiving the first memory command:
- reading a current rollback value of the rollback data associated with the set of physical memory locations;
- determining, based on the current rollback value, that a currently-selected data unit of the plurality of data units is dirty, the currently-selected data unit being identified by a current selection value of the selection data, the selection data being associated with the set of physical memory locations;
- and
- reading the requested data from the row buffer based on the determining that the currently-selected data unit is dirty.
Dependencies are inferred from the claim text.