This application claims the benefit of Korean Patent Application No. 10-2007-0045111, filed on May 9, 2007, in the Korean Intellectual Property Office, the disclosure of which is incorporated herein in its entirety by reference.
1. Field of the Invention
The present invention relates to an operation circuit for a modified Euclidean algorithm in a high-speed Reed-Solomon (RS) decoder and a method of implementing the modified Euclidean algorithm.
This present invention is derived from a research project supported by the Information Technology (IT) Research & Development (R&D) program of the Ministry of Information and Communication (MIC) and the Institute for Information Technology Advancement (IITA) [2006-S-060-01, OTH-based 40G Multi-service Transmission Technology].
2. Description of the Related Art
Reed-Solomon (RS) code is a forward error correction (FEC) code used in a wide variety of applications such as magnetic storage media, optical storage media, wired communication, and satellite communication. RS code is typically expressed as RS(n,k,t), where n denotes the number of code symbols, k denotes the number of data symbols, t denotes the number of symbols whose error can be corrected, and t=(n-k)/2. Accordingly, in the case of a RS(255,239), t=8.
Referring to
Since the Euclidean algorithm is used to compute inverse elements of a Galois field, the Euclidean algorithm requires a look-up table (LUT) stored in a read-only memory (ROM). However, since the modified Euclidean algorithm does not require such LUT, the modified Euclidean algorithm can reduce a latency caused by the use of the LUT. Also, since the modified Euclidean algorithm can use a systolic-array structure, the modified Euclidean algorithm can faster and more easily pipeline blocks than the Berlecamp-Massay algorithm.
The polynomials σ (x) and ω(x) are input to a Chien search block and a Forney algorithm operation block to calculate locations and values of errors.
The modified Euclidean algorithm used in the KES block set initial values as shown in Equation 1 to obtain the error locator polynomial σ(x) and the error value polynomial ω(x) by erasing a highest degree term and iteratively reducing degrees. In Equation 1, S(x) denotes the aforesaid syndrome polynomial.
R
0(x)=x2t, Q0(x)=S(x), L0(x)=0, U0(x)=1 (1).
Equations 2 and 3 show values of polynomials Ri(x), Qi(x), Li(x), and Ui(x), which are to be recursively calculated i times. In Equations 2 and 3, ai and bi respectively denote coefficients of highest degree terms of the polynomials Ri(x) and Qi(x), and the values of the polynomials Ri(x), Qi(x), Li(x), and Ui(x) are determined by the degrees of polynomials Ri−1(x) and Qi−1(x), wherein deg(Ri(x)) and deg(Qi(x)) respectively denote degrees of the polynomials Ri(x) and Qi(x). When deg(Ri(x))<deg(Li(x)), the recursive operation stops, and the polynomials Ri(x) and Li(x) at this time become an error value polynomial and an error locator polynomial, respectively.
The modified Euclidean algorithm recursively solves Equation 2 through Equation 4, whereas a conventional method calculates degrees of the two polynomials Ri−1(x) and Qi−1(x) to obtain Ii−1, of Equation 4 and generates a control signal to quickly solve Equations 2 and 3. The control signal includes a stop signal for stopping the recursive operation when deg(Ri(x))<deg(Li(x)).
Initial values set as shown in Equation 5 are input to the basic cell PE1 200. If a degree deg(Ri−1(x)) is equal to or greater than a degree deg(Qi−1(x)), an arithmetic operation is performed and a switching signal becomes 0. If the degree deg(Ri−1(x)) is less than the degree deg(Qi−1(x)), however, the switching signal becomes 1. When the switching signal is 1, polynomials Ri−1(x) and Qi−1(x) are swapped, polynomials Li−1(x) and Ui−1(x) are swapped, and the degrees deg(Ri−1(x)) and deg(Qi−1(x)) are swapped by a multiplexer. After arithmetic operations are performed, polynomials Ri(x), Qi(x), Li(x), and Ui(x) are output from the multiplexer. If t errors are generated, polynomials R2t(x) and L2t(x) which are obtained by performing arithmetic operations on 2t cells become an error value polynomial and an error locator polynomial, respectively. If errors less than t errors are generated, that is, if a first coefficient of the polynomial Qi(x) output from the multiplexer is 0, the polynomials Qi(x) and Ui(x) become an error value polynomial and an error locator polynomial, respectively, and operations are performed on 2t basic cells by comparing a degree deg(Qi(x)), which is obtained using deg(Qi(x))=deg(Qi−1(x))-1, with t and then a shift operation is performed so that degrees of polynomials Q2t(x) and U2t(x) become t-1 and t, respectively.
When a clock latency, which is a time delay between an input of a basic cell to an output of the basic cell, is m, 2t-m registers are needed. Accordingly, the number of shift registers increases as the clock latency m decreases. When compared with the conventional operation circuit of
Since the conventional operation circuits of
The conventional operation circuit for the degree computationless modified Euclidean algorithm of
The present invention provides a high-speed area-efficient operation circuit for a modified Euclidean algorithm, which can efficiently process data streams and can easily pipeline blocks without using a degree computation unit which is included in a basic cell of a conventional operation circuit for a modified Euclidean algorithm, and a method of implementing the modified Euclidean algorithm.
According to an aspect of the present invention, there is provided an operation circuit for a modified Euclidean algorithm of a systolic-array structure comprising a plurality of basic cells in order to obtain an error value polynomial and an error locator polynomial on the basis of a syndrome polynomial, each of the basic cells comprising: a control signal generating unit generating a control signal for a swap operation and/or a shift operation, on the basis of a finite state machine (FSM) consisting of a function that determines whether a swap operation and/or a shift operation is performed on polynomials Ci−1 and Di−1 on the basis of a value of the polynomial Ci−1 and degrees of the polynomials Ci−1 and Di−1; and an operation unit performing a swap operation or/and a shift operation and then a polynomial operation on polynomials Ci−1, Di−1, Ei−1, and Fi−1 according to the control signal, wherein a polynomial C0 input to a first basic cell among the basic cells is a value obtained by multiplying the syndrome polynomial by x, a polynomial D0 input to the first basic cell is a value having a degree twice higher than the number of symbols whose errors can be corrected, a polynomial E0 input to the first basic cell is x, a polynomial F0 input to the first basic cell is 0, and even-numbered basic cells among the basic cells decrease degrees of output polynomials Ci and Di by 1.
According to another aspect of the present invention, there is provided a method of implementing a modified Euclidean algorithm of a systolic-array structure comprising a plurality of basic cells in order to obtain an error value polynomial and an error locator polynomial on the basis of a syndrome polynomial, the method comprising: generating a control signal for a swap operation and/or a shift operation, on the basis of an FSM consisting of a function that determines whether a swap operation and/or a shift operation is performed on polynomials Ci−1 and Di−1 on the basis of a value of the polynomial Ci−1 and degrees of the polynomials Ci−1 and Di−1; performing a swap operation or/and a shift operation and then a polynomial operation on polynomials Ci−1, Di−1, Ei−1, and Fi−1 according to the control signal; and recursively performing the generating of the control signal and the performing of the operations, and decreasing by 1 degrees of polynomials Ci and Di output as the operation results when performing operations on even-numbered basic cells, wherein a polynomial C0 input to a first basic cell among the basic cells is a value obtained by multiplying the syndrome polynomial by x, a polynomial D0 input to the first basic cell is a value having a degree twice higher than the number of symbols whose errors can be corrected, a polynomial E0 input to the first basic cell is x, and a polynomial F0 input to the first basic cell is 0.
The above and other features and advantages of the present invention will become more apparent by describing in detail exemplary embodiments thereof with reference to the attached drawings in which:
The present invention will now be described more fully with reference to the accompanying drawings, in which exemplary embodiments of the invention are shown.
In the present invention, Equations 2 through 4 are transformed into Equations 6 through 8 in order to remove a conventional degree computation unit for calculating and comparing degrees.
R
i(x)=bi−1Ri−1(x)−x|li−1|ai−1Qi−1(x)
Q
i(x)=Qi−1(x) (6)
R
i(x)=ai−1Qi−1(x)−x|li−1|bi−1Ri−1(x)
Q
i(x)=Ri−1(x) (7)
if(lx−1<0)SWAP(Ri−1(x),Qi−1(x))
R
i(x)=bi−1Ri−1(x)−x|li−1|ai−1Qi−1(x)
Q
i(x)=Qi−1(x) (8)
if(li−1<0)SWAP(Ri−1(x),Qi−1(x))
L
i(x)=bi−1Li−1(x)−x|li−1|ai−1Ui−1(x)
U
i(x)=Ui−1(x) (9)
When σ i−1 is 1, Equation 2 becomes Equation 6, and when σi−1 is 0, Equation 2 becomes Equation 7. When Ii−1 is a negative number and polynomials Ri−1(x) and Qi−1(x) are swapped in Equation 6, since a polynomial Ri−1(x)new is the polynomial Qi−1(x), a polynomial Qi−1(x)new is the polynomial Ri−1(x), a coefficient ai−1—new is a coefficient bi−1 of a highest degree term of the polynomial Qi−1(x), and a coefficient bi−1—new is a coefficient ai−1 of a highest degree term of the polynomial Ri−1(x), the same result is obtained as when the polynomials Ri−1(x) and Qi−1(x) are applied to Equation 7. That is, each of Equations 6 and 7 can be transformed into Equation 8 and Equation 9 can be transformed in the same manner.
In
A polynomial on which a shift operation is to be performed should be located at an output end of a multiplexer. Input patterns should be used in order to generate three control signals without using the number Ii−1. Three input patterns are given by Equations 11 through 13.
where k is an integer.
where m is an integer.
Since a degree of Q0(x) is always less than a degree of R0(x), a basic cell 1 of
In
In the case of the input pattern of Equation 12, since a degree of xQ0(x) input to the basic cell 1 is less than a degree of R0(x), an operation of multiplying xQ0(x) by x is performed. Hence, when the input signal Sl is 0, the initial state S0 of
In the case of the input pattern of Equation 13, the basic cell 1 becomes the same as in Equation 11. However, since a degree of R1(x) is less than a degree of Q1(x) in this case, a swap operation, instead of a polynomial operation, is performed on R1(x) and Q1(x). Since a swap operation and a polynomial operation can be simultaneously performed but a polynomial operation and a shift operation cannot be simultaneously performed, a shift operation is performed so that a polynomial operation is performed right before a swap operation is performed. Hence, when the input signal Sl is 0 in the state S1 of
The FSM of
A value of each of Ci−1(x) and Ei−1(x) is 0 or 1, and ‘−’ means that a corresponding input/output does not affect a state transition. If a stop signal becomes 1, only a shift operation is performed on the basic cells. However, there are things to additionally consider in order to guarantee that C2t(x) and E2t(x) have right values after operations are performed on 2t basic cells. For example, although outputs of a 6th basic cell are an error value polynomial and an error locator polynomial, since one degree per two basic cells should be reduced in order that a degree of C6(x) of the 6th basic cell becomes 12 and a degree of C2t(x) becomes 7, registers 2 in even-numbered cells are removed.
Referring to
The control signal generating unit 640 generates a control signal on the basis of the FSM of
The stop signal generating unit 650 generates a stop signal on the basis of the FSM of
The operation units 610, 620, and 630 perform operations according to the control signals of the control signal generating unit 640 and the stop signal generating unit 650, and particularly, even-numbered basic cells reduce degrees by removing registers 602, 632, and 634 marked by dotted lines in
As described above, since a degree computation unit for comparing and calculating degrees, which is included in a basic cell of a conventional operation circuit for a modified Euclidean algorithm, is removed, in the present invention, data streams can be efficiently processed, blocks can be easily pipelined, and hardware complexity can be reduced.
While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present invention as defined by the following claims.
Number | Date | Country | Kind |
---|---|---|---|
2007-0045111 | May 2007 | KR | national |