Efficient data storage in storage device arrays
First Claim
Patent Images
1. A method for data storage, comprising:
- encoding data with an inter-device Error Correction Code (ECC), and sending the encoded data for storage on two or more storage devices;
encoding the data to be stored on each of the storage devices, and which has been encoded with the inter-device ECC, with an intra-device ECC, and storing the data encoded with the inter-device and intra-device ECCs on the storage device; and
after storing the data, retrieving and outputting at least part of the stored data by decoding the intra-device and inter-device ECCs, while using information related to one of the intra-device and inter-device ECCs in decoding the other of the intra-device and inter-device ECCs,wherein encoding the data with the inter-device ECC comprises dividing the data into pages comprising data bits, computing a respective parity bit for the data bits in each bit position within the pages, sending the pages for storage on respective ones of the storage devices, and sending the parity bits for storage on another of the storage devices.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for data storage includes encoding data with an inter-device Error Correction Code (ECC), and sending the encoded data for storage on two or more storage devices. The data to be stored on each of the storage devices, and which has been encoded with the inter-device ECC, is encoded with an intra-device ECC, and the data encoded with the inter-device and intra-device ECCs is stored on the storage device. After storing the data, at least part of the stored data is retrieved and output by decoding the intra-device and inter-device ECCs, while using information related to one of the intra-device and inter-device ECCs in decoding the other of the intra-device and inter-device ECCs.
591 Citations
28 Claims
-
1. A method for data storage, comprising:
-
encoding data with an inter-device Error Correction Code (ECC), and sending the encoded data for storage on two or more storage devices; encoding the data to be stored on each of the storage devices, and which has been encoded with the inter-device ECC, with an intra-device ECC, and storing the data encoded with the inter-device and intra-device ECCs on the storage device; and after storing the data, retrieving and outputting at least part of the stored data by decoding the intra-device and inter-device ECCs, while using information related to one of the intra-device and inter-device ECCs in decoding the other of the intra-device and inter-device ECCs, wherein encoding the data with the inter-device ECC comprises dividing the data into pages comprising data bits, computing a respective parity bit for the data bits in each bit position within the pages, sending the pages for storage on respective ones of the storage devices, and sending the parity bits for storage on another of the storage devices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method for data storage, comprising:
-
encoding data with an inter-device Error Correction Code (ECC), and sending the encoded data for storage on two or more storage devices; encoding the data to be stored on each of the storage devices, and which has been encoded with the inter-device ECC, with an intra-device ECC, and storing the data encoded with the inter-device and intra-device ECCs on the storage device; and after storing the data, retrieving and outputting at least part of the stored data by decoding the intra-device and inter-device ECCs, while using information related to one of the intra-device and inter-device ECCs in decoding the other of the intra-device and inter-device ECCs, wherein decoding the intra-device ECC comprises computing soft metrics of respective bits of the at least part of the data, and wherein the information comprises the soft metrics.
-
-
14. A method for data storage, comprising:
-
encoding data with an inter-device Error Correction Code (ECC), and sending the encoded data for storage on two or more storage devices; encoding the data to be stored on each of the storage devices, and which has been encoded with the inter-device ECC, with an intra-device ECC, and storing the data encoded with the inter-device and intra-device ECCs on the storage device; and after storing the data, retrieving and outputting at least part of the stored data by decoding the intra-device and inter-device ECCs, while using information related to one of the intra-device and inter-device ECCs in decoding the other of the intra-device and inter-device ECCs, wherein the information is related to the inter-device ECC, and wherein decoding the intra-device and inter-device ECCs comprises sending the information to a given storage device, and decoding the intra-device ECC in the given storage device responsively to the information.
-
-
15. Apparatus for data storage, comprising:
-
two or more storage devices, each of which is configured to encode data with an intra-device Error Correction Code (ECC) and to store the encoded data on the storage device; a controller, which is configured to encode input data with an inter-device ECC, to send the input data encoded with the inter-device ECC to the two or more storage devices, for subsequent encoding with the intra-device ECC and storage; and a joint decoder, which is configured to retrieve and output at least part of the stored input data by decoding the intra-device and inter-device ECCs, while using information related to one of the intra-device and inter-device ECCs in decoding the other of the intra-device and inter-device ECCs, wherein the controller is configured to encode the input data with the inter-device ECC by dividing the input data into pages comprising data bits, computing a respective parity bit for the data bits in each bit position within the pages, sending the pages for storage on respective ones of the storage devices, and sending the parity bits for storage on another of the storage devices. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. Apparatus for data storage, comprising:
-
two or more storage devices, each of which is configured to encode data with an intra-device Error Correction Code (ECC) and to store the encoded data on the storage device; a controller, which is configured to encode input data with an inter-device ECC, to send the input data encoded with the inter-device ECC to the two or more storage devices, for subsequent encoding with the intra-device ECC and storage; and a joint decoder, which is configured to retrieve and output at least part of the stored input data by decoding the intra-device and inter-device ECCs, while using information related to one of the intra-device and inter-device ECCs in decoding the other of the intra-device and inter-device ECCs, wherein the storage devices are configured to compute soft metrics of respective bits of the at least part of the input data, and wherein the information comprises the soft metrics.
-
-
28. Apparatus for data storage, comprising:
-
two or more storage devices, each of which is configured to encode data with an intra-device Error Correction Code (ECC) and to store the encoded data on the storage device; a controller, which is configured to encode input data with an inter-device ECC, to send the input data encoded with the inter-device ECC to the two or more storage devices, for subsequent encoding with the intra-device ECC and storage; and a joint decoder, which is configured to retrieve and output at least part of the stored input data by decoding the intra-device and inter-device ECCs, while using information related to one of the intra-device and inter-device ECCs in decoding the other of the intra-device and inter-device ECCs, wherein the information is related to the inter-device ECC, and wherein the joint decoder is configured to send the information to a given storage device, and to cause the given storage device to decode the intra-device ECC responsively to the information.
-
Specification