System, Method and Computer-Readable Medium for Providing Selective Protection and Endurance Improvements in Flash-Based Cache
First Claim
1. A method for operating a cache memory supported by solid-state data storage modules, the method comprising:
- defining a layout for distributing data in a cache memory supported by N solid-state memory elements, where N is an integer;
initializing, in a cache controller, a line fill count and a write count;
receiving a data block in a cache interface, the contents of the data block designated for storage in the cache memory;
determining, in a cache controller, if the content of the data block is presently stored in a primary data store coupled to the cache interface or if the content is from a host system in anticipation of a subsequent transfer to the primary data store; and
when the content of the data block is presently stored in the primary data store,storing the data block in the cache memory in response to the line fill count and incrementing the line fill count,otherwise,storing the data block in the cache memory in response to the write count and incrementing the write count.
6 Assignments
0 Petitions
Accused Products
Abstract
A cache controller includes a cache memory distributed across multiple solid-state storage units in which cache line fill operations are applied sequentially in a defined manner and write operations are protected by a RAID-5 (striping plus parity) scheme upon a stripe reaching capacity. The cache store is responsive to data from a storage controller managing a primary data store. The cache store arranges the data differently based on the origin or type of data received at the cache interface. Line fill operations are placed in the cache memory without generating and storing corresponding parity information. When a sufficient number of write operations fill strips that constitute a full stripe are present in cache store, a corresponding parity strip is generated and stored in a strip location designated for storage of the parity information.
-
Citations
20 Claims
-
1. A method for operating a cache memory supported by solid-state data storage modules, the method comprising:
-
defining a layout for distributing data in a cache memory supported by N solid-state memory elements, where N is an integer; initializing, in a cache controller, a line fill count and a write count; receiving a data block in a cache interface, the contents of the data block designated for storage in the cache memory; determining, in a cache controller, if the content of the data block is presently stored in a primary data store coupled to the cache interface or if the content is from a host system in anticipation of a subsequent transfer to the primary data store; and when the content of the data block is presently stored in the primary data store, storing the data block in the cache memory in response to the line fill count and incrementing the line fill count, otherwise, storing the data block in the cache memory in response to the write count and incrementing the write count. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A data storage system, comprising:
-
a cache memory supported by N solid-state storage modules, where N is an integer; and a controller coupled to the cache memory, the controller including processing logic that is configurable to define and manage data transfers to and from the cache memory, the data transfers as managed by the controller including successive line fill operations to designated solid-state storage devices distributed among the N solid-state storage elements in a defined manner. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A computer-readable medium having stored thereon, in computer executable non-transitory form, instructions that, when executed on a processing system of a data storage controller, direct the data storage controller to:
-
identify when a data block designated for storage in a cache memory, supported by N solid-state storage modules, where N is an integer, is presently stored in a primary data store coupled to the cache memory; and when the content of the data block is presently stored in the primary data store, locate the data block in the cache memory in response to a line fill count, otherwise, locate the data block in the cache memory in response to a write count, wherein each data block is placed in a defined logically sequential order within each respective solid-state storage module. - View Dependent Claims (19, 20)
-
Specification