A Configurable Bose-Chaudhuri-Hocquenghem codec Architecture for Flash controller Applications

Error correction coding (ECC) has become one of the most important tasks of flash memory controllers. The gate count of the ECC unit is taking up a significant share of the overall logic. Scaling the ECC strength to the growing error correction requirements has become increasingly difficult when considering cost and area limitations. This work presents a configurable encoding and decoding architecture for binary Bose–Chaudhuri–Hocquenghem (BCH) codes. The proposed concept supports a wide range of code rates and facilitates a trade-off between throughput and space complexity. Commonly, hardware implementations for BCH decoding perform many Galois field multiplications in parallel. We propose a new decoding technique that uses different parallelization degrees depending on the actual number of errors. This approach significantly reduces the number of required multipliers, where the average number of decoding cycles is even smaller than with a fully parallel implementation.

[1]  Chin-Long Chen,et al.  High-speed decoding of BCH codes , 1981, IEEE Trans. Inf. Theory.

[2]  Paul H. Siegel,et al.  Characterization and error-correcting codes for TLC flash memories , 2012, 2012 International Conference on Computing, Networking and Communications (ICNC).

[3]  James L. Massey,et al.  Shift-register synthesis and BCH decoding , 1969, IEEE Trans. Inf. Theory.

[4]  Keshab K. Parhi,et al.  High-Speed Architectures for Parallel Long BCH Encoders , 2005, IEEE Trans. Very Large Scale Integr. Syst..

[5]  Kenneth Rose,et al.  Design of on-chip error correction systems for multilevel NOR and NAND flash memories , 2007, IET Circuits Devices Syst..

[6]  Robert T. Chien,et al.  Cyclic decoding procedures for Bose- Chaudhuri-Hocquenghem codes , 1964, IEEE Trans. Inf. Theory.

[7]  J.L. Massey,et al.  Theory and practice of error control codes , 1986, Proceedings of the IEEE.

[8]  Uwe Fink Coding Theory Algorithms Architectures And Applications , 2016 .

[9]  Wei Liu,et al.  Low-Power High-Throughput BCH Error Correction VLSI Design for Multi-Level Cell NAND Flash Memories , 2006, 2006 IEEE Workshop on Signal Processing Systems Design and Implementation.

[10]  Roberto Ravasio,et al.  Error Correction Codes for Non-Volatile Memories , 2008 .

[11]  Tenkasi V. Ramabadran,et al.  A tutorial on CRC computations , 1988, IEEE Micro.

[12]  L. Litwin,et al.  Error control coding , 2001 .

[13]  R. Blahut Algebraic Codes for Data Transmission , 2002 .

[14]  Ralf Koetter A Fast Parallel Implementation of a Berlekamp-Massey Algorithm for Algebraic-Geometric Codes , 1998, IEEE Trans. Inf. Theory.

[15]  K ParhiKeshab,et al.  High-speed architectures for parallel long BCH encoders , 2005 .

[16]  Zhongfeng Wang,et al.  Error correction for multi-level NAND flash memory using Reed-Solomon codes , 2008, 2008 IEEE Workshop on Signal Processing Systems.

[17]  Kejing Liu,et al.  Error floor analysis in LDGM codes , 2010, 2010 IEEE International Symposium on Information Theory.

[18]  Hsie-Chia Chang,et al.  New serial architecture for the Berlekamp-Massey algorithm , 1999, IEEE Trans. Commun..

[19]  Liang Han,et al.  The design of parallelized BCH codec , 2010, 2010 3rd International Congress on Image and Signal Processing.

[20]  Paul H. Siegel,et al.  Error characterization and coding schemes for flash memories , 2010, 2010 IEEE Globecom Workshops.

[21]  Cheng-Wen Wu,et al.  An Adaptive-Rate Error Correction Scheme for NAND Flash Memory , 2009, 2009 27th IEEE VLSI Test Symposium.