Invalid Data-Aware Coding to Enhance the Read Performance of High-Density Flash Memories

High bit-density flash memories such as Multi-Level Cell (MLC) and Triple-Level Cell (TLC) flash have become a norm, since doubling the cell bit-density can increase the storage capacity by 2X using the same number of cells. However, these high bit-density flash memories suffer from the read variation problem - e.g., the three kinds of bits (i.e., lower, middle, and upper bits) in a TLC cell have different read latencies; reading an upper bit takes a longer time than reading a middle bit, and reading a lower bit takes the minimum time. In this paper, we note that, in the conventional coding, the long read latencies of the middle and upper bits are not reduced even after the lower bit value is invalidated (i.e., no longer used). Motivated by this problem with the traditional coding, we propose a new coding technique, called Invalid Data-Aware (IDA) coding, which reduces the upper and middle bit read latencies close to the lower bit read latency when the lower bit becomes invalid. The main strategy the IDA coding employs is to merge the duplicated voltage states coming from the bit invalidation and reduce the number of (read) trials to identify the voltage state of a cell. To hide the performance and reliability degradation caused by the application of the IDA coding, we also propose to implement it as a part of the data refresh function, which is a fundamental operation in modern SSDs to keep its data safer and longer. With an extensive analysis of a TLC-based SSD using a variety of read-intensive workloads, we report that our IDA coding improves the read response times by 28%, on average; it is also quite effective in devices with different bit densities and timing parameters.

[1]  Werner Bux,et al.  Performance of greedy garbage collection in flash-based solid-state drives , 2010, Perform. Evaluation.

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

[3]  Wei Wu,et al.  Optimizing NAND flash-based SSDs via retention relaxation , 2012, FAST.

[4]  Mahmut T. Kandemir,et al.  HIOS: A host interface I/O scheduler for Solid State Disks , 2014, 2014 ACM/IEEE 41st International Symposium on Computer Architecture (ISCA).

[5]  Tong Zhang,et al.  Over-clocked SSD: Safely running beyond flash memory chip I/O clock specs , 2014, 2014 IEEE 20th International Symposium on High Performance Computer Architecture (HPCA).

[6]  Kent Smith,et al.  Understanding SSD over-provisioning , 2019 .

[7]  John Shalf,et al.  TraceTracker: Hardware/software co-evaluation for large-scale I/O workload reconstruction , 2017, 2017 IEEE International Symposium on Workload Characterization (IISWC).

[8]  Luca Crippa,et al.  Inside NAND Flash Memories , 2010 .

[9]  Yiran Chen,et al.  FlexLevel: A novel NAND flash storage system design for LDPC latency reduction , 2015, 2015 52nd ACM/EDAC/IEEE Design Automation Conference (DAC).

[10]  Jongman Kim,et al.  Preemptible I/O Scheduling of Garbage Collection for Solid State Drives , 2013, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[11]  Young-Ho Lim,et al.  A 3.3 V 32 Mb NAND flash memory with incremental step pulse programming scheme , 1995 .

[12]  Tong Zhang,et al.  Quasi-nonvolatile SSD: Trading flash memory nonvolatility to improve storage system performance for enterprise applications , 2012, IEEE International Symposium on High-Performance Comp Architecture.

[13]  Sang-Won Lee,et al.  SFS: random write considered harmful in solid state drives , 2012, FAST.

[14]  Xubin He,et al.  Reducing SSD read latency via NAND flash program and erase suspension , 2012, FAST.

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

[16]  Mahmut T. Kandemir,et al.  An Evaluation of Different Page Allocation Strategies on High-Speed SSDs , 2012, HotStorage.

[17]  Suman Nath,et al.  FlashBlox: Achieving Both Performance Isolation and Uniform Lifetime for Virtualized SSDs , 2017, FAST.

[18]  今井 康雄,et al.  3-1 SSD(Solid State Drives)の信頼性評価事例(セッション3「試験,故障解析,部品,要素技術の信頼性、ハードウェア面」) , 2015 .

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

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

[21]  Rina Panigrahy,et al.  Design Tradeoffs for SSD Performance , 2008, USENIX ATC.

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

[23]  Osman S. Unsal,et al.  Flash correct-and-refresh: Retention-aware error management for increased flash memory lifetime , 2012, 2012 IEEE 30th International Conference on Computer Design (ICCD).

[24]  Eitan Yaakobi,et al.  The Devil Is in the Details: Implementing Flash Page Reuse with WOM Codes , 2016, FAST.

[25]  Shijun Liu,et al.  QLC NAND study and enhanced Gray coding methods for sixteen-level-based program algorithms , 2017, Microelectron. J..

[26]  Hai Jin,et al.  LaLDPC: Latency-aware LDPC for Read Performance Improvement of Solid State Drives , 2017 .

[27]  Mahmut T. Kandemir,et al.  Sprinkler: Maximizing resource utilization in many-chip solid state disks , 2014, 2014 IEEE 20th International Symposium on High Performance Computer Architecture (HPCA).

[28]  Gregory R. Ganger,et al.  The DiskSim Simulation Environment Version 4.0 Reference Manual (CMU-PDL-08-101) , 1998 .

[29]  John Shalf,et al.  OpenNVM: An open-sourced FPGA-based NVM controller for low level memory characterization , 2015, 2015 33rd IEEE International Conference on Computer Design (ICCD).

[30]  Antony I. T. Rowstron,et al.  Write off-loading: Practical power management for enterprise storage , 2008, TOS.

[31]  Ming Zhao,et al.  Client-side Flash Caching for Cloud Systems , 2014, SYSTOR 2014.

[32]  Qiao Li,et al.  Reducing LDPC soft sensing latency by lightweight data refresh for flash read performance improvement , 2017, 2017 54th ACM/EDAC/IEEE Design Automation Conference (DAC).

[33]  Osman S. Unsal,et al.  Neighbor-cell assisted error correction for MLC NAND flash memories , 2014, SIGMETRICS '14.

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

[35]  Andrew A. Chien,et al.  Tiny-Tail Flash , 2017, ACM Trans. Storage.

[36]  Ren-Shuo Liu,et al.  EC-Cache: Exploiting error locality to optimize LDPC in NAND flash-based SSDs , 2014, 2014 51st ACM/EDAC/IEEE Design Automation Conference (DAC).