A device controller and method for performing a plurality of write transactions atomically within a nonvolatile data storage device
US-2017160933-A1 · Jun 8, 2017 · US
US11099980B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11099980-B2 |
| Application number | US-201815975584-A |
| Country | US |
| Kind code | B2 |
| Filing date | May 9, 2018 |
| Priority date | May 9, 2018 |
| Publication date | Aug 24, 2021 |
| Grant date | Aug 24, 2021 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
One embodiment provides a method comprising maintaining, on a storage unit, mapping data between a first set of logical addresses (e.g., logical block addresses or LBAs) viewed by a host and a first set of physical addresses (e.g., physical block addresses or PBAs) and a second set of physical addresses of the storage unit. A first logical address (e.g., LBA) of the first set of logical addresses corresponds to a first physical address (e.g., PBA) of the first set of physical addresses that maintains current data for the first logical address. The first logical address further corresponds to a second physical address (e.g., PBA) of the second set of physical addresses that maintains prior data for the first logical address. The method further comprises receiving, at the storage unit, a command from the host to perform a multi-device operation involving the first logical address. The operation is performed atomically.
Opening claim text (preview).
What is claimed is: 1. A method comprising: maintaining, on a storage unit, mapping data among a first set of logical addresses viewed by a host and a first set of physical addresses and a second set of physical addresses of the storage unit, wherein a first logical address of the first set of logical addresses corresponds to a first physical address of the first set of physical addresses that maintains current data for the first logical address, the first logical address further corresponds to a second physical address of the second set of physical addresses that maintains prior data for the first logical address, the mapping data is included in extended mapping metadata for a logical block address, the extended mapping data being maintained in an internal translation layer of the storage unit, the storage unit comprises a plurality of data units and a plurality of parity units, and the storage unit implements a parity erasure code; and receiving, at the storage unit, a write command, issued in parallel to a data unit of the plurality of data units and a parity unit of the plurality of parity units based on an update write flag, from the host to perform a multi-device operation involving the first logical address, wherein the operation uses a host aware update write protocol that keeps the parity erasure code intact, the operation is performed atomically, and the write command uses a plurality of parameters that includes the update write flag that indicates whether the write command is an update write operation. 2. The method of claim 1 , wherein the current data comprises a current data block, and the prior data comprises a prior data block. 3. The method of claim 1 , wherein the current data comprises a current parity block, and the prior data comprises a prior parity block. 4. The method of claim 1 , wherein the extended mapping metadata comprises a first field for a logical address as seen by the host and a second field that includes a prior version copy of data for the logical block address, the plurality of parameters further includes a transaction sequence number, and the internal translation layer implements a first function for determining a physical block addresses of the storage unit associated with a logical block address, and a second function for retrieving a free physical block address of the storage unit for write operations. 5. The method of claim 4 , wherein the extended mapping metadata for the first logical address identifies and tracks one or more prior version copies for the first logical address, the extended mapping metadata for the first logical address comprises, for each prior version copy for the first logical address, a corresponding physical address maintaining the prior version copy, and the storage unit comprises a copy-on-write (COW) storage unit. 6. The method of claim 4 , wherein the extended mapping metadata includes a fourth field for a host-defined metadata indicative of each storage unit involved in the update write operation. 7. The method of claim 4 , wherein the extended mapping metadata includes a third field for a transaction sequence number for the update write operation, and the plurality of parameters further includes a transaction record that comprises a list of each affected data unit requiring an update write to successfully complete a write command and each logical block address that corresponds to each affected data unit. 8. The method of claim 7 , wherein the operation is complete in response to the host receiving from the storage unit the following notifications that indicate multi-device atomicity: a notification confirming that an update write on the storage unit is complete, a notification confirming that a global write complete flag is set, and a notification confirming that an entry in the extended mapping metadata that corresponds to the first logical address and includes the transaction sequence number is removed from the extended mapping metadata. 9. A system comprising: a memory that stores instructions; and at least one processor configured to execute the instructions to: maintain, on a storage unit, mapping data among a first set of logical addresses viewed by a host and a first set of physical addresses and a second set of physical addresses of the storage unit, wherein a first logical address of the first set of logical addresses corresponds to a first physical address of the first set of physical addresses that maintains current data for the first logical address, the first logical address further corresponds to a second physical address of the second set of physical addresses that maintains prior data for the first logical address, the mapping data is included in extended mapping metadata for a logical block address, the extended mapping data being maintained in an internal translation layer of the storage unit, the storage unit comprises a plurality of data units and a plurality of parity units, and the storage unit implements a parity erasure code; and receive, at the storage unit, a write command, issued in parallel to a data unit of the plurality of data units and a parity unit of the plurality of parity units based on an update write flag, from the host to perform a multi-device operation involving the first logical address, wherein the operation uses a host aware update write protocol that keeps the parity erasure code intact, the operation is performed atomically, and the write command uses a plurality of parameters that includes the update write flag that indicates whether the write command is an update write operation. 10. The system of claim 9 , wherein the current data comprises a current data block, and the prior data comprises a prior data block. 11. The system of claim 9 , wherein the current data comprises a current parity block, and the prior data comprises a prior parity block. 12. The system of claim 9 , wherein the extended mapping metadata comprises a first field for a logical address as seen by the host and a second field that includes a prior version copy of data for the logical block address, the plurality of parameters further includes a transaction sequence number, and the internal translation layer implements a first function for determining a physical block addresses of the storage unit associated with a logical block address, and a second function for retrieving a free physical block address of the storage unit for write operations. 13. The system of claim 12 , wherein the extended mapping metadata for the first logical address identifies and tracks one or more prior version copies for the first logical address, the extended mapping metadata for the first logical address comprises, for each prior version copy for the first logical address, a corresponding physical address maintaining the prior version copy, and the storage unit comprises a copy-on-write (COW) storage unit. 14. The system of claim 12 , wherein the extended mapping metadata includes a fourth field for a host-defined metadata indicative of each storage unit involved in the update write operation. 15. The system of claim 12 , wherein the extended mapping metadata includes a third field for a transaction sequence number for the update write operation, and the plurality of parameters further includes a transaction record that comprises a list of each affected data unit requiring an update write to successfully complete a write command and each logical block address that corresponds to each affected data unit. 16. The system of claim 15 , wherein the operation is complete in response to the host receiving from the storage unit the following notifications t
Reliability improvement, data loss prevention, degraded operation etc · CPC title
in block erasable memory, e.g. flash memory · CPC title
Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title
Logical to physical mapping or translation of blocks or pages · CPC title
Management of blocks · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.