Apparatus, system, and method for solid-state storage as cache for high-capacity, non-volatile storage

US9519594B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9519594-B2
Application numberUS-201213648009-A
CountryUS
Kind codeB2
Filing dateOct 9, 2012
Priority dateDec 6, 2006
Publication dateDec 13, 2016
Grant dateDec 13, 2016

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.

An apparatus, system, and method are disclosed for solid-state storage as cache for high-capacity, non-volatile storage. The apparatus, system, and method are provided with a plurality of modules including a cache front-end module and a cache back-end module. The cache front-end module manages data transfers associated with a storage request. The data transfers between a requesting device and solid-state storage function as cache for one or more HCNV storage devices, and the data transfers may include one or more of data, metadata, and metadata indexes. The solid-state storage may include an array of non-volatile, solid-state data storage elements. The cache back-end module manages data transfers between the solid-state storage and the one or more HCNV storage devices.

First claim

Opening claim text (preview).

What is claimed is: 1. A method, comprising: maintaining entries in a logical-to-physical mapping index of a storage controller in response to storing data on the solid-state storage medium, wherein the storage controller maintains the entries to associate logical identifiers corresponding to the stored data with respective storage addresses of the stored data on the solid-state storage medium; admitting data of a back-end storage system into a cache on the solid-state storage medium by, caching data of the back-end storage system at respective storage addresses of the solid-state storage medium, and associating logical identifiers of the back-end storage system corresponding to the cached data with respective storage addresses of the cached data on the solid-state storage medium by use of the logical-to-physical mapping index of the storage controller; servicing a request to access data corresponding to a specified logical identifier of the back-end storage system by, determining whether data of the specified logical identifier is cached on the solid-state storage medium based on whether a particular entry for the specified logical identifier exists in the logical-to-physical mapping index of the storage controller, and in response to determining that data of the specified logical identifier is cached on the solid-state storage medium, reading cached data of the specified logical identifier from the solid-state storage medium at a first storage address associated with the particular entry; and updating the particular entry in the logical-to-physical mapping index of the storage controller to associate the specified logical identifier with a second storage address on the solid-state storage medium in response to the storage controller relocating the cached data of the specified logical identifier to the second storage address on the solid-state storage medium, wherein the particular entry is updated while retaining the particular entry in the logical-to-physical mapping index such that the cached data corresponding to the specified logical identifier is retained in the cache during the relocating. 2. The method of claim 1 , further comprising caching the data of the back-end storage system on the solid-state storage medium in a format that associates the cached data with respective logical identifiers of the back-end storage system. 3. The method of claim 1 , further comprising associating sequence indicators with the cached data of the back-end storage system on the solid-state storage medium, wherein the sequence indicators determine an ordered sequence of storage operations performed on the solid-state storage medium by the storage controller. 4. The method of claim 3 , further comprising: caching the data of the back-end storage system on the solid-state storage medium in a format that associates the cached data with respective logical identifiers of the back-end storage system; and reconstructing entries of the logical-to-physical mapping index using the logical identifiers and the sequence indicators associated with the data of the back-end storage system cached on the solid-state storage medium. 5. The method of claim 4 , wherein the logical identifiers of the back-end storage system corresponding to the data of the back-end storage system cached on the solid-state storage device correspond to addresses of the back-end storage system. 6. The method of claim 5 , wherein reconstructing entries of the logical-to-physical mapping index comprises replaying a sequence of changes made to the entries of the logical-to-physical mapping index using the respective logical identifiers and the sequence indicators associated with the data of the back-end storage system cached on the solid-state storage medium. 7. The method of claim 4 , further comprising marking storage divisions of the solid-state storage medium with respective sequence indicators. 8. The method of claim 1 , wherein caching the data of the back-end storage system on the solid-state storage medium further comprises: caching the data of the back-end storage system in error-correcting code (ECC) blocks, wherein the ECC blocks comprise respective portions of the data of the back-end storage system and a corresponding error-correcting code configured to correct errors in the ECC block; storing a first portion of one of the ECC blocks on a first storage element of the solid-state storage device; and storing a second portion of the ECC block on a second storage element of the solid-state storage device. 9. The method of claim 1 , wherein caching the data of the back-end storage system on the solid-state storage medium further comprises: packetizing the data of the back-end storage system into one or more packets, each packet having a header comprising a logical identifier of the back-end storage system corresponding to the data; and storing the one or more packets sequentially on the solid-state storage medium. 10. The method of claim 9 , further comprising: storing a first portion of one of the packets on a first storage element of the solid-state storage medium; and storing a second portion of the packet on a second storage element of the solid-state storage medium. 11. The method of claim 9 , further comprising: storing a first portion of one of the packets on a first storage element of the solid-state storage medium and a second portion of the packet on a second storage element of the solid-state storage medium in response to a single write command. 12. The method of claim 1 , wherein a write execution time of the solid-state storage medium is greater than a read execution time of the solid-state storage medium, and wherein caching the data of the back-end storage system comprises: buffering the data of the back-end storage system on a write data buffer; and storing the buffered data on a logical page, the logical page comprising physical pages on each of a plurality of solid-state storage elements. 13. The method of claim 12 , wherein the solid-state storage elements of the logical page are arranged in parallel, and wherein the buffered data is stored on the plurality of solid-state storage elements comprising the logical page in response to a single write command. 14. The method of claim 12 , wherein the solid-state storage medium is a write-once storage medium, and wherein an erase execution time of the solid-state storage medium is greater than a write execution time of the solid-state storage medium, the method further comprising erasing a logical storage division comprising a plurality of logical pages of the solid- state storage elements in parallel. 15. The method of claim 1 , further comprising: partitioning the solid-state storage medium into a first portion and a second portion; caching the data of the back-end storage system in the first portion of the solid-state storage medium; and storing non-cache data in the second portion of the solid-state medium. 16. The method of claim 15 , wherein the data of the back-end storage system is cached on a storage division of a solid-state storage medium with non-cache data. 17. The method of claim 1 , further comprising storing cache control metadata pertaining to the data of the back-end storage system cached on the solid-state storage medium sequentially with the non-cache data on the solid-state storage device. 18. A non-transitory computer-readable storage medium comprising instructions to cause a computing device to perform a method, the method comprising: caching data of a primary storage system on a cache compris

Assignees

Inventors

Classifications

  • Improving or facilitating administration, e.g. storage management · CPC title

  • Details relating to dynamic memory management · CPC title

  • Data buffering arrangements · CPC title

  • Management of files · CPC title

  • Non-volatile semiconductor memory arrays · 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 US9519594B2 cover?
An apparatus, system, and method are disclosed for solid-state storage as cache for high-capacity, non-volatile storage. The apparatus, system, and method are provided with a plurality of modules including a cache front-end module and a cache back-end module. The cache front-end module manages data transfers associated with a storage request. The data transfers between a requesting device and s…
Who is the assignee on this patent?
Fusion-Io Inc, Sandisk Technologies Llc
What technology area does this patent fall under?
Primary CPC classification G06F12/121. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Dec 13 2016 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).