WO2008116725A1 - Reverse concatenation for product codes - Google Patents

Reverse concatenation for product codes Download PDF

Info

Publication number
WO2008116725A1
WO2008116725A1 PCT/EP2008/052510 EP2008052510W WO2008116725A1 WO 2008116725 A1 WO2008116725 A1 WO 2008116725A1 EP 2008052510 W EP2008052510 W EP 2008052510W WO 2008116725 A1 WO2008116725 A1 WO 2008116725A1
Authority
WO
WIPO (PCT)
Prior art keywords
data array
modulation
parity
array
code
Prior art date
Application number
PCT/EP2008/052510
Other languages
French (fr)
Inventor
Evangelos Eleftheriou
Robert Hutchins
Thomas Mittelholzer
Paul Seger
Original Assignee
International Business Machines Corporation
Ibm United Kingdom Limited
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 International Business Machines Corporation, Ibm United Kingdom Limited filed Critical International Business Machines Corporation
Priority to KR1020097012034A priority Critical patent/KR101120780B1/en
Priority to CN2008800087703A priority patent/CN101636789B/en
Priority to EP20080709262 priority patent/EP2140452A1/en
Priority to JP2009553992A priority patent/JP5063709B2/en
Publication of WO2008116725A1 publication Critical patent/WO2008116725A1/en

Links

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/1866Error detection or correction; Testing, e.g. of drop-outs by interleaving
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • 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

