KR100192804B1 - 리드 솔로몬 복호화기에서의 다항식 평가 장치 - Google Patents

리드 솔로몬 복호화기에서의 다항식 평가 장치 Download PDF

Info

Publication number
KR100192804B1
KR100192804B1 KR1019960060091A KR19960060091A KR100192804B1 KR 100192804 B1 KR100192804 B1 KR 100192804B1 KR 1019960060091 A KR1019960060091 A KR 1019960060091A KR 19960060091 A KR19960060091 A KR 19960060091A KR 100192804 B1 KR100192804 B1 KR 100192804B1
Authority
KR
South Korea
Prior art keywords
evaluation
polynomial
terms
error
elements
Prior art date
Application number
KR1019960060091A
Other languages
English (en)
Other versions
KR970078047A (ko
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 KR970078047A publication Critical patent/KR970078047A/ko
Application granted granted Critical
Publication of KR100192804B1 publication Critical patent/KR100192804B1/ko

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/1515Reed-Solomon codes
    • 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
    • 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/1545Determination of error locations, e.g. Chien search or other methods or arrangements for the determination of the roots of the error locator polynomial

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)
  • Detection And Correction Of Errors (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

본 발명은 저장된 혹은 전송된 데이터에서 발생된 에러를 정정하는 장치에 관한 것으로, 더욱 상세하게는 리드 솔로몬 부호화된 데이터를 에러 정정하여 복호화하기위한 에러평가 다항식, 에러위치 다항식, 및 에러위치 미분다항식을 평가하는 장치에 관한 것으로서, T가 기설정된 양수이고, T개의 메모리를 포함한 FIFO버퍼 수단(34)과; j번째 단계동안, 유한 필드 GF (2m)상의 T개의 제 1 그룹의 원소들을 순서대로 제공하는 제 1 입력수단(36); j번째 단계 동안, 상기 FIFO 버퍼(34)의 각각의 내용과 상기 제 1 입력수단(36)의 제 1그룹의 원소들을 순서대로 곱하여 T개로 구성된 j번째 평가항 세트를 제공하는 유한 필드 승산 수단(35); T개의 초기 평가항을 생성하는 초기항 생성수단(31,32); T개의 초기 평가항 세트 혹은 T개의 j번째 평가항 세트를 선택적으로 제공하여 상기 FIFO 버퍼(34)에 저장하도록 하는 선택 수단(33); T개의 j번째 세트의 평가항들을 누산하여 j번째 합을 제공하는 가산수단(37); 및 j번째 단계 동안, 다항식의 0차항의 계수를 j번째 합에 더하여 최종적으로 j번째 평가 결과를 제공하는 출력수단(38)을 포함하여 구성된다. 본 발명은 평가 결과인

Description

리드 솔로몬 복호화기에서의 다항식 평가 장치 (Polynomial Evaluator in a Reed-Solomon Decoder)
본 발명은 저장된 혹은 전송된 데이터에서 발생된 에러를 정정하는 장치에 관한 것으로, 더욱 상세하게는 리드 솔로몬 부호화된 데이터를 에러 정정하여 복호화하기위한 에러평가 다항식, 에러위치 다항식, 및 에러위치 미분다항식을 평가하는 장치에 관한 것이다.
일반적으로, 디지털 데이터를 전송하고, 저장하고, 복원하는 과정에서 발생하는 잡음에 의해서 원래 데이터에 에러가 발생하게 된다. 따라서, 이러한 에러를 바로잡기 위한 다양한 부호화 기술이 개발되어 왔으며, 이를 에러 정정 부호화(ECC : error correcting coding)라고 한다.
에러 정정 부호화에 있어서, 1세트의 검사비트(check bit)가 1그룹의 정보 비트 또는 메시지 비트(imformation bit, message bit)에 부가된다. 부호화기(encoder)를 통해 결정되는 검사비트는 발생된 에러를 검출하고 정정하기 위해 사용된다. 여기서, 부호화기는 기본적으로 바이너리 메시지 다항식 i(X)의 계수에 해당하는 메시지 비트들과, 메시지 다항식 i(X)에 코드 생성 다항식 g(X)를 곱하거나 더함으로써 유도된 검사 비트들을 구하고, 이렇게 구성된 메시지 비트와 검사 비트들을 계수로 한 코드 워드 다항식 c(X)을 구한다. 상기 코드 생성 다항식 g(X)은 각각의 코드워드의 특성에 맞게 선택되는데, 이것은 코드 워드에 어떤 특성을 부가하여 코드워드가 특정한 부류 즉, 에러 정정이 가능한 바이너리 그룹에 속하도록한다. (에러 정정이 가능한 특정한 코드워드에 대해서는 1983년 발행된 Lin등의 저서 Prentice-Hall사의 Error Control Coding : Fundamentals and Applications 을 참조하기 바란다.)
한편, 에러 정정 코드의 한 부류로서 잘 알려진 코드는 BCH(Bose-Chaudhuri- Hocquenghen)코드가 있으며, 여기에 포함된 리드 솔로몬 코드(Reed-Solomon)는 BCH코드의 최적 코드로 알려져 있다.
상기 리드 솔로몬 코드의 수학적 기반에 대한 설명은 상기 제시한 Lin등의 상기 저서와 1968년 발행된 Berlekamp의 저서 McGraw-Hill사의 Algebraic Coding Theory, Berlekamp의 U.S. Pat. No. 4,162,480)를 참조하기 바란다.
리드 솔로몬 코드에서 하기 수학식 1과 같이 코드 생성 다항식 g(X)의 근(root)이 α 의 연속하는 2T개의 승수라면, T 개의 에러를 정정할 수 있다.
상기 수학식 1에서, α는 유한 갈로아체 필드 GF(2m)의 원시 원소(primitive element)에 해당한다.
상기 코드 발생 다항식에 의해 생성된 코드워드가 전송되어 전송된 코드워드를 수신하거나, 저장된 코드워드를 인출하는 과정에서, 잡음성분에 의해 코드워드의 에러 패턴으로 나타날 수 있다. 리드 솔로몬 코드에서 발생한 에러 패턴을 처리하여 복원하는 과정은 일반적으로 4단계로 구분할 수 있다.
우선, 에러 정정 과정을 설명하기위해 하나의 코드워드는 m비트가 1심볼을 이루며, N개의 심볼로 구성된 것으로서, 1코드워드는 K개의 정보 심볼과 (N-K)개의 검사 심볼로 이루어진 것으로 가정한다. 이 때, 코드워드 다항식 C(X)는 (N-1)차 다항식이고, '2T'는 'N-K' 와 동일한 값이다. (코드 발생 다항식 근의 개수 = 검사 심볼의 개수) 복호화 과정의 제 1 단계는, 수신된 코드워드 r(X)을 이용하여 신드롬 S0, S1, …, S2T-1을 구하는 것이다. 수신된 코드워드 r(X)는 (N-1)차 다항식으로 수학식으로 표현하면 이고,는 코드워드중 (N-j)번째 수신 심볼에 해당한다. 제 2 단계는, 상기 신드롬 S(X)을 이용하여 에러 위치 다항식 σ(X)의 계수를 구하는 것이다. 제 3 단계는, 상기 에러 위치 다항식 σ(X)의 해를 구하는 것으로, 이 근들은 수신 코드워드 r(X)에서 발생된 에러 위치를 나타낸다. 즉, 원시 원소의 승수를 에러위치 다항식에 대입하여 그 결과값이 0이 되면(가 에러위치 다항식의 근이면) 수신 심볼인 코드워드의 (N-j)번째 심볼에 에러가 발생했다는 것을 의미한다. 제 4 단계는, 상기 에러 위치와 신드롬을 이용하여 에러값 ej(X)을 계산한다. 신드롬과 에러위치 다항식의 계수 등은 상기에 제시한 U.S. Pat. No. 4,162,480에 수학적으로 기술되어 있다. 상기 제 4단계를 더욱 상세히 기술하면 다음과 같다.
우선, 에러평가 다항식 Ω(X)는 하기 수학식 2와 같이 구해진다.
상기 수학식 2에서, S(X)는 신드롬 다항식이며, 그 계수가 신드롬값에 해당한다.
상기와 같이 구해진 에러평가 다항식 Ω(X)를 이용하여 하기 수학식 3과 같이 에러값 ej을 계산한다.
상기 수학식 3에서, σ'(X)는 에러위치 다항식 σ(X)의 1차 도함수이고, α-j는 제 3단계에서 구해진 에러위치 다항식 σ(X)의 근(root)이고, 에러값 ej는 상기 제 3 단계에서 에러가 발생된 것으로 판정된 (N-j)번째 심볼에 상응한다.
이와같이 에러값을 결정한 후, 상응하는 심볼에 에러값을 더함으로써 원래의 코드워드를 복원할 수 있다.
상술한 바와 같이, 다항식 평가는 에러정정과정의 여러단계에서 이용되고 있으며, α-j에 대한 다항식 평가는 주어진 다항식의 변수 X 대신 유한 필드의 원소α-j를 대입하여 그 값을 구하는 것이다. 상기 제 3단계에서와 같이 에러위치 다항식 σ(X) 를 평가하여 발생된 에러 위치를 찾는다. 그리고, 제 4단계에서와 같이 에러값을 구하기 위해서, 에러평가 다항식과 에러위치 미분다항식을 평가한다.
여기서, 에러평가 다항식은 수학적으로 하기 수학식 4와 같이 표현된다.
상기 수학식 4의 에러평가 다항식 Ω(X)를 α-j에 대해서 평가하면 하기 수학식 5와 같다.
상기 수학식 5에서 j는 0내지 (N-1)인 정수이고, 곱셈과 덧셈연산은 유한 필드 GF(2m)상에서 수행된다. 이와 같이, 에러위치 다항식 σ(X)이나 에러위치 미분다항식 σ'(X)에서도 마찬가지 방식으로 평가되는 것이다.
상기와 같이 다항식의 평가진행을 수행하는 다항식 평가장치의 일례를 도 1에 도시하였다.
도 1은 종래의 다항식 평가 장치에 대한 블록도로서, 에러평가 다항식을 평가하는 장치이다. 도 1의 평가장치는 에러정정능력 T=8 일 경우 에러평가 다항식 Ω(X)를 상기 수학식 5와 같이 평가하도록 구현된 것이다. 에러평가 다항식 평가장치는 멀티플렉서(11)와, 레지스터부(12), 유한필드 GF(2m)상의 곱셈기(13), 근 입력부(14), 가산부(15), 및 출력부(16)를 포함하여 구성되어 있다.
도 1의 평가장치는 상기 수학식 5의 계산이 j=0에서 j=N-1까지 순차적 단계로 진행된다. 그리고, 한 단계는 한 시스템 클럭주기동안에 이루어지는 것이 바람직하다.
우선, Ω(α0)을 결정하는 평가진행을 시작하기 전에, 상기 레지스터부(18)에 포함된 레지스터(R0∼R8)들은 에러평가 다항식의 계수 Ωi로 초기화 되어진다. 이를 위해서 에러평가 다항식의 계수들(Ω1∼Ω8)이 상기 멀티플렉서(11)를 통해 한 비트 클럭 주기당 하나씩 차례대로 선택되어 상기 레지스터부(12)로 제공된다. 상기 멀티플렉서(11)의 선택신호(SEL1)는 상기 레지스터(R0∼R8)가 초기화되는 동안 입력단자 0 을 선택하도록 상기 멀티플렉서(11)를 제어한다. 즉, 첫번째 계수 Ω1은 레지스터 R1에 입력되어 한 비트 클럭 주기동안 저장된다. 그 후, 레지스터 R1의 내용이 레지스터 R2로 시프트되어, 다음 비트 클럭 주기동안 저장되고, 다음 클럭에서 레지스터 R3로 시프트되는 동작이 반복된다. 최종적으로 레지스터 R8의 내용이 상기 GF 곱셈기(13)로 입력되어 진다. 결국, 한 계수가 레지스터부를 거쳐 우측으로 하나씩 시프트되어 상기 GF곱셈기(13)로 입력되기 전에, 한 비트 클럭 주기동안 모든 레지스터에 한번씩 저장된다.
이렇게 하여, 각 레지스터(R1∼R8)들에 상응하는 에러평가 계수 Ω1∼Ω8가 채워지면(예를 들어,Ω1은 R8, Ω2는 R7 등 ), Ω(α0)을 결정하는 0번째 단계가 시작된다.
0번째 단계의 첫번째 비트 클럭 동안에 상기 GF 곱셈기(13)에서는 상기 레지스터 R8에서 제공된 Ω1에 1을 곱한다. 이를 위해, 상기 근입력부(14)에서 상기 GF 곱셈기(13)로 1을 제공한다. 상기 곱셈기(13)의 출력인 Ω1은 다시 말해서, 0번째 세트의 1번째 평가항(여기서, 0번째 평가항들은 Ωiα0들을 가르킨다.)은 상기 가산부(15)로 한 비트 클럭주기에 하나씩 입력된다.
여기서 주의할 것은, 상기 근입력부(14)에서는 1번째에서 N번째 단계 동안에 α-i(i는 1에서 8)이 상기 GF 곱셈기(13)로 제공되고, 상기 GF 곱셈기(13)에서 상기 레지스터부(12)로부터 제공되는 상응하는 평가항과 곱해진다는 점이다.
상기 가산부(15)는 평가항들을 차례대로 더하는 유한 필드 GF 덧셈기(15a)와, 상기 GF 덧셈기(15a)에서 제공되는 평가항들의 1번째에서 7번째 부분합을 저장하기위한 레지스터(15b)를 포함하여 구성되어 있다. L번째(L은 1부터 7까지의 정수)부분합은 상기 수학식 5의 순차적 덧셈과정 중 L개의 평가항들의 합을 가르킨다.
상기 가산부(15)에서는 상기 GF 덧셈기(15a)는 상기 GF 곱셈기(13)로부터 Ω1을 입력받고, 상기 레지스터(15b)의 초기값 0을 더하여 제 1 부분합 Ω1을 출력한다. 계속해서, 제1 부분합 Ω1은 다음 비트 클럭의 상승에지에 맞추어 상기 레지스터(15b)로 입력되어서 저장된다. 동시에, 상기 GF 곱셈기(13)로부터 출력된 제 1 부분합 Ω1는 상기 멀티플렉서(11)를 통해 상기 레지스터부(12)로 입력된다.
즉, 0번째 단계의 두번째 비트 클럭의 상승에지에 맞추어 각 레지스터(R1∼R8)의 내용들이 우측으로 하나씩 시프트된다. 두번째 비트 클럭 주기 동안에 상기 레지스터(R1∼R8)에 저장된 내용을 표 1 에 나타내었다.
R1 R2 R3 R4 R5 R6 R7 R8
Ω1 Ω8 Ω7 Ω6 Ω5 Ω4 Ω3 Ω2
상기 표 1에서와 같이, 0번째 단계의 두번째 비트 클럭동안에는, 상기 GF 곱셈기 (13)는 상기 레지스터 R8로부터 제공된 Ω2에다가 1을 곱하여 그 결과값 Ω2을 상기 GF덧셈기(15a)로 출력한다. 상기 GF 덧셈기(15a)에서는 입력된 Ω2값과 상기 레지스터(15b)의 내용 Ω1을 피드백 입력받아, 두 값을 더하여 제 2 부분합 Ω12을 다시 상기 레지스터(15b)로 입력한다. 한편, 상기 GF곱셈기(13)로부터 출력된 Ω2값이 상기 멀티플렉서(11)를 통해 다시 상기 레지스터부(12)로 입력되고, 그 결과 다음 비트 클럭 주기의 상승 에지에는 각 레지스터의 내용이 우측으로 시프트된다. 이때의 레지스터 내용을 표 2에 나타내었다.
R1 R2 R3 R4 R5 R6 R7 R8
Ω2 Ω1 Ω8 Ω7 Ω6 Ω5 Ω4 Ω3
0번째 단계의 나머지 비트 클럭 주기동안에도 전술한 과정이 반복되면서, 상기 가산부(15)를 통해 Ω1에서 Ω8까지가 더해지는 것이다. 따라서, 상기 가산부(15)는 최종적으로 8번째 부분합 즉, 8개의 평가항의 합(:0번째 단계에서는 j 는 1이다.)을 상기 출력부(16)로 제공한다.
상기 출력부(16)는 상기 가산부(15)의 최종합 값(0번째 단계에서 계산된 값)을 레지스터 R10 (16a)에서 래치하여 저장하는데, 상기 레지스터는 제어신호 RST_SUM를 클럭신호로 하여 동작한다. 상기 레지스터(16a)의 내용은 GF 덧셈기(16b)로 입력되고, 상기 GF 덧셈기(16b)에서는 외부로부터 제공된 계수 Ω0와 더해져서 결과적으로 최종 결과값 즉, 0번째 평가 결과 Ω(α0)이 얻어진다.
여기서, 상기 RST_SUM 은 각 단계의 끝(다음 단계의 시작과 동일하다.)시점에서 레벨값 1을 갖는 신호이면 충분하며, 상기 RST_SUM 신호를 상기 가산부(15)의 레지스터(15b)의 리셋단자로 제공하므로써, 다음 단계를 위해서 0으로 초기화시키는 역할도 한다.(각 단계의 시작에서는 상기 레지스터(15b)의 내용이 0으로 초기화되어야 한다.)
계속해서, 1번째 단계는 상술한 0번째 단계와 유사한 과정으로 수행되나, 다만, 상기 레지스터부(12)로부터 출력된 값에 1이 아닌, 근가 곱해진다. 다시 말해서, 상기 GF 곱셈기(13)에서는 상기 레지스터부(12)의 출력값과 상기 근 입력부(14)로부터 제공된 근이 한번에 하나씩 곱해져서 출력된다. 출력된 1 세트의 평가항들인값은 상기 가산부(15)로 제공됨과 동시에, 상기 레지스터부(12)로 다시 입력되는 것이다. 즉, 단계의 첫번째 비트 클럭 주기동안에는이 곱해지고, 두번째 비트 클럭주기 동안에는이 곱해지고, 이후 나머지 클럭 주기도 마찬가지로 근과 계수가 곱해진다.
이렇게 해서, 얻어진 제 1 세트의 평가항들이 더해져서 1번째 단계가 끝나면, 그 평가결과가 얻어진다. 상기에 기술한 평가진행의 과정을 반복함으로써 j=0에서 N-1에대한가 N번의 단계를 통해서 구해진다.
이상과 같이 진행된 0번째에서 2번째 단계의 각 비트 클럭주기에 따른 상기 레지스터부(12)의 각각의 레지스터(R1∼R8) 내용과 상기 가산부(15)의 레지스터(15b)내용을 표 3에 나타내었다. 표 3에서 각 행은 한 비트 클럭주기에 해당한다.
단계 R1 R2 R7 R8 R9
0 Ω8 Ω7 Ω2 Ω1 0
Ω1 Ω8 Ω3 Ω2 Ω1
Ω2 Ω1 Ω4 Ω3 Ω2
Ω7 Ω6 Ω1 Ω8 Ω1+…+Ω7
1 Ω8 Ω7 Ω2 Ω1 0
Ω1α-1 Ω8 Ω3 Ω2 Ω1α-1
Ω2α-2 Ω1α-1 Ω4 Ω3 Ω1α-12α-2
Ω7α-7 Ω6α-6 Ω1α-1 Ω8 Ω8α-1+…+Ω7α-7
2 Ω8α-8 Ω7α-7 Ω2α-2 Ω1α-1 0
Ω1α-2 Ω8α-8 Ω3α-3 Ω2α-2 Ω1α-2
Ω2α-4 Ω1α-2 Ω4α-4 Ω3α-3 Ω1α-22α-4
Ω7α-14 Ω6α-12 Ω1α-2 Ω8α-8 Ω1α-2+…+ Ω7α-14
상기와 같이 구현된 종래의 다항식 평가장치에 따르면, 평가 결과값은의 차수로 순서대로 제공되고, 이 순서에 따라 계산되는 에러값는 j가 낮은 차수부터 먼저 구하도록 되어 있는 것이다.
그러나, 수신 심볼이 수신되는 순서는 높은 차수부터 즉,부터까지의 순서대로 입력되기 때문에, 코드워드의 에러를 수정하기 위해서는 후입선출버퍼(LIFO:Last In First Out)를 따로 구비하고 있어야만 했다. 다시 말해서, 수신된 심볼이 먼저 후입선출버퍼(LIFO)에 저장되고, 수신 심볼은에 상응하는 에러값에 더해지기 전에 역순으로 제공되어야만하는 문제점이 있었다.
이에, 본 발명은 상기와 같은 문제점을 해소하기 위하여 안출된 것으로, 본 발명은 리드솔로몬 복호기로 수신되는 순서대로 심볼의 에러값을 결정하도록하기 위해서, 최초 심볼(최고차수심볼)에 대한 평가진행부터 단계적으로 수행하는 다항식 평가장치를 제공하는 데 그 목적이 있다.
상기와 같은 목적을 달성하기 위한 본 발명의 리드 솔로몬 복호화기에서의 다항식 P(X)를 평가 진행하는 장치는, 리드솔로몬 복호화기에서의 N개 심볼로 구성된 N-1차 코드워드를 수신받아 각 수신 심볼 에러를 정정하기 위한 다항식 P(X)를 단계적으로 평가하는 과정중에서, N은 기설정된 양의 정수이며, j는 1부터 N까지의 정수이고, α는 유한 필드 GF(2m)의 원시 원소(primitive element)로서, j번째 단계에서 다항식의 변수 X 대신 α-(N-j)를 대입하여 구한 평가 결과 P(α-(N-j))를 제공하는 다항식 평가 장치에 있어서, T가 기설정된 양수이고, T개의 메모리로 구성되는 FIFO버퍼 수단과; j번째 단계동안, 유한 필드 GF (2m)상의 T개의 제 1 그룹의 원소들을 순서대로 제공하는 근입력수단; j번째 단계 동안, 상기 FIFO버퍼의 내용과 상기 근입력수단으로부터 제 1그룹의 원소들을 차례대로 곱하여 T개로 구성된 j번째 평가항 세트를 제공하는 유한 필드 승산 수단; 초기화 단계 동안에는 상기 FIFO버퍼로 T개의 초기 평가항을 저장하도록 하고, j번째 단계 동안에는 FIFO 버퍼로 T개의 j번째 평가항 세트를 저장하도록 하는 선택 수단; T개의 j번째 세트의 평가항들을 모두 누산한 j번째 합을 제공하는 가산 수단; j번째 단계 동안, 상기 j번째 합에 다항식의 0차항의 계수를 더하여 j번째 평가 결과를 제공하는 출력수단을 포함하여 구성되는 것을 특징으로 한다.
도 1은 종래의 다항식 평가 장치에 대한 블록도,
도 2는 에러평가 다항식을 평가하는 본 발명에 따른 다항식 평가장치의 제 1 실시예에 대한 개략도,
도 3은 에러위치 다항식을 평가하는 본 발명에 따른 다항식 평가장치의 제 2 실시예에 대한 개략도,
도 4는 에러위치 미분다항식을 평가하는 본 발명에 따른 다항식 평가장치의 제 3 실시예에 대한 개략도이다.
* 도면의 주요 부분에 대한 부호의 설명
21,31,41 : 초기근 입력부 22,32,42 : 유한 필드상의 제 1 곱셈기
23,33,43 : 제 1 멀티플렉서 24,34,44 : 레지스터부
25,35,45 : 유한 필드상의 제 1 덧셈기 26,36,46 : 갱신근 입력부
27,37,47 : 가산부 27a,37a,47a : 유한 필드상의 제 2 덧셈기
27b,37b,47b : 제 2 멀티플렉서 27c,37c,47c : 레지스터
28,38,48 : 출력부 28a,38a : 레지스터
28b,38b : 유한 필드상의 제 2 덧셈기 39 : 에러판단부
이하, 첨부된 도면을 참조하여 본 발명을 상세히 설명하고자 한다.
도 2는 본 발명에 따른 에러평가 다항식을 평가하는 장치의 제 1 실시예에 대한 개략도로서, 본 평가 장치는 하기 수학식 6과 같이 변수 X 대신 원시 원소의 승수를 대입한 값을 계산한다.
상기 수학식 6에서 j=0 내지 N-1 이고, T는 8로 가정하여 본 실시예를 구현하였다.
도 2의 다항식 평가 장치에서는 수학식 6의 계산이 j=N-1에서부터 0까지의 순서대로 1차씩 낮아지면서 단계별로 진행되고, 이 점이 상기 도 1의 종래의 평가 장치와 뚜렷이 구분되는 차이점이다. 덧붙여서, 각 단계는 한 시스템 클럭클럭 주기 동안 진행되는 것이 바람직하다.
도 2에서 보는 바와 같이, 평가장치는 초기근 입력부(21)와, 제 1 유한 필드 GF 상의 곱셈기(22), 제 1 멀티플렉서(23), 레지스터부(24), 제 2 유한 필드 GF 상의 곱셈기(25), 갱신근 입력부(26), 가산부(27), 및 출력부(28)를 포함하여 구성되어 있다. 도 1과 비교해 볼 때, 도 1의 레지스터부(12)는 평가다항식의 계수들 Ωi로 초기화되는 반면, 도 2의 레지스터부(24)는 상기 초기근 입력부(21)와 제 1 GF 곱셈기(22)를 통해서 초기 평가값으로 초기화된다.
우선, 1 단계의 평가값을 결정하는 전에, 상기 레지스터부(24)에 포함된 레지스터들 R0∼R8 은들로 초기화된다. 이를 위해서, 에러평가 다항식의 계수들과 상기 초기근 입력부(21)의 초기근들이 상기 제 1 GF 곱셈기(22)를 통해서 곱해진다. 그 결과값인 8개의 초기항값은 상기 제 1 멀티플렉서(23)의 입력단자 0로 순서대로 입력되며, 선택신호(SEL1)에 따라 선택되어 상기 레지스터가 초기화되어진다. 즉, 첫번째 초기 평가항은 레지스터 R1에 입력되어 한 비트클럭 주기동안 저장된다. 다음 비트 클럭에서 레지스터 R1의 내용이 레지스터 R2로 이동되어 한 비트 클럭 주기동안 저장되고, 다음 레지스터 R3로 이동되는 방식으로 한 클럭동안 우측으로 시프트되어서, 결국에는, 마지막 레지스터 R8로부터 출력된 값은 상기 제 2 GF곱셈기(25)로 입력된다.
상기 레지스터부(24)의 각 레지스터들이 초기 평가항(예를 들어,은 레지스터 R8,는 레지스터 R7, 등등)으로 채워진 후에 비로소, 평가값을 결정하는 1번째 단계가 시작된다.
1번째 단계의 첫번째 비트 클럭동안에는 상기 제 2 GF곱셈기(25)는 상기 레지스터 R8로부터 출력된 값과 상기 갱신근 입력부(26)로부터 출력된 값αi을 곱셈하여 출력한다. 그 출력된 값(1번째 세트의 첫번째 평가항)은 상기 가산부(27)로 한 비트 클럭주기에 하나씩 입력된다. (여기서 K번째 세트의 평가항들은들을 가르킨다.)
상기 갱신근 입력부(26)가 제공하는 갱신근 αi은 레지스터부로부터 출력되는 평가항들을 1차씩 증가시켜주기 위해서 곱해지는 값이다.
상기 가산부(27)는 상기 제 2 GF곱셈기(25)로부터 제공되는 평가항들을 차례대로 더하는 제 1 유한 필드 GF(2m) 덧셈기(27a)와, 상기 제 1 GF덧셈기(27a)로부터 출력되는 평가항중에서 1번째부터 7번째 부분합까지를 저장하는 레지스터(27c) R9 를 포함하여 구성된다. 여기서, L 번째(L은 1부터 7까지의 정수) 부분합은 상기 수학식 6과 같이 차례대로 더해지는 과정에서 동일한 세트에 포함된 평가항들의 합을 가르킨다. 또한 상기 가산부(27)에는 제어신호 RST_SUM 에 응하여 선택적으로 0값 또는 상기 GF덧셈기(27a)의 출력값을 상기 레지스터(27b)로 제공하는 제 2 멀티플렉서(27b)를 포함하여 구성된다.
여기서, 상기 제어신호 RST_SUM 은 각 단계의 끝(그 다음 단계의 시작과 동일하다.)에서 레벨값 1이 되는 신호이면 충분하다. 따라서, RST_SUM 은 각 단계의 시작에서 상기 제 2 멀티플렉서(27b)로부터 0을 출력하여 다음 단계를 위해서 상기 레지스터(27c)를 초기화시키는 역할을 한다.
상기 가산부(27)에서는 상기 제 2 GF 곱셈기(25)로부터 출력된 평가항을 상기 제 1 GF 덧셈기(27a)로 입력받아, 상기 레지스터(27c)의 내용 0값과 더하고, 그 더한값인 제 1 부분합은 상기 제 2 멀티플렉서(27b)를 통해 다시 상기 레지스터(27c)로 출력되어 저장된다. 이를 테면, 상기 제 2 멀티플렉서(27b)는 신호 RST_SUM 에 따라 상기 제 1 덧셈기(27a)의 출력을 상기 레지스터(27c)로 제공하고, 상기 레지스터(27c)는 다음 비트 클럭의 상승에지에 맞추어 입력받아 저장한다.
한편, 상기 제 2 GF 곱셈기(25)에서 제공되는 제 1 부분합은 상기 제 1 멀티플렉서를 통해 선택되어 상기 레지스터부(24)로 입력되어 진다. 이를 테면, 1번째 단계의 두번째 비트 클럭의 상승에지에 맞추어 각 레지스터 R1∼R8 의 내용들이 우측으로 하나씩 시프트되어진다. 이렇게 두번째 비트클럭 주기동안 각 레지스터들의 내용을 하기 표 4에 나타내었다.
R1 R2 R3 R4 R5 R6 R7 R8
Ω1α-(N-1) Ω8α-8N Ω7α-7N Ω6α-6N Ω5α-5N Ω4α-4N Ω3α-3N Ω2α-2N
1번째 단계의 두번째 비트 클럭 동안에는 상기 제 2 곱셈기(25)는 상기 레지스터 R8로부터 제공된 Ω2α-2N에다가 갱신근 α2를 곱하여 출력하며, 그 출력값 Ω2α-2(N-1)은 상기 제 1 덧셈기(27a)로 입력된다. 상기 제 1 덧셈기(27a)에서는 상기 제 2 곱셈기(25)로부터 출력된 값과 상기 레지스터(27c)의 내용을 피드백 입력받아 더하여 제 2 부분합을 출력한다. 상기 제 2 부분합은 RST_SUM신호에 따라 상기 제 2 멀티플렉서(27b)를 통해 다시 상기 레지스터(27c)로 입력되어 저장된다. 또한, 상기 제 2 GF 곱셈기(25)로부터 출력된 값 Ω2α-2(N-1)은 상기 제 1 멀티플렉서(23)를 통해 상기 레지스터부(24)로 입력되고, 다음 비트 클럭주기의 상승에지에는 각 레지스터의 내용이 우측으로 하나씩 시프트되어진다. 이와 같은 과정을 통해 변경된 상기 레지스터부(24)의 내용은 하기 표 5와 같이 저장된다.
R1 R2 R3 R6 R8
Ω2α-2(N-1) Ω1α-(N-1) Ω8α-8N Ω4α-4N Ω3α-3N
상기에 전술한 과정을 1번째 단계의 나머지 비트 클럭주기동안에 반복함으로써, 한 심볼 클럭주기동안 상기 제 2 GF 곱셈기(25)로부터 출력된 값까지가 상기 가산부(27)를 통해 모두 더해진다. 상기 제 1 GF 덧셈기(27a)는 최종적으로 1번째 세트의 8번째 부분합 즉, 8개의 평가항을 합한 값을 상기 출력부(28)로 제공한다. 상기 출력부(28)에서는 상기 RST_SUM 신호에 따라 인에이블된 상기 레지스터(28a)로 상기 합한 값을 입력받은 후, 다음 비트 클럭에서 상기 제 2 GF 덧셈기(28b)로 출력된다. 상기 제 2 GF 덧셈기(28b)에서는 입력된 상기 합한 값에 평가 다항식의 0차 계수 Ω0가 더해져서, 1번째 단계의 최종 결과값인 제 1 평가 결과가 얻어진다. 또한, 상기 레지스터(27b)는 RST_SUM 에 따라 다음 단계를 위하여 상기 멀티플렉서(27b)로부터 제공된 0값으로 초기화 된다.
2번째 단계는 1번째 단계와 유사하게 진행되는 데, 상기 제 2 GF 곱셈기(25)로부터 출력된 2번째 세트의 평가항들, 즉,들이 상기 가산부(27)로 제공되어 누산되고, 동시에 상기 레지스터부(24)로 입력되어 시프트된다. 다시 말해서, 첫번째 비트 클럭 주기동안에는 α1이 곱해지고, 두번째 비트 클럭 주기동안에는 α2이 곱해지며, 나머지 비트 클럭에서도 갱신근과 이전 평가항들이 곱해져서 제 2 세트의 평가항들을 제공한다. 이와 같이 얻어진 제 2 세트의 평가항들()이 더해져서 2번째 단계의 끝에는 2번째 평가 결과가 얻어진다.
상기의 과정을 반복함으로써 j=N-1 에서 0까지에 대한 Ω(α-j)가 N번의 단계를 거치면서 얻어진다.
1번째에서 3번째 단계의 각 비트 클럭 주기에 따른 상기 레지스터부(24)의 레지스터 R1∼R8 과 상기 가산부(27)의 레지스터 R9의 내용을 하기 표 6에 나타내었다. 표 6에서 각 행은 하나의 비트클럭 주기에 해당한다.
단계 R1 R2 R8 R9
1 Ω8α-8N Ω7α-7N Ω1α-N 0
Ω1α-(N-1) Ω8α-8N Ω2α-2N Ω1α-(N-1)
Ω2α-2(N-1) Ω1α-(N-1) Ω3α-3N Ω2α-(N-1)
Ω7α-7(N-1) Ω6α-6(N-1) Ω8α-8N Ω1α-(N-1)+…+Ω7α-7(N-1)
2 Ω8α-8(N-1) Ω7α-7(N-1) Ω1α-(N-1) 0
Ω1α-(N-2) Ω8α-8(N-1) Ω2α-2(N-1) Ω1α-(N-2)
Ω2α-2(N-2) Ω1α-(N-1) Ω3α-3(N-1) Ω1α-(N-2)2α-2(N-2)
Ω7α-7(N-2) Ω6α-6(N-2) Ω8α-8(N-1) Ω1α-(N-2)+…+Ω7α-7(N-2)
3 Ω8α-8(N-2) Ω7α-7(N-2) Ω1α-(N-2) 0
Ω1α-(N-3) Ω8α-8(N-2) Ω2α-2(N-2) Ω1α-(N-3)
Ω2α-2(N-3) Ω1α-(N-3) Ω3α-3(N-2) Ω1α-(N-3)2α-2(N-3)
Ω7α-7(N-3) Ω6α-6(N-3) Ω8α-8(N-2) Ω1α-(N-3)+…+Ω7α-7(N-3)
이어서, 도 3은 본 발명에 따른 다항식 평가 장치의 제 2 실시예에 대한 개략도로서, 본 실시예는 에러위치 다항식 σ(X)를 평가하는 장치이다.
도 3에서 보는 바와 같이, 에러위치 다항식 평가 장치는 도 2의 에러평가 다항식 평가 장치에 에러 판단부(39)가 추가 구비되어 있으며, 각 블럭에 대응되는 구조 및 기능은 동일한다.
즉, 에러위치 다항식 평가 장치에서는 에러위치 다항식의 계수들이 상기 제 1 GF 곱셈기(31)로 입력되며, 이미 도 2를 참조하여 설명한 평가과정과 동일하게 수행하여 상기 출력부(38)를 통해서 j=N-1에서 0까지 순서대로 각 단계들에 대한 평가 결과 σ(α-j)를 제공한다.
이제, 상기 에러 판단부(39)에서는 상기 출력부(38)의 평가 결과 σ(α-j)를 입력받아, 그 결과가 0인 경우이면, 코드워드의 상응하는 심볼에서 에러가 발생했음을 알리는 에러발생신호가 생성된다. 여기서, j가 큰 값부터 먼저 평가 진행되어 우선적으로 결정되기 때문에, 최고차 수신 심볼부터 에러발생을 검출하고, 에러정정을 수행하게 되는 것이다.
이어서, 도 4는 본 발명에 따른 다항식 평가 장치의 제 3 실시예에 대한 개략도로서, 본 실시예는 에러위치 미분 다항식 σ'(X), 즉 에러위치 다항식의 1차 도함수를 평가하는 장치이다.
우선, 본 에러위치 미분다항식 평가 장치의 이해를 돕고저, 에러위치 다항식과 미분 다항식을 비교해보면 다음과 같다.
에러위치 다항식이 상기 수학식 7과 같이 8차 다항식일 경우 이를 1차 미분한 다항식은 하기 수학식 8a과 같다.
상기 수학식 8a에서 보여진 미분 다항식을 유한 필드 GF(2m)상에서 동작하게 되면,유한 필드상에서는 동일한 두 수를 더하면 0이 되기 때문에 상기 수학식 8a는 하기 수학식 8b와 같이 간단히 표현할 수 있다.
도 4의 평가장치는 상기 수학식 8b를 구현하도록 도 2의 에러평가 다항식 평가장치의 각 블럭이 갖는 기능과 동일하나, 그 구조와 입력 계수의 차수는 다르다.
즉, 외부로부터 입력되는 미분 다항식의 계수는 홀수차항의 계수는이고, 상기 초기근 입력부(41)에서는를 제공하고, 상기 갱신근 입력부(46)에서는을 제공한다. 초기근 입력부(41)와 갱신근 입력부(46)가 제공하는 근값이 다른 이유는 미분 다항식의 평가 결과에는 α의 짝수차항만을 포함하기 때문이다.
상기 제 1 갈로아체 곱셈기(42)를 통해 상기 홀수차항 계수와 초기근 입력부(41)의 초기근과 곱해져서 초기 평가항을 상기 레지스터부(44)로 제공한다.
따라서, 도 2 와 도 3에 도시된 상기 레지스터부(24,34)와 비교하여, 도 4의 레지스터부(44)에 포함된 레지스터의 개수는 반으로 줄어든다. 또한, 미분 평가 결과에서는 다항식의 0차 계수 σ0를 포함하지 않으므로 출력부(48)에는 GF 덧셈기를 포함하지 않아도 무방하다.
이상의 차이점만 제외하면, 각 단계에서 수행되는 평가 계산과정은 완전히 동일하며, 평가진행의 제 1 단계에서 제 3 단계까지 각 비트 클럭주기 동안의 상기 레지스터부(44)의 레지스터 R1∼R4와 가산부(47)의 레지스터 R5의 내용을 표 7에 나타내었다. 표 7에서 각 행은 각 비트 클럭 주기에 해당한다.
단계 R1 R2 R4 R5
1 σ7α-6N σ5α-4N σ1 0
σ1 σ7α-6N σ3α-2N σ1
σ3α-2(N-1) σ1 σ5α-3N σ13α-2(N-1)
σ5α-4(N-1) σ3α-2(N-1) σ7α-6N σ13α-2(N-1)5α-4(N-1)
2 σ7α-6(N-1) σ5α-4(N-1) σ1 0
σ1 σ7α-6(N-1) σ3α-2(N-1) σ1
σ3α-2(N-2) σ1 σ5α-4(N-1) σ11α-2(N-2)
σ5α-4(N-1) σ3α-2(N-2) σ7α-6(N-1) σ13α-2(N-2)5α-4(N-2)
3 σ7α-6(N-2) σ5α-4(N-2) σ1 0
σ1 σ7α-6(N-2) σ3α-2(N-2) σ1
σ3α-2(N-3) σ1 σ5α-4(N-2) σ13α-2(N-3)
σ5α-7(N-3) σ3α-6(N-3) σ7α-6(N-2) σ13α-2(N-3)5α-4(N-3)
상기에 기술한 바와 같은 동작을 수행하는 본 발명은 종래의 평가장치와 비교하여 평가 결과가 역순으로 제공한다. 즉, 리드 솔로몬 복호기가 수신 받는 순서대로 코드워드 다항식의 높은 차수 심볼부터 평가하는 것이다.
본 명세서에서는 본 발명을 특정한 실시예들과 관련하여서만 설명하였으나, 당업자들은 청구항에서 규정한 발명의 의도와 범위를 벗어나지 않는 한도내에서 다양하게 실시할 수 있다.
종래의 평가 장치에서는 평가 결과인 의 순서대로 제공되었기 때문에 에러값역시의 순서로 j 가 작은것부터 계산되어졌다. 반면에, 복호기로 수신되어 들어오는 수신 심볼은 차수가 높은 심볼(j가 큰 차수) 즉,부터순서로 제공되어 지기 때문에, 심볼 차수에 해당하는 에러값과 더해지기 전에 수신된 심볼은 LIFO()에 저장되었다가, 역순으로 제공되어야만 했다.
이상에서 살펴본 본 발명은 평가 결과인 의 순서대로 평가 진행되므로써, 수신되어 들어오는 심볼의 순서대로 즉, 높은 차수 심볼부터 에러값을 구할 수 있도록 평가 결과들을 제공하는 효과가 있는 것이다.

Claims (12)

  1. 리드솔로몬 복호화기에서의 N개 심볼로 구성된 N-1차 코드워드를 수신받아 각 수신 심볼 에러를 정정하기 위한 다항식 P(X)를 단계적으로 평가하는 과정중에서, N은 기설정된 양의 정수이며, j는 1부터 N까지의 정수이고, α는 유한 필드 GF(2m)의 원시 원소(primitive element)로서, j번째 단계에서 다항식의 변수 X 대신 α-(N-j)를 대입하여 구한 평가 결과 P(α-(N-j))를 제공하는 다항식 평가 장치에 있어서,
    T가 기설정된 양수이고, T개의 메모리를 포함한 FIFO버퍼 수단(34)과;
    j번째 단계동안, 유한 필드 GF (2m)상의 T개의 제 1 그룹의 원소들을 순서대로 제공하는 제 1 입력수단(36);
    j번째 단계 동안, 상기 FIFO 버퍼(34)의 각각의 내용과 상기 제 1 입력수단(36)의 제 1그룹의 원소들을 순서대로 곱하여 T개로 구성된 j번째 평가항 세트를 제공하는 유한 필드 승산 수단(35);
    T개의 초기 평가항을 생성하는 초기항 생성수단(31,32);
    상기 FIFO 버퍼(34)에 T개의 초기 평가항 세트 혹은 T개의 j번째 평가항 세트를 선택적으로 제공하여 저장하도록하는 선택 수단(33);
    T개의 j번째 세트의 평가항들을 누산하여 j번째 합을 제공하는 가산수단(37); 및
    j번째 단계 동안, 다항식의 0차항의 계수를 j번째 합에 더하여 최종적으로 j번째 평가 결과를 제공하는 출력수단(38)을 포함하여 구성되는 것을 특징으로 하는 다항식 평가장치.
  2. 제 1 항에 있어서, 상기 가산 수단(37)은 상기 승산 수단(35)으로부터 제공된 평가항을 입력받고, 이전까지 누산된 평가항에 대한 부분합을 피드백 입력받아 더하여 부분합 혹은 j번째 합을 출력하는 가산기(37a)와;
    상기 가산기(37a)로부터 제공된 부분합 혹은 0을 선택적으로 제공하는 선택 수단(37b); 및
    상기 선택 수단(38b)으로부터 제공된 부분합 혹은 0을 저장함과 동시에, 상기 부분합 혹은 0을 피드백하여 상기 가산기(37a)로 제공하는 메모리 수단(37c)을 포함하는 것을 특징으로하는 리드 솔로몬 복호화기에서의 다항식 평가장치.
  3. 제 1 항에 있어서, 상기 초기항 생성수단은 유한 필드 상에 T개의 제 2 그룹 원소들을 순서대로 제공하는 제 2 입력 수단(31); 및
    상기 제 2 입력 수단(31)으로부터 제공된 제 2 그룹의 원소들을 다항식의 1차내지 T 차항의 계수와 차례대로 곱하여 T개의 초기 평가항들을 제공하는 승산 수단(32)을 포함하여 구성되는 것을 특징으로 하는 리드 솔로몬 복호화기에서의 다항식 평가 장치.
  4. 제 3 항에 있어서, i가 1부터 T까지의 정수일 경우, 상기 T 개의 제 1 그룹의원소들은 αi이고, 상기 T 개의 제 2 그룹의 원소들은 α-iN인 것을 특징으로 하는 리드 솔로몬 복호화기에서의 다항식 평가 장치.
  5. 제 1 항에 있어서, 다항식 P(X)는 T차의 에러 평가 다항식인 것을 특징으로 하는 리드 솔로몬 복호화기에서의 다항식 평가 장치.
  6. 제 1 항에 있어서, 다항식 P(X)는 T차의 에러 위치 다항식인 것을 특징으로 하는 리드 솔로몬 복호화기에서의 다항식 평가 장치.
  7. 제 1 항에 있어서, 최종 평가 결과가 0인지를 판단하여 수신 심볼에 에러가 발생했음을 알리는 에러발생신호를 제공하는 에러 판단 수단(39)을 추가로 구비하는 것을 특징으로 하는 리드 솔로몬 복호화기에서의 다항식 평가 장치.
  8. 리드솔로몬 복호화기에서의 N개 심볼로 구성된 N-1차 코드워드를 수신받아 각 수신 심볼 에러를 정정하기 위한 다항식 P(X)를 단계적으로 평가하는 과정중에서, N은 기설정된 양의 정수이며, j는 1부터 N까지의 정수이고, α는 유한 필드 GF(2m)의 원시 원소(primitive element)로서, j번째 단계에서 다항식의 변수 X 대신 α-(N-j)를 대입하여 구한 평가 결과 P(α-(N-j))를 제공하는 다항식 평가 장치에 있어서,
    T가 기설정된 양의 정수일 때, T개의 메모리 수단을 포함하여 구성되는 FIFO버퍼 수단(24)과;
    첫번째 단계 동안, 상기 FIFO버퍼 수단(24)으로 T개의 초기 평가항들을 차례대로 제공하여 초기화 시키는 초기화 수단(21, 22, 23);
    j번째 단계 동안, 유한 필드 상의 T개의 제 1 그룹의 원소들을 차례대로 제공하는 제 1 입력수단(26);
    j번째 단계 동안, 상기 FIFO 버퍼(24)의 내용과 상기 제 1 입력수단(26)의 제 1그룹의 원소들을 차례대로 곱하여 T개로 구성된 j번째 평가항 세트를 제공하는 유한 필드 승산 수단(25);
    j번째 단계 동안, T개의 j번째 세트의 평가항을 상기 FIFO 버퍼(24)에 저장하도록 제공하는 수단(23);
    T개의 j번째 세트의 평가항들을 모두 누산하여 j번째 합을 제공하는 제 1 가산수단(27); 및
    j번째 단계 동안, 다항식의 0차항의 계수를 j번째 합에 더하여 최종적으로 j번째 평가 결과를 제공하는 제 2 가산 수단(28)을 포함하여 구성되는 것을 특징으로 하는 리드 솔로몬 복호화기에서의 다항식 평가장치.
  9. 리드솔로몬 복호화기에서의 N개 심볼로 구성된 N-1차 코드워드를 수신받아 각 수신 심볼 에러를 정정하기 위한 다항식 P(X)를 단계적으로 평가하는 과정중에서, N은 기설정된 양의 정수이며, j는 1부터 N까지의 정수이고, α는 유한 필드 GF(2m)의 원시 원소(primitive element)로서, j번째 단계에서 다항식의 변수 X 대신 α-(N-j)를 대입하여 구한 평가 결과 P(α-(N-j))를 제공하는 다항식 평가 장치에 있어서,
    T가 기설정된 양의 정수일 때, T개의 메모리 수단을 포함하여 구성되는 FIFO버퍼 수단(44)과;
    j번째 단계 동안, 유한 필드 상의 T개의 제 1 그룹의 원소들을 차례대로 제공하는 제 1 입력수단(46);
    j번째 단계 동안, 상기 FIFO 버퍼(24)의 각각의 내용과 상기 제 1 입력수단(26)의 제 1그룹의 원소들을 차례대로 곱하여 T개로 구성된 j번째 평가항 세트를 제공하는 유한 필드 승산 수단(45);
    T 개의 초기 평가항들을 생성하는 수단(41, 42);
    T개의 초기 평가항 혹은 T개의 j번째 세트의 평가항들을 선택하여 상기 FIFO 버퍼(44)에 저장하도록 하는 선택 수단(43); 및
    T개의 j번째 세트의 평가항들을 모두 누산하여 j번째 평가 결과를 제공하는 가산수단(47, 48)을 포함하여 구성되는 것을 특징으로 하는 리드 솔로몬 복호화기에서의 다항식 평가장치.
  10. 제 9 항에 있어서, 상기 가산 수단은 상기 승산 수단(45)으로부터 제공된 평가항을 입력받고, 이전까지 누산된 평가항에 대한 부분합을 피드백 입력받아 더하여 부분합 혹은 j번째 평가 결과를 출력하는 가산기(47a)와;
    상기 가산기(47a)로부터 제공된 부분합 혹은 0을 선택적으로 제공하는 선택 수단(47b); 및
    상기 선택 수단(38b)으로부터 제공된 부분합 혹은 0을 저장함과 동시에, 상기 부분합 혹은 0을 피드백하여 상기 가산기(47a)로 제공하는 메모리 수단(47c)을 포함하는 것을 특징으로하는 리드 솔로몬 복호화기에서의 다항식 평가장치.
  11. 제 9 항에 있어서, 상기 생성 수단은 유한 필드 상에 T개의 제 2 그룹 원소들을 순서대로 제공하는 제 2 입력 수단(41); 및
    상기 제 2 입력 수단(41)으로부터 제공된 제 2 그룹의 원소들을 다항식의 1차내지 T 차항의 계수와 차례대로 곱하여 T개의 초기 평가항들을 제공하는 승산 수단(42)을 포함하여 구성되는 것을 특징으로 하는 리드 솔로몬 복호화기에서의 다항식 평가 장치.
  12. 제 11 항에 있어서, 다항식 P(X)는 2T차의 에러 위치 다항식의 1차 도함수이고, 다항식 P(X)의 1차 내지 T차 항의 계수는 에러 위치 다항식의 홀수차항의 계수에 해당하고, 제 1 그룹의 T개의 원소는이고, 제 2 그룹의 T개의 원소는인 것을 특징을 하는 리드 솔로몬 복호화기에서의 다항식 평가 장치.
    i가 1부터 T까지의 정수일 경우, 상기 T 개의 제 1 그룹의원소들은 αi이고, 상기 T 개의 제 2 그룹의 원소들은 α-iN인 것을 특징으로 하는 리드 솔로몬 복호화기에서의 다항식 평가 장치.
KR1019960060091A 1996-05-10 1996-11-29 리드 솔로몬 복호화기에서의 다항식 평가 장치 KR100192804B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR96-015344 1996-05-10
KR101996015344 1996-05-10
KR19960015344 1996-05-10

Publications (2)

Publication Number Publication Date
KR970078047A KR970078047A (ko) 1997-12-12
KR100192804B1 true KR100192804B1 (ko) 1999-06-15

Family

ID=19458229

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960060091A KR100192804B1 (ko) 1996-05-10 1996-11-29 리드 솔로몬 복호화기에서의 다항식 평가 장치

Country Status (5)

Country Link
US (1) US5971607A (ko)
EP (1) EP0806838A1 (ko)
JP (1) JPH09307458A (ko)
KR (1) KR100192804B1 (ko)
CN (1) CN1167373A (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69919199T2 (de) 1998-11-09 2005-09-15 Broadcom Corp., Irvine Vorwärtsfehlerkorrektur
CA2265389C (en) 1999-03-12 2011-07-12 Certicom Corp. System and method for efficient basis conversion
EP1260023A2 (en) 2000-02-17 2002-11-27 Analog Devices, Inc. Method, apparatus, and product for use in generating crc and other remainder based codes
US20030140302A1 (en) * 2002-01-23 2003-07-24 Litwin, Louis Robert Chien search cell for an error-correcting decoder
CN100459438C (zh) * 2006-10-20 2009-02-04 东南大学 里德所罗门解码器的关键方程与错误值求解优化电路
CN102098292A (zh) * 2010-12-24 2011-06-15 成都天奥信息科技有限公司 船载自动识别系统传输含中文信息的方法
CN103729162A (zh) * 2012-10-15 2014-04-16 北京兆易创新科技股份有限公司 伽罗瓦域运算系统和方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4162480A (en) * 1977-01-28 1979-07-24 Cyclotomics, Inc. Galois field computer
US4649541A (en) * 1984-11-21 1987-03-10 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Reed-Solomon decoder
US4958348A (en) * 1988-02-12 1990-09-18 Eastman Kodak Company Hypersystolic Reed-Solomon decoder
US5323402A (en) * 1991-02-14 1994-06-21 The Mitre Corporation Programmable systolic BCH decoder
US5644695A (en) * 1994-01-03 1997-07-01 International Business Machines Corporation Array combinatorial decoding with multiple error and erasure detection and location using cyclic equivalence testing

Also Published As

Publication number Publication date
CN1167373A (zh) 1997-12-10
US5971607A (en) 1999-10-26
JPH09307458A (ja) 1997-11-28
KR970078047A (ko) 1997-12-12
EP0806838A1 (en) 1997-11-12

Similar Documents

Publication Publication Date Title
US6374383B1 (en) Determining error locations using error correction codes
EP0620654B1 (en) Circuit for performing the Euclidian algorithm in decoding of arithmetical codes
US6119262A (en) Method and apparatus for solving key equation polynomials in decoding error correction codes
US5805617A (en) Apparatus for computing error correction syndromes
EP0729611A1 (en) Reed-solomon decoder
US5583499A (en) Method and apparatus for computing error locator polynomial for use in a Reed-Solomon decoder
JP3305525B2 (ja) 復号器、誤りロケータシーケンス生成器および復号方法
JP3834122B2 (ja) 誤り位置検出多項式計算装置
KR100192804B1 (ko) 리드 솔로몬 복호화기에서의 다항식 평가 장치
US6263471B1 (en) Method and apparatus for decoding an error correction code
KR100258951B1 (ko) 리드-솔로몬(rs) 복호기와 그 복호방법
JP2001127645A (ja) 誤り訂正方法および誤り訂正装置
EP0793352B1 (en) Apparatus for determining the error evaluator polynomial for use in a Reed-Solomon decoder
US5978950A (en) Polynomial evaluator for use in a reed-solomon decoder
KR100192802B1 (ko) 리드 솔로몬 디코더의 에러값 계산 및 정정 장치
US5751732A (en) Polynomial evaluator for use in a reed-solomon decoder
KR100192803B1 (ko) 에러 정정 신드롬 계산 장치
KR100192800B1 (ko) 리드 솔로몬 디코더의 다항식 평가 시스템 및 그 방법
Lee et al. An efficient recursive cell architecture of modified Euclid's algorithm for decoding Reed-Solomon codes
JP2000295116A (ja) 誤り修正符号化方法
KR100215570B1 (ko) 고화질 텔레비젼용 리드 솔로몬 디코더
JP2591611B2 (ja) t重誤り訂正符号の符号化復号化回路
KR100212825B1 (ko) 리드 솔로몬 복호기의 신드롬 계산장치
KR970005125B1 (ko) 리드-솔로만 부호기
KR100212830B1 (ko) 리드 솔로몬 복호기의 신드롬 계산장치

Legal Events

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

Payment date: 20110103

Year of fee payment: 13

LAPS Lapse due to unpaid annual fee