Efficient garbage collection in the presence of block dependencies
US-2019272229-A1 · Sep 5, 2019 · US
US11294827B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11294827-B2 |
| Application number | US-201916703643-A |
| Country | US |
| Kind code | B2 |
| Filing date | Dec 4, 2019 |
| Priority date | Sep 12, 2019 |
| Publication date | Apr 5, 2022 |
| Grant date | Apr 5, 2022 |
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.
The present disclosure generally relates to methods of operating storage devices. A controller of the storage device is configured to retrieve a first command to write data to one or more first logical blocks of a first zone, and direct memory access (DMA) read and write the data associated with the first command to the first logical blocks. The first logical blocks are between a zone starting point of the first zone and a zone capacity of the first zone. The controller is configured to retrieve a second command to write data to one or more second logical blocks of the first zone, and DMA read and write the data associated with the second command to the second logical blocks. The second logical blocks are between the zone starting and the zone capacity of the first zone, and the first logical blocks are non-sequential to the second logical blocks.
Opening claim text (preview).
What is claimed is: 1. A storage device, comprising: a media unit, wherein a capacity of the media unit is divided into a plurality of zones, each zone comprising a plurality of logical blocks; and a controller coupled to the media unit, the controller configured to: retrieve a first command to write data to a first zone and direct memory access (DMA) read data associated with the first command; identify one or more first logical blocks of the first zone to write the data associated with the first command to, wherein the one or more first logical blocks are between a zone starting logical block address of the first zone and a zone capacity of the first zone; write the data associated with the first command to the one or more first logical blocks of the first zone; retrieve a second command to write data to the first zone and DMA read data associated with the second command; identify one or more second logical blocks of the first zone to write the data associated with the second command to, wherein the one or more second logical blocks are between the zone starting logical block address of the first zone and the zone capacity of the first zone, and wherein the one or more second logical blocks are spaced from the one or more first logical blocks by one or more empty logical blocks; write the data associated with the second command to the one or more second logical blocks of the first zone while the one or more empty logical blocks remain empty after DMA reading the data associated with the second command; and retrieve one or more additional commands to write data to the first zone and write the data associated with the one or more additional commands to one or more available logical blocks within the first zone, sequentially or non-sequentially, until the first zone reaches the zone capacity, wherein upon the first zone reaching the zone capacity, erasure of all data stored within the first zone is scheduled. 2. The storage device of claim 1 , wherein the controller is further configured to: write the data associated with the first command prior to retrieving the second command to write data. 3. The storage device of claim 2 , wherein the controller is further configured to: return a first completion entry to a completion queue of a host device after writing the data associated with the first command; and return a second completion entry to the completion queue of the host device after writing the data associated with the second command. 4. The storage device of claim 3 , wherein the controller is further configured to: update one or more tracking tables after writing the data associated with the first command to indicate that the one or more first logical blocks are unavailable to write data associated with subsequent commands to after returning the first completion entry; and update the one or more tracking tables after writing the data associated with the second command to indicate that the one or more second logical blocks are unavailable to write data associated with subsequent commands to after returning the second completion entry. 5. The storage device of claim 4 , wherein the one or more tracking tables comprise a first tracking table stored in the storage device and a second tracking table stored in the host device. 6. The storage device of claim 5 , wherein the host device selects the one or more second blocks for storing the data associated with the second command using the second tracking table. 7. The storage device of claim 1 , wherein a host device selects the one or more first blocks for storing the data associated with the first command. 8. A storage device, comprising: a media unit, wherein a capacity of the media unit is divided into a plurality of zones, each zone comprising a plurality of logical blocks; and a controller coupled to the media unit, the controller configured to: retrieve and read a first command to write data to one or more first logical blocks in a first zone, wherein the one or more first logical blocks are between a zone starting logical block address of the first zone and a zone capacity of the first zone; write the data associated with the first command to the one or more first logical blocks of the first zone and to a first location in the media unit directly after reading the first command; retrieve and read a second command to write data to one or more second logical blocks in the first zone, wherein the one or more second logical blocks are between the zone starting logical block address of the first zone and the zone capacity of the first zone, and wherein the one or more second logical blocks are non-sequential to the first one or more logical blocks; write the data associated with the second command to the one or more second logical blocks of the first zone and to a second location in the media unit while one or more empty logical blocks remain empty between the one or more first logical blocks and the one or more second logical blocks after reading the second command, the second location being located sequential to the first location; and retrieve one or more additional commands to write data to the first zone and write the data associated with the one or more additional commands to one or more available logical blocks within the first zone, sequentially or non-sequentially, until the first zone reaches the zone capacity, wherein upon the first zone reaching the zone capacity, erasure of all data stored within the first zone is scheduled. 9. The storage device of claim 8 , wherein prior to retrieving the one or more additional commands, the controller is further configured to: retrieve a third command to write data to one or more third logical blocks in the first zone, wherein the one or more third logical blocks are between the zone starting logical block address of the first zone and the zone capacity of the first zone, and wherein the one or more third logical blocks are non-sequential to the one or more second logical blocks; and write the data associated with the third command to the one or more third logical blocks of the first zone and to a third location in the media unit, the third location being located sequential to the second location. 10. The storage device of claim 8 , wherein the data associated with the second command is written to two or more second logical blocks, and wherein the two or more second logical blocks are non-sequential to one another. 11. The storage device of claim 8 , wherein a host device selects the one or more first blocks for storing the data associated with the first command and the one or more second logical blocks for storing the data associated with the second command. 12. The storage device of claim 8 , wherein prior to retrieving the one or more additional commands, the controller is further configured to: return a first completion entry to a completion queue of a host device after writing the data associated with the first command; and update one or more tracking tables after writing the data associated with the first command to indicate that the one or more first logical blocks are unavailable to write data associated with subsequent commands to. 13. The storage device of claim 12 , wherein at least one of the one or more tracking tables is stored in the media unit of the storage device. 14. A storage system, comprising: a host device, the host device comprising a first tracking table; and a storage system, wherein the storage system comprises: a media unit, wherein a capacity of the media unit is divided into a plurality of zones, each zone comprising a plurality of logical blocks, and wherein the media unit store
Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title
Single storage device · CPC title
for peripheral access to main memory, e.g. direct memory access [DMA] · CPC title
Cleaning, compaction, garbage collection, erase control · CPC title
Improving or facilitating administration, e.g. storage management · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.