US6378105B1 - Reed-Solomon multiplication method - Google Patents

Reed-Solomon multiplication method Download PDF

Info

Publication number
US6378105B1
US6378105B1 US09/317,810 US31781099A US6378105B1 US 6378105 B1 US6378105 B1 US 6378105B1 US 31781099 A US31781099 A US 31781099A US 6378105 B1 US6378105 B1 US 6378105B1
Authority
US
United States
Prior art keywords
sequence
computing
error control
checkbytes
primitive
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
US09/317,810
Inventor
Kevin Chiang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zoran Corp
Oak Technology Inc
CSR Technology Inc
Original Assignee
Oak Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oak Technology Inc filed Critical Oak Technology Inc
Priority to US09/317,810 priority Critical patent/US6378105B1/en
Assigned to OAK TECHNOLOGY, INC. reassignment OAK TECHNOLOGY, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CHIANG, KEVIN
Application granted granted Critical
Publication of US6378105B1 publication Critical patent/US6378105B1/en
Assigned to ZINC ACQUISITION CORPORATION reassignment ZINC ACQUISITION CORPORATION MERGER (SEE DOCUMENT FOR DETAILS). Assignors: OAK TECHNOLOGY, INC.
Assigned to OAK TECHNOLOGY, INC. reassignment OAK TECHNOLOGY, INC. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: ZINC ACQUISITION CORPORATION
Assigned to ZORAN CORPORATION reassignment ZORAN CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: OAK TECHNOLOGY, INC.
Assigned to CSR TECHNOLOGY INC. reassignment CSR TECHNOLOGY INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ZORAN CORPORATION
Assigned to CSR TECHNOLOGY INC. reassignment CSR TECHNOLOGY INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ZORAN CORPORATION
Assigned to ZORAN CORPORATION reassignment ZORAN CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: OAK TECHNOLOGY, INC.
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes

Definitions

  • a Reed-Solomon error control procedure typically requires matrix multiplication, or its equivalent, of large row and/or column matrices as part of the syndrome processing. These multiplications require a relatively large gate count in an HDL (hardware description language) formulation and add substantially to the time required for such processing.
  • HDL hardware description language
  • the system should work with any reasonable coding block dimensions and with any primitive polynomial used for Reed-Solomon encoding.
  • the invention provides a method and system for reducing the number of gates required and for decreasing the time required to form sums of products of pairs of elements, by using a parallel process to calculate the checkbyte(s) in an ECC processing phase for digital signals.
  • the coefficients needed to form the sums of products are built into and provided within the syndrome generator and checkbyte generator modules so that these coefficients need not be computed each time.
  • FIG. 1 illustrates data flow within an ECC module.
  • FIG. 2 illustrates generation, storage and use of the syndrome components to form checkbyte components according to the invention.
  • FIG. 3 shows conventional apparatus for implementing certain sums and products.
  • FIGS. 4, 5 and 6 show apparatus for implementing Reed-Solomon multiplier action according to the invention.
  • FIG. 7 is a flow chart illustrating practice according to the invention.
  • FIG. 1 illustrates apparatus that can be used to form and apply two multipliers that are used in Reed-Solomon error control for certain digital signals, such as the ECC phase of error control.
  • Syndrome coefficients, s 0 and s 1 are received by a multiplexer 25 , which selectively interleaves the s 0 and s 1 signals and passes the interleaved stream on one or more lines 27 to a Reed-Solomon multiplier module 29 that also receives three known eight-bit multiplier coefficients 8 ′hf 4 , 8 ′hf 5 and 8 ′hf 7 from a lookup table or generator 31 .
  • the MUX 29 forms eight-bit Reed-Solomon error control XOR sums:
  • the MUX 29 issues the error control sums c 0 and c 1 on a line 33 that is received and processed by a checkbyte error examination module 35 and is issued on an output line 37 .
  • the error control sums c 0 and c 1 are also fed to a second group of temporary registers 39 that feed these sums back to the MUX 29 . Formation of the sums c 0 and c 1 requires use of many logic gates and consumes several gate cycles in time, because of the sequential processing required.
  • k 0, 1, . . .
  • y[ 7 : 0 ] ⁇ y[k]
  • k 0, 1, . . . , 7 ⁇ .
  • the primitive polynomial relation may be selected to be
  • ⁇ 3 ⁇ 0,0,0,0,1,0,0,0 ⁇
  • ⁇ 4 ⁇ 0,0,0,1,0,0,0,0 ⁇
  • ⁇ 5 ⁇ 0,0,1,0,0,0,0,0 ⁇
  • ⁇ 6 ⁇ 0,1,0,0,0,0,0 ⁇
  • ⁇ 7 ⁇ 1,0,0,0,0,0,0 ⁇
  • ⁇ 230 ⁇ 1,1,1,1,0,1,0,0 ⁇
  • ⁇ 231 ⁇ 1,1,1,1,0,1,0,1 ⁇
  • ⁇ 232 ⁇ 1,1,1,1,0,1,1,1 ⁇ , (5)
  • zk[ 7 : 0 ] also has eight entries, obtained by multiplying each of the eight entries in y[ 7 : 0 ] by the scalar x[k], and c[ 7 : 0 ] is a portion of a checkbyte c 0 or c 1 .
  • the variables x[ 7 : 0 ] and y[ 7 : 0 ] may be taken to be any of the pairs ⁇ s 0 , 8 ′hf 4 ⁇ , ⁇ s 0 , 8 ′hf 5 ⁇ and ⁇ s 1 , 8 ′hf 7 ⁇ that appear in the relations(1) and (2).
  • the checkbytes c 0 and c 1 are formed as follows.
  • I(n) is one of a column of data elements.
  • x x 7 ⁇ 7 +x 6 ⁇ 6 +x 5 ⁇ 5 +x 4 ⁇ 4 +x 3 ⁇ x 3 +x 2 ⁇ 2 +x 1 ⁇ 1 x 0 ⁇ 0 ,
  • y y 7 ⁇ 7 +y 6 ⁇ 6 +y 5 ⁇ 5 +y 4 ⁇ 4 +y 3 ⁇ 3 +y 2 ⁇ 2 +y 1 ⁇ 1 +y 0 ⁇ 0 ,
  • x*y x 7 y ⁇ 7 +x 6 y ⁇ 6 +x 5 y ⁇ 5 +x 4 y ⁇ 4 +x 3 y ⁇ 3 +x 2 y ⁇ 2 +x 1 y ⁇ 1 +x 0 y. (16)
  • the coefficients 8 ′hf 4 , 8 ′hf 5 , 8 ′hf 7 and others are part of an array of coefficients defined as follows.
  • the input quantities s 0 and s 1 are characterized as sums of powers of ⁇ , as in (8) and (9).
  • the gate count can be reduced substantially (to N) by forming the usual logical product (AND) of a sequence of coefficients ⁇ k ⁇ 8 ′hf 7 with each a sequence of coefficients s 1 [k] in the k-tuple S 1 .
  • the coefficients in (17) would include N+1 pre-computed input signals 8 ′hf 4 , ⁇ 8 ′hf 4 , ⁇ 2 ⁇ 8 ′hf 4 , . . .
  • each directed to a separate two-input AND gate, with the input signals to the other terminal of each AND gate being the scalar quantities s 1 [n] (n 0, 1, 2, . . . . , N).
  • each of the input signals for the first terminal of the AND gates have the same value, such as 8 ′hf 5 .
  • control bytes c 0 and c 1 are formed as indicated in (14) and (15) and are appended to the binary representation ⁇ I( 0 ), I( 1 ), . . . , I(N) ⁇ to implement a Reed-Solomon error control procedure.
  • FIG. 7 is a flow chart illustrating one method of practicing the invention.
  • an eight-bit primitive a satisfying a selected primitive polynomial relation p( ⁇ ) 0, is provided.
  • the quantities c 0 and c 1 may be interpreted as error control checkbytes for the code word sequence ⁇ I n ⁇ .
  • at least one of the error control checkbytes, c 0 and c 1 is appended to the code word sequence ⁇ I n ⁇ .

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

A method for computing Reed-Solomon error control checkbytes in reduced time and with reduced gate count. Two syndromes, s0 and s1, are computed for a sequence of data elements, using a selected primitive a that satisfies a selected primitive polynomial relation p(α)=0. Each of two checkbytes, c0 and c1, is expressed as a linear combination of the syndromes s0 and s1, where each coefficient of each linear combination is expressed as a single power of the primitive α, which is stored at the checkbyte generator for multiple use. This approach reduces gate count and associated time delay in formation of the usual Reed-Solomon multiplier coefficients.

Description

FIELD OF THE INVENTION
This application is related to a patent application, “MODIFIED REED-SOLOMON MULTIPLICATION”, U.S. Ser. No. 09,317,489, filed on the day this application is being filed. This invention relates to use of error control techniques to detect and correct errors in a digital signal, and to efficient use of Reed-Solomon error detection and correction.
BACKGROUND OF THE INVENTION
Approaches for error control encoding for computer communications have been proposed and used for more than 40 years. Error control is of increasing concern as the speed of digital signal transmission increases by factors of ten each decade. Several error control schemes, such as those developed by Reed-Solomon (RS) and by Bose-Chaudhuri-Hocquenhem (BCH), allow correction of “burst” errors of several consecutive bytes and are of special interest in computer communications. These error control schemes are powerful and allow detection and correction of isolated bit errors and burst errors involving several consecutive erroneous bits or bytes. However, the encoding and decoding procedures are often long and complex, which limits digital signal throughput at the transmitting end and/or at the receiving end where these error control methods are used. A Reed-Solomon error control procedure typically requires matrix multiplication, or its equivalent, of large row and/or column matrices as part of the syndrome processing. These multiplications require a relatively large gate count in an HDL (hardware description language) formulation and add substantially to the time required for such processing.
What is needed is an approach for reducing the gate count for pairwise multiplication in a Reed-Solomon error control procedure and for decreasing the time required to form and to sum these pairwise products. Preferably, the system should work with any reasonable coding block dimensions and with any primitive polynomial used for Reed-Solomon encoding.
SUMMARY OF THE INVENTION
These needs are met by the invention, which provides a method and system for reducing the number of gates required and for decreasing the time required to form sums of products of pairs of elements, by using a parallel process to calculate the checkbyte(s) in an ECC processing phase for digital signals. The coefficients needed to form the sums of products are built into and provided within the syndrome generator and checkbyte generator modules so that these coefficients need not be computed each time.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 illustrates data flow within an ECC module.
FIG. 2 illustrates generation, storage and use of the syndrome components to form checkbyte components according to the invention.
FIG. 3 (prior art) shows conventional apparatus for implementing certain sums and products.
FIGS. 4, 5 and 6 show apparatus for implementing Reed-Solomon multiplier action according to the invention.
FIG. 7 is a flow chart illustrating practice according to the invention.
DESCRIPTION OF BEST MODE OF THE INVENTION
FIG. 1 illustrates apparatus that can be used to form and apply two multipliers that are used in Reed-Solomon error control for certain digital signals, such as the ECC phase of error control. Syndrome coefficients, s0 and s1, are received by a multiplexer 25, which selectively interleaves the s0 and s1 signals and passes the interleaved stream on one or more lines 27 to a Reed-Solomon multiplier module 29 that also receives three known eight-bit multiplier coefficients 8′hf4, 8′hf5 and 8′hf7 from a lookup table or generator 31. The MUX 29 forms eight-bit Reed-Solomon error control XOR sums:
c0=8′hf4·s08′hf7·s1;  (1)
c1=8′hf5·s08′hf7·s1.  (2)
The MUX 29 issues the error control sums c0 and c1 on a line 33 that is received and processed by a checkbyte error examination module 35 and is issued on an output line 37. Optionally, the error control sums c0 and c1 are also fed to a second group of temporary registers 39 that feed these sums back to the MUX 29. Formation of the sums c0 and c1 requires use of many logic gates and consumes several gate cycles in time, because of the sequential processing required.
The gate count and the cumulative processing time can be reduced in the formation of the product sums c0 and c1, according to the invention. FIG. 2 illustrates apparatus suitable for generating (in 25), storing (in 15 and 17) and using (in 29) syndrome components that are, in turn, used to form the checkbyte components used in Reed-Solomon error control, using an array of eight-bit variables, x[7:0]={x[k]|k=0, 1, . . . , 7}={x[7], x[6],x[5],x[4],x[3],x[2],x[1],x[0]} and y[7:0]={y[k]|k=0, 1, . . . , 7}. The eight-bit variables x[7:0] involve powers αn (n=0, 1, . . . , 7) of an eight-bit primitive α, that satisfies a selected primitive polynomial relation
p(α)=0.  (3)
For example, the primitive polynomial relation may be selected to be
p(α)=α8432+1=0,  (4)
in which event the “0” element, the “1” element and several powers of α become
0={0,0,0,0,0,0,0,0},
α0255={0,0,0,0,0,0,0,1}=1,
α={0,0,0,0,0,0,1,0}, α2={0,0,0,0,0,1,0,0},
α3={0,0,0,0,1,0,0,0},
α4={0,0,0,1,0,0,0,0}, α5={0,0,1,0,0,0,0,0},
α6={0,1,0,0,0,0,0,0},
α7={1,0,0,0,0,0,0,0}, α8={0,0,0,1,1,1,0,1}=α432+1,
α9={0,0,1,1,1,0,1,0}=α·α8543+α, α230={1,1,1,1,0,1,0,0},
α231={1,1,1,1,0,1,0,1},
α232={1,1,1,1,0,1,1,1},  (5)
where particular powers αn(n=230, 231, 232) will be needed in the following development. The remaining powers an (10≦n≦254) are generated using the particular primitive polynomial relation (4). Change of the choice of primitive polynomial will cause a corresponding change in definition of most of the powers of α.
The following arrays of coefficients are formed, for example using the conventional apparatus shown in FIG. 3, where x[k] is a scalar and y[7:0] is an eight-bit array.
x[0]·y[7:0]=z0[7:0],  (6-0)
x[1]·y[7:0]α=z1[7:0],  (6-1)
. . .
x[k]·y[7:0k=zk[7:0](k=0, 1, . . . , 7),  (6-k)
w0[7:0]=z0[7:0]+z1[7:0],  (7-0)
w(k+1)[7:0]=zk{7:0]+wk[7:0](k=0, 1, . . . , 5),  (7-k)
w6[7:0]+c[7:0]=w7[7:0],  (7-6)
where zk[7:0] also has eight entries, obtained by multiplying each of the eight entries in y[7:0] by the scalar x[k], and c[7:0] is a portion of a checkbyte c0 or c1. The variables x[7:0] and y[7:0] may be taken to be any of the pairs {s0,8′hf4}, {s0,8′hf5} and {s1,8′hf7} that appear in the relations(1) and (2).
The checkbytes c0 and c1 are formed as follows. Two code word variables s0 and s1 are defined by s0 = n = 0 N I ( n ) · 1 = { I ( 0 ) + I ( 1 ) + + I ( N ) } · 1 ( 8 ) s1 = n = 0 N I ( n ) · α n ( 9 )
Figure US06378105-20020423-M00001
where, for example, the choices N=24 and N=43 correspond to P-parity correction and Q-parity correction, respectively, and I(n) is one of a column of data elements. Two 16-bit check bytes, c0=c0[15:8]+c0[7:0] and c1=c1[15:8]+c1[7:0], are added for every code word to detect up to two errors per code word and to allow correction of up to one error per code word.
The check bytes c0 and c1 satisfy the error check relations
c1+c0+s0=0,  (10)
c1+c0 α+s1 α2=0.  (11)
One verifies from the relations (5), (10) and (11) that
(1+α)·c0=s02·s1  (12)
c1=c0+s0,  (13)
c0 = ( 1 + α ) - 1 { s0 + α 2 · s1 } = α - 25 { s0 + α 2 · s1 } = α 255 - 25 s0 + α 257 - 25 · s1 = α 230 · s0 + α 232 · s1 = 8 hf4 · s0 + 8 hf7 · s1 , ( 14 )
Figure US06378105-20020423-M00002
c1 = α 231 · s0 + α 232 · s1 = 8 hf5 · s0 + 8 hf7 · s1 , ( 15 )
Figure US06378105-20020423-M00003
which exhibit the values of the (now-known) eight-bit coefficients 8′hf4, 8′hf5 and 8′hf7. Higher order coefficients can be computed in a similar manner. Where the arrays x and y have the forms
x=x7α7+x6α6+x5α5+x4α4+x3αx3+x2α2+x1α1x0α0,
y=y7α7+y6α6+y5α5+y4α4+y3α3+y2α2+y1α1+y0α0,
the product x*y of these arrays is defined as
x*y=x77+x66+x55+x44+x33+x22+x11+x0y.  (16)
The coefficients 8′hf4, 8′hf5, 8′hf7 and others are part of an array of coefficients defined as follows.
8′hf5=8′hf4 α,
8′hf7=8′hf5 α,
8′hf3=8′hf7 α,
8′hfb=8′hf3 α,
8′heb=8′hfb α,
8′hcb=8′heb α,
8′h8b=8′hcb α,
8′h0b=8′h8b α, 8′h16=8′h0b α,  (17)
where additional higher terms in this array can also be defined, if desired, based on a Gray code expressed in hexadecimal format. The quantities in (17) may be computed once and stored in software or hardware, and these quantities (and higher order coefficients) are considered known.
The input quantities s0 and s1 are characterized as sums of powers of α, as in (8) and (9). For example, the quantities 8′hf4·s0 and 8′hf5·s0 in the relations (14) and (15) are the product of the coefficients 8′hf4 and 8′hf5=8′hf4·α multiplied by a known numerical coefficient times a known power of a and are easily computed once and stored, without requiring recomputation of different (positive) powers of α.
Each of the quantities 8′hf4·s0, 8′hf5·s0 and 8′hf7·s1, if expressed in a conventional manner, will require use of approximately 3N−1 gates, including N−1 gates that form selected powers αm(m=1, 2, . . . , N−1), as illustrated in FIG. 3, and will require a substantial total time delay for the sequential operations indicated in FIG. 3. However, if the parity input quantity si is expressed as an (N+1)-tuple S1={s1[0], s1[1], s1[2], . . . , s1 [N}}, the gate count can be reduced substantially (to N) by forming the usual logical product (AND) of a sequence of coefficients αk·8′hf7 with each a sequence of coefficients s1[k] in the k-tuple S1.
FIG. 4 shows apparatus suitable for implementing, according to the invention, formation of the Reed-Solomon products or multipliers used to define c1 in (15), for the choice N=7. The number of gates required is reduced from 3N−1=23 in FIG. 3 to 2N−1=15 in FIG. 4. More generally, the coefficients in (17) would include N+1 pre-computed input signals 8′hf4, α·8′hf4, α2·8′hf4, . . . , αN·8′hf4, each directed to a separate two-input AND gate, with the input signals to the other terminal of each AND gate being the scalar quantities s1[n] (n=0, 1, 2, . . . . , N). The computed quantities 8′hf4·αk (k=0, 1, 2, . . . ) are preferably stored in a look-up table for subsequent use. Preferably, the coefficients 8′hf7·αk are provided in groups of N+1=8.
FIG. 5 shows apparatus suitable for implementing formation of the Reed-Solomon multipliers used to define c0 in (14), where the input signals are the quantities 8′hf5·s0 (k=0, 1, 2, . . . ). Here, each of the input signals for the first terminal of the AND gates have the same value, such as 8′hf5.
Similarly, FIG. 6 shows apparatus suitable for implementing the input signals 8′hf7·s1. (k=0, 1, 2, . . . ).
The control bytes c0 and c1 are formed as indicated in (14) and (15) and are appended to the binary representation {I(0), I(1), . . . , I(N)} to implement a Reed-Solomon error control procedure.
FIG. 7 is a flow chart illustrating one method of practicing the invention. In step 71, a code word of length N+1 eight-bit arrays, expressible as a binary sequence {In} of bytes (n=0, 1, . . . , N), is provided. In step 73, an eight-bit primitive a satisfying a selected primitive polynomial relation p(α)=0, is provided. In step 75, a selected sequence of powers {Jmm} of α is provided. In step 77, a first (N+1)-tuple code word element, s0, is computed as a logical sum of the eight-bit arrays In (n=0, 1, . . . , N). In step 79, a second (N+1)-tuple code word element, s1, is computed as a logical sum of eight-bit product arrays In·J(n+N1) (n=0, 1, . . . , N). In step 81, the system provides a selected sequence {h(k)} (k=0, 1, . . . , N2−N1) of eight-bit arrays, with each element being proportional to a selected power of the primitive α. In step 83, a first control element, c0, is expressed as a logical sum of products h(k+N1)·s0+h(k+N1+2)·s1 (k=0, 1, . . . , N2−N1). In step 85, a second control element, c1, is expressed as a logical sum of products h(k+N1)·s0 +hk+N1+2)·s1 (k=0, 1, . . . , N2−N1). The quantities c0 and c1 may be interpreted as error control checkbytes for the code word sequence {In}. Optionally, in step 87, at least one of the error control checkbytes, c0 and c1, is appended to the code word sequence {In}.

Claims (8)

What is claimed is:
1. A method for computing error control checkbytes for a sequence of data, the method comprising:
receiving a sequence of N+1 eight-bit data elements that are to be processed for error control purposes, where N is a selected positive integer;
computing a first error control syndrome s0 as a sum of the sequence of data elements;
computing a second error control syndromes s1 as a sum of the sequence of data elements, each multiplied by a selected power of an eight-bit array α that satisfies a selected primitive polynomial relation p(α)=α8432+1=0; and
computing first and second checkbytes, c0 and c1, for the sequence of data elements as first and second linear combinations
c0=s0·α230⊕s1·α232,
c1=s0·α231⊕s1·α232.
2. The method of claim 1, further comprising:
analyzing said checkbytes, c0 and c1, together with said data element sequence, to determine when said data element sequence contains at least one data element error.
3. The method of claim 1, further comprising selecting said integer N=24.
4. The method of claim 1, further comprising selecting said integer N=43.
5. A method of error control for a digital signal, the method comprising:
providing a code word having a selected byte length N+1 and being expressible as an ordered sequence {In} (n=0, 1, . . . , N} of bytes, where In (=0 or 1) is a selected numerical coefficient;
providing a primitive element α that satisfies a selected primitive polynomial equation p(α)=α8432+1=0;
providing a selected sequence of eight-bit coefficients J(m)=αm (N1≦m≦N2) that are powers of the primitive α, where N1 and N2 are selected non-negative integers satisfying N1=230 and N2=237;
computing a first (N+1)-tuple code word element, s0={s0[0], s0[1], . . . , s0[N]}, as a logical sum of the sequence of numerical values In (n=0, 1, . . . , N), all multiplied by a selected identity element 1;
computing a second (N+1)-tuple code word element, s1={s1[0], s1[1], . . . , s1[N}}, as a logical sum of the products In·J(n+N1);
providing and storing a selected sequence of elements h(k) (k=0, 1, . . . , N2−N1 [+2]), with each element being proportional to a selected power of the primitive element α;
computing a first control element, c0, as a logical sum of products h(k+N1)·s0+h(k+N1+2)·s1 (k=0, 1, . . . , N2−N1);
computing a second control element, c1, as a logical sum of products h(k+N1+1)·s0+h(k+N1+2)·s1 (k=0, 1, . . . , N2−N1); and
interpreting the elements c0 and c1 as error control checkbytes for the code word {In}.
6. The method of claim 5, further comprising:
appending at least one of said first and second checkbytes, c0 and c1, to said sequence {In}.
7. The method of claim 5, further comprising selecting said integer N=24.
8. The method of claim 5, further comprising selecting said integer N=43.
US09/317,810 1999-05-24 1999-05-24 Reed-Solomon multiplication method Expired - Lifetime US6378105B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US09/317,810 US6378105B1 (en) 1999-05-24 1999-05-24 Reed-Solomon multiplication method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/317,810 US6378105B1 (en) 1999-05-24 1999-05-24 Reed-Solomon multiplication method

