USPatent applicationPatented

Data coding for data storage systems

Granted 2 Nov 2004 · 1 office action

Current assignee: GlobalFoundries · originally International Business Machines

Law firm: Law firm · Log in to unlock

Attorney: Attorney · Log in to unlock

Inventors: Roy D Cideciyan, Thomas Mittelholzer, Richard L Galbraith, Travis R Oenning +3 · Examiner: Peguy JeanPierre · AU 2819 · TC 2800

Life of the application

11 dated events
⤢ drag to zoom20042006200820102012201420162018202020222024ProsecutionOwnershipTerm & fees
ProsecutionOwnershipTerm & feeshover for detail · click to open

Abstract

Described is a modulation encoder having a finite state machine for converting input bits into output bits in which the number of alternating output bits is limited to j1 where j is a predefined maximum number of transitions in the output bits, and in which the number of like output bits is limited to k1 where k is a predefined maximum number of non-transitions in the output bits. The modulation encoder may be employed in encoding apparatus for converting an input bit stream into an output bit stream. Such apparatus may comprise partitioning logic for partitioning the input bit stream into a first group of bits and a second group of bits. A plurality of the aforementioned modulation encoders may be connected to the partitioning logic for converting the first group of bits into coded output bits. Combining logic may be connected to the or each modulation encoder and the partitioning logic for combining the coded output bits and the second group of bits to generate the output bit stream. Counterpart modulation decoders and decoding apparatus are also described.

Description

8 parts
›TECHNICAL FIELD

The present invention generally relates to data coding for data storage systems and particularly relates to data encoding and decoding methods and apparatus for data storage systems.

›BACKGROUND OF THE INVENTION

There is an increasing demand at least in the field of magnetic recording and optical recording systems for inner codes that constrain channel input sequences so that they have certain desired properties for timing recovery, gain control, and, in some applications, for limiting path memory requirements of Viterbi detectors. For example, conventional peak detection systems typically employ run length limited (RLL) (d,k) constrained codes. These codes are normally found in optical recording systems and in relatively low linear-density magnetic recording systems. At moderate linear densities, the introduction of Partial Response Maximum Likelihood (PRML) detection to hard disk drive data storage devices involved the use of a different class of constrained codes known as (G,I) codes. As demonstrated by J. Moon and B. Brickner, “Maximum transition run codes for data storage systems,” IEEE Trans. Magn., vol. 32, pp. 3992-3994, September 1996 and R. D. Cideciyan, E. Eleftheriou, B. Marcus, and D. Modha “Maximum Transition Run Codes for Generalized Partial-Response Channels” IEEE J. Select. Areas Commun ., 19(4), pp. 619-634, April 2001, maximum transition run (MTR) (j,k) codes have been introduced to provide run length limited properties and to enhance the detector performance. A 16/17 code combining an 8 bit unconstrained code with a nine bit (G,I) constrained byte is described in both J. Sonntag, “Apparatus and method for increasing density of run length limited block codes without increasing error propagation,” U.S. Pat. No. 5,604,497 and Coker, above. A 1/(1+D 2 ) precoder is also employed in Sonntag, above, and J. Coker, D. Flynn, R. Galbraith, T. Truax, “Method and apparatus for implementing a set rate code for data channels with alternate 9-bit code words and 8-bit code words,” U.S. Pat. No. 5,784,010. High rate codes produced by interspersing MTR code words with uncoded source symbols are described in A. Wijngaarden, E. Soljanin, “A combinatorial technique for constructing high-rate MTR-RLL codes,” IEEE J. Select. Areas Commun ., 19(4), pp. 582-588, April 2001. A 1(1+D) precoder is employed in A. Wijngaarden, above. All of the aforementioned codes are designed on the basis of a precoder being present at the output of the constrained code encoder. At the receiver side, the precoder operation is undone by an inverse precoder circuit. However, the inverse precoder causes error propagation that adversely affects the performance. For example, the inverse precoder can cause an increase in sector error rate of the outer Reed-Solomon (RS) code. In applications such as magnetic recording, the code rate is subject to a stringent requirement.

›SUMMARY OF THE INVENTION · 1 of 2

In accordance with the present invention, there is now provided a modulation encoder having a finite state machine for converting input bits into output bits in which the number of alternating output bits is limited to j+1 where j is a predefined maximum number of transitions in the output bits, and in which the number of like output bits is limited to k+1 where k is a predefined maximum number of non-transitions in the output bits.

Viewing the present invention from a different aspect, there is now provided, a modulation encoder having a finite state machine for converting input bits into output bits in which the number of like output bits is at least d+1 and at most k+1 where d is a predefined minimum number of non-transitions in the output bits and k is a predefined maximum number of non-transitions in the output bits.

In a preferred embodiment of the present invention, there is provided encoding apparatus for converting an input bit stream into an output bit stream, the apparatus comprising: partitioning logic for partitioning the input bit stream into a first group of bits and a second group of bits; at least one modulation encoder of one of the forms herein before described connected to the partitioning logic for converting the first group of bits into coded output bits; and, combining logic connected to the or each modulation encoder and the partitioning logic for combining the coded output bits and the second group of bits to generate the output bit stream. The encoding apparatus may comprise a plurality of modulation encoders as herein before described each for converting a different subgroup of the first group of bits into coded output bits, wherein the different subgroups of the first group of bits are interleaved with different subgroups of the second group of bits. The apparatus may additionally or alternatively comprise a parity generator connected to the or each modulation encoder and the partitioning logic for generating a parity code in dependence on the second group of bits and the coded output bits. The combining logic preferably comprises a parallel to serial convertor connected to the or each modulation encoder and the partitioning logic.

Viewing the present invention from another aspect, there is now provided a modulation decoder having a sliding block decoder logic for recovering output bits from input bits in which the number of alternating input bits is limited to j+1 where j is a predefined maximum number of transitions in the input bits, and in which the number of like input bits is limited to k+1 where k is a predefined maximum number of non-transitions in the input bits.

Viewing the present invention from yet another aspect, there is now provided a modulation decoder having sliding block decoder logic for recovering output bits from input bits in which the number of like input bits is at least d+1 and at most k+1 where d is a predefined minimum number of non-transitions in the input bits and k is a predefined maximum number of non-transitions in the input bits.

In another preferred embodiment of the present invention, there is provided decoding apparatus for decoding an input bit stream into an output bit stream, the apparatus comprising: partitioning logic for partitioning the input stream into a first group of bits and a second group of bits; at least one modulation decoder of one of the forms herein before described connected to the partitioning logic for decoding the first group of bits into decoded output bits; and, combining logic connected to the or each modulation decoder and the partitioning logic for combining the second group of bits and the decoded output bits. Such apparatus may comprise a plurality of modulation decoders as herein before described each for converting a different subgroup of the first group of bits into decoded output bits, wherein the different subgroups of the first group of bits are interleaved with different subgroups of the second group of bits. The partitioning logic of the decoding apparatus may comprise a serial to parallel convertor connected to the or each modulation decoder.

It will be appreciated that the present invention extends to a signal processing device comprising encoding apparatus and decoding apparatus as herein before described. Similarly, it will be appreciated that the present invention extends to a data storage device comprising a data storage channel, together with encoding apparatus and encoding apparatus as herein before described.

Viewing the present invention from yet another aspect, there is provided a bit encoding method comprising, via a finite state machine, converting input bits into output bits in which the number of alternating output bits is limited to j+1 where j is a predefined maximum number of transitions in the output bits, and in which the number of like output bits is limited to k+1 where k is a predefined maximum number of non-transitions in the output bits.

In accordance with the present invention, there is also provided a bit encoding method comprising, via a finite state machine, converting input bits into output bits in which the number of like output bits is at least d+1 and at most k+1 where d is a predefined minimum number of non-transitions in the output bits and k is a predefined maximum number of non-transitions in the output bits.

In yet another preferred embodiment of the present invention, there is provided a data encoding method for converting an input bit stream into an output bit stream, the method comprising: partitioning the input bit stream into a first group of bits and a second group of bits; converting the first group of bits into coded output bits according to one of the bit encoding methods herein before described; and, combining the coded output bits and the second group of bits to generate the output bit stream.

Viewing the present invention from a further aspect, there is now provided a bit decoding method comprising, via sliding block decoder logic, recovering output bits from input bits in which the number of alternating input bits is limited to j+1 where j is a predefined maximum number of transitions in the input bits, and in which the number of like input bits is limited to k+1 where k is a predefined maximum number of non-transitions in the input bits.

›SUMMARY OF THE INVENTION · 2 of 2

In accordance with the present invention, there is further provided a bit decoding method comprising, via sliding block decoder logic, recovering output bits from input bits in which the number of like input bits is at least d+1 and at most k+1 where d is a predefined minimum number of non-transitions in the input bits and k is a predefined maximum number of non-transitions in the input bits.

In a further preferred embodiment of the present invention, there is now provided a data decoding method for decoding an input bit stream into an output bit stream, the method comprising: partitioning logic for partitioning the input bit stream into a first group of bits and a second group of bits; decoding the first group of bits into decoded output bits via one of the bit decoding methods herein before described; and, combining the second group of bits and the decoded output bits.

In a preferred embodiment of the present invention to be described in detail shortly, byte-oriented (m-bit bytes) precoderless constrained codes are provided. In a particularly preferred embodiment of the present invention, these codes are conveniently combined with multiparity block codes to provide a further enhancement of system performance. In an especially preferred embodiment of the present invention, a very high rate precoderless inner code is provided by concatenating unconstrained bits with constrained n-bit bytes. The constrained n-bit bytes are obtained by encoding unconstrained m-bit bytes (n>m). In applications using outer RS codes, the m-bit bytes can be matched to the symbol size of the RS code to minimize error propagation. Preferred embodiments of the present invention include: apparatus and methods for providing rate 96/102 codes with two 8/9 (G,I) constrained bytes and four parity bits; apparatus and methods for providing rate 96/100 codes with two 8/9 MTR (j=1,2,3)) constrained bytes and 2 parity bits; apparatus and methods for providing rate 96/102 codes with three 8/9 MTR (j=1,2,3)) constrained bytes and 3 parity bits; and, apparatus and methods for providing rate 96/102 codes with two 8/9 MTR (j=2,3)) constrained bytes and 4 parity bits.

›THE FIGURES

Preferred embodiments of the present invention are illustrated in the Figures appended hereto which:

FIG. 1 is a block diagram of data storage system;

FIG. 2 is a block diagram of a conventional data storage system;

FIG. 3 is a block diagram of a data storage system embodying the present invention;

FIG. 4 is a block diagram, in the form of a finite-state machine, of an encoder for a rate-8/9 MTR (j=1,2,3) code;

FIG. 5 is a block diagram of a rate-96/100 MTR (j=1,2,3)/unconstrained dual-parity encoder;

FIG. 6 is a block diagram of a rate-96/100 MTR (j=1,2,3)/unconstrained dual-parity decoder;

FIG. 7 is a block diagram of a rate-96/102 MTR (j=1,2,3)/unconstrained triple-parity encoder;

FIG. 8 is a block diagram of a rate-96/102 MTR (j=1,2,3)/unconstrained triple-parity decoder;

FIG. 9 is a block diagram of a rate-96/102 MTR (j=2,3)/unconstrained quadruple-parity encoder;

FIG. 10 is a block diagram of a rate-96/102 MTR (j=2,3)/unconstrained quadruple-parity decoder;

FIG. 11 is a block diagram of a rate-96/102 (G=4, I=6)/unconstrained quadruple-parity encoder; and,

FIG. 12 is a block diagram of a rate-96/102 (G=4, I=6)/unconstrained quadruple-parity decoder.

›DETAILED DESCRIPTION · 1 of 3

