Apparatus, system, and method for managing a cache
First Claim
Patent Images
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.
6 Assignments
0 Petitions
Accused Products
Abstract
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.
651 Citations
21 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
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. - View Dependent Claims (15, 16)
-
-
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 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, the garbage collection response identifying which valid data of the one or more logical block addresses of the erase block to evict from the at least one cache unit, the cache management information further comprising different virtual storage unit commands from the one or more cache clients, the different virtual storage unit commands for different virtual storage units; and a cache management module that manages the at least one cache unit based on the valid data identified by the garbage collection response from the one or more cache clients. - View Dependent Claims (18, 19)
-
-
20. A system comprising:
-
a solid-state storage device comprising a plurality of virtual storage units, at least one of the virtual storage units comprising a cache unit; a cache controller for the solid-state storage device, the cache controller comprising, a cache interface module that provides access to the plurality of virtual storage units over a cache interface; 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 computer system, 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, the garbage collection response indicating which valid data of the logical block addresses of the erase block to evict from the at least one cache unit; and a cache management module that manages the at least one cache unit based on the cache management information exchanged with the one or more cache clients by evicting the valid data indicated by the garbage collection response from the at least one cache unit based on the garbage collection response. - View Dependent Claims (21)
-
Specification