Methods and algorithms for joint channel-code decoding of linear block codes
Uložené v:
| Názov: | Methods and algorithms for joint channel-code decoding of linear block codes |
|---|---|
| Patent Number: | 7,571,372 |
| Dátum vydania: | August 04, 2009 |
| Appl. No: | 11/166548 |
| Application Filed: | June 23, 2005 |
| Abstrakt: | Circuits, architectures, methods and algorithms for joint channel-code decoding of linear block codes, and more particularly, for identifying and correcting one or more errors in a code word and/or for encoding CRC (or parity) information. In one aspect, the invention focuses on use of (i) remainders, syndromes or other polynomials and (ii) Gaussian elimination to determine and correct errors. Although this approach may be suboptimal, the present error checking and/or detection scheme involves simpler computations and/or manipulations than conventional schemes, and is generally easier to implement logically. Since the complexity of parity-based error correction schemes increases disproportionately to the number of potential error events, the present invention meets a long-felt need for a scheme to manage error detection and/or correction in systems (such as magnetic recording applications) where there may be a relatively large number of likely error events, thereby advantageously improving reliability and/or performance in channel communications. |
| Inventors: | Burd, Gregory (San Jose, CA, US); Wu, Zining (Los Altos, CA, US) |
| Assignees: | Marvell International Ltd. (Hamilton, BM) |
| Claim: | 1. A circuit, comprising: a) a list generator configured to (i) generate a list consisting of a subset of most likely error events for each of a plurality of dominant error types for a data block, and (ii) compute an error event remainder for each of said most likely error events; and b) search logic configured to select a number of error correction solutions for said data block from (i) said error event remainders and (ii) a remainder for said data block. |
| Claim: | 2. The circuit of claim 1 , wherein said search logic comprises incidence vector logic configured to calculate one or more incidence vectors from said most likely error events. |
| Claim: | 3. The circuit of claim 1 , wherein said search logic is further configured to combine said most likely error events or said error event remainders to determine said error correction solutions. |
| Claim: | 4. The circuit of claim 1 , further comprising matrix processing logic configured to form a matrix from said error event remainders. |
| Claim: | 5. The circuit of claim 4 , further comprising matrix augmenting logic configured to augment said matrix with said remainder for said data block. |
| Claim: | 6. The circuit of claim 5 , wherein said search logic further comprises row reducing logic configured to reduce said matrix to row echelon form. |
| Claim: | 7. The circuit of claim 1 , further comprising error correction logic configured to (i) enable outputting a corrected, decoded data block when the number of error correction solutions is one, and (ii) select a most favored error correction solution and correct said data block according to said most favored error correction solution when the number of error correction solutions is more than one. |
| Claim: | 8. The circuit of claim 7 , wherein said error correction logic is further configured to (i) compute a total penalty for each error correction solution, and (ii) select said most favored error correction solution according to said total penalty. |
| Claim: | 9. The circuit of claim 7 , wherein said error correction logic is further configured to disallow any error correction solution comprising more than a threshold number of said most likely error events. |
| Claim: | 10. The circuit of claim 1 , wherein said list generator comprises a memory configured to store each of said most likely error events and each of said error event remainders. |
| Claim: | 11. The circuit of claim 10 , further comprising computing logic configured to determine a value for one or more parameters associated with each of said most likely error events, wherein said list generator is further configured to store each of said parameter values. |
| Claim: | 12. The circuit of claim 11 , wherein at least one of said parameters associated with each of said most likely error events is selected from the group consisting of a penalty and a location in said data block. |
| Claim: | 13. The circuit of claim 12 , further comprising a memory configured to store a plurality of said most likely error events for each error event type according to said associated penalties. |
| Claim: | 14. A decoder, comprising: a) a Viterbi detector configured to decode said data block; and b) the circuit of claim 1 . |
| Claim: | 15. The decoder of claim 14 , wherein said data block comprises a run length limited (RLL) code, and said decoder further comprises a RLL decoder. |
| Claim: | 16. The decoder of claim 15 , further comprising decision logic configured to: a) instruct said Viterbi detector, said circuit and/or said RLL decoder to output a corrected, decoded data block when the number of error correction solutions is one (1); and b) instruct error correction logic to select a most favored error correction solution and correct said data block according to said most favored error correction solution when the number of error correction solutions is more than one. |
| Claim: | 17. A receiver, comprising: a) a finite impulse response (FIR) filter configured to receive a waveform corresponding to said data block; b) the decoder of claim 14 . |
| Claim: | 18. A system, comprising: a) the receiver of claim 17 ; and b) an encoder, configured to form said data block. |
| Claim: | 19. The system of claim 18 , further comprising a magnetic recording medium configured to receive, store and provide access to said data block. |
| Claim: | 20. The system of claim 18 , wherein said encoder comprises: a) placeholding logic configured to (i) insert dummy CRC information segments at or between a plurality of predetermined positions in a data block and (ii) output a dummy-padded data block; b) a CRC encoding circuit configured to compute actual CRC information for said data block; and c) a CRC information substituting circuit, configured to substitute portions of said actual CRC information for said dummy CRC information segments in said dummy-padded data block. |
| Claim: | 21. The system of claim 20 , wherein said CRC encoding circuit comprises (i) remainder logic configured to compute a remainder for said dummy-padded data block, and (ii) parity computing logic configured to provide said actual CRC information portions to said CRC information substituting circuit. |
| Claim: | 22. The system of claim 20 , wherein said encoder further comprises a buffer configured to receive said dummy-padded data block and provide the same to said CRC information substituting circuit. |
| Claim: | 23. The system of claim 20 , wherein said CRC information substituting circuit comprises a multiplexer. |
| Claim: | 24. The system of claim 20 , wherein said encoder further comprises a run length limited (RLL) encoder, configured to encode data according to a plurality of coding constraints. |
| Claim: | 25. A method of identifying and/or correcting one or more errors in a data block, comprising: a) forming a matrix from a plurality of error event remainders computed from a list consisting of a subset of most likely error events for each of a plurality of dominant error types for the data block; b) augmenting said matrix with a remainder for said data block; and c) determining, by Gaussian elimination, a number of error correction solutions for said data block in said augmented matrix. |
| Claim: | 26. The method of claim 25 , further comprising computing said data block remainder from said data block. |
| Claim: | 27. The method of claim 25 , further comprising defining one or more incidence vectors from said matrix, and computing one or more remainders corresponding to a composite error from a corresponding incidence vector. |
| Claim: | 28. The method of claim 25 , wherein the step of determining the number of error correction solutions comprises row reducing said augmented matrix to row echelon form. |
| Claim: | 29. A computer readable medium comprising a computer-executable set of instructions adapted to perform the method of claim 25 . |
| Claim: | 30. The method of claim 25 , further comprising computing each of said error event remainders from the list of most likely error events. |
| Claim: | 31. The method of claim 30 , further comprising generating said list of most likely error events. |
| Claim: | 32. The method of claim 31 , wherein generating said list of most likely error events comprises (i) compiling a local list of most likely candidates for each type of error event, and (ii) periodically selecting a best candidate from said local list for inclusion in said most likely error event list. |
| Claim: | 33. The method of claim 30 , further comprising computing one or more remainders corresponding to a composite error from a corresponding incidence vector, each of said incidence vector(s) comprising a plurality of said most likely error events. |
| Claim: | 34. The method of claim 33 , further comprising computing a penalty associated with each of said composite errors and/or said most likely error events. |
| Claim: | 35. The method of claim 34 , further comprising selecting a most favored error correction solution according to said penalties. |
| Current U.S. Class: | 714/769 |
| Patent References Cited: | 4916702 April 1990 Berlekamp 5802078 September 1998 Urabe et al. 6040953 March 2000 Malone et al. 6427220 July 2002 Vityaev 6456208 September 2002 Nazari et al. 6473010 October 2002 Vityaev et al. 6526530 February 2003 Nazari et al. 6530060 March 2003 Vis et al. 6543023 April 2003 Bessios 6711225 March 2004 Sutardja et al. 6823487 November 2004 Poeppelman 6981201 December 2005 Reggiani et al. 6986098 January 2006 Poeppelman et al. 7089483 August 2006 McEwen et al. 7260766 August 2007 Levy et al. |
| Other References: | U.S. Appl. No. 10/208,312, filed Jul. 29, 2002. cited by other U.S. Appl. No. 10/689,660, filed Oct. 31, 2003. cited by other Zining Wu and Gregory Burd; Error Correction Using Error Detection Codes; U.S. Appl. No. 10/752,339, filed Jan. 6, 2004. cited by other |
| Primary Examiner: | Baker, Stephen M |
| Prístupové číslo: | edspgr.07571372 |
| Databáza: | USPTO Patent Grants |
Buďte prvý, kto okomentuje tento záznam!