KR101300810B1 - 데이터 인코딩 및 디코딩 방법과 그 장치, 저장 매체, 및저장 매체 구동 시스템 - Google Patents

데이터 인코딩 및 디코딩 방법과 그 장치, 저장 매체, 및저장 매체 구동 시스템 Download PDF

Info

Publication number
KR101300810B1
KR101300810B1 KR1020060064014A KR20060064014A KR101300810B1 KR 101300810 B1 KR101300810 B1 KR 101300810B1 KR 1020060064014 A KR1020060064014 A KR 1020060064014A KR 20060064014 A KR20060064014 A KR 20060064014A KR 101300810 B1 KR101300810 B1 KR 101300810B1
Authority
KR
South Korea
Prior art keywords
extra
error correction
correction code
blocks
parity
Prior art date
Application number
KR1020060064014A
Other languages
English (en)
Other versions
KR20070099387A (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 삼성전자주식회사
Priority to US11/641,859 priority Critical patent/US8037389B2/en
Priority to PCT/KR2007/001167 priority patent/WO2007114564A1/en
Priority to EP07715564.6A priority patent/EP2002439A4/en
Priority to JP2009504110A priority patent/JP5108000B2/ja
Priority to CN2007800080752A priority patent/CN101395670B/zh
Publication of KR20070099387A publication Critical patent/KR20070099387A/ko
Application granted granted Critical
Publication of KR101300810B1 publication Critical patent/KR101300810B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • 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
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • 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/1806Pulse code modulation systems for audio signals
    • G11B20/1813Pulse code modulation systems for audio signals by adding special bits or symbols to the coded information
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • 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
    • 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/2909Product 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/2942Coding, 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 wherein a block of parity bits is computed only from combined information bits or only from parity bits, e.g. a second block of parity bits is computed from a first block of parity bits obtained by systematic encoding of a block of information bits, or a block of parity bits is obtained by an XOR combination of sub-blocks of information bits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Error Detection And Correction (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

본 발명은 기존의 ECC(Error Correction Code) 블록 포맷과 호환성을 갖는 엑스트라 패리티 ECC 블록을 이용하여 재생되는 데이터의 신뢰성을 향상시킬 수 있는 데이터 인코딩 및 디코딩 방법과 그 장치와 저장 매체, 기록 매체 구동 시스템, 및 엑스트라 패리티 ECC 블록 생성 방법에 관한 것으로, 본 발명의 한 유형에 따른 데이터 인코딩 방법은, 유저 데이터에 대해 N개의 에러 정정 코드 블록을 생성하는 단계; N개의 에러 정정 코드 블록에 대한 적어도 하나의 엑스트라 패리티 에러 정정 코드 블록을 생성하는 단계를 포함하여, 재생되는 데이터에 대한 에러 정정 실패율을 최소화하여 재생되는 데이터의 신뢰성을 향상시킬 수 있다.

Description

데이터 인코딩 및 디코딩 방법과 그 장치, 저장 매체, 및 저장 매체 구동 시스템{Method and apparatus for encoding and decoding data, storage medium and storage medium driving system thereof}
도 1은 본 발명의 일 실시 예에 따른 데이터 인코딩 장치의 개략적인 기능 블록도이다.
도 2는 도 1에 도시된 엑스트라 패리티 에러 정정 코드 블록 생성 유니트의 일 실시 예이다.
도 3은 도 2에 도시된 실시 예 기반의 엑스트라 패리티 에러 정정 코드 블록 생성 프로세스의 일 예이다.
도 4는 도 2에 도시된 실시 예 기반의 엑스트라 패리티 에러 정정 코드 블록 생성 프로세스의 다른 일 예이다.
도 5는 도 1에 도시된 엑스트라 패리티 에러 정정 코드 블록 생성 유니트의 다른 실시 예이다.
도 6은 도 5에 도시된 실시 예 기반의 엑스트라 패리티 에러 정정 코드 블록 생성 프로세스의 일 예이다.
도 7은 도 5에 도시된 실시 예 기반의 엑스트라 패리티 에러 정정 코드 블록 생성 프로세스의 다른 예이다.
도 8은 도 1에 도시된 엑스트라 패리티 에러 정정 코드 블록 생성 유니트의 또 다른 실시 예이다.
도 9는 도 8에 도시된 실시 예 기반의 엑스트라 패리티 에러 정정 코드 블록 생성 프로세스의 일 예이다.
도 10은 도 8에 도시된 실시 예 기반의 엑스트라 패리티 에러 정정 코드 블록 생성 프로세스의 다른 예이다.
도 11은 본 발명의 다른 실시 예에 따른 데이터 인코딩 방법의 동작 흐름도이다.
도 12는 도 11에 도시된 엑스트라 패리티 에러 정정 코드 블록을 생성하는 단계의 상세 동작 흐름도의 일 예이다.
도 13은 도 11에 도시된 엑스트라 패리티 에러 정정 코드 블록을 생성하는 단계의 상세 동작 흐름도의 다른 예이다.
도 14은 본 발명의 또 다른 실시 예에 따른 저장 매체 구동 시스템의 기능 블록도이다.
도 15는 본 발명의 또 다른 실시 예에 따른 데이터 디코딩 장치의 기능 블록도이다.
도 16은 도 15에 도시된 엑스트라 에러 정정 코드 블록 생성 유니트의 상세 기능 블록도의 일 예이다.
도 17은 본 발명의 또 다른 실시 예에 따른 데이터 디코딩 장치의 기능 블록도이다.
도 18은 본 발명의 또 다른 실시 예에 따른 데이터 디코딩 방법의 동작 흐름도이다.
도 19는 도 18에 도시된 엑스트라 에러 정정 코드 블록 생성 단계의 상세 동작 흐름도이다.
도 20은 본 발명의 또 다른 실시 예에 따른 저장 매체 구동 시스템의 기능 블록도이다.
본 발명은 데이터 인코딩 및 디코딩에 관한 것으로, 특히, 에러 정정 코드(Error Correction Code, 이하 ECC라고 약함) 블록 기반의 데이터 인코딩 및 디코딩 방법과 그 장치, 저장 매체, 저장 매체 구동 시스템에 관한 것이다.
하드디스크, DVD(Digital Versatile Disc), HD-DVD(High Definition-DVD), 블루레이(Blu-ray) 디스크와 같은 저장 매체를 구동하는 시스템은 데이터 디코딩 시, 저장 매체상의 스크래치나 지문과 같은 버스트 에러(burst error), 먼지와 같은 랜덤 에러(random error)에 대한 ECC 블록 기반의 에러 정정을 수행한다.
그러나, 기존의 저장 매체 구동 시스템에서의 ECC 블록 기반의 에러 정정은 저장 매체 타입에 따라 에러 정정 능력이 정해져 있다. 예를 들어, 정보 저장 매체가 DVD인 경우에 ECC 블록의 약 16 행(rows)(16×182+10byte), 정보 저장 매체가 HD-DVD인 경우에 ECC 블록의 약 32 행(32×182+10byte), 정보 저장 매체가 블루레 이 디스크인 경우에 ECC블록의 64행(155×64byte)에 해당되는 길이의 에러를 정정할 수 있다. 에러 정정이 가능한 물리적인 길이는 정보 저장 매체의 기록 밀도에 따라 달라질 수 있다. 예를 들어, DVD의 경우에 약 6mm, HD-DVD의 경우에 약 6.4mm, 블루레이 디스크의 경우에 약 9mm의 물리적인 길이에 해당하는 에러를 정정할 수 있다.
그러나 저장 매체를 사용할수록 기록 파워나 재생 파워의 영향 및 저장 매체 관리 조건에 따른 먼지, 스크래치 및 지문 등으로 인하여 저장 매체에 기록된 데이터는 점점 손상될 수 있다. 따라서 저장 매체의 사용 횟수가 증가할수록 데이터 디코딩 시 기존의 규격화된 ECC 블록 기반의 에러 정정은 실패할 확률이 높아진다. 특히, 저장 매체의 표면에 스크래치와 같은 물리적인 상처는 저장 매체에 기록된 데이터에 치명적인 손상을 주므로, 기존의 규격화된 ECC 블록 기반의 에러 정정 실패 확률을 높인다. ECC 블록 기반의 에러 정정이 실패하면, 저장 매체 구동 시스템에서 재생되는 데이터의 신뢰성은 저하된다.
ECC 블록 기반의 데이터 통신 시스템에서도 전송속도와 같은 조건에 따라 데이터에 포함된 에러의 길이가 ECC 블록으로 에러를 정정할 수 있는 길이를 초과할 수 있다. 만약 데이터에 포함된 에러의 길이가 ECC 블록으로 에러를 정정할 수 있는 길이를 초과하면, 데이터 디코딩 시 ECC블록 기반 에러 정정이 실패하여 전송되는 데이터는 손실되고, 데이터 통신 시스템에서 재생되는 데이터의 신뢰성은 저하된다.
상술한 문제점을 해결하기 위하여, 본 발명은 기존의 ECC(Error Correction Code) 블록 포맷과 호환성을 갖는 엑스트라 패리티 ECC 블록을 이용하여 재생되는 데이터의 신뢰성을 향상시킬 수 있는 데이터 인코딩 및 디코딩 방법과 그 장치와 저장 매체를 제공하는데 그 목적이 있다.
본 발명의 다른 목적은 기존의 ECC(Error Correction Code) 블록 포맷과 호환성을 갖는 엑스트라 패리티 ECC 블록을 이용하여 재생되는 데이터의 신뢰성을 향상시킬 수 있는 저장 매체 구동 시스템을 제공하는데 있다.
본 발명의 또 다른 목적은 재생되는 데이터의 신뢰성을 향상시키기 위하여 데이터 인코딩시 기존의 ECC 블록 포맷과 호환성을 갖는 엑스트라 패리티 ECC 블록을 생성하는 방법을 제공하는데 있다.
상기 목적을 달성하기 위하여 본 발명에 따른 방법은, 데이터 인코딩 방법에 있어서, 유저 데이터에 대해 N개의 에러 정정 코드 블록을 생성하는 단계; 상기 N개의 에러 정정 코드 블록에 대한 적어도 하나의 엑스트라 패리티 에러 정정 코드 블록을 생성하는 단계를 포함하는 데이터 인코딩 방법을 제공한다.
상기 엑스트라 패리티 에러 정정 코드 블록 생성 단계는, 상기 N개의 에러 정정 코드 블록중에서 인접한 에러 정정 코드 블록간의 유저 데이터 블록을 블록 인터리빙하여 N개의 엑스트라 데이터 블록을 생성하는 단계; 상기 N개의 엑스트라 데이터 블록에 엑스트라 패리티 정보를 각각 부가하여 N개의 엑스트라 에러 정정 코드 블록을 생성하는 단계; 및 상기 N개의 엑스트라 에러 정정 코드 블록에 포함 된 엑스트라 패리티 정보를 토대로 상기 적어도 하나의 엑스트라 패리티 에러 정정 코드 블록을 생성하는 단계를 포함하는 것이 바람직하다.
상기 엑스트라 패리티 에러 정정 코드 블록 생성 단계는, 상기 N개의 에러 정정 코드 블록중에서 인접한 에러 정정 코드 블록간의 유저 데이터 블록을 블록 인터리빙하여 N개의 엑스트라 데이터 블록을 생성하는 단계; 상기 N개의 엑스트라 데이터 블록에 엑스트라 패리티 정보를 각각 부가하여 N개의 엑스트라 에러 정정 코드 블록을 생성하는 단계; 및 상기 N개의 엑스트라 에러 정정 코드 블록에 포함된 엑스트라 패리티 정보를 토대로 적어도 N/2개의 제 1 엑스트라 패리티 에러 정정 코드 블록을 생성하는 단계; 상기 N/2개의 제 1 엑스트라 패리티 에러 정정 코드 블록에 포함된 엑스트라 패리티 정보를 블록 인터리빙하여 적어도 하나의 제 2 엑스트라 패리티 에러 정정 코드 블록을 생성하는 단계; 및 상기 적어도 하나의 제 2 엑스트라 패리티 에러 정정 코드 블록을 상기 적어도 하나의 엑스트라 패리티 에러 정정 코드 블록으로서 생성하는 단계를 포함하는 것이 바람직하다.
상기 엑스트라 패리티 에러 정정 코드 블록 생성 단계는, 상기 N개의 에러 정정 코드 블록의 일부 데이터를 토대로 N개의 엑스트라 데이터 블록을 생성하는 단계; 상기 N개의 엑스트라 데이터 블록에 엑스트라 패리티 정보를 각각 부가하여 N개의 엑스트라 에러 정정 코드 블록을 생성하는 단계; 및 상기 N개의 엑스트라 에러 정정 코드 블록에 포함된 엑스트라 패리티 정보를 토대로 상기 적어도 하나의 엑스트라 패리티 에러 정정 코드 블록을 생성하는 단계를 포함하는 것이 바람직하다.
상기 적어도 하나의 엑스트라 패리티 에러 정정 코드 블록 생성 단계는, 상기 N개의 엑스트라 에러 정정 코드 블록에 포함된 엑스트라 패리티 정보를 인터리빙하여 엑스트라 패리티 데이터 블록을 생성하는 단계; 및 상기 엑스트라 패리티 데이터 블록에 패리티 정보를 부가하여 상기 적어도 하나의 엑스트라 패리티 에러 정정 코드 블록을 생성하는 단계를 포함하는 것이 바람직하다.
상기 엑스트라 패리티 에러 정정 코드 블록 생성 단계는, 상기 N개의 에러 정정 코드 블록의 전체 데이터를 토대로 N개의 엑스트라 데이터 블록을 생성하는 단계; 상기 N개의 엑스트라 데이터 블록에 엑스트라 패리티 정보를 각각 부가하여 N개의 엑스트라 에러 정정 코드 블록을 생성하는 단계; 및 상기 N개의 엑스트라 에러 정정 코드 블록에 포함된 엑스트라 패리티 정보를 토대로 상기 적어도 하나의 엑스트라 패리티 에러 정정 코드 블록을 생성하는 단계를 포함하는 것이 바람직하다.
상기 목적을 달성하기 위하여 본 발명에 따른 방법은, N개의 에러 정정 코드 블록을 이용하여 N개의 엑스트라 데이터 블록을 생성하는 단계; 상기 N개의 엑스트라 데이터 블록에 엑스트라 패리티 정보를 각각 부가하여 N개의 엑스트라 에러 정정 코드 블록을 생성하는 단계; 및 상기 N개의 엑스트라 에러 정정 코드 블록에 포함된 엑스트라 패리티 정보를 토대로 상기 N개의 에러 정정 코드 블록에 대응되는 적어도 하나의 엑스트라 패리티 에러 정정 코드 블록을 생성하는 단계를 포함하는 엑스트라 패리티 에러 정정 코드 블록 생성 방법을 제공한다.
상기 목적을 달성하기 위하여 본 발명에 따른 장치는, 데이터 인코딩 장치 는, 유저 데이터에 대해 N개의 에러 정정 코드 블록을 생성하는 에러 정정 코드 블록 생성 유니트; 및 상기 N개의 에러 정정 코드 블록에 대한 적어도 하나의 엑스트라 패리티 에러 정정 코드 블록을 생성하는 엑스트라 패리티 에러 정정 코드 블록 생성 유니트를 포함하는 데이터 인코딩 장치를 제공한다.
상기 목적을 달성하기 위하여 본 발명에 따른 장치는, 저장 매체 구동 시스템에 있어서, 유저 데이터에 대해 N개의 에러 정정 코드 블록을 생성하고, 상기 N개의 에러 정정 코드 블록에 대한 적어도 하나의 엑스트라 패리티 에러 정정 코드 블록을 생성하는 데이터 인코딩 유니트; 및 상기 데이터 인코딩 유니트에서 생성된 상기 N개의 에러 정정 코드 블록과 상기 적어도 하나의 엑스트라 패리티 에러 정정 코드 블록을 저장하는 저장 매체를 포함하는 저장 매체 구동 시스템을 제공한다.
상기 목적을 달성하기 위하여 본 발명에 따른 방법은, 데이터 디코딩 방법에 있어서, 엑스트라 패리티 에러 정정 코드 블록에 포함된 엑스트라 패리티 데이터 블록과 N개의 에러 정정 코드 블록의 유저 데이터 블록을 이용하여 N개의 엑스트라 에러 정정 코드 블록을 생성하는 단계; 상기 N개의 엑스트라 에러 정정 코드 블록을 에러 정정하는 단계; 상기 에러 정정된 N개의 엑스트라 에러 정정 코드 블록에 포함되어 있는 엑스트라 데이터 블록을 토대로 에러 정정 코드 블록의 유저 데이터 블록을 업데이트 하는 단계; 및 상기 유저 데이터 블록이 업데이트된 에러 정정 코드 블록을 에러 정정하는 단계를 포함하는 데이터 디코딩 방법을 제공한다.
상기 목적을 달성하기 위하여 본 발명에 따른 장치는, 데이터 디코딩 장치에 있어서, 엑스트라 패리티 에러 정정 코드 블록의 엑스트라 패리티 데이터 블록과 N 개의 에러 정정 코드 블록 각각의 유저 데이터 블록을 토대로 N개의 엑스트라 에러 정정 코드 블록을 생성하는 엑스트라 에러 정정 코드 블록 생성 유니트; 상기 N개의 엑스트라 에러 정정 코드 블록을 에러 정정하는 에러 정정 유니트; 및 상기 에러 정정된 N개의 엑스트라 에러 정정 코드 블록에 포함되어 있는 엑스트라 데이터 블록을 토대로 에러 정정 코드 블록의 유저 데이터 블록을 업데이트하는 업데이트 유니트를 포함하는 데이터 디코딩 장치를 제공한다.
상기 목적을 달성하기 위하여 본 발명에 따른 장치는, 저장 매체 구동 시스템에 있어서, N개의 에러 정정 코드 블록과 상기 N개의 에러 정정 코드 블록에 대응되는 적어도 하나의 엑스트라 패리티 에러 정정 코드 블록을 저장하는 저장 매체; 상기 저장 매체로부터 리드된 에러 정정 코드 블록과 엑스트라 패리티 에러 정정 코드 블록을 토대로 에러 정정 코드 블록을 복원하는 에러 정정 코드 블록 복원 유니트; 및 상기 저장 매체와 상기 에러 정정 코드 블록 복원 유니트중 하나로부터 전송되는 에러 정정 코드 블록을 정정하는 에러 정정 코드 블록 정정 유니트를 포함하는 저장 매체 구동 시스템을 제공한다.
상기 목적을 달성하기 위하여 본 발명에 따른 저장 매체는, 컴퓨터 판독이 가능한 저장 매체에 있어서, N개의 에러 정정 코드 블록; 및 상기 N개의 에러 정정 코드 블록을 복원하기 위한 적어도 하나의 엑스트라 패리티 에러 정정 코드 블록을 포함하는 저장 매체를 제공한다.
상기 목적을 달성하기 위하여 본 발명에 따른 저장 매체는, 데이터 인코딩 방법을 수행하는 프로그램이 기록된 컴퓨터 판독이 가능한 저장 매체에 있어서, 유 저 데이터에 대해 N개의 에러 정정 코드 블록을 생성하는 코드; 상기 N개의 에러 정정 코드 블록에 대한 적어도 하나의 엑스트라 패리티 에러 정정 코드 블록을 생성하는 코드를 포함하는 저장 매체를 제공한다.
상기 목적을 달성하기 위하여 본 발명에 따른 저장 매체는, 데이터 디코딩 방법을 수행하는 프로그램이 기록된 컴퓨터 판독이 가능한 저장 매체에 있어서, 엑스트라 패리티 에러 정정 코드 블록의 엑스트라 패리티 데이터 블록과 N개의 에러 정정 코드 블록 각각의 유저 데이터 블록을 토대로 N개의 엑스트라 에러 정정 코드 블록을 생성하는 코드; 상기 N개의 엑스트라 에러 정정 코드 블록을 에러 정정하는 코드; 상기 에러 정정된 N개의 엑스트라 에러 정정 코드 블록에 포함되어 있는 엑스트라 데이터 블록을 토대로 에러 정정 코드 블록의 유저 데이터 블록을 업데이트 하는 코드; 상기 유저 데이터 블록이 업데이트된 에러 정정 코드 블록을 에러 정정하는 코드를 포함하는 저장 매체를 제공한다.
이하, 첨부 도면을 참조하여 본 발명에 따른 실시 예를 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시 예에 따른 데이터 인코딩 장치의 개략적인 기능 블록도이다. 도 1을 참조하면, 데이터 인코딩 장치는, 에러 정정 코드(Error Correction Code, 이하 ECC라고 약함) 블록 생성 유니트(100) 및 엑스트라 패리티(extra parity) ECC 블록 생성 유니트(110)를 포함한다.
ECC 블록 생성 유니트(100)는 유저 데이터에 대해 N개의 ECC 블록을 생성한다. 즉, 32KB(Bytes)의 ECC 블록을 생성할 경우에, ECC 블록 생성 유니트(100)는 32KB에 어드레스와 같은 부가 정보를 추가하고, EDC(Error Detection Code)를 부가한 뒤, 유저 데이터를 스크램블링(scrambling)하고, 에러 정정을 위한 패리티(parity)를 부가한 ECC블록을 N개 생성한다. 유저 데이터는 데이터 인코딩 장치가 저장 매체 구동 시스템(미 도시됨)에 적용되는 경우에 호스트(미 도시됨)로부터 수신되는 데이터일 수 있고, 상기 데이터 인코딩 장치가 데이터 통신 시스템에 적용되는 경우에 네트워크 또는 유무선 통신을 통해 수신되는 데이터일 수 있다.
엑스트라 패리티 ECC 블록 생성 유니트(110)는 생성된 N개의 ECC 블록에 대한 엑스트라 패리티 정보를 포함하는 적어도 하나의 엑스트라 패리티 ECC 블록을 생성한다.
즉, 엑스트라 패리티 ECC 블록 생성 유니트(110)는 도 2에 도시된 바와 같이 구성될 수 있다. 도 2는 도 1에 도시된 엑스트라 패리티 ECC 블록 생성 유니트(110)의 일 실시 예이다. 도 2를 참조하면, 엑스트라 패리티 ECC 생성 유니트(110)는 엑스트라 데이터 블록 생성부(201), 엑스트라 ECC 블록 생성부(202), 및 엑스트라 패리티 ECC 블록 생성부(203)를 포함한다.
엑스트라 데이터 블록 생성부(201)는 생성된 N개의 ECC 블록중에서 인접한 ECC 블록간의 유저 데이터 블록을 블록 인터리빙(block interleaving)하여 N개의 엑스트라 데이터 블록(extra data block)을 생성한다. 도 3을 참조하여 엑스트라 데이터 블록 생성부(201)의 동작을 좀더 상세하게 설명하면 다음과 같다.
도 3은 도 2에 도시된 실시 예 기반의 엑스트라 패리티 ECC 블록 생성 프로세스의 일 예이다. 도 3의 프로세스 1(300)에서 볼 수 있는 바와 같이 N개의 ECC 블록(ECC 블록 #1, ECC 블록 #2, ECC 블록 #3, ECC 블록 #4, ...)에 대해 프로세스 2(310)에서 엑스트라 데이터 블록 생성부(201)는 인접한 ECC 블록간의 유저 데이터 블록을 블록 인터리빙한다.
예를 들어, ECC 블록 #1과 ECC 블록 #2에 포함된 유저 데이터 블록(301, 302)을 블록 인터리빙한다. 블록 인터리빙은 적어도 하나의 행(row)단위로 수행된다. 따라서, 도 3에 도시된 m 행(rows)에서 m은 0보다 큰 정수이다. 블록 인터리빙에 의해 N개의 엑스트라 데이터 블록(311, 312, 313, 314, ...)이 생성된다. 생성된 N개의 엑스트라 데이터 블록(311, 312, 313, 314, ...)은 엑스트라 ECC 블록 생성부(202)로 전송된다.
엑스트라 ECC 블록 생성부(202)는 도 3의 프로세스 3(320)에서 상기 N개의 엑스트라 데이터 블록(311, 312, 313, 314, ...)에 엑스트라 패리티 정보(EXTRA PARITY PI1, PO1, PI2, PO3, PI3, PO3, PI4, PO4, ...)를 각각 부가하여 N개의 엑스트라 ECC 블록(321, 322, 323, 324, ...)을 생성한다.
엑스트라 패리티 ECC 블록 생성부(203)는 상기 N개의 엑스트라 ECC 블록(321, 322, 323, 324, ...)에 포함된 상기 엑스트라 패리티 정보(EXTRA PARITY PI1, PO1, PI2, PO3, PI3, PO3, PI4, PO4, ...)를 토대로 적어도 하나의 엑스트라 패리티 ECC 블록을 생성한다.
도 3을 참조하면, 엑스트라 패리티 ECC 블록 생성부(203)는 프로세스 4(330)에서 N개의 엑스트라 ECC블록(321, 322, 323, 324, ...)에 포함된 엑스트라 패리티 정보(EXTRA PARITY PI1, PO1, PI2, PO3, PI3, PO3, PI4, PO4, ...)와 패딩 데이 터(padding data)를 토대로 엑스트라 패리티 데이터 블록(331)을 생성하고, 프로세스 5(340)에서 생성된 엑스트라 패리티 데이터 블록(331), 패리티 정보(PI, PO)를 이용하여 엑스트라 패리티 ECC 블록(332)을 생성한다. 패딩 데이터가 추가된 것은 엑스트라 패리티 ECC 블록(332)의 포맷이 기존의 규격화된 ECC 블록 포맷과 동일한 블록 포맷을 갖도록 하기 위한 것이다. 엑스트라 패리티 ECC 블록(332)은 N개의 ECC 블록에 대한 엑스트라 패리티 ECC 블록이다.
도 4는 도 2에 도시된 실시 예 기반의 엑스트라 패리티 ECC 블록 생성 프로세스의 다른 일 예이다. 도 4를 참조하면, 프로세스 1(400)에서 볼 수 있는 바와 같은 N개의 ECC 블록(ECC 블록 #1, ECC 블록 #2, ECC 블록 #3, ECC 블록 #4, ...)에 대해 프로세스 2(410)에서 엑스트라 데이터 블록 생성부(201)는 인접한 ECC 블록간의 유저 데이터 블록을 블록 인터리빙한다.
예를 들어, ECC 블록 #1과 ECC 블록 #2에 포함된 유저 데이터 블록(401, 402)을 블록 인터리빙한다. 블록 인터리빙은 적어도 하나의 행(row)단위로 수행된다. 따라서, 도 4에 도시된 m 행(rows)에서 m은 0보다 큰 정수이다. 블록 인터리빙에 의해 N개의 엑스트라 데이터 블록(411, 412, 413, 414, ...)이 생성된다. 생성된 N개의 엑스트라 데이터 블록(411, 412, 413, 414, ...)은 엑스트라 ECC 블록 생성부(202)로 전송된다.
엑스트라 ECC 블록 생성부(202)는 도 4의 프로세스 3(420)에서 상기 N개의 엑스트라 데이터 블록(411, 412, 413, 414, ...)에 엑스트라 패리티 정보(EXTRA PARITY 1, 2, 3, 4,...)를 각각 부가하여 N개의 엑스트라 ECC 블록(421, 422, 423, 424, ...)을 생성한다.
엑스트라 패리티 ECC 블록 생성부(203)는 상기 N개의 엑스트라 ECC 블록(421, 422, 423, 424, ...)에 포함된 상기 엑스트라 패리티 정보(EXTRA PARITY 1, 2, 3, 4, ...)를 토대로 N개의 ECC블록에 대한 적어도 하나의 엑스트라 패리티 ECC 블록을 생성한다.
도 4를 참조하면, 엑스트라 패리티 ECC 블록 생성부(203)는 프로세스 4(430)에서 N개의 엑스트라 ECC블록(421, 422, 423, 424, ...)에 포함된 엑스트라 패리티 정보(EXTRA PARITY 1, 2, 3, 4, ...)와 패딩 데이터를 토대로 엑스트라 패리티 데이터 블록(431)을 생성하고, 프로세스 5(440)에서 생성된 엑스트라 패리티 데이터 블록(431)과 패리티 정보(PI, PO)를 이용하여 엑스트라 패리티 ECC 블록(432)을 생성한다. 패딩 데이터가 추가된 것은 엑스트라 패리티 ECC 블록(432)의 포맷이 기존의 ECC 블록 포맷과 동일한 블록 포맷을 갖도록 하기 위한 것이다. 엑스트라 패리티 ECC 블록(432)은 N개의 ECC블록에 대한 엑스트라 패리티 ECC 블록이다.
도 5는 도 1에 도시된 엑스트라 패리티 ECC 블록 생성 유니트(110)의 다른 실시 예이다. 도 5를 참조하면, 엑스트라 패리티 ECC 블록 생성 유니트(110)는 엑스트라 데이터 블록 생성부(501), 엑스트라 ECC 블록 생성부(502), 제 1 엑스트라 패리티 ECC 블록 생성부(503), 및 제 2 엑스트라 패리티 ECC 블록 생성부(504)를 포함한다.
엑스트라 데이터 블록 생성부(501)는 생성된 N개의 에러 정정 코드 블록중에서 인접한 에러 정정 코드 블록간의 유저 데이터 블록을 블록 인터리빙하여 N개의 엑스트라 데이터 블록을 생성한다. 엑스트라 데이터 블록 생성 과정은 도 2의 엑스트라 데이터 블록 생성부(201)에서 설명한 바와 같다.
엑스트라 ECC 블록 생성부(502)는 엑스트라 패리티 정보와 생성된 N개의 엑스트라 데이터 블록을 토대로 N개의 엑스트라 ECC 블록을 생성한다. N개의 엑스트라 ECC 블록 생성과정은 도 2의 엑스트라 ECC 블록 생성부(202)에서 설명한 바와 같다.
제 1 엑스트라 패리티 ECC 블록 생성부(503)는 생성된 N개의 엑스트라 ECC 블록에 포함된 엑스트라 패리티 정보를 토대로 적어도 N/2개의 제 1 엑스트라 패리티 ECC 블록을 생성한다. 도 6을 참조하여 좀더 상세하게 설명하면 다음과 같다. 도 6은 도 5에 도시된 실시 예 기반의 엑스트라 패리티 ECC 블록 생성 프로세스의 일 예이다.
도 6의 프로세스 4(630)에서 제 1 엑스트라 패리티 ECC 블록 생성부(503)는 엑스트라 ECC 블록에 포함된 엑스트라 패리티 정보들(EXTRA PARITY PI1, PO1, PI2, PO2, PI3, PO3, PI4, PO4, ...)과 패딩 데이터를 토대로 제 1 엑스트라 패리티 ECC블록용 N/2개의 엑스트라 패리티 데이터 블록들(631, 632, ...)을 생성한다. 프로세스 5(640)에서 제 1 엑스트라 패리티 ECC 블록 생성부(503)는 이너 엑스트라 패리티 정보(INNER EXTRA PI1, PO1, PI2, PO2, ...)를 이용하여 N/2개의 제 1 엑스트라 패리티 ECC 블록들(641, 642, ...)을 생성한다.
제 2 엑스트라 패리티 ECC 블록 생성부(504)는 도 6의 프로세스 6(650)에서 N/2개의 제 1 엑스트라 패리티 ECC 블록들(641, 642, ...)에 포함된 엑스트라 패리 티 정보들(Inner Extra PI1, PO1, PI2, PO2, ...)을 블록 인터리빙하여 적어도 하나의 제 2 엑스트라 패리티 ECC 블록용 엑스트라 패리티 데이터 블록(651)을 생성한다. 이 때 제 2 엑스트라 패리티 ECC 블록용 엑스트라 패리티 데이터 블록(651)은 패딩 데이터를 포함할 수 있다. 패딩 데이터가 포함되는 것은 제 2 엑스트라 패리티 ECC 블록의 포맷이 기존의 규격화된 ECC 블록의 포맷과 동일한 블록 포맷을 갖도록 하기 위한 것이다.
그 다음, 제 2 엑스트라 패리티 ECC 블록 생성부(504)는 생성된 제 2 엑스트라 패리티 ECC 블록용 엑스트라 패리티 데이터 블록(651)에 패리티 정보(PI, PO)를 부가하여 제 2 엑스트라 패리티 ECC 블록(661)을 생성한다. 생성된 제 2 엑스트라 패리티 ECC 블록(661)은 N개의 ECC 블록에 대한 엑스트라 패리티 ECC 블록이다.
도 7은 도 5에 도시된 실시 예 기반의 엑스트라 패리티 ECC 블록이 생성되는 프로세스의 다른 예로서, 도 4에 개시된 프로세스와 도 6에 개시된 2단계의 엑스트라 패리티 ECC 블록 생성 프로세스를 결합한 예이다.
따라서, 프로세스 1(700), 프로세스 2(710), 프로세스 3(720)은 도 4의 프로세스 1(400), 프로세스 2(410) 및 프로세스 3(420)과 같다. 도 7의 프로세스 4(730)에서 각 엑스트라 ECC 블록에 포함된 패리티 정보와 패딩 데이터를 이용하여 N/2개의 엑스트라 패리티 데이터 블록(731, 732, ...)을 생성한다. 그 다음 프로세스 5(740)에서 N/2패리티 정보와 N/2개의 엑스트라 패리티 데이터 블록(731, 732, ...)을 이용하여 N/2개의 제 1 엑스트라 패리티 ECC 블록(741, 742, ...)을 생성한다. 이는 도 5의 제 1 엑스트라 패리티 ECC 블록 생성부(503)에서 수행된다.
그 다음, 프로세스 6(750)에서 N/2개의 엑스트라 패리티 데이터 블록(731, 732, ...)에 포함되는 엑스트라 패리티 데이터 블록을 블록 인터리빙하여 제 2 엑스트라 데이터 블록(751)을 생성한다. 이 때, 제 2 엑스트라 데이터 블록(751)은 패딩 데이터를 포함할 수 있다. 패딩 데이터를 포함하는 이유는 상술한 바와 같은 이유이다. 생성된 제 2 엑스트라 데이터 블록(751)에 패리티 정보를 포함한 제 2 엑스트라 패리티 ECC 블록(761)을 생성한다. 이 때 생성된 제 2 엑스트라 패리티 ECC블록(761)은 도 6에서 언급한 바와 같이 N개의 ECC 블록에 대한 엑스트라 패리티 ECC 블록이다.
도 3 및 도 6에서의 엑스트라 패리티는 N쌍의 엑스트라 패리티로 구성되며 N개의 ECC 블록의 포맷이 RSPC 포맷이므로, RSPC 포맷에 따라 엑스트라 ECC 블록 및 엑스트라 패리티 ECC 블록을 생성한 예이다. 도 4 및 도 7은 N개의 ECC 블록의 포맷이 BD ECC 포맷이므로, BD ECC 포맷에 따라 엑스트라 ECC 블록 및 엑스트라 패리티 ECC 블록을 생성한 예이다. 패딩 데이터는 사전에 설정된 값을 이용하고, 다른 부가 정보로 대체될 수 있다. 다른 부가 정보는 엑스트라 ECC 블록 및 엑스트라 패리티 ECC 블록의 포맷이 N개의 ECC 블록의 포맷과 동일한 블록 포맷을 갖는 조건을 만족할 수 있는 임의의 정보이다.
도 8은 도 1에 도시된 엑스트라 패리티 ECC 블록 생성 유니트(110)의 또 다른 실시 예에다. 도 8을 참조하면, 엑스트라 패리티 ECC 블록 생성 유니트(110)는 엑스트라 데이터 블록 생성부(801), 엑스트라 ECC 블록 생성부(802), 엑스트라 패리티 데이터 블록 생성부(803), 및 엑스트라 패리티 ECC 블록 생성부(804)를 포함 한다.
엑스트라 데이터 블록 생성부(801)는 ECC블록 생성 유니트(100)로부터 제공되는 N개의 ECC 블록의 일부 데이터를 토대로 N개의 엑스트라 데이터 블록을 생성한다. 도 9를 참조하여 엑스트라 데이터 블록 생성부(801)의 동작을 좀더 상세하게 설명하면 다음과 같다.
도 9는 도 8의 실시 예 기반의 엑스트라 패리티 ECC 블록 생성 프로세스의 일 예로서, ECC 블록이 RSPC 포맷인 경우이다. 도 9의 프로세스 1(900)에서 볼 수 있는 바와 같이 N개의 ECC 블록(ECC 블록 #1 ∼ ECC 블록 #N)에 대해 엑스트라 데이터 블록 생성부(801)는 N개의 ECC 블록의 일부 데이터를 토대로 N개의 엑스트라 데이터 블록을 생성한다. 일부 데이터는 도 9에 도시된 바와 같이 각 ECC 블록의 PI(Parity Inner) 및 PO(Parity Outer) 패리티를 제외한 블록에 포함된 데이터 또는 도 9에는 도시되지 않았으나 PO 패리티를 제외한 블록에 포함된 데이터일 수 있다.
즉, 엑스트라 데이터 블록 생성부(801)는 도 9와 같이 182 열(colums)× 208 행(rows)으로 구성된 ECC 블록의 PI 및 PO 패리티를 제외한 172 열×192 행을 일부 데이터로 하여 짝수번째 행(0, 2, 4, ..., 190) 96개(172 열 × 96 행)를 엑스트라 데이터 블록으로 생성할 수 있다. 또는 엑스트라 데이터 블록 생성부(801)는 182열 ×208 행으로 구성된 ECC 블록의 PO 패리티를 제외한 182열×192행을 일부 데이터로 하여 짝수번째 행(0, 2, 4, ...190) 96개(182열 × 96 행)을 엑스트라 데이터 블록으로 생성할 수 있다. 상기 엑스트라 데이터 블록은 상기 일부 데이터중 홀수 번째 행을 토대로 결정되거나 일부 데이터에 포함된 데이터중 행단위로 3의 배수 또는 4의 배수와 같이 I배수를 토대로 결정되거나 복수의 행(또는 코드 워드)단위로 결정될 수 있다. 상기 I는 2이상의 정수이다.
엑스트라 데이터 블록 생성부(801)에서 172열 ×96행으로 구성된 N개의 엑스트라 데이터 블록이 생성되면, 엑스트라 ECC 블록 생성부(802)는 도 9의 프로세스 2(910)와 같이 N개의 엑스트라 데이터 블록에 엑스트라 패리티 정보를 각각 부가하여 N개의 엑스트라 ECC블록을 생성한다. 즉, 172 열×96 행으로 구성된 엑스트라 데이터 블록에 10바이트의 PI, 16바이트의 PO를 부가하여 182 열×112 행으로 구성된 엑스트라 ECC 블록을 생성한다. 또한, 엑스트라 데이터 블록 생성부(801)에서 182 열 × 96 행으로 구성된 N개의 엑스트라 데이터 블록이 생성되면, 엑스트라 ECC 블록 생성부(802)는 16바이트의 PO를 부가하여 182열×96행으로 구성된 N개의 엑스트라 ECC 블록을 생성할 수 있다.
상술한 바와 같이 엑스트라 ECC 블록을 생성할 때, 엑스트라 ECC 블록 생성부(802)는 생성되는 엑스트라 ECC 블록의 포맷이 ECC 블록의 포맷과 동일한 블록 포맷을 갖도록 도 9에 도시된 바와 같이 패딩 데이터(padding data)를 부가할 수 있다. 패딩 데이터는 사전에 정의된 값을 갖는다.
엑스트라 패리티 데이터 블록 생성부(803)는 엑스트라 ECC 블록 생성부(802)로부터 생성된 N개의 엑스트라 ECC 블록에 포함된 엑스트라 패리티 정보를 토대로 엑스트라 패리티 데이터 블록을 생성한다. 도 9는 N개의 엑스트라 ECC 블록에 포함된 엑스트라 패리티 PO를 프로세스 3(930)에서 인터리빙하여 엑스트라 패리티 데이 터 블록을 생성한 경우이다. 이 때, 생성된 엑스트라 패리티 데이터 블록의 포맷이 ECC 블록의 유저 데이터 블록과 동일한 포맷을 갖도록 엑스트라 패리티 데이터 블록 생성부(803)는 상기 인터리빙에 의해 얻어진 데이터에 패딩 데이터를 부가할 수 있다. 패딩 데이터는 사전에 정의된 값을 갖는다.
상기 인터리빙은 데이터 디코딩 퍼포먼스에 영향을 미치므로, N개의 엑스트라 ECC 블록의 엑스트라 패리티 정보가 고르게 분산되도록 수행된다. 즉, 상기 인터리빙은 엑스트라 패리티 정보에 대해 일정 길이를 가지는 데이터 M개당 하나의 데이터를 추출하도록 수행될 수 있고, M은 2보다 크거나 같은 정수이다, 상기 일정 길이는 동기 신호를 부여하는 단위에 해당하는 에러 정정 코드 블록내의 데이터 수 × K이고, 상기 K는 1보다 크거나 같은 정수이다. 즉, r열(columns)×s바이트로 구성된 엑스트라 패리티 정보에서 s바이트를 p열(columns)로 나누어 (r×p)열 ×s/p바이트로 구성 인터리빙이 수행될 수 있다. 예를 들어, r=182이고, s=16인 DVD의 경우에 p는 2로 설정될 수 있고, r=384이고, s=32인 BD의 경우에 p=2로 설정될 수 있다.
그리고, 상기 인터리빙에 의해 (r×p)열 ×s/p바이트로 구성된 엑스트라 패리티 N쌍으로부터 (r×p/k)열 ×1바이트를 교번적으로 추출하는 일정 길이를 가지는 단위를 토대로 한 인터리빙을 더 수행할 수 있다.
즉, 엑스트라 패리티 데이터 블록 생성부(803)는 N개의 엑스트라 ECC 블록에 포함된 엑스트라 패리티 정보에 대해 적어도 하나의 행 단위 또는 복수의 행단위 또는 182열×16바이트를 91열×16바이트와 같이 나누어 인터리빙을 수행하여 도 9 의 프로세스 4(940)에 도시된 바와 같이 N×16×182바이트의 엑스트라 패리티 데이터 블록을 생성한다.
엑스트라 패리티 데이터 블록 생성부(803)에서 엑스트라 패리티 데이터 블록이 생성되면, 엑스트라 패리티 에러 정정 코드 블록 생성부(804)는 도 9의 프로세스 4(940)에 도시된 바와 같이 엑스트라 패리티 데이터 블록에 패리티 정보를 부가하여 N개의 ECC블록에 대한 적어도 하나의 엑스트라 패리티 에러 정정 코드 블록을 생성한다.
또한, 도 8에 도시된 실시 예는 도 10에 도시된 바와 같이 N개의 ECC 블록에 대한 적어도 하나의 엑스트라 패리티 ECC블록을 생성하도록 동작할 수 있다. 도 10은 도 8에 도시된 실시 예 기반의 엑스트라 패리티 에러 정정 코드 블록 생성 프로세스의 일 예로서, ECC 블록이 BD ECC 블록 포맷을 갖는 경우이다.
즉, 도 8의 엑스트라 데이터 블록 생성부(801)는 도 10의 프로세스 1(1010)과 같이 N개의 ECC 블록의 전체 데이터를 토대로 N개의 엑스트라 데이터 블록을 생성한다. 도 10을 참조하면, 엑스트라 데이터 블록 생성부(801)는 304 열(columns)× 248 행(rows)으로 구성된 ECC 블록을 토대로 짝수번째 행(rows, 0, 2, 4, ..., 246) 124개로 구성된 304 열×124 행을 엑스트라 데이터 블록으로 생성한다.
엑스트라 ECC 블록 생성부(802)는 엑스트라 데이터 블록에 엑스트라 패리티를 부가하여 N개의 엑스트라 ECC 블록을 생성한다. 즉, 도 10을 참조하면, 304 열× 124 행으로 구성된 엑스트라 데이터 블록에 32바이트의 패리티를 부가하여 304 열×156 행으로 구성된 엑스트라 ECC 블록을 N개 생성한다.
엑스트라 패리티 데이터 블록 생성부(803)는 상기 생성된 N개의 엑스트라 ECC 블록에 포함된 엑스트라 패리티 정보를 토대로 엑스트라 패리티 데이터 블록을 생성한다. 즉, 엑스트라 패리티 데이터 블록 생성부(803)는 도 10의 프로세스 3(1030)에서 N개의 엑스트라 ECC 블록에 포함된 엑스트라 패리티 정보를 인터리빙하여 상기 엑스트라 패리티 데이터 블록을 생성한다. 상기 인터리빙은 상술한 도 9를 참조로 설명한 것과 같은 방식으로 수행될 수 있다.
엑스트라 패리티 ECC 블록 생성부(804)는 도 10의 프로세스 4(1040)에 도시된 바와 같이 엑스트라 패리티 데이터 블록에 패리티 정보를 부가하여 엑스트라 패리티 ECC 블록을 생성한다. 이 때 생성되는 엑스트라 패리티 ECC 블록의 포맷은 ECC 블록의 포맷과 동일한 포맷을 갖도록 도 10에 도시된 바와 같이 패딩 데이터가 부가될 수 있다.
도 11은 본 발명의 다른 실시 예에 따른 데이터 인코딩 방법의 동작 흐름도이다.
도 11을 참조하면, 상기 방법은 먼저, 유저 데이터에 대해 N개의 ECC 블록을 생성한다(1101). N개의 ECC 블록을 생성하는 방법은 도 1에서 설명한 바와 같다. N개의 ECC 블록에 대한 적어도 하나의 엑스트라 패리티 ECC 블록을 생성한다(1102). 도 12를 참조하여 엑스트라 패리티 ECC 블록 생성방법을 설명하면 다음과 같다.
도 12는 도 11에 도시된 엑스트라 패리티 ECC 블록 생성 단계의 상세 동작 흐름도의 일 예이다. 도 12를 참조하면, 생성된 N개의 ECC 블록중에서 인접한 ECC 블록간의 유저 데이터 블록을 블록 인터리빙하여 N개의 엑스트라 데이터 블록을 생 성한다(1201). 인접한 ECC블록은 도 3, 도 4, 도 6, 및 도 7에 도시된 바와 같이 가장 이웃한 ECC블록들이다. 블록 인터리빙은 적어도 하나의 행(rows)단위로 수행된다.
상기 방법은 엑스트라 패리티 정보와 생성된 N개의 엑스트라 데이터 블록을 토대로 N개의 엑스트라 ECC 블록을 생성한다(1202). 상기 엑스트라 패리티 정보는 N쌍의 엑스트라 패리티정보로 구성될 수 있다.
생성된 N개의 엑스트라 ECC 블록에 포함된 상기 엑스트라 패리티 정보를 토대로 상기 적어도 하나의 엑스트라 패리티 ECC 블록을 생성한다(1203). N개의 엑스트라 ECC 블록, 엑스트라 패리티 ECC 블록은 상기 ECC 블록과 동일한 블록 포맷을 갖는다.
한편, 도 12의 동작 흐름도는 도 9 및 도 10에 도시된 바와 같은 방식으로 N개의 ECC 블록에 대한 적어도 하나의 엑스트라 패리티 ECC 블록을 생성할 수 있다. 즉, 제 1201 단계에서 N개의 ECC 블록의 일부 또는 전체 데이터를 토대로 도 8에서 설명한 바와 같이 N개의 엑스트라 데이터 블록을 생성한다. 제 1202 단계에서 N개의 엑스트라 데이터 블록에 엑스트라 패리티 정보를 각각 부가하여 N개의 엑스트라 ECC 블록을 생성한다. 제 1203 단계에서 N개의 엑스트라 ECC 블록에 포함된 엑스트라 패리티 정보를 인터리빙하여 엑스트라 패리티 데이터 블록을 생성하고, 생성된 엑스트라 패리티 데이터 블록에 패리티 정보를 부가하여 적어도 하나의 엑스트라 패리티 ECC 블록을 생성한다.
도 13은 도 11에 도시된 엑스트라 패리티 ECC 블록 생성 단계의 상세 동작 흐름도의 다른 예이다. 도 13을 참조하면, 생성된 N개의 에러 정정 코드 블록중에서 인접한 에러 정정 코드 블록간의 유저 데이터 블록을 블록 인터리빙하여 N개의 엑스트라 데이터 블록을 생성한다(1301). 엑스트라 패리티 정보와 생성된 N개의 엑스트라 데이터 블록을 토대로 N개의 엑스트라 ECC 블록을 생성한다(1302).
생성된 N개의 엑스트라 ECC 블록에 포함된 엑스트라 패리티 정보를 토대로 적어도 N/2개의 제 1 엑스트라 패리티 ECC 블록을 생성한다(1303).
N/2개의 제 1 엑스트라 패리티 ECC 블록에 포함된 엑스트라 패리티 정보를 블록 인터리빙하여 적어도 하나의 제 2 엑스트라 패리티 ECC 블록을 생성한다(1304).
생성된 제 2 엑스트라 패리티 ECC 블록을 적어도 하나의 엑스트라 패리티 ECC 블록으로서 생성한다(1004).
도 14는 본 발명의 또 다른 실시 예에 따른 저장 매체 구동 시스템의 기능 블록도이다. 도 14를 참조하면, 상기 저장 매체 구동 시스템은 도 1에 도시된 바와 같이 구성된 데이터 인코딩 유니트(1401), 및 저장 매체(1402)를 포함한다.
데이터 인코딩 유니트(1401)는 유저 데이터에 대해 N개의 ECC 블록을 생성하고, N개의 ECC 블록에 대한 적어도 하나의 엑스트라 패리티 ECC 블록을 생성한다.
저장 매체(1402)는 데이터 인코딩 유니트(1401)로부터 생성된 N개의 ECC 블록과 엑스트라 패리티 ECC 블록을 저장한다. 저장 매체(1103)는 하드디스크, DVD(Digital Versatile Disc), HD-DVD(High Definition-DVD), 블루레이(Blu-ray) 디스크와 같은 저장 매체로 구성된다.
만약 도 14의 저장 매체 구동 시스템이 호스트(미 도시됨)와 연결된 디스크 구동기이면, 저장 매체 구동 시스템은 호스트(미 도시됨)로부터의 데이터 기록 요구에 따라 구동되어 저장 매체(1402)에 N개의 ECC 블록과 엑스트라 패리티 ECC 블록을 기록할 수 있다. 이 때, 저장 매체 구동 시스템은 자체적으로 엑스트라 패리티 ECC 블록을 생성할 수도 있으나, 호스트(미 도시됨)와 연동하여 호스트(미 도시됨)에 의해 엑스트라 패리티 ECC 블록을 생성하고, 이를 수신하여 저장 매체(1403)에 기록되도록 변경할 수 있다.
도 15는 본 발명의 또 다른 실시 예에 따른 데이터 디코딩 장치의 기능 블록도이다. 도 15를 참조하면, 데이터 디코딩 장치는, 엑스트라 ECC 블록 생성 유니트(1501), 에러 정정 유니트(1502), 및 업데이트 유니트(1503)를 포함한다.
엑스트라 ECC 블록 생성 유니트(1501)는 엑스트라 패리티 ECC 블록에서 엑스트라 패리티 데이터 블록을 검출한다. 검출 방식은 상술한 엑스트라 패리티 데이터 블록에 패리티 정보를 부가할 때 사용된 정보를 이용한다. 즉, 엑스트라 패리티 데이터 블록에 패리티 정보를 부가할 때, 이용된 위치 정보 등이 사용된 정보일 수 있다.
엑스트라 ECC 블록 생성 유니트(1501)는 검출된 엑스트라 패리티 데이터 블록과 N개의 ECC 블록 각각의 유저 데이터 블록을 토대로 N개의 엑스트라 ECC 블록을 생성한다. N개의 엑스트라 ECC 블록 생성은 도 3, 도 4, 도 6, 도 7, 도 9, 및 도 10에 도시된 바와 같은 방식의 역으로 수행된다. 특히, 도 9 및 10과 같은 경우에 검출된 엑스트라 패리티 데이터 블록을 디 인터리빙하여 N개의 엑스트라 ECC 블 록을 구성할 엑스트라 패리티 정보를 검출할 수 있다.
에러 정정 유니트(1502)는 N개의 엑스트라 ECC 블록을 에러 정정한다.
업데이트 유니트(1503)는 에러 정정된 N개의 엑스트라 ECC 블록에 포함되어 있는 엑스트라 데이터 블록을 토대로 에러 정정이 실패한 ECC 블록에 포함되는 유저 데이터 블록을 업데이트한다.
도 16은 도 15에 도시된 엑스트라 ECC 블록 생성 유니트(1501)의 상세 기능 블록도의 일 예이다. 도 16을 참조하면, 엑스트라 ECC 블록 생성 유니트(1501)는 엑스트라 데이터 블록 생성기(1601) 및 엑스트라 ECC블록 생성기(1602)를 포함한다.
엑스트라 데이터 블록 생성기(1601)는 N개의 ECC 블록의 유저 데이터 블록을 토대로 인접한 ECC 블록간의 사용자 데이터 블록을 블록 인터리빙하여 N개의 엑스트라 데이터 블록을 생성한다. 그러나 엑스트라 데이터 블록 생성기(1601)는 N개의 ECC 블록의 일부 데이터 또는 전체 데이터를 토대로 N개의 엑스트라 데이터 블록을 생성하도록 구현할 수 있다.
엑스트라 ECC 블록 생성기(1602)는 N개의 엑스트라 데이터 블록에 엑스트라 패리티 정보를 부가하여 상기 N개의 엑스트라 ECC 블록을 생성한다.
도 17은 본 발명의 또 다른 실시 예에 따른 데이터 디코딩 장치의 기능 블록도이다. 도 17을 참조하면, 데이터 디코딩 장치는 엑스트라 패리티 데이터 블록 검출 유니트(1701), 엑스트라 ECC 블록 생성 유니트(1702), 에러 정정 유니트(1703), 및 업데이트 유니트(1704)를 포함한다.
엑스트라 패리티 데이터 블록 검출 유니트(1701)는 입력된 엑스트라 패리티 ECC 블록으로부터 엑스트라 패리티 데이터 블록을 검출한다. 검출방식은 도 15의 엑스트라 ECC 블록 생성 유니트(1501)에서 설명한 바와 같이 검출할 수 있다.
엑스트라 ECC 블록 생성 유니트(1702) 도 15에서 설명한 바와 같이 검출된 엑스트라 패리티 데이트 블록과 N개의 ECC 블록의 유저 데이터 또는 일부 데이터 또는 전체 데이터를 토대로 N개의 엑스트라 ECC 블록을 생성한다.
에러 정정 유니트(1703) 및 업데이트 유니트(1704)는 도 15의 에러 정정 유니트(1502) 및 업데이트 유니트(1503)와 동일하게 구성 및 동작한다.
도 15 및 도 17에 도시된 데이터 디코딩 장치가 저장 매체 구동 시스템에 적용되는 경우에, 엑스트라 패리티 ECC 블록과 N개의 ECC 블록은 저장 매체로부터 읽은 정보이고, 업데이트된 ECC 블록은 재생되는 데이터이다. 도 15 및 도 17에 도시된 데이터 디코딩 장치가 네트워크 또는 유무선 통신에 적용되는 경우에도 엑스트라 패리티 ECC 블록과 N개의 ECC 블록은 수신기측으로부터 전송되는 데이터이고, 업데이트된 ECC 블록은 재생되는 데이터이다.
도 18는 본 발명의 또 다른 실시 예에 따른 데이터 디코딩 방법의 동작 흐름도이다. 도 18을 참조하면, 상기 방법은 먼저 엑스트라 패리티 ECC 블록에서 엑스트라 패리티 데이터 블록을 검출한다(1801).
N개의 ECC 블록 각각의 유저 데이터 블록과 상기 엑스트라 패리티 데이터 블록을 토대로 N개의 엑스트라 ECC 블록을 생성한다(1802). 이 때, 도 9 또는 도 10과 같이 엑스트라 패리티 데이터 블록이 생성된 경우에, 검출된 엑스트라 패리티 데이터 블록은 디인터리빙되어 N개의 엑스트라 ECC 블록에 엑스트라 패리티 정보로서 부가된다.
그 다음, N개의 엑스트라 ECC 블록을 에러 정정한다(1803). 상기 에러 정정된 N개의 엑스트라 ECC 블록에 포함되어 있는 엑스트라 데이터 블록을 토대로 에러 정정이 실패한 ECC 블록의 유저 데이터 블록을 업데이트한다(1804).
유저 데이터 블록이 업데이트된 ECC 블록을 다시 에러 정정한다(1805).
도 19는 도 18에 도시된 엑스트라 ECC 블록 생성 단계의 상세 동작 흐름도이다. 도 19를 참조하면, 먼저 N개의 ECC 블록중에서 인접한 ECC 블록간의 사용자 데이터 블록을 블록 인터리빙하여 N개의 엑스트라 데이터 블록을 생성한다(1901). N개의 엑스트라 데이터 블록과 상기 엑스트라 패리티 데이터 블록을 토대로 상기 N개의 엑스트라 ECC 블록을 생성한다(1902).
도 20은 본 발명의 또 다른 실시 예에 따른 저장 매체 구동 시스템의 기능 블록도이다. 도 20을 참조하면, 저장 매체 구동 시스템은, 저장 매체(2001), ECC 블록 복원 유니트(2002), 및 ECC 블록 에러 정정 유니트(2003)를 포함한다.
저장 매체(2001)는 적어도 N개의 ECC 블록과 N개의 ECC 블록에 대응되는 적어도 하나의 엑스트라 패리티 ECC 블록을 저장한다. 저장 매체(2001)는 도 14의 저장 매체(1402)와 동일한 저장 매체일 수 있다.
ECC 블록 복원 유니트(2002)는 저장 매체(2001)로부터 리드된 N개의 ECC 블록과 그에 대응되는 적어도 하나의 엑스트라 패리티 ECC 블록을 토대로 에러 정정이 실패한 ECC 블록을 복원한다. ECC 블록의 복원은 상술한 데이터 디코딩 방법에 서 엑스트라 패리티 ECC블록으로부터 엑스트라 패리티 데이터 블록을 검출하는 과정부터 ECC 블록의 유저 데이터 블록이 업데이트 되는 과정까지와 동일하게 수행된다. 따라서, ECC블록 복원 유니트(200)는 도 15 또는 도 17과 같이 구성될 수 있다.
에러 정정이 실패한 ECC 블록 복원 시, 저장 매체(2001)에서 해당되는 ECC 블록과 해당되는 엑스트라 패리티 데이터 블록을 포함한 엑스트라 패리티 ECC 블록의 위치에 대한 정보는 기록시 사용된 정보를 사용한다. 즉, 도 14에서와 같은 저장 매체 구동 시스템에서 ECC블록과 엑스트라 패리티 ECC 블록을 저장 매체(1402)에 기록할 때, PSN 몇 번지부터 PSN 몇 번지까지 기록된 ECC 블록에 대한 엑스트라 패리티 ECC블록은 PSN 몇 번지부터 PSN 몇 번지까지 기록된다는 상호간의 약속에 따른다. 따라서, ECC 블록 복원시, 상기 기록시 사용된 약속에 따라 저장 매체(2001)로부터 에러 정정이 실패한 ECC에 상응하는 엑스트라 패리티 ECC 블록을 읽을 수 있다.
ECC 블록 에러 정정 유니트(2003)는 저장매체(2001)로부터 리드된 ECC 블록과 ECC 블록 복원 유니트(2002)로부터 전송되는 ECC 블록중 하나의 ECC 블록을 에러 정정한다. 즉, ECC 블록 에러 정정 유니트(2003)는 저장 매체(2001)로부터 전송되는 ECC 블록을 정정하여 에러가 정정된 데이터를 출력한다. 이 때, ECC 블록의 에러 정정이 실패하면, ECC 블록 에러 정정 유니트(2003)는 ECC 블록 복원 유니트(2002)로 해당되는 ECC 블록에 대한 복원을 요구한다. 이에 따라 ECC 블록 복원 유니트(2002)는 구동하여 해당되는 ECC블록과 그에 인접한 ECC블록 및 엑스트라 패 리티 ECC 블록을 이용하여 해당되는 ECC블록의 유저 데이터 블록을 업데이트하여 에러 정정이 실패한 ECC 블록을 복원한다.
도 20에 도시된 ECC 블록 복원 유니트(2002)와 ECC 블록 에러 정정 유니트(2003)는 데이터 디코딩 유니트(2004)로 정의될 수 있다. 데이터 디코딩 유니트(2004)는 본 발명에 따른 데이터 디코딩 장치를 포함한다.
본원 발명에 따른 데이터 인코딩 및 디코딩 방법과 엑스트라 패리티 ECC 블록 생성 방법을 수행하기 위한 프로그램은 컴퓨터로 읽을 수 있는 저장 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 저장 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 저장 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 저장 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드로서 저장되고 실행될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
본 발명에 의하면, 데이터 인코딩 시, 기존의 규격화된 ECC 블록과 상기 ECC블록의 포맷과 호환성을 갖는 엑스트라 패리티 ECC 블록을 생성하고, 데이터 디코딩 시 엑스트라 패리티 ECC 블록을 이용하여 에러 정정이 실패한 ECC 블록의 유저 데이터 블록을 복원하여 에러 정정을 수행함으로써, ECC블록을 기반으로 에러 정정을 수행하는 저장 매체 구동 시스템이나 데이터 통신 시스템에 있어서 재생되는 데이터에 대한 에러 정정 실패율을 최소화하여 재생되는 데이터의 신뢰성을 향상시킬 수 있다.
예를 들어, DVD RSPC(Reed Solomon Product Code)의 경우에 정정 가능한 버스트 에러의 길이가 약 16행이나 본 발명을 적용할 경우에 약 2배에 달하는 32행의 에러가 발생하더라도 해당되는 ECC 블록에 포함되는 유저 데이터 블록을 복원하여 에러 정정을 수행함으로써, 저장 매체 구동 시스템에서 재생되는 데이터에 대한 에러 정정 실패율을 최소화하여 재생되는 데이터의 신뢰성을 향상시킬 수 있다.

Claims (51)

  1. 삭제
  2. 데이터 인코딩 방법에 있어서,
    유저 데이터에 대해 N개의 에러 정정 코드 블록을 생성하고, 상기 에러 정정 코드 블록은 패리티(PI(Parity Inner), PO(Parity Outer)) 정보를 포함하는 단계;
    상기 N개의 에러 정정 코드 블록에 대한 하나 이상의 엑스트라 패리티 에러 정정 코드 블록을 생성하는 단계를 포함하고,
    상기 엑스트라 패리티 에러 정정 코드 블록 생성 단계는,
    상기 N개의 에러 정정 코드 블록중에서 인접한 에러 정정 코드 블록간의 유저 데이터 블록을 블록 인터리빙하여 N개의 엑스트라 데이터 블록을 생성하는 단계;
    상기 N개의 엑스트라 데이터 블록에 엑스트라 패리티 정보를 각각 부가하여 N개의 엑스트라 에러 정정 코드 블록을 생성하는 단계; 및
    상기 N개의 엑스트라 에러 정정 코드 블록에 포함된 엑스트라 패리티 정보를 토대로 상기 하나 이상의 엑스트라 패리티 에러 정정 코드 블록을 생성하는 단계를 포함하는 데이터 인코딩 방법.
  3. 제 2 항에 있어서, 상기 엑스트라 패리티 정보는 N쌍의 엑스트라 패리티정보로 구성되는 것을 특징으로 하는 데이터 인코딩 방법.
  4. 제 2 항 또는 제 3 항에 있어서, 상기 N개의 엑스트라 데이터 블록 생성 단계는, 행(rows)단위로 상기 블록 인터리빙을 수행하는 것을 특징으로 하는 데이터 인코딩 방법.
  5. 제 2 항 또는 제 3 항에 있어서, 상기 N개의 엑스트라 에러 정정 코드 블록, 상기 엑스트라 패리티 에러 정정 코드 블록은 상기 에러 정정 코드 블록과 동일한 블록 포맷을 갖는 것을 특징으로 하는 데이터 인코딩 방법.
  6. 데이터 인코딩 방법에 있어서,
    유저 데이터에 대해 N개의 에러 정정 코드 블록을 생성하고, 상기 에러 정정 코드 블록은 패리티(PI(Parity Inner), PO(Parity Outer)) 정보를 포함하는 단계;
    상기 N개의 에러 정정 코드 블록에 대한 하나 이상의 엑스트라 패리티 에러 정정 코드 블록을 생성하는 단계를 포함하고,
    상기 엑스트라 패리티 에러 정정 코드 블록 생성 단계는,
    상기 N개의 에러 정정 코드 블록중에서 인접한 에러 정정 코드 블록간의 유저 데이터 블록을 블록 인터리빙하여 N개의 엑스트라 데이터 블록을 생성하는 단계;
    상기 N개의 엑스트라 데이터 블록에 엑스트라 패리티 정보를 각각 부가하여 N개의 엑스트라 에러 정정 코드 블록을 생성하는 단계; 및
    상기 N개의 엑스트라 에러 정정 코드 블록에 포함된 엑스트라 패리티 정보를 토대로 N/2개의 제 1 엑스트라 패리티 에러 정정 코드 블록을 생성하는 단계;
    상기 N/2개의 제 1 엑스트라 패리티 에러 정정 코드 블록에 포함된 엑스트라 패리티 정보를 블록 인터리빙하여 하나 이상의 제 2 엑스트라 패리티 에러 정정 코드 블록을 생성하는 단계; 및
    상기 하나 이상의 제 2 엑스트라 패리티 에러 정정 코드 블록을 상기 하나 이상의 엑스트라 패리티 에러 정정 코드 블록으로서 생성하는 단계를 포함하는 데이터 인코딩 방법.
  7. 제 6 항에 있어서, 상기 엑스트라 패리티 정보는 N쌍의 엑스트라 패리티정보로 구성되는 것을 특징으로 하는 데이터 인코딩 방법.
  8. 제 6 항 또는 제 7 항에 있어서, 상기 N개의 엑스트라 데이터 블록 생성 단계는, 하나 이상의 행(rows)단위로 상기 블록 인터리빙을 수행하는 것을 특징으로 하는 데이터 인코딩 방법.
  9. 제 6 항 또는 제 7 항에 있어서, 상기 N개의 엑스트라 에러 정정 코드 블록, 상기 엑스트라 패리티 에러 정정 코드 블록은 상기 에러 정정 코드 블록과 동일한 블록 포맷을 갖는 것을 특징으로 하는 데이터 인코딩 방법.
  10. 데이터 인코딩 방법에 있어서,
    유저 데이터에 대해 N개의 에러 정정 코드 블록을 생성하고, 상기 에러 정정 코드 블록은 패리티(PI(Parity Inner), PO(Parity Outer)) 정보를 포함하는 단계;
    상기 N개의 에러 정정 코드 블록에 대한 하나 이상의 엑스트라 패리티 에러 정정 코드 블록을 생성하는 단계를 포함하고,
    상기 엑스트라 패리티 에러 정정 코드 블록 생성 단계는,
    상기 N개의 에러 정정 코드 블록의 유저 데이터 블록에 포함된 데이터를 토대로 N개의 엑스트라 데이터 블록을 생성하는 단계;
    상기 N개의 엑스트라 데이터 블록에 엑스트라 패리티 정보를 각각 부가하여 N개의 엑스트라 에러 정정 코드 블록을 생성하는 단계; 및
    상기 N개의 엑스트라 에러 정정 코드 블록에 포함된 엑스트라 패리티 정보를 토대로 상기 하나 이상의 엑스트라 패리티 에러 정정 코드 블록을 생성하는 단계를 포함하는 데이터 인코딩 방법.
  11. 제 10 항에 있어서, 상기 하나 이상의 엑스트라 패리티 에러 정정 코드 블록 생성 단계는,
    상기 N개의 엑스트라 에러 정정 코드 블록에 포함된 엑스트라 패리티 정보를 인터리빙하여 엑스트라 패리티 데이터 블록을 생성하는 단계; 및
    상기 엑스트라 패리티 데이터 블록에 패리티 정보를 부가하여 상기 하나 이상의 엑스트라 패리티 에러 정정 코드 블록을 생성하는 단계를 포함하는 데이터 인코딩 방법.
  12. 제 11 항에 있어서, 상기 인터리빙은 상기 엑스트라 패리티 정보에 대해 일정 길이를 가지는 데이터 M개당 하나의 데이터를 추출하도록 수행되는 것을 특징으로 하고, 상기 M은 2보다 크거나 같은 정수인 것을 특징으로 하는 데이터 인코딩 방법.
  13. 제 10 항에 있어서, 상기 N개의 엑스트라 에러 정정 코드 블록, 상기 엑스트라 패리티 에러 정정 코드 블록은 상기 에러 정정 코드 블록과 동일한 블록 포맷을 갖는 것을 특징으로 하는 데이터 인코딩 방법.
  14. 삭제
  15. 데이터 인코딩 방법에 있어서,
    유저 데이터에 대해 N개의 에러 정정 코드 블록을 생성하고, 상기 에러 정정 코드 블록은 패리티(PI(Parity Inner), PO(Parity Outer)) 정보를 포함하는 단계;
    상기 N개의 에러 정정 코드 블록에 대한 하나 이상의 엑스트라 패리티 에러 정정 코드 블록을 생성하는 단계를 포함하고,
    상기 엑스트라 패리티 에러 정정 코드 블록 생성 단계는,
    상기 N개의 에러 정정 코드 블록의 전체 데이터를 토대로 N개의 엑스트라 데이터 블록을 생성하는 단계;
    상기 N개의 엑스트라 데이터 블록에 엑스트라 패리티 정보를 각각 부가하여 N개의 엑스트라 에러 정정 코드 블록을 생성하는 단계; 및
    상기 N개의 엑스트라 에러 정정 코드 블록에 포함된 엑스트라 패리티 정보를 토대로 상기 하나 이상의 엑스트라 패리티 에러 정정 코드 블록을 생성하는 단계를 포함하는 데이터 인코딩 방법.
  16. 제 15 항에 있어서, 상기 하나 이상의 엑스트라 패리티 에러 정정 코드 블록 생성 단계는,
    상기 N개의 엑스트라 에러 정정 코드 블록에 포함된 엑스트라 패리티 정보를 인터리빙하여 엑스트라 패리티 데이터 블록을 생성하는 단계; 및
    상기 엑스트라 패리티 데이터 블록에 패리티 정보를 부가하여 상기 엑스트라 패리티 에러 정정 코드 블록을 생성하는 단계를 포함하는 데이터 인코딩 방법.
  17. 제 16 항에 있어서, 상기 인터리빙은 상기 엑스트라 패리티 정보에 대해 일정 길이를 가지는 데이터 M개당 하나의 데이터를 추출하도록 수행되는 것을 특징으로 하고, 상기 M은 2보다 크거나 같은 정수인 것을 특징으로 하는 데이터 인코딩 방법.
  18. 제 15 항에 있어서, 상기 N개의 엑스트라 에러 정정 코드 블록, 상기 엑스트라 패리티 에러 정정 코드 블록은 상기 에러 정정 코드 블록과 동일한 블록 포맷을 갖는 것을 특징으로 하는 데이터 인코딩 방법.
  19. 제 17 항에 있어서, 상기 일정 길이는 동기 신호를 부여하는 단위에 해당하는 에러 정정 코드 블록내의 데이터 수 × K인 것을 특징으로 하고, 상기 K은 1보다 크거나 같은 정수인 것을 특징으로 하는 데이터 인코딩 방법.
  20. 제 16 항에 있어서, 상기 N개의 엑스트라 데이터 블록은 사전에 정의된 값을 갖는 패딩 데이터를 포함하는 것을 특징으로 하는 데이터 인코딩 방법.
  21. 제 16 항에 있어서, 상기 엑스트라 패리티 데이터 블록은 사전에 정의된 값을 갖는 패딩 데이터를 포함하는 것을 특징으로 하는 데이터 인코딩 방법.
  22. 엑스트라 패리티 에러 정정 코드 블록 생성 방법에 있어서,
    패리티(PI(Parity Inner), PO(Parity Outer)) 정보를 포함하는 N개의 에러 정정 코드 블록을 이용하여 N개의 엑스트라 데이터 블록을 생성하는 단계;
    상기 N개의 엑스트라 데이터 블록에 엑스트라 패리티 정보를 각각 부가하여 N개의 엑스트라 에러 정정 코드 블록을 생성하는 단계; 및
    상기 N개의 엑스트라 에러 정정 코드 블록에 포함된 엑스트라 패리티 정보를 토대로 상기 N개의 에러 정정 코드 블록에 대응되는 하나 이상의 엑스트라 패리티 에러 정정 코드 블록을 생성하는 단계를 포함하는 엑스트라 패리티 에러 정정 코드 블록 생성 방법.
  23. 제 22 항에 있어서, 상기 엑스트라 데이터 블록 생성 단계는, 상기 N개의 에러 정정 코드 블록중에서 인접한 에러 정정 코드 블록간의 유저 데이터 블록을 블록 인터리빙하여 상기 N개의 엑스트라 데이터 블록을 생성하는 것을 특징으로 하는 엑스트라 패리티 에러 정정 코드 블록 생성 방법.
  24. 제 23 항에 있어서, 상기 하나 이상의 엑스트라 패리티 에러 정정 코드 블록 생성 단계는,
    상기 N개의 엑스트라 에러 정정 코드 블록에 포함된 엑스트라 패리티 정보를 토대로 N/2개의 제 1 엑스트라 패리티 에러 정정 코드 블록을 생성하는 단계;
    상기 N/2개의 제 1 엑스트라 패리티 에러 정정 코드 블록에 포함된 엑스트라 패리티 정보를 블록 인터리빙하여 하나 이상의 제 2 엑스트라 패리티 에러 정정 코드 블록을 생성하는 단계; 및
    상기 하나 이상의 제 2 엑스트라 패리티 에러 정정 코드 블록을 상기 하나 이상의 엑스트라 패리티 에러 정정 코드 블록으로서 생성하는 단계를 포함하는 엑스트라 패리티 에러 정정 코드 블록 생성 방법.
  25. 제 22 항에 있어서, 상기 엑스트라 데이터 블록 생성 단계는,
    상기 N개의 에러 정정 코드 블록의 유저 데이터 블록에 포함된 데이터 또는 전체 데이터를 토대로 상기 N개의 엑스트라 데이터 블록을 생성하는 것을 특징으로 하는 엑스트라 패리티 에러 정정 코드 블록 생성 방법.
  26. 제 25 항에 있어서, 상기 하나 이상의 엑스트라 패리티 에러 정정 코드 블록 생성 단계는,
    상기 N개의 엑스트라 에러 정정 코드 블록에 포함된 엑스트라 패리티 정보를 인터리빙하여 엑스트라 패리티 데이터 블록을 생성하는 단계;
    상기 엑스트라 패리티 데이터 블록에 패리티 정보를 부가하여 상기 하나 이상의 엑스트라 패리티 에러 정정 코드 블록을 생성하는 단계를 포함하는 엑스트라 패리티 에러 정정 코드 블록 생성 방법.
  27. 삭제
  28. 데이터 인코딩 장치는,
    유저 데이터에 대해 N개의 에러 정정 코드 블록을 생성하고, 상기 에러 정정 코드 블록은 패리티(PI(Parity Inner), PO(Parity Outer)) 정보를 포함하는 에러 정정 코드 블록 생성 유니트; 및
    상기 N개의 에러 정정 코드 블록에 대한 하나 이상의 엑스트라 패리티 에러 정정 코드 블록을 생성하는 엑스트라 패리티 에러 정정 코드 블록 생성 유니트를 포함하고,
    상기 엑스트라 패리티 에러 정정 코드 블록 생성유니트는,
    상기 N개의 에러 정정 코드 블록중에서 인접한 에러 정정 코드 블록간의 유저 데이터 블록을 블록 인터리빙하여 N개의 엑스트라 데이터 블록을 생성하는 엑스트라 데이터 블록 생성부;
    상기 N개의 엑스트라 데이터 블록에 엑스트라 패리티 정보를 각각 부가하여 N개의 엑스트라 에러 정정 코드 블록을 생성하는 엑스트라 에러 정정 코드 블록 생성부; 및
    상기 생성된 N개의 엑스트라 에러 정정 코드 블록에 포함된 상기 엑스트라 패리티 정보를 토대로 상기 하나 이상의 엑스트라 패리티 에러 정정 코드 블록을 생성하는 엑스트라 패리티 에러 정정 코드 블록 생성부를 포함하는 데이터 인코딩 장치.
  29. 데이터 인코딩 장치는,
    유저 데이터에 대해 N개의 에러 정정 코드 블록을 생성하고, 상기 에러 정정 코드 블록은 패리티(PI(Parity Inner), PO(Parity Outer)) 정보를 포함하는 에러 정정 코드 블록 생성 유니트; 및
    상기 N개의 에러 정정 코드 블록에 대한 하나 이상의 엑스트라 패리티 에러 정정 코드 블록을 생성하는 엑스트라 패리티 에러 정정 코드 블록 생성 유니트를 포함하고,
    상기 엑스트라 패리티 에러 정정 코드 블록 생성 유니트는,
    상기 N개의 에러 정정 코드 블록중에서 인접한 에러 정정 코드 블록간의 유저 데이터 블록을 블록 인터리빙하여 N개의 엑스트라 데이터 블록을 생성하는 엑스트라 데이터 블록 생성부;
    상기 N개의 엑스트라 데이터 블록에 엑스트라 패리티 정보를 각각 부가하여 N개의 엑스트라 에러 정정 코드 블록을 생성하는 엑스트라 에러 정정 코드 블록 생성부; 및
    상기 N개의 엑스트라 에러 정정 코드 블록에 포함된 엑스트라 패리티 정보를 토대로 N/2개의 제 1 엑스트라 패리티 에러 정정 코드 블록을 생성하는 제 1 엑스트라 패리티 에러 정정 코드 블록 생성부; 및
    상기 N/2개의 제 1 엑스트라 패리티 에러 정정 코드 블록에 포함된 엑스트라 패리티 정보를 블록 인터리빙하여 하나 이상의 제 2 엑스트라 패리티 에러 정정 코드 블록을 상기 하나 이상의 엑스트라 패리티 에러 정정 코드 블록으로서 생성하는 제 2 엑스트라 패리티 에러 정정 코드 블록 생성부를 포함하는 데이터 인코딩 장치.
  30. 제 29 항에 있어서, 상기 엑스트라 데이터 블록 생성 부는 행(rows)단위로 상기 블록 인터리빙을 수행하는 것을 특징으로 하는 것을 특징으로 하는 데이터 인코딩 장치.
  31. 제 29 항에 있어서, 상기 N개의 엑스트라 에러 정정 코드 블록, 상기 엑스트라 패리티 에러 정정 코드 블록은 상기 에러 정정 코드 블록과 동일한 블록 포맷을 갖는 것을 특징으로 하는 데이터 인코딩 장치.
  32. 데이터 인코딩 장치는,
    유저 데이터에 대해 N개의 에러 정정 코드 블록을 생성하고, 상기 에러 정정 코드 블록은 패리티(PI(Parity Inner), PO(Parity Outer)) 정보를 포함하는 에러 정정 코드 블록 생성 유니트; 및
    상기 N개의 에러 정정 코드 블록에 대한 하나 이상의 엑스트라 패리티 에러 정정 코드 블록을 생성하는 엑스트라 패리티 에러 정정 코드 블록 생성 유니트를 포함하고,
    상기 엑스트라 패리티 에러 정정 코드 블록 생성 유니트는,
    상기 N개의 에러 정정 코드 블록의 유저 데이터 블록에 포함된 데이터를 토대로 N개의 엑스트라 데이터 블록을 생성하는 엑스트라 데이터 블록 생성부;
    상기 N개의 엑스트라 데이터 블록에 엑스트라 패리티 정보를 각각 부가하여 N개의 엑스트라 에러 정정 코드 블록을 생성하는 엑스트라 에러 정정 코드 블록 생성부;
    상기 N개의 엑스트라 에러 정정 코드 블록에 포함된 엑스트라 패리티 정보를 토대로 하나 이상의 엑스트라 패리티 데이터 블록을 생성하는 엑스트라 패리티 데이터 블록 생성부; 및
    상기 생성된 엑스트라 패리티 데이터 블록에 패리티 정보를 부가하여 상기 하나 이상의 엑스트라 패리티 에러 정정 코드 블록을 생성하는 엑스트라 패리티 에러 정정 코드 블록 생성부를 포함하는 데이터 인코딩 장치.
  33. 데이터 인코딩 장치는,
    유저 데이터에 대해 N개의 에러 정정 코드 블록을 생성하고, 상기 에러 정정 코드 블록은 패리티(PI(Parity Inner), PO(Parity Outer)) 정보를 포함하는 에러 정정 코드 블록 생성 유니트; 및
    상기 N개의 에러 정정 코드 블록에 대한 하나 이상의 엑스트라 패리티 에러 정정 코드 블록을 생성하는 엑스트라 패리티 에러 정정 코드 블록 생성 유니트를 포함하고,
    상기 엑스트라 패리티 에러 정정 코드 블록 생성 유니트는,
    상기 N개의 에러 정정 코드 블록의 전체 데이터를 토대로 N개의 엑스트라 데이터 블록을 생성하는 엑스트라 데이터 블록 생성부;
    상기 N개의 엑스트라 데이터 블록에 엑스트라 패리티 정보를 각각 부가하여 N개의 엑스트라 에러 정정 코드 블록을 생성하는 엑스트라 에러 정정 코드 블록 생성부;
    상기 N개의 엑스트라 에러 정정 코드 블록에 포함된 엑스트라 패리티 정보를 토대로 하나 이상의 엑스트라 패리티 데이터 블록을 생성하는 엑스트라 패리티 데이터 블록 생성부; 및
    상기 엑스트라 패리티 데이터 블록에 패리티 정보를 부가하여 상기 하나 이상의 엑스트라 패리티 에러 정정 코드 블록을 생성하는 엑스트라 패리티 에러 정정 코드 블록 생성부를 포함하는 데이터 인코딩 장치.
  34. 제 33 항에 있어서,
    상기 엑스트라 패리티 데이터 블록 생성부는 상기 N개의 엑스트라 에러 정정 코드 블록에 포함된 엑스트라 패리티 정보를 인터리빙하여 상기 엑스트라 패리티 데이터 블록을 생성하는 것을 특징으로 하는 데이터 인코딩 장치.
  35. 제 34 항에 있어서, 상기 N개의 엑스트라 에러 정정 코드 블록, 상기 엑스트라 패리티 에러 정정 코드 블록은 상기 에러 정정 코드 블록과 동일한 블록 포맷을 갖는 것을 특징으로 하는 데이터 인코딩 장치.
  36. 저장 매체 구동 시스템에 있어서,
    유저 데이터에 대해 N개의 에러 정정 코드 블록을 생성하고, 상기 N개의 에러 정정 코드 블록에 대한 하나 이상의 엑스트라 패리티 에러 정정 코드 블록을 생성하는 데이터 인코딩 유니트; 및
    상기 데이터 인코딩 유니트에서 생성된 상기 N개의 에러 정정 코드 블록과 상기 하나 이상의 엑스트라 패리티 에러 정정 코드 블록을 저장하는 저장 매체를 포함하고,
    상기 데이터 인코딩 유니트에서 생성되는 에러 정정 코드 블록은 패리티(PI(Parity Inner), PO(Parity Outer)) 정보를 포함하고,
    상기 엑스트라 패리티 에러 정정 코드 블록은 상기 N개의 에러 정정 코드 블록중에서 인접한 에러 정정 코드 블록간의 유저 데이터 블록을 블록 인터리빙하여 N개의 엑스트라 데이터 블록을 생성하고,
    상기 N개의 엑스트라 데이터 블록에 엑스트라 패리티 정보를 각각 부가하여 N개의 엑스트라 에러 정정 코드 블록을 생성하고,
    상기 N개의 엑스트라 에러 정정 코드 블록에 포함된 엑스트라 패리티 정보에 기초하여 생성되는 것을 특징으로 하는 저장 매체 구동 시스템.
  37. 데이터 디코딩 방법에 있어서,
    엑스트라 패리티 에러 정정 코드 블록에 포함된 엑스트라 패리티 데이터 블록과 N개의 에러 정정 코드 블록의 유저 데이터 블록을 이용하여 N개의 엑스트라 에러 정정 코드 블록을 생성하는 단계;
    상기 N개의 엑스트라 에러 정정 코드 블록을 에러 정정하는 단계;
    상기 에러 정정된 N개의 엑스트라 에러 정정 코드 블록에 포함되어 있는 엑스트라 데이터 블록을 토대로 에러 정정 코드 블록의 유저 데이터 블록을 업데이트 하는 단계; 및
    상기 유저 데이터 블록이 업데이트된 에러 정정 코드 블록을 에러 정정하는 단계를 포함하고,
    상기 N개의 에러 정정 코드 블록은 패리티(PI(Parity Inner), PO(Parity Outer)) 정보를 포함하고,
    상기 엑스트라 패리티 에러 정정 코드 블록은 상기 N개의 에러 정정 코드 블록중에서 인접한 에러 정정 코드 블록간의 유저 데이터 블록을 블록 인터리빙하여 N개의 엑스트라 데이터 블록을 생성하고,
    상기 N개의 엑스트라 데이터 블록에 엑스트라 패리티 정보를 각각 부가하여 N개의 엑스트라 에러 정정 코드 블록을 생성하고,
    상기 N개의 엑스트라 에러 정정 코드 블록에 포함된 엑스트라 패리티 정보에 기초하여 생성되는 것을 특징으로 하는 데이터 디코딩 방법.
  38. 제 37 항에 있어서, 상기 N개의 엑스트라 에러 정정 코드 블록 생성 단계는,
    상기 N개의 에러 정정 코드 블록중에서 인접한 에러 정정 코드 블록간의 유저 데이터 블록을 블록 인터리빙하여 N개의 엑스트라 데이터 블록을 생성하는 단계;
    상기 N개의 엑스트라 데이터 블록과 상기 엑스트라 패리티 데이터 블록을 토대로 상기 N개의 엑스트라 에러 정정 코드 블록을 생성하는 단계를 포함하는 데이터 디코딩 방법.
  39. 제 38 항에 있어서, 상기 유저 데이터 블록이 업데이트되는 에러 정정 코드 블록은 에러 정정이 실패한 에러 정정 코드 블록인 것을 특징으로 하는 데이터 디코딩 방법.
  40. 제 37 항에 있어서, 상기 N개의 엑스트라 에러 정정 코드 블록 생성 단계는,
    상기 N개의 에러 정정 코드 블록중에서 유저 데이터 블록에 포함된 데이터 또는 전체 데이터를 토대로 N개의 엑스트라 데이터 블록을 생성하는 단계;
    상기 N개의 엑스트라 데이터 블록과 상기 엑스트라 패리티 데이터 블록을 토대로 상기 N개의 엑스트라 에러 정정 코드 블록을 생성하는 단계를 포함하는 것을 특징으로 하는 데이터 디코딩 방법.
  41. 제 40 항에 있어서, 상기 N개의 엑스트라 에러 정정 코드 블록 생성 단계는 상기 엑스트라 패리티 데이터 블록을 디인터리빙하여 상기 N개의 엑스트라 에러 정정 코드 블록을 생성하는 것을 특징으로 하는 데이터 디코딩 방법.
  42. 데이터 디코딩 장치에 있어서,
    엑스트라 패리티 에러 정정 코드 블록의 엑스트라 패리티 데이터 블록과 N개의 에러 정정 코드 블록 각각의 유저 데이터 블록을 토대로 N개의 엑스트라 에러 정정 코드 블록을 생성하는 엑스트라 에러 정정 코드 블록 생성 유니트;
    상기 N개의 엑스트라 에러 정정 코드 블록을 에러 정정하는 에러 정정 유니트; 및
    상기 에러 정정된 N개의 엑스트라 에러 정정 코드 블록에 포함되어 있는 엑스트라 데이터 블록을 토대로 에러 정정 코드 블록의 유저 데이터 블록을 업데이트하는 업데이트 유니트를 포함하고,
    상기 N개의 에러 정정 코드 블록은 패리티(PI(Parity Inner), PO(Parity Outer)) 정보를 포함하고,
    상기 엑스트라 패리티 에러 정정 코드 블록은 상기 N개의 에러 정정 코드 블록중에서 인접한 에러 정정 코드 블록간의 유저 데이터 블록을 블록 인터리빙하여 N개의 엑스트라 데이터 블록을 생성하고,
    상기 N개의 엑스트라 데이터 블록에 엑스트라 패리티 정보를 각각 부가하여 N개의 엑스트라 에러 정정 코드 블록을 생성하고,
    상기 N개의 엑스트라 에러 정정 코드 블록에 포함된 엑스트라 패리티 정보에 기초하여 생성되는 것을 특징으로 하는 데이터 디코딩 장치.
  43. 제 42 항에 있어서, 상기 엑스트라 에러 정정 코드 블록 생성 유니트는,
    상기 N개의 에러 정정 코드 블록의 유저 데이터 블록을 토대로 인접한 에러 정정 코드 블록간의 유저 데이터 블록을 블록 인터리빙하여 N개의 엑스트라 데이터 블록을 생성하는 엑스트라 데이터 블록 생성기;
    상기 N개의 엑스트라 데이터 블록에 상기 엑스트라 패리티 데이터 블록에 포함된 엑스트라 패리티 정보를 부가하여 상기 N개의 엑스트라 에러 정정 코드 블록을 생성하는 엑스트라 에러 정정 코드 블록 생성기를 포함하는 데이터 디코딩 장치.
  44. 제 42 항에 있어서, 상기 엑스트라 에러 정정 코드 블록 생성 유니트는,
    상기 N개의 에러 정정 코드 블록의 유저 데이터 블록에 포함된 데이터 또는 전체 데이터를 토대로 N개의 엑스트라 데이터 블록을 생성하는 엑스트라 데이터 블록 생성기;
    상기 N개의 엑스트라 데이터 블록에 상기 엑스트라 패리티 데이터 블록에 포함된 엑스트라 패리티 정보를 부가하여 상기 N개의 엑스트라 에러 정정 코드 블록을 생성하는 엑스트라 에러 정정 코드 블록 생성기를 포함하는 데이터 디코딩 장치.
  45. 제 43 항 또는 제 44 항에 있어서, 상기 유저 데이터 블록이 업데이트된 에러 정정 코드 블록은 에러 정정이 실패한 에러 정정 코드 블록인 것을 특징으로 하는 데이터 디코딩 장치.
  46. 저장 매체 구동 시스템에 있어서,
    N개의 에러 정정 코드 블록과 상기 N개의 에러 정정 코드 블록에 대응되는 하나 이상의 엑스트라 패리티 에러 정정 코드 블록을 저장하는 저장 매체;
    상기 저장 매체로부터 리드된 에러 정정 코드 블록과 엑스트라 패리티 에러 정정 코드 블록을 토대로 에러 정정 코드 블록을 복원하는 에러 정정 코드 블록 복원 유니트; 및
    상기 저장 매체와 상기 에러 정정 코드 블록 복원 유니트중 하나로부터 전송되는 에러 정정 코드 블록을 정정하는 에러 정정 코드 블록 정정 유니트를 포함하고,
    상기 N개의 에러 정정 코드 블록은 패리티(PI(Parity Inner), PO(Parity Outer)) 정보를 포함하고,
    상기 엑스트라 패리티 에러 정정 코드 블록은 상기 N개의 에러 정정 코드 블록중에서 인접한 에러 정정 코드 블록간의 유저 데이터 블록을 블록 인터리빙하여 N개의 엑스트라 데이터 블록을 생성하고,
    상기 N개의 엑스트라 데이터 블록에 엑스트라 패리티 정보를 각각 부가하여 N개의 엑스트라 에러 정정 코드 블록을 생성하고,
    상기 N개의 엑스트라 에러 정정 코드 블록에 포함된 엑스트라 패리티 정보에 기초하여 생성되는 것을 특징으로 하는 저장 매체 구동 시스템.
  47. 제 46 항에 있어서,
    상기 에러 정정 코드 블록 복원 유니트는,
    상기 N개의 에러 정정 코드 블록의 유저 데이터 블록과 상기 하나 이상의 엑스트라 패리티 에러 정정 코드 블록의 엑스트라 패리티 데이터 블록을 토대로 N개의 엑스트라 에러 정정 코드 블록을 생성하고,
    상기 생성된 N개의 엑스트라 에러 정정 코드 블록의 엑스트라 데이터 블록을 토대로 상기 에러 정정 코드 블록의 유저 데이터 블록을 업데이트 하여 상기 에러 정정 코드 블록을 복원하는 것을 특징으로 하는 저장 매체 구동 시스템.
  48. 제 46 항 또는 제 47 항에 있어서, 상기 복원되는 에러 정정 코드 블록은 에러 정정이 실패한 에러 정정 코드 블록인 것을 특징으로 하고,
    에러 정정이 실패한 에러 정정 코드 블록이 발생되면, 상기 에러 정정 코드 블록 복원 유니트는 동작하는 것을 특징으로 하는 저장 매체 구동 시스템.
  49. 컴퓨터 판독이 가능한 저장 매체에 있어서,
    N개의 에러 정정 코드 블록; 및
    상기 N개의 에러 정정 코드 블록을 복원하기 위한 하나 이상의 엑스트라 패리티 에러 정정 코드 블록을 포함하고,
    상기 에러 정정 코드 블록은 패리티(PI(Parity Inner), PO(Parity Outer)) 정보를 포함하고,
    상기 엑스트라 패리티 에러 정정 코드 블록은
    상기 N개의 에러 정정 코드 블록중에서 인접한 에러 정정 코드 블록간의 유저 데이터 블록을 블록 인터리빙하여 N개의 엑스트라 데이터 블록을 생성하고,
    상기 N개의 엑스트라 데이터 블록에 엑스트라 패리티 정보를 각각 부가하여 N개의 엑스트라 에러 정정 코드 블록을 생성하고,
    상기 N개의 엑스트라 에러 정정 코드 블록에 포함된 엑스트라 패리티 정보에 기초하여 생성되는 것을 특징으로 하는 저장 매체.
  50. 삭제
  51. 삭제
KR1020060064014A 2006-04-03 2006-07-07 데이터 인코딩 및 디코딩 방법과 그 장치, 저장 매체, 및저장 매체 구동 시스템 KR101300810B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US11/641,859 US8037389B2 (en) 2006-04-03 2006-12-20 Method and apparatus to data encode and decode, storage medium having recorded thereon program to implement the method, and system to drive the storage medium
PCT/KR2007/001167 WO2007114564A1 (en) 2006-04-03 2007-03-09 Method and apparatus to data encode and decode, storage medium having recorded thereon program to implement the method, and system to drive the storage medium
EP07715564.6A EP2002439A4 (en) 2006-04-03 2007-03-09 METHOD AND DEVICE FOR DATA CODING AND DECODING, STORAGE MEDIUM WITH A RECORDED PROGRAM FOR IMPLEMENTING THE PROCESS AND SYSTEM FOR OPERATING THE STORAGE MEDIUM
JP2009504110A JP5108000B2 (ja) 2006-04-03 2007-03-09 データエンコーディング及びデコーディングの方法並びに装置、その方法を具現するためのプログラムが記録された記録媒体、及び記録媒体駆動システム
CN2007800080752A CN101395670B (zh) 2006-04-03 2007-03-09 用于数据编码和解码的方法和设备、以及驱动存储介质的系统

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20060030268 2006-04-03
KR1020060030268 2006-04-03

Publications (2)

Publication Number Publication Date
KR20070099387A KR20070099387A (ko) 2007-10-09
KR101300810B1 true KR101300810B1 (ko) 2013-08-26

Family

ID=38804842

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060064014A KR101300810B1 (ko) 2006-04-03 2006-07-07 데이터 인코딩 및 디코딩 방법과 그 장치, 저장 매체, 및저장 매체 구동 시스템

Country Status (6)

Country Link
US (1) US8037389B2 (ko)
EP (1) EP2002439A4 (ko)
JP (1) JP5108000B2 (ko)
KR (1) KR101300810B1 (ko)
CN (1) CN101395670B (ko)
WO (1) WO2007114564A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101254185B1 (ko) * 2006-08-03 2013-04-18 삼성전자주식회사 엑스트라 ecc가 적용된 정보 저장 매체에 데이터를기록하거나 상기 매체로부터 데이터를 재생하는 장치 및방법
KR101254186B1 (ko) * 2006-08-10 2013-04-18 삼성전자주식회사 엑스트라 ecc가 적용된 정보 저장 매체 운용 방법, 정보저장 매체 및 그 장치
US8055982B2 (en) * 2007-02-21 2011-11-08 Sigmatel, Inc. Error correction system and method
JP2010218590A (ja) * 2009-03-13 2010-09-30 Hitachi Ltd 情報の記録媒体、記録方法、記録装置、再生方法及び再生装置
US9817749B2 (en) * 2013-12-04 2017-11-14 Sandisk Technologies Llc Apparatus and method of offloading processing from a data storage device to a host device
US9772900B2 (en) * 2014-07-10 2017-09-26 Samsung Electronics Co., Ltd. Tiered ECC single-chip and double-chip Chipkill scheme
US10284230B2 (en) * 2016-11-15 2019-05-07 Western Digital Technologies, Inc. Linked storage system and host system error correcting code

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002237140A (ja) * 2001-02-07 2002-08-23 Toshiba Corp 情報記録媒体、情報記録装置、情報記録方法、情報再生装置、及び情報再生方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4916701A (en) * 1988-09-21 1990-04-10 International Business Machines Corporation Method and system for correcting long bursts of consecutive errors
US5206864A (en) * 1990-12-04 1993-04-27 Motorola Inc. Concatenated coding method and apparatus with errors and erasures decoding
US5384788A (en) * 1992-10-26 1995-01-24 Dell Usa, L.P. Apparatus and method for optimal error correcting code to parity conversion
KR100611954B1 (ko) 1999-07-08 2006-08-11 삼성전자주식회사 고밀도 디스크를 위한 에러 정정방법
US7095729B2 (en) * 2000-12-22 2006-08-22 Intel Corporation Method for multimedia communication over packet channels
ATE408931T1 (de) * 2002-04-05 2008-10-15 Koninkl Philips Electronics Nv Verfahren und vorrichtung zur einbettung einer zusätzlichen schicht der fehlerkorrektur in einen fehlerkorrekturcode
EP1403870A1 (en) 2002-09-27 2004-03-31 Deutsche Thomson-Brandt Gmbh Method and apparatus for recording a data stream on a storage medium
JP2004146014A (ja) * 2002-10-28 2004-05-20 Hitachi Ltd データ符号化復号化方法及び装置
US7339873B2 (en) 2003-07-07 2008-03-04 Sony Corporation Data recording/reproducing apparatus, data recording/reproducing method, program, and recording medium
US20050028067A1 (en) * 2003-07-31 2005-02-03 Weirauch Charles R. Data with multiple sets of error correction codes
US20050149819A1 (en) * 2003-12-15 2005-07-07 Daewoo Electronics Corporation Three-dimensional error correction method
JP2005317147A (ja) 2004-04-30 2005-11-10 Toshiba Corp 記録媒体処理装置
US7530003B2 (en) * 2005-02-17 2009-05-05 Hitachi Global Storage Technologies Netherlands B.V. Permuting MTR code with ECC without need for second MTR code
US7340665B2 (en) * 2005-06-28 2008-03-04 Seagate Technology Llc Shared redundancy in error correcting code
JP4662278B2 (ja) * 2006-04-28 2011-03-30 富士通株式会社 エラー訂正装置、符号器、復号器、方法及び情報記憶装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002237140A (ja) * 2001-02-07 2002-08-23 Toshiba Corp 情報記録媒体、情報記録装置、情報記録方法、情報再生装置、及び情報再生方法

Also Published As

Publication number Publication date
JP2009532818A (ja) 2009-09-10
CN101395670B (zh) 2012-04-04
JP5108000B2 (ja) 2012-12-26
KR20070099387A (ko) 2007-10-09
US20070245215A1 (en) 2007-10-18
EP2002439A1 (en) 2008-12-17
EP2002439A4 (en) 2014-01-01
US8037389B2 (en) 2011-10-11
CN101395670A (zh) 2009-03-25
WO2007114564A1 (en) 2007-10-11

Similar Documents

Publication Publication Date Title
KR100772393B1 (ko) 에러 정정 블록, 에러 정정 블록의 생성 방법 및 장치,에러 정정 방법
KR101300810B1 (ko) 데이터 인코딩 및 디코딩 방법과 그 장치, 저장 매체, 및저장 매체 구동 시스템
US7137045B2 (en) Decoding method and apparatus therefor
KR100482939B1 (ko) 오류 정정 부호를 이용한 데이터 처리 방법 및 그 방법을이용한 장치
US7188295B2 (en) Method and apparatus for embedding an additional layer of error correction into an error correcting code
US7975207B2 (en) Apparatus and method for recording data in information recording medium to which extra ECC is applied or reproducing data from the medium
JP2001067813A (ja) 高密度ディスクのためのエラー訂正方法
JP2006517048A (ja) エラー訂正ブロックをエンコーディング及びデコーディングする方法
US20080134004A1 (en) Recording and/or reproducing apparatus and method
US7263650B2 (en) Error correction extending over multiple sectors of data storage
JP4141964B2 (ja) エラー訂正コードに追加のエラー訂正レイヤを埋め込む方法及び装置
JP4294407B2 (ja) 信号処理方法及び信号処理回路
JP3711106B2 (ja) データ処理装置及びデータ処理方法
KR100469572B1 (ko) 광디스크 장치에서의 충격 감지 장치 및 방법
JP5142045B2 (ja) ディスクアレイ装置
JP2000306342A (ja) 誤り訂正符号化装置
JPS63298776A (ja) エラ−訂正処理方式
KR20040067102A (ko) 고밀도 광디스크의 에러정정 블록 엔코딩 및 디코딩 방법
JP2004310824A (ja) 誤り訂正方法、誤り訂正回路、および情報再生装置
KR20040067103A (ko) 고밀도 광디스크의 에러정정 블록 엔코딩 및 디코딩 방법
JPH056629A (ja) データ記録方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160728

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190514

Year of fee payment: 6

R401 Registration of restoration