Modified reed solomon code selection and encoding system
First Claim
1. A method for encoding data symbols into code words using a distance d modified Reed-Solomon error correction code ("ECC") over Galois Field (pm+i) to produce a code word in GF(pm), the method including the steps of:
- A. encoding k-R data symbols to produce d-1 (m+i)-bit ECC symbols and forming a preliminary code word;
B. ascertaining which, if any, of the i selected bits in each of the ECC symbols match a predetermined i-bit truncation pattern, andC.(i) in response to a determination that the selected i bits in each of the ECC symbols match the pattern, forming a data code word by combining the preliminary code word with an additional modifying code word, s, that has R symbols with the I bits set in the i-bit pattern and d-1 symbols with the i bits set to all zeros, to append to the preliminary code word R pseudo redundancy symbols that each have the i-bit predetermined pattern and m all zero bits,(ii) in response to a determination that the selected i bits in at least one of the ECC symbols do not match the pattern, modifying the ECC symbols by combining the symbols with an ECC modifier code word that includes d-1 ECC modifying symbols and R pseudo redundancy symbols, the combination producing a data code word with k-R data symbols, d-1 modified ECC symbols and R pseudo redundancy symbols, all of which have the selected i bits set in the predetermined pattern, and(iii) truncating the i bits from the data code word symbols.
6 Assignments
0 Petitions
Accused Products
Abstract
An error correction system includes an encoder that uses a modified Reed-Solomon code to encode m-bit data symbols over GF(2m+i) and form a preliminary code with d-1 (m+i)-bit ECC symbols. The encoder then modifies the ECC symbols by combining the preliminary code word with a combination of one or more modifying code words to produce modified ECC symbols that have i bits set in a pre-selected pattern. This combination also results in "R" pseudo redundancy symbols that include the i-bit pattern being appended to the modified ECC symbols. The encoder truncates the i-bit pattern from each of the ECC symbols and the pseudo-redundancy symbols, to produce a data code word that has symbols that are elements of GF(2m). To decode the data code word, the decoder fills in the i-bit pattern in each of the data code word symbols and decodes the code word, treating the first R of the modified ECC symbols as code word data, or information, symbols, and the remaining modified ECC symbols and the pseudo redundancy symbols as code word ECC symbols. The system determines for the encoder the generator polynomial, g(x), and the modifying code words by determining a g(x)=(x+αL)*(x+αL+1) . . . *(x+αL+d-2) with L=1, 2, . . . that produces i*(d-1) modifying code words that have only one selected bit of the i-bit pattern set to a one.
-
Citations
14 Claims
-
1. A method for encoding data symbols into code words using a distance d modified Reed-Solomon error correction code ("ECC") over Galois Field (pm+i) to produce a code word in GF(pm), the method including the steps of:
-
A. encoding k-R data symbols to produce d-1 (m+i)-bit ECC symbols and forming a preliminary code word; B. ascertaining which, if any, of the i selected bits in each of the ECC symbols match a predetermined i-bit truncation pattern, and C.(i) in response to a determination that the selected i bits in each of the ECC symbols match the pattern, forming a data code word by combining the preliminary code word with an additional modifying code word, s, that has R symbols with the I bits set in the i-bit pattern and d-1 symbols with the i bits set to all zeros, to append to the preliminary code word R pseudo redundancy symbols that each have the i-bit predetermined pattern and m all zero bits, (ii) in response to a determination that the selected i bits in at least one of the ECC symbols do not match the pattern, modifying the ECC symbols by combining the symbols with an ECC modifier code word that includes d-1 ECC modifying symbols and R pseudo redundancy symbols, the combination producing a data code word with k-R data symbols, d-1 modified ECC symbols and R pseudo redundancy symbols, all of which have the selected i bits set in the predetermined pattern, and (iii) truncating the i bits from the data code word symbols. - View Dependent Claims (2, 3)
-
-
4. A method for selecting a code for use in a modified Reed Solomon encoder that encodes using an error correction code over GF(pm+i) to produce a code word with symbols in GF(pm), the method including the steps of:
-
A. selecting a distance d and setting L, the lowest root, equal to zero; B. using a generator polynomial
space="preserve" listing-type="equation">g(x)=(x+α
.sup.L)*(x+α
.sup.L+1)* . . . (x+α
.sup.L+n-k-1)=x.sup.n-k +g.sub.n-k-1 x.sup.n-k-1 + . . . +g.sub.1 x.sup.1 +g.sub.0 x.sup.0produce a code word c1 '"'"'(x)=g'"'"'n-k xn-k +g'"'"'n-k-1 xn-k-1 + . . . +g'"'"'x+1x0 where ##EQU26## C. cyclically shifting the code word c1 '"'"'(x) to produce a code word c1 (x) that has as a 1 as the coefficient of x-1 ; D. multiplying c1 (x) by α
0, α
1 . . . α
m-1 to produce base code words b0, b1, . . . bm-1 ;E. cyclically shifting c1 (x); F. multiplying c1 (x) by the coefficient of x0 of c1 (x); G. adding the results of steps D and E to produce a code word c2 (x); H. multiplying c2 (x) by α
0, α
1 . . . α
m-1 to produce base code words bm, bm+1 . . . b2m-1I. cyclically shifting c2 (x); J. multiplying c1 (x) by the coefficient of x0 of c2 (x); K. adding the results of steps H and I to produce a code word C3 (x); L. multiplying c3 (x) by α
0, α
1 . . . α
m-1 to produce base code words b2m, b2m+1 . . . b3m-1 ;M. repeating steps H-K for all cw (x), 3≦
w≦
i*m;N. determining if i*(d-1) modifying code words can be produced from linear combinations of the base words b0, b1, . . . b.sub.(m*w)-1 O. if so, selecting g(x) as the generator polynomial; P. if not setting L=L+1 and if L≦
pm+i -1 repeating steps B-N.
-
-
5. A method for determining modifying code words for use in a modified Reed Solomon encoder that uses an error correction code over GF(2t)h+j to produce a code word with symbols in GF(2t)h, the method including the steps of:
-
A. determining an irreducible polynomial of degree h over GF(2t); B. selecting an α
v from GF(2t)h that when multiplied by g(x) produces a code word with one coefficient having an element of one in a predetermined position and the other of the coefficients having 0 as the corresponding element;C. selecting another α
v to produce another code word with a different coefficient having an element of one in a predetermined position and other coefficients having 0 as the corresponding element;D. repeating step C to produce a total of j*(d-1) code words; E. multiplying the code words produced in steps B-D by selected elements of GF(2t)h to produce additional code words that have a selected element of GF(2t)h in the predetermined position.
-
-
6. A system for sending data from one encoder to a selected one of many decoders, each of which uses a modified Reed Solomon code that is associated with a preselected i-bit pattern, the system including:
-
A. an encoder that encodes data over GF(pm+i) and produces data code words in GF(pm) using a modified Reed Solomon Code and one of many preselected i-bit truncation patterns, the encoder encoding data intended for a particular one of the decoders using the i-bit pattern associated with the particular decoder; and B. a plurality of decoders, each of the decoders decoding the data code word using the i-bit pattern that is associated with the decoder, the decoders using patterns that differ from the pattern used to encode the data decoding the data code word to uncorrectable data and the decoder using the same pattern that is used to encode the data decoding the data code word to error-free or correctable data. - View Dependent Claims (7, 8, 9)
-
-
10. A system for storing data to and retrieving data from a disk, the system including:
-
A. an encoder for encoding data over GF(2m+i) and producing data code words over GF(2m), the encoder using one of many preselected i-bit truncation patterns and encoding data to be stored in a particular track on the disk using the i-bit pattern associated with the particular track; and B. means for retrieving data from a track on the disk; and C. a decoder for decoding the retrieved data code word using the i-bit pattern associated with the track from which the data code word was intended to be retrieved, the decoder decoding the data code word to uncorrectable data if the means for retrieving the data retrieves the data from the incorrect track and decoding the data code word to error-free or correctable data if the data code word was retrieved from the correct track. - View Dependent Claims (11, 12, 13)
-
-
14. A method of reducing the modifying code word storage requirements of a system that encodes data over GF(2m+i) to produce code words in GF(2m) using a modified Reed Solomon code, the method including the steps of:
-
A. determining a ground field GF(2t) where GF(2m)=GF(2t)h and GF(2m+i)=GF(2t)h+j and a generator polynomial g(x) of degree t; B. determining an irreducible polynomial of degree h over GF(2t); C. determining t-i+1 modifying code words in GF(2t)h that each have, respectively, an element 1 of GF(2t) 1 in a selected position; D. storing the first coefficient of each of the modifying code words in locations associated, respectively, with the position of a non-zero element in the symbols of GF(2t)h.
-
Specification