A 520k (18900, 17010) Array Dispersion LDPC Decoder Architectures for NAND Flash Memory

Although Latin square is a well-known algorithm to construct low-density parity-check (LDPC) codes for satisfying long code length, high code-rate, good correcting capability, and low error floor, it has a drawback of large submatrix that the hardware implementation will be suffered from large barrel shifter and worse routing congestion in fitting NAND flash applications. In this paper, a top-down design methodology, which not only goes through code construction and optimization, but also hardware implementation to meet all the critical requirements, is presented. A two-step array dispersion algorithm is proposed to construct long LDPC codes with a small submatrix size. Then, the constructed LDPC code is optimized by masking matrix to obtain better bit-error rate (BER) performance and lower error-floor. In addition, our LDPC codes have a diagonal-like structure in the parity-check matrix leading to a proposed hybrid storage architecture, which has the advantages of better area efficiency and large enough data bandwidth for high decoding throughput. To be adopted for NAND flash applications, an (18900, 17010) LDPC code with a code-rate of 0.9 and submatrix size of 63 is constructed and the field-programmable gate array simulations show that the error floor is successfully suppressed down to BER of 10-12. An LDPC decoder using normalized min-sum variable-node-centric sequential scheduling decoding algorithm is implemented in UMC 90-nm CMOS process. The postlayout result shows that the proposed LDPC decoder can achieve a throughput of 1.58 Gb/s at six iterations with a gate count of 520k under a clock frequency of 166.6 MHz. It meets the throughput requirement of both NAND flash memories with Toggle double data rate 1.0 and open NAND flash interface 2.3 NAND interfaces.

[1]  William Ryan,et al.  Channel Codes by William Ryan , 2009 .

[2]  Hsie-Chia Chang,et al.  A 11.5-Gbps LDPC decoder based on CP-PEG code construction , 2009, 2009 Proceedings of ESSCIRC.

[3]  Hsie-Chia Chang,et al.  A 45nm 6b/cell charge-trapping flash memory using LDPC-based ECC and drift-immune soft-sensing engine , 2013, 2013 IEEE International Solid-State Circuits Conference Digest of Technical Papers.

[4]  Robert G. Gallager,et al.  Low-density parity-check codes , 1962, IRE Trans. Inf. Theory.

[5]  David J. C. MacKay,et al.  Good Codes Based on Very Sparse Matrices , 1995, IMACC.

[6]  Thomas J. Richardson,et al.  Error Floors of LDPC Codes , 2003 .

[7]  Khaled A. S. Abdel-Ghaffar,et al.  Algebraic construction of quasi-cyclic LDPC codes for the AWGN and erasure channels , 2006, IEEE Transactions on Communications.

[8]  Khaled A. S. Abdel-Ghaffar,et al.  Algebraic Quasi-Cyclic LDPC Codes: Construction, Low Error-Floor, Large Girth and a Reduced-Complexity Decoding Scheme , 2014, IEEE Transactions on Communications.

[9]  Marc P. C. Fossorier,et al.  Shuffled iterative decoding , 2005, IEEE Transactions on Communications.

[10]  Martin J. Wainwright,et al.  An Efficient 10GBASE-T Ethernet LDPC Decoder Design With Low Error Floors , 2010, IEEE Journal of Solid-State Circuits.

[11]  Naresh R. Shanbhag,et al.  High-throughput LDPC decoders , 2003, IEEE Trans. Very Large Scale Integr. Syst..

[12]  Shu Lin,et al.  Construction of Regular and Irregular LDPC Codes: Geometry Decomposition and Masking , 2007, IEEE Transactions on Information Theory.

[13]  Massimo Rossini,et al.  A 128Gb 3b/cell NAND flash design using 20nm planar-cell technology , 2013, 2013 IEEE International Solid-State Circuits Conference Digest of Technical Papers.

[14]  Harald Niederreiter,et al.  Introduction to finite fields and their applications: Preface , 1994 .

[15]  William Ryan,et al.  Channel Codes: Classical and Modern , 2009 .

[16]  Yeong-Luh Ueng,et al.  A Multimode Shuffled Iterative Decoder Architecture for High-Rate RS-LDPC Codes , 2010, IEEE Transactions on Circuits and Systems I: Regular Papers.

[17]  Shu Lin,et al.  Construction of nonbinary cyclic, quasi-cyclic and regular LDPC codes: a finite geometry approach , 2008, IEEE Transactions on Communications.

[18]  D.J.C. MacKay,et al.  Good error-correcting codes based on very sparse matrices , 1997, Proceedings of IEEE International Symposium on Information Theory.

[19]  Shyh-Jye Jou,et al.  A 5.79-Gb/s Energy-Efficient Multirate LDPC Codec Chip for IEEE 802.15.3c Applications , 2012, IEEE Journal of Solid-State Circuits.

[20]  Shu Lin,et al.  Channel Codes: Classical and Modern , 2009 .

[21]  Yan Li,et al.  128Gb 3b/cell NAND flash memory in 19nm technology with 18MB/s write rate and 400Mb/s toggle mode , 2012, 2012 IEEE International Solid-State Circuits Conference.

[22]  Qin Huang,et al.  Quasi-Cyclic LDPC Codes: An Algebraic Construction, Rank Analysis, and Codes on Latin Squares , 2010, IEEE Transactions on Communications.

[23]  Mohammad M. Mansour,et al.  A Turbo-Decoding Message-Passing Algorithm for Sparse Parity-Check Matrix Codes , 2006, IEEE Transactions on Signal Processing.

[24]  Yeong-Luh Ueng,et al.  A shuffled message-passing decoding method for memory-based LDPC decoders , 2009, 2009 IEEE International Symposium on Circuits and Systems.

[25]  Richard D. Wesel,et al.  Soft Information for LDPC Decoding in Flash: Mutual-Information Optimized Quantization , 2011, 2011 IEEE Global Telecommunications Conference - GLOBECOM 2011.

[26]  Shuhei Tanakamaru,et al.  Over-10×-extended-lifetime 76%-reduced-error solid-state drives (SSDs) with error-prediction LDPC architecture and error-recovery scheme , 2012, 2012 IEEE International Solid-State Circuits Conference.

[27]  Hideki Imai,et al.  Reduced complexity iterative decoding of low-density parity check codes based on belief propagation , 1999, IEEE Trans. Commun..

[28]  Kyungmin Kim,et al.  A 159mm2 32nm 32Gb MLC NAND-flash memory with 200MB/s asynchronous DDR interface , 2010, 2010 IEEE International Solid-State Circuits Conference - (ISSCC).

[29]  Guido Masera,et al.  Implementation of a Flexible LDPC Decoder , 2007, IEEE Transactions on Circuits and Systems II: Express Briefs.

[30]  Wonyong Sung,et al.  Rate-0.96 LDPC Decoding VLSI for Soft-Decision Error Correction of NAND Flash Memory , 2014, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[31]  Dwijendra K. Ray-Chaudhuri,et al.  Binary mixture flow with free energy lattice Boltzmann methods , 2022, arXiv.org.

[32]  Huang-Chang Lee,et al.  An Efficient Multi-Standard LDPC Decoder Design Using Hardware-Friendly Shuffled Decoding , 2013, IEEE Transactions on Circuits and Systems I: Regular Papers.

[33]  Shu Lin,et al.  Construction of Quasi-Cyclic LDPC Codes for AWGN and Binary Erasure Channels: A Finite Field Approach , 2007, IEEE Transactions on Information Theory.

[34]  Jinghu Chen,et al.  Density evolution for two improved BP-Based decoding algorithms of LDPC codes , 2002, IEEE Communications Letters.