Error-correction decoder employing multiple check-node algorithms
Uloženo v:
| Název: | Error-correction decoder employing multiple check-node algorithms |
|---|---|
| Patent Number: | 8,316,272 |
| Datum vydání: | November 20, 2012 |
| Appl. No: | 12/680810 |
| Application Filed: | April 08, 2009 |
| Abstrakt: | In one embodiment, an LDPC decoder has a controller and one or more check-node units (CNUs). The CNUs generate check-node messages using a scaled min-sum algorithm, an offset min-sum algorithm, or a scaled and offset min-sum algorithm. Initially, the controller selects a scaling factor and an offset value. The scaling factor may be set to one for no scaling, and the offset value may be set to zero for no offsetting. If the decoder is unable to correctly decode a codeword, then (i) the controller selects a new scaling and/or offset value and (ii) the decoder attempts to correctly decode the codeword using the new scaling and/or offset value. By changing the scaling factor and/or offset value, LDPC decoders of the present invention may be capable of improving error-floor characteristics over LDPC decoders that use only fixed or no scaling factors or fixed or no offsetting factors. |
| Inventors: | Gunnam, Kiran (San Jose, CA, US) |
| Assignees: | LSI Corporation (Milpitas, CA, US) |
| Claim: | 1. An apparatus comprising an error-correction decoder for decoding an error-correction-encoded codeword to recover a correct codeword, wherein: the decoder is configured to generate a first set of messages based on an initial set of initial values generated by an upstream processor, wherein: the initial set corresponds to the error-correction-encoded codeword; and each initial value in the initial set corresponds to a different bit of the error-correction-encoded codeword; and the decoder comprises: one or more blocks configured to convert the first set of messages into scaled-and-offset messages based on a scaling factor and an offset value; and a controller configured to select the scaling factor and the offset value. |
| Claim: | 2. The apparatus of claim 1 , wherein: the error-correction decoder comprises a variable-node unit configured to generate variable-node messages; the first set of messages are the variable-node messages; and the one or more blocks are configured to convert the variable-node messages into scaled-and-offset variable-node messages based on the scaling factor and the offset value. |
| Claim: | 3. The apparatus of claim 1 , wherein: the error-correction decoder comprises a check-node unit configured to generate check-node messages; the first set of messages are the check-node messages; and the one or more blocks are configured to convert the check-node messages into scaled-and-offset check-node messages based on the scaling factor and the offset value. |
| Claim: | 4. The apparatus of claim 1 , wherein: the error-correction decoder implements a min-sum algorithm; the error-correction decoder comprises a check-node unit configured to generate first-minimum and second-minimum magnitude values of the min-sum algorithm; the first set of messages are the first-minimum and second-minimum magnitude values; and the one or more blocks are configured to convert the first-minimum and second-minimum magnitude values into scaled-and-offset first-minimum and second-minimum magnitude values based on the scaling factor and the offset value. |
| Claim: | 5. The apparatus of claim 1 , wherein: the controller is capable of setting the scaling factor to 1; and the controller is capable of setting the offset value to 0. |
| Claim: | 6. The apparatus of claim 1 , wherein the one or more blocks comprise a scaling-and-offset block that performs both scaling and offsetting. |
| Claim: | 7. The apparatus of claim 1 , wherein: the decoder is a low-density parity-check decoder; and the values received from the upstream processor are soft-output values having a hard-decision bit and one or more confidence-value bits. |
| Claim: | 8. The apparatus of claim 1 , wherein the controller is configured to (i) select an initial scaling factor and an initial offset value and (ii) subsequently modify at least one of the initial scaling factor and the initial offset value. |
| Claim: | 9. The apparatus of claim 8 , wherein the controller modifies the at least one of the initial scaling factor and the initial offset value after the controller determines that the error-correction decoder does not converge on the correct codeword within a predetermined number of decoding iterations. |
| Claim: | 10. The apparatus of claim 8 , wherein the controller is configured to modify both the initial scaling factor and the initial offset value. |
| Claim: | 11. The apparatus of claim 8 , wherein the controller is configured to modify the initial scaling factor by incrementing the initial scaling factor by a specified scaling-factor increment. |
| Claim: | 12. The apparatus of claim 8 , wherein the controller is configured to modify the initial offset value by incrementing the initial offset value by a specified offset-value increment. |
| Claim: | 13. A method for decoding an error-correction encoded codeword to recover a correct codeword, the method comprising: (a) selecting a scaling factor and an offset value; (b) receiving an initial set of initial values from an upstream processor, wherein: the initial set corresponds to the error-correction-encoded codeword; and each initial value in the initial set corresponds to a different bit of the error-correction-encoded codeword; (c) generating a first set of messages based on the initial set of initial values; and (d) converting the first set of messages into scaled-and-offset messages based on the scaling factor and the offset value. |
| Claim: | 14. The method of claim 13 , wherein: step (c) comprises generating variable-node messages as the first set of messages; and step (d) comprises converting the variable-node messages into scaled-and-offset variable-node messages based on the scaling factor and the offset value. |
| Claim: | 15. The method of claim 13 , wherein: step (c) comprises generating check-node messages as the first set of messages; and step (d) comprises converting the check-node messages into scaled-and-offset check-node messages based on the scaling factor and the offset value. |
| Claim: | 16. The method of claim 13 , wherein: step (c) comprises generating first-minimum and second-minimum magnitude values of a min-sum algorithm as the first set of messages; and step (d) comprises converting the first-minimum and second-minimum magnitude values into scaled-and-offset first-minimum and second-minimum magnitude values based on the scaling factor and the offset value. |
| Claim: | 17. The method of claim 13 , wherein: step (a) comprises selecting an initial scaling factor and an initial offset value; step (d) comprises converting the first set of messages into scaled-and-offset messages based on the initial scaling factor and the initial offset value; and the method further comprises: (e) subsequently modifying at least one of the initial scaling factor and the initial offset value; (f) generating a second set of messages; and (g) converting the second set of messages into scaled-and-offset messages based on the initial scaling factor and the initial offset value as modified in step (e). |
| Claim: | 18. The method of claim 17 , wherein the at least one of the initial scaling factor and the initial offset value is modified after determining that the method does not converge on the correct codeword within a predetermined number of decoding iterations. |
| Claim: | 19. The method of claim 13 , wherein: the error-correction-encoded codeword is a low-density parity-check encoded codeword; and the values received from the upstream processor are soft-output values having a hard-decision bit and one or more confidence-value bits. |
| Claim: | 20. An apparatus for decoding an error-correction encoded codeword to recover a correct codeword, the apparatus comprising: (a) means for selecting a scaling factor and an offset value; (b) means for receiving an initial set of initial values from an upstream processor, wherein: the initial set corresponds to the error-correction-encoded codeword; and each initial value in the initial set corresponds to a different bit of the error-correction-encoded codeword; (c) means for generating a first set of messages based on the initial set of initial values; and (d) means for converting the first set of messages into scaled-and-offset messages based on the scaling factor and the offset value. |
| Current U.S. Class: | 714/752 |
| Patent References Cited: | 3755779 August 1973 Price 4295218 October 1981 Tanner 5048060 September 1991 Arai et al. 6307901 October 2001 Yu et al. 6550023 April 2003 Brauch et al. 6888897 May 2005 Nazari et al. 7181676 February 2007 Hocevar 7237181 June 2007 Richardson 7296216 November 2007 Shen et al. 7340671 March 2008 Jones et al. 7353444 April 2008 Owsley et al. 7457367 November 2008 Farhang-Boroujeny et al. 7689888 March 2010 Kan et al. 7725800 May 2010 Yang et al. 7739558 June 2010 Farjadrad et al. 7752523 July 2010 Chaichanavong et al. 7805642 September 2010 Farjadrad 7895500 February 2011 Sun et al. 7904793 March 2011 Mokhlesi et al. 7941737 May 2011 Gopalakrishnan et al. 7949927 May 2011 Park et al. 8010869 August 2011 Wejn et al. 8020070 September 2011 Langner et al. 8037394 October 2011 Djurdjevic et al. 8046658 October 2011 Heinrich et al. 8051363 November 2011 Liu 8103931 January 2012 Wang et al. 8127209 February 2012 Zhang et al. 8151171 April 2012 Blanksby 8156409 April 2012 Patapoutian et al. 8616345 April 2012 Graef 8171367 May 2012 Gao et al. 8205134 June 2012 Harrison et al. 8205144 June 2012 Yadav 8219878 July 2012 Varnica et al. 8255763 August 2012 Yang et al. 2002/0062468 May 2002 Nagase et al. 2002/0166095 November 2002 Lavi et al. 2005/0132260 June 2005 Kyung et al. 2005/0193320 September 2005 Varnica et al. 2005/0204255 September 2005 Yeh et al. 2005/0283707 December 2005 Sharon et al. 2006/0107181 May 2006 Dave et al. 2006/0285852 December 2006 Xi et al. 2007/0011569 January 2007 Vila Casado et al. 2007/0011573 January 2007 Farjadrad et al. 2007/0011586 January 2007 Belogolovyi et al. 2007/0044006 February 2007 Yang et al. 2007/0071009 March 2007 Nagaraj et al. 2007/0089018 April 2007 Tang et al. 2007/0089019 April 2007 Tang et al. 2007/0124652 May 2007 Litsyn et al. 2007/0147481 June 2007 Bottomley et al. 2007/0153943 July 2007 Nissila 2007/0162788 July 2007 Moelker 2007/0220408 September 2007 Huggett et al. 2007/0234178 October 2007 Richardson et al. 2007/0234184 October 2007 Richardson 2008/0049869 February 2008 Heinrich et al. 2008/0082868 April 2008 Tran et al. 2008/0104485 May 2008 Yurievich Lyakh et al. 2008/0109701 May 2008 Yu et al. 2008/0126910 May 2008 Venkatesan et al. 2008/0148129 June 2008 Moon et al. 2008/0163032 July 2008 Lastras-Montano 2008/0235561 September 2008 Yang 2008/0276156 November 2008 Gunnam et al. 2008/0301517 December 2008 Zhong 2008/0301521 December 2008 Gunnam et al. 2009/0063931 March 2009 Rovini et al. 2009/0083609 March 2009 Yue et al. 2009/0132897 May 2009 Xu et al. 2009/0150745 June 2009 Langner et al. 2009/0235146 September 2009 Tan et al. 2009/0259912 October 2009 Djordjevic et al. 2009/0273492 November 2009 Yang et al. 2009/0307566 December 2009 No et al. 2009/0319860 December 2009 Sharon et al. 2010/0037121 February 2010 Jin et al. 2010/0042806 February 2010 Gunnam 2010/0042890 February 2010 Gunnam 2010/0050043 February 2010 Savin 2010/0058152 March 2010 Harada 2010/0088575 April 2010 Sharon et al. WO03092170 November 2003 WO2004079563 September 2004 WO2007114724 October 2007 WO2008004215 January 2008 WO 2010/019168 February 2010 |
| Other References: | Sripimanwat, K., “Turbo Code Applications: A Journey From a Paper to Realization”, Oct. 26, 2005, Springer, p. 27. cited by other Cavus et al., “A Performance Improvement and Error Floor Avoidance Technique for Belief Propagation Decoding of LDPC Codes,” IEEE 16th International Symposium, Personal, Indoor & Mobile Radio Communications (PIMRC), Berlin, Germany Sep. 11-14, 2005, pp. 2386-2390. cited by other Cavus, Enver et al., “An IS Simulation Technique for Very Low BER Performance Evaluation of LDPC Codes,” IEEE International Conference on Communications, Jun. 1, 2006, pp. 1095-1100. cited by other Cole, Chad A. and Hall, Eric K., “Analysis and Design of Moderate Length Regular LDPC Codes with Low Error Floors,” Proc, 40th Conf. Information Sciences and Systems, Princeton, NJ, 2006, 6 pgs. cited by other Richardson, Tom, “Error Floors of LDPC Codes,” Allerton Conf. on Communication, Control and Computing, (Monticello, Illinois), Oct. 2003, pp. 1426-1435. cited by other Gunnam, Kiran K., Choi, Gwan S., and Yeary, Mark B., “Technical Note on Iterative LDPC Solutions for Turbo Equalization,” Texas A&M Technical Note, Department of ECE, Texas A&M University, College Station, TX 77843, Jul. 2006 (available online at http://dropzone.tamu.edu), pp. 1-5. cited by other Kiran Gunnam, Gwan Choi, Mark Yeary—“An LDPC decoding schedule for memory access reduction”, IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP) 2004, pp. 173-176, vol. 15. cited by other Stefan Landner, Olgica Milenkovic—“Algorithmic and Combinatorial Analysis of Trapping Sets in Structured LDPC Codes”, International Conference on Wireless Networks, Communications and Mobile Computing, 2005, pp. 630-635, vol. 1. cited by other Hao Zhong,Tong Zhang—“Block—LDPC: A Practical LDPC Coding System Design Approach”, IEEE transactions on circuits and systems—l: Regular Papers, Apr. 2005, pp. 766-775, vol. 52. cited by other Kiran K. Gunnam, Gwan S. Choi, Weihuang Wang, Euncheol Kim, and Mark B. Yeary—“Decoding of Quasi-cyclic LDPC Codes Using an On-the-Fly Computation”, Fortieth Asilomar Conference on Signals, Systems and Computers (ACSSC), 2006, pp. 1192-1199. cited by other Thomas J. Richardson and Rudiger L. Urbanke—“Efficient Encoding of Low-Density Parity-Check Codes”, IEEE Transactions on Information Theory, Feb. 2001, pp. 638-656,vol. 47, No. 2. cited by other Tom Richardson—“Error Floors of LDPC Codes”, IEEE Transactions on Information Theory, Feb. 2001, pp. 1426-1435,vol. 47, No. 2. cited by other E. Papagiannis, C. Tjhai, M. Ahmed, M. Ambroze, M. Tomlinson—“Improved Iterative Decoding for Perpendicular Magnetic Recording”, The ISCTA 2005 Conference on Feb. 4, 2005, pp. 1-4. cited by other Kiran K. Gunnam, Gwan S. Choi, and Mark B. Yeary—“A Parallel VLSI Architecture for Layered Decoding for Array LDPC Codes”, 20th International Conference on VLSI Design, 2007,6th International Conference on Embedded Systems, Jan. 2007 pp. 738-743. cited by other David J.C. MacKay—“Information Theory, Inference, and Learning Algorithms”, Cambridge University Press Sep. 2003, p. 640. cited by other R. Michael Tanner, Deepak Sridhara, Arvind Sridharan, Thomas E. Fuja, and Daniel J. Costello, Jr—“LDPC Block and Convolutional Codes Based on Circulant Matrices”, IEEE Transactions on Information Theory, Dec. 2004, pp. 2966-2984, vol. 50, No. 12. cited by other Amin Shokrollahi—“LDPC Codes: An Introduction, In Coding, Cryptography and Combinatorics”,Computer Science and Applied Logic, Birkhauser, Basel, 2004, pp. 85-110, vol. 23. cited by other Yang Han and William E. Ryan—“LDPC Decoder Strategies for Achieving Low Error Floors”, Proceedings of Information Theory and Applications Workshop, San Diego, CA, Jan. 2008, pp. 1-10. cited by other Mohammad M. Mansour and Naresh R. Shanbhag—“Low Power VLSI decoder architectures for LDPC codes” International Symposium on Low Power Electronics and Design Proceedings of the 2002 , ICIMS Research Center, 2002, pp. 284-289. cited by other Dale E. Hocevar—“A Reduced Complexity Decoder Architecture Via Layered Decoding of LDPC Codes”, IEEE Workshop on Signal Processing Systems, 2004, pp. 107-112. cited by other Robert G. Gallager—“Low Density Parity—Check Codes”,Cambridge Mass Jul. 1963, p. 90. cited by other T. Richardson and R. Urbanke—“Modern Coding Theory”, Cambridge University Press, Preliminary version—Oct. 18, 2007, p. 590. cited by other Kiran Gunnam, Gwan Choi, Weihuang Wang, Mark Yeary—“Multi-Rate Layered Decoder Architecture for Block LDPC Codes of the IEEE 802, 11n Wireless Standard”, IEEE International Symposium on Circuits and Systems (ISCAS) 2007, pp. 1645-1648. cited by other Kiran K. Gunnam, Gwan S. Choi, Mark B. Yeary, Shaohua Yang and Yuanxing Lee—“Next Generation Iterative LDPC Solutions for Magnetic Recording Storage”, 42nd Asilomar Conference on Signals, Systems and Computers, 2008, pp. 1148-1152. cited by other D.J.C. MacKay and R.M. Neal—“Near Shannon limit performance of low density parity check codes”, Electronics Letters Mar. 13, 1997, pp. 458-459, vol. 33 No. 6. cited by other Jinghu Chen, Ajay Dholakia, Evangelos Eleftheriou, Marc P. C. Fossorier, Xiao-Yu Hu, “Reduced-Complexity Decoding of LDPC Codes”, IEEE Transactions on Communications, Aug. 2005, pp. 1288-1299,vol. 53, No. 8. cited by other Kiran K. Gunnam, Gwan S. Choi, Mark B. Yeary and Mohammed Atiquzzaman—“VLSI Architectures for Layered Decoding for Irregular LDPC Codes of WiMax”, IEEE International Conference on Communications (ICC), 2007, pp. 4542-4547. cited by other Andrew J. Blanksby and Chris J. Howland—“A 690-mW 1-Gb/s 1024-b, Rate-1/2 Low-Density Parity-Check Code Decoder”, IEEE Journal of Solid-State Circuits, Mar. 2002. pp. 404-412,vol. 37, No. 3. cited by other Kiran Gunnam, Weihuang Wang, Gwan Choi, Mark Yeary—“VLSI Architectures for Turbo Decoding Message Passing Using Min-Sum for Rate-Compatible Array LDPC Codes”, 2nd International Symposium on Wireless Pervasive Computing (ISWPC), 2007, pp. 561-566. cited by other Kiran K. Gunnam, Gwan S. Choi, Weihuang Wang, and Mark B. Yeary—“A Parallel VLSI Architecture for Layered Decoding”,Proceedings of the 20th International Conference on VLSI Design, 6th International Conference: Embedded Systems, 2007, pp. 738-743. cited by other R.Michael Tanner—“A Recursive Approach to Low Complexity Codes”,IEEE transaction on Information Theory, Sep. 1981, pp. 533-547,vol. IT-27, No. 5. cited by other Mohammad M. Mansour, and Naresh R. Shanbhag—“A 640-Mb/s 2048-Bit Programmable LDPC Decoder Chip”, IEEE Journal of Solid-State Circuits, Mar. 2006, pp. 684-698,vol. 41, No. 3. cited by other Badri N. Vellambi R, and Faramarz Fekri, “An Improved Decoding Algorithm for Low-Density Parity-Check Codes over the Binary Erasure Channel”, IEEE GLOBECOM 2005 proceedings, pp. 1182-1186. cited by other Yang Han, William E. Ryan—“Low-Floor Decoders for LDPC Codes”, IEEE Transactions on Communications, vol. 57, No. 6, Jun. 2009, pp. 1663-1673. cited by other PCT International Search Report dated Feb. 9, 2009 from International Application No. PCT/US 08/86537. cited by other PCT International Search Report dated May 15, 2009 from International Application No. PCT/US 09/39279. cited by other PCT International Search Report dated Feb. 12, 2009 from International Application No. PCT/US 08/86523. cited by other PCT International Search Report dated May 28, 2009 from International Application No. PCT/US 09/41215. cited by other PCT International Search Report dated May 15, 2009 from International Application No. PCT/US 09/39918. cited by other Vila Casado, Andres I., Weng, Wen-Yen and Wesel, Richard D. “Multiple Rate Low-Density Parity-Check Codes with Constant Blocklength,” IEEE 2004, pp. 2010-2014. cited by other Vila Casado, Andres I. “Variable-rate Low-denisty Parity-check Codes with Constant Blocklength,” UCLA Technologies Available for Licensing Copyright © 2009 The Regents of the University of California. http://www.research.ucla.edu/tech/ucla05-074.htm (2 pages). cited by other Vila Casado, Andres I., Weng, Wen-Yen, Valle, Stefano and Wesel, Richard D. “Multiple-Rate Low-Density Parity-Check Codes with Constant Blocklength,” IEEE Transactions on Communications, vol. 57, No. 1, Jan. 2009; pp. 75-83. cited by other K. Gunnam et al., “Value-Reuse Properties of Min-Sum for GF(q)” (dated Oct. 2006) Dept. of ECE, Texas A&M University Technical Note, published about Aug. 2010. cited by other K. Gunnam et al., “Value-Reuse Properties of Min-Sum for GF (q)” (dated Jul. 2008) Dept. of ECE, Texas A&M University Technical Note, published about Aug. 2010. cited by other K. Gunnam “Area and Energy Efficient VLSI Architectures for Low-Density Parity-Check Decoders Using an On-The-Fly Computation” dissertation at Texas A&M University, Dec. 2006. cited by other Tuchler, M., et al., “Improved Receivers for Digital High Frequency Waveforms Using Turbo Equalization,” Military Communications Conference; Milcom 2002 Proceedings; Anaheim, CA, Oct. 7-10, 2002; IEEE Military Communications Conference, New York, NY; IEEE; US, vol. 1, Oct. 7, 2002; pp. 99-104; XP002966498. cited by other Alghonaim, E., et al., “Improving BER Performance of LDPC codes Based on Intermediate Decoding Results,” Signal Processing and Communications; 2007; ICSPC, 2007; IEEE International Conference; IEEE; Piscataway, NJ; USA; Nov. 24, 2007; pp. 1547-1550; XP031380831. cited by other Pusane, A.E.; Costello, D.J.; Mitchell, D.G.M;, “Trapping Set Analysis of Protograph-Based LDPC Convolutional Codes,” Information Theory, 2009. ISIT 2009. IEEE International Symposium on, vol., No., pp. 561-565, Jun. 28, 2009-Jul. 3, 2009. cited by other Laendner, S.; Milenkovic, O.;, “LDPC Codes Based on Latin Squares: Cycle Structure, Stopping Set, and Trapping Set Analysis,” Communications, IEEE Transactions on, vol. 55, No. 2, pp. 303-312, Feb. 2007. cited by other Dehkordi, M.K,; Banihashemi, A.H.;, “An Efficient Algorithm for Finding Dominant Trapping Sets of LDPC Codes,” Turbo Codes and Iterative Information Processing (ISTC), 2010 6th International Symposium on, pp. 444-448, Sep. 6-10, 2010. cited by other |
| Primary Examiner: | Abraham, Esaw |
| Attorney, Agent or Firm: | Mendelsohn, Drucker & Associates, P.C. Brown, Craig M. Mendelsohn, Steve |
| Přístupové číslo: | edspgr.08316272 |
| Databáze: | USPTO Patent Grants |
| Abstrakt: | In one embodiment, an LDPC decoder has a controller and one or more check-node units (CNUs). The CNUs generate check-node messages using a scaled min-sum algorithm, an offset min-sum algorithm, or a scaled and offset min-sum algorithm. Initially, the controller selects a scaling factor and an offset value. The scaling factor may be set to one for no scaling, and the offset value may be set to zero for no offsetting. If the decoder is unable to correctly decode a codeword, then (i) the controller selects a new scaling and/or offset value and (ii) the decoder attempts to correctly decode the codeword using the new scaling and/or offset value. By changing the scaling factor and/or offset value, LDPC decoders of the present invention may be capable of improving error-floor characteristics over LDPC decoders that use only fixed or no scaling factors or fixed or no offsetting factors. |
|---|