Implementing RAID in solid state memory
First Claim
1. A method comprising:
- receiving, at a storage controller, data to be stored in solid state memory comprising multiple solid state physical memory devices;
dividing, by the storage controller, the received data into logical data blocks corresponding to the solid state memory;
assigning, by the storage controller, the logical data blocks to a logical block grouping comprising at least one physical data storage block from two or more of the multiple solid state physical memory devices;
storing the logical data blocks in physical data storage blocks, of the logical block grouping, designated for storage of persisted data within the logical block grouping;
determining, by the storage controller, a code that corresponds to the persisted data stored in the logical block grouping; and
storing, by the storage controller, the code in at least one physical data storage block designated for storage of the code that corresponds to the persisted data stored in the logical block grouping.
7 Assignments
0 Petitions
Accused Products
Abstract
The present disclosure includes systems and techniques relating to implementing fault tolerant data storage in solid state memory. In some implementations, a method includes receiving data to be stored, dividing data into logical data blocks, assigning the blocks to a logical block grouping comprising at least one physical data storage block from two or more of multiple solid state physical memory devices, storing the blocks in physical data storage blocks, determining a code that corresponds to the persisted data, and storing the code that corresponds to the data stored in the logical block grouping. Blocks of damaged stored data may be recovered by identifying the logical data block and logical block grouping corresponding to the damaged physical data storage block, reading the data and the code stored in the identified grouping, and comparing the code to the read data other than the data stored in the damaged block.
-
Citations
20 Claims
-
1. A method comprising:
-
receiving, at a storage controller, data to be stored in solid state memory comprising multiple solid state physical memory devices; dividing, by the storage controller, the received data into logical data blocks corresponding to the solid state memory; assigning, by the storage controller, the logical data blocks to a logical block grouping comprising at least one physical data storage block from two or more of the multiple solid state physical memory devices; storing the logical data blocks in physical data storage blocks, of the logical block grouping, designated for storage of persisted data within the logical block grouping; determining, by the storage controller, a code that corresponds to the persisted data stored in the logical block grouping; and storing, by the storage controller, the code in at least one physical data storage block designated for storage of the code that corresponds to the persisted data stored in the logical block grouping. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. An electronic device for storing data, comprising:
-
an input port configured to receive data; a comparison buffer memory to hold a comparison value; a comparison circuit to compare each of multiple logical blocks, into which the data is divided, to the comparison value to determine a new comparison value to hold in the comparison buffer memory; and a solid state data storage memory to store the logical blocks and a recovery code corresponding to the comparison value, wherein data from at least one of the stored logical blocks is recoverable by combining data from one or more unselected ones of the stored logical blocks and the recovery code. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A method comprising:
-
receiving a request for data stored in solid state memory comprising multiple solid state physical memory devices; identifying, by a storage controller, a logical block grouping for logical data blocks of the requested data, the logical data blocks corresponding to the solid state memory, and the logical block grouping comprising at least one physical data storage block from two or more of the multiple solid state physical memory devices; reading stored data and a code stored in the identified logical block grouping; and comparing the code to the stored data to assess the requested data.
-
Specification