KR20060065452A - Reed-solomon decoder and circuits of the modified euclid's algorithm - Google Patents

Reed-solomon decoder and circuits of the modified euclid's algorithm Download PDF

Info

Publication number
KR20060065452A
KR20060065452A KR1020050042911A KR20050042911A KR20060065452A KR 20060065452 A KR20060065452 A KR 20060065452A KR 1020050042911 A KR1020050042911 A KR 1020050042911A KR 20050042911 A KR20050042911 A KR 20050042911A KR 20060065452 A KR20060065452 A KR 20060065452A
Authority
KR
South Korea
Prior art keywords
polynomial
error
control signal
value
calculating
Prior art date
Application number
KR1020050042911A
Other languages
Korean (ko)
Other versions
KR100747487B1 (en
Inventor
김진규
구본태
엄낙웅
Original Assignee
한국전자통신연구원
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 한국전자통신연구원 filed Critical 한국전자통신연구원
Publication of KR20060065452A publication Critical patent/KR20060065452A/en
Application granted granted Critical
Publication of KR100747487B1 publication Critical patent/KR100747487B1/en

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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • G06F17/156Correlation function computation including computation of convolution operations using a domain transform, e.g. Fourier transform, polynomial transform, number theoretic transform
    • 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/1525Determination and particular use of error location polynomials
    • H03M13/1535Determination and particular use of error location polynomials using the Euclid algorithm
    • 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/6522Intended application, e.g. transmission or communication standard

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

본 발명은 디지털 멀티미디어 방송(DMB)용 리드-솔로몬 디코더(Reed-Solomon decoder)에 있어서, 특히 단일의 유클리드 알고리즘 연산 셀을 사용하여, 계산 회로의 규모를 줄이고 유클리드 연산셀의 회로 구성을 단순화 함으로써 저전력 동작에 효율적인 리드-솔로몬 복호 장치 및 수정된 유클리드 알고리즘 연산회로를 제공함에 있다.The present invention relates to a low-power by reducing the size of the calculation circuit and simplifying the circuit configuration of the Euclidean computational cell, particularly in a Reed-Solomon decoder for digital multimedia broadcasting (DMB). The present invention provides an efficient Reed-Solomon decoding device and a modified Euclidean algorithm calculation circuit.

본 발명에 따른 수정된 유클리드 알고리즘 연산회로에 의한 방법은 R(x)와 Q(x)의 차수값을 각각 변수로 두어 다항식으로부터 직접 계산하지 않고 조건에 따라 계산이 되게 하여, 수정된 유클리드 알고리즘 멈춤 조건이 사라지는 대신 2*t번 루프를 반복하도록 하여 제어가 쉽도록 한다.The modified Euclidean algorithm according to the present invention uses the order of R (x) and Q (x) as variables so that the calculation is performed according to the condition without directly calculating from the polynomial, thereby stopping the modified Euclidean algorithm. Instead of disappearing the condition, loop 2 * t times to make control easier.

디지털 멀티미디어 방송(DMB), 리드-솔로몬 복호 장치(Reed-Solomon decoder), 신드롬 계산 회로, 유클리드 알고리즘 계산 셀, 오류 위치 및 오류 값 Digital multimedia broadcasting (DMB), Reed-Solomon decoder, syndrome calculation circuit, Euclidean algorithm calculation cell, error location and error value

Description

리드-솔로몬 복호 장치 및 수정된 유클리드 알고리즘 연산회로{Reed-Solomon decoder and circuits of the modified Euclid's algorithm}Reed-Solomon decoder and circuits of the modified Euclid's algorithm

도 1은 일반적인 리드-솔로몬(RS,Reed-Solomon) 복호 장치를 나타낸 블록도.1 is a block diagram showing a general Reed-Solomon (RS) decoding apparatus.

도 2는 일반적인 리드-솔로몬 복호 장치에 구비된 신드롬 다항식 연산부의 신드롬 계산 회로 구조를 나타낸 도면.2 is a diagram illustrating a syndrome calculation circuit structure of a syndrome polynomial calculation unit provided in a general Reed-Solomon decoding device.

도 3은 일반적인 리드-솔모몬 복호 장치에 구비된 체인 서치부와 포니 알고리즘 연산부의 연산 회로 구조를 나타낸 도면.3 is a diagram illustrating an arithmetic circuit structure of a chain search unit and a pony algorithm calculation unit included in a general Reed-Solmomon decoding device.

도 4는 본 발명의 일실시예에 따른 리드-솔로몬 복호 장치에 적용되는 수정된 유클리드 알고리즘 연산부의 연산방법을 나타낸 플로우챠트.4 is a flowchart illustrating a method of calculating a modified Euclidean algorithm calculation unit applied to a Reed-Solomon decoding apparatus according to an embodiment of the present invention.

도 5는 본 발명의 일실시예에 따른 리드-솔로몬 복호 장치에 적용되는 수정된 유클리드 알고리즘 연산부의 하드웨어 구성을 나타낸 블록도.FIG. 5 is a block diagram illustrating a hardware configuration of a modified Euclidean algorithm calculation unit applied to a Reed-Solomon decoding apparatus according to an embodiment of the present invention. FIG.

도 6은 도 4의 다항식 교환에 따른 레지스터 값의 변화를 나타낸 도면.6 is a diagram illustrating a change in a register value according to the polynomial exchange of FIG. 4.

도 7은 도 4의 R(x), U(x), Rdeg 연산에 따른 레지스터 값의 변화를 나타낸 도면.FIG. 7 is a view illustrating a change in register values according to R (x), U (x), and R deg operations of FIG. 4. FIG.

도 8은 도 4의 Q(x), V(x), Qdeg 연산에 따른 레지스터 값의 변화를 나타낸 도면.FIG. 8 is a view illustrating a change in register values according to Q (x), V (x), and Q deg operations of FIG. 4. FIG.

도 9는 본 발명의 일실시예에 따른 리드-솔로몬 복호 장치에 적용되는 수정된 유클리드 알고리즘 연산부의 연산 회로 구조를 나타낸 도면.FIG. 9 is a diagram illustrating an operation circuit structure of a modified Euclidean algorithm calculation unit applied to a Reed-Solomon decoding apparatus according to an embodiment of the present invention. FIG.

도 10은 본 발명의 일실시예에 따른 리드-솔로몬 복호 장치에 적용되는 수정된 유클리드 알고리즘 연산부의 연산 셀 구조를 나타낸 도면.FIG. 10 is a diagram illustrating an arithmetic cell structure of a modified Euclidean algorithm calculation unit applied to a Reed-Solomon decoding apparatus according to an embodiment of the present invention. FIG.

< 도면의 주요 부분에 대한 부호의 설명 ><Description of Symbols for Main Parts of Drawings>

100 : 신드롬 다항식 연산부 102 : 수정된 유클리드 알고리즘 연산부      100: syndrome polynomial calculator 102: modified Euclidean algorithm calculator

104 : 체인 서치부 106 : 포니 알고리즘 연산부      104: chain search unit 106: Pony algorithm operation unit

108 : 선입선출부 110 : 제어부      108: first-in, first-out 110

500 : 레지스터/메모리부 502 : 처리부      500: register / memory section 502: processing section

504 : 제어부 506 : 레지스터 교환부      504 control unit 506 register exchange unit

508 : 시프트 연산부 510 : 유한체 곱셈부      508: shift calculation unit 510: finite field multiplication unit

512 : 유한체 덧셈부 514 : 뺄셈 연산부      512: finite field addition unit 514: subtraction operation unit

900 : 멀티플렉서 902 : 레지스터      900: multiplexer 902: register

904 : 수정된 유클리드 알고리즘 연산셀      904: Modified Euclidean Algorithm Cell

906 : 제어기      906: controller

본 발명은 디지털 멀티미디어 방송(DMB)용 리드-솔로몬 복호 장치 및 수정 된 유클리드 알고리즘 연산회로에 관한 것이다.The present invention relates to a Reed-Solomon decoding device for digital multimedia broadcasting (DMB) and a modified Euclidean algorithm calculation circuit.

현재 디지털 통신 시스템에서는 채널상의 잡음으로 발생하는 신호 에러를 정정하기 위한 수단으로 전방오류정정부호기(Forward Error Correction, 이하 FEC로 표기)를 사용하고 있다. 이러한 FEC 기법 가운데 연집 에러에 대한 효과적인 정정방법으로 리드-솔로몬(RS,Reed-Solomon) 코드가 많이 채택되어 사용되고 있다.Currently, digital communication systems use Forward Error Correction (FEC) as a means for correcting signal errors caused by noise on channels. Among these FEC techniques, Reed-Solomon (RS) codes are widely used and used as an effective correction method for linking errors.

리드-솔로몬 코드는 높은 코드율(R)과 우수한 정정능력으로 많은 응용분야에서 쓰이고 있는데, 대표적으로는 씨디 플레이어(Compact Disc Player), 디지털 오디오 테잎 레코더(Digital Audio Tape Recorder), 디지털 비디오 카세트 레코더(Digital VCR), 디지털 비디오 방송(DVB-T,Digital Video Broadcasting-Terrestrial), 디지털 멀티미디어 방송(DMB,Digital Multimedia Broadcasting) 등에 사용된다.Reed-Solomon codes are used in many applications because of their high code rate (R) and excellent correction capability. Typical CD players, compact audio tape recorders, and digital video cassette recorders Digital VCR), Digital Video Broadcasting-Terrestrial (DVB-T), Digital Multimedia Broadcasting (DMB).

리드-솔로몬 부호는 유한체(Galois Field)라는 특수한 수 체계 내에서 부호화 및 복호화 과정이 수행된다. 유한체내에서의 사칙연산은 그 계산 방법이 일반 수 체계 내에서의 방법과 다르며, 효율적인 회로 구조가 계속 연구되고 있다.Reed-Solomon codes are coded and decoded in a special number system called a Galois Field. In arithmetic operations in finite bodies, the calculation method is different from that in the general number system, and efficient circuit structure is continuously studied.

리드-솔로몬 부호는 (N, K)로 표현되며, 여기서 N은 부호화기로부터 출력되는 코드 블록 수를 의미하고, K는 부호화기로 입력되는 메시지 블록 수를 의미한다. N-K는 부가적으로 삽입되는 블록을 의미하는데 이 값에 의해서 리드-솔로몬 코드가 정정할 수 있는 블록 수(t)가 결정된다. 일반적으로 블록수 t는 (N-K)/2로 계산된다.The Reed-Solomon code is represented by (N, K), where N means the number of code blocks output from the encoder, and K means the number of message blocks input to the encoder. N-K means an additionally inserted block, which determines the number of blocks t that the Reed-Solomon code can correct. In general, the number of blocks t is calculated as (N-K) / 2.

리드-솔로몬 부호화기는 나눗셈기 하나를 이용하여 쉽게 회로화가 가능하지 만, 복호기는 상대적으로 복잡한 알고리즘과 연산회로를 요구한다. 따라서 복호화를 간단하고 용이하게 할 수 있는 알고리즘들이 많이 연구되어져 왔는데, 이중 대표적으로 알려진 방법이 벨르캄프(Berlekamp)의 반복 알고리즘에 메시(Massey)의 피드백 시프트 레지스터(FSR,Feedback Shift Register)을 이용한 방법, 유클리드(Euclid) 알고리즘 및 수정된 유클리드 알고리즘이 있다. 이 중 다항식 나눗셈이 필요 없는 수정된 유클리드 알고리즘이 많이 사용된다.Reed-Solomon encoders can be easily circuited using a divider, but decoders require relatively complex algorithms and computational circuits. Therefore, a number of algorithms that can simplify and facilitate decoding have been studied. A representative method is a method using a mesh feedback feedback register (FSR) of Bellekamp's iterative algorithm. , Euclid algorithm and modified Euclid algorithm. Among them, a modified Euclidean algorithm that does not require polynomial division is frequently used.

리드-솔로몬 디코더의 주요 기능은 입력된 신호의 오류를 정정하는 것으로 주어진 정정 능력 범위 안에서 오류가 발생한 심볼을 정정한다. 또한 정정한 후에 다시 오류 유무를 검사함으로써 다음 블록에 오류 유무를 알려주고, 오류의 발생 빈도나 오류 비트 수를 알려줌으로써 비트에러율(BER,Bit Error Rate) 계산도 가능하다.The main function of the Reed-Solomon decoder is to correct the error of the input signal and to correct the error symbol within the given correction capability range. In addition, after correcting and checking the error again, the next block is notified of the error, and the frequency of error occurrence or the number of error bits can be known to calculate the bit error rate (BER).

도 1은 일반적인 리드-솔로몬(RS,Reed-Solomon) 복호 장치를 나타낸 블록도이다. 도 1을 참조하면, 상기 리드-솔로몬 복호 장치는 신드롬 다항식 연산부(100), 수정된 유클리드 알고리즘 연산부(102), 체인 서치 연산부(104), 포니 알고리즘 연산부(106), 선입선출부(FIFO,First In First Out)(108) 및 제어부(110)를 포함한다.1 is a block diagram showing a general Reed-Solomon (RS) decoding apparatus. Referring to FIG. 1, the Reed-Solomon decoding apparatus includes a syndrome polynomial calculation unit 100, a modified Euclidean algorithm calculation unit 102, a chain search calculation unit 104, a pony algorithm operation unit 106, and a first-in first-out unit (FIFO, First). In First Out) 108 and the controller 110.

상기 신드롬 다항식 연산부(100)에서는 데이터 입력 신호 및 프레임 동기 신호가 수신되면, 신드롬 계산이 수행되는데, 이 신드롬 계산은 리드-솔로몬 부호의 오류 유무를 판단하고 오류 위치 다항식 및 오류 평가 다항식을 계산하기 위한 단서로 활용된다. 이는 신드롬의 값 자체가 오류 위치와 오류 값으로 이루어져 있 기 때문이다.When the data input signal and the frame synchronization signal are received, the syndrome polynomial calculating unit 100 performs syndrome calculation. The syndrome calculation is performed to determine the presence or absence of an error of a Reed-Solomon code and to calculate an error location polynomial and an error evaluation polynomial. It is used as a clue. This is because the value of the syndrome itself consists of the error location and error value.

다음, 수정된 유클리드 알고리즘 연산부(102)에서는 신드롬 다항식값을 이용하여 오류 위치 다항식과 오류 평가 다항식을 계산한다. 이는 리드-솔로몬 복호기에서 가장 복잡한 부분이며, 계산량이 많이 요구되는 부분이다.Next, the modified Euclidean algorithm calculating unit 102 calculates an error location polynomial and an error evaluation polynomial using the syndrome polynomial value. This is the most complex part of the Reed-Solomon decoder, and it requires a lot of computation.

상기 유클리드 알고리즘 연산이 완료되면, 체인 서치 연산부(104)에서는 오류 위치 및 평가 다항식을 이용하여 오류 위치 및 오류 평가값을 계산하고, 포니 알고리즘 연산부(106)에서는 오류 값을 계산하여 오류 정정을 시작한다. 이렇게 정정된 리드-솔로몬 프레임을 이용하여 다시 신드롬 연산을 수행하고, 오류가 성공적으로 정정되었는지를 검사한다. 만약에 오류가 있을 경우에는 디코딩이 실패했음을 알린다.When the Euclidean algorithm operation is completed, the chain search operation unit 104 calculates an error position and an error evaluation value using the error position and the evaluation polynomial, and the pony algorithm operation unit 106 calculates an error value to start error correction. . The corrected Reed-Solomon frame is used to perform the syndrome operation again and check whether the error has been corrected successfully. If there is an error, it indicates that decoding has failed.

한편, 선입선출부(108)는 선데이터 처리할 때까지 대기하는 역할을 수행하는 일종의 버퍼이며, 제어부(110)는 신드롬 다항식 연산부(100), 수정된 유클리드 알고리즘 연산부(102), 체인 서치부(104) 및 포니 알고리즘 연산부(108)와 연결되어 일반적인 리드-솔로몬 복호장치의 전반적인 제어를 수행한다.On the other hand, the first-in, first-out unit 108 is a kind of buffer that serves to wait until the first data processing, the control unit 110 is a syndrome polynomial operation unit 100, the modified Euclidean algorithm operation unit 102, the chain search unit ( 104) and the Pony algorithm calculation unit 108 to control the overall Reed-Solomon decoder.

도 2는 일반적인 리드-솔로몬 복호 장치에 구비된 신드롬 다항식 연산부의 신드롬 계산 회로 구조를 나타낸 도면이고, 도 3은 일반적인 리드-솔모몬 복호 장치에 구비된 체인 서치부와 포니 알고리즘 연산부의 연산 회로 구조를 나타낸 도면이다.FIG. 2 is a diagram illustrating a syndrome calculation circuit structure of a syndrome polynomial calculation unit included in a general Reed-Solomon decoding device, and FIG. 3 illustrates a calculation circuit structure of a chain search unit and a pony algorithm calculation unit included in a general Reed-Solomon decoding device. The figure shown.

도 2를 참조하면, 신드롬 다항식 연산부(100)는 복수개의 플립플롭(FF), 복수개의 멀티플렉서(MUX), 복수개의 덧셈기 및 곱셈기로 구성된다. 상기 신드롬 다 항식 연산부(100)에 리드-솔로몬 프레임 동기 신호가 온(ON)상태이면 레지스터가 초기화 되면서 데이터 입력신호가 레지스터로 입력된다. 즉, 리드-솔로몬 프레임 동기 신호가 '1'인 동안에 레지스터가 초기화 되면서 데이터 입력 신호가 레지스터로 입력된다.Referring to FIG. 2, the syndrome polynomial calculating unit 100 includes a plurality of flip-flops FF, a plurality of multiplexers MUX, a plurality of adders, and a multiplier. When the Reed-Solomon frame synchronization signal is ON in the syndrome polynomial calculating unit 100, the register is initialized and the data input signal is input to the register. That is, the register is initialized while the Reed-Solomon frame sync signal is '1' and the data input signal is input to the register.

이때부터 리드-솔로몬 프레임 데이터가 모두 입력될 때까지 루프 연산을 수행하게 된다. 레지스터에 저장되어 있는 데이터는 각각의 상수 곱셈 연산을 한 후 다시 레지스터로 저장된다. 연산이 완료되며, 16개의 신드롬 데이터(S0 내지 S15)가 병렬로 한꺼번에 출력된다. 이렇게 16개의 계수로 이루어진 출력을 신드롬 다항식 S(x)로 정의한다.From this point on, loop operation is performed until all Reed-Solomon frame data is input. The data stored in the register is stored in the register after each constant multiplication operation. The operation is completed, and 16 syndrome data (S 0 to S 15 ) are output at once in parallel. The output of 16 coefficients is defined by the syndrome polynomial S (x).

한편, 수정된 유클리드 알고리즘은 최고차항을 소거하여 반복적으로 차수를 줄이는 방식으로 오류위치 및 오류 크기 다항식을 구하기 위해 수학식 1과 같이 초기값을 정한다. On the other hand, the modified Euclidean algorithm determines the initial value as shown in Equation 1 in order to obtain the error position and error magnitude polynomial by eliminating the highest order term and repeatedly decreasing the order.

RO(x)=x2t , QO(x)=S(x)R O (x) = x 2t , Q O (x) = S (x)

UO(x)=0 , VO(x)=1U O (x) = 0, V O (x) = 1

수학식 2는 각각 i+1번 반복 연산이 수행될 경우 다항식 Ri+1(x)와 Qi+1(x), Ui+1(x)와 Vi+1(x)의 관계식이다. ai와 bi는 각각 Ri(x)와 Qi(x)의 최고차항 계수를 나타내며, li와 σi는 다항식 R(x), Q(x)의 차수에 따라 값이 결정된다. d(Ri)와 d(Qi) 는 각각 다항식 Ri(x)와 Qi(x)의 차수(degree)를 나타낸다.Equation 2 is a relation between polynomials R i + 1 (x), Q i + 1 (x), U i + 1 (x) and V i + 1 (x) when i + 1 iteration operation is performed, respectively. . a i and b i represent the highest order coefficients of R i (x) and Q i (x), respectively, and l i and σ i are determined according to the order of the polynomials R (x) and Q (x). d (R i ) and d (Q i ) represent the degrees of the polynomials R i (x) and Q i (x), respectively.

Figure 112005026819612-PAT00001
Figure 112005026819612-PAT00002
Figure 112005026819612-PAT00003
Ri+1(x)=[σibiRi(x)+aiQi(x)]-[σibiQi(x)+biRi(x)]
Figure 112005026819612-PAT00001
Figure 112005026819612-PAT00002
Figure 112005026819612-PAT00003
R i + 1 (x) = [σ i b i R i (x) + a i Q i (x)]-[σ i b i Q i (x) + b i R i (x)]

Qi+1(x)=σiQi(x)+

Figure 112005026819612-PAT00004
Ri(x)Q i + 1 (x) = σ i Q i (x) +
Figure 112005026819612-PAT00004
R i (x)

Ui+1(x)=[σibiUi(x)+

Figure 112005026819612-PAT00005
aiVi(x)]-
Figure 112005026819612-PAT00006
iaiVi(x)+
Figure 112005026819612-PAT00007
biUi(x)]U i + 1 (x) = [σ i b i U i (x) +
Figure 112005026819612-PAT00005
a i V i (x)]-
Figure 112005026819612-PAT00006
i a i V i (x) +
Figure 112005026819612-PAT00007
b i U i (x)]

Vi+1(x)=σiVi(x)+

Figure 112005026819612-PAT00008
Ui(x)V i + 1 (x) = σ i V i (x) +
Figure 112005026819612-PAT00008
U i (x)

li=d(Ri)-d(Qi)l i = d (R i ) -d (Q i )

if li≥0 then σi=1if l i ≥0 then σ i = 1

if li〈0 then σi=0if l i 〈0 then σ i = 0

d(Ri)≤d(Ui)가 되면 반복연산을 멈추게 되고, 이 때의 Ri(x)와 Ui(x)가 각각 오류 크기 다항식과 오류 위치 다항식이 된다. 즉, 수정된 유클리드 알고리즘 연산부(102)는 상기 수학식 1 내지 수학식 3의 다항식을 연산하기 위한 것이다.When d (R i ) ≦ d (U i ), the iterative operation is stopped, and R i (x) and U i (x) become the error magnitude polynomial and the error position polynomial, respectively. That is, the modified Euclidean algorithm operation unit 102 is for calculating the polynomials of Equations 1 to 3 above.

도 3을 참조하면, 체인 서치부(104)는 통상 두 개가 존재하는데 제 1 체인 서치부(300)는 오류 위치 다항식 계수를 입력으로 받아들여 오류 위치 값과 미분된 오류 위치 다항식의 근인 오류 위치 값을 계산하는 회로이며, 제 2 체인 서치부(302)는 오류 평가 다항식 계수를 입력으로 받아들여 오류 평가값을 계산하는 회로이다.Referring to FIG. 3, there are usually two chain search units 104. The first chain search unit 300 receives an error position polynomial coefficient as an input, and an error position value near the error position value and the differentiated error position polynomial. The second chain search unit 302 is a circuit that receives an error evaluation polynomial coefficient as an input and calculates an error evaluation value.

상기 제 1 체인 서치부(300)에서 계산된 오류 위치값은 포니 알고리즘 연산부(106) 내의 오류 정정블록(304)에 입력되고, 미분한 오류 위치값은 역수 계산 회로부(306)를 통해 나온 역수값과 제 2 체인 서치부(302)에서 계산된 오류 평가값을 곱하여 계산된 오류값이 오류 정정블록(304)에 입력된다.The error position value calculated by the first chain search unit 300 is input to an error correction block 304 in the pony algorithm calculation unit 106, and the differential error position value is an inverse value obtained through the inverse calculation circuit unit 306. And an error value calculated by multiplying the error evaluation value calculated by the second chain search unit 302 is input to the error correction block 304.

상기 오류 정정블록(304)은 계산된 오류 위치와 오류값을 이용하여 오류 정정을 수행하는데, 해당하는 오류 위치에서 오류값을 선입선출부(108)를 통해 지연된 수신 데이터와 익스클루시브오알(XOR)연산을 함으로써 정정이 이루어진다.The error correction block 304 performs error correction using the calculated error position and the error value, and the received data and the exclusive OAL delayed by the first-in-first-out unit 108 at the corresponding error position. Operation is performed.

상기와 같은 일반적인 리드-솔로몬 복호 장치 내에 구비되는 수정된 유클리드 알고리즘 연산 회로는 알고리즘 연산을 위해 복수개의 유클리드 연산 셀(cell)이 사용되므로 계산 회로의 규모가 커지는 문제점이 있다.The modified Euclidean algorithm calculation circuit provided in the general Reed-Solomon decoding device has a problem in that the calculation circuit becomes large because a plurality of Euclidean calculation cells are used for algorithm calculation.

또한, 상기 유클리드 연산셀의 회로 구성이 복잡하여 제어가 용이하지 않고, 많은 전력이 소모되는 문제점이 있다.In addition, since the circuit configuration of the Euclidean operation cell is complicated, it is not easy to control and a lot of power is consumed.

본 발명의 목적은 리드-솔로몬 디코더를 설계함에 있어 단일의 유클리드 알고리즘 연산 셀을 사용하여, 계산 회로의 규모를 줄이고 유클리드 연산셀의 회로 구성을 단순화 함으로써 저전력 동작에 유리한 구조로 설계된 리드-솔로몬 복호 장치 및 수정된 유클리드 알고리즘 연산회로를 제공함에 있다.An object of the present invention is to design a Reed-Solomon decoder using a single Euclidean algorithm calculation cell, and to reduce the size of the calculation circuit and simplify the circuit configuration of the Euclidean calculation cell, the Reed-Solomon decoding device designed for low power operation And a modified Euclidean algorithm computation circuit.

본 발명의 일 특징에 따른 수정된 유클리드 알고리즘 연산회로가 제공된다. 상기 회로는, 신드롬 다항식(S(x))을 이용하여 오류평가 다항식(ω(x)) 및 오류 위치 다항식(σ(x))을 구하기 위한 유클리드 알고리즘 연산 회로에 있어서, 다항식 Ri(x), Qi(x), Ui(x) 및 Vi(x)(여기서, 0≤i≤2t, t는 오류정정가능한 블록수임)의 계수를 각각 저장하기 위한 4개의 레지스터로서, R0(x)= x2t, Q0(x) = S(x), U0(x) =0 및 V0(x) = 1로 각각 초기화되는 4개의 레지스터; 상기 다항식 Ri(x)의 차수(R_degi) 및 다항식 Qi(x)의 차수(Q_degi)를 각각 저장하기 위한 2개의 메모리 유니트로서, R_deg0= 2*t 및 Q_deg0= 2*t-1로 각각 초기화되는 메모리 유니트; 상기 2개의 메모리 유니트에 저장된 차수들(R_degi, Q_degi)과 t값 사이의 비교 연산 및 상기 차수들간의 비교 연산을 수행하여 2개의 제어 신호를 생성하고, 상기 제어 신호에 따라 Ri+1(x), Qi+1(x), Ui+1(x) 및 Vi+1(x)의 계수 및 상기 Ri+1(x) 및 Qi+1(x)의 차수(R_degi+1 및 Q_degi+1)를 각각 계산하고 그 결과를 대응하는 상기 레지스터 및 메모리 유니트에 각각 저장하는 동작을 2*t번 반복 수행하기 위한 유클리드 연산 셀;상기 유클리드 연산 셀의 동작의 2*t번 반복 수행된 후에 상기 다항식 R(x)를 오류평가 다항식(ω(x))으로 출력하고, 상기 다항식 U(x)를 오류위치 다항식(σ(x))으로 출력하기 위한 제어부를 포함한다. 상기 유클리드 연산 셀은, 상기 Ri+1(x) 및 Qi+1(x)의 차수(R_degi+1 및 Q_degi+1)를 계산하기 위한 차수 연산부와, 다항식 Ri+1(x), Qi+1(x), Ui+1(x) 및 Vi+1(x)의 계수를 계산하기 위한 계수 연산부를 독립적으로 구비하는 것을 특징으로 한다. 상기 차수 연산부는, 상기 Ri(x)의 차수값(R_degi) 및 Qi(x)의 차수값(Q_degi)의 값이 t보다 작은지를 판단하고, 작다면 제 1 제어 신호를 1로 설정하기 위한 제 1 제어 신호 설정 수단과, 상기 제 1 제어 신호값이 0이고 R_degi이 Q_degi보다 크거나 같은 경우와, 상기 제 1 제어 신호값이 1이고 R_degi이 Q_degi보다 작은 경우에는 제 2 제어 신호를 1로 설정하기 위한 제 2 제어 신호 설정 수단과, 상기 제 2 제어신호값이 1인 경우에 R_degi와 Q_degi를 교환하기 위한 수단과, 상기 제 1 제어 신호값이 0이고 Qi(x)의 최고차항 계수를 나타내는 bi이 0이 아닌 경우에는 R_degi+1 = R_degi - 1로 설정하기 위한 수단과, 상기 제 1 제어 신호값이 0이고 bi이 0인 경우에는 Q_degi+1 = Q_degi - 1로 설정하기 위한 수단을 포함하는 것을 특징으로 한다. 상기 계수 연산부는, 상기 제 2 제어신호값이 1인 경우에 상기 레지스터에 저장된 Ri(x)와 Qi(x)를 교환하고 Ui(x)와 Vi(x)를 교환하기 위한 수단과, 상기 제 1 제어 신호값이 0이고 bi이 0이 아닌 경우에 Ri(x)의 최고차항 계수를 나타내는 ai, bi, Ri(x), Qi(x), Ui(x), Vi(x)에 대하여 유한체 곱셈, 유한체 덧셈 및 쉬프트 연산을 수행함으로써 Ri+1(x)와 Ui+1(x)를 계산하는 제 1 연산 수단과, 상기 제 1 제어 신호값이 0이고 bi이 0인 경우에 Qi(x) 및 Vi(x)에 대한 쉬프트 연산을 수행함으로써 Qi+1(x)와 Vi+1(x)를 계산하는 제2 연산수단을 포함하는 것을 특징으로 한다. 상기 제 1 제어 신호는 중지 신호이고, 상기 제 2 제어 신호는 σi인 것을 특징으로 한다.A modified Euclidean algorithm computation circuit is provided in accordance with an aspect of the present invention. The circuit is a Euclidean algorithm calculation circuit for obtaining an error evaluation polynomial (ω (x)) and an error position polynomial (σ (x)) using a syndrome polynomial S (x), wherein the polynomial R i (x) , Q i (x), U i (x) and V i (x), the coefficient of (here, 0≤i≤2t, t is error correctable block numbers) as four registers for storing, respectively, R 0 ( four registers each initialized with x) = x 2t , Q 0 (x) = S (x), U 0 (x) = 0 and V 0 (x) = 1; The polynomial a degree (Q_deg i) of R i (x) order (R_deg i) and polynomial Q i (x) of a second memory unit for storing, respectively, R_deg 0 = 2 * t and Q_deg 0 = 2 * t Memory units each initialized to -1; Two control signals are generated by performing a comparison operation between the orders R_deg i and Q_deg i stored in the two memory units and a value of t and the orders, and according to the control signals, R i + 1 (x), the coefficients of Q i + 1 (x), U i + 1 (x) and V i + 1 (x) and the order of the R i + 1 (x) and Q i + 1 (x) (R_deg a Euclidean arithmetic cell for repeating the operation of calculating i + 1 and Q_deg i + 1 ) and storing the result in the corresponding register and memory unit, respectively 2 * t times; and a control unit for outputting the polynomial R (x) as an error evaluation polynomial (ω (x)) after repeating t times and outputting the polynomial U (x) as an error position polynomial (σ (x)). . The Euclidean arithmetic cell includes an order calculating unit for calculating the orders R_deg i + 1 and Q_deg i + 1 of the R i + 1 (x) and Q i + 1 (x), and a polynomial R i + 1 (x ), Q i + 1 (x), U i + 1 (x) and V i + 1 (x), the coefficient calculating unit for calculating the coefficients of the independent. The degree calculating section, a first a first control signal if the determining if less than the value of the order value (Q_deg i) of order value (R_deg i) and Q i (x) of the R i (x) t, and less First control signal setting means for setting, when the first control signal value is 0 and R_deg i is greater than or equal to Q_deg i , and when the first control signal value is 1 and R_deg i is smaller than Q_deg i Second control for setting the second control signal to one; When the signal setting means, and the value and the second control signal is 1 R_deg i and Q_deg i a b represents the highest order term coefficient of the means and the first control signal value is 0, and Q i (x) for exchanging i If non-zero, R_deg i + 1 = R_deg i - to set to 1 when the means for setting to 1 and a value of the first control signal is 0, and b i is 0, Q_deg i + 1 = Q_deg i It comprises a means for. The coefficient calculating unit, means for exchanging R i (x) and Q i (x) stored in the register when the second control signal value is 1 and exchanging U i (x) and V i (x). And a i, b i , R i (x), Q i (x), U i representing the highest order coefficient of R i (x) when the first control signal value is zero and b i is not zero. first computing means for calculating R i + 1 (x) and U i + 1 (x) by performing finite field multiplication, finite field addition, and shift operations on (x), V i (x), and 1 Q i + 1 (x) and V i + 1 (x) are calculated by performing shift operations on Q i (x) and V i (x) when the control signal value is 0 and b i is 0. And second calculating means. The first control signal is a stop signal, and the second control signal is σ i .

상기 다항식들의 최고차항 위치를 알려주기 위한 다항식 동기 신호를 저장하기 위한 다항식 동기 신호 레지스터를 더 포함하고, 상기 레지스터는 “000...01” 비트열로 초기화되는 것을 특징으로 한다.And a polynomial synchronizing signal register for storing a polynomial synchronizing signal for indicating a position of the highest order term of the polynomials, wherein the register is initialized to a "000 ... 01" bit string.

상기 다항식 Ri(x), Qi(x), Ui(x) 및 Vi(x)의 계수를 각각 저장하기 위한 4개의 레지스터 각각은 총 2t+1개의 계수를 저장하고, 각각의 계수는 m(유한체내에서의 심볼 비트수를 나타냄)개의 비트로 이루어진 것을 특징으로 한다.Each of the four registers for storing the coefficients of the polynomials R i (x), Q i (x), U i (x) and V i (x) respectively stores a total of 2t + 1 coefficients, and each coefficient Is characterized in that it consists of m bits representing the number of symbol bits in the fin.

본 발명의 다른 특징에 따르면, 리드-솔로몬 복호 장치가 제공된다. 상기 장치는, 리드 솔로몬 코드 워드로부터 신드롬 다항식을 계산하기 위한 신드롬 다항식 연산 회로와, 상기 신드롬 다항식 연산부에 의해 계산된 신드롬 다항식을 이용하여 오류평가 다항식(ω(x)) 및 오류 위치 다항식(σ(x))을 구하기 위한 제 1항 내지 제 7항 중 어느 하나의 항에 따른 유클리드 알고리즘 연산 회로; 상기 유클리드 알고리즘 연산회로에 의해 계산된 상기 오류평가 다항식(ω(x)) 및 오류 위치 다항식(σ(x))을 이용하여 오류 위치 및 오류 평가값을 계산하기 위한 체인 서치 회로; 상기 체인서치 회로에 의해 계산된 오류 위치 및 오류 평가값을 이용하여 오류값을 계산하여 오류 정정을 수행하는 포니 알고리즘 계산 회로를 포함하는 것을 특징으 로 한다.According to another feature of the invention, a Reed-Solomon decoding device is provided. The apparatus comprises an error evaluation polynomial (ω (x)) and an error position polynomial (σ () a Euclidean algorithm arithmetic circuit according to any one of claims 1 to 7 for obtaining x)); A chain search circuit for calculating an error position and an error evaluation value using the error evaluation polynomial (ω (x)) and error location polynomial (σ (x)) calculated by the Euclidean algorithm calculation circuit; And a pony algorithm calculation circuit configured to perform error correction by calculating an error value using the error position and the error evaluation value calculated by the chain search circuit.

본 발명에 의거하여 이하 첨부된 도면을 참조하여 본 발명의 바람직한 일실시예를 상세히 설명한다. On the basis of the present invention will be described in detail a preferred embodiment of the present invention with reference to the accompanying drawings.

도 4는 본 발명의 일실시예에 따른 리드-솔로몬 복호 장치에 적용되는 수정된 유클리드 알고리즘 연산부의 연산방법을 나타낸 플로우챠트이다. 도 4를 참조하면, 먼저 본 발명에 따른 수정된 유클리드 알고리즘의 연산은 R(x)=x2t, Q(x)=S(x), U(x)=0, V(x)=1과 같은 초기값을 가지고 시작하며, 여기에 R(x)의 차수값을 나타내는 Rdeg와 Q(x)의 차수값을 나타내는 Qdeg를 정의한다. 각각의 초기값은 2*t와 2*t-1로 설정한다(S400). 4 is a flowchart illustrating an operation method of a modified Euclidean algorithm calculation unit applied to a Reed-Solomon decoding apparatus according to an embodiment of the present invention. Referring to FIG. 4, first, the operation of the modified Euclidean algorithm according to the present invention is R (x) = x 2t , Q (x) = S (x), U (x) = 0, V (x) = 1 and starting with the same initial value, and defines a Q deg represents the order of the value R (x) R deg and Q (x) represents the value of the order here. Each initial value is set to 2 * t and 2 * t-1 (S400).

여기서 t는 리드-솔로몬 코드가 정정할 수 있는 블록수이며, 일반적으로 (N-K)/2로 계산된다. N은 부호화기로부터 출력되는 코드 블록 수를 의미하고, K는 부호화기로 입력되는 메시지 블록 수를 의미한다. 즉, N-K는 부가적으로 삽입되는 블록을 의미하는데 예를들어, N=15, K=9이면 리드-솔로몬 코드가 정정할 수 있는 블록수는 3이 되게 된다. 또한, i는 전체 루프 연산 횟수를 제어하는 변수로 연산을 한번씩 수행할 때마다 1씩 올라간다.Where t is the number of blocks that the Reed-Solomon code can correct, and is generally calculated as (N-K) / 2. N means the number of code blocks output from the encoder, and K means the number of message blocks input to the encoder. That is, N-K means additionally inserted blocks. For example, if N = 15 and K = 9, the number of blocks that the Reed-Solomon code can correct is 3. In addition, i is a variable that controls the total number of loop operations and goes up by 1 each time an operation is performed once.

단계(S400)의 수행후, R(x)의 차수값을 나타내는 Rdeg와 Q(x)의 차수값을 나타내는 Qdeg가 리드-솔로몬 코드가 정정할 수 있는 블록수 t보다 크거나 같은지 판단한다(S402).Determines Solomon code to greater than or equal to the block number t, which can correct - after execution of the step (S400), R (x) the order values is Q deg indicating the order values of R deg and Q (x) leads indicating the (S402).

상기 판단결과, R(x)의 차수값을 나타내는 Rdeg와 Q(x)의 차수값을 나타내는 Qdeg가 리드-솔로몬 코드가 정정할 수 있는 블록수 t보다 크거나 같으면, Qdeg가 Rdeg보다 큰지 판단하여(S404), Qdeg가 Rdeg보다 크면, 다항식 교환을 수행하고(S406) Q(x)의 최고차항 계수인 b가 0인지 판단하며(S408), Qdeg가 Rdeg보다 크지않다면 바로 다항식 교환과정없이 Q(x)의 최고차항 계수인 b가 0인지 판단한다(S408).A result of the determination, R (x) the order values is Q deg indicating the order values of R deg and Q (x) leads indicating the-Solomon code can correct greater than or equal to the block number t, which, Q deg a R deg the more greater judgment (S404), Q deg is greater than R deg, perform polynomial exchange and determine if (S406) Q (x) up to order term coefficient, b is 0, and (S408), Q deg is not greater than R deg If not, it is determined whether b, which is the highest order term coefficient of Q (x), is zero without the polynomial exchange process (S408).

여기서 상기 다항식 교환은 R(x)와 Q(x) 다항식의 교환과, U(x)와 V(x) 다항식의 교환 및 Rdeg와 Qdeg의 교환을 포함한다.Wherein the polynomial exchange includes the exchange of R (x) and Q (x) polynomials, the exchange of U (x) and V (x) polynomials, and the exchange of R deg and Q deg .

단계(S408)의 판단결과, Q(x)의 최고차항 계수인 b가 0이면 Q(x)=xQ(x), V(x)=xV(x), Qdeg=Qdeg-1 연산을 수행하는데(S410), 이것은 R(x), Q(x), U(x), V(x) 각각에 해당하는 버퍼를 이루고 있는 순차적인 블록이, R(x)와 U(x)는 변화없고 Q(x)와 V(x)만 한블록씩 시프트(Shift)하고, Qdeg값에서 1을 차감하는 연산을 수행함을 나타낸다.As a result of the determination in step S408, if b, which is the highest order coefficient of Q (x), is 0, Q (x) = xQ (x), V (x) = xV (x), and Q deg = Q deg −1 (S410), which is a sequential block constituting a buffer corresponding to each of R (x), Q (x), U (x), and V (x), and R (x) and U (x) change. Without shifting only Q (x) and V (x) by one block and subtracting 1 from the Q deg value.

상기 판단결과, Q(x)의 최고차항 계수인 b가 0이 아니면, R(x)=x(b*R(x)+a*Q(x)), U(x)=x(b*U(x)+a*V(x)), Rdeg=Rdeg-1 연산을 수행하는데(S412), 이것은 R(x), Q(x), U(x), V(x) 각각에 해당하는 버퍼를 이루고 있는 순차적인 블록이, Q(x)와 V(x)는 변화없고 R(x)와 U(x)만 한블록씩 시프트(Shift)하고, Rdeg값에서 1을 차감하는 연산을 수행함을 나타낸다. 여기서 '*'과 '+'연산은 통상 의 곱셈과 덧셈연산이 아닌 유한체내에서의 곱셈과 덧셈연산이다.As a result of the determination, if b, which is the highest order coefficient of Q (x), is not 0, R (x) = x (b * R (x) + a * Q (x)), U (x) = x (b * U (x) + a * V (x)), R deg = R deg -1 operation (S412), which is applied to each of R (x), Q (x), U (x), and V (x) A sequential block constituting the corresponding buffer shifts only one block R (x) and U (x) by one block without changing Q (x) and V (x), and subtracts one from R deg. Indicates that an operation is performed. Here, the '*' and '+' operations are multiplication and addition operations in the finite field, not the ordinary multiplication and addition operations.

한편, 단계(S402)에서 R(x)의 차수값을 나타내는 Rdeg와 Q(x)의 차수값을 나타내는 Qdeg가 리드-솔로몬 코드가 정정할 수 있는 블록수 t보다 작은 값을 갖는 경우에는, Rdeg가 Qdeg보다 작은지 판단한다(S414).On the other hand, if the Q deg indicating the order values of R deg and Q (x) represents the order of the value of R (x) in step (S402) the lead-case having a value less than the number of blocks that have Solomon code can correct t is , It is determined whether R deg is smaller than Q deg (S414).

상기 판단결과, Rdeg가 Qdeg보다 작지 않으면, 단계(S406)에서 수행한 연산과 마찬가지로, R(x)와 Q(x) 다항식의 교환, U(x)와 V(x) 다항식의 교환 및 Rdeg와 Qdeg의 교환을 포함하는 다항식 교환을 수행하고(S416), Rdeg가 Qdeg보다 작다면, 상기 다항식 교환과정을 생략한다.As a result of the determination, if R deg is not less than Q deg , the exchange of R (x) and Q (x) polynomials, the exchange of U (x) and V (x) polynomials, and the same as the operation performed in step S406 and A polynomial exchange including an exchange of R deg and Q deg is performed (S416). If R deg is smaller than Q deg , the polynomial exchange process is omitted.

연산 수행의 조건에 따라 단계(S410) 내지 단계(S416) 중 어느 한 단계의 수행이 끝나면 하나의 연산과정이 끝나게 되므로, i에 1을 가산하여(S418) 그 i가 i=2*t식을 만족하는지 판단한다(S420). 상기 판단결과, 상기 i=2*t식을 만족하지 않으면 다시 단계(S402)부터 연산을 수행하여 상기 식을 만족할 때까지 반복하고, 상기 식을 만족하면 본 발명에 따른 연산이 종료된다.When one of the steps (S410) to (S416) is completed according to the condition of the calculation, one operation is completed. Therefore, by adding 1 to i (S418), i is expressed by i = 2 * t. It is determined whether it is satisfied (S420). As a result of the determination, if the i = 2 * t expression is not satisfied, the operation is performed again from step S402 until the expression is satisfied, and if the expression is satisfied, the operation according to the present invention is terminated.

다시말해 본 발명에 따른 수정된 유클리드 연산 알고리즘은 전체 루프 연산 횟수를 제어하기 위해 i라는 변수를 두어 연산이 2*t번 반복하게 설정하여, i값이 2*t가 되는 경우에는 연산을 중단하고 알고리즘을 완료한다. 모든 연산이 완료되면 R(x) 다항식은 오류 평가 다항식 V(x) 가 되고 U(x) 다항식은 오류 위치 다항식 S(x)가 된다.In other words, the modified Euclidean algorithm according to the present invention sets a variable i to repeat 2 * t times in order to control the total number of loop operations, and stops the operation when i becomes 2 * t. Complete the algorithm. When all operations are complete, the R (x) polynomial becomes the error evaluation polynomial V (x) and the U (x) polynomial becomes the error location polynomial S (x).

도 5는 본 발명에 따른 리드-솔로몬 복호 장치에 적용되는 수정된 유클리드 알고리즘 연산부의 하드웨어 구성을 나타낸 블록도이다. 도 5를 참조하면, 상기 하드웨어 구성은 레지스터/메모리부(500), 처리부(502), 제어부(504)로 크게 구분할 수 있다. 상기 레지스터/메모리부(500)는 R(x), Q(x), U(x), V(x) 다항식을 저장하고, R(x)의 차수값인 Rdeg와 Q(x)의 차수값인 Qdeg를 저장한다.5 is a block diagram showing a hardware configuration of a modified Euclidean algorithm calculation unit applied to the Reed-Solomon decoding apparatus according to the present invention. Referring to FIG. 5, the hardware configuration may be broadly classified into a register / memory unit 500, a processor 502, and a controller 504. The register / memory unit 500 stores the R (x), Q (x), U (x), and V (x) polynomials, and the order of R deg and Q (x), which are the order values of R (x). Store the value Q deg .

상기 R(x), Q(x), U(x), V(x)의 다항식을 저장하는 레지스터에는 R0부터 R2t, Q0부터 Q2t, U0부터 U2t, V0부터 V2t까지 각각 총 2t+1개의 계수를 저장하며, 각각의 계수는 m개의 비트로 구성된다. 여기서 m은 유한체 내에서의 심볼 비트 수를 의미한다.The registers storing the polynomials of R (x), Q (x), U (x), and V (x) include R 0 to R 2t , A total of 2t + 1 coefficients are stored from Q 0 to Q 2t , U 0 to U 2t , and V 0 to V 2t , and each coefficient consists of m bits. Where m is the number of symbol bits in the finite field.

처리부(502)는 다항식 및 차수값을 저장하는 레지스터를 서로 교환하는 레지스터 교환부(506), 다항식의 차수를 올려주는 시프트 연산부(508), 유한체내에서의 곱셈을 수행하는 유한체 곱셈부(510), 유한체내에서의 덧셈을 수행하는 유한체 덧셈부(512), 차수값을 1만큼 감소하는 뺄셈 연산부(514)를 포함한다.The processor 502 includes: a register exchanger 506 for exchanging registers for storing polynomials and order values, a shift operator 508 for raising the order of polynomials, and a finite field multiplier 510 for multiplication within a finite body. ), A finite field adder 512 for performing an addition in the finite field, and a subtraction operator 514 for decreasing the order value by one.

상기 처리부(502)는 레지스터/메모리부(500)로부터 다항식과 차수값을 읽어들여 해당하는 연산을 처리한 후 다시 저장하는 역할을 수행한다.The processor 502 reads a polynomial and an order value from the register / memory unit 500, processes a corresponding operation, and stores the polynomial.

제어부(504)는 Rdeg와 Qdeg를 이용하여 각각의 연산을 처리하기 위한 조건을 판단하고 전체 알고리즘 흐름을 제어한다. 상기 제어부(504)는 Rdeg, Qdeg, t, b를 이용하여 조건 연산을 수행함으로써, 연산 흐름을 제어하는 상태 머신으로 이루어진 다.The controller 504 determines a condition for processing each operation using R deg and Q deg and controls the overall algorithm flow. The controller 504 is configured to perform a conditional operation using R deg , Q deg , t, b, and thus constitute a state machine for controlling the operation flow.

도 6 내지 도 8은 도 4의 본 발명에 따른 리드-솔로몬 복호 장치에 적용되는 수정된 유클리드 알고리즘 연산부의 연산방법을 수행함에 있어 레지스터 값의 변화를 나타낸 도면이다.6 to 8 are diagrams illustrating a change of a register value in performing a calculation method of a modified Euclidean algorithm calculation unit applied to the Reed-Solomon decoding apparatus according to the present invention of FIG.

도 6은 도 4의 다항식 교환에 따른 레지스터 값의 변화를 나타낸 도면이다. 도 6을 참조하면, 도 4의 단계(S406) 또는 단계(S416)을 수행함에 따라 R(x)와 Q(x) 다항식 교환, U(x)와 V(x) 다항식 교환과 Rdeg와 Qdeg 교환 연산시 레지스터 값이 변화됨을 알 수 있다.6 is a diagram illustrating a change in a register value according to the polynomial exchange of FIG. Referring to FIG. 6, R (x) and Q (x) polynomial exchanges, U (x) and V (x) polynomial exchanges, and R deg and Q as performing step S406 or step S416 of FIG. 4. You can see that the register value changes during the deg exchange operation.

즉, 상기 R(x)의 계수값들인 R0부터 R2t가 Q(x)에 해당하는 위치로 이동하고, Q(x)의 계수값들인 Q0부터 Q2t가 R(x)에 해당하는 위치로 이동한다. 또한, U(x)의 계수값들인 U0부터 U2t가 V(x)에 해당하는 위치로 이동하고, V(x)의 계수값들인 V0부터 V2t가 U(x)에 해당하는 위치로 이동한다. 또한, Rdeg는 Qdeg 의 위치로 이동하고, Qdeg 는 Rdeg의 위치로 이동한다.That is, the coefficient values of R (x) R 0 to R 2t move to a position corresponding to Q (x), and the coefficient values of Q (x) Q 0 to Q 2t correspond to R (x). Go to location. Further, a position from the counter value, which are U 0 of U (x) U 2t are moved to a position that corresponds to the V (x), and, from coefficient values, which are V 0 of V (x) V 2t corresponding to U (x) Go to. In addition, R deg moves to a position of the Q deg, deg Q is moved to the position of R deg.

도 7은 도 4의 R(x), U(x), Rdeg 연산에 따른 레지스터 값의 변화를 나타낸 도면이다. 도 7을 참조하면, 도 4에 도시된 단계(S412)의 R(x)=x(b*R(x)+a*Q(x)), U(x)=x(b*U(x)+a*V(x)), Rdeg=Rdeg-1 연산을 수행함에 따라 레지스터 값이 변화됨을 알 수 있다.FIG. 7 is a diagram illustrating a change in register values according to R (x), U (x), and R deg operations of FIG. 4. Referring to FIG. 7, R (x) = x (b * R (x) + a * Q (x)), U (x) = x (b * U (x) in step S412 shown in FIG. 4. It can be seen that the register value changes as the operation of (+ a * V (x)), R deg = R deg -1.

즉, R(x)와 Q(x)의 관계에서, R(x)의 최고차항 계수인 a와 Q(x)의 최고차항 계수인 b를 이용하여 유한체 곱셈 및 덧셈을 수행한 후 차수를 1만큼 올려주는 시프트 연산에 의해, R0부터 R2t까지 저장되었던 R(x) 레지스터는 차수가 1만큼 올라감으로써, 상수항 위치는 '0'으로 채워지고 나머지는 계수들은 x(b*R(x)+a*Q(x))식에 따라 연산된 후, 새로운 값들인 R0부터 R2t-1까지의 값들로 채워지게 된다.That is, in the relation between R (x) and Q (x), the finite field multiplication and addition are performed using a, which is the highest coefficient of R (x), and b, which is the highest coefficient of Q (x), and then the order is By a shift operation of 1, the R (x) registers stored from R 0 to R 2t are raised by 1, so that the constant term position is filled with '0' and the remainders are x (b * R (x). After calculating according to the equation (+) * a * Q (x)), the new values R 0 to R 2t-1 are filled.

마찬가지로, U(x)와 V(x)의 관계에서, U(x)의 최고차항 계수인 a와 V(x)의 최고차항 계수인 b를 이용하여 유한체 곱셈 및 덧셈을 수행한 후 차수를 1만큼 올려주는 시프트 연산에 의해, U0부터 U2t까지 저장되었던 U(x) 레지스터는 차수가 1만큼 올라감으로써, 상수항 위치는 '0'으로 채워지고 나머지는 계수들은 U(x)=x(b*U(x)+a*V(x))식에 따라 연산된 후, 새로운 값들인 U0부터 U2t-1까지의 값들로 채워지게 된다.Similarly, in the relation between U (x) and V (x), the finite field multiplication and addition are performed using a, which is the highest order coefficient of U (x), and b, which is the highest order coefficient of V (x). By a shift operation of 1, the U (x) registers stored from U 0 to U 2t are raised by order 1, so that the constant term position is filled with '0' and the coefficients are U (x) = x ( After calculation according to the formula b * U (x) + a * V (x)), new values U 0 to U 2t-1 are filled.

또한, Q(x)와 V(x)는 변화 없이 그대로 유지되고, Rdeg값은 '1'이 감소되어 Rdeg-1 값이 저장되고, Qdeg는 변화가 없다.In addition, Q (x) and V (x) remain unchanged, the R deg value is decreased by '1' so that the R deg −1 value is stored, and the Q deg is unchanged.

도 8은 도 4의 Q(x), V(x), Qdeg 연산에 따른 레지스터 값의 변화를 나타낸 도면이다. 도 8을 참조하면, 도 4에 도시된 단계(S410)의 Q(x)=xQ(x), V(x)=xV(x), Qdeg=Qdeg-1 연산을 수행함에 따라 레지스터 값이 변화됨을 알 수 있다.FIG. 8 is a diagram illustrating a change in a register value according to the Q (x), V (x), and Q deg operations of FIG. 4. Referring to FIG. 8, a register value is obtained by performing Q (x) = xQ (x), V (x) = xV (x) and Q deg = Q deg −1 operations in step S410 of FIG. 4. It can be seen that this is changed.

즉, 도 4에 도시된 단계(S410)는 Q(x)와 V(x)의 시프트 연산 및 Qdeg의 감소 연산을 수행하는 단계로, Q(x) 다항식 계수인 Q0부터 Q2t까지의 값들이 1만큼 시프 트하고, V(x) 다항식 계수인 V0부터 V2t까지의 값들도 1만큼 시프트 한다. 또한, R(x)와 U(x)는 변화가 없고, Qdeg는 1이 감소되어 Qdeg-1값이 저장되고, Rdeg는 변화가 없다.That is, step S410 illustrated in FIG. 4 is a step of performing a shift operation of Q (x) and V (x) and a decrement operation of Q deg . The Q (x) polynomial coefficients Q 0 to Q 2t The values shift by 1, and the values from V 0 to V 2t , the V (x) polynomial coefficients, also shift by 1. In addition, R (x) and U (x) are unchanged, Q deg is decreased by 1, Q deg-1 value is stored, and R deg is unchanged.

도 9는 본 발명의 일실시예에 따른 리드-솔로몬 복호 장치에 적용되는 수정된 유클리드 알고리즘 연산부의 연산 회로 구조를 나타낸 도면이다. 도 9는 일례로 하나의 유클리드 셀을 이용하여 반복적으로 계산하는 수정된 유클리드 알고리즘 계산 회로를 나타내었다.FIG. 9 is a diagram illustrating an arithmetic circuit structure of a modified Euclidean algorithm calculation unit applied to a Reed-Solomon decoding device according to an embodiment of the present invention. 9 shows a modified Euclidean algorithm calculation circuit that calculates repeatedly using one Euclidean cell as an example.

리드-솔로몬 복호 장치의 신드롬 다항식 연산부로부터 입력받은 신호는 수정된 유클리드 연산부에서 유클리드 연산을 수행하기 위해 연산 초기값 또는 이전 연산값을 입력받아 R(x)와 Q(x)의 차수 신호를 출력하는 2개의 멀티플렉서(900)와, 연산 초기값 또는 이전 연산값을 입력받아 R(x), Q(x), U(x), V(x) 다항식 계수를 출력하는 4개의 레지스터(902)와 다항식 동기 신호를 출력하는 한개의 레지스터(902)와, 상기 멀티플렉서(900)와 레지스터(902)의 출력값을 입력받아 수정된 유클리드 알고리즘 연산을 수행하고, 그 수행된 연산값을 출력하여 i=2*t식을 만족할 때까지 상기 멀티플렉서(900)와 레지스터(902)에 입력하는 한개 이상의 연산셀(904) 및 상기 연산셀과 연결되어 시스템을 제어하고, 오류위치 및 오류 위치 평가 다항식의 유효 구간 지시 신호를 출력하는 제어기(906)를 포함한다.The signal received from the syndrome polynomial calculation unit of the Reed-Solomon decoding device receives the initial value or the previous operation value from the modified Euclidean calculator and outputs the order signals of R (x) and Q (x). Two multiplexers 900, four registers 902 and a polynomial that receive the initial or previous operation value and output the R (x), Q (x), U (x), and V (x) polynomial coefficients. One register 902 for outputting a synchronization signal, the output values of the multiplexer 900 and the register 902 are input to perform a modified Euclidean algorithm operation, and output the performed operation value i = 2 * t One or more operation cells 904 input to the multiplexer 900 and the register 902 and the operation cells are connected to control the system until the expression is satisfied, and the valid region indication signal of the error location and error location evaluation polynomial is received. 1st output And a group (906).

상기 수정된 유클리드 연산부의 동작을 설명하면, 신드롬 다항식에서 계산된 신드롬 계수값들은 Q(x) 다항식을 초기화하는 레지스터로 입력되고, R(x) 다항 식은 x2t로, U(x) 다항식은 '0'으로, V(x) 다항식은 '1'로 초기화 된다.Referring to the modified Euclidean operator, the syndrome coefficients calculated in the syndrome polynomial are input to a register for initializing the Q (x) polynomial, and the R (x) polynomial is x 2t , and the U (x) polynomial is' 0 ', the V (x) polynomial is initialized to' 1 '.

또한 2개의 차수 신호는 R(x)와 Q(x) 다항식의 차수 신호로써, 각각 2*t와 2*t -1로 초기화 되고, 다항식 동기 신호는 '00...01' 비트열로 초기화 되는데 이는 비트 '1'의 위치가 항상 다항식의 최고차항을 지시하는 역할을 수행하도록 한다.Also, the two order signals are the order signals of the R (x) and Q (x) polynomials, and are initialized to 2 * t and 2 * t-1, respectively, and the polynomial synchronization signal is initialized to the '00 ... 01 'bit string. This ensures that the position of bit '1' always indicates the highest order term of the polynomial.

상기 초기화된 수정된 유클리드 알고리즘 연산 셀(902)은 i=2*t식을 만족할 때까지 전체적으로 2*t번 유클리드 셀 루프 연산을 수행하며, 루프 연산이 끝나면 제어기(906)에서 알고리즘 종료 신호를 발생시켜 더 이상 시프트 연산이 수행되지 않도록 레지스터(902)를 정지시킨다. 그 후, R(x)다항식 레지스터에 있는 값들은 오류 평가 다항식 w(x)로 출력되며, U(x)다항식 레지스터에 있는 값들은 오류 위치 다항식 s(x)로 출력된다.The initialized Euclidean algorithm operation cell 902 initializes the Euclidean cell loop operation 2 * t times until i = 2 * t is satisfied, and when the loop operation is completed, the controller 906 generates an algorithm end signal. To stop the register 902 so that no further shift operation is performed. The values in the R (x) polynomial register are then output as the error evaluation polynomial w (x), and the values in the U (x) polynomial register are output as the error location polynomial s (x).

도 10은 본 발명의 일실시예에 따른 리드-솔로몬 복호 장치에 적용되는 수정된 유클리드 알고리즘 연산부의 연산 셀 구조를 나타낸 도면이다. 도 10을 참조하면, 상기 연산 셀은 R(x)와 Q(x) 다항식의 최고차수인 Rdeg와 Qdeg를 계산하고, 각 변수의 조건에 따라 제어 신호를 생성하여 Rdeg가 -1 감소할지 Qdeg가 -1 감소할지를 결정하는 제 1부(1000)와 R(x), Q(x), U(x), V(x)다항식을 계산하는 제 2부(1002)로 나누어 진다.FIG. 10 is a diagram illustrating an arithmetic cell structure of a modified Euclidean algorithm calculation unit applied to a Reed-Solomon decoding device according to an embodiment of the present invention. Referring to FIG. 10, the arithmetic cell calculates R deg and Q deg, which are the highest orders of the R (x) and Q (x) polynomials, and generates a control signal according to the condition of each variable to determine whether R deg decreases by -1. It is divided into a first part 1000 that determines whether Q deg decreases by -1 and a second part 1002 that calculates R (x), Q (x), U (x), and V (x) polynomials.

상기 제 1부(1000)는 2개의 멀티플렉서와 5개의 플립플롭으로 구성되고, 상기 제 2부(1002)는 12개의 멀티플렉서(MUX), 14개의 플립플롭, 4개의 유한체내 곱 셈기, 2개의 유한체내 덧셈기로 구성되며, 3개의 플립으로 구성된 다항식 동기 입출력부를 포함한다.The first part 1000 is composed of two multiplexers and five flip-flops, and the second part 1002 is comprised of 12 multiplexers (MUX), 14 flip-flops, 4 finite intramultipliers, 2 finite It consists of an adder in the body and includes a polynomial synchronous input / output unit composed of three flips.

주요한 구성 부분을 설명하면, 멀티프렉서를 통하여 R(x)와 Q(x), U(x)와 V(x)를 상호 교환하는 부분과 R(x)와 Q(x)의 최고차항 계수인 a와 b를 레지스터에 저장하여 유한체 곱셈 및 유한체 덧셈 연산을 수행하는 부분, Q(x)의 최고차항이 '0'인 경우, 즉 b가 '0'인 경우와 알고리즘 멈춤 조건인 stop신호에 따른 MUX부분 등으로 나뉘어진다.The major components are explained by exchanging R (x) and Q (x), U (x) and V (x) through the multiplexer, and the highest order coefficients of R (x) and Q (x). Where a and b are stored in registers to perform finite field multiplication and finite addition operations, where the highest order term of Q (x) is '0', that is, when b is '0' and stop It is divided into MUX part according to signal.

또한 최고차항의 위치를 알려주는 다항식 동기 신호도 존재한다. 다항식 동기 신호는 각 다항식의 계수들이 직렬 방식에 따라 연산셀로 순차적으로 입력되기 때문에 계수들의 차수 위치를 알려주는데 사용된다.There is also a polynomial synchronization signal indicating the position of the highest order term. The polynomial synchronization signal is used to indicate the order position of coefficients because the coefficients of each polynomial are sequentially input to the operation cell in a serial manner.

본 발명에서 설계된 유클리드 연산 셀(904)은 다항식의 계수들을 직렬로 입력하는 직렬 방식이며, 단일 셀로만 사용할 수도 있고, 여러 개의 셀을 연결하여 사용할 수도 있다. 사용하는 셀의 개수가 많을수록 처리율도 그 만큼 빨라진다. 몇 개를 사용하여 구현할지는 리드-솔로몬 규격 및 유클리드 연산 처리율에 따라 의존한다.The Euclidean arithmetic cell 904 designed in the present invention is a serial method of inputting coefficients of a polynomial in series, may be used only as a single cell, or may be used by connecting several cells. The greater the number of cells used, the faster the throughput. How many are implemented depends on Reed-Solomon specifications and Euclid's throughput.

이상에서 본 발명에 대하여 그 바람직한 실시예를 중심으로 설명하였으나 이는 단지 예시일 뿐 본 발명을 한정하는 것이 아니며, 본 발명이 속하는 분야의 통상의 지식을 가진 자라면 본 발명의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다.The present invention has been described above with reference to the preferred embodiments, which are merely examples and are not intended to limit the present invention, and those skilled in the art to which the present invention pertains do not depart from the essential characteristics of the present invention. It will be appreciated that various modifications and applications are not possible that are not illustrated above.

예를 들어, 본 발명의 실시예에 구체적으로 나타난 각 구성 요소는 변형하여 실시할 수 있는 것이다. 그리고 이러한 변형과 응용에 관계된 차이점들은 첨부된 청구 범위에서 규정하는 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다.For example, each component specifically shown in the embodiment of the present invention can be modified. And differences relating to such modifications and applications will have to be construed as being included in the scope of the invention defined in the appended claims.

본 발명은 리드-솔로몬 복호 장치를 설계함에 있어 단일의 유클리드 알고리즘 계산 셀을 사용하여, 계산 회로의 규모를 줄이고 유클리드 연산셀의 회로 구성을 단순화 함으로써 저전력 동작에 효율적인 구조로 설계할 수 있게 한다.In designing the Reed-Solomon decoding device, a single Euclidean algorithm calculation cell can be used to reduce the size of the calculation circuit and simplify the circuit configuration of the Euclidean calculation cell, thereby enabling an efficient structure for low power operation.

Claims (8)

신드롬 다항식(S(x))을 이용하여 오류평가 다항식(ω(x)) 및 오류 위치 다항식(σ(x))을 구하기 위한 유클리드 알고리즘 연산 회로에 있어서,In the Euclidean algorithm arithmetic circuit for obtaining an error evaluation polynomial (ω (x)) and an error position polynomial (σ (x)) using a syndrome polynomial (S (x)), 다항식 Ri(x), Qi(x), Ui(x) 및 Vi(x)(여기서, 0≤i≤2t, t는 오류정정가능한 블록수임)의 계수를 각각 저장하기 위한 4개의 레지스터로서, R0(x)= x2t, Q0(x) = S(x), U0(x) =0 및 V0(x) = 1로 각각 초기화되는 4개의 레지스터와Four coefficients for storing the coefficients of the polynomials R i (x), Q i (x), U i (x), and V i (x), where 0 ≦ i ≦ 2t, and t are error-correctable blocks Four registers, each initialized with R 0 (x) = x 2t , Q 0 (x) = S (x), U 0 (x) = 0, and V 0 (x) = 1; 상기 다항식 Ri(x)의 차수(R_degi) 및 다항식 Qi(x)의 차수(Q_degi)를 각각 저장하기 위한 2개의 메모리 유니트로서, R_deg0= 2*t 및 Q_deg0= 2*t-1로 각각 초기화되는 메모리 유니트와The polynomial a degree (Q_deg i) of R i (x) order (R_deg i) and polynomial Q i (x) of a second memory unit for storing, respectively, R_deg 0 = 2 * t and Q_deg 0 = 2 * t Memory units initialized to -1 and 상기 2개의 메모리 유니트에 저장된 차수들(R_degi, Q_degi)과 t값 사이의 비교 연산 및 상기 차수들간의 비교 연산을 수행하여 2개의 제어 신호를 생성하고, 상기 제어 신호에 따라 Ri+1(x), Qi+1(x), Ui+1(x) 및 Vi+1(x)의 계수 및 상기 Ri+1(x) 및 Qi+1(x)의 차수(R_degi+1 및 Q_degi+1)를 각각 계산하고 그 결과를 대응하는 상기 레지스터 및 메모리 유니트에 각각 저장하는 동작을 2*t번 반복 수행하기 위한 유클리드 연산 셀과Two control signals are generated by performing a comparison operation between the orders R_deg i and Q_deg i stored in the two memory units and a value of t and the orders, and according to the control signals, R i + 1 (x), the coefficients of Q i + 1 (x), U i + 1 (x) and V i + 1 (x) and the order of the R i + 1 (x) and Q i + 1 (x) (R_deg the Euclidean arithmetic cell for repeatedly performing 2 * t times the operation of calculating i + 1 and Q_deg i + 1 ) and storing the result in the corresponding register and memory unit, respectively; 상기 유클리드 연산 셀의 동작의 2*t번 반복 수행된 후에 상기 다항식 R(x) 를 오류평가 다항식(ω(x))으로 출력하고, 상기 다항식 U(x)를 오류위치 다항식(σ(x))으로 출력하기 위한 제어부After repeating 2 * t times of operation of the Euclidean operation cell, the polynomial R (x) is output as an error evaluation polynomial (ω (x)), and the polynomial U (x) is an error position polynomial (σ (x)). Control to output to 를 포함하는 유클리드 알고리즘 연산 회로.Euclidean algorithm operation circuit comprising a. 제 1항에 있어서, 상기 유클리드 연산 셀은, The method of claim 1, wherein the Euclidean operation cell, 상기 Ri+1(x) 및 Qi+1(x)의 차수(R_degi+1 및 Q_degi+1)를 계산하기 위한 차수 연산부와, 다항식 Ri+1(x), Qi+1(x), Ui+1(x) 및 Vi+1(x)의 계수를 계산하기 위한 계수 연산부를 독립적으로 구비하는 유클리드 알고리즘 연산 회로.Wherein R i + 1 (x) and the degree calculating section for calculating the degree (R_deg i + 1 and Q_deg i + 1) of Q i + 1 (x), the polynomial R i + 1 (x), Q i + 1 (x), a Euclidean algorithm arithmetic circuit comprising independently a coefficient calculating section for calculating coefficients of U i + 1 (x) and V i + 1 (x). 제 2항에 있어서, 상기 차수 연산부는,The method of claim 2, wherein the order calculation unit, 상기 Ri(x)의 차수값(R_degi) 및 Qi(x)의 차수값(Q_degi)의 값이 t보다 작은지를 판단하고, 작다면 제 1 제어 신호를 1로 설정하기 위한 제 1 제어 신호 설정 수단과,The R-order value of i (x) (R_deg i) and Q i (x) the order values first to set the first control signal if the judgment, and is less if smaller than the value of (Q_deg i) t 1 of Control signal setting means, 상기 제 1 제어 신호값이 0이고 R_degi이 Q_degi보다 크거나 같은 경우와, 상기 제 1 제어 신호값이 1이고 R_degi이 Q_degi보다 작은 경우에는 제 2 제어 신호를 1로 설정하기 위한 제 2 제어 신호 설정 수단과,When the first control signal value is 0 and R_deg i is greater than or equal to Q_deg i , and when the first control signal value is 1 and R_deg i is smaller than Q_deg i , a second control signal is set to 1; 2 control Signal setting means, 상기 제 2 제어신호값이 1인 경우에 R_degi와 Q_degi를 교환하기 위한 수단과,Means for exchanging R_deg i and Q_deg i when the second control signal value is 1; 상기 제 1 제어 신호값이 0이고 Qi(x)의 최고차항 계수를 나타내는 bi이 0이 아닌 경우에는 R_degi+1 = R_degi - 1로 설정하기 위한 수단과,Means for setting R_deg i + 1 = R_deg i -1 when the first control signal value is 0 and b i indicating the highest order coefficient of Q i (x) is not zero; 상기 제 1 제어 신호값이 0이고 bi이 0인 경우에는 Q_degi+1 = Q_degi - 1로 설정하기 위한 수단Means for setting Q_deg i + 1 = Q_deg i -1 when the first control signal value is 0 and b i is 0 을 포함하는 유클리드 알고리즘 연산 회로.Euclidean algorithm operation circuit comprising a. 제 3항에 있어서, 상기 계수 연산부는,The method of claim 3, wherein the coefficient calculating unit, 상기 제 2 제어신호값이 1인 경우에 상기 레지스터에 저장된 Ri(x)와 Qi(x)를 교환하고 Ui(x)와 Vi(x)를 교환하기 위한 수단과,Means for exchanging R i (x) and Q i (x) stored in the register and exchanging U i (x) and V i (x) when the second control signal value is 1; 상기 제 1 제어 신호값이 0이고 bi이 0이 아닌 경우에 Ri(x)의 최고차항 계수를 나타내는 ai, bi, Ri(x), Qi(x), Ui(x), Vi(x)에 대하여 유한체 곱셈, 유한체 덧셈 및 쉬프트 연산을 수행함으로써 Ri+1(x)와 Ui+1(x)를 계산하는 제 1 연산 수단과,A i, b i , R i (x), Q i (x), U i (x) indicating the highest order coefficient of R i (x) when the first control signal value is zero and b i is not zero; ), First computing means for calculating R i + 1 (x) and U i + 1 (x) by performing finite field multiplication, finite field addition and shift operations on V i (x), 상기 제 1 제어 신호값이 0이고 bi이 0인 경우에 Qi(x) 및 Vi(x)에 대한 쉬프트 연산을 수행함으로써 Qi+1(x)와 Vi+1(x)를 계산하는 제 2 연산수단In the case where the first control signal value is 0, and b i is 0, Q i (x) and V i (x) the Q i + 1 (x) and V i + 1 (x) by performing a shift operation on the Second calculating means for calculating 을 포함하는 유클리드 알고리즘 연산 회로.Euclidean algorithm operation circuit comprising a. 제 3항에 있어서, 상기 제 1 제어 신호는 중지 신호이고, 상기 제 2 제어 신 호는 σi인 것을 특징으로 하는 유클리드 알고리즘 연산 회로.4. The euclidean algorithm calculating circuit according to claim 3, wherein the first control signal is a stop signal and the second control signal is sigma i . 제 1항에 있어서,The method of claim 1, 상기 다항식들의 최고차항 위치를 알려주기 위한 다항식 동기 신호를 저장하기 위한 다항식 동기 신호 레지스터를 더 포함하고, 상기 레지스터는 “000...01” 비트열로 초기화되는 유클리드 알고리즘 연산 회로.And a polynomial synchronizing signal register for storing a polynomial synchronizing signal for indicating a highest order position of said polynomials, said register being initialized to a "000 ... 01" bit string. 제 1항에 있어서,The method of claim 1, 상기 다항식 Ri(x), Qi(x), Ui(x) 및 Vi(x)의 계수를 각각 저장하기 위한 4개의 레지스터 각각은 총 2t+1개의 계수를 저장하고, 각각의 계수는 m(유한체내에서의 심볼 비트수를 나타냄)개의 비트로 이루어지는 유클리드 알고리즘 연산 회로.Each of the four registers for storing the coefficients of the polynomials R i (x), Q i (x), U i (x) and V i (x) respectively stores a total of 2t + 1 coefficients, and each coefficient Is a Euclidean algorithm arithmetic circuit composed of m bits representing the number of symbol bits in the fin. 리드 솔로몬 코드 워드로부터 신드롬 다항식을 계산하기 위한 신드롬 다항식 연산 회로와,A syndrome polynomial computation circuit for computing syndrome polynomials from Reed Solomon codewords, 상기 신드롬 다항식 연산부에 의해 계산된 신드롬 다항식을 이용하여 오류평가 다항식(ω(x)) 및 오류 위치 다항식(σ(x))을 구하기 위한 제 1항 내지 제 7항 중 어느 하나의 항에 따른 유클리드 알고리즘 연산 회로와,Euclid according to any one of claims 1 to 7 for obtaining an error evaluation polynomial (ω (x)) and an error position polynomial (σ (x)) using the syndrome polynomial calculated by the syndrome polynomial calculation unit. Algorithm algorithms, 상기 유클리드 알고리즘 연산회로에 의해 계산된 상기 오류평가 다항식(ω(x)) 및 오류 위치 다항식(σ(x))을 이용하여 오류 위치 및 오류 평가값을 계산하 기 위한 체인 서치 회로와,A chain search circuit for calculating an error position and an error evaluation value using the error evaluation polynomial (ω (x)) and error position polynomial (σ (x)) calculated by the Euclidean algorithm calculation circuit; 상기 체인서치 회로에 의해 계산된 오류 위치 및 오류 평가값을 이용하여 오류값을 계산하여 오류 정정을 수행하는 포니 알고리즘 계산 회로Pony algorithm calculation circuit for performing error correction by calculating the error value using the error position and the error evaluation value calculated by the chain search circuit 를 포함하는 것을 특징으로 하는 리드 솔로몬 복호 장치.Reed Solomon decoding device comprising a.
KR1020050042911A 2004-12-10 2005-05-23 Reed-Solomon decoder and circuits of the modified Euclid's algorithm KR100747487B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20040104320 2004-12-10
KR1020040104320 2004-12-10

Publications (2)

Publication Number Publication Date
KR20060065452A true KR20060065452A (en) 2006-06-14
KR100747487B1 KR100747487B1 (en) 2007-08-08

Family

ID=37160713

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050042911A KR100747487B1 (en) 2004-12-10 2005-05-23 Reed-Solomon decoder and circuits of the modified Euclid's algorithm

Country Status (1)

Country Link
KR (1) KR100747487B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100714447B1 (en) * 2005-11-28 2007-05-07 한국전자통신연구원 Modified-euclidean algorithm operation apparatus and method, and reed-solomon decoder using it
US8099656B2 (en) 2007-06-21 2012-01-17 Core Logic, Inc. Reed solomon decoder

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100907547B1 (en) * 2007-03-21 2009-07-14 아주대학교산학협력단 Algorithm calculation method of Reed-Solomon decoder and its circuit
KR100875928B1 (en) 2007-05-09 2008-12-26 한국전자통신연구원 Modified Euclidean Algorithm for High-Speed Reed-Solomon Decoder and Its Method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100714447B1 (en) * 2005-11-28 2007-05-07 한국전자통신연구원 Modified-euclidean algorithm operation apparatus and method, and reed-solomon decoder using it
US8099656B2 (en) 2007-06-21 2012-01-17 Core Logic, Inc. Reed solomon decoder

Also Published As

Publication number Publication date
KR100747487B1 (en) 2007-08-08

Similar Documents

Publication Publication Date Title
US5170399A (en) Reed-Solomon Euclid algorithm decoder having a process configurable Euclid stack
US7028247B2 (en) Error correction code circuit with reduced hardware complexity
US5379243A (en) Method and apparatus for performing finite field division
US7322004B1 (en) Efficient high-speed Reed-Solomon decoder
JP2005218098A (en) Reed-solomon decoder circuit of a forward directional chain search system
US5535225A (en) Time domain algebraic encoder/decoder
KR20040075954A (en) Dual chien search blocks in an error-correcting decoder
KR20040075952A (en) Intra-decoder component block messaging
KR100260415B1 (en) High speed serial error position polynomual calculation circuit
KR20040075953A (en) Chien search cell for an error-correcting decoder
KR100747487B1 (en) Reed-Solomon decoder and circuits of the modified Euclid&#39;s algorithm
JPH11225079A (en) Reed solomon decoder adopting new polynomial arrangement and its decoding method
KR101094574B1 (en) APPARATUS FOR PERFORMING THE HIGH-SPEED LOW-COMPELEXITY PIPELINED BERLEKAMP-MASSEY ALGORITHM OF BCH decoder AND METHOD THEREOF
US6263471B1 (en) Method and apparatus for decoding an error correction code
KR100258951B1 (en) Rs decoder having serial expansion architecture and method therefor
EP1102406A2 (en) Apparatus and method for decoding digital data
EP0911983A1 (en) Reed solomon error correcting circuit and method and device for euclidean mutual division
JP3343857B2 (en) Decoding device, arithmetic device, and methods thereof
KR100756424B1 (en) An Area-Efficient Reed-Solomon Decoder using Pipelined Recursive Technique
EP0329775A1 (en) High bandwidth reed-solomon encoding, decoding and error correcting circuit
Khan et al. Hardware implementation of shortened (48, 38) Reed Solomon forward error correcting code
US6574771B1 (en) Galios field processor having dual parallel data path for Bose Chaudhuri Hocquenghem/Reed-Solomon decoder
KR100437845B1 (en) High speed processing methods and circuits of the modified Euclid&#39;s algorithm for a Reed-Solomon decoder
US7222287B2 (en) Decoder, error position polynomial calculation method, and program
Lee et al. An efficient recursive cell architecture of modified Euclid's algorithm for decoding Reed-Solomon codes

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110729

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee