Error correction coding over multiple memory pages
First Claim
1. A method for data storage, comprising:
- encoding each of a plurality of data items individually using a first Error Correction Code (ECC) to produce respective a plurality of encoded data items, and storing the plurality of encoded data items in a memory;
encoding the plurality of data items jointly using a second ECC, so as to produce a code word of the second ECC, and storing only a part of the code word in the memory;
recalling the stored plurality of encoded data items from the memory and decoding the first ECC in order to reconstruct the plurality of data items; and
upon a failure to reconstruct a given data item of the plurality of data items from a respective encoded data item of the plurality of encoded data items by decoding the first ECC, reconstructing the given data item of the plurality of data items based on the part of the code word of the second ECC and on a subset of the plurality of encoded data items, wherein the subset of the plurality of encoded data items does not include the respective encoded data item.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for data storage includes encoding each of multiple data items individually using a first Error Correction Code (ECC) to produce respective encoded data items. The encoded data items are stored in a memory. The multiple data items are encoded jointly using a second ECC, so as to produce a code word of the second ECC, and only a part of the code word is stored in the memory. The stored encoded data items are recalled from the memory and the first ECC is decoded in order to reconstruct the data items. Upon a failure to reconstruct a given data item from a respective given encoded data item by decoding the first ECC, the given data item is reconstructed based on the part of the code word of the second ECC and on the encoded data items other than the given encoded data item.
655 Citations
20 Claims
-
1. A method for data storage, comprising:
-
encoding each of a plurality of data items individually using a first Error Correction Code (ECC) to produce respective a plurality of encoded data items, and storing the plurality of encoded data items in a memory; encoding the plurality of data items jointly using a second ECC, so as to produce a code word of the second ECC, and storing only a part of the code word in the memory; recalling the stored plurality of encoded data items from the memory and decoding the first ECC in order to reconstruct the plurality of data items; and upon a failure to reconstruct a given data item of the plurality of data items from a respective encoded data item of the plurality of encoded data items by decoding the first ECC, reconstructing the given data item of the plurality of data items based on the part of the code word of the second ECC and on a subset of the plurality of encoded data items, wherein the subset of the plurality of encoded data items does not include the respective encoded data item. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A data storage apparatus, comprising:
-
an interface, which is configured to communicate with a memory; and a processing unit, which is configured to encode each of a plurality of data items individually using a first Error Correction Code (ECC) so as to produce respective plurality of encoded data items, to store the plurality of encoded data items in the memory, to encode the plurality of data items jointly using a second ECC so as to produce a code word of the second ECC, to store only a part of the code word in the memory, to recall the stored plurality of encoded data items from the memory and decode the first ECC in order to reconstruct the plurality of data items, and, upon a failure to reconstruct a given data item from a respective data item of the plurality of encoded data item by decoding the first ECC, to reconstruct the given data item based on the part of the code word of the second ECC and on a subset of the plurality of encoded data items, wherein the subset of the plurality of encoded data items does not include the given encoded data item. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification