Dynamic tuning of garbage threshold to reduce unreclaimable garbage overhead
US-2024126689-A1 · Apr 18, 2024 · US
US9747202B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-9747202-B1 |
| Application number | US-201313829235-A |
| Country | US |
| Kind code | B1 |
| Filing date | Mar 14, 2013 |
| Priority date | Mar 14, 2013 |
| Publication date | Aug 29, 2017 |
| Grant date | Aug 29, 2017 |
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.
A storage module and method for identifying hot and cold data are provided. The storage module can be removable from a host or can be embedded in a host. In one embodiment, a request to store data in a logical block address (LBA) of a memory of the storage module is received. A physical block associated with the LBA is determined, and it is also determined whether the physical block stores hot or cold data. A last-known open block is then selected, wherein the last-known open block is either hot or cold depending on whether the physical block stores hot or cold data. If space is available in the last-known open block, the data is written to the last-known open block.
Opening claim text (preview).
What is claimed is: 1. A method for identifying hot and cold data, the method comprising: performing the following in a storage module which is operatively in communication with a host: receiving a request from the host to store data in a logical block address (LBA) of a memory of the storage module; determining a first physical block associated with the LBA based on a logical-to-physical address map; determining how recently the first physical block was last written to; determining whether the LBA is hot or cold based on how recently the first physical block was last written to, wherein a size of the first physical block is larger than a size of the LBA; in response to determining that the LBA is hot, storing the data in a second physical block, wherein the second physical block is designated for hot data; and in response to determining that the LBA is cold, storing the data in a third physical block, wherein the third physical block is designated for cold data; wherein, irrespective of whether the LBA is determined to be hot or cold, the data is stored in a different physical block than the one determined using the logical-to-physical address map. 2. The method of claim 1 further comprising: selecting a last-known open block, wherein the last-known open block is either hot or cold depending on whether the first physical block stores hot or cold data; if space is available in the last-known open block, writing the data from the host to the last-known open block; and if space is not available in the last-known open block, writing the data from the host to a newly-allocated block. 3. The method of claim 1 , wherein the memory module determines how recently the first physical block was last written to by analyzing a list of most-recently open blocks. 4. The method of claim 3 , wherein a threshold for determining which blocks on the list are hot or cold is static. 5. The method of claim 3 , wherein a threshold for determining which blocks on the list are hot or cold is dynamic. 6. The method of claim 1 further comprising updating the logical-to-physical address map to associate the LBA with the second or third physical block, as appropriate. 7. The method of claim 1 further comprising performing garbage collection on the blocks in the memory while maintain a temperature of data being compacted. 8. The method of claim 7 further comprising, during garbage collection, placing a block with available pages at a beginning of a list. 9. A storage module comprising: a memory; and a processor in communication with the memory, wherein the processor is configured to: receive a request from the host to store data in a logical block address (LBA) of the memory; determine a first physical block associated with the LBA based on a logical-to-physical address map; determine how recently the first physical block was last written to; determine whether the LBA is hot or cold based on how recently the first physical block was last written to, wherein a size of the first physical block is larger than a size of the LBA; in response to determining that the LBA is hot, store the data in a second physical block, wherein the second physical block is designated for hot data; and in response to determining that the LBA is cold, store the data in a third physical block, wherein the third physical block is designated for cold data; wherein, irrespective of whether the LBA is determined to be hot or cold, the data is stored in a different physical block than the one determined using the logical-to-physical address map. 10. The storage module of claim 9 , wherein the processor is further configured to: select a last-known open block, wherein the last-known open block is either hot or cold depending on whether the first physical block stores hot or cold data; if space is available in the last-known open block, write the data from the host to the last-known open block; and if space is not available in the last-known open block, write the data from the host to a newly-allocated block. 11. The storage module of claim 9 , wherein the memory module determines how recently the first physical block was last written to by analyzing a list of most-recently open blocks. 12. The storage module of claim 11 , wherein a threshold for determining which blocks on the list are hot or cold is static. 13. The storage module of claim 11 , wherein a threshold for determining which blocks on the list are hot or cold is dynamic. 14. The storage module of claim 9 , wherein the processor is further configured to update the logical-to-physical address map to associate the LBA with the second or third physical block, as appropriate. 15. The storage module of claim 9 , wherein the processor is further configured to perform garbage collection on the blocks in the memory while maintain a temperature of data being compacted. 16. The storage module of claim 15 , wherein the processor is further configured to, during garbage collection, place a block with available pages at a beginning of a list. 17. A method for identifying hot and cold data, the method comprising: performing the following in a host having embedded therein a host controller and a storage module: receiving a request to store data in a logical block address (LBA) of a memory of the storage module; determining a first physical block associated with the LBA based on a logical-to-physical address map; determining how recently the first physical block was last written to; determining whether the LBA is hot or cold based on how recently the first physical block was last written to, wherein a size of the first physical block is larger than a size of the LBA; in response to determining that the LBA is hot, storing the data in a second physical block, wherein the second physical block is designated for hot data; and in response to determining that the LBA is cold, storing the data in a third physical block, wherein the third physical block is designated for cold data; wherein, irrespective of whether the LBA is determined to be hot or cold, the data is stored in a different physical block than the one determined using the logical-to-physical address map. 18. The method of claim 17 further comprising: selecting a last-known open block, wherein the last-known open block is either hot or cold depending on whether the first physical block stores hot or cold data; if space is available in the last-known open block, writing the data from the host to the last-known open block; and if space is not available in the last-known open block, writing the data to a newly-allocated block. 19. The method of claim 17 , wherein determining how recently the first physical block was last written to is performed by analyzing a list of most-recently open blocks. 20. The method of claim 19 , wherein a threshold for determining which blocks on the list are hot or cold is static. 21. The method of claim 19 , wherein a threshold for determining which blocks on the list are hot or cold is dynamic. 22. The method of claim 17 further comprising updating the logical-to-physical address map to associate the last-known open block with the LBA. 23. The method of claim 17 further comprising performing garbage collection on the blocks in the memory while maintain a temperature of data being compacted. 24. The method of claim 23 further comprising, during garbage collection, placing a block with available pages at a beginning
Cleaning, compaction, garbage collection, erase control · CPC title
Garbage collection, i.e. reclamation of unreferenced memory · CPC title
Latency reduction · CPC title
with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list · CPC title
Logical to physical mapping or translation of blocks or pages · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.