WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Method and apparatus for detecting and decoding data in a PRML class-IV digital communication channel    
United States Patent5576707   
Link to this pagehttp://www.wikipatents.com/5576707.html
Inventor(s)Zook; Christopher P. (Longmont, CO)
AbstractA method and apparatus for encoding, detecting and decoding data in a Partial Response (PR) class-IV magnetic recording storage system that does not require the conventional interleave constraint and therefore minimizes the path memory and latency of a sequence detector such as the Maximum Likelihood (ML) Viterbi detector. Rather than encoding an interleave constraint to ensure merging of path memories in the detector, the parity of the encoded codewords is utilized in selecting tile correct sequence out of the unmerged paths. The encoding technique encodes the data using two groups of codewords; the first group causes the path memories of the sequence detector to merge into one survivor sequence and the second group causes the path memories to merge into two survivor sequences different in only one bit and thus different in parity. The correct survivor sequence is thereby selected according to the parity of the codeword being detected. Parity is determined during the encoding process such that codewords from the second group follow codewords with even or odd parity. By looking ahead to the following codeword during the detection process, the parity of the current codeword being detected is determined and the correct survivor sequence selected. Further, the encoding technique provides the ability to correct for certain errors in the detected sequence when a "1" bit is erased due to noise in the system.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5576707
Method and apparatus for detecting and decoding data in a PRML class-IV

     digital communication channel - US Patent 5576707 Drawing
Method and apparatus for detecting and decoding data in a PRML class-IV digital communication channel
Inventor     Zook; Christopher P. (Longmont, CO)
Owner/Assignee     Cirrus Logic, Inc. (Fremont, CA)
Patent assignment
All assignments
Publication Date     November 19, 1996
Application Number     08/257,853
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     June 10, 1994
US Classification     341/58 341/107 714/795
Int'l Classification     H03M 013/12 H03M 007/00
Examiner     Williams; Howard L.
Assistant Examiner    
Attorney/Law Firm     Sheerin; Howard S.
Address
Parent Case    
Priority Data    
USPTO Field of Search     341/58 341/59 341/81 341/94 341/107 371/43 360/40 360/48
Patent Tags     detecting decoding data prml class-iv digital communication channel
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5434886
Kazawa

Jul,1995

[0 after 0 votes]
5282216
Patel
369/59.22
Jan,1994

[0 after 0 votes]
4870414
Karabed
341/59
Sep,1989

[0 after 0 votes]
4786890
Marcus
341/81
Nov,1988

[0 after 0 votes]
4707681
Eggenberger
341/59
Nov,1987

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


We claim:

1. An apparatus for processing an input stream of pulse samples in a PRML communication channel, comprising:

(a) a receiver connected to receive the input stream of pulse samples;

(b) at least one sequence detector, connected to receive the pulse samples, for detecting a digital sequence of binary data from the pulse samples, comprising a plurality of path memories, the path memories comprising a plurality of memory elements, each memory element storing one bit of the digital sequence;

(c) at least one parity generator for generating a parity signal having two states, active and inactive, responsive to the number of "1" bits stored in at least two of the memory elements of at least one of the path memories of the sequence detector:

(d) at least one path selector for selecting one of two of the path memories out of the plurality of path memories of the sequence detector, the path selector using the parity signal for selecting the path memory; and

(e) at least one look ahead generator for generating a look ahead signal having two states, active and inactive, responsive to the bits stored in at least one of the memory elements of at least two of the path memories of the sequence detector, the path selector using the look ahead signal for selecting the path memory.

2. The apparatus as recited in claim 1, wherein:

the digital sequence comprising a plurality of codewords wherein each codeword comprises a predetermined k number of bits; and

the sequence detector storing a first codeword and at least part of a second codeword in the plurality of path memories;

the parity signal being generated from the memory elements of the path memories storing at least part of the first codeword; and

the look ahead signal being generated from the memory elements of the path memories storing at least part of the second codeword; and

the path selector selecting the path memory storing at least part of the first codeword.

3. The apparatus as recited in claim 2, wherein:

the sequence detector comprises four path memories comprising n+k memory elements each, wherein n is the number of bits of the second codeword stored in the path memories; and

the path memories storing two survivor sequences of k bits, different in only one bit, wherein one of the survivor sequences storing the first codeword; and

the path selector selecting the path memory storing the survivor sequence comprising the first codeword.

4. The apparatus as recited in claim 3, wherein:

the path memories storing an even and odd interleave subsequence, the odd interleave consisting only of odd bit positions and the even interleave consisting of even bit positions; and

the at least one parity generator comprising a first and second parity generator; and

the first parity generator responsive to the memory elements storing the odd interleave of the two survivor sequences of k bits; and

the second parity generator responsive to the memory elements storing the even interleave of the two survivor sequences of k bits; and

the at least one path selector comprising a first and second path selector; and

the first path selector responsive to the first parity generator and for selecting the path memory storing the odd interleave of the survivor sequence comprising the first codeword; and

the second path selector responsive to the second parity generator and for selecting the path memory storing the even interleave of the survivor sequence comprising the first codeword; and

the look ahead signal responsive to at least one of the n memory elements of at least two of the path memories.

5. The apparatus as recited in claim 2, wherein:

the input stream of pulse samples is divided into an even and odd interleave; and

the first codeword comprising a first and second part wherein each part comprising at least one bit; and

the sequence detectors comprise two sequence detectors, each sequence detector comprising two path memories, each sequence detector processing one of the interleaves; and

the path memories of one of the sequence detectors storing a single survivor sequence, the single survivor sequence comprising the first part of the first codeword; and

the path memories of the other sequence detector storing two survivor sequences, different in one bit, wherein one of the two survivor sequences comprising the second part of the first codeword; and

the path selector selecting the path memory storing the survivor sequence comprising the second part of the first codeword; and

the look ahead signal responsive to the sequence detector comprising the path memories storing the single survivor sequence.

6. An apparatus for processing an input stream of pulse samples in a PRML communication channel, comprising:

(a) a receiver connected to receive the input stream of pulse samples;

(b) at least one sequence detector, connected to receive the pulse samples, for detecting a digital sequence of binary data from the pulse samples, comprising a plurality of path memories, the path memories comprising a plurality of memory elements, each memory element storing one bit of the digital sequence;

(c) at least one parity generator for generating a parity signal having two states, active and inactive, responsive to the number of "1" bits stored in at least two of the memory elements of at least one of the path memories of the sequence detector; and

(d) at least one path selector for selecting one of two of the path memories out of the plurality of path memories of the sequence detector, the path selector using the parity signal for selecting the path memory,

wherein:

the digital sequence comprising a plurality of codewords wherein each codeword comprises a predetermined k number of bits;

the sequence detector storing a first codeword and at least part of a second codeword in the plurality of path memories;

the parity signal being generated from the memory elements of the path memories storing at least part of the first codeword; and

the path selector selecting the path memory such that the parity of bits out of the digital sequence detected matches the parity of the first codeword.

7. The apparatus as recited in claim 6, further comprising a decoder for decoding the codewords into a stream of datawords comprising a predetermined j number of bits.

8. The apparatus as recited in claim 7, wherein j is 8 and k is 9.

9. The apparatus as recited in claim 7, wherein:

the input stream of pulse samples is divided into an even and odd interleave; and

k is greater than j and

there are 2.sup.k sequence words comprising 2.sup.j codewords and 2.sup.k-j errorwords, wherein the codewords decode into 2.sup.j datawords; and

the errorwords decode into datawords having corresponding codewords different from the errorwords in two contiguous bit positions within either interleave.

10. The apparatus as recited in claim 6, wherein:

the sequence detector comprises four path memories comprising n+k memory elements each, wherein n is the number of bits of the second codeword stored in the path memories; and

the path memories storing two survivor sequences of k bits different in only one bit, wherein one of the survivor sequence storing the first codeword; and

the path selector selecting the path memory storing the survivor sequence comprising the first codeword.

11. The apparatus as recited in claim 10, wherein:

the path memories storing an even and odd interleave subsequence, the odd interleave consisting only of odd bit positions and the even interleave consisting of even bit positions; and

the at least one parity generator comprising a first and second parity generator; and

the first parity generator responsive to the memory elements storing the odd interleave of the two survivor sequences of k bits; and

the second parity generator responsive to the memory elements storing the even interleave of the two survivor sequences of k bits; and

the at least one path selector comprising a first and second path selector; and

the first path selector responsive to the first parity generator and for selecting the path memory storing the odd interleave of the survivor sequence comprising the first codeword; and

the second path selector responsive to the second parity generator and for selecting the path memory storing the even interleave of the survivor sequence comprising the first codeword.

12. The apparatus as recited in claim 6, wherein:

the input stream of pulse samples is divided into an even and odd interleave; and

the first codeword comprising a first and second part wherein each part comprising at least one bit; and

the sequence detectors comprise two sequence detectors, each sequence detector comprising two path memories, each sequence detector processing one of the interleaves; and

the two path memories of one of the sequence detectors storing a single survivor sequence, the single survivor sequence storing the first part of the first codeword; and

the two path memories of the other sequence detector storing two corresponding survivor sequences, different in one pit, wherein one of the two survivor sequences comprising the second part of the first codeword; and

the path selectors selecting the path memory storing the survivor sequence comprising the second part of the first codeword.

13. An apparatus for processing an input stream of pulse samples in a PRML communication channel, comprising:

(a) a receiver connected to receive the input stream of pulse samples;

(b) at least one sequence detector, connected to receive the pulse samples, for detecting a digital sequence of binary data from the pulse samples, comprising a plurality of path memories, the path memories comprising a plurality of memory elements, each memory element storing one bit of the digital sequence;

(c) at least one parity generator for generating a parity signal having two states, active and inactive, responsive to the number of "1" bits stored in at least two of the memory elements of at least one of the path memories of the sequence detector; and

(d) at least one path selector for selecting one of two of the path memories out of the plurality of path memories of the sequence detector, the path selector using the parity signal for selecting the path memory,

wherein:

the input stream of pulse samples is divided into an even and odd interleave; and

the sequence detectors comprise two sequence detectors, each sequence detector comprising two path memories, each sequence detector processing one of the interleave.

14. The apparatus as recited in claim 13, wherein:

the sequence detectors are sliding threshold sequence detectors; and

the PRML communication channel is a PR4 communication channel.

15. A method for processing an input stream of pulse samples in a PRML communication channel, comprising the steps of:

(a) receiving an input stream of pulse samples;

(b) detecting a digital sequence of binary data from the pulse samples utilizing at least one sequence detector comprising a plurality of path memories, the path memories comprising a plurality of memory elements, each memory element storing one bit of the digital sequence;

(c) generating at least one parity signal having two states, active and inactive, responsive to the number of "1" bits stored in at least two of the memory elements of at least one of the path memories of the sequence detector; and

(d) utilizing the part signal for selecting one of two of the path memories out of the plurality of path memories of the sequence detector;

wherein:

the digital sequence comprising a plurality of codewords wherein each codeword comprises a predetermined k number of bits;

the sequence detector storing a first codeword and at least part of a second codeword in the plurality of path memories;

the at least one parity signal being generated from the memory elements of the path memories storing at least part of the first codeword; and

the path memory is selected in step (d) such that the parity of k bits out of the digital sequence detected matches the parity of the first codeword.

16. The method as recited in claim 15, further comprising the step of decoding the codewords into a stream of datawords comprising a predetermined j number of bits.

17. The method as recited in claim 16, wherein j is 8 and k is 9.

18. The method as recited in claim 16, wherein:

the input stream of pulse samples is divided into an even and odd interleave; and

k is greater than j; and

there are 2.sup.k sequence words comprising 2.sup.j codewords and 2.sup.k-j errorwords, wherein the codewords decode into 2.sup.j datawords; and

the errorwords decode into datawords having corresponding codewords different from the errorwords in two contiguous bit positions within either interleaved.

19. The method as recited in claim 15, wherein the sequence detector comprises four path memories.

20. The method as recited in claim 15, wherein:

the sequence detector comprises four path memories comprising n+k memory elements each, wherein n is the number of bits of the second codeword stored in the path memories; and

the path memories storing two survivor sequences of k bits different in only one bit, wherein one of the survivor sequence storing the first codeword; and

the path memory selected in step (d) storing the survivor sequence comprising the first codeword.

21. The apparatus as recited in claim 20, wherein:

the path memories storing an even and odd interleave subsequence, the odd interleave consisting only of odd bit positions and the even interleave consisting of eve bit positions; and

the at least one parity signal comprising a first and second parity signal; and

the first parity signal responsive to the memory elements storing the odd interleave of the two survivor sequences of k bits; and

the second parity signal responsive to the memory elements storing the even interleave of the two survivor sequences of k bits; and

selecting the path memory in step (d) comprises the steps of:

utilizing the first parity signal for selecting the path memory storing the odd interleave of the survivor sequence comprising the first codeword; and

utilizing the second parity signal for selecting the path memory storing the even interleave of the survivor sequence comprising the first codeword.

22. The method as recited in claim 15, wherein:

the input stream of pulse samples is divided into an even and odd interleave; and

the sequence detectors comprise two sequence detectors, each sequence detector comprising two path memories, each sequence detector processing one of the interleaves.

23. The method as recited in claim 22, wherein:

the sequence detectors are sliding threshold sequence detectors; and

the PRML communication channel is a PR4 communication channel.

24. The method as recited in claim 15, wherein:

the input stream of pulse samples is divided into an even and odd interleave; and

the first codeword comprising a first and second part wherein each part comprising at least one bit; and

the sequence detectors comprise two sequence detectors, each sequence detector comprising two path memories, each sequence detector processing one of the interleaves; and

the two path memories of one of the sequence detectors storing a single survivor sequence, the single survivor sequence storing the first part of the first codeword; and

the two path memories of the other sequence detector storing two corresponding survivor sequences, different in one pit, wherein one of the two survivor sequences comprising the second part of the first codeword; and

the path memory selected in step (d) storing the survivor sequence comprising the second part of the first codeword.
 Description Submit all comments and votes
 


FIELD OF INVENTION

This invention related to computer technology and more specifically to systems for storing and retrieving digitized data on magnetic storage media.

CROSS REFERENCE TO RELATED APPLICATIONS AND PATENTS

This application is related to U.S. patent application Ser. No. 08/258,308 entitled, "Method and Apparatus for Encoding Data in a PRML Class-IV Digital Communication Channel". The above-named patent application is assigned to the same entity.

BACKGROUND OF THE INVENTION

The application of Partial Response Maximum Likelihood (herein after PRML) techniques to digital communication channels is well documented. See Y. Kabal and S. Pasupathy, "Partial Response Signaling", IEEE Trans. Commun. Tech., Vol. COM-23, pp.921-934, Sep. 1975; Edward A. Lee and David G. Messerschmitt, "Digital Communication", Kluwer Academic Publishers, Boston, 1990; and G. D. Forney, Jr., "The Viterbi Algorithm", Proc. IEEE, Vol. 61, pp. 268-278, Mar. 1973. Applying PRML techniques to magnetic storage systems is also well documented. See Roy D. Cideciyan, Francois Dolivo, Walter Hirt, and Wolfgang Schott, "A PRML System for Digital Magnetic Recording", IEEE Journal on Selected Areas in Communications, Vol. 10 No. 1, January 1992, pp.38-56; Wood et al, "Viterbi Detection of Class IV Partial Response on a Magnetic Recording Channel", IEEE Trans. Commun., Vol. Com-34, No. 5, pp. 454-461, May 1986; and Coker Et al, "Implementation of PRML in a Rigid Disk Drive", IEEE Trans. on Magnetics, Vol. 27, No. 6, November 1991.

In magnetic storage systems, a transducing head writes digital data onto the surface of a magnetic storage medium, such as a magnetic disk. The digital data serves to modulate the current in the head coil in writing a sequence of corresponding magnetic flux transitions which represent the digital data. When reading the recorded data, the head again passes over the magnetic medium and transduces the magnetic transitions into pulses in an analog read signal, which are then decoded by read channel circuitry to reproduce the digital sequence.

Decoding the pulses into a digital sequence can be performed by a simple pulse detector read channel or, as in more recent designs, by a partial response maximum likelihood (PRML) read channel. The PRML read channel scheme is preferred over the simpler pulse detection scheme because it decreases the necessary bandwidth, thereby allowing more data to be stored on the storage medium.

In conventional peak detection as well as PRML schemes, a channel code provides clocking and automatic gain control (AGC) information. To perform the timing and gain control, the number of consecutive zero samples must be limited since timing and in control information is derived only when non-zero samples are read from the channel. Typically, an RLL code having a (d,k) constraint, which specifies the minimum and maximum run lengths of zeros respectively, encodes the data before recording it to the storage medium. For instance, a byte oriented (d=0,k=4) 8/9 encodes binary data represented as 8 bit data bytes into 9 bit codewords in order to achieve the desired (d,k) constraint. Because the PRML technique utilizes inter-symbol interference (ISI) in a controlled manner, the d constraint in Partial Response class-IV channels is unnecessary (d=0). However the k constraint is still necessary in class-IV systems to provide the timing and control information.

The sampled data in Partial Response (PR) channels is typically converted into digital sequence using Maximum Likelihood (ML) detection techniques (thus PRML). A Viterbi sequence detector normally implements the maximum likelihood Viterbi algorithm for detecting the digital sequence from the sampled data. See G. D. Forney, Jr., "The Viterbi Algorithm", Proc. IEEE, Vol. 61, pp. 268-278, Mar. 1973.

Prior art implementations of encoders and Viterbi sequence detectors in Partial Response class-IV channels introduced an additional constraint on the number of consecutive zeros in each of the even an odd interleaves of the encoded data in order to minimize the path memory of the detector. Thus the conventional modulation codes for PR class-IV systems utilizing Viterbi detection are characterized by (d,k/k1) where k1 represents the maximum run length of zeroes in both the even and odd subsequences. A small value of k is desirable for accurate timing and gain control, and a small value of k1 reduces the size of the path memory in the Viterbi detector. A method for encoding the channel data according to the (d,k/k1) constraints is described in U.S. Pat. No. 4,707,681, the disclosure of which is herein incorporated by reference.

FIG. 3 shows an example trellis diagram for the 1-D.sup.2 PR class-IV channel and the affect the k1 constraint has on the path memory length of the Viterbi detector. As shown in the diagram, the path memories merge into one survivor sequence only after a "1" has been detected in both the even 40 and odd 42 interleaves. Therefore, in prior art implementations the length of the Viterbi detector path memories must be greater than 2(k1+1)+1 to guarantee that the paths merge into the correct sequence 34.

A further problem with the prior art implementations is that a minimum delay of 2(k1+1)+1 samples is required before the paths merge and the correct sequence is available. This latency degrades the performance of the storage systems; for instance, it increases the delay between reading the ID field and writing data to the disk. The latency also degrades the performance of other read channel components that use the output of the sequence detector, such as servo control.

Another problem with the prior art is the inability to correct errors in the data samples due to noise. For instance, if noise in the system causes a "1" to be erased, the path memories of the Viterbi detector may not be merged after 2(k1+1)+1 samples and the detected sequence may not be correct.

It is a general object of the present invention to provide a method and apparatus for processing data in a PR class-IV communication channel that does not require the conventional, k1 constraint, thereby minimizing the path memory and latency of the Viterbi detector. Another object of the invention is to correct errors in the detected sequence when a "1" is erased due to noise in the system.

SUMMARY OF THE INVENTION

The objects of the present invention are achieved by a novel method and apparatus for encoding, detecting and decoding data in a PR class-IV magnetic recording channel. The data is encoded using run length limited (RLL) (d,k) coding, without the conventional k1 constraint (i.e., there is no interleave constraint on the maximum number of consecutive zeros). There are two preferred embodiments of the present invention; the first embodiment uses minimum path memory and minimizes the latency of the Viterbi detector but does not correct for errors due to noise, and the second embodiment corrects for errors but uses more path memory and has more latency.

In the minimum latency embodiment, the codewords are divided into three sets. The first set contains codewords having at least one "1" bit in both the even and odd interleave within a predetermined first N number of bits. The second set contains codewords having at least one "1" bit in the even interleave and zero "1" bits in the odd interleave within the first N number of bits. The third set contains codewords having at least one "1" bit in the odd interleave and zero "1" bits in the even interleave within the first N number of bits.

The path memories of the minimum latency embodiment are N+n long where n is the num her of bits in a codeword (e.g., 9 in a 8/9 code). Thus the path memories are long enough to store N bits out of a current codeword, and n (i.e. all) bits of the previous codeword. Because the codewords in the first set contain a "1" in both interleaves within the first N bits, the path memories prior to the two "1" bits are guaranteed to have merged. That is, the codeword detected previous to the N bits of the current codeword is guaranteed to be available in the merged part of the path memories as shown in FIG. 5a.

The codewords in the second set, having at least one "1" bit in the even interleave within the first N bits of the codeword, guarantees that the path memories storing the even interleave of the previous codeword will be the same and the odd interleave will be different in only one bit as shown in FIG. 5b. Similarly, the codewords in the third set, having at least one "1" bit in the odd interleave within the first N bits of the codeword, guarantees that the path memories storing the odd interleave of the previous codeword will be the same and the even interleave will be different in only one bit as shown in FIG. 5c.

Since the path memories storing the previous codeword are different in only one bit when followed by a codeword from either the second or third set, the correct path can be selected by knowing the parity of the previous codeword as determined by which set the following codeword belongs. For instance, if codewords from the second set always follow codewords with even parity, and codewords from the third set always follow codewords wit odd parity, the correct sequence for the previous codeword can be determined by choosing the path with the correct parity. The encoding method and apparatus of the present invention ensures that codewords with an even or odd parity are followed by codewords from the correct set.

By encoding the data according to the present invention, the correct sequence for the previous codeword can be determined before the path memories merge, thereby minimizing the latency of the Viterbi detector. Compared to the prior art implementations having a latency of 2(k1+1)+1 bits, the latency of the present invention is N bits. Thus if K1=4 and N=3, the latency of the present invention is approximately four times less than the prior art.

In the error correcting embodiment of the present invention, the path memories are long enough to store M+n bits, where M is greater than N in the first embodiment. The codewords are again divide into three sets. The first set has an additional property of at least two "1" bits in both the even and odd interleaves within a predetermined first M bits of the codeword. The second and third set have an additional property of at least one "1" bit in one of the interleaves and less than two "1" bits in the other interleave within the first M bits of the codeword.

If the codeword out of the second or third set has only one "1" bit in either interleave within the M bits, and that "1" bit is erased, the path memories storing the previous codeword will not have merged. However, since the parity of the previous codeword is known, the correct path can still be chosen and the errors caused by choosing the wrong path in the prior art implementations avoided.

Two example codes corresponding to the two embodiments are disclosed to illustrate the encoding technique of the present invention. Both are 8/9 rate (0,4) codes meaning that each eight source bits encoded into nine channel bits such that no more than four consecutive "0"s occur in the encoded data. There is no k1 constraint, that is, there is no constraint on the maximum number of consecutive "0"s in either interleave.

The two example codes are not meant to limit the invention. Codes having rates other than 8/9 and constraints other than (0,4) could be used without departing from the scope and spirit of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of the recording system including an encoder, a pre-coder, a 1-D.sup.2 Partial Response class-IV channel, a Viterbi detector and a decoder.

FIG. 2 shows a state diagram for a 1-D.sup.2 Partial Response Class-IV channel and the corresponding survivor sequence extension from each state for the trellis diagram.

FIG. 3 is an example trellis diagram for a 1-D.sup.2 Partial Response Class-IV channel as related to the prior art k1 constraint.

FIG. 4 is a block diagram of the encoder of the present invention.

FIG. 5a, 5b, and 5c show example trellis diagrams for a 1-D.sup.2 Partial Response Class-IV channel storing a first and second codeword of the present invention.

FIG. 6a, 6b, and 6c show example trellis diagrams for a pair of 1-D channels processing the even and odd interleaves of the 1-D.sup.2 Partial Response Class-IV channel storing a first and second codeword of the present invention.

FIG. 7a and 7b show example trellis diagrams for a 1-D.sup.2 Partial Response Class-IV channel storing a first and second codeword of the present invention where a "1" bit has been erased from the second codeword due to noise.

FIG. 8a, 8b and 8c show example trellis diagrams for a 1-D.sup.2 Partial Response Class-IV channel storing a first and second codeword of the present invention where a look-ahead signal is generated from the path memories storing the first bit of the second codeword.

FIG. 8d is a block diagram of the detector/decoder of the present invention where the detector is implemented using a pair of two state 1-D sliding threshold Viterbi detectors.

FIG. 9a and 9b show a detailed diagram of the two state 1-D sliding threshold Viterbi detector for the minimum latency embodiment of the present invention.

FIG. 10 shows the implementation of the multiplexor for selecting the output of the two state 1-D sliding threshold Viterbi detectors.

FIG. 11a and 11b show a detailed diagram of the two state 1-D sliding threshold Viterbi detector for the error correcting embodiment of the present invention.

FIG. 12 shows a block diagram of the four state 1-D.sup.2 Viterbi detector for an alternative embodiment of the present invention.

DETAILED DESCRIPTION OF THE PRESENT INVENTION

Partial Response class-IV magnetic recording channels are characterized by a 1-D.sup.2 polynomial which exhibits spectral nulls at dc and at the Nyquist frequency. The output of the channel is thus a function of the current input and the input at n-2:

y(n)=x(n)-x(n-2).

With the binary input data modulating the write current such that a "1" bit generates current in a positive direction (+1) and a "0" bit in the negative direction (-1), the output samples of the channel y(n) take on the values 2,0,-2, hereinafter normalized to 1 0,-1.

Referring now to FIG. 1, the 8-bit data words are encoded into 9-bit codewords using the encoder 3 of the present invention. In order to prevent error propogation and to retain the global k constraint for timing and gain control, the output of the encoder 20 is pre-coded by a 1/1-D.sup.2 polynomial 2 before writing the codewords to the channel 6. This pre-coding is taken into account in the Viterbi detector 4 when the sampled data is read from the recording channel 6. The detector 4 detects the digital sequence for the codewords and the codewords are decoded 5 back into 8-bit data words.

The binary input 16 the channel 6 and normalized output 18 can be depicted by a state diagram 8 as shown in FIG. 2. In the diagram a state 12 represents the previous two output bits 16 from the pre-coder 2. A transition is depicted by the current encoder output 20 and the corresponding pre-coder output 16 and channel output 18.

The operation of the Viterbi sequence detector can be further understood from a trellis diagram. As shown in FIG. 2, each state of the state diagram 8 corresponds to a state in the trellis diagram 10. Each path 22 from one state to the next represents one bit 16 of a survivor sequence for a detected codeword given the current sample value 18 read from the 1-D.sup.2 channel 6. A survivor sequence is a possible correct recorded sequence given several samples read from the channel.

For example, a non-zero sample read from the channel is caused either by a "1" in the recorded sequence or a "0" in the recorded sequence and noise in the channel. Thus two survivor sequences are saved, one with a "1" and the other with a "0". The correct sequence is determined from future samples read from the channel; that is, the correct sequence is determined by choosing the sequence with the maximum likelihood of being correct given future samples read from the channel. The maximum likelihood sequence is the sequence that minimizes the mean squared error between the sample value read from the channel and the sample value expected. For instance, if a sample value read from the channel is +0.8, then the squared sample error value for a "0" in the sequence is (0-(+0.8)).sup.2, and the squared sample error value for a "1" in the sequence is (+1-(+0.8).sup.2.

A sum of the mean squared errors is stored for each survivor sequence, and the sequence with the least mean squared error has the highest probability of being correct. After a "1" in each interleave of the recorded sequence has been processed by the Viterbi detector, there is only one survivor sequence with a minimum mean squared error up to the first "1", and the paths storing the other survivor sequences will have merged into this maximum likelihood path.

At any given time there can be up to four survivor sequences; there are four path memories in the Viterbi detector. To aid in understanding the invention, each of the four path memories is represented by a corresponding state in the trellis diagram.

Referring now to FIG. 3, shown is a trellis diagram for a particular recorded sequence 36 (i.e., an encoded sequence) and corresponding sample sequence 38 read from the 1-D.sup.2 channel 6. The sequence is labeled as odd 30 and even 32 interleaves, and each interleave has a constraint of k1=4; that is, the encoding scheme uses the prior art technique. As shown in the diagram, the path memories do not merge into a single survivor sequence 34 until a "1" bit 40 in the even interleave and a "1" bit 42 in the odd interleave have been detected. Therefore the length of the path memories must be at least 2(k1+1)+1 or 2(4+1)+1=11 bits long, and the next bit in the correct sequence available until 11 samples have been read from the channel. Before a complete codeword is available, there is a latency of 2(k1+1)+1+n, where n is the number of bits in a codeword (e.g., 9 in a 8/9 code). This latency is undesirable as previously described. Further, if the "1" bit 42 in the odd interleave is erased, the path memories will not have merged after 2(k1+1) bits and the survivor sequence selected for the codeword may not be correct.

ENCODER

A block diagram of the encoder 3 of the present invention is shown in FIG. 4. Eight bits 48 of source data are encoded 50 into nine bit codewords 20 using the parity 54 (modulo-2 sum) of the previous codeword. The encoding scheme is unique to the present invention and is hereinafter described.

The minimum latency encoding scheme of the present invention, which has the k constraint but not the k1 constraint, can be understood from the trellis diagrams shown in FIGS. 5a, 5b and 5c. In these figures, an 8/9 code is implemented and the trellis diagram stores 9 bits 60 of a first codeword and 2 bits 62 from a second codeword that follows the first.

As shown in FIG. 5a, if the 2 bits 62 from the second codeword are {1,1}, then the path memories storing the first codeword will have merged into a single survivor sequence 60 because there is a "1" bit in both the even and odd interleave. That is, the parity of the first codeword is not necessary to select the correct path memory because all the path memories are the same If the 2 bits 62 from the second codeword are {0,1} or {1,0}, then the path memories will store two survivor sequences different by only one bit.

For instance, FIG. 5b shows the case where the 2 bits 62 from the second codeword are {0,1} wherein the two resulting survivor sequences for the first codeword are {1,1,0,0,0,0,0,0,0} 64 and {1,0,0,0,0,0,0,0,0} 66. Since the two sequence are different in only one bit, the correct sequence can be selected using the parity of the first codeword. Thus if the parity is even, the first survivor sequence 64 is selected, and if the parity is odd, the second survivor sequence 66 is selected. FIG. 5c shows the same result for the case where the 2 bits 62 from the second codeword are {1,0}. The parity of the first codeword is determined during the encoding process.

If the second data word encodes into a codeword out of a first group of codewords wherein the first two bits are {1,1}, then the parity of the first codeword is ignored since the path memories will have merged into one survivor sequence. If the second data word does not encode into the {1,1} group, then it is encoded into either the {0,1} or {1,0} group of codewords depending on the parity of the first codeword. For instance, if the first codeword has even parity, then the second codeword is selected from the {0,1} group of codewords, and if the first codeword has odd parity, then the second codeword is selected from the {1,0} group. When the data is detected by the Viterbi detector, the path memory storing the first codeword is selected based on its corresponding parity as determined by the second codeword.

To this point, the invention has been described with respect to a 1-D.sup.2 four state Viterbi detector. However, the 1-D.sup.2 channel can be factored into a pair of interleaved 1-D channels and detected using a pair of two state Viterbi detectors. See Roy D. Cideciyan, Francois Dolivo, Walter Hirt, and Wolfgang Schott, "A PRML System for Digital Magnetic Recording", IEEE Journal on Selected Areas in Communications, Vol. 10 No 1, January 1992, pp.38-56. Using two interleaved sequence detectors simplifies the detection algorithm, and the encoding technique of the present invention is applicable to this interleaved detection scheme.

FIGS. 6a, 6b, and 6c show the two state trellis diagrams for the interleaved detectors corresponding to the four state trellis diagrams in FIGS. 5a, 5b, and 5c, respectively. In FIG. 6a there is a "1" in both interleaves within the first two bits of the second codeword; the path memories for both the even and odd interleave have merged into the correct sequence for the first codeword. In FIG. 6b there is a "1" only in the odd interleave within the first two bits of the second codeword; the even interleave has not merged and contains two survivor sequences. FIG. 6c shows a similar situation where the odd interleave has not merged into a single survivor sequence.

As in the four state detector described above, the correct survivor sequence for the first codeword is selected based on its parity as determined by the second codeword. The even interleave will not be merged only when followed by a codeword from the {1,0} group; the path memory of the even interleave is selected such that the parity of the first codeword is odd since codewords that precede the {1,0} codewords always have odd parity. Similarly, the odd interleave will not be merged only when preceded by a codeword from the {0,1} group; the path memory of the odd interleave is selected such that the parity of the first codeword is even since codewords that precede the {0,1} codewords always have even parity.

For the 8/9 code having a {0,4} constraint, there are not enough 9 bit codewords in the groups of {1,1,X,X,X,X,X,X,X}, {0,1,X,X,X,X,X,X,X}, and {1,0,X,X,X,X,X,X,X} to encode 256 data words; a third bit must be used. The resulting groups of codewords and corresponding parity of the previous codeword are shown in Table 1.

TABLE 1 ______________________________________ GROUP1: {0,0,1,X,X,X,X,X,X} odd parity GR0UP2: {0,1,0,X,X,X,X,X,X} odd parity GR0UP3: {0,1,1,X,X,X,X,X,X} don't care GR0UP4: {1,0,0,X,X,X,X,X,X} even parity GR0UP5: {1,0,1,X,X,X,X,X,X} even parity GR0UP6: {1,1,0,X,X,X,X,X,X} don't care GR0UP7: {1,1,1,X,X,X,X,X,X} don't care ______________________________________

Groups 3, 5, 6 and 7 have "1" bit in both the even and odd interleave within the firs 3 bits and thus perform the same function as the {1,1} group described above. The remaining groups are divided into those that follow codewords with even and odd parity as follow; groups 1 and 2 always follow codewords with odd parity, and groups 4 and 5 always follow codewords with even parity. The mapping of data words to codewords is arbitrary, and the assignment of even and odd parity may also be reversed.

An example mapping octal notation of data words to codewords is shown in Table 2 and Table 3. Table 2 shows the mapping of data words into codewords out of groups 3, 5, 6 and 7. Table 3 shows the mapping of data words into codewords out of groups 1 and 2 if the parity of the previous codeword is odd, and into codeword out of groups 4 and 5 if the parity of the previous codeword is even.

TABLE 2 ______________________________________ Data CW ______________________________________ 000 362 001 342 002 312 003 352 004 662 005 642 006 612 007 652 010 332 011 322 012 311 013 313 014 341