Publications (1)

Publication Number Publication Date
US6378105B1 true US6378105B1 (en) 2002-04-23

Family

ID=23235364

Family Applications (1)

Application Number Title Priority Date Filing Date
US09/317,810 Expired - Lifetime US6378105B1 (en) 1999-05-24 1999-05-24 Reed-Solomon multiplication method

Country Status (1)

Country Link
US (1) US6378105B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6606727B1 (en) * 1999-10-29 2003-08-12 Stmicroelectronics, Inc. System and method for providing error correction coding with selectively variable redundancy
US10164660B1 (en) 2016-12-23 2018-12-25 Intel Corporation Syndrome-based Reed-Solomon erasure decoding circuitry
US10218386B1 (en) 2016-11-22 2019-02-26 Intel Corporation Methods and apparatus for performing variable and breakout Reed Solomon encoding

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3697948A (en) * 1970-12-18 1972-10-10 Ibm Apparatus for correcting two groups of multiple errors
US4404674A (en) * 1981-07-10 1983-09-13 Communications Satellite Corporation Method and apparatus for weighted majority decoding of FEC codes using soft detection
US4703485A (en) * 1986-02-10 1987-10-27 International Business Machines Corporation Method and apparatus for computing and implementing error detection check bytes
US4706250A (en) * 1985-09-27 1987-11-10 International Business Machines Corporation Method and apparatus for correcting multibyte errors having improved two-level code structure
US4833679A (en) * 1987-08-31 1989-05-23 International Business Machines Corporation Method and apparatus with improved error correction and error information availability
US4849975A (en) * 1987-11-10 1989-07-18 International Business Machines Corporation Error correction method and apparatus
US4928280A (en) * 1988-04-29 1990-05-22 International Business Machines Corporation Fast processor for multi-bit error correction codes
US5040179A (en) 1989-08-18 1991-08-13 Loral Aerospace Corp. High data rate BCH encoder
US5422895A (en) * 1992-01-09 1995-06-06 Quantum Corporation Cross-checking for on-the-fly Reed Solomon error correction code
US5640286A (en) 1995-05-08 1997-06-17 Western Digital Corporation Disk drive with error code embedded sector identification
US5689727A (en) 1994-09-08 1997-11-18 Western Digital Corporation Disk drive with pipelined embedded ECC/EDC controller which provides parallel operand fetching and instruction execution
US5812564A (en) 1995-05-08 1998-09-22 Western Digital Corporation Disk drive with embedded finite field processor for error correction
US5818855A (en) 1996-10-30 1998-10-06 Discovision Associates Galois field multiplier for Reed-Solomon decoder

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3697948A (en) * 1970-12-18 1972-10-10 Ibm Apparatus for correcting two groups of multiple errors
US4404674A (en) * 1981-07-10 1983-09-13 Communications Satellite Corporation Method and apparatus for weighted majority decoding of FEC codes using soft detection
US4706250A (en) * 1985-09-27 1987-11-10 International Business Machines Corporation Method and apparatus for correcting multibyte errors having improved two-level code structure
US4703485A (en) * 1986-02-10 1987-10-27 International Business Machines Corporation Method and apparatus for computing and implementing error detection check bytes
US4833679A (en) * 1987-08-31 1989-05-23 International Business Machines Corporation Method and apparatus with improved error correction and error information availability
US4849975A (en) * 1987-11-10 1989-07-18 International Business Machines Corporation Error correction method and apparatus
US4928280A (en) * 1988-04-29 1990-05-22 International Business Machines Corporation Fast processor for multi-bit error correction codes
US5040179A (en) 1989-08-18 1991-08-13 Loral Aerospace Corp. High data rate BCH encoder
US5422895A (en) * 1992-01-09 1995-06-06 Quantum Corporation Cross-checking for on-the-fly Reed Solomon error correction code
US5689727A (en) 1994-09-08 1997-11-18 Western Digital Corporation Disk drive with pipelined embedded ECC/EDC controller which provides parallel operand fetching and instruction execution
US5640286A (en) 1995-05-08 1997-06-17 Western Digital Corporation Disk drive with error code embedded sector identification
US5812564A (en) 1995-05-08 1998-09-22 Western Digital Corporation Disk drive with embedded finite field processor for error correction
US5818855A (en) 1996-10-30 1998-10-06 Discovision Associates Galois field multiplier for Reed-Solomon decoder

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Stephen B. Wicker, "Error Control Systems for Digital Communication and Storage", Prentice Hall, 1995. *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6606727B1 (en) * 1999-10-29 2003-08-12 Stmicroelectronics, Inc. System and method for providing error correction coding with selectively variable redundancy
US10218386B1 (en) 2016-11-22 2019-02-26 Intel Corporation Methods and apparatus for performing variable and breakout Reed Solomon encoding
US10164660B1 (en) 2016-12-23 2018-12-25 Intel Corporation Syndrome-based Reed-Solomon erasure decoding circuitry

Similar Documents

Publication Publication Date Title
EP0147041B1 (en) Error protection apparatus
US6594796B1 (en) Simultaneous processing for error detection and P-parity and Q-parity ECC encoding
US6615387B1 (en) Method and apparatus for error detection
US6637002B1 (en) Decoder for error correcting block codes
US4504948A (en) Syndrome processing unit for multibyte error correcting systems
EP0114938B1 (en) On-the-fly multibyte error correction
US4555784A (en) Parity and syndrome generation for error detection and correction in digital communication systems
US6374383B1 (en) Determining error locations using error correction codes
US8510626B2 (en) Data coding apparatus and methods
US6393065B1 (en) Coding and decoding methods and devices and equipment using them
KR930008683B1 (en) Reed solomon error correction code encoder
US5818855A (en) Galois field multiplier for Reed-Solomon decoder
US10812109B2 (en) Determination and use of byte error position signals
EP0233075B1 (en) Method and apparatus for generating error detection check bytes for a data record
US5805617A (en) Apparatus for computing error correction syndromes
EP0793174B1 (en) Error detection and correction method and apparatus for computer memory
US6701336B1 (en) Shared galois field multiplier
EP0753942A2 (en) Word-wise processing for reed-solomon codes
EP0393080B1 (en) Hypersystolic reed-solomon encoder
US6366941B1 (en) Multi-dimensional Galois field multiplier
US20040078747A1 (en) Generalized forney algorithm circuit
US6378105B1 (en) Reed-Solomon multiplication method
US20020002693A1 (en) Error correction structures and methods
US6532566B1 (en) Modified Reed-Solomon multiplication
US6219816B1 (en) Device and method for carrying out Reed-Solomon encoding

Legal Events

Date Code Title Description
AS Assignment

Owner name: OAK TECHNOLOGY, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CHIANG, KEVIN;REEL/FRAME:009997/0200

Effective date: 19990519

STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: OAK TECHNOLOGY, INC., CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:ZINC ACQUISITION CORPORATION;REEL/FRAME:014734/0498

Effective date: 20030811

Owner name: ZINC ACQUISITION CORPORATION, CALIFORNIA

Free format text: MERGER;ASSIGNOR:OAK TECHNOLOGY, INC.;REEL/FRAME:014734/0491

Effective date: 20030811

AS Assignment

Owner name: ZORAN CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:OAK TECHNOLOGY, INC.;REEL/FRAME:015279/0870

Effective date: 20041013

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

AS Assignment

Owner name: CSR TECHNOLOGY INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ZORAN CORPORATION;REEL/FRAME:027550/0695

Effective date: 20120101

FPAY Fee payment

Year of fee payment: 12

AS Assignment

Owner name: CSR TECHNOLOGY INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ZORAN CORPORATION;REEL/FRAME:036642/0395

Effective date: 20150915

FEPP Fee payment procedure

Free format text: PAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

AS Assignment

Owner name: ZORAN CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:OAK TECHNOLOGY, INC.;REEL/FRAME:039469/0815

Effective date: 20160419