Definitions

  • the present invention relates generally to encoding data to be written to recordable media, and in particular, to providing reverse concatenation coding to product codes.
  • ECC error-correcting codes
  • Tape drives and CD devices employ powerful and complexity-efficient ECC, which is based on code concatenation of an outer C2-code and an inner Cl -code.
  • the product code specified in the Linear Tape-Open, Generation 3 (LTO-3) standard is a particular instance of a concatenated coding scheme where both the inner and outer codes are RS-based codes of length 480 and 64, respectively as presented in TABLE I.
  • Each 480-byte row comprises a codeword pair.
  • the outer C2-code is an RS code over the Galois field GF (256), where N 2 denotes the length, K 2 the dimension, and d 2 the minimum Hamming distance of the code.
  • the inner Cl -code is obtained by even/odd interleaving of an [240,234,7] Reed-Solomon (RS) code over GF(256).
  • modulation codes are used to enable timing recovery from the read-back signal and to allow for short path memories in the detector without substantial performance loss.
  • the ECC encoded data is passed through a modulation encoder.
  • a modulation encoder 104 such as a 16/17 run length limited (RLL) encoder
  • FC forward concatenation
  • FC forward concatenation
  • Fig. 2 is a block diagram of such an architecture 200.
  • an RC architecture 200 the order of the ECC-encoder and modulation encoder is reversed such that the data is first passed through a modulation encoder 202 and the modulated data is ECC-encoded using a systematic encoder 204 for the error correcting code.
  • the ECC parity symbols are either encoded using a second modulation encoder 206, as illustrated, or they are inserted into the data symbol stream at the bit level or symbol level. Inserting entire parity symbols into the data symbol stream is referred to as partial symbol interleaving.
  • Parity insertion strategies result in simple schemes with no error propagation; however, such strategies may weaken the original modulation constraints. Nonetheless, there are three major benefits which make RC attractive: a) There is no error propagation through the modulation decoder. b) Because error propagation is not an issue, the first modulation code can be taken to be very long, allowing the use of capacity-efficient and high-rate modulation codes, and thereby resulting in code rate gains. c) In the read-back path, the ECC decoding block is located immediately after the channel detection block, which enables soft information to be passed from the detector to the decoder on a bit-by-bit basis. This creates the appropriate framework for using novel ECC techniques, which are based on turbo and LDPC codes and which hold the promise of large performance improvements. Furthermore, in this framework, parity post-processing schemes can easily be implemented.
  • ECC Error Correction Code
  • a preferred embodiment of the present invention provides a reverse concatenation encoding system for a recording write path.
  • the system comprises means for generating a first data array of unencoded user data, a first modulation encoder to enforce a first modulation constraint on a respective row of the first data array and generate a second data array comprising modulation-constrained data.
  • the system further includes a formatter operable to process the second data array by inserting predetermined empty locations in each column interleaved with the modulation-constrained data and generate a third data array.
  • a C2-encoder is operable to compute a C2-parity byte for each of a plurality of the empty locations in each column of the third data array and generate a fourth data array.
  • a Cl -encoder is operable to compute a Cl -parity symbol for each row of the fourth data array and generate a fifth array.
  • the system further includes a second modulation encoder operable to impose a second modulation constraint on each Cl -parity symbol of the fifth data array and generate a sixth data array.
  • the system further includes means for recording the rows of the sixth data array onto the tracks of a recording medium.
  • Another preferred embodiment of the present invention provides a method for encoding data for recording onto media, comprising: generating a first data array of unencoded user data; imposing a first modulation constraint on each row in the first data array to generate a second data array comprising modulation-constrained data; formatting the second data array by inserting predetermined empty locations in each column of the second data array interleaved with the modulation-constrained data and generating a third data array; computing a C2-parity byte for each of a plurality of the empty locations in each column of the third data array and generating a fourth data array; computing a Cl -parity symbol for each row of the fourth data array and generating a fifth data array; imposing a second modulation constraint on each Cl -parity symbol of the fifth data array and generating a sixth data array; and recording the rows of the sixth data array onto tracks of a recording medium.
  • a further preferred embodiment of the present invention provides a computer program product of a computer readable medium usable with a programmable computer, the computer program product having computer-readable code embodied therein for encoding data for recording onto media, the computer-readable code comprising instructions for: generating a first array of unencoded user data, the first data array; imposing a first modulation constraint on each row in the first data array to generate a second data array comprising modulation-constrained data; formatting the second data array by inserting predetermined empty locations in each column of the second data array interleaved with the modulation-constrained data and generating a third data array; computing a C2-parity byte for each empty location in each column of the third data array and generating a fourth data array; computing P Cl -parity symbols in each row and generating a fifth data array; enforcing a second modulation constraint on each Cl -parity symbol in each row and generating a sixth data array; and recording the rows of the sixth data array onto the tracks of
  • FIG. 1 is a block diagram of prior art data encoding with forward concatenation
  • Fig. 2 is a block diagram of prior art data encoding with reverse concatenation
  • Fig. 3 is a block diagram of a prior art LTO-3 write path
  • Fig. 4 is a high level block diagram of the reverse concatenation architecture of the present invention.
  • Fig. 5 A is a block diagram of a write path in which the reverse concatenation architecture of the present invention may be incorporated;
  • Fig. 5B is a block diagram of a portion of a write path of one embodiment of the present invention
  • Fig. 6 is a more detailed block diagram of the reverse concatenation architecture of the present invention
  • Fig. 7 illustrates a dataset array in which empty locations have been provided by the formatter of the present invention
  • Fig. 8 is a functional diagram of a systematic second modulation encoder of the present invention.
  • Fig. 9 illustrates the composition of a codeword quad following the encoding of data in accordance with the present invention.
  • Fig. 10 is a block diagram of an alternative embodiment in which both unconstrained data bytes and parity bytes are inserted into empty locations provided by the formatter.
  • Fig. 3 is a block diagram of a write path 300 according to the LTO-3 standard.
  • Host records are compressed 302 and a data set and DSIT generator 304 generates subdata sets from the stream of symbols.
  • An ECC encoder 306 provides ECC encoding and passes the encoded subdata sets to a codeword pair header and codeword quad generator 308.
  • the resulting codeword quads are passed to a write formatter 310 in which a 16-track bit stream is generated.
  • the bit stream is processed in a data randomizer 312 and then modulation encoded 314.
  • the RLL encoded bit stream is transformed into a synchronized bit stream by inserting sync and formatting patterns in a sync generation block 316 and the synchronized bit stream is passed through a write equalizer 318, providing a bit stream which may then be recorded onto the media.
  • the present invention 400 provides a reverse concatenation architecture in which the data is first passed through a serial/parallel block 401 to form an unencoded array. Each row of the array is modulation encoded in a first modulation encoder 402 and then an ECC is applied in an ECC encoder 404. Each row is either processed through a second modulation encoder 406 or subjected to partial symbol interleaving (not shown) to meet the required modulation constraints.
  • Fig. 5A is a block diagram of a write path 500 in which the reverse concatenation architecture of the present invention may be incorporated.
  • host records in the write path 500 of the present invention are compressed 502 and a data set and DSIT generator 504 generates subdata sets from the stream of symbols. The subdata sets are then randomized in a row- wise fashion in a data randomizer 506 and the randomized data passed to a first row-wise modulation encoder 508.
  • C2 and Cl ECC encoders 510 encode the modulation encoded subdata sets, as will be described in more detail.
  • a second modulation encoder 512 provides further modulation encoding to the encoded subdata sets after which the modulated data is processed by an interleaving and track assignment block 520.
  • the resulting multi-track stream of Cl -codewords and codeword headers is transformed into a synchronized bit stream by inserting sync and formatting patterns in a sync generation block 514 and the synchronized bit stream is passed through a write equalizer 516, providing a write stream which may then be recorded onto the media 518.
  • Fig. 5B is a block diagram of a portion of a write path of an embodiment of the present invention in which the interleaving and track assignment block 520 processes subdata sets into rows in the format for LTO-3 tape media.
  • the interleaving and track assignment block 520 includes a codeword pair header and codeword quad generator 522 in which the modulated data from the second modulation encoder 512 are interleaved with codeword headers to form codeword quads.
  • the interleaving and track assignment block 520 further includes a write formatter 524 which maps the codeword quads into logical tracks.
  • the resulting 16-track bit stream is transformed into a synchronized bit stream by inserting sync and formatting patterns in the sync generation block 514 and the synchronized bit stream is passed through a write equalizer 516, providing a bit stream which may then be recorded onto the tape 530.
  • a write equalizer 516 providing a bit stream which may then be recorded onto the tape 530.
  • Fig. 6 is a more detailed block diagram of the RC architecture 600 of the present invention.
  • the architecture 600 includes a set of high-rate modulation encoders 602, one for each of the N2 rows (also referred to herein collectively as "the modulation encoder 602") which receive data from a serial/parallel block 601, and an outer, column-by-column C2-encoder 604.
  • the architecture 600 further provides a formatting block 606 interposed between the modulation encoders 602 and the C2 encoder 604.
  • the format block 606 reorganizes the modulation encoded user data array such that its size is based on the length rather than the dimension of the outer code.
  • C2 encoder 604 Following the C2 encoder 604 is an inner Cl encoder 608 for each row to generate parity bytes 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 second set of modulation encoders 610 are then multiplexed with in a multiplexer 612 to form the completed subdata set.
  • the unencoded user data array of the present invention consists of M rows which are generated by the serial/parallel block 601.
  • TABLE II is a modification of the subdata set array of the LTO-3 standard (TABLE I).
  • the array contains 520 user bytes more than the conventional LTO-3 subdata set.
  • Each row of the unencoded user data array is passed through the first modulation encoder 602 which imposes a modulation constraint at the input of the formatting block 606.
  • the modulated user data array still contains M rows modulation-constrained data which are a few bytes longer due to the first modulation encoder 602.
  • a dummy zero-bit is added at the beginning of the length-214 bit-sequence and, then, all sequences are encoded resulting in 15 bit-sequences all of length 216, which add up to a total of 405 bytes per row.
  • the first modulation code transforms the unencoded user data array of TABLE II into the modulation-constrained user data array of TABLE III. TABLE III
  • one selects for the first modulation code a code, which supports partial interleaving of unconstrained symbols such that predetermined global- G and interleaved-/ constraints are satisfied after partial symbol interleaving.
  • the formatting block 606 transforms the modulated user data array of TABLE III into an array which has N2 - K2 empty components in each column.
  • the N2 - K2 empty locations are the place-holding positions where the parity symbols to be generated by the C2 encoder 604 will be introduced.
  • This Diophantine equation may make it necessary to adjust the parameters of the Cl-code.
  • the parity bytes should be separated by a predetermined minimum amount in order to not fully destroy the modulation constraint of the first modulation code.
  • 64 x 75 4800 C2-parity byte locations per parity pattern array.
  • the insertion locations are specified by the following 10 linear equations (modulo 64), which relate the column indices x to the row indices
  • each column contains Ni - 10 parity locations and such that the pattern repeats within as few columns as possible. In the example, the parity pattern repeats every 32 nd column. This particular parity pattern array is illustrated in Fig. 7 in which the plotted dots represent the 10 empty parity insertion locations for each column.
  • each column may be encoded into a codeword of the rate-54/64 RS C2-code.
  • the C2-encoder is also preferably be varying from column to column.
  • the C2 code may be a Reed-Solomon code although other codes may also be used.
  • the code is a maximum-distance separable code which has the useful property that every set of Ki components forms an information set. Thus, every set of Ki components uniquely determines the remaining Ni - Ki parity symbols.
  • every column contains Ki modulated data bytes and Ni - Ki empty parity locations.
  • the C2-encoder 604 determines the Ni - Ki parity bytes from the Ki modulated data bytes and inserts them at the empty parity locations.
  • the output of the C2-encoder 604 is a C2-encoded array of size Ni x Ki, as illustrated in TABLE IV. The C2-encoded array satisfies a predetermined modulation constraint along each row.
  • the C2-encoder is an encoder for a rate K 2 ZNi Reed-Solomon code over the Galois field GF (2 m ) and, in particular, the codeword components consist of m-bit symbols.
  • the rows of the C2-encoded array are then passed through the Cl -encoders 608 for the Cl -code.
  • the resulting Cl -parity symbols may either be processed by the second modulation encoder 610, as illustrated in Fig. 6, or be partially interleaved bit- wise or byte -wise into the data stream of the Cl-encoder 608.
  • the even and odd parity bytes in a row are represented by asterisks and dots, respectively.
  • the Cl -encoder may be obtained from an even/odd interleaved Reed-Solomon code of dimension K ⁇ and length Ni over GF (2 8 ).
  • the Cl -encoder may be derived from a linear code over a Galois field GF(2 r ), i.e., with r-bit symbols, and which has dimension mK ⁇ over GF (2).
  • the Cl -encoder may also be derived from a low-density parity-check code over a Galois field GF(2 r ) and which has dimension mK ⁇ over GF(2).
  • the 12 Cl -parity bytes in each row are preferably passed through a systematic second modulation encoder 610 which adds a single modulation bit to the beginning of each of the Cl -parity bytes in each row.
  • the modulation bit is preferably determined by inverting the second bit pi in each Cl -parity byte, which characterizes a secondary systematic encoder, and prepending it to the parity byte.
  • codeword quads are assembled by a multiplexer 612 in a manner similar to the LTO-3 standard. As illustrated in Fig. 9, consecutive rows of C1/C2 encoded subdata sets 902A, 902B, such as the first and second rows, are interleaved with encoded headers 906A, 906B to form the first and second codeword pairs 902A, 902B, respectively.
  • the two codeword pairs 902A, 902B comprise a codeword quad 900.
  • the rate of the RC modulation scheme is:
  • a typical forward concatenation architecture is based on a 16/17 code.
  • RS Reed-Solomon
  • Each row of the unencoded user data array is passed through the first modulation encoder 602 and, thus, satisfies a modulation constraint at the input of the formatting block 606.
  • N 2 - K 2 16 "empty" components in each column.
  • M 400
  • the 12 parity bytes in each row are passed through a simple systematic second modulation encoder 610, which adds a single bit at the beginning of each parity byte.
  • the second embodiment which is based on a C2-code of length 96 and dimension 80, has advantages over the previously described first embodiment, which is based on a C2-code of length 64 and dimension 54:
  • the first modulation encoder 602 of the second embodiment is based on a rate- 199/200 Fibonacci code, whose length evenly divides the row-length of the modulated user data array and, thus, for each row one can apply 16 times the identical Fibonacci encoder in the second embodiment.
  • the column-dependent C2-encoding is simpler for the second embodiment because the parity pattern repeats every sixth column and, thus, at most six different C2-encoders 604 are required whereas for the first embodiment the proposed parity pattern repeats only every 32 columns.
  • the present invention further provides a third embodiment of an RC architecture which is based on partial interleaving of a predetermined number of unconstrained data bytes and illustrates the versatility of the empty locations generated by the formatting block 606.
  • the C2-encoder inserts parity bytes into the empty locations.
  • the empty locations may also be used in a different way: some may be filled with C2-parity bytes and some may be filled with unconstrained data bytes.
  • Fig. 10 illustrates a block diagram of a RC architecture 1000 for product codes in which unconstrained data bytes are inserted into some of the empty locations provided by the formatter 606 and parity bytes are inserted into the remaining empty locations.
  • the insertion of the unconstrained data bytes occurs prior to the C2-encoder because the C2-encoder needs these bytes for computing the parity bytes.
  • the unconstrained data bytes are generated by a de-multiplexer 1002.
  • the de-multiplexer 1002 splits the user data into one part that is processed by the first set of modulation encoders 602 and a second part that bypasses the first set of modulation encoders 602 and is processed by the insertion block 1004 prior to the C2-encoder 604.
  • the Cl -code is selected in the same fashion as it is selected for the previously described first and second embodiments.
  • the 12 parity bytes in each row are passed through a simple systematic second modulation encoder ME2 610, which adds a single bit at the beginning of each parity byte.

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
TECHNICAL FIELD
The present invention relates generally to encoding data to be written to recordable media, and in particular, to providing reverse concatenation coding to product codes.
BACKGROUND ART
Data storage systems which use removable media and typically record mass data, such as tape drives and optical disks, rely on strong error-correcting codes (ECC). Tape drives and CD devices employ powerful and complexity-efficient ECC, which is based on code concatenation of an outer C2-code and an inner Cl -code. The product code specified in the Linear Tape-Open, Generation 3 (LTO-3) standard is a particular instance of a concatenated coding scheme where both the inner and outer codes are RS-based codes of length 480 and 64, respectively as presented in TABLE I.
TABLE I
LTO-3 product code
Figure imgf000003_0001
A subdata set is a 64 x 480 array of bytes, i.e., it contains 30,720 bytes, with 54 x 468=25,272 data bytes, resulting in a code rate of 0.8227. Each 480-byte row comprises a codeword pair. More specifically, the outer C2-code is an
Figure imgf000003_0002
RS code over the Galois field GF (256), where N2 denotes the length, K2 the dimension, and d2 the minimum Hamming distance of the code. The inner Cl -code is obtained by even/odd interleaving of an [240,234,7] Reed-Solomon (RS) code over GF(256).
In magnetic and optical recording, modulation codes are used to enable timing recovery from the read-back signal and to allow for short path memories in the detector without substantial performance loss. Thus, in the write path prior to writing ECC encoded data onto the media, the ECC encoded data is passed through a modulation encoder. Referring to Fig. 1, a method by which the 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, is known as a forward concatenation (FC) architecture 100. To improve ECC performance, there is a long block interleaver 106 in the LTO-3 write path, denoted as the Interleaving & Track Assignment block. This block 106 buffers 64 consecutive product subdata sets thereby accumulating a total of 64 x 64 = 4096 rows. These 4096 rows are assigned to the 16 tracks 108 of the tape media in a predefined order. For each track there is a rate-16/17 modulation encoder, which encodes the assigned rows and guarantees the predetermined modulation constraints, namely, a global G= 13 and an interleaved 7=11 constraint.
Recently, reverse concatenation (RC) architectures have received increased attention in the hard disk drive (HDD) industry. Fig. 2 is a block diagram of such an architecture 200. In an RC architecture 200, the order of the ECC-encoder and modulation encoder is reversed such that the data is first passed through a modulation encoder 202 and the modulated data is ECC-encoded using a systematic encoder 204 for the error correcting code. The ECC parity symbols are either encoded using a second modulation encoder 206, as illustrated, or they are inserted into the data symbol stream at the bit level or symbol level. Inserting entire parity symbols into the data symbol stream is referred to as partial symbol interleaving. Parity insertion strategies result in simple schemes with no error propagation; however, such strategies may weaken the original modulation constraints. Nonetheless, there are three major benefits which make RC attractive: a) There is no error propagation through the modulation decoder. b) Because error propagation is not an issue, the first modulation code can be taken to be very long, allowing the use of capacity-efficient and high-rate modulation codes, and thereby resulting in code rate gains. c) In the read-back path, the ECC decoding block is located immediately after the channel detection block, which enables soft information to be passed from the detector to the decoder on a bit-by-bit basis. This creates the appropriate framework for using novel ECC techniques, which are based on turbo and LDPC codes and which hold the promise of large performance improvements. Furthermore, in this framework, parity post-processing schemes can easily be implemented.
It would be desirable for the same benefits to also be provided in the framework of tape recording. However, the ECC used in HDDs has a different structure than the ECC used in tape recording. In HDDs, ECC is essentially based on a single high-rate Reed-Solomon (RS) code whereas in tape, large powerful product codes are used which require a new RC architecture. RC has been proposed for 1 -dimensional ECC architectures, where the ECC typically consists of a single code such as a Reed-Solomon code or an LDPC code. However, the known RC schemes have not addressed the particular issues which arise from ECC which is based on concatenated or product codes. With a concatenated or product code, the output of the inner Cl code is mapped to the tracks/channels and, thus, all rows should satisfy a predetermined modulation constraint. Therefore, a significant drawback is presented, which is illustrated with respect to the LTO-3 product code. Referring again to TABLE I, putting the modulation encoder prior to a systematic ECC encoder will result in only K2 rows which meet the modulation constraint except for the Cl -parity part. The remaining N2 - K2 rows (rows 54-63), which consist of C2-parity bytes, do not meet the modulation constraint. The Cl -parity part poses a minor problem because it can be treated separately, as in the case of 1 -dimensional ECC. However, for the C2-parity part no efficient solution has yet been proposed. Thus, a substantial number of rows would not satisfy a modulation constraint and would need further processing. Following a 1 -dimensional RC strategy, these rows would need to be passed through a second modulation encoder or be dealt with using a parity insertion strategy. Both techniques would result in undesired features: a) a second modulation code would lead to error propagation and does not allow soft-information to be passed from the channel detector to the ECC decoder on a bit-by-bit basis; and b) partial symbol interleaving would result in poor performance in case of a dead track because entire faulty rows would be subdivided and spread into other rows causing many errors in many rows.
The aforementioned mentioned drawbacks might be avoided if the outer C2-encoder would commute with the first modulation encoder; that is, if the order of encoding would not matter. But this is not the case and to date a reverse concatenation architecture has not been proposed for product codes.
SUMMARY OF THE INVENTION
A preferred embodiment of the present invention provides a reverse concatenation encoding system for a recording write path. The system comprises means for generating a first data array of unencoded user data, a first modulation encoder to enforce a first modulation constraint on a respective row of the first data array and generate a second data array comprising modulation-constrained data. The system further includes a formatter operable to process the second data array by inserting predetermined empty locations in each column interleaved with the modulation-constrained data and generate a third data array. A C2-encoder is operable to compute a C2-parity byte for each of a plurality of the empty locations in each column of the third data array and generate a fourth data array. A Cl -encoder is operable to compute a Cl -parity symbol for each row of the fourth data array and generate a fifth array. The system further includes a second modulation encoder operable to impose a second modulation constraint on each Cl -parity symbol of the fifth data array and generate a sixth data array. The system further includes means for recording the rows of the sixth data array onto the tracks of a recording medium.
Another preferred embodiment of the present invention provides a method for encoding data for recording onto media, comprising: generating a first data array of unencoded user data; imposing a first modulation constraint on each row in the first data array to generate a second data array comprising modulation-constrained data; formatting the second data array by inserting predetermined empty locations in each column of the second data array interleaved with the modulation-constrained data and generating a third data array; computing a C2-parity byte for each of a plurality of the empty locations in each column of the third data array and generating a fourth data array; computing a Cl -parity symbol for each row of the fourth data array and generating a fifth data array; imposing a second modulation constraint on each Cl -parity symbol of the fifth data array and generating a sixth data array; and recording the rows of the sixth data array onto tracks of a recording medium.
A further preferred embodiment of the present invention provides a computer program product of a computer readable medium usable with a programmable computer, the computer program product having computer-readable code embodied therein for encoding data for recording onto media, the computer-readable code comprising instructions for: generating a first array of unencoded user data, the first data array; imposing a first modulation constraint on each row in the first data array to generate a second data array comprising modulation-constrained data; formatting the second data array by inserting predetermined empty locations in each column of the second data array interleaved with the modulation-constrained data and generating a third data array; computing a C2-parity byte for each empty location in each column of the third data array and generating a fourth data array; computing P Cl -parity symbols in each row and generating a fifth data array; enforcing a second modulation constraint on each Cl -parity symbol in each row and generating a sixth data array; and recording the rows of the sixth data array onto the tracks of a recording medium.
BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a block diagram of prior art data encoding with forward concatenation;
Fig. 2 is a block diagram of prior art data encoding with reverse concatenation;
Fig. 3 is a block diagram of a prior art LTO-3 write path;
Fig. 4 is a high level block diagram of the reverse concatenation architecture of the present invention;
Fig. 5 A is a block diagram of a write path in which the reverse concatenation architecture of the present invention may be incorporated;
Fig. 5B is a block diagram of a portion of a write path of one embodiment of the present invention; Fig. 6 is a more detailed block diagram of the reverse concatenation architecture of the present invention;
Fig. 7 illustrates a dataset array in which empty locations have been provided by the formatter of the present invention;
Fig. 8 is a functional diagram of a systematic second modulation encoder of the present invention;
Fig. 9 illustrates the composition of a codeword quad following the encoding of data in accordance with the present invention; and
Fig. 10 is a block diagram of an alternative embodiment in which both unconstrained data bytes and parity bytes are inserted into empty locations provided by the formatter.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
ARCHITECTURE OVERVIEW
Fig. 3 is a block diagram of a write path 300 according to the LTO-3 standard. Host records are compressed 302 and a data set and DSIT generator 304 generates subdata sets from the stream of symbols. An ECC encoder 306 provides ECC encoding and passes the encoded subdata sets to a codeword pair header and codeword quad generator 308. The resulting codeword quads are passed to a write formatter 310 in which a 16-track bit stream is generated. The bit stream is processed in a data randomizer 312 and then modulation encoded 314. The RLL encoded bit stream is transformed into a synchronized bit stream by inserting sync and formatting patterns in a sync generation block 316 and the synchronized bit stream is passed through a write equalizer 318, providing a bit stream which may then be recorded onto the media.
As illustrated in the high-level overview of Fig. 4, the present invention 400 provides a reverse concatenation architecture in which the data is first passed through a serial/parallel block 401 to form an unencoded array. Each row of the array is modulation encoded in a first modulation encoder 402 and then an ECC is applied in an ECC encoder 404. Each row is either processed through a second modulation encoder 406 or subjected to partial symbol interleaving (not shown) to meet the required modulation constraints.
Fig. 5A is a block diagram of a write path 500 in which the reverse concatenation architecture of the present invention may be incorporated. As with the LTO-3 write path of Fig. 3, host records in the write path 500 of the present invention are compressed 502 and a data set and DSIT generator 504 generates subdata sets from the stream of symbols. The subdata sets are then randomized in a row- wise fashion in a data randomizer 506 and the randomized data passed to a first row-wise modulation encoder 508. C2 and Cl ECC encoders 510 encode the modulation encoded subdata sets, as will be described in more detail. A second modulation encoder 512 provides further modulation encoding to the encoded subdata sets after which the modulated data is processed by an interleaving and track assignment block 520. The resulting multi-track stream of Cl -codewords and codeword headers is transformed into a synchronized bit stream by inserting sync and formatting patterns in a sync generation block 514 and the synchronized bit stream is passed through a write equalizer 516, providing a write stream which may then be recorded onto the media 518.
Fig. 5B is a block diagram of a portion of a write path of an embodiment of the present invention in which the interleaving and track assignment block 520 processes subdata sets into rows in the format for LTO-3 tape media. In this embodiment, the interleaving and track assignment block 520 includes a codeword pair header and codeword quad generator 522 in which the modulated data from the second modulation encoder 512 are interleaved with codeword headers to form codeword quads. The interleaving and track assignment block 520 further includes a write formatter 524 which maps the codeword quads into logical tracks. The resulting 16-track bit stream is transformed into a synchronized bit stream by inserting sync and formatting patterns in the sync generation block 514 and the synchronized bit stream is passed through a write equalizer 516, providing a bit stream which may then be recorded onto the tape 530. It will be appreciated that the present invention is not limited to assembling the Cl -codewords and codeword headers in this way but that they may be assembled in other ways.
Fig. 6 is a more detailed block diagram of the RC architecture 600 of the present invention. The architecture 600 includes a set of high-rate modulation encoders 602, one for each of the N2 rows (also referred to herein collectively as "the modulation encoder 602") which receive data from a serial/parallel block 601, and an outer, column-by-column C2-encoder 604. The architecture 600 further provides a formatting block 606 interposed between the modulation encoders 602 and the C2 encoder 604. As will be described in more detail, the format block 606 reorganizes the modulation encoded user data array such that its size is based on the length rather than the dimension of the outer code. Following the C2 encoder 604 is an inner Cl encoder 608 for each row to generate parity bytes 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 second set of modulation encoders 610 are then multiplexed with in a multiplexer 612 to form the completed subdata set.
USER DATA REORGANIZATION
In contrast to the conventional encoding of the C2-code of length N2 in which the user data is organized in K2 rows, where K2 is the dimension of C2, the unencoded user data array of the present invention consists of M rows which are generated by the serial/parallel block 601. An example of such an unencoded user data array is illustrated in TABLE II, which is a modification of the subdata set array of the LTO-3 standard (TABLE I).
TABLE II
Unencoded user data array with
Figure imgf000011_0001
rows
Figure imgf000011_0002
In particular, the array contains 520 user bytes more than the conventional LTO-3 subdata set. Each row of the unencoded user data array is passed through the first modulation encoder 602 which imposes a modulation constraint at the input of the formatting block 606. At this point, the modulated user data array still contains M rows modulation-constrained data which are a few bytes longer due to the first modulation encoder 602. In one embodiment, the first modulation encoder 602 may be derived from a rate- 215/216 interleaved Fibonacci modulation code which satisfies the modulation constraints of a global G = 14 and an interleaved I = I constraint. Each row contains 8 x 403 = 3224 data bits, which are grouped into 15 bit-sequences of length: 214, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215. A dummy zero-bit is added at the beginning of the length-214 bit-sequence and, then, all sequences are encoded resulting in 15 bit-sequences all of length 216, which add up to a total of 405 bytes per row. The first modulation code transforms the unencoded user data array of TABLE II into the modulation-constrained user data array of TABLE III. TABLE III
Modulated user data array with
Figure imgf000012_0001
rows
Figure imgf000012_0002
More generally, one selects for the first modulation code a code, which supports partial interleaving of unconstrained symbols such that predetermined global- G and interleaved-/ constraints are satisfied after partial symbol interleaving.
FORMATTING BLOCK
The formatting block 606 transforms the modulated user data array of TABLE III into an array which has N2 - K2 empty components in each column. The N2 - K2 empty locations are the place-holding positions where the parity symbols to be generated by the C2 encoder 604 will be introduced. In the design phase of the formatting block, a parity pattern array is determined. Given the parity pattern array, the formatting block 606 interleaves the empty cells into the modulated user data array of TABLE III in a row-by-row manner, thereby extending the length of each row by L bytes. This interleaving operation is similar to partial symbol interleaving and weakens the modulation constraint of the first modulation code. In the described example, the insertion of 8-bit parity symbols into the array will weaken the global and interleaved constraints to G = 22 and /= 11.
To find a parity pattern array, the dimensions of the modulated user data array should satisfy a Diophantine equation, namely, (M + L) x (Ni - Ki) = Ni x L, where L is the number of C2-parity symbols per row and M + L = K\ is the dimension of the Cl code on a C2-symbols basis (that is, the dimension of the Cl-code must be expressed in C2-symbol units, e.g., in bytes). This Diophantine equation may make it necessary to adjust the parameters of the Cl-code. In the LTO-3 based example above, M + L = Ki = 480 satisfies the equation with L = 15 C2-parity byte positions in each row. Furthermore, the parity bytes should be separated by a predetermined minimum amount in order to not fully destroy the modulation constraint of the first modulation code. In the example, a spacing of at least 2 byte locations is enough to obtain the (GJ)=(22,11) constraint. As there are 64 rows in each parity pattern array, there is a total of 64 x 75 = 4800 C2-parity byte locations per parity pattern array. The insertion locations are specified by the following 10 linear equations (modulo 64), which relate the column indices x to the row indices
Y- y x + C1 (mod 64), where C1 e {0, 6, 13, 19, 26, 32, 38, 45, 51, 58} and 0 x < 480= Ku The parity pattern is preferably selected such that each column contains Ni -
Figure imgf000013_0001
10 parity locations and such that the pattern repeats within as few columns as possible. In the example, the parity pattern repeats every 32nd column. This particular parity pattern array is illustrated in Fig. 7 in which the plotted dots represent the 10 empty parity insertion locations for each column.
COLUMN-DEPENDENT C2-ENCODING
Because each column now contains 10 parity place-holding locations, each column may be encoded into a codeword of the rate-54/64 RS C2-code. Moreover, because the parity locations vary from column to column, the C2-encoder is also preferably be varying from column to column.
The C2 code may be a Reed-Solomon code although other codes may also be used. Preferably, the code is a maximum-distance separable code which has the useful property that every set of Ki components forms an information set. Thus, every set of Ki components uniquely determines the remaining Ni - Ki parity symbols. At the input of the C2-encoder 604, every column contains Ki modulated data bytes and Ni - Ki empty parity locations. In each column, the C2-encoder 604 determines the Ni - Ki parity bytes from the Ki modulated data bytes and inserts them at the empty parity locations. The output of the C2-encoder 604 is a C2-encoded array of size Ni x Ki, as illustrated in TABLE IV. The C2-encoded array satisfies a predetermined modulation constraint along each row.
TABLE IV
C2-Encoded Subdata Set ('x' Denotes C2 Parity Locations)
0 1 2 3 4 5 6 7 8 . . . 479
0 X X
1 X X
2 X X
63 X X
More generally, the C2-encoder is an encoder for a rate K2ZNi Reed-Solomon code over the Galois field GF (2m) and, in particular, the codeword components consist of m-bit symbols.
Cl -ENCODING
The rows of the C2-encoded array are then passed through the Cl -encoders 608 for the Cl -code. The resulting Cl -parity symbols may either be processed by the second modulation encoder 610, as illustrated in Fig. 6, or be partially interleaved bit- wise or byte -wise into the data stream of the Cl-encoder 608. In the above LTO-3-based example, the Cl-code of dimension ATi = 480 and length M = 492 is obtained as an even/odd interleaved Reed-Solomon code of dimension 240 and length 246 over GF(256). Such a code generates 2 x 6 = 12 interleaved RS-parity bytes per row and which are appended to the end of each row, as illustrated in TABLE V. The even and odd parity bytes in a row are represented by asterisks and dots, respectively. TABLE V
Cl/C2-Encoded Subdata Set
0 1 2 3 4 5 6 7 8 . . . 479 480 481 ... 490 491
0 X X
1 X X
2 X X
63 X X
More generally, the Cl -encoder may be obtained from an even/odd interleaved Reed-Solomon code of dimension K\ and length Ni over GF (28). The Cl -encoder may be derived from a linear code over a Galois field GF(2r), i.e., with r-bit symbols, and which has dimension mK\ over GF (2). The Cl -encoder may also be derived from a low-density parity-check code over a Galois field GF(2r) and which has dimension mK\ over GF(2).
FINAL MODULATION CODING
Fig. 8 illustrates the manner of how to impose the (G, I )= (22,11) constraint throughout the appended Cl -parity bytes, the 12 Cl -parity bytes in each row are preferably passed through a systematic second modulation encoder 610 which adds a single modulation bit to the beginning of each of the Cl -parity bytes in each row. The modulation bit is preferably determined by inverting the second bit pi in each Cl -parity byte, which characterizes a secondary systematic encoder, and prepending 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 passed from the channel bit detector to the ECC decoder on a bit-by-bit basis when the data is read. Moreover, the second modulation encoder 610 preserves the G = 22 and /= 11 constraint. Other, non-systematic modulation schemes may be used, such as by applying the 16/17-code of LTO-3. However, passing soft information might then not be performed on a bit-by-bit basis.
After the C1/C2 encoded subdata sets are generated, codeword quads are assembled by a multiplexer 612 in a manner similar to the LTO-3 standard. As illustrated in Fig. 9, consecutive rows of C1/C2 encoded subdata sets 902A, 902B, such as the first and second rows, are interleaved with encoded headers 906A, 906B to form the first and second codeword pairs 902A, 902B, respectively. The two codeword pairs 902A, 902B comprise a codeword quad 900.
Features of the proposed RC architecture for concatenated codes include (i) the user data reorganization into N2 rows; (ii) the formatting block based on the predetermined C2-parity pattern; and (iii) the column-dependent C2-encoding. As a result, the benefits from the features of the reverse concatenation scheme discussed in the Background may be obtained in the present invention; namely, lack of error propagation in the demodulator, improved rate of the modulation code and enabling novel soft decoding techniques based on parity post-processor or turbo coding schemes.
The RC architecture of the present invention adds 16 + 12 = 28 bits for modulation to each row. Each row contains 403 x 8 = 3224 data bits. Thus, the rate of the RC modulation scheme is:
Figure imgf000016_0001
A typical forward concatenation architecture is based on a 16/17 code. Thus:
Figure imgf000016_0002
Consequently, the RC architecture of the present invention has 5.34% higher rate than the standard LTO-3 format while maintaining the same 7 = 11 constraint and weakening the
G-constraint from 13 to 22. Furthermore, the RC architecture of the present invention may be extended to 10-bit ECC and longer Cl codes at the cost of weakening the modulation constraints to (G,/)=(24,12).
By choosing longer C2-codes of essentially the same rate as the LTO-3 code, the performance of the C2-code may be improved. The present invention provides a second embodiment of the reverse concatenation (RC) scheme, which is based on the Reed-Solomon (RS) code with parameters [N2 = 96, K2 = 80, d2= 17] over the Galois field GF(256), where N2 denotes the length, Ki the dimension, and di the minimum Hamming distance of the C2-code. Since the RS-code has length 96, the corresponding RC scheme employs an unencoded user data array with Ni = 96 rows. An example of such an unencoded user data array of size Ni x U= 96 x 398, with U= 398 unencoded user bytes per row, is illustrated in TABLE VI.
TABLE VI
Example of an unencoded user data array with N2 = 96 rows
Figure imgf000017_0001
Each row of the unencoded user data array is passed through the first modulation encoder 602 and, thus, satisfies a modulation constraint at the input of the formatting block 606. In this second embodiment, the first modulation encoder 602 is similar to that used in the previously described embodiment (having a length 64 C2-code) but is derived from a rate- 199/200 interleaved Fibonacci code with a global G = 14 and interleaved / = 7 constraint. The 8 x 398 = 3184 data bits in each row are grouped into 16 bit-sequences all of length 199. Then, all 16 sequences are modulation encoded resulting in 16 bit-sequences all of length 200, which add up to M = 400 bytes per row. Thus, the first modulation code transforms the unencoded user data array of TABLE VI into the modulated user data array of TABLE VII of size N2 x M= 96 x 400. TABLE VII
Example of modulated user data array with N2=96 rows
Figure imgf000018_0001
The formatting block 606 transforms the modulated user data array into an array which has N2 - K2 = 16 "empty" components in each column. To meet the Diophantine equation (M + L) x (N2- K2) = N2 x L with M = 400, the number of C2-parity symbols per row must be L = 80 resulting in Ki = L + M = 480 for the dimension of the Cl code on a C2-symbols basis, i.e., in bytes. Note that for the specific selection of parameters of the C2-code, the Diophantine equation simplifies to M = 5L. As there are 96 rows in each parity pattern array, there is a total of 96 x 80 = 7680 C2-parity bytes per parity pattern array. The insertion locations for these 7680 C2-parity bytes are specified by the following 16 linear equations (modulo 96), which relate the column indices x to the row indices y, namely, y x + C1 (mod 96) where C1 = 61 for / = 0, 1, 2, ..., 15 and 0 x < 480 = K1.
At the input of the C2-encoder 604, every column contains K2= 80 modulated data bytes and N2- K2 = 16 empty parity locations. In each column, the C2-encoder 604 determines the N2 - K2 = 16 parity bytes from the K2 = 80 modulated data bytes and inserts them at the empty parity locations. The output of the C2-encoder 604 is a C2-encoded array of size N2 x K\ = 96 x 480 which is shown in TABLE VIII, where the locations of the C2-parity bytes are denoted by 'x'. TABLE VIII
Example of C2-encoded user data array with N2 = 96 rows
Figure imgf000019_0001
The Cl -code is selected as in the previously described embodiment; it has dimension Kγ = 480 and length Ni = 492 and is obtained by even/odd interleaving of a Reed-Solomon code of dimension 240 and length 246 over GF(256). The 12 parity bytes in each row are passed through a simple systematic second modulation encoder 610, which adds a single bit at the beginning of each parity byte. The modulation bit is obtained by inverting the second bit in each parity byte and by prepending it to the parity byte, which results in a G = 22 and an / = 11 constraint throughout all the rows.
In terms of implementation, the second embodiment, which is based on a C2-code of length 96 and dimension 80, has advantages over the previously described first embodiment, which is based on a C2-code of length 64 and dimension 54:
(i) The first modulation encoder 602 of the second embodiment is based on a rate- 199/200 Fibonacci code, whose length evenly divides the row-length of the modulated user data array and, thus, for each row one can apply 16 times the identical Fibonacci encoder in the second embodiment. (ii) The column-dependent C2-encoding is simpler for the second embodiment because the parity pattern repeats every sixth column and, thus, at most six different C2-encoders 604 are required whereas for the first embodiment the proposed parity pattern repeats only every 32 columns.
The present invention further provides a third embodiment of an RC architecture which is based on partial interleaving of a predetermined number of unconstrained data bytes and illustrates the versatility of the empty locations generated by the formatting block 606. In the first two embodiments, described above, the C2-encoder inserts parity bytes into the empty locations. However, the empty locations may also be used in a different way: some may be filled with C2-parity bytes and some may be filled with unconstrained data bytes. Fig. 10 illustrates a block diagram of a RC architecture 1000 for product codes in which unconstrained data bytes are inserted into some of the empty locations provided by the formatter 606 and parity bytes are inserted into the remaining empty locations. The insertion of the unconstrained data bytes occurs prior to the C2-encoder because the C2-encoder needs these bytes for computing the parity bytes. The unconstrained data bytes are generated by a de-multiplexer 1002. The de-multiplexer 1002 splits the user data into one part that is processed by the first set of modulation encoders 602 and a second part that bypasses the first set of modulation encoders 602 and is processed by the insertion block 1004 prior to the C2-encoder 604. The RC architecture of the third embodiment uses as C2-code an RS code with parameters [N2 = 96, K2 = 81, di = 16] over the Galois field GF(256), where N2 denotes the length, K2 the dimension, and d2 the minimum Hamming distance of the C2-code. For each subdata set, there are N2 x (U + D) = 96 x 399 = 38,304 bytes of user data, which are split into N2 x U= 96 x 394 = 37,824 bytes that are encoded by the first modulation encoder 602 and N2 x D = 96 x 5 = 480 bytes that are processed by the insertion block 1004 prior to the C2-encoder 604. Thus, the unencoded user data array has size N2 x U = 96 x 394. Each row of this array is encoded by a rate- 197/200 interleaved Fibonacci code with global G = IO and interleaved / = 5 constraint. Applying the rate- 197/200 modulation encoder 16 times per row, each row of the unencoded subdata set with its 8 x 394 = 3152 bits is mapped into a row of the modulated user data array of size N2 x M= 96 x 400.
The formatting block 606 transforms the modulated user data array into an array with N2 - K2 + T "empty" locations in each column, where T is the number of unconstrained data bytes per column that are inserted by the insertion block 1004. For T = I, there are 16 empty locations in each column, although it will be appreciated that T may equal some other number. One of these
16 empty locations will be filled by an unconstrained data byte and the remaining N2 - K2 empty locations will be filled with C2-parity bytes. To meet the Diophantine equation (M + L) x (N2 - K2 + T) = N2 x L with M = 400 and 7=1 , the number of empty locations per row must be L = 80, resulting in K\ = L + M = 480 for the dimension of the Cl-code on a C2-symbols basis, i.e., in bytes. As there are 96 rows in each parity pattern array, there is a total of 96 χ 80 = 7680 empty locations per parity pattern array. The 7680 insertion locations are specified by the following 16 linear equations (modulo 96), which relate the column indices x to the row indices y, namely, y x + C1 (mod 96) where C1 = 61 for / = 0, 1, 2, ..., 15 and 0 x < 480 = Ki.
The unconstrained N2 x D = 96 x 5 = 480 = (M + L) x T data bytes are inserted into all the 480 empty locations within the first six rows of the array, i.e., at locations specified by the above equations subject to the additional condition 0 y < 6 on the row index. In each column, exactly T=I unconstrained data byte is inserted and there remain Ni - Ki = 15 empty locations to be filled with C2-parity bytes.
At the input of the C2-encoder 604, every column contains ^2 = 81 modulated or unconstrained data bytes and N2 - K2 = 15 empty parity locations. In each column, the C2-encoder 604 determines the Ni - K2 = 15 parity bytes from these ^2 = 81 bytes and inserts them at the empty parity locations. The output of the C2-encoder 604 is a C2-encoded array of size N2 x K\ = 96 x 480, shown in TABLE IX in which the locations of the C2-parity bytes are denoted by 'p' and the previously inserted unconstrained data bytes are denoted by 'd'. Note that at most only six different column-dependent C2-encoders 604 are required because the parity pattern repeats every sixth column. The insertion of parity and unconstrained data bytes weakens the / = 5 and G =10 modulation constraints of the first modulation code along each row to / = 9 and G =18 after C2-encoding.
TABLE IX
Example of C2-encoded user data array with N2 = 96 rows
Figure imgf000022_0001
Figure imgf000023_0001
The Cl -code is selected in the same fashion as it is selected for the previously described first and second embodiments. The C-I code has dimension K\ = 480 and length Ni = 492 and is obtained by even/odd interleaving of a Reed-Solomon code of dimension 240 and length 246 over GF(256). The 12 parity bytes in each row are passed through a simple systematic second modulation encoder ME2 610, which adds a single bit at the beginning of each parity byte. The modulation bit may be obtained by inverting the second bit in each parity byte and by prepending it to the parity byte, which results in an / =9 and G = 18 constraint throughout all the rows.
It is important to note that while the present invention has been described in the context of a fully functioning data processing system, those of ordinary skill in the art will appreciate that the processes of the present invention are capable of being distributed in the form of a computer readable medium of instructions and a variety of forms and that the present invention applies regardless of the particular type of signal bearing media actually used to carry out the distribution. Examples of computer readable media include recordable -type media such as a floppy disk, a hard disk drive, a RAM, and CD-ROMs and transmission-type media such as digital and analog communication links.
The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art. The embodiment was chosen and described in order to best explain the principles of the invention, the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated. Moreover, although described above with respect to systems and methods, the need in the art may also be met with computer program products containing instructions for encoding data for recording onto media.

Claims

1. A reverse concatenation encoding system for a recording write path, comprising: a user data array generator operable to process input user data and generate a first data array; a first modulation encoder operable to impose a first modulation constraint on a respective row of the first data array and generate a second data array comprising modulation-constrained data; a formatter operable to process the second data array by inserting predetermined empty locations in each column of the second data array interleaved with the modulation-constrained data and generate a third data array; a C2-encoder operable to compute a C2-parity byte for each of a plurality of the empty locations in each column of the third data array and generate a fourth data array; a Cl -encoder operable to compute a Cl -parity symbol for each row of the fourth data array and generate a fifth data array; a second modulation encoder operable to impose a second modulation constraint on each Cl -parity symbol of the fifth data array and generate a sixth data array; and means for recording the rows of the sixth data array onto tracks of a recording medium.
2. The system of claim 1, wherein the C2-encoder is operable to compute a C2-parity byte for each empty location in each column of the third data array.
3. The system of claim 1, further comprising: a de -multiplexer operable to generate a plurality of unconstrained data bytes; and an insertion block operable to insert the unconstrained data bytes into at least one of the empty locations in each column of the third data array and insert the computed C2-parity bytes into the remaining empty locations in each column of the third data array.
4. The system of claim 3, wherein: the formatter determines the empty locations such that the third data array satisfies a Diophantine equation (M + L) x (N2 - K2 + 1) = N2 x L which is satisfied by M + L = Ki = 480, L = 80 and N2 - ^2 = 15; the empty locations are separated by a predetermined minimum amount of at least two; and the empty locations are identified by y x + C1 (mod 96), where x and y are column and row indices of the third data array, respectively, C1 = 6i for i = 0, 1, 2, .... 15 and 0 x < 480= ^i.
5. The system of claim 1, wherein the formatter is further operable to process the second data array so that the empty locations in the third data array are separated by a predetermined number of bytes and so that respective dimensions of the second data array and third data array satisfy a Diophantine equation.
6. The system of claim 5, wherein the Diophantine equation is (M + L) x (N2 - K2) = N2 x L wherein:
M + L = Ki, where M is the number of columns in the second data array, L is the extent by which the number of rows in the second data array is extended during processing of the second data array by the formatter and Ki is the number of columns in the third data array; and
N2 - K2 is the number of predetermined number of bytes separating the empty locations in the third data array, where N2 is the number of rows in the second data array and K2 is the dimension of a C2-code of the C2-encoder.
7. The system of claim 6, wherein: the Diophantine equation is satisfied by M + L = Ki = 480, L = 75, N2 = 64 and N2 - K2 = 10; the predetermined number of bytes by which the empty locations of the third data array are separated is at least two; and the empty locations of the third data array are identified by y x + C1 (mod 64), where x and y are column and row indices of the third data array, respectively, C1 e {0, 6,
13, 19, 26, 32, 38, 45, 51, 58} and 0 x < 480= ^i.
8. The system of claim 6, wherein: the Diophantine equation is satisfied by M + L = K\ = 480, L = 80 and N2 - K2 = 16; the predetermined number of bytes by which the empty locations of the third data array are separated is at least two; and the empty locations of the third data array are identified by y x + C1 (mod 96), where x and y are column and row indices of the third data array, respectively, C1 = 6i for z= 0, 1, 2, .... 15 and 0 x < 480= ^i.
9. The system of claim 1, wherein the first modulation encoder is derived from a modulation code which supports partial symbol interleaving such that predetermined global-G and interleaved-/ modulation constraints are satisfied after partial symbol interleaving.
10. The system of claim 1, wherein the first modulation encoder is derived from a rate-215/216 interleaved Fibonacci modulation code which satisfies modulation constraints of a global G = 14 and an interleaved /= 7 constraint prior to partial symbol interleaving.
11. The system of claim 1 , wherein each first modulation encoder is derived from a rate- 199/200 interleaved Fibonacci modulation code which satisfies modulation constraints of a global G= 14 and an interleaved I=I constraint prior to partial symbol interleaving.
12. The system of claim 1, wherein the first modulation encoder is derived from a rate- 197/200 interleaved Fibonacci modulation code which satisfies modulation constraints of a global G = IO and an interleaved / = 5 constraint prior to partial symbol interleaving.
13. The system of claim 1, wherein the C2-encoder comprises a rate K2/N2 Reed-Solomon encoder over the Galois field GF (2m), wherein Ni is the number of rows in the second data array and K2 is the dimension of a C2-code of the C2-encoder and codeword components are m-bit symbols.
14. The system of claim 13, wherein the Cl -encoder comprises an encoder for an even/odd interleaved Reed-Solomon code of dimension
Figure imgf000028_0001
and length N over GF(28), where
Figure imgf000028_0002
is the number of columns in the third data array and N is the length of a Cl -code of the Cl -encoder.
15. The system of claim 13, wherein: the Cl -encoder generates N -
Figure imgf000028_0003
interleaved Reed-Solomon parity symbols, where K\ is the number of columns in the third data array and N is the length of the C 1 code; and the Cl -encoder appends the parity symbols to the end of each row.
16. The system of claim 1, wherein the Cl -encoder is derived from a linear code over a Galois field GF(2r) and which has dimension mK\ over GF(2) and the codeword components are r-bit symbols.
17. The system of claim 1, wherein the Cl -encoder is derived from a low-density parity-check code over a Galois field GF(2r) and which has dimension mK\ over GF(2).
18. The system of claim 1, wherein the second modulation encoder comprises a systematic modulation encoder.
19. The system of claim 18, wherein the second modulation encoder comprises an inverter for inverting the second bit of each Cl -parity symbol and prepending the inverted bit to the Cl -parity symbol.
20. The system of claim 1, further comprising: a codeword pair header and codeword quad generator operable to interleave the rows of the sixth data array with codeword headers and generate codeword quads; and a write formatter operable to map the codeword quads to logical tracks of the recording medium.
21. A method for encoding data for recording onto media, comprising: generating a first data array of unencoded user data; imposing a first modulation constraint on each row in the first data array to generate a second data array comprising modulation-constrained data; formatting the second data array by inserting predetermined empty locations in each column of the second data array interleaved with the modulation-constrained data and generating a third data array; computing a C2-parity byte for each of a plurality of the empty locations in each column of the third data array and generating a fourth data array; computing a Cl -parity symbol for each row of the fourth data array and generating a fifth data array; imposing a second modulation constraint on each Cl -parity symbol of the fifth data array and generating a sixth data array; and recording the rows of the sixth data array onto tracks of a recording medium.
22. The method of claim 21, wherein computing a C2-parity byte for each of a plurality of the empty locations comprises computing a C2-parity byte for each of the empty locations in each column of the third array.
23. The method of claim 21 , further comprising: generating a plurality of unconstrained data bytes; and inserting the unconstrained data bytes into at least one of the empty locations in each column of the third array and inserting the computed C2-parity bytes into the remaining empty locations in each column of the third array.
24. The method of claim 23, wherein: the empty locations are determined such that the third array satisfies a Diophantine equation (M + L) x (N2 - K2 + 1) = N2 x L which is satisfied by M + L = Ki =
480, L = 80 and N2 - K2 = 15; the empty locations are separated by a predetermined minimum amount of at least two; and the empty locations are identified by y x + C1 (mod 96), where x and y are column and row indices of the third array, respectively, C1 = 6i for i = 0, 1, 2, .... 15 and
0 x < 48O= ^i.
25. The method of claim 21, further comprising determining the empty locations so that the empty locations are separated by a predetermined number of bytes and so that respective dimensions of the second data array and the third data array satisfy a Diophantine equation.
26. The method of claim 25, wherein the Diophantine equation is (M + L) x (N2 - K2) = N2 x L wherein:
M + L = Ki, where M is the number of columns in the second data array, L is the extent by which the number of rows in the second data array is extended during processing of the second data array by the formatter and Ki is the number of columns in the third data array; and
N2 - K2 is the number of predetermined number of bytes separating the empty locations in the third data array, where Ni is the number of rows in the second data array and Ki is the dimension of a C2-code of the C2 encoder.
27. The method of claim 26, wherein: the Diophantine equation is satisfied by M+ L Ki = 480, L = 75, Ni = 64 and Ni -
K2 = IQ; the predetermined number of bytes is at least two; and the empty locations are identified by y x + C1 (mod 64), where x and y are column and row indices of the third data array, respectively, C1 e {0, 6, 13, 19, 26, 32, 38, 45, 51, 58} and 0 x < 480= ^i.
28. The method of claim 26, wherein: the Diophantine equation is satisfied by M + L = K\ = 480, L = 80 and Ni - Ki = 16; the predetermined number of bytes by which the empty locations are separated is at least two; and the empty locations of the third data array are identified by y x + C1 (mod 96), where x and y are column and row indices of the third data array, respectively, C1 = 6i for z= 0, 1, 2, .... 15 and 0 x < 480= ^i.
29. The method of claim 21, wherein imposing the first modulation constraint comprises deriving the first modulation constraint from a modulation code which supports partial symbol interleaving such that predetermined global- G and interleaved-/ modulation constraints are satisfied after partial symbol interleaving.
30. The method of claim 21, wherein imposing the first modulation constraint comprises deriving the first modulation constraint from a rate-215/216 interleaved Fibonacci modulation code which satisfies modulation constraints of a global G = 14 and an interleaved /= 7 constraint prior to partial symbol interleaving.
31. The method of claim 21, wherein imposing the first modulation constraint comprises deriving the the first modulation constraint from a rate- 199/200 interleaved Fibonacci modulation code which satisfies modulation constraints of a global G= 14 and an interleaved I=I constraint prior to partial symbol interleaving.
32. The method of claim 21, wherein imposing the first modulation constraint comprises deriving the first modulation constraint from a rate- 197/200 interleaved Fibonacci modulation code which satisfies modulation constraints of a global G = IO and an interleaved /= 5 constraint prior to partial symbol interleaving.
33. The method of claim 21, wherein computing the C2-parity bytes comprises applying a rate K2/N2 Reed-Solomon code over a Galois field GF(2m), wherein Ni is the number of rows in the second data array and Ki is the dimension of a C2-code and codeword components are m-bit symbols.
34. The method of claim 13, wherein computing the Cl-parity symbols comprises applying an even/odd interleaved Reed-Solomon code of dimension K\ and length N over GF(28), where K\ is the number of columns in the third data array and N is the length of a Cl code of the Cl -encoder.
35. The method of claim 33, further comprising: generating N -
Figure imgf000032_0001
interleaved Reed-Solomon Cl-parity symbols, where
Figure imgf000032_0002
is the number of columns in the third data array and N is the length of the Cl code; and appending each C 1 -parity symbol to the end of each row.
36. The method of claim 21, wherein the computing the Cl-parity bytes comprises applying a linear code over a Galois field GF(2r) and which has dimension mK\ over GF(2) and the codeword components are r-bit symbols.
37. The method of claim 21, wherein computing the Cl -parity bytes comprises applying a low-density parity-check code over a Galois field GF(2r) and which has dimension mKi over GF(2).
38. The method of claim 21, wherein imposing the second modulation constraint on the Cl -parity symbols comprises systematic modulation encoding each row of the fifth array.
39. The method of claim 28, wherein imposing the second modulation constraint comprises inverting the second bit of each Cl -parity symbol and prepending the inverted bit to the
Cl -parity symbol.
40. The method of claim 21 , further comprising: interleaving the rows of the sixth array with codeword headers and generate codeword quads; and mapping the codeword quads to logical tracks of the recording medium.
41. A computer program product of a computer readable medium usable with a programmable computer, the computer program product having computer-readable code embodied therein for encoding data for recording onto media, the computer-readable code comprising instructions for: generating a first array of unencoded user data, the first data array; imposing a first modulation constraint on each row in the first data array to generate a second data array comprising modulation-constrained data; formatting the second data array by inserting predetermined empty locations in each column of the second data array interleaved with the modulation-constrained data and generating a third data array; computing a C2-parity byte for each empty location in each column of the third data array and generating a fourth data array; computing P Cl -parity symbols in each row and generating a fifth data array; enforcing a second modulation constraint on each Cl -parity symbol in each row and generating a sixth data array; and recording the rows of the sixth data array onto the tracks of a recording medium.
42. The computer program product of claim 41, wherein the instructions for computing a C2-parity byte for each of a plurality of the empty locations comprise instructions for computing a C2-parity byte for each of the empty locations in each column of the third data array.
43. The computer program product of claim 41 , further comprising instructions for: generating a plurality of unconstrained data bytes; and inserting the unconstrained data bytes into at least one of the empty locations in each column of the third array and inserting the computed C2-parity bytes into the remaining empty locations in each column of the third data array.
44. The computer program product of claim 43, wherein: the empty locations are determined such that the third data array satisfies a Diophantine equation (M + L) * (Ni - K2 + 1) = Ni x L which is satisfied by M + L = Ki = 480, L = 80 and N2 - K2 = 15; the empty locations are separated by a predetermined minimum amount of at least two; and the empty locations are identified by y x + C1 (mod 96), where x and y are column and row indices of the third array, respectively, C1 = 6/ for i = 0, 1, 2, .... 15 and 0 x < 48O= ^i.
45. The computer program product of claim 41, further comprising instructions for determining the empty locations so that the empty locations are separated by a predetermined number of bytes and so that respective dimensions of the second data array and the third data array satisfy a Diophantine equation.
46. The computer program product of claim 45, wherein the Diophantine equation is (M + L) x (N2 - K2) = N2 x L wherein:
M + L = Ki, where M is the number of columns in the second data array, L is the extent by which the number of rows in the second data array is extended during processing of the second data array by the formatter and K\ is the number of columns in the third data array; and
N2 - K2 is the number of predetermined number of bytes separating the empty locations in the third data array, where N2 is the number of rows in the second data array and K2 is the dimension of a C2-code of the C2 encoder.
47. The computer program product of claim 41, wherein the instructions for imposing the first modulation constraint comprise instructions for deriving the first modulation constraint from a modulation code which supports partial symbol interleaving such that predetermined global- G and interleaved-/ modulation constraints are satisfied after partial symbol interleaving.
48. The computer program product of claim 41, wherein the instructions for imposing the first modulation constraint comprise instructions for deriving the first modulation constraint from a rate-215/216 interleaved Fibonacci modulation code which satisfies modulation constraints of a global G = 14 and an interleaved I = I constraint prior to partial symbol interleaving.
49. The computer program product of claim 41, wherein the instructions for modulation encoding each row in the first array comprises instructions for enforcing a first modulation constraint derived from a rate- 199/200 interleaved Fibonacci modulation code which satisfies modulation constraints of a global G= 14 and an interleaved I=I constraint prior to partial symbol interleaving.
50. The computer program product of claim 41, wherein the instructions for imposing the first modulation constraint comprise instructions for deriving the first modulation constraint from a rate- 197/200 interleaved Fibonacci modulation code which satisfies modulation constraints of a global G = IO and an interleaved / = 5 constraint prior to partial symbol interleaving.
51. The computer program product of claim 41, wherein the instructions for computing the C2-parity bytes comprise instructions for applying a rate K2/N2 Reed-Solomon code over a Galois field GF(2m), wherein N2 is the number of rows in the second data array and K2 is the dimension of a C2-code and codeword components are m-bit symbols.
52. The computer program product of claim 51, wherein the instructions for computing the Cl -parity bytes comprises instructions for applying an even/odd interleaved Reed-Solomon code of dimension Kγ and length N over GF(28), where Kγ is the number of columns in the third data array and N is the length of a Cl code of the Cl -encoder.
53. The computer program product of claim 51 , further comprising instructions for: generating N - Ki interleaved Reed-Solomon Cl -parity symbols, where Ki is the number of columns in the third data array and N is the length of the Cl code; and appending each Cl -parity symbol to the end of each row.
54. The computer program product of claim 41, wherein the instructions for computing the Cl -parity bytes comprise instructions for applying a linear code over a Galois field GF (2r) and which has dimension mKι over GF(2) and the codeword components are r-bit symbols.
55. The computer program product of claim 41, wherein the instructions for computing the Cl -parity bytes comprise instructions for applying a low-density parity-check code over a Galois field GF (2r) and which has dimension mKi over GF (2).
56. The computer program product of claim 41, wherein the instructions for imposing the second modulation constraint on the Cl -parity symbols comprise instructions for systematic modulation encoding each row of the fifth array.
57. The computer program product of claim 56, wherein the instructions for imposing the second modulation constraint comprise instructions for inverting the second bit of each Cl -parity symbol and prepending the inverted bit to the Cl -parity symbol.
58. The computer program product of claim 41, further comprising instructions for: interleaving the rows of the sixth array with codeword headers and generate codeword quads; and mapping the codeword quads to logical tracks of the recording medium.
PCT/EP2008/052510 2007-03-23 2008-02-29 Reverse concatenation for product codes WO2008116725A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020097012034A KR101120780B1 (en) 2007-03-23 2008-02-29 Reverse concatenation for product codes
CN2008800087703A CN101636789B (en) 2007-03-23 2008-02-29 Reverse concatenation for product codes
EP20080709262 EP2140452A1 (en) 2007-03-23 2008-02-29 Reverse concatenation for product codes
JP2009553992A JP5063709B2 (en) 2007-03-23 2008-02-29 Reverse concatenated coding system, method, and computer program

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
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 2007-03-23
US11/690,635 US7873894B2 (en) 2007-03-23 2007-03-23 Reverse concatenation for product codes

Publications (1)

Publication Number Publication Date
WO2008116725A1 true WO2008116725A1 (en) 2008-10-02

Family

ID=39431114

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2008/052510 WO2008116725A1 (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)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012514823A (en) * 2009-01-09 2012-06-28 インターナショナル・ビジネス・マシーンズ・コーポレーション ECC / interleaving with high rewrite efficiency for multi-track recording on magnetic tape
JP2013525933A (en) * 2010-04-09 2013-06-20 インターナショナル・ビジネス・マシーンズ・コーポレーション Method, apparatus, and program for integrating data and header protection for tape drives
WO2013178474A1 (en) * 2012-05-29 2013-12-05 International Business Machines Corporation Partial reverse concatenated modulation codes for recording
US20130326307A1 (en) * 2012-05-29 2013-12-05 International Business Machines Corporation Methods for partial reverse concatenation for data storage devices using composite codes
CN103455282A (en) * 2012-05-29 2013-12-18 国际商业机器公司 Magnetic tape recording in data format using an efficient reverse concatenated modulation code
US8854759B2 (en) 2012-04-24 2014-10-07 International Business Machines Corporation Combined soft detection/soft decoding in tape drive storage channels

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0673031A2 (en) * 1994-03-15 1995-09-20 Sony Corporation Data recording and/or reproducing method and apparatus and tape-shaped recording medium
GB2329510A (en) * 1997-09-17 1999-03-24 Sony Corp Differing formats data recording and reproducing
WO2001067447A2 (en) * 2000-03-09 2001-09-13 Cirrus Logic Inc Multiple-rate channel endec in a commuted read/write channel for disk storage systems

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7064687B1 (en) * 2005-01-31 2006-06-20 Hitachi Global Storage Technologies Netherlands B.V. Techniques for modulating data using short block encoders

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0673031A2 (en) * 1994-03-15 1995-09-20 Sony Corporation Data recording and/or reproducing method and apparatus and tape-shaped recording medium
GB2329510A (en) * 1997-09-17 1999-03-24 Sony Corp Differing formats data recording and reproducing
WO2001067447A2 (en) * 2000-03-09 2001-09-13 Cirrus Logic Inc Multiple-rate channel endec in a commuted read/write channel for disk storage systems

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
ADRIAAN J VAN WIJNGAARDEN ET AL: "Maximum Runlength-Limited Codes with Error Control Capabilities", IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, IEEE SERVICE CENTER, PISCATAWAY, US, vol. 19, no. 4, 1 April 2001 (2001-04-01), XP011055362, ISSN: 0733-8716 *
ALEKHNOVICH M ED - INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS: "Linear diophantine equations over polynomials and soft decoding of Reed-Solomon codes", 43RD. ANNUAL SYMPOSIUM ON FOUNDATIONS OF COMPUTER SCIENCE.(FOCS 2002). VANCOUVER, BC, CANADA, NOV. 16 - 19, 2002; [ANNUAL SYMPOSIUM ON FOUNDATIONS OF COMPUTER SCIENCE], LOS ALAMITOS, CA : IEEE COMP. SOC, US, 16 November 2002 (2002-11-16), pages 439 - 448, XP010628298, ISBN: 978-0-7695-1822-0 *
ALEKHNOVICH M: "Linear Diophantine Equations Over Polynomials and Soft Decoding of Reed-Solomon Codes", IEEE TRANSACTIONS ON INFORMATION THEORY, US, vol. 51, no. 7, 1 July 2005 (2005-07-01), pages 2257 - 2265, XP011135571, ISSN: 0018-9448 *
ECMA: "ECMA-319: Data Interchange on 12,7 mm 384-Track Magnetic Tape Cartridges - Ultrium-1 Format", INTERNET CITATION, XP002395655, Retrieved from the Internet <URL:http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-319.pd> [retrieved on 20060822] *
JAQUETTE G A: "LTO: a better format for midrange tape", IBM JOURNAL OF RESEARCH AND DEVELOPMENT, INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW YORK, NY, US, vol. 47, no. 4, 1 July 2003 (2003-07-01), pages 429 - 444, XP002395659, ISSN: 0018-8646 *
LUCA REGGIANI ET AL: "On Reverse Concatenation and Soft Decoding Algorithms for PRML Magnetic Recording Channels", IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, IEEE SERVICE CENTER, PISCATAWAY, US, vol. 19, no. 4, 1 April 2001 (2001-04-01), XP011055357, ISSN: 0733-8716 *
MARIO BLAUM ET AL: "High-Rate Modulation Codes for Reverse Concatenation", IEEE TRANSACTIONS ON MAGNETICS, IEEE SERVICE CENTER, NEW YORK, NY, US, vol. 43, no. 2, 1 February 2007 (2007-02-01), pages 740 - 743, XP011157715, ISSN: 0018-9464 *
POO T L ET AL: "On reverse concatenation and the rate of average intersection", PROCEEDINGS 2003 IEEE INTERNATIONAL SYMPOSIUM ON INFORMATION THEORY. ISIT 03. YOKOHAMA, JAPAN, JUNE 29 - JULY 4, 2003; [IEEE INTERNATIONAL SYMPOSIUM ON INFORMATION THEORY], NEW YORK, NY : IEEE, US, 29 June 2003 (2003-06-29), pages 75 - 75, XP010657103, ISBN: 978-0-7803-7728-8 *

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012514823A (en) * 2009-01-09 2012-06-28 インターナショナル・ビジネス・マシーンズ・コーポレーション ECC / interleaving with high rewrite efficiency for multi-track recording on magnetic tape
JP2013525933A (en) * 2010-04-09 2013-06-20 インターナショナル・ビジネス・マシーンズ・コーポレーション Method, apparatus, and program for integrating data and header protection for tape drives
DE112011100199B4 (en) * 2010-04-09 2016-06-23 International Business Machines Corporation Integrated data and header protection for tape drives
US9202518B2 (en) 2012-04-24 2015-12-01 Globalfoundries Inc. Combined soft detection/soft decoding in tape drive storage channels
US9318148B2 (en) 2012-04-24 2016-04-19 Globalfoundries Inc. Combined soft detection/soft decoding in tape drive storage channels
US8854759B2 (en) 2012-04-24 2014-10-07 International Business Machines Corporation Combined soft detection/soft decoding in tape drive storage channels
CN103455282A (en) * 2012-05-29 2013-12-18 国际商业机器公司 Magnetic tape recording in data format using an efficient reverse concatenated modulation code
US9178534B2 (en) 2012-05-29 2015-11-03 International Business Machines Corporation Methods for partial reverse concatenation for data storage devices using composite codes
US9183852B2 (en) 2012-05-29 2015-11-10 International Business Machines Corporation Magnetic tape recording in data format using an efficient reverse concatenated modulation code
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
CN104350544A (en) * 2012-05-29 2015-02-11 国际商业机器公司 Partial reverse concatenated modulation codes for recording
CN103455282B (en) * 2012-05-29 2016-04-13 国际商业机器公司 For data being write method and the tape drive system of tape
US20130326307A1 (en) * 2012-05-29 2013-12-05 International Business Machines Corporation Methods for partial reverse concatenation for data storage devices using composite codes
WO2013178474A1 (en) * 2012-05-29 2013-12-05 International Business Machines Corporation Partial reverse concatenated modulation codes for recording
US9558782B2 (en) 2012-05-29 2017-01-31 International Business Machines Corporation Partial reverse concatenation for data storage devices using composite codes
US10484018B2 (en) 2012-05-29 2019-11-19 International Business Machines Corporation Partial reverse concatenation for data storage devices using composite codes
US10680655B2 (en) 2012-05-29 2020-06-09 International Business Machines Corporation Partial reverse concatenation for data storage devices using composite codes
US11381258B2 (en) 2012-05-29 2022-07-05 Awemane Ltd. Partial reverse concatenation for data storage devices using composite codes

Also Published As

Publication number Publication date
KR101120780B1 (en) 2012-03-26
KR20090100346A (en) 2009-09-23
JP2010521764A (en) 2010-06-24
JP5063709B2 (en) 2012-10-31
EP2140452A1 (en) 2010-01-06

Similar Documents

Publication Publication Date Title
US7877662B2 (en) Reverse concatenation for product codes
US7873894B2 (en) Reverse concatenation for product codes
US8276045B2 (en) ECC interleaving for multi-track recording on magnetic tape
CN102272841B (en) Rewrite-efficient ecc/interleaving for multi-track recording on magnetic tape
US7030789B1 (en) Techniques for applying modulation constraints to data using periodically changing symbol mappings
US7071851B1 (en) Techniques for implementing non-uniform constraints in modulation encoded data
US7530003B2 (en) Permuting MTR code with ECC without need for second MTR code
CN102187395B (en) Data processing device and method
US9612905B2 (en) Encoding and writing of data on multitrack tape
KR101120780B1 (en) Reverse concatenation for product codes
US10824346B2 (en) Logical format utilizing lateral encoding of data for storage on magnetic tape
US20100241922A1 (en) Error correction circuit and data storage device
JP4543895B2 (en) Data processing method, data recording apparatus, and data transmission apparatus
CN100590716C (en) Method and apparatus for recording optical storage medium
US7159165B2 (en) Optical recording medium, data recording or reproducing apparatus and data recording or reproducing method used by the data recording or reproducing apparatus
Mittelholzer et al. Reverse concatenation of product and modulation codes
KR20040067103A (en) Method for encoding and decoding error correction block in high density optical disc

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200880008770.3

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08709262

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 1020097012034

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 2009553992

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2008709262

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE