KR100192795B1 - 리드 솔로몬 복호기의 에러 위치 다항식 계산 장치 - Google Patents

리드 솔로몬 복호기의 에러 위치 다항식 계산 장치 Download PDF

Info

Publication number
KR100192795B1
KR100192795B1 KR1019960016009A KR19960016009A KR100192795B1 KR 100192795 B1 KR100192795 B1 KR 100192795B1 KR 1019960016009 A KR1019960016009 A KR 1019960016009A KR 19960016009 A KR19960016009 A KR 19960016009A KR 100192795 B1 KR100192795 B1 KR 100192795B1
Authority
KR
South Korea
Prior art keywords
output
error position
position polynomial
signal
polynomial
Prior art date
Application number
KR1019960016009A
Other languages
English (en)
Other versions
KR970078044A (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 KR1019960016009A priority Critical patent/KR100192795B1/ko
Priority to EP97303284A priority patent/EP0808029A3/en
Priority to CN97113645A priority patent/CN1114999C/zh
Priority to JP12451397A priority patent/JP3834122B2/ja
Priority to US08/855,685 priority patent/US5878058A/en
Publication of KR970078044A publication Critical patent/KR970078044A/ko
Application granted granted Critical
Publication of KR100192795B1 publication Critical patent/KR100192795B1/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
    • 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
    • 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
    • H03M13/1525Determination and particular use of error location polynomials
    • H03M13/153Determination and particular use of error location polynomials using the Berlekamp-Massey algorithm

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)
  • Complex Calculations (AREA)

Abstract

본 발명은 리드 솔로몬 복호기의 에러 위치 다항식 계산 장치에 관한 것으로, 디스크레펀시 계산부(30)와, 케이스결정부(50), 룩업 테이블(60), 제1 갈로아체 곱셈기(70), 선택신호 생성부(80), 선택부(90), 시프트 레지스터부(100), 제2 갈로아체 곱셈기(110) 및, 제1 갈로아체 덧셈기(120)를 포함하여 구성되어, 신드롬(synd)을 입력받아 에러 위치 다항식 σ(X)를 계산함에 따라 갈로아체 곱셈기와 갈로아체 덧셈기의 수를 대폭 줄여 적은 면적으로 구현 가능한 것이다.

Description

리드 솔로몬 복호기의 에러 위치 다항식 계산 장치
제1도는 종래의 리드 솔로몬 복호기의 에러 위치 다항식 계산 장치의 회로도.
제2도는 본 발명에 따른 리드 솔로몬 복호기의 에러 위치 다항식 계산 장치의 실시예 1의 회로도.
제3도는 제2도에서의 디스크레펀시 계산부의 회로도.
제4도는 제3도에서의 계수용 시프트 레지스터부의 회로도.
제5도는 제2도에서의 시프트 레지스터부의 회로도이다.
* 도면의 주요부분에 대한 부호의 설명
30 : 디스크레펀시 계산부 31 : 계수용 시프트 레지스터부
32 : 제4다중화기 33 : 제3갈로아체 곱셈기
34 : 제2갈로아체 덧셈기 35 : 피드백용 벡터 레지스터
36 : 출력용 벡터 레지스터 37 : 판단부
38 : 제5다중화기 39 : 제4논리합 게이트
40 : 인버터 41 : D-플립플롭
50 : 케이스결정부 60 : 룩업 테이블
70 : 제1갈로아체 곱셈기 80 : 선택신호 생성부
82 : 제2논리합 게이트 84 : 제3논리합 게이트
90 : 선택부 92 : 롬
94 : 제2다중화기 96 : 제3다중화기
100 : 시프트 레지스터부 110 : 제2갈로아체 곱셈기
120 : 제1갈로아체 덧셈기 130 : 제1다중화기
140 : 제1논리합 게이트
본 발명은 리드 솔로몬 부호기(Reed solomon encoder : RS encoder)에 의해 에러 정정 부호화(error correcting coding, error control coding : 이하 ECC라 칭함) 되어 전송된 디지털 데이터를 에러 정정 복호화하는 리드 솔로몬 복호기에관한 것으로, 특히 Recursive Berlekamp Algorithm(이하 RBA라 칭함)을 이용하여 에러 위치 다항식을 계산하는 리드 솔로몬 복호기의 에러 위치 다항식 계산 장치에 관한 것이다.
일반적으로, 에러 정정 부호화(ECC)는 디지털 데이터를 통신 채널을 통해 전송하거나 저장 매체에 저장시에 발생되는 에러를 검출 정정하기 위해 디지털 데이터를 부호화하는 것으로, 에러를 검출하거나 정정하는데 사용되는 데이터를 부가함으로써, 데이터의 신뢰도를 높이게 되는 것이다.
이러한 에러 정정 코드(ECC)의 역사는 1948년 Claude Shannon에서부터 시작되었다. Claude Shannon은 1948년 모든 통신 채널은 C(bps)라고 하는 고유의 전송 용량을 갖고 있으며 그 용량을 초과하지 않는 전송 속도 R(bps)로 데이터를 전송하는 통신 시스템을 구축하는 것은 에러 정정 부호를 이용하면 어떤 채널이고 가능하다는 것을 증명하였다.
즉, 아주 좋은 성능의 채널을 구현하는 것보다 다소 성능이 떨어지는 기존 채널을 사용하면서 에러 정정 부호를 사용하는 것이 더 경제적이라는 것이다.
그러나, Claude Shannon은 단지 에러 정정 코드가 존재한다는 것만을 증명하였을 뿐이며 에러 정정 코드를 찾는 방법에 대해서는 언급하지 않았다.
이에 따라, 에러 정정 코드를 찾기 위한 노력이 현재까지 꾸준히 진행되고 있으며, 이러한 에러 정정 코드는 크게 블록 코드(block code)와 논블록 코드(nonblock code)로 나누어진다.
상기 블록 코드는 정보 시퀀스를 개의 비트로 이루어진 블록으로 분리한 다음 블록 단위로 에러 정정 부호하며, 상기 논블록 코드는 정보 시퀀스에 전체에 대해 에러 정정 부호화한다.
상기와 같은 블록 코드의 대표적인 예로는 BCH 코드(Bose and Ray-Chaudhuri and Hocquenghem code)와 리드 솔로몬 코드(RS code)를 들 수 있고, 논블록 코드의 대표적인 예로는 길쌈 부호(convolutional code)를 들 수 있다.
상기 BCH 코드는 사이클릭 코드(cyclic code)로서 갈로아체 GF(2m)상에서 동작된다.
사이클릭 코드란 선형 코드(liner code)의 어떤 선형 벡터를 사이클릭 시프트시키더라도 사이클릭 시프트된 선형 벡터가 상기 선형 코드의 선형 벡터인 선형 코드를 말한다.
따라서, BCH 코드는 하기 제1식과 같이 코드 발생 다항식 g(x)이 정해지면 피드백 시프트 레지스트를 이용하여 코드를 부호화할 수 있다.
이때, 상기 BCH 코드는 코드 발생 다항식 g(x)이 연속하는 2t개의 근을 가진다면 t개 까지의 에러를 정정할 수 있는 능력을 가진다.
한편, 리드 솔로몬 코드는 상기 BCH 크드의 최적 코드로서 코드 발생 다항식이 상기 제1식과 같이 정해지면 t개의 에러를 정정할 수 있다.
따라서, 현재 리드 솔로몬 코드는 통신 및 컴퓨터 기억 시스템 등에 폭넓게 사용될 뿐만 아니라 재밍에 대항하기 위한 한 방법으로서 비밀 통신 시스템에서 사용되기도 한다.
이와 같은 상기 리드 솔로몬 코드는 상기 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)를 χN-K차 만큼 상위 바이트로 이동시킨 다음 Rg(χ)[c(χ)]=0를 만족하는 패리티 t(x)를 구한다.
그리고, Rg(χ)[c(χ)]=0을 만족하는 패리티 t(x)를 하기 제3식으로부터 구할 수 있다.
상기에 있어서 Rg(χ)[c(χ)]=0는 코드워드 다항식 c(x)를 코드 발생 다항식 g(x)로 ssns 나머지값을 의미한다.
즉, 상기 패리티 t(x)를 구하기 위해서는 χN-Ki(χ)를 코드 발생 다항식 g(x)로 나누는 과정을 수행하여야 하며 이러한 과정은 시프트 레지스터를 코드 발생 다항식 g(x)에 다라 연결하여 구현할 수 있다.
그리고, 상기 비계통적 코드는 하기 제4식과 같이 단순히 정보에 코드 발생 다항식 g(x)을 곱해 줌에 따라 정보와 패리티가 섞이게 된다.
상기 제1식에서 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)의 근 α02t-1을 차례대로 대입함으로써 전송중에 에러가 발생되었는지를 알 수 있는 것이다.
즉, 수신된 데이터 r(x)에 코드 발생 다항식 g(x)의 근 αi을 대입하여 수신된 데이터 r(x)가 “0”이 되면 전송 중에 에러가 발생되지 않았다는 것을 의미하며, 수신된 데이터 r(x)에 코드 발생 다항식의 근 ai을 대입하여 수신된 데이터 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)을 미분한 값이다.
상기와 같이 에러값을 구한 다음 하기 제11식을 이용하여 원래의 코드워드 다항식 c(x)를 구하는 것이다.
상기와 같은 리드 솔로몬 복호화 방법에서 에러 위치 다항식을 계산하기 위한 종래의 에러 위치 다항식 계산 장치는 제1도에 도시된 바와 같이, t개의 계산셀(10-1~10-t) 및, 디스크레펀시(discrepancy)와 레이트 디스크레펀시(late discrepancy)의 역수 계산부(20)로 이루어지고, 상기 각 계산셀(10-1~10-t)은 2개의 벡터 레지스터(11, 14)와, 2개의 갈로아체 곱셈기(12, 16), 갈로아체 덧셈기(13), 다중화기(15)를 포함하여 구성되어 있다.
상기와 같이 구성된 에러 위치 다항식 계산장치의 첫 번째 계산셀(10-1)에 있어서, 제1레지스터(11-1)는 입력된 레이트 디스크레펀시(b-in)를 심볼 클럭(clk)에 따라 래치하여 출력하고, 제1갈로아체 곱셈기(12-1)는 상기 제1레지스터(11-1)에서 출력된 값과 디스크레펀시 및 레이트 디스크레펀시의 역수 계산부(20)에서 출력된 레이트 디스크레펀시의 역수(b-1)를 곱하여 갈로아체 덧셈기(13-1)로 출력한다.
상기 갈로아체 덧셈기(13-1)는 상기 제1 갈로아체 곱셈기(12-1)에서 출력된 값과 제2레지스터(14-1)에서 출력된 값을 곱하여 출력한다.
상기 제2레지스터(14-1)는 상기 갈로아체 덧셈기(13-1)에서 출력된 값을 심볼 클럭(sym-clk)에 따라 래치하여 상기 갈로아체 덧셈기(13-1)로 피드백 시킴과 더불어 다중화기(15-1) 및 제2 갈로아체 곱셈기(16-1)로 출력한다.
상기 다중화기(15-1)는 상기 제1레지스터(11-1)에서 출력된 값 또는 상기 제2레지스터(14-1)에서 출력된 값을 선택신호(sel)에 따라 선택적으로 출력한다.
상기 제2갈로아체 곱셈기(16-1)는 상기 제2레지스터(14-1)에서 출력된 값과 신드롬(S1)과 곱하여 디스크레펀시와 레이트 디스크레펀시의역수 계산부(20)로 출력한다.
한편, 두 번째 계산셀(10-2)에 있어서, 제1레지스터(11-2)는 상기 첫 번째 계산셀(10-1)의 다중화기(15-1)에서 출력된 값을 심볼 클럭(clk)에 따라 래치하여 출력하고, 제1갈로아체 곱셈기(12-2)는 상기 제1레지스터(11-2)에서 출력된 값과 디스크레펀시 및 레이트 디스크레펀시의 역수 계산부(20)에서 출력된 레이트 디스크레펀시의 역수(b-1)를 곱하여 갈로아체 덧셈기(13-2)로 출력한다.
상기 갈로아체 덧셈기(13-2)는 상기 제1갈로아체 곱셈기(12-2)에서출력된 값과 제2레지스터(14-2)에서 출력된 값을 곱하여 출력한다.
상기 제2레지스터(14-2)는 상기 갈로아체 덧셈기(13-2)에서 출력된 값을 심볼 클럭(sym-clk)에 따라 래치하여 상기 갈로아체 덧셈기(13-2)로 피드백 시킴과 더불어 다중화기(15-2) 및 제2갈로아체 곱셈기(16-2)로 출력한다.
상기 다중화기(15-2)는 상기 제1레지스터(11-1)에서 출력된 값 또는 상기 제2레지스터(14-2)에서 출력된 값을 선택신호(sel)에 따라 선택적으로 출력한다.
상기 제2 갈로아체 곱셈기(16-2)는 상기 제2 레지스터(14-2)에서 출력된 값과 신드롬(S2)과 곱하여 디스크레펀시와 레이트 디스크레펀시의 역수 계산부(20)로 출력한다.
그리고, 상기 디스크레펀시와 레이트 디스크레펀시의 역수 계산부(20)는 각 계산셀(10-1~10-t)의 제2 갈로아체 곱셈기(16-1~16-t)에서 출력된 값을 이용하여 계산셀(10-1~10-t)(d)를 계산하여 출력함과 더불어 레이트 디스크레펀시의 역수(b-1)를 계산하여 각 계산셀(10-1~10-t)의 제1 갈로아체 곱셈기(12-1~12-t)로 입력한다.
그러나, 상기와 같은 종래의 에러 위치 다항식 계산 장치는 각 계산셀(10-1~10-t)마다 두 개의 갈로아체 곱셈기와 한 개의 갈로아체 덧셈기를 사용함에 따라 그 구조가 복잡하고 면적이 많이 소요되는 문제점이 있었다.
이에, 본 발명은 상기와 같은 종래의 제 문제점을 해소하기 위한 것으로, RBA를 이용하여 에러 위치 다항식 계산장치를 구현함으로써, 갈로아체 곱셈기와 갈로아체 덧셈기의 수를 대폭 줄여 적은 면적으로 구현되는 리드 솔로몬 복호기의 에러 위치 다항식 계산 장치을 제공하는데 그 목적이 있다.
이러한 목적을 달성하기 위한 본 발명에 따른 리드 솔로몬 복호기의 에러 위치 다항식 계산 장치는, 신드롬 및 업데이트된 에러 위치 다항식을 입력받아 디스크레펀시를 계산하여 출력함과 더불어 상기 디스크레펀시가 “0”이면 “하이”의 제1 제어 신호를 출력하는 한편, 상기 업데이트된 에러 위치 다항식을 지연시킨 에러 위치 다항식을 출력함과 더불어 마지막으로 업데이트된 에러 위치 다항식을 계산이 완료된 에러 위치 다항식으로 출력하는 디스크레펀시 계산부와; 상기 제1 제어신호와, 디스크레펀시 및 첫 번째 디스크레펀시를 계산하는 경우에 “하이”인 제2 제어신호를 입력받아 레이트 디스크레펀시를 출력하는 한편, 케이스를 판단하여 제3 케이스이면 “하이”의 제3 제어신호를 출력하는 케이스결정부; 상기 디스크레펀시를 입력받아 그 역수를 출력하는 룩업 테이블; 상기 디스크레펀시와 레이트 디스크레펀시의 역수를 곱하여 출력하는 제1 갈로아체 곱셈기; 상기 제1 제어신호와 제2 제어신호 및 제3 제어신호를 조합하여 선택신호를 출력하는 선택신호 생성부; 상기 선택신호에 따라 상기 디스크레펀시 계산부에서 출력된 에러 위치 다항식 또는 상수 또는 피드백된 값을 선택적으로 출력하는 선택부; 상기 선택부에서 출력된 값을 시프트시켜 출력함과 더불어 상기 선택부로 피드백시키는 시프트 레지스터부; 상기 제1 갈로아체 곱셈기에서 출력된 값과 상기 시프트 레지스터부에서 출력된 값을 곱하여 출력하는 제2 갈로아체 곱셈기 및; 상기 제2 갈로아체 곱셈기에서 출력된 값과 상기 디스크레펀시 계산부에서 출력된 에러 위치 다항식을 더하여 업데이트된 에러 위치 다항식을 상기 디스크레펀시 계산부로 입력하는 제1 갈로아체 덧셈기를 포함하여 구성된 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명을 상세히 설명한다.
본 발명에 따른 리드 솔로몬 복호기의 에러 위치 다항식 계산장치의 이해를 돕기 위해 RBA(Recursive Berlekamp Algorithm)에 대해 설명하면 다음과 같다.
상기 RBA는 하기 12식과 같은 에러 위치 다항식 σ(X)를 구하기 위한 것으로서, t개의 에러 정정능력을 갖고 있는 리드 솔로몬 코드의 경우에는 t개의 근을 가지고 있어야 하므로 상기 에러 위치 다항식 σ(X)는 t차의 다항식이 된다.
상기와 같은 RBA은 다음과 같은 4단계의 과정을 수행하여 에러 위치 다항식 σ(X)를 구한다.
1. 초기 조건 설정.
σ0(X)=1, B0(X)=1, κ0=0, L0=0, b0=1
즉, 에러 위치 다항식 σ(X)의 초기값인 σ0(X)는 “1”이고, 중간값(intermediate value) B(X)의 초기값인 B0(X)는 “1”이며, 실제적인 에러 위치 다항식 σ(X)의 차수인 L의 초기값 L0은 “0”이고, 변수 X의 차수인 κ의 초기값인 κ0는 “0”이며, 레이트 디스크레펀시(late discrepancy) b의 초기값인 b0는 “1”이다.
이때, t개의 에러 정정 능력을 갖고 있는 리드 솔로몬 코드의 경우에 에러 위치 다항식 σ(X)은 t개의 근을 가지고 있어야 하므로 에러 위치 다항식 σ(X)의 계수를 담기 위한 레지스터의 수는 상수항을 포함하여 t+1개의 레지스터가 필요하다.
그리고, 상기 실제적인 에러 위치 다항식 σ(X)의 차수인 L은 에러 위치 다항식 σ(X)를 업데이트(update)할 때 차수의 증가가 필요한 경우에 하나씩 증가하고, 차수의 증가가 필요없는 경우에는 증가하지 않는다.
또한, 상기B(X), κ,b도 상기 에러 위치 다항식 σ(X)을 업데이트(update)하기 위해 사용되는 값이다.
2. 디스크레펀시(discrepancy) 계산.
(N, N-2t) 코드에서는 2t번 dN을 계산한다.
이때, 디스크레펀시의 초기값 d0는 신드롬 S0와 같으며, 초기값을 제외한 나머지 디스크레펀시는 하기 13식을 통해 구하게 된다.
상기 식에 있어서, dN은 디스크레펀시이고, σi는 신드롬 다항식의 계수이며, SN, SN-i는 신드롬이다.
3. 업데이트(update) 수행.
다음과 같은 3가지 경우에 따라 업데이트를 수행한다.
4. 상기 제2단계 수행.
N=2t가 될 때까지 상기 제2단계를 반복 수행한다.
상기와 같은 RBA을 하드웨어로 구현한 본 발명에 따른 리드 솔로몬 복호기의 에러 위치 다항식 계산장치의 1실시예는 제2도에 도시된 바와 같이, 디스크레펀시 계산부(30)와, 케이스결정부(50), 룩업 테이블(60), 제1 갈로아체 곱셈기(70), 선택신호 생성부(80), 선택부(90), 시프트 레지스터부(100), 제2 갈로아체 곱셈기(110), 제1 갈로아체 덧셈기(120), 제1 다중화기(130) 및, 제1 논리합 게이트(140)를 포함하여 구성되어 잇다.
그리고, 상기 선택신호 생성부(80)는 제2 논리합 게이트(82)와 제3 논리합 게이트(84)를 포함하여 구성되고, 상기 선택부(90)는 롬(92)과 제2 다중화기(94) 및 제3 다중화기(96)를 포함하여 구성된다.
상기와 같이 구성된 에러 위치 다항식 계산 장치에 사용되는 신호를 정의하면 다음과 같다.
d-zeor는 계산되는 디스크레펀시가 “0”일 경우에 “하이”인 신호로서 이하 제1 제어신호라 하고, d0-flag는 첫 번째 디스크레펀시 d0를 계산하는 경우에 “하이”인 신호로서 이하 제2 제어신호라 하며, case3-flag는 업데이트시 제3 케이스 즉 dN≠0, 2LNN인 경우에 “하이”인 신호로서 제3 제어신호라 한다.
상기와 같은 에러 위치 다항식 계산 장치에 있어서, 상기 디스크레펀시 계산부(30)는 신드롬(synd) 및 업데이트된 에러 위치 다항식(σ-in)을 입력받아 디스크레펀시(d)가 “0”이면 제1 제어신호(d-zero)를 출력하는 한편, 상기 업데이트된 에러 위치 다항식 다항식(σ-in)을 지연시킨 에러 위치 다항식(σ-out)을 출력함과 더불어 마지막으로 업데이트된 에러 위치 다항식(σ-out)을 에러 위치 다항식 σ(X)으로 출력하도록 되어 있다.
상기 케이스 결정부(50)는 상기 제1 제어신호(d-zero)와 제2 제어신호(d0-flag) 및 디스크레펀시(d)를 입력받아 레이트 디스크레펀시(b)를 출력하는 한편, 케이스를 판단하여 제3 케이스이면 제3 제어신호(case3-flag)를 출력하도록 되어 있다.
상기 룩업 테이블(60)은 상기 케이스 결정부(50)에서 출력된 레이트 디스크레펀시(b)를 입력받아 역수(b-1)를 출력하도록 되어 있고, 상기 제1 갈로아체 곱셈기(70)는 상기 디스크레펀시 계산부(30)에서 출력된 디스크레펀시(d)와 상기 룩업 테이블(60)에서 출력된 레이트 디스크레펀시(b)의 역수(b-1)를 곱하여 출력하도록 되어 있다.
그리고, 선택신호 생성부(80)는 제1 제어신호(d-zero)와 제2 제어신호(d0-flag) 및 제3 제어신호(case3-flag)를 조합하여 선택신호(sell, sel2)를 출력하도록 되어 있으며, 선택부(90)는상기 선택신호(sel1, sel2)에 따라 상기 디스크레펀시 계산부(30)에서 출력된 에러 위치 다항식(σ-out) 또는 상수(C) 또는 피드백된 값을 선택적으로 출력하도록 되어 있다.
이때, 상기 상수(C)는 “0”이다.
또한, 시프트 레지스터부(100)는 상기 선택부(90)에서 출력된 값을 비트 클럭(bit clk)에 따라 시프트시켜 출력함과 더불어 상기 선택부(90)로 피드백시키도록 되어 있고, 제2 갈로아체 곱셈기(110)는 상기 제1 갈로아체 곱셈기(70)에서 출력된 값과 상기 시프트 레지스터부(100)에서 출력된 값을 곱하여 출력하도록 되어 있다.
그리고, 제1 갈로아체 덧셈기(120)는 상기 제2 갈로아체 곱셈기(110)에서 출력된 값과 상기 디스크레펀시 계산부(30)에서 출력된 에러 위치 다항식(σ-out)을 더한 값을 업데이트된 에러 위치 다항식(σ-in)으로 하여 상기 디스크레펀시 계산부(30)로 피드백시키도록 되어 있다.
그리고, 제1다중화기(130)는 테스트 선택신호(t-sel)에 따라 코드 워드 종료신호(cw-end) 또는 테스트 리셋신호(t-rst)를 선택적으로 출력하여 상기 시프트 레지스터부(100)의 리셋신호(rst)로 입력하도록 되어 있고, 제1 논리합 게이트(140)는 제1 인에이블 신호(ena)와 테스트 인에이블 신호(t-ena)를 논리합(OR)하여 상기 시프트 레지스터부(100)의 인에이블신호(ena)로 입력하도록 되어 있다.
한편, 상기 디스크레펀시 계산부(30)는 제3도에 도시된 바와 같이, 계수용 시프트 레지스터부(31)와, 제4 다중화기(32), 제3 갈로아체 곱셈기(33), 제2 갈로아체 덧셈기(34), 피드백용 벡터 레지스터(35), 출력용 벡터 레지스터(36), 판단부(37), 제5 다중화기(38), 제4 논리합 게이트(39), 인버터(40), D-플립플롭(41)을 포함하여 구성되어 있다.
상기와 같이 이루어진 디스크레펀시 계산부(30)에 있어서, 상기 계수용 시프트 레지스터부(31)는 상기 제2도에 도시된 제1 갈로아체 덧셈기(120)에서 업데이트되어 출력된 에러 위치 다항식(σ-in)을 비트 클럭(bit-clk)에 따라 시프트시켜 출력함과 더불어 마지막으로 업데이트된 에러 위치 다항식(σ-out)을 에러 위치 다항식 σ(X)으로 출력하도록 되어 있다.
그리고, 제4 다중화기(32)는 제2 제어신호(d0-flag)에 따라 상기 제2도에 도시된 제1 갈로아체 덧셈기(120)에서 출력된 에러 위치 다항식(σ-in) 또는 상기 계수용 시프트 레지스터부(31)에서 시프트되어 출력된 에러 위치 다항식(σ-out)을 선택적으로 출력하도록 되어 있다.
상기 제3 갈로아체 곱셈기(33)는 신드롬(synd)과 상기 제4 다중화기(32)에서 출력된 값을 곱하여 출력하도록 되어 있고, 제2 갈로아체 덧셈기(34)는 상기 제3 갈로아체 곱셈기(33)에서 출력된 값과 피드백된 값을 더하여 출력하도록 되어 있다.
상기 피드백용 벡터 레지스터(35)는 상기 제2 갈로아체 덧셈기(34)에서 출력된 값을 비트 클럭(bit-clk)에 따라 래치하여 상기 제2 갈로아체 덧셈기(34)로 피드백시키도록 되어 있고, 출력용 벡터 레지스터(36)는 상기 제2 갈로아체 덧셈기(34)에서 출력된 값을 래치하여 디스크레펀시(d)로 출력하도록 되어 있으며, 상기 판단부(37)는 상기 출력용 벡터 레지스터(36)에서 출력된 디스크레펀시(d)가 “0”인지를 판단하여 “0”이면 “하이”의 제1 제어신호(d-zero)를 출력하도록 되어 있다.
그리고, 상기 제5 다중화기(38)는 코드워드 종료신호(cw-end)와 테스트 리셋신호(t-rst)를 선택신호(t-sel)에 따라 선택하여 상기 계수용 시프트 레지스터(31)와 출력용 벡터 레지스터(36)의 리셋신호(rst)로 입력하도록 되어 있다.
상기 제4 논리합 게이트(39)는 테스트 인에이블신호(t-ena)와 제2 인에이블 신호(ena2)를 논리합하여 상기 계수용 시프트 레지스터부(31)와 피드백용 벡터 레지스터(35)의 인에이블 신호(ena)로 입력하도록 되어 잇다.
상기 인버터(40)는 비트 클럭(bit-clk)k을 반전시켜 상기 출력용 벡터 레지스터(36)의 클럭단으로 입력하도록 되어 출력하도록 되어 있고, 상기 D-플립플롭(41)은 상기 인버터(40)에 의해 반전되어 출력된 클럭에 따라 디스크레펀시 종료신호(d-end)를 래치하여 상기 피드백용 레지스터(35)의 리셋신호(rst)로 입력하도록 되어 있다.
이때, 상기 계수용 시프트 레지스터부(31)는 제4도에 도시된 바와 같이, 다수개의 레지스터(31-1~31-9)가 직렬로 연결된 구조로 되어 있고, 상기 제2도에 도시된 시프트 레지스터부(100)는 제5도에 도시된 바와 같이, 다수개의 레지스터(100-1~100-8)가 직렬로 연결된 구조로 되어 있다.
상기와 같이 구성된 본 발명에 따른 에러 위치 다항식의 작용 및 효과를 상세히 설명하면 다음과 같다.
상기 디스크레펀시 계산부(30)는 신드롬(synd) 및 제1 갈로아체 덧셈기(120)에서 업데이트되어 출력된 에러 위치 다항식(σ-in)을 입력받아 디스크레펀시(d)를 계산하여 출력함과 더불어 상기 디스크레펀시(d)가 “0”이면 제1 제어신호(d-zero)를 출력한다.
또한, 상기 제1 갈로아체 덧셈기(120)에서 업데이트되어 출력된 에러 위치 다항식(σ-in)을 지연시킨 에러 위치 다항식(σ-out)을 출력하고, 이때 마지막으로 업데이트된 에러 위치 다항식(σ-out)을 계산이 완료된 에러 위치 다항식 σ(X)으로 출력된다.
즉, 상기와 같은 디스크레펀시 계산부(30)에 있어서, 계수용 시프트 레지스터부(31)는 제1 갈로아체 덧셈기(120)에서 업데이트되어 출력된 에러 위치 다항식(σ-in)을 비트 클럭(bit-clk)에 따라 시프트시켜 제4 다중화기(32) 및 선택부(90)의 제2 다중화기(94)로 출력한다.
이때, 마지막으로 업데이트된 에러 위치 다항식(σ-out)가 계산이 완료된 에러 위치 다항식 σ(X)으로 출력되는 것이다.
그리고, 제4 다중화기(32)는 제2 제어신호(d0-flag)에 따라서 상기 제1 갈로아체 덧셈기(120)에서 출력된 에러 위치 다항식(σ-in) 또는 상기 계수용 시프트 레지스터부(31)에서 시프트되어 출력된 에러 위치 다항식(σ-out)을 선택적으로 출력한다.
즉, 첫 번째 디스크레펀시 d0를 계산하는 경우에 “하이”인 제2 제어신호(d0-flag)가 “하이”인 경우에는 상기 계수용 시프트 레지스터부(31)에서 시프트되어 출력된 에러 위치 다항식(σ-out)을 선택하여 출력하고, “로우”인 경우에는 상기 제1 갈로아체 덧셈기(120)에서 업데이트되어 출력된 에러 위치 다항식(σ-in)을 선택하여 출력하는 것이다.
그리고, 제3 갈로아체 곱셈기(33)는 외부로부터 입력된 신드롬(synd)과 상기 제4 다중화기(32)에서 출력된 값을 곱하여 제2 갈로아체 덧셈기(34)로 출력하며, 제2 갈로아체 덧셈기(34)는 상기 제3 갈로아체 곱셈기(33)에서 출력된 값과 피드백용 벡터 레지스터(35)에서 출력된 값을 더하여 피드백용 벡터 레지스터(35)에서 및 출력용 벡터 레지스터(36)으로 출력한다.
상기 피드백용 레지스터(35)는 상기 제2 갈로아체 덧셈기(34)에서 출력된 값을 비트 클럭(bit-clk)에 따라 래치하여 상기 제2 갈로아체 덧셈기(34)로 피드백시키고, 출력용 벡터 레지스터(36)는 상기 제2 갈로아체 덧셈기(34)에서 출력된 값을 인버터(40)에 의해 반전된 비트 클럭(bit-clk)에 따라 래치하여 디스크레펀시(d)로 출력한다.
그리고, 판단부(37)는 상기 출력용 벡터 레지스터(36)에서 출력된 디스크레펀시(d)r “0”인지를 판단하여 “0”이면 “하이”의 제1 제어신호(d-zero)를 출력한다.
이때, 제5 다중화기(38)는 코드워드 종료신호(cw-end) 또는 테스트 리셋신호(t-rst)를 선택신호(t-sel)에 따라 선택하여 상기 계수용 시프트 레지스터부(31)와 출력용 레지스터(36)의 리셋신호(rst)로 입력한다.
즉, 선택신호(t-sel)가 “하이”이면 테스트 리셋신호(t-rst)를 선택하여 출력하고, 선택신호(t-sel)가 “로우”이면 코드 워드 종료신호(cw-end)신호를 선택하여 출력하는 것이다.
또한, 제4 논리합 게이트(39)는 테스트 인에이블신호(t-ena)와 제2 인에이블 신호(ena2)를 논리합하여 상기 계수용 시프트 레지스터부(31)와 피드백용 벡터 레지스터(35)의 인에이블 신호(ena)로 출력하며, 인버터(40)는 비트 클럭(bit-clk)을 반전시켜 출력용 벡터 레지스터(36)의 클럭으로 입력하고, 상기 D-플립플롭(41)은 상기 인버터(40)에 의해 반전되어 출력된 클럭에 따라 디스크레펀시 종료신호(d-end)를 래치하여 상기 피드백용 벡터 레지스터(35)의 리셋신호(rst)로 입력한다.
한편, 케이스 결정부(50)는 상기 제1 제어신호(d-zero)와 제2 제어신호(d0-flag) 및 디스크레펀시(d)를 입력받아 레이트 디스크레펀시(b)를 출력하는 한편, 케이스를 판단하여 제3 케이스이면 제3 제어신호(case3-flag)를 출력한다.
즉, dN≠0, 2LNN인 경우에 제3 케이스로 판단하여 “하이”인 제3 제어신호(case3-flag)를 출력하는 것이다.
그리고, 룩업 테이블(60)은 상기 케이스 결정부(50)에서 출력된 레이트 디스크레펀시(b)를 입력받아 역수(b-1)를 출력하고, 제1 갈로아체 곱셈기(70)는 상기 디스크레펀시 계산부(30)에서 출력된 디스크레펀시(d)와 상기 룩업 테이블(60)에서 출력된 레이트 디스크레펀시의 역수(b-1)를 곱하여 제2 갈로아체 곱셈기(110)로 출력한다.
또한, 선택신호 생성부(80)는 제1 제어신호(d-zero)와 제2 제어신호(d0-flag) 및 제3 제어신호(case3-flag)를 조합하여 선택신호(sel1, sel2)를 출력하며, 선택부(90)는 상기 선택신호(sel1, sel2)에 따라 상기 디스크레펀시 계산부(30)에서 출력된 에러 위치 다항식(σ-out) 또는 상수(C) 또는 피드백된 값을 선택적으로 출력한다.
즉, 제2 논리합 게이트(82)는 제2 제어신호(do-flag)와 제3 제어신호(case3-flag)를 논리합하여 상기 선택부(90)의 제2 다중화기(96)의 선택신호(sel1)로 입력하며, 제3 논리합 게이트(84)는 상기 제1 선택신호(sel1)와 제1 제어신호(d-zero)를 논리합하여 상기 선택부(90)의 제1 다중화기(96)의 선택신호(sel2)로 입력한다.
상기 제1 다중화기(94)는 상기 제2 선택신호(sel2)가 “하이”이면 롬(92)에 저장된 “0”을 선택하여 출력하고, “로우”이면 상기 디스크레펀시 계산부(30)에서 출력된 에러 위치 다항식(σ-out)을 선택하여 출력하며, 상기 제2 다중화기(96)는 상기 제1 선택신호(sel1)가 “하이”이면 시프트 레지스터부(100)에서 피드백된 값을 선택하여 시프트 레지스터부(100)로 출력하고, “로우”이면 상기 제1 다중화기(94)에서 출력된 값을 선택하여 시프트 레지스터부(100)로 출력하는 것이다.
그리고, 상기 시프트 레지스터부(100)는 상기 선택부(90)의 제2 다중화기(96)에서 출력된 값을 비트 클럭(bit-clk)에 따라 시프트시켜 상기 선택부(90)의 제2 다중화기(96)로 피드백시킴과 더불어 제2 갈로아체 곱셈기(110)로 출력하고, 제2 갈로아체 곱셈기(110)는 상기 제1 갈로아체 곱셈기(70)에서 출력된 값과 상기 시프트 레지스터부(100)에서 출력된 값을 곱하여 제1 갈로아체 덧셈기(120)로 출력한다.
상기 제1 갈로아체 덧셈기(120)는 상기 제2 갈로아체 곱셈기(110)에서 출력된 값과 상기 디스크레펀시 계산부(30)에서 출력된 에러 위치 다항식(σ-out)을 더하여 상기 에러 위치 다항식(σ-out)을 업데이트시키고, 업데이트된 에러 위치 다항식(σ-in)을 상기 디스크레펀시 계산부(30)로 입력한다.
이상에서 살펴본 바와 같이 본 발명에 따르면, RBA를 이용하여 에러 위치 다항식 계산장치를 구현함으로써, 갈로아체 곱셈기와 갈로아체 덧셈기의 수를 대폭 줄여 적은 면적으로 구현 가능한 것이다.

Claims (12)

  1. (N, N-2t) 리드 솔로몬 코드를 복호화하는 리드 솔로몬 복호기의 에러 위치 다항식 계산 장치에 있어서, 신드롬(synd) 및 업데이트된 에러 위치 다항식(σ-in)을 입력받아 디스크레펀시(d)를 계산하여 출력함과 더불어 상기 디스크레펀시(d)가 “0”이면 “하이”의 제1 제어신호(d-zero)를 출력하는 한편, 상기 업데이트된 에러 위치 다항식(σ-in)을 지연시킨 에러 위치 다항식(σ-out)을 출력함과 더불어 마지막으로 업데이트된 에러 위치 다항식(σ-out)을 계산이 완료된 에러 위치 다항식 σ(X)으로 출력하는 디스크레펀시 계산부(30)와; 상기 제1 제어신호(d-zero)와, 디스크레펀시(d) 및, 첫 번째 디스크레펀시를 계산하는 경우에 “하이”인 제2 제어신호(d0-flag)를 입력받아 레이트 디스크레펀시(b)를 출력하는 한편, 케이스를 판단하여 제3 케이스이면 “하이”의 제3 제어신호(case3-flag)를 출력하는 케이스결정부(50); 상기 디스크레펀시(b)를 입력받아 그 역수(b-1)를 출력하는 룩업 테이블(60); 상기 디스크레펀시(d)와 레이트 디스크레펀시의 역수(b-1)를 곱하여 출력하는 제1 갈로아체 곱셈기(70); 상기 제1 제어신호(d-zero)와 제2 제어신호(d0-flag) 및 제3 제어신호(case3-flag)를 조합하여 선택신호(sel1, sel2)를 출력하는 선택신호 생성부(80); 상기 선택신호(sel1, sel2)에 따라 상기 디스크레펀시 계산부(30)에서 출력된 에러 위치 다항식(σ-out) 또는 상수(C) 또는 피드백된 값을 선택적으로 출력하는 선택부(90); 상기 선택부(90)에서 출력된 값을 시프트시켜 출력함과 더불어 상기 선택부(90)로 피드백시키는 시프트 레지스터부(100); 상기 제1 갈로아체 곱셈기(70)에서 출력된 값과 상기 시프트 레지스터부(100)에서 출력된 값을 곱하여 출력하는 제2 갈로아체 곱셈기(110) 및; 상기 제2 갈로아체 곱셈기(110)에서 출력된 값과 상기 디스크레펀시 계산부(30)에서 출력된 에러 위치 다항식(σ-out)을 더하여 업데이트된 에러 위치 다항식(σ-in)을 상기 디스크레펀시 계산부(30)로 입력하는 제1 갈로아체 덧셈기()120하를 포함하여 구성된 것을 특징으로 하는 리드 솔로몬 복호기의 에러 위치 다항식 계산 장치.
  2. 제1항에 있어서, 테스트 선택신호(t-sel)에 따라 코드 워드 종료신호(cw-end) 또는 테스트 리셋신호(t-rst)를 선택하여 상기 시프트 레지스터부(100)의 리셋신호(rst)로 입력하는 제1 다중화기(130) 및, 제1 인에이블 신호(ena1)와 테스트 인에이블 신호(t-ena)를 논리합하여 상기 시프트 레지스터부(100)의 인에이블 신호(ena)로 입력하는 제1 논리합 게이트(140)가 추가로 구비된 것을 특징으로 리드 솔로몬 복호기의 에러 위치 다항식 계산 장치.
  3. 제1항에 있어서, 상기 디스크레펀시 계산부(30)는, 상기 제1 갈로아체 덧셈기(120)에서 업데이트되어 출력된 에러 위치 다항식(σ-in)을 시프트시켜 출력하는 계수용 시프트 레지스터부(31)와; 상기 제2 제어신호(d0-flag)에 따라 상기 제1 갈로아체 덧셈기(120)에서 출력된 에러 위치 다항식(σ-in) 또는 상기 계수용 시프트 레지스터부(31)에서 출력된 에러 위치 다항식(σ-out)을 선택적으로 출력하는 제4 다중화기(32); 신드롬(synd)과 상기 제4 다중화기(32)에서 출력된 값을 곱하여 출력하는 제3 갈로아체 곱셈기(33); 상기 제3 갈로아체 곱셈기(33)에서 출력된 값과 피드백된 값을 더하여 출력하는 제2 갈로아체 덧셈기(34); 상기 제3 갈로아체 곱셈기(33)에서 출력된 값과 피드백된 값을 더하여 출력하는 제2 갈로아체 덧셈기(34); 상기 제2 갈로아체 덧셈기(34)에서 출력된 값을 래치하여 상기 제2 갈로아체 덧셈기(34)로 피드백시키는 피드백용 벡터 레지스터(35); 상기 제2 갈로아체 덧셈기(34)에서 출력된 값을 래치하여 디스크레펀시(d)로 출력하는 출력용 벡터 레지스터(36) 및; 상기 디스크레펀시(d)가 “0”인지를 판단하여 “0”이면 “하이”의 제1 제어신호(d-zero)를 출력하는 판단부(37)를 포함하여 구성된 것을 특징으로 리드 솔로몬 복호기의 에러 위치 다항식 계산 장치.
  4. 제3항에 있어서, 코드워드 종료신호(cw-end)와 테스트 리셋신호(t-rst)를 선택신호(t-sel)에 따라 선택하여 상기 계수용 시프트 레지스터부(31) 및 출력용 벡터 레지스터(36)의 리셋신호(rst)로 입력하는 제5 다중화기(38)와; 테스트 인에이블신호(t-ena)와 제2 인에이블 신호(ena2)를 논리합하여 상기 계수용 시프트 레지스터부(31) 및 피드백용 벡터 레지스터(35)의 인에이블 신호(ena)로 입력하는 제4 논리합 게이트(39); 비트 클럭(bit-clk)을 반전시켜 상기 출력용 벡터 레지스터(36)의 클럭단으로 입력하는 인버터(40) 및; 상기 인버터(40)에서 반전되어 출력된 클럭에 따라 디스크레펀시 종료신호(d-end)를 래치하여 상기 피드백용 벡터 레지스터(35)의 리셋신호(rst)로 입력하는 D-플립플롭(41)이 추가로 구비된 것을 특징으로 리드 솔로몬 복호기의 에러 위치 다항식 계산 장치.
  5. 제3항에 있어서, 상기 계수용 시프트 레지스터부(31)는 t+1 개의 레지스터(31-1~31-9)가 직렬로 연결되어, 상기 제1 갈로아체 덧셈기(120)에서 출력된 에러 위치 다항식(σ-in)을 비트 클럭(bit-clk)에 따라 시프트시켜 출력하도록 된 것을 특징으로 하는 리드 솔로몬 복호기의 에러 위치 다항식 계산 장치.
  6. 제3항에 있어서, 상기 제4 다중화기(32)는, 제2 제어신호(d0-flag)가 “하이”이면 상기 계수용 시프트 레지스터부(31)에서 시프트되어 출력된 에러 위치 다항식(σ-out)을 선택하여 출력하고, “로우”이면 상기 제1 갈로아체 덧셈기(120)에서 출력된 에러 위치 다항식(σ-in)을 선택하여 출력하도록 된 것을 특징으로 리드 솔로몬 복호기의 에러 위치 다항식 계산 장치.
  7. 제1항에 있어서, 상기 선택신호 발생부(80)는, 제2 제어신호(d0-flag) 및 제3 제어신호(case3-flag)를 논리합하여 제1 선택신호(sel1)를 출력하는 제2 논리합 게이트(82) 및, 상기 제1 선택신호(sel1)와 제1 제어신호(d-zero)를 논리합하여 제2 선택신호(sel2)를 출력하는 제2 논리합 게이트(84)로 이루어진 것을 특징으로 리드 솔로몬 복호기의 에러 위치 다항식 계산 장치.
  8. 제7항에 있어서, 상기 선택부(90)는, 상수(C)가 저장되어 있는 롬(92)과; 상기 제2 선택신호(sel2)에 따라 상기 롬(92)에 저장된 상수(C) 또는 상기 디스크레펀시 계산부(30)에서 출력된 에러 위치 다항식(σ-out)을 선택적으로 출력하는 제1 다중화기(94) 및; 상기 제1 선택신호(sel1)에 따라 상기 제1 다중화기(94)에서 출력된 값 또는 상기 시프트 레지스터부(100)에서 피드백된 값을 선택적으로 출력하는 제2 다중화기(96)를 포함하여 구성된 것을 특징으로 리드 솔로몬 복호기의 에러 위치 다항식 계산 장치.
  9. 제8항에 있어서, 상기 상수(C)는 “0”인 것을 특징으로 리드 솔로몬 복호기의 에러 위치 다항식 계산 장치.
  10. 제8항에 있어서, 상기 제1 다중화기(94)는, 상기 제2 선택신호(sel2)가 “하이”이면 롬(92)에 저장된 상수(C)를 선택하여 출력하고, “로우”이면 상기 디스크레펀시 계산부(30)에서 출력된 에러 위치 다항식(σ-out)을 선택하여 출력하도록 된 것을 특징으로 하는 리드 솔로몬 복호기의 에러 위치 다항식 계산 장치.
  11. 제8항에 있어서, 상기 제2 다중화기(96)는, 상기 제1 선택신호(sel1)가 “하이”이면 상기 시프트 레지스터부(100)에서 출력된 값을 선택하여 출력하고, “로우”이면 상기 제1 다중화기(94)에서 출력된 값을 선택하여 출력하도록 된 것을 특징으로 리드 솔로몬 복호기의 에러 위치 다항식 계산 장치.
  12. 제1항에 있어서, 상기 시프트 레지스터부(100)는, t개의 레지스터(100-1~100-8)가 직렬로 연결되어, 비트 클럭(bit-clk)에 따라 상기 선택부(90)에서 출력된 값을 시프트시켜 출력하도록 된 것을 특징으로 리드 솔로몬 복호기의 에러 위치 다항식 계산 장치.
KR1019960016009A 1996-05-14 1996-05-14 리드 솔로몬 복호기의 에러 위치 다항식 계산 장치 KR100192795B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1019960016009A KR100192795B1 (ko) 1996-05-14 1996-05-14 리드 솔로몬 복호기의 에러 위치 다항식 계산 장치
EP97303284A EP0808029A3 (en) 1996-05-14 1997-05-14 Apparatus for determining an error locator polynomial for use in a Reed-Solomon decoder
CN97113645A CN1114999C (zh) 1996-05-14 1997-05-14 测定用在里德-索洛蒙译码器中的误差定位子多项式的装置
JP12451397A JP3834122B2 (ja) 1996-05-14 1997-05-14 誤り位置検出多項式計算装置
US08/855,685 US5878058A (en) 1996-05-14 1997-05-14 Apparatus for determining an error locator polynomial for use in a reed-solomon decoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960016009A KR100192795B1 (ko) 1996-05-14 1996-05-14 리드 솔로몬 복호기의 에러 위치 다항식 계산 장치

Publications (2)

Publication Number Publication Date
KR970078044A KR970078044A (ko) 1997-12-12
KR100192795B1 true KR100192795B1 (ko) 1999-06-15

Family

ID=19458650

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960016009A KR100192795B1 (ko) 1996-05-14 1996-05-14 리드 솔로몬 복호기의 에러 위치 다항식 계산 장치

Country Status (5)

Country Link
US (1) US5878058A (ko)
EP (1) EP0808029A3 (ko)
JP (1) JP3834122B2 (ko)
KR (1) KR100192795B1 (ko)
CN (1) CN1114999C (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6061826A (en) * 1997-07-29 2000-05-09 Philips Electronics North America Corp. Hardware-optimized reed-solomon decoder for large data blocks
US6047395A (en) * 1998-01-30 2000-04-04 Cirrus Logic, Inc. Error correction processor for correcting a multi-dimensional code by generating an erasure polynomial over one dimension for correcting multiple codewords in another dimension
JP3238128B2 (ja) * 1998-06-02 2001-12-10 松下電器産業株式会社 リードソロモン符号化装置および方法
US6317858B1 (en) 1998-11-09 2001-11-13 Broadcom Corporation Forward error corrector
US6738942B1 (en) 2000-06-02 2004-05-18 Vitesse Semiconductor Corporation Product code based forward error correction system
US6694476B1 (en) 2000-06-02 2004-02-17 Vitesse Semiconductor Corporation Reed-solomon encoder and decoder
US7199549B2 (en) * 2001-08-17 2007-04-03 Delphi Technologies, Inc Feedback parameter estimation for electric machines
US6900607B2 (en) 2001-08-17 2005-05-31 Delphi Technologies, Inc. Combined feedforward and feedback parameter estimation for electric machines
WO2004107586A1 (en) * 2003-05-28 2004-12-09 Telefonaktiebolaget L M Ericsson (Publ) Logic circuit
US20070150798A1 (en) * 2005-12-12 2007-06-28 Jia-Horng Shieh Method for decoding an ecc block and related apparatus
US7661057B2 (en) * 2006-02-01 2010-02-09 Broadcom Corporation Clocking Chien searching at different frequency than other Reed-Solomon (RS) ECC decoding functions
US7725227B2 (en) 2006-12-15 2010-05-25 Gm Global Technology Operations, Inc. Method, system, and apparatus for providing enhanced steering pull compensation
CN103236852B (zh) * 2013-04-19 2016-02-10 荣成市鼎通电子信息科技有限公司 无乘法运算的dtmb中准循环矩阵串行乘法器
US10521296B2 (en) * 2018-02-20 2019-12-31 Micron Technology, Inc. Performing an additional decoding operation on an identified set of bits of a data block

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US4763332A (en) * 1987-03-02 1988-08-09 Data Systems Technology Corp. Shared circuitry for the encoding and syndrome generation functions of a Reed-Solomon code
US4833678A (en) * 1987-07-22 1989-05-23 Cyclotomics, Inc. Hard-wired serial Galois field decoder
JPH0391188A (ja) * 1989-09-04 1991-04-16 Matsushita Electric Ind Co Ltd Fifoメモリ
US5805617A (en) * 1996-02-28 1998-09-08 Daewoo Electronics Co., Ltd. Apparatus for computing error correction syndromes
JP3812983B2 (ja) * 1996-02-28 2006-08-23 株式会社大宇エレクトロニクス エラー評価多項式係数計算装置
US5751732A (en) * 1996-02-28 1998-05-12 Daewoo Electronics Co., Ltd. Polynomial evaluator for use in a reed-solomon decoder

Also Published As

Publication number Publication date
US5878058A (en) 1999-03-02
EP0808029A2 (en) 1997-11-19
KR970078044A (ko) 1997-12-12
EP0808029A3 (en) 2001-12-05
CN1114999C (zh) 2003-07-16
JP3834122B2 (ja) 2006-10-18
CN1176534A (zh) 1998-03-18
JPH1093445A (ja) 1998-04-10

Similar Documents

Publication Publication Date Title
US4584686A (en) Reed-Solomon error correction apparatus
US4782490A (en) Method and a system for multiple error detection and correction
KR100594241B1 (ko) 순방향 치엔 서치 방식의 리드 솔로몬 디코더 회로
US8176396B2 (en) System and method for implementing a Reed Solomon multiplication section from exclusive-OR logic
KR100192795B1 (ko) 리드 솔로몬 복호기의 에러 위치 다항식 계산 장치
JP3305525B2 (ja) 復号器、誤りロケータシーケンス生成器および復号方法
KR0135824B1 (ko) 오류 위치 및 추정 다항식 계산방법 및 이를 이용한 리드-솔로몬 복호기
US6263471B1 (en) Method and apparatus for decoding an error correction code
EP1102406A2 (en) Apparatus and method for decoding digital data
US6735737B2 (en) Error correction structures and methods
US7281196B2 (en) Single error Reed-Solomon decoder
KR100195739B1 (ko) 리드솔로몬 복호기의 에러 위치 다항식 평가 장치
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
EP0793352B1 (en) Apparatus for determining the error evaluator polynomial for use in a Reed-Solomon decoder
KR100212830B1 (ko) 리드 솔로몬 복호기의 신드롬 계산장치
KR100191248B1 (ko) 리드 솔로몬 부호기
KR100212825B1 (ko) 리드 솔로몬 복호기의 신드롬 계산장치
KR100212829B1 (ko) 리드 솔로몬 복호기의 신드롬 계산장치
KR100212826B1 (ko) 리드 솔로몬 복호기의 신드롬 계산장치
KR100192802B1 (ko) 리드 솔로몬 디코더의 에러값 계산 및 정정 장치
KR100202949B1 (ko) 리드 솔로몬 디코더의 에러 정정 시스템
KR100192790B1 (ko) 리드 솔로몬 복호기에서의 에러 평가 다항식의 계수계산장치
KR100192788B1 (ko) 리드 솔로몬 복호기에서의 에러 평가 다항식의 계수계산장치
KR100212828B1 (ko) 리드 솔로몬 복호기의 신드롬 계산장치
KR19980015800A (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: 20130107

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20140106

Year of fee payment: 16

LAPS Lapse due to unpaid annual fee