Abstract:
A system that produces one or more non-repeating randomizer sequences of up to 2m−1 or more m-bit symbols includes a randomizer circuit that is set up in accordance with a polynomial with primitive elements of GF(2m) as coefficients. The system combines the randomizer sequence with all the symbols of ECC code words that are encoded using a BCH code over GF(2m) to produce a randomized code word. The particular primitive elements used and/or an initial state of one or more registers in the system specifies the particular sequence produced by the system. The initial state of each of the one or more registers is a selected one of the 2m−1 elements of GF(2m), and thus, 2m−1 different sequences may be produced by selecting a different initial state for a given one of the registers. If the coefficients are also selected from, for example, a set of “p” possible values, the system produces p*(2m−1) different sequences. The system may thus be used to encrypt the ECC code word by associating the code word with a particular selected initial state and/or coefficient. The coefficients may be selected to produce randomizer sequences that are predetermined minimum distances away from both the ECC code words.
Abstract:
A system determines the multiplicative inverse of A∈GF(22M) by representing A using a selected basis in which basis elements are squares of one another, and performing various operations that involve raising A to powers of 2 as cyclic rotations of A. The system also performs multiplication operations over GF(22M) or subfields thereof by calculating the coefficients of the product of two elements A and B that are represented using the selected basis as combinations of the coefficients of cyclically rotated versions of A and B. The system further utilizes a relatively small look-up table that contains the multiplicative inverses of selected elements of a subfield of GF(22M). The system may then cyclically rotate the multiplicative inverse values read from the table to produce the multiplicative inverses of the remaining elements of the subfield. Thereafter, as applicable, the system further manipulates the multiplicative inverse of the subfield element, to produce the multiplicative inverse of the desired element of GF(22M). Using the selected basis, elements of GF(22M) that are elements of the subfields have m lowest-order coefficients that are duplicates of the m highest order coefficients. Each element in the look-up table can thus be represented using only m bits, and the table can be entered with m bits.
Abstract:
A method of determining error values including loading an error correction code (ECC) entity having rows representing data symbols, determining an error location for a first row, generating an error syndrome for the first row, determining an erasure constant array from the error location, determining an error location for each of the remaining rows, generating an error syndrome for each of the remaining rows and determining the error values for each of the rows from the corresponding error location and corresponding error syndrome and the constant.
Abstract:
A bidirectional code decoding method and apparatus is presented. It uses a class of Reed-Solomon codes capable of bidirectional decoding, more specifically, those for which a value of L for a Galois Field element &agr;L is chosen as −(R−1)/2 for odd values of R and 2(m−1)−R/2 for even values of R. When the symbols of such codes are received at a decoder in a reverse order (from that in which the symbols are normally received) during a reverse directional read, the decoder produces reverse directional syndromes S˜(−k) and converts the reverse directional syndromes S˜(−k) to syndromes S(k) by multiplying S˜(−k) by &agr;(n−1)k for k=L, L+1, . . . , L+R−1. Alternatively, the decoder adjusts error location values for errors occurring in reverse order code word symbols to correspond to error location values that correspond to an error locations that would be determined if the symbols were to be received in the order in which the symbols are normally received.
Abstract:
An R-stage error correction system constructed in accordance with a distance d Reed-Soloman code performs a modified encoding step to include in the encoding a predetermined non-zero “coset symbol” that results in the encoder producing a code word for recording that includes a coset leader of a distance d-1 code. During the modified encoding step, the coset symbol is included in the value produced by the Rthstage of the encoder during the encoding of a code word data symbol or a first redundancy symbol. The coset symbol is thereafter included in the encoding of the remaining redundancy symbols when the value produced by the last stage is fed back to the preceding stages. During decoding, the system decodes the code word and the included coset leader to generate associated error syndromes. In a last decoding step, the system removes the effects of the included coset leader from the syndromes, by combining a predetermined syndrome value with the syndrome value generated in the Rthstage . If there is no synchronization error and the code word is error-free, the result is a set of all zero syndromes. If there are code word errors but no synchronization error, the system produces a non-zero syndrome pattern that is associated with a correctable number of errors. Otherwise, if there is a synchronization error, the inclusion of the predetermined syndrome value produces a syndrome pattern that is associated with an uncorrectable number of errors.
Abstract:
A modulation encoder includes a base conversion circuit that converts a partitioned input data stream from a first base representation in accordance with the size of groups of bits in the partitioned stream into a second base representation. The base conversion circuit includes a circuit to produce intermediate values of the partitioned stream in the second base representation and a residual value logic circuit that performs modulo-arithmetic on intermediate values modulo the second base representation, and a one's complement logic network fed by the residual value logic to produce output code words. A modulation decoder includes a one's complement logic circuit fed by modulation code words to produces residual value words; and a base conversion circuit that converts residual value words from a first base representation into a second base representation to provide original user data.
Abstract:
An error correcting system transforms a degree-five error locator polynomial .sigma.(x) into the polynomial w(y)=y.sup.5 =b.sub.2 y.sup.2 +b.sub.1 y+b.sub.0, where b.sub.1 =0 or 1, and y=.sigma.(x), and determines the roots of .sigma.(x) based on the roots of w(y). The polynomial w(y) has (2.sup.M).sup.2 solutions over GF(2.sup.M), rather than (2.sup.M).sup.5 solutions, since for any solution with b.sub.2 =h.sub.2, b.sub.0 =h.sub.0 and b.sub.1 =1, there is no such solution with b.sub.2 =h.sub.2, b.sub.0 =h.sub.0 and b.sub.1 =0. Conversely, if there is such a solution with b.sub.1 =0 there are no such solutions with b.sub.1 =1. The system can thus use a table that has 2.sup.2M entries and is addressed by {b.sub.2, b.sub.0 }. The table produces roots y=r.sub.i, i=0, 1, 2, 3, 4, and the system then transforms the roots y=r.sub.i to the roots of .sigma.(x) by calculating x=.sigma..sup.-1 (y). To further reduce the overall table storage needs, the table may include in each entry four roots r.sub.i, i=0, 1, 2, 3, and the system then calculates the associated fifth root r.sub.4 by adding the stored roots. The size of the look-up table can be even further reduced by (i) segmenting the Galois Field (2.sup.M) into conjugate classes; (ii) determining which of the classes contain values of b.sub.0 that correspond to solutions of w(y) with five distinct roots; (iii) representing each of these classes, respectively, by a single value of b.sub.0 '=(b.sub.0).sup.2.spsp.k ; and (iv) including in the table for each class only those solutions that correspond to representative values of b.sub.0 '. The table then contains a relatively small number of sets of roots of each of the classes, with each set associated with a particular value of b.sub.2 '=b.sub.2.sup.2.spsp.k. The roots of w(y) are determined by finding the value of k that produces b.sub.0 ' and b.sub.2 ', entering the look-up table using {b.sub.0 ', b.sub.2 '}, raising the roots r.sub.i ' produced by the table to the power -2.sup.k to produce y=r.sub.i, and then transforming the result into the roots of .sigma.(x) by x=.sigma..sup.-1 (y).
Abstract:
An error correction system includes an encoder that uses a modified Reed-Solomon code to encode w-bit data symbols over GF(2.sup.w+i) and form a preliminary code with d-1 (w+i+1)-bit redundancy symbols. The preliminary code word is modified as necessary to set for each symbol a selected i bits to the same value as a corresponding i+1.sup.st bit. The preliminary code word also includes R pseudo redundancy symbols that are required for decoding the modified code word. The i+1 bits are then truncated from each of the code word symbols, to form a code word with w-bit symbols. The Galois Field GF(2.sup.w+i) is selected such that the elements of the field can be represented by (w+i+1)-bit symbols that are determined by a polynomial h(x) modulo an irreducible polynomial p(x), which isp(x)=x.sup.w+i +x.sup.w+i-1 + . . . +x.sup.1 +x.sup.0,with the polynomial h(x) representing a primitive element. The encoder uses the lower weight representations of the (w+i+1)-bit symbols and performs multiplication and raising the symbols to powers of 2.sup.i as combinations of cyclic shifts and permutations that are readily performed in hardware. A decoder decodes the code word as (w+i+1)-bit symbols to take advantage of the simplified multiplication and exponentiation operations.
Abstract translation:纠错系统包括使用经修改的里德 - 所罗门码对GF(2w + i)上的w位数据符号进行编码并用d-1(w + i + 1)位冗余符号形成初步码的编码器。 根据需要修改初始码字,以将每个符号设置所选择的i位与相应的i + 1位相同的值。 初始码字还包括用于解码修改的码字所需的R伪冗余符号。 然后从每个码字符号中截断i + 1位,以形成具有w位符号的码字。 选择伽罗瓦域GF(2w + i),使得场的元素可以由通过不可约多项式p(x)的多项式h(x)确定的(w + i + 1)位符号来表示, ,其为p(x)= xw + i + xw + i-1 +。 。 。 + x1 + x0,多项式h(x)表示一个原始元素。 编码器使用(w + i + 1)位符号的较低权重表示,并且执行乘法和将符号提升为2i的幂作为在硬件中容易执行的循环移位和排列的组合。 解码器将码字解码为(w + i + 1)位符号,以利用简化的乘法运算和求幂运算。
Abstract:
The encoder/decoder system uses encoder hardware to encode data symbols and form a data code word. To decode, the system uses the same encoder hardware to determine a residue r(x), i.e. ##EQU1## where C.sub.r (x) is the retrieved code word and g(x) is the generator polynomial. If the residue is all zeros, the ECC code word is error-free and the system need not calculate the error syndrome. If the residue is non-zero, the encoder hardware is used, with various switches in different settings, to include certain multipliers in and exclude other multipliers from the further decoding operations of encoding the residue symbols to produce partial error syndromes that are the coefficients of the error syndrome polynomial.
Abstract:
A system determines the error locations of four errors in GF(2.sup.2m) by transforming a degree-four error locator polynomial ultimately into two quadratic equations, finding the solutions of these equations, and from these solutions determining the roots of an error locator polynomial. The system first manipulates the error locator polynomial, which is of the form: .sigma.(x)=.sigma..sub.4 x.sup.4 +.sigma..sub.3 x.sup.3 .sigma..sub.2 x.sup.2 +.sigma..sub.1 x+.sigma..sub.0 �1! into the form: .theta.(y)=y.sup.4 +.theta..sub.2 y.sup.2 +.theta..sub.1 y+.theta..sub.0 �2! where the .theta..sub.i 's are combinations of the coefficients of the terms of the error locator polynomial. The system has thus produced an equation in which the coefficient of the y.sup.3 term is 0. The system then factors .theta.(y), to produce .theta.(y)=(y.sup.2 +t*y+u)*(y.sup.2 +v*y+w), �3! where "*" represents multiplication. It then determines the values of t, u, v and w by equating the coefficients of the two expressions for .theta.(y) and solving first for the variable t, which is equal to v, and then for the variables w and u. Once the values of the variables are determined, the system solves two quadratic equations, one for each of the factors of equation 3. Based on these solutions, the system determines the four error locations associated with the degree-four error locator polynomial.