Coding for Non-Volatile Memory Technologies : Theoretical Advances and Practical Considerations

Every bit of information in a storage or memory device is bound by a multitude of performance specifications, and is subject to a variety of reliability impediments. At the other end, the physical processes tamed to remember our bits offer a constant source of risk to their reliability. These include a variety of noise sources, access restrictions, inter-cell interferences, cell variabilities, and many more issues. Tying together this vector of performance figures with that vector of reliability issues is a rich matrix of emerging coding tools and techniques. Channel coding schemes ensure target reliability and performance and have been at the core of memory systems since their nascent age. In this survey, we first overview the fundamentals of channel coding and summarize well-known codes that have been used in NVMs. Next, we demonstrate why the conventional coding approaches ubiquitously based on symmetric channel models and optimization for the Hamming metric fail to address the needs of modern memories. We then discuss several recently proposed innovative coding schemes. Behind each coding scheme lies an interesting theoretical framework, building on deep ideas from mathematics and the information sciences. We also survey some of the most fascinating bridges between deep theory and storage performance. While the focus of this survey is primarily on the pervasive multi-level NAND Flash, we envision that other benefiting memory technologies will include phase change memory, resistive memories, and others.

[1]  Paul H. Siegel,et al.  Characterizing flash memory: Anomalies, observations, and applications , 2009, 2009 42nd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[2]  Frederic Sala,et al.  Coding for Unreliable Flash Memory Cells , 2014, IEEE Communications Letters.

[3]  B. Vasic,et al.  Trapping set ontology , 2009, 2009 47th Annual Allerton Conference on Communication, Control, and Computing (Allerton).

[4]  Roberto Bez,et al.  Introduction to flash memory , 2003, Proc. IEEE.

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

[6]  Amir Shpilka New Constructions of WOM Codes Using the Wozencraft Ensemble , 2013, IEEE Transactions on Information Theory.

[7]  Lara Dolecek,et al.  On absorbing sets of structured sparse graph codes , 2010, 2010 Information Theory and Applications Workshop (ITA).

[8]  Lara Dolecek,et al.  The Cycle Consistency Matrix Approach to Absorbing Sets in Separable Circulant-Based LDPC Codes , 2012, IEEE Transactions on Information Theory.

[9]  In-Cheol Park,et al.  6.4Gb/s multi-threaded BCH encoder and decoder for multi-channel SSD controllers , 2012, 2012 IEEE International Solid-State Circuits Conference.

[10]  Lara Dolecek,et al.  Design of LDPC decoders for improved low error rate performance: quantization and algorithm choices , 2009, IEEE Transactions on Communications.

[11]  Richard D. Wesel,et al.  Using Dynamic Allocation of Write Voltage to Extend Flash Memory Lifetime , 2016, IEEE Transactions on Communications.

[12]  Onur Mutlu,et al.  Threshold voltage distribution in MLC NAND flash memory: Characterization, analysis, and modeling , 2013, 2013 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[13]  Adi Shamir,et al.  How to Reuse a "Write-Once" Memory , 1982, Inf. Control..

[14]  Christine A. Kelley,et al.  Geometric WOM codes and coding strategies for multilevel flash memories , 2012, Des. Codes Cryptogr..

[15]  O. Milenkovic,et al.  Algorithmic and combinatorial analysis of trapping sets in structured LDPC codes , 2005, 2005 International Conference on Wireless Networks, Communications and Mobile Computing.

[16]  Wonyong Sung,et al.  Estimation of NAND Flash Memory Threshold Voltage Distribution for Optimum Soft-Decision Error Correction , 2013, IEEE Transactions on Signal Processing.

[17]  You Zhou,et al.  A novel optimization algorithm for Chien search of BCH Codes in NAND flash memory devices , 2015, 2015 IEEE International Conference on Networking, Architecture and Storage (NAS).

[18]  Chris Heegard,et al.  On the capacity of permanent memory , 1985, IEEE Trans. Inf. Theory.

[19]  Michael Langberg,et al.  Asymmetric Error Correction and Flash-Memory Rewriting Using Polar Codes , 2014, IEEE Transactions on Information Theory.

[20]  Paul H. Siegel,et al.  Lattice-Based WOM Codes for Multilevel Flash Memories , 2014, IEEE Journal on Selected Areas in Communications.

[21]  Rami Cohen,et al.  LDPC codes for the q-ary bit-measurement channel , 2016, 2016 9th International Symposium on Turbo Codes and Iterative Information Processing (ISTC).

[22]  Rami Cohen,et al.  Iterative Decoding of LDPC Codes Over the $q$ -Ary Partial Erasure Channel , 2015, IEEE Transactions on Information Theory.

[23]  Paul H. Siegel,et al.  Coding Schemes for Inter-Cell Interference in , 2015 .

[24]  Lara Dolecek,et al.  Optimized Design of Finite-Length Separable Circulant-Based Spatially-Coupled Codes: An Absorbing Set-Based Analysis , 2016, IEEE Transactions on Communications.

[25]  Tong Zhang,et al.  Improving Multi-Level NAND Flash Memory Storage Reliability Using Concatenated BCH-TCM Coding , 2010, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[26]  Rudolf Ahlswede,et al.  Unidirectional error control codes and related combinatorial problems , 2002 .

[27]  Lara Dolecek,et al.  Constructions of Nonbinary WOM Codes for Multilevel Flash Memories , 2015, IEEE Transactions on Information Theory.

[28]  Hyunjin Lee,et al.  Flip-N-Write: A simple deterministic technique to improve PRAM write performance, energy and endurance , 2009, 2009 42nd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[29]  Anxiao Jiang,et al.  Rank modulation for flash memories , 2008, 2008 IEEE International Symposium on Information Theory.

[30]  Hsie-Chia Chang,et al.  An area-efficient BCH codec with echelon scheduling for NAND flash applications , 2013, 2013 IEEE International Conference on Communications (ICC).

[31]  Simon Litsyn,et al.  Design of non-binary quasi-cyclic LDPC codes by ACE optimization , 2013, 2013 IEEE Information Theory Workshop (ITW).

[32]  Arya Mazumdar,et al.  Codes in Permutations and Error Correction for Rank Modulation , 2009, IEEE Transactions on Information Theory.

[33]  Paul H. Siegel,et al.  Windowed Decoding of Spatially Coupled Codes , 2011, IEEE Transactions on Information Theory.

[34]  Chaitali Chakrabarti,et al.  Product Code Schemes for Error Correction in MLC NAND Flash Memories , 2012, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[35]  Ren-Shuo Liu,et al.  Improving Read Performance of NAND Flash SSDs by Exploiting Error Locality , 2016, IEEE Transactions on Computers.

[36]  Evyatar Hemo,et al.  $d$ -Imbalance WOM Codes for Reduced Inter-Cell Interference in Multi-Level NVMs , 2016, IEEE Journal on Selected Areas in Communications.

[37]  Rüdiger L. Urbanke,et al.  The capacity of low-density parity-check codes under message-passing decoding , 2001, IEEE Trans. Inf. Theory.

[38]  Paul H. Siegel,et al.  On the Capacity of the Beta-Binomial Channel Model for Multi-Level Cell Flash Memories , 2016, IEEE Journal on Selected Areas in Communications.

[39]  Nanning Zheng,et al.  Reducing latency overhead caused by using LDPC codes in NAND flash memory , 2012, EURASIP J. Adv. Signal Process..

[40]  Bella Bose,et al.  On L1-distance error control codes , 2011, 2011 IEEE International Symposium on Information Theory Proceedings.

[41]  Lara Dolecek,et al.  Characterizing capacity achieving write once memory codes for multilevel flash memories , 2011, 2011 IEEE International Symposium on Information Theory Proceedings.

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

[43]  Yuval Cassuto,et al.  NAND flash architectures reducing write amplification through multi-write codes , 2014, 2014 30th Symposium on Mass Storage Systems and Technologies (MSST).

[44]  Jaehong Kim,et al.  Low-cost, low-power and high-throughput BCH decoder for NAND Flash Memory , 2012, 2012 IEEE International Symposium on Circuits and Systems.

[45]  スタルジャ、パンタス,et al.  Method and system for error correction in the flash memory , 2007 .

[46]  David Declercq,et al.  Design of regular (2,d/sub c/)-LDPC codes over GF(q) using their binary images , 2008, IEEE Transactions on Communications.

[47]  David Burshtein,et al.  Polar Write Once Memory Codes , 2013, IEEE Trans. Inf. Theory.

[48]  Jehoshua Bruck,et al.  Codes for Asymmetric Limited-Magnitude Errors With Application to Multilevel Flash Memories , 2010, IEEE Transactions on Information Theory.

[49]  Borja Peleato,et al.  Spreading Modulation for Multilevel Nonvolatile Memories , 2016, IEEE Transactions on Communications.

[50]  Anxiao Jiang,et al.  Rewriting Codes for Joint Information Storage in Flash Memories , 2010, IEEE Transactions on Information Theory.

[51]  Jinho Choi,et al.  Block-Wise Concatenated BCH Codes for NAND Flash Memories , 2014, IEEE Transactions on Communications.

[52]  Eitan Yaakobi,et al.  Write Once, Get 50% Free: Saving SSD Erase Costs Using WOM Codes , 2015, FAST.

[53]  Jaekyun Moon,et al.  RS-Enhanced TCM for Multilevel Flash Memories , 2013, IEEE Transactions on Communications.

[54]  Hideki Imai,et al.  Correction to 'A New Multilevel Coding Method Using Error-Correcting Codes' , 1977, IEEE Trans. Inf. Theory.

[55]  Eitan Yaakobi,et al.  High sum-rate three-write and non-binary WOM codes , 2012, 2012 IEEE International Symposium on Information Theory Proceedings.

[56]  Michael Langberg,et al.  Trajectory Codes for Flash Memory , 2010, IEEE Transactions on Information Theory.

[57]  Evyatar Hemo,et al.  A constraint scheme for correcting massive asymmetric magnitude-1 errors in multi-level NVMs , 2015, 2015 IEEE International Symposium on Information Theory (ISIT).

[58]  Lara Dolecek,et al.  Graded Bit-Error-Correcting Codes With Applications to Flash Memory , 2013, IEEE Transactions on Information Theory.

[59]  Lara Dolecek,et al.  A General Non-Binary LDPC Code Optimization Framework Suitable for Dense Flash Memory and Magnetic Storage , 2016, IEEE Journal on Selected Areas in Communications.

[60]  Jeongseok Ha,et al.  Quasi-Primitive Block-Wise Concatenated BCH Codes With Collaborative Decoding for NAND Flash Memories , 2015, IEEE Transactions on Communications.

[61]  Richard D. Wesel,et al.  Enhanced Precision Through Multiple Reads for LDPC Decoding in Flash Memories , 2013, IEEE Journal on Selected Areas in Communications.

[62]  Jungdal Choi,et al.  Effects of floating-gate interference on NAND flash memory cell operation , 2002 .

[63]  G. David Forney,et al.  Concatenated codes , 2009, Scholarpedia.

[64]  Michael Lentmaier,et al.  Iterative Decoding Threshold Analysis for LDPC Convolutional Codes , 2010, IEEE Transactions on Information Theory.

[65]  Nanning Zheng,et al.  LDPC-in-SSD: making advanced error correction codes work effectively in solid state drives , 2013, FAST.

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

[67]  Yitzhak Birk,et al.  Constrained Flash memory programming , 2011, 2011 IEEE International Symposium on Information Theory Proceedings.

[68]  A. J. Han Vinck,et al.  On the Capacity of Generalized Write-Once Memory with State Transitions Described by an Arbitrary Directed Acyclic Graph , 1999, IEEE Trans. Inf. Theory.

[69]  Onur Mutlu,et al.  Error patterns in MLC NAND flash memory: Measurement, characterization, and analysis , 2012, 2012 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[70]  Paul H. Siegel,et al.  Channel Models for Multi-Level Cell Flash Memories Based on Empirical Error Analysis , 2016, IEEE Transactions on Communications.

[71]  Moshe Schwartz,et al.  Quasi-Cross Lattice Tilings With Applications to Flash Memory , 2011, IEEE Transactions on Information Theory.

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

[73]  Michael Langberg,et al.  On a construction for constant-weight Gray codes for local rank modulation , 2010, 2010 IEEE 26-th Convention of Electrical and Electronics Engineers in Israel.

