Error correction code encoder
First Claim
1. A method for encoding data symbols into code words using a modified Reed-Solomon error correction code ("ECC") over Galois Field (pq) and a generator polynomial g(x) which has q-bit coefficients which are elements of the Galois Field such that a maximum of d errors can be corrected, said method comprising the steps of:
- 1. encoding K data symbols plus L predetermined pseudo data symbols to produce d q-bit ECC symbols;
2. ascertaining whether n selected bits in each of said q-bit ECC symbols match a predetermined truncation pattern, and if any of said selected bits do not match the corresponding bits in said truncation pattern, ascertaining the location of the non-matching bits; and
3. (a) in response to a determination that said selected n bits in each of said q-bit ECC symbols match said pattern, forming a code word containing said K data symbols, said L psuedo data symbols and d ECC symbols, each of which is formed from the q-n bits of a q-bit ECC symbol which are not said selected bits,(b) in response to a determination that said selected n bits in at least one of said q-bit ECC symbols do not match said pattern,
6 Assignments
0 Petitions
Accused Products
Abstract
An encoder encodes a sector of data to produce ECC symbols using a GF(210) code by first appending one or more pseudo data bytes to the sector data bytes. The data string of sector data bytes and pseudo data bytes are then encoded to produce a desired number of 10-bit ECC symbols. Two selected bits from each ECC symbol are compared to a known bit pattern. If the selected bits match the pattern, the bits are truncated and the remaining 8-bit symbols are concatenated with the data string to form a codeword. The codeword bytes can later be decoded, and any error correction performed, by appending the bit pattern as necessary. If the selected bits do not match the pattern, the pseudo data bytes are modified such that encoding the data bytes and the modified pseudo data bytes produce 10-bit ECC symbols with the selected bits matching the bit pattern. The selected bits are then truncated and the remaining 8-bit symbols are concatenated with the data string to form the code-word.
-
Citations
18 Claims
-
1. A method for encoding data symbols into code words using a modified Reed-Solomon error correction code ("ECC") over Galois Field (pq) and a generator polynomial g(x) which has q-bit coefficients which are elements of the Galois Field such that a maximum of d errors can be corrected, said method comprising the steps of:
-
1. encoding K data symbols plus L predetermined pseudo data symbols to produce d q-bit ECC symbols; 2. ascertaining whether n selected bits in each of said q-bit ECC symbols match a predetermined truncation pattern, and if any of said selected bits do not match the corresponding bits in said truncation pattern, ascertaining the location of the non-matching bits; and 3. (a) in response to a determination that said selected n bits in each of said q-bit ECC symbols match said pattern, forming a code word containing said K data symbols, said L psuedo data symbols and d ECC symbols, each of which is formed from the q-n bits of a q-bit ECC symbol which are not said selected bits, (b) in response to a determination that said selected n bits in at least one of said q-bit ECC symbols do not match said pattern, - View Dependent Claims (3, 5, 6, 7, 10, 11, 12, 13, 15)
-
- 2. modifying said predetermined pseudo data symbols to provide L modified pseudo data symbols such that encoding a string consisting of the data symbols and the modified pseudo data symbols will produce q-bit replacement ECC symbols in which said selected n bits of each of said replacement ECC symbols match said pattern, andforming a code word containing said K data symbols, said L modified psuedo data symbols and d ECC symbols, each of which is formed from the q-n bits of a q-bit replacement ECC symbol which are not the selected bits.
-
8. An apparatus for encoding data symbols into code words using a modified Reed-Solomon error correction code ("ECC" over Galois Field (pq) and a generator polynomial g(x) which has q-bit coefficients which are elements of the Galois Field, such that a maximum of d errors can be corrected, said apparatus comprising:
-
A. means for encoding K data symbols plus L predetermined pseudo data symbols to produce d q-bit ECC symbols; B. means for ascertaining whether n selected bits in each of said q-bit ECC symbols match a truncation pattern, and if any of said selected bits do not match the corresponding bits in said truncation pattern, ascertaining the location of the non-matching bits; and C. (1) in response to a determination that said selected n bits in each of said q-bit ECC symbols match said pattern, means for forming a code word containing said K data symbols, said L psuedo data symbols and d EEC symbols, each of which is formed from the q-n bits of a q-bit ECC symbol which are not said selected bits, (2) in response to a determination that said selected n bits in at least one of said q-bit ECC symbols do not match said pattern,
-
-
9. modifying means for modifying said predetermined pseudo data symbols to provide L modified pseudo data symbols such that encoding a string consisting of the data symbols and the modified pseudo data symbols will produce q-bit replacement ECC symbols in which said selected n bits of each of said replacement ECC symbols match said pattern, andmeans for forming a code word containing said K data symbols, said L modified psuedo data symbols and d ECC symbols, each of which is formed from the q-n bits of a q-bit replacement ECC symbol which are not the selected bits.
-
14. A method for encoding data symbols into code words using a modified Reed-Soloman error correction code ("ECC") over Galois Field (pq) and a generator polynomial g(x) which has q-bit coefficients which are elements of the Galois Field such that a maximum of d errors can be corrected, said method comprising the steps of:
-
1. encoding K data symbols plus L predetermined pseudo data symbols to produce d q-bit ECC symbols; 2. ascertaining whether n selected bits in each of said q-bit ECC symbols match a predetermined truncation pattern, and if any of said selected bits do not match the corresponding bits in said truncation pattern, ascertaining the location of the non-matching bits; and 3. (a) in response to a determination that said selected n bits in each of said q-bit ECC symbols match said pattern, forming a code word containing said K data symbols, said L pseudo data symbols and d ECC symbols, each of which is formed from the q-n bits of a q-bit ECC symbol which are not said selected bits, (b) in response to a determination that said selected n bits in at least one of said q-bit ECC symbols do not match said pattern; 1. modifying said predetermined pseudo data symbols to provide L modified pseudo data symbols such that encoding a string consisting of the data symbols and the modified pseudo data symbols will produce q-bit replacement ECC symbols in which said selected n bits of each of said replacement ECC symbols match said pattern by; i. selecting one or more rows of entries in a modifier table for each q-bit ECC symbol in response to the location of each of said selected n bits of said d q-bit ECC symbols which does not match the corresponding bit in said predetermined n-bit pattern, ii. forming L pseudo data symbol modifiers and d q-bit ECC symbol modifiers by adding, modulo p, said selected table rows, such that the column entries in each of said selected table row are added to the corresponding entries in each of the other selected table rows, iii. modifying said L pseudo data symbols and said q-bit ECC symbols by adding, modulo p, said pseudo data symbol modifiers and said ECC symbol modifiers to corresponding ones of said pseudo data symbols and said ECC symbols, and 2. forming a code word containing said K data symbols, said L modified pseudo data symbols and d ECC symbols, each of which is formed from the q-n bits of a q-bit replacement ECC symbol which are not the selected bits. - View Dependent Claims (17, 18)
-
-
16. An apparatus for encoding data symbols into code words using a modified Reed-Soloman error correction code ("ECC") over Galois Field (pq) and a generator polynomial g(x) which has q-bit coefficients which are elements of the Galois Field, such that a maximum of d error can be corrected, said apparatus comprising:
-
A. means for encoding K data symbols plus L predetermined pseudo data symbols to produce d q-bit ECC symbols; B. means for ascertaining whether n selected bits in each of said q-bit ECC symbols match a truncation pattern, and if any of said selected bits do not match the corresponding bits in said truncation pattern, ascertaining the location of the non-matching bits; and C. (1) in response to a determination that said selected n bits in each of said q-bit ECC symbols match said pattern, means for forming a code word containing said K data symbols, said L pseudo data symbols and d ECC symbols, each of which is formed from the q-n bits of a q-bit ECC symbol which are not said selected bits, (2) in response to a determination that said selected n bits in at least one of said q-bit ECC symbols do not match said pattern, means for modifying said q-bit ECC symbols including; 1. modifying means for modifying said predetermined pseudo data symbols to provide L modified pseudo data symbols such that encoding a string consisting of the data symbols and the modified pseudo data symbols will produce q-bit replacement ECC symbols in which said selected n bits of each of said replacement ECC symbols match said pattern, said modifying means including; i. means for selecting one or more rows of entries in a modifier table for each q-bit ECC symbol in response to the location of each of said selected n bits of said d q-bit ECC symbols which does not match the corresponding bit in said predetermined n-bit pattern, ii. means for forming L pseudo data symbol modifiers and d q-bit ECC symbol modifier by adding, modulo p, said selected table rows, such that the column entries in each of said selected table rows are added to the corresponding entries in each of the other selected table rows, iii. means for modifying said L pseudo data symbols and said q-bit ECC symbols by adding, modulo p, said pseudo data symbol modifiers and said ECC symbol modifiers to corresponding ones of said pseudo data symbols and said ECC symbols; and 2. means for forming a code word containing said K data symbols, said L modified pseudo data symbols and d ECC symbols, each of which is formed from the q-n bits of a q-bit replacement ECC symbols which are not the selected bits.
-
Specification