Systems and methods for adaptive error-correction coding
First Claim
Patent Images
1. An apparatus, comprising:
- an error-correcting code (ECC) write module configured to generate a plurality of ECC codeword symbols comprising data of a storage request;
wherein each of the ECC codeword symbols is configured for storage within one or more respective columns of a solid-state storage array, each column comprising one or more solid-state storage elements; and
an adaptive write module configured to stream each of the ECC codeword symbols comprising the data of the storage request to at least one respective column of a set of two or more columns of the solid-state storage array,wherein the ECC write module is configured to generate multi-byte ECC codeword symbols, wherein the adaptive write module is configured to stream portions of the multi-byte ECC codeword symbols to respective solid-state storage elements in each of a plurality of stream cycles, and wherein the adaptive write module is further configured to stream the portions of the multi-byte ECC codeword symbols such that the portions of each multi-byte ECC codeword symbol are streamed to a respective one of the solid-state storage elements.
17 Assignments
0 Petitions
Accused Products
Abstract
A storage module is configured to store data segments, such as error-correcting code (ECC) codewords, within an array comprising a plurality of columns. The ECC codewords may comprise ECC codeword symbols. The ECC symbols of a data segment may be arranged in a horizontal arrangement, a vertical arrangement, a hybrid channel arrangement, and/or vertical stripe arrangement within the array. The individual ECC symbols may be stored within respective columns of the array (e.g., may not cross column boundaries). Data of an unavailable ECC symbol may be reconstructed by use of other ECC symbols stored on other columns of the array.
-
Citations
18 Claims
-
1. An apparatus, comprising:
-
an error-correcting code (ECC) write module configured to generate a plurality of ECC codeword symbols comprising data of a storage request; wherein each of the ECC codeword symbols is configured for storage within one or more respective columns of a solid-state storage array, each column comprising one or more solid-state storage elements; and an adaptive write module configured to stream each of the ECC codeword symbols comprising the data of the storage request to at least one respective column of a set of two or more columns of the solid-state storage array, wherein the ECC write module is configured to generate multi-byte ECC codeword symbols, wherein the adaptive write module is configured to stream portions of the multi-byte ECC codeword symbols to respective solid-state storage elements in each of a plurality of stream cycles, and wherein the adaptive write module is further configured to stream the portions of the multi-byte ECC codeword symbols such that the portions of each multi-byte ECC codeword symbol are streamed to a respective one of the solid-state storage elements. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer program product comprising a non-transitory computer readable storage medium storing computer usable program code executable to perform operations, the operations comprising:
-
generating multi-byte error-correcting code (ECC) codeword symbols; streaming portions of the multi-byte ECC codeword symbols to respective solid-state storage elements in each of a plurality of stream cycles, said streaming comprising streaming each multi-byte ECC codeword symbol to a respective one of the solid-state storage elements; determining a storage location of a plurality of error-correcting code (ECC) codeword symbols comprising requested data; identifying ECC codeword symbols comprising data of one or more other requests stored within different groups of the solid-state storage elements; and scheduling a read operation configured to read the ECC codeword symbols of the requested data and ECC codewords comprising data of the one or more other requests in a single read operation on the solid-state storage elements. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A system, comprising:
-
means for generating a plurality of sets of error-correcting code (ECC) symbols, wherein each set of ECC symbols comprises data of different respective storage requests; means for arranging the sets of ECC symbols for storage within different independent channels, each channel comprising two or more solid-state storage elements; and means for storing the arranged sets of ECC symbols to the different independent channels, comprising means for storing each ECC symbol within a respective one of the solid-state storage elements of a respective independent channel, wherein the means for generating is configured to generate multi-byte ECC codeword symbols, wherein the means for arranging is configured to stream portions of the multi-byte ECC codeword symbols to respective solid-state storage elements in each of a plurality of stream cycles, and wherein the means for arranging is further configured to stream the portions of the multi-byte ECC codeword symbols such that the portions of each multi-byte ECC codeword symbol are streamed to a respective one of the solid-state storage elements. - View Dependent Claims (16, 17, 18)
-
Specification