KR20070098426A - 오류 정정 장치 - Google Patents

오류 정정 장치 Download PDF

Info

Publication number
KR20070098426A
KR20070098426A KR1020060089951A KR20060089951A KR20070098426A KR 20070098426 A KR20070098426 A KR 20070098426A KR 1020060089951 A KR1020060089951 A KR 1020060089951A KR 20060089951 A KR20060089951 A KR 20060089951A KR 20070098426 A KR20070098426 A KR 20070098426A
Authority
KR
South Korea
Prior art keywords
error
data
correction
syndromes
syndrome
Prior art date
Application number
KR1020060089951A
Other languages
English (en)
Other versions
KR100848614B1 (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 KR20070098426A publication Critical patent/KR20070098426A/ko
Application granted granted Critical
Publication of KR100848614B1 publication Critical patent/KR100848614B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • 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
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1525Determination and particular use of error location polynomials
    • 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/1545Determination of error locations, e.g. Chien search or other methods or arrangements for the determination of the roots of the error locator polynomial

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

본 발명은 리드 솔로몬 부호의 복호 처리에 있어서 계산량을 삭감하고, 처리를 고속화하는 것을 목적으로 한다.
오류 정정수(t)의 리드 솔로몬 부호를 복호할 때, 신드롬 계산부(501)는 첫 번째 데이터 열로부터 2t+1개의 신드롬을 계산하고, 신드롬 보존부(502)에 저장한다. 오류 위치 다항식 계산부(504)는 이들 신드롬으로부터 벌리캠프메시법(Berlekamp Massey method)에 의해 2t+1개의 다항식을 계산하고, 비교부(505)는 2t 번째의 다항식과 2t+첫 번째의 다항식이 일치하지 않으면, 정정 실패라고 판정한다. 신드롬 갱신부(503)는 첫 번째 데이터 열의 각 신드롬을 갱신함으로써 2 번째 이후의 데이터 열의 각 신드롬을 구하고, 오류 위치 다항식 계산부(504)에 출력한다.

Description

오류 정정 장치{ERROR CORRECTION APPARATUS}
도 1은 본 발명의 오류 정정 장치의 원리도.
도 2는 기록 재생 장치의 구성도.
도 3은 ECC 부호기의 구성도.
도 4는 본 발명의 송신어 열(transmission word string)의 포맷을 도시한 도면.
도 5는 본 발명의 ECC 복호기의 구성도.
도 6은 복수의 복호 후보의 차이를 도시한 도면.
도 7은 신드롬 갱신부의 처리 흐름도.
도 8은 오류 위치 다항식 계산부의 처리 흐름도.
도 9는 비교부의 처리 흐름도.
도 10은 판정부의 처리 흐름도.
도 11은 정보 처리 장치의 구성도.
도 12는 단일 복호 후보를 도시한 도면.
도 13은 복수의 복호 후보를 도시한 도면.
도 14는 종래의 ECC 복호기의 구성도.
도 15는 정보 열을 도시한 도면.
도 16은 패리티 생성 연산을 도시한 도면.
도 17은 송신어 열을 도시한 도면.
도 18은 오류를 포함하는 수신어 열(reception word string)을 도시한 도면.
도 19는 정정된 수신어 열을 도시한 도면.
도 20은 종래의 송신어 열의 포맷을 도시한 도면.
<도면의 주요 부분에 대한 부호의 설명>
11, 21, 226 : 검출기
12, 22, 232 : ECC 복호기
31, 231 : 데이터 보존부
32 : 복호 판정부
41, 501 : 신드롬 계산부
42, 504 : 오류 위치 다항식 계산부
43, 506 : 시엔 서치(Chien search) 실행부
44, 508 : 오류값 계산부
101 : 데이터 저장 수단
102 : 신드롬 계산 수단
103 : 오류 위치 다항식 계산 수단
104 : 판정 수단
105 : 정정 수단
106 : 신드롬 저장 수단
107 : 신드롬 갱신 수단
108 : 정정 수단
201 : 프리 앰프
202 : 판독 채널
203 : 하드 디스크 컨트롤러
211 : 증폭기
212, 227 : 드라이버
221 : 서멀 애스패리티(TA) 검출기
222 : 가변 이득 증폭기(VGA)
223 : 로우 패스 필터(LPF)
224 : 아날로그/디지털 컨버터(ADC)
225 : 유한 임펄스 응답 필터(FIR)
228 : 기록 보상기
233 : RLL 복호기
234 : CRC 복호기
235 : ECC 부호기
236 : RLL 부호기
237 : CRC 부호기
301 : 패리티 생성부
502 : 신드롬 보존부
503 : 신드롬 갱신부
505 : 비교부
507 : 판정부
508 : 오류값 계산부
1101 : CPU
1102 : 메모리
1103 : 입력 장치
1104 : 출력 장치
1105 : 외부 기억 장치
1106 : 매체 구동 장치
1107 : 네트워크 접속 장치
1108 : 버스
1109 : 가반 기록 매체
본 발명은 기록 재생 장치, 수신 장치 등에 있어서의 오류 정정 기술에 관한 것으로서, 특히 리드 솔로몬(Reed Solomon) 부호를 이용하여 데이터 열의 오류를 정정하는 장치에 관한 것이다.
자기 디스크 장치와 같은 기록 재생 장치나 통신 시스템에 있어서, 리드 솔 로몬 부호(예컨대, 이하의 비 특허 문헌 1을 참조)가 에러 정정 부호(ECC)로서 이용되고 있다.
오류 정정 장치에 있어서, ECC 복호기에 입력되는 데이터 열은 검출기로부터 출력된다. 통상은 도 12에 도시하는 바와 같이, 검출기(11)로부터 단일 데이터 열이 복호 후보로서 ECC 복호기(12)에 입력되고, 복호가 행해진다. 이 경우, 복호에 실패하면, 오류를 정정할 수 없다.
여기서, 도 13에 도시하는 바와 같이, 검출기(21)로부터 복수의 데이터 열이 ECC 복호기(22)에 입력되는 장치가 이용되는 경우도 있다. 이 경우, ECC 복호기(22)는, 각각의 데이터 열을 후보로서 복호를 행하기 때문에, 정정 능력이 향상된다.
도 14는 도 13의 ECC 복호기(22)의 구성예를 도시하고 있다. 이 ECC 복호기(22)는 신드롬 계산부(41), 오류 위치 다항식 계산부(42), 시엔 서치(Chien search) 실행부(43) 및 오류값 계산부(44)를 구비한다.
검출기(21)로부터 출력된 복수의 데이터 열은 일단 데이터 보존부(31)에 저장되고, 하나씩 ECC 복호기(22)에 입력된다. 이때, ECC 복호기(22)는 이하의 순서로 데이터 열에 포함되는 오류를 정정한다.
단계 1 : 신드롬 계산부(41)는 ECC 복호기(22)에 입력된 데이터 열의 신드롬 다항식을 계산한다.
단계 2 : 오류 위치 다항식 계산부(42)는 신드롬 다항식으로부터 오류 위치 다항식을 계산한다. 오류 위치 다항식의 계산 알고리즘으로서는, 예컨대 유클리드 법(Euclid method) 또는 벌리캠프메시법(Berlekamp Massey method)이 이용된다(예컨대, 이하의 비 특허 문헌 2 및 3을 참조).
단계 3 : 시엔 서치 실행부(43)는 단계 2에서 얻어진 오류 위치 다항식을 이용하여 시엔 서치를 실행하고, 데이터 열 상의 오류가 있는 위치(오류 위치)를 결정한다.
단계 4 : 오류값 계산부(44)는 오류 위치의 잘못된 값을 정확한 값으로 정정한다.
그 후, 복호 판정부(32)는 오류값 계산부(44)로부터 출력되는 정정 후의 데이터 열의 정당성을 체크하여 정당하지 아니면 정정 실패라고 판정하고, 데이터 보존부(31)에 다음 복호 후보를 출력하도록 지시한다.
여기서, 도 15 내지 도 19까지를 참조하면서, 리드 솔로몬 부호에 기초하는 오류 정정의 구체예를 설명한다.
오류 정정수(t)의 리드 솔로몬 부호는 차수(2t)의 생성 다항식으로부터 생성된다. 부호화에 이용하는 갈로아체를 GF(23)로 하고, 오류 정정수(t)를 1로 하면, 리드 솔로몬 부호의 생성 다항식은 원시 원소(primitive element)(α)를 이용하여, 예컨대 다음의 수학식 1과 같이 쓸 수 있다.
G(x) = (x-1)(x-α)
= x2+α3x+α
이 경우, 3 비트의 비트열이 1 심벌로서 취급되고, ECC 부호기에서는 2t(= 2) 심벌의 패리티 열이 정보 열에 부가된다. 예컨대, 도 15에 도시하는 바와 같은 비트열을 부호화하는 경우, "001", "110" 및 "101"은 갈로아체 표시에 있어서의 1, α5 및 α4에 각각 대응된다. j 번째의 심벌은 송신어 열(transmission word string)의 다항식에 있어서의 xj의 항의 계수를 나타낸다. 따라서, 이 비트열은 다항식 x4+α5x3+α4x2을 나타내고 있다.
ECC 부호기는 도 16에 도시하는 바와 같이, 비트열이 나타내는 다항식을 수학식 1의 생성 다항식으로 나눗셈하고, 얻어진 잉여 다항식(α4x+α4)을 나타내는 패리티 열을 비트열에 부가한다. 이 잉여 다항식에서는 x의 1차 및 0차 항의 계수가 모두 α4이기 때문에, 도 17에 도시하는 바와 같은 패리티 열이 부가되며, 5 심벌로 이루어지는 송신어 열이 생성된다.
이 송신어 열이 자기 디스크에 기록되고, 판독된 경우, 도 18에 도시하는 바와 같이 오류를 포함하는 수신어 열(reception word string)이 ECC 복호기(22)에 입력될 가능성이 있다. 이 수신어 열이 나타내는 수신어 다항식은 다음의 수학식 2와 같이 된다.
Y(x) = αx4+α5x3+α4x2+α4x+α4
이 경우, 신드롬 계산부(41)는 다음의 수학식 3에 의해 신드롬 다항식을 계산한다.
S(X) = s1+s2x
s1 = Y(1)
s2 = Y(α)
신드롬 si(i=1, 2, …, 2t)는 생성 다항식 G(x)의 i 번째의 근을 수신어 다항식 Y(x)에 대입하여 얻어지는 값이며, 신드롬 다항식 S(x)는 신드롬 si를 Xi -1의 항의 계수로 하는 다항식이다. 수신어 열에 오류가 포함되어 있지 않으면, 모든 si가 0이 된다.
다음에, 오류 위치 다항식 계산부(42)는 신드롬 다항식 S(x)로부터 다음의 수학식 4와 같은 오류 위치 다항식 C(x)를 계산한다.
C(x) = 1+α-4x
다음에, 시엔 서치 실행부(43)는 오류 위치 다항식 C(x)를 이용하여 C(αj)의 값(j = 0, 1, 2, 3, 4)을 계산하고, C(αj) = 0이 되는 위치(j)를 오류 위치로서 출력한다. 이 예에서는 C(α4) = 1+α-4·α4 = 0이 되기 때문에, 4 번째의 심벌에 오류가 있는 것을 알 수 있다.
다음에, 오류값 계산부(44)는 신드롬 다항식 S(x)와 오류 위치 다항식 C(x)를 이용하여, 소정의 알고리즘으로 4 번째 심벌의 정확한 값을 계산하고, 그 비트열을 정정한다. 여기서는 정확한 값(1)이 구해지며, 도 19에 도시하는 바와 같이, 수신어 열에서의 4 번째 심벌이, α에서 1로 변경된다.
자기 디스크에서는 t = 20으로 하는 리드 솔로몬 부호가 이용되는 경우가 있으며, ECC 부호기에서는 도 20에 도시하는 바와 같이, 40 심벌의 패리티 열이 생성되고, 1 섹터의 비트열 전에 삽입된다. 이 경우, 신드롬 다항식 S(x)와 오류 위치 다항식 C(x)는 예컨대, 다음의 수학식 5 및 수학식 6과 같이 된다.
S(x) = s1+s2x+…+s40x39
C(x) = 1+x+α2x2+…+α35x8
[비 특허 문헌 1] IMAI Hideki, "부호 이론(Theory of Coding)", 전자 정보 통신 학회편, pp.155-175
[비 특허 문헌 2] E. R. Berlekamp, "Algebraic Coding Theory", McGraw-Hill Book Co., pp. 176-199 and pp.218-240, New York, 1968
[비 특허 문헌 3] J. L. Massey, "Shift-Register Synthesis and BCH Decoding", IEEE Transactions on Information Theory, vol. IT-15, pp.122-127, 1969
전술한 종래의 ECC 복호기에는 다음과 같은 문제가 있다.
실제의 수신어 열은 5 심벌보다 훨씬 길기 때문에, 수신어 다항식 Y(x)의 차수가 커진다. 이 때문에, 복수의 후보 데이터 열을 복호할 때, 신드롬 다항식 S(x)의 계산이나 시엔 서치의 계산량이 방대해지며, 복호 처리에 장시간이 필요하다.
또한, 도 14의 구성에서는 복호의 성공 여부를 ECC 복호기의 출력측에서 판정하고 있기 때문에, 어떤 후보가 ECC 복호기의 정정 능력을 초과하는 오류를 포함하고 있으므로 정정이 실패한 경우에도 일련의 복호 처리를 실행하게 되며, 효율이 나쁘다. 그래서, 후보 데이터 열의 복호를 실패하였는지 여부의 판정을 초기에 행하여, 실패하였다고 판명된 경우는 처리를 중지하고, 신속하게 다음 후보의 복호로 이동하는 것이 바람직하다.
본 발명의 과제는 리드 솔로몬 부호의 복호 처리에 있어서의 계산량을 삭감하여, 처리를 고속화하는 것이다.
도 1은 본 발명의 제1 및 제2 오류 정정 장치의 원리도이다.
본 발명의 제1 오류 정정 장치는 데이터 저장 수단(101), 신드롬 계산 수단(102), 오류 위치 다항식 계산 수단(103), 판정 수단(104) 및 정정 수단(105)을 구비하며, 오류 정정수(t)의 리드 솔로몬 부호 또는 BCH(Bose Chaudhuri Hocquenghem) 부호를 이용하여 데이터 열의 오류를 정정한다.
데이터 저장 수단(101)은 적어도 2t+1개의 심벌을 패리티 열로서 각각 포함하는 복수의 데이터 열을 저장한다. 신드롬 계산 수단(102)은 복수의 데이터 열 중 제1 데이터 열로부터 1 세트의 신드롬을 계산한다. 오류 위치 다항식 계산 수단(103)은 그 1 세트의 신드롬으로부터 오류 위치 다항식의 계수를 계산한다.
판정 수단(104)은 오류 위치 다항식의 계수를 이용하여 정정이 성공할지 여부를 판정하여, 정정 실패라고 판정하였을 때 데이터 저장 수단(101)에 제2 데이터 열을 요구하고, 정정 성공이라고 판정하였을 때 정정 성공의 판정 결과를 출력한다. 정정 수단(105)은 정정 성공의 판정 결과를 수신하였을 때, 상기 1 세트의 신드롬 및 오류 위치 다항식의 계수를 이용하여 제1 데이터 열의 오류를 정정한다.
일반적으로, 오류 정정수(t)의 리드 솔로몬 부호에 의하면, 2t 다음 생성 다항식에 기초하여 2t개의 심벌로 이루어지는 패리티 열을 부가함으로써, 데이터 열에 포함되는 잘못된 심벌을 t개까지 정정할 수 있다. 이것에 대하여, 보다 고차의 생성 다항식에 기초하여 몇 개의 심벌의 패리티를 여분으로 부가함으로써, 리드 솔로몬 부호의 용장성이 증가하여, 신드롬을 몇 개의 여분으로 구할 수 있게 된다.
예컨대, 2t+1 다음의 생성 다항식에 기초하여 2t+1개의 심벌로 이루어지는 패리티 열을 부가하면, 2t+1개의 신드롬을 구할 수 있다. 이들 신드롬으로부터 오류 위치 다항식의 계수를 계산함으로써, 복호 도중에 데이터 열의 정정 성공 여부를 판정하는 것이 가능해진다.
그리고, 정정 실패로 판정된 경우, 제1 데이터 열의 정정을 행하지 않고 제2 데이터 열의 복호 처리가 시작되기 때문에, 제1 데이터 열에 대한 쓸데없는 시엔 서치 등을 생략할 수 있어, 계산량이 삭감된다.
본 발명의 제2 오류 정정 장치는 데이터 저장 수단(101), 신드롬 계산 수단(102), 신드롬 저장 수단(106), 신드롬 갱신 수단(107) 및 정정 수단(108)을 구비하고, 리드 솔로몬 부호 또는 BCH 부호를 이용하여 데이터 열의 오류를 정정한다.
데이터 저장 수단(101)은 복수의 데이터 열을 저장한다. 신드롬 계산 수단(102)은 복수의 데이터 열 중 제1 데이터 열로부터 1 세트의 신드롬을 계산한다. 신드롬 저장 수단(106)은 그 1 세트의 신드롬을 저장한다. 정정 수단(108)은 그 1 세트의 신드롬을 이용하여 제1 데이터 열의 오류를 정정한다.
신드롬 갱신 수단(107)은 제1 데이터 열의 정정에 실패하였을 때, 제1 데이터 열과 제2 데이터 열의 차분으로부터 각 신드롬의 차분을 구하고, 얻어진 차분을 상기 1 세트의 신드롬에 포함되는 각 신드롬에 가산함으로써 그 1 세트의 신드롬을 갱신하여, 갱신된 1 세트의 신드롬을 제2 데이터 열의 1 세트의 신드롬으로서 출력한다.
일반적으로, 신드롬은 데이터 열이 나타내는 다항식에 소정값을 대입하여 계산되기 때문에, 제1 데이터 열과 제2 데이터 열의 차분에 대응하는 항만을 계산함으로써, 신드롬의 차분을 구할 수 있다.
그래서, 제1 데이터 열의 정정에 실패하였을 때, 제2 데이터 열의 각 신드롬을 고쳐 다시 계산하는 것이 아니라, 이미 계산되어 있는 제1 데이터 열의 각 신드롬에 차분을 가산함으로써, 제2 데이터 열의 각 신드롬이 구해진다. 이것에 의해, 제2 데이터 열에 대한 신드롬의 계산을 간략화할 수 있어 계산량이 삭감된다.
데이터 저장 수단(101), 신드롬 계산 수단(102), 오류 위치 다항식 계산 수단(103), 판정 수단(104), 신드롬 저장 수단(106) 및 신드롬 갱신 수단(107)은, 예컨대, 후술하는 도 5의 데이터 보존부(231), 신드롬 계산부(501), 오류 위치 다항식 계산부(504), 비교부(505), 신드롬 보존부(502) 및 신드롬 갱신부(503)에 각각 대응한다.
정정 수단(105)은 예컨대 도 5의 시엔 서치 실행부(506), 판정부(507) 및 오류값 계산부(508)에 대응하고, 정정 수단(108)은 예컨대 도 5의 오류 위치 다항식 계산부(504), 비교부(505), 시엔 서치 실행부(506), 판정부(507) 및 오류값 계산부(508)에 대응한다.
(실시예)
이하, 도면을 참조하면서, 본 발명을 실시하기 위한 최상의 형태를 상세히 설명한다.
본 실시 형태에서는 기록 재생 장치의 대표예인 자기 디스크 장치에 있어서의 오류 정정 처리에 대해서 설명한다. 도 2는 자기 디스크 장치의 기록 재생 시스템의 구성예를 도시하고 있다. 이 기록 재생 시스템은 프리 앰프(201), 판독 채널(202) 및 하드 디스크 컨트롤러(203)로 이루어진다.
프리 앰프(201)는 증폭기(211) 및 드라이버(212)를 구비한다. 판독 채널(202)은 서멀애스패리티(TA) 검출기(221), 가변 이득 증폭기(VGA)(222), 로우 패스 필터(LPF)(223), 아날로그/디지털 컨버터(ADC)(224), 유한 임펄스 응답(FIR) 필터(225), 검출기(226), 드라이버(227) 및 기록 보상기(228)를 구비한다.
하드 디스크 컨트롤러(203)는 데이터 보존부(231), ECC 복호기(232), RLL(Run Length Limited) 복호기(233), CRC(Cyclic Redundancy Check) 복호기(234), ECC 부호기(235), RLL 부호기(236) 및 CRC 부호기(237)를 구비한다.
기록 데이터는 우선 하드 디스크 컨트롤러(203) 내에서 CRC 부호기(237)를 경유하여, RLL 부호기(236)에 의해 구속 조건을 만족하는 데이터 열로 변환된다. 그리고, ECC 부호기(235)에 의해 그 데이터 열에 패리티 열이 부가된다.
다음에, 판독 채널(202)에서는 기록 데이터는 기록 보상기(228) 및 드라이버(227)를 경유하여 프리 앰프(201)에 송출된다. 기록 보상기(228)는 자화 반전이 인접한 개소에서 반전 간격을 다소 넓히기 위한 보상 처리를 행한다. 프리 앰프(201)에서는 드라이버(212)에 의해 기록 헤드로의 기록 전류를 발생시킨다.
한편, 재생시는 우선 재생 헤드로부터의 아날로그 전압이 프리 앰프(201)의 증폭기(211)에 의해 증폭된 후, 아날로그 신호로서 판독 채널(202)에 출력된다. 판독 채널(202)에서는 TA 검출기(221)에 의해 아날로그 신호의 서멀애스패리티 검출 처리가 행해진 후, VGA(222), LPF(223) 및 ADC(224)를 경유하여 디지털 신호로의 변환이 행해진다. 그리고, FIR 필터(225)에 의해 파형 등화가 행해진 후, 검출기(226)에 의해 비트열이 생성된다.
다음에, 생성된 비트열은 하드 디스크 컨트롤러(203)에 복귀되고, 일단, 데이터 보존부(231)에 저장된 후, ECC 복호기(232)에 의해 오류 정정이 행해진다. 그리고, RLL 복호기(233) 및 CRC 복호기(234)를 경유하여, 재생 데이터로서 출력된 다.
도 3은 도 2의 ECC 부호기(235)의 구성예를 도시하고 있다. ECC 부호기(235)는 패리티 생성부(301)를 포함한다. 패리티 생성부(301)는 생성 다항식을 이용하여 기록 데이터의 비트열로부터 패리티 열을 생성한다. 일반적으로, 오류 정정수(t)의 리드 솔로몬 부호의 생성 다항식은 다음의 수학식 7과 같이 쓸 수 있다.
G(x) = (x-α)(x-α2) … (x-α2t)
따라서, t = 20의 경우, 통상은 다음의 수학식 8과 같은 40차의 생성 다항식이 이용된다.
G(x) = (x-α)(x-α2) … (x-α40)
이것에 대하여, 본 실시 형태에서는 복호의 성공 여부를 초기에 판정하기 위해서, 생성 다항식의 차수를 하나 늘려, 다음의 수학식 9와 같은 41차의 생성 다항식을 이용한다.
G(x) = (x-α)(x-α2) … (x-α40)(x-α41)
이 때문에, 도 4에 도시하는 바와 같이, 41 심벌의 패리티 열이 생성되고, 1 섹터의 비트열 앞에 삽입된다. 여기서는 예컨대, 갈로아체 GF(210)가 부호화로 이용 되고, 1 섹터는 410 심벌로 이루어지며, 1 심벌은 10 비트로 이루어지는 것으로 한다.
도 5는 도 2의 ECC 복호기(232)의 구성예를 도시하고 있다. ECC 복호기(232)는 신드롬 계산부(501), 신드롬 보존부(502), 신드롬 갱신부(503), 오류 위치 다항식 계산부(504), 비교부(505), 시엔 서치 실행부(506), 판정부(507) 및 오류값 계산부(508)를 구비한다.
판독 채널(202)로부터 송출된 복수의 복호 후보는 데이터 보존부(231)에 저장되고, 하나씩 ECC 복호기(232)에 입력된다. 우선, 첫 번째의 후보 데이터 열에 대하여 ECC 복호기(232)는 이하의 순서로 복호 처리를 행한다.
단계 1 : 신드롬 계산부(501)는 데이터 열의 신드롬 다항식(다항식의 계수)을 계산하고, 신드롬 다항식을 오류 위치 다항식 계산부(504)에 출력한다. 이 때, 2t+1개의 신드롬 si(i=1, 2, …, 2t, 2t+1)의 값이 구해진다. 또한, 2 번째 이후의 후보의 복호 처리로 이용하기 위해, 신드롬 계산부(501)는 신드롬 다항식을 신드롬 보존부(502)에 저장한다.
단계 2 : 오류 위치 다항식 계산부(504)는 벌리캠프메시법에 의해 신드롬 다항식으로부터 오류 위치 다항식을 계산한다.
벌리캠프메시법에서는 통상 다항식의 초기값으로부터 시작해서 생성 다항식의 차수와 동일한 횟수만큼 다항식의 갱신을 반복함으로써, 오류 위치 다항식이 계산된다. 이 때, i 번째의 다항식 Ci(x)를 구하기 위해서는 i 번째의 신드롬 si의 값 이 필요해진다.
오류 위치 다항식 계산부(504)는 2t 번째의 다항식 C2t(x)와 2t+첫 번째의 다항식 C2t+1(x)을 데이터 열과 함께 비교부(505)에 출력한다.
단계 3 : 비교부(505)는 다항식 C2t(x)와 C2t +1(x)의 계수를 비교하고, 2 개의 다항식이 일치하는지 여부를 체크한다.
벌리캠프메시법에서는 데이터 열에 포함되는 잘못된 수가 k개(k≤t)인 경우, 2k+1회 째 이후의 반복에서는 다항식이 갱신되지 않고, C2K(x) 이후의 다항식은 모두 동일해진다는 성질이 있다. 따라서, C2t(x)와 C2t +1(x)가 일치하면, 오류의 수는 고작 t개이며, 오류 정정 능력의 범위 내인 것을 알 수 있다. 반대로, C2t(x)와 C2t +1(x)가 일치하지 않으면, 오류 정정 능력을 초과하게 된다.
그래서, 비교부(505)는 C2t(x)와 C2t +1(x)가 일치하면, 이 후보의 정정이 성공한다고 판정하여 데이터 열, 신드롬 다항식, 오류 위치 다항식 및 판정 결과를 시엔 서치 실행부(506)에 출력한다. 또한, C2t(x)와 C2t +1(x)가 다른 경우에는, 이 후보의 정정이 실패하였다고 판정하여, 데이터 보존부(231)에 다음 복호 후보를 출력하도록 지시한다.
이와 같이, 1 심벌의 패리티를 여분으로 데이터에 부가함으로써, 벌리캠프메시법의 다항식을 하나 여분으로 계산할 수 있기 때문에, 복호 도중에 데이터 열의 정정 실패를 검출하는 것이 가능해진다. 또한, 몇 개의 심벌의 패리티를 여분으로 부가하는 포맷을 이용하여도 좋다.
단계 4 : 시엔 서치 실행부(506)는 오류 위치 다항식 C(x)를 이용하여 시엔 서치를 실행하고, 데이터 열 상의 모든 위치(j)에 대해서 C(αj)의 값을 계산한다. 그리고, 데이터 열, 신드롬 다항식, 오류 위치 다항식 및 C(αj)의 계산 결과를 판정부(507)에 출력한다. 여기서, C(αj)=0이 되는 위치 j가 오류 위치에 해당한다.
단계 5 : 판정부(507)는 신드롬 다항식과 C(αj)의 계산 결과를 이용하여, 정정의 성공 여부를 판정하여 정정이 성공하였다고 판정한 경우에는, 시엔 서치 실행부(506)로부터 수신된 정보와 판정 결과를 오류값 계산부(508)에 출력한다. 또한, 정정이 실패하였다고 판정한 경우에는 데이터 보존부(231)에 다음 복호 후보를 출력하도록 지시한다.
단계 6 : 오류값 계산부(508)는 신드롬 다항식과 오류 위치 다항식을 이용하여 소정의 알고리즘으로 오류 위치의 잘못된 값을 정확한 값으로 정정한다. 그리고, 정정 후의 데이터 열로부터 패리티 열을 삭제하여, 후단의 RLL 복호기(233)에 출력한다.
따라서, 첫 번째 후보의 정정이 성공한 경우에는, 오류 정정된 데이터 열이 ECC 복호기(232)로부터 출력된다. 정정이 실패하여 2 번째 이후의 후보를 복호할 필요가 발생된 경우에는 신드롬 보존부(502)에 저장된 정보를 이용하여 복호 처리 가 행해진다.
이 경우, 단계 1에 있어서, 신드롬 갱신부(503)는 복호 대상의 후보와, 신드롬 보존부(502)에 저장된 첫 번째 후보를 비교하여, 다른 심벌을 취출하고, 신드롬 보존부(502)에 저장된 신드롬 다항식을 갱신한다. 그리고, 갱신된 신드롬 다항식을 오류 위치 다항식 계산부(504)에 출력한다. 단계 2 이후의 처리는 전술한 첫 번째 후보의 경우와 동일하다.
이와 같이, 도 5의 ECC 복호기(232)에 의하면, 2 번째 이후의 후보에 대하여 신드롬 다항식의 계산을 간략화할 수 있고, 비교부(505)에서 정정 실패로 판정된 경우, 시엔 서치를 행하지 않아도 되기 때문에, 대폭 계산량이 삭감된다. 또한, 판정부(508)에서 정정 실패로 판정된 경우, 오류 정정을 행하지 않아도 되기 때문에, 계산량이 더욱 삭감된다.
예컨대, 도 6에 도시하는 바와 같이, n+1 심벌로 이루어지는 첫 번째 후보와 복호 대상의 후보를 비교하면, 첫 번째 후보에 있어서의 j=1의 위치의 심벌은 α12이며, 복호 대상의 후보에 있어서의 동일한 위치의 심벌은 α6이기 때문에, 값이 다른 것을 알 수 있다. 이 경우, 첫 번째 후보의 수신어 다항식 Y1(x)과, 복호 대상 후보의 수신어 다항식 Y(x)는, 각각 다음의 수학식 10 및 수학식 11과 같이 된다.
Y1(x) = α2xn+α22xn -1+ … +α12x+α5
Y(X) = α2xn+α22xn -1+ … +α6x+α5
또한, 1번째 후보의 신드롬 다항식 S1(x)과, 복호 대상 후보의 신드롬 다항식 S(x)는 각각 다음의 수학식 12 및 수학식 13과 같이 된다.
S1(x) = s11+s12x+ … +s12tx2t -1+s12t +1x2t
Ys1i = Y1(αi)(i = 1, 2, …, 2t, 2t+1)
YS(x) = s1+s2x+ …+s2tx2t -1+s2t +1x2t
si = Y(αi) (i = 1, 2, …, 2t, 2t+1)
여기서, s1i는 첫 번째 후보의 i 번째의 신드롬을 나타내고, si는 복호 대상 후보의 i 번째의 신드롬을 나타낸다. 이 때, si는 s1i를 이용하여 다음의 수학식 14와 같이 쓸 수 있다.
si = s1i+Y(αi)-Y1(αi)
= s1i+(α612i
수학식 14는 심벌값의 변화량(α612)과 αi의 곱을 신드롬 보존부(502)에 저장된 s1i의 값에 가산하면, 갱신 후의 신드롬 si의 값이 얻어지는 것을 나타내고 있다.
또한, 복수의 심벌 값이 다른 경우에도 수학식 14와 동일하게 하여, 갱신 후의 신드롬 si를 계산할 수 있다. 이 경우, 신드롬의 차분 Y(αi)-Y1(αi)은 심벌값이 다른 모든 위치 j에 대해서, 심벌값의 변화량과 (αi)j의 곱을 가산한 결과가 된다.
이렇게 해서 갱신된 신드롬 si를 이용하여, 벌리캠프메시법에 의해 다항식 C1(x)∼C2t +1(x)가 순차 계산된다. t=20의 경우, 다항식 C1(x), C40(x) 및 C41(x)는 예컨대 다음의 수학식 15와 같이 된다.
C1(x) = 1+αx
C40(x) = 1+x+α2x2+…+α35x20
C41(x) = 1+αx+α50x3+…+α100x20
이 경우, C40(x)과 C41(x)가 일치하지 않기 때문에, 복호 대상 후보의 정정은 실패로 판정되고, 다음 후보의 복호가 행해진다.
다음에, 도 7 내지 도 10까지를 참조하면서, 도 5의 ECC 복호기(232)가 행하는 복호 처리에 대해서 더욱 상세하게 설명한다.
도 7은 신드롬 갱신부(503) 처리의 흐름도이다. 신드롬 갱신부(503)는 우선 복호 대상의 후보와, 신드롬 보존부(502)에 저장된 후보 데이터 열을 비교하여, 각각의 후보로부터 다른 심벌의 값을 취출한다(단계 701).
다음에, 심벌이 다른 모든 위치 j에 대해서, 심벌의 변화량과 (αi)j의 곱의 총합을 구하여, 그 값을 신드롬의 차분 Y(αi)-Y1(αi)로 한다(단계 702). 그리고, 신드롬 보존부(502)에 저장된 신드롬 차분을 가산하여, 신드롬을 갱신한다(단계 703).
도 8은 오류 위치 다항식 계산부(504)의 처리 흐름도이다. 오류 위치 다항식 계산부(504)는 우선 초기화 처리를 행하여, 다항식 Co(x), 다항식 B(x), 정수 a, b 및 L을 이하와 같이 설정한다(단계 801).
Co(x) = 1
B(x) = 1
a = 1
b = 1
L = 0
다음에, 반복 횟수를 나타내는 제어 변수 i를 1로 둔다(단계 802). 그리고, 신드롬 si의 값을 이용하여 벌리캠프메시법에 의해 i-첫 번째의 다항식 Ci -1(x)의 계수로부터 i 번째의 다항식 Ci(x)의 계수를 구한다(단계 803). 여기서는, 다항식 Ci -1(x)의 j 다음 항의 계수를 cj(j = 1, 2, …, L)로 하여, 이하의 알고리즘에 의해 다항식 Ci(X)의 계수가 구해진다.
1) 계산
Figure 112006066994969-PAT00001
2) 만일 d = 0이면,
Ci -1(x) → Ci(x)
a+1 → a
3) 만일 d≠0 및 2L>i-1이면,
Ci -1(x)-db-1xaB(x) → Ci(x)
a+1 → a
4) 만일 d≠0 및 2L≤i-1이면,
Ci -1(x)-db-1xaB(x) → Ci(x)
i-L → L
Ci -1(x) → B(x)
d → b
1 → a
다음에, i와 생성 다항식의 차수(2t+1)를 비교한다(단계 804). i<2t+1이면, i=i+1에 있어서(단계 806), 단계 803의 계산을 반복한다. 그리고, i가 2t+l 에 도달하면, 다항식 C2t(x)와 C2t+1(x)의 계수를 비교부(505)에 출력한다(단계 805).
도 9는 비교부(505)의 처리 흐름도이다. 비교부(505)는 우선 다항식 C2t(x)의 각 계수와 다항식 C2t +1(x)의 각 계수를 비교하여(단계 901), 모든 계수가 일치하면 다항식 C2t +1(x)의 계수를 오류 위치 다항식의 계수로 하여, 시엔 서치 실행부(506)에 출력한다(단계 902). 그 중 어느 하나의 계수가 일치하지 않으면, 정정 실패라고 판정하여 데이터 보존부(231)에 다음 후보를 요구한다(단계 903).
도 10은 판정부(507)의 처리 흐름도이다. 판정부(507)는 우선 각 신드롬 si(i=1, 2, …, 2t, 2t+1)의 값을 체크하여(단계 1001), 모든 신드롬 si가 0이면 정정 불필요라고 판정하고, 판정 결과를 오류값 계산부(508)에 출력한다(단계 1003).
그 중 어느 하나의 신드롬 si가 0이 아니면, 다음에, 각 C(αj)(j=0, 1, …, n)의 값을 체크하고(단계 1002), C(αj)=0이 되는 것이 있으면, 그 위치 j를 오류 위치로 하여 오류값 계산부(508)에 출력한다(단계 1004). 모든 C(αj)가 0이 아니면, 정정 실패라고 판정하고, 데이터 보존부(231)에 다음 후보를 요구한다(단계 1005).
이상의 실시 형태에서는 자기 디스크 장치에 있어서의 오류 정정에 대해서 설명하였지만, 본 발명은 광 디스크 장치 등의 스토리지 제품이나, 통신 시스템에 있어서의 수신 장치 등에도 적용 가능하다. 또한, 본 발명은 BCH 부호에도 적용 가능하다.
또한, ECC 부호기 및 ECC 복호기는 하드웨어 뿐만 아니라, 소프트웨어에 의해 실현할 수도 있다. 소프트웨어에 의해 실현하는 경우, 예컨대, 도 11에 도시하는 바와 같은 정보 처리 장치(컴퓨터)가 이용된다.
도 11의 정보 처리 장치는 CPU(1101), 메모리(1102), 입력 장치(1103), 출력 장치(1104), 외부 기억 장치(1105), 매체 구동 장치(1106), 네트워크 접속 장치(1107)를 구비하며, 이들은 버스(1108)에 의해 상호 접속되어 있다.
메모리(1102)는 예컨대 ROM(read only memory), RAM(random access memory) 등을 포함하고, 처리에 이용되는 프로그램 및 데이터를 저장한다. CPU(1101)는 메모리(1102)를 이용하여 프로그램을 실행함으로써, 부호화 처리 및 복호 처리를 행한다.
메모리(1102)에는 생성 다항식의 계수, 신드롬 다항식의 계수, 오류 위치 다항식의 계수, 복호 후보의 데이터 열, 오류 정정 후의 데이터 열 등이 처리 대상 또는 처리 결과의 데이터로서 저장된다. 이 경우, 메모리(1102)는 도 5의 데이터 보존부(231) 및 신드롬 보존부(502)로서의 역할을 다한다.
도 3의 패리티 생성부(301)와, 도 5의 신드롬 계산부(501), 신드롬 갱신부(503), 오류 위치 다항식 계산부(504), 비교부(505), 시엔 서치 실행부(506), 판정부(507) 및 오류값 계산부(508)는 메모리(1102)에 저장된 프로그램에 대응한다.
입력 장치(1103)는 예컨대, 키보드, 포인팅 디바이스 등이며, 사용자로부터의 지시나 정보 입력에 이용된다. 출력 장치(1104)는 예컨대 디스플레이, 프린터, 스피커 등이며, 사용자로의 조회나 처리 결과의 출력에 이용된다.
외부 기억 장치(1105)는 예컨대 자기 디스크 장치, 광 디스크 장치, 광자기 디스크 장치, 테이프 장치 등이다. 정보 처리 장치는 이 외부 기억 장치(1105)에 프로그램 및 데이터를 저장해 두고, 필요에 따라 이들을 메모리(1102)에 로드하여 사용한다.
매체 구동 장치(1106)는 가반 기록 매체(1109)를 구동하고, 그 기록 내용에 액세스한다. 가반 기록 매체(1109)는 메모리 카드, 플렉시블 디스크, 광디스크, 광자기 디스크 등의 임의의 컴퓨터 판독 가능한 기록 매체이다. 사용자는 이 가반 기록 매체(1109)에 프로그램 및 데이터를 저장해 두고, 필요에 따라 이들을 메모리(1102)에 로드하여 사용한다.
네트워크 접속 장치(1107)는 LAN(local area network) 등의 임의의 통신 네트워크에 접속되고, 통신에 따른 데이터 변환을 행한다. 정보 처리 장치는 필요에 따라 프로그램 및 데이터를 외부 장치로부터 네트워크 접속 장치(1107)를 통해 수신하고, 이들을 메모리(1102)에 로드하여 사용한다.
본 발명에 의하면, 리드 솔로몬 부호 또는 BCH 부호의 복호 도중에 데이터 열의 정정 성공 여부를 판정할 수 있기 때문에, 정정 실패한 경우의 쓸데없는 시엔 서치 등을 생략하는 것이 가능해진다. 또한, 2 번째 이후의 복호 후보의 데이터 열에 대한 신드롬의 계산을 대폭 간략화하는 것이 가능해진다. 따라서, 전체적으로 계산량이 삭감되며, 복호 처리가 고속화된다.

Claims (9)

  1. 오류 정정수(t)의 리드 솔로몬(Reed Solomon) 부호 또는 BCH(Bose Chaudhuri Hocquenghem) 부호를 이용하여 데이터 열의 오류를 정정하는 오류 정정 장치로서,
    적어도 2t+1개의 심벌을 패리티 열로서 각각 포함하는 복수의 데이터 열을 저장하는 데이터 저장 수단과;
    상기 복수의 데이터 열 중 제1 데이터 열로부터 1 세트의 신드롬을 계산하는 신드롬 계산 수단과;
    상기 1 세트의 신드롬으로부터 오류 위치 다항식의 계수를 계산하는 오류 위치 다항식 계산 수단과;
    상기 오류 위치 다항식의 계수를 이용하여 정정이 성공하는지 여부를 판정하여, 정정 실패라고 판정하였을 때 상기 데이터 저장 수단에 제2 데이터 열을 요구하고, 정정 성공이라고 판정하였을 때 정정 성공의 판정 결과를 출력하는 판정 수단과;
    상기 정정 성공의 판정 결과를 수신하였을 때 상기 1 세트의 신드롬 및 오류 위치 다항식의 계수를 이용하여, 상기 제1 데이터 열의 오류를 정정하는 정정 수단
    을 포함하는 것을 특징으로 하는 오류 정정 장치.
  2. 제1항에 있어서, 상기 오류 위치 다항식 계산 수단은, i 번째의 신드롬을 이용하여 벌리캠프메시법(Berlekamp Massey method)에 의해 i-첫 번째의 다항식 계수 로부터 i 번째의 다항식 계수를 구하는 계산을 반복하고, 상기 판정 수단은 2t 번째의 다항식 계수와 2t+첫 번째의 다항식 계수를 비교하며, 상기 2t 번째의 다항식 계수와 2t+첫 번째의 다항식 계수가 일치하지 않으면 정정 실패라고 판정하는 것을 특징으로 하는 오류 정정 장치.
  3. 제1항 또는 제2항에 있어서, 상기 정정 수단은, 상기 정정 성공의 판정 결과를 수신하였을 때 상기 오류 위치 다항식을 이용하여 상기 제1 데이터 열의 오류 위치를 검색하는 시엔 서치(Chien search) 실행 수단과, 검색된 오류 위치의 정확한 값을 계산하는 오류값 계산 수단을 포함하는 것을 특징으로 하는 오류 정정 장치.
  4. 제3항에 있어서, 상기 정정 수단은, 상기 1 세트의 신드롬 중 적어도 하나의 신드롬이 비영(非零)이며, 또한 상기 시엔 서치에 의해 오류 위치가 발견되지 않는 경우 정정 실패라고 판정하여 상기 데이터 저장 수단에 상기 제2 데이터 열을 요구하는 판정 수단을 더 포함하는 것을 특징으로 하는 오류 정정 장치.
  5. 제1항 또는 제2항에 있어서, 상기 1 세트의 신드롬을 저장하는 신드롬 저장 수단과, 상기 제1 데이터 열과 제2 데이터 열의 차분으로부터 각 신드롬의 차분을 구하고 얻어진 차분을 상기 1 세트의 신드롬에 포함되는 각 신드롬에 가산함으로써 상기 1 세트의 신드롬을 갱신하며 갱신된 1 세트의 신드롬을 상기 제2 데이터 열 1 세트의 신드롬으로서 출력하는 신드롬 갱신 수단을 더 포함하는 것을 특징으로 하는 오류 정정 장치.
  6. 제1항 또는 제2항에 있어서, 부여된 정보 열과 생성 다항식의 계수를 이용하여, 적어도 2t+1개의 심벌로 이루어지는 패리티 열을 생성하고, 상기 부여된 정보 열에 상기 패리티 열을 부가하여 데이터 열을 생성하는 부호화 수단을 더 포함하는 것을 특징으로 하는 오류 정정 장치.
  7. 리드 솔로몬 부호 또는 BCH 부호를 이용하여 데이터 열의 오류를 정정하는 오류 정정 장치로서,
    복수의 데이터 열을 저장하는 데이터 저장 수단과;
    상기 복수의 데이터 열 중 제1 데이터 열로부터 1 세트의 신드롬을 계산하는 신드롬 계산 수단과;
    상기 1 세트의 신드롬을 저장하는 신드롬 저장 수단과;
    상기 1 세트의 신드롬을 이용하여 상기 제1 데이터 열의 오류를 정정하는 정정 수단과;
    상기 제1 데이터 열의 정정에 실패하였을 때 상기 제1 데이터 열과 제2 데이터 열의 차분으로부터 각 신드롬의 차분을 구하고, 얻어진 차분을 상기 1 세트의 신드롬에 포함되는 각 신드롬에 가산함으로써 상기 1 세트의 신드롬을 갱신하며, 갱신된 1 세트의 신드롬을 상기 제2 데이터 열의 1 세트의 신드롬으로서 출력하는 신드롬 갱신 수단
    을 포함하는 것을 특징으로 하는 오류 정정 장치.
  8. 오류 정정수(t)의 리드 솔로몬 부호 또는 BCH 부호를 이용하여 데이터 열의 오류를 정정하는 오류 정정 장치를 구비한 정보 기억 장치로서, 상기 오류 정정 장치는,
    적어도 2t+1개의 심벌을 패리티 열로서 각각 포함하는 복수의 데이터 열을 저장하는 데이터 저장 수단과;
    상기 복수의 데이터 열 중 제1 데이터 열로부터 1 세트의 신드롬을 계산하는 신드롬 계산 수단과;
    상기 1 세트의 신드롬으로부터 오류 위치 다항식의 계수를 계산하는 오류 위치 다항식 계산 수단과;
    상기 오류 위치 다항식의 계수를 이용하여 정정이 성공하는지 여부를 판정하여, 정정 실패라고 판정하였을 때 상기 데이터 저장 수단에 제2 데이터 열을 요구하고, 정정 성공이라고 판정하였을 때 정정 성공의 판정 결과를 출력하는 판정 수단과;
    상기 정정 성공의 판정 결과를 수신하였을 때 상기 1 세트의 신드롬 및 오류 위치 다항식의 계수를 이용하여 상기 제1 데이터 열의 오류를 정정하는 정정 수단
    을 포함하는 것을 특징으로 하는 정보 기억 장치.
  9. 리드 솔로몬 부호 또는 BCH 부호를 이용하여 데이터 열의 오류를 정정하는 오류 정정 장치를 구비한 정보 기억 장치로서, 상기 오류 정정 장치는,
    복수의 데이터 열을 저장하는 데이터 저장 수단과;
    상기 복수의 데이터 열 중 제1 데이터 열로부터 1 세트의 신드롬을 계산하는 신드롬 계산 수단과;
    상기 1 세트의 신드롬을 저장하는 신드롬 저장 수단과;
    상기 1 세트의 신드롬을 이용하여 상기 제1 데이터 열의 오류를 정정하는 정정 수단과;
    상기 제1 데이터 열의 정정에 실패하였을 때 상기 제1 데이터 열과 제2 데이터 열의 차분으로부터 각 신드롬의 차분을 구하고, 얻어진 차분을 상기 1 세트의 신드롬에 포함되는 각 신드롬에 가산함으로써 상기 1 세트의 신드롬을 갱신하며, 갱신된 1 세트의 신드롬을 상기 제2 데이터 열의 1 세트의 신드롬으로서 출력하는 신드롬 갱신 수단
    을 포함하는 것을 특징으로 하는 정보 기억 장치.
KR1020060089951A 2006-03-30 2006-09-18 오류 정정 장치 KR100848614B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2006-00096049 2006-03-30
JP2006096049A JP4598711B2 (ja) 2006-03-30 2006-03-30 誤り訂正装置

Publications (2)

Publication Number Publication Date
KR20070098426A true KR20070098426A (ko) 2007-10-05
KR100848614B1 KR100848614B1 (ko) 2008-07-28

Family

ID=37890271

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060089951A KR100848614B1 (ko) 2006-03-30 2006-09-18 오류 정정 장치

Country Status (6)

Country Link
US (1) US7793197B2 (ko)
EP (1) EP1841074B1 (ko)
JP (1) JP4598711B2 (ko)
KR (1) KR100848614B1 (ko)
CN (1) CN101047388B (ko)
DE (1) DE602006004170D1 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5251000B2 (ja) * 2006-11-01 2013-07-31 富士通株式会社 誤り訂正回路及び媒体記憶装置
US8321771B1 (en) 2008-10-13 2012-11-27 Marvell International Ltd. Modified trace-back using soft output viterbi algorithm (SOVA)
CN101814922B (zh) * 2009-02-23 2013-06-19 国际商业机器公司 基于bch码的多位错纠错方法和装置以及存储系统
CN101510803B (zh) * 2009-03-03 2012-03-07 西安理工大学 无线激光通信GF(q)域上的纠错系统及其纠错方法
CN102045073B (zh) * 2009-10-26 2013-04-17 成都市华为赛门铁克科技有限公司 一种bch码译码方法和装置
JP5367686B2 (ja) 2010-12-24 2013-12-11 株式会社東芝 データ記憶装置、メモリ制御装置及びメモリ制御方法
JP2012137885A (ja) 2010-12-24 2012-07-19 Toshiba Corp データ記憶装置、メモリ制御装置及びメモリ制御方法
KR101800445B1 (ko) 2011-05-09 2017-12-21 삼성전자주식회사 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법
JP2013029882A (ja) * 2011-07-26 2013-02-07 Toshiba Corp メモリコントローラ、半導体記憶装置および復号方法
WO2013038464A1 (en) * 2011-09-16 2013-03-21 Hitachi, Ltd. Multi-stage encoding and decoding of bch codes for flash memories
KR101226439B1 (ko) 2011-12-27 2013-01-25 한국과학기술원 리드-솔로몬 디코더, 이를 포함하는 메모리 시스템 및 디코딩 방법
US20140068378A1 (en) * 2012-08-31 2014-03-06 Kabushiki Kaisha Toshiba Semiconductor storage device and memory controller
JP2014082574A (ja) * 2012-10-15 2014-05-08 Samsung Electronics Co Ltd 誤り検出訂正回路、及びメモリ装置
CN104184544B (zh) * 2013-05-24 2019-01-11 中兴通讯股份有限公司 一种解码方法及装置
JP2015053096A (ja) 2013-09-09 2015-03-19 マイクロン テクノロジー, インク. 半導体装置、及び誤り訂正方法
TWI514778B (zh) * 2014-03-27 2015-12-21 Storart Technology Co Ltd 用於bch碼字之縮短秦式搜尋演算法延時的方法及電路
US10381102B2 (en) 2014-04-30 2019-08-13 Micron Technology, Inc. Memory devices having a read function of data stored in a plurality of reference cells
KR102504176B1 (ko) * 2016-06-23 2023-03-02 에스케이하이닉스 주식회사 반도체장치
US10636495B2 (en) 2018-06-12 2020-04-28 Western Digital Technologies, Inc. Adjustable read retry order based on decoding success trend
JP2021150733A (ja) 2020-03-17 2021-09-27 キオクシア株式会社 半導体装置及び半導体記憶装置
US11978491B2 (en) 2021-09-24 2024-05-07 Sandisk Technologies Llc Mixed current-forced read scheme for MRAM array with selector
US11972822B2 (en) * 2021-09-24 2024-04-30 Sandisk Technologies Llc Programmable ECC for MRAM mixed-read scheme

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63236416A (ja) * 1987-03-25 1988-10-03 Mitsubishi Electric Corp 符号化復号化方法
WO1992013344A1 (en) * 1991-01-22 1992-08-06 Fujitsu Limited Error correction processing device and error correction method
JP3615778B2 (ja) * 1993-04-05 2005-02-02 日本フィリップス株式会社 カラー撮像装置
US5771244A (en) 1994-03-09 1998-06-23 University Of Southern California Universal Reed-Solomon coder/encoder
US5778009A (en) 1995-06-14 1998-07-07 Quantum Corporation Dedicated ALU architecture for 10-bit Reed-Solomon error correction module
US5942005A (en) * 1997-04-08 1999-08-24 International Business Machines Corporation Method and means for computationally efficient error and erasure correction in linear cyclic codes
JPH113573A (ja) * 1997-04-15 1999-01-06 Mitsubishi Electric Corp 拡大リードソロモン符号の誤り訂正復号方法と誤り訂正復号装置、1次伸長拡大リードソロモン符号の誤り訂正方法と誤り訂正装置、および2次伸長拡大リードソロモン符号の誤り訂正方法と誤り訂正装置
JPH11272568A (ja) * 1998-01-07 1999-10-08 Hitachi Ltd 記憶再生装置、誤り訂正方法及びこれらを用いた携帯情報端末ならびにディジタルカメラ
KR100301518B1 (ko) * 1999-07-28 2001-11-01 구자홍 리드 솔로몬 복호기에서의 정정 불가능 에러 검출 방법
JP2001167222A (ja) 1999-09-29 2001-06-22 Denso Corp 誤り訂正方法、2次元コード読取方法、2次元コード読取装置及び記録媒体
EP1102406A3 (en) 1999-11-17 2003-11-19 STMicroelectronics, Inc. Apparatus and method for decoding digital data
US6990624B2 (en) 2001-10-12 2006-01-24 Agere Systems Inc. High speed syndrome-based FEC encoder and decoder and system using same
JP2003346432A (ja) * 2002-05-22 2003-12-05 Internatl Business Mach Corp <Ibm> データ記憶装置およびデータ処理方法
CN100394506C (zh) * 2003-08-20 2008-06-11 上海乐金广电电子有限公司 纠错装置及方法
JP4534498B2 (ja) 2004-01-28 2010-09-01 ソニー株式会社 半導体装置およびその起動処理方法
JP2006048783A (ja) * 2004-08-02 2006-02-16 Renesas Technology Corp 不揮発性メモリおよびメモリカード

Also Published As

Publication number Publication date
EP1841074A3 (en) 2007-12-19
CN101047388A (zh) 2007-10-03
JP2007274239A (ja) 2007-10-18
EP1841074B1 (en) 2008-12-10
US20070245220A1 (en) 2007-10-18
EP1841074A2 (en) 2007-10-03
JP4598711B2 (ja) 2010-12-15
DE602006004170D1 (de) 2009-01-22
CN101047388B (zh) 2010-07-14
US7793197B2 (en) 2010-09-07
KR100848614B1 (ko) 2008-07-28

Similar Documents

Publication Publication Date Title
KR100848614B1 (ko) 오류 정정 장치
US8230309B2 (en) Maximum likelihood detector, error correction circuit and medium storage device
JP4833173B2 (ja) 復号化器、符号化・復号化装置及び記録再生装置
JP3966993B2 (ja) 積符号の誤り訂正および並行検査
KR100976178B1 (ko) 부호화 장치, 복호화 장치, 부호화·복호화 장치 및 기록 재생 장치
KR100766354B1 (ko) 에러 정정 장치, 부호기, 복호기, 방법 및 정보 기억 장치
US7721185B1 (en) Optimized reed-solomon decoder
US20080215956A1 (en) Computing an error detection code syndrome based on a correction pattern
US20080040651A1 (en) Encoding apparatus, decoding apparatus, encoding method, decoding method, and storage device
US6725416B2 (en) Forward error correction apparatus and methods
US6651214B1 (en) Bi-directional decodable Reed-Solomon codes
JP2001196938A (ja) デジタルデータをデコーディングする装置及び方法
JP2004362758A (ja) 記憶媒体から検索されたデータの誤りを訂正するシステムおよび方法、ならびにコンピュータにこれらの誤りを訂正させるためのコンピュータ実行可能な命令を含むコンピュータ読取可能な記憶媒体
JP2002230918A (ja) 誤り訂正符号エンティティのための消失訂正のコンピュータ実現化方法
US20030192005A1 (en) Method and apparatus for error detection
JP2010152960A (ja) エラー訂正回路及び記憶装置
JP2005135572A (ja) 記憶媒体から検索されたデータにおけるエラーを訂正する方法およびシステムならびにコンピュータ実行可能な命令を含むコンピュータ読取り可能な記憶媒体
US6446233B1 (en) Forward error correction apparatus and methods
US8296632B1 (en) Encoding and decoding of generalized Reed-Solomon codes using parallel processing techniques
KR19990039252A (ko) 이레이저 정정방법 및 그 장치
JP2005285205A (ja) 情報記録再生装置
KR20080058890A (ko) 리드-솔로몬 곱 부호의 오류 검출/정정 장치 및 방법
JPH07114374B2 (ja) 短縮巡回符号の符号化装置

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: 20130705

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140716

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150618

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160616

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170616

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee