KR100192792B1 - 리드 솔로몬 복호기의 다항식 평가 장치 - Google Patents

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

Info

Publication number
KR100192792B1
KR100192792B1 KR1019960015268A KR19960015268A KR100192792B1 KR 100192792 B1 KR100192792 B1 KR 100192792B1 KR 1019960015268 A KR1019960015268 A KR 1019960015268A KR 19960015268 A KR19960015268 A KR 19960015268A KR 100192792 B1 KR100192792 B1 KR 100192792B1
Authority
KR
South Korea
Prior art keywords
output
polynomial
evaluation
register
out buffer
Prior art date
Application number
KR1019960015268A
Other languages
English (en)
Other versions
KR970078042A (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 전주범
Priority to KR1019960015268A priority Critical patent/KR100192792B1/ko
Priority to US08/755,581 priority patent/US5751732A/en
Priority to EP96308522A priority patent/EP0793350A1/en
Priority to JP8322950A priority patent/JPH09246999A/ja
Priority to CN96120991A priority patent/CN1158518A/zh
Publication of KR970078042A publication Critical patent/KR970078042A/ko
Application granted granted Critical
Publication of KR100192792B1 publication Critical patent/KR100192792B1/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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing

Landscapes

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

Abstract

본 발명은 리드 솔로몬 복호기의 다항식 평가 장치에 관한 것으로, 이 장치는 소정의 제1 클럭(bit_clk)에 따라 동작되는 T개 메모리로 구성되어 T개의 평가항을 선입선출 형태로 제공하기 위한 선입선출 버퍼(110); 상기 j=0인 0번째 단계를 처리할 경우에는 '1'을 제공하고 1 내지 N-1번째 단계에서는 제2 선택신호(sel2)에 따라 상기 선입선출 버퍼(110)의 출력에 대응하는 상기 유한체 GF(2m)의 원소(α-1)를 제공하기 위한 근입력수단(120); 상기 근입력수단의 출력과 상기 선입선출 버퍼의 출력을 유한체 GF(2m)상에서 순차적으로 곱하여 평가항을 제공하기 위한 곱셈기(130); 상기 곱셈기(130)의 출력을 누적적으로 가산하여 T항까지 누적되면 출력하는 누산수단; 제1 선택신호(sel1)에 따라 초기화 단계에서는 상기 에러 위치 다항식(σ(X))의 계수값을 선택하여 출력하고, j=0 내지 j=N-1을 처리하는 단계에서는 상기 곱셈기(130)의 출력을 선택하여 상기 선입선출버퍼(110)에 제공하는 선택수단; 상기 누산수단의 출력을 상기 다항식(σ(X))의 0차 항과 가산하여 출력하기 위한 출력수단(160); 및 상기 출력수단이 매 단계마다 제공하는 평가값이 소정의 값인지를 판단하기 위한 판단수단(170)이 구비되어 있다.

Description

리드 솔로몬 복호기의 다항식 평가 장치
본 발명은 리드 솔로몬 부호기(Reed solomon encoder : RS encoder)에 의해 에러 정정 부호화(error correcting coding, error control coding : 이하 ECC라 칭함)된 데이터를 에러 정정 복호화하는 리드 솔로몬 복호기에 관한 것으로, 특히 에러 평가 다항식, 에러 위치 다항식, 에러 위치 다항식의 1계 도함수인 미분 다항식의 변수에 갈로아체상의 원소인 코드 발생 다항식의 근을 대입하여 그 결과를 구하는 리드 솔로몬 복호기의 다항식 평가 장치에 관한 것이다.
일반적으로, 에러 정정 부호화(ECC)는 데이터를 통신 채널로 전송하거나 저장 매체에 저장하는 경우에 수신된 혹은 재생된 데이터에 존재하는 에러를 검출한 후 이를 정정하기 위한 기술에 관한 것으로, 에러를 검출하거나 정정하는데 사용되는 검사 비트를 메시지 혹은 정보 비트에 부가하는 것이다.
이러한 에러 정정 코드(ECC)의 역사는 샤논(Claude Shannon)이 1948년에 '모든 통신 채널은 C(bps)라고 하는 고유의 전송 용량을 갖고 있으며, 그 용량을 초과하지 않는 전송 속도 R(bps)로 데이터를 전송하는 통신 시스템을 구축하는 것은 에러 정정 부호를 이용하면 어떤 채널이고 가능하다'는 것을 수학적으로 증명하면서부터 시작되었다.
즉, 아주 좋은 성능의 채널을 구현하는 것 보다 다소 성능이 떨어지는 기존 채널을 사용하면서 에러 정정 부호를 사용하는 것이 더 경제적이라는 것이다.
그러나, 샤논(Claude Shannon)은 단지 그러한 에러 정정 코드가 존재한다는 것만을 증명하였을 뿐이며, 에러 정정 코드를 찾는 방법에 대해서는 언급하지 않았다.
이에 따라 에러 정정 코드를 찾기 위한 노력이 계속 진행되고 있으며, 이러한 연구 결과로서 현재까지 알려진 에러 정정 코드는 크게 블록 코드(block code)와 논블록 코드(nonblock code)로 나누어진다.
상기 불록 코드는 정보 시퀀스를 k개의 비트로 이루어진 블록으로 분리한 다음 블록 단위로 에러 정정 부호화하는 것이며, 상기 논블록 코드는 정보 시퀀스 전체에 대해 에러 정정 부호화하는 것이다.
상기와 같은 블록 코드의 대표적인 예로는 BCH 코드(Bose and Ray-Chaudhuriand Hocquenghem code)와 리드 솔로몬 코드(RS code)를 들 수 있고, 논블록 코드의 대표적인 예로는 길쌈 부호(convolutional code)를 들 수 있다.
상기 BCH 코드는 사이클릭 코드(cyclic code)로서 갈로아체 GF(2m) 상에서 동작된다.
사이클릭 코드란 선형 코드(linear code)의 어떤 선형 벡터를 사이클릭 시프트시키더라도 사이클릭 시프트된 선형 벡터가 상기 선형 코드의 선형 벡터인 선형 코드를 말한다.
따라서, BCH 코드는 다음 수학식 1과 같이 코드 발생 다항식 g(x)이 정해지면 피드백 시프트 레지스터를 이용하여 코드를 부호화할 수 있다.
이때, 상기 BCH 코드는 코드 발생 다항식 g(x)이 연속하는 2t개의 근을 가진다면 t비트의 에러를 정정할 수 있는 능력을 가진다.
한편, 리드 솔로몬 코드는 상기 BCH코드의 넌바이너리(nonbinary) 코드로서 코드 발생 다항식이 상기 수학식 1과 같이 정해지면 t 심볼(symbols)의 에러를 정정할 수 있다.
따라서, 현재 리드 솔로몬 코드는 통신 및 컴퓨터 기억 시스템 등에 폭 넓게 사용될 뿐만 아니라 재밍에 대항하기 위한 한 방법으로서 비밀 통신 시스템에서 사용되기도 한다.
이와 같은 리드 솔로몬 코드는 상기 BCH 코드와 마찬가지로 갈로아체계 GF(2m) 상에서 동작된다.
즉, 상기 갈로아체 GF(2m)는 2m개의 원소를 갖는 수첵)(number system)로서, 이러한 수체계를 하드웨어로 구현하게 되면, 각 원소들이 모두 m개의 바이너리 디지트(digit)로 표현될 수 있으므로 디지털 구조에 효과적일 뿐만 아니라 오버 플로우(over flow)가 발생하지 않게 되는 것이다.
상기와 같이 갈로아체 GF(2m) 상의 코드를 가지는 리드 솔로몬 코드는 정보와 패리티(parity)가 섞이지 않는 계통적 코드(systematic code)와 정보와 패리티(parity)가 섞이는 비계통적 코드(nonsystematic code)로 분류된다.
상기 계통적 코드는 정보와 패리티가 섞이지 않도록 우선 정보를 상위 바이트로 이동시킨 다음 에러 정정용 코드를 구하여 더한 것으로, 다음 수학식 2로부터 구해진다.
상기 수학식 2에 있어서, 상기 c(x)는 코드워드 다항식이고, i(x)는 정보 다항식이며, t(x)는 에러 정정용 패리티의 다항식이다.
즉, 정보와 패리티를 섞이지 않게 정보 i(x)를차 만큼 사우이 바이트로 이동시킨 다음를 만족하는 패리티 t(x)를 구한다.
그리고,을 만족하는 패리티 t(x)를 다음 수학식 3으로부터 구할 수 있다.
따라서,
상기 수학식 3에 있어서는 코드워드 다항식 c(x)를 코드 발생 다항식 g(x)로 나눈 나머지값을 의미한다.
즉, 상기 패리티 t(x)를 구하기 위해서는를 코드 발생 다항식 g(x)로 나누는 과정을 수행하여야 하며, 이러한 과정은 시프트 레지스터를 코드 발생 다항식 g(x)에 따라 연결하여 구현할 수 있다.
그리고, 상기 비계통적 코드는 다음 수학식 4와 같이 단순히 정보에 코드 발생 다항식 g(x)을 곱해 줌에 따라 정보의 패리티가 섞이게 된다.
상기 수학식 4에서 c(x)는 n-1 차의 코드워드 다항식이고, i(x)는 k-1 차의 정보 다항식, g(x)는 n-k 차의 코드 발생 다항식이다.
상기 코드 발생 다항식 g(x)은 코드워드 다항식 c(x)를 만들어 내기 위해 정보 다항식 i(x)에 곱해지는 것으로, 이러한 코드 발생 다항식 g(x)을 다음 수학식 5와 같이 연속적인 2t 개의 근을 가지도록 정하면 t 심볼의 에러를 정정할 수 있다.
상기와 같은 방법으로 리드 솔로몬 부호화된 디지털 데이터를 리드 솔로몬 복호화하는 방법은 크게 주파수 영역 복호화와 시간 영역 복호화로 나누어지며, 상기 시간 영역에서 리드 솔로몬 복호화하는 과정은 다음과 같이 크게 4단계로 이루어 진다.
1) 신드롬 계산
수신된 데이터 r(x)는 다음 수학식 6과 같이 코드워드 다항식 c(x)과 전송중에 발생된 에러 다항식 e(x)를 더한 값으로 표현될 수 있다.
따라서, 다음 수학식 7과 같이 수신된 데이터 r(x)에 코드 발생 다항식 g(x)의 근~을 차례대로 대입함으로써 전송중에 에러가 발생되었는지를 알 수 있는 것이다.
즉, 수신된 데이터 r(x)에 코드 발생 다항식 g(x)의 근을 대입하여 수신된 데이터 r(x)가 0이 되면 전송중에 에러가 발생되지 않았다는 것을 의미하며, 수신된 데이터 r(x)에 코드 발생 다항식의 근을 대입하여 수신된 데이터 r(x)가 0이 되지 않으면 i번째 위치 또는 i차에 에러가 발생하였다는 것을 의미한다.
2) 에러 위치 다항식계산(finding error location)
Berlekamp-Massey 알고리즘 또는 Euclid 알고리즘으로부터 에러 위치 다항식의 계수를 계산한다.
상기 알고리즘에 의해 구해진 에러 위치 다항식을 σ(X)라 하면 에러 정정 능력이 t인 리드 솔로몬 코드에서는 다음 수학식 8과 같이 최고 t 차 이하의 다항식이 얻어진다.
3) 에러값 계산
상기 에러 위치 다항식 σ(X)에 α-t를 대입하면 에러의 위치를 찾는다.
즉, 에러 위치 다항식 σ(X)에 α-t을 대입하여 에러 위치 다항식 σ(X)이 0이 되면 i번째 위치 또는 i차에 에러가 발생된 것이다.
그리고, 에러 평가 다항식 Ω(X)은 다음 수학식 9로부터 구할 수 있다.
상기 수학식 9에서 S(X)는 신드롬 다항식이다.
이와 같이 에러 평가 다항식 Ω(X)를 구한 다음 다음 수학식 10으로부터 에러값 ei를 구한다.
상기 수학식 10에서 σ'(X) 는 에러 위치 다항식 σ(X)을 미분한 1차 도함수이다.
4) 에러 정정
상기와 같이 에러값을 구한 다음 다음 수학식 11을 이용하여 원래의 코드워드 다항식 c(x)를 구하는 것이다.
이때, 갈로아체 특성상 같은 값을 더하면 0이 되므로 e(x) + e(x) = 0 이 되는 것이다.
이상에서와 같이 에러 정정 과정에서는 자주 다항식 평가가 수행되는데, 다항식 평가란 다항식의 변수 X에 유한체의 원소를 대치시키는 것으로 예컨대, α-j에 대한 다항식 평가는 다항식의 변수 X에 α-j를 대입하는 것이다.
즉, 에러 평가 다항식 Ω(X)에 대한 다항식 평가를 예로 들어 설명하면 다음과 같다.
에러 평가 다항식 Ω(X)의 차수를 tfk 하면 에러 평가 다항식 Ω(X)는 다음 수학식 12와 같이 표현된다.
상기와 같은 에러 평가 다항식 Ω(X)를 평가하기 위해서는 상기 X 대신에 갈로아체(GF(2m))상의 원소인 코드 발생다항식 g(X)의 근 α0, α1, ·····, αN-1을 차례로 대입하는 것이다.
따라서, α-j(여기서, j=0~N-1의 정수)를 대입한다고 가정하면 상기 수학식 12는 다음 수학식 13과 같이 표현될 수 있다.
한편, 제1도는 상기 수학식 13에서 t=8일 경우에 에러 평가 다항식의 평가장치를 하드웨어로 구현된 종래의 평가장치로서, 본 발명자에 의해 한국 특허출원 제 96-5129호로 제안된 바 있으며, 이 평가장치는 갈로아체 곱셈기의 수를 줄임으로써, 그 구조를 간단히 할 뿐만 아니라 면적을 감소시키고자 하는 것이었다.
즉, 본 발명자가 선출원한 다항식 평가 장치는 제1도에 도시된 바와 같이, 코드 발생 다항식의 근의 역수(α-1-8)를 입력하는 입력부(30)와; 상기 입력부(30)에서 입력된 코드 발생 다항식의 각 근의 역수(α-1-8)와 피드백된 값을 곱하여 출력하는 갈로아체 곱셈기(35); 상기 갈로아체 곱셈기(35)에서 출력된 값 또는 초기값(에러 평가 다항식 Ω(X)의 계수(Ω18)를 선택적으로 출력하는 제 1 멀티플렉서(40); 역다중화 선택신호(demux_sel)를 생성하여 출력하는 역다중화 선택신호 발생부(45); 상기 역다중화 선택신호 발생부(45)에서 출력된 역다중화 선택신호(demux_sel)에 따라 상기 제 1 멀티플렉서(40)에서 출력된 값을 역다중화하여 출력하는 디멀티플렉서(50); 상기 디멀티플렉서(50)에서 역다중화되어 출력된 값들을 비트 클럭(bit_clk)에 따라 래치시켜 출력하는 레지스터부(55); 상기 레지스터부(50)에서 출력된 값을 다중화하여 상기 갈로아체 곱셈기(35)로 피드백시키는 제 2 멀티플렉서(60); 평가하고자 하는 다항식(에러 평가 다항식 Ω(X))의 0차 계수(Ω0)가 저장되어 있는 롬(65); 상기 레지스터부(55)에서 출력된 값 및 상기 롬(65)에 저장되어 있는 값을 가산하여 출력하는 가산부(70) 및; 상기 가산부(70)에서 출력된 값을 심볼클럭(sym_clk)에 동기시켜 출력하는 출력부(75)를 포함하여 구성되어 있다.
이와 같이 구성되는 다항식 평가 장치는 심볼클럭보다 T배 빠른 비트클럭(bit_clk)를 사용하므로써 다항식 평가 셀에 사용된 갈로아체 곱셈기의 수를 1/T로 줄이게 되는 것이다.
그러나 이러한 종래의 다항식 평가 장치는 참으로 구현시 면적을 많이 차지하는 곱셈기의 수를 줄이므로써 VLSI구현을 용이하게 하는 장점이 있으나, 병렬구조로 된 8개의 레지스터를 선택하기 위하여 멀티플렉서를 사용함에 따라 글로벌 라우팅(global routing)이 형성됨과 더불어 다수개의 갈로아체 덧셈기를 사용하므로, 그 구조가 상대적으로 복잡하고 면적을 많이 차지하게 되는 문제점이 있다.
따라서, 본 발명은 상기와 같은 문제점을 해소하기 위한 것으로, 구조가 간단할 뿐만 아니라 칩으로 구현시 보다 적은 면적을 차지하게 되는 리드 솔로몬 복호기의 다항식 평가 장치를 제공하는데 그 목적이 있다.
이러한 목적을 달성하기 위한 본 발명에 따른 리드 솔로몬 복호기의 다항식 평가 장치는, 리드 솔로몬 복호기에서 사용되는 T차항의 에러 위치 다항식 σ(X)를 j번째 단계에서 변수 X를 σ-j로 대치함으로써 평가한 후 j번째 평가결과 σ(α-j)를 순차적으로 제공하되, 상기 j가 0에서 N-1까지의 정수이고, i가 0에서 T까지이며 상기 α가 유한체 GF(2m)의 기본원소인,다항식 평가장치에 있어서, 소정의 제1 클럭(bit_clk)에 따라 동작되는 T개 메모리로 구성되어 T개의 평가항을 선입선출 형태로 제공하기 위한 선입선출 버퍼; 상기 j=0인 0번째 단계를 처리할 경우에는 '1'을 제공하고 1 내지 N-1번째 단계에서는 제2 선택신호에 따라 상기 선입선출 버퍼의 출력에 대응하는 상기 유한체 GF(2m)의 원소(α-i)를 제공하기 위한 근입력수단; 상기 근입력수단의 출력과 상기 선입선출 버퍼의 출력을 유한체 GF(2m)상에서 순차적으로 곱하여 평가항을 제공하기 위한 곱셈기; 상기 곱셈기의 출력을 누적적으로 가산하여 T항까지 누적되면 출력하는 누산수단; 제1 선택신호에 따라 초기화 단계에서는 상기 에러 위치 다항식(σ(X))의 계수값을 선택하여 출력하고, j=0 내지 j=N-1을 처리하는 단계에서는 상기 곱셈기의 출력을 선택하여 상기 선입선출 버퍼에 제공하는 선택수단; 상기 누산수단의 출력을 상기 다항식(σ(X))의 0차 항과 가산하여 출력하기 위한 출력수단; 및 상기 출력수단이 매 단계마다 제공하는 평가값이 소정의 값인지를 판단하기 위한 판단수단이 구비되어, 초기화 단계에서 상기 다항식의 계수를 입력받아 상기 선입선출 버퍼에 저장한 후 상기 j=0 번째 단계부터 N-1번째 단계까지 순차적으로 동작하여 평가결과를 단계에 따라 순차적으로 판단하여 에러 위치신호를 출력하는 것을 특징으로 한다.
제1도는 리드 솔로몬 복호기에서 종래의 다항식 평가 장치의 예를 도시한 회로도.
제2도는 리드 솔로몬 복호기에서 에러 평가 다항식에 대한 본 발명에 따른 평가 장치의 예를 도시한 회로도.
제3도는 리드 솔로몬 복호기에서 에러 위치 다항식에 대한 본 발명에 따른 평가 장치의 예를 도시한 회로도.
제4도는 솔로몬 복호기에서 미분 다항식에 대한 본 발명에 따른 평가장치의 예를 도시한 회로도.
* 도면의 주요부분에 대한 부호의 설명
100 : 제 1 다중화기 102 : 제 1 논리합 게이트
104 : 제 2 논리합 게이트 110 : 시프트 레지스터부
120 : 근 입력부 122 : 롬
124 : 제 2 다중화기 130 : 갈로아체 곱셈기
140 : 제 1 갈로아체 덧셈기 150 : 레지스터
160 : 출력부 162 : 출력 레지스터
164 : 롬 166 : 제 2 갈로아체 덧셈기
170 : 판단부 180 : 출력 레지스터
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 자세히 설명한다.
제2도 내지 제4도는 리드 솔로몬 복호기에서 본 발명에 따른 다항식 평가장치를 에러 평가 다항식(Ω(X))과, 에러 위치 다항식(σ(X)), 및 에러 위치 다항식의 1계도함수인 미분 다항식(σ'(X))에 적용한 예들이다. 따라서 이해의 편의를 위하여 각 다항식별로 구분하여 구성 및 동작을 설명하기로 한다.
1. 에러 평가 다항식(Ω(X))에 대한 다항식 평가장치
본 발명에 따라 에러 평가 다항식(Ω(X))에 대한 다항식 평가를 처리하는 장치는 제2도에 도시된 바와 같이, 제 1 다중화기(100)와, 제 1 논리합 게이트(102), 제 2 논리합 게이트(104), 시프트 레지스터부(110: 이하, 선입선출 버퍼라 한다), 근 입력부(120), 갈로아체 곱셈기(130), 제 1 갈로아체 덧셈기(140), 레지스터(150) 및, 출력부(160)를 포함하여 구성되어 있다.
선입선출 버퍼(110)는 서로 직렬로 연결된 8개의 레지스터(110-1~110-8)로 이루어져 있고, 근 입력부(120)는 코드 발생 다항식의 근의 역수(α-1-8)가 저장되어 있는 8개의 롬(122-1~122-8)과, 제 2 다중화기(124)로 구성되어 있으며, 출력부(160)는 출력 레지스터(162)와, 롬(164) 및, 제 2 갈로아체 덧셈기(166)를 포함하여 구성되어 있다.
제1다중화기(100)는 제 1 선택신호(sel1)에 따라 곱셈기(130)가 출력하는 중간값(intermediate value) 또는 에러 평가 다항식의 계수(Ω_coef)를 선택적으로 출력하도록 되어 있다. 제 1 논리합 게이트(102)는 외부로부터 입력된 인에이블신호(ena)와 테스트 인에이블신호(t_ena)를 논리합(OR)하여 출력하도록 되어 있고, 제 2 논리합 게이트(104)는 외부로부터 입력된 리셋신호(rst)와 테스트 리셋신호(rst)와 테스트 리셋신호(t_rst)를 논리합(OR)하여 출력하도록 되어 있다.
또한, 선입선출 버퍼(110)는 서로 직렬로 연결된 다수개의 레지스터(110-1~110-8)로 이루어져, 상기 제1논리합 게이트(102)에서 출력된 인에이블신호(ena)를 입력받아 인에이블 상태가 되어 상기 제1다중화기(100)를 통해 입력된 값을 비트 클럭(bit_clk)에 따라 저장 및 시프트시켜 출력하는 한편, 상기 제2논리합 게이트(104)에서 출력된 리셋신호(rst)에 의해 리셋(reset)되도록 되어 있다.
근 입력부(120)의 다중화기(124)는 제2선택신호(sel2)에 따라 코드 발생 다항식의 근의 역수(α-1-8)를 차례대로 선택하여 출력하고, 갈로아체 곱셈기(130)는 상기 선입선출 버퍼(110)에서 출력된 값과 상기 근 입력부(120)에서 출력된 코드 발새 다항식의 근의 역수(α-1-8)를 곱한 중간값(intermediate value)을 다음 제 1 다중화기(100) 및 제 1 갈로아체 덧셈기(140)로 출력하도록 되어 있다.
제1갈로아체 덧셈기(140)는 상기 갈로아체 곱셈기(130)에서 출력된 중간값을 레지스터(150)로부터 피드백된 값과 더한 후 다시 레지스터(150)로 출력하도록 되어 있고, 레지스터(150)는 제1논리합 게이트(102)에서 출력된 인에이블신호(ena)를 입력받아 인에이블 상태가 되어 제1갈로아체 덧셈기(140)에서 출력된 값을 비트 클럭(bit_clk)에 따라 래치하여 제1갈로아체 덧셈기(140)로 피드백시키는 한편, 매 단계마다 리셋신호(rst_sum)에 의해 0으로 리셋(reset)되도록 되어 있다.
그리고 출력부(160)는 상기 리셋신호(rst_sum)가 입력되면 제 1 갈로아체 덧셈기(140)에서 출력된 값에 0차의 에러 계수 Ω0을 더하여 에러 평가 다항식의 평가값(Ω_val)으로 출력하도록 되어 있다.
이와 같이 구성되는 에러 평가 다항식의 평가장치는 다음과 같이 α-j에 대해 j=0 번째 단계부터 j=N-1 단계까지 반복적으로 동작한다.
수학식 13으로 표현되는 에러 평가 다항식의 평가에서 j=0일 때 Ω(α0)를 결정하는 평가절차의 0번재 단계를 시작하기에 앞서, 각 레지스터들(110-1~110-8)은 Ω18로 초기화된다. 이를 위해 초기화 단계에서 제 1 다중화기(100)로 입력되는 제 1 선택신호(sel1)는 다중화기(100_가 에러 평가 다항식의 계수(Ω_coef)인 초기값을 선택하도록 하고, 이어서 초기화 단계가 지난 후 0 내지 N-1번째 단계를 수행하는 동안 제 1 선택신호(sel1)는 다중화기(100)가 곱셈기(130)의 출력을 선택하도록 한다.
따라서 초기화 단계에서 다중화기(100)를 거쳐 입력된 에러 평가 다항식의 계수들(Ω18)이 해당 레지스터(110-1~110-8)에 각각 저장되게 되는데, 예컨대 제 8 레지스터(110-8)에는 계수 Ω1이 저장되게 되고, 제 7 레지스터(110-7)에는 계수 Ω2이 저장되게 되며, 순차적으로 제 6 레지스터(110-6)에서 제 1 레지스터(110-1)에 계수 Ω38들이 저장되게 된다.
이어서, j=0일 때 Ω(α0)를 결정하는 평가절차의 0번째 단계에서는 첫 번째 비트 클럭에서 곱셈기(130)가 제 8 레지스터(110-8)가 제공하는 계수 Ω1을, 근 입력부(120)로부터 입력되는 '1'과 곱하여 계수값을 그대로 출력하고, 이 곱셈기(130)의 출력은 덧셈기(140)로 입력되어 덧셈기(140)에서 레지스터(150)의 출력 0과 더해진다.
이때 레지스터(150)는 j=0 내지 N-1 단계를 수행하는 동안 매 단계의 초기 혹은 이전단계의 마지막에 리셋되어 0을 출력한다. 그리고 근입력부(120)는 0번째 단계를 수행하는 동안에는 1을 제공하나 1번째 내지 N-1번째 단계를 수행하는 동안에는 α-1-8을 제 8 레지스터(110-8)의 출력 평가항의 차수에 상응하도록 순차적으로 출력한다. 예컨대, 제8 레지스터(110-8)가 1차 계수 (Ω1)를 출력하면 제2 선택신호(sel2)가 0이 되어 다중화기(124)가 1차 근(α-1)을 선택 출력하고, 제8 레지스터(110-8)가 2차 계수(Ω2)를 출력하면 제2 선택신호(sel2)가 1이 되어 다중화기(124)가 2차 근(a-2)을 선택 출력하게 하며, 동일한 방식으로 제2 선택신호(sel2)가 2~7이 되어 제 8 레지스터(110-8)의 출력 계수의 차수에 대응하는 차수의 근이 다중화기(124)에서 출력되게 된다. 따라서 곱셈기(130)는 i차항의 계수(Ω1)와 그에 대응하는 i차항의 근(α-1)을 곱해 출력할 수 있게 된다.
또한, 덧세기(140)의 출력은 0단계 두 번째 비트클럭의 상승에지에서 레지스터(150)에 저장되고, 곱셈기(130)의 출력도 다중화기(100)를 거쳐 두 번째 비트클럭의 상승에지에서 제1레지스터(110-1)에 저장되며, 이와 동시에 각 레지스터(110-1~110-7)의 출력이 다른 레지스터(110-2~110-8)에 입력 저장되게 된다.
이와 같이 0번째 단계의 두 번째 비트클럭 동안에 각 레지스터에 저장된 값을 나타내면 다음 표 1과 같다.
그리고 두 번재 비트클럭 주기에서 곱셈기(130)는 제 8 레지스터(110-8)가 출력하는 Ω2와 근입력부(120)의 다중화기(124)가 출력하는 '1'을 곱한 후 그 결과를 출력하고, 덧셈기(140)는 이 곱셈기(130)의 출력과 레지스터(150)의 출력을 가산한 후 그 결과를 출력한다.
이어서 세 번째 클럭의 상승에지에서 레지스터(150)는 덧셈기(140)의 출력을 저장하고, 제1레지스터(110-1)는 곱셈기(130)의 출력을 다중화기(100)를 통해 입력받아 저장하며, 레지스터부(110)의 다른 레지스터들도 직렬 연결된 레지스터의 출력을 입력받아 저장한다.
이와 같이 0번째 단계의 세 번째 비트클럭 동안에 각 레지스터에 저장된 값을 나타내면 다음 표 2와 같다.
그리고 세 번째 비트클럭 주기에서 곱셈기(130)는 제 8 레지스터(110-8)가 출력하는 Ω3와 근입력부(120)의 다중화기(124)가 출력하는 '1'을 곱한 후 그 결과를 출력하고, 덧셈기(140)는 이 곱셈기(130)의 출력과 레지스터(150)의 출력을 가산한 후 그 결과를 출력한다.
이어서 네 번재 클럭의 상승에지에서 레지스터(150)는 덧셈기(140)의 출력을 저장하고, 제1레지스터(110-1)는 곱셈기(130)의 출력을 다중화기(100)를 통해 입력받아 저장하며, 레지스터부(110)의 다른 레지스터들도 직렬 연결된 레지스터의 출력을 입력받아 저장한다.
동일한 방식으로, 네 번재 내지 여덟 번째 비트클럭에 대한 동작이 진행되며, 이러한 동작이 완료되고 나면 레지스터부(110)의 각 레지스터에는 초기화된 후와 동일하게 계수값이 저장되게 된다.
이때 레지스터(150)는 결과합신호(rst_sum)에 따라 '0'으로 리셋되고, 덧셈기(140)의 출력은 결과합(rst_sum)신호에 따라 출력부(160)의 레지스터(162)로 저장되며, 이 레지스터(162)의 출력은 덧셈기(166)에서 메모리(164)에 저장된 0차 계수(Ω0)값과 더해져 최종적으로 α0에 대한 평가 결과인 Ω(α0)을 출력하게 된다.
이와 같이 0단계에서 평가된 평가값(Ω(α0))은 Ω012345678이 된다.
한편, j=1일 때 Ω(α1)를 결정하는 평가절차의 1번재 단계에서는 첫 번째 비트클럭에서 곱셈기(130)가 제 8 레지스터(110-8)가 제공하는 계수 Ω1을 근 입력부(120)로부터 입력되는 α-1과 곱하여 그 결과값 Ω1α-1을 출력하고, 이 곱셈기(130)의 출력 Ω1α-1은 덧셈기(140)로 입력되어 덧셈기(140)에서 레지스터(150)의 출력 0과 더해진다.
또한, 덧셈기(140)의 출력 Ω1α-1은 두 번째 비트클럭의 상승에지에서 레지스터(150)에 저장되고, 곱셈기(130)의 출력 Ω1α-1도 다중화기(100)를 거쳐 두 번재 비트 클럭의 상승에지에서 제1레지스터(110-1)에 저장되며, 이와 동시에 레지스터부(110)의 각 레지스터의 출력이 다른 레지스터에 입력 저장되게 된다.
이상과 같이 0번째 단계에서 2번째 단계가지 각 비트클럭의 주기에 따라 각 레지스터에 저장되는 항들을 일괄적으로 정리하면 다음 표 3과 같다.
상기 표 3에 있어서, 각 열은 해당 레지스터를 나타내고, 행은 단계를 처리하는 각 비트클럭에 해당된다.
이어서, j=3 내지 j=N-1까지 이상에서 설명한 바와 동일한 과정을 반복 처리하여 에러 평가 다항식(Ω(X))에 대한 평가값(Ω(α-j))을 순차적으로 출력한다.
2. 에러 위치 다항식(σ(X))에 대한 다항식 평가장치
본 발명에 따라 에러 위치 다항식(σ(X))에 대한 다항식 평가를 처리하는 장치는, 제3도에 도시된 바와 같이 구성되어 에러 위치 다항식의 계수(σ_coef)를 입력받아 평가 진행을 수행한다.
제3도를 참조하면, 에러 위치 다항식(σ(X))을 평가하기 위한 다항식 평가장치는 상기 제2도에 도시된 에러 평가 다항식에 대한 평가 장치와 에러를 판단하기 위한 판단부(170)가 구비된 것을 제외하면 그 구조와 기능이 본질적으로 동일하다.
즉, 제3도에 도시된 다항식 평가장치는 에러 위치 다항식(σ(X))을 평가하는 것이므로 다중화기(100)로 입력되는 초기화 계수(σ_coef)는 에러 위치 다항식의 계수(σ18)이고, 메모리(164)에 저장된 것도 에러 위치 다항식의 0차항 계수(σ0)이다. 이때 에러 위치 다항식(σ(X))의 0차항 계수(σ0)는 수학식 8에서와 같이 항시 '1'인 것을 알 수 있다.
그리고 초기화 단계에서 입력된 계수들(σ18)d이 레지스터부의 레지스터들(110-1~110-8)에 순차적으로 저장된 후 비트클럭에 따라 곱셈기(130)에서 대응하는 근의 항들(α-1-8)과 곱해진 후, 덧셈기(140)에서 누적적으로 연산된 후 최종적으로 출력부(160)를 통해 α-j에 대한 평가결과가 출력되고, 이러한 동작이 제2도의 평가장치에서 설명한 바와 같이 0번째 단게에서 N-1번재 단계까지 순차적으로 반복되어 매 단계마다 하나씩 평가결과(σ(α-j))를 제공하게 된다.
이때 판단부(170)는 매 단계마다 출력부(160)가 제공하는 평가결과(σ(α-j))를 입력받아 평가결과(σ(α-j))가 0인 경우에 코드워드의 상응하는 부호에서 에러가 발생했음을 알리는 에러위치신호를 출력한다.
즉, 제1다중화기(100)는 제1선택신호(sel1)에 따라 중간값(intermediate value) 또는 에러 위치 다항식의 계수(σ_coef:σ18)를 선택적으로 입력하도록 되어 있고, 상기 판단부(170)는 출력부(160)에서 출력된 에러 위치 다항식의 평가값(σ_val)이 0인지를 판단하여 0이면 에러 위치 신호를 출력하여 에러 발생 여부를 알려주도록 되어 있다.
제1다중화기(100)로 입력되는 제1선택신호(sel1)가 1의 값을 가지면, 상기 제1다중화기(120)는 외부로부터 입력된 에러 위치 다항식의 계수(σ_coef)를 선택하여 시프트 레지스터부(110)로 입력하고, 상기 시프트 레지스터부(110)는 상기 제1다중화기(120)에서 입력된 에러 위치 다항식의 계수(σ_coef)를 비트 클럭(bit_clk)에 따라 시프트시켜 갈로아체 곱셈기(130)로 출력한다.
이때, 상기 시프트 레지스터부(110)의 각 레지스터(110-1~110-8)는 제1논리합 게이트(102)에서 출력된 인에이블신호(ena)에 의해 인에이블 상태가 되는 한편, 제 2 논리합 게이트(104)에서 출력된 리셋신호(rst)에 의해 리셋된다.
또한, 근 입력부(120)의 제 2 다중화기(124)는 8개의 롬(102-1~102-8)에 저장된 코드 발생 다항식의 근의 역수(α-1-8)을 제 2 선택신호(sel2)에 따라 다중화시켜 갈로아체 곱셈기(130)로 출력한다. 사익 갈로아체 곱셈기(130)는 상기 시프트 레지스터부(110)를 통해 입력된 값과 근 입력부(120)의 제 2 다중화기(124)를 통해 입력된 코드 발생 다항식의 근의 역수(α-1-8)를 곱하여 상기 제1다중화기(100) 및, 제1갈로아체 덧셈기(140)로 각각 출력한다.
상기 제1갈로아체 덧셈기(140)는 상기 갈로아체 곱셈기(130)에서 출력된 갓과 레지스터(150)에서 피드백된 값을 더하여 다시 상기 레지스터(150)로 출력하고, 상기 레지스터(150)는 상기 제1갈로아체 덧셈기(140)에서 출력된 값을 비트 클럭(bit_clk)에 따라 래치하여 상기 제1갈로아체 덧셈기(140)로 피드백시킨다.
그리고, 상기 출력부(160)의 레지스터(162)는 결과합신호(rst_sum)에 따라 상기 제1갈로아체 덧셈기(140)에서 출력된 값을 래치하여 제 2 갈로아체 덧셈기(166)로 출력한다. 이때, 상기 레지스터(150) 및 출력부(160)의 레지스터(162)로 입력되는 결과합신호(rst_sum)는 8비트클럭을 주기로 입력된다(즉, 결과합신호는 매단계의 평가가 완료되는 시점에서 한번 발생된다).
상기 제 2 갈로아체 덧셈기(166)는 상기 레지스터(162)에서 출력된 값과 롬(164)에 저장된 0x01 즉 에러 위치 다항식의 0차 계수(σ0)를 더하여 에러 위치 다항식의 평가값(σ_val)으로 출력한다.
그리고, 제1다중화기(100)로 입력되는 제1선택신호(sel1)가 0의 값을 가지면, 상기 제1다중화기(100)는 상기 갈로아체 곱셈기(130)에서 출력된 중간값을 선택하여 시프트 레지스터부(110)로 출력하고, 상기 시프트 레지스터부(110)는 상기 제1다중화기(100)를 통해 입력된 중간값을 비트 클럭(bit_clk)에 따라 시프트시켜 갈로아체 곱셈기(130)로 출력한다.
이어서 앞서 설명한 바와 동일하게, 상기 갈로아체 곱셈기(130) 및 덧셈기(140)에 의한 연산이 처리되어, 코드 발생 다항식의 각 계수(α0N-1)에 해당하는 에러 위치 다항식의 평가값(σ_val)을 구할 수 있고, 판단부(170)가 그 평가값이 0인지를 판단하여 0일 경우에 에러 위치 신호를 출력하여 에러가 발생한 위치를 알릴 수 있는 것이다.
3. 미분 다항식(σ'(X))에 대한 다항식 평가장치
본 발명에 따라 미분 다항식에 대한 평가를 수행하는 장치는 제4도에 도시된 바와 같이, 제1다중화기(100)와, 제1논리합 게이트(102), 제 2 논리합 게이트(104), 선입선출 버퍼(110), 근 입력부(120), 갈로아체 곱셈기(130), 제1갈로아체 덧셈기(140), 레지스터(150) 및, 출력 레지스터(180)를 포함하여 구성되어 있다.
제4도에 도시된 다항식 평가장치가 평가하는 미분 다항식은 수학식 8과 같은 에러 위치 다항식(σ(X))이 8차 다항식일 경우의 미분 다항식(σ'(X))이다. 다음 수학식 14와 같은 8차 다항식을 미분하면 수학식 15와 같은 에러 위치 다항식에 대한 미분 다항식(σ'(X))이 된다.
유한체 상의 동일한 수를 두 번 더하면 '0'이 되므로 수학식 15 다음 수학식 16과 같이 줄일 수 있다.
따라서 제4도에 도시된 다항식 평가장치는 수학식 16과 같은 미분 다항식(σ'(X))을 평가하기 위한 장치이다.
즉, 미분 다항식의 평가결과는 α의 짝수차항만 포함하므로 근입력부(120)가 α의 짝수차 항(α0-2-4-6)만을 제공하고, 레지스터부(110)의 레지스터수도 제2도 및 제3도에 도시된 평가장치의 절반인 4개만 사용된다. 그리고 다중화기(100)로 입력되는 초기치 계수(σ_coef)들은 홀수차항의 계수들(σ1357)만이 입력되며, 0차항의 계수(σ0)가 입력되지 않으므로 출력부에 덧셈기가 포함되지 않는다.
제4도를 참조하면, 상기 시프트 레지스터부(110)는 서로 직렬로 연결된 4개의 레지스터(110-1~110-4)로 이루어져 있고, 근 입력부(120)는 코드 발생 다항식의 근의 역수(α0-2-4-6)가 저장되어 있는 4개의 롬(122-1~122-4)과, 제 2 다중화기(124)를 포함하여 구성되어 있다.
제1다중화기(100)는 제1선택신호(sel1)에 따라 중간값(intermediate value) 또는 에러 위치 다항식의 계수(σ_coef)의 홀수차 계수(σ1, σ3, σ5, σ7)를 선택적으로 출력하도록 되어 있다.
상기 제1논리합 게이트(102)는 외부로부터 입력된 인에이블신호(ena)와 테스트 인에이블신호(t_ena)를 논리합(OR)하여 출력하도록 되어 있고, 상기 제 2 논리합 게이트(104)는 외부로부터 입력된 리셋신호(rst)와 테스트 리셋신호(t_rst)를 논리합(OR)하여 출력하도록 되어 있다.
상기 선입선출 버퍼(110)는 서로 직렬로 연결된 4개의 레지스터(110-1~110-4)로 이루어져, 상기 제1논리합 게이트(102)에서 출력된 인에이블신호(ena)를 입력받아 인에이블 상태가 되어, 상기 제1다중화기(100)를 통해 입력된 값을 비트 클럭(bit_clk)에 따라 시프트시켜 출력하는 한편, 상기 제 2 논리합 게이트(104)에서 출력된 리셋신호(rst)에 의해 리셋(reset)되도록 되어 있다.
상기 근 입력부(120)는 제 2 선택신호(sel2)에 따라 코드 발생 다항식의 근의 역수(α0, α-2, α-4, α-6)를 차례대로 입력하도록 되어 있고, 갈로아체 곱셈기(130)는 상기 시프트 레지스터부(11)에서 출력된 값과 상기 근 입력부(120)에서 출력된 코드 발생 다항식의 근의 역수(α0, α-2, α-4, α-6)를 곱한 중간값(intermediate value)을 상기 제1다중화기(100)로 입력하도록 되어 있다.
상기 제1갈로아체 덧셈기(140)는 상기 갈로아체 곱셈기(130)에서 출력된 중간값을 피드백된 값과 더하여 출력하도록 되어 있고, 상기 레지스터(150)는 상기 제1논리합 게이트(102)에서 출력된 인에이블신호(ena)가 입력되면, 상기 제1갈로아체 덧셈기(140)에서 출력된 값을 비트 클럭(bit_clk)에 따라 래치하여 상기 제1갈로아체 덧셈기(140)로 피드백시키는 한편, 결과합(rst_sum)에 의해 리셋(reset)되도록 되어 있다.
상기 출력 레지스터(180)는 상기 결과합신호(rst_sum)가 입력되면 상기 제1갈로아체 덧셈기(140)에서 출력된 값을 래치하여 에러 위치 다항식의 미분치인 미분 다항식의 평가값(σp_val)으로 출력되도록 되어 있다.
이어서, 상기와 같이 구성되는 미분 다항식을 평가하기 위한 다항식 평가장치의 동작을 단계별로 설명한다.
σ(α0)를 결정하는 평가절차의 0번재 단계를 시작하기에 앞서, 각 레지스터들은 σ1, σ3, σ5, σ7로 초기화된다. 이를 위해 초기화 단계에서 다중화기(100)로 입력되는 제1선택신호(sel1)는 다중화기(100)가 초기값(σ_coef:σ1, σ3, σ5, σ7)을 선택하도록 하고, 이어서 초기화 단계가 지난 후 0 내지 N-1번째 단계를 수행하는 동안 제1선택신호(sel1)는 다중화기(100)가 곱셈기(130)의 출력을 선택하도록 한다.
따라서 초기화 단계에서 다중화기(100)를 거쳐 입력된 미분 다항식의 계수(σ1, σ3, σ5, σ7)들이 해당 레지스터에 저장되게 되는데, 예컨대, 제 4 레지스터(110-4)에는 계수(σ1)이 저장되게 되고, 제 3 레지스터(110-3)에는 계수(σ3)이 저장되게 되며, 제 2 레지스터(110-2)에는 (σ5)가 저장되고, 제1레지스터(110-1)에는 (σ7)이 저장되게 된다.
이어서, j=0일 때 σ(α0)를 결정하는 평가절차의 0번째 단계에서는 첫 번재 비트 클럭에서 곱셈기(130)가 제 4 레지스터(110-4)가 제공하는 계수 σ1을 근 입력부(120)로부터 입력되는 '1'과 곱하여 계수값을 그대로 출력하고, 이 곱셈기(130)의 출력은 덧셈기(140)로 입력되어 덧셈기에서 레지스터(150)의 출력 0과 더해진다.
이때 레지스터는 j=0 내지 N-1 단계를 수행하는 동안 매 단계의 초기 혹은 이전단계의 마지막에 리셋되어 0을 출력한다. 그리고 근입력부(120)는 0번째 단계를 수행하는 동안에는 '1을 제공하나 1번째 내지 N-1번째 단계를 수행하는 동안에는 α0, α-2, α-4, α-6을 레지스터의 출력 평가항의 차수에 상응하도록 순차적으로 출력한다. 예컨대, 제 4 레지스터(110-4)가 제1차 계수(σ1)를 출력하면 제 2 선택신호(sel2)가 0이 되어 다중화기(124)가 0차 근(α0)을 선택 출력하고, 제 4 레지스터(110-4)가 3차 계수(σ3)을 출력하면 제2선택신호(se12)가 1이 되어 다중화기(124)가 2차 근(α-2)을 출력하도록 하며, 동일한 방식으로 제 2 선택신호(sel2)에 따라 제 4 레지스터(110-4)의 출력에 대응하는 근이 다중화기(124)에서 출력되게 된다.
또한, 덧셈기(140)의 출력은 두 번재 비트클럭의 상승에지에서 레지스터(150)에 저장되고, 곱셈기(130)의 출력도 다중화기(100)를 거쳐 두 번째 비트클럭의 상승에지에서 제1레지스터(110-1)에 저장되며, 이와 동시에 레지스터부의 레지스터의 출력이 다른 레지스터에 입력 저장되게 된다.
이와 같이 0번째 단계에서 2번재 단계의 각 비트클럭 주기동안의 각 레지스터에 저장된 내용이 다음 표 4와 같고, 이때 표 4의 각 행은 각 비트클럭의 주기에 상응한다.
제4도를 참조하면, 제1다중화기(100)로 입력되는 제1선택신호(sel1)가 1인 초기화 단계에서 상기 제1다중화기(100)는 외부로부터 입력된 에러 위치 다항식의 계수(σ_coef)의 홀수차 계수(σ1, σ3, σ5, σ7)를 선택하여 시프트 레지스터부(110)로 입력한다.
그리고, 4개의 레지스터(110-1~110-4)가 서로 직렬로 연결된 시프트 레지스터부(110)는 상기 제1다중화기(120)에서 입력된 에러 위치 다항식의 계수(σ_coef)의 홀수차 계수(σ1, σ3, σ5, σ7)를 비트 클럭(bit_clk)에 다라 시프트시켜 갈로아체 곱셈기(130)로 출력한다.
이때, 상기 선입선출 버퍼(110)의 각 레지스터(110-1~110-4)는 제1논리합 게이트(102)에서 출력된 인에이블신호(ena)에 의해 인에이블 상태가 되는 한편, 제 2 논리합 게이트(104)에서 출력된 리셋신호(rst)에 의해 리셋된다.
또한, 근 입력부(120)의 제 2 다중화기(124)는 4개의 롬(122-1~122-4)에 저장된 코드 발생 다항식의 근의 역수(α0, α-2, α-4, α-6)를 제2선택신호(se12)에 따라 다중화시켜 갈로아체 곱셈기(130)로 출력한다.
그리고, 상기 갈로아체 곱셈기(130)는 상기 선입선출 버퍼부(110)를 통해 입력된 값과 근 입력부(120)의 제2다중화기(124)를 통해 입력된 코드 발생 다항식의 근의 역수(α0, α-2, α-4, α-6)곱하여 상기 제1다중화기(100) 및, 제1갈로아체 덧셈기(140)로 각각 입력한다. 즉, 상기 갈로아체 곱셈기(130)는 상기 시프트 레지스터부(110)에서 출력된 σ1와 상기 근 입력부(120)에서 출력된 α0를 곱하여 출력하고, σ3와 α-2, σ5와 α-4, σ7와 α-6를 곱하여 출력하는 것이다.
상기 제1갈로아체 덧셈기(140)는 상기 갈로아체 곱셈기(130)에서 출력된 값과 레지스터(150)에서 피드백된 값을 더하여 다시 상기 레지스터(150)로 출력하고, 상기 레지스터(150)는 상기 제1갈로아체 덧셈기(140)에서 출력된 값을 비트 클럭(bit_clk)에 따라 래치하여 상기 제1갈로아체 더셈기(140)로 피드백시킴과 더불어 출력 레지스터(160)로 출력한다. 그리고, 상기 출력 레지스터(160)는 결과합신호(rst_sum)에 따라 상기 제1갈로아체 덧셈기(140)에서 출력된 값을 래치하여 출력한다.
이어서 제1선택신호(sel1)가 0일 경우 상기 제1다중화기(100)는 상기 갈로아체 곱셈기(130)에서 출력된 중간값을 선택하여 선입선출 버퍼(110)로 입력하며, 상기 시프트 레지스터부(110)는 상기 제1다중화기(120)를 통해 입력된 중간값을 비트 클럭(bit_clk)에 따라 시프트시켜 갈로아체 곱셈기(130)로 출력한다.
이어서 앞서 설명한 바와 동일하게 상기 갈로아체 곱셈기(130) 및 덧셈기(140)에 의한 연산이 처리되어, 코드 발생 다항식의 각 계수(α-j)에 해당하는 미분 다항식의 평가값(σp_val: σ'(α-j))을 구할 수 있는 것이다.
본 발명의 명세서에서는 본 발명을 특정한 실시예들과 관련하여 설명하였지만, 청구항에서 정의된 발명의 기술적 사상은 당업자 수준에서 매우 다양한 형태의 다른 실시예에 의해서도 구현될 수 있는 것이다.
이상에서 살펴본 바와 같이 본 발명은 종래의 다항식 평가 장치에 사용되는 멀티플렉서와 디멀티플렉서가 제거됨에 따라 글로벌 라우팅(global routing)이 로컬 라우팅(local routing)으로 바뀌었고, 갈로아체 덧셈기의 수가 현저하게 줄어 그 구조가 간단할 뿐만 아니라 적은 면적으로 구현할 수 있는 잇점이 있다.

Claims (13)

  1. 리드 솔로몬 복호기에서 사용되는 T차항의 에러 위치 다항식 σ(X)을 j번재 단계에서 변수 X를 α-j로 대치함으로써 평가한 후 j번째 평가결과 σ(α-j)를 순차적으로 제공하되, 상기 j가 0에서 N-1까지의 정수이고, I가 0에서 T까지이며 상기 α가 유한체 GF(2m)의 기본원소인, 다항식 평가장치에 있어서, 소정의 제1클럭(bit_clk)에 따라 동작되는 T개 메모리로 구성되어 T개의 평가항을 선입선출 형태로 제공하기 위한 선입선출 버퍼(110); 상기 j=0인 0번째 단계를 처리할 경우에는 '1'을 제공하고 1 내지 N-1번째 단계에서는 제 2 선택신호(sel2)에 따라 상기 선입선출 버퍼(110)의 출력에 대응하는 상기 유한체 GF(2m)의 원소(α-i)를 제공하기 위한 근입력수단(120); 상기 근입력수단의 출력과 상기 선입선출 버퍼의 출력을 유한체 GF(2m)상에서 순차적으로 곱하여 평가항을 제공하기 위한 곱셈기(130); 상기 곱셈기(130)의 출력을 누적적으로 가산하여 T항까지 누적되면 출력하는 누산수단; 제1선택신호(sel1)에 따라 초기화 단계에서는 상기 에러 위치 다항식(σ(X))의 계수값을 선택하여 출력하고, j=0 내지 j=N-1을 처리하는 단게에서는 상기 곱셈기(130)의 출력을 선택하여 상기 선입선출버퍼(110)에 제공하는 선택수단; 상기 누산수단의 출력을 상기 다항식(σ(X))의 0차 항과 가산하여 출력하기 위한 출력수단(160); 및 상기 출력수단이 매 단계마다 제공하는 평가값이 소정의 값인지를 판단하기 위한 판단수단(170)이 구비되어 초기화 단계에서 상기 다항식의 계수를 입력받아 상기 선입선출 버퍼에 저장한 후 상기 j=0 번째 단계부터 N-1번째 단계가지 순차적으로 동작하여 평가결과를 단계에 따라 순차적으로 판단하여 에러위치신호를 출력하는 리드솔로몬 복호기의 다항식 평가장치.
  2. 제1항에 있어서, 상기 다항식 평가장치는 외부로부터 입력된 인에이블신호(ena)와 테스트 인에이블신호(t_ena)를 논리합(OR)하여 상기 선입선출 버퍼(110)와 누산수다능로 인에이블신호를 출력하는 제1논리합 게이트(102)가 더 구비된 것을 특징으로 하는 리드 솔로몬 복호기의 다항식 평가 장치.
  3. 제1항에 있어서, 상기 다항식 평가장치는 외부로부터 입력된 리셋신호(rst)와 테스트 리셋신호(t_rst)를 논리합(OR)하여 상기 선입선출 버퍼에 리셋신호를 제공하는 제 2 논리합 게이트(104)가 더 구비된 것을 특징으로 하는 리드 솔로몬 복호기의 에러 평가 다항식 평가 장치.
  4. 제1항에 있어서, 상기 선입선출 버퍼(110)는 T개의 레지스터(110-1~110-8)가 서로 직렬로 연결된 구조로 된 것을 특징으로 하는 리드 솔로몬 복호기의 에러 평가 다항식 평가 장치.
  5. 제1항에 있어서, 상기 근입력수단(120)은, 코드 발생 다항식의 근의 역수(α-1-8)가 각각 저장되어 있는 t개의 롬(122-1~122-8)과; 제 2 선택신호(sel2)에 따라 상기 각 롬(122-1-~122-8)에 저장되어 있는 코드 발생 다항식의 근의 역수(α-1-8)를 순차적으로 출력하는 다중화기(124)로 구성된 것을 특징으로 하는 리드 솔로몬 복호기의 다항식 평가 장치.
  6. 제1항에 있어서, 상기 누산수단은 결과합신호(rst_sum)에 따라 매 단계의 마지막에 0으로 리셋되고, 제1클럭(bit_clk)에 따라 입력 데이터를 저장하는 레지스터(150)와, 상기 곱셈기(130)의 출력과 상기 레지스터(150)의 출력을 가산하여 상기 레지스터(150)로 출력하는 덧셈기(140)로 구성된 것을 특징으로 하는 리드 솔로몬 복호기의 다항식 평가 장치.
  7. 제1항에 있어서, 상기 선택수단이 다중화기(100)로 구현된 것을 특징으로 하는 리드 솔로몬 복호기의 다항식 평가 장치.
  8. 제1항에 있어서, 상기 출력수단(160)은 상기 결과합신호(rst_sum)에 따라 상기 덧셈기(140)에서 출력된 값을 래치하는 출력 레지스터(162)와, 에러 위치 다항식의 0차 계수가 저장되어 있는 메모리(164), 및 상기 출력 레지스터(162)의 출력에 상기 메모리(164)의 출력을 더하여 에러 위치 다항식의 평가값(σ_val)으로 출력하는 갈로아체 덧셈기(166)로 구성된 것을 특징으로 하는 리드 솔로몬 복호기의 에러 평가 다항식 평가 장치.
  9. 리드 솔로몬 복호기에서 사용되는 T차항의 에러 위치 다항식 σ(X)을 j번째 단계에서 변수 X를 α-j로 대치함으로써 평가한 후 j번재 평가결과 σ(α-j)를 순차적으로 제공하되, 상기 j가 0에서 N-1까지의 정수이고, i가 0에서 T까지이며 상기 α가 유한체 GF(2m)의 기본원소인, 다항식 평가장치에 있어서, 상기 에러 위치 다항식 σ(X)의 1계 도함수인 미분 다항식 σ'(X)을 평가하기 위한 장치가, 소정의 제1클럭(bit_clk)에 따라 동작되는 T/2개 메모리로 구성되어 T/2개의 평가항을 선입선출 형태로 제공하기 위한 선입선출 버퍼(110); 상기 j=0인 0번째 단계를 처리할 경우에는 '1'을 제공하고 1 내지 N-1번째 단계에서는 제 2 선택신호(sel2)에 따라 상기 선입선출 버퍼(110)의 출력에 대응하는 상기 유한체 GF(2m)의 짝수차 항의 원소(α0, α-2, α-4, α-6....)를 제공하기 위한 근입력수단(120); 상기 근입력수단(120)의 출력과 상기 선입선출 버퍼(110)의 출력을 유한체 GF(2m)상에서 순차적으로 곱하여 평가항을 제공하기 위한 곱셈기(130); 상기 곱셈기(130)의 출력을 누적적으로 가산하는 누산수단;
    제1선택신호(sel1)에 따라 초기화 단게에서는 상기 미분 다항식(σ'(X))의 홀수차 계수값을 선택하여 출력하고, j=0 내지 j=N-1을 처리하는 단계에서는 상기 곱셈기(130)의 출력을 선택하여 상기 선입선출 버퍼(110)에 제공하는 선택수단; 및 상기 누산수단의 출력을 결과합신호(rst_sum)에 따라 래치하는 출력부(160)가 구비되어 초기화 단게에서 상기 다항식의 홀수차 계수를 입력받아 상기 선입선출 버퍼에 저장한 후 상기 j=0 번째 단계부터 N-1번재 단계까지 순차적으로 동작하여 평가결과를 단계에 따라 순차적으로 출력하는 리드 솔로몬 복호기의 다항식 평가장치.
  10. 제9항에 있어서, 상기 다항식 평가장치는 외부로부터 입력된 인에이블신호(ena)와 테스트 인에이블신호(t_ena)를 논리합(OR)하여 상기 선입선출 버퍼(110)와 누산 수단으로 인에이블신호를 출력하는 제1논리합 게이트(102)가 더 구비된 것을 특징으로 하는 리드 솔로몬 복호기의 다항식 평가 장치.
  11. 제9항에 있어서, 상기 다항식 평가장치는 외부로부터 입력된 리셋신호(rst)와 테스트 리셋신호(t_rst)를 논리합(OR)하여 상기 선입선출 버퍼(110)에 리셋신호를 제공하는 제 2 논리합 게이트(104)가 더 구비된 것을 특징으로 하는 리드 솔로몬 복호기의 에러 평가 다항식 평가 장치.
  12. 제9항에 있어서, 상기 근입력수단(120)은, 코드 발생 다항식의 근의 역수(α0, α-2, α-4, α-6)가 저장되어 있는 (T/2)개의 롬(122-1~122-4)과; 제 2 선택신호(sel2)에 따라 상기 각 롬(122-1~122-4)에 저장된 코드 발생 다항식의 근의 역수(α0, α-2, α-4, α-6)를 차례대로 출력하는 제 2 다중화기(124)로 구성된 것을 특징으로 하는 리드 솔로몬 복호기의 다항식 평가 장치.
  13. 제9항에 있어서, 상기 누산수단은 결과합신호(rst_sum)에 따라 매 단계의 마지막에 0으로 리셋되고, 제1클럭(bit_clk)에 따라 입력 데이터를 저장하는 레지스터(150)와, 상기 곱셈기(130)의 출력과 상기 레지스터(150)의 출력을 가산하여 상기 레지스터(150)로 출력하는 덧셈기(140)로 구성된 것을 특징으로 하는 리드 솔로몬 복호기의 다항식 평가 장치.
KR1019960015268A 1996-02-28 1996-05-09 리드 솔로몬 복호기의 다항식 평가 장치 KR100192792B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1019960015268A KR100192792B1 (ko) 1996-05-09 1996-05-09 리드 솔로몬 복호기의 다항식 평가 장치
US08/755,581 US5751732A (en) 1996-02-28 1996-11-25 Polynomial evaluator for use in a reed-solomon decoder
EP96308522A EP0793350A1 (en) 1996-02-28 1996-11-26 Polynomial evaluator for use in a reed-solomon decoder
JP8322950A JPH09246999A (ja) 1996-02-28 1996-12-03 エラー訂正向け多項式評価装置
CN96120991A CN1158518A (zh) 1996-02-28 1996-12-03 用在瑞得-所罗门解码器中的多项式求值器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960015268A KR100192792B1 (ko) 1996-05-09 1996-05-09 리드 솔로몬 복호기의 다항식 평가 장치

Publications (2)

Publication Number Publication Date
KR970078042A KR970078042A (ko) 1997-12-12
KR100192792B1 true KR100192792B1 (ko) 1999-06-15

Family

ID=19458191

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960015268A KR100192792B1 (ko) 1996-02-28 1996-05-09 리드 솔로몬 복호기의 다항식 평가 장치

Country Status (1)

Country Link
KR (1) KR100192792B1 (ko)

Also Published As

Publication number Publication date
KR970078042A (ko) 1997-12-12

Similar Documents

Publication Publication Date Title
US5805617A (en) Apparatus for computing error correction syndromes
US6467063B1 (en) Reed Solomon coding apparatus and Reed Solomon coding method
KR19980033277A (ko) 리드-솔로몬 디코더용 갈로아 필드 승산기
KR100192795B1 (ko) 리드 솔로몬 복호기의 에러 위치 다항식 계산 장치
KR960705272A (ko) 프로그램 가능 중복/신드롬 생성기(programmable redundancy/syndrome generator)
EP0136292A4 (en) CORRECTION OF BURST ERROR USING CYCLIC BLOCK CODES.
JP3279624B2 (ja) Crc演算に基づく1ビット誤り訂正回路
KR19990026630A (ko) 리드-솔로몬 복호기와 그 복호방법
CN100459438C (zh) 里德所罗门解码器的关键方程与错误值求解优化电路
JP3454962B2 (ja) 誤り訂正符号の符号器及び復号器
KR100192804B1 (ko) 리드 솔로몬 복호화기에서의 다항식 평가 장치
KR100192792B1 (ko) 리드 솔로몬 복호기의 다항식 평가 장치
JP3248098B2 (ja) シンドローム計算装置
US6859905B2 (en) Parallel processing Reed-Solomon encoding circuit and method
US5448510A (en) Method and apparatus for producing the reciprocal of an arbitrary element in a finite field
JPH0476540B2 (ko)
JP3812983B2 (ja) エラー評価多項式係数計算装置
US20100031126A1 (en) System and method for using the universal multipole for the implementation of a configurable binary bose-chaudhuri-hocquenghem (BCH) encoder with variable number of errors
KR100195739B1 (ko) 리드솔로몬 복호기의 에러 위치 다항식 평가 장치
KR100212827B1 (ko) 리드 솔로몬 복호기의 다황식 평가 장치
KR100192802B1 (ko) 리드 솔로몬 디코더의 에러값 계산 및 정정 장치
KR100212824B1 (ko) 리드 솔로몬 복호기의 다항식 평가 장치
KR100212825B1 (ko) 리드 솔로몬 복호기의 신드롬 계산장치
JP3223513B2 (ja) 誤り訂正復号装置
KR100192803B1 (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