KR100976178B1 - 부호화 장치, 복호화 장치, 부호화·복호화 장치 및 기록 재생 장치 - Google Patents

부호화 장치, 복호화 장치, 부호화·복호화 장치 및 기록 재생 장치 Download PDF

Info

Publication number
KR100976178B1
KR100976178B1 KR1020080124647A KR20080124647A KR100976178B1 KR 100976178 B1 KR100976178 B1 KR 100976178B1 KR 1020080124647 A KR1020080124647 A KR 1020080124647A KR 20080124647 A KR20080124647 A KR 20080124647A KR 100976178 B1 KR100976178 B1 KR 100976178B1
Authority
KR
South Korea
Prior art keywords
parity
error correction
code
error
decoding
Prior art date
Application number
KR1020080124647A
Other languages
English (en)
Other versions
KR20090084653A (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 KR20090084653A publication Critical patent/KR20090084653A/ko
Application granted granted Critical
Publication of KR100976178B1 publication Critical patent/KR100976178B1/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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2927Decoding strategies
    • 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
    • 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
    • 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
    • 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/1866Error detection or correction; Testing, e.g. of drop-outs by interleaving
    • 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/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • 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/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • H03M13/098Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit using single parity bit
    • 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/11Error 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 using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] 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/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming 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/27Coding, 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 using interleaving techniques
    • H03M13/2703Coding, 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 using interleaving techniques the interleaver involving at least two directions
    • H03M13/271Row-column interleaver with permutations, e.g. block interleaving with inter-row, inter-column, intra-row or intra-column permutations
    • 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/27Coding, 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 using interleaving techniques
    • H03M13/2703Coding, 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 using interleaving techniques the interleaver involving at least two directions
    • H03M13/2721Coding, 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 using interleaving techniques the interleaver involving at least two directions the interleaver involves a diagonal direction, e.g. by using an interleaving matrix with read-out in a diagonal direction
    • 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/27Coding, 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 using interleaving techniques
    • H03M13/2778Interleaver using block-wise interleaving, e.g. the interleaving matrix is sub-divided into sub-matrices and the permutation is performed in blocks of sub-matrices
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2918Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes with error correction codes in three or more dimensions, e.g. 3-dimensional product code where the bits are arranged in a cube
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2921Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes wherein error correction coding involves a diagonal direction
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2927Decoding strategies
    • H03M13/293Decoding strategies with erasure setting
    • 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
    • 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/1843Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information using a cyclic redundancy check [CRC]
    • 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/185Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information using an low density parity check [LDPC] code
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2508Magnetic discs
    • G11B2220/2516Hard disks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2537Optical discs
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding

Landscapes

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

Abstract

본 발명은 기록 재생 장치의 오류 정정 기술에 관한 것으로서, 회로 규모를 크게 하지 않고, 오류 정정 능력을 향상하는 것을 과제로 한다.
데이터열을, m(m≥2)비트마다, 복수 블록으로 인터리브(interleave)하고, 오류 정정 부호의 패리티(parity)를 부가하는 제 1 ECC 부호기(235)와, 복수의 비트수마다, 패리티 비트를 부가하는 패리티 부호기(234)와, 반복 복호를 사용하는 선형 부호화의 제 2 오류 정정 부호화를 행하는 제 2 ECC 부호기(220)를 설치한다. 연접(連接)형 부호화 데이터를 작성하므로, 복수 블록으로 인터리브하여 오류 정정 부호의 패리티를 생성해도, 회로 규모의 증가를 방지할 수 있다. 또한, 반복 복호를 사용하는 선형 부호화의 제 2 오류 정정 부호화를 병용하기 때문에, 반복 복호에 의해, ECC의 입력의 오류를 정정할 수 있고, 정정 성능 열화도 방지할 수 있다.
Figure R1020080124647
인터리브부, ECC 부호기, 패리티 계산부, LDPC 부호기

Description

부호화 장치, 복호화 장치, 부호화·복호화 장치 및 기록 재생 장치{ENCODING DEVICE, DECODING DEVICE, ENCODING/DECODING DEVICE, AND RECORDING/REPRODUCING DEVICE}
본 발명은, 기록 재생 장치나 통신 장치에 사용되는 오류 정정 부호를 포함하는 데이터의 부호화 장치, 복호화 장치, 부호화·복호화 장치 및 기록 재생 장치 에 관한 것으로, 특히, ECC(Error Correction Code)를 부여한 데이터 블록의 오류 정정을 위한 부호화 장치, 복호화 장치, 부호화·복호화 장치 및 기록 재생 장치에 관한 것이다.
자기 디스크 장치 등의 기록 재생 장치나 통신계의 분야에서는, 기록 재생 과정이나, 전송로에서 생긴 데이터의 오류를 정정하기 위해서, 오류 정정 부호(ECC: Error Correction Code)를 사용한 오류 정정 기술이, 널리 보급되고 있다.
이 ECC 부호로서, 리드 솔로몬(RS: Reed Solomon) 부호가 이용되고 있다(예를 들면, 특허문헌 1 참조). RS 부호는, 기록 데이터에, 미리 RS 부호화를 행하고, 기록 재생 과정을 거쳐서 재생된 비트열에 대해서, RS 복호화를 행하고, 비트열에 포함되는 오류를 검출·정정한다. 즉, RS 부호는, 심볼(symbol) 단위의 정정 능력이 우수하며, 특히, 버스트(burst) 오류의 검출, 정정 능력이 우수하다.
또한, 오류 정정 부호 기술로서, 반복 복호 형식이 이용되고 있다. 반복 복호와 ECC를 조합시켜서, 오류 검출·정정 능력을 향상할 수 있다. 최근, 반복 복호 형식의 하나인 저밀도 패리티 검사(LDPC: Low Density Parity Check) 부호가, 실용화되고 있다.
LDPC 부호는, 기록 데이터에, 미리 LDPC 부호화를 행하고, 기록 재생 과정을 거쳐서 재생된 신호에 대해서, 신뢰도 전파를 사용한 반복 복호를 행함으로써, 기록 재생 과정에서 생긴 오류를 정정할 수 있다(예를 들면, 특허문헌 2 참조).
LDPC 부호화의 특징은, 부호 블록 길이를 크게 한 결과, 패리티 검사 행렬 H 내의 “1"(검사 대상 비트)의 수가 적고(즉, 저밀도임), 또한, 랜덤으로 배치할 수 있는 특징을 갖는 선형 부호이다. LDPC 복호시에는, 우도(尤度; 데이터열 “0", "1"의 가능성을 나타내는 신뢰도)를 전파하여, 복호를 행하는 신뢰도 전파를 사용한 복호와, 반복 복호(파셜 리스폰스(partial response) 채널과 신뢰도 전파 복호기 사이를 반복하는 복호)로 행함으로써, 오류 정정을 행한다.
이하, LDPC 부호화 및 복호화를 설명한다. LDPC 부호는, 선형 부호이기 때문에, 다음의 검사 조건이 성립하도록, 패리티 검사 행렬(H)을 생성한다.
wHT=0 (1)
식 (1)에서, w는 LDPC 부호화된 부호어를 나타내고, H는 패리티 검사 행렬, T는 전치(轉置)를 나타낸다.
LDPC의 복호를 행할 때, 반복 복호의 정지 조건으로서, 규정 회수를 행하는 경우와, 상기 식 (1)의 검사 조건이 성립할 때, 즉 오류가 무(無)가 될 때에 정지하고, 복호기 출력으로 하는 경우가 있다.
일반적으로 우도로서, “0"이 될 확률과 “1"이 될 확률의 비를, 대수화(對數化)한 대수 우도비(LLR: Log-Likelihood Ratio)가 사용된다. 그리고, 원래의 2치 데이터가 "1"이면, 플러스의 우도, “0"이면, 마이너스의 우도가 부여된다. 따라서, 반복 복호 출력에서 복호 데이터열을 2치화할 때에는, “0"을 임계값으로 하는 임계값 판정기를 이용하여, 2치 판정을 행할 수 있다.
이 심볼 단위의 ECC 정정을 RS 부호와, ECC의 전단(前段)에서, 반복 복호에 의해, 비트 단위의 오류 검출·정정을 행하는 LDPC 부호를 조합시킨 부호화, 복호화 장치가, 제안되어 있다(예를 들면, 특허문헌 3 참조).
또한, ECC 정정에서, 이 RS 부호와, 오류 검출을 행하는 패리티 부호를 연접하고, 복수 인터리브 방식에서, 오류 정정 능력을 개선하는 방법이 제안되어 있다(비특허문헌 1).
도 15는, 종래의 RS 부호와 패리티 부호를 연접한 오류 정정 방법의 설명도이다. 예를 들면, 1블록이, 80비트인 다수의 블록으로 이루어지는 데이터열을 부호화 대상으로 상정한다. 우선, 각 블록(80비트)을, 20비트의 비트 간격으로, 인터리브하여, 4개의 블록 1001, 1002, 1003, 1004를 생성한다. 이 4개의 블록 1001, 1002, 1003, 1004에, ECC 부호기에 의해, RS 패리티 1011, 1012, 1013, 1014를 부가한다.
또한, 20비트×4(4블록)=80비트의 종방향에 대해서, 패리티 부호기에 의해, 2비트의 패리티 1110∼111n이 계산되어, 부가된다. 이 때문에, 여기서, 생성되는 부호는, 횡방향이 RS 부호에 의한 오류 정정 부호이며, 종방향이 멀티패리티(2비트 패리티)에 의한 오류 검출 부호로 이루어지는 연접형 부호의 구성이 된다.
이와 같이, 4분할된 블록을, 20비트의 인터리브로 작성하고, 오류 정정 및 검출 부호를 연접형 부호로 하고, 4분할된 블록의 횡방향으로, RS 부호에 의한 오류 정정 부호를, 종방향으로, 멀티패리티에 의한 오류 검출 부호를 적용한다.
이것을, 섹터 데이터열에서 보면, 횡방향으로 80비트마다, 멀티패리티에 의한 오류 검출 부호가 설치되어, 80비트(심볼) 단위로 오류를 검출할 수 있고, 또한 20비트(80비트의 1/4)의 4인터리브 단위로, RS 부호가 설치되어, 4인터리브 단위로, 오류 정정이 가능해진다. 이에 따라, ECC 복호 실패시에, 정정 위치를, 국소적으로 특정할 수 있어, 이득 향상에 기여한다.
[특허문헌 1] 일본국 특허공개 평11-330985호 공보
[특허문헌 2] 일본국 특허공개 2007-166425호 공보
[특허문헌 3] 일본국 특허공개 2005-093038호 공보
[비특허문헌 1] 저자 이토 토시오, 모리타 토시히코, 논문 “ERROR CORRECTING CODES FOR 4K-BYTE 섹터S" by IEEE “The Magnetic Recording Conference(TMRC 2007)", 2007년
그러나, 종래의 반복 복호에 LDPC를 사용하여, 그 후단(後段)의 ECC에 RS 부호를 사용하여 조합시킨 방법에서는, 반복 복호에서의 정정 능력은 향상하지만, ECC에서의 정정 능력의 향상은, 그다지 기대할 수 없다.
한편, 종래의 RS 부호와 패리티 부호를 연접한 오류 정정 방법(ECC)의 제안에서는, 최우(最尤) 복호를 전제로 하고 있기 때문에, 복호에서의 오류·정정 능력이 높지 않다는 문제가 있다.
따라서, 본 발명의 목적은, 복호와 ECC의 조합에 의한 오류 정정 성능을 향상하기 위한 부호화기, 복호화기, 부호화·복호화 장치 및 기록 재생 장치를 제공하는 데 있다.
또한, 본 발명의 다른 목적은, 선형 부호화와 ECC를 조합시켜서, 복수 인터리브 구성으로 ECC 부호화해도, 오류 정정 성능의 열화를 방지하기 위한 부호화기, 복호화기, 부호화·복호화 장치 및 기록 재생 장치를 제공하는 데 있다.
또한, 본 발명의 또 다른 목적은, LDPC와 ECC를 조합시켜도, 복수 인터리브 구성으로 ECC 부호화에서의 오류 정정 능력을 향상하고, LDPC의 국소적 에러의 집중이 생겨도, 에러 검출을 가능하게 하기 위한 부호화기, 복호화기, 부호화·복호화 장치 및 기록 재생 장치를 제공하는 데 있다.
이 목적의 달성을 위해, 본 발명의 부호화기는, 데이터열을, m(m≥2)비트마 다, n(n≥2)블록의 데이터열로 인터리브(interleave)하고, 상기 인터리브된 각 블록의 데이터열로부터 제 1 오류 정정 부호의 패리티(parity)를 생성하고, 상기 데이터열에 각 블록의 상기 제 1 오류 정정 부호의 패리티를 부가하여, 오류 정정 부호어를 작성하는 ECC 부호기와, 상기 오류 정정 부호어의 복수의 비트 수마다, 패리티 비트를 작성하여, 상기 오류 정정 부호어에 부가하는 패리티 부호기와, 상기 오류 정정 부호어에 상기 패리티 부호기에 의해 생성된 패리티가 부가된 제 2 오류 정정 부호어를, K(K≥2)비트마다, L개(L≥2)의 블록의 데이터열로 분할하고, 각 블록의 데이터열로부터, 상기 블록 단위로, 선형(線形) 부호인 제 2 오류 정정 부호의 패리티를 생성하고, 상기 제 2 오류 정정 부호어에, 각 블록의 상기 제 2 오류 정정 부호의 패리티를 부가하여, 제 3 오류 정정 부호어를 작성하는 제 2 ECC 부호기를 갖는다.
또한, 본 발명의 복호기는, 제 3 오류 정정 부호어로 부호화된 부호화 데이터를 복호화하는 복호기로서, 수신한 상기 부호화 데이터열을, 상기 제 2 ECC 부호의 패리티를 이용하여, 반복 복호하고, 상기 부호화 데이터열을, 비트열로 복호화하고, 또한 각 비트의 우도(尤度)를 출력하는 반복 복호기와, 상기 반복 복호기의 부호화 데이터열의 제 1 오류 정정 부호에 의한 오류 정정 복호와, 상기 패리티 비트에 의한 오류 검출에 따른, 상기 우도에 의한 상기 부호 비트열의 정정 복호를 반복하여 행하는 ECC 복호 회로를 갖는다.
또한, 본 발명의 부호화·복호화 장치는, 데이터열을, m(m≥2)비트마다, n(n≥2)블록의 데이터열로 인터리브하고, 상기 인터리브된 각 블록의 데이터열로부터 제 1 오류 정정 부호의 패리티를 생성하고, 상기 데이터열에 각 블록의 상기 제 1 오류 정정 부호의 패리티를 부가하여, 오류 정정 부호어를 작성하는 ECC 부호기와, 상기 오류 정정 부호어의 복수의 비트 수마다, 패리티 비트를 작성하고, 상기 오류 정정 부호어에 부가하는 패리티 부호기와, 상기 오류 정정 부호어에 상기 패리티 부호기에 의해 생성된 패리티가 부가된 제 2 오류 정정 부호어를, K(K≥2)비트마다, L개(L≥2)의 블록의 데이터열로 분할하고, 각 블록의 데이터열로부터, 상기 블록 단위로, 선형 부호인 제 2 오류 정정 부호의 패리티를 생성하고, 상기 제 2 오류 정정 부호어에, 각 블록의 상기 제 2 오류 정정 부호의 패리티를 부가하여, 제 3 오류 정정 부호어를 작성하는 제 2 ECC 부호기와, 수신한 상기 부호화 데이터열을, 상기 제 2 ECC 부호의 패리티를 이용하여, 반복 복호하고, 상기 부호화 데이터열을, 비트열로 복호화하고, 또한 각 비트의 우도를 출력하는 반복 복호기와, 상기 반복 복호기의 부호화 데이터열의 제 1 오류 정정 부호에 의한 오류 정정 복호와, 상기 패리티 비트에 의한 오류 검출에 따른, 상기 우도에 의한 상기 부호 비트열의 정정 복호를 반복하여 행하는 ECC 복호 회로를 갖는다.
또한, 본 발명의 기록 재생 장치는, 기억 매체에 데이터를 기입하고 또한 판독하는 헤드와, 상기 기억 매체에 기입해야 할 데이터열을, 데이터열을, m(m≥2)비트마다, n(n≥2)블록의 데이터열로 인터리브하고, 상기 인터리브된 각 블록의 데이터열로부터 제 1 오류 정정 부호의 패리티를 생성하고, 상기 데이터열에 각 블록의 상기 제 1 오류 정정 부호의 패리티를 부가하여, 오류 정정 부호어를 작성하는 ECC 부호기와, 상기 오류 정정 부호어의 복수의 비트 수마다, 패리티 비트를 작성하여, 상기 오류 정정 부호어에 부가하는 패리티 부호기와, 상기 오류 정정 부호어에 상기 패리티 부호기에 의해 생성된 패리티가 부가된 제 2 오류 정정 부호어를, K(K≥2)비트마다, L개(L≥2)의 블록의 데이터열로 분할하고, 각 블록의 데이터열로부터, 상기 블록 단위로, 선형 부호인 제 2 오류 정정 부호의 패리티를 생성하고, 상기 제 2 오류 정정 부호어에, 각 블록의 상기 제 2 오류 정정 부호의 패리티를 부가하여, 제 3 오류 정정 부호어를 작성하고, 상기 헤드에 출력하는 제 2 ECC 부호기와, 상기 헤드가 판독한 상기 부호화 데이터열을, 상기 제 2 ECC 부호의 패리티를 이용하여, 반복 복호하고, 상기 부호화 데이터열을, 비트열로 복호화하고, 또한 각 비트의 우도를 출력하는 반복 복호기와, 상기 반복 복호기의 부호화 데이터열의 제 1 오류 정정 부호에 의한 오류 정정 복호와, 상기 패리티 비트에 의한 오류 검출에 따른, 상기 우도에 의한 상기 부호 비트열의 정정 복호를 반복하여 행하는 ECC 복호 회로를 갖는다.
또한, 본 발명의 부호화기는, 바람직하게는, 상기 제 2 ECC 부호기는, 패리티 검사 행렬에서의 "1"의 수가 저밀도이고, 또한 선형 부호인 저밀도 패리티 검사(LDPC) 부호의 요건을 충족시키는 제 3 오류 정정 부호어를 작성하는 동시에, 상기 패리티 검사 행렬에 대응하는 생성 행렬을 이용하여 패리티를 생성한다.
또한, 본 발명의 부호화기는, 바람직하게는, 상기 패리티 부호기는, 상기 오류 정정 부호어를, L개(L≥2)의 블록으로 분할하고, 분할된 각 상기 블록으로부터 p(p≥1)비트 단위의 데이터열을, q(q≥2)개 추출하고, p×q개의 데이터열에 대해서, 패리티를 생성한다.
또한, 본 발명의 부호화기는, 바람직하게는, 상기 패리티 부호기는, 상기 p×q개의 데이터열에 대해서 생성된 상기 패리티를, 상기 생성에 사용한 데이터열을 포함하는 상기 블록 이외의 블록에 부가한다.
또한, 본 발명의 부호화기는, 바람직하게는, 상기 ECC 부호기는, 상기 데이터열을, m(m≥2)비트마다, n(n≥2)블록의 데이터열로 인터리브하는 인터리브부와, 인터리브된 각 블록의 데이터열로부터 오류 정정 부호의 패리티를 생성하는 ECC 부호부와, 상기 각 블록의 데이터열을 상기 m비트마다, 디인터리브하고, 또한 상기 데이터열에 복원하고, 또한 상기 오류 정정 부호의 패리티를 상기 복원된 데이터열에 부가하는 디인터리브부를 갖는다.
또한, 본 발명의 부호화기는, 바람직하게는, 상기 ECC 부호기는, 상기 오류 정정 부호로서, 리드 솔로몬 부호를 생성한다.
또한, 본 발명의 복호기는, 바람직하게는, 상기 반복 복호기는, 상기 패리티 검사 행렬에서의 “1"의 수가 저밀도이고, 또한 선형 부호인 저밀도 패리티 검사(LDPC) 부호의 요건을 충족시키는 상기 제 3 오류 정정 부호어로부터, 상기 제 2 오류 정정 부호어의 상기 패리티를 이용하여, 상기 반복 복호하고, 상기 부호화 데이터열을, 상기 제 2 오류 정정 부호어로 경(硬)판정하고, 또한 각 비트의 우도를 출력한다.
또한, 본 발명의 복호기는, 바람직하게는, 상기 반복 복호기는, 상기 제 2 오류 정정 부호어의 상기 패리티 비트열에 의한 오류 검출에서, 상기 제 2 오류 정정 부호어의 블록이, 상기 패리티 검사 조건을 충족시키고, 오류가 검출되지 않았 을 때에, 상기 반복 복호를 정지하고, 또한 상기 제 2 오류 정정 부호어의 블록 내의 각 비트의 우도를 최대의 우도값으로 설정한다.
또한, 본 발명의 복호기는, 바람직하게는, 상기 ECC 복호 회로는, 상기 반복 복호기로부터의 부호 비트열의 상기 제 1 오류 정정 부호에 의한 오류 정정을 행하는 ECC 복호기와, 상기 ECC 복호기의 복호 실패에 따라서, 상기 패리티 비트에 의한 오류 검출을 행하고, 상기 오류 검출 결과에 따라, 상기 우도에 의해, 상기 ECC 복호기에 입력되는 상기 부호 비트열의 정정을 행하는 패리티·우도 정정기를 갖는다.
또한, 본 발명의 복호기는, 바람직하게는, 상기 반복 복호기로부터의 부호 비트열로부터 상기 패리티 비트를 분리하고, 상기 패리티·우도 정정기에 출력하는 분할부와, 상기 패리티 비트가 분리된 상기 부호 비트열을, 상기 m(m≥2)비트마다, n(n≥2)블록의 데이터열로 인터리브하는 인터리브부와, 상기 인터리브된 각 블록의 데이터열을 보존하는 데이터 보존부를 더 가지며, 상기 ECC 복호기는, 상기 데이터 보존부의 각 블록의 데이터열을 상기 오류 정정 부호에 의한 오류 정정을 행하고, 상기 패리티·우도 정정기는, 상기 데이터 보존기의 데이터열의 정정을 행한다.
또한, 본 발명의 복호기는, 바람직하게는, 상기 패리티·우도 정정기는, 상기 복호 실패시에, 상기 실패한 블록을 포함하는 상기 L개의 블록으로부터 p(p≥1)비트 단위의 데이터열을, q(q≥2)개 추출하고, p×q개의 데이터열에 대해서, 패리티를 재생성하고, 부가된 상기 패리티 비트와 비교하여, 오류 검출한다.
또한, 본 발명의 복호기는, 바람직하게는, 상기 패리티·우도 정정기는, 상 기 L개의 블록 이외의 블록에 부가된 패리티를 취출하여, 상기 재생성된 패리티와 비교한다.
또한, 본 발명의 복호기는, 바람직하게는, 상기 부호화 데이터열의 상기 오류 정정 부호가, 리드 솔로몬 부호로 이루어진다.
데이터열을, m(m≥2)비트마다, 복수 블록으로 인터리브하여, 오류 정정 부호의 패리티를 부가하고, 복수의 비트 수마다, 패리티 비트를 부가한 연접형 부호화 데이터를 작성하므로, 복수 블록으로 인터리브하여 오류 정정 부호의 패리티를 생성해도, 회로 규모의 증가를 방지할 수 있다. 또한, 반복 복호를 사용하는 선형 부호화의 제 2 오류 정정 부호화를 병용하기 때문에, 반복 복호에 의해, ECC의 입력의 오류를 정정할 수 있고, 정정 성능 열화도 방지할 수 있다. 이 때문에, WINDOWS(등록 상표)의 VISTA(등록 상표)에 사용되는 롱섹터 타입의 기록 재생 장치의 회로 규모 증가를 방지하면서, 정정 성능을 향상할 수 있다.
이하, 본 발명의 실시예를, 기록 재생 시스템, 부호화기, 복호화기, 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)는, 도 2 내지 도 4에서 후술하는 바와 같이, 인터리브하여, RS 패리티열을 부가한다.
또한, 패리티 부호기(234)는, 도 2, 도 5에서 설명한 바와 같이, ECC와는 다른 에러 검출을 행하기 위한 2비트 패리티를 구하고, 구한 모든 2비트 패리티를, ECC 부호화 데이터열에 부가한다.
패리티가 부가된 ECC 부호화된 데이터열은, RDC(202)에 입력한다. RDC(202) 내의 LDPC 부호기(220)는, 도 6에서 설명한 바와 같이, ECC 부호나 패리티 부호는, 다른 에러 검출을 행하기 위한 LDPC 패리티를, LDPC 블록마다 구하고, 또한 각각의 LDPC 패리티를, LDPC 블록마다, 상기 패리티 부호화된 ECC 부호화 데이터열에 부가한다.
기록 보상기(229)는, 자화(磁化) 반전이 인접하는 개소에서, 반전 간격을 다소 넓히는 보상 처리를 행한다. 그리고, RDC(202) 내의 드라이버(228)는, 기록 보상된 데이터열을 프리앰프(201)에 출력한다. 프리앰프(201)에서는, 드라이버(212)가, 도시하지 않은 기록 헤드(라이트 헤드)의 라이트 전류를 발생하고, 기록 헤드 를 구동하여, 도시하지 않은 자기 디스크에 기록을 행한다.
한편, 재생시를 설명한다. 재생시는, 프리앰프(201)의 앰프(211)가, 재생 헤드(리드 헤드)로부터의 아날로그 전압을 증폭한 후, RDC(202)에 출력한다. RDC(202)의 서멀 어스페리티(thermal asperity) 검출 처리부(221)는, 서멀 어스페리티 처리한 후, 가변 이득 앰프(VGA)(222)가, 진폭 조정된다.
그 후, 로패스(low pass) 필터(LPF)(223)가, 진폭 조정된 리드 신호의 고주파수 영역을 컷트하고, A/D 컨버터(ADC)(224)가, 그 아날로그 출력을 디지털 신호로 변환한다. 그 후, FIR(Finite Impulse Response) 필터(225)가, PR(Partial Response) 파형 등화를 행한 후, 반복 복호기(226)에 출력한다.
반복 복호기(226)는, 도 9 이하에서 설명한 바와 같이, 연(軟)입력 연출력 검출기와 LDPC 복호기로 구성되고, 우도를 이용하여 반복 복호를 행한다. 연입력 연출력 검출기는, 예를 들면, Max-log-MAP(Maximum A Posteriori) 알고리즘, SOVA(Soft-0utput Viterbi Algorithm) 및 잡음 예측 기능 첨부 SOVA(NPSOVA: Noise Predictive S0VA) 등을 사용한다. LDPC 복호기는, 예를 들면, Sum-Product 알고리즘이나, Min-Sum 알고리즘 등을 사용한다.
제 1 패리티·우도 정정기(227)는, 복호기(226)가 구한 우도를 사용하여, 오류 후보의 위치 정보를 구하고, 우도와 위치 정보의 테이블을 작성한다. 반복 복호기(226)로부터 「0」 또는 「1」로 경판정(Hard Decision)된 복호열은, HDC(203)로 이송된다. ECC 복호기(230)는, 4 인터리브 구성에서의 오류 정정을 행한다.
복호가 성공한 경우에는, 기록 복호기(231)가, 기록 부호기(236)의 부호화와 반대의 복호화를 행하고, CRC 복호기(232)가, CRC 복호하여, 재생 데이터로서 출력한다.
또한, ECC 복호기(230)에서 복호가 실패한 경우에는, 제 2 패리티·우도 정정기(233)에 데이터가 입력된다. 제 2 패리티·우도 정정기(233)는, 제 1 패리티·우도 정정기(227)의 우도와 위치 정보 테이블을 이용하여, ECC의 정정이 실패한 블록의 정정을 행한다.
제 2 패리티·우도 정정기(233)에서 정정된 데이터는, ECC 복호기(230)에 입력되어, ECC에 의한 오류 정정을 행한다. ECC 복호기(230)에서 복호가 성공한 경우에는, 상술한 바와 같이, 기록 복호기(231), CRC 복호기(232)를 거쳐서, 재생 데이터로서 출력된다. 한편, ECC 복호가, 실패한 경우에는, 제 2 패리티·우도 정정기(233)에 재차 데이터가 입력되어, 블록의 정정이 행해진다.
이와 같이 ECC에 의한 오류 정정이 실패한 경우에는, 우도 정보를 사용하여, 제 2 패리티·우도 정정기(233)와 ECC 복호기(230)에서의 반복을 되풀이함으로써, 정정 능력을 높여 갈 수 있다.
여기서, ECC 복호기(230)에서의 오류 정정을 몇 번인가 되풀이할 경우가 있기 때문에, 도 12에서 설명하는 고속 판정 ECC 회로를 사용한다. 이에 따라, 계산량을 삭감할 수 있다.
또한, 본 발명에서는, 제 1 패리티·우도 정정기(227)는, 반복 복호기(226)로부터, 복호열의 각 비트의 위치와, 그 우도를 받아들이고, 패리티가 부가된 데이터열의 단위로, 우도가 낮은(오류의 가능성이 높은) 비트 위치를 에러 후보로서, 추출하여, 테이블을 작성한다.
즉, 에러 후보로서, 오류의 가능성이 높은 비트 위치를 추출하기 때문에, ECC 복호기(230)에, 유효한 정정을 할 수 있는 에러 후보를 제공할 수 있다. 또한, 에러 후보로서, 오류의 가능성이 높은 비트 위치만을 추출하기 때문에, ECC 복호기(230)가, 우도가 낮은 순으로 에러 후보를 취출할 수 있도록, 우도순으로 소트하는 회수를 삭감할 수 있어, 계산량 삭감에 유효하다.
(부호화기)
다음에, 도 1의 ECC 부호기, 패리티 부호기 및 LDPC 부호기의 구성을 설명한다. 도 2는, 도 1의 ECC 부호기(235), 패리티 부호기(234) 및 LDPC 부호기의 블록도, 도 3은, 도 2의 인터리브부의 동작 설명도, 도 4는, 도 2의 ECC 부호기 및 디인터리브부의 동작 설명도, 도 5는, 도 2의 패리티 부호기의 동작 설명도, 도 6은, 도 2의 LDPC 부호기의 동작 설명도, 도 7은, 도 2 내지 도 6에 의한 LDPC 블록, RS 블록 및 패리티의 관계도, 도 8은, 비교예의 설명도이다.
도 2에 나타낸 바와 같이, ECC 부호기(235)는, 인터리브부(102), ECC 부호기(104), 디인터리브부(106)로 이루어진다. 인터리브부(102)는, 도 3에 나타낸 바와 같이, 4kByte 섹터의 데이터열(1000)을, 4개(n=4)의 블록(1001, 1002, 1003, 1004)으로 인터리브한다. 이 인터리브를 행할 때, 섹터의 데이터열(1OOO)을, 1O비트(m=1O)의 비트 간격으로 인터리브를 행한다.
ECC 부호기(104)는, 4개로 분할된 각 블록(1001, 1002, 1003, 1004)에 대해서, ECC 부호화를 행하고, 도 4에 나타낸 바와 같이, 각 블록(1001∼1004)에, RS 부호의 패리티(1011, 1012, 1013, 1014)를 부가한다. ECC 부호기(104)는, 복호가 실패했다는 정보를, 오류 위치 다항식을 구했을 때에 판정할 수 있도록, t심볼 정정에 대해서, 2t+1심볼의 RS 패리티를 부가하는 것이 바람직하다.
디인터리브부(106)는, 도 4에 나타낸 바와 같이, RS 패리티가 부가된 각 블록에 대해서, 10비트의 간격으로, 디인터리브 처리(인터리브와 반대 조작)를 행하고, 1계열의 데이터열(RS 부호열)(1100)로 변환한다.
예를 들면, 4kByte의 섹터 데이터열을 4분할하면, 1블록은, 1kByte가 된다. 오류 정정 수 t를 55심볼로 하면, 2t+1심볼(=111심볼)의 RS 패리티를 부가한다.
다음에, 패리티 부호기(234)는, 도 5에 나타낸 바와 같이, RS 부호열(1100)을, L개(예를 들면, 10개)로 분할한 블록(1101∼1110) 중, q(q≤L)개(예를 들면, 4개)의 블록(1101∼1104)으로부터, 10비트의 데이터열(p=10)을 각각 추출하고, p×q개의 데이터열의 각각에 대해서, 패리티(1121, 1122)를 생성한다. 생성한 패리티는, 추출한 블록(1101∼1110)과는 다른 각 블록(1117, 1118)에 부가하고, 데이터(1130)를 출력한다. 여기서는, 패리티는, {(K·L)/(p·q)}·2개 생성된다.
다음에, 도 6에 나타낸 바와 같이, LDPC 부호기(220)는, 패리티 부호기(234)에 의해, 패리티가 부가된 RS 부호열(1130)을 L개로 분할된 K'(도 5에서 설명한 바와 같이, RS 부호열(1100)을 L개로 분할한 데이터 길이를 K비트라 하고, 그것에 패리티를 부가한 데이터 길이를 K'로 함) 비트의 데이터열(1131∼1140)마다, LDPC 부호화를 행하고, 각 블록(1131∼1140)에, LDPC 부호의 패리티(1171∼1180)를 부가한다.
이와 같이 부가한 패리티(1121)를, 각 LDPC 블록(1151∼1160)으로부터 추출함으로써, LDPC 복호시에서의 버스트 오류 발생에 대해서, 패리티가 분산되어 있기 때문에, 패리티에 의한 오류 검출이 가능해진다.
이것을 도 7 및 도 8에서 설명한다. 우선, 도 7은, 도 5의 실시예와 같이, 패리티를 분산시켜서, 패리티를 작성, 부가한 경우의 설명도, 도 8은, 도 5의 실시예와 같이, 패리티를 분산시키지 않고, 패리티를 작성, 부가한 경우의 설명도이다.
LDPC는, 낮은 확률이지만, LDPC 블록 내의 오류를 정정할 수 없는 경우가 있고, 오(誤)정정에 의해 많은 오류를 발생시키는 경우가 있다. 도 8은, LDPC 블록(1151∼1155)과, RS 부호 블록(1001∼1004) 및 인터리브한 비트열을 통합하여, 생성한 패리티의 관련 설명도를 나타낸다. 비특허문헌에서 나타낸 방법과 LDPC를 조합시킨 것으로, 10비트의 비트 간격으로의 인터리브에 의해 생성된 4개의 블록 (1001, 1002, 1003, 1004)에, ECC 부호기에 의해, RS 패리티(1011, 1012, 1013, 1014)가 부가된다. 또한, 10비트×4(4블록)=40비트의 종방향에 대해서, 패리티 부호기(234)에 의해, 2비트 패리티(1121∼112n)가 계산되어, 부가된다. 이 때문에, 여기서, 생성되는 부호는, 횡방향이 RS 부호에 의한 오류 정정 부호이며, 종방향이 멀티패리티(2비트 패리티)에 의한 오류 검출 부호로 이루어지는 연접형의 부호의 구성으로 되어 있다.
그러나, 도 8에 나타낸 바와 같이, LDPC 블록이 바르게 복호되어 있는 경우(블록 1151, 1153, 1154)는, 오류가 없기 때문에, 패리티(1121)의 효과는 없다.
한편, LDPC 블록을 잘못 복호하는 경우(블록 1152, 1155)는, 매우 많은 오 류(도면의 ×표로 나타냄)가 발생하여, 패리티에 의한 오류의 검출을 정확하게 할 수 없게 된다. 그 결과, 패리티에 의한 오류 검출을 할 수 없고, ECC에서의 우도를 사용한 정정이 행해지지 않기 때문에, RS 복호와 패리티 우도·정정에 의한 오류 정정 능력의 향상을 기대할 수 없다.
한편, 도 7에 나타낸 바와 같이, 도 5와 같이, RS 부호부(1100)가 분산된 비트열로부터 패리티를 생성하는 경우에는, 1개의 패리티가, 1개의 LDPC 블록 내에서 작성되지 않고, 복수의 LDPC 블록의 데이터열로 작성된다. 그리고, 작성 대상의 블록 이외의 블록에, 그 패리티가 삽입된다.
따라서, 생성되는 부호는, 횡방향이 RS 부호에 의한 오류 정정 부호이며, 종방향이 LDPC 패리티에 의한 오류 검출 부호로 이루어지고, 또한 분할된 RS 블록의 경사 방향에 대한 패리티가 부가된다.
이 때문에, 후술하는 바와 같이, 복호시에, LDPC 블록을 잘못 복호하는 경우(블록 1152, 1155)에, 매우 많은 오류(도면의 ×표로 나타냄)가 발생해도, 패리티에 의한 오류의 검출을 정확하게 할 수 있다.
한편, 도 8에서는, LDPC 패리티와, 부가하는 패리티는, 동일한 종방향이기 때문에, 상술한 바와 같이, LDPC 블록을 잘못 복호하는 경우(블록 1152, 1155)는, 매우 많은 오류가 발생하여, 패리티에 의한 오류의 검출을 정확하게 할 수 없다.
(복호기)
도 9는, 도 1의 복호기의 기본 구성의 블록도, 도 10은, 도 9의 반복 복호기의 상세 블록도, 도 11은, 도 9 및 도 10의 LDPC 복호기의 설명도이다.
도 9에 나타낸 바와 같이, 반복 복호기(226)는, 연입력·연출력 복호기(300)와, LDPC 복호기(302)와, 임계값 판정기(304)에 의해 구성한다. 연입력·연출력 복호기(300)는, 상술한 복수의 실용적인 알고리즘이 있지만, 여기서는, 예를 들면, NPSOVA를 사용한다.
도 10은, 도 9의 반복 복호기(226)의 복호 플로를 나타낸 설명도이다. 도면에 나타낸 바와 같이, 반복 복호기(260)는, LDPC 블록마다 복호를 행한다. NPSOVA (300)의 입력은, FIR 필터(225)(도 1 참조)의 출력 데이터열과, LDPC 복호기(302)로부터의 사전(事前) 우도이다. 이 사전 우도는, 반복 복호의 첫회에서는, 모두 “0"으로 한다. 또한, 사전 우도는, LDPC 복호기(302)의 출력 우도로부터, LDPC 복호기(302)의 입력 우도를 뺀 우도열(즉, LDPC 복호기(302)에서의 우도의 갱신량)이다.
NPSOVA(300)는, FIR 필터(225)의 출력 데이터열과 사전 우도를 이용하여 복호를 행한다. NPSOVA(300)로부터의 출력 우도열은, 복호에 의해 얻어진 우도로부터 사전 우도를 뺀 우도열이다. 이 NPSOVA 출력 우도열은, LDPC 복호기(302)에 이송된다.
LDPC 복호기(302)도, 상술한 복수의 실용적인 알고리즘이 있지만, 여기서는, 예를 들면, Sum-Product 알고리즘을 사용한다. Sum-Product 알고리즘은, 도 11에서, 설명한 바와 같이, LDPC의 패리티 검사 행렬에 따라서, 이하에 설명하는 신뢰도 전파 복호를 행한다. 즉, LDPC 복호기(302)의 출력은, 반복 정지 조건에 충족되지 않을 경우, 사전 우도를 출력하고, 재차 NPSOVA 복호기(300)에 입력하여, 반 복 복호를 행한다.
반복 복호기(226)는, LDPC 블록마다, NPSOVA(300)와, LDPC 복호기(302)의 사이를, 소정의 반복 회수 또는, 패리티 검사의 결과, 오류 없음으로 판정하는 정지 조건에 도달할 때까지, 우도를 사용하여, 반복적으로 복호를 행한다. 그리고, 반복 정지시에, 임계값 판정기(304)에 의해, 우도열을, “O"과 “1"의 경판정 비트열로 판정한다.
도 11에 의해, LDPC 복호에 사용되는 Sum-Product 알고리즘을 설명한다. Sum-Product 알고리즘은, 패리티 검사 판정기(314)와, LDPC 블록의 N개의 우도열(w1∼wN)을 유지하는 버퍼(316)와, 이 N개의 우도열(w1∼wN)에 대응하는 비트 노드(310)와, 패리티 검사 행렬의 검사 조건으로부터 생성하는 에지(318) 및 체크 노드(312)로 구성한다.
버퍼(316)로부터 비트 노드(310)에 넘겨진 우도는, 에지(318)를 따라, 체크 노드(312)에 모이고, 체크 노드(312)에서, 체크 노드 처리가 행해진다.
체크 노드 처리가 행해진 우도는, 재차 비트 노드(310)에 이송되고, 비트 노드(310)는, 각 체크 노드(312)에 연결되는 비트 노드(310)에 모인 우도를 이용하여, 비트 노드 처리를 행한다. 여기서, 비트 노드 처리가 행해질 때마다, 얻어진 우도열을, 패리티 검사 판정기(314)에 입력한다.
패리티 검사 판정기(314)는, 우도열을, “1" 및 “0"의 2치로 가판정하고, 가판정 비트열과 패리티 검사 행렬의 검사 조건식 (1) wHT=0이 성립하는지의 여부를 판정한다. 판정 결과, 검사 조건식이 성립할 경우, 신뢰도 전파 복호 및 반복 복호를 정지(컨트롤러에 반복 복호 정지 명령을 출력)한다. 그리고, 출력 우도열로서, 패리티 검사 판정시의 우도에 대해서, 우도가 유지하는 극성은 유지하고, 각각 플러스 및 마이너스의 최대 우도값으로 한다.
또한, 패리티 검사 판정기(314)는, 상술의 검사 조건식이 성립하지 않을 경우, 신뢰도 전파 복호에서, 소정의 체크 노드, 비트 노드 처리를 복수회 실시하여, 얻어진 우도열을 출력 우도열로 한다.
LDPC 블록마다, 반복 복호를 행하여, 임계값 판정기(304)로부터 출력된 경판정 비트열은, ECC 복호기(230)에 입력하고, 우도열은 패리티 우도 정정기(227, 233)에 입력한다. ECC 복호기(RS 복호기)(230)는, 후술하는 바와 같이, 경판정 비트열을 받아들이고, 4인터리브하여, 각 블록을 ECC 복호하고, 복호 성공하면, 복호열을 출력한다.
또한, 패리티·우도 정정기(227, 233)는, 반복 복호기(226)로부터의 우도로부터 우도가 낮은 비트 위치를 선택 또한 유지한다. 그리고, RS 복호기(230)의 복호 실패에 의해, 유지한 우도가 낮은 비트 위치로부터 오류 위치를 추출하고, 비트열의 그 위치를 플립하여, RS 복호기(230)에 입력한다. 복호 실패시에, 이것을 반복하여, 정정 능력을 높인다.
(ECC 복호기)
도 12는, 도 1 및 도 9의 ECC 복호부의 블록도이다. 도 12에 나타낸 바와 같이, ECC 복호부(230)는, RS 부호부·패리티부의 분할부(110), 인터리브부(112), 데이터 보존·갱신부(114), ECC 복호기(116), 디인터리브부(118)로 이루어진다.
ECC 복호기(116)는, 신드롬 계산부(260)와, 신드롬 보존부(262)와, 신드롬값 갱신부(264)와, 오류 위치 다항식 작성부(266)와, 체인 서치 실행부(268)와, 오류값 계산부(270)를 구비한다.
신드롬값 계산부(260)가, 복호기(226)로부터의 복호열의 신드롬을 계산하고, 신드롬값 보존부(262)에 계산한 신드롬값을 보존한다. 오류 위치 다항식 작성부(266)는, 작성된 신드롬 다항식으로부터 오류 위치 다항식을 계산하여, 정정 능력을 초월하고 있는지를 판정한다.
신드롬값 갱신부(264)는, 패리티·우도 정정기(233)에 의해, 데이터 갱신된 비트열의 갱신 부분의 신드롬값을 계산하고, 신드롬값 보존기(262)에 보존된 신드롬값을 갱신한다.
체인 서치 실행부(268)는, 오류 위치 다항식 작성부(266)에서, 복호가 실패하지 않는다고 판단된 경우에, 체인 서치에 의해 오류 위치를 구한다. 오류값 계산부(270)는, 체인 서치에서 복호가 실패라고 판단되지 않는 경우에, 즉, 체인 서치에서 오류 위치가 특정된 경우에는, 오류값을 계산한다.
이와 같이, 이전의 신드롬값을 보존해 두고, 복호 실패시에, 패리티·우도 정정기(233)에서 정정된 복호열의 정정 부분의 신드롬값을 계산하고, 이전의 신드롬값을 갱신한다. 이 때문에, 정정된 비트열은, 신드롬값을 1부터 계산할 필요가 없으므로, 계산량을 삭감할 수 있다.
또한, 후술하는 바와 같이, 오류 위치 다항식을 계산한 단계에서, 복호가 실 패했는지의 여부를 판정할 수 있기 때문에, 복호가 실패한 경우에는, 다음 비트열의 복호로 이동할 수 있어, 계산량이 삭감된다.
다음에, 패리티·우도 정정기는, 제 1 패리티·우도 정정기(227)와, 제 2 패리티·우도 정정기(233)로 이루어진다. 제 1 패리티·우도 정정기(227)는, 복호기(226)로부터 각 비트의 우도를 받아들이고, 4인터리브의 각 블록마다, 우도가 낮은 비트 위치를 추출한다.
제 2 패리티·우도 정정기(233)는, 후술하는 바와 같이, 패리티 계산부(120)와, 패리티값 체크부(122)와, 에러 후보 테이블 보존기(124)와, 에러 플립부(126)로 이루어진다.
제 1 패리티·우도 정정기(227)는, 우도를 블록부의 우도와, 패리티부의 우도로 분할하고, 분할된 우도를 테이블에 유지한다. 그리고, 블록부의 우도가 낮은 비트 위치를 추출하고, 또한 패리티부의 우도를 낮은 순으로 소트한다.
우도의 절대값이 높을수록, 그 비트는, 정확할 확률이 높은 것을 나타내고, 낮으면, 그 비트는, 틀릴 확률이 높은 것을 나타낸다. 틀릴 확률이 높은 비트를 추출하고 싶으므로, 우도가 낮은 비트만을 취급한다. 이들 결과를 제 2 패리티·우도 정정기(233)에 출력한다.
ECC 복호기(230)에서는, 분할부(110)가, 경판정된 비트열을, RS 부호부와, 2비트 패리티부에 분할한다. 분할된 모든 2비트 패리티는, 제 2 패리티·우도 정정기(233)의 패리티값 체크부(122)에 출력된다.
다음에, 인터리브부(112)는, 분할된 RS 부호부를, 10비트 간격으로, 인터리 브를 행하여, 상술한 4개의 RS 블록에 분할한다. 즉, 도 4의 부호화의 디인터리브와 반대의 치환을 행한다.
분할된 각 RS 블록은, 데이터 보존·갱신부(114)에 저장된 후, ECC 복호기(116)에 의해 복호된다. 복호의 결과, 모든 RS 블록의 복호가 성공한 경우에는, 디인터리브부(118)는, 각 RS 블록으로부터 RS 패리티(1011∼1014)를 제거한 후에, 10비트 간격으로의 디인터리브 처리를 행하고, 섹터 데이터(1000)를 출력하여, 종료한다.
복호의 결과, 몇 개의 RS 블록에서의 복호가 실패한 경우에는, ECC 복호기(230)로부터 복호가 실패한 모든 RS 블록 번호를, 제 2 패리티·우도 정정기(233)에 출력한다. 또한, 디인터리브부(118)는, 각 RS 블록(1001∼1014)으로부터 RS 패리티(1011∼1014)를 제거하지 않고, 10비트 간격으로의 디인터리브 처리를 행하고, 결과인 원래의 RS 부호부(1100)를, 제 2 패리티·우도 정정기(233)에 출력한다.
다음에, ECC 복호기(116)를 설명한다. 신드롬 계산부(260)는, 데이터열의 신드롬 다항식(다항식의 계수 s1, s2,···)을 계산하고, 계산한 신드롬 다항식을 오류 위치 다항식 계산부(266)에 출력한다. 이 때, 2t+1개의 신드롬 계수 si(i=1, 2,...., 2t, 2t+1)의 값을 계산한다. 이와 동시에, 2회째 이후의 후보의 복호 처리에서 이용하기 위해서, 신드롬 계산부(260)는, 계산한 신드롬 다항식을 신드롬값 보존부(262)에 저장한다.
오류 위치 다항식 계산부(266)는, 벌리캠프 메시(Berlekamp Massey; BM)법에 의해, 신드롬 다항식을 계산한다. 벌리캠프 메시법에서는, 주지와 같이, 다항식의 초기값으로부터 시작하여, 생성 다항식의 차수와 동일한 회수만큼 다항식의 갱신을 반복함으로써, 오류 위치 다항식을 계산한다. 이 때, i번째의 다항식 Ci(x)를 구하기 위해서는, i번째의 신드롬(si)의 값이 필요하게 된다.
이 오류 위치 다항식 계산부(266)는, 2t번째의 다항식 C2t(x)와, 2t+1번째의 다항식 C2t+1(x)를 생성한다. 그리고, 오류 위치 다항식 계산부(266)는, 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)가 다른 경우에는, 후보의 정정이 실패했다고 판단하고, 현재 복호 중인 RS 블록에 대해서, 복호 실패의 플래그를 세우고, 제 2 패리티·우도 정정기(233)의 그 블록 번호를 출력한다.
이와 같이, 1심볼의 패리티를 여분으로 데이터열에 부가함으로써, 벌리캠프 메시법의 다항식을 1개 여분으로 계산함으로써, 복호 도중에서 데이터열의 정정 실 패를 검출할 수 있다. 또한, 수 심볼의 패리티를 여분으로 부가하는 포맷을 이용해도 좋다.
복호가 실패하지 않는다고 판단된 경우는, 체인 서치에 의해 오류 위치를 구한다. 즉, 체인 서치 실행부(268)는, 오류 위치 다항식 C(x)를 이용하여, 체인 서치를 실행하고, 데이터열상의 모든 위치(j)에 대해서, C(αj)의 값(j=0, 1, 2, 3, 4, ..., n)을 계산한다. 또한, C(αj)=O이 되는 위치(j)가, 오류 위치이다.
또한, 체인 서치 실행부(268)는, 신드롬 다항식과, C(αj)의 값을 이용하여, 정정의 성공 여부를 판정하여, 정정이 성공한다고 판정한 경우에는, 체인 서치 실행부(268)가, 수취한 데이터열, 신드롬 다항식, 오류 위치 다항식을, 오류값 계산부(270)에 출력한다. 또한, 정정이 실패한다고 판단한 경우에는, 현재 복호 중의 RS 블록에 대해서, 복호 실패의 플래그를 세우고, 제 2 패리티·우도 정정기(233)의 그 블록 번호를 출력한다.
체인 서치에서 오류 위치가 특정된 경우에는, 오류값을 계산한다. 즉, 오류값 계산부(270)는, 신드롬 다항식과 오류 위치 다항식을 이용하여, 소정의 알고리즘으로, 데이터열의 오류 위치의 잘못된 값을, 옳은 값으로 정정한다. 그리고, 정정 후의 데이터열을, 디인터리브부(118)에 출력한다.
즉, 복호가 성공한 경우에는, 오류 정정된 데이터열이, ECC 복호기(230)로부터 출력된다. 정정이 실패하여, 2회째 이후의 복호를 할 필요가 생긴 경우에는, 신드롬값 보존부(262)에 저장된 정보를 이용하여, 복호 처리를 행한다.
다음에, 후술하는 바와 같이, 제 2 패리티·우도 정정기(233)에서, 에러 개소를 플립함으로써, 데이터 갱신·보존부(114)의 데이터를 갱신하고, 보존한다. 이 갱신된 RS 블록에 대해서, 데이터를 갱신된 개소에 대응하여, 신드롬값 갱신부(264)가, 신드롬을 계산하고, 보존부(262)에 보존되어 있던 신드롬값을 갱신하고, 또한 갱신한 신드롬 다항식을, 오류 위치 다항식 계산부(266)에 출력한다.
이하, 상술한 바와 같이, 오류 위치 다항식 계산부(266)에서, 오류 위치 다항식을 작성하고, 복호가 실패로 판단된 경우에는, 현재의 RS 블록에 대해서, 복호가 실패했다는 플래그를 세우고, 제 2 패리티·우도 정정기(233)에 출력한다. 마찬가지로, 복호가 실패하지 않는다고 판단된 경우에는, 체인 서치 실행부(268)에 의해 오류 위치를 구한다. 또한, 체인 서치에서 복호가 실패라고 판단된 경우에는, 마찬가지로, 현재의 RS 블록에 대해서, 복호가 실패했다는 플래그를 세우고, 제 2 패리티·우도 정정기(233)에 출력한다. 체인 서치에서 오류 위치가 특정된 경우에는, 오류값을 계산한다.
이상과 같이, 플립된 비트열은, 신드롬값을 1부터 계산할 필요가 없으므로 계산량을 삭감할 수 있다. 또한, 오류 위치 다항식을 계산한 단계에서 복호가 실패했는지의 여부를 판정할 수 있기 때문에, 복호가 실패한 경우는 다음 공정으로 옮겨갈 수 있어 계산량이 삭감된다. 이와 같이, 이 ECC 복호기(116)는, 종래의 ECC 복호기보다, 계산량을 삭감할 수 있어, 고속의 복호가 가능해진다.
제 2 패리티·우도 정정기(233)에, 복호가 실패한 모든 RS 블록 번호와, 디인터리브 처리가 행해진 RS 부호부(1100)(도 18 참조)가 입력된 후, 도 2, 도 5의 패리티 부호기와 마찬가지로 패리티를 구한다.
즉, 도 12의 패리티 계산부(120)는, 도 5에 나타낸 바와 같이, RS 부호부(1100∼1113)에 대해서, 경사 방향으로 비트열을 추출하여, 도 5, 도 7과 같이, 2비트의 패리티를 재계산한다.
패리티값 체크부(122)는, 분할부(110)로부터의 패리티 부호기에서 생성된 패리티값과 재계산에 의한 패리티값이 일치하는지 패리티값 체크를 행한다. 패리티 체크에서, 값이 일치하고 있는 패리티 블록열은, 오류 없음으로 판단하고, 값이 일치하지 않는 패리티 블록열은, 오류가 있다고 판단한다.
도 12의 에러 플립부(126)는, 패리티 체크 결과와 복호 실패 블록 번호로부터 블록 내에서의 에러 위치를 검출하고, 패리티 에러값을 계산해서, 패리티 에러값으로부터 테이블(124)을 참조하여, 에러 위치를 특정하고, 에러 위치의 비트값을 반전한다.
이와 같이 하여, 에러 위치를 검출할 수 있기 때문에, 1인터리브의 ECC를 넘는 성능을 갖는 것을 확인할 수 있었다.
또한, 도 12의 ECC 복호기(116)와 조합시킴으로써, ECC 복호기의 정정 불가 판정의 고속화와, 복호 대상의 데이터열의 신드롬 작성을 고속화할 수 있어, 계산량이 적은 복호가 가능해진다.
(부호화 및 복호화의 동작)
도 13은, 본 발명의 일 실시예에 의한 부호화 및 복호화의 설명도이며, 도 14는, 비교예로서의 비특허문헌의 기술과 LDPC를 조합시킨 부호화 및 복호화의 설 명도이다.
도 13에 나타낸 바와 같이, 부호화시에는, 기록 데이터(1000)를 인터리브하여, RS 부호화하고(1001∼1004), 디인터리브하여, RS 부호화열(1100)을 작성한다. 그리고, 도 5에 나타낸 바와 같이, RS 부호열(1100)을, L개(예를 들면, 10개)로 분할한 블록(1101∼1110) 중, q(q≤L)개(예를 들면, 4개)의 블록(1101∼1104)으로부터, 10비트의 데이터열(p=10)을 각각 추출하고, p×q개의 데이터열의 각각에 대해서, 패리티(1121, 1122)를 생성한다. 생성한 패리티는, 추출한 블록(1101∼1104)과는 다른 각 블록(1117, 1118)에 부가하여, 데이터(1130)를 출력한다.
다음에, 도 6에 나타낸 바와 같이, 패리티가 부가된 RS 부호열(1130)을 L개로 분할된 K'비트의 데이터열(1131∼1140)마다, LDPC 부호화를 행하고, 각 블록(1131∼1140)에, LDPC 부호의 패리티(1171∼1180)를 부가한다.
다음에, 복호시에는, 이 LDPC 부호화 블록(1150)을, LDPC 복호하여, RS 부호 데이터열(1130)을 얻는다. 그리고, 복호시에, LDPC 블록을 잘못 복호하는 경우(블록 1154, 1156)는, 매우 많은 오류(도면의 ×표로 나타냄)가 발생해도, 패리티에 의한 오류의 검출을 정확하게 할 수 있다.
즉, ECC 복호기에서, 오류가 검출된 RS 블록이 특정되어, 도 7에서 설명한 패리티의 작성 위치 관계로부터, 그 패리티를 작성한 RS 블록을 포함하는 복수의 RS 블록으로부터 패리티를 재작성한다. 그리고, 부호화시의 대응 패리티는, 미리 결정된 다른 블록에 삽입되어 있기 때문에, 그 위치의 패리티를 판독하여, 비교한다. 비교 결과가 불일치인 경우에는, 오류 있음으로 판단하고, 오류가 검출된 RS 블록의 우도가 낮은 오류 후보를, 상술한 바와 같이, 플립한다.
또한, LDPC 복호에서, LDPC 블록 내의 오류의 유무(검사 조건에 일치하지 않는지의 여부)가 판명되어 있기 때문에, 오류 없음 블록으로부터 추출된 우도는, 복호기가 취할 수 있는 최대의 우도를 부여한다. 이 때문에, 오류 후보에서 제외할 수 있다. 이에 따라, 패리티 우도 정정 후보를 제한할 수 있다.
한편, 도 14의 비교예에서는, 부호화시에는, 기록 데이터(1000)를 인터리브하여, RS 부호화하고(1001∼1004), 디인터리브하여, RS 부호화열(1100)을 작성한다. 그리고, 도 15에 나타낸 바와 같이, RS 부호열(1100)이 인터리브된 데이터열에 대해서, 패리티(1121, 1122)를 생성한다. 생성한 패리티는, RS 부호화열의 최후에 부가하여, 데이터(1130-1)를 출력한다.
다음에, 도 6에 나타낸 바와 같이, 패리티가 부가된 RS 부호열(1130)을 L개로 분할된 K'비트의 데이터열(1131∼1140)마다, LDPC 부호화를 행하고, 각 블록(1131∼1140)에, LDPC 부호의 패리티(1171∼1180)를 부가한다.
다음에, 복호시에는, 이 LDPC 부호화 블록(1150)을, LDPC 복호하고, RS 부호 데이터열(1130)을 얻는다. 그리고, 복호시에, LDPC 블록을 잘못 복호하는 경우(블록 1154, 1156)는, 매우 많은 오류(도면의 ×표로 나타냄)가 발생했다고 가정한다. ECC 복호기에서, 오류가 검출된 RS 블록은, 그 대상 블록으로부터 패리티를 재작성한다. 부호화열의 가장 뒤의 블록에 있는 패리티를 판독하여, 비교한다. 비교 결과가 불일치한 경우에는, 오류 있음으로 판단하고, 우도가 낮은 오류 후보를, 상술한 바와 같이, 플립한다.
그러나, 부호화시의 패리티는, 부호화열의 가장 뒤의 블록에 있기 때문에, 이 부분에 오류가 있으면, 오류 없음 블록도, 재생성 패리티와의 비교에서, 불일치가 되어, 오류 있음으로 판정된다. 반대로, 패리티의 블록에 오류가 있으면, 오류 있음 블록도, 재생성 패리티와의 비교에서, 일치가 되어, 오류 없음으로 판정된다. 이 때문에, LDPC 블록에서, 오류가 집중하면, ECC에 의해 정정 불가능이 된다.
(기타 실시예)
상술한 도 2의 인터리브 방식에서는, 10비트를 예로 했지만, 다른 비트 수라도 좋고, 도 12에서 설명한 ECC 복호기(116)도, 신드롬값 보존부(262)와 신드롬값 갱신부(264)를 갖지 않는 종래의 ECC 복호기를 적용할 수 있다.
또한, 상술한 실시예에서는, ECC 부호로서, 리드 솔로몬 부호로 설명했지만, BCH(Bose Chaudhari Hocquengham) 부호 등의 다른 부호를 이용할 수 있다. 인터리브를 4인터리브로 설명했지만, 2이상의 인터리브 구성에 적용할 수 있고, 패리티를 2비트로 했지만, 1비트나 3비트 이상도 적용할 수 있다. 또한, LDPC를 제 2 ECC로 설명했지만, 다른 선형 부호화 방식, 예를 들면, 터보(turbo) 부호화를 사용해도 좋다. 자기 디스크 장치의 기록 재생 장치의 적용예로 설명했지만, 광 디스크 장치 등의 다른 매체 기억 장치나, 통신 장치에도 적용할 수 있다.
이상, 본 발명을 실시예에서 설명했지만, 본 발명은, 그 취지의 범위 내에서 각종 변형이 가능하며, 이것을 본 발명의 범위로부터 배제하는 것이 아니다.
(부기 1)
데이터열을, m(m≥2)비트마다, n(n≥2)블록의 데이터열로 인터리 브(interleave)하고, 상기 인터리브된 각 블록의 데이터열로부터 제 1 오류 정정 부호의 패리티(parity)를 생성하고, 상기 데이터열에 각 블록의 상기 제 1 오류 정정 부호의 패리티를 부가하여, 오류 정정 부호어를 작성하는 ECC 부호기와, 상기 오류 정정 부호어의 복수의 비트 수마다, 패리티 비트를 작성하여, 상기 오류 정정 부호어에 부가하는 패리티 부호기와, 상기 오류 정정 부호어에 상기 패리티 부호기에 의해 생성된 패리티가 부가된 제 2 오류 정정 부호어를, K(K≥2)비트마다, L개(L≥2)의 블록의 데이터열로 분할하고, 각 블록의 데이터열로부터, 상기 블록 단위로, 선형(線形) 부호인 제 2 오류 정정 부호의 패리티를 생성하고, 상기 제 2 오류 정정 부호어에, 각 블록의 상기 제 2 오류 정정 부호의 패리티를 부가하여, 제 3 오류 정정 부호어를 작성하는 제 2 ECC 부호기를 갖는 것을 특징으로 하는 부호화기.
(부기 2)
상기 제 2 ECC 부호기는, 패리티 검사 행렬에서의 "1"의 수가 저밀도이고, 또한 선형 부호인 저밀도 패리티 검사(LDPC) 부호의 요건을 충족시키는 제 3 오류 정정 부호어를 작성하는 동시에, 상기 패리티 검사 행렬에 대응하는 생성 행렬을 이용하여 패리티를 생성하는 것을 특징으로 하는 부기 1의 부호화기.
(부기 3)
상기 패리티 부호기는, 상기 오류 정정 부호어를, L개(L≥2)의 블록으로 분할하고, 분할된 각 상기 블록으로부터 p(p≥1)비트 단위의 데이터열을, q(q≥2)개 추출하고, p×q개의 데이터열에 대해서, 패리티를 생성하는 것을 특징으로 하는 부 기 1의 부호화기.
(부기 4)
상기 패리티 부호기는, 상기 p×q개의 데이터열에 대해서 생성된 상기 패리티를, 상기 생성에 사용한 데이터열을 포함하는 상기 블록 이외의 블록에 부가하는 것을 특징으로 하는 부기 3의 부호화기.
(부기 5)
상기 ECC 부호기는, 상기 데이터열을, m(m≥2)비트마다, n(n≥2)블록의 데이터열로 인터리브하는 인터리브부와, 인터리브된 각 블록의 데이터열로부터 오류 정정 부호의 패리티를 생성하는 ECC 부호부와, 상기 각 블록의 데이터열을 상기 m비트마다, 디인터리브하고, 또한 상기 데이터열에 복원하고, 또한 상기 오류 정정 부호의 패리티를 상기 복원된 데이터열에 부가하는 디인터리브부를 갖는 것을 특징으로 하는 부기 1의 부호화기.
(부기 6)
상기 ECC 부호기는, 상기 오류 정정 부호로서, 리드 솔로몬 부호를 생성하는 것을 특징으로 하는 부기 1의 부호화기.
(부기 7)
부기 1 기재의 제 3 오류 정정 부호어로 부호화된 부호화 데이터를 복호화하는 복호기로서, 수신한 상기 부호화 데이터열을, 상기 제 2 ECC 부호의 패리티를 이용하여, 반복 복호하고, 상기 부호화 데이터열을, 비트열로 복호화하고, 또한 각 비트의 우도(尤度)를 출력하는 반복 복호기와, 상기 반복 복호기의 부호화 데이터 열의 제 1 오류 정정 부호에 의한 오류 정정 복호와, 상기 패리티 비트에 의한 오류 검출에 따른, 상기 우도에 의한 상기 부호 비트열의 정정 복호를 반복하여 행하는 ECC 복호 회로를 갖는 것을 특징으로 하는 복호기.
(부기 8)
상기 반복 복호기는, 상기 패리티 검사 행렬에서의 “1"의 수가 저밀도이고, 또한 선형 부호인 저밀도 패리티 검사(LDPC) 부호의 요건을 충족시키는 상기 제 3 오류 정정 부호어로부터, 상기 제 2 오류 정정 부호어의 상기 패리티를 이용하여, 상기 반복 복호하고, 상기 부호화 데이터열을, 상기 제 2 오류 정정 부호어로 경(硬)판정하고, 또한 각 비트의 우도를 출력하는 것을 특징으로 하는 부기 7의 복호기.
(부기 9)
상기 반복 복호기는, 상기 제 2 오류 정정 부호어의 상기 패리티 비트열에 의한 오류 검출에서, 상기 제 2 오류 정정 부호어의 블록이, 상기 패리티 검사 조건을 충족시키고, 오류가 검출되지 않았을 때에, 상기 반복 복호를 정지하고, 또한 상기 제 2 오류 정정 부호어의 블록 내의 각 비트의 우도를 최대의 우도값으로 설정하는 것을 특징으로 하는 부기 8의 복호기.
(부기 10)
상기 ECC 복호 회로는, 상기 반복 복호기로부터의 부호 비트열의 상기 제 1 오류 정정 부호에 의한 오류 정정을 행하는 ECC 복호기와, 상기 ECC 복호기의 복호 실패에 따라서, 상기 패리티 비트에 의한 오류 검출을 행하고, 상기 오류 검출 결 과에 따라, 상기 우도에 의해, 상기 ECC 복호기에 입력되는 상기 부호 비트열의 정정을 행하는 패리티·우도 정정기를 갖는 것을 특징으로 하는 부기 7의 복호기.
(부기 11)
상기 반복 복호기로부터의 부호 비트열로부터 상기 패리티 비트를 분리하고, 상기 패리티·우도 정정기에 출력하는 분할부와, 상기 패리티 비트가 분리된 상기 부호 비트열을, 상기 m(m≥2)비트마다, n(n≥2)블록의 데이터열로 인터리브하는 인터리브부와, 상기 인터리브된 각 블록의 데이터열을 보존하는 데이터 보존부를 더 가지며, 상기 ECC 복호기는, 상기 데이터 보존부의 각 블록의 데이터열을 상기 오류 정정 부호에 의한 오류 정정을 행하고, 상기 패리티·우도 정정기는, 상기 데이터 보존기의 데이터열의 정정을 행하는 것을 특징으로 하는 부기 10의 복호기.
(부기 12)
상기 패리티·우도 정정기는, 상기 복호 실패시에, 상기 실패한 블록을 포함하는 상기 L개의 블록으로부터 p(p≥1)비트 단위의 데이터열을, q(q≥2)개 추출하고, p×q개의 데이터열에 대해서, 패리티를 재생성하고, 부가된 상기 패리티 비트와 비교하여, 오류 검출하는 것을 특징으로 하는 부기 10의 복호기.
(부기 13)
상기 패리티·우도 정정기는, 상기 L개의 블록 이외의 블록에 부가된 패리티를 취출하고, 상기 재생성된 패리티와 비교하는 것을 특징으로 하는 부기 10의 복호기.
(부기 14)
상기 부호화 데이터열의 상기 오류 정정 부호가, 리드 솔로몬 부호로 이루어지는 것을 특징으로 하는 부기 7의 복호기.
(부기 15)
데이터열을, m(m≥2)비트마다, n(n≥2)블록의 데이터열로 인터리브하고, 상기 인터리브된 각 블록의 데이터열로부터 제 1 오류 정정 부호의 패리티를 생성하고, 상기 데이터열에 각 블록의 상기 제 1 오류 정정 부호의 패리티를 부가하여, 오류 정정 부호어를 작성하는 ECC 부호기와, 상기 오류 정정 부호어의 복수의 비트 수마다, 패리티 비트를 작성하고, 상기 오류 정정 부호어에 부가하는 패리티 부호기와, 상기 오류 정정 부호어에 상기 패리티 부호기에 의해 생성된 패리티가 부가된 제 2 오류 정정 부호어를, K(K≥2)비트마다, L개(L≥2)의 블록의 데이터열로 분할하고, 각 블록의 데이터열로부터, 상기 블록 단위로, 선형 부호인 제 2 오류 정정 부호의 패리티를 생성하고, 상기 제 2 오류 정정 부호어에, 각 블록의 상기 제 2 오류 정정 부호의 패리티를 부가하여, 제 3 오류 정정 부호어를 작성하는 제 2 ECC 부호기와, 수신한 상기 부호화 데이터열을, 상기 제 2 ECC 부호의 패리티를 이용하여, 반복 복호하고, 상기 부호화 데이터열을, 비트열로 복호화하고, 또한 각 비트의 우도를 출력하는 반복 복호기와, 상기 반복 복호기의 부호화 데이터열의 제 1 오류 정정 부호에 의한 오류 정정 복호와, 상기 패리티 비트에 의한 오류 검출에 따른, 상기 우도에 의한 상기 부호 비트열의 정정 복호를 반복하여 행하는 ECC 복호 회로를 갖는 것을 특징으로 하는 부호화·복호화 장치.
(부기 16)
상기 제 2 ECC 부호기는, 패리티 검사 행렬에서의 "1"의 수가 저밀도이고, 또한 선형 부호인 저밀도 패리티 검사(LDPC) 부호의 요건을 충족시키는 제 3 오류 정정 부호어를 작성하는 동시에, 상기 패리티 검사 행렬에 대응하는 생성 행렬을 이용하여 패리티를 생성하고, 상기 반복 복호기는, 상기 패리티 검사 행렬에서의 “1"의 수가 저밀도이고, 또한 선형 부호인 저밀도 패리티 검사(LDPC) 부호의 요건을 충족시키는 상기 제 3 오류 정정 부호어로부터, 상기 제 2 오류 정정 부호어의 상기 패리티를 이용하여, 상기 반복 복호하고, 상기 부호화 데이터열을, 상기 제 2 오류 정정 부호어로 경판정하고, 또한 각 비트의 우도를 출력하는 것을 특징으로 하는 부기 15의 부호화·복호화 장치.
(부기 17)
상기 패리티 부호기는, 상기 오류 정정 부호어를, L개(L≥2)의 블록으로 분할하고, 분할된 각 상기 블록으로부터 p(p≥1)비트 단위의 데이터열을, q(q≥2)개 추출하고, p×q개의 데이터열에 대해서, 패리티를 생성하고, 상기 ECC 복호 회로는, 상기 복호 실패시에, 상기 실패한 블록을 포함하는 상기 L개의 블록으로부터 p(p≥1)비트 단위의 데이터열을, q(q≥2)개 추출하고, p×q개의 데이터열에 대해서, 패리티를 재생성하고, 부가된 상기 패리티 비트와 비교하여, 오류 검출하는 것을 특징으로 하는 부기 15의 부호화·복호화 장치.
(부기 18)
기억 매체에 데이터를 기입하고 또한 판독하는 헤드와, 상기 기억 매체에 기입해야 할 데이터열을, 데이터열을, m(m≥2)비트마다, n(n≥2)블록의 데이터열로 인터리브하고, 상기 인터리브된 각 블록의 데이터열로부터 제 1 오류 정정 부호의 패리티를 생성하고, 상기 데이터열에 각 블록의 상기 제 1 오류 정정 부호의 패리티를 부가하여, 오류 정정 부호어를 작성하는 ECC 부호기와, 상기 오류 정정 부호어의 복수의 비트 수마다, 패리티 비트를 작성하여, 상기 오류 정정 부호어에 부가하는 패리티 부호기와, 상기 오류 정정 부호어에 상기 패리티 부호기에 의해 생성된 패리티가 부가된 제 2 오류 정정 부호어를, K(K≥2)비트마다, L개(L≥2)의 블록의 데이터열로 분할하고, 각 블록의 데이터열로부터, 상기 블록 단위로, 선형 부호인 제 2 오류 정정 부호의 패리티를 생성하고, 상기 제 2 오류 정정 부호어에, 각 블록의 상기 제 2 오류 정정 부호의 패리티를 부가하여, 제 3 오류 정정 부호어를 작성하고, 상기 헤드에 출력하는 제 2 ECC 부호기와, 상기 헤드가 판독한 상기 부호화 데이터열을, 상기 제 2 ECC 부호의 패리티를 이용하여, 반복 복호하고, 상기 부호화 데이터열을, 비트열로 복호화하고, 또한 각 비트의 우도를 출력하는 반복 복호기와, 상기 반복 복호기의 부호화 데이터열의 제 1 오류 정정 부호에 의한 오류 정정 복호와, 상기 패리티 비트에 의한 오류 검출에 따른, 상기 우도에 의한 상기 부호 비트열의 정정 복호를 반복하여 행하는 ECC 복호 회로를 갖는 것을 특징으로 하는 기록 재생 장치.
(부기 19)
상기 제 2 ECC 부호기는, 패리티 검사 행렬에서의 “1"의 수가 저밀도이고,또한 선형 부호인 저밀도 패리티 검사(LDPC) 부호의 요건을 충족시키는 제 3 오류 정정 부호어를 작성하는 동시에, 상기 패리티 검사 행렬에 대응하는 생성 행렬을 이용하여 패리티를 생성하고, 상기 반복 복호기는, 상기 패리티 검사 행렬에서의 “1"의 수가 저밀도이고, 또한 선형 부호인 저밀도 패리티 검사(LDPC) 부호의 요건을 충족시키는 상기 제 3 오류 정정 부호어로부터, 상기 제 2 오류 정정 부호어의 상기 패리티를 이용하여, 상기 반복 복호하고, 상기 부호화 데이터열을, 상기 제 2 오류 정정 부호어로 경판정하고, 또한 각 비트의 우도를 출력하는 것을 특징으로 하는 부기 18의 기록 재생 장치.
(부기 20)
상기 패리티 부호기는, 상기 오류 정정 부호어를, L개(L≥2)의 블록으로 분할하고, 분할된 각 상기 블록으로부터 p(p≥1)비트 단위의 데이터열을, q(q≥2)개 추출하고, p×q개의 데이터열에 대해서, 패리티를 생성하고, 상기 ECC 복호 회로는, 상기 복호 실패시에, 상기 실패한 블록을 포함하는 상기 L개의 블록으로부터 p(p≥1)비트 단위의 데이터열을, q(q≥2)개 추출하고, p×q개의 데이터열에 대해서, 패리티를 재생성하고, 부가된 상기 패리티 비트와 비교하여, 오류 검출하는 것을 특징으로 하는 부기 18의 기록 재생 장치.
(산업상의 이용 가능성)
데이터열을, m(m≥2)비트마다, 복수 블록으로 인터리브하여, 오류 정정 부호의 패리티를 부가하고, 복수의 비트 수마다, 패리티 비트를 부가한 연접형 부호화 데이터를 작성하므로, 복수 블록으로 인터리브하여 오류 정정 부호의 패리티를 생성해도, 회로 규모의 증가를 방지할 수 있다. 또한, 반복 복호를 사용하는 선형 부호화의 제 2 오류 정정 부호화를 병용하기 때문에, 반복 복호에 의해, ECC의 입 력의 오류를 정정할 수 있고, 정정 성능 열화도 방지할 수 있다. 이 때문에, WINDOWS(등록 상표)의 VISTA(등록 상표)에 사용되는 롱섹터 타입의 기록 재생 장치의 회로 규모 증가를 방지하면서, 정정 성능을 향상할 수 있다.
도 1은 본 발명의 일 실시예를 나타낸 매체 기억 장치의 기록 재생계의 구성도.
도 2는 도 1의 부호기의 블록도.
도 3은 도 2의 인터리브부의 동작 설명도.
도 4는 도 2의 ECC 부호기의 동작 설명도.
도 5는 도 2의 패리티 부호기의 패리티 부여 동작의 설명도.
도 6은 도 2의 LDPC 부호기의 동작 설명도.
도 7은 도 2의 각 패리티 부호의 관계도.
도 8은 도 7의 비교예의 각 패리티 부호의 관계도.
도 9는 도 2의 복호기의 상세 블록도.
도 10은 도 9의 반복 복호기의 블록도.
도 11은 도 10의 LDPC 복호의 설명도.
도 12는 도 2의 ECC 복호기의 블록도.
도 13은 본 발명의 일 실시예의 부호화 및 복호화 동작의 설명도.
도 14는 본 발명의 비교예의 부호화 및 복호화 동작의 설명도.
도 15는 종래의 오류 정정의 연접 부호화 방법의 설명도.
도면의 주요 부분에 대한 부호의 설명
102 : 인터리브부 104 : ECC 부호기
106 : 디인터리브부 110 : 분할부
112 : 인터리브부 114 : 데이터 보존·갱신부
116 : ECC 복호기 118 : 디인터리브부
120 : 패리티 계산부 122 : 패리티값 체크부
124 : 에러 후보 테이블 보존기 126 : 에러 플립부
130 : 블록·패리티 우도 분할부 201 : 프리앰프
202 : 리드 채널 203 : 하드디스크 컨트롤러
220 : LDPC 부호기 226 : 반복 복호기
227 : 제 1 패리티·우도 정정기 230 : ECC 복호기
233 : 제 2 패리티·우도 정정기 234 : 패리티 부호기
235 : ECC 부호기

Claims (10)

  1. 데이터열을, m(m≥2)비트마다, n(n≥2)블록의 데이터열로 인터리브(interleave)하고, 상기 인터리브된 각 블록의 데이터열로부터 제 1 오류 정정 부호의 패리티(parity)를 생성하고, 상기 데이터열에 각 블록의 상기 제 1 오류 정정 부호의 패리티를 부가하여, 오류 정정 부 호어(符號語)를 작성하는 ECC 부호기와,
    상기 오류 정정 부호어의 복수의 비트 수마다, 패리티 비트를 작성하여, 상기 오류 정정 부호어에 부가하는 패리티 부호기와,
    상기 오류 정정 부호어에 상기 패리티 부호기에 의해 생성된 패리티가 부가된 제 2 오류 정정 부호어를, K(K≥2)비트마다, L개(L≥2)의 블록의 데이터열로 분할하고, 각 블록의 데이터열로부터, 상기 블록 단위로, 선형(線形) 부호인 제 2 오류 정정 부호의 패리티를 생성하고, 상기 제 2 오류 정정 부호어에, 각 블록의 상기 제 2 오류 정정 부호의 패리티를 부가하여, 제 3 오류 정정 부호어를 작성하는 제 2 ECC 부호기를 갖는 것을 특징으로 하는 부호화기.
  2. 제 1 항에 있어서,
    상기 제 2 ECC 부호기는, 패리티 검사 행렬에서의 "1"의 수가 저밀도이고, 또한 선형 부호인 저밀도 패리티 검사(LDPC) 부호의 요건을 충족시키는 제 3 오류 정정 부호어를 작성하는 동시에, 상기 패리티 검사 행렬에 대응하는 생성 행렬을 이용하여 패리티를 생성하는 것을 특징으로 하는 부호화기.
  3. 제 1 항에 있어서,
    상기 패리티 부호기는, 상기 오류 정정 부호어를, L개(L≥2)의 블록으로 분할하고, 분할된 각 상기 블록으로부터 p(p≥1)비트 단위의 데이터열을, q(q≥2)개 추출하고, p×q개의 데이터열에 대해서, 패리티를 생성하는 것을 특징으로 하는 부호화기.
  4. 제 3 항에 있어서,
    상기 패리티 부호기는, 상기 p×q개의 데이터열에 대해서 생성된 상기 패리티를, 상기 생성에 사용한 데이터열을 포함하는 상기 블록 이외의 블록에 부가하는 것을 특징으로 하는 부호화기.
  5. 제 1 항 기재의 제 3 오류 정정 부호어로 부호화된 부호화 데이터를 복호화하는 복호기로서,
    수신한 상기 부호화 데이터열을, 상기 제 2 ECC 부호의 패리티를 이용하여, 반복 복호하고, 상기 부호화 데이터열을, 비트열로 복호화하고, 또한 각 비트의 우도(尤度)를 출력하는 반복 복호기와,
    상기 반복 복호기의 부호화 데이터열의 제 1 오류 정정 부호에 의한 오류 정정 복호와, 상기 패리티 비트에 의한 오류 검출에 따른, 상기 우도에 의한 상기 부 호 비트열의 정정 복호를 반복하여 행하는 ECC 복호 회로를 갖는 것을 특징으로 하는 복호기.
  6. 제 5 항에 있어서,
    상기 반복 복호기는, 상기 패리티 검사 행렬에서의 “1"의 수가 저밀도이고, 또한 선형 부호인 저밀도 패리티 검사(LDPC) 부호의 요건을 충족시키는 상기 제 3 오류 정정 부호어로부터, 상기 제 2 오류 정정 부호어의 상기 패리티를 이용하여, 상기 반복 복호하고, 상기 부호화 데이터열을, 상기 제 2 오류 정정 부호어로 경(硬)판정하고, 또한 각 비트의 우도를 출력하는 것을 특징으로 하는 복호기.
  7. 제 6 항에 있어서,
    상기 반복 복호기는, 상기 제 2 오류 정정 부호어의 상기 패리티 비트열에 의한 오류 검출에서, 상기 제 2 오류 정정 부호어의 블록이, 상기 패리티 검사 조건을 충족시키고, 오류가 검출되지 않았을 때에, 상기 반복 복호를 정지하고, 또한 상기 제 2 오류 정정 부호어의 블록 내의 각 비트의 우도를 최대의 우도값으로 설정하는 것을 특징으로 하는 복호기.
  8. 제 5 항에 있어서,
    상기 ECC 복호 회로는, 상기 복호 실패시에, 상기 복호에 실패한 블록을 포함하는 상기 L개의 블록으로부터 p(p≥1)비트 단위의 데이터열을, q(q≥2)개 추출하고, p×q개의 데이터열에 대해서, 패리티를 재생성하고, 부가된 상기 패리티 비트와 비교하여, 오류 검출하는 것을 특징으로 하는 복호기.
  9. 데이터열을, m(m≥2)비트마다, n(n≥2)블록의 데이터열로 인터리브하고, 상기 인터리브된 각 블록의 데이터열로부터 제 1 오류 정정 부호의 패리티를 생성하고, 상기 데이터열에 각 블록의 상기 제 1 오류 정정 부호의 패리티를 부가하여, 오류 정정 부호어를 작성하는 ECC 부호기와,
    상기 오류 정정 부호어의 복수의 비트 수마다, 패리티 비트를 작성하고, 상기 오류 정정 부호어에 부가하는 패리티 부호기와,
    상기 오류 정정 부호어에 상기 패리티 부호기에 의해 생성된 패리티가 부가된 제 2 오류 정정 부호어를, K(K≥2)비트마다, L개(L≥2)의 블록의 데이터열로 분할하고, 각 블록의 데이터열로부터, 상기 블록 단위로, 선형 부호인 제 2 오류 정정 부호의 패리티를 생성하고, 상기 제 2 오류 정정 부호어에, 각 블록의 상기 제 2 오류 정정 부호의 패리티를 부가하여, 제 3 오류 정정 부호어를 작성하는 제 2 ECC 부호기와,
    수신한 상기 제 3 오류 정정 부호어로 부호화된 부호화 데이터열을, 상기 제 2 ECC 부호의 패리티를 이용하여, 반복 복호하고, 상기 부호화 데이터열을, 비트열로 복호화하고, 또한 각 비트의 우도를 출력하는 반복 복호기와,
    상기 반복 복호기의 부호화 데이터열의 제 1 오류 정정 부호에 의한 오류 정정 복호와, 상기 패리티 비트에 의한 오류 검출에 따른, 상기 우도에 의한 상기 부호 비트열의 정정 복호를 반복하여 행하는 ECC 복호 회로를 갖는 것을 특징으로 하는 부호화·복호화 장치.
  10. 기억 매체에 데이터를 기입하고 또한 판독하는 헤드와,
    상기 기억 매체에 기입해야 할 데이터열을, 데이터열을, m(m≥2)비트마다, n(n≥2)블록의 데이터열로 인터리브하고, 상기 인터리브된 각 블록의 데이터열로부터 제 1 오류 정정 부호의 패리티를 생성하고, 상기 데이터열에 각 블록의 상기 제 1 오류 정정 부호의 패리티를 부가하여, 오류 정정 부호어를 작성하는 ECC 부호기와,
    상기 오류 정정 부호어의 복수의 비트 수마다, 패리티 비트를 작성하여, 상기 오류 정정 부호어에 부가하는 패리티 부호기와,
    상기 오류 정정 부호어에 상기 패리티 부호기에 의해 생성된 패리티가 부가된 제 2 오류 정정 부호어를, K(K≥2)비트마다, L개(L≥2)의 블록의 데이터열로 분할하고, 각 블록의 데이터열로부터, 상기 블록 단위로, 선형 부호인 제 2 오류 정정 부호의 패리티를 생성하고, 상기 제 2 오류 정정 부호어에, 각 블록의 상기 제 2 오류 정정 부호의 패리티를 부가하여, 제 3 오류 정정 부호어를 작성하고, 상기 헤드에 출력하는 제 2 ECC 부호기와,
    상기 헤드가 판독한 상기 제 3 오류 정정 부호어로 부호화된 부호화 데이터열을, 상기 제 2 ECC 부호의 패리티를 이용하여, 반복 복호하고, 상기 부호화 데이터열을, 비트열로 복호화하고, 또한 각 비트의 우도를 출력하는 반복 복호기와,
    상기 반복 복호기의 부호화 데이터열의 제 1 오류 정정 부호에 의한 오류 정정 복호와, 상기 패리티 비트에 의한 오류 검출에 따른, 상기 우도에 의한 상기 부호 비트열의 정정 복호를 반복하여 행하는 ECC 복호 회로를 갖는 것을 특징으로 하는 기록 재생 장치.
KR1020080124647A 2008-01-31 2008-12-09 부호화 장치, 복호화 장치, 부호화·복호화 장치 및 기록 재생 장치 KR100976178B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2008-021282 2008-01-31
JP2008021282A JP5007676B2 (ja) 2008-01-31 2008-01-31 符号化装置、復号化装置、符号化・復号化装置及び記録再生装置

Publications (2)

Publication Number Publication Date
KR20090084653A KR20090084653A (ko) 2009-08-05
KR100976178B1 true KR100976178B1 (ko) 2010-08-17

Family

ID=40419121

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080124647A KR100976178B1 (ko) 2008-01-31 2008-12-09 부호화 장치, 복호화 장치, 부호화·복호화 장치 및 기록 재생 장치

Country Status (5)

Country Link
US (1) US8151162B2 (ko)
EP (1) EP2086114B1 (ko)
JP (1) JP5007676B2 (ko)
KR (1) KR100976178B1 (ko)
CN (1) CN101499806B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101320684B1 (ko) 2011-11-18 2013-10-18 한국과학기술원 연접 비씨에이치 부호, 복호 및 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치의 오류 정정 회로 및 플래쉬 메모리 장치

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5466953B2 (ja) * 2008-02-08 2014-04-09 富士通株式会社 バックアップ方法及びディスクアレイシステム
US8352837B1 (en) * 2009-03-20 2013-01-08 Marvell International Ltd. System and methods for storing data encoded with error information in a storage medium
CN101697490B (zh) * 2009-10-16 2013-09-25 苏州国芯科技有限公司 一种应用在基于理德-所罗门码的ecc模块上的解码方法
EP2330745A1 (fr) * 2009-10-29 2011-06-08 STMicroelectronics SA Procédé et dispositif de décodage d'une succession de blocs encodés avec un code de correction d'erreur et corrélés par un canal de transmission
JP5039160B2 (ja) * 2010-03-02 2012-10-03 株式会社東芝 不揮発性半導体記憶システム
KR101652452B1 (ko) * 2010-03-02 2016-08-30 시게이트 테크놀로지 인터내셔날 디코더와 상기 디코더를 포함하는 장치들
JP2012050008A (ja) * 2010-08-30 2012-03-08 Toshiba Corp 誤り検出訂正方法および半導体メモリ装置
US8904258B2 (en) * 2010-09-07 2014-12-02 Zephyr Photonics Modulation-forward error correction (MFEC) codes and methods of constructing and utilizing the same
US8869000B2 (en) * 2011-01-31 2014-10-21 Marvell World Trade Ltd. Methods and systems for efficient decoding of concatenated error correction codes
US8612834B2 (en) * 2011-03-08 2013-12-17 Intel Corporation Apparatus, system, and method for decoding linear block codes in a memory controller
US8887034B2 (en) * 2011-04-15 2014-11-11 Lsi Corporation Systems and methods for short media defect detection
US8667360B2 (en) * 2011-07-01 2014-03-04 Intel Corporation Apparatus, system, and method for generating and decoding a longer linear block codeword using a shorter block length
US9213742B2 (en) * 2011-09-06 2015-12-15 Cleversafe, Inc. Time aligned transmission of concurrently coded data streams
US8640013B2 (en) * 2011-09-22 2014-01-28 Kabushiki Kaisha Toshiba Storage device
US8578241B2 (en) * 2011-10-10 2013-11-05 Lsi Corporation Systems and methods for parity sharing data processing
US8862960B2 (en) * 2011-10-10 2014-10-14 Lsi Corporation Systems and methods for parity shared data encoding
JP2013109567A (ja) * 2011-11-21 2013-06-06 Toshiba Corp ストレージデバイス及び誤り訂正方法
US9054840B2 (en) * 2011-12-15 2015-06-09 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Error detection and correction of a data transmission
JP5992916B2 (ja) * 2012-03-13 2016-09-14 パナソニック株式会社 無線通信装置
US9203757B2 (en) * 2012-03-22 2015-12-01 Texas Instruments Incorporated Network throughput using multiple reed-solomon blocks
US8775897B2 (en) * 2012-05-07 2014-07-08 Lsi Corporation Data processing system with failure recovery
TWI477104B (zh) * 2012-09-13 2015-03-11 Mstar Semiconductor Inc 錯誤校正裝置與錯誤校正方法
KR102081980B1 (ko) * 2012-10-08 2020-02-27 삼성전자 주식회사 메모리 시스템에서의 라이트 동작 또는 리드 동작 수행 방법
US9577673B2 (en) 2012-11-08 2017-02-21 Micron Technology, Inc. Error correction methods and apparatuses using first and second decoders
US9191256B2 (en) 2012-12-03 2015-11-17 Digital PowerRadio, LLC Systems and methods for advanced iterative decoding and channel estimation of concatenated coding systems
US20140173381A1 (en) * 2012-12-19 2014-06-19 Quantum, Inc. Bit error detection and correction with error detection code and list-npmld
US9190809B2 (en) 2012-12-29 2015-11-17 Zephyr Photonics Inc. Method and apparatus for active voltage regulation in optical modules
US9160452B2 (en) 2012-12-29 2015-10-13 Zephyr Photonics Inc. Apparatus for modular implementation of multi-function active optical cables
US9468085B2 (en) 2012-12-29 2016-10-11 Zephyr Photonics Inc. Method and apparatus for implementing optical modules in high temperatures
US9728936B2 (en) 2012-12-29 2017-08-08 Zephyr Photonics Inc. Method, system and apparatus for hybrid optical and electrical pumping of semiconductor lasers and LEDs for improved reliability at high temperatures
US10958348B2 (en) 2012-12-29 2021-03-23 Zephyr Photonics Inc. Method for manufacturing modular multi-function active optical cables
US9172462B2 (en) * 2012-12-31 2015-10-27 Zephyr Photonics Inc. Optical bench apparatus having integrated monitor photodetectors and method for monitoring optical power using same
US9362956B2 (en) * 2013-01-23 2016-06-07 Samsung Electronics Co., Ltd. Method and system for encoding and decoding data using concatenated polar codes
US9362954B1 (en) * 2013-03-15 2016-06-07 Seagate Technology Llc Digital communications channel
CN103338046B (zh) * 2013-06-21 2016-03-30 上海交通大学 码率兼容的ldpc-rs二维乘积码的编码与译码方法
CN103428498A (zh) * 2013-08-21 2013-12-04 江苏新瑞峰信息科技有限公司 一种无损图像压缩系统
KR20150084560A (ko) * 2014-01-14 2015-07-22 에스케이하이닉스 주식회사 인코딩 장치, 디코딩 장치 및 그 동작 방법
KR20160141771A (ko) * 2014-04-01 2016-12-09 래티스세미컨덕터코퍼레이션 직렬 비디오 인터페이스들내 에러 감지 및 정정을 위한 직교하는 데이터 구조화
US9577672B2 (en) * 2014-07-18 2017-02-21 Storart Technology Co., Ltd. Low density parity-check code decoder and decoding method thereof
KR101644712B1 (ko) * 2014-12-15 2016-08-02 한국과학기술원 블록 단위 연접 비씨에이치 부호의 성능을 향상시키는 오류 정정 방법 및 복호 방법
US9647694B2 (en) 2014-12-28 2017-05-09 International Business Machines Corporation Diagonal anti-diagonal memory structure
JP6484041B2 (ja) * 2015-01-22 2019-03-13 日本放送協会 連接符号を用いた送信装置、受信装置及びチップ
CN107210755B (zh) * 2015-01-27 2020-03-10 华为技术有限公司 一种fec译码的装置及方法
CN105095014A (zh) * 2015-07-01 2015-11-25 清华大学 基于错误纠正编码数据结构的数据隐藏方法
JP6488954B2 (ja) * 2015-09-11 2019-03-27 富士通株式会社 暗号データ処理方法、暗号データ処理システム、暗号データ処理装置および暗号データ処理プログラム
KR20170076350A (ko) * 2015-12-24 2017-07-04 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10241851B2 (en) * 2016-01-11 2019-03-26 Micron Technology, Inc. Estimation of error correcting performance of low-density parity-check (LDPC) codes
US10114569B2 (en) * 2016-10-07 2018-10-30 Cnex Labs, Inc. Computing system with shift expandable coding mechanism and method of operation thereof
US10396826B2 (en) * 2016-10-26 2019-08-27 Huawei Technologies Co., Ltd. Software defined network with selectable low latency or high throughput mode
US10284233B2 (en) * 2016-12-06 2019-05-07 Western Digital Technologies, Inc. ECC adjustment based on dynamic error information
US10158380B2 (en) 2016-12-06 2018-12-18 Sandisk Technologies Llc ECC and read adjustment based on dynamic memory error model estimation
US10374639B2 (en) 2016-12-06 2019-08-06 Western Digital Technologies, Inc. Adaptive bit-flipping decoder based on dynamic error information
TWI631830B (zh) * 2016-12-30 2018-08-01 慧榮科技股份有限公司 解碼方法與相關解碼裝置
EP3669460A4 (en) * 2017-08-18 2021-05-19 Nokia Solutions and Networks Oy USING LDPC BASIC GRAPHICS FOR NR
EP4220967A1 (en) * 2017-09-27 2023-08-02 Mitsubishi Electric Corporation Coding device and transmitter
US10447313B2 (en) 2017-11-28 2019-10-15 X Development Llc Communication method and system with on demand temporal diversity
KR102415974B1 (ko) * 2017-12-14 2022-07-04 삼성전자주식회사 에러 정정 장치, 에러 정정 장치의 동작 방법, 그리고 에러 정정 장치를 포함하는 제어기
CN108988990A (zh) * 2018-07-05 2018-12-11 郑州云海信息技术有限公司 一种处理链路层数据错误的方法
US10942805B2 (en) * 2018-08-03 2021-03-09 Samsung Electronics Co., Ltd. Error correcting circuit performing error correction on user data and error correcting method using the error correcting circuit
JP2021034825A (ja) * 2019-08-21 2021-03-01 株式会社東芝 磁気ディスク装置
CN112865809A (zh) * 2019-11-27 2021-05-28 量子芯云(北京)微电子科技有限公司 Ecc超强数据纠错方法
US11356122B2 (en) * 2020-03-13 2022-06-07 Marvell Asia Pte Ltd. Systems and methods for interleaved hamming encoding and decoding
US11057060B1 (en) * 2020-03-23 2021-07-06 Sage Microelectronics Corporation Method and apparatus for matrix flipping error correction
US11522635B2 (en) * 2020-07-31 2022-12-06 Fujitsu Limited Device and method for transmitting data by using multilevel coding, and communication system
CN113395137B (zh) * 2021-06-08 2023-04-25 龙迅半导体(合肥)股份有限公司 一种fec编解码模块
CN113595561A (zh) * 2021-07-14 2021-11-02 深圳宏芯宇电子股份有限公司 一种混合解码方法、存储装置控制器及存储系统
JP2024045862A (ja) * 2022-09-22 2024-04-03 株式会社東芝 磁気ディスク装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7205912B1 (en) 2005-10-31 2007-04-17 Seagate Technology Llc Structured set partitioning and multilevel coding for partial response channels
KR100766354B1 (ko) 2006-04-28 2007-10-15 후지쯔 가부시끼가이샤 에러 정정 장치, 부호기, 복호기, 방법 및 정보 기억 장치

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08106733A (ja) * 1994-10-07 1996-04-23 Hitachi Ltd 情報記憶媒体利用システム
US5636231A (en) * 1995-09-05 1997-06-03 Motorola, Inc. Method and apparatus for minimal redundancy error detection and correction of voice spectrum parameters
JP3567733B2 (ja) 1998-05-08 2004-09-22 株式会社日立製作所 信号復号方法、信号復号回路及びこれを用いた情報伝送通信装置、情報記憶再生装置
KR100277764B1 (ko) * 1998-12-10 2001-01-15 윤종용 통신시스템에서직렬쇄상구조를가지는부호화및복호화장치
US6553536B1 (en) * 2000-07-07 2003-04-22 International Business Machines Corporation Soft error correction algebraic decoder
KR100673419B1 (ko) * 2000-12-28 2007-01-24 엘지전자 주식회사 전송 시스템 및 데이터 처리 방법
JP4109556B2 (ja) * 2003-01-31 2008-07-02 松下電器産業株式会社 Ofdm信号の衝突位置検出装置、ofdm受信装置及びofdm信号の衝突位置検出方法及びofdm受信方法
JP2004253017A (ja) * 2003-02-18 2004-09-09 Fujitsu Ltd 記録媒体再生装置、記録媒体再生方法およびハードディスクコントローラ
JP2005093038A (ja) * 2003-09-19 2005-04-07 Fujitsu Ltd 記録再生装置および記録再生回路
KR100539261B1 (ko) * 2004-05-04 2005-12-27 삼성전자주식회사 디지털 데이터의 부호화 장치와 dvd로의 기록 장치 및그 방법
JP4444755B2 (ja) * 2004-08-17 2010-03-31 Kddi株式会社 連接符号システムおよび連接符号処理方法、復号装置
JP4558638B2 (ja) * 2005-12-15 2010-10-06 富士通株式会社 符号器および復号器
JP2008021282A (ja) 2006-06-12 2008-01-31 Brother Ind Ltd ラベル体及びラベル体作成装置
JP2008065969A (ja) * 2006-08-09 2008-03-21 Fujitsu Ltd 符号化装置、復号化装置、符号化方法、復号化方法および記憶装置
JP4833173B2 (ja) * 2006-10-30 2011-12-07 富士通株式会社 復号化器、符号化・復号化装置及び記録再生装置
KR101119302B1 (ko) * 2007-04-20 2012-03-19 재단법인서울대학교산학협력재단 통신 시스템에서 저밀도 패리티 검사 부호 부호화 장치 및방법
US8065594B2 (en) * 2007-06-29 2011-11-22 Limberg Allen Leroy 8VSB DTV signals with PCCC and subsequent trellis coding

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7205912B1 (en) 2005-10-31 2007-04-17 Seagate Technology Llc Structured set partitioning and multilevel coding for partial response channels
KR100766354B1 (ko) 2006-04-28 2007-10-15 후지쯔 가부시끼가이샤 에러 정정 장치, 부호기, 복호기, 방법 및 정보 기억 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101320684B1 (ko) 2011-11-18 2013-10-18 한국과학기술원 연접 비씨에이치 부호, 복호 및 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치의 오류 정정 회로 및 플래쉬 메모리 장치

Also Published As

Publication number Publication date
US20090199073A1 (en) 2009-08-06
EP2086114B1 (en) 2014-01-15
EP2086114A2 (en) 2009-08-05
JP2009181656A (ja) 2009-08-13
KR20090084653A (ko) 2009-08-05
JP5007676B2 (ja) 2012-08-22
EP2086114A3 (en) 2012-09-12
US8151162B2 (en) 2012-04-03
CN101499806A (zh) 2009-08-05
CN101499806B (zh) 2013-08-21

Similar Documents

Publication Publication Date Title
KR100976178B1 (ko) 부호화 장치, 복호화 장치, 부호화·복호화 장치 및 기록 재생 장치
JP4833173B2 (ja) 復号化器、符号化・復号化装置及び記録再生装置
US8255763B1 (en) Error correction system using an iterative product code
KR100933254B1 (ko) 최대 우도 검출기, 오류 정정 회로 및 매체 기억 장치
US8042030B2 (en) Encoding apparatus, decoding apparatus, encoding method, decoding method, and storage device
US7725800B2 (en) Decoding techniques for correcting errors using soft information
TWI604698B (zh) 具有錯誤校正處置之低密度同位檢查解碼器
US8127216B2 (en) Reduced state soft output processing
JP2007087530A (ja) 信号復号方法、信号復号装置および信号記憶システム
JP2010009719A (ja) 復号器及び記録再生装置
JP4118127B2 (ja) データの復号方法およびそれを用いたディスク装置
JP2005093038A (ja) 記録再生装置および記録再生回路
US9015562B1 (en) Systems and methods for multistage error correction
US20090307561A1 (en) Decoding device, decoding method, and recording and reproducing device
JP4088133B2 (ja) リードチャネル復号器、リードチャネル復号方法およびリードチャネル復号プログラム
JP2010152960A (ja) エラー訂正回路及び記憶装置
JP4294407B2 (ja) 信号処理方法及び信号処理回路
JP2004193727A (ja) 信号処理方法及び信号処理回路
JP2008152915A (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: 20130719

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140721

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee