A Stepwise Rate-Compatible LDPC and Parity Management in NAND Flash Memory-Based Storage Devices

The storage capacity of the NAND flash memory has increased rapidly, and accordingly, the error rate for data writing and reading to the flash memory cell has also escalated. Error-correcting code (ECC) modules, such as low-density parity-check (LDPC), have been applied to flash controllers for error recovery. However, since the error rate increases rapidly, compared to the aging factor and program/erase (P/E) cycle, fixed ECCs and parities are inappropriate methods for resolving this proliferating error, according to the P/E cycle. Therefore, the design of a dynamic ECC scheme and a proper ECC parity management system to increase the lifespan of flash memory storage devices remains in great demand. Herein, an LDPC encoding and decoding scheme is designed to obtain a step-by-step code rate according to the P/E cycle by applying a stepwise rate-compatible LDPC. In addition, an ECC parity management scheme for the increasingly excessive stage-wise ECC is proposed to reduce management and read/write operational overheads. The ECC management scheme also includes the ECC cache system. The proposed LDPC, as well as its management system, will improve the recovery ability of the NAND flash storage device according to the P/E cycle, while it can reduce system read and write overheads due to additional parity data growth.

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

[2]  Fei Wu,et al.  Lifetime adaptive ECC in NAND flash page management , 2017, Design, Automation & Test in Europe Conference & Exhibition (DATE), 2017.

[3]  Nimrod Megiddo,et al.  ARC: A Self-Tuning, Low Overhead Replacement Cache , 2003, FAST.

[4]  Jian Song,et al.  Construction of Rate-Compatible Raptor-Like Quasi-Cyclic LDPC Code With Edge Classification for IDMA Based Random Access , 2019, IEEE Access.

[5]  Pingping Chen,et al.  Rate-Adaptive Protograph LDPC Codes for Multi-Level-Cell NAND Flash Memory , 2018, IEEE Communications Letters.

[6]  Onur Mutlu,et al.  Improving 3D NAND Flash Memory Lifetime by Tolerating Early Retention Loss and Process Variation , 2018, SIGMETRICS.

[7]  Guoliang Li,et al.  LazyFTL: a page-level flash translation layer optimized for NAND flash memory , 2011, SIGMOD '11.

[8]  Ravi Motwani,et al.  Robust decoder architecture for multi-level flash memory storage channels , 2012, 2012 International Conference on Computing, Networking and Communications (ICNC).

[9]  Fei Wu,et al.  Characterizing 3D Charge Trap NAND Flash: Observations, Analyses and Applications , 2018, 2018 IEEE 36th International Conference on Computer Design (ICCD).

[10]  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.

[11]  David J. C. MacKay,et al.  Good Error-Correcting Codes Based on Very Sparse Matrices , 1997, IEEE Trans. Inf. Theory.

[12]  Yuan-hua Liu Rate‐compatible QC‐LDPC codes based on PEXIT , 2018, Electronics Letters.

[13]  Robert Michael Tanner,et al.  A recursive approach to low complexity codes , 1981, IEEE Trans. Inf. Theory.

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

[15]  Sang Lyul Min,et al.  A space-efficient flash translation layer for CompactFlash systems , 2002, IEEE Trans. Consumer Electron..

[16]  Meng Zhang,et al.  RBER-Aware Lifetime Prediction Scheme for 3D-TLC NAND Flash Memory , 2019, IEEE Access.

[17]  J. Kessenich,et al.  Bit error rate in NAND Flash memories , 2008, 2008 IEEE International Reliability Physics Symposium.

[18]  Liang Shi,et al.  Exploiting Process Variation for Write Performance Improvement on NAND Flash Memory Storage Systems , 2016, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[19]  Wei Liu,et al.  Adapting Layer RBERs Variations of 3D Flash Memories via Multi-granularity Progressive LDPC Reading , 2019, 2019 56th ACM/IEEE Design Automation Conference (DAC).

[20]  Christine A. Kelley,et al.  Structured Bit-Interleaved LDPC Codes for MLC Flash Memory , 2014, IEEE Journal on Selected Areas in Communications.

[21]  Michael J. Freedman,et al.  Who's Afraid of Uncorrectable Bit Errors? Online Recovery of Flash Errors with Distributed Redundancy , 2019, USENIX Annual Technical Conference.

[22]  Onur Mutlu,et al.  Program interference in MLC NAND flash memory: Characterization, modeling, and mitigation , 2013, ICCD.

[23]  Sang-Won Lee,et al.  FAST: An Efficient Flash Translation Layer for Flash Memory , 2006, EUC Workshops.

[24]  T. Moon Error Correction Coding: Mathematical Methods and Algorithms , 2005 .

[25]  Youngjae Kim,et al.  DFTL: a flash translation layer employing demand-based selective caching of page-level address mappings , 2009, ASPLOS.

[26]  Dan Feng,et al.  A New Solution Based on Multi-rate LDPC for Flash Memory to Reduce ECC Redundancy , 2015, TrustCom 2015.

[27]  Hanjun Jiang,et al.  A high-throughput multi-rate LDPC decoder for error correction of solid-state drives , 2015, 2015 IEEE Workshop on Signal Processing Systems (SiPS).

[28]  Youngjae Kim,et al.  FlashSim: A Simulator for NAND Flash-Based Solid-State Drives , 2009, 2009 First International Conference on Advances in System Simulation.

[29]  Heeseung Jo,et al.  A superblock-based flash translation layer for NAND flash memory , 2006, EMSOFT '06.

[30]  Xavier Jimenez,et al.  Wear unleveling: improving NAND flash lifetime by balancing page endurance , 2014, FAST.

[31]  Aria Nosratinia,et al.  The design of rate-compatible protograph LDPC codes , 2010 .

[32]  Fei Wu,et al.  SCORE , 2018, ACM Transactions on Architecture and Code Optimization.

[33]  Joonwon Lee,et al.  CFLRU: a replacement algorithm for flash memory , 2006, CASES '06.

[34]  Nanning Zheng,et al.  Exploiting Intracell Bit-Error Characteristics to Improve Min-Sum LDPC Decoding for MLC NAND Flash-Based Storage in Mobile Device , 2016, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[35]  Kyeongcheol Yang,et al.  Quasi-cyclic LDPC codes for fast encoding , 2005, IEEE Transactions on Information Theory.