KR20090100346A - Reverse concatenation for product codes - Google Patents

Reverse concatenation for product codes Download PDF

Info

Publication number
KR20090100346A
KR20090100346A KR1020097012034A KR20097012034A KR20090100346A KR 20090100346 A KR20090100346 A KR 20090100346A KR 1020097012034 A KR1020097012034 A KR 1020097012034A KR 20097012034 A KR20097012034 A KR 20097012034A KR 20090100346 A KR20090100346 A KR 20090100346A
Authority
KR
South Korea
Prior art keywords
data array
data
array
modulation
row
Prior art date
Application number
KR1020097012034A
Other languages
Korean (ko)
Other versions
KR101120780B1 (en
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
Priority claimed from US11/690,619 external-priority patent/US7877662B2/en
Priority claimed from US11/690,635 external-priority patent/US7873894B2/en
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20090100346A publication Critical patent/KR20090100346A/en
Application granted granted Critical
Publication of KR101120780B1 publication Critical patent/KR101120780B1/en

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
    • 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
    • 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/14Digital recording or reproducing using self-clocking codes
    • G11B20/1403Digital recording or reproducing using self-clocking codes characterised by the use of two levels
    • G11B20/1423Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code
    • G11B20/1426Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code conversion to or from block codes or representations thereof
    • 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/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1803Error detection or correction; Testing, e.g. of drop-outs by redundancy in data representation
    • 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/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/2707Simple row-column interleaver, i.e. pure block 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/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/275Interleaver wherein the permutation pattern is obtained using a congruential operation of the type y=ax+b modulo c
    • 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/2792Interleaver wherein interleaving is performed jointly with another technique such as puncturing, multiplexing or routing
    • 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/47Error detection, forward error correction or error protection, not provided for in groups H03M13/01 - H03M13/37
    • H03M13/53Codes using Fibonacci numbers series
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/6343Error control coding in combination with techniques for partial response channels, e.g. recording
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M5/00Conversion of the form of the representation of individual digits
    • H03M5/02Conversion to or from representation by pulses
    • H03M5/04Conversion to or from representation by pulses the pulses having two levels
    • H03M5/14Code representation, e.g. transition, for a given bit cell depending on the information in one or more adjacent bit cells, e.g. delay modulation code, double density code
    • H03M5/145Conversion to or from block codes or representations thereof
    • 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
    • G11B2020/1264Formatting, e.g. arrangement of data block or words on the record carriers wherein the formatting concerns a specific kind of data
    • G11B2020/1265Control data, system data or management information, i.e. data used to access or process user data
    • G11B2020/1287Synchronisation pattern, e.g. VCO fields
    • 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/14Digital recording or reproducing using self-clocking codes
    • G11B20/1403Digital recording or reproducing using self-clocking codes characterised by the use of two levels
    • G11B20/1423Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code
    • G11B20/1426Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code conversion to or from block codes or representations thereof
    • G11B2020/144616 to 17 modulation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • G11B2020/1836Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information using a Reed Solomon [RS] code
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/90Tape-like record carriers

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

A system, method and computer program product are provided to encode data for recording onto media whereby modulation and linear constraints from a concatenated code or product code are imposed. A first array of unencoded user data is generated. Each row is modulation encoded to enforce a first modulation constraint; the array is transformed into a second array which is transformed into a third array having predetermined empty locations in each column interleaved with the modulated data. A C2-parity byte is computed for at least some of the empty locations of the third array and a fourth array is generated. C1-parity symbols in each row are computed, generating a fifth array. A second modulation constraint is enforced on each C1-parity symbol in each row of the fifth array, generating a sixth array. The rows of the sixth array are assembled with header and sync fields for recording onto a recording media.

Description

기록 쓰기 경로를 위한 리버스 연결 인코딩 시스템과 매체 상에 기록하기 위한 데이터를 인코딩하는 방법과 컴퓨터 프로그램 제품{REVERSE CONCATENATION FOR PRODUCT CODES}REVERSE CONCATENATION FOR PRODUCT CODES} A reverse connection encoding system for write and write paths, and methods for encoding data for recording on media.

본 발명은 일반적으로 기록 매체에 기록될 데이터를 인코딩하는 것에 관한 것으로, 특히 제품 코드에 대한 리버스 연결 코딩(reverse concatenation coding)에 관한 것이다.BACKGROUND OF THE INVENTION The present invention relates generally to encoding data to be recorded on a recording medium, and more particularly to reverse concatenation coding for product codes.

소거가능한 매체를 사용하며 전형적으로 대용량 데이터를 기록하는 데이터 저장 시스템, 가령 테이프 드라이브 및 광 디스크는 강력한 에러 보정 코드(ECC)에 의존한다. 테이프 드라이브 및 CD 장치는 강력하고 그리고 복잡성 측면에서 유효한 ECC를 사용하며 이는 외부 C2 코드 및 내부 C1 코드의 코드 연결에 기반을 두고 있다. 리니어 테이프 오픈 3세대(LTO-3) 표준에서 규정되는 제품 코드는 연결 코딩 체계의 특정 인스탄스이며, 여기서 내부 및 외부 코드들은 표 1에서 제공되는 바와 같이 각각 길이 480 및 64를 갖는 RS 계 코드들이다.Data storage systems, such as tape drives and optical discs, that use removable media and typically write large amounts of data, rely on strong error correction codes (ECC). Tape drives and CD devices use powerful and complex ECCs that are based on the code concatenation of external C2 code and internal C1 code. The product code defined in the Linear Tape Open Third Generation (LTO-3) standard is a specific instance of the concatenated coding scheme, where the internal and external codes are RS based codes having lengths of 480 and 64, respectively, as provided in Table 1 .

Figure 112009035244292-PCT00001
Figure 112009035244292-PCT00001

서브데이터 세트는 64×480의 바이트 어레이이며, 즉 서브데이터 세트는 54×468=25,272 데이터 바이트를 갖는 30,720 바이트를 포함하여, 0.8227의 코드 레이트를 생성한다. 각각의 480-바이트 행은 코드워드 쌍을 포함한다. 특히, 외부 C2 코드는 갈로이스 필드(Galois field) GF(256)를 통한 [N2=64, K2=54, d2=11] RS 코드이며, N2는 코드의 길이를 나타내며, K2는 코드의 치수를 나타내며, d2는 코드의 최소 해밍 거리를 나타낸다. 내부 C1 코드는 GF(256)를 통한 [240,234,7] 리드 솔로몬(RS) 코드의 우수/기수 인터리빙에 의해 획득된다.The subdata set is a 64x480 byte array, i.e., the subdata set contains 30,720 bytes with 54x468 = 25,272 data bytes, producing a code rate of 0.8227. Each 480-byte row contains a codeword pair. In particular, the outer C2 code is the [N 2 = 64, K 2 = 54, d 2 = 11] RS code through the Galois field GF 256, where N 2 represents the length of the code, K 2 Denotes the dimension of the cord and d 2 denotes the minimum hamming distance of the cord. The internal C1 code is obtained by even / odd interleaving of the [240,234,7] Reed Solomon (RS) code through the GF 256.

자기 및 광학 기록시, 변조 코드는 실질적인 성능 손실 없이 재판독 신호로부터 타이밍 복구를 가능하게 하며 검출기 내의 단거리 경로 기억을 가능하게 하는 데 사용된다. 따라서, 매체 상에 ECC 인코딩된 데이터를 쓰기 전의 쓰기 경로(write path)에서, ECC 인코딩된 데이터는 변조 인코더를 통해 전달된다. 도 1을 참조하면, 사용자 데이터가 먼저 ECC(102)에 의해 인코딩되며 다음에 16/17 런랭쓰 제한(run length limited: RLL) 인코더와 같은 변조 인코더(104)를 통해 전달되는 방법은 포워드 연결(FC) 아키텍처(100)로 알려져 있다. ECC 성능을 개선하기 위해, 인터리빙 및 트랙 할당 블럭으로 표시된, LTO-3 쓰기 경로 내의 길다란 블럭의 인터리버(106)가 존재한다. 이러한 블럭(106)은 64개의 연속하는 제품의 서브데이터 세트를 버퍼링하며 이를 통해 전체 64×64=4096 행을 축적한다. 이러한 4096 행은 사전정의된 순서로 자기 테이프의 16개 트랙(108)에 할당된다. 각각의 트랙에 대해 레이트 16/17 변조 인코더가 존재하며, 이 인코더는 할당된 행을 인코딩하며 사전결정된 변조 제한, 즉 글로벌 G=13과 인터리빙된 I=11 제약을 보장한다.In magnetic and optical recording, the modulation code is used to enable timing recovery from the reread signal without substantial loss of performance and to enable short path storage in the detector. Thus, in the write path prior to writing the ECC encoded data on the medium, the ECC encoded data is transferred through the modulation encoder. With reference to FIG. 1, user data is first encoded by ECC 102 and then passed through a modulation encoder 104 such as a 16/17 run length limited (RLL) encoder. FC) architecture 100 is known. To improve ECC performance, there is an interleaver 106 of elongated blocks in the LTO-3 write path, denoted by interleaving and track allocation blocks. This block 106 buffers a subdata set of 64 consecutive products, thereby accumulating a total of 64 × 64 = 4096 rows. These 4096 rows are assigned to sixteen tracks 108 of magnetic tape in a predefined order. For each track there is a rate 16/17 modulation encoder, which encodes the assigned row and guarantees a predetermined modulation limit, i.e., an interleaved I = 11 constraint.

최근, 리버스 연결(RC) 아키텍처는 하드디스크 드라이브(HDD) 산업에서 그 관심이 증대되어 왔다. 도 2는 그러한 아키텍처(200)의 블럭도이다. RC 아키텍처(200)에서, ECC 인코더 및 변조 인코더의 순서는 역전되어, 데이터가 먼저 변조 인코더(202)를 통해 전달되고 변조된 데이터가 에러 보정 코드를 위한 계통적인 인코더(204)를 사용하여 ECC 인코딩된다. ECC 패리티 심볼은 도시된 바와 같이 제 2 변조 인코더(206)를 사용하여 인코딩되거나 그것은 비트 레벨 또는 심볼 레벨에서 데이터 심볼 스트림 내로 삽입된다. 전체 패리티 심볼을 데이터 심볼 스트림 내로 삽입하는 것은 부분적인 심볼 인터리빙으로 지칭된다. 패리티 삽입 전략은 에러 없는 전달과 함께 간단한 체계를 발생시키지만, 그러한 전략은 원래의 변조 제약을 약화시킬 수 있다. 그럼에도 불구하고, RC를 매력적으로 만드는 세 개의 주요 이점이 다음과 같이 존재한다.Recently, the reverse connection (RC) architecture has increased its interest in the hard disk drive (HDD) industry. 2 is a block diagram of such an architecture 200. In RC architecture 200, the order of the ECC encoder and modulation encoder is reversed so that data is first passed through modulation encoder 202 and the modulated data is ECC encoded using systematic encoder 204 for error correction code. do. The ECC parity symbol is encoded using a second modulation encoder 206 as shown or it is inserted into the data symbol stream at the bit level or symbol level. Inserting an entire parity symbol into the data symbol stream is referred to as partial symbol interleaving. The parity insertion strategy results in a simple scheme with error-free delivery, but such a strategy can weaken the original modulation constraints. Nevertheless, there are three main advantages that make RC attractive:

a) 변조 디코더를 통해서는 에러 전달이 존재하지 않는다.a) There is no error propagation through the modulation decoder.

b) 에러 전달이 발생하지 않으므로, 제 1 변조 코드는 매우 길게 채택되어 용량 측면에서 효율적이고 하이 레이트의 변조 코드 사용을 가능하게 하여 코드 레이트를 획득한다.b) Since no error propagation occurs, the first modulation code is adopted very long to enable efficient and high rate modulation code in terms of capacity to obtain the code rate.

c) 재판독 경로에서, ECC 디코딩 블럭이 채널 검출 블럭 바로 직후에 배치되며, 이는 검출기로부터 디코더로 소프트 정보가 비트순으로 전달될 수 있게 한다. 이는, 터보 및 LDPC 코드에 기반을 두고 있으며 그리고 커다란 성능 개선의 약속을 지키고 있는 신규 ECC 기법을 사용하기 위한 적절한 프레임워크를 생성한다. 또한, 이 프레임워크에서, 패리티 사후 처리 체계는 용이하게 구현될 수 있다.c) In the reread path, an ECC decoding block is placed immediately after the channel detection block, which allows soft information to be passed in bit order from the detector to the decoder. This creates an appropriate framework for using new ECC techniques, which are based on turbo and LDPC code, and keep the promise of significant performance improvements. Also, in this framework, parity post processing schemes can be easily implemented.

테이프 기록의 프레임워크에서 동일한 이점이 제공되는 것이 바람직할 것이다. 그러나, HDD에 사용되는 ECC는 테이프 기록에 사용되는 ECC와는 상이한 구조를 갖는다. HDD에서, ECC는 주로 단일의 하이 레이트 리드 솔로몬(RS) 코드에 기초를 두고 있지만, 테이프에서는 새로운 RC 구조를 필요로 하는 대형의 강력한 제품 코드가 사용된다. RC는 1차원 ECC 구조용으로 제안되지만, ECC는 전형적으로 리드 솔로몬 코드 또는 LDPC 코드와 같은 단일 코드로 구성된다. 그러나, 주지의 RC 체계는 연결형 코드 또는 제품 코드에 기반을 두고 있는 ECC로부터 발생하는 특정의 문제에 역점을 두고 있지는 않다. 연결형 코드 또는 제품 코드의 경우, 내부 C1 코드의 출력은 트랙/채널에 매핑되어 모든 행들이 사전결정된 변조 제약을 충족해야만 한다. 따라서, LTO-3 제품 코드와 관련하여 예시되는 커다란 결점이 제시된다. 표 1을 참조하면, 계통적인 ECC 인코더에 앞서 변조 인코더를 배치하게 되면, C1 패리티 바이트를 제외하고는 K2 행만이 변조 제약을 충족할 것이다. C2 패리티 바이트로 구성되는 남아 있는 N2-K2 개 행(행 54-63)은 변조 제약을 충족시키지 못하고 있다. C1 패리티 부분은 1차원 ECC의 경우에서와 마찬가지로 개별적으로 처리될 수 있으므로 사소한 문제를 제기한다. 그러나, C2 패리티 부분에 대해서는 효율적인 솔루션이 아직 제안되지 않고 있다. 따라서, 상당한 양의 행들은 변조 제약을 충족할 수 없으며 또다른 처리를 필요로 할 것이다. 1차원 RC 전략에 따라, 이들 행들은 제 2 변조 인코더로 전달되거나 패리티 삽입 전략을 사용하여 처리될 필요가 있다. 이들 모든 기법은 아래의 바람직하지 않은 특징, 즉 (1) 제 2 변조 코드가 에러 전파를 초래하여 채널 검출기로부터 ECC 디코더로 소프트 정보가 비트 비트 단위로 전달될 수는 없을 것이며, (2) 데드 트랙(dead track)의 경우 부분적인 심볼 인터리빙으로 인해 성능이 저하되는데, 그 이유는 전체 결함이 분할되고 다른 행들 내로 확산되어 여러 행들에서 여러 에러를 야기한다.It would be desirable to provide the same advantages in the framework of tape recording. However, the ECC used for the HDD has a different structure from the ECC used for tape recording. In HDDs, ECC is mainly based on a single high-rate Reed Solomon (RS) code, but on tape, large, powerful product codes that require new RC structures are used. RC is proposed for one-dimensional ECC structures, but ECC typically consists of a single code such as Reed Solomon code or LDPC code. However, well-known RC schemes do not focus on specific problems arising from ECC based on connected code or product code. In the case of a connected code or a product code, the output of the internal C1 code must be mapped to a track / channel so that all rows must meet a predetermined modulation constraint. Thus, a large drawback is illustrated which is illustrated with respect to the LTO-3 product code. Referring to Table 1, if the modulation encoder is placed before the systematic ECC encoder, only the K 2 rows except the C1 parity byte will satisfy the modulation constraint. The remaining N 2 -K 2 rows (rows 54-63) consisting of C2 parity bytes do not meet the modulation constraints. The C1 parity part poses a minor problem as it can be handled separately as in the case of one-dimensional ECC. However, no efficient solution has yet been proposed for the C2 parity portion. Thus, a significant amount of rows cannot meet the modulation constraints and will require further processing. According to the one-dimensional RC strategy, these rows need to be passed to a second modulation encoder or processed using a parity insertion strategy. All these techniques are not desirable below: (1) the second modulation code will cause error propagation so that soft information cannot be conveyed bit by bit from the channel detector to the ECC decoder, and (2) dead track In the case of a dead track, performance is degraded due to partial symbol interleaving, because the entire defect is split and spreads into different rows, causing multiple errors in multiple rows.

전술한 결함들은 만약 외부 C2 인코더가 제 1 변조 인코더와 교환된다면, 즉 인코딩의 순서가 문제가 되지 않는다면, 회피될 것이다. 그러나, 이러한 것은 그러한 경우가 아니며 그리고 지금까지는 제품 코드를 위해 리버스 연결 구조(reverse concatenation architecture)가 제안되지 않고 있다.The aforementioned deficiencies will be avoided if the external C2 encoder is exchanged with the first modulation encoder, ie if the order of encoding does not matter. However, this is not the case and so far no reverse concatenation architecture has been proposed for product code.

본 발명의 바람직한 실시예는 기록 쓰기 경로에 대한 리버스 연결 인코딩 시스템을 제공한다. 이 리버스 연결 인코딩 시스템은 인코딩되지 않은 사용자 데이터의 제 1 데이터 어레이를 생성하는 수단과, 상기 제 1 데이터 어레이의 각각의 행에 대해 제 1 변조 제약을 강제하여 변조 제약된 데이터를 포함하는 제 2 데이터 어레이를 생성하는 제 1 변조 인코더를 포함한다. 이 시스템은 상기 변조 제약된 데이터가 인터리빙된 각각의 컬럼 내에 사전결정된 빈 위치(empty locations)를 삽입함으로써 제 2 데이터 어레이를 처리하며 제 3 데이터 어레이를 생성하도록 동작가능한 포매터(formatter)를 더 포함한다. C2 인코더는 제 3 데이터 어레이의 각각의 컬럼 내의 다수의 빈 위치의 각각에 대한 C2 패리티 바이트를 계산하고 제 4 데이터 어레이를 생성하도록 동작가능하다. C1 인코더는 제 4 데이터 어레이의 각각의 행에 대해 C1 패리티 심볼을 계산하고 제 5 어레이를 생성하도록 동작가능하다. 이 시스템은 제 5 데이터 어레이의 각각의 C1 패리티 심볼에 대해 제 2 변조 제약을 부여하여 제 6 데이터 어레이를 생성하도록 동작가능한 제 2 변조 인코더를 더 포함한다. 이 시스템은 또한 기록 매체의 트랙상에 제 6 데이터 어레이의 행들을 기록하는 수단을 더 포함한다.A preferred embodiment of the present invention provides a reverse connection encoding system for a write write path. The reverse coupled encoding system includes means for generating a first data array of unencoded user data, and second data comprising data that is modulated by forcing a first modulation constraint for each row of the first data array. And a first modulation encoder for generating the array. The system further includes a formatter operable to process the second data array and create a third data array by inserting predetermined empty locations into each column where the modulation constrained data is interleaved. . The C2 encoder is operable to calculate a C2 parity byte for each of the plurality of empty positions in each column of the third data array and generate a fourth data array. The C1 encoder is operable to calculate a C1 parity symbol and generate a fifth array for each row of the fourth data array. The system further includes a second modulation encoder operable to impose a second modulation constraint on each C1 parity symbol of the fifth data array to produce a sixth data array. The system further includes means for recording the rows of the sixth data array on the track of the recording medium.

본 발명의 다른 바람직한 실시예는 매체 상에 기록을 위한 데이터를 인코딩하는 방법을 제공하며, 이 방법은 인코딩되지 않은 사용자 데이터의 제 1 데이터 어레이를 생성하는 단계와, 변조 제약된 데이터를 포함하는 제 2 데이터 어레이를 생성하기 위해 상기 제 1 데이터 어레이 내의 각각의 행에 대해 제 1 변조 제약을 부여하는 단계와, 변조 제약된 데이터가 인터리빙된 제 2 데이터 어레이의 각각의 컬럼 내에 사전결정된 빈 위치를 삽입함으로써 제 2 데이터 어레이를 포맷팅하고 제 3 데이터 어레이를 생성하는 단계와, 제 3 데이터 어레이의 각각의 컬럼 내의 다수의 빈 위치의 각각에 대해 C2 패리티 바이트를 계산하고 제 4 데이터 어레이를 생성하는 단계와, 제 4 데이터 어레이의 각각의 행에 대해 C1 패리티 심볼을 계산하고 제 5 데이터 어레이를 생성하는 단계와, 제 5 데이터 어레이의 각각의 C1 패리티 심볼에 대해 제 2 변조 제약을 부여하고 제 6 데이터 어레이를 생성하는 단계와, 기록 매체 상에 제 6 데이터 어레이의 행을 기록하는 단계를 포함한다.Another preferred embodiment of the present invention provides a method of encoding data for recording on a medium, the method comprising generating a first data array of unencoded user data, and comprising a modulation constrained data. Imparting a first modulation constraint for each row in the first data array to produce a second data array, and inserting a predetermined empty position into each column of the second data array where the modulation constrained data is interleaved. Thereby formatting the second data array and generating a third data array, calculating C2 parity bytes for each of the plurality of empty positions in each column of the third data array, and generating a fourth data array; Compute a C1 parity symbol for each row of the fourth data array and generate a fifth data array. Creating a sixth data array and imparting a second modulation constraint on each C1 parity symbol of the fifth data array, and recording a row of the sixth data array on a recording medium. do.

본 발명의 또다른 실시예는 프로그램가능한 컴퓨터와 함께 사용가능한 컴퓨터 판독가능한 매체의 컴퓨터 프로그램 제품을 제공하며, 이 컴퓨터 프로그램 제품은 상기 매체 상에 기록하기 위한 데이터를 인코딩하기 위해 구현된 컴퓨터 판독가능한 코드를 가지며, 이 컴퓨터 판독가능한 코드는 인코딩되지 않은 사용자 데이터의 제 1 데이터 어레이를 생성하는 인스트럭션과, 변조 제약된 데이터를 포함하는 제 2 데이터 어레이를 생성하기 위해 상기 제 1 데이터 어레이 내의 각각의 행에 대해 제 1 변조 제약을 부여하는 인스트럭션과, 변조 제약된 데이터가 인터리빙된 제 2 데이터 어레이의 각각의 컬럼 내에 사전결정된 빈 위치를 삽입함으로써 제 2 데이터 어레이를 포맷팅하고 제 3 데이터 어레이를 생성하는 인스트럭션과, 제 3 데이터 어레이의 각각의 컬럼 내의 다수의 빈 위치의 각각에 대해 C2 패리티 바이트를 계산하고 제 4 데이터 어레이를 생성하는 인스트럭션과, 제 4 데이터 어레이의 각각의 행 내의 P개의 C1 패리티 심볼을 계산하고 제 5 데이터 어레이를 생성하는 인스트럭션과, 제 5 데이터 어레이의 각 행 내의 각각의 C1 패리티 심볼에 대해 제 2 변조 제약을 부여하고 제 6 데이터 어레이를 생성하는 인스트럭션과, 기록 매체의 트랙 상에 제 6 데이터 어레이의 행을 기록하는 인스트럭션을 포함한다. Another embodiment of the present invention provides a computer program product of a computer readable medium usable with a programmable computer, the computer program product embodying computer readable code embodied for encoding data for writing on the medium. The computer readable code includes instructions for generating a first data array of unencoded user data, and for each row in the first data array to produce a second data array comprising modulation constrained data. Instructions for formatting a second data array and inserting a predetermined empty position into each column of a second data array in which modulation-constrained data is interleaved, and instructions for formatting the second data array and generating a third data array; Each of the third data array Calculating a C2 parity byte for each of the plurality of empty positions in the column and generating a fourth data array; and calculating P C1 parity symbols in each row of the fourth data array and generating a fifth data array. An instruction to impose a second modulation constraint on each C1 parity symbol in each row of the fifth data array and to generate a sixth data array, and to record a row of the sixth data array on a track of the recording medium. Contains instructions.

도 1은 포워드 연결을 사용한 종래 기술의 데이터 인코딩의 블럭도이다.1 is a block diagram of prior art data encoding using a forward connection.

도 2는 리버스 연결을 사용한 종래 기술의 데이터 인코딩의 블럭도이다.2 is a block diagram of prior art data encoding using a reverse connection.

도 3은 종래 기술의 LTO-3 쓰기 경로의 블럭도이다.3 is a block diagram of a prior art LTO-3 write path.

도 4는 본 발명의 리버스 연결 구조의 하이 레벨 블럭도이다.4 is a high level block diagram of the reverse connection structure of the present invention.

도 5a는 본 발명의 리버스 연결 구조가 포함될 수 있는 쓰기 경로의 블럭도이다.5A is a block diagram of a write path that may include the reverse connection structure of the present invention.

도 5b는 본 발명의 일 실시예의 쓰기 경로의 일부의 블럭도이다.5B is a block diagram of a portion of the write path of one embodiment of the present invention.

도 6은 본 발명의 리버스 연결 구조의 보다 상세한 블럭도이다.6 is a more detailed block diagram of the reverse connection structure of the present invention.

도 7은 본 발명의 포매터에 의해 빈 위치가 제공된 데이터 세트를 도시한 도면이다.7 illustrates a data set provided with empty positions by the formatter of the present invention.

도 8은 본 발명의 계통적인 제 2 변조 인코더의 기능적인 블럭도이다.8 is a functional block diagram of a systematic second modulation encoder of the present invention.

도 9는 본 발명에 따른 데이터 인코딩에 후속하는 코드워드 쿼드의 합성을 도시한 도면이다.9 illustrates the synthesis of codeword quads following data encoding in accordance with the present invention.

도 10은 무제약 데이터 바이트 및 패리티 바이트가 모두 포매터에 의해 제공된 빈 위치로 삽입되는 대안의 실시예의 블럭도이다.10 is a block diagram of an alternative embodiment where both unconstrained data bytes and parity bytes are inserted into empty positions provided by the formatter.

도 3은 LTO-3 표준에 따른 쓰기 경로(300)의 블럭도이다. 호스트 레코드들은 압축되고(302) 데이터 세트 및 DSIT 생성기(304)는 심볼들의 스트림으로부터 서브 데이터 세트를 생성한다. ECC 인코더(306)는 ECC 인코딩을 제공하며 인코딩된 서브 데이터 세트를 코드워드 쌍 헤더 및 코드워드 쿼드 생성기(308)에 전달한다. 최종적인 코드워드 쿼드는 쓰기 포매터(310)에 전달되며, 여기서 16-트랙 비트 스트림이 생성된다. 비트 스트림은 데이터 랜덤화기(312)에서 처리되고, 그 후 변조 인코딩된다(314). RLL 인코딩된 비트 스트림은 동기화 생성 블럭(316)에서 싱크를 삽입하고 패턴을 포맷팅함으로써 동기화된 비트 스트림으로 변환되고 동기화된 비트 스트림은 비트 스트림을 제공하는 쓰기 등화기(318)를 통해 전달되며 그 후 매체 상에 기록될 수 있다.3 is a block diagram of a write path 300 in accordance with the LTO-3 standard. The host records are compressed 302 and the data set and DSIT generator 304 generate a sub data set from the stream of symbols. ECC encoder 306 provides ECC encoding and passes the encoded sub data set to codeword pair header and codeword quad generator 308. The final codeword quad is passed to the write formatter 310, where a 16-track bit stream is generated. The bit stream is processed at data randomizer 312 and then modulated and encoded 314. The RLL encoded bit stream is converted into the synchronized bit stream by inserting a sink and formatting the pattern in the synchronization generation block 316 and the synchronized bit stream is passed through a write equalizer 318 which provides the bit stream. Can be recorded on the medium.

도 4의 하이 레벨 개략도에 도시된 바와 같이, 본 발명(400)은 리버스 연결 구조를 제공하며, 이 구조에서 데이터는 먼저 직렬/병렬 블럭(401)을 통해 전달되어 인코딩되지 않은 어레이를 형성한다. 각 어레이의 각각의 행은 제 1 변조 인코더(402)에서 변조 인코딩되고 그 후 ECC는 ECC 인코더(404)에 제공된다. 각각의 행은 제 2 변조 인코더(406)를 통해 처리되거나 부분적인 심볼 인터리빙 처리되어 필요한 변조 제약을 충족시킨다.As shown in the high level schematic of FIG. 4, the present invention 400 provides a reverse connection structure in which data is first passed through a serial / parallel block 401 to form an unencoded array. Each row of each array is modulated and encoded at the first modulation encoder 402 and then ECC is provided to the ECC encoder 404. Each row is processed through a second modulation encoder 406 or partially symbol interleaved to meet the required modulation constraints.

도 5a는 본 발명의 리버스 연결 구조가 포함될 수 있는 쓰기 경로(500)의 블럭도이다. 도 3의 LTO-3 쓰기 경로의 경우, 본 발명의 쓰기 경로(500) 내의 호스트 레코드는 압축되고(502) 데이터 세트 및 DSIT 생성기(504)는 심볼들의 스트림으 로부터 서브 데이터 세트를 생성한다. 서브 데이터 세트는 다음에 데이터 랜덤화기(506)에서 행 단위 방식으로 랜덤화되며 랜덤화된 데이터는 제 1 변조 인코더(508)(행 단위 방식)로 전달된다. C2 및 C1 ECC 인코더(510)는 변조 인코딩된 서브 데이터 세트를 인코딩하며, 이는 보다 상세하게 기술될 것이다. 제 2 변조 인코더(512)는 인코딩된 서브 데이터 세트에 대한 추가 변조 인코딩을 제공하며, 그 후 변조된 데이터는 인터리빙 및 트랙 할당 블럭(520)에 의해 처리된다. 최종적인 C1 코드워드 및 코드워드 쌍의 멀티-트랙 스트림은 동기화 생성 블럭(514)에서 싱크를 삽입하고 패턴을 포맷팅함으로써 동기화된 비트 스트림으로 변환되며 동기화된 비트 스트림은 쓰기 스트림을 제공하는 쓰기 등화기(516)로 전달되며 그 후 매체(518) 상에 기록될 수 있다.5A is a block diagram of a write path 500 that may include the reverse connection structure of the present invention. For the LTO-3 write path of FIG. 3, the host record in the write path 500 of the present invention is compressed 502 and the data set and DSIT generator 504 generate a sub data set from a stream of symbols. The sub data set is then randomized in a row-wise manner in the data randomizer 506 and the randomized data is passed to the first modulation encoder 508 (row-wise). The C2 and C1 ECC encoder 510 encodes the modulation encoded sub data set, which will be described in more detail. The second modulation encoder 512 provides additional modulation encoding for the encoded sub data set, which is then processed by the interleaving and track allocation block 520. The resulting multi-track stream of C1 codewords and codeword pairs is converted to a synchronized bit stream by inserting a sink and formatting the pattern at the synchronization generation block 514, where the synchronized bit stream is a write equalizer providing a write stream. 516 and then recorded on medium 518.

도 5b는 본 발명의 일 실시예의 쓰기 경로의 일부의 블럭도이며, 인터리빙 및 트랙 할당 블럭(520)은 LTO-3 테이프 매체용 포맷의 행으로 서브 데이터 세트를 처리한다. 이 실시예에서, 인터리빙 및 트랙 할당 블럭(520)은 코드워드 쌍 헤더 및 코드워드 쿼드 생성기(522)를 포함하며, 여기서 제 2 변조 인코더(512)로부터의 변조된 데이터는 코드워드 헤더와 함께 인터리빙되어 코드워드 쿼드를 형성한다. 인터리빙 및 트랙 할당 블럭(520)은 코드워드 쿼드를 논리적 트랙에 매핑하는 쓰기 포매터(524)를 더 포함한다. 최종적인 16-트랙 비트 스트림은 동기화 생성 블럭(514)에서 싱크를 삽입하고 패턴을 포맷팅함으로써 동기화된 비트 스트림으로 변환되며 동기화된 비트 스트림은 비트 스트림을 제공하는 쓰기 등화기(516)를 통해 전달되어 테이프(530) 상에 기록될 수 있다. 본 발명은 이러한 방식으로 C1 코드 워드 및 코드워드 헤더를 결합하는 것에 국한되는 것이 아니라 다른 방식으로도 결합될 수 있다는 것이 이해될 수 있을 것이다.FIG. 5B is a block diagram of a portion of the write path of one embodiment of the present invention, and interleaving and track allocation block 520 processes the sub data sets in rows in a format for LTO-3 tape media. In this embodiment, the interleaving and track allocation block 520 includes a codeword pair header and a codeword quad generator 522, where the modulated data from the second modulation encoder 512 is interleaved with the codeword header. To form a codeword quad. Interleaving and track allocation block 520 further includes a write formatter 524 that maps codeword quads to logical tracks. The final 16-track bit stream is converted into a synchronized bit stream by inserting a sink and formatting the pattern in the synchronization generation block 514 and the synchronized bit stream is passed through a write equalizer 516 that provides the bit stream. Can be written on tape 530. It will be appreciated that the present invention is not limited to combining C1 code words and codeword headers in this manner, but may be combined in other ways.

도 6은 본 발명의 RC 구조(600)의 보다 상세한 블럭도이다. 구조(600)는 하이 레이트 변조 인코더들의 세트(602)와 외부의 컬럼 단위의 C2 인코더(604)를 포함하며, 이들 N2 행의 각각에 대한 하나의 인코더는 직렬/병렬 블럭(601)로부터 데이터를 수신하다. 이 구조(600)는 또한 변조 인코더(602)와 C2 인코더(604) 간에 배치된 포맷 블럭(606)을 제공한다. 보다 상세하게 기술되는 바와 같이, 포맷 블럭(606)은 변조 인코딩된 사용자 데이터 어레이를 재구성하며 그 결과 그 사이즈는 외부 코드의 치수보다는 오히려 길이에 기초하고 있다. C2 인코더(604)에 후속하여 각각의 행에 대해 내부 C1 인코더(608)가 배치되어 각각의 행의 단부에서 패리티 바이트를 생성한다. 인코딩된 행의 처리가 계통적인 변조 인코더(610)의 세트에 의해 완료된다. C2 인코더(604)로부터의 데이터 및 제 2 변조 인코더의 세트(610)로부터의 데이터는 멀티플렉서(612) 내에서 멀티플렉싱되어 완성된 서브 데이터 세트를 형성한다.6 is a more detailed block diagram of the RC structure 600 of the present invention. Structure 600 includes a set of high rate modulation encoders 602 and an external column-by-column C2 encoder 604, with one encoder for each of these N 2 rows representing data from serial / parallel block 601. Receive This structure 600 also provides a format block 606 disposed between the modulation encoder 602 and the C2 encoder 604. As described in more detail, the format block 606 reconstructs the modulation encoded user data array so that the size is based on the length rather than the dimensions of the outer code. An internal C1 encoder 608 is placed for each row following the C2 encoder 604 to generate a parity byte at the end of each row. Processing of the encoded rows is completed by a set of systematic modulation encoders 610. The data from the C2 encoder 604 and the data from the set 610 of the second modulation encoder are multiplexed within the multiplexer 612 to form a complete sub data set.

사용자 데이터 재구성User Data Reconstruction

사용자 데이터가 K2 행(K2는 C2의 차수임)으로 구성되는 길이 N2의 C2 코드의 종래 인코딩과 대조적으로, 본 발명의 인코딩되지 않은 사용자 데이터 어레이는 직렬/병렬 블럭(601)에 의해 생성되는 N2 행으로 구성된다. 그러한 인코딩되지 않은 사용자 데이터 어레이의 예가 표 2에 도시되며, 이는 LTO-3 표준(표 1)의 서브 데이터 세트 어레이의 변형예이다.In contrast to the conventional encoding of C2 codes of length N 2 , wherein the user data consists of K 2 rows (K 2 is on the order of C 2 ), the unencoded user data array of the present invention is represented by a serial / parallel block 601. It consists of N 2 rows that are generated. Examples of such unencoded user data arrays are shown in Table 2, which is a variation of the sub data set array of the LTO-3 standard (Table 1).

Figure 112009035244292-PCT00002
Figure 112009035244292-PCT00002

특히, 어레이는 종래의 LTO-3 서브 데이터 세트보다 많은 520개의 사용자 바이트를 포함한다. 인코딩되지 않은 사용자 데이터 어레이의 각각의 행은 제 1 변조 인코더(602)를 통해 전달되며 이 인코더는 포맷 블럭(606)의 입력 단에서 변조 제약을 부여한다. 이 시점에서, 변조된 사용자 데이터 어레이는 여전히 제 1 변조 인코더(602)로 인해 수 바이트 더 긴 N2 행의 변조 제약 데이터를 포함한다. 일 실시예에서, 제 1 변조 인코더(602)는 글로벌 G=14의 변조 제약 및 인터리빙된 I=7 제약을 충족하는 레이트-215/216 인터리빙된 피나보치 변조 코드로부터 도출될 수 있다. 각각의 행은 8×403=3224 데이터 비트를 포함하며, 이는 15 비트-시퀀스의 길이:214, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215로 그룹화된다.In particular, the array contains more than 520 user bytes than conventional LTO-3 sub data sets. Each row of the unencoded user data array is passed through a first modulation encoder 602, which imposes a modulation constraint at the input end of the format block 606. At this point, the modulated user data array still contains N 2 rows of modulation constraint data due to the first modulation encoder 602. In one embodiment, the first modulation encoder 602 may be derived from a rate-215 / 216 interleaved Pinabochy modulation code that meets the global G = 14 modulation constraint and the interleaved I = 7 constraint. Each row contains 8x403 = 3224 data bits, which is the length of the 15-bit sequence: 214, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215 , Grouped by 215.

더미 제로 비트(dummy zero-bit)는 길이-214의 비트 시퀀스의 개시부에 부가되며, 그 후 모든 시퀀스는 인코딩되어 길이 216의 15 비트 시퀀스를 발생시키며, 이는 행당 전체 405 바이트에 이르기까지 부가된다. 제 1 변조 코드는 표 2의 인코딩되지 않은 사용자 데이터 어레이를 표 3의 변조 제약된 사용자 데이터 어레이로 변환한다.A dummy zero bit is added to the beginning of the length-214 bit sequence, after which all sequences are encoded to generate a 15-bit sequence of length 216, which adds up to a total of 405 bytes per row. . The first modulation code converts the unencoded user data array of Table 2 into a modulation constrained user data array of Table 3.

Figure 112009035244292-PCT00003
Figure 112009035244292-PCT00003

보다 일반적으로, 제 1 변조 코드에 대해 하나의 코드를 선택하며, 이 코드는 무제약 심볼의 부분적인 인터리빙을 지원하며 그 결과 사전결정된 글로벌 G 제약 및 인터리빙된 I 제약은 부분적인 심볼 인터리빙 후에 충족된다.More generally, one code is selected for the first modulation code, which supports partial interleaving of unconstrained symbols such that the predetermined global G constraint and interleaved I constraint are met after partial symbol interleaving.

포맷 블럭Format block

포맷 블럭(606)은 표 3의 변조된 사용자 데이터 어레이를 각각의 컬럼 내의 N2 -K2개의 빈 구성요소를 갖는 어레이로 변환한다. N2 -K2개의 빈 위치들은 C2 인코더(604)에 의해 생성될 패리티 심볼들이 도입될 장소 유지 위치가 된다. 포맷 블럭의 설계 단계에서, 패리티 패턴 어레이가 결정된다. 패리티 패턴 어레이가 제공되면, 포맷 블럭(606)은 빈 셀을 표 3의 변조된 사용자 데이터 어레이 내로 행 단위 방식으로 인터리빙하여 L 바이트만큼 각각의 행의 길이를 연장한다. 이러한 인터리빙 동작은 부분적인 심볼 인터리빙과 유사하며 제 1 변조 코드의 변조 제약을 약화시킨다. 기술된 실시예에서, 상기 어레이 내로의 8 비트 패리티 심볼의 삽입은 글로벌 및 인터리빙 제약을 G=22 및 I=11로 약화시킬 것이다.Format block 606 converts the modulated user data array of Table 3 to an array with N 2 -K 2 empty components in each column. The N 2 -K 2 empty positions are the place holding positions where the parity symbols to be generated by the C2 encoder 604 are introduced. In the design phase of the format block, a parity pattern array is determined. If a parity pattern array is provided, format block 606 interleaves the empty cells in a row-by-row fashion into the modulated user data array of Table 3 to extend the length of each row by L bytes. This interleaving operation is similar to partial symbol interleaving and weakens the modulation constraints of the first modulation code. In the described embodiment, the insertion of 8-bit parity symbols into the array will weaken the global and interleaving constraints to G = 22 and I = 11.

패리티 패턴 어레이를 검색하기 위해, 변조된 사용자 데이터 어레이의 차수는 디오판투스 방정식(Diophantine equation), 즉 (M+L)×(N2 -K2)=N2×L을 충족시켜야만 하며, 여기서 L은 행당 C2 패리티 심볼의 개수이며, M+L=K1는 C2 심볼에 기초한 C1 코드의 차수이다(즉, C1 코드의 차수는 C2 심볼 단위, 가령 바이트로 표현되어야만된다.). 이러한 디오판투스 방정식은 C1 코드의 파라미터를 조정할 필요가 있게 할 수 있다. LTO-3 기반의 전술한 예에서, M+L=K1=480은 각각의 행에서 L=75의 C2 패리티 바이트 위치를 갖는 방정식을 충족시킨다. 또한, 패리티 바이트는 제 1 변조 코드의 변조 제약을 완전히 파괴하지 않도록 하기 위해 사전결정된 최소 양만큼 이격되어야 한다. 예에서, 적어도 2 바이트 위치의 공간이면 (G,I)=(22,11) 제약을 획득하는 데 충분하다. 각각의 패리티 패턴 어레이 내에는 64개의 행이 존재함에 따라, 패리티 패턴 어레이에 대해 전체 64×75=4800의 C2 패리티 바이트 위치가 존재한다. 삽입 위치는 다음의 10개의 선형 방정식(모듈 64)에 의해 규정되며, 이 방정식은 컬럼 지표 x 내지 행 지표 y와 관련되는 다음과 같이, 즉 y x+ci (mod 64)와 관련되며,In order to retrieve the parity pattern array, the order of the modulated user data array must satisfy the Diophantine equation, i.e., (M + L) × (N 2 -K 2 ) = N 2 × L, where L is the number of C2 parity symbols per row, and M + L = K 1 is the order of the C1 code based on the C2 symbol (ie, the order of the C1 code must be expressed in C2 symbol units, such as bytes). This diopantus equation may make it necessary to adjust the parameters of the C1 code. In the above example based on LTO-3, M + L = K 1 = 480 satisfies an equation with a C2 parity byte position of L = 75 in each row. In addition, the parity bytes should be spaced apart by a predetermined minimum amount so as not to completely destroy the modulation constraints of the first modulation code. In an example, a space of at least two byte positions is sufficient to obtain a constraint of (G, I) = (22, 11). As there are 64 rows in each parity pattern array, there are total 64 × 75 = 4800 C2 parity byte positions for the parity pattern array. The insertion position is defined by the following ten linear equations (module 64), which are related to the column index x to the row index y as follows, i.e. y x + c i (mod 64),

여기서, ci∈{0, 6, 13, 19, 26, 32, 38, 45, 51, 58} 및 0 x<480=k1이다. 패리티 패턴은 바람직하게도 각각의 컬럼이 N2 -K2=10 패리티 위치를 포함하도록 그리고 그 패턴이 가능한한 수 컬럼 내에서 반복되도록 선택된다. 예에서, 패리티 패턴은 매 32번째 컬럼마다 반복된다. 이러한 특정의 패리티 패턴 어레이는 도 7에 도시되며 점선은 각각의 컬럼에 대한 10개의 빈 패리티 삽입 위치를 나타낸다.Here, c i ∈ {0, 6, 13, 19, 26, 32, 38, 45, 51, 58} and 0 x <480 = k 1 . The parity pattern is preferably selected such that each column contains N 2 -K 2 = 10 parity positions and the pattern is repeated in as many columns as possible. In an example, the parity pattern is repeated every 32th column. This particular parity pattern array is shown in FIG. 7 and the dotted lines represent ten empty parity insertion positions for each column.

컬럼 종속 C2 인코딩Column-dependent C2 encoding

각각의 컬럼이 10개의 패리티 장소 유지 위치를 포함하고 있으므로, 각각의 컬럼은 레이트-54/64 RS C2 코드의 코드워드로 인코딩될 수 있다. 또한, 패리티 위치는 컬럼 마다 변화되므로, C2 인코더는 또한 바람직하게도 컬럼 마다 변화된다.Since each column contains ten parity place holding positions, each column can be encoded with a codeword of rate-54 / 64 RS C2 code. Also, since the parity position varies from column to column, the C2 encoder is also preferably changed from column to column.

C2 코드는 리드 솔로몬 코드일 수 있지만 다른 코드들이 사용될 수도 있다. 바람직하게도, 이 코드는 모든 세트의 K2개 구성요소가 정보 세트를 형성하는 유용한 특성을 갖는 최대 거리로 이격가능한 코드이다. 따라서, 모든 세트의 K2개 구성요소가 남아 있는 N2 -K2개의 패리티 심볼을 고유하게 결정한다. C2 인코더(604)의 입력단에서, 모든 컬럼은 K2개의 변조 데이터 바이트와 N2 -K2개의 빈 패리티 위치를 포함한다. 각각의 컬럼에서, C2 인코더(604)는 K2개의 변조 데이터 바이트로부터 N2 -K2개의 패리티 바이트를 결정하며 이를 상기 빈 패리티 위치에 삽입한다. C2 인코더(604)의 출력은 표 4에 도시된 바와 같이 사이즈 N2 × K1의 C2 인코딩된 어레이이다. C2 인코딩된 어레이는 각각의 행을 따라 사전결정된 변조 제약을 충족시킨다.The C2 code may be a Reed Solomon code, but other codes may be used. Preferably, this code is a code that can be spaced apart at a maximum distance with the useful properties that all sets of K 2 components form an information set. Thus, uniquely determine the N 2 -K 2 parity symbols in which all K 2 components of the set remain. At the input of the C2 encoder 604, every column contains K 2 modulation data bytes and N 2 -K 2 empty parity positions. In each column, the C2 encoder 604 determines N 2 -K 2 parity bytes from K 2 modulation data bytes and inserts it into the empty parity position. The output of the C2 encoder 604 is a C2 encoded array of size N 2 × K 1 as shown in Table 4. The C2 encoded array meets a predetermined modulation constraint along each row.

Figure 112009035244292-PCT00004
Figure 112009035244292-PCT00004

보다 일반적으로, C2 인코더는 갈로이스 필드 GF(2m)을 통한 레이트 K2/N2 리드 솔로몬 코드에 대한 인코더이며, 특히 코드워드 구성요소는 m-비트 심볼로 구성된다.More generally, the C2 encoder is an encoder for rate K 2 / N 2 Reed Solomon code through gallois field GF (2 m ), in particular the codeword component consisting of m-bit symbols.

C1 인코딩C1 encoding

C2 인코딩된 어레이의 행들은 C1 코드에 대한 C1 인코더(608)를 통해 전달된다. 최종적인 C1 패리티 심볼은 도 6에 도시된 바와 같이 제 2 변조 인코더(610)에 의해 처리될 수 있거나 부분적으로는 C1 인코더(608)의 데이터 스트림 내로 비트 단위 또는 바이트 단위로 인터리빙될 수 있다. 전술한 LTO-3 기반의 예에서, 차수 K1=480 및 길이 N1=492의 C1 코드는 GF(256)를 통해 차수 240 및 길이 246의 우수/기수 인터리빙된 리드 솔로몬 코드로서 획득된다. 그러한 코드는 행당 2×6=12개의 인터리빙된 RS 패리티 바이트를 생성하며, 이는 표 5에 도시된 바와 같이 각각의 행의 단부에 부착된다. 행 내의 우수 및 기수 패리티 바이트는 제각기 * 및 점으로 각각 표시된다.The rows of the C2 encoded array are passed through the C1 encoder 608 for the C1 code. The final C1 parity symbol may be processed by the second modulation encoder 610 as shown in FIG. 6 or partly interleaved bit by byte into the data stream of the C1 encoder 608. In the LTO-3 based example described above, the C1 code of order K 1 = 480 and length N 1 = 492 is obtained via GF 256 as an even / odd interleaved Reed Solomon code of order 240 and length 246. Such code generates 2 × 6 = 12 interleaved RS parity bytes per row, which is attached to the end of each row as shown in Table 5. Even and odd parity bytes in a row are indicated by * and dot, respectively.

Figure 112009035244292-PCT00005
Figure 112009035244292-PCT00005

보다 일반적으로, C1 인코더는 GF(28)을 통해 차수 K1 및 길이 N1의 우수/기수 인터리빙된 리드 솔로몬 코드로부터 획득될 수 있다. C1 인코더는 r-비트 심볼을 갖는 갈로이스 필드 GF(2r)을 통해 선형 코드로부터 도출될 수 있으며, GF(2)를 통해 차수 mK1을 갖는다. C1 인코더는 또한 갈로이스 필드 GF(2r)을 통해 저밀도의 패리티 체크 코드로부터 도출될 수 있으며, GF(2)를 통해 차수 mK1을 갖는다. More generally, the C1 encoder can be obtained from even / odd interleaved Reed Solomon codes of order K 1 and length N 1 via GF 2 8 . The C1 encoder can be derived from the linear code via gallois field GF (2 r ) with r -bit symbols, and has order mK 1 through GF (2). The C1 encoder can also be derived from the low density parity check code via gallois field GF (2 r ), and has order mK 1 via GF (2).

최종 변조 코딩Final modulation coding

도 8은 첨부된 C1 패리티 바이트 전체에 걸쳐 (G,I)=(22,11) 제약을 부여하는 방법을 도시한 것으로, 각각의 행 내의 12개의 C1 패리티 바이트는 바람직하게도 계통적인 제 2 변조 인코더(610)를 통해 전달되며, 이 인코더는 단일 변조 비트를 각각의 행 내의 C1 패리티 바이트의 각각의 개시부에 부가한다. 변조 비트는 바람직하게도 각각의 C1 패리티 바이트 내에 계통적인 제 2 인코더를 특징짓는 제 2 비트 p1을 반전시키고 그것을 상기 패리티 바이트에 부가함으로써 결정된다. 간단한 제 2 변조 인코더(610)는 간단한 인버스(inverse)를 갖는 인버터일 수 있으며 데이터가 판독될 때 채널 비트 검출기로부터 ECC 검출기로 소프트 정보가 비트 단위로 전달될 수 있게 한다. 또한, 제 2 변조 인코더(610)는 G=22 및 I=11 제약을 유지한다. 또한, 비계통적인 변조 체계가 가령 LTO-3의 16/17-코드를 적용함으로써 사용될 수가 있다. 그러나, 소프트 정보를 전달하는 것은 비트 단위로 수행될 수는 없다.Figure 8 illustrates a method of applying a (G, I) = (22, 11) constraint across the appended C1 parity bytes, where the twelve C1 parity bytes in each row are preferably systematic second modulation encoders. Passed over 610, the encoder adds a single modulation bit to each beginning of the C1 parity byte in each row. The modulation bit is preferably determined by inverting a second bit p 1 that characterizes a systematic second encoder within each C1 parity byte and adding it to the parity byte. The simple second modulation encoder 610 may be an inverter with a simple inverse and allows soft information to be transferred bit by bit from the channel bit detector to the ECC detector when data is read. The second modulation encoder 610 also maintains G = 22 and I = 11 constraints. In addition, non-systematic modulation schemes can be used, for example, by applying the 16 / 17-code of LTO-3. However, conveying soft information cannot be performed bit by bit.

C1/C2 인코딩된 서브 데이터 세트가 생성된 후, 코드워드 쿼드는 LTO-3 표준과 유사한 방식으로 멀티플렉서에 의해 결합된다. 도 9에 도시된 바와 같이, C1/C2 인코딩된 서브 데이터 세트의 일련의 행 902A, 902B, 가령 제 1 행 및 제 2 행은 인코딩된 헤더 906A, 906B가 인터리빙되어 제 1 및 제 2 코드워드 쌍 902A 및 902B를 각각 형성한다. 두 개의 코드워드 쌍 902A, 902B는 코드워드 쿼드(900)를 포함한다.After the C1 / C2 encoded sub data set is generated, the codeword quads are combined by the multiplexer in a manner similar to the LTO-3 standard. As shown in FIG. 9, a series of rows 902A, 902B, such as the first row and the second row, of the C1 / C2 encoded subdata set are interleaved with the encoded headers 906A, 906B so that the first and second codeword pairs. 902A and 902B are formed, respectively. The two codeword pairs 902A, 902B include a codeword quad 900.

연결된 코드들을 위한 제안된 RC 구조의 특징은 (1) N2 행들로의 사용자 데이터 재구성과, (2) 사전결정된 C2 패리티 패턴에 기반한 포맷 블럭과, (3) 컬럼 종속 C2 인코딩을 포함한다. 그 결과, 기술 배경에서 논의된 리버스 연결 체계의 특징으로부터의 이점, 즉 복조기에서 에러가 전달되지 않으며, 개선된 레이트의 변조 코드 및 패리티 사후-프로세서 또는 터보 코딩 체계에 기반한 신규 소프트 디코딩 기법을 가능하게 하는 것을 이 본 발명으로부터 획득할 수 있다.Features of the proposed RC structure for concatenated codes include (1) user data reconstruction into N 2 rows, (2) a format block based on a predetermined C2 parity pattern, and (3) column dependent C2 encoding. As a result, benefits from the features of the reverse connection scheme discussed in the technical background, namely no error propagation in the demodulator, enable a novel soft decoding scheme based on an improved rate of modulation code and parity post-processor or turbo coding scheme. Can be obtained from this invention.

본 발명의 RC 구조는 변조를 위한 16+12=28 비트를 각각의 행에 부가한다. 각각의 행은 403×8=3224 데이터 비트를 포함한다. 따라서, RC 변조 체계의 레이트는 RRC=3224/3252=0.9914이다.The RC structure of the present invention adds 16 + 12 = 28 bits to each row for modulation. Each row contains 403x8 = 3224 data bits. Thus, the rate of the RC modulation scheme is R RC = 3224/3252 = 0.9914.

전형적인 포워드 연결 구조는 16/17 코드에 기반을 두고 있다. 따라서, RFC=16/17=0.9412이다.The typical forward connection structure is based on 16/17 code. Therefore, R FC = 16/17 = 0.9412.

결과적으로, 본 발명의 RC 구조는 표준 LTO-3 포맷보다 5.34% 더 높은 레이트를 갖지만 I=11 제약은 동일하게 유지하되 G 제약은 13에서 22로 약화시킨다. 또한, 본 발명의 RC 구조는 변조 제약을 (G,I)=(24,12)로 약화시키는 것에도 불구하고 10-비트 ECC 및 보다 긴 C1 코드로 확장될 수 있다.As a result, the RC structure of the present invention has a 5.34% higher rate than the standard LTO-3 format but keeps the I = 11 constraint the same but weakens the G constraint from 13 to 22. In addition, the RC structure of the present invention can be extended to 10-bit ECC and longer C1 codes despite weakening the modulation constraint to (G, I) = (24,12).

주로 LTO-3 코드와 동일한 레이트의 보다 긴 C2 코드를 선택함으로써 C2 코드의 성능이 개선될 수 있다. 본 발명은 갈로이스 필드 GF(256)를 통해 파라미터 [N2=96, K2=80, d2=17]를 갖는 리드 솔로몬 (RS) 코드에 기반을 두고 있는 리버스 연결 (RC) 체계의 제 2 실시예를 제공하며, 여기서, N2는 길이를 나타내고, K2는 차수를 나타내며, d2는 C2 코드의 최소 해밍 거리를 나타낸다. RS 코드가 길이 96을 가지기 때문에, 대응하는 RC 체계는 N2=96 행을 갖는 인코딩되지 않은 사용자 데이터 어레이를 사용한다. U=398의 행당 인코딩되지 않은 사용자 바이트를 갖는 N2×U=96×398 사이즈의 전술한 인코딩되지 않은 사용자 데이터 어레이의 예가 표 6에 도시된다.The performance of the C2 code can be improved primarily by selecting longer C2 codes of the same rate as the LTO-3 code. The present invention relates to a reverse connection (RC) scheme based on a Reed Solomon (RS) code with parameters [N 2 = 96, K 2 = 80, d 2 = 17] via gallois field GF 256. Two embodiments are provided, where N 2 represents a length, K 2 represents an order, and d 2 represents the minimum Hamming distance of the C2 code. Because the RS code has a length of 96, the corresponding RC scheme uses an unencoded user data array with N 2 = 96 rows. An example of the aforementioned unencoded user data array of size N 2 x U = 96 x 398 with U = 398 unencoded user bytes per row is shown in Table 6.

Figure 112009035244292-PCT00006
Figure 112009035244292-PCT00006

인코딩되지 않은 사용자 데이터 어레이의 각각의 행은 제 1 변조 인코더(602)를 통해 전달되며, 따라서 포맷 블럭(606)의 입력단에서 변조 제약을 충족하고 있다. 제 2 실시예에서, 제 1 변조 인코더(602)는 이전에 기술된 실시예(길이 64 C2 코드를 가짐)에서 사용된 것과 유사하지만, 글로벌 G=14 및 인터리빙된 I=7 제약을 갖는 레이트-199/200 인터리빙된 피나보치 코드로부터 도출된다. 각각의 행 내의 8×398=3184 데이터 비트는 모두 길이 199의 16 비트 시퀀스로 그룹화된다. 다음, 모든 16 비트 시퀀스는 변조 인코딩되어 모두 길이 200의 16 비트 시퀀스를 생성하며, 이는 행당 M=400바이트에 이를때까지 가산한다. 따라서, 제 1 변조 코드는 표 6의 인코딩되지 않은 사용자 데이터 어레이를 사이즈 N2×M=96×400 사이즈의 표 7의 변조된 사용자 데이터 어레이로 변환한다.Each row of the unencoded user data array is passed through a first modulation encoder 602 and thus meets modulation constraints at the input of the format block 606. In a second embodiment, the first modulation encoder 602 is similar to that used in the previously described embodiment (having a length 64 C2 code), but with a global G = 14 and interleaved I = 7 constraint. It is derived from a 199/200 interleaved Pinabochi code. The 8x398 = 3184 data bits in each row are all grouped into a 16-bit sequence of length 199. Then all 16 bit sequences are modulated and encoded to produce a 16 bit sequence of length 200, which is added until M = 400 bytes per row. Thus, the first modulation code converts the unencoded user data array of Table 6 into the modulated user data array of Table 7 of size N 2 x M = 96 x 400 size.

Figure 112009035244292-PCT00007
Figure 112009035244292-PCT00007

포맷 블럭(606)은 변조된 사용자 데이터 어레이를 각각의 컬럼 내의 N2-K2=16의 "빈" 구성요소를 갖는 어레이로 변환한다. M=400을 갖는 디오판투스 방정식 (M+L)×(N2 -K2)=N2×L을 충족시키기 위해 행당 C2 패리티 심볼의 개수는 L=80이어야만 하며, 이는 C2 심볼에 기반하여, 즉 바이트로 C1 코드의 차수를 위해 K1=L+M=480을 생성한다. 주목할 것은 C2 코드의 파라미터의 특정 선택을 위해 디오판투스 방정식이 M=5L로 단순화된다는 것이다. 각각의 패리티 패턴 어레이 내에는 96개의 행이 존재하므로, 패리티 패턴 어레이당 전체 96×80=7680의 C2 패리티 바이트가 존재한다. 이러한 7680의 C2 패리티 바이트를 위한 삽입 위치는 아래의 16 선형 방정식 (모듈로 96)에 의해 규정되며, 이는 컬럼 지표 x 내지 행 지표 y, 즉 y x+ci (mod 96)과 관련되며, 여기서, ci=6i (i=0, 1, 2,....., 15) 이며 0 x<480=K1이다.Format block 606 converts the modulated user data array into an array having an " empty " component of N 2 -K 2 = 16 in each column. The number of C2 parity symbols per row must be L = 80 to satisfy the Diopantus equation with M = 400 (M + L) × (N 2 -K 2 ) = N 2 × L, which is based on the C2 symbols , K 1 = L + M = 480 for the order of the C1 code in bytes. Note that the Diopantus equation is simplified to M = 5L for specific selection of parameters of the C2 code. Since there are 96 rows in each parity pattern array, there are total 96 × 80 = 7680 C2 parity bytes per parity pattern array. The insertion position for this C680 parity byte of 7680 is defined by the following 16 linear equations (modulo 96), which relates to column index x to row index y, ie y x + c i (mod 96), where , c i = 6i (i = 0, 1, 2, ....., 15) and 0 x <480 = K 1 .

C2 인코더(604)의 입력단에서, 모든 컬럼은 K2=80 변조 데이터 바이트와 N2-K2=16 빈 패리티 위치를 포함한다. 각각의 컬럼에서, C2 인코더(604)는 K2=80 변조 데이터 바이트로부터 N2-K2=16 패리티 바이트를 결정하며, 이를 빈 패리티 위치에 삽입한다. C2 인코더(604)의 출력단은 표 8에 도시된 N2×K1=96×480 사이즈의 C2 인코딩된 어레이이며, C2 패리티 바이트의 위치들은 'x'로 표시된다.At the input of the C2 encoder 604, every column contains K 2 = 80 modulation data bytes and N 2 -K 2 = 16 empty parity positions. In each column, the C2 encoder 604 determines N 2 -K 2 = 16 parity bytes from K 2 = 80 modulated data bytes and inserts it into the empty parity position. The output of the C2 encoder 604 is a C2 encoded array of size N 2 × K 1 = 96 × 480 shown in Table 8, where the positions of the C2 parity bytes are indicated by 'x'.

Figure 112009035244292-PCT00008
Figure 112009035244292-PCT00008

C1 코드는 이전에 기술된 실시예에서와 마찬가지로 선택되며, 그것은 차수 K1=480과 길이 N1=492를 가지며, GF(256)를 통해 차수 240과 길이 246의 리드 솔로몬 코드의 우수/기수 인터리빙에 의해 획득된다. 각각의 행 내의 12개의 패리티 바이트는 간단한 계통적인 제 2 변조 인코더(610)를 통해 전달되며, 이 제 2 변조 인코더는 각각의 패리티 바이트의 개시부에 단일의 비트를 부가한다. 변조 비트는 각각의 패리티 바이트 내의 제 2 비트를 반전시키고 그것을 패리티 바이트에 첨가함으로써 획득되며, 이로써 모든 행에 걸쳐 G=22 및 I=11 제약이 생성된다.The C1 code is selected as in the previously described embodiment, which has order K 1 = 480 and length N 1 = 492, and even / odd interleaving of Reed Solomon code of order 240 and length 246 via GF 256 Is obtained by. Twelve parity bytes in each row are passed through a simple systematic second modulation encoder 610, which adds a single bit to the beginning of each parity byte. The modulation bit is obtained by inverting the second bit in each parity byte and adding it to the parity byte, thereby generating G = 22 and I = 11 constraints across all rows.

구현과 관련하여 길이 96과 차수 80의 C2 코드에 기반한 제 2 실시예는 길이 64 및 차수 54의 C2 코드에 기반한 제 1 실시예에 비해 다음의 이점을 갖는다.In connection with the implementation, the second embodiment based on the C2 code of length 96 and order 80 has the following advantages over the first embodiment based on the C2 code of length 64 and order 54.

(1) 제 2 실시예의 제 1 변조 인코더(602)는 레이트-199/200 피나보치 코드에 기반하며, 그 길이는 변조된 사용자 데이터 어레이의 행 길이를 균등하게 분할하며 따라서 각각의 행에 대해 제 2 실시예에서 동일한 피나보치 인코더를 16번 적용할 수 있다.(1) The first modulation encoder 602 of the second embodiment is based on a rate-199 / 200 pinabochee code, the length of which equally divides the row length of the modulated user data array and thus for each row. In the second embodiment, the same Pinabochi encoder can be applied 16 times.

(2) 컬럼 종속 C2 인코딩은 제 2 실시예에 대해 보다 더 간단한데, 그 이유는 패리티 패턴이 매 6번째 컬럼마다 반복되며, 따라서 많아야 6번의 상이한 C2 인코더(604)가 요구되지만, 제 1 실시예에 대해서 제안된 패리티 패턴은 단지 매 32컬럼 마다 반복된다. (2) Column dependent C2 encoding is simpler than for the second embodiment, since the parity pattern is repeated every sixth column, so at most six different C2 encoders 604 are required, but the first embodiment The proposed parity pattern is repeated only every 32 columns.

본 발명은 또한 사전결정된 개수의 무제약 데이터 바이트의 부분적인 인터리빙에 기반한 RC 구조의 제 3 실시예를 제공하며, 포맷 블럭(606)에 의해 생성되는 빈 위치의 다양성을 도시하고 있다. 먼저의 두 개의 실시예에서, C2 인코더는 패리티 위치에 내로 패리티 바이트를 삽입한다. 그러나, 빈 위치들은 또한 상이한 방식으로 사용될 수 있으며, 일부에는 C2 패리티 바이트가 충진될 수 있으며 일부에는 무제약 데이터 바이트가 충진될 수 있다. 도 10은 제품 코드에 대한 RC 구조(1000)의 블럭도를 도시하며, 무제약 데이터 바이트는 포매터(606)에 의해 제공된 빈 위치들의 일부에 삽입되며, 패리티 바이트는 남아 있는 빈 위치들 내로 삽입된다. 무제약 데이터 바이트의 삽입은 C2 인코더에 앞서 발생하는데, 그 이유는 C2 인코더가 패리티 바이트를 계산하기 위한 바이트들을 필요로하기 때문이다. 무제약 데이터 바이트는 디멀티플렉서(1002)에 의해 생성된다. 디멀티플렉서(1002)는 사용자 데이터를 변조 인코더(602)의 제 1 세트에 의해 처리되는 하나의 부분과 C2 인코더(604) 이전의 삽입 블럭(1004)에 의해 처리되며 제 1 세트의 변조 인코더(602)를 우회하는 제 2 부분으로 분리한다.The present invention also provides a third embodiment of an RC structure based on partial interleaving of a predetermined number of unconstrained data bytes, illustrating the variety of empty locations generated by format block 606. In the first two embodiments, the C2 encoder inserts a parity byte into the parity position. However, empty positions may also be used in different ways, some may be filled with C2 parity bytes and some may be filled with unconstrained data bytes. 10 shows a block diagram of an RC structure 1000 for a product code, where unconstrained data bytes are inserted at some of the free locations provided by the formatter 606, and parity bytes are inserted into the remaining free locations. Insertion of unconstrained data bytes occurs prior to the C2 encoder because the C2 encoder needs bytes to calculate the parity byte. Unconstrained data bytes are generated by demultiplexer 1002. Demultiplexer 1002 processes user data by one portion processed by a first set of modulation encoders 602 and by insertion block 1004 prior to C2 encoder 604 and by a first set of modulation encoders 602. Separate into 2 parts bypassing.

제 3 실시예의 RC 구조는 GF(256)를 통해 파라미터 [N2=96, K2=81, d2=16]을 갖는 RS 코드를 C2 코드로서 사용하며, 여기서 N2는 길이를 나타내고, K2는 차수를 나타내며, d2는 C2 코드의 최소 해밍 거리를 나타낸다. 각각의 서브 데이터 세트에 대해, 사용자 데이터의 N2×(U+D)=96×399=38,304 바이트가 존재하며, 이들 바이트는 제 1 변조 인코더(602)에 의해 인코딩되는 N2×U=96×394=37,824 바이트와 C2 인코더(604) 이전의 삽입 블럭(1004)에 의해 처리되는 N2×D=96×5=480 바이트로 분리된다. 따라서, 인코딩되지 않은 사용자 데이터 어레이는 N2×U=96×394의 사이즈를 갖는다. 이러한 어레이의 각각의 행은 글로벌 G=10 제약 및 I=5 제약을 갖는 레이트-197/200 인터리빙 피나보치 코드에 의해 인코딩된다. 레이트-197/200 변조 인코더를 행당 16회 적용함으로써 8×394=3152 비트를 갖는 인코딩되지 않은 서브 데이터 세트의 각각의 행은 N2×M=96×400의 사이즈의 변조된 사용자 데이터 어레이의 행으로 매핑된다.The RC structure of the third embodiment uses an RS code with parameters [N 2 = 96, K 2 = 81, d 2 = 16] as C2 code via GF 256, where N 2 represents length and K 2 represents the order, d 2 represents the minimum Hamming distance of the C2 code. For each sub data set, there are N 2 × (U + D) = 96 × 399 = 38,304 bytes of user data, these bytes being N 2 × U = 96 encoded by the first modulation encoder 602. × 394 = 37,824 bytes, and the C2 encoder 604 is divided into N 2 × D = 96 × 5 = 480 bytes to be processed by the previous insertion block 1004. Thus, an unencoded user data array has a size of N 2 × U = 96 × 394. Each row of such an array is encoded by a rate-197 / 200 interleaving Pinabochi code with a global G = 10 constraint and an I = 5 constraint. -197/200 rate modulation encoder 16 times per line applied by 8 × 394 = each line of the non-encoded sub-set of data having 3152 bits, N 2 × M = 96 lines of the modulated user data array of the size of 400 × Is mapped to

포맷 블럭(606)은 변조된 사용자 데이터 어레이를 각각의 컬럼 내의 N2-K2+T '빈' 위치를 갖는 어레이로 변환하며, 여기서, T는 삽입 블럭(1004)에 의해 삽입되는 컬럼당 무제약 데이터 바이트의 개수이다. T=1에 대해, 각각의 컬럼에는 16개의 빈 위치가 존재하지만, T는 몇몇 다른 수와 동일할 수도 있다는 것이 인식될 것이다. 이러한 16개의 빈 위치들 중의 하나는 무제약 데이터 바이트에 의해 충진될 것이며, 나머지 N2-K2 빈 위치들은 C2 패리티 바이트가 충진될 것이다. M=400과 T=1을 갖는 디오판투스 방정식 (M+L)×(N2 - K2 + T)=N2×L을 충족시키기 위해 행당 빈 위치의 개수는 L=80이어야만 하며, 이는 C2 심볼에 기반하여, 즉 바이트로 C1 코드의 차수를 위해 K1=L+M=480을 생성한다. 각각의 패리티 패턴 어레이 내에는 96개의 행이 존재하므로, 패리티 패턴 어레이당 전체 96×80=7680의 빈 위치가 존재한다. 이러한 7680의 삽입 위치는 아래의 16 선형 방정식 (모듈로 96)에 의해 규정되며, 이는 컬럼 지표 x 내지 행 지표 y, 즉 y x+ci (mod 96)과 관련되며, 여기서, ci=6i (i=0, 1, 2,....., 15) 이며 0 x<480=K1이다.Format block 606 converts the modulated user data array into an array having N 2 -K 2 + T 'empty' positions in each column, where T is unconstrained per column inserted by insert block 1004. The number of data bytes. It will be appreciated that for T = 1 there are 16 empty positions in each column, but T may be equal to some other number. One of these 16 free locations will be filled by unconstrained data bytes and the remaining N 2 -K 2 free locations will be filled with C2 parity bytes. The number of empty positions per row must be L = 80 to satisfy the Diopantus equation with M = 400 and T = 1 (M + L) × (N 2 -K 2 + T) = N 2 × L Generate K 1 = L + M = 480 based on the C2 symbol, ie for the order of the C1 code in bytes. Since there are 96 rows in each parity pattern array, there are total 96 × 80 = 7680 empty positions per parity pattern array. The insertion position of this 7680 is defined by the following 16 linear equations (modulo 96), which is related to column index x to row index y, ie y x + c i (mod 96), where c i = 6i It is (i = 0, 1, 2 , ....., 15) , and 0 x <480 = K 1.

무제약 N2×D=96×5=480=(M+L)×T 데이터 바이트는 어레이의 제 1 6개의 행 내의 모든 480개의 빈 위치 내로, 즉 행 지표 상에서 추가적인 조건 0 y<6이 만족되는 전술한 방정식에 의해 규정되는 위치에 삽입된다. 각각의 컬럼에서, 정확히 T=1의 무제약 데이터 바이트가 삽입되며 따라서 남아 있는 N2-K2=15의 빈 위치에는 C2 패리티 바이트가 충진된다.Unconstrained N 2 × D = 96 × 5 = 480 = (M + L) × T The data byte is within all 480 empty positions in the first six rows of the array, i.e., additional condition 0 y <6 is satisfied on the row indicator It is inserted at the position defined by the above equation. In each column, exactly unconstrained data bytes of T = 1 are inserted so that the remaining N 2 -K 2 = 15 empty positions are filled with C2 parity bytes.

C2 인코더(604)의 입력단에서, 모든 컬럼은 K2=81 변조된 또는 무제약의 데이터 바이트와 N2-K2=15의 빈 패리티 위치를 포함한다. 각각의 컬럼에서, C2 인코더(604)는 K2=81 바이트로부터 N2-K2=15의 패리티 바이트를 결정하며, 이를 빈 패리티 위치에 삽입한다. C2 인코더(604)의 출력은 표 9에 도시된 바와 같이 N2×K1=96×480 사이즈의 C2 인코딩된 어레이이며, C2 패리티 바이트의 위치들은 'p'로 표시되며, 이전에 삽입된 무제약 데이터 바이트는 'd'로 표시된다. 주목할 것은 많아야 단지 6개의 상이한 컬럼 종속 C2 인코더(604)만이 필요한데, 그 이유는 패리티 패턴이 매 6개의 컬럼마다 반복되기 때문이라는 것이다. 패리티 및 무제약 바이트의 삽입은 C2 인코딩 후에 각각의 행을 따른 제 1 변조 코드의 I=5 제약 및 G=10 변조 제약을 I=9 및 G=18로 약화시킨다.At the input of the C2 encoder 604, every column contains K 2 = 81 modulated or unconstrained data bytes and an empty parity position of N 2 -K 2 = 15. In each column, C2 encoder 604 determines a parity byte of N 2 -K 2 = 15 from K 2 = 81 bytes and inserts it into the empty parity position. The output of the C2 encoder 604 is a C2 encoded array of size N 2 × K 1 = 96 × 480, as shown in Table 9, where the positions of the C2 parity bytes are denoted by 'p' and the previously inserted unconstrained. The data byte is represented by 'd'. Note that at most only six different column dependent C2 encoders 604 are needed, because the parity pattern is repeated every six columns. Insertion of parity and unconstrained bytes weakens the I = 5 and G = 10 modulation constraints of the first modulation code along each row after C2 encoding to I = 9 and G = 18.

Figure 112009035244292-PCT00009
Figure 112009035244292-PCT00009

C1 코드는 이전에 기술된 제 1 실시예 및 제 2 실시예에 대해 선택된 것과 동일한 방식으로 선택된다. C1 코드는 차수 K1=480과 길이 N1=492를 가지며, GF(256)를 통해 차수 240과 길이 246의 리드 솔로몬 코드의 우수/기수 인터리빙에 의해 획득된다. 각각의 행 내의 12개의 패리티 바이트는 간단한 계통적인 제 2 변조 인코더(610)를 통해 전달되며, 이 제 2 변조 인코더는 각각의 패리티 바이트의 개시부에 단일의 비트를 부가한다. 변조 비트는 각각의 패리티 바이트 내의 제 2 비트를 반전시키고 그것을 패리티 바이트에 첨가함으로써 획득되며, 이로써 모든 행에 걸쳐 G=18 및 I=9 제약이 생성된다.The C1 code is selected in the same manner as selected for the first and second embodiments described previously. The C1 code has order K 1 = 480 and length N 1 = 492 and is obtained by even / odd interleaving of Reed Solomon codes of order 240 and length 246 via GF 256. Twelve parity bytes in each row are passed through a simple systematic second modulation encoder 610, which adds a single bit to the beginning of each parity byte. The modulation bit is obtained by inverting the second bit in each parity byte and adding it to the parity byte, thereby generating G = 18 and I = 9 constraints across all rows.

중요한 것은 본 발명이 데이터 처리 시스템을 작동시키는 문맥에서 기술되었지만 당업자라면 본 발명의 프로세스가 컴퓨터 판독가능한 인스트럭션의 매체의 형태 및 다양한 형태로 배포될 수 있으며 본 발명이 그러한 배포를 수행하는 데 실제로 사용되는 신호 함유 매체의 특정 타입에 무관하게 적용된다는 것을 인식하고 있음에 주목해야 한다는 것이다. 컴퓨터 판독가능한 매체의 예는 플로피 디스크, 하드디스크 드라이브, RAM, CD-ROM과 같은 기록가능한 타입의 매체와 디지털 및 아날로그 통신 링크와 같은 전송 타입의 매체를 포함한다.It is important to note that while the present invention has been described in the context of operating a data processing system, those skilled in the art will appreciate that the process of the present invention may be distributed in the form of a variety of media of computer readable instructions and that the invention is used in practice to perform such distribution. It should be noted that it is recognized that it applies regardless of the specific type of signal bearing medium. Examples of computer readable media include recordable type media such as floppy disks, hard disk drives, RAM, CD-ROMs and transport type media such as digital and analog communication links.

본 발명의 설명은 예시 및 기술의 목적으로 제시되지만, 개시된 형태로 본 발명이 국한되는 것은 아니라는 것이다. 당업자라면 여러 변형 및 수정을 가할 수 있음이 명백할 것이다. 실시예는 본 발명의 원리를 최상으로 설명하고 당업자가 특정 사용을 위해 적응된 여러 변형예를 갖는 다양한 실시예의 발명을 이해할 수 있도록 선택되고 기술되었다. 또한, 비록 본 발명이 시스템 및 방법과 관련하여 전술되었지만, 본 기술분야에서의 필요성이 매체 상에 기록하는 데이터를 인코딩하기 위한 인스트럭션을 포함하는 컴퓨터 프로그램 제품으로 충족될 수 있다.The description of the invention is presented for purposes of illustration and description, but is not limited to the invention in the form disclosed. It will be apparent to those skilled in the art that many modifications and variations can be made. The embodiments have been selected and described in order to best explain the principles of the invention and to enable those skilled in the art to understand the invention of various embodiments with various modifications adapted for a particular use. In addition, although the present invention has been described above in connection with systems and methods, a need in the art may be satisfied with a computer program product including instructions for encoding data to be recorded on a medium.

Claims (10)

기록 쓰기 경로를 위한 리버스 연결 인코딩 시스템으로서,A reverse connection encoding system for write and write paths, 입력 사용자 데이터를 처리하여 제 1 데이터 어레이를 생성하도록 동작하는 사용자 데이터 어레이 생성기와, A user data array generator operative to process input user data to produce a first data array; 상기 제 1 데이터 어레이의 각각의 행에 대해 제 1 변조 제약을 부여하여 변조 제약된 데이터를 포함하는 제 2 데이터 어레이를 생성하는 제 1 변조 인코더와,A first modulation encoder for generating a second data array including modulation-constrained data by imparting a first modulation constraint on each row of the first data array; 상기 변조 제약된 데이터가 인터리빙된 상기 제 2 데이터 어레이의 각각의 컬럼 내에 사전결정된 빈 위치(empty locations)를 삽입함으로써 제 2 데이터 어레이를 처리하여 제 3 데이터 어레이를 생성하도록 동작하는 포매터(formatter)와, A formatter operative to process the second data array to create a third data array by inserting predetermined empty locations into each column of the second data array where the modulation constrained data is interleaved. , 제 3 데이터 어레이의 각각의 컬럼 내의 다수의 빈 위치의 각각에 대한 C2 패리티 바이트를 계산하여 제 4 데이터 어레이를 생성하도록 동작하는 C2 인코더와, A C2 encoder operative to calculate a C2 parity byte for each of the plurality of empty positions in each column of the third data array to produce a fourth data array; 제 4 데이터 어레이의 각각의 행에 대해 C1 패리티 심볼을 계산하여 제 5 어레이를 생성하도록 동작하는 C1 인코더와,A C1 encoder operative to calculate a C1 parity symbol for each row of the fourth data array to produce a fifth array; 제 5 데이터 어레이의 각각의 C1 패리티 심볼에 대해 제 2 변조 제약을 부여하여 제 6 데이터 어레이를 생성하도록 동작하는 제 2 변조 인코더와,A second modulation encoder operative to impose a second modulation constraint on each C1 parity symbol of the fifth data array to produce a sixth data array; 기록 매체의 트랙 상에 제 6 데이터 어레이의 행들을 기록하는 수단을 포함하는 Means for recording the rows of the sixth data array on a track of the recording medium; 리버스 연결 인코딩 시스템.Reverse connection encoding system. 제 1 항에 있어서,The method of claim 1, 다수의 무제약 데이터 바이트를 생성하도록 동작하는 디멀티플렉서와,A demultiplexer operative to generate a number of unconstrained data bytes, 상기 제 3 데이터 어레이의 각각의 컬럼 내의 빈 위치들 중의 적어도 하나의 위치 내로 상기 무제약 데이터 바이트를 삽입하고, 상기 제 3 데이터 어레이의 각각의 컬럼 내의 나머지 빈 위치들 내로 상기 계산된 C2 패리티 바이트를 삽입하도록 동작하는 삽입 블럭을 더 포함하는Insert the unconstrained data byte into at least one of the empty positions in each column of the third data array, and insert the calculated C2 parity byte into the remaining empty positions in each column of the third data array. Further comprising an insertion block operative to 리버스 연결 인코딩 시스템.Reverse connection encoding system. 제 2 항에 있어서,The method of claim 2, 상기 포매터는 상기 제 3 데이터 어레이가 M+L=K1=480, L=80 및 N2-K2=15에 의해 충족되는 디오판투스 방정식 (M+L)×(N2 - K2 + 1)=N2×L을 만족하도록 하는 빈 위치들을 결정하며,The formatter is the third data array M + L = K 1 = 480 , L = 80 and N 2 -K 2 diophantine equation (M + L) is satisfied by a = 15 × (N 2 - K 2 + 1) = determine the empty positions to satisfy N 2 × L, 상기 빈 위치들은 적어도 2의 사전결정된 최소량만큼 이격되며,The empty positions are spaced at least a predetermined minimum amount of two, 상기 빈 위치들은 y x+ci (mod 96)에 의해 식별되며, 여기서 x 및 y는 제각기 상기 제 3 데이터 어레이의 컬럼 지표 및 행 지표이며, ci=6i (i=0, 1, 2,....., 15) 이며 0 x<480=K1The empty positions are identified by y x + c i (mod 96), where x and y are the column and row indicators of the third data array, respectively, and c i = 6i (i = 0, 1, 2, ....., 15) and 0 x <480 = K 1 리버스 연결 인코딩 시스템.Reverse connection encoding system. 제 1 항에 있어서,The method of claim 1, 상기 포매터는, 또한 상기 제 3 데이터 어레이 내의 빈 위치들이 사전결정된 수의 바이트만큼 이격되도록 그리고 상기 제 2 데이터 어레이 및 상기 제 3 데이터 어레이의 각각의 차수가 디오판투스 방정식(Diophantine equation)을 만족하도록 상기 제 2 데이터 어레이를 처리하도록 동작가능한The formatter is further configured to ensure that the empty positions in the third data array are spaced apart by a predetermined number of bytes and that each order of the second data array and the third data array satisfies a Diophantine equation. Operable to process the second data array 리버스 연결 인코딩 시스템.Reverse connection encoding system. 제 4 항에 있어서,The method of claim 4, wherein 상기 디오판투스 방정식은 (M+L)×(N2 -K2)=N2×L이며, The Diopanthus equation is (M + L) × (N 2 -K 2 ) = N 2 × L, 여기서, M+L=K1 이며, M은 상기 제 2 데이터 어레이 내의 컬럼의 개수이며, L은 상기 제 2 데이터 어레이 내의 행의 개수가 포매터에 의해 상기 제 2 데이터 어레이를 처리하는 동안 확장되는 크기이며, K1는 상기 제 3 데이터 어레이 내의 컬럼의 개수이며, Where M + L = K 1 , M is the number of columns in the second data array, and L is the size by which the number of rows in the second data array is expanded by the formatter while processing the second data array. K 1 is the number of columns in the third data array, N2-K2는 상기 제 3 데이터 어레이 내의 상기 빈 위치들을 이격시키는 사전결 정된 수의 바이트의 개수이며, N2는 상기 제 2 데이터 어레이 내의 행들의 개수이며, K2는 C2 인코더의 C2 코드의 차수인N 2 -K 2 is the predetermined number of bytes separating the empty positions in the third data array, N 2 is the number of rows in the second data array, and K 2 is the C2 code of the C2 encoder Order of 리버스 연결 인코딩 시스템.Reverse connection encoding system. 제 5 항에 있어서,The method of claim 5, wherein 상기 디오판투스 방정식은 M+L=K1=480, L=75, N2=64, N2-K2=10에 의해 만족되며, The Diopanthus equation is satisfied by M + L = K 1 = 480, L = 75, N 2 = 64, N 2 -K 2 = 10, 상기 제 3 데이터 어레이의 빈 위치들이 이격되는 사전결정된 수의 바이트는 적어도 2이며,The predetermined number of bytes at which the empty positions of the third data array are spaced apart is at least two, 상기 제 3 데이터 어레이의 빈 위치들은 y x+ci (mod 64)에 의해 식별되며, 여기서 x 및 y는 각각 제 3 데이터 어레이의 컬럼 지표 및 행 지표이며, ci∈{0, 6, 13, 19, 26, 32, 38, 45, 51, 58} 및 0 x<480=k1The empty positions of the third data array are identified by y x + c i (mod 64), where x and y are the column and row indicators of the third data array, respectively, and c i ∈ {0, 6, 13 , 19, 26, 32, 38, 45, 51, 58} and 0 x <480 = k 1 리버스 연결 인코딩 시스템.Reverse connection encoding system. 제 1 항에 있어서,The method of claim 1, 코드워드 헤더로 제 6 데이터 어레이의 행을 인터리빙하여 코드워드 쿼 드(codeword quads)를 생성하도록 동작하는 코드워드 쌍 헤더 및 코드워드 쿼드 생성기와,A codeword pair header and a codeword quad generator operative to interleave rows of a sixth data array with codeword headers to generate codeword quads; 상기 코드워드 쿼드를 상기 기록 매체의 논리적 트랙에 매핑하도록 동작하는 쓰기 포매터를 더 포함하는And a write formatter operative to map the codeword quad to a logical track of the recording medium. 리버스 연결 인코딩 시스템.Reverse connection encoding system. 매체 상에 기록을 위한 데이터를 인코딩하는 방법으로서,A method of encoding data for recording on a medium, 인코딩되지 않은 사용자 데이터의 제 1 데이터 어레이를 생성하는 단계와, Creating a first data array of unencoded user data; 변조 제약된 데이터를 포함하는 제 2 데이터 어레이를 생성하기 위해 상기 제 1 데이터 어레이 내의 각각의 행에 대해 제 1 변조 제약을 부여하는 단계와, Imparting a first modulation constraint for each row in the first data array to produce a second data array comprising modulation-constrained data; 변조 제약된 데이터가 인터리빙된 상기 제 2 데이터 어레이의 각각의 컬럼 내에 사전결정된 빈 위치를 삽입함으로써 상기 제 2 데이터 어레이를 포맷팅하여 제 3 데이터 어레이를 생성하는 단계와, Formatting the second data array by inserting a predetermined empty position into each column of the second data array where modulation constrained data is interleaved to produce a third data array; 상기 제 3 데이터 어레이의 각각의 컬럼 내의 다수의 빈 위치의 각각에 대해 C2 패리티 바이트를 계산하여 제 4 데이터 어레이를 생성하는 단계와, Calculating a C2 parity byte for each of the plurality of empty positions in each column of the third data array to produce a fourth data array; 상기 제 4 데이터 어레이의 각각의 행에 대해 C1 패리티 심볼을 계산하여 제 5 데이터 어레이를 생성하는 단계와, Calculating a C1 parity symbol for each row of the fourth data array to generate a fifth data array; 상기 제 5 데이터 어레이의 각각의 C1 패리티 심볼에 대해 제 2 변조 제약을 부여하여 제 6 데이터 어레이를 생성하는 단계와, Generating a sixth data array by imparting a second modulation constraint on each C1 parity symbol of the fifth data array; 기록 매체의 트랙 상에 상기 제 6 데이터 어레이의 행을 기록하는 단계를 포함하는Recording a row of the sixth data array on a track of a recording medium. 데이터 인코딩 방법.Data encoding method. 제 8 항에 있어서,The method of claim 8, 다수의 무제약 데이터 바이트를 생성하는 단계와,Generating a plurality of unconstrained data bytes, 상기 제 3 데이터 어레이의 각각의 컬럼 내의 빈 위치들 중의 적어도 하나의 위치 내로 상기 무제약 데이터 바이트를 삽입하고 상기 계산된 C2 패리티 바이트를 상기 제 3 데이터 어레이의 각각의 컬럼 내의 나머지 빈 위치들 내로 삽입하는 단계를 더 포함하는Inserting the unconstrained data byte into at least one of the empty positions in each column of the third data array and inserting the calculated C2 parity byte into the remaining empty positions in each column of the third data array. Including more steps 데이터 인코딩 방법.Data encoding method. 프로그램가능한 컴퓨터와 함께 사용가능한 컴퓨터 판독가능한 매체의 컴퓨터 프로그램 제품으로서, A computer program product on a computer readable medium usable with a programmable computer, the computer program product comprising: 상기 컴퓨터 프로그램 제품은 상기 매체 상에 기록하기 위한 데이터를 인코딩하기 위해 구현된 컴퓨터 판독가능한 코드를 가지며, The computer program product has computer readable code implemented for encoding data for recording on the medium, 상기 컴퓨터 판독가능한 코드는, The computer readable code is 인코딩되지 않은 사용자 데이터의 제 1 데이터 어레이를 생성하는 인스트럭 션과, Instructions for creating a first data array of unencoded user data; 변조 제약된 데이터를 포함하는 제 2 데이터 어레이를 생성하기 위해 상기 제 1 데이터 어레이 내의 각각의 행에 대해 제 1 변조 제약을 부여하는 인스트럭션과, Instructions for imparting a first modulation constraint for each row in the first data array to produce a second data array that includes modulation-constrained data; 상기 변조 제약된 데이터가 인터리빙된 상기 제 2 데이터 어레이의 각각의 컬럼 내에 사전결정된 빈 위치를 삽입함으로써 상기 제 2 데이터 어레이를 포맷팅하고 제 3 데이터 어레이를 생성하는 인스트럭션과, Instructions for formatting the second data array and generating a third data array by inserting a predetermined empty position into each column of the second data array with the modulation constrained data interleaved; 상기 제 3 데이터 어레이의 각각의 컬럼 내의 다수의 빈 위치의 각각에 대해 C2 패리티 바이트를 계산하고 제 4 데이터 어레이를 생성하는 인스트럭션과, Instructions for calculating a C2 parity byte for each of a plurality of empty positions in each column of the third data array and generating a fourth data array; 각각의 행 내의 P개의 C1 패리티 심볼을 계산하고 제 5 데이터 어레이를 생성하는 인스트럭션과, Instructions for calculating P C1 parity symbols in each row and generating a fifth data array; 각 행 내의 각각의 C1 패리티 심볼에 대해 제 2 변조 제약을 부여하고 제 6 데이터 어레이를 생성하는 인스트럭션과, Instructions for imparting a second modulation constraint and generating a sixth data array for each C1 parity symbol in each row; 기록 매체의 트랙 상에 상기 제 6 데이터 어레이의 행을 기록하는 인스트럭션을 포함하는Instructions for recording the row of the sixth data array on a track of a recording medium; 컴퓨터 프로그램 제품.Computer program products.
KR1020097012034A 2007-03-23 2008-02-29 Reverse concatenation for product codes KR101120780B1 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US11/690,635 2007-03-23
US11/690,619 2007-03-23
US11/690,619 US7877662B2 (en) 2007-03-23 2007-03-23 Reverse concatenation for product codes
US11/690,635 US7873894B2 (en) 2007-03-23 2007-03-23 Reverse concatenation for product codes
PCT/EP2008/052510 WO2008116725A1 (en) 2007-03-23 2008-02-29 Reverse concatenation for product codes

Publications (2)

Publication Number Publication Date
KR20090100346A true KR20090100346A (en) 2009-09-23
KR101120780B1 KR101120780B1 (en) 2012-03-26

Family

ID=39431114

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097012034A KR101120780B1 (en) 2007-03-23 2008-02-29 Reverse concatenation for product codes

Country Status (4)

Country Link
EP (1) EP2140452A1 (en)
JP (1) JP5063709B2 (en)
KR (1) KR101120780B1 (en)
WO (1) WO2008116725A1 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7876516B2 (en) * 2009-01-09 2011-01-25 International Business Machines Corporation Rewrite-efficient ECC/interleaving for multi-track recording on magnetic tape
US8479079B2 (en) * 2010-04-09 2013-07-02 International Business Machines Corporation Integrated data and header protection for tape drives
US8854759B2 (en) 2012-04-24 2014-10-07 International Business Machines Corporation Combined soft detection/soft decoding in tape drive storage channels
US9178534B2 (en) * 2012-05-29 2015-11-03 International Business Machines Corporation Methods for partial reverse concatenation for data storage devices using composite codes
US9558782B2 (en) * 2012-05-29 2017-01-31 International Business Machines Corporation Partial reverse concatenation for data storage devices using composite codes
US9190076B2 (en) 2012-05-29 2015-11-17 International Business Machines Corporation Data format using an efficient reverse concatenated modulation code for magnetic tape recording

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3482676B2 (en) * 1994-03-15 2003-12-22 ソニー株式会社 Data recording method and data recording device
JPH11154377A (en) * 1997-09-17 1999-06-08 Sony Corp Data recording device and its method, data reproducing device and its method
US6505320B1 (en) * 2000-03-09 2003-01-07 Cirrus Logic, Incorporated Multiple-rate channel ENDEC in a commuted read/write channel for disk storage systems
US7064687B1 (en) * 2005-01-31 2006-06-20 Hitachi Global Storage Technologies Netherlands B.V. Techniques for modulating data using short block encoders

Also Published As

Publication number Publication date
WO2008116725A1 (en) 2008-10-02
JP5063709B2 (en) 2012-10-31
EP2140452A1 (en) 2010-01-06
JP2010521764A (en) 2010-06-24
KR101120780B1 (en) 2012-03-26

Similar Documents

Publication Publication Date Title
US7877662B2 (en) Reverse concatenation for product codes
JP5341207B2 (en) ECC / interleaving with high rewrite efficiency for multi-track recording on magnetic tape
US8276045B2 (en) ECC interleaving for multi-track recording on magnetic tape
US7873894B2 (en) Reverse concatenation for product codes
RU2504848C2 (en) Data processing device and method and recording medium containing program
JP2008544686A (en) Method and apparatus for low density parity check coding
KR101120780B1 (en) Reverse concatenation for product codes
JP2002319242A (en) Method and device for recording, transmission device, method and device for reproduction, reception device, recording medium, and transmission medium
CN101395670A (en) 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
KR20010081335A (en) Coding method for correcting error of digital data in high density disc
JP4543895B2 (en) Data processing method, data recording apparatus, and data transmission apparatus
CN100590716C (en) Method and apparatus for recording optical storage medium
JP3768149B2 (en) Optical recording medium, data recording apparatus and data recording method
US7159165B2 (en) Optical recording medium, data recording or reproducing apparatus and data recording or reproducing method used by the data recording or reproducing apparatus
JP2000067532A (en) Error-correcting encoding/decoding system and error- correcting encoding/decoding device
Mittelholzer et al. Reverse concatenation of product and modulation codes
KR100724211B1 (en) Coding method for correcting error of digital data in high density disc
KR100653005B1 (en) Data recording or reproducing method and high density record medium thereof
JP2004273114A (en) Data recording method for optical information storage medium

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160119

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170119

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180118

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee