Apparatus, system, and method for reconfiguring an array of storage elements
First Claim
Patent Images
1. An apparatus, comprising:
- a flash memory device comprising an array of storage elements; and
a storage controller configured to;
write a first data stripe across a first plurality of the storage elements, the first data stripe comprising a first set of Error Correcting Code (ECC) data chunks and first parity information associated with the first set of ECC data chunks, the first parity information being written to a first parity storage element of the first plurality of storage elements; and
write a second data stripe across a second plurality of the storage elements, the second data stripe comprising a second set of ECC data chunks and second parity information associated with the second set of ECC data chunks, the second parity information being written to a second parity storage element of the second plurality of storage elements;
wherein the position of the first parity storage element relative to the storage elements comprising first ECC data chunks is different to the position of the second parity storage element relative to the storage elements comprising second ECC data chunks.
10 Assignments
0 Petitions
Accused Products
Abstract
Apparatuses, systems, and methods are disclosed for reconfiguring an array of storage elements. A storage element error module is configured to determine that one or more storage elements in an array of storage elements are in error. An array of storage elements stores a first ECC block and first parity data generated from the first ECC block. A data reconfiguration module is configured to generate a second ECC block comprising at least a portion of data of a first ECC block. A new configuration storage module is configured to store a second ECC block and associated second parity data on fewer storage elements than a number of storage elements in an array.
198 Citations
11 Claims
-
1. An apparatus, comprising:
-
a flash memory device comprising an array of storage elements; and a storage controller configured to; write a first data stripe across a first plurality of the storage elements, the first data stripe comprising a first set of Error Correcting Code (ECC) data chunks and first parity information associated with the first set of ECC data chunks, the first parity information being written to a first parity storage element of the first plurality of storage elements; and write a second data stripe across a second plurality of the storage elements, the second data stripe comprising a second set of ECC data chunks and second parity information associated with the second set of ECC data chunks, the second parity information being written to a second parity storage element of the second plurality of storage elements; wherein the position of the first parity storage element relative to the storage elements comprising first ECC data chunks is different to the position of the second parity storage element relative to the storage elements comprising second ECC data chunks. - View Dependent Claims (2, 3, 4)
-
-
5. A method comprising a storage controller:
-
writing a first data stripe across a first plurality of storage elements of a flash memory, the first data stripe comprising a first set of Error Correction Code (ECC) data chunks and first parity information associated with the first set of ECC data chunks, the first parity information being written to a first parity storage element; and writing a second data stripe across a second plurality of the storage elements, the second data stripe comprising a second set of ECC data chunks and second parity information associated with the second set of ECC data chunks, the second parity information being written to a second parity storage element; wherein the position of the first parity storage element relative to the storage elements comprising first ECC data chunks is different to the position of the second parity storage element relative to the storage elements comprising second ECC data chunks. - View Dependent Claims (6, 7)
-
-
8. A non-transitory computer-readable medium comprising instructions which, when executed, cause a processor to:
-
write a first data stripe across a first plurality of storage elements of a flash memory, the first data stripe comprising a first set of Error Correction Code (ECC) data chunks and first parity information associated with the first set of ECC data chunks, the first parity information being written to a first parity storage element; and write a second data stripe across a second plurality of the storage elements, the second data stripe comprising a second set of ECC data chunks and second parity information associated with the second set of ECC data chunks, the second parity information being written to a second parity storage element; wherein the position of the first parity storage element relative to the storage elements comprising first ECC data chunks is different to the position of the second parity storage element relative to the storage elements comprising second ECC data chunks. - View Dependent Claims (9, 10)
-
-
11. An apparatus, comprising:
-
a flash memory device comprising N banks of storage elements, where N>
1; anda storage controller configured to; write a first data stripe across a first plurality of the storage elements, wherein each of the first plurality of storage elements is comprised within a respective one of the N banks of storage elements, the first data stripe comprising a first set of error correcting code (ECC) data chunks and first parity information associated with the first set of ECC data chunks, the first parity information being written to a storage element comprised within a first bank of storage elements; and write a second data stripe across a second plurality of the storage elements, wherein each of the second plurality of storage elements is comprised within a respective one of the N banks of storage elements, the second data stripe comprising a second set of ECC data chunks and second parity information associated with the second set of ECC data chunks, the second parity information being written to a storage element comprised within a second bank of storage elements, wherein the second bank of storage elements is different to the first bank of storage elements.
-
Specification