Cache eviction of inactive blocks using heat signature
US-9727481-B2 · Aug 8, 2017 · US
US10216639B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10216639-B2 |
| Application number | US-201815893150-A |
| Country | US |
| Kind code | B2 |
| Filing date | Feb 9, 2018 |
| Priority date | Dec 11, 2009 |
| Publication date | Feb 26, 2019 |
| Grant date | Feb 26, 2019 |
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 device made up of multiple storage media is configured such that one such media serves as a cache for data stored on another of such media. The device includes a controller configured to manage the cache by consolidating information concerning obsolete data stored in the cache with information concerning data no longer desired to be stored in the cache, and erase segments of the cache containing one or more of the blocks of obsolete data and the blocks of data that are no longer desired to be stored in the cache to produce reclaimed segments of the cache.
Opening claim text (preview).
What is claimed is: 1. A method for managing a flash memory cache that stores data in multiple segments, each of the segments including multiple blocks, the method comprising: determining respective temperatures of at least some of the blocks of the segments; selecting one of the segments to be erased based at least in part on the respective temperatures of the blocks included in the selected segment; identifying, among the blocks included in the selected segment, a block to be retained in the flash memory cache based on its temperature; writing a new segment in the flash memory cache that includes the identified block; and erasing the selected segment from the flash memory cache. 2. The method of claim 1 , wherein the respective temperatures of the at least some of the blocks include hot and cold classifications; and in selecting the one of the segments to be erased, the selection is based at least in part on how many of the blocks of the selected segment are cold. 3. The method of claim 2 , wherein, in identifying the block to be retained in the flash memory cache, the block is identified because it is hot. 4. The method of claim 2 , wherein none of the blocks of the selected segment that are cold are included in the new segment, and wherein the selecting comprises selecting more than one and fewer than all of the segments to be erased based at least in part on the respective temperatures of the at least some of the blocks. 5. The method of claim 1 , wherein, in selecting the one of the segments to be erased, the selection is based at least in part on how many of the blocks of the selected segment are obsolete. 6. The method of claim 1 , wherein obsolete blocks of the selected segment are not included in the new segment. 7. The method of claim 1 , wherein the respective temperatures of the at least some of the blocks include hot and cold classifications; and the method further comprises identifying all blocks of the selected segment that are hot and non-obsolete as to be retained in the flash memory cache. 8. The method of claim 1 , wherein the determining of the respective temperatures of the at least some of the blocks of the segments includes receiving temperature information from a cache management routine of a controller that controls the flash memory cache. 9. The method of claim 8 , wherein the temperature information is received by a garbage collection routine of the controller. 10. A storage system comprising: a flash memory cache that stores data in multiple segments, each of the segments including multiple blocks; and a controller communicatively coupled to the flash memory cache, wherein the controller is configured to: determine respective temperatures of at least some of the blocks of the segments; select one of the segments to be erased based at least in part on the respective temperatures of the blocks included in the selected segment; identify, among the blocks included in the selected segment, a block to be retained in the flash memory cache based on its temperature; write a new segment in the flash memory cache that includes the identified block; and erase the selected segment from the flash memory. 11. The storage system of claim 10 , wherein the respective temperatures of the at least some of the blocks include hot and cold classifications; and the controller is to, in selecting the one of the segments to be erased, select the one of the segments based at least in part on how many of the blocks of the selected segment are cold. 12. The storage system of claim 11 , wherein the controller is to, in identifying the block to be retained in the flash memory cache, identify the block because it is hot. 13. The storage system of claim 11 , wherein none of the blocks of the selected segment that are cold are included in the new segment. 14. The storage system of claim 10 , wherein the controller is to, in selecting the one of the segments to be erased, select the segment based at least in part on how many of the blocks of the selected segment are obsolete. 15. The storage system of claim 10 , wherein obsolete blocks of the selected segment are not included in the new segment. 16. The storage system of claim 10 , wherein the respective temperatures of the at least some of the blocks include hot and cold classifications; and the controller is to identify all blocks of the selected segment that are hot and non-obsolete as to be retained in the flash memory cache. 17. The storage system of claim 10 , wherein the controller is to determine the respective temperatures of the at least some of the blocks of the segments by executing a cache management routine. 18. A storage system comprising: a flash memory cache that stores data in multiple segments, each of the segments including multiple blocks; and a controller communicatively coupled to the flash memory cache, wherein the controller is configured to: determine respective temperatures of each non-obsolete block of the blocks of the segments, select one or more of the segments to be erased based at least in part on the respective temperatures of the non-obsolete blocks included in the segments; identify, among the blocks included in the selected segments, one or more blocks that are non-obsolete and that have a hot temperature as blocks to be retained in the flash memory cache; write one or more new segments in the flash memory cache that collectively include the one or more blocks identified as to be retained and that exclude non-identified blocks of the selected segments; and erase the selected one or more segments from the flash memory cache. 19. The storage system of claim 18 , wherein the controller is configured to, in selecting the one or more segments to be erased, select the one or more segments based at least in part on how many of the blocks of each of the one or more segments are obsolete. 20. The storage system of claim 18 , wherein the controller is configured to, in selecting the one or more segments to be erased, select the one or more segments based on how many garbage blocks the one or more segments have, where the garbage blocks include those blocks that are obsolete and those blocks that have a cold temperature.
Non-volatile semiconductor memory arrays · CPC title
Garbage collection, i.e. reclamation of unreferenced memory · CPC title
Hybrid memory, e.g. using both volatile and non-volatile memory · CPC title
in block erasable memory, e.g. flash memory · CPC title
Space efficiency improvement · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.