Referring first to FIG. 1, a data storage system comprises an encoder subsystem 1 for encoding write data to be written onto a storage medium 4 of a recording channel 3 and a decoder subsystem 2 for decoding signal detected from the recording channel 3 to produce read data. The storage medium 4 may be in the form of a magnetic disk, optical disk, or the like. The encoder subsystem 1 and decoder subsystem 2 may be integrated into a single application specific integrated circuit.

With reference to FIG. 2, in a conventional data storage system, the encoder subsystem 1 comprises a Reed Solomon (RS) encoder 11 , a modulation encoder 12 , and a precoder 13 . Similarly, the decoder subsystem 2 comprises a detector 14 , an inverse precoder 15 , a channel decoder 16 , and an RS decoder 17 . In operation, the RS encoder 11 converts an incoming user bit stream into a sequence of symbols such as 8 bit bytes. The channel encoder 12 is based on a logic state machine. In use, the modulation encoder 12 converts incoming bits into output encoded bits according to a transition-based translation. The precoder 13 converts the transitions in the output of the modulation encoder 12 into levels suitable for recording in the recording channel 3 . In the decoder subsystem 2 , the detector 14 recovers the levels from the recording channel 3 . The inverse precoder 15 converts the levels back into logic transitions. The logic transitions are then decoded by the modulation decoder 16 to provide the symbols. The symbols are converted into an output user bit stream by the RS decoder 17 .

As indicated in [2], the following three classes of modulation codes are conventionally employed in optical and magnetic recording:

1) (d,k) codes in association with 1/(1⊕D) precoders;

2) (G,I) codes in association with 1/(1⊕D 2 ) precoders; and,

3) MTR (j,k) codes in association with 1/(1⊕D) precoders.

In conventional coding systems, these codes, when combined with an appropriate precoder, impose constraints on binary channel input sequences. Specifically, after precoding, the d-constraint limits the minimum length of like binary symbols at the channel input to d+1. Similarly, after preceding, the k-constraint limits the maximum length of like binary symbols at the channel input to k+1. Likewise, after preceding, the G-constraint limits the maximum length of like and alternating binary symbols at the channel input to G+2. In addition, after precoding, the I-constraint limits the maximum length of like binary symbols in the odd and even interleave of channel input sequences to I+1. In a similar fashion, after preceding, the j-constraint limits the maximum length of alternating binary symbols at the channel input to j+1.

Referring now to FIG. 3, in a preferred embodiment of the present invention, the encoder subsystem 1 comprises a modulation encoder 18 having a finite state machine adapted to convert the incoming RS encoded symbols into output levels according to a level based translation. The need for a precoder is thus eliminated. Similarly, in the decoder subsystem 2 , the need for an inverse precoder is eliminated by a channel decoder 19 comprising sliding block decoder logic adapted to convert outputs into the symbols via a level based translation.

The codes described herein in the interests of exemplifying the present invention avoid the use of any preceding operation. Therefore, there is no need to use a precoder in the encoder subsystem 1 . Similarly, there is no need to use an inverse precoder in the decoder subsystem 2 . The absence of an inverse precoder in particular is desirable in the interests of reducing error propagation, thereby leading to, for example, improved soft error rates at the input of the RS decoder 17 .

Particularly preferred embodiments of the invention include: encoders and decoders for a rate-96/100 MTR (j=1,2,3)/uncoded dual-parity code; encoders and decoders for a rate-96/102 MTR (j=1,2,3)/uncoded triple-parity code; and, encoders and decoders for a rate-96/102 MTR (j=2,3)/uncoded quadruple-parity code. Each of these codes are based on rate-8/9 precoderless MTR mother codes. Preferred embodiments of the present invention based on a rate-8/9 MTR (j=1,2,3) mother code and a rate-8/9 MTR (j=2,3) mother code are described and corresponding code tables are provided. In addition, examples of an encoder and a decoder of a precoderless rate-96/102 (G=4, I=6)/uncoded quadruple-parity code are described.

The rate-8/9 MTR (j=1,2,3) code is specified in Table 1 appended hereto. This code imposes the following time-varying constraints on maximum length of transition runs:

1) j=1 at the end of the second bit

2) j=2 at the end of the third bit

3) j=3 at the end of the fourth bit

4) j=2 at the end of the fifth bit

5) j=3 at the end of the sixth bit

6) j=2 at the end of the seventh bit

7) j=3 at the end of the eighth bit

8) j=2 at the end of the ninth bit

This code also satisfies the k=12 constraint and the t c =7 twins constraint referred to in [2].

The rate-8/9 MTR (j=2,3) code is specified in Table 2 appended hereto. This code imposes the following slightly weaker time-varying constraints on maximum length of transition runs:

1) j=2 at the end of the third bit

2) j=3 at the end of the fourth bit

3) j=2 at the end of the fifth bit

4) j=3 at the end of the sixth bit

5) j=2 at the end of the seventh bit

6) j=3 at the end of the eighth bit

7) j=2 at the end of the ninth bit

This code also satisfies the k=9 constraint and the t u =6 twins constraint referred to in [2].

Referring to FIG. 4, depicted therein is a representation of an example of a finite state machine of a modulation encoder 18 embodying the present invention for the rate-8/9 MTR (j=1,2,3) code. State A corresponds to the case in which the last bit of the preceding code word is “0”. In other words, all the 9-bit code words that arrive in state A end with a “0”. In fact, the last bit of all code words in lists A 1 , A 2 and B is “0”, where in general the set notation X implies that all the code words in X can be obtained by bit inversion of all the code words in X. Similarly, state B corresponds to the case in which the last bit of the preceding code word is “1”. In other words, all the 9-bit code words that arrive in state B end with a “1”. In fact, the last bit of all code words in the lists A 1 , A 2 and B is “1”. The code word lists A 1 , A 2 are selected such that the time-varying j-constraint, the k=12 constraint, and the t c =7 path memory constraint for j-constrained Viterbi detectors [2] are satisfied.

›DETAILED DESCRIPTION · 2 of 3

Examples of a rate-96/100 MTR (j=1,2,3)/unconstrained dual parity encoder and a counterpart decoder will now be described with reference to FIGS. 5 and 6.

In the following, x k , 1≦k≦m, denotes the k-th bit in the array x[1:m] where x 1 is the least recent bit and x m is the most recent bit.

Referring to FIG. 5, the rate-96/100 encoder comprises a parallel to serial (P/S) convertor 10 . A parity inserter 20 is connected for input to the P/S convertor 10 . A first rate-8/9 MTR 2-state encoder 30 and a second rate-8/9 MTR 2-state encoder 40 are also connected for input to the P/S convertor 10 . The input of the encoder, a[1:96], consists of 12 bytes. Each of the rate-8/9 MTR encoders 30 and 40 maps eight bits into nine bits according to Tables 1a, 1b, 1c and 1d appended hereto. As indicated in Table 1, this mapping depends on the value of the previous bit p. For example, p=a 8 and p=a 56 are the previous bits for MTR encoders 30 and 40 , respectively. The output after rate-8/9 MTR block encoding is denoted by b[1:100] and consists of two 9-bit MTR code words satisfying a j=1,2,3 constraint interspersed with 10 unconstrained bytes. The parity inserter 20 generates parity bits b 99 and b 100 based on the following parity equations at the channel input. ⊕ 49 i = 0  b 1 + 2  i = 0 , and     ⊕ 49 i = 0  b 2 + 2  i = 0.

Note that in this coding scheme there is no precoding and inverse preceding. Thus, the output of the P/S convertor 10 can be fed directly to a write precompensation circuit.

Referring now to FIG. 6, the rate-96/100 decoder comprises a serial to parallel (S/P) convertor 50 . A first rate-8/9 MTR block decoder 60 and a second rate-8/9 MTR block decoder 70 are connected to receive outputs from the S/P convertor 50 . The output from the S/P convertor 50 is denoted by c[1:100]. Note that the two parity bits c[99:100] are dropped. Each of the rate-8/9 MTR block decoders 60 and 70 performs the inverse mapping in accordance with Table 1. Note that a 9-bit legal code word can never occur simultaneously in two different rows of Table 1. Decoding is therefore unambiguous.

Examples of a rate-96/102 MTR (j=1,2,3)/Unconstrained Triple-Parity Encoder and a counterpart decoder will now be described with reference to FIGS. 7 and 8.

Referring to FIG. 7, the rate-96/102 triple-parity encoder comprises a P/S convertor 80 . A parity inserter 90 is connected for input to the P/S convertor 80 . A first rate-8/9 MTR 2-state encoder 100 , a second rate-8/9 MTR 2-state encoder 110 , and a third rate-8/9 MTR 2-state encoder 120 are also connected for input to the P/S convertor 80 . Again, each of the rate-8/9 MTR encoders 100 , 110 , and 120 maps eight bits into nine bits according to Tables 1a, 1b, 1c and 1d. As indicated in Table 1, this mapping depends on the value of the previous bit p. For example, p=a 8 , p=a 40 and p=a 72 are the previous bits for the MTR encoders 100 , 110 , and 120 , respectively. The parity inserter 90 generates parity bits b 100 b 101 and b 102 based on the following parity equations at the channel input. ⊕ 33 i = 0  b 1 + 3  i = 0 , ( 1 ) ⊕ 33 i = 0  b 2 + 3  i = 0 , ( 2 ) ⊕ 33 i = 0  b 3 + 3  i = 0. ( 3 )

For a polynomial code with generator polynomial g(x)=1+g 1 x+g 2 x 2 +x 3 , the parity bits b 100 b 101 and b 102 can be determined according to the equation. b 100  x 2 + b 101  x 1 + b 102 = ( ⊕ 99 i = 1  b i  x 102 - i )     mod     g  ( x )

Based on this formulation the parity bits generated according to the equations (1)-(3) can also be obtained using the generator polynomial 1+x 3 . In principle, the generator polynomial is selected such that the polynomial code detects all error events from a specified list. In general, the parity bits can be selected according to any linear code specified by a parity check matrix. Note that in this coding scheme there is no preceding and inverse preceding. The output of the P/S convertor 80 can be fed directly to a write precompensation circuit.

Referring to FIG. 8, the rate-96/102 decoder comprises an S/P convertor 130 . A first rate-8/9 MTR block decoder 140 , a second rate-8/9 MTR block decoder 150 , and a third rate-8/9 MTR block decoder 160 are connected to receive outputs from the S/P convertor 130 . The output from the S/P convertor 130 is denoted by c[1:102]. Note that the three parity bits c[99:100] are dropped. Each of the rate-8/9 MTR block decoders 140 , 150 , and 160 performs the inverse mapping in accordance with Table 1. Note that a 9-bit legal code word can never occur simultaneously in two different rows of Table 1. Thus, decoding is unambiguous.

Examples of a Rate-96/102 MTR (j=2,3)/Unconstrained Quadruple-Parity encoder and corresponding decoder will now be described with reference to FIGS. 9 and 10 respectively.

Referring to FIG. 9, the rate-96/102 quadruple-parity encoder comprises a P/S convertor 170 . A parity inserter 180 is connected for input to the P/S convertor 170 . A first rate-8/9 MTR 2-state encoder 190 and a second rate-8/9 MTR 2-state encoder 200 are also connected for input to the P/S convertor 170 . Each of the rate-8/9 MTR encoders 190 and 200 maps eight bits into nine bits according to Tables 2a, 2b, 2c and 2d. As indicated in Table 2, this mapping depends on the value of the previous bit p. For example, p=a 8 and p=a 56 are the previous bits for the MTR encoders 190 and 200 , respectively. The parity inserter computes parity bits b 99 , b 100 , b 101 and b 102 according to the following equation b 99  x 3 + b 100  x 2 + b 101  x 1 + b 102 = ( ⊕ 98 i = 1  b i  x 102 - i )     mod     g  ( x )     where     g  ( x ) = 1 + g 1  x + g 2  x 2 + g 3  x 3 + x 4 .

In principle, the generator polynomial is selected such that the polynomial code detects all error events from a specified list. In general, the parity bits can be selected according to any linear code specified by a parity check matrix. Note that in this coding scheme there is no precoding and inverse precoding. The output of the P/S convertor 170 can be fed directly to the write precompensation circuit.

›DETAILED DESCRIPTION · 3 of 3

With reference to FIG. 10, the rate-96/102 decoder comprises an S/P convertor 210 . A first rate-8/9 MTR block decoder 220 and a second rate-8/9 MTR block decoder 230 are connected to receive outputs from the S/P convertor 210 . The output from the S/P convertor 210 is denoted by c[1:102]. Note that the four parity bits c[99:102] are dropped. Each of the rate-8/9 MTR block decoders 220 and 230 performs the inverse mapping in accordance with Table 2.

Note that a 9-bit legal code word can never occur simultaneously in two different rows of Table 2. Thus, decoding is unambiguous.

Examples of a Rate-96/102 (G=4, I=6)/Unconstrained Quadruple-Parity encoder and corresponding decoder will now be described with reference to FIGS. 11 and 12 respectively.

Referring to FIG. 11, the rate-96/102 quadruple-parity encoder comprises a P/S convertor 240 . A parity inserter 250 is connected for input to the P/S convertor 240 . A first rate-8/9 (G,I) block encoder 260 and a second rate-8/9 (G,I) block encoder 270 are also connected for input to the P/S convertor 240 . Each of the rate-8/9 block or stateless encoders 260 and 270 maps eight bits into nine bits according to Tables 3a, 3b, 3c and 3d. The parity inserter 250 computes parity bits b 99 , b 100 , b 101 and b 102 according to the following equation b 99  x 3 + b 100  x 2 + b 101  x 1 + b 102 = ( ⊕ 98 i = 1  b i  x 102 - i )     mod     g  ( x )

where g(x)=1+g 1 x+g 2 x 2 +g 3 x 3 +x 4 . In principle, the generator polynomial is selected such that the polynomial code detects all error events from a specified list. In general, the parity bits can be selected according to any linear code specified by a parity check matrix. Note that in this coding scheme there is no preceding and inverse preceding. The output of the P/S convertor 240 can be fed directly to a write precompensation circuit.

With reference to FIG. 12, the corresponding rate-96/102 decoder comprises an S/P convertor 280 . A first rate-8/9 (G,I) block decoder 290 and a second rate-8/9 (G,I) block decoder 300 are connected to receive outputs from the S/P convertor 280 . The output from the S/P convertor 280 is denoted by c[1:102]. Note that the four parity bits c[99:102] are dropped. Each of the rate-8/9 block decoders 290 and 300 performs the inverse mapping in accordance with Table 3.

While the invention has been described with respect to certain preferred embodiments and exemplifications, it is not intended to limit the scope of the claims thereby, but solely by the claims appended hereto.

›Tables in the description — 12
TABLE 1A — Rate-8/9 MTR(j = 1,2,3; k = 12; t c = 7) precoderless code table (data words 1-64)
INPUTOUTPUT(p = 0)OUTPUT(p = 1)INPUTOUTPUT(p = 0)OUTPUT(p = 1)
0000000000000010000000010000100000001111000001111000
0000000100001101100001101100100001001111001001111001
0000001000011010000011010000100010010000110101111001
0000001100111010000111010000100011010000111101111000
0000010000111101100111101100100100010001001101110110
0000010101000010010111101100100101010001011101110100
0000011001100010010011101100100110011000110100111001
0000011101100101110011010000100111011000111100111000
0000100011000101111000101100101000011001000100110111
0000100111100010011100010000101001011001001100110110
0000101011100101111100101100101010110000110110000110
0000101111101110011101110000101011110000111110000111
0000110001011010010100101100101100110001000110001000
0000110101011101110100010000101101110001001110001001
0000111011011010011011010000101110111000110111000110
0000111111011101100100010000101111111000111111000111
0001000000000011000000011000110000111001000111001000
0001000100000011100000011100110001111001001111001001
0001001000100011000100011000110010111011110111011110
0001001100100011100100011100110011111011111111011111
0001010000000101100000101100110100011100100100011011
0001010100100101100100101100110101111100100111100100
0001011000001100000001100000110110010110110101001001
0001011100001100100001100100110111010110111101001000
0001100000010010000010010000111000010111000101000111
0001100100110010000110010000111001010111001101000110
0001101000011011000011011000111010110110110110110110
0001101100011011100011011100111011110110111110110111
0001110000011100000011100000111100110111000110111000
0001110100011100100011100100111101110111001110111001
0001111000111011000111011000111110011110100100001011
0001111100111011100111011100111111111110100111110100
TABLE 1B — Rate-8/9 MTR(j = 1,2,3; k = 12; t c = 7) precoderless code table (data words 65-128)
INPUTOUTPUT(p = 0)OUTPUT(p = 1)INPUTOUTPUT(p = 0)OUTPUT(p = 1)
0100000000100000000100000001100000001111100001111100
0100000100100000100100000101100001001111101001111101
0100001000100001000100001001100010001111110001111110
0100001100100001100100001101100011001111111001111111
0100010000000100000000100001100100010000000101111111
0100010100000100100000100101100101010000001101111110
0100011000100100000100100001100110010000010101111101
0100011100100100100100100101100111010000011101111100
0100100000001000000001000001101000010001100101110011
0100100100001000100001000101101001010001101101110010
0100101000001001000001001001101010010001110101110001
0100101100001001100001001101101011010001111101110000
0100110000001110000001110001101100011000000100111111
0100110100001110100001110101101101011000001100111110
0100111000001111000001111001101110011000010100111101
0100111100001111100001111101101111011000011100111100
0101000000010011000010011001110000011001100100110011
0101000100010011100010011101110001011001101100110010
0101001000110011000110011001110010011001110100110001
0101001100110011100110011101110011011001111100110000
0101010000011000000011000001110100110000000110000000
0101010100011000100011000101110101110000001110000001
0101011000011001000011001001110110110000010110000010
0101011100011001100011001101110111110000011110000011
0101100000011110000011110001111000110001100110001100
0101100100011110100011110101111001110001101110001101
0101101000011111000011111001111010110001110110001110
0101101100011111100011111101111011110001111110001111
0101110000111000000111000001111100111000000111000000
0101110100111000100111000101111101111000001111000001
0101111000111001000111001001111110111000010111000010
0101111100111001100111001101111111111000011111000011
TABLE 1C — Rate-8/9 MTR(j = 1,2,3; k = 12; t c = 7) precoderless code table (data words 129-192)
INPUTOUTPUT(p = 0)OUTPUT(p = 1)INPUTOUTPUT(p = 0)OUTPUT(p = 1)
1000000011100110011100110010100000011110110100001001
1000000111100110111100110110100001011110111100001000
1000001011100111011100111010100010111110110111110110
1000001111100111111100111110100011111110111111110111
1000010001001101110110010010100100011111011100000100
1000010101101101110010010010100101011111110100000001
1000011011001101111001101110100110111111011111111011
1000011111101101111101101110100111111111110000000001
1000100011001110011001110010101000000001100000001100
1000100111001110111001110110101001000001101000001101
1000101011001111011001111010101010000001110000001110
1000101111001111111001111110101011000001111000001111
1000110001110011010001100110101100001001100001001100
1000110101110011110001100010101101001001101001001101
1000111011110011011110011010101110001001110001001110
1000111111110011111110011110101111001001111001001111
1001000001011000010100111110110000000100000000100000
1001000101011000110100111010110001000100001000100001
1001001001011001010100110110110010000100010111011101
1001001101011001110100110010110011000100011000100011
1001010001011110010100001110110100001100000001100000
1001010101011110110100001010110101001100001001100001
1001011001011111010100000110110110001100010001100010
1001011101011111110100000010110111001100011001100011
1001100011011000011011000010111000000101100000101100
1001100111011000111011000110111001000101101000101101
1001101011011001011011001010111010000101110000101110
1001101111011001111011001110111011000101111000101111
1001110011011110011011110010111100001101100001101100
1001110111011110111011110110111101001101101001101101
1001111011011111011011111010111110001101110001101110
1001111111011111111011111110111111001101111001101111
TABLE 1D — Rate-8/9 MTR(j = 1,2,3; k = 12; t c = 7) precoderless code table (data words 193-256)
INPUTOUTPUT(p = 0)OUTPUT(p = 1)INPUTOUTPUT(p = 0)OUTPUT(p = 1)
1100000001001100010110011111100000011110000100001111
1100000101001100110110011011100001011110001100001110
1100001011001100011001100011100010011110010100001101
1100001111001100111001100111100011011110011100001100
1100010001101100010010011111100100111110000111110000
1100010101101100110010011011100101111110001111110001
1100011011101100011101100011100110111110010111110010
1100011111101100111101100111100111111110011111110011
1100100001001110010110001111101000011111000100000111
1100100101001110110110001011101001011111001100000110
1100101001001111010110000111101010111111000111111000
1100101101001111110110000011101011111111001111111001
1100110001101110010010001111101100011111100100000011
1100110101101110110010001011101101011111101100000010
1100111001101111010010000111101110111111100000000011
1100111101101111110010000011101111111111101000000010
1101000001110000010001111111110000010010000101101111
1101000101110000110001111011110001010010001101101110
1101001001110001010001110111110010010010010101101101
1101001101110001110001110011110011010010011101101100
1101010011110000011110000011110100011010000100101111
1101010111110000111110000111110101011010001100101110
1101011011110001011110001011110110011010010100101101
1101011111110001111110001111110111011010011100101100
1101100001110110010001001111111000110010000110010000
1101100101110110110001001011111001110010001110010001
1101101001110111010001000111111010110010010110010010
1101101101110111110001000011111011110010011110010011
1101110011110110011110110011111100111010000111010000
1101110111110110111110110111111101111010001111010001
1101111011110111011110111011111110111010010111010010
1101111111110111111110111111111111111010011111010011
TABLE 2A — Rate-8/9 MTR(j = 2,3; k = 9; t u = 6) precoderless code table (data words 1-64)
INPUTOUTPUT(p = 0)OUTPUT(p = 1)INPUTOUTPUT(p = 0)OUTPUT(p = 1)
0000000000010001100010001100100000000011011000011011
0000000100010010000010010000100001000111011000111011
0000001000011010000011010000100010000111100000111100
0000001100011111000011111000100011000111101000111101
0000010000100001100100001100100100001000110001000110
0000010100100101100100101100100101001000111001000111
0000011000111101100111101100100110001001000001001000
0000011100111111000111111000100111001001001001001001
0000100001100000101100000100101000001100100001100100
0000100101100010001100010000101001001110100001110100
0000101001000001110111110000101010001111000001111000
0000101101001000110110111000101011001111001001111001
0000110001001101110110010000101100001111100001111100
0000110101011010010100101100101101001111101001111101
0000111010000001110000001100101110011000010011000010
0000111111000101111000101100101111011000011011000011
0001000010010010010010010000110000011000110011000110
0001000111001101111001101100110001011000111011000111
0001001010011111010011111000110010011001011011001011
0001001111011110011011110000110011011011011011011011
0001010011100000111100000100110100011100100011100100
0001010111100101111100101100110101011110100011110100
0001011011101101111101101100110110011101100011101100
0001011111101110011101110000110111011101101011101101
0001100000001001000001001000111000010000110101111001
0001100100001001100001001100111001010000111101111000
0001101000010011000010011000111010010001001101110110
0001101100010011100010011100111011010001011101110100
0001110000011011000011011000111100010010010101101101
0001110100011011100011011100111101010010011101101100
0001111000000100100000100100111110010110110101001001
0001111100000101100000101100111111010110111101001000
TABLE 2B — Rate-8/9 MTR(j = 2,3; k = 9; t u = 6) precoderless code table (data words 65-128)
INPUTOUTPUT(p = 0)OUTPUT(p = 1)INPUTOUTPUT(p = 0)OUTPUT(p = 1)
0100000001011110010100001101100000000110000000110000
0100000101011110110100001001100001000110001000110001
0100001010000011010000011001100010000110010000110010
0100001110000011110000011101100011000110011000110011
0100010010000100110000100101100100000011000000011000
0100010110000101110000101101100101000011001000011001
0100011011000000111000000101100110000111000000111000
0100011111000010011000010001100111000111001000111001
0100100011000100011000100001101000000101100000101100
0100100111000100111000100101101001000101101000101101
0100101010010011010010011001101010000101110000101110
0100101110010011110010011101101011000101111000101111
0100110010001001010001001001101100001001100001001100
0100110110001001110001001101101101001001101001001101
0100111010001101110001101101101110001001110001001110
0100111110011101110011101101101111001001111001001111
0101000010011010010011010001110000001100110001100110
0101000111011010011011010001110001001100111001100111
0101001010011110010011110001110010001110110001110110
0101001110011110110011110101110011001110111001110111
0101010011100001011100001001110100001101100001101100
0101010111100001111100001101110101001101101001101101
0101011011100010011100010001110110001101110001101110
0101011111110010011110010001110111001101111001101111
0101100011111010011111010001111000011010000011010000
0101100111111011011111011001111001011010001011010001
0101101011100100011100100001111010011010010011010010
0101101111100100111100100101111011011010011011010011
0101110011101100011101100001111100011001000011001000
0101110111101100111101100101111101011001001011001001
0101111011110110011110110001111110011011000011011000
0101111111110110111110110101111111011011001011011001
TABLE 2C — Rate-8/9 MTR(j = 2,3; k = 9; t u = 6) precoderless code table (data words 129-192)
INPUTOUTPUT(p = 0)OUTPUT(p = 1)INPUTOUTPUT(p = 0)OUTPUT(p = 1)
1000000001110011001110011010100000110001100110001100
1000000101110011101110011110100001110001101110001101
1000001001111011001111011010100010110001110110001110
1000001101111011101111011110100011110001111110001111
1000010001111100001111100010100100100100000100100000
1000010101111100101111100110100101100100001100100001
1000011001111110001111110010100110100100010100100010
1000011101111110101111110110100111100100011100100011
1000100001000110010111001110101000100101100100101100
1000100101000110110111001010101001100101101100101101
1000101001000111010111000110101010100101110100101110
1000101101000111110111000010101011100101111100101111
1000110001011000010100111110101100100110000100110000
1000110101011000110100111010101101100110001100110001
1000111001011001010100110110101110100110010100110010
1000111101011001110100110010101111100110011100110011
1001000001001100010110011110110000100110110100110110
1001000101001100110110011010110001100110111100110111
1001001001011100010100011110110010110110110110110110
1001001101011100110100011010110011110110111110110111
1001010001001110010110001110110100111010000111010000
1001010101001110110110001010110101111010001111010001
1001011001001111010110000110110110111010010111010010
1001011101001111110110000010110111111010011111010011
1001100010000110010000110010111000111000110111000110
1001100110000110110000110110111001111000111111000111
1001101010000111010000111010111010111100110111100110
1001101110000111110000111110111011111100111111100111
1001110011000001011000001010111100111001100111001100
1001110111000001111000001110111101111001101111001101
1001111011000011011000011010111110111001110111001110
1001111111000011111000011110111111111001111111001111
TABLE 2D — Rate-8/9 MTR(j = 2,3; k = 9; t u = 6) precoderless code table (data words 193-256)
INPUTOUTPUT(p = 0)OUTPUT(p = 1)INPUTOUTPUT(p = 0)OUTPUT(p = 1)
1100000000000110000000110011100000110010000110010000
1100000100000110100000110111100001110010001110010001
1100001000000111000000111011100010110010010110010010
1100001100000111100000111111100011110010011110010011
1100010000001110000001110011100100110110000110110000
1100010100001110100001110111100101110110001110110001
1100011000001111000001111011100110110110010110110010
1100011100001111100001111111100111110110011110110011
1100100000110000000110000011101000100011000100011000
1100100100110000100110000111101001100011001100011001
1100101000110001000110001011101010100111000100111000
1100101100110001100110001111101011100111001100111001
1100110000111000000111000011101100110011000110011000
1100110100111000100111000111101101110011001110011001
1100111000111001000111001011101110110111000110111000
1100111100111001100111001111101111110111001110111001
1101000001100110001100110011110000100011100100011100
1101000101100110101100110111110001100011101100011101
1101001001100111001100111011110010100011110100011110
1101001101100111101100111111110011100011111100011111
1101010001101110001101110011110100110011100110011100
1101010101101110101101110111110101110011101110011101
1101011001101111001101111011110110110011110110011110
1101011101101111101101111111110111110011111110011111
1101100001110000001110000011111000111100000111100000
1101100101110000101110000111111001111100001111100001
1101101001110001001110001011111010111100010111100010
1101101101110001101110001111111011111100011111100011
1101110001111000001111000011111100111110000111110000
1101110101111000101111000111111101111110001111110001
1101111001111001001111001011111110111110010111110010
1101111101111001101111001111111111111110011111110011
TABLE 3A — Rate-8/9 (G = 4, I = 6) precoderless code table (data words 1-64)
INPUTOUTPUTINPUTOUTPUT
0000000000011000100100000110001011
0000000100011010000100001110001110
0000001000011101100100010110011011
0000001100011111000100011110011110
0000010001001000100100100101100001
0000010101001010000100101101100100
0000011001001101100100110111000001
0000011101001111000100111111000100
0000100000110000100101000000100111
0000100100110010000101001000101101
0000101000110101100101010010000111
0000101100110111000101011010001101
0000110000111000100101100000110010
0000110100111010000101101000110110
0000111000111101100101110000110011
0000111100111111000101111000110111
0001000001100000100110000000111000
0001000101100010000110001000111100
0001001001100101100110010000111001
0001001101100111000110011000111101
0001010001101000100110100010010010
0001010101101010000110101010010110
0001011001101101100110110010010011
0001011101101111000110111010010111
0001100010010101100111000010011000
0001100110010111000111001010011100
0001101010011000100111010010011001
0001101110011010000111011010011101
0001110010011101100111100001001011
0001110110011111000111101001001110
0001111011000000100111110001011011
0001111111000010000111111001011110
TABLE 3B — Rate-8/9 (G = 4, I = 6) precoderless code table(data words 65-128)
INPUTOUTPUTINPUTOUTPUT
0100000000110001001100000011100001
0100000100110011001100001011100100
0100001000110001101100010011110001
0100001100110011101100011011110100
0100010000110100001100100100001011
0100010100110110001100101100001110
0100011600110100101100110100011011
0100011100110110101100111100011110
0100100000111001001101000100100010
0100100100111011001101001100100110
0100101000111001101101010100100011
0100101100111011101101011100100111
0100110000111100001101100100101000
0100110100111110001101101100101100
0100111000111100101101110100101001
0100111100111110101101111100101101
0101000001100001001110000100110010
0101000101100011001110001100110110
0101001001100001101110010100110011
0101001101100011101110011100110111
0101010001100100001110100100111000
0101010101100110001110101100111100
0101011001100100101110110100111001
0101011101100110101110111100111101
0101100001101001001111000110000010
0101100101101011001111001110000110
0101101001101001101111010110000011
0101101101101011101111011110000111
0101110001101100001111100110001000
0101110101101110001111101110001100
0101111001101100101111110110001001
0101111101101110101111111110001101
TABLE 3C — Rate-8/9 (G = 4, I = 6) precoderless code table (data words 129-192)
INPUTOUTPUTINPUTOUTPUT
1000000011001001010100000000100001
1000000111001011010100001000101001
1000001011001001110100010010000001
1000001111001011110100011010001001
1000010011001100010100100000100011
1000010111001110010100101000101011
1000011011001100110100110010000011
1000011111001110110100111010001011
1000100011010000110101000000100100
1000100111010010010101001000101100
1000101011011000110101010010000100
1000101111011010010101011010001100
1000110010110001010101100000100110
1000110110110011010101101000101110
1000111010110001110101110010000110
1000111110110011110101111010001110
1001000010110100010110000001000010
1001000110110110010110001001000110
1001001010110100110110010001000011
1001001110110110110110011001000111
1001010011100001010110100001010010
1001010111100011010110101001010110
1001011011100001110110110001010011
1001011111100011110110111001010111
1001100011100100010111000001001000
1001100111100110010111001001001100
1001101011100100110111010001001001
1001101111100110110111011001001101
1001110010111001010111100001011000
1001110110111100010111101001011100
1001111011101001010111110001011001
1001111111101100010111111001011101
TABLE 3D — Rate-8/9 (G = 4, I = 6) precoderless code table (data words 193-256)
INPUTOUTPUTINPUTOUTPUT
1100000001110001011100000110100010
1100000101110011011100001110100110
1100001001110001111100010110100011
1100001101110011111100011110100111
1100010001111001011100100110110010
1100010101111011011100101110110110
1100011001111001111100110110110011
1100011101111011111100111110110111
1100100001110100011101000110101000
1100100101110110011101001110101100
1100101001110100111101010110101001
1100101101110110111101011110101101
1100110001111100011101100110111000
1100110101111110011101101110111100
1100111001111100111101110110111001
1100111101111110111101111110111101
1101000010000001011110000101110001
1101000110000011011110001101111001
1101001010000001111110010111010001
1101001110000011111110011111011001
1101010010001001011110100101110011
1101010110001011011110101101111011
1101011010001001111110110111010011
1101011110001011111110111111011011
1101100010000100011111000101110100
1101100110000110011111001101111100
1101101010000100111111010111010100
1101101110000110111111011111011100
1101110010001100011111100101110110
1101110110001110011111101101111110
1101111010001100111111110111010110
1101111110001110111111111111011110

Claims as granted

7 claims

Log in to read the claims of this application.

Log in to unlock

Classifications

5 codes
IPC · International Patent Classification
Section G — Physics
  • G11B20/14
Section H — Electricity
  • H03M5/14
  • H03M7/46
USPC · US Patent Classification
341/59714/800

Claim changes

Soon
Coming soonHow the claims changed between publication and grant

See which claims were amended, added or cancelled during examination, with every added and removed word marked.

AmendedAddedCancelledUnchanged

The published claims of this application are not paired with the granted ones in what we hold.

File wrapper

⤢ drag to zoomJul 2003Oct 2003Jan 2004Apr 2004Jul 2004Oct 2004Jan 2005USPTOApplicantNon-final rejectionResponse after non-final
USPTOApplicanthover for detail · click to open
Pendency
1.4 y
516 days filing → grant
Office actions
1
non-final + final
Responses
1
no RCE
Examiner
Peguy JeanPierre
art unit 2819 · TC 2800
Citations: 8 back · 0 forward

See the full prosecution history — every USPTO and applicant action on this file, in order.

Log in to unlock

Documents

Log in to open the documents of this file: the application as filed, every office action and response, the notice of allowance.

Log in to unlock

Chain of title

⤢ drag to zoom20042006200820102012201420162018202020222024Owner 1Owner 3liens, releases & corrections
TitleReleasehover for detail · click to open

See the full assignment history — every owner this patent has passed through, with recordation dates and reel/frame numbers.

Log in to unlock