Identification of blocks to be retained in a cache based on temperature

US10216639B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10216639-B2
Application numberUS-201815893150-A
CountryUS
Kind codeB2
Filing dateFeb 9, 2018
Priority dateDec 11, 2009
Publication dateFeb 26, 2019
Grant dateFeb 26, 2019

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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.

Assignees

Inventors

Classifications

  • 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

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10216639B2 cover?
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…
Who is the assignee on this patent?
Hewlett Packard Entpr Dev Lp
What technology area does this patent fall under?
Primary CPC classification G06F12/0891. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 26 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).