Reducing writes to solid state drive cache memories of storage controllers
First Claim
1. A system comprisinga storage controller that processes Input/Output (I/O) from a host to communicate with storage devices via a switched fabric, comprising:
- a non-volatile flash cache memory operable to store I/O from the host for writing to the storage devices;
a primary memory that is distinct from the cache memory; and
a memory manager operation to receive data from the host or writing to at least one of the storage devices, to generate a hash key from the received data, and to compare the hash key to hash values that each correspond with a different entry in the cache memory,the memory manager further operable to write the received data to the cache memory if the hash key does not match any of the hash values,the memory manager further operable, if the hash key matched one of the hash values, to add a pointer in the primary memory that points to an entry in the cache memory corresponding with the hash value, instead of writing the received data to the cache.
8 Assignments
0 Petitions
Accused Products
Abstract
Methods and structure are provided for reducing the number of writes to a cache of a storage controller. One exemplary embodiment includes a storage controller that has a non-volatile flash cache memory, a primary memory that is distinct from the cache memory, and a memory manager. The memory manager is able to receive data for storage in the cache memory, to generate a hash key from the received data, and to compare the hash key to hash values for entries in the cache memory. The memory manager can write the received data to the cache memory if the hash key does not match one of the hash values. Also, the memory manager can modify the primary memory instead of writing to the cache if the hash key matches a hash value, in order to reduce the amount of data written to the cache memory.
50 Citations
20 Claims
-
1. A system comprising
a storage controller that processes Input/Output (I/O) from a host to communicate with storage devices via a switched fabric, comprising: -
a non-volatile flash cache memory operable to store I/O from the host for writing to the storage devices; a primary memory that is distinct from the cache memory; and a memory manager operation to receive data from the host or writing to at least one of the storage devices, to generate a hash key from the received data, and to compare the hash key to hash values that each correspond with a different entry in the cache memory, the memory manager further operable to write the received data to the cache memory if the hash key does not match any of the hash values, the memory manager further operable, if the hash key matched one of the hash values, to add a pointer in the primary memory that points to an entry in the cache memory corresponding with the hash value, instead of writing the received data to the cache. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for operating a storage controller that processes Input/Output (I/O) from a host to communicate with storage devices via a switched fabric, comprising:
-
receiving, at the storage controller, data for writing to at least one of the storage devices; generating a hash key at the storage controller from the received data; comparing, at the storage controller, the hash key to hash values that each correspond with a different entry in a non-volatile flash cache memory of the storage controller; if the hash key does not match any of the hash values, writing the received data to the cache memory; and if the hash key matches one of the hash values, adding a pointer in a primary memory of the storage controller that is distinct from the cache memory, wherein the pointer points to an entry in the cache memory corresponding with the hash value. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory computer readable medium embodying programmed instructions which, when executed by a processor, are operable for performing a method of operating a storage controller that processes Input/Output (I/O) from a host to communicate with storage devices via a switched fabric, the method comprising:
-
receiving, at the storage controller, data for writing to at least one of the storage devices; generating a hash key at the storage controller from the received data; comparing, at the storage controller, the hash key to hash values that each correspond with a different entry in a non-volatile flash cache memory of the storage controller; if the hash key does not match any of the hash values, writing the received data to the cache memory; and
if the hash key matches one of the hash values, adding a pointer in a primary memory of the storage controller that is distinct from the cache memory, wherein the pointer points to an entry in the cache memory corresponding with the hash value. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification