KR100192802B1 - 리드 솔로몬 디코더의 에러값 계산 및 정정 장치 - Google Patents

리드 솔로몬 디코더의 에러값 계산 및 정정 장치 Download PDF

Info

Publication number
KR100192802B1
KR100192802B1 KR1019960060085A KR19960060085A KR100192802B1 KR 100192802 B1 KR100192802 B1 KR 100192802B1 KR 1019960060085 A KR1019960060085 A KR 1019960060085A KR 19960060085 A KR19960060085 A KR 19960060085A KR 100192802 B1 KR100192802 B1 KR 100192802B1
Authority
KR
South Korea
Prior art keywords
error
value
symbol
multiplier
rom
Prior art date
Application number
KR1019960060085A
Other languages
English (en)
Other versions
KR19980040847A (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 KR1019960060085A priority Critical patent/KR100192802B1/ko
Priority to GB9722792A priority patent/GB2318954B/en
Priority to DE1997147774 priority patent/DE19747774B4/de
Priority to IT002426 priority patent/IT1295890B1/it
Priority to CNB971259739A priority patent/CN1222169C/zh
Priority to US08/960,232 priority patent/US6031875A/en
Priority to JP29757897A priority patent/JP4012997B2/ja
Priority to FR9713577A priority patent/FR2756991B1/fr
Publication of KR19980040847A publication Critical patent/KR19980040847A/ko
Application granted granted Critical
Publication of KR100192802B1 publication Critical patent/KR100192802B1/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
    • 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/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6516Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields

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

본 발명은 리드 솔로몬 디코더에 관한 것으로, 특히 포니 알고리즘을 이용하여 에러값을 계산하는 회로를 간단한 논리 회로들로 구현한 에러값 계산 및 정정 장치에 관한 것으로서, 역수 룩업 테이블(30)과; 에러 평가값과 상기 역수 미분 평가값을 곱셈하는 제 1 갈로아체 곱셈기(31); αN-1을 저장하고 있는 제 1롬(32); α-1을 저장하고 있는 제 2 롬(33); 상기 α-1과 피드백 된 값을 곱셈하여 원소를 갱신하는 제 2 갈로아체 곱셈기(34); 상기 최고차 원시 원소 혹은 상기 갱신된 원시 원소를 선택하는 제 1 멀티플렉서(35); 원시 원소(αi)를 래치하여 출력함과 동시에, 상기 제 2갈로아체 곱셈기(34)로 피드백 입력하는 래지스터(36); 에러값(ei)을 계산하여 출력하는 제 3 갈로아체 곱셈기(37); 0x00을 저장하고 있는 제 3 롬(38); 0x00값 혹은 상기 에러값(ei)을 선택하는 제 2 멀티플렉서(39); 및 에러 복원 심볼(C_SYM)을 출력하는 갈로아체 덧셈기(40)를 포함하여 구성된 본 발명의 효과는, 에러값을 계산하는 데 필요한 모든 원시 원소값을 저장하기 위해 필요했던 메모리 대신, 수신 심볼(ri)에 대응하는 원시 원소(αi)를 순차적으로 발생시키는 간단한 논리회로를 구현하여 ASIC 설계시 면적과 비용면에서 이득을 얻는 효과가 있다.

Description

리드 솔로몬 디코더의 에러값 계산 및 정정 장치
본 발명은 에러 정정 부호화(error correcting coding : 이하 ECC라 칭함)되어 전송된 디지털 데이터를 에러 정정 복호화하는 리드 솔로몬 디코더에 관한 것으로, 특히 포니 알고리즘을 이용하여 에러값을 계산하는 회로를 간단한 논리 회로들로 구현한 에러값 계산 장치에 관한 것이다.
일반적으로, 디지털 데이터를 통신 채널을 통해 전송하거나 저장 매체에 저장 시에 발생되는 에러를 검출·정정하기 위해 검사 데이터를 부가하여 부호화하게 된다. 이것을 에러 정정 부호화(ECC)라 하며, 그 종류로는 정보 시퀀스를 몇개의 심볼로 이루어진 블록으로 구분한 다음 블록 단위로 부호화하는 블록 코드(block code)와, 정보 시퀀스의 입력순서에 따라 부호화하는 난블록 코드(nonblock code)로 나누어진다.
블록 코드의 대표적인 예로는 BCH 코드(Bose and Ray-Chaudhuri and Hocquenghem code)를 들수 있으며, 지금 까지 알려진 가장 유효한 랜덤 에러 정정 코드로서 간주된 BCH 최적 코드로서 리드 솔로몬 코드(Reed Solomon code)를 들 수 있다.
리드 솔로몬 코드는 K개의 정보 심볼 및 N-K(=2t)개의 검사 심볼로 구성된 코드로서, 여기서, N개의 심볼들은 갈로아체 필드(Galois field) GF(2m)라 불리는 유한계의 2m개 원소들이다.
여기서, 갈로아체 필드 GF(2m)는 2m개의 원소를 갖는 수체계(number system)로서, 이러한 수체계를 하드웨어로 구현하게 되면 각 원소들이 모두 m개의 바이너리 디지트(binary digit)로 표현될 수 있기 때문에 디지탈 구조에 효과적일 뿐만 아니라 오버 플로워도 발생하지 않는 장점을 가지고 있다.
리드 솔로몬 코드의 갈로아체 필드 상의 코드 발생 다항식 g(x)이 연속하는 2t 개의 근을 가진다면 t 개 까지의 에러를 정정할 수 있는 능력을 가진다. 그리고,코드 발생 다항식은 일반적으로 하기 수학식 1a 또는 수학식 1b 와 같이 나타낸다.
[수학식 1a]
[수학식 1b]
상기 수학식 1 에서, α는 갈로아체 필드 GF(2m)의 원소이며, 코드 발생다항식이 정해지면 피드백 시프트 레지스터를 이용하여 코드를 부호화하고, 그 부호어는 t개까지의 에러를 정정할수 있게 된다.
따라서, 리드 솔로몬 코드는 통신 및 컴퓨터 기억 시스템 등에 폭 넓게 사용될 뿐만 아니라 재밍(jamming)에 대항하기 위한 방법으로서 비밀 통신 시스템에서 사용되기도 한다.
상기와 같이 갈로아체 필드 GF(2m) 상의 코드를 가지는 리드 솔로몬 코드는 정보와 패리티(parity)가 섞이지 않는 계통적 코드(systematic code)와 정보와 패리티(parity)가 섞이는 비계통적 코드(nonsystematic code)로 분류된다.
상기 계통적 코드는 정보와 패리티가 섞이지 않도록 우선 정보를 상위 바이트로 이동시킨 다음 에러 정정용 코드를 구하여 더한 것으로, 수학식 2로부터 구해진다.
[수학식 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 와 같이 단순히 정보 i(x)에 코드 발생 다항식 g(x)을 곱해 주므로써 정보와 패리티가 섞여 코드화를 이룬다.
[수학식 4]
상기 수학식 4에서 c(x)는 N-1 차의 코드워드 다항식이고, i(x)는 K-1 차의 정보 다항식, g(x)는 N-K 차의 코드 발생 다항식이다.
상기 코드 발생 다항식 g(x)은 코드워드 다항식 c(x)를 만들어 내기 위해 정보 다 항식 i(x)에 곱해지는 것으로, 이러한 코드 발생 다항식 g(x)을 수학식 5 와 같이 연속적인 2t개의 근을 가지도록 정하면 t개의 에러를 정정할 수 있다.
[ 수학식 5]
상기와 같은 방법으로 리드 솔로몬 부호화된 디지털 데이터를 리드 솔로몬 복호화하는 방법은 크게 주파수 영역 복호화와 시간 영역 복호화로 나누어지며, 상기 시간 영역에서 리드 솔로몬 복호화하는 과정은 다음과 같이 크게 3 단계로 이루어진다.
(1) 신드롬 계산
수신 코드워드 다항식 r(x)는 수학식 6 과 같이 코드워드 다항식 c(x)과 전송 중에 발생된 에러 다항식 e(x)를 더한 값으로 표현될 수 있다.
[수학식 6]
따라서, 하기 수학식 7a 과 같이 수신 코드워드 다항식 r(x)에 코드 발생 다항식 g(x)의 근 α0∼α2t-1을 차례대로 대입함으로써 전송 중에 에러가 발생되었는지를 알 수 있는 것이다.
[수학식 7a]
또한, 상기 수학식 7a의 신드롬 계산식은 하기 수학식 7b와 같이 리커시브한 형태로 표현될 수 있다.
[수학식 7b]
상기 수학식 7에서 수신 코드워드 r(x)에 코드 발생 다항식 g(x)의 근 αi을 대입하여 구한 신드롬은, 에러가 발생되지 않았다면, 나머지가 남지 않게 되고, 에러가 발생되었다면, e(αi)값에서 나머지가 존재하게 된다.
즉, 신드롬을 이용하여 에러 위치 및 에러값을 구할 수 있게 되는 것이다.
(2) 에러 위치 다항식 계산(finding error location)
Berlekamp-Massey 알고리즘 또는 Euclid 알고리즘으로부터 에러 위치 다항식의 계수를 계산한다. 상기 알고리즘에 의해 구해진 에러 위치 다항식을 σ(X)라 하면 에러 정정 능력이 t인 리드 솔로몬 코드에서는 수학식 8 과 같이 최고 t차 이하의 다항식을 얻게 된다.
[수학식 8]
상기 수학식 8의 에러 위치 다항식의 최고차 는 에러가 발생한 심볼의 개수를 의미하는 것으로서, 만약 최고차가 5라면 5개의 심볼에서 에러가 발생했다는 것을 의미한다.
(3)에러값 계산 및 정정
(3-1) 에러 평가 다항식 Ω(X)의 계수를 하기 수학식 9a 를 이용하여 계산한다.
[수학식 9a]
상기 수학식 9a에 있어서, σ(X)는 에러 위치 다항식이고, S(X)는 신드롬 다항식이다.
상기 수학식 9a를 통해 구해진 계수를 갖는 에러 평가 다항식은 하기 수학식 9b와 같이 최고차 t차 이하의 다항식이 얻어진다.
[수학식 9b]
(3-2) 평가 진행(evaluation procedure)
GF(2m)의 원소를 α0, α1, …, α(N-1)을 에러 평가 다항식 Ω(X), 에러 위치 다항식 σ(X), 에러 위치 다항식을 미분한 에러 위치 미분 다항식 σ'(X)에 각각 대입하여 그 평가값을 구하며, 그 평가값들을 구하는 과정을 평가 진행 이라 한다.
(3-3) 상기 (3-2)과정에서 얻어진 평가값들을 이용하여 하기 수학식 10 과 같이 에러값 ei(x)을 계산한다.
[수학식 10]
상기 수학식 10은 포니 알고리듬(Forney algorithm)을 이용하여 얻어진 것이다.
(3-4) 에러 정정
상기와 같이 에러값 e(x)을 구한 다음 하기 수학식 11 을 이용하여 원래의 송신 코드워드 다항식 c(x)를 구하는 것이다.
[수학식 11]
갈로아체 특성상 같은 값을 더하면 e(x) + e(x) = 0 이 되는 것이다.
상기에 기술한 알고리즘에서 제 (3)단계 에러값 계산 및 정정과정은 결국 수학식 10과 같이 에러값을 구하여 수신 심볼에 에러값을 다시 더해주므로써 에러 정정된 원래 심볼을 복원하는 것이다.
상기 제 (3)단계를 수행하는 장치는 본 발명자에 의해 발명된 바 있으며, 대한 민국 특허 출원 제 96-26590호, 제 96-49689호, 제96-49691 호에 제시되어 있다.
본 발명자에 의해 제시된 일반적인 에러 정정부를 도 1에 도시하였다
도 1을 참조하면, 에러 정정부는 공통원소 저장부(10)와, 에러 평가 다항식 계산부(11), 에러 평가 다항식 평가부(12), 에러 위치 다항식 평가부(13), 에러값 계산 및 정정부(14), 및 복원 실패 판단부(15)로 구성되어 있다.
상기 공통원소 저장부(10)는 리드 솔로몬 코드의 최고차부터 평가 진행하기위한 갈로아체 필드 원소의 역수에 해당하는 초기근(α-N×i, 1≤i≤t)과 다음 심볼을 위해 차수를 갱신 하기위한 갈로아체 필드 원소에 해당하는 갱신근(αi, 1≤i≤t)을 저장하고 있으면서, 상기 에러 평가 다항식 Ω(X)과 에러 위치 다항식 σ(X)을 평가 진행하도록 근값을 제공하는 기능을 한다.
상기 에러 평가 다항식 계산부(11)는 신드롬(SYND), 및 에러 위치 다항식의 계수(σ_COEF)를 입력받아 두 값을 곱셈하여 에러 평가 다항식의 계수(Ω_COEF)를 출력한다.
상기 에러 평가 다항식 평가부(12)는 상기 에러 평가 다항식의 계수(Ω_COEF)를 입력받아 상기 공통원소 저장부(10)로부터 입력받은 초기근(α-N×i, 1≤i≤t)과 갈로아체 필드의 원소인 갱신근(αi, 1≤i≤t) 을 이용해서, 상기 에러 평가 다항식의 계수(Ω_COEF)를 입력받아서 에러 평가 다항식(Ω(X))을 평가한 에러 평가값 (Ω_VAL)을 출력한다.
상기 에러 위치 다항식 평가부(13)는 상기 에러 위치 다항식의 계수(σ_COEF)를 입력받아 상기 공통원소 저장부(10)로부터 입력받은 초기근(α-N×i, 1≤i≤t)과 갈로아체 필드의 원소인 갱신근(αi, 1≤i≤t)을 이용해서, 에러 위치 다항식 (σ(X))을 평가하여 에러 위치 신호(ERR_FLAG)를 출력함과 동시에, 에러 위치 다항식(σ(X))의 미분치인 미분 다항식(σ'(X))을 평가한 미분 평가값(σp_VAL)을 출력한다.
상기 에러값 계산 및 정정부(14)는 상기 미분 평가값(σp_VAL)과 에러 평가값 (Ω_VAL)을 입력받아 포니 알고리즘을 적용하여 에러값(ei)을 계산하여 출력함과 동시에, 에러 발생 신호(ERR_FLAG)에 따라 수신 심볼(R_SYM)에 상기 에러값(ei)을 더하여 에러 정정된 복원 심볼(C_SYM)을 출력한다.
상기 복원 실패 판단부(15)는 상기 에러 정정된 복원 심볼(C_SYM)이 정확한지 아닌지를 판단하여 복원 실패 신호(UNRCVR_FRAG)를 출력한다.
이어서, 도 2 는 에러값 계산 및 정정부(14)에 대한 실시 회로도로서, 에러값 계산 및 정정부(14)는 역수 룩업 테이블(20)과, 제 1 갈로아체 곱셈기(21), 원시 원소 룩업 테이블(22), 제 2 갈로아체 곱셈기(23),0x00이 저장된 롬(24), 멀티플렉서(25), 갈로아체 덧셈기(26)로 구성되어 있다.
상기 역수 룩업 테이블(20)은 상기 미분 평가값(σp_VAL=)을 입력받아 미분 평가값의 역수(1 over {σ'(α^-i )}
)를 로드하여 출력한다.
상기 제 1 갈로아체 곱셈기(21)는 에러 평가값 (Ω_VAL=)과 상기 역수 미분 평가값(1 over {σ'(α^-i )}
)을 곱셈 연산한다.
상기 원시 원소 룩업 테이블(22)은 심볼 넘버신호(NO_SYM)에 따라 심볼 차수에 해당하는 갈로아체 필드의 원시 원소(αi)를 출력한다.
상기 제 2 갈로아체 곱셈기(23)는 상기 제 1 갈로아체 곱셈기(21)의 출력값과 상기 원시 원소 룩업 테이블(22)로부터 제공된 갈로아체 필드 원시 원소(αi)를 입력받아 곱셈 연산하여 에러값(ei)을 계산한다.
상기 멀티플렉서(25)는 상기 에러 위치 신호(ERR_FLAG)에 따라 상기 롬(24)의 값 0x00 혹은 상기 제 2 갈로아체 곱셈기(23)의 에러값(ei)을 선택하여 출력한다.
상기 갈로아체 덧셈기(26)는 수신 심볼(R_SYM)과 상기 멀티플렉서(25)의 출력값을 갈로아체 덧셈 연산하여 에러 정정 심볼(C_SYM)을 출력한다.
즉, 상기와 같은 구성으로 상기 수학식 10과 같이 포니 알고리즘에 의해 에러값 ()을 구하고, 에러 위치 신호(ERR_FLAG)에 따라 에러가 발생된 수신 심볼에 상기 계산된 에러값을 더하므로써 에러 정정을 수행하는 것이다.
여기서, 메모리(롬)로 구현되는 상기 원시 원소 룩업 테이블(22)의 용량은, (N,K)리드 솔로몬 부호어의 전체 코드워드 길이(심볼 개수×심볼 비트수)만큼 필요하다. 예를 들어, DSS 스펙을 채택한 (146, 130)리드 솔로몬 부호는 146개 심볼(1심볼=8비트)이 하나의 코드 워드를 이루므로 원시 원소를 저장하기 위해 최소한 146바이트정도가 필요하다. 즉, 수신 심볼의 차수에 해당하는 에러값을 계산하기 위해서 모든 수신 심볼의 원시 원소를 메모리에 저장하고 있어야만 한다.
이와 같이, 종래의 장치는 주문형 반도체(ASIC : Application Specific Integrated Circuit)로 제작될 경우, 원시 원소 룩업 테이블(메모리)로 인한 상당량의 면적과 비용을 초래하는 문제점이 있었다.
이에, 본 발명은 상기와 같은 문제점을 해결하기 위해서 안출된 것으로, 롬을 사용한 룩업 테이블 대신 수신 심볼에 대응하는 원시 원소를 순차적으로 발생시키는 간단한 논리회로를 구현하여 면적 및 비용면에서 효율적인 리드 솔로몬 디코더의 에러값 계산 및 정정 장치를 제공하는 데 그 목적이 있다.
상기와 같은 목적을 달성하기 위하여 본 발명의 장치는, 미분 평가값(σp_VAL=)을 입력받아 미분 평가값의 역수()를 로드하여 출력하는 역수 룩업 테이블과; 에러 평가값 (Ω_VAL=)과 상기 역수 미분 평가값()을 곱셈 연산하는 제 1 갈로아체 곱셈기; 최고차 심볼부터 평가 하기 위하여 최고차 원시 원소 αN-1을 저장하고 있는 제 1 롬; 다음 수신 심볼을 위해 원시 원소 갱신을 위한 α-1을 저장하고 있는 제 2 롬; 상기 제 2롬의 α-1과 피드백 된 값을 입력 받아 갈로아체 곱셈하여 1차씩 낮은 차수의 원시 원소를 출력하는 제 2 갈로아체 곱셈기; 초기화 신호(INIT_FLAG)에 따라 상기 제 1 롬의 최고차 원시 원소(αN-1) 혹은 상기 제 1 갈로아체 곱셈기로부터 갱신된 원시 원소를 선택하여 출력하는 제 1 멀티플렉서; 상기 제 1 멀티플렉서로부터 출력된 원시 원소를 래치하여 출력함과 동시에, 상기 제 3 갈로아체 곱셈기로 피드백 입력하는 래지스터; 상기 래지스터로부터 출력된 원시 원소와 상기 제 1 갈로아체 곱셈기로부터 출력된 값을 입력 받아 갈로아체 곱셈하여 에러값(ei)을 출력하는 제 3 갈로아체 곱셈기; 0x00을 저장하고 있는 제 3 롬; 에러 발생 제어 신호(ERR_FLAG)에 따라 상기 제 3 롬값 또는 상기 제 3 갈로아체 곱셈기의 에러값 (ei)을 선택하여 출력하는 제 2 멀티플렉서; 및 수신 심볼(R_SYM)과 상기 제 2 멀티플렉서의 출력값을 갈로아체 덧셈 연산하여 에러 복원 심볼(C_SYM)을 출력하는 갈로아체 덧셈기를 포함하여 구성되는 것을 특징으로 한다.
도 1은 일반적인 리드 솔로몬 디코더에서 수신심볼에서 발생한 에러를 복원하는 에러 정정부에 대한 블럭도,
도 2는 도 1에서 에러값을 구하는 종래의 에러값 계산 및 정정부에 대한 실시 회로도,
도 3은 본 발명에 따른 에러값 계산 및 정정부에 대한 실시 회로도이다.
* 도면의 주요 부분에 대한 부호의 설명 *
30 : 역수 룩업 테이블 31 :제 1 갈로아체 곱셈기
32 : 제 1 롬 33 : 제 2 롬
34 : 제 2 갈로아체 곱셈기 35 : 제 1 멀티플렉서
36 : 레지스터 37 : 제 3 갈로아체 곱셈기
38 : 제 3 롬 39 : 제 2 멀티플렉서
40 : 갈로아체 덧셈기
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명하기로 한다.
도 3은 본 발명에 따른 에러값 계산 및 정정 장치에 대한 실시 회로도로서, (N, k)리드 솔로몬 코드를 복호화하는 리드 솔로몬 디코더의 일부 장치이다.
본 발명은 역수 룩업 테이블(30)과, 제 1 갈로아체 곱셈기(31), 제 1롬(32), 제 2롬(33), 제 2 갈로아체 곱셈기(34), 제 1 멀티플렉서(35), D플립플롭(36), 제 3 갈로아체 곱셈기(37), 제 3 롬(38), 제 2 멀티플렉서(39), 및 갈로아체 덧셈기(40)로 구성되어 있다.
상기 역수 룩업 테이블(30)은 미분 평가값(σp_VAL=)을 입력받아 미분 평가값의 역수()를 로드하여 출력한다.
상기 제 1 갈로아체 곱셈기(31)는 에러 평가값 (Ω_VAL=)과 상기 역수 미분 평가값()을 곱셈 연산한다.
상기 제 1롬(32)은 리드 솔로몬 코드의 최고차 원시 원소 αN-1을 저장하고 있으며, 상기 제 2 롬(33)은 원시 원소를 1차씩 감소하기 위해 α-1을 저장하고 있다.
상기 제 2 갈로아체 곱셈기(34)는 상기 제 2롬(33)의 α-1과 피드백 된 값을 입력 받아 갈로아체 곱셈하여 1차씩 낮은 차수의 원시 원소를 출력한다.
상기 제 1 멀티플렉서(35)는 초기화 신호(INIT_FLAG)에 따라 상기 제 1 롬(32)의 최고차 원시 원소 혹은 상기 제 2 갈로아체 곱셈기(34)로부터 계산된 원시 원소를 선택하여 출력한다.
상기 래지스터(36)는 상기 제 1 멀티플렉서(35)로부터 출력된 원시 원소(αi)를 래치하여 출력함과 동시에, 상기 제 2 갈로아체 곱셈기(34)로 피드백 입력한다.
상기 제 3 갈로아체 곱셈기(37)는 상기 래지스터(36)로부터 출력된 원시 원소(αi)와 상기 제 1 갈로아체 곱셈기(31)로부터 출력된 값을 입력 받아 갈로아체 곱셈하여 에러값(ei)을 출력한다.
상기 제 3 롬(38)은 0x00을 저장하고 있으며, 상기 제 2 멀티플렉서(39)는 에러 발생 제어 신호(ERR_FLAG)에 따라 상기 제 3 롬값 혹은 상기 제 3 갈로아체 곱셈기의 에러값(ei)을 선택하여 출력한다.
상기 갈로아체 덧셈기(40)는 수신 심볼(R_SYM)과 상기 제 2 멀티플렉서(39)의 출력값을 갈로아체 덧셈 연산하여 에러 복원 심볼(C_SYM)을 출력한다.
이어서, 상기와 같이 구성된 본발명의 작용 및 효과를 자세히 설명하기로 한다.
우선, 전체 리드 솔로몬 코드가 에러 정정 되는 과정은 다음과 같다.
갈로아체 필드(GF2m)상에서 t개의 에러정정 능력을 갖는 (N, K(=N-2t))리드 솔로몬 코드의 수신 심볼 다항식은으로 0차 심볼()부터 최고차 N-1차 심볼()까지 에러 발생을 검출하기 위해 에러 평가를 실시하고, 발생된 에러를 정정해 주기 위해 에러값을 구해야 한다.
여기서, 에러 평가 진행은 에러 평가 다항식()과, 에러 위치 다항식 (), 및 에러 위치 미분 다항식()을 구하고(각 다항식의 계수결정), 각 다항식의 X대신 갈로아체 필드 원소의 역수()를 대입하여 평가값을 구하는 것이다.
한편, 대부분의 리드 솔로몬 디코더는 수신 심볼의 최고차 심볼()부터 수신받아 심볼 단위로 에러 평가가 진행되고, 에러값이 계산된다.
따라서, 평가 진행시 최고차 심볼에 해당하는 에러값을 구하기 위해 각 다항식의 X 대신α-(N-1)부터 대입하여 1차씩 높여가면서 평가값을 구하고, 상기 평가값을 이용하여 에러값을 계산한후, 에러가 발생한 심볼에 상기 에러값()을 다시 더해주면, 원래 심볼로 복원할수 있는 것이다.
이어서, 도 3을 참조하여 에러값을 구하고, 에러 정정을 수행하는 과정을 자세히 설명하기로 한다.
본 발명에 이용되는 제어 신호를 설명하면, 심볼 인에이블 신호(SCLK_ENA)는 유효한 심볼이 입력되고 있음을 알리는 제어 신호로서, 매 심볼 클럭마다 주기적으로 발생한다.
초기화 신호(INIT_FLAG)는 원시 원소(α-i)를 선택하기 위한 제어 신호로서, 수신 코드워드의 최고차 심볼에 대한 평가 진행이 시작되기 이전 심볼 클럭에서 주기적으로 발생한다.
RS 클럭(RS_CLK)은 단위 심볼이 입력되는 심볼 클럭 기간을 t(에러 정정 가능한 심볼 수)분주하여 주기적으로 발생하는 클럭 신호이다.
상기 제 1 멀티플렉서(35)에서는 초기화 신호(INIT_FLAG)에 따라 상기 제 1 롬(32)의 최고차 심볼을 위한 원시 원소 αN-1을 선택하여 출력하고, 상기 래지스터(36)는 심볼 인에이블 신호(SCLK_ENA)에 의해 인에이블 되고, RS클럭(RS_CLK)에 동기되어 상기 원시 원소 αN-1를 입력받는다.
한편, 상기 역수 룩업 테이블(30)에는 미리 정해진 미분 평가값에 대한 역수값들이 저장되어 있으면서, 상기 도 1의 에러 위치 다항식 평가부(13)로부터 제공되는 미분 평가값(σp_VAL=) 을 입력받아 해당하는 역수값()을 상기 제 1 갈로아체 곱셈기(31)로 출력한다.
상기 제 1 갈로아체 곱셈기(31)는 상기 역수 룩업 테이블(30)로부터 미분 평가 역수값()을 입력받고, 상기 도 1의 에러 평가 다항식 평가부(12)로부터 제공되는 에러 평가값(σ_VAL=)을 입력받아 갈로아체 곱셈연산한 값()을 출력한다.
상기 제 2 갈로아체 곱셈기(37)에서는 상기 제 1 갈로아체 곱셈기(31)의 출력값과 상기 D플립플롭(36)의 출력된 원시 원소값()을 갈로아체 곱셈하여 에러값()을 출력한다. 이렇게하여, 최고차 심볼()에 대한 에러값()이 계산되어진다.
이제, 다음 N-2차 수신 심볼()에 대한 에러값 계산 과정을 설명하면 다음과 같다.
상기 제 3 갈로아체 곱셈기(34)에서는 상기 래지스터(36)로부터 출력된 최고차 원시 원소 αN-1를 입력받고, 상기 제 2 롬의 α-1을 입력받아 갈로아체 곱셈하여 원시 원소 αN-2를 출력한다.
상기 제 1 멀티플렉서(35)에서는 초기화 신호(INIT_FLAG)에 따라 상기 제 3 갈로아체 곱셈기(34)의 출력값 αN-2을 선택하여 출력한다.
한편, 상기 역수 룩업 테이블(30)에서는, 상기 도 1의 에러 위치 다항식 평가부(13)로부터 제공되는 미분 평가값(σp_VAL=) 을 입력받아 해당하는 역수값()을 상기 제 1 갈로아체 곱셈기(31)로 출력한다.
상기 제 1 갈로아체 곱셈기(31)는 상기 역수 룩업 테이블(30)로부터 미분 평가 역수값()을 입력받고, 상기 도 1의 에러 평가 다항식 평가부(12)로부터 제공되는 에러 평가값(σ_VAL=)을 입력받아 갈로아체 곱셈연산한 값()을 출력한다.
상기 제 2 갈로아체 곱셈기(37)에서는 상기 제 1 갈로아체 곱셈기(31)의 출력값과 상기 래지스터(36)에서 출력된 원시 원소값()을 갈로아체 곱셈하여 에러값()을 출력한다. 이렇게하여, N-2차 수신 심볼()에 대한 에러값()이 계산되어진다.
계속해서, 상기와 같은 동작이 반복되면서 상기 제 3 갈로아체 곱셈기(34)를 통해 원시 원소값이 1차씩 감소되어 해당 수신 심볼의 에러값이 구해지는 것이다.
그리고, 제 2 갈로아체 곱셈기(37)로부터 최종 출력되는 에러값(ei)을 상기 제 2 멀티플렉서(39)로 입력되고, 상기 제 2 멀티플렉서(39)는 도 1의 에러 위치 다항식 평가부(13)로부터 제공되는 에러 발생 신호(ERR_FLAG)에 따라 상기 에러값(ei) 혹은 제 3 롬(38)의 0x00값을 선택하여 출력한다. 여기서, 상기 에러 발생 신호(ERR_FLAG)는 에러 평가 과정에서 심볼에 에러가 발생했는지를 판단하여 에러가 발생했음을 알려주는 신호이다.
상기 갈로아체 덧셈기(40)에서는 수신 심볼(R_SYM)을 입력받고 상기 제 2 멀티플렉서(39)의 출력값을 입력받아 갈로아체 덧셈연산하여 최종적인 복원심볼(C_SYM)을 출력하는 것이다.
이상에서 살펴본 바와 같이, 에러값을 계산하는 데 필요한 모든 원시 원소값을 저장하기 위해 필요했던 메모리 대신, 수신 심볼(ri)에 대응하는 원시 원소(αi)를 순차적으로 발생시키는 간단한 논리회로(레지스터, 멀티플렉서, 갈로아체 곱셈기, 갈로아체 덧셈기)를 구현하여 ASIC 설계시 면적과 비용면에서 이득을 얻는 효과가 있다.

Claims (6)

  1. 갈로아체 필드(GF2m)상에서 t개의 에러정정 능력을 갖는 (N, K(=N-2t))리드 솔로몬 코드의 수신 심볼으로 0차 심볼()부터 최고차 N-1차 심볼()까지 에러 발생을 검출하기 위해 에러 평가를 실시하고, 발생된 에러를 정정해 주기 위해 에러값을 구하는 에러 정정 장치에 있어서,
    미분 평가값(σp_VAL=)을 입력받아 미분 평가값의 역수()를 로드하여 출력하는 역수 룩업 테이블(30)과;
    에러 평가값 (Ω_VAL=)과 상기 역수 미분 평가값()을 곱셈 연산하는 제 1 갈로아체 곱셈기(31);
    리드 솔로몬 코드의 최고차 심볼부터 계산하기 위한 원시 원소 αN-1을 저장하고 있는 제 1롬(32);
    원시 원소를 갱신하기 위한 α-1을 저장하고 있는 제 2 롬(33);
    상기 제 2롬(33)의 α-1과 피드백 된 값을 입력 받아 갈로아체 곱셈하여 1차씩 낮은 차수의 원시 원소를 출력하는 제 2 갈로아체 곱셈기(34);
    초기화 신호(INIT_FLAG)에 따라 상기 제 1 롬(32)의 최고차 원시 원소 혹은 상기 제 2 갈로아체 곱셈기(34)로부터 갱신된 원시 원소를 선택하여 출력하는 제 1 멀티플렉서(35);
    상기 제 1 멀티플렉서(35)로부터 출력된 원시 원소(αi)를 래치하여 출력함과 동시에, 상기 제 2 갈로아체 곱셈기(34)로 피드백 입력하는 래지스터(36);
    상기 래지스터(36)으로부터 출력된 원시 원소(αi)와 상기 제 1 갈로아체 곱셈기(31)로부터 출력된 값을 입력받아 갈로아체 곱셈하여 에러값(ei)을 출력하는 제 3 갈로아체 곱셈기(37);
    0x00을 저장하고 있는 제 3 롬(38);
    에러 발생 제어 신호(ERR_FLAG)에 따라 상기 제 3 롬의 0x00값 또는 상기 제 3 갈로아체 곱셈기의 에러값(ei)을 선택하여 출력하는 제 2 멀티플렉서(39); 및
    수신 심볼(R_SYM)과 상기 제 2 멀티플렉서(39)의 출력값을 갈로아체 덧셈 연산하여 에러 복원 심볼(C_SYM)을 출력하는 갈로아체 덧셈기(40)를 포함하여 구성되는 것을 특징으로 하는 리드 솔로몬 디코더의 에러값 계산 및 정정 장치.
  2. 제 1 항에 있어서, 상기 제 1 멀티플렉서(35)의 상기 초기화 신호(INIT_FLAG)는 원시 원소(α-i)를 선택하기 위한 선택 신호로서, 수신 코드워드의 최고차 심볼에 대한 평가 진행이 시작되기 이전 심볼 클럭동안에 상기 제 1 롬(32)의 최고차 원소가 선택되고, 다음 심볼 클럭동안에 상기 제 2 갈로아체 곱셈기(34)로부터 갱신된 원시 원소를 선택하도록 발생되는 것을 특징으로 하는 리드 솔로몬 디코더의 에러값 계산 및 정정 장치.
  3. 제 1 항에 있어서, 상기 래지스터(36)는 심볼 인에이블 신호(SCLK_ENA)에 의해 인에이블 상태가 되고, RS 클럭(RS_CLK)에 동기 되어 동작하는 것을 특징으로 하는 리드 솔로몬 디코더의 에러값 계산 및 정정 장치.
  4. 제 3 항에 있어서, 상기 심볼 인에이블 신호(SCLK_ENA)는 유효한 심볼이 입력되고 있음을 알리는 제어 신호로서, 매 심볼 클럭마다 주기적으로 발생하는 것을 특징으로 하는 리드 솔로몬 디코더의 에러값 계산 및 정정 장치.
  5. 제 3 항에 있어서, 상기 RS 클럭(RS_CLK)은 단위 심볼이 입력되는 심볼 클럭 기간을 t(에러 정정 가능한 심볼 수)분주한 주기적으로 발생하는 클럭 신호인 것을 특징으로 하는 리드 솔로몬 디코더의 에러값 계산 및 정정 장치.
  6. 상기 제 1 항에 있어서, 상기 미분 평가값(σp_VAL=)과, 상기 에러 평가값 (Ω_VAL=), 및 에러 발생 신호(ERR_FLAG)를 심볼 단위로 평가하여 제공하는 평가 장치들이 포함되어 하나의 반도체 칩으로 제작된 리드 솔로몬 디코더의 에러값 계산 및 정정 장치.
KR1019960060085A 1996-10-29 1996-11-29 리드 솔로몬 디코더의 에러값 계산 및 정정 장치 KR100192802B1 (ko)

Priority Applications (8)

Application Number Priority Date Filing Date Title
KR1019960060085A KR100192802B1 (ko) 1996-11-29 1996-11-29 리드 솔로몬 디코더의 에러값 계산 및 정정 장치
GB9722792A GB2318954B (en) 1996-10-29 1997-10-28 Reed-solomon decoder for use in advanced television
DE1997147774 DE19747774B4 (de) 1996-10-29 1997-10-29 Reed-Solomon-Decoder zur Verwendung beim verbesserten Fernsehen (ATV)
IT002426 IT1295890B1 (it) 1996-10-29 1997-10-29 Decodificatore di reed-solomon per uso nella televisione avanzata
CNB971259739A CN1222169C (zh) 1996-10-29 1997-10-29 在高级电视中使用的里德-所罗门解码器
US08/960,232 US6031875A (en) 1996-10-29 1997-10-29 Reed-Solomon decoder for use in advanced television
JP29757897A JP4012997B2 (ja) 1996-10-29 1997-10-29 高画質テレビにおけるリードソロモンデコーダ
FR9713577A FR2756991B1 (fr) 1996-10-29 1997-10-29 Decodeur reed - solomon destine a etre utilise en television avancee

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960060085A KR100192802B1 (ko) 1996-11-29 1996-11-29 리드 솔로몬 디코더의 에러값 계산 및 정정 장치

Publications (2)

Publication Number Publication Date
KR19980040847A KR19980040847A (ko) 1998-08-17
KR100192802B1 true KR100192802B1 (ko) 1999-06-15

Family

ID=19484833

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960060085A KR100192802B1 (ko) 1996-10-29 1996-11-29 리드 솔로몬 디코더의 에러값 계산 및 정정 장치

Country Status (1)

Country Link
KR (1) KR100192802B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100543041B1 (ko) * 1999-01-15 2006-01-20 삼성전자주식회사 프리멀티플리케이션 기능을 가진 알에스 디코더
KR100407131B1 (ko) * 1999-02-04 2003-11-28 엘지전자 주식회사 조합회로를 이용한 리드-솔로몬 디코더

Also Published As

Publication number Publication date
KR19980040847A (ko) 1998-08-17

Similar Documents

Publication Publication Date Title
US6374383B1 (en) Determining error locations using error correction codes
US6615387B1 (en) Method and apparatus for error detection
US5099482A (en) Apparatus for detecting uncorrectable error patterns when using Euclid's algorithm to decode Reed-Solomon (BCH) codes
KR100594241B1 (ko) 순방향 치엔 서치 방식의 리드 솔로몬 디코더 회로
US8694872B2 (en) Extended bidirectional hamming code for double-error correction and triple-error detection
US5805617A (en) Apparatus for computing error correction syndromes
JP3875274B2 (ja) 短縮ファイア符号エラートラッピング復号方法および装置
JP3305525B2 (ja) 復号器、誤りロケータシーケンス生成器および復号方法
KR100192795B1 (ko) 리드 솔로몬 복호기의 에러 위치 다항식 계산 장치
US6263471B1 (en) Method and apparatus for decoding an error correction code
KR19990087035A (ko) 향상된다중버스트정정시스템
US20150007000A1 (en) Additional Error Correction Apparatus and Method
KR100192804B1 (ko) 리드 솔로몬 복호화기에서의 다항식 평가 장치
KR100192802B1 (ko) 리드 솔로몬 디코더의 에러값 계산 및 정정 장치
KR100195739B1 (ko) 리드솔로몬 복호기의 에러 위치 다항식 평가 장치
EP0793352B1 (en) Apparatus for determining the error evaluator polynomial for use in a Reed-Solomon decoder
KR100195749B1 (ko) 리드 솔로몬 복호기
KR100215570B1 (ko) 고화질 텔레비젼용 리드 솔로몬 디코더
KR100192800B1 (ko) 리드 솔로몬 디코더의 다항식 평가 시스템 및 그 방법
KR100212830B1 (ko) 리드 솔로몬 복호기의 신드롬 계산장치
KR19980015800A (ko) 리드 솔로몬 복호기의 비트 에러율 측정 장치
KR100202949B1 (ko) 리드 솔로몬 디코더의 에러 정정 시스템
WO2009069087A1 (en) Apparatus and method for decoding concatenated error correction codes
KR100192801B1 (ko) 리드 솔로몬 디코더의 비트 에러율 측정 회로
KR100212825B1 (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