Methods and systems for performing a copy forward operation

US9665497B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9665497-B2
Application numberUS-201615218272-A
CountryUS
Kind codeB2
Filing dateJul 25, 2016
Priority dateDec 11, 2009
Publication dateMay 30, 2017
Grant dateMay 30, 2017

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 a storage system comprising a flash cache that stores a first group of one or more segments and a second group of one or more segments, the method comprising: for the first group of one or more segments and for each block in the first group of one or more segments, determining whether the block is obsolete and determining whether the block is cold, wherein each segment from the first group stores one or more blocks; and copying, from the first group of one or more segments to the second group of one or more segments, all blocks that were neither determined to be obsolete nor determined to be cold, wherein at least one block from the first group of one or more segments was neither determined to be obsolete nor determined to be cold. 2. The method of claim 1 , further comprising, subsequent to copying all blocks that were neither determined to be obsolete nor determined to be cold to the second group of one or more segments, erasing the first group of one or more segments, thereby creating one or more reclaimed segments in the flash cache. 3. The method of claim 1 , wherein an obsolete block contains data that is no longer needed by the flash cache. 4. The method of claim 1 , wherein for each block in the first group of one or more segments, the block is determined to be obsolete if a more recent version of the block is present on the flash cache. 5. The method of claim 1 , further comprising performing a garbage collection routine that determines whether each of the blocks in the first group of one or more segments is obsolete. 6. The method of claim 1 , wherein a cold block contains data that is not likely to be needed by the flash cache. 7. The method of claim 1 , further comprising performing a cache management routine that determines a temperature of each of the blocks in the first group of one or more segments. 8. The method of claim 1 , further comprising performing a cache management routine that determines whether each of the blocks in the first group of one or more segments is cold. 9. The method of claim 1 , wherein a total number of the one or more segments in the second group is less than a total number of the one or more segments in the first group. 10. The method of claim 1 , further comprising storing the first group of one or more segments on a hard disk drive of the storage system. 11. A storage system, comprising (i) a flash cache that stores a first group of one or more segments and a second group of one or more segments, and (ii) a controller communicatively coupled to the flash cache, wherein the controller is configured to: for the first group of one or more segments and for each block in the first group of one or more segments, determine whether the block is obsolete and determine whether the block is cold, wherein each segment from the first group stores one or more blocks; and copy, from the first group of one or more segments to the second group of one or more segments, all blocks that were neither determined to be obsolete nor determined to be cold, wherein at least one block from the first group of one or more segments was neither determined to be obsolete nor determined to be cold. 12. The storage system of claim 11 , wherein the controller is further configured to, subsequent to copying all blocks that were neither determined to be obsolete nor determined to be cold to the second group of one or more segments, erase the first group of one or more segments, thereby creating one or more reclaimed segments in the flash cache. 13. The storage system of claim 11 , wherein an obsolete block contains data that is no longer needed by the flash cache. 14. The storage system of claim 11 , wherein the controller is further configured to determine, for each block in the first group of one or more segments, whether the block is obsolete based on whether a more recent version of the block is present on the flash cache. 15. The storage system of claim 11 , wherein the controller is further configured to perform a garbage collection routine that determines whether each of the blocks in the first group of one or more segments is obsolete. 16. The storage system of claim 11 , wherein a cold block contains data that is not likely to be needed by the flash cache. 17. The storage system of claim 11 , wherein the controller is further configured to perform a cache management routine that determines a temperature of each of the blocks in the first group of one or more segments. 18. The storage system of claim 11 , wherein the controller is further configured to perform a cache management routine that determines whether each of the blocks in the first group of one or more segments is cold. 19. The storage system of claim 11 , wherein a total number of the one or more segments in the second group is less than a total number of the one or more segments in the first group. 20. The storage system of claim 11 , further comprising a hard disk device, wherein the hard disk drive is configured to store the first group of one or more segments.

Assignees

Inventors

Classifications

  • Non-volatile memory · CPC title

  • Mapping of cache memory to specific storage devices or parts thereof · CPC title

  • Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches · CPC title

  • for peripheral storage systems, e.g. disk cache · CPC title

  • Cleaning, compaction, garbage collection, erase control · 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 US9665497B2 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?
Nimble Storage Inc
What technology area does this patent fall under?
Primary CPC classification G06F12/0866. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 30 2017 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 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).