[74]  Emre Telatar,et al.  Finite-length analysis of low-density parity-check codes on the binary erasure channel , 2002, IEEE Trans. Inf. Theory.

[75]  A. Robert Calderbank,et al.  Methuselah Flash: Rewriting Codes for Extra Long Storage Lifetime , 2016, 2016 46th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN).

[76]  In-Cheol Park,et al.  High-Throughput and Low-Complexity BCH Decoding Architecture for Solid-State Drives , 2014, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[77]  Michael Langberg,et al.  Joint rewriting and error correction in write-once memories , 2013, 2013 IEEE International Symposium on Information Theory.

[78]  Jack K. Wolf,et al.  On codes derivable from the tensor product of check matrices , 1965, IEEE Trans. Inf. Theory.

[79]  Paul H. Siegel,et al.  Error analysis and inter-cell interference mitigation in multi-level cell flash memories , 2015, 2015 IEEE International Conference on Communications (ICC).

[80]  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).

[81]  David Declercq,et al.  Finite Alphabet Iterative Decoders—Part I: Decoding Beyond Belief Propagation on the Binary Symmetric Channel , 2013, IEEE Transactions on Communications.

[82]  David Declercq,et al.  Finite Alphabet Iterative Decoders for LDPC Codes: Optimization, Architecture and Analysis , 2014, IEEE Transactions on Circuits and Systems I: Regular Papers.

[83]  A. Fiat,et al.  Generalized 'write-once' memories , 1984, IEEE Trans. Inf. Theory.

[84]  Shu Lin,et al.  Error Control Coding , 2004 .

[85]  Thomas P. Parnell,et al.  Modelling of the threshold voltage distributions of sub-20nm NAND flash memory , 2014, 2014 IEEE Global Communications Conference.

[86]  Paul H. Siegel,et al.  Multidimensional flash codes , 2008, 2008 46th Annual Allerton Conference on Communication, Control, and Computing.

[87]  Lara Dolecek,et al.  Logarithmic quantization scheme for reduced hardware cost and improved error floor in non-binary LDPC decoders , 2014, 2014 IEEE Global Communications Conference.

[88]  Zhenming Liu,et al.  Designing Floating Codes for Expected Performance , 2010, IEEE Transactions on Information Theory.

[89]  Arya Mazumdar,et al.  Constructions of Rank Modulation Codes , 2013, IEEE Transactions on Information Theory.

[90]  Anxiao Jiang,et al.  A study of polar codes for MLC NAND flash memories , 2015, 2015 International Conference on Computing, Networking and Communications (ICNC).

[91]  B. V. K. Vijaya Kumar,et al.  Coding scheme for 3D vertical flash memory , 2014, 2015 IEEE International Conference on Communications (ICC).

[92]  Lara Dolecek,et al.  Analysis of Absorbing Sets and Fully Absorbing Sets of Array-Based LDPC Codes , 2009, IEEE Transactions on Information Theory.

[93]  Steven Swanson,et al.  The bleak future of NAND flash memory , 2012, FAST.

[94]  Torleiv Kløve,et al.  Some Codes Correcting Asymmetric Errors of Limited Magnitude , 2011, IEEE Transactions on Information Theory.

[95]  Brian M. Kurkoski Coded Modulation Using Lattices and Reed-Solomon Codes, with Applications to Flash Memories , 2014, IEEE Journal on Selected Areas in Communications.

[96]  Rüdiger L. Urbanke,et al.  Modern Coding Theory , 2008 .

[97]  Paul H. Siegel,et al.  Codes for Write-Once Memories , 2012, IEEE Transactions on Information Theory.

[98]  Richard D. Wesel,et al.  Histogram-based Flash channel estimation , 2015, 2015 IEEE International Conference on Communications (ICC).

[99]  Paul H. Siegel,et al.  Constrained Codes that Mitigate Inter-Cell Interference in Read/Write Cycles for Flash Memories , 2014, IEEE Journal on Selected Areas in Communications.

[100]  Eitan Yaakobi,et al.  Short \(Q\) -Ary Fixed-Rate WOM Codes for Guaranteed Rewrites and With Hot/Cold Write Differentiation , 2014, IEEE Transactions on Information Theory.