KR19980702551A - 개량된 3, 4개 에러 보정 시스템 - Google Patents

개량된 3, 4개 에러 보정 시스템 Download PDF

Info

Publication number
KR19980702551A
KR19980702551A KR1019970705957A KR19970705957A KR19980702551A KR 19980702551 A KR19980702551 A KR 19980702551A KR 1019970705957 A KR1019970705957 A KR 1019970705957A KR 19970705957 A KR19970705957 A KR 19970705957A KR 19980702551 A KR19980702551 A KR 19980702551A
Authority
KR
South Korea
Prior art keywords
equation
solutions
quadratic
polynomial
rti
Prior art date
Application number
KR1019970705957A
Other languages
English (en)
Inventor
웽,리-지
Original Assignee
앤드류 크라이더
퀀텀 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 앤드류 크라이더, 퀀텀 코포레이션 filed Critical 앤드류 크라이더
Publication of KR19980702551A publication Critical patent/KR19980702551A/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Probability & Statistics with Applications (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Radar Systems Or Details Thereof (AREA)

Abstract

리드-솔로몬 또는 BCH 코드의 코드 워드 내의 4개의 에러들의 위치를 결정하기 위한 방법이 개시되어 있다. 4차 에러 로케이터 다항식이 3차항의 계수가 0인 형태로 조작되어(500, 502, 504, 506), 2개의 2차 다항식이 생성된다(508, 510, 514, 516, 518). 그 다음, 2개의 2차 다항식의 해들은 에러 위치들과 연관된다(524). 2개의 2차 다항식을 생성하기 위한 단계 514에서, 세제곱근을 결정하기 위한 회로(200)가 사용된다.

Description

개량된 3, 4개 에러 보정 시스템
자기 디스크 등과 같은 자기 매체에 저장되는 데이타는 데이타 내의 에러들이 보정될 수 있도록 대개 코딩된 형태로 저장된다. 에러들은 예컨대, 심볼 간의 간섭, 디스크의 결함, 또는 잡음 등에 의해 발생할 수 있다. 디스크에 저장되는 데이타의 밀도가 증가함에 따라, 더 많은 에러가 발생할 수 있으며, 따라서 시스템은 더 많은 에러를 보정할 필요가 있다. 시스템이 에러를 보정하는 속도는 시스템이 데이타를 처리하는 전체 속도에 중대한 영향을 미친다.
복수 비트 데이타 심볼들은 기록 전에 에러 보정 코드(error correction code : ECC)를 사용하여 코딩된다. 디스크로부터 데이타 심볼들이 검색되어 복조될 때, 명칭이 내포하듯이 ECC는 에러 데이타를 보정하기 위해 사용된다.
특히, k 데이타 심볼들의 스트링은 디스크에 기록되기 전에 (n, k) ECC를 사용해 수학적으로 코딩되어 n-k ECC 심볼들을 형성한다. 그 다음, ECC 심볼들은 데이타 데이타 스트링에 첨부되어 n 심볼 에러 보정 코드 워드가 형성되고, 이 워드는 디스크에 기록되거나 저장된다. 디스크로부터 데이타가 판독될 때, 데이타 심볼들 및 ECC 심볼들을 포함한 코드 워드들이 검색되어 수학적으로 디코딩된다. 디코딩되는 동안에 데이타 내 에러들이 검출되고, 가능한 경우에 ECC 심볼들의 조작을 통해 보정된다(디코딩에 관한 상세한 설명은 Peterson and Weldon, Error Correction Codes, 2nd Ed. MIT Press, 1972를 참조).
데이타 심볼 스트링 내의 다수의 에러들을 보정하기 위하여, 시스템은 대개 갈로이스(Galois) 필드로서 알려진 심볼 세트의 다양한 수학적 성질을 효율적, 효과적으로 이용하는 ECC를 사용한다. 갈로이스 필드들은 GF(Pm)으로 표시되며, 여기서 P는 주 번호이고, m은 필드의 각 원소 또는 심볼 내의 디지트들의 수, 즉 기본(base) P로 생각될 수 있다. P는 디지탈 컴퓨터 및 디스크 드라이브 애플리케이션들에서 대개 2의 값을 가지며, 따라서 m은 각 심볼의 비트수이다. 일반적으로 갈로이스 필드들와 함께 사용되는 ECC들은 리드 솔로몬(Reed Solomon) 코드들 또는 BCH 코드들이다.
리드 솔로몬 코드 또는 BCH 코드의 훼손된 코드 워드를 디코딩하기 위한 기본적인 4개의 주요 단계가 있다. 시스템은 먼저 ECC 심볼들의 조작 결과를 기초로 하는 에러 신드롬들을 결정한다. 그 다음, 시스템은 에러 신드롬들을 사용하여 에러수와 동일한 차수를 가진 다항식인 에러 로케이터 다항식을 결정한다. 그 다음, 시스템은 에러 로케이터 다항식의 해를 구하고 각각의 해로부터 코드 워드 내의 관련 에러의 위치를 결정한다. 최종적으로, 시스템은 에러 위치들에 대한 에러값들을 구한다. 디지탈 컴퓨터 등과 같은 2진 시스템에서는 에러 위치에 대해 단 하나의 에러값만이 가능하며, 따라서 에러값 결정 단계는 중요치 않다.
신드롬들을 결정하고 에러 위치들을 발견하는 단계들은 에러 보정 과정에서 대부분의 시간을 소요한다. 여기 기술된 발명은 에러 보정 시스템이 3개 또는 4개의 에러의 위치들을 발견하는 데 걸리는 시간을 단축시킨다. 본 발명은 3차 및 4차 에러 로케이터 다항식들의 해들을 발견하는 단계를 포함한다.
종래의 시스템에서, 4차 다항식의 해는 시행 착오에 의해, 또는 매트릭스 조작 또는 탐색표에 의해 결정된다. 시행 착오 방법은 모든 가능한 값, 즉 코드 워드 위치와 관련된 적절한 GF(22m)의 모든 원소를 다항식 안으로 대체하여 각각의 값에 대해 다항식을 계산함으로써 수행된다. 다항식이 주어진 값에 대해 0이 되는 경우, 그 값은 해가 된다. 시스템은 모든 가능한 값들이 시행되거나 4개의 해 모두가 결정될 때까지 가능한 다음 값을 다항식 안으로 대체하여 그 값이 해인가를 결정하는 과정을 반복함으로써 시행 착오 과정을 계속한다. 일반적으로 최적 형태에서 치엔 검색(Chien Search)으로 알려진 이러한 시행 착오 과정은 시간 소모적이다. 또한, 시간은 코드 워드들 내의 에러의 위치에 따라 변하기 때문에 예측할 수 없다.
매트릭스 조작 및 탐색표 방법들은 σ4x4+σ3x3+σ2x2+σ1x+σ0형태의 일반 4차 다항식을 x4+x2+ax+b 형태의 다항식으로 변환시키는 과정을 포함한다.
탐색표가 사용되는 경우, 표는 a와 b의 값들의 모든 가능한 세트에 대한 해들의 세트를 포함한다. 오늘날 사용되는 ECC들에 대해서는, 표는 대개 GF(28)에 관하여 32 비트, 즉 4개의 8 비트 원소들로 각각 구성된 216개의 엔트리를 갖고 있다. 따라서, 표는 대용량의 저장 공간을 차지하며, 상대적으로 복잡한 어드레싱 방식을 필요로 한다.
매트릭스 조작 방법을 사용하는 시스템은 f(α), f(α1), f(α2)...f(αm-1)(여기서, f(x)=x4+x2+ax+b)를 결정함으로써 m×m 매트릭스를 생성한다. 그 다음, 시스템은 매트릭스를 조작하여 매트릭스에 의해 점유된 공간 중의 공백 공간을 결정한다. 그 다음, 공백 공간에 걸친 벡터들로부터 다항식의 해들이 얻어질 수 있다(더 자세한 사항은 E.R. Berlekamp,Algebraic Coding Theory, McGraw Hill Book Company, 1968 참조). 이 방법은 m×m 매트릭스의 비트×비트 번의 조작을 필요로 하며, 대개는 매트릭스를 변환시키기 위하여 많은 조작을 필요로 한다. 따라서, 이 방법은 시간 소모적이고 연산 집약적이다.
여기 기술된 발명적인 시스템은 4차 다항식의 해들을 결정하는 단계를 포함하는 4개의 에러들의 위치를 찾는 데 걸리는 시간을 감소시킨다. 시스템은 벨레캠프의대수 코딩 이론(Algebraic Coding Theory)에서 기술된 바와 같이 2차 다항식의 해들을 결정하는 공지 방법을 사용한다. 또한, 시스템은 IEEE Transactions on Information Theory, Vol. IT-22, pp. 138-147, 1976 에 게재된 반 데르 호스트 및 버거의 3중 에러 보정 2진 BCH 코드의 완전 디코딩이라는 논문에 기술된 3차 다항식의 해들을 결정하는 방법을 사용한다.
반 데르 호스트 및 버거의 가르침에 따라 3차 다항식의 해를 발견하기 위해서는 GF(22m)에 관하여 갈로이스 필드 원소의 세제곱근을 결정하는 것이 필요하다. 후에 기술되는 바와 같이, 본 발명자는 상대적으로 빠르고 쉽게 세제곱근을 발견할 수 있는 발명적인 회로를 개발했다.
발명의 요약
본 발명은 4차 에러 로케이터 다항식을 2개의 2차 방정식으로 변환하고 이 방정식들의 해를 발견하며 이 해들로부터 에러 로케이터 다항식의 해들을 결정함으로써 GF(22m)에 관한 4개의 에러들의 에러 위치를 결정하는 시스템이다.
특히, 본 시스템은 먼저 4차 다항식인 수학식 1을 수학식 2의 형태로 변환시킨다.
σ(x)=σ4x4+σ3x3+σ2x2+σ1x+σ0
θ(y)=y42y21y+θ2
여기서, θi는 에러 로케이터 다항식의 항들의 계수들의 조합이다. y3항의 계수는 0이라는 점에 유의하라.
그 다음, 시스템은 θ(y)를 인수 분해하여 수학식 3을 생성한다.
θ(y)=(y2+t*y+u)*(y2+v*y+w)
여기서, *는 곱을 나타낸다. 그 다음, 수학식 3은 수학식 4로 전개된다.
θ(y)=y4+(t+v)y3+(t*v+u+w)y2+(t*w+v*u)y+u*w
여기서, t, u, v 및 w는 미지수이다. 시스템은 수학식 2 및 3의 계수들을 등식화하여 수학식 5를 결정한다.
t+v=0
t*v+u*w=t2+u*w=θ2
t*w+u*v=t+w+t*u=t*(w+u)=θ1
u*w=θ0
그 다음, 시스템은 단 하나의 미지수로서 변수 t를 가진 수학식 6을 생성한다.
t32t+θ1=0
이러한 3차 방정식은, 아래 상세히 설명되는 바와 같이, 반 데르 호스트 및 버거에 의해 설명된 방법을 사용하여 해결될 수 있다.
수학식 6의 해 t0가 결정되면, 이 해는 θ1에 대신에 수학식 6 안으로 대체되고, 이 식과 θ0에 대한 식이 사용되어 u 및 w를 해로 갖는 2차 방정식을 형성한다.
p2+(θ2+t0 2)p+θ0=0
그 다음, 시스템은 2차 다항식들을 풀기 위한 벨레캠프 방법을 사용하여 수학식 7의 해 p0및 p1을 구한다. 각각 u 및 w인 해들 p0및 p1은 수학식 3 안으로 대체되고 각 항은 0으로 셋팅되어 2개의 2차 방정식이 생성된다.
y2+t0*y+p0=0
y2+t0*y+p1=0
벨레캠프 방법을 사용하는 결정되는 수학식 8의 해는 또한 θ(y)의 해이며, 따라서 이들은 에러 로케이터 다항식의 해를 생성하기 위해 직접 사용될 수 있다.
이러한 직접적인 해결책은 4개의 해를 발견하는 종래의시행 착오 또는 매트릭스 조작 방법들보다 빠르다. 또한, 종래의 다른 공지 시스템에서 필요로 하는 대형 탐색표의 저장 및 기입을 필요로 하지 않는다.
본 발명은 데이타 처리 시스템에 관한 것으로서, 특히 에러 보정 코디를 사용해 데이타 내 에러들을 디코딩하여 보정하기 위한 시스템에 관한 것이다.
도 1은 본 발명에 따라 구성된 디코더의 기능 블록도.
도 2는 GF(22m) 원소들의 세제곱근들을 결정하기 위한 발명 회로의 기능 블록도.
도 3은 도 2의 회로의 동작 순서도.
도 4는 GF(28)에 대한 도 2의 회로.
도 5는 도 1의 디코더가 4개의 에러의 위치들을 결정할 때 수행하는 동작 순서도.
본 발명의 특성 및 목적들에 대한 완전한 이해를 위해 첨부된 도면들과 관련하여 기술된 아래의 상세한 설명을 참조해야 한다.
본 명세서에 설명되는 가산, 감산, 승산 및 제산의 수학적 연산은 GF(22m)에 관한 갈로이스 필드 연산이다.
이제 도 1을 참조하면, 디코더(10)는 종래 방식으로 동작하여 관련 에러 신드롬 세트를 생성하는 신드롬 생성기(12)를 포함하고 있다. 신드롬들이 모두 0인 경우, 신드롬 생성기(12)는 코드 워드에 에러가 없는 것으로 판정한다. 그렇지 않은 경우, 신드롬 생성기는 신드롬들을 에러 로케이터 다항식 생성기(14)로 전송하며, 이 생성기(14)는 종래 방식으로 신드롬들로부터 차수 e의 에러 로케이터 다항식을 생성한다(여기서, e는 코드 워드 내의 에러수이다). 그 다음, 에러 로케이터 다항식 생성기(14)는 에러 로케이터 다항식을 에러 로케이터 처리기(16)로 전송하며, 이 처리기(16)는 적절한 절차를 선택하고 실행하여 에러 로케이터 다항식의 해, 따라서 에러 위치를 결정한다. 도 1은 이러한 절차를 각종 블록 또는 처리기, 즉 하나의 에러 위치를 결정하기 위한 처리기(18), 2개의 에러 위치를 결정하기 위한 처리기(20), 3개의 에러 위치를 결정하기 위한 처리기(22), 4개의 에러 위치를 결정하기 위한 처리기(24), 및 5개 이상의 에러 위치를 결정하기 위한 처리기(26)로 나타내고 있다.
2개, 3개 및 4개의 에러 처리기들(20, 22, 24)은 상호 접속되어 있다. 아래 설명되는 바와 같이, 에러 로케이터 처리기(16)는 대응 에러 위치 다항식들을 결국 관련 2차 방정식 세트로 변환함으로써 3개 및 4개 에러의 위치를 결정하는 데 걸리는 시간을 감소시킨다. 이를 위하여, 4개 에러 처리기(26)는 3개 에러 처리기(24) 및 2개 에러 처리기(22)를 모두 이용한다. 유사하게, 3개 에러 처리기(24)는 2개 에러 처리기(22)를 이용한다. 이러한 절차들이 독립적, 배타적인 처리기들에서 발생하는 반면, 이들은 하나 또는 그 이상의 다목적 처리기들에서 수행될 수 있다.
에러 로케이터 처리기(16)는 종래 방법으로 1개 및 2개 에러들의 위치를 결정한다. 이 처리기(16)는 반 데르 호스트 및 버거 에 의해 설명된 방법에 따라 3개의 에러들의 위치를 결정한다. 그러나, 이 처리기는 본 발명의 회로를 사용하여 갈로이스 필드 원소의 세제곱근을 결정하는 데 필요한 단계를 수행한다. 3개 에러 위치를 결정하는 이러한 회로 및 방법은 아래에 도 2 및 3을 참조하여 설명된다.
에러 로케이터 처리기(16)는 도 4를 참조하여 아래에 설명된 독특한 절차를 사용하여 4개 에러의 위치들을 결정한다. 이러한 절차를 설명하기 전에, 2개 및 3개 에러 위치 절차들이 A절 및 B절에서 각각 설명된다.
A. 2개 에러 위치의 결정
코드 워드가 2개의 에러를 갖고 있는 경우, 에러 로케이터 다항식은 다음 수학식 1의 형태를 갖는다.
〈수학식 1〉
σ(x)=σ2x21x+σ0x
이 다항식의 해를 찾기 위하여, 시스템은 다항식을 0으로 셋팅하여 해들 x0및 x1에 대한 방정식을 푼다.
〈수학식 2〉
σ(x)=σ2x21x+σ0x=0
수학식 2를 풀기 위하여, 에러 로케이터 처리기(16)는 변수를 수학식 4로 변경함으로써 수학식 2를 수학식 3의 형태로 변환한다.
〈수학식 3〉
y2+y+C=0
〈수학식 4〉
x=
따라서, 수학식 2는 다음과 같이 된다.
σσ = + 0
그 다음, 시스템은 로 나누어 수학식 5를 생성한다.
〈수학식 5〉
y2+y+ =0
따라서, 수학식 3의 C는 이다.
GF(22m)에서 수학식 5의 해가 존재하기 위하여, 방정식의 양측의 트레이스들(traces)이 동일해야 한다. 트레이스는 수학식 6과 같이 정의된다.
〈수학식 6〉
트레이스(0)은 0이며, 따라서 갈로이스 필드 안에서 해들이 존재하기 위하여 수학식 7이 성립해야 한다.
〈수학식 7〉
Trace[y2+y+C]=0
항들의 합의 트레이스는 개별 항들의 트레이스들의 합과 동일하다. GF(22m)에서 트레이스(y2)=트레이스(y)이며, 갈로이스 필드 합산을 사용할 때 이들의 합이 0이 된다. 따라서, 트레이스(C)=0인 경우, 수학식 5는 GF(22m)에서의 해이다.
수학식 5의 일반해는 2m-1 개의 기본해들의 선형 조합이다. 하나의 기본해는 갈로이스 필드의 기본 원소들 C1,C2...C2m-1중 하나인 C를 가진 수학식 3의 해이다. 기본 원소들은 선형적으로 조합되어 필드의 모든 다른 원소들을 생성할 수 있는 필드의 원소들이다. 이러한 원소들은 예컨대, 2m-1 개의 0들 및 하나의 1, 즉 αi=000...1 내지 αj=100...00을 각각 포함하는 2m-1 개의 원소들의 세트일 수 있다. 이러한 필드에서, C=00110...0은 기본 원소들 00100...0 및 00010...1의 선형 조합이다. 수학식 5에 대한 일반해는 를 생성하도록 합산되는 기본 원소들에 대응하는 기본해들의 선형 조합이다.
생성기의 다항식 x4+x+1에 의해 정의되는 GF(24)에서, 0의 트레이스를 갖는 각 원소 αi는 최상위 비트로서 0을 갖는다. 따라서, 이 필드에서 주목되는 C들은 기본 원소들 α0=0001, α1=0010 및 α2=0100의 조합들이다. 대응하는 기본해들은 y05일 때 (α5)250, y09일 때 (α9)291및 y03일 때 (α3)+α32이다. 기본해들의 다른 세트는 y110일 때 (α10)2100, y17일 때 (α7)271및 y114일 때 (α14)+α142이다. 이러한 갈로이스 필드에서, C에 대한 수학식 3의 해들은 α8=0101과 같고, 예컨대 C를 C=α02=0001+0100으로 분해하고 기본해들의 대응 세트, 예컨대 y05311을 가산함으로써 결정되며, y1=y00과 같은 제1 및 제2의 해를 생성한다.
그 다음, 시스템은 다음과 같은 2차 에러 로케이터 다항식의 해들을 결정한다.
x0=y0
x1=y1
B. 3개 에러 위치들의 결정
3개 에러들과 관련된 에러 로케이터 다항식은 수학식 8과 같은 형태를 갖는다.
〈수학식 8〉
σ(x)=σ3x32x21x+σ0
그 해를 발견하기 위하여, 시스템은 다항식을 0으로 셋팅한다.
〈수학식 9〉
σ(x)=σ3x32x21x+σ0=0
그리고, 수학식 9를 y3+ay+b=0의 형태로 변환한다. 이를 위하여, 시스템은 변수를 변환시키며, 즉 x=y+ 이 되며, 수학식 9는 다음과 같이 된다.
〈수학식 10〉
그 다음, 시스템은 수학식 10의 항들을 다음과 같이 전개한다.
그리고, 같은 항들을 정리하여 수학식 11을 생성한다.
〈수학식 11〉
GF(22m)에서, 동일 항들을 합산하면 0이 되고, 수학식 11은 다음과 같이 된다
〈수학식 12〉
시스템은 수학식 12를 σ3으로 나우어 다음과 같은 형태의 수학식 13을 생성한다.
〈수학식 13〉
y3+ay+b=0
여기서,
a= +
b= +
a≠0인 경우 시스템은 변수를 수학식 14로 변환한다.
〈수학식 14〉
y=z+
그리고, 수학식 13은 다음과 같이 된다.
〈수학식 15〉
+a +b=0
그 다음, 시스템은 수학식 15를 전개하고 동일항들을 정리하여 수학식 16을 생성한다.
〈수학식 16〉
그 다음, 시스템은 수학식 16에 z3을 곱하여 수학식 17을 생성한다.
〈수학식 17〉
(z3)2+bz3+a=0
이 식은 z3를 변수로 가진 2차 방정식이다. 그 다음, 수학식 17은 A절에서 설명된 2개 에러 방법을 사용하여 풀 수 있다.
하나의 해 z3이 결정되면, 시스템은 도 2 및 3을 참조로 설명되는 회로를 사용하여 세제곱근 z0을 구한다. m이 짝수인 한, 수학식 17에 대한 제2 해 z1은 다음과 같다.
여기서, m이 짝수일 때 22m-1 은 3으로 나우어지기 때문에 지수 은 항상 정수이다. 수학식 17에 대한 제3의 해는 z2=z1+z0이다. 그 다음, 시스템은 이러한 해들을 y 대신에 방정식으로 대체하고, 대체 결과들을 에 더하여 3차 에러 로케이터 다항식의 해들 x0, x1및 x2를 생성한다.
a=0인 경우, 수학식 13에 대한 해는 y=b1/3이다. b의 세제곱근을 구하기 위하여, 시스템은 도 2에 도시된 회로를 생성한다. 세제곱근이 구해지면, 시스템은 y1및 y2를 다음과 같이 결정한다.
y2=y0+y1
이들로부터 시스템은 해들 x0, x1및 x2를 결정한다.
이제 도 2 및 3을 참조하면, 회로(200)는 원소를 α2l과 관련된 제곱수로 올림으로써 GF(22m)의 원소 α3k의 세제곱근을 구한다. 종래의 복수의 갈로이스 필드 승산기를 사용하여 임의의 GF(22m) 원소를 2L제곱으로 올린다.
회로(200)는 항등식 x2-1=(x-1)*(x+1)를 이용한다. x=2m인 경우, 항등식은 22m-1=(2m-1)*(2m+1)이 된다. 인수들 2m-1 또는 2m+1 중 하나는 3으로 나우어질 수 있지만 두 인수들 모두는 나누어지지 않는다. 예컨대, m=4인 경우, 인수 2m-1는 3으로 나누어질 수 있으며, 2m+1은 나눠지지 않는다. 또한, 회로(200)는 다음과 같은 사실을 이용한다.
회로(200)를 이용하여, 갈로이스 필드 원소 α3k는 승산기에서 3으로 나눠질 수 없는 항등식의 인수에 대응하는 제곱수로 상승된다(단계 300). m=4인 경우에, 원소는 2m+1의 제곱수로 상승된다. 그 다음, 적 α3k(2m+1) 의 세제곱근 αk(2m+1) 을 구하기 위하여 탐색표(204)가 사용된다(단계 302). 가능한 적들 α3k(2m+1) 의 세제곱근들에 댜한 엔트리들만을 가진 표는 상대적으로 작다. GF(28)의 예에서, 표는 5개의 엔트리만을 갖고 있다.
또한, 승산기(202)는 원소 α3k 에 대응하는 제곱수로 상승시켜(단계 304), GF 승산기(206)에서 그 결과에 탐색표(204)에 의해 생성된 세제곱근을 곱한다(306). 즉, 다음과 같은 방정식이 얻어진다.
단계 308에서, 시스템은 상기 적을 의 제곱수로 상승시켜 세제곱근 αk를 생성한다.
도 4는 GF(28), 즉 m=4에 대한 회로(200)를 도시한다. α3k를 2m+1 제곱으로 상승시키기 위하여, 회로는 GF 승산기(201)에서 먼저 원소를 2m또는 24=16 제곱으로 상승시킨다. 그 다음, GF 승산기(203)에서, 적 α3k(16)48k는 원소 α3k에 의해 곱해져 적 α3k(2m+1) 51k가 생성된다. 이 적은 5원소 탐색표로 입력되어 사용된다.
α0→ α0
α51→ α17
α102→ α34
α153→ α51
α204→ α68
이것은 α17k를 생성한다.
GF 승산기들(207, 209)을 사용하여, 원소 α3k 또는 =1 제곱으로 상승된다. GF 승산기(207)는 먼저 원소를 22또는 4 제곱으로 상승시키고, GF 승산기(209)는 적 α3k(4)12k에 원소 α3k를 곱하여 적 α15k를 생성한다.
그 다음, GF 승산기(206)는 2개의 적들을 곱하여 α171532를 생성한다. 그 다음, 그 결과는 승산기(210)에서 또는 = 제곱으로 상승되어 세제곱근 αk가 생성된다.
회로(200)는 적용된 모든 원소에 대한 결과를 생성한다. 그러나, 갈로이스 필드의 모든 원소에 대해 반드시 세제곱근이 존재하지는 않는다. 따라서, 시스템은 결과를 테스트하여 그 결과가 실제적인 세제곱근인가를 판정해야 한다(단계 310). 따라서, 시스템은 결과 자체를 제곱하여 그 적이 회로가 적용된 원소를 생성하는지를 판정한다(단계 312). 그러한 경우, 세제곱근은 정확한 것이 되며, 에러 위치들이 결정될 수 있다(단계 314). 그러나, 적이 원소와 동일하지 않은 경우에는, 시스템은 에러 위치들을 발견할 수 없는 것으로 판정한다(단계 316). 그 다음, 시스템은 에러 위치들을 발견하는 절차를 종료한다.
C. 4개 에러의 위치들의 결정
4개 에러들과 관련된 에러 로케이터 다항식은 수학식 18의 형태를 가진다.
〈수학식 18〉
σ(x)=σ4x4+σ3x3+σ2x2+σ1x+σ0
해를 발견하기 위하여, 시스템은 수학식 18을 0으로 셋팅한다.
〈수학식 19〉
σ(x)=σ4x4+σ3x3+σ2x2+σ1x+σ0=0
수학식 19는 y4+dy2+ey+h=0 의 형태로 변환된다. 특히, 도 5를 참조하면, 시스템은 단계 500에서 변수를 다음과 같이 변환한다.
x=y+r, 여기서 r= 이다.
수학식 19는 수학식 20이 된다.
〈수학식 20〉
γ(y)=σ4(y+r)43(y+r)32(y+r)21(y+r)+σ0=0
시스템은 단계 502에서 항들을 다음과 같이 전개한다.
γ(y)=σ4(y4+r4)+σ3(y3+r3)+σ2(y2+r2)+σ1(y+r)+σ0=0
그리고, 동일항들을 정리하여 수학식 21을 생성한다.
〈수학식 21〉
γ(y)=σ4y43y3+(σ3r+σ2)y2+(σ3r21)y+σ4r43r32r21r+σ0=0
그 다음, 시스템은 단계 504에서 r 대신에 로 대체하며, 선형 형의 계수는 0이 되는 데 그 이유는 다음이 성립하기 때문이다.
따라서, 수학식 21은 수학식 22가 된다.
〈수학식 22〉
σ4y43y3+[(σ31)0.52]y2+s
여기서, s는 수학식 21의 상수항이다.
이 방정식을 직접 해결하는 대신에, 시스템은 단계 506에서 수학식 23의 근을 구한다.
〈수학식 23〉
따라서, 시스템은 수학식 24 또는 수학식 25를 푼다.
〈수학식 24〉
θθ(y)=y42y21y+θ0=0
〈수학식 25〉
θθ(y)=y42y21y+θ2=0
여기서,
θθ2=
θθ1=
θθ0=
시스템은 단계 508에서 먼저 수학식 25를 수학식 26과 같이 인수 분해한다.
〈수학식 26〉
θ(y)=(y2+t*y+u)*(y2+v*y+w)=0
이것은 수학식 25가 인수 분해될 수 있는 것을 가정하며, 에러 로케이터 다항식의 해들이 GF(22m)에서 존재하는 경우에 유효한 가정이 된다.
시스템은 수학식 26의 항들을 수학식 27과 같이 전개한다.
〈수학식 27〉
θ(y)=y4+(t+v)y3+(t*v+u+w)y2+(t*w+v*u)y+u*w=0
그리고, 수학식 27의 계수들을 수학식 25의 계수들과 동일하게 셋팅한다(단계 510).
t+v=0
t*v+u+w=θ2
t*w+v*u=θ1
u*w=θ0
따라서,
t=v
t2+(u+w)=θ2
t*(w+u)=θ1
u*w=θ0
그 다음, 시스템은 단계 512에서 단 하나의 미지수로서 t를 가진 방정식을 결정한다. θ2, θ1및 θ2는 에러 로케이터 다항식의 계수들의 조합이기 때문에 알려진 수라는 것에 유의하라. 따라서, 시스템은 u+w= 를 셋팅하고 이것을 θ2에 대한 식 안으로 대체하며 이것에 t를 곱함으로써 수학식 28을 생성한다.
〈수학식 28〉
t32t+θ1=0
그 결과는 B절에서 설명된 연산을 사용하여 해결될 수 있는 3차 다항식이다(단계 514). 특히, 시스템은 변수를 다음과 같이 변경한다.
t=z+ , 여기서 a=θ2이다.
수학식 28은 다음과 같이 된다.
+a 1=0
항들을 전개하여 정리하면 수학식 29가 된다.
〈수학식 29〉
그리고, 시스템은 z3을 곱하여 방정식 (z3)21z3+a3=0을 생성하며, 이 식은 z3를 변수로 하는 2차 방정식이다.
A절의 방법을 사용하여 시스템은 수학식 29의 해를 구한다.
따라서, 시스템은 변수를 수학식 30과 같이 변경한다
〈수학식 30〉
z31g
그리고, 2차 방정식은 수학식 31 또는 g2+g+ =0이 된다.
〈수학식 31〉
θ1 2g21 2g+a3=0
트레이스 =0인 경우, 수학식 31에 대한 해들이 GF(22m) 안에 존재한다. 해들이 존재하는 것을 가정하면, 이들은 을 기본 원소들의 선형 조합으로 분해하고 기본 원소들과 대응 기본해들을 연관시킴으로써 결정된다.
해들이 결정되면, 시스템은 이들 중 하나를, 예컨대 g0를 z3에 대한 수학식 30 안으로 대체하며 도 2의 회로를 사용하여 z3의 세제곱근 z0를 결정한다. 그 다음, 시스템은 수학식 32로부터 z 대신 z0를 대체하여 t0를 결정한다.
〈수학식 32〉
t=z+
w 및 u를 결정하기 위하여, 시스템은 단계 516에서 값 t0와 식들 t2+(u+w)=θ2및 u*w=θ0를 사용하여 u 및 w를 해로 갖는 수학식 33을 생성한다.
〈수학식 33〉
(p+u)*(p+w)=
p2+(u+w)*p+(u*w)=
p2+(θ2+t0 2)*p+θ0=0
그 다음, 시스템은 A절의 방법을 사용하여 수학식 33의 해들을 결정한다. 그 다음, 시스템은 단계 518에서 이 해들, p0및 p1을 수학식 26의 인수들 안으로 대체하여 2차 방정식들을 생성한다.
〈수학식 34〉
y2+t0*y+p0=0
y2+t0*y+p1=0
그리고, 단계 520에서 A절의 방법을 사용하여 해들 y0, y1, 및 y2, y3에 대하여 푼다. 수학식 33의 해들 y0, y1, y2및 y3은 θ(y)의 해이며, , , 은 γ(y)의 해이다. 그 다음, 시스템은 단계 512에서 , , 를 식 x=y+r 안으로 대체하여 4차 에러 로케이터 다항식의 해를 결정한다. 최종적으로, 시스템은 단계 524에서 에러 로케이터 다항식의 해들과 코드 워드 내의 위치들과 연관시킨다.
4차 에러 로케이터 다항식의 해를 직접 결정하는 이러한 방법은 치엔 검색을 수행하거나 m×m 매트릭스를 조작하는 방법보다 빠르다. 또한, 이러한 방법은 다른 종래 방법에 의해 사용되는 대형 탐색표를 필요로 하지 않는다.

Claims (7)

  1. 리드-솔로몬 (Reed-Solomon) 또는 BCH 코드의 코드 워드 내의 4개 에러들의 위치들을 결정하는 방법에 있어서,
    a. 4차 에러 로케이터 (locator) 다항식 σ(x)=σ4x4+σ3x3+σ2x2+σ1x+σ0을 조작하여 θθ(y)=y42y21y+θ2형태의 다항식을 생성하는 단계;
    b. 상기 다항식을 θ(y)=(y2+t*y+u)*(y2+v*y+w)로 인수 분해하는 단계;
    c. 단계 a 및 b의 다항식들의 계수들을 t+v=0, t*v+u+w=θ2, t*w+v*u=θ1, 및 u*w=θ0로 등화시키는 (equating) 단계;
    d. 유일한 미지수 t를 가진 방정식 t32t+θ1=0 을 결정하는 단계;
    e. 해(root) t0를 구하는 단계;
    f. 해 u 및 w를 가진 2차 방정식 p2+(θ2+t0 2)p+θ0=0 을 형성하는 단계;
    g. 해 p0및 p1을 구하는 단계;
    h. 해들을 θ(y) 안으로 대체하여 한쌍의 2차 방정식 y2+t0*y+p1=0 및 y2+t0*y+p1=0 의 해들을 결정하는 단계;
    i. 상기 한쌍의 2차 방정식의 해들 y0, y1및 y2, y3을 상기 4차 에러 로케이터 다항식의 해들과 연관시키는 단계; 및
    j. 상기 4차 에러 로케이터 다항식의 해들을 상기 코드 워드 내의 위치들과 연관시키는 단계
    를 포함하는 에러 위치 결정 방법.
  2. 제1항에 있어서, 상기 t32t+θ1=0 의 해를 구하는 단계는
    i. 변수를 t=z+ (여기서 a=θ2)로 변환하여 z3+ 1=0 형태의 방정식을 생성하는 단계;
    ii. 단계 i의 방정식에 z3을 곱하여 변수 z3를 가진 2차 방정식 (z3)21z3+a3=0 을 얻는 단계;
    iii. 단계 ii의 2차 방정식을 z3에 대해 푸는 단계;
    iv. z3의 세제곱근 z0를 결정하는 단계; 및
    v. z0값을 식 t=z+ 안으로 대체하는 단계
    를 포함하는 에러 위치 결정 방법.
  3. 제1항에 있어서, 상기 에러 로케이터 다항식을 θ(y)로 변환하는 단계는
    i. 변수를 x=y+r(여기서, r= )로 변환하고 항들을 전개하고 정리하여 γ(y)=σ4y43y3+(σ3r+σ2)y2+(σ3r21)y+σ4r43r32r21r+σ0=0 형태의 방정식을 생성하는 단계;
    ii. r= 을 단계 i의 방정식 안으로 대체하여
    γ(y)=σ4y43y3+[ 2]y2+s (여기서, s는 단계 i의 방정식의 상수항) 형태의 방정식을 생성하는 단계; 및
    iii. θθ(y)=y42y21y+θ2=0 으로 전개되는θθ(y)= (여기서, θθ2= , θθ1= 및 θθ0= )의 해들을 구하는 단계
    를 포함하는 에러 위치 결정 방법.
  4. 리드-솔로몬 (Reed-Solomon) 또는 BCH 코드의 코드 워드 내의 4개 에러들의 위치들을 결정하는 방법에 있어서,
    a. 4차 에러 로케이터 (locator) 다항식 σ(x)=σ4x4+σ3x3+σ2x2+σ1x+σ0을 조작하여 θθ(y)=y42y21y+θ2형태의 다항식을 생성하는 단계;
    b. 상기 다항식을 θ(y)=(y2+t*y+u)*(y2+v*y+w)로 인수 분해하는 단계;
    c. t, u, v 및 w의 값들을 결정하는 단계;
    d. t, u, v 및 w의 값들을 θ(y) 안으로 대체하여 한쌍의 2차 방정식 y2+t*y+u=0 및 y2+v*y+w=0 의 해들을 결정하는 단계;
    e. 상기 한쌍의 2차 방정식의 해들 y0, y1및 y2, y3을 상기 4차 에러 로케이터 다항식의 해들과 연관시키는 단계; 및
    f. 상기 4차 에러 로케이터 다항식의 해들을 상기 코드 워드 내의 위치들과 연관시키는 단계
    를 포함하는 에러 위치 결정 방법.
  5. 제4항에 있어서, 상기 t, u, v 및 w의 값들을 결정하는 단계는
    i. 단계 a 및 b의 다항식들의 계수들을 t+v=0, t*v+u+w=θ2, t*w+v*u=θ1, 및 u*w=θ0로 등화시키는 단계;
    ii. 유일한 미지수 t를 가진 방정식 t32t+θ1=0 을 결정하는 단계;
    iii. 해(root) t0를 구하는 단계;
    iv. 해 u 및 w를 가진 2차 방정식 p2+(θ2+t0 2)p+θ0=0 을 형성하는 단계; 및
    v. u 및 w인 해 p0및 p1을 구하는 단계
    를 포함하는 에러 위치 결정 방법.
  6. 제5항에 있어서, 상기 t32t+θ1=0 의 해를 구하는 단계는
    a. 변수를 t=z+ (여기서 a=θ2)로 변환하여 z3+ 1=0 형태의 방정식을 생성하는 단계;
    b. 단계 a의 방정식에 z3을 곱하여 변수 z3를 가진 2차 방정식 (z3)21z3+a3=0 을 얻는 단계;
    c. 단계 b의 2차 방정식을 z3에 대해 푸는 단계;
    d. z3의 세제곱근 z0를 결정하는 단계; 및
    e. z0값을 식 t=z+ 안으로 대체하는 단계
    를 포함하는 에러 위치 결정 방법.
  7. 제4항에 있어서, 상기 에러 로케이터 다항식을 θ(y)로 변환하는 단계는
    i. 변수를 x=y+r(여기서, r= )로 변환하고 항들을 전개하고 정리하여 γ(y)=σ4y43y3+(σ3r+σ2)y2+(σ3r21)y+σ4r43r32r21r+σ0=0 형태의 방정식을 생성하는 단계;
    ii. r= 을 단계 i의 방정식 안으로 대체하여
    γ(y)=σ4y43y3+[ 2]y2+s (여기서, s는 단계 i의 방정식의 상수항) 형태의 방정식을 생성하는 단계; 및
    iii. θθ(y)=y42y21y+θ2=0 으로 전개되는θθ(y)= (여기서, θθ2= , θθ1= 및 θθ0= )의 해들을 구하는 단계
    를 포함하는 에러 위치 결정 방법.
KR1019970705957A 1995-12-28 1996-12-18 개량된 3, 4개 에러 보정 시스템 KR19980702551A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/580,351 US5710782A (en) 1995-12-28 1995-12-28 System for correction of three and four errors
US8/580351 1995-12-28

Publications (1)

Publication Number Publication Date
KR19980702551A true KR19980702551A (ko) 1998-07-15

Family

ID=24320729

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970705957A KR19980702551A (ko) 1995-12-28 1996-12-18 개량된 3, 4개 에러 보정 시스템

Country Status (8)

Country Link
US (1) US5710782A (ko)
EP (1) EP0830742A4 (ko)
JP (1) JP3830527B2 (ko)
KR (1) KR19980702551A (ko)
CN (1) CN1176714A (ko)
AU (2) AU7681696A (ko)
CA (1) CA2213293A1 (ko)
WO (2) WO1997024812A1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6199188B1 (en) * 1997-10-07 2001-03-06 Quantum Corporation System for finding roots of degree three and degree four error locator polynomials over GF(2M)
US5978956A (en) * 1997-12-03 1999-11-02 Quantum Corporation Five-error correction system
US6343367B1 (en) * 1999-03-29 2002-01-29 Maxtor Corporation Error correction system for five or more errors
US7006530B2 (en) * 2000-12-22 2006-02-28 Wi-Lan, Inc. Method and system for adaptively obtaining bandwidth allocation requests
US7962836B1 (en) * 2000-01-06 2011-06-14 Supertalent Electronics, Inc. Electronic data flash card with bose, ray-chaudhuri, hocquenghem (BCH) error detection/correction
US6671850B1 (en) 2000-05-01 2003-12-30 International Business Machines Corporation On-the-fly algebraic error correction system and method for reducing error location search
US7124064B1 (en) 2001-03-30 2006-10-17 Cisco Technology, Inc. Automatic generation of hardware description language code for complex polynomial functions
US7447982B1 (en) 2001-03-30 2008-11-04 Cisco Technology, Inc. BCH forward error correction decoder
US7003715B1 (en) * 2001-03-30 2006-02-21 Cisco Technology, Inc. Galois field multiply accumulator
US6983414B1 (en) 2001-03-30 2006-01-03 Cisco Technology, Inc. Error insertion circuit for SONET forward error correction
US6792569B2 (en) 2001-04-24 2004-09-14 International Business Machines Corporation Root solver and associated method for solving finite field polynomial equations
CN1561005B (zh) * 2004-02-20 2010-12-08 汇智系统股份有限公司 快速纠双错bch码译码器
JP4891704B2 (ja) * 2006-08-28 2012-03-07 株式会社東芝 半導体記憶装置
JP5259343B2 (ja) * 2008-10-31 2013-08-07 株式会社東芝 メモリ装置
US8453038B2 (en) * 2009-06-30 2013-05-28 Apple Inc. Chien search using multiple basis representation
US9804828B2 (en) 2014-11-24 2017-10-31 Apple Inc. Cubic root of a galois field element
US9473176B2 (en) 2014-11-27 2016-10-18 Apple Inc. Implementation of log and inverse operation in a Galois Field
DE102015118668B4 (de) 2015-10-30 2020-06-04 Infineon Technologies Ag Fehlerkorrektur
CN112468290B (zh) * 2020-10-30 2021-12-10 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和用于数据处理的装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4099160A (en) * 1976-07-15 1978-07-04 International Business Machines Corporation Error location apparatus and methods
US4567594A (en) * 1983-06-07 1986-01-28 Burroughs Corporation Reed-Solomon error detecting and correcting system employing pipelined processors
US4839896A (en) * 1987-02-10 1989-06-13 Data Systems Technology Corp. Fast remainder decoding for a Reed-Solomon code

Also Published As

Publication number Publication date
CA2213293A1 (en) 1997-07-10
CN1176714A (zh) 1998-03-18
JP3830527B2 (ja) 2006-10-04
EP0830742A1 (en) 1998-03-25
AU7681696A (en) 1997-07-28
EP0830742A4 (en) 2003-02-05
WO1997024813A1 (en) 1997-07-10
US5710782A (en) 1998-01-20
JPH11501795A (ja) 1999-02-09
AU1346897A (en) 1997-07-28
WO1997024812A1 (en) 1997-07-10

Similar Documents

Publication Publication Date Title
US6199188B1 (en) System for finding roots of degree three and degree four error locator polynomials over GF(2M)
KR19980702551A (ko) 개량된 3, 4개 에러 보정 시스템
US4849975A (en) Error correction method and apparatus
US4856003A (en) Error correction code encoder
US6374383B1 (en) Determining error locations using error correction codes
US7404134B2 (en) Encoding/decoding device using a reed-solomon encoder/decoder
KR930005427B1 (ko) 실시간 bch 에러 정정 코드 디코딩 메카니즘
US5999959A (en) Galois field multiplier
JPH03136524A (ja) 長バースト誤りに対する誤り検出及び訂正システム
WO2000057561A1 (en) Pipelined high speed reed-solomon error/erasure decoder
WO1989004091A1 (en) Soft decision reed-solomon decoder
US5905740A (en) Apparatus and method for error correction
US6725416B2 (en) Forward error correction apparatus and methods
US5901158A (en) Error correction encoder/decoder
US4841300A (en) Error correction encoder/decoder
US5948117A (en) Modified Reed-Solomon error correction system using (W+i+1)-bit representations of symbols of GF(2w+i)
US5889792A (en) Method and apparatus for generating syndromes associated with a block of data that employs re-encoding the block of data
JP2004032737A (ja) リード−ソロモン復号器
US5761102A (en) System and method for determining the cube root of an element of a galois field GF(2)
US5978956A (en) Five-error correction system
EP1102406A2 (en) Apparatus and method for decoding digital data
US6651214B1 (en) Bi-directional decodable Reed-Solomon codes
US6343367B1 (en) Error correction system for five or more errors
US5450420A (en) Error correction system for correcting errors generated in digital signals
US5787100A (en) Apparatus for determining error evaluator polynomial for use in a Reed-Solomon decoder

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid