KR100933254B1 - 최대 우도 검출기, 오류 정정 회로 및 매체 기억 장치 - Google Patents

최대 우도 검출기, 오류 정정 회로 및 매체 기억 장치 Download PDF

Info

Publication number
KR100933254B1
KR100933254B1 KR1020070108764A KR20070108764A KR100933254B1 KR 100933254 B1 KR100933254 B1 KR 100933254B1 KR 1020070108764 A KR1020070108764 A KR 1020070108764A KR 20070108764 A KR20070108764 A KR 20070108764A KR 100933254 B1 KR100933254 B1 KR 100933254B1
Authority
KR
South Korea
Prior art keywords
error
likelihood
candidate
bit
correction circuit
Prior art date
Application number
KR1020070108764A
Other languages
English (en)
Other versions
KR20080039798A (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 KR20080039798A publication Critical patent/KR20080039798A/ko
Application granted granted Critical
Publication of KR100933254B1 publication Critical patent/KR100933254B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • 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/1803Error detection or correction; Testing, e.g. of drop-outs by redundancy in data representation
    • 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/10009Improvement or modification of read or write signals
    • 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
    • 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
    • H03M13/153Determination and particular use of error location polynomials using the Berlekamp-Massey algorithm
    • 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
    • H03M13/1535Determination and particular use of error location polynomials using the Euclid algorithm
    • 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
    • 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/1575Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/45Soft decoding, i.e. using symbol reliability 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
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/45Soft decoding, i.e. using symbol reliability information
    • H03M13/451Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/45Soft decoding, i.e. using symbol reliability information
    • H03M13/451Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD]
    • H03M13/453Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD] wherein the candidate code words are obtained by an algebraic decoder, e.g. Chase decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/45Soft decoding, i.e. using symbol reliability information
    • H03M13/451Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD]
    • H03M13/453Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD] wherein the candidate code words are obtained by an algebraic decoder, e.g. Chase decoding
    • H03M13/455Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD] wherein the candidate code words are obtained by an algebraic decoder, e.g. Chase decoding using a set of erasure patterns or successive erasure decoding, e.g. generalized minimum distance [GMD] decoding
    • 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/63Joint error correction and other techniques
    • H03M13/6343Error control coding in combination with techniques for partial response channels, e.g. recording
    • 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
    • G11B2020/1836Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information using a Reed Solomon [RS] code
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/90Tape-like record carriers

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)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

본 발명은 복호 대상 데이터열을 작성하는 최대 우도 복호기(maximum likelihood decoder)에 있어서, 오류 정정 회로에 유효한 에러 후보를 제공하는 것을 목적으로 한다.
복호 대상 데이터열을 작성하는 검출기(226)와, 검출기(226)로부터의 우도 정보에 의해, 복호 대상 데이터열의 에러 후보로서, 각 비트의 우도로부터 오류 가능성이 높은 비트 위치를 추출하는 에러 후보 추출기(227)를 설치하였다. 에러 후보로서, 오류 가능성이 높은 비트 위치만을 추출하기 때문에, 정정 회로가, 우도가 낮은 순으로 에러 후보를 추출할 수 있고, 또한 우도순으로 소트하는 회수를 삭감할 수 있다.

Description

최대 우도 검출기, 오류 정정 회로 및 매체 기억 장치{MAXIMUM LIKELIHOOD DETECTOR, ERROR CORRECTION CIRCUIT AND MEDIUM STORAGE DEVICE}
본 발명은, 최대 우도 검출기, 오류 정정 회로 및 매체 기억 장치에 관한 것이며, 특히 ECC 코드를 부여한 데이터의 오류 정정을 위한 최대 우도 검출기, 오류 정정 회로 및 매체 기억 장치에 관한 것이다.
자기디스크 장치 등의 기록 재생 장치나 통신계의 분야에 있어서는, 에러 정정 부호(ECC)로서, 리드 솔로몬(Reed Solomon) 부호가 이용되고 있다. 저품질의 전송 신호나 기록 재생 신호로부터 데이터를 재생할 때에, 데이터 재생의 신뢰성을 향상시키기 위해, 최대 우도 시퀀스 검출(Maximum-Likelihood Sequence Detection)을 이용한 데이터 복호 기술과, ECC(Error Correction Code)를 이용한 오류 정정 기술이 널리 보급되어 있다.
최대 우도 검출기로부터 출력된 비트열은, 매체 노이즈나 회로 노이즈의 영향때문에, 수 비트에 오류값이 대입된다. ECC는 오류를 갖는 비트열의 오류 정정을 행하여, 오류 정정된 비트열을 출력한다. 예컨대, 자기디스크 장치에서는 ECC의 정정에 실패한 경우, 재시도를 행해야 하지만, 재시도는 반드시 피하고자 한다. 그래 서, 최대 우도 검출기로부터 몇 개의 후보열을 수취하여, 후보열을 ECC로 복호할 수 있는지를 순서대로 시험해 보는 것이 제안되어 있다(예컨대, 특허 문헌 1 참조).
도 17은, 종래의 최대 우도 시퀀스를 이용한 오류 정정 회로의 블록도, 도 18 내지 도 20은 그 동작 설명도이다.
도 17에 도시하는 바와 같이, 최대 우도 검출기(20)는 입력 신호로부터 최대 우도 시퀀스에 따라, 복수의 후보 데이터열을 작성한다. 데이터 보존부(31)는 작성된 복수의 후보 데이터열을 저장한다. ECC 복호기(22)는 신드롬 계산부(41)와, 오류 위치 다항식 계산부(42)와, 체인 서치 실행부(43)와, 오류값 계산부(44)를 구비한다.
신드롬 계산부(41)는, ECC 복호기(22)에 입력된 데이터열의 신드롬 계산식 (도 18 이하에 설명한다)을 계산한다. 오류 위치 다항식 계산부(42)는, 신드롬 다항식으로부터 오류 위치 다항식(도 18 이하에 설명한다)을 계산한다. 오류 위치 다항식의 계산 알고리즘으로서는, 예컨대 유클리드법 또는 벌리캠프메시(Berlekamp Massey)법이 이용된다(예컨대, 비특허 문헌 1, 2 참조).
체인 서치 실행부(43)는, 전술의 오류 위치 다항식을 이용하여, 체인 서치를 실행하고, 데이터열 상의 오류가 있는 위치(오류 위치)를 결정한다. 오류값 계산부(44)는, 오류 위치의 오류값을 올바른 값으로 정정한다. 그 후, 복호 판정부(32)는, 오류값 계산부(44)로부터 출력되는 정정 후의 데이터열의 정당성을 체크하고, 정당하지 않으면, 정정 실패라고 판정하여, 데이터 보존부(31)에 다음 복호 후보 데이터열을 출력하도록 지시한다.
도 18 내지 도 20를 이용하여, 리드 솔로몬 부호에 기초하는 오류 정정을 구체적으로 설명한다. 도 18에 도시하는 바와 같이, 오류 정정수(t)의 리드 솔로몬 부호는, 차수(2t)의 생성 다항식으로부터 생성된다. 부호화에 이용하는 갈루아체를 GF(2의 3승)로 하고, 오류 정정수(t)를 「1」로 하면, 리드 솔로몬 부호의 생성 다항식은, 원시원(primitive element, 原始元)(α)을 이용하여, 예컨대 다음 식 (1)과 같이 표현된다.
[수학식 1]
G(x)=(x-1)(x-α)
=x23x+α
이 경우, αo=1로부터 시작하고, 3 비트의 비트열이 1 심볼로서 취급되며, ECC 부호화로는, 2t(=2)의 심볼의 패리티열이 정보열에 부가된다. 예컨대, 도 18의 정보열을 부호화하는 경우, "001", "110", "101"은 갈루아체 표시에 있어서의 1, α의 5승, α의 4승에 각각 대응된다. j번째의 심볼은, 송신어열의 다항식에 있어서의 Xj의 항의 계수를 나타낸다. 따라서 비트열(정보열)은, 다항식 x45x34x2를 나타낸다.
ECC 부호화는, 도 19에 도시하는 바와 같이, 비트열이 나타내는 다항식을, 식 (1)의 생성 다항식으로 나눗셈하고, 얻어진 잉여 다항식 α4x+α4을 나타내는 패 리티열을, 비트열에 부가한다. 이 잉여 다항식은 x의 1차 및 0차의 항의 계수가 모두 α4이기 때문에, 도 18에 도시하는 바와 같은 패리티열이 부가되고, 5 심볼로 이루어지는 송신어열이 생성된다.
이 송신어열이, 예컨대 자기디스크에 기록되고, 판독된 경우에, 도 20에 도시하는 바와 같이, 오류를 포함하는 수신열이, ECC 복호기(22)에 입력될 가능성이 있다. 이 수신어열은, 다음식 (2)로 나타낸다.
[수학식 2]
Y(x)=αx45x34x24x+α4
이 도 20의 수신어열에 대하여, 신드롬 계산부(41)는, 다음식 (3)에 의해 신드롬 다항식을 계산한다.
[수학식 3]
S(x)=s1+s2x
s1=Y(1)
s2=Y(α)
수학식 (3)에 있어서, 신드롬(si)(i=1, 2, ‥‥, 2t)은 식 (1)의 생성 다항식 G(x)의 i번째의 근을, 수신어 다항식 Y(x)에 대입하여 얻어지는 값이고, 신드롬 다항식 S(x)는, 신드롬(si)을, xi -1의 항의 계수로 하는 다항식이다. 수신어열에 오 류가 포함되어 있지 않으면, 모든 si가 「0」이 된다.
다음에, 오류 위치 다항식 계산부(42)는, 신드롬 다항식 S(x)로부터, 다음식 (4)의 오류 위치 다항식 C(x)를 계산한다.
[수학식 4]
C(x)=1+α-4x
다음에, 체인 서치 실행부(43)는, 식 (4)의 오류 위치 다항식 C(x)를 이용하여, C(αj)의 값(j=0, 1, 2, 3, 4)을 계산하고, C(αj)=0이 되는 위치(j)를, 오류 위치로서 출력한다. 도 20의 예에서는 C(α4)=1+α-4·α4=0이 되기 때문에, 4번째의 심볼에 오류가 있는 것을 검출할 수 있다.
다음에, 오류값 계산부(44)는, 식 (3)의 신드롬 다항식 S(x)와 식 (4)의 오류 위치 다항식 C(x)를 이용하여, 소정의 알고리즘으로 4번째 심볼의 올바른 값을 계산하고, 그 비트열을 정정한다. 여기서는, 올바른 값 「1」이 구해지고, 도 20에 도시하는 수신어열에 있어서의 4번째의 심볼이, α로부터 「1」로 정정된다.
예컨대, 자기디스크 장치로는, 오류 정정수(t)=20이 되는 리드 솔로몬 부호가 이용되고, ECC 부호화로는, 10 비트를 1 심볼로 하며, 40 심볼의 패리티열이, 1 섹터의 비트열(4096 비트=410 심볼) 앞에 삽입된다. 이 경우, 신드롬 다항식 S(x)와 오류 위치 다항식 C(x)는, 예컨대 하기 식 (5), (6)으로 나타낸다.
[수학식 5]
S(x)=s1+s2x+…+ s40x39
[수학식 6]
C(x)=1+x+α2x2+…+α35x8
[특허 문헌 1] 일본 특허 공개 평11-330985호 공보
[비특허 문헌 1] E. R. Berlekamp, "Algebraic Coding Theory", McGraw-Hill Book Co., pp. 176-199 and pp. 218-240, New York, 1968
[비특허 문헌 2] J. L. Massay, "Shift-register Synthesis and BCH Decoding", IEEE Transactions on Information Theory, vol. IT-15, pp. 122-127, 1969
실제 수신어열은, 길기 때문에, 수신어 다항식 Y(x)의 차수가 커진다. 종래 기술로는, 복수의 후보의 데이터열을 수취하여, 후보의 데이터열을 ECC로 복호할 수 있는지를 순서대로 시험해 볼 필요가 있기 때문에, 최대 우도 검출기의 후보의 데이터열의 작성이 적절하지 않으면, 모든 후보의 데이터열에서의 ECC 복호가 실패할 가능성이 있어, 정정 성능이 오르지 않는다고 하는 문제가 있다.
또한, 최대 우도 검출기가, 모든 후보를 준비하면, 그 후보의 순서를 소트하여, 우도가 낮은 순으로, ECC 복호기에 전달해야 하고, 후보의 데이터열의 작성을 위한 계산량이 증가하여, 회로 규모가 증대하는 문제가 있다.
따라서, 본 발명의 목적은, ECC 복호기에 적절한 후보의 데이터열을 부여하여, 정정 성능을 향상시키기 위한 최대 우도 검출기, 오류 정정 회로 및 매체 기억 장치를 제공하는 것에 있다.
또한, 본 발명의 다른 목적은, 적은 계산량으로도, ECC 복호기에 적절한 후보의 데이터열을 부여하여, 정정 성능을 향상시키기 위한 최대 우도 검출기, 오류 정정 회로 및 매체 기억 장치를 제공하는 것에 있다.
또한, 본 발명의 다른 목적은, 회로 규모가 작아도, ECC 복호기에 적절한 후보의 데이터열을 부여하여, 정정 성능을 향상시키기 위한 최대 우도 검출기, 오류 정정 회로 및 매체 기억 장치를 제공하는 것에 있다.
이 목적의 달성을 위해, 본 발명의 최대 우도 검출기는, 입력 신호로부터 복호 대상 데이터열을 작성하고, 상기 복호 대상 데이터열의 각 비트의 우도를 검출하는 검출기와, 상기 각 비트의 우도를 받고, 소정의 임계값 이하의 우도를 갖는 임의 개수의 비트 위치 정보를, 상기 우도순으로, 상기 오류 정정 회로의 선택 에러 후보로서 저장하는 에러 후보 테이블을 작성하는 에러 후보 추출기를 포함한다.
또한, 본 발명의 오류 정정 회로는, 입력 신호로부터 복호 대상 데이터열을 작성하고, 상기 복호 대상 데이터열의 각 비트의 우도를 검출하는 검출기와, 상기 각 비트의 우도를 받고, 소정의 임계값 이하의 우도를 갖는 임의의 복수의 비트 위치 정보를, 상기 우도순으로, 선택 에러 후보로서 저장하는 에러 후보 테이블을 작성하는 에러 후보 추출기와, 상기 복호 대상 데이터열의 오류를 정정하여, 출력하는 정정 회로를 포함하고, 상기 정정 회로는, 상기 정정에 실패하였다고 판정하였을 때에, 상기 에러 후보 테이블로부터 상기 에러 후보를 취출하며, 새로운 상기 복호 대상 데이터열을 작성한다.
또한, 본 발명의 매체 기억 장치는, 기억 매체로부터 신호를 판독하는 헤드와, 상기 헤드의 판독 신호로부터 복호 대상 데이터열을 작성하고, 상기 복호 대상 데이터열의 각 비트의 우도를 검출하는 검출기와, 상기 각 비트의 우도를 받고, 소정의 임계값 이하의 우도를 갖는 임의 개수의 비트 위치 정보를, 상기 우도 순으로, 선택 에러 후보로서 저장하는 에러 후보 테이블을 작성하는 에러 후보 추출기와, 상기 복호 대상 데이터열의 오류를 정정하여, 출력하는 정정 회로를 포함하고, 상기 정정 회로는, 상기 정정에 실패하였다고 판정하였을 때에, 상기 에러 후보 테 이블로부터 상기 에러 후보를 취출하고, 새로운 상기 복호 대상 데이터열을 작성한다.
또한, 본 발명은 바람직하게는, 상기 에러 후보 추출기는, 상기 복호 대상 데이터열의 각 비트의 우도와 소정의 임계값을 비교하여, 소정의 임계값 이하의 우도의 비트 위치를 추출하는 임계값 판정부와, 상기 추출된 비트 위치를, 상기 우도 순으로, 상기 오류 정정 회로의 선택 에러 후보를 저장하는 에러 후보 테이블을 작성하는 상위 후보 선택부를 포함한다.
또한, 본 발명은, 바람직하게는, 상기 임계값 판정부는, 상기 추출한 소정의 임계값 이하의 우도의 비트 위치를, 복수의 우도 레벨에 따라서, 상기 우도와 상기 비트 위치를 스택 테이블에 저장한다.
또한, 본 발명은, 바람직하게는, 상기 상위 후보 선택부는, 상기 우도 레벨마다의 스택 테이블을 참조하여, 상기 우도순으로, 상기 오류 정정 회로의 선택 에러 후보의 비트 위치를 저장한다.
또한, 본 발명은, 바람직하게는, 상기 상위 후보 선택부는, 상기 테이블에, 상기 우도의 절대값이 동일한 비트 위치를 하나의 선택 에러 후보로서, 상기 에러 후보 테이블에 저장한다.
또한, 본 발명은, 바람직하게는, 상기 상위 후보 선택부는, 상기 우도 레벨마다의 스택 테이블을 참조하여, 상기 우도 레벨이 비교적 낮은 스택 테이블의 비트 위치를 상기 에러 후보 테이블에 저장하고, 또한 상기 우도 레벨이 비교적 높은 스택 테이블을 소트하여, 상기 에러 후보 테이블에, 소트된 비트 위치를 저장한다.
또한, 본 발명은, 바람직하게는, 상기 에러 후보 추출기는, 상기 임계값 이하의 우도의 비트가, 소정 비트수 연속하고 있는 것을 검출하여, 상기 연속하고 있는 비트 위치의 상기 테이블에의 저장을 금지한다.
또한, 본 발명은, 바람직하게는, 상기 에러 후보 추출기는, 상기 추출된 비트 위치를, 상기 에러 후보의 시작 위치와 에러 길이의 형식으로, 상기 테이블을 작성한다.
또한, 본 발명은, 바람직하게는, 상기 정정 회로는, 상기 복호 대상 데이터열로부터 1조의 신드롬을 계산하는 신드롬 계산부와, 상기 1조의 신드롬으로부터, 오류 위치 다항식의 계수를 계산하고, 또한 상기 오류 위치 다항식의 계수를 이용하여, 정정이 성공하는지의 여부를 판정하고, 정정 실패라고 판정하였을 때에, 상기 에러 후보 테이블에 상기 에러 후보를 요구하는 오류 위치 다항식 계산부와, 상기 오류 위치 다항식 계산부의 정정 성공의 판정에 따라서, 상기 신드롬과 상기 오류 위치 다항식의 계수를 이용하여, 상기 복호 대상 데이터열의 오류를 정정하는 정정 회로를 포함하다.
또한, 본 발명은, 바람직하게는, 상기 정정 회로는, 상기 계산한 신드롬을 유지하는 신드롬 유지부와, 상기 복호 대상 데이터열과, 상기 새로운 복호 대상 데이터열과의 차분으로부터 신드롬의 차분을 계산하고, 상기 차분으로, 상기 유지된 신드롬을 갱신하는 신드롬 갱신부를 포함한다.
복호 대상 데이터열의 에러 후보로서, 각 비트의 우도로부터 오류 가능성이 높은 비트 위치를 추출하기 때문에, 정정 회로에, 유효한 정정을 행할 수 있는 에러 후보를 제공할 수 있다. 또한 에러 후보로서, 오류 가능성이 높은 비트 위치만을 추출하기 때문에, 정정 회로가, 우도가 낮은 순으로 에러 후보를 취출할 수 있도록, 우도순으로 소트하는 횟수를 삭감할 수 있어, 계산량 삭감에 유효하다.
이하, 본 발명의 실시형태를, 기록 재생 시스템, 에러 후보 추출기, ECC 복호기, 다른 에러 후보 추출기, 다른 실시형태 순으로 설명하지만, 본 발명은 이 실시형태에 한정되지 않는다.
(기록 재생 시스템)
도 1은, 본 발명의 일 실시형태의 자기디스크 장치의 기록 재생 시스템의 블록도이다. 도 1에 도시하는 바와 같이, 자기디스크 장치의 기록 재생계는, 크게 나눠 하드디스크 컨트롤러(HDC)(203)와, 리드 채널(RDC)(202)과, 프리앰프(또는 헤드 IC)(201)로 이루어진다.
우선, 기록시에는, 기록 데이터는 HDC(203) 내의 CRC 부호기(237)로, CRC 부호(Cyclic Redundancy Code)가 부가된다. 그 후에, 기록 부호기(236)가, MTR 부호(Maximum Transition Run Code)와 RLL(Run Length Limited) 부호 등의 구속 조건이 만족되는 데이터열로 변환한다. 그리고 ECC 부호기(235)는 전술의 식 (1)에 의해, 패리티열을 부가한다.
ECC 부호화된 데이터열은, RDC(202)에 입력된다. RDC(202) 내의 기록 보상기(229)는, 자화 반전이 인접하는 개소에서, 반전 간격을 다소 넓히는 보상 처리를 행한다. 그리고, RDC(202) 내의 드라이버(228)는, 기록 보상된 데이터열을 프리앰프(20)에 출력한다. 프리앰프(201)에서는, 드라이버(212)가, 도시하지 않는 기록 헤드(라이트 헤드)의 라이트 전류를 발생하고, 기록 헤드를 구동하여, 도시하지 않는 자기디스크에 기록을 행한다.
한편, 재생시에는, 프리앰프(201)의 앰프(211)가, 재생 헤드(리드 헤드)로부터의 아날로그 전압을 증폭시킨 후, RDC(202)에 출력한다. RDC(202)의 서멀 어스페리티(thermal asperity) 검출 처리부(221)는, 서멀 어스페리티 처리한 후, 가변 이득 앰프(VGA)(222)가 진폭 조정한다.
그 후, 로우 패스 필터(LPF)(223)가, 진폭 조정된 리드 신호의 고주파수역을 커트하고, A/D 컨버터(ADC)(224)가, 그 아날로그 출력을 디지털 신호로 변환한다. 그 후, FIR(Finite Impulse Response) 필터(225)가, 파형 등화를 행한 후, 최대 우도 검출기(226)에 입력한다.
최대 우도 검출기(226)는, SOVA(Soft Output Viterbi), NPSOVA(Noise Predictive Soft Output Viterbi), BCJR(Bahl, Cocke, Jelinek and Raviv Algorithm) 등의 최대 우도 검출기로 구성되고, 최대 우도 복호를 행한다.
최대 우도 검출기(226)로부터 복호열은, HDC(203)에 보내진다. 이와 함께, 에러 후보 추출기(227)는, 최대 우도 복호에서 오류가 있을 가능성이 높은 비트열 후보를 추출하고, HDC(203)의 에러 후보 보존기(231)에 보낸다. HDC(203)의 에러 후보 보존기(231)는 오류가 있을 가능성이 높은 비트열 후보를 보존한다.
한편, 최대 우도 검출기(226)로부터의 복호열은, ECC 복호기(232)에 의해 오 류 정정이 행해진다. 복호가 성공한 경우는, 기록 복호기(233)가, 기록 부호기(236)의 부호화와 반대의 복호화를 행하고, CRC 복호기(234)가 CRC 복호하며, 재생 데이터로서 출력한다.
또한, ECC 복호기(232)로 복호가 실패한 경우는, ECC 복호기(232)가, 에러 후보 보존기(231) 내의 오류가 있을 가능성이 높은 비트열을 수 개 선출하고, 그 비트열의 각 값을 '0'부터 '1', 또는 '1'부터 '0'로 플립한 복호열을 작성한다. 그리고 재차, ECC 복호기(232)가 오류 정정을 행한다.
복호가 성공한 경우는, 전술한 바와 같이, 기록 복호기(233), CRC 복호기(234)를 경유하여, 재생 데이터로서 출력된다. 한편, 복호가 실패한 경우는, ECC 복호기(232)가 에러 후보 보존기(232)로부터 오류가 있을 가능성이 높은 다른 비트열을 수 개 선출하고, 그 비트열의 각 값을 플립한 복호열을 작성하며, 오류 정정을 행한다.
ECC 복호기(232)에서의 오류 정정을 몇 회 반복하는 경우가 있기 때문에, 도 5 이하에 설명하는 고속 판정(ECC) 회로를 사용한다. 이에 따라, 계산량이 삭감할 수 있다.
여기서, 본 발명에서는, 에러 후보 추출기(227)는, 최대 우도 검출기(226)로부터 최대 우도 검출된 복호열의 각 비트의 위치와, 그 우도를 받고, 우도가 낮은(오류 가능성이 높은) 비트 위치를 에러 후보로서 추출하며, 에러 후보 보존기(231)에 저장한다.
즉, 에러 후보로서, 오류 가능성이 높은 비트 위치를 추출하기 때문에 ECC 복호기(232)에, 유효한 정정을 행할 수 있는 에러 후보를 제공할 수 있다. 또한, 에러 후보로서, 오류 가능성이 높은 비트 위치만을 추출하기 때문에, ECC 복호기(232)가, 우도가 낮은 순으로 에러 후보를 추출할 수 있는 바와 같이, 우도순으로 소트하는 회수를 삭감할 수 있어, 계산량 삭감에 유효하다.
(에러 후보 추출기)
다음에, 도 1의 에러 후보 추출기(227)의 구성을 설명한다. 도 2는, 도 1의 에러 후보 추출기(227)의 블록도, 도 3은 도 2의 임계값 판정부의 동작 설명도, 도 4는, 도 2의 임계값 판정부와 상위 후보 선출부(248)의 동작 설명도이다.
도 2에 도시하는 바와 같이, 에러 후보 추출기(227)는, 임계값 판정부(240)와, 레벨별 스택 테이블(242)과, 상위 후보 선출부(248)를 구비한다. 전술의 SOVA, NSOVA, BCJR 등의 검출기(226)는, 도 3에 도시하는 바와 같이, 데이터열(섹터)의 각 비트의 우도를 계산한다. 그리고, 우도값이 높을수록, 그 비트는 올바른 확률이 높은 것을 나타내고, 낮으면 그 비트는 오류가 있을 확률이 높은 것을 나타낸다.
오류가 있을 확률이 높은 비트를, 테이블(242)에 보존하고자 하기 때문에, 우도가 낮은 비트만을 취급하면 된다. 이 때문에 임계값 판정부(240)는 임계값을 설치하고, 임계값 이하의 우도값을 갖는 비트(의 위치)만을, 테이블(242)에 보존한다.
도 3에서는, 임계값을 1.5로 설정하고, 우도값이 -1.5 내지 +1.5의 범위에 있는 비트 위치를 추출하여, 테이블(242)에 보존한다. 도 3에서는 1 섹터의 203, 204, 205 번째의 비트의 우도값이 -1.5 내지 +1.5의 범위에 있기 때문에, 비트 위 치(203, 204, 205)가 테이블(242)에 보존된다. 임계값은 상정되는 SNR(Signal to Noise Ratio)의 범위와, 테이블(242)의 메모리량에 따라서 결정된다.
비트 위치와 우도값을 보존하는 스택 테이블(242)은, 도 4에 도시하는 바와 같이, 몇 개의 우도값의 범위(레벨)로 분할되어 있다. 도 4에서는, 스택 테이블(242)은 우도값의 절대값이, 0 내지 0.5, 0.5 내지 1.0, 1.0 내지 1.5의 3 종류의 범위 242-1, 242-2, 242-3으로 분할되어 있다.
예컨대, 도 3의 203, 204, 205번째의 비트의 우도의 절대값은, 「0.6」이기 때문에, 도 4와 같이, 0.5 내지 1.0의 범위의 테이블(242-2)에 위치 정보가 보존되고, 또한 우도값의 절대값이 보존된다.
또한, 도 4와 같이, 우도의 절대값이 동일해지는 연속 비트열은 동일한 행에 보존되고, 이 비트열이 하나의 오류 후보가 된다. 예컨대, 도 3에서 도시한 203, 204, 205 번째의 비트가, 하나의 오류 후보가 된다. 도 4에 도시한 바와 같이, 우도의 절대값이 동일하게 되기 위해서는, 등화 타겟(선형 등화의 파라미터)으로서, 예컨대 PR(Partial response) -4와 같이, 대칭이 되는 것을 이용하면 좋다.
또한, 기록 부호로서, 연속의 에러를 억제하는 MTR 부호를 사용하는 경우에는, 테이블(242)의 열수를 제한하고, 테이블 메모리를 절약할 수 있다. 예컨대, 16/17 MTR 부호는, 16 비트의 데이터를 17 비트의 데이터로 부호화하는 것이고, 4 비트 이상의 연속의 에러를 발생하지 않도록 할 수 있다.
이 때문에, 도 4에 도시하는 바와 같이, 우도의 절대값이 낮은 우도 「0.3」의 값을 갖는 4 연속의 비트열이 있었던 경우라도, 4 비트 연속의 에러는, 부호화 원리로부터 발생하지 않기 때문에, 이 비트열을 오류 후보로는 하지 않고 무시한다. 즉, 임계값 판정부(240)는, 우도가 임계값 이하의 비트를 추출하고, 또한 그 추출된 비트 위치에 의해, 임계값 이하의 비트가 4 연속 비트인지를 판정하고, 4 연속 비트인 경우에는, 무시하며, 스택 테이블(242)에 저장하지 않는다.
이 부호화 원리를 이용하면, 오정정을 막는 효과가 있어, 정정 능력의 향상으로 이어진다. 또한, 오류 후보가 되는 것은, 3 연속 이하의 비트가 되기 때문에, 스택 테이블(242)의 위치 정보 테이블의 열수를 3 이하로 줄일 수 있어, 메모리를 절약하는 효과가 있다.
다음에, 상위 후보 선출부(248)는, 스택 테이블(242)에 보존된 오류 후보 중, 우도가 가장 낮은 후보로부터 수 종류를 선출하고, 이것을 상위 에러 후보로서, 에러 후보 보존기(231)에 출력한다. 에러 후보 보존기(231)는, 상위 에러 후보 테이블에, 상위 후보 선출부(248)로부터 출력된 상위 에러 후보를 보존한다.
도 4의 예에서는, 스택 테이블(242)로부터 상위 8개의 에러 후보를 선출하고, 상위 에러 후보 테이블(231)에 보존하고 있다. 스택 테이블(242)로부터 상위 8개의 에러 후보를 선출하기 위해서는, 각 레벨의 테이블에 몇 개의 후보가 보존되어 있는지 확인해야 한다.
도 4에서는, 우도값의 절대값이 0 내지 0.5인 범위에서는, 5개의 후보가 있다. 또한, 우도값의 절대값이 0.5 내지 1.0인 범위에서는, 1개의 후보가 있고, 우도값의 절대값이 1.0 내지 1.5인 범위에서는 4개의 후보가 있다.
8개의 에러 후보를 선출하기 위해서는, 0 내지 0.5의 범위의 모든 후보, 0.5 내지 10의 범위의 모든 후보, 1 내지 1.5의 범위의 4개의 후보 중 우도가 낮은 2개의 후보를 선택하면 좋다.
1 내지 1.5의 범위의 4개의 후보 중 우도가 낮은 2개의 후보를 선택하기 위해서는, 소트를 행해야 하지만, 소트는 모든 우도 레벨의 범위에서 행할 필요가 없고, 1 내지 1.5의 범위의 우도 레벨에 대해서만 행하면 된다. 이에 따라, 계산량의 삭감의 효과를 발휘한다. 또한, 소트 회로를 간단화할 수 있다.
또한, 에러 후보 보존기(231)의 에러 후보 데이터에는, 우도값은 필요없고, 우도값이 낮은 순으로, 그 비트 위치를 저장한다. 이에 의해서도, 메모리 용량을 절약할 수 있다. 이와 같이, 소트의 횟수를 줄이는 등의 계산량 삭감을 행하기 위해, 적절한 레벨로 테이블을 분할하는 것은 유효하다.
이러한 에러 후보 보존기(231)의 상위 에러 후보를 이용하여, 이하에 설명하는 ECC 복호기(232)가, 효율적으로 에러 정정을 행한다.
(ECC 복호기)
도 5는, 도 1의 ECC 복호기의 블록도, 도 6 및 도 7은, 도 5의 오류 위치 다항식 계산부의 처리 흐름도, 도 8은, 도 5의 체인 서치 실행부의 처리 흐름도, 도 9는 복호 후보의 설명도, 도 10은 도 5의 플립 동작의 설명도, 도 11은 도 5의 신드롬 갱신부의 처리 흐름도이다.
도 5에 도시하는 바와 같이, ECC 복호기(232)는, 신드롬 계산부(260)와, 신드롬 보존부(260)와, 오류 위치 다항식 작성부(262)와, 체인 서치 실행부(268)와, 오류값 계산부(270)를 구비한다.
신드롬값 계산부(260)가, 검출기(226)로부터의 복호열의 신드롬을 계산하고, 신드롬값 보존부(262)에 계산한 신드롬값을 보존한다. 오류 위치 다항식 작성부(262)는, 작성된 신드롬 다항식으로부터 오류 위치 다항식을 계산하고, 정정 능력을 초과하고 있는지를 판정한다.
신드롬값 갱신부(264)는, 오류 위치 다항식 작성부(262) 또는 체인 서치 실행부(268)로, 복호가 실패라고 판단된 경우에, 에러 후보 보존기(231)로부터 에러 후보를 수 개 선출하고, 대응하는 장소를 플립하며, 플립한 장소와 신드롬값 보존기(262)에 보존된 신드롬값으로부터 플립된 비트열의 신드롬값을 갱신한다.
체인 서치 실행부(268)는, 오류 위치 다항식 작성부(262)로, 복호가 실패하지 않는다고 판단된 경우에, 체인 서치에 의해 오류 위치를 구한다. 오류값 계산부(270)는, 체인 서치로 복호가 실패라고 판단되지 않는 경우에, 즉 체인 서치로 오류 위치가 특정된 경우는, 오류값을 계산한다.
이와 같이, 이전 신드롬값을 보존해 두고, 복호 실패시에, 에러 후보를 인출하며, 복호열의 그 위치의 비트열을 플립하고, 플립한 비트열의 신드롬값을 계산하여 이전 신드롬값을 갱신한다. 이 때문에 플립된 비트열은 신드롬값을 1부터 계산할 필요가 없기 때문에, 계산량을 삭감할 수 있다.
또한, 후술하는 바와 같이, 오류 위치 다항식을 계산하는 단계에서, 복호가 실패했는지의 여부를 판정할 수 있기 때문에, 복호가 실패한 경우는, 다음 에러 후보의 플립으로 이동할 수 있어, 계산량이 삭감된다.
이하, 도 6 내지 도 11을 이용하여, ECC 복호기(232)를 상세히 설명한다. 우 선 ECC 부호화를 설명한다. 일반적으로 오류 정정수(t)의 리드 솔로몬 부호의 생성 다항식은, 하기식 (7)로 나타낸다. 단, 식 (1)과 달리 α부터 시작하여 나타내고 있다.
[수학식 7]
G(x)=(x-α)(x-α2)…(x-α2t)
따라서, 오류 정정수(t)=20인 경우는, 다음식 (8)과 같은 40차의 생성 다항식이 이용된다.
[수학식 8]
G(x)=(x-α)(x-α2)…(x-α40)
이에 대하여, 본 실시형태에서는, 오류 위치 다항식 계산부(266)에서 복호의 성부(成否, success/failure)를 조기에 판정하기 위해, 생성 다항식의 차수를 늘려, 다음 식 (9)와 같은 41차의 생성 다항식을 이용한다.
[수학식 9]
G(x)=(x-α)(x-α2)…(x-α40)(x-α41)
즉, ECC 부호화에, 41 심볼의 패리티열이 생성되고, 1 섹터의 비트열(410 심볼) 앞에 삽입된다.
한편, ECC 복호기(232)의 신드롬 계산부(260)는, 식 (3)에 따라서, 데이터열의 신드롬 다항식(다항식의 계수 s1, s2, …)을 계산하고, 계산한 신드롬 다항식을 오류 위치 다항식 계산부(266)에 출력한다. 이때, 2t+1개의 신드롬 계수(si)(i=1, 2, …, 2t, 2t+1)의 값을 계산한다. 이와 함께, 2번째 이후의 후보의 복호 처리에서 이용하기 위해, 신드롬 계산부(260)는 계산한 신드롬 다항식을 신드롬 보존부(262)에 저장한다.
오류 위치 다항식 계산부(266)는, 벌리캠프메시법에 의해, 신드롬 다항식을 계산한다. 벌리캠프메시법에서는, 주지와 같이, 다항식의 초기값으로부터 시작하여, 생성 다항식의 차수와 동일 횟수만큼 다항식의 갱신을 반복함으로써, 오류 위치 다항식을 계산한다. 이 때, i번째의 다항식 Ci(x)를 구하기 위해서는, i번째의 신드롬(si) 값이 필요하게 된다.
이 오류 위치 다항식 계산부(504)는, 2t번째의 다항식 C2t(x)와, 2t+1번째의 다항식 C2t+1(x)을 생성한다. 그리고, 오류 위치 다항식 계산부(504)는 2t번째의 다항식 C2t(x)와, 2t+1번째의 다항식 C2t+1(x)의 계수를 비교하여, 2개의 다항식이 일치하는지의 여부를 판정한다.
벌리캠프메시법에서는, 데이터열에 포함되는 오류의 수가 k개(k≤t)인 경우, 2k+1회째 이후의 반복으로는, 다항식이 갱신되지 않고, C2k(x) 이후의 다항식은, 모두 동일해진다는 성질이 있다. 따라서, C2t(x)와 C2t+1(x)이 일치하면, 오류의 수는 많아야 t개이고, 오류 정정 능력의 범위 내인 것을 알 수 있다. 반대로, C2t(x)와 C2t+1(x)이 일치하지 않으면, 오류 정정 능력을 초과하고 있는 것으로 된다.
따라서, C2t(x)와 C2t+1(x)이 일치하면, 이 후보의 정정이 성공한다고 판정하고, 데이터열, 신드롬 다항식, 오류 위치 다항식, 및 판정 결과를 체인 서치 실 행부(268)에 출력한다. 또한, C2t(x)와 C2t+1(x)이 상이한 경우는, 후보의 정정이 실패하였다고 판단하여, 데이터 보존부(231)에 다음 복호 후보를 출력하도록 지시한다.
이와 같이, 1 심볼의 패리티를 여분으로 데이터열에 부가함으로써, 벌리캠프메시법의 다항식을 하나 여분으로 계산함으로써, 복호 도중에서 데이터열의 정정 실패를 검출할 수 있다. 또한, 수 심볼의 패리티를 여분으로 부가하는 포맷을 이용하여도 좋다.
도 6, 도 7에 의해, 그 처리를 설명한다.
(S801) 오류 다항식 계산부(266)는, 우선 초기화 처리를 행하고, 다항식 CO(x)와, 다항식 B(x), 정수 a, b를 「1」로, L을 「0」으로 초기화한다.
(S802) 다음에, 반복 횟수를 나타내는 제어 변수(i)를 「1」로 둔다.
(S803) 그리고, 신드롬(si)의 값을 이용하여, 벌리캠프메시법에 의해, (i-1)번째의 다항식 Ci-1(x)의 계수로부터, i번째의 다항식 Ci(x)의 계수를 구한다. 여기서는, 다항식 Ci-1(x)의 j차 항의 계수를, cj(j=1, 2, … L)로 하여, 도 7에 도시하는 계산 알고리즘에 의해, 다항식 Ci(x)의 계수를 구한다.
(S804) 다음에, 제어 변수(i)와, 생성 다항식의 차수 2t+1을 비교한다.
(S805) i<2t+1이면, i=i+1로 갱신하고, 스텝 S803에 복귀한다.
(S806) 한편, i=2t+1이면, 다항식 C2t(x), C2t+1(x)의 계수를 출력한다.
(S901) 다음에, 출력된 다항식 C2t(x)의 각 계수와 다항식 C2t+1(x)의 각 계수를 비교한다.
(S902) 모두 계수가 일치하는 경우에는, 정정 가능이라고 판정하고, 다항식 C2t+1(x)의 계수를 오류 위치 다항식의 계수로서, 체인 서치 실행부(268)에 출력한다.
(S903) 한편, 어느 하나의 계수가 일치하지 않는 경우에는, 정정 실패라고 판정하고, 데이터 보존부(231)에 다음 후보를 요구한다.
다음에, 체인 서치 실행부(268)는, 오류 위치 다항식 C(x)를 이용하여, 체인 서치를 실행하고, 데이터열 상의 모든 위치(j)에 대해서, C(αj)의 값(j=0, 1, 2, 3, 4, …, n)을 계산한다. 여기서 n+1은 부호 길이(심볼)를 의미한다. 또한, C(αj)=0이 되는 위치(j)가 오류 위치이다.
다음에, 체인 서치 실행부(268)는, 신드롬 다항식과, C(αj)의 값을 이용하여, 정정의 성부를 판정하고, 정정이 성공한다고 판정한 경우는, 체인 서치 실행부(268)가, 수취한 데이터열, 신드롬 다항식, 오류 위치 다항식을, 오류값 계산부(270)에 출력한다. 또한, 정정이 실패한다고 판단한 경우에는, 데이터 보존부(231)에 다음 후보를 요구한다.
도 8은, 체인 서치 실행부(268)의 판정 처리 흐름도이다.
(S1001) 우선, 신드롬 다항식 si(i=1, 2, …, 2t, 2t+1)의 값을 체크한다.
(S1002) 어느 하나의 신드롬(si)이, 「0」이 아니면, 다음에 C(αj)의 값(j=0, 1, 2, 3, 4, …, n)을 체크한다.
(S1003) 스텝 S1001에서, 모든 신드롬(si)이 「0」이면, 정정 불필요라고 판정하여, 판정 결과를 오류값 계산부(270)에 출력한다.
(S1004) 스텝 S1002에서, C(αj)의 값이, 「0」이 되는 것이 있으면, 그 위치(j)를, 오류 위치로서, 오류값 계산부(270)에 출력한다.
(S1005) 모든 C(αj)의 값(j=0, 1, 2, 3, 4, … n)이, 「0」이 아니라고 판정하면, 정정 실패라고 판정하고, 데이터 보존부(231)에 다음 후보를 요구한다.
다음에, 오류값 계산부(270)는, 신드롬 다항식과 오류 위치 다항식을 이용하여, 소정의 알고리즘으로, 데이터열의 오류 위치의 틀린 값을, 올바른 값으로 정정한다. 그리고, 정정 후의 데이터열로부터 패리티열을 삭제하여, 후단의 기록 복호기(RLL 복호기)(233)(도 1 참조)에 출력한다.
즉, 첫번째 후보의 정정이 성공하는 경우에는, 오류 정정된 데이터열이, ECC 복호기(232)로부터 출력된다. 정정이 실패하여, 두 번째 이후의 후보를 복호할 필요가 생긴 경우는, 신드롬값 보존부(262)에 저장된 정보를 이용하여 복호 처리를 행한다.
이 후보 데이터의 선택 및 신드롬 갱신에 대해서, 도 9 내지 도 11로 설명한다. 예컨대, 도 9와 같이, n+1 심볼로 이루어지는 첫번째 후보와, 현재의 복호 대상의 후보를 비교하면, 첫번째 후보에 있어서의 j=1의 위치의 심볼은, α12이고, 복호 대상의 후보에 있어서의 동일한 위치의 심볼은, α6이기 때문에, 값이 상이한 것 을 알 수 있다.
이 경우에, 첫번째 후보의 수신어 다항식 Y1(x)과, 복호 대상의 후보의 수신어 다항식 Y(x)는 각각, 하기식 (10), (11)로 나타낸다.
[수학식 10]
Y1(x)=α2xn22xn -1+…α12x+α5
[수학식 11]
Y(x)=α2xn22Xn -1+ …α6x+α5
또한, 이 수신어에 대하여, 첫번째 후보의 신드롬 다항식 S1(x)과, 복호 대상 후보의 신드롬 다항식 S(x)는 하기식 (12), (13)으로 나타낸다.
[수학식 12]
S1(x)=s11+s12x+…+s12tx2t -1+s12t +1x2t
s1i=Y1(αi)(i=1, 2, …, 2t, 2t+1)
[수학식 13]
S(x)=s1+s2x+…+s2tx2t -1+s2t +1x2t
si=Y(αi)(i=1, 2, …, 2t, 2t+1)
식 (12), (13)에 있어서, s1i는, 첫번째 후보의 i번째의 신드롬을 나타내고, si는 복호 대상의 후보의 i번째의 신드롬을 나타낸다. 이 때, si는 s1i를 이용하여 다음식 (14)와 같이 표현할 수 있다.
[수학식 14]
si=s1i+Y(αi)-Y1(αi)
=s1i+(α612)αi
(14) 식은, 심볼값의 변화량(α612)과, αi과의 곱을, 신드롬값 보존부(262)에 저장된 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)와 같이 계산된다.
[수학식 15]
C1(x)=1+αx
C40(x)=1+x+α2x2+…+α35x20
C41(x)=1+αx+α50x3+…+α100x20
식 (15)의 경우에는, C40(x)과 C41(x)와의 계수가 일치하지 않기 때문에, 복호 대상의 후보의 정정은 실패라고 판정되고, 다음 후보의 복호를 행한다.
이 다음 후보로서, 예컨대 2개의 우도의 후보를 취출하는 예로 설명한다. 도 10과 같이, 에러 후보 보존기(231)에, 에러 후보가, 오류가 높은 순으로 저장되어 있다. 즉, 8개의 에러 후보로부터 2개의 후보를 선택하고, 플립한다. 8개로부터 2개의 후보를 선출하는 조합은, 8C2=28 종류가 있고, 에러 후보는 도 10에 도시하는 바와 같이, 조합한다.
예컨대, 에러 후보 No.1과 No.2의 장소를, 플립하는 경우는, 데이터열 내의 No.1로 나타내는 102번째의 비트와, No.2로 나타내는 415, 416번째의 비트의 값을, 「0」부터 「1」, 또는 「1」부터 「0」으로 플립한다. 그리고, 플립된 비트열을 이용하여, 복호를 행한다.
도 11에 도시하는 신드롬 갱신부의 처리 흐름도를 이용하여, 설명한다.
(S701) 전술한 바와 같이, 오류 위치 다항식 계산부(266) 또는 체인 서치 실행부(268)로부터 다음 후보의 요구를 받으면, 전술의 순서에 따라서, 8개로부터 2개의 후보를 선택하고, 데이터열 중의 그 후보의 비트 위치의 데이터를 플립하며, 복호 대상의 데이터열을 작성한다. 복호 대상의 데이터열과, 신드롬값 보존부(262) 의 후보의 데이터열을 비교하여, 상이한 심볼의 값을 취출한다.
(S702) 다음에, 심볼이 상이한 모든 위치(j)에 대해서, 심볼의 변화량과, (αi)j와의 곱의 총합을 계산하고, 그 값을 신드롬의 차분(Y(αi)-Y1(αi))으로 한다.
(S703) 그리고, 신드롬값 보존부(262)에 저장된 신드롬에 차분을 가산하여, 신드롬을 갱신한다.
이와 같이, 에러 후보로서 오류 가능성이 높은 비트 위치를 추출하기 때문에, ECC 복호기(232)에, 유효한 정정을 행할 수 있는 에러 후보를 제공할 수 있어, 복호 속도를 향상시킬 수 있다.
또한, 에러 후보로서, ECC 복호기(232)가 우도가 낮은 순으로 에러 후보를 취출할 수 있도록 준비하기 때문에, 보다 복호 속도를 향상시킬 수 있고, 또한 이와 같이 하여도, 우도순으로 소트하는 횟수를 삭감할 수 있어, 계산량 삭감에 유효하다.
또한, 도 5의 ECC 복호기(232)와 조합함으로써, ECC 복호기의 정정 불가의 판정시에서는, 복호 대상의 데이터열의 신드롬 작성을 고속화할 수 있고, 보다 고속이며, 계산량이 적은 복호가 가능해진다.
(다른 에러 후보 추출기)
도 12는 도 1의 구성에 있어서의 다른 에러 후보 추출기의 블록도, 도 13은 도 12의 스택 테이블의 설명도, 도 13은 도 12의 후보 선출부의 설명도, 도 14는 도 12의 후보 선출부의 출력 포맷도, 도 15는 도 12의 에러 후보 테이블의 설명도이다. 이 예는, 에러 후보 테이블의 메모리 용량을 삭감하기 위해 출력 형식을 고안한 것이다.
도 12에 도시하는 바와 같이, 에러 후보 추출기(227A)는, 스택 테이블(244)과, 후보 선출부(246)와, 에러 후보 테이블(247)을 구비한다. 전술한 도 1의 SOVA, NSOVA, BCJR 등의 검출기(226)는, 도 13에 도시하는 바와 같이, 데이터열(섹터)의 각 비트의 우도를 계산한다. 그리고, 우도값이 높을수록, 그 비트는 올바른 확률이 높은 것을 나타내고, 낮으면 그 비트는 오류가 있을 확률이 높은 것을 나타낸다.
스택 테이블(244)은, 검출기(226)로부터의 1 섹터분의 각 비트의 우도의 값을 저장한다. 도 13은, 1 섹터분의 각 비트 위치의 우도값의 열을 도시한다. 후보 선출부(246)는 스택 테이블(246)의 각 비트의 우도의 값으로부터 우도의 값이 낮은 비트의 위치를 추출한다.
도 13에 도시한 바와 같이, 스택 테이블(246)에는 1 섹터의 각 비트의 우도값이, 대응하는 비트 위치에 저장되어 있다. 후보 선출부(246)는, 오류가 있을 확률이 높은 비트를 추출하고자 하기 때문에, 우도가 낮은 비트만을 취급한다.
후보 선출부(246)는, 가장 우도의 절대값이 작은 비트 위치, 2 번째로 우도의 절대값이 작은 비트 위치, 3번째로 우도의 절대값이 작은 비트 위치 등을 추출한다. 예컨대, 1 섹터를 4096 비트로 하면, 8번째로 우도가 낮은 비트 위치까지 추출하는 것이 적합하다.
도 14에서는, 후보 선출부(246)가, 도 13의 스택 테이블(244)의 1 섹터분의 비트의 우도값으로부터, 가장 우도의 절대값이 작은 (우도값 0.3)의 비트 위치 「8」과, 2번째로 우도의 절대값이 작은 (우도값 0.4)의 비트 위치 「22」와, 3번째로 우도의 절대값이 작은 (우도값 0.6)의 연속한 비트 위치 「25」, 「26」과, 이들 우도의 절대값 「0.3」, 「0.4」, 「0.6」을 추출한 상태를 도시한다.
후보 선출부(246)는, 도 14에 도시한 바와 같이, 추출한 비트 위치를, 우도순으로 나열한 리스트를 작성한다. 그리고, 후보 선출부(246)는 우도가 작은 순으로, 에러 후보 1, 2, 3, …으로 하고, 작성한 리스트를, 소정의 출력 형식으로 변환하며, 에러 후보 테이블(247)을 작성한다.
도 15에 도시하는 바와 같이, 에러 후보 정보로서, 변환되는 출력 형식은, 오류가 있을 확률이 높은 후보의 비트 시작 위치와, 에러 길이로 이루어진다. 후보 선출부(246)는, 에러 후보 테이블(247)에, 1 섹터에서 오류가 있을 확률이 높은 후보의 비트 시작 위치와 에러 길이로 이루어지는 테이블을 작성하고, 이들 결과를, HDC(203)의 에러 후보 보존기(231)에 출력한다.
출력 형식은, 예컨대 도 15에 도시하는 바와 같이, 에러 후보 정보로서, 15 비트로 이루어지고, 전단의 13 비트는, 에러 시작 위치가 대입되며, 후단의 2 비트는 에러 길이가 대입된다.
도 16에 의해, 리스트의 변환 방법을 다음에 도시한다. 에러 후보 1의 비트 위치「8」은, 1 섹터의 8 비트째에, 1 비트 에러가 있는 것을 나타내기 때문에, 최초의 13 비트에는, 8의 2진수 표현 「000000000100」이 대입되고, 나머지 2 비트는 에러 길이가 1 비트이기 때문에 「01」이 대입된다.
에러 후보 2의 비트 위치 「22」는, 22 비트째에, 1 비트 에러가 있는 것을 나타내기 때문에, 최초의 13 비트에는, 22의 2진수 표현 「0000000010110」이 대입되고, 나머지 3비트는 에러 길이가 1 비트이기 때문에 「01」이 대입된다.
에러 후보 3의 비트 위치 「25」「26」은 25, 26 비트째에, 2 비트 에러가 있는 것을 나타내기 때문에, 최초의 13 비트에는 에러 시작 위치(25)의 2진수 표현 「0000000011001」이 대입되고, 나머지 3 비트는 에러 길이가 2 비트이기 때문에 「10」이 대입된다.
에러 길이는, 2 비트로 표현되기 때문에, 최장 에러는, 3 비트까지의 대응이 되는 간략형이다. 그러나, 도 4의 예와 마찬가지로, 기록 부호로서, 연속의 에러를 억제하는 MTR 부호를 사용하는 경우에는, 예컨대 16/17 MTR 부호는, 16 비트의 데이터를 17 비트의 데이터로 부호화하는 경우에는, 4 비트 이상의 연속의 에러를 발생하지 않도록 할 수 있다. 이 때문에 MTR을 사용하는 경우에는, 간략형이 아니다.
이 때문에, 도 16에 있어서도, 우도의 절대값이 낮은 값을 갖는 4연속 비트열이 있었던 경우라도, 4비트 연속의 에러는, 부호화 원리로부터 발생하지 않기 때문에, 이 비트열을 오류 후보로는 하지 않고, 무시한다.
이와 같이, 출력 형식을, 에러 후보의 비트 시작 위치와, 에러 길이로 구성함으로써, 에러 후보 테이블의 메모리량의 삭감이 가능해지고, 리드 채널(202)의 구성을 간소화할 수 있다. 예컨대, 전술의 비트 위치를 13 비트 표현하는 경우에는, 도 4의 케이스에서는, 24×13=312 비트의 용량이 요구된다. 한편, 도 4의 케이스와 같은 경우에는, 본 실시예에서는 8×15=120 비트가 되고, 약 1/3의 메모리 용 량으로 좋다.
(다른 실시형태)
전술한 실시형태로는, 에러 후보를, 우도 레벨에서, 2개를 선택하고 있지만, 하나여도, 3개 이상이어도 좋다. 또한, ECC 복호기는, 도 5의 구성에 한하지 않고, 다른 구성의 것도 적용할 수 있다. 또한, 자기디스크 장치의 기록 재생 장치의 적용의 예로 설명하였지만, 광디스크 장치 등의 다른 매체 기억 장치나, 통신 장치에도 적용할 수 있다.
이상, 본 발명을, 실시형태로 설명했지만, 본 발명은, 그 취지의 범위 내에서 여러 가지의 변형이 가능하고, 이것을 본 발명의 범위에서 배제하는 것이 아니다.
(부기 1) 입력된 신호로부터 복호 대상 데이터열을 작성하고, 오류 정정 회로에 출력하는 최대 우도 검출기에 있어서, 상기 입력 신호로부터 복호 대상 데이터열을 작성하며, 상기 복호 대상 데이터열의 각 비트의 우도를 검출하는 검출기와, 상기 각 비트의 우도를 받고, 소정의 임계값 이하의 우도를 갖는 임의 개수의 비트 위치 정보를, 상기 우도순으로 에러 후보 테이블에 저장하고, 상기 오류 정정 회로의 선택 에러 후보로서 출력하는 에러 후보 추출기를 포함하는 것을 특징으로 하는 최대 우도 검출기.
(부기 2)
상기 에러 후보 추출기는, 상기 복호 대상 데이터열의 각 비트의 우도와 소정의 임계값을 비교하여, 소정의 임계값 이하의 우도의 비트 위치를 추출하는 임계 값 판정부와, 상기 추출된 비트 위치를, 상기 우도순으로, 상기 오류 정정 회로의 선택 에러 후보로서 저장하는 에러 후보 테이블을 작성하는 상위 후보 선택부를 포함하는 것을 특징으로 하는 부기 1의 최대 우도 검출기.
(부기 3) 상기 임계값 판정부는, 상기 추출한 소정의 임계값 이하의 우도의 비트 위치를, 복수의 우도 레벨에 따라서, 상기 우도와 상기 비트 위치를 스택 테이블에 저장하는 것을 특징으로 하는 부기 2의 최대 우도 검출기.
(부기 4) 상기 상위 후보 선택부는, 상기 우도 레벨마다의 스택 테이블을 참조하여, 상기 우도순으로, 상기 오류 정정 회로의 선택 에러 후보의 비트 위치를 저장하는 것을 특징으로 하는 부기 3의 최대 우도 검출기.
(부기 5) 상기 상위 후보 선택부는, 상기 테이블에, 상기 우도의 절대값이 동일한 비트 위치를 하나의 선택 에러 후보로서, 상기 에러 후보 테이블에 저장하는 것을 특징으로 하는 부기 2의 최대 우도 검출기.
(부기 6)
상기 상위 후보 선택부는, 상기 우도 레벨마다의 스택 테이블을 참조하여, 상기 우도 레벨이 비교적 낮은 스택 테이블의 비트 위치를 상기 에러 후보 테이블에 저장하고, 또한 상기 우도 레벨이 비교적 높은 스택 테이블을 소트하고, 상기 에러 후보 테이블에, 소트된 비트 위치를 저장하는 것을 특징으로 하는 부기 4의 최대 우도 검출기.
(부기 7) 상기 에러 후보 추출기는, 상기 임계값 이하의 우도의 비트가, 소정 비트수 연속하고 있는 것을 검출하여, 상기 연속하고 있는 비트 위치의 상기 테 이블에의 저장을 금지하는 것을 특징으로 하는 부기 1의 최대 우도 검출기.
(부기 8) 상기 에러 후보 추출기는, 상기 추출된 비트 위치를, 상기 에러 후보의 시작 위치와 에러 길이의 형식으로, 상기 테이블을 작성하는 것을 특징으로 하는 부기 1의 최대 우도 검출기.
(부기 9) 입력 신호로부터 복호 대상 데이터열을 작성하고, 상기 복호 대상 데이터열의 각 비트의 우도를 검출하는 검출기와, 상기 각 비트의 우도를 받아, 소정의 임계값 이하의 우도를 갖는 임의 개수의 비트 위치 정보를, 상기 우도순으로, 선택 에러 후보로서 저장하는 에러 후보 테이블을 작성하는 에러 후보 추출기와, 상기 복호 대상 데이터열의 오류를 정정하여, 출력하는 정정 회로를 포함하고, 상기 정정 회로는, 상기 정정에 실패하였다고 판정하였을 때에, 상기 에러 후보 테이블로부터 상기 에러 후보를 취출하며, 새로운 상기 복호 대상 데이터열을 작성하는 것을 특징으로 하는 오류 정정 회로.
(부기 10) 상기 에러 후보 추출기는, 상기 복호 대상 데이터열의 각 비트의 우도와 소정의 임계값을 비교하여, 소정의 임계값 이하의 우도의 비트 위치를 추출하는 임계값 판정부와, 상기 추출된 비트 위치를, 상기 우도순으로, 상기 정정 회로의 선택 에러 후보를 저장하는 에러 후보 테이블을 작성하는 상위 후보 선택부를 포함하는 것을 특징으로 하는 부기 9의 오류 정정 회로.
(부기 11) 상기 임계값 판정부는, 상기 추출한 소정의 임계값 이하의 우도의 비트 위치를, 복수의 우도 레벨에 따라서, 상기 우도와 상기 비트 위치를 스택 테이블에 저장하는 것을 특징으로 하는 부기 10의 오류 정정 회로.
(부기 12) 상기 상위 후보 선택부는, 상기 우도 레벨마다의 스택 테이블을 참조하여, 상기 우도순으로, 상기 정정 회로의 선택 에러 후보의 비트 위치를 저장하는 것을 특징으로 하는 부기 11의 오류 정정 회로.
(부기 13) 상기 상위 후보 선택부는, 상기 테이블에, 상기 우도의 절대값이 동일한 비트 위치를 하나의 선택 에러 후보로서, 상기 에러 후보 테이블에 저장하는 것을 특징으로 하는 부기 10의 오류 정정 회로.
(부기 14) 상기 상위 후보 선택부는, 상기 우도 레벨마다의 스택 테이블을 참조하여, 상기 우도 레벨이 비교적 낮은 스택 테이블의 비트 위치를 상기 에러 후보 테이블에 저장하고, 또한 상기 우도 레벨이 비교적 높은 스택 테이블을 소트하여, 상기 에러 후보 테이블에, 소트된 비트 위치를 저장하는 것을 특징으로 하는 부기 12의 오류 정정 회로.
(부기 15) 상기 에러 후보 추출기는, 상기 임계값 이하의 우도의 비트가, 소정 비트수 연속하고 있는 것을 검출하고, 상기 연속하고 있는 비트 위치의 상기 테이블에의 저장을 금지하는 것을 특징으로 하는 부기 9의 오류 정정 회로.
(부기 16) 상기 정정 회로는, 상기 복호 대상 데이터열로부터 1조의 신드롬을 계산하는 신드롬 계산부와, 상기 1조의 신드롬으로부터, 오류 위치 다항식의 계수를 계산하고, 또한 상기 오류 위치 다항식의 계수를 이용하여, 정정이 성공하는지의 여부를 판정하고, 정정 실패라고 판정하였을 때에, 상기 에러 후보 테이블에 상기 에러 후보를 요구하는 오류 위치 다항식 계산부와, 상기 오류 위치 다항식 계산부의 정정 성공의 판정에 따라서, 상기 신드롬과 상기 오류 위치 다항식의 계수 를 이용하여, 상기 복호 대상 데이터열의 오류를 정정하는 정정 회로를 포함하는 것을 특징으로 하는 부기 9의 오류 정정 회로.
(부기 17)
상기 정정 회로는, 상기 계산한 신드롬을 유지하는 신드롬 유지부와, 상기 복호 대상 데이터열과, 상기 새로운 복호 대상 데이터열의 차분으로부터 신드롬의 차분을 계산하고, 상기 차분으로, 상기 유지된 신드롬을 갱신하는 신드롬 갱신부를 포함하는 것을 특징으로 하는 부기 16의 오류 정정 회로.
(부기 18) 상기 에러 후보 추출기는, 상기 추출된 비트 위치를, 상기 에러 후보의 시작 위치와 에러 길이의 형식으로, 상기 테이블을 작성하는 것을 특징으로 하는 부기 9의 오류 정정 회로.
(부기 19) 기억 매체로부터 신호를 판독하는 헤드와, 상기 헤드의 판독 신호로부터 복호 대상 데이터열을 작성하고, 상기 복호 대상 데이터열의 각 비트의 우도를 검출하는 검출기와, 상기 각 비트의 우도를 받고, 소정의 임계값 이하의 우도를 갖는 임의 개수의 비트 위치 정보를, 상기 우도순으로, 선택 에러 후보로서 저장하는 에러 후보 테이블을 작성하는 에러 후보 추출기와, 상기 복호 대상 데이터열의 오류를 정정하여, 출력하는 정정 회로를 포함하며, 상기 정정 회로는, 상기 정정에 실패하였다고 판정하였을 때에, 상기 에러 후보 테이블로부터 상기 에러 후보를 취출하고, 새로운 상기 복호 대상 데이터열을 작성하는 것을 특징으로 하는 매체 기억 장치.
(부기 20) 상기 에러 후보 추출기는, 상기 복호 대상 데이터열의 각 비트의 우도와 소정의 임계값을 비교하여, 소정의 임계값 이하의 우도의 비트 위치를 추출하는 임계값 판정부와, 상기 추출된 비트 위치를, 상기 우도순으로, 상기 정정 회로의 선택 에러 후보를 저장하는 에러 후보 테이블을 작성하는 상위 후보 선택부를 포함하는 것을 특징으로 하는 부기 19의 매체 기억 장치.
(부기 21) 상기 정정 회로는, 상기 복호 대상 데이터열로부터 1조의 신드롬을 계산하는 신드롬 계산부와, 상기 1조의 신드롬으로부터, 오류 위치 다항식의 계수를 계산하고, 또한 상기 오류 위치 다항식의 계수를 이용하여, 정정이 성공하는지의 여부를 판정하고, 정정 실패라고 판정하였을 때에, 상기 에러 후보 테이블에 상기 에러 후보를 요구하는 오류 위치 다항식 계산부와, 상기 오류 위치 다항식 계산부의 정정 성공의 판정에 따라서, 상기 신드롬과 상기 오류 위치 다항식의 계수를 이용하여, 상기 복호 대상 데이터열의 오류를 정정하는 정정 회로를 포함하는 것을 특징으로 하는 부기 19의 매체 기억 장치.
(부기 22) 상기 정정 회로는, 상기 계산한 신드롬을 유지하는 신드롬 유지부와, 상기 복호 대상 데이터열과, 상기 새로운 복호 대상 데이터열과의 차분으로부터 신드롬의 차분을 계산하고, 상기 차분으로, 상기 유지된 신드롬을 갱신하는 신드롬 갱신부를 포함하는 것을 특징으로 하는 부기 19의 매체 기억 장치.
(부기 23) 상기 에러 후보 추출기는, 상기 추출된 비트 위치를, 상기 에러 후보의 시작 위치와 에러 길이의 형식으로, 상기 테이블을 작성하는 것을 특징으로 하는 부기 19의 매체 기억 장치.
(산업상 이용가능성)
복호 대상 데이터열의 에러 후보로서, 각 비트의 우도로부터 오류 가능성이 높은 비트 위치를 추출하기 때문에, 정정 회로에, 유효한 정정을 행할 수 있는 에러 후보를 제공할 수 있다. 또한, 에러 후보로서, 오류 가능성이 높은 비트 위치만을 추출하기 때문에, 정정 회로가, 우도가 낮은 순으로 에러 후보를 취출할 수 있도록 한 바와 같이, 우도순으로 소트하는 횟수를 삭감할 수 있어, 계산량 삭감에 유효하다. 이 때문에, 복호 속도를 적은 계산량으로 향상시킬 수 있다.
도 1은 본 발명의 일 실시형태를 도시하는 매체 기억 장치의 기록 재생계의 구성도.
도 2는 도 1의 에러 후보 추출기의 블록도.
도 3은 도 2의 임계값 판정부의 동작 설명도.
도 4는 도 1의 상위 후보 선출부의 동작 설명도.
도 5는 도 1의 ECC 복호기의 블록도.
도 6은 도 5의 오류 위치 다항식 계산부의 처리 흐름도.
도 7은 도 6의 오류 위치 다항식의 계산 알고리즘의 설명도.
도 8은 도 5의 체인 서치 실행부의 처리 흐름도.
도 9는 도 5의 ECC 복호기의 동작 설명도.
도 10은 도 5의 신드롬 갱신부의 동작 설명도.
도 11은 도 5의 신드롬 갱신부의 처리 흐름도.
도 12는 도 1의 에러 후보 추출기의 다른 실시형태의 블록도.
도 13은 도 12의 스택 테이블의 동작 설명도.
도 14는 도 12의 상위 후보 선출부의 동작 설명도.
도 15는 도 12의 상위 후보 선출부의 출력 형식의 설명도.
도 16은 도 12의 에러 후보 테이블의 설명도.
도 17은 종래의 오류 정정 회로의 블록도.
도 18은 종래의 오류 정정을 위한 부호화 동작의 설명도.
도 19는 도 18의 패리티열 생성 동작의 설명도.
도 20은 종래의 오류 정정 동작의 설명도.
(부호의 설명)
201: 프리앰프 202: 리드 채널
203: 하드디스크 컨트롤러 226: 검출기
227: 에러 후보 추출기 231: 에러 후보 보존기
232: ECC 복호기 240: 임계값 판정부
242: 레벨별 스택 테이블 248: 상위 후보 선출부
244: 스택 테이블 246: 후보 선출부
247: 에러 후보 테이블

Claims (12)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 입력 신호로부터 복호 대상 데이터열을 작성하고, 상기 복호 대상 데이터열의 각 비트의 우도를 검출하는 검출기와,
    상기 각 비트의 우도를 받고, 소정의 임계값 이하의 우도를 갖는 임의 개수의 비트 위치 정보를, 상기 우도순으로, 선택 에러 후보로서 저장하는 에러 후보 테이블을 작성하는 에러 후보 추출기와,
    상기 복호 대상 데이터열의 오류를 정정하여, 출력하는 정정 회로
    를 포함하고,
    상기 정정 회로는, 상기 정정에 실패하였다고 판정하였을 때에, 상기 에러 후보 테이블로부터 우도값이 낮은 에러 후보를 취출하고, 상기 복호열의 대응 위치의 비트를 플립하여, 새로운 상기 복호 대상 데이터열을 작성하며,
    상기 에러 후보 추출기는,
    상기 복호 대상 데이터열의 각 비트의 우도와 소정의 임계값을 비교하여, 소정의 임계값 이하의 우도의 비트 위치를 추출하는 임계값 판정부와,
    상기 추출된 비트 위치를, 상기 우도순으로, 상기 정정 회로의 선택 에러 후보를 저장하는 에러 후보 테이블을 작성하는 상위 후보 선택부
    를 포함하고,
    상기 상위 후보 선택부는, 상기 테이블에, 상기 우도의 절대값이 동일한 비트 위치를 하나의 선택 에러 후보로서, 상기 에러 후보 테이블에 저장하는 것을 특징으로 하는 오류 정정 회로.
  7. 제6항에 있어서, 상기 상위 후보 선택부는, 상기 우도 레벨마다의 스택 테이블을 참조하여, 상기 우도순으로, 상기 오류 정정 회로의 선택 에러 후보의 비트 위치를 저장하는 것을 특징으로 하는 오류 정정 회로.
  8. 제6항에 있어서, 상기 임계값 판정부는, 상기 추출한 소정의 임계값 이하의 우도의 비트 위치를, 복수의 우도 레벨에 따라서, 상기 우도와 상기 비트 위치를 스택 테이블에 저장하는 것을 특징으로 하는 오류 정정 회로.
  9. 삭제
  10. 제6항에 있어서, 상기 정정 회로는,
    상기 복호 대상 데이터열로부터 1조의 신드롬을 계산하는 신드롬 계산부와,
    상기 1조의 신드롬으로부터, 오류 위치 다항식의 계수를 계산하고, 또한 상기 오류 위치 다항식의 계수를 이용하여, 정정이 성공하는지의 여부를 판정하고, 정정 실패라고 판정하였을 때에, 상기 에러 후보 테이블에 상기 에러 후보를 요구 하는 오류 위치 다항식 계산부와,
    상기 오류 위치 다항식 계산부의 정정 성공의 판정에 따라서, 상기 신드롬과 상기 오류 위치 다항식의 계수를 이용하여, 상기 복호 대상 데이터열의 오류를 정정하는 정정 회로
    를 포함하는 것을 특징으로 하는 오류 정정 회로.
  11. 제6항에 있어서, 상기 에러 후보 추출기는, 상기 추출된 비트 위치를, 상기 에러 후보의 시작 위치와 에러 길이의 형식으로, 상기 테이블을 작성하는 것을 특징으로 하는 오류 정정 회로.
  12. 기억 매체로부터 신호를 판독하는 헤드와,
    상기 헤드의 판독 신호로부터 복호 대상 데이터열을 작성하고, 상기 복호 대상 데이터열의 각 비트의 우도를 검출하는 검출기와,
    상기 각 비트의 우도를 받고, 소정의 임계값 이하의 우도를 갖는 임의 개수의 비트 위치 정보를, 상기 우도순으로, 선택 에러 후보로서 저장하는 에러 후보 테이블을 작성하는 에러 후보 추출기와,
    상기 복호 대상 데이터열의 오류를 정정하여, 출력하는 정정 회로
    를 포함하고,
    상기 정정 회로는, 상기 정정에 실패하였다고 판정하였을 때에, 상기 에러 후보 테이블로부터 우도값이 낮은 에러 후보를 취출하고, 상기 복호열의 대응 위치의 비트를 플립하여, 새로운 상기 복호 대상 데이터열을 작성하며,
    상기 에러 후보 추출기는,
    상기 복호 대상 데이터열의 각 비트의 우도와 소정의 임계값을 비교하여, 소정의 임계값 이하의 우도의 비트 위치를 추출하는 임계값 판정부와,
    상기 추출된 비트 위치를, 상기 우도순으로, 상기 정정 회로의 선택 에러 후보를 저장하는 에러 후보 테이블을 작성하는 상위 후보 선택부
    를 포함하고,
    상기 상위 후보 선택부는, 상기 테이블에, 상기 우도의 절대값이 동일한 비트 위치를 하나의 선택 에러 후보로서, 상기 에러 후보 테이블에 저장하는 것을 특징으로 하는 매체 기억 장치.
KR1020070108764A 2006-11-01 2007-10-29 최대 우도 검출기, 오류 정정 회로 및 매체 기억 장치 KR100933254B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JPJP-P-2006-00297442 2006-11-01
JP2006297442 2006-11-01
JP2007125221A JP5251000B2 (ja) 2006-11-01 2007-05-10 誤り訂正回路及び媒体記憶装置
JPJP-P-2007-00125221 2007-05-10

Publications (2)

Publication Number Publication Date
KR20080039798A KR20080039798A (ko) 2008-05-07
KR100933254B1 true KR100933254B1 (ko) 2009-12-22

Family

ID=39251204

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070108764A KR100933254B1 (ko) 2006-11-01 2007-10-29 최대 우도 검출기, 오류 정정 회로 및 매체 기억 장치

Country Status (5)

Country Link
US (1) US8230309B2 (ko)
EP (1) EP1927987B1 (ko)
JP (1) JP5251000B2 (ko)
KR (1) KR100933254B1 (ko)
CN (1) CN101174838B (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7844560B2 (en) 2006-04-17 2010-11-30 Siemens Medical Solutions Usa, Inc. Personalized prognosis modeling in medical treatment planning
TW200906072A (en) * 2007-07-24 2009-02-01 Princeton Technology Corp Error-correcting method used in decoding of data transmitting
EP2181504A4 (en) 2008-08-15 2010-07-28 Lsi Corp DECODING LIST OF CODED WORDS CLOSE IN A ROM MEMORY
US8245117B1 (en) * 2008-12-23 2012-08-14 Link—A—Media Devices Corporation Low complexity chien search in chase-type decoding of reed-solomon codes
WO2010123493A1 (en) * 2009-04-21 2010-10-28 Agere Systems, Inc. Error-floor mitigation of codes using write verification
US8948286B2 (en) * 2009-10-20 2015-02-03 Wisconsin Alumni Research Foundation Wireless communication system mapping data bits to symbol bit positions according to error rates of those bit positions and data content
US8601351B2 (en) * 2011-03-16 2013-12-03 Intel Corporation BCH decoding with multiple sigma polynomial calculation algorithms
CN102163463B (zh) * 2011-04-26 2013-01-02 西安交通大学 一种降低bch解码延迟的双钱氏搜索方法
TWI487291B (zh) * 2011-11-01 2015-06-01 Univ Nat Chiao Tung 循環碼解碼器及其方法
US8768990B2 (en) 2011-11-11 2014-07-01 Lsi Corporation Reconfigurable cyclic shifter arrangement
KR101361238B1 (ko) * 2012-06-05 2014-02-25 한국과학기술원 간섭 채널 환경에서의 오류 정정 방법 및 회로, 이를 이용한 플래시 메모리 장치
RU2012146685A (ru) 2012-11-01 2014-05-10 ЭлЭсАй Корпорейшн База данных наборов-ловушек для декодера на основе разреженного контроля четности
US8869008B2 (en) * 2013-01-17 2014-10-21 Apple Inc. Adaptation of analog memory cell read thresholds using partial ECC syndromes
CN104601178B (zh) * 2013-10-30 2018-02-02 群联电子股份有限公司 解码方法、解码电路、存储器存储装置与控制电路单元
TWI514778B (zh) * 2014-03-27 2015-12-21 Storart Technology Co Ltd 用於bch碼字之縮短秦式搜尋演算法延時的方法及電路
US9954556B2 (en) * 2015-02-25 2018-04-24 SK Hynix Inc. Scheme to avoid miscorrection for turbo product codes
JP2021044750A (ja) * 2019-09-12 2021-03-18 キオクシア株式会社 メモリシステム
JP7506795B1 (ja) 2023-05-02 2024-06-26 Nttイノベーティブデバイス株式会社 誤り訂正方法、誤り訂正回路及び通信システム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6553536B1 (en) 2000-07-07 2003-04-22 International Business Machines Corporation Soft error correction algebraic decoder

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04372779A (ja) * 1991-06-21 1992-12-25 Sony Corp 軟判定復号回路
JP2940386B2 (ja) * 1994-03-16 1999-08-25 日本電気株式会社 誤り訂正復号装置
US5577053A (en) * 1994-09-14 1996-11-19 Ericsson Inc. Method and apparatus for decoder optimization
JP2773701B2 (ja) * 1995-09-25 1998-07-09 日本電気株式会社 誤り訂正復号装置
US6411452B1 (en) * 1997-03-11 2002-06-25 Western Digital Technologies, Inc. Disk drive employing read error tolerant sync mark detection
JP3132754B2 (ja) * 1997-09-08 2001-02-05 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 記録装置、記録媒体及び記録制御方法
JP3567733B2 (ja) 1998-05-08 2004-09-22 株式会社日立製作所 信号復号方法、信号復号回路及びこれを用いた情報伝送通信装置、情報記憶再生装置
JP3239863B2 (ja) * 1998-11-27 2001-12-17 日本電気株式会社 データ復号処理装置および方法
JP2002343037A (ja) 2001-05-18 2002-11-29 Sony Corp ディジタル信号記録再生システム、ディジタル信号記録装置、ディジタル信号再生装置及びそのディジタル信号記録再生方法
US6740473B1 (en) * 2002-11-28 2004-05-25 United Microelectronics Corp. Method for shrinking critical dimension of semiconductor devices
JP4109556B2 (ja) * 2003-01-31 2008-07-02 松下電器産業株式会社 Ofdm信号の衝突位置検出装置、ofdm受信装置及びofdm信号の衝突位置検出方法及びofdm受信方法
JP4142537B2 (ja) * 2003-09-19 2008-09-03 松下電器産業株式会社 光ディスク装置
JP2006109019A (ja) * 2004-10-04 2006-04-20 Matsushita Electric Ind Co Ltd 誤り訂正回路及び誤り訂正方法
JP4598711B2 (ja) * 2006-03-30 2010-12-15 富士通株式会社 誤り訂正装置
JP4372779B2 (ja) 2006-09-12 2009-11-25 オリエントブレイン株式会社 防爆アンテナ

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6553536B1 (en) 2000-07-07 2003-04-22 International Business Machines Corporation Soft error correction algebraic decoder

Also Published As

Publication number Publication date
EP1927987A2 (en) 2008-06-04
KR20080039798A (ko) 2008-05-07
US8230309B2 (en) 2012-07-24
CN101174838A (zh) 2008-05-07
CN101174838B (zh) 2011-04-06
JP2008136166A (ja) 2008-06-12
EP1927987A3 (en) 2008-06-25
JP5251000B2 (ja) 2013-07-31
US20080104489A1 (en) 2008-05-01
EP1927987B1 (en) 2017-03-29

Similar Documents

Publication Publication Date Title
KR100933254B1 (ko) 최대 우도 검출기, 오류 정정 회로 및 매체 기억 장치
KR100935842B1 (ko) 부호화 장치, 복호화 장치, 부호화·복호화 장치 및 기록재생 장치
KR100976178B1 (ko) 부호화 장치, 복호화 장치, 부호화·복호화 장치 및 기록 재생 장치
KR100848614B1 (ko) 오류 정정 장치
KR100766354B1 (ko) 에러 정정 장치, 부호기, 복호기, 방법 및 정보 기억 장치
JP3749889B2 (ja) Prml検出を適用する信号処理デバイス、同デバイスを備えたディスク記憶装置、及び同装置におけるフィードバック制御のための信号処理方法
US7849388B2 (en) Signal decoding method and device, and signal storage system
US20050229069A1 (en) Techniques for detecting and correcting errors using multiple interleave erasure pointers
JP4118127B2 (ja) データの復号方法およびそれを用いたディスク装置
JP2007087529A (ja) 信号復号装置、信号復号方法、および記憶システム
CN101174839A (zh) 编码装置、解码装置、编码/解码装置及记录/再现装置
JP2005093038A (ja) 記録再生装置および記録再生回路
JP2002008325A (ja) 情報記録再生方法およびこれを用いた情報記録再生回路装置
KR101211244B1 (ko) 모듈레이션 코딩 및 디코딩
US20100241922A1 (en) Error correction circuit and data storage device
US7138931B2 (en) Recording and reproducing apparatus
JP2010152960A (ja) エラー訂正回路及び記憶装置
US6856660B1 (en) Signal processing method and apparatus and disk device using the method and apparatus
Cai et al. On the design of efficient constrained parity-check codes for optical recording

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20131118

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20141120

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20151118

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20161123

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20171117

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20181115

Year of fee payment: 10