KR930008683B1 - 리드-솔로몬 에러 보정 코드 엔코더 - Google Patents

리드-솔로몬 에러 보정 코드 엔코더 Download PDF

Info

Publication number
KR930008683B1
KR930008683B1 KR1019880005339A KR880005339A KR930008683B1 KR 930008683 B1 KR930008683 B1 KR 930008683B1 KR 1019880005339 A KR1019880005339 A KR 1019880005339A KR 880005339 A KR880005339 A KR 880005339A KR 930008683 B1 KR930008683 B1 KR 930008683B1
Authority
KR
South Korea
Prior art keywords
symbol
bit
ecc
symbols
bits
Prior art date
Application number
KR1019880005339A
Other languages
English (en)
Other versions
KR880014463A (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 디지탈 이큅먼트 코포레이션
Publication of KR880014463A publication Critical patent/KR880014463A/ko
Application granted granted Critical
Publication of KR930008683B1 publication Critical patent/KR930008683B1/ko

Links

Images

Classifications

    • 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
    • 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

Abstract

내용 없음.

Description

리드-솔로몬 에러 보정 코드 엔코더
제 1 도는 양호한 에러 보정 코드에 따라 에러 보정기호를 제공하는 엔코더의 기능 계통도. 이 엔코더는 다수의 8-비트 데이타 바이트와 부가 8-비트 의사 데이타 바이트를 억셉트하여 10-비트 ECC기호를 발생시키도록 동작한다.
제 2 도는 본 발명의 양호한 실시예에 따라 구성된 엔코딩 시스템의 기능 계통도. 이 시스템은 CF(210)엔코딩을 사용하여 8-비트 ECC기호를 포함하는 코드 워드를 발생시킨다.
제 3 도는 양호한 실시예의 동작내에 포함된 스텝들의 플로우챠트.
제 4 도는 양호한 실시예에 따라 발생된 수정자 테이블.
* 도면의 주요부분에 대한 부호의 설명
10 : 엔코더 11,13,15 : XOR 회로
12 : 스위치 16,18,20 : 갤로이스 휠드 승산기
22,24,26 : 10-비트레지스터 28 : 출력 단자
29 : 레지스터 30 : 비교기
31 : 게이트 32 : 수정자 테이블
33 : 비트 배치기 33a : 테이블 엔트리 논리
34 : 기호 변형기 36 : 코드 워드 레지스터
39 : 패턴 레지스터
본 발명은 리드-솔로몬(Reed-Solomon)에러 보정 코드 엔코더에 관한 것이다.
디지탈 컴퓨터 시스템 내에서의 데이타의 에러 보정 코딩의 중요성은 대량 기억 매체, 특히 디스크 상에 기록된 데이타의 밀도가 증가함에 따라 증가하였다. 기록 밀도가 높아짐에 따라, 디스크의 기록 표면내의 미세 불완전성은 다량의 데이타를 전와(corrupt)시킬 수 있다. 이 데이타 손실을 방지하기 위해서, 에러 보정 코드("ECC")가, 그 명칭이 의미하는 것과 같이, 에러 데이타를 보정하기 위해 사용된다.
데이타 기호열이 디스크에 기입되기 전에, 이것은 ECC기호를 형성하기 위해 수학적으로 엔코드된다. ECC 기호는 코드 워드(데이타 기호+ECC기호)를 형성하기 위해 데이타 열에 부가되고, 코드 워드들은 디스크 상에 기입 또는 기억된다. 데이타가 디스크로부터 해독될 때, 해독될 데이타 기호를 포함하는 코드 워드들은 디스크로부터 검색되고, 수학적으로 디코드된다. 디코딩 중에, 데이타 내의 소정 에러들은 검출되고, 가능한 경우에 ECC기호를 조작함으로써 보정된다[디코딩의 상세한 설명에 대해서는 MIT Press가 1972년에 발행한 피터슨(Peterson) 및 웰돈(Weldon)저 Error Correction Codes, 제 2 판을 참조].
기억된 디지탈 데이타는 다중 독립 에러를 포함할 수 있다. 다중 에러 보정용으로 사용된 가장 효율적인 형태의 ECC 중 한가지는 리드-솔로몬 코드이다(리드-솔로몬 코드의 상세한 설명에 대해서는 피터슨 및 웰돈 저 Error Correction Codes를 참조). 데이타 기호 열 내의 다중 에러를 보정하기 위해, 리드-솔로몬 코드는 갤로이스 q휠드(Galois Fields)["GF(P)"]로서 공지된 기호 셋트의 여러 수학적 특성을 효율적이고 유효하게 사용하는데, 이때 "p"는 소수(Prime number)이고, "q"는 휠드내의 각 요소(element) 또는 기호 내의 P를 기수로 한 숫자들의 수로서 생각될 수 있다. "P"는 통상적으로 디지탈 컴퓨터 응용시에 값 2를 가지므로 "q"는 각 기호내의 비트의 수이다.
리드-솔로몬 코드에 기초를 둔 ECC가 효율적으로 엔코드 및 보정 또는 "보호(protect)"할 수 있는 기호들의 수는 선택된 갤로이스 휠드의 크기, 즉 Pq개 기호 및 코드가 보정할 수 있는 에러들의 최대수에 의해 제한된다. GF(Pq)에 대한 주기성 리드-솔로몬 코드 워드의 최대 길이는 Pg-1개 기호이다. 그러므로, 코드 워드내에 포함된, ECC에 의해 보호될 수 있는 데이타 기호의 최대수는 Pg-1개 기호 -"n"인데 여기서 "n"은 ECC기호 수이다. 갤로이스 휠드가 커질수록, 코드 워드는 더 길어지고, 소정의 최대수의 에러가 보정되게 하기 위해 ECC가 보호할 수 있는 데이타는 더 많아진다. 그러므로, 더 많은 갤로이스 휠드들이 더 많은 데이타 기호열을 보호하기 위해 사용될 수 있었다. 그러나, 8-비트 코드워드 기호 또는 8의 배수인 비트수를 포함하는 기호를 발생시키지 않는 갤로이스 기호를 사용하면, 시스템의 회로가 복잡해진다.
갤로이스 휠드[GF(28)]은 8-비트 ECC기호를 발생시키는 갤로이스 휠드이다. GF(28)에 기초를 둔 ECC는 2개의 8-비트 ECC기호들이 데이타에 부가되는 경우에 단일 에러에 대해 253개 까지의 8-비트 데이타 기호열 또는 "데이타 바이트"를 보호할 수 있으므로, 코드 워드를 256개 또는 28개 바이트로 길게 만들다. ECC가 1개 이상의 에러를 보정할 경우에, 더 많은 ECC기호들(보정될 각 부수적 에러마다 2개씩)이 코드워드 내에 사용되어야 한다. 이것은 더 적은 데이타 바이트들이 소정 길이의 코드 워드에 대해 보호될 수 있다는 것을 의미한다.
정보는 때때로 512 또는 576개 바이트 길이인 섹터(sector)로 자기 디스크상에 기억된다. 그러므로, GF(28)에 기초를 둔 ECC는 코드를 복잡하게 조작하지 않고서는 전체 512 또는 576개 바이트 섹트를 보호할 수 없다. GF(28)에 기초를 둔 ECC는 전체 섹터를 보호하기에 충분한 코드 워드 길이, 즉 코드 워드 당 210또는 1024개 기호를 갖는다. 그러나, GF(210) 코드내에 사용된 10-비트 기호의 엔코딩 및 디코딩은 소정의 문제점을 제공한다.
더욱 상세하게 말하자면, 컴퓨터 전송 및 기억 하드웨어 바이트, 즉 8-비트 기호, 또는 길이가 8-비트의 소정 배수인 기호용으로 셋 업(set up)된다. 그러므로, 이들은 일반적으로 10-비트 기호의 조작용으로 배열되지 않는다. 그러므로, GF(210) ECC가 사용될 경우, 정보는 처음에 10-비트 기호로서 엔코딩하기 위해, 다음에 바이트로서 전송 및 기억하기 위해, 마지막으로 10-비트 기호로서 디코딩하기 위해 바이트와 10-비트 기호 사이에서 전후로 번역되어야 한다. 엔코더와 디코더에서의 바이트와 10-비트 기호간의 번역 요구는 ECC코딩 프로세스에 다른 스텝의 복잡성을 추가시킨다. GF(28) ECC로 전체 512 또는 576개 바이트 섹터를 보호하기 위해 사용되는 한가지 기술은 ECC GF(28) 코드를 수회 인터리브(interleave)시키는 것이다. 인터리빙은 데이타 기호열을 몇개의 작은 세그먼트로 효율적으로 분할시키고, 각 세스먼트를 엔코드 될 데이타 기호열로서 취급한다. 인터리빙의 장점은 더 많은 수의 데이타 기호들이 소정의 코드에 의해 엔코드 되게 하고, 상이한 코드 워드 내의 인접 데이타 기호를 엔코딩 함으로써 에러 버스트(burst)를 효율적으로 분리시키는 것이다. 한편, 인터리빙은 전형적으로 엔코드하기 위해 2개의 스텝, 즉 엔코드될 데이타를 몇개의 세그먼트로 분리시킨 다음에 각 세그먼트를 코드 워드로 각각 엔코드 시키는 스텝을 포함하고, 디코드시키기 위해 2개의 스텝, 즉 데이타를 각각 디코딩한 다음에 최초 데이타 기호열을 개조하기 위해 데이타 기호들을 결합시키는 스텝을 포함한다. 또한 인터리빙은 덜 효율적인 코드를 발생시킨다. 인터리브된 코드들은 데이타를 소정수의 에로로 부터 보호하기 위해 비-인터리브된 코드에 의해 요구되는 것보다 더 많은 ECC기호를 요구한다.
본 발명은 1023개 까지의 바이트(데이타+ECC코드)를 보호하고 ECC기호로서 8-비트 기호 또는 바이트를 여전히 사용하도록 GF(210)내의 코드 워드를 발생시킬 수 있게 한다. 먼저, 1개 이상의 선정된 의사 데이타 바이트들이 데이타 바이트에 부가되고, 데이타 바이트+의사 데이타 바이트로 구성된 열이 요구된 수의 10-비트 ECC기호를 발생시키기 위해 엔코드된다. 그 다음, 각각의 10-비트 ECC 기호 내의 2개의 선택된 비트들이 공지된 2-비트패턴, 예를들어 "0"에 비교된다. 각각의 10-비트 ECC기호내의 선택된 2개의 비트들이 2-비트 패턴과 동일하면, ECC기호의 선택된 비트들은 무시되거나 절사(truncate)되고, 각각의 ECC기호의 나머지 8개 비트들은 코드 워드를 형성하기 위해 데이타 바이트 및 부가된 의사 데이타 바이트와 연결된다. 코드 워드 바이트는 나중에 디코드될 수 있고, 갤로이스 휠드 가산 및/ 또는 승산용으로 필요한 때 공지된 2-비트 절사 패턴을 부가시킴으로써 소정의 에러 보정이 수행된다.
소정의 ECC 10-비트 기호내의 소정의 선택된 비트들이 절사 패턴과 동일하지 않으면, 부가된 의사 데이타 바이트들은 데이타 바이트+변형 의사 데이타 바이트의 엔코딩이 절사 패턴과 동일한 선택된 비트를 갖고 있는 10-비트 ECC기호를 발생시키도록 변형된다. 공지된 절사 패턴과 동일한 선택된 비트들은 무시되고, 각각의 ECC기호의 나머지 8개 비트들 및 변형 의사 데이타 바이트는 코드 워드로서 데이서 바이트와 함께 기억된다. 다시 변형의사 데이타 바이트 및 ECC기호의 나머지 8-비트는 코드워드의 디코딩 및 에러 보정을 위해 필요한 모든 정보를 바이트로서 포함한다.
의사 데이타 바이트의 변형 및 미리 선택되거나 공지된 2개 비트가 아닌 ECC기호의 8개 비트의 결정은 미리 기억된 테이블에 따라 용이하게 행해진다.
이하, 첨부 도면을 참조하면 본 발명에 대해서 상세하게 기술하겠다.
갤로이스 휠드[GF(210)]은 원시 다항식 p(x)=x10+xx+1에 기초를 두고 있다. GF(210)의 각각의 210개 요소들은 αi로 표시된다(여기서, i=0,1,2,…, 1023). GF(210)상의 리드-솔로몬 코드에 대한 발생기 다항식은 다음과 같은 형태로 되어 있다.
g(x)=(x+(αi)m)*(x+(αi)m+1)*(x+(αi)m+2)……………………(1)
여기서, m 및 i는 사용된 ECC기호들의 수에 따라 선택된 어느 정도의 임의 수인데. 이것은 극한값은 0이 될 수 없다. 발생기 다항식내의 인수들의 수는 코드가 보정하도록 설계되는 에러 및 사용된 엔코더 수에 의해 결정된다.
다음에 기술한 예는 3개 에러를 검출하거나 1개 에러를 보정하고, 2개 에러를 검출하도록 설계된 코드이다. 즉, 이것은 3개의 ECC기호를 갖는다. i=1, m=1이라 하면, 발생기 다항식 g(x)는 다음과 같이 된다.
g(x)=(x+αi)*(x+α2)*(x+α3)…………………………………(2)
이것은 GF(210)승산, 즉 모듈로 p(x), 및 GF(210) 가산, 즉 모듈로 2를 사용하여 전개할 때, 다음과 같이 된다.
g(x)=x3+(α957)x2+(α959)x+α6…………………………………(3)
코드에 요구된 의사 데이타 기호수는 코드내에 사용된 ECC기호수, 절사 패턴내의 비트 수, 즉 ECC기호내의 비트수-코드 워드 기호내의 비트수, 및 코드 워드 패턴내의 비트수에 의해 결정된다. 이것을 식으로 나타내면 다음과 같다.
Figure kpo00001
여기서, "#"는 number(수)의 약어이고, 요구된 의사 데이타 기호수는 소정 나머지에 대한 다음 최고 정수의 끝수를 잘라버린 몫의 정수부이다. 그러므로, 3개의 ECC기호, 코드 워드 내의 8-비트 기호, 및 2-비트 절사 패턴을 갖고 있는 GF(210)코드는 1개의 의사 데이타 기호를 요구한다.
Figure kpo00002
3개의 ECC기호에 있어서, 발생기 다항식(3)의 계수들은 총 1020개 까지의 바이트, 즉 데이타 바이트+선정된 부가 의사 데이타 바이트를 엔코드하기 위해 [스텝(38 및 40), 제 3 도] 제 1 도에 도시한 엔코더(10)내에 사용될 수 있다. 이 예내에서는, K개 데이타 바이트가 엔코드 되고, 1개의 의사 데이타 바이트가 부가된다. K개 데이타 바이트+부가 의사 데이타 바이트를 이하 집합적으로 "K+1 데이타 바이트"라 칭한다. 이 예내에 사용된 부가된 의사 데이타 바이트는 모두-제로)(all-zero)바이트(00000000)이다.
제 1 도를 참조하면, 엔코더(10)은 엔코딩 동작전에 클리어되는 한 셋트의 10-비트 레지스터(22,24 및 26)을 포함한다. 이 레지스터들의 내용은 익스클루시브 OR회로 (XOR)(11,13 및 15)에 각각 인가된다. 엔코더로의 입력은 8개의 입력 라인(14)를 통해 바이트 병렬, 비트 직렬 방식으로 XOR(11)에 인가된다.
입력 동작 중에, 스위치(12)는 XOR(11)의 출력이 갤로이스 휠드 승산기(16,18 및 20)에 인가되도록 위치(12a)내에 있다. 승산기(16 및 18)의 출력은 XOR(13 및 15)에 각각 인가되고, 승산기(20)의 출력은 레지스터(26)에 인가된다. 갤로이스 휠드 승산기(16-20)은 이들의 입력에 인수 α957959및 α6을 각각 승산한다.
따라서, 각 입력 바이트가 엔코더(10)에 인가될 때, 이것은 레지스터(22)의 내용과 합산(모듈로 2)되는데, 2개의 선행 0 비트들은 모듈로 2가산에 필요할 때 입력 바이트에 부가된다. 합은 모든 계수, 그러나 g(x) 내의 x의 최고 누승(power)을 포함하는 갤로이스 휠드 승산기(16-20)에 의해 동시에 승산[모듀리로 p(x)]된다. 바이트 및 계수의 각각의 적(product)은 레지스터(22-26)의 내용에 가산(모듈로 2)된다. 모든 K+1 데이타 바이트들이 엔코더(10)(모든 데이타 바이트들이 인가된 후 엔코더에 의사 데이타 바이트를 인가시키기 위한 타이밍 회로는 도시되어 있지 않다)에 인가된 후, 엔코더 스위치(12)는 위치(12b)내에 배치되고, 레지스터(22-26)의 내용은 출력 단자(28)좌측(제 1 도)으로 내용을 쉬프트시킴으로써 10-비트 ECC기호(S2,S1 및 S0)로서 언로드(unroad)된다. ECC기호들은 레지스터(29, 제 2 도)내에 기억된다. 쉬프팅 동작중에, 스위치(12)가 위치(12b)내에 있고, 라인(14)상의 입력이 0이면, XOR의 수직 입력들은 레지스터(22-26)의 내용을 변형시키지 않고서 통과시킨다. 이 형태의 엔코더 들은 본 분야내에 공지되어 있다.
간단한 예로서, 2개의 데이타 바이트 열, (00000001) 및 (00000010)을 가정한다. 다음의 바이트 열은 엔코더에 로드된다.
(00000001) (00000010) (00000000)
/.......K 데이타 바이트........./.......의사 데이타 바이트.../
엔코더(10)내의 에러 보정 코드 발생후, 레지스터(22-26)의 내용은 10-비트 ECC기호(S2,S1 및 S0)을 제공하도록 언로드된다.
S2=α237=(1111000000)
S1=α207=(0110010010)
S0=α966=(0000111111)
다음에, 레지스터(29)내에 기억된 10-비트 ECC기호의 선택된 2개 비트는 비교기(30, 제 2 도)내에 병렬로 로드된다. 레지스터(39)내에 기억된 2-비트 절사 패턴과 비교된다. 이 예내에서, 선택된 비트들은 선행 2개 비트이고, 선정된 절사 패턴은 "0"이다, 각 기호가 선행 2개 비트로서 "0"을 가졌으며, 비교기(30)은 "정합"신호를 게이트(31)에 제공하게 된다. 게이트(31)은 각각의 ECC기호의 나머지 8개 비트를 코드 워드를 형성하기 위해 [스텝(42,54,56), 제 3 도] 의사 데이타 바이트와 함께 이들을 데이타 열에 부가시키게 되는 코드 워드 레지스터(36)에 통과시키게 된다. 그러나, S1 및 S2의 선행 2개 비트는 모두 0이 아니다. 그러므로, 의사 데이타 바이트는 데이타 바이트 및 변형 의사 데이타 바이트의 엔코딩이 선행 2개 비트로서 "0"을 각각 갖는 10-비트 ECC기호를 발생시키게 되도록 변형기(34)내에서 변형되어야 한다. 각 ECC기호의 최종 8개 비트는 코드 워드 레지스터(36)내에서 코드 워드를 형성하는데 [스텝(42-56), 제 3 도] 사용될 수 있다.
의사 데이타 바이트의 변형 및 최종 ECC기호의 결정은 내용이 테이블 1(제 4 도)내에 도시되어 있는 수정자 테이블(32)에 따라 행해진다(테이블의 발생에 대해서는 다음에 기술한다). 비교기(30)은 비트 배치기(33)을 엔에이블시키는 "비 정합"신호를 제공한다. 비트 배치기(33)은 소정의 선행 2개 비트를 1인 S0,S1 및 S2내에 배치시킨다. 이 정보는 수정자 테이블(32)로 들어가고 테이블로부터 로우(row)를 선택하기 위해 비트 배치기(33)내에 포함된 테이블 엔트리 논리(33a)내에 사용된다. 선택된 테이블 로우들은 다음에 기술한 바와 같이 기호 변형기(34) 내에서 결합되고, 의사 데이타 바이드 및 ECC기호를 변형시키기 위해 사용된다. 발생기 다항식(3)의 경우에, 테이블 1은 수정자 테이블이다. 테이블 1내의 컬럼(D1)은 의사 데이타 바이트용 수정자를 포함하고, 컬럼(S0,S1 및 S2)는 S0-S2용 수정자를 각각 포함한다.
이 예내에서, 테이블 1의 조건(1,2 및 4)가 충족되므로, 테이블은 로우(1,2 및 4)내에 들어간다. 기호(S0,S1,S2,D1)의 수정자는 이 로우들 내의 대응 엔트리들을 가산 (모듈로 2)함으로써 [스텝(50), 제 3 도] 기호 변형기(34)내에서 형성된다.
Figure kpo00003
기호 변형기(34) 내의 레지스터(34b)내에 기억되는 의사 데이타 바이트, 및 비교기(30)으로부터의 "비 정합" 신호에 응답하여 게이트(31)을 통해 기호 변형기(34) 내의 레지스터(34a) 내에 로드되는 ECC기호는 기호[S01,S11.S21및 D11)을 형성하기 위해 수정자를 초기 신호에 가산모듈로 2)함으로써[스텝(52), 제 3 도]기호 변형기(34)내에서 변형된다. 이들은 기호(S0-S2)와 의사 데이타 바이트(즉, D11)을 치환시킨다.
D11=(0000000000)+(0001010010)=(0001010010)=α519
S21=(1111000000)+(1101111100)=(0010111100)=α862
S11=(0110010010)+(0111101011)=(0001111001)=α133
S01=(0000111111)+(0010101101)=(0010010010)=α315
모두 0인 D11,S21,S11,S01의 처음 2개 비트는 전송 또는 기억을 위해 무시되고 [스텝(54), 제 3 도], 코드 워드 레지스터(36)내에 로드된 최종 코드 워드는 다음과 같다.
(00000001) (00000010) (01010010) (10111100) (01111001) (10010010)
α862α133α315
/....데이타......../......의사 데이타 바이트......./......ECC 기호......................./
그러므로, 코드 워드는 바이트열로서 전송 또는 기억될 수 있다.
수신 단부에서의 코드 워드의 디코딩은 엔코딩보다 간단한데, 그 이유는 수정자 테이블이 필요없기 때문이다. 에로 검출용으로 요구되는 전송된 코드 워드의 나머지는 K데이타 바이트와 수신된 코드 워드의 의사 데이타 바이트를 엔코드(제 1 도)시킴으로서 결정된다. 이 지점에서, 의사 데이타 바이트가 폐기될 수 있다. 발생된 ECC기호와 코드워드 내의 ECC기호는 비교될 수 있고, 소정의 에러가 검출되면, 에러 보정 알고리즘이 사용될 수 있다.
지금부터, 수정자 테이블 1을 발생시킨 다음 다중의사 데이타 기호를 갖고 있는 코드에 대한 더욱 일반적인 경우의 수정자 테이블을 취하기 위해 사용될 수 있는 2가지 방법에 대해서 기술한다. 테이블 1을 발생시키기 위한 첫번째 방법은 선행 2개 비트로서 0을 갖는 모든 가능한 GF(210) 기호(즉, 절사 패턴을 포함하는 기호)로부터의 포텐셜(potential) 제 1 컬럼(D1)엔트리의 임의 선택으로 시작되는데, 256개의 가능한 제 1 컬럼 엔트리가 있다. 다음에, 각각의 포텐셜 제 1 컬럼 엔트리들은 대응 포텐셜 테이블로우, 즉 S0-S2에 대한 엔트리를 발생시키기 위해 엔코더(10, 제 1 도)를 사용하여 엔코드된다(절사 패턴내의 각각의 선택된 비트에 대응하는) ECC기호당 2개의 테이블 로우들이 포텐셜 테이블 로우로부터 선택된다. 그러므로 이 예내에서 3개 ECC기호 및 절사 패턴내의 2개 비트가 있는 경우에, 6개 로우가 선택된다.
상세하게 말하자면, 로우내의 모든 엔트리들이 선행 2개 비트로서 0을 갖도록, 즉 절사 비트가 S0기호에 대응하는 컬럼 내의 엔트리를 제외하고는 절사 패턴과 동일하도록 ECC기호(S0)에 대한 2개 테이블 로우들이 선택된다. 이 S0 엔트리들 중 1개의 엔트리는 1인 절사 비트들 중 1개 비트(E)를 가져야 하고, 다른 엔트리는 0인 절사 비트(F)를 가져야 한다. 즉, 절사 비트(E)는 절사 패턴내의 대응 비트의 가법적 연수(inverse)이고, 절사 비트(F)는 절사 패턴내의 대응 비트와 동일하다. 다른 로우는 절사 비트(F)가 대응 절사 패턴 비트의 가법적 역수와 동일하고, 절사 비트(E)가 절사 패턴내의 대응 비트와 동일한 S0 엔트리를 가져야 한다. 대응 로우 선택 기준을 사용하면, ECC 기호(S1 및 S2)에 대한 로우들도 선택된다.
일례로서, S1에 대응하는 테이블 1 내의 로우, 즉 로우(3 및 4)를 고찰한다. 로우(3) 엔트리는 선행 비트 위치내에서 1을 갖고 제 2 비트 위치내에서 0을 갖는 S1컬럼 내의 엔트리를 제외한 각 엔트리의 처음 2개 비트 위치내에서 0을 갖는다. 이와 유사하게, 로우(4) 엔트리는 선행 비트 위치내에서 0을 갖고 제 2 비트 위치내에서 1을 갖는 S1컬럼 내의 엔트리를 제외한 각 엔트리의 처음 2개 비트 위치내에서 0을 갖는다.
로우 선택기준을 만족시키는 2개 테이블 로우들이 각 ECC기호마다 발견될 수 없으며, 코드용으로 선택된 발생기 다항식은 사용될 수 없다. 발생기 다항식(1)내의 m 및 /또는 i에 대한 대체값은 수정자 테이블이 구성될 수 있는 발생기 다항식이 발견될 때까지 선택된다. 이 발생기 다항식은 엔코더(10)내에서 사용된다.
테이블 1을 발생시키기 위한 두번째 방법은 발생기 다항식(3)을 사용한다. (3)내의 계수의 선행 2개 비트는 "dc×c" 매트릭스("매트릭스 A")로 되는 제 1 로우로서 사용되는데, 여기서 d는 식(4)에 의해 결정된 의사 데이타 기호들의 수이고, c는 코드 워드 기호 내의 비트 수이다. 이 예내에서, 매트릭스 A는 "8×8"매트릭스이다. 다음에, 발생기 다항식(3)은 αi(i=1,2,…7)에 의해 승산되고, 각각의 저 다항식 αi[g(x)]의 계수들의 선행 2개 비트들은 매트릭스 A의 로우(2 내지 7)의 요소로서 사용된다. 매트릭스 A를 항등 매트릭스와 가능한 가까운 형태로 되게 하기 위해 로우 약분 방법을 사용하여 매트릭스 A의 "의사 역수", 매트릭스 B가 발생된다. 이 방식내에서, 매트릭스 A의 랭크(rank)(R), 즉 항등 매트릭스의 로우와 유사한 로우를 형성하기 위해 조작될 수 있는 매트릭스의 로우수가 결정될 수 있다. 매트릭스 A가 정방 매트릭스가 아닌한 유일하지 않은 매트릭스 B는 매트릭스 A가 각 로우(a1) 및 매트릭스 B의 각 로우(bj)의 내적(ai*bj)가 다음과 같이 되도록 결정한다.
ai*bj=1, i=j
ai*bj=0, i=j
매트릭스 A의 랭크(R)이 수정자 테이블내에 요구된 로우 수와 동일하면, 매트릭스 B의 R개 로우들이 테이블의 제 1 또는 D1 컬럼내에 각각의 엔트리의 최종 8개 비트로서 사용된다(처음 2개 비트들은 항상 0이다. 즉, 절사비트들은 절사 패턴과 동일하다). 이 제 1 컬럼 엔트리들은 테이블 로우를 발생시키기 위해 엔코더(10)에 의해 각각 엔코드한다.
매트릭스 A의 랭크(R)이 수정자 테이블에 요구된 로우 수와 동일하지 않으면, 다른 발생기 다항식(1)이 선택된다. 즉, m 및/또는 i의 값들은 변하므로, 수정자 테이블이 발생될 수 있다. 통상적으로, i만을 변화시키는 것만으로 충분하다.
수정자 테이블의 기억 요구량은 D1 컬럼으로 감소될 수 있다. S0,S1 및 S2에 대한 수정자는 D1 수정자를 엔코드(제 1 도)시킴으로써 발견될 수 있다. D1 수정자는 D1 수정자 컬럼을 적당히 도입시킴으로써 발견된다. D1 수정자를 엔코딩한 후, 레지스터(22-26)의 S0,S1 및 S1에 대한 수정자로 된다.
상술한 2가지 방법은 상이한 크기의 갤로이스 휠드를 사용하고 1개 이상의 의사 데이타 기호를 사용하여 코드의 수정자 테이블을 발생시키기 위해 확장 형태로 사용될 수 있다. 일반적인 경우에는 (ⅰ) 코드가 보정하기 위해 지정되는 최대 에러수에 따른 ECC기호의 임의 수, (ⅱ) 보호될 데이타 휠드의 크기에 따른 임의적으로 큰 갤로이스 휠드 GF(Pq)(여기서, P는 통상적으로 2이고 휠드의 소자들은 q비트를 갖고 있다), (ⅲ) C비트를 가진 코드 워드 기호(여기서, C는 q이하임), 및 (ⅳ) 기다란 절사 패턴 b비트(여기서 b는 q-c와 동일함)가 있다. 코드에 필요한 의사 데이타 기호의 수 d는 다음과 같이 되도록 식(4)에 의해 결정된다.
Figure kpo00004
그러므로, 상술한 제 1 방법을 사용하여 이러한 수정자 테이블을 발생시키기 위하여, 절사 패턴과 동일한 절사 비트를 갖고 있는 GF(2q)의 요소들은 임의적으로 선택된다. 여기에서 2b개의 이러한 요소들이 있다. 그 다음 선택된 요소들은 sECC 기호와 제 1 의사 데이타 기호(D1)의 포텐셜 테이블 로우 엔트리를 발생시키기 위해 발생기 다항식에 의해 엔코드된다. 그 다음에는 모두-제로 엔트리들이 제 2 (D2), 제 3 (D3)등의 의사 데이타 기호에 대해 D1전에 포텐셜 테이블 로우내에 삽입되고, 테이블 선택 기준을 만족시키는 테이블 로우가 이 포텐셜 테이블 로우로부터 선택된다.
각각의 ECC기호에 대한 로우 선택 기준을 만족시키는 테이블 로우의 적당한 수 b가 얻어질 수 있는 경우에는, 단 1개의 의사 데이타 기호만이 코드에 필요하게 된다. 적당한 수의 테이블 로우가 얻어질 수 없는 경우에는, 일련의 반복이 다음에 기술하는 바와같이 수행된다. 일련의 반복후에도 적당한 수의 테이블 로우가 얻어질 수 없는 경우에는, 발생기 다항식(1)이 수정되어야 한다.
제 1 반복시에는, 2개의 기호, 즉 (00000001)과 (00000000)의 열 t가 제 1 도의 엔코더(10)에서와 같이 발생기 다항식으로 이것을 나눔으로써 엔코드된다. 이것은 다음 형태로 된 다항식 f(x)를 발생시킨다.
f(x)=x8+Oxbuxcvxdwx+αy(5)
그 다음, 포텐셜 제 1 컬럼 엔트리는 상술한 바와같이 임의적으로 선택되고, 대응하는 포텐셜 테이블 로우 엔트리가 이것들을 엔코딩함으로써, 즉, f(x)로 이것들을 엔코딩함으로써, 즉, f(x)로 이것들을 승산시킴으로써 발생된다. 그 다음에는 ECC기호와 제 1 의 2개의 의사 데이타 기호(D1 및 D2)의 이 엔트리들은 사용하고 나머지 의사 데이타 기호의 엔트리로서 모두-제로 기호를 사용함으로써 엔트리 테이블 로우가 형성된다. 그 다음에는 로우 선택 기준을 만족시키는 부수적인 테이블 로우가 이 포텐셜 테이블 로우들로 부터 선택된다.
적당한 수의 테이블 로우가 아직도 얻어지지 않은 경우에는, 제 2 반복이 수행된다. 이 반복시에는, 3개의 기호열 t', 즉(00000001),(00000000) 및 (00000000)이 엔코드된다. 그 다음에는 포텐셜 로우가 발생되고 적당한 테이블 로우가 상술한 바와같이 선택된다. 테이블이 아직도 얻어지지 않는 경우에는 이미 엔코드된 기호 t'의 열에 부수적인 모두-제로 기호를 추가하고 그 다음 상술한 포텐셜 로우 발생 및 테이블 로우 선택 스텝을 취함으로써 부수적인 반복이 수행될 수 있다.
수행될 수 있는 반복 횟수에는 d-1의 제한이 있다. 수정자 테이블이 d-1 반복후에 발생될 수 없는 경우에는, 발생기 다항식이 수정되어야 하고, 테이블이 발생될때까지 수정된 발생기 다항식으로 반복이 실행되어야 한다.
1개 이상의 의사 데이타 기호로 코드용 수정자 테이블을 발생시키기 위한 다른 방법은 확장 매트릭스 방법이다. 이 방법은 다음과 같이 수행된다. 즉, 매트릭스 A의 제 1 C로우가 다항식 계수의 b비트를 사용하고 제 2 (D2), 제 3 (D3)등의 의사 데이타 기호용의 모두-제로 엔트리를 사용하여 테이블 1을 발생시키기 위한 매트릭스 방법에서 기술한 바와같이 발생된다. 다음의 C로우는 다항식(5)를 사용하여 동일한 방식으로 발생된다. 즉, 다항식(5)의 계수의 선행 b비트는 매트릭스의 로우 c+1의 엔트리로서 사용되고, 그 다음 다항식(5)는 αi, i=1,2,…, C-1로 승산되며, 각각의 계수의 선행 b비트는 매트릭스의 로우 C+2 내지 2C의 엔트리로서 사용된다. 이 매트릭스 로우 발생과정은 "dc×c"매트릭스가 얻어질때까지 기호 t,t'등의 다수의 열을 엔코딩함므로써 반복된다. 또한, 매트릭스의 "의사 역수"가 발생되고, 랭크가 결정되며, 랭크가 수정자 테이블 내에 필요한 로우의 수과 동일한 경우에는, 상술한 바와같이 이 매트릭스로 부터 테이블이 발생된다.
매트릭스 A의 랭크가 수정자 테이블 내에 필요한 로우의 수와 동일하지 않은 경우에는, 발생기 다항식(1)이 수정되어야 한다. 통상적으로, i의 값은 수정자 테이블이 발생될 수 있게 하는 발생기 다항식이 결정될 때까지 변화된다.

Claims (14)

  1. 최대 d개의 에러가 보정될 수 있도록 갤로이스 휠드의 요소인 q-비트 계수를 갖고 있는 발생기 다항식 q(x)와 갤로이스 휠드(Pq)상의 수정된 리드-솔로몬 에러 보정 코드("ECC")를 사용하여 데이타 기호를 코드 워드로 엔코딩시키기 위한 방법에 있어서, (A) d개의 q-비트 ECC기호를 발생시키기 위해 k개의 데이타 기호와 L개의 선정된 의사 데이타 기호를 엔코딩하는 수단, (B) 각각의 q-비트 ECC기호 내의 n개의 선택된 비트가 선정된 절사 패턴에 정합되는지의 여부를 확인하여, 소정의 선택된 비트가 절사 패턴 내의 대응 비트에 정합되지 않는 경우에, 비-정합 비트의 위치를 확인하는 수단, (C) (a) 각각의 q-비트 ECC 정합된다는 결정에 응답하여, 선택된 비트들이 아닌 q-비트 ECC기호의 q-n 비트들로 각각 형성된 k개의 데이타 기호, L개의 의사 데이타 기호 및 d개의 ECC기호를 포함하는 코드 워드를 형성한는 수단 (b) 최소한 1개의 q-비트 ECC기호 내의 선택된 n개의 비트가 패턴에 정합되지 않는다는 결정에 응답하여, (가) 데이타 기호 및 수정된 의사 데이타 기호로 구성된 열의 엔코딩이 각각의 대체 EC기호의 선택된 n개의 비트들이 패턴에 정합되는 q-비트 대체 ECC기호를 발생시키도록 L개의 수정된 의사 데이타 기호를 제공하기 위해 선정된 의사 데이타 기호를 수정하는 수단, 및 (나) 선택된 비트가 아닌 q-비트 대체 ECC기호의 q-n 비트들로 각각 형성된 k개의 데이타 기호, L개의 수정된 의사 데이타 기호 및 d개의 ECC기호를 포함하는 코드 워드를 형성하는 수단을 포함하는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서, 수정 수단이, (A) 선정된 n-비트 패턴 내의 대응 비트와 정합되지 않는 d개의 q-비트 ECC기호의 각각의 선택된 n개의 비트에 위치에 응답하여 각각의 q-비트 ECC기호의 수정자 테이블 내에서 1개 이상의 엔트리 로우를 선택하는 수단, (B) 각각의 선택된 테이블 로우 내의 컬럼 엔트리들이 각각의 다른 선택된 테이블 로우 내의 대응 엔트리들에 가산되도록 선택된 테이블 로우에 모듈로 P를 가산함으로써 L개의 의사 데이타 기호 수정자 및 d개의 q-비트 ECC기호 수정자를 형성하는 수단, 및 (C) 대응하는 의사 데이타 기호 및 ECC기호에 모듈로 P, 의사 데이타 기호 수정자 및 ECC기호 수정자를 가산함으로써 L개의 의사 데이타 기호와 q-비트 ECC기호를 수정하는 수단을 포함하는 것을 특징으로 하는 방법.
  3. 제 2 항에 있어서, 수정자 테이블이 nd개의 로우와 d+L개의 컬럼으로 구성되고, 제 1 의 L개의 컬럼이 각각의 L개의 의사 데이타 기호와 관련되며, 한 컬럼이 각각의 d개의 ECC기호와 관련되고, 테이블이, (A) 각각의 포텐셜 d+1 컬럼 엔트리의 선택된 n 개의 비트들이 절사 패턴에 정합되도록 GF(Pq) 요소들로부터 수정자 테이블용의 포텐셜 d+1 컬럼 엔트리(여기서 d+1 컬럼은 제 1 의사 데이타 기호와 관련됨)을 선택하는 수단, (B) 각각의 포텐셜 d+1 컬럼 엔트리가 나머지 L-1개의 의사 데이타 기호와 d개의 코드 기호용의 모두-제로 엔트리들과 함께 포텐셜 테이블 로우를 형성하도록 각각의 포텐셜 d+1 컬럼 엔트리에 대응하는 d개의 코드 기호를 발생시키기 위해, 제 1 항에서 엔코드하기 위해 사용한 동일한 알고리즘에 의해 포텐셜 d+1 컬럼 엔트리를 분리식으로 엔코딩하는 수단, 및 (C) (a) 각각의 ECC기호가 이에 관련된 n개의 로우를 갖고, (b) 각각의 n개의 로우내에서, ECC기호에 관련된 컬럼 내의 코드 기호가 절사 패턴에 정합되지 않는 n개의 선택된 비트들 중 한 비트를 가지며, (c) 각각의 n개의 로우가 절사 패턴에 정합되지 않는 선택된 n개의 비트들중 상이한 한 비트를 갖도록 포텐셜 테이블 로우로 부터 테이블 로우를 선택하는 수단에 의해 발생되는 것을 특징으로 하는 방법.
  4. 제 2 항에 있어서, 수정자 테이블이 nd개의 로우와 d+L개의 컬럼으로 구성되고, 제 1 의 L개의 컬럼이 각각의 L개와 의사 데이타 기호와 관련되며, 한 컬럼이 각각의 d개의 ECC기호와 관련되고 테이블이, (A) (L) "(q-n)×q-n"매트릭스의 저부 로우의 nd요소로서 요소 비트를 사용하고 나머지 저부 로우 요소들에 대해 모두-제로를 사용하여, q-비트 ECC기호의 n개의 선택된 비트와 동일한 비트 위치를 갖는 n개의 요소 비트들을, q(x)의 각각의 q-비트 계수로 부터 선택하는 수단, (B) 수정된 계수를 제공하도록 갤로이스 휠드(Pq)의 근본 요소 α로 각각의 계수 기호를 승산[모듈로 P(x)]시키는 수단, (C) 매트릭스의 다음 로우의 nd요소로서 수정된 계수의 요소 비트를 사용하고 나머지 로우 요소들에 대해 모두-제로를 사용하는 수단, 및 (D) 매트릭스가 q-n개의 로우를 포함할때 까지 수단(B 및 C)를 반복하는 수단에 의해 발생되는 것을 특징으로 하는 방법.
  5. 제 1 항에 있어서, 갤로이스 휠드 GF(P)가 512개 또는 576개의 데이타 기호로 구성된 데이타 블럭이 엔코드될 수 있도록 선택된 것을 특징으로 하는 방법.
  6. 제 1 항에 있어서, 갤로이스 휠드가 GF(210)이고, 데이타 기호 및 코드 워드 ECC기호가 8개의 비트길이로 되도록 선정된 절사 패턴이 2개의 비트 길이로 된 것을 특징으로 하는 방법.
  7. 제 6 항에 있어서, 선정된 패턴이 선행되는 2개의 기호 비트 위치내의 2개의 제로(ZERO)로 구성된 것을 특징으로 하는 방법.
  8. 최대 d개의 에러가 보정될 수 있도록 갤로이스 휠드의 요소인 q-비트 계수를 갖고 있는 발생기 다항식 q(x)와 갤로이스 휠드(Pq)상의 수정된 리드-솔로몬(Reed-Solomon) 에러 보정 코드("ECC")를 사용하여 데이타 기호를 코드 워드로 엔코딩시키기 위한 장치에 있어서, (A) q-비트 ECC 기호를 발생시키기 위해 K개의 데이타 기호와 L개의 선정된 의사 데이타 기호를 엔코딩시키기 위한 장치, (B) 각각의 q-비트 ECC 기호 내의 n개의 선택된 비트가 절사 패턴에 정합되는지의 여부를 확인하여, 소정의 선택된 비트가 절사 패턴 내의 대응 비트에 정합되지 않는 경우에, 비-정합 비트의 위치를 확인하기 위한 장치, 및 (C) (a) 각각의 q-비트 ECC 기호 내의 선택된 n개의 비트가 패턴에 정합된다는 결정에 응답하여, 선택된 비트들이 아닌 q-비트 ECC기호의 q-n 비트들로 각각 형성된 K개의 데이타 기호, L개의 의사 데이타 기호 및 d개의 ECC 기호를 포함하는 코드 워드를 형성하기 위한 장치, (b) 최소한 1개의 q-비트 ECC기호 내의 선택된 n개의 비트가 패턴에 정합되지 않는다는 결정에 응답하여, (가) 데이타 기호 및 수정된 의사 데이타 기호로 구성된 열의 엔코딩이 각각의 대체 ECC 기호의 선택된 n개의 비트들이 패턴에 정합되는 q-비트 대체 ECC 기호를 발생시키도록 L개의 수정된 의사 데이타 기호를 제공하기 위해 선정된 의사 데이타 기호를 수정하기 위한 장치, 및 (나) 선택된 비트가 아닌 q-비트 대체 ECC기호의 q-비트 비트들로 각각 형성되는 K개의 데이타 기호, L개의 수정된 의사 데이타 기호 및 d개의 ECC 기호를 포함하는 코드 워드를 형성하기 위한 장치로 구성된 것을 특징으로 하는 엔코딩 장치.
  9. 제 8 항에 있어서, 수정장치가, (A) 선정된 n-비트 패턴내의 대응 비트와 정합되지 않는 d개의 q-비트 ECC 기호의 각각의 선택된 n개의 비트의 위치에 응답하여 각각의 q-비트 ECC 기호의 수정자 테이블내에서 1개 이상의 엔트리 로우를 선택하기 위한 장치, (B) 각각의 선택된 테이블 로우내의 컬럼 엔트리들이 각각의 다른 선택된 테이블 로우내의 대응 엔트리들에 가산되도록 선택된 테이블 로우에 모듈로 P를 가산함으로써 L개의 의사 데이타 기호 수정자 및 d개의 q-비트 ECC 기호 수정자를 형성하기 위한 장치, 및 (C) 대응하는 의사 데이타 기호 및 ECC 기호에 모듈로 P, 의사 데이타 기호 수정자 및 ECC 기호 수정자를 가산함으로써 L개의 의사 데이타 기호와 q-비트 ECC 기호를 수정하기 위한 장치를 포함하는 것을 특징으로 하는 엔코딩 장치.
  10. 제 9 항에 있어서, 수정자 테이블이 nd개의 로우와 d+L개의 컬럼으로 구성되고, 제 1 의 L개의 컬럼이 각각의 L개의 의사 데이타 기호와 관련되며, 한 컬럼이 각각의 d개의 ECC 기호와 관련되고, 테이블이, (A) 각각의 포텐셜 d+1 컬럼 엔트리의 선택된 n개의 비트들이 절사 패턴에 정합되도록 GF(Pq) 요소들로부터 수정자 테이블용의 포텐셜 d+1 컬럼 엔트리(여기서 d+1 컬럼은 제 1 의사 데이타 기호와 관련됨)을 선택하는 수단, (B) 각각의 포텐셜 d+1 컬럼 엔트리가 나머지 L-1개의 의사 데이타 기호와 d개의 코드 기호 용의 모두-제로 엔트리들과 함께 포텐셜 테이블 로우를 형성하도록 각각의 포텐셜 d+1 컬럼 엔트리에 대응하는 d개의 코드기호를 발생시키기 위해, 제 1 항에서 엔코드하기 위해 사용한 동일한 알고리즘에 의해 포텐셜 d+1 컬럼 엔트리를 분리식으로 엔코딩하는 수단, (C) (a) 각각의 ECC 기호가 이에 관련된 n개의 로우를 갖고, (b) 각각의 n개의 로우내에서, ECC 기호에 관련된 컬럼 내의 코드기호가 절사 패턴에 정합되지 않는 n개의 선택된 비트들 중 한 비트를 가지며, (c)각각의 n개의 로우가 절사 패턴에 정합되지 않는 선택된 n개의 비트들 중 상이한 비트를 갖도록, 포텐셜 테이블 로우로부터 테이블 로우를 선택하는 수단, (D) L이 1 이상인 경우에, 다항식 f(x)를 발생시키기 위해, 2개의 q-비트 기호, 즉, 1이 뒤따르는 q-1 제로로 구성된 제1q-비트 기호와 모두 제로로 구성된 제 2q-비트 기호의 기호 열S를 제 1 항에서 엔코드하기 위해 사용한 동일한 알고리즘에 의해 엔코딩하는 수단, (E) 수단(A)에서와 같이. 수정자 테이블용의 포텐셜 d+2 컬럼 엔트리(여기서, d+2 컬럼은 제 2 의사 데이타 기호와 관련됨)를 선택하는 수단, (F) 각각의 포텐셜 d+2 컬럼 엔트리가 나머지 L-2개의 의사 데이타 기호와 d+1개의 코드워드 기호용의 모두-제로 엔트리와 함께 포텐셜 테이블 로우를 형성하도록 각각의 포텐셜 d+2 컬럼 엔트리에 대응하는 d+1개의 코드기호를 발생시키기 위해 포텐셜 엔트리를 다항식 f'(x)로 승산시킴으로써 포덴셜 d+2 컬럼 엔트리를 분리식으로 엔코딩하는 수단, (G) 수단(C)에서와 같이 포텐셜 테이블 로우로부터 테이블 로우를 선택하는 수단, (H) L이 2이상인 경우에, 다항식 f(x)를 발생시키기 위해, 3개의 q-비트 기호, 즉 기호열 S내의 기호와 동일한 제 1 의 2개의 기호 및 모두-제로로 구성된 제 3 의 기호의 기호 열S'를 제 1 항에서 엔코드하기 위해 사용한 동일한 알고리즘에 의해 엔코딩하는 수단 (E) 수단(A)에서와 같이, 수정자 테이블용의 포텐셜 d+3 컬럼 엔트리(여기서, d+3 컬럼은 제 3 의사 데이타 기호와 관련됨)을 선택하는 수단, (J) 수단(F)에서와 같이, 각각의 d+3개의 포텐셜 컬럼 엔트리에 대한 포텐셜 테이블 로우를 발생시키기 위해 f(x)를 f'(x)로 대체하여 수단(F)를 반복하는 수단, (K) 수단(C)에서와 같이 포텐셜 테이블 로우로부터 포텐셜 로우를 션택하는 수단, (L) nd개의 테이블 로우가 선택될 때까지 기호 열S'가 각각의 반복으로 1개의 모두-제로 기호만큼 확장되도록 수단(H 내지 K)를 반복하는 수단에 의해 발생되는 것을 특징으로하는 엔코딩 장치.
  11. 제 9 항에 있어서, 수정자 테이블이 nd개의 로우와 d+L개의 컬럼으로 구성되고, 제 1 의 L개의 컬럼이 각각의 L개의 의사 데이타 기호와 관련되며, 한 컬럼이 각각의 d개의 ECC 기호와 관련되고, 테이블이, (A) 매트릭스의 저부 로우의 nd 요소로서 요소 비트를 사용하고 나머지 저부 로우 요소들에 모두-제로를 사용하여, q-비트 ECC 기호의 n개의 선택된 비트와 동일한 비트 위치를 갖고 있는 n개의 요소 비트들을, g(x)의 각각의 q-비트 계수로부터 선택하는 수단, (B) 수정된 계수를 제공하도록 갤로이스 휠드(Pq)의 근본 요소 α로 각각의 계수 기호를 승산[모듈로 P(x)]시키는 수단, (C) 매트릭스의 다음 로우의 nd 요소로서 수정된 계수의 요소 비트를 사용하고 나머지 로우 요소들에 대해 모두-제로를 사용하는 수단, (D) 매트릭스가 q-n로우를 포함할 때까지 수단(B) 및 (C)를 반복하는 수단, (E) L이 1이상인 경우에, 다항식 f(x)를 발생시키기 위해 제 3 항에서와 같이 기호 열S를 엔코딩하는 수단, (F) 매트릭스가 (2)(q-n) 로우를 포함할 때까지 발생기 다항식을 f(x)로 대체하여 수단(A 내지 D)를 반복하는 수단, (G) L이 2이상인 경우에, 다항식 f'(x)를 발생시키기 위해 제 3 항에서와 같이 기호 열S'를 엔코딩하고, 매트릭스가 (3)(q-n) 로우를 포함할 때까지 f(x)를 f'(x)로 대체하여 수단(A 내지 D)를 반복하는 수단, (H) 매트릭스가 (L)(q-n) 로우를 포함할 때까지 기호 열S'가 각각의 반복으로 한개의 모두-제로 기호만큼 확장되도록 수단(G)를 반복하는 수단, (I) 동일 매트릭스에 가능한 한 근접한 형태로 매트릭스를 조정하기 위해 로우 감소를 사용함으로써 매트릭스의 의사 역수를 형성하는 수단, (J) 테이블의 d+1개의 컬럼 내의 최종적인 엔트리의 q-n 비트(n개의 선택된 비트가 아닌 기호 비트에 대응함)로서 의사 역수 매트릭스의 각각의 제 1 의 nd로우를 사용함으로써 수정자 테이블의 d+1개의 컬럼을 형성하는 수단, (K) 최종적인 엔트리의 q-n 비트와 선택된 q-비트 절사 패턴을 결합시킴으로써 q-비트 d+1 컬럼 테이블 엔트리를 발생시키는 수단, (L) 각각의 로우가 d+1개의 컬럼 엔트리, d개의 컬럼 엔트리 및 나머지 L-1 컬럼용의 모두-제로 엔트리로 구성된 테이블의 로우용의 d개의 엔트리를 발생시키기 위해 제 1 항에서 엔코드하기 위해 사용한 동일한 알고리즘에 의해 각각의 d+1개의 컬럼 엔트리를 엔코딩하는 수단, (M) 의사 역수 매트릭스의 각각의 제 2 의 nd 로우를 사용하고 수단(J 내지 M)을 반복함으로써 수정자 테이블의 d+2개의 컬럼을 형성하는 수단, 및 (N) 수정자 테이블의 나머지 L-3 컬럼 및 이에 관련된 로우를 형성하기 위해 수단(M)을 반복하는 수단에 의해 발생되는 것을 특징으로 하는 엔코딩 장치.
  12. 제 8 항에 있어서, 갤로이스 휠드 GF(Pq)가 512개 내지 576개의 데이타 기호로 구성된 데이타 블럭이 엔코드될 수 있도록 선택된 것을 특징으로 하는 엔코딩 장치.
  13. 제 8 항에 있어서, 갤로이스 휠드가 GF(210)이고, 데이타 기호 및 ECC 기호가 8개의 비트 길이로 되도록 선정된 패턴이 2개의 비트 길이로 된 것을 특징으로 하는 엔코딩 장치.
  14. 제 13 항에 있어서, 선정된 패턴이 선행하는 2개의 기호 비트 위치내의 2개의 제로로 구성된 것을 특징으로 하는 엔코딩 장치.
KR1019880005339A 1987-05-07 1988-05-07 리드-솔로몬 에러 보정 코드 엔코더 KR930008683B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US047627 1987-05-07
US07/047,627 US4856003A (en) 1987-05-07 1987-05-07 Error correction code encoder

Publications (2)

Publication Number Publication Date
KR880014463A KR880014463A (ko) 1988-12-23
KR930008683B1 true KR930008683B1 (ko) 1993-09-11

Family

ID=21950022

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019880005339A KR930008683B1 (ko) 1987-05-07 1988-05-07 리드-솔로몬 에러 보정 코드 엔코더

Country Status (8)

Country Link
US (1) US4856003A (ko)
EP (1) EP0290349B1 (ko)
JP (1) JPH02500318A (ko)
KR (1) KR930008683B1 (ko)
AU (1) AU602401B2 (ko)
CA (1) CA1312953C (ko)
DE (1) DE3852423T2 (ko)
WO (1) WO1988009010A1 (ko)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63316524A (ja) * 1987-06-18 1988-12-23 Sony Corp リ−ド・ソロモン符号の復号方法
US4989211A (en) * 1988-05-12 1991-01-29 Digital Equipment Corporation Sector mis-synchronization detection method
US5146560A (en) * 1988-05-31 1992-09-08 Digital Equipment Corporation Apparatus for processing bit streams
US5136592A (en) * 1989-06-28 1992-08-04 Digital Equipment Corporation Error detection and correction system for long burst errors
JPH03272224A (ja) * 1990-03-20 1991-12-03 Canon Inc 情報信号処理方法
US5224106A (en) * 1990-05-09 1993-06-29 Digital Equipment Corporation Multi-level error correction system
US5280488A (en) * 1990-11-08 1994-01-18 Neal Glover Reed-Solomon code system employing k-bit serial techniques for encoding and burst error trapping
DE69233530T2 (de) * 1991-04-10 2006-05-11 Mitsubishi Denki K.K. Kodierer und Dekodierer
US5428630A (en) * 1993-07-01 1995-06-27 Quantum Corp. System and method for verifying the integrity of data written to a memory
US5784387A (en) * 1994-10-31 1998-07-21 International Business Machines Corporation Method for detecting start-of-frame, end of frame and idle words in a data stream
JP3234130B2 (ja) 1995-05-30 2001-12-04 三菱電機株式会社 誤り訂正符号復号化方法およびこの方法を用いる回路
US5778009A (en) * 1995-06-14 1998-07-07 Quantum Corporation Dedicated ALU architecture for 10-bit Reed-Solomon error correction module
US5822336A (en) * 1996-11-14 1998-10-13 Quantum Corporation Modified reed solomon code selection and encoding system
US5948117A (en) * 1997-01-23 1999-09-07 Quantum Corporation Modified Reed-Solomon error correction system using (W+i+1)-bit representations of symbols of GF(2w+i)
FR2767940A1 (fr) * 1997-08-29 1999-02-26 Canon Kk Procedes et dispositifs de codage et de decodage et appareils les mettant en oeuvre
US5889794A (en) * 1997-09-30 1999-03-30 Quantum Corporation Two-level error correction encoder
JP4126795B2 (ja) * 1999-02-12 2008-07-30 ソニー株式会社 疑似積符号復号装置及び方法
US6772390B2 (en) 2000-11-30 2004-08-03 Quantum Corporation Erasure correction for ECC entities
US6609225B1 (en) * 2000-12-21 2003-08-19 Cisco Technology, Inc. Method and apparatus for generating and checking cyclic redundancy code (CRC) values using a multi-byte CRC generator on a variable number of bytes
US6766493B1 (en) 2000-12-21 2004-07-20 Cisco Technology, Inc. Method and apparatus for generating and checking cyclic redundancy code (CRC) values using a CRC generator and binary galois field multiplier
US20020199153A1 (en) * 2001-06-22 2002-12-26 Fall Thomas G. Sampling method for use with bursty communication channels
US7349691B2 (en) * 2001-07-03 2008-03-25 Microsoft Corporation System and apparatus for performing broadcast and localcast communications
US6895546B2 (en) * 2001-08-16 2005-05-17 Broad-Light Ltd. System and method for encoding and decoding data utilizing modified reed-solomon codes
EP1293978A1 (en) * 2001-09-10 2003-03-19 STMicroelectronics S.r.l. Coding/decoding process and device, for instance for disk drives
US7181677B1 (en) * 2003-02-10 2007-02-20 Maxtor Corporation System and method for producing data and ECC code words using a high rate restricted-symbol code
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
US8683296B2 (en) 2011-12-30 2014-03-25 Streamscale, Inc. Accelerated erasure coding system and method
US8914706B2 (en) 2011-12-30 2014-12-16 Streamscale, Inc. Using parity data for concurrent data authentication, correction, compression, and encryption

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57207960A (en) * 1981-06-17 1982-12-20 Toshiba Corp Method for adding error correcting code to variable length data
FR2533091A1 (fr) * 1982-09-13 1984-03-16 Cii Honeywell Bull Systeme de detection et de correction d'erreurs de transmission d'un message binaire utilisant un code cyclique detecteur et correcteur d'erreurs de type reed-solomon entrelace
US4494155A (en) * 1982-11-08 1985-01-15 Eastman Kodak Company Adaptive redundance in data recording
US4683571A (en) * 1984-05-30 1987-07-28 Victor Company Of Japan, Ltd. Digital signal decoding system
US4623999A (en) * 1984-06-04 1986-11-18 E-Systems, Inc. Look-up table encoder for linear block codes
US4706250A (en) * 1985-09-27 1987-11-10 International Business Machines Corporation Method and apparatus for correcting multibyte errors having improved two-level code structure
US4703485A (en) * 1986-02-10 1987-10-27 International Business Machines Corporation Method and apparatus for computing and implementing error detection check bytes
JPS63316524A (ja) * 1987-06-18 1988-12-23 Sony Corp リ−ド・ソロモン符号の復号方法
AU606694B2 (en) * 1987-06-22 1991-02-14 Sony Corporation Method and apparatus for decoding reed-solomon code

Also Published As

Publication number Publication date
DE3852423T2 (de) 1995-08-10
AU1567188A (en) 1988-11-10
AU602401B2 (en) 1990-10-11
CA1312953C (en) 1993-01-19
EP0290349A2 (en) 1988-11-09
WO1988009010A1 (en) 1988-11-17
EP0290349A3 (en) 1991-04-24
DE3852423D1 (de) 1995-01-26
KR880014463A (ko) 1988-12-23
US4856003A (en) 1989-08-08
JPH02500318A (ja) 1990-02-01
EP0290349B1 (en) 1994-12-14

Similar Documents

Publication Publication Date Title
KR930008683B1 (ko) 리드-솔로몬 에러 보정 코드 엔코더
US6615387B1 (en) Method and apparatus for error detection
US5465260A (en) Dual purpose cyclic redundancy check
US5136592A (en) Error detection and correction system for long burst errors
US5999959A (en) Galois field multiplier
US6148430A (en) Encoding apparatus for RAID-6 system and tape drives
US5901158A (en) Error correction encoder/decoder
JPS6273336A (ja) マルチバイト・エラ−訂正方法及びシステム
US5948117A (en) Modified Reed-Solomon error correction system using (W+i+1)-bit representations of symbols of GF(2w+i)
US5905740A (en) Apparatus and method for error correction
US20050149832A1 (en) Methods and apparatus for coding and decoding data using reed-solomon codes
KR19980702551A (ko) 개량된 3, 4개 에러 보정 시스템
US5107506A (en) Error trapping decoding method and apparatus
US5822336A (en) Modified reed solomon code selection and encoding system
US6643819B1 (en) Hybrid root-finding technique
US5889794A (en) Two-level error correction encoder
KR200141094Y1 (ko) 비씨에이취 코드워드를 부호화하는 장치
US6405339B1 (en) Parallelized programmable encoder/syndrome generator
US6735737B2 (en) Error correction structures and methods
US4298981A (en) Decoding shortened cyclic block codes
EP0341851A2 (en) Method and apparatus for interleaved encoding
US7287207B2 (en) Method and apparatus for computing parity characters for a codeword of a cyclic code
JP2000187948A (ja) 誤り訂正符号化/復号化方式及び誤り訂正符号化/復号化装置

Legal Events

Date Code Title Description
A201 Request for examination
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 19980904

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee