WO2004059487A1 - Dispositif et procede de calcul en parallele d'un syndrome de code d'erreur - Google Patents

Dispositif et procede de calcul en parallele d'un syndrome de code d'erreur Download PDF

Info

Publication number
WO2004059487A1
WO2004059487A1 PCT/IL2002/001054 IL0201054W WO2004059487A1 WO 2004059487 A1 WO2004059487 A1 WO 2004059487A1 IL 0201054 W IL0201054 W IL 0201054W WO 2004059487 A1 WO2004059487 A1 WO 2004059487A1
Authority
WO
WIPO (PCT)
Prior art keywords
reminder
syndrome
calculator
register
input
Prior art date
Application number
PCT/IL2002/001054
Other languages
English (en)
Inventor
Idan Alrod
Danny Lahav
Aryeh Lezerovitz
Simon Litsyn
Original Assignee
Optix Networks, Ltd.
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 Optix Networks, Ltd. filed Critical Optix Networks, Ltd.
Priority to PCT/IL2002/001054 priority Critical patent/WO2004059487A1/fr
Priority to AU2002360207A priority patent/AU2002360207A1/en
Publication of WO2004059487A1 publication Critical patent/WO2004059487A1/fr

Links

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/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/1575Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance
    • 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/159Remainder calculation, e.g. for encoding and syndrome calculation
    • H03M13/1595Parallel or block-wise remainder calculation

Definitions

  • the present invention relates generally to a syndrome computing apparatus used for the purpose of error detection and correction, and more particularly for the purpose of error detection and correction of data coded in accordance with a Bose-Chaudhuri- Hocquenghem (BCH) code.
  • BCH Bose-Chaudhuri- Hocquenghem
  • a well-known member of the large family of such codes is the BCH encoding and decoding technique.
  • a BCH code can be used for correction of scattering of single error bits within an input data word.
  • the BCH code is used in satellite communication links, optical networks, etc., where error correction codes are often employed to mitigate the effects of noise interference.
  • An error correction procedure is described herein for a BCH code that corrects up to 't' bit errors, where 't' is a predetermined number.
  • a selection of a large 't' leads to increased length of the redundancy bits in a codeword and therefore to a more complex decoding process.
  • a typical BCH decoder accomplishes the following steps:
  • step (b) a Berlekamp algorithm (US Patent Nos. 4,162,480 and 4,410,989) is well known in the art.
  • step (c) a search algorithm proposed by Chien, as disclosed in
  • c(x) is a codeword if and only if a Jo+] , ⁇ ⁇ +i , a +s , ..., a h * 2 ' ⁇ are roots of c(x).
  • is a primitive element of a Galois field of power 2 m (GF(2 m )), and where 'm' is the length of the syndrome coefficient (S j ).
  • the maximal length of c(x), including the redundancy bits, is (2 m -l) bits.
  • the value jo is a positive integer between 0 and 2 m -2.
  • a Galois field is an algebraic field having a finite number of elements. The number of elements is always of the form p m , where p' is a prime number and 'm' is a positive integer. A detailed description of the Galois field may be found in "Error Correcting Codes" by W. Wesley Peterson and E. J. Weldon, Jr., MIT 1972, pages 155-160.
  • Sy is an element in GF(2 ) and includes 'm' bits.
  • S j th syndrome coefficient
  • b is the received bit
  • a"' is also an element in GF(2 m ).
  • the number N is equal to the number of received bits, i.e., the length of an input word b(x).
  • jo is chosen to have the zero. Such selection ensures that only 't' syndrome coefficients are required to be calculated.
  • the received word is described as a polynomial b(x) such that its binary coefficients are the bits in the received word, and the power of 'x' represents the location of the coefficient in the received word.
  • Circuit 100 includes ' elements 110-0 through 110-t-l, where element 110-j calculates S j , for j starting at zero and ending at t-1.
  • Element 110 is a serial implementation of equation (2).
  • Element 110-j includes a single XOR gate 112-j, a register 114-j, and a multiplier 116-j.
  • element 110 The functionality of element 110 is accomplished through the following steps: a) receiving the current input bit bj of an input word in an XOR gate 112, the first received bit being b -i ; b) obtaining the data stored in registers 114 and multiplying it by the constant a"' using multipliers 116; c) adding the multiplication results to the current received bit using XOR gate 112; d) saving the results in registers 114; and, e) repeating steps a) through d) until the entire word is received (i.e., N times).
  • Each syndrome is computed using a different power of " ⁇ ", namely element 110-j includes the value a ' .
  • circuit 100 Although the implementation of circuit 100 is simple, it is not suitable for parallel data input, and especially not suitable for long input codewords that need to be processed at a high rate. Furthermore, the use of a serial circuit is not suitable for optical networks where data is transmitted and received at a high rate. Therefore, parallel processing is required. In view of the fact that prior art syndrome calculators are not compliant with processing parallel data, it would be advantageous to provide a high rate syndrome calculator that overcomes these limitations.
  • the present invention is of an apparatus and method for parallel calculation of the syndrome of an error correcting code, in particular a Bose-Chaudhuri-Hocquenghem code.
  • the apparatus includes a plurality of syndrome calculators capable of calculating concurrently a plurality of syndrome coefficients.
  • the essence of the method lies in replacing the prior art solution for the syndrome exemplified in equation (1) with a polynomial division.
  • a syndrome circuit comprising a plurality of calculators operative to calculate concurrently a plurality of different syndrome coefficients (Sj), each coefficient having a coefficient length 'm' bits, each calculator including: a reminder computation logic (RCL) coupled to an input channel and operative to receive, per cycle, an input block of 'p' bits belonging to an input word polynomial b(x) and operative to compute a remainder; a register coupled to the RCL and operative to store the computed reminder; and an evaluator coupled to the RCL and to an output channel, the evaluator operative to evaluate contents of the reminder, whereby the syndrome circuit is capable of parallel calculation of the syndrome of an error correction code.
  • RCL reminder computation logic
  • a calculator capable of calculation of the syndrome coefficient of error correction codes, comprising: a reminder computation logic (RCL) coupled to an input channel and operative to receive, per cycle, an input block of 'p' bits belonging to an input word polynomial b(x), and operative to compute a remainder; a register coupled to the RCL and operative to store the computed reminder; and an evaluator coupled to the RCL and to an output channel, the evaluator operative to evaluate contents of the reminder, whereby the calculator is capable of parallel calculation of the syndrome of an error correction code.
  • RCL reminder computation logic
  • a method for parallel calculation of syndrome coefficients S j comprising the steps of: receiving an input word polynomial b(x) comprising a plurality of data blocks of 'p' bits, each data block fed into a plurality of calculators; for each data block iteratively computing a temporary reminder; upon reception of the complete input word, substituting the value of an elementa l of a Galois field "GF(2 m )" in the temporary reminder; and outputting the syndrome coefficient S j .
  • Figure 1 - is a schematic diagram of a prior art circuit uses for calculating the syndrome
  • Figure 2 - a schematic block diagram of a syndrome circuit in accordance with one embodiment of this invention
  • Figure 3 - is a schematic block diagram of a calculator used for the calculation of Sj in accordance with one embodiment of this invention.
  • Figure 4 - is an exemplary flowchait describing the method for calculating the syndrome in accordance with one embodiment of this invention
  • FIG. 5 - a non-limiting example of RCL circuit used in this invention
  • Figure 6 an exemplary block diagram of a syndrome circuit and RCL used in this invention:
  • the present invention discloses an apparatus and method enabling fast parallel processing of syndrome coefficients, specifically of a BCH code, which is superior to syndrome calculation solutions described in prior art.
  • the essence of the method lies in replacing the prior art solution for the syndrome exemplified in equation (1) with a polynomial division.
  • Circuit 200 is a high-speed integrated circuit (IC), which is capable of operating at speeds of 10 Gigabits per second (GBPS) and beyond. Specifically circuit 200 is designed to operate at a speed of 40GBPS. Circuit 200 is designed to perform parallel calculation of the syndrome as derived from the received input word. Circuit 200 produces ' syndrome coefficients after receiving the entire input word.
  • IC integrated circuit
  • GBPS Gigabits per second
  • circuit 200 In order to understand the operation of circuit 200, a brief explanation of the underlying mathematics of circuit 200 is helpful.
  • a syndrome coefficient S j in a BCH code is calculated using equations (2) and (3).
  • the input polynomial b(x) is divided by the minimal polynomial of a"' (hereinafter "M j (x)").
  • M j (x) is now represented as follows:
  • b(x) M j (x)*q(x) + r(x) (4)
  • the polynomial q(x) is the resultant quotient
  • the polynomial r(x) is the reminder of the division of b(x) by M j (x).
  • circuit 200 processes 'p' bits in parallel in each cycle.
  • Circuit 200 is comprised of 't' syndrome calculators marked 210-0 through 210-t-l, each having the same functionally.
  • the number of syndrome coefficient calculators 210 is equal to the number of correctable bit errors by a BCH decoder within a word of 'N' bits. A detailed description of a calculator 210 is provided in Fig. 3 below.
  • Circuit 200 receives in each cycle an input block of 'p' bits, which are fed into calculators 210-0 through 210-t-l. After reception of the entire word (i.e., 'N' bits) by circuit 200, each calculator 210 outputs its corresponding syndrome coefficient.
  • FIG. 3 shows an exemplary block diagram of a calculator 210 used for the calculation of S j , in accordance with one embodiment of this invention.
  • Calculator 210 includes a reminder computation logic (RCL) 320, a register 330, and an evaluator 340.
  • RCL 320 computes the remainder r ⁇ (x) that results from dividing the input polynomial b(x) by the polynomial M j (x).
  • the polynomial M j (x) is correlated to the term a ' used to calculate S j .
  • RCL 320 performs the polynomial division using a quotient prediction mechanism.
  • Evaluator 340 includes a combinational logic of AND gates and
  • Fig. 4 shows an exemplary flowchart 400 describing the method for calculating a syndrome coefficient S j , in accordance with one embodiment of this invention. This method shows the steps of the syndrome calculation performed by a single calculator 210. At step 410, an index "i" and the content of the register 330 are both set to zero.
  • the index "i” counts the number of received bits, and since 'p' bits are received in each cycle, each cycle index "i " is increased by 'p'. Obviously, 'p' is a positive integer.
  • syndrome calculator 210 receives the current input block, i.e., 'p' input bits to process.
  • the temporary reminder r ⁇ (x) is calculated by means of RCL 320. The result of step 430 is saved in register 330.
  • the index "i" is increased by 'p'.
  • a check is performed to determine whether the index "i" is above or equal to 'N', where 'N' is the length of the received input word.
  • step 460 after the entire input word is received and register 330 together with RCL 320 include the resultant reminder r(x), evaluator 340 evaluates the contents of the reminder r(x) at point a 1 .
  • 1 is correlated to the calculated syndrome coefficient S j .
  • calculator 210-j outputs the results of the calculated S j . It should be noted that syndrome calculators 210-0 through 210-t-l execute the method described above concurrently.
  • Fig. 5 shows a non-limiting example of RCL 320 used in this invention.
  • RCL 320 receives 'p' input bits from interface unit 550, as well as 'm' bits of a temporary reminder r ⁇ (x) from register 330.
  • RCL 320 contains the resultant reminder r(x) which is then passed to evaluator 340.
  • RCL 320 includes two computation logic units (CLUs) 510 and 520, two adders 530 and 540, and an interface unit 550.
  • interface unit 550 is common to calculators 210-0 through 210-t-l in syndrome circuit 200, as shown in Fig. 6A.
  • CLUs 510 and 520 include combinational logic of XOR gates.
  • the logic of CLU 510 is derived from the coefficients of the reciprocal polynomial of M j (x) (hereinafter "M " l j (x)”), while the logic of CLU 520 is derived form the coefficients of the polynomial M j (x).
  • Adders 530 and 540 include each an array of 'm' XOR gates.
  • the remainder r(x) is calculated in two stages: first, calculating the quantity r . (x), and second adding the quantity bo(x) to r ⁇ (x), by means of adder 540.
  • Interface unit 550 is used to differentiate bj(x) and bo(x) of the input word b(x), that is holds only the value of bo(x).
  • RCL 320 calculates the reminder rj(x) of the division of bj(x) by M j (x) in two steps: firstly, estimating the current quotient (hereinafter "qj(x)"), using the current 'p' input bits from interface unit 550 and the previously calculated r ⁇ (x); and secondly, updating the reminder rj(x) by multiplying between q;(x) and Mj(x). The reminder rj(x) is temporarily saved in register 330. This process is repeated until the entire input word is received.
  • Adder 530 receives 'm' bits of the previously calculated r ⁇ (x) and the 'm' most significant bits (MSBs) of the input bits, to perform a bit-by-bit XOR operation between these quantities.
  • the 'm' bits of the previously calculated (x) are obtained from register 330.
  • CLU 510 estimates the quotient qj(x) by unifying the output of adder 530 with the 'p-m' least significant bits (LSBits) of the current 'p' input bits, creating a p-bit vector Wj(x), and multiplying Wj(x) with the coefficients of M j " '(x). Only the 'm' LSBits of the result are fed to CLU 520.
  • the coefficients of the M j ' Jx) are constant and determined using the equation:
  • CLU 520 calculates rj(x) by multiplying between the output of CLU 510 (i.e., q.(x)) and the coefficients of M j (x).
  • the m-LSBits of the result CLU 520 are inserted into register 330.
  • register 330 includes the updated reminder as a result of dividing the current 'p' input bits from interface unit 550 of b](x) by M j (x).
  • the quantity bo(x) is ' added to the content of register 330, by means of adder 540. This operation provides the remainder r(x) which is then sent to evaluator 340. In some cases the size of incoming word b(x) is not an integer multiplication of 'p'.
  • interface unit 550 holds 's+m' bits, where the 'm'
  • MSBits of the 's+m" are the quantity bo(x) and the 's' LSBits belong to the quantity b ⁇ (x). It should be noted that the invention described herein is not limited to use of the polynomial divider circuit shown in Fig. 5, and that any means capable of performing polynomial division are suitable.
  • the invention has now been described with reference to specific embodiments. Other embodiments will be apparent to those of ordinary skill in the art.
  • the invention has been described with respect to a BCH code.
  • the invention can be modified to apply to special cases of error correcting codes having similar characteristics, such as Reed- Solomon codes, which are non-binary subsets of BCH codes.
  • the invention applies to a wide variety of linear cyclic invariant codes whose generator polynomials can be factored.

Landscapes

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

Abstract

Cette invention concerne un dispositif et un procédé de calcul en parallèle du syndrome (SO) d'un code de correction d'erreur, en particulier d'un code Bose-Chaudhuri-Hocquengbem. Le dispositif comprend une pluralité de calculateurs de syndrome (200) capables de calculer simultanément une pluralité de coefficients de syndrome (s0,s1). Chaque calculateur de syndrome calcule le coefficient de syndrome au moyen d'une division polynomiale, c'est-à-dire calcule le reste de la division d'un mot d'entrée par le polynôme minimal d'un élément a ^nj(460) dans le domaine Galois GF(2^m). Le reste ainsi obtenu est évalué à a^nj. La mise en oeuvre de calculateurs de syndrome en parallèle convient particulièrement bien pour le décodage de données transmises dans des réseaux à ligne haut débit tels que des réseaux de transport optique.
PCT/IL2002/001054 2002-12-30 2002-12-30 Dispositif et procede de calcul en parallele d'un syndrome de code d'erreur WO2004059487A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/IL2002/001054 WO2004059487A1 (fr) 2002-12-30 2002-12-30 Dispositif et procede de calcul en parallele d'un syndrome de code d'erreur
AU2002360207A AU2002360207A1 (en) 2002-12-30 2002-12-30 An apparatus and method for parallel calculation of an error code syndrome

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IL2002/001054 WO2004059487A1 (fr) 2002-12-30 2002-12-30 Dispositif et procede de calcul en parallele d'un syndrome de code d'erreur

Publications (1)

Publication Number Publication Date
WO2004059487A1 true WO2004059487A1 (fr) 2004-07-15

Family

ID=32676740

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IL2002/001054 WO2004059487A1 (fr) 2002-12-30 2002-12-30 Dispositif et procede de calcul en parallele d'un syndrome de code d'erreur

Country Status (2)

Country Link
AU (1) AU2002360207A1 (fr)
WO (1) WO2004059487A1 (fr)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4845713A (en) * 1987-06-08 1989-07-04 Exabyte Corporation Method and apparatus for determining the coefficients of a locator polynomial
US5699368A (en) * 1994-03-25 1997-12-16 Mitsubishi Denki Kabushiki Kaisha Error-correcting encoder, error-correcting decoder, and data transmitting system with error-correcting codes
US5887006A (en) * 1997-06-26 1999-03-23 Integrated Device Technology, Inc. Methods and apparatus for error correction

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4845713A (en) * 1987-06-08 1989-07-04 Exabyte Corporation Method and apparatus for determining the coefficients of a locator polynomial
US5699368A (en) * 1994-03-25 1997-12-16 Mitsubishi Denki Kabushiki Kaisha Error-correcting encoder, error-correcting decoder, and data transmitting system with error-correcting codes
US5887006A (en) * 1997-06-26 1999-03-23 Integrated Device Technology, Inc. Methods and apparatus for error correction

Also Published As

Publication number Publication date
AU2002360207A1 (en) 2004-07-22

Similar Documents

Publication Publication Date Title
US7539927B2 (en) High speed hardware implementation of modified Reed-Solomon decoder
US6539515B1 (en) Accelerated Reed-Solomon error correction
US6374383B1 (en) Determining error locations using error correction codes
US7793195B1 (en) Incremental generation of polynomials for decoding reed-solomon codes
US7502989B2 (en) Even-load software Reed-Solomon decoder
KR20020047134A (ko) 데이터를 코딩 및 디코딩하는 방법 및 장치
WO1995024769A2 (fr) Codeur/decodeur universel du type reed-solomon
US5535225A (en) Time domain algebraic encoder/decoder
US5936978A (en) Shortened fire code error-trapping decoding method and apparatus
EP1370003A1 (fr) Décodeur Reed-Solomon
US7461329B2 (en) Channel encoding adapted to error bursts
US7458007B2 (en) Error correction structures and methods
EP1102406A2 (fr) Appareil et méthode pour décoder des données digitales
US6735737B2 (en) Error correction structures and methods
US6421807B1 (en) Decoding apparatus, processing apparatus and methods therefor
US7398456B2 (en) Information encoding by shortened Reed-Solomon codes
US8181096B2 (en) Configurable Reed-Solomon decoder based on modified Forney syndromes
KR101619049B1 (ko) 병렬 bch 디코더
WO2004059487A1 (fr) Dispositif et procede de calcul en parallele d'un syndrome de code d'erreur
EP0793352B1 (fr) Appareil pour la détermination du polynÔme d'évaluation des erreurs dans un décodeur Reed-Solomon
Khan et al. Hardware implementation of shortened (48, 38) Reed Solomon forward error correcting code
US9032277B1 (en) Parallel low and asymmetric rate Reed Solomon coding
KR100192802B1 (ko) 리드 솔로몬 디코더의 에러값 계산 및 정정 장치
WO2004059851A1 (fr) Codeur permettant un codage parallele haut debit
US7155656B1 (en) Method and system for decoding of binary shortened cyclic code

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SC SD SE SG SK SL TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR IE IT LU MC NL PT SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP