KR0135824B1 - 오류 위치 및 추정 다항식 계산방법 및 이를 이용한 리드-솔로몬 복호기 - Google Patents

오류 위치 및 추정 다항식 계산방법 및 이를 이용한 리드-솔로몬 복호기

Info

Publication number
KR0135824B1
KR0135824B1 KR1019940029418A KR19940029418A KR0135824B1 KR 0135824 B1 KR0135824 B1 KR 0135824B1 KR 1019940029418 A KR1019940029418 A KR 1019940029418A KR 19940029418 A KR19940029418 A KR 19940029418A KR 0135824 B1 KR0135824 B1 KR 0135824B1
Authority
KR
South Korea
Prior art keywords
error
polynomial
value
control signal
error position
Prior art date
Application number
KR1019940029418A
Other languages
English (en)
Other versions
KR960020022A (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 KR1019940029418A priority Critical patent/KR0135824B1/ko
Priority to US08/552,551 priority patent/US5805616A/en
Publication of KR960020022A publication Critical patent/KR960020022A/ko
Application granted granted Critical
Publication of KR0135824B1 publication Critical patent/KR0135824B1/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
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/373Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-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클럭주기 마다 하나씩 순차적으로 발생되는 제1내지 제6제어신호에 의하여 신드롬값으로부터 오류 위치 및 오류 추정 다항식을 계산하는 오류 위치 및 오류 추정 다항식 계산 방법에 있어서, 제1단계 내지 제5단계를 포함한다. 제1단계는 제1제어신호에 의하여 오류 위치 다항식 계산사이클을 리세트하는 단계이다. 제2단계는 제2 내지 제4제어신호에 의하여 불합도값, 오류 위치 다항식의 계수값 및 교정항 계산을 오류 정정 능력의 두 배의 클럭 주기 동안 반복적으로 수행하여 오류 위치 다항식을 계한하는 단계이다, 제3단계는 제1제어신호에 의하여 오류 추정 다항식 계산 사이클을 리세트하는 단계이다. 제4단계는 제2제어신호에 의하여 오류 정정 능력의 두 배의 클럭주기 동안 반복적으로 수행하여 오류 추정 다항식의 계수값을 계산하는 단계이다. 제5단계는 제5 및 제6제어신호에 의하여 단축된 부호의 크기와, 오류 위치 다항식의 계수값 및 상기 오류 위치 다항식의 미분 다항식 계수값을 각각 승산하는 단계이다. 여기에서 제2단계, 제4단계 및 제5단계를 수행하는데 필요한 승산을 동일한 승산기에서 행하는 것을 특징으로 한다, 따라서, 회로 구성이 간단해지고, 집적화시에 칩면적이 감소될 수 있다.

Description

오류 위치 및 추정 다항식 계산방법 및 이를 이용한 리드-솔로몬 복호기
제1도는 종래의 리드-솔로몬 복호기의 블럭도이다.
제2도는 종래의 BMA(Berlekamp-Messay Algorithm)의 흐름도이다.
제3도는 본 발명의 리드-솔로몬 복호기의 블럭도이다.
제4도는 본 발명의 리드-솔로몬 복호기의 신드롬 계산회로의 블럭도이다.
제5도는 본 발명의 리드-솔로몬 복호기의 오류 위치 및 추정 다항식 계산회로의 블럭도이다.
제6도는 제5도에 나타낸 블럭도의 동작 타이밍도이다.
제7도는 제5도에 나타낸 곱셈기의 블럭도이다.
제8도는 본 발명의 리드-솔로몬 복호기의 오류 위치 다항식의 근 계산회로의 블럭도이다.
제9도는 본 발명의 리드-솔로몬 복호기의 오류 위치 다항식의 오류치 계산회로의 블럭도이다.
본 발명은 리드-솔로몬 복호기(Reed Solomon decoder)에 관한 것으로 특히 오류 위치 및 추정 다항식을 계산하는데 필요한 승산기를 공유함으로써 집적화시에 칩면적을 줄일수 있도록 한 오류 위치 및 추정 다항식 계산 방법 및 이를 이용한 리드-솔로몬 복호기에 관한 것이다.
통신계에서 피할 수 없는 문제의 하나는 전송로상의 잡음으로 인한 오류의 발생인데, 오류정정을 효과적으로 수행하기 위하여 등장한 부호들중 리드-솔로몬 복호기에 적용되는 연집오류(burst error)를 정정하는데 가장 우수한 것으로 알려져 있다.
리드-솔로몬의 복호 순서는 다음과 같다.
첫째, 수신계열(Received Sequences)로 부터 신드롬(Syndrome)을 계산한다.
둘째, 신드롬으로부터 오류 위치 다항식(ELP ; Error Locator Polynomial)을 계산한다.
세째, 신드롬과 오류 위치 다항식으로 부터 오류 추정 다항식(EEP ; Error Evaluator Polynomial)을 계산한다.
네째, 오류 위치 다항식으로부터 오류 위치를 결정한다.
다섯째, 오류 위치 다항식과 오류 추정 다항식으로부터 오류치를 계산한다.
여섯째, 오류위치와 오류치로부터 오류패턴을 계산한다.
오류 위치 다항식과 오류 추정 다항식은 복호기의 성능 및 복잡도를 좌우하는 가장 중요한 부분으로서 BMA(Berlekamp-Massey Algorithm), EA(Euclidean Algorithm)등을 이용하여 구할 수 있다.
RS부호의 매개변수는 아래의 식(1)과 같이 표현된다.
- 부호길이 : n=q-1, q=2m
- 메세지길이 : k=n-2t
- 오류 정정 능력 : t=(n-k)/2
- 최소거리 : dmin=2t+1 ............. (1)
여기서, m은 갈로이스 필드(Galois Field)의 범위를 나타내는 것으로, m=8이면, 갈로이스 필드의 범위는 28(=256)이다. 이때, q는 m에 의해 결정되어지는 다른 변수값을 나타낸다.
α를 유한체(finite field) GF(2m)에서의 원시원(primitive element)이라 하면 t중 오류 정정(n, k, t) RS부호의 생성 다항식(generator polynimial)은 아래의 식(2)와 같이 표현된다.
여기에서, 계수 gi(0≤i ≤2t)는 GF(2m)의 원소이며, 상기 식(2)와 같은 생성다항식에 의해 생성되는 RS부호의 부호어는 정보다항식(d(x))을 생성다항식으로 나누었을 때 그 나머지를 패리티 검사다항식(parity check polynomial)으로 만들면 얻어질 수 있다. 이 과정을 수식으로 표현하면 아래의 식(3)과 같다.
xn-kd(x) = q(x)g(x)+γ(x) .............. (3)
제1도는 종래의 리드-솔로몬 복호기의 전체적인 블럭도이다.
제1도에 있어서, 리드-솔로몬 복호기는 신드롬 계산회로(10), 오류 위치 다항식 계산회로(12), 오류 추정 다항식 계산회로(14), 체인 서치 회로(chein's searching circuit : 16), 오류값 계산회로(18), 게이트(20), 버퍼 레지스터(22), 및 오류 정정회로(24)로 구성되어 있다.
부호기의 출력, 전송로상의 잡음 및 수신 벡터를 각각 c(x), n(x), r(x)라 하면 이들의 관계식은 아래의 식(4)와 같이 표현될 수 있다. 여기에서, e(x)는 채널상에서 발생한 오류 다항식이고, Tixi는 오류의 크기와 위치를 모르는 에러(error)이고, Fjxj는 오류의 크기만 모르는 에러, 즉 소거(ereasure)를 나타낸다.
복호의 첫단계는 수신 계열(r(x))로 부터 신드롬 다항식(s(x))를 계산하는 것인데, 신드롬값으로부터 수신 계열에 오류가 포함되어 있는지를 알 수 있다. 즉, 신드롬값이 영이면 수신계열에는 오류가 포함되어 있는 않는 것이고, 영이 아니면 수신계열에는 오류가 포함되어 있는 것이다, t중 오류정정 리드-솔로몬 부호를 복호화하는데 있어서 신드롬은 수신계열(r(x))에 GF(2m)의 원소인 αi(1≤i ≤2t)를 대입하면 구할수 있다. 이것을 식으로 표현하면 아래의 식(5)과 같다.
si=r(αi)(1≤i≤2t) ............... (5)
신드롬에 의해 검출되는 오류를 정정하기 위해서는 오류의 위치 및 크기를 알아내는 것이 가장 중요하다. 오류의 위치 및 크기를 알아내기 위해서는 오류 위치 다항식과 오류 추정 다항식이 필요하다. ρ개의 소거와 υ개의 에러( 1≤ρ/2+υ≤t)가 발생했을 때 소거 위치 다항식, 에러 위치 다항식, 및 오류 위치 다항식은 식(6)과 같다.
상기 식에서, σF(x)는 소거 위치 다항식, σT(x)는 에러 위치 다항식, σ(x)는 오류 위치 다항식을 각각 나타낸다.
제2도는 오류 위치 다항식을 구하기 위해 사용되는 BMA의 순서도이다.
BMA는 오류 위치 다항식 σ(x)의 최소해를 구하는 문제는 반복과정을 수행하는 것으로 반복되는 각 단계마다 이 알고리즘은 뉴톤(Newton)의 항등식을 만족하는 계수를 갖는 최소해와 불합도(discrepancy)와 연관된 교정항(correction term)을 가져야 한다.
제2도에 나타낸 알고리즘을 살펴보면 다음과 같다.
n=0일때 b0=1, σ0=1, s0=0, n0=0, 10 (1)=0, 10 (2)=0으로 초기화한다. (제30단계)
n을 1증가시킨다. (제32단계)
n이 ρ보다 큰지를 판단한다. (제34단계)
만일, n이 ρ(ρ는 소거(erasure)의 수)보다 작거나 같다면,
(x))(n+1)=(σ(x))(n)ρ×(σ(x))(n), (b(x))(n+1)= (σ(x))(n+1),
(1(n+1))(1)= (1(n))(1)+1, (1(n+1))(2)= 1n (2)+1으로 만든다. (제36단계)
n이 ρ보다 크다면, n이 2t(t는 오류정정 능력을 말한다.)인지를 판단한다. (제38단계)
만일, n이 2t라면, σ(x)는 오츄 위치 다항식이 된다. (제40단계)
만일, n이 2t가 아니라면, s를 오른쪽으로 쉬프트하고, 다음의 식에 따른 계산을 수행한다. (제42단계)
불합도(dn)가 0인지를 판단한다. (제44단계)
만일, 불합도(dn)가 0이라면, (b(x))(n+1)= x(b(x))(n),
(1(n+1))(2)= (1n)(2)+1의 계산을 수행한다. (제52단계)
만일, 불합도(dn)가 0이 아니라면, 1n (1)1n (2)인지를 판단한다. (제46단계)
만일, 제46단계의 조건을 만족하지 않으면, (σ(x))(n+1), (b(x))(n+1), (1(n+1))(1), (1(n+1))(2)의 값을 구한다. (제48단계)
만일, 제46단계의 조건을 만족하면, 아래의 식에 따른 계산을 수행하고, 제52단계로 진행한다. (제50단계)
상기 제52단계 수행 후에는 상기 제32단계로 진행하여 동작을 수행하게 된다.
이와같은 동작을 수행하여 오류 위치 다항식을 구하게 된다.
오류 추정 다항식은 신드롬값과 오류 위치 다항식의 계수값을 이용하여 계산될 수 있는데, 계산방법은 식(7)과 같다.
Z(x) = 1 + (s11)x + (s21s12)x2+ .......... +
(sρ+μ1sρ+μ-12sρ+μ-2+ ......... + σρ+μ)xρ+μ............... (7)
위와같은 방법으로 계산되어진 오류 추정 다항식은 오류의 크기를 계산하는데 이용된다.
리드-솔로몬 부호에서는 수신계열에 발생한 오류의 위치를 알아내기 위해서 오류 위치 다항식의 근을 계산하게 되는데, 그 이유는 오류 위치 다항식의 근의 역수값이 오류가 일어난 위치를 나타내기 때문이다.
오류 위치 다항식의 근을 계산하는 방법으로는 체인(Chien)의 탐지법이 널리 사용된다. 체인의 탐지법은 오류 위치 다항식 σ(x)에 GF(2m)의 원소인 αi(1 ≤i ≤ n)를 대입하여 얻어진 σ(αi)의 값으로부터 수신 계열 r(x)에 발생한 오류의 위치를 알아내는 방법이다. 즉, σ(αi) 의 값이 영이면 수신 계열 rn-1에는 오류가 포함되어 있고, 그러지 않으면 오류가 포함되어 있지 않은 것이다.
리드-솔로몬 부호에서는 수신 계열의 심볼값이 GF(2m) 에 있는 비이원값이기 때문에 반드시 오류가 일어난 위치에서의 오류치를 계산해 주어야만 한다. 오류치는 앞에서 구한 오츄 추정 다항식의 계수와 오류위치 다항식의 근으로 부터 아래의 식(8)과 같이 계산된다.
복호의 마지막 단계는 수신계열에 발생한 오류를 정정하는 것인데, 오류의 정정은 오류치 계산이 끝날때까지 대기하고 있던 수신 계열 r(x)와 오류패턴 e(x)의 모듈로-2가산에 의해서 수행된다. 이것을 수식으로 표현하면 아래의 식(9)와 같다.
c(x)=r(x)+e(x) ........................ (9)
제1도에 도시된 리드-솔로본 복호기를 설계하는데 있어서, 하드웨어의 많은 부분이 오류 위치 다항식 계산회로(12), 오류 추정 다항식 계산회로(14), 체인 서치회로(16) 및 오류값 계산회로(18)를 구성하는데 소요된다, 그런데, 상기 각각의 블록들을 구성하는데는 많은 개수의 승산기가 필요하므로 전체 회로 설계시 하드웨어의 크기가 커져 칩면적을 많이 차지하는 단점이 있다.
본 발명의 목적은 상기의 문제점을 해결하기 위해, 오류위치 다항식 계산회로와 오류추정 다항식 계산회로에서 사용되는 승산기를 공유하도록 하는 오류 위치 및 추정 다항식 계산방법을 제공하는데 있다.
본 발명의 다른 목적은 오류 위치 및 추정 다항식 계산 방법을 이용한 리드-솔로몬 복호기를 제공하는데 있다.
이와같은 목적을 달성하기 위한 본 발명의 오류 위치 및 추정 다항식 계산방법은, 제어신호 발생회로에서 1클럭 주기 마다 하나식 순차적으로 발생되는 제1내지 제6제어신호에 의하여 신드롬값으로부터 오류 위치 및 오류 추정 다항식을 계산하는 오류 위치 및 오류 추정 다항식 계산 방법에 있어서, 상기 제1제어신호에 의하여 오류 위치 다항식 계산 사이클을 리세트하는 제1단계, 상기 제2 내지 제4제어신호에 의하여 불합도값, 오류 위치 다항식의 계수값 및 교정항 계산을 오류 정정 능력의 두 배의 클럭 주기 동안 반복적으로 수행하여 오류 위치 다항식을 계산하는 제2단계, 상기 제1제어신호에 의하여 오류 추정 다항식 계산 사이클을 리세트하는 제3단계, 상기 제2제어신호에 의하여 오류 정정 능력의 두 배의 클럭주기 동안 반복적으로 수행하여 오류 추정 다항식의 계수값을 계산하는 제4단계, 상기 제5 및 제6제어신호에 의하여 단축된 부호의 크기와, 오류 위치 다항식의 계수값 및 상기 오류 위치 다항식의 미분 다항식 계수값을 각각 승산하는 제5단계를 포함하며, 상기 제2단계, 제4단계 및 제5단계를 수행하는데 필요한 승산을 동일한 승산기에서 행하는 것을 특징으로 한다.
상기 다른 목적을 달성하기 위한 본 발명의 리드-솔로몬 복호기는, 제1제어신호에 의하여 수신계열로부터 신드롬을 계산하는 신드롬 계산회로, 제2제어신호에 의하여 상기 신드롬 계산회로에서 계산된 신드롬으로부터 오류의 위치 및 크기를 알아내기 위한 오류위치 다항식 및 오류 추정 다항식을 계산하는 오류위치 및 추정 다항식 계산회로, 제3제어신호에 의하여 상기 오류위치 및 추정 다항식 계산회로에서 계산된 값으로부터 오류치 다항식의 근과 오류치를 계산하는 오류치 다항식의 근과 오류치 계산회로 및 상기 신드롬 계산회로, 오류위치 및 추정 다항식 계산회로 및 오류치 다항식의 근과 오류치 계산회로로 1클럭주기마다 하나씩 순차적으로 발생되는 제1내지 제3제어신호를 출력하는 제어신호 발생회로를 포함하며, 상기 오류 위치 및 추정 다항식 계산회로는 현재 상태를 나타내는 소정값으로부터 다음 상태를 나타내는 소정값을 계산하는데 필요한 곱셈기를 공유하는 것을 특징으로 한다. 상기 오류 위치 및 추정 다항식 계산회로는, 신드롬 값, 오류 위치 다항식의 계수값, 불합도 값, 교정항 및 단축부호의 크기를 저장하는 제1저장부, 오류 위치 다항식의 계수값, 불합도의 역수값, 불합도 값 및 오류 위치 다항식의 미분한 계수값을 저장하는 제2저장부, 상기 제어부에서 출력되는 제3제어신호에 의하여 상기 제1저장부에 저장된 값을 선택적으로 출력하는 제1선택부, 상기 제3제어신호에 의하여 상기 제2저장부에 저장된 값을 선택적으로 출력하는 제2선택부, 상기 제1, 2 선택부에 의해서 선택된 값들을을 입력하여 순차적로 승산을 수행하는 승산부, 상기 제어부에서 출력되는 제3제어신호에 의하여 상기 승산부에 의해서 승산된 결과를 선택적으로 출력하는 제3선택부 및 상기 제3선택부에 의해서 출력된 값을 저장하는 제3저장부를 포함한다.
첨부된 도면을 참고로 하여 본 발명의 리드-솔로몬 복호기를 설명하면 다음과 같다.
제3도는 본 발명의 리드-솔로몬 복호기의 블럭도이다.
제3도에 나타낸 리드-솔로몬 복호기는 신드롬 계산회로(100), 오류 위치 및 추정 다항식 계산회로(110), 오류 위치 다항식의 근과 오류치 계산회로(120), 및 제어신호 발생회로(130)로 구성되어 있다.
즉, 본 발명의 리드-솔로몬 복호기는 종래의 리드-솔로몬 복호기와 달리, 곱셈을 수행할 때에 사용되는 곱셈기를 공유하도록 오류 위치 및 추정 다항식을 계산하는 회로를 하나의 블럭으로 구성한 것이다.
제4도는 제3도에 나타낸 신드롬 계산회로의 블럭도이다.
제4도에 있어서, 신드롬 계산회로는 모듈로-2가산기(140), 곱셈기(150), 및 신드롬 값 저장기(160)으로 구성되어 있다.
신드롬은 수신 계열(r(x))에 GF(2m)의 원소인 αi(1 ≤i ≤ 2t)를 대입하면 구할 수 있다.
제5도는 제3도에 나타낸 오류 위치 및 추정 다항식 계산회로(110)의 세부 블럭도이다.
제5도에 있어서, 오류 위치 및 추정 다항식 계산회로(110)는 레지스터(200, 210, 260), 멀티플렉서(multiplexer ; 220, 230), 디멀티플렉서(demultiplexer ; 250), 및 곱셈기(240)로 구성되어 있다. 레지스터(200, 210)는 현재 상태의 값을 저장하고, 레지스터(260)는 다음 상태의 값을 저장한다.
상기와 같이 구성된 본 발명의 오류 위치 및 추정 다항식 계산회로(110)는 제어신호 발생회로(130)에서 출력되는 제1에서 6까지의 제어신호(CS1, CS2, CS3, CS4, CS5, CS6)에 따라서 오류 위치 다항식 및 오류 추정 다항식을 계산한다. 이러한 6개의 제어신호를 발생하기 위해서는 3비트의 제어신호가 필요하다.
제6도는 본 발명의 오류 위치 및 추정 다항식 계산회로의 동작 타이밍도를 나타내는 것이다.
제6도를 참조하여 제5도에 나타낸 오류 위치 및 추정 다항식 계산회로(110)의 동작을 설명하면 다음과 같다.
먼저, 제어신호(CS1-CS6)는 1클럭 주기마다 하나씩 순차적으로 제어신호 발생회로(130)에서 발생된다. 제1제어신호(CS1)에 의하여 멀티플렉서(220, 230)는 레지스터(200, 210)에 저장된 0의 값을 곱셈기(240)로 전달한다. 이 때 곱셈기(240)가 리세트된다. 제어신호(CS2)에 의하여 멀티플렉서(220, 230)는, 레지스터(200, 210)에 저장된 신드롬 값(sn-i) 및 오류 위치 다항식의 계수값 (σi)을 곱셈기(240)로 전달한다. 곱셈기(240)는 이 들 값의 곱셈을 수행함으로써 불합도(dn) 및 오류 추정 다항식의 계수값을 계산하여 디멀티플렉서(250)로 전달한다. 이 값은 레지스터에(260)에 저장된다. 제어신호(CS4)에 의하여 멀티플렉서(220, 230)는 레지스터(200, 210)에 저장된 교정항(b(x) (n))과 불합도(dn)값을 곱셈기(240)로 출력한다. 곱셈기(240)는 이 들 값의 곱셈을 수행함으로써 오류 위치 다항식의 계수값 (σ(x) (n+1))을 계산하여 디멀티플렉서(250)로 전달한다. 이 값은 레지스터(260)에 저장된다. 제어신호(CS3)에 의하여 레지스터(200, 210)에 저장된 오류 위치 다항식의 계수값과 불합도(dn -1)를 멀티플렉서(220, 230)을 통하여 곱셈기(240)로 전달한다. 곱셈기(240)는 이 들 값의 곱셈을 수행함으로써 교정항(b(x) (n+1))을 계산하여 디멀티플렉서(250)로 전달한다. 레지스터(260)는 디멀티플렉서(250)에서 출력되는 결과값을 저장한다. 이와같이 제어신호(CS2, CS4, CS3)에 따른 동작을 2t번 반복해서 수행하여 최종적인 오류 위치 다항식이 구해진다. 그래서, 하나의 오류 위치 다항식의 계수를 구하기 위하여 3클럭 주기가 소요되고 2t개의 오류 위치 다항식의 계수를 구하기 위하여는 3×2t클럭 주기가 소요된다.
다음으로 오류 추정 다항식을 계산하기 위하여 제어신호(CS1)에 의하여 회로를 리세트시킨다. 다음으로, 제어신호(CS2)에 의하여 레지스터(200, 210)에 저장된 신드롬 값(sn-1)과 오류 위치 다항식의 계수값 (σi)을 멀티플렉서(220, 230)를 통하여 곱셈기(240)로 전달한다. 곱셈기(240)는 이 들 값의 곱셈을 수행함으로써 오류 추정 다항식의 계수값을 계산하여 디멀티플렉서(250)를 통하여 레지스터(260)로 전달한다. 즉, 하나의 오류 추정 다항식의 계수값을 구하기 위하여 하나의 클럭 주기가 필요하며 2t개의 오류 추정 다항식을 구하기 위하여는 2t개의 클럭 주기가 필요하다.
이와같이 오류 위치 다항식과 오류 추정 다항식이 구해진 다음 프리멀티플리케이션(premultiplication)이 다음과 같이 수행된다. 제어신호(CS5)에 의하여 멀티플렉서(220, 230)는 단축부호의 크기와 오류 위치 다항식의 계수값을 레지스터(200, 210)로부터 곱셈기(240)로 전달한다. 곱셈기(240)는 이 들 값의 곱셈을 수행하여 그 결과값을 디멀티플렉서(250)를 통하여 레지스터(260)에 저장한다. 그리고, 제어신호(CS6)에 의하여 오류 위치 다항식의 계수값을 미분한 값(σ')과 단축부호의 크기를 레지스터(200, 210)로부터 곱셈기(240)로 전달한다. 곱셈기(240)는 이 들 값의 곱셈을 수행하여 그 결과값을 디멀티플렉서(250)를 통하여 레지스터(260)에 저장한다.
제7도는 제5도에 나타낸 오류 위치 및 추정 다항식 계산회로의 곱셈기의 상세 블럭도이다.
제7도에 나타낸 곱셈기는 곱셈기(300), 레지스터(310), 및 가산기(320)로 구성되어 있다.
상기 곱셈기(300)는 벡터 A와 벡터 B의 곱셈을 수행한다.
곱셈은 8튜플의 벡터 A와 4튜플의 벡터 B와의 곱셈으로 A, B는 각각 다음과 같이 나타내어질수 있다.
벡터(A)와 벡터(B)의 곱셈은 아래에 나타낸 것과 같이 수행된다.
먼저, 곱셈기(300)의 출력을 Q라고 하면 다음과 같이 나타내어질 수 있다.
상기 식(10)은 첫번째 클럭 동안에 곱셈을 수행하는 것이고, 식(11)은 두번째 클럭동안에 곱셈 A×B4를 수행하는 것이다. 레지스터(310)는 첫번째 클럭동안에 계산된 결과를 두번째 클럭동안의 곱셈이 끝날 때까지 저장한다. 레지스터(310)를 구동하는 클럭은 복호기의 시스템 클럭보다 주파수가 2배이다. 그러므로, 곱셈을 수행하는데 필요한 시간은 1시스템 클럭이다. 즉, 첫번째 클럭동안에 계산된 결과를 레지스터(310)가 저장하여 두번째 클럭 동안에 계산이 수행될 때까지 유지한다.
만일 레지스터(310)에 저장된 결과를 M이라고 하고, 곱셈기(300)으로 부터 직접 출력되는 결과를 N이라고 할 때, 가산기(320)는 아래의 식에 나타낸 것과 같은 가산을 수행하게 된다. 즉, 임의의 8튜플 벡터 M, N의 덧셈을 갈로이스 필드상에서 수행하는 가산기는 아래의 식에 나타낸 것과 같은 연산을 수행한다.
이와같이 곱셈을 수행할 경우에 종래의 곱셈기와는 달리 다음표와 같이 많은 수의 게이트를 절감할 수 있다.
제8도는 오류 위치 다항식의 근을 계산하는 회로의 블럭도이다.
제8도에 있어서,오류 위치 다항식의 근 계산회로는 레지스터(400), 곱셈기(410), 레지스터(420) 및 모듈로-2가산기(430)으로 구성되어 있다.
오류 위치 다항식의 계수값(σ1, ......, σm)과 GF(2m)의 원소인 α1, ......, αm을 곱셈기(410)에 의해서 곱셈하여 레지스터(420)에 그 계산된 값을 저장한다. 이 값은 모듈로-2가산기(430)에 의해서 가산되어 최종적으로 오류 위치 다항식의 근을 계산하여 출력한다. 그리고, 곱셈기(410)의 출력신호는 레지스터(420)에 저장된 후 궤환되어 다시 곱해지게 된다. 오류 위치 다항식의 근을 계산하는데 필요한 시간은 n심볼 클럭이다.
제9도는 오류 위치 다항식의 오류치를 계산하는 회로의 블럭도이다.
제9도에 나타낸 오류 위치 다항식의 오류치 계산회로는 레지스터(500), 곱셈기(510), 레지스터(520), 모듈로-2가산기(530), 레지스터(600), 곱셈기(610), 레지스터(620), 모듈로-2가산기(630), 룩-업 테이블(640), 및 곱셈기(650)으로 구성되어 있다.
제9도에 있어서, 레지스터(500), 곱셈기(510), 레지스터(520), 및 모듈로-2가산기(530)의 구성은 오류 위치 다항식의 근을 계산하는 회로구성과 동일하고, 모듈로-2가산기(530)에 출력되는 결과값은 오류 위치 다항식의 근이 되는데 이 값은 룩-업 테이블(640)에 입력되어 오류 위치 다항식의 근의 역수값이 출력되게 된다. 레지스터(600)은 오류 추정 다항식의 계수값을 저장하고 있고, 이 값은 곱셈기(610)에서 GF(2m)의 원소인 α1, ......, αm값과 곱해진다. 이 값은 레지스터(620)에 저장되었다가 궤환되어 곱셈기(610)에서 곱해지거나, 모듈로-2가산기(630)로 입력되어 가산된다. 모듈로-2가산기(630)의 출력신호와 룩-업 테이블(640)의 출력신호는 오류치를 구하기 위하여 곱셈기(650)에서 곱해진다. 이와같은 동작을 수행하여 최종적으로 오류치가 구해지게 된다.
이와 같이 본 발명의 리드-솔로몬 복호기는 오류 위치 다항식의 불합도값, 계수값 및 교정항을 계산하는데 필요한 곱셈기를 공유한다. 또한 오류 추정 다항식의 계수값을 계산하고, 단축부호시 오류위치 다항식의 계수값과 단축부호의 크기를 곱셈하고, 단축부호시 오류위치 다항식 미분한 계수값과 단축부호의 크기를 곱셈하는데 필요한 곱셈기를 공유한다. 이렇게 함으로써 종래의 리드-솔로몬 복호기에 비해 필요한 곱셈기의 수를 줄여 집적화시에 칩면적을 줄일 수 있다.

Claims (4)

  1. 제어신호 발생회로에서 1클럭 주기 마다 하나씩 순차적으로 발생되는 제1내지 제6제어신호에 의하여 신드롬값으로부터 오류 위치 및 오류 추정 다항식을 계산하는 오류 위치 및 오류 추정 다항식 계산 방법에 있어서,
    상기 제1제어신호에 의하여 오류 위치 다항식 계산 사이클을 리세트하는 제1단계 :
    상기 제2 내지 제4제어신호에 의하여 불합도값, 오류 위치 다항식의 계수값 및 교정항 계산을 오류 정정 능력의 두 배의 클럭 주기 동안 반복적으로 수행하여 오류 위치 다항식을 계산하는 제2단계 :
    상기 제1제어신호에 의하여 오류 추정 다항식 계산 사이클을 리세트하는 제3단계 :
    상기 제2제어신호에 의하여 오류 정정 능력의 두 배의 클럭주기동안 반복적으로 수행하여 오류 추정 다항식의 계수값을 계산하는 제4단계 : 및
    상기 제5 및 제6제어신호에 의하여 단축된 부호의 크기와, 오류 위치 다항식의 계수값 및 상기 오류 위치 다항식의 미분 다항식 계수값을 각각 승산하는 제5단계를 포함하며,
    상기 제2단계, 제4단계 및 제5단계를 수행하는데 필요한 승산을 동일한 승산기에서 행하는 것을 특징으로 하는 오류 위치 및 오류 추정 다항식 계산 방법.
  2. 리드 솔로몬 복호기에 있어서,
    제1제어신호에 의하여 수신계열로부터 신드롬을 계산하는 신드롬 계산회로 ;
    제2제어신호에 의하여 상기 신드롬 계산회로에서 계산된 신드롬으로부터 오류의 위치 및 크기를 알아내기 위한 오류위치 다항식 및 오류 추정 다항식을 계산하는 오류위치 및 추정 다항식 계산회로 :
    제3제어신호에 의하여 상기 오류위치 및 추정 다항식 계산회로에서 계산된 값으로부터 오류치 다항식의 근과 오류치를 계산하는 오류치 다항식의 근과 오류치 계산회로 : 및
    상기 신드롬 계산회로, 오류위치 및 추정 다항식 계산회로 및 오류치 다항식의 근과 오류치 계산회로로 1클럭 주기마다 하나씩 순차적으로 발생되는 제1 내지 제3제어신호를 출력하는 제어신호 발생회로를 포함하며,
    상기 오류 위치 및 추정 다항식 계산회로는 현재 상태를 나타내는 소정값으로부터 다음 상태를 나타내는 소정값을 계산하는데 필요한 승산기를 공유하는 것을 특징으로 하는 리드-솔로몬 복호기.
  3. 제2항에 있어서, 상기 오류 위치 및 추정 다항식 계산회로는
    신드롬 값, 오류 위치 다항식의 계수값, 불합도 값, 교정항 및 단축부호의 크기를 저장하는 제1저장부 :
    오류 위치 다항식의 계수값, 불합도의 역수값, 불합도 값 및 오류 위치 다항식의 미분한 계수값을 저장하는 제2저장부 :
    상기 제어부에서 출력되는 제3제어신호에 의하여 상기 제1저장부에 저장된 값을 선택적으로 출력하는 제1선택부 :
    상기 제3제어신호에 의하여 상기 제2저장부에 저장된 값을 선택적으로 출력하는 제2선택부 :
    상기 제1, 2선택부에 의해서 선택된 값들을 입력하여 순차적으로 승산을 수행하는 승산부 :
    상기 제어부에서 출력되는 제3제어신호에 의하여 상기 승산부에 의해서 승산된 결과를 선택적으로 출력하는 제3선택부 : 및
    상기 제3선택부에 의해서 출력된 값을 저장하는 제3저장부를 포함하는 것을 특징으로 하는 리드-솔로몬 복호기.
  4. 제3항에 있어서, 상기 승산부는
    상기 제1선택부의 출력신호와 상기 제2선택부의 출력신호의 상위비트 및 하위비트의 승산을 순차적으로 수행하는 승산기 :
    상기 승산기에서 계산된, 상기 제1선택부의 출력신호와 상기 제2선택부의 상위비트와의 승산된 결과를 저장하는 저장기 : 및
    상기 제장기에 저장된 값과 상기 승산기에 의해서 계산된, 상기 제1선택수단의 출력신호와 상기 제2선택부의 하위비트와의 승산된 결과를 가산하는 가산기를 포함하는 것을 특징으로 하는 리드-솔로몬 복호기.
KR1019940029418A 1994-11-10 1994-11-10 오류 위치 및 추정 다항식 계산방법 및 이를 이용한 리드-솔로몬 복호기 KR0135824B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1019940029418A KR0135824B1 (ko) 1994-11-10 1994-11-10 오류 위치 및 추정 다항식 계산방법 및 이를 이용한 리드-솔로몬 복호기
US08/552,551 US5805616A (en) 1994-11-10 1995-11-03 Circuit of calculating errata locator and evaluator polynomial, calculating method thereof and reed-solomon decoder using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019940029418A KR0135824B1 (ko) 1994-11-10 1994-11-10 오류 위치 및 추정 다항식 계산방법 및 이를 이용한 리드-솔로몬 복호기

Publications (2)

Publication Number Publication Date
KR960020022A KR960020022A (ko) 1996-06-17
KR0135824B1 true KR0135824B1 (ko) 1998-05-15

Family

ID=19397547

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019940029418A KR0135824B1 (ko) 1994-11-10 1994-11-10 오류 위치 및 추정 다항식 계산방법 및 이를 이용한 리드-솔로몬 복호기

Country Status (2)

Country Link
US (1) US5805616A (ko)
KR (1) KR0135824B1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6374384B1 (en) * 1996-06-27 2002-04-16 Matsushita Electric Industrial Co., Ltd. Reed Solomon error correcting circuit and method and device for Euclidean mutual division
GB2318954B (en) * 1996-10-29 2001-05-23 Daewoo Electronics Co Ltd Reed-solomon decoder for use in advanced television
US6119262A (en) * 1997-08-19 2000-09-12 Chuen-Shen Bernard Shung Method and apparatus for solving key equation polynomials in decoding error correction codes
KR100258952B1 (ko) * 1997-10-14 2000-06-15 윤종용 새로운 다항식 배열 구조를 채용한 리드-솔로몬(rs) 복호기와그 복호방법
US6092233A (en) * 1998-03-20 2000-07-18 Adaptec, Inc. Pipelined Berlekamp-Massey error locator polynomial generating apparatus and method
DE19933115A1 (de) * 1999-07-19 2001-01-25 Mannesmann Vdo Ag Verfahren zur Modulation eines Grundtaktes für digitale Schaltungen und Taktmodulator zur Ausführung des Verfahrens
US6571368B1 (en) * 2000-02-02 2003-05-27 Macronix International Co., Ltd. Systolic Reed-Solomon decoder
TW566008B (en) * 2001-11-28 2003-12-11 Univ Nat Chiao Tung Apparatus for solving key equation polynomials in decoding error correction codes
US7539927B2 (en) * 2005-04-14 2009-05-26 Industrial Technology Research Institute High speed hardware implementation of modified Reed-Solomon decoder
US20090222712A1 (en) * 2008-03-03 2009-09-03 Legend Silicon Corp. Decoding scheme for correcting both erasures and errors of reed-solomon codes in a digital communication system
RU2009119260A (ru) * 2009-05-22 2010-11-27 ЭлЭсАй Корпорейшн (US) Декодер кодов бчх или кодов рида-соломона с модификацией синдромов
US11770138B2 (en) * 2020-04-08 2023-09-26 Intel Corporation Encoder and decoder of forward error correction (FEC) codec

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537426A (en) * 1992-05-29 1996-07-16 Goldstar Co., Ltd. Operation apparatus for deriving erasure position Γ(x) and Forney syndrome T(x) polynomials of a Galois field employing a single multiplier
WO1995012850A1 (en) * 1993-11-04 1995-05-11 Cirrus Logic, Inc. Reed-solomon decoder
KR970004515B1 (ko) * 1993-12-29 1997-03-28 삼성전자 주식회사 리드-솔로몬 복호기의 오류위치다항식 연산방법 및 장치

Also Published As

Publication number Publication date
KR960020022A (ko) 1996-06-17
US5805616A (en) 1998-09-08

Similar Documents

Publication Publication Date Title
US4868828A (en) Architecture for time or transform domain decoding of reed-solomon codes
US4873688A (en) High-speed real-time Reed-Solomon decoder
US6374383B1 (en) Determining error locations using error correction codes
US5107503A (en) High bandwidth reed-solomon encoding, decoding and error correcting circuit
US6219815B1 (en) High-speed syndrome calculation
US5440570A (en) Real-time binary BCH decoder
US6119262A (en) Method and apparatus for solving key equation polynomials in decoding error correction codes
US6571368B1 (en) Systolic Reed-Solomon decoder
Leung-Yan-Cheong et al. Concerning a bound on undetected error probability (Corresp.)
KR0135824B1 (ko) 오류 위치 및 추정 다항식 계산방법 및 이를 이용한 리드-솔로몬 복호기
US5805617A (en) Apparatus for computing error correction syndromes
US4592054A (en) Decoder with code error correcting function
KR100192795B1 (ko) 리드 솔로몬 복호기의 에러 위치 다항식 계산 장치
JP3305525B2 (ja) 復号器、誤りロケータシーケンス生成器および復号方法
US6263471B1 (en) Method and apparatus for decoding an error correction code
JP2694792B2 (ja) 誤り位置多項式演算回路
US5964826A (en) Division circuits based on power-sum circuit for finite field GF(2m)
EP0329775B1 (en) High bandwidth reed-solomon encoding, decoding and error correcting circuit and method
US6421807B1 (en) Decoding apparatus, processing apparatus and methods therefor
KR100192804B1 (ko) 리드 솔로몬 복호화기에서의 다항식 평가 장치
EP0793352B1 (en) Apparatus for determining the error evaluator polynomial for use in a Reed-Solomon decoder
US7693927B2 (en) Data processing system and method
Khan et al. Hardware implementation of shortened (48, 38) Reed Solomon forward error correcting code
Mohammed et al. FPGA implementation of 3 bits BCH error correcting codes
EP1159787A1 (en) A high speed pre-computing circuit and method for finding the error-locator polynomial roots in a reed-solomon decoder

Legal Events

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

Payment date: 20100114

Year of fee payment: 13

LAPS Lapse due to unpaid annual fee