Apparatus, system, and method for managing a cache

US9251086B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9251086-B2
Application numberUS-201213357534-A
CountryUS
Kind codeB2
Filing dateJan 24, 2012
Priority dateJan 24, 2012
Publication dateFeb 2, 2016
Grant dateFeb 2, 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 managing a cache. A cache interface module provides access to a plurality of virtual storage units of a solid-state storage device over a cache interface. At least one of the virtual storage units comprises a cache unit. A cache command module exchanges cache management information for the at least one cache unit with one or more cache clients over the cache interface. A cache management module manages the at least one cache unit based on the cache management information exchanged with the one or more cache clients.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: providing access to a plurality of virtual storage units of a solid-state storage device over a cache interface, at least one of the virtual storage units comprising a cache unit; exchanging cache management information for the at least one cache unit with one or more cache clients over the cache interface, the one or more cache clients comprising a user application executing on a host device, wherein exchanging cache management information comprises sending a garbage collection request to the one or more cache clients and receiving a garbage collection response from the one or more cache clients, the garbage collection request identifying one or more logical block addresses of an erase block targeted for a garbage collection process that recovers physical capacity of invalid data from the erase block and copies valid data from the erase block to a different erase block, the garbage collection response identifying which valid data of the one or more logical block addresses for data of the erase block to evict from the at least one cache unit; and managing the at least one cache unit based on the cache management information exchanged with the one or more cache clients by marking the valid data identified by the garbage collection response as invalid and evicting the invalid data from the at least one cache unit based on the garbage collection response as part of the garbage collection process. 2. The method of claim 1 , wherein the cache management information comprises a command received from the one or more cache clients over the cache interface, the command comprising one or more of a cache admission command, a cache eviction command, a cache prefetch command, a cache destage command, a quality-of-service command, a physical capacity allotment command, a TRIM command, and a data priority command. 3. The method of claim 1 , wherein the cache management information comprises a message sent to the one or more cache clients over the cache interface, the message comprising one or more of an eviction request and an available storage capacity report. 4. The method of claim 1 , wherein the different virtual storage unit commands comprise one or more of a create command, a delete command, an enumerate command, a TRIM command, and a resize command. 5. The method of claim 1 , wherein the at least one cache unit comprises a plurality of cache units operating simultaneously on the solid-state storage device. 6. The method of claim 5 , wherein at least a portion of the plurality of cache units each present a distinct sparse logical address space to the one or more cache clients. 7. The method of claim 6 , wherein the distinct sparse logical address spaces are mapped to a single sparse logical address space of the solid-state storage device. 8. The method of claim 5 , wherein data from each of the plurality of cache units is intermingled in a sequential log-based writing structure of the solid-state storage device. 9. The method of claim 1 , wherein the cache management information comprises a selection from the one or more cache clients of a logical address space type for the at least one cache unit, the logical address space type comprising one of a sparse logical address space and a contiguous block address space. 10. The method of claim 1 , further comprising allocating physical storage capacity of the solid-state storage device according to a prioritization of the plurality of virtual storage units. 11. The method of claim 1 , further comprising, reducing storage capacity of the solid-state storage device over time in response to data errors; and notifying the one or more cache clients, over the cache interface, of the reduced storage capacity of the solid-state storage device. 12. The method of claim 1 , wherein a single mapping structure maps logical block addresses for the plurality of virtual storage units to physical storage addresses on solid-state storage media of the solid-state storage device. 13. The method of claim 12 , wherein the plurality of virtual storage units comprise a plurality of cache units and the single mapping structure directly maps the logical block addresses for the plurality of cache units to logical block addresses of one or more backing store devices, the single mapping structure comprising a fully associative relationship between logical block addresses of the one or more backing store devices and the physical storage addresses on the solid-state storage media of the solid-state storage device. 14. A method comprising: providing access to a plurality of virtual storage units of a solid-state storage device over an interface, the plurality of virtual storage units each presenting a distinct sparse logical address space, wherein data from each of the plurality of virtual storage units is intermingled in a sequential log-based writing structure of the solid-state storage device, the plurality of virtual storage units comprising a plurality of cache units; mapping, using a single mapping structure, logical block addresses for the plurality of virtual storage units to physical storage addresses on solid-state storage media of the solid-state storage device, such that the distinct sparse logical address spaces of the plurality of virtual storage units share the single mapping structure, the distinct sparse logical address spaces comprising more addresses than a physical storage capacity of the solid-state storage device, the single mapping structure directly mapping the logical block addresses for the plurality of cache units to logical block addresses of one or more backing store devices, the single mapping structure comprising a fully associative relationship between logical block addresses of the one or more backing store devices and the physical storage addresses on the solid-state storage media of the solid-state storage device; and satisfying input/output (“I/O”) requests for the plurality of virtual storage units using the single mapping structure. 15. The method of claim 14 , wherein the plurality of virtual storage units comprise a plurality of cache units and the single mapping structure directly maps the logical block addresses for the plurality of cache units to logical block addresses of one or more backing store devices, the single mapping structure comprising a fully associative relationship between logical block addresses of the one or more backing store devices and the physical storage addresses on the solid-state storage media of the solid-state storage device. 16. The method of claim 14 , further comprising, exchanging management information for the plurality of virtual storage units with one or more clients over the interface; and managing the plurality of virtual storage units based on the management information exchanged with the one or more clients. 17. An apparatus comprising: a solid-state storage device comprising a plurality of virtual storage units; a cache interface module that provides access to the plurality of virtual storage units of the solid-state storage device over a cache interface, at least one of the virtual storage units comprising a cache unit, wherein data from each of the plurality of virtual storage units is intermingled in a sequential log-based writing structure of the solid-state storage device; a cache command module that exchanges cache management information for the at least one cache unit with one or more cache clients over the cache interface, the one or more cache clients comprising a user application executing on a host device, wherein exchanging cache management

Assignees

Inventors

Classifications

  • Caches characterised by their organisation or structure · CPC title

  • Data transfer between cache memory and other subsystems, e.g. storage devices or host systems · 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 US9251086B2 cover?
An apparatus, system, and method are disclosed for managing a cache. A cache interface module provides access to a plurality of virtual storage units of a solid-state storage device over a cache interface. At least one of the virtual storage units comprises a cache unit. A cache command module exchanges cache management information for the at least one cache unit with one or more cache clients …
Who is the assignee on this patent?
Peterson Jim, Talagala Nisha, Wipfel Robert, and 4 more
What technology area does this patent fall under?
Primary CPC classification G06F12/0893. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 02 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).