Abstract
NAND Flash memory has become the most widely used non-volatile memory technology. We focus on multi-level cell (MLC) NAND Flash memories because they have high storage density. Unfortunately MLC NAND Flash memory also has reliability problems due to narrower threshold voltage gap between logical states. Errors in these memories can be classified into data retention (DR) errors and program interference (PI) errors. DR errors are dominant if the data storage time is longer than 1 day and these errors can be reduced by refreshing the data. PI errors are dominant if the data storage time is less than 1 day and these errors can be handled by error control coding (ECC). In this paper we propose a combination of data refresh policies and low cost ECC schemes that are cognizant of application characteristics to address the errors in MLC NAND Flash memories. First, we use Gray code based encoding to reduce the error rates in the four subpages (MSB-even, LSB-even, MSB-odd, LSB-odd) of a 2-bit MLC NAND Flash memory. Next, we apply data refresh techniques where the refresh interval is a function of the program/erase (P/E) frequency of the application. We show that an appropriate choice of refresh interval and BCH based ECC scheme can minimize memory energy while satisfying the reliability constraint.
Similar content being viewed by others
References
Micheloni, R., et al. (2009). Non-volatile memories for removable media. Proceedings of the IEEE, 97(1), 148–160.
Grupp, L. M, et al. (2009) Characterizing Flash Memory: Anomalies, Observations, and Applications. International Symposium on Microarchitecture, pp. 24–33.
Mielke, N., et al. (2008). Bit Error Rate in NAND Flash Memories. 46th Annual International Reliability Physics Symposium, IEEE CFP08RPS-CDR, Phoenix.
Desnoyers, P. (2010). Empirical evaluation of NAND Flash memory performance. Symposium on Operating Systems Principles. SIGOPS Operating Systems Review, 44(1), 50–54.
Rossi, D., & Metra, C. (2003). Error correcting strategy for high speed and high density reliable flash memories. Journal of Electronic Testing: Theory and Applications, 19(5), 511–521.
Choi, H., Liu, W., & Sung, W. (2010). VLSI implementation of BCH error correction for multilevel cell NAND Flash memory. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 18(5), 843–847.
Chen, T., Hsiao, Y., Hsing, Y., & Wu, C. (2009). An Adaptive-Rate Error Correction Scheme for NAND Flash Memory. 27th IEEE VLSI Test Symposium, pp. 53–58.
Li, S., & Zhang, T. (2010). Improving multi-level NAND Flash memory storage reliability using concatenated BCH-TCM coding. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 18(10), 1412–1420.
Maeda, Y., & Kaneko, H. (2009). Error Control Coding for Multilevel Cell Flash Memories Using Nonbinary Low-Density Parity-Check Codes. IEEE International Symposium on Defect and Fault Tolerance in VLSI Systems, pp. 367–375.
STMicroelectronics, ST72681, USB 2.0 high-speed Flash drive controller, http://www.st.com/stonline/books/pdf/docs/11352.pdf
XceedIOPS SATA SSD, SMART’s Storage Solutions. www.smartm.com/files/salesLiterature/storage/xceediops_SATA.pdf
Yang, C., Emre, Y., & Chakrabarti, C. (2012). Product code schemes for error correction in MLC NAND Flash memories. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 20(12), 2302–2314.
Cai, Y., Haratsch, E. F., Mutlu, O., & Mai, K. (2012). Error patterns in MLC NAND Flash memory: measurement, characterization, and analysis. Design, Automation & Test in Europe Conference & Exhibition (DATE), pp. 521–526.
Cai Y., et al. (2012). Flash Correct-and-Refresh: Retention-Aware Error Management for Increased Flash Memory Lifetime. Computer Design (ICCD), 2012 I.E. 30th Internationl Conference.
Yang, C., Muckatira, D., Kulkarni, A., & Chakrabarti, C. (2013). Data storage time sensitive ECC schemes for MLC NAND Flash memories. International Conference on Acoustics, Speech and Signal Processing ICASSP, pp. 2513–2517.
Wrobel, F., et al. (2001). Simulation of nucleon-induced nuclear reactions in a simplified SRAM structure: scaling effects on SEU and MBU cross sections. IEEE Transactions on Nuclear Science, 48(6), 1946–1952.
Olivo, P., Ricco, B., & Sangiorgi, E. (1986). High-field-induced voltage-dependent oxide charge. Applied Physics Letters, 48, 1135.
Cappelletti, P., Bez, R., Cantarelli, D., & Fratin, L. (1994) Failure mechanisms of flash cell in program/erase cycling. In: Proc. Int. Electron Devices Meet., pp. 291–294.
Kurata, H., et al. (2007). Random telegraph signal in Flash memory: its impact on scaling of multilevel flash memory beyond the 90-nm node. IEEE Journal of Solid-State Circuits, 42(6), 1362–1369.
Mielke, N., et al. (2004). Flash EEPROM threshold instabilities due to charge trapping during program/erase cycling. IEEE Transactions on Device and Materials Reliability, 4(3), 335–344.
Lee, J. D., Hur, S. H., & Choi, J. D. (2002). Effects of floating-gate interference on NAND flash memory cell operation. IEEE Electron Device Letters, 23(5), 264–266.
Tanakamaru, S., et al. (2011). 95%-Lower-BER 43%-Lower-Power Intelligent Solid-State Drive (SSD) with Asymmetric Coding and Stripe Pattern Elimination Algorithm. International Solid State Circuit Conference, ISSC, pp. 204–206.
Dong, G., Li, S., & Zhang, T. (2012). Using data postcompensation and predistortion to tolerate cell-to-cell interference in MLC NAND Flash memory. IEEE Transactions on Circuits and Systems, 75(10), 2718–2728.
Gray, J., & van Ingen, C. (2005). Empirical Measurements of Disk Failure Rates and Error Rates. Microsoft Research Technical Report MSR-TR-2005-166.
IOzone.org, “IOzone Filesystem Benchmark,” http://iozone.org
Katcher, J. (1997). Postmark: a New File System Benchmark Technical Report.
Nangate, Sunnyvale, California, 2008, “45 nm open cell library”, http://www.nangate.com/
Synopsys Design Compiler: http://www.synopsys.com
Liu W., Rho, J., & Sung, W. (2006). Low-Power High-Throughput BCH Error Correction VLSI Design for Multi-Level Cell NAND Flash Memories. IEEE Workshop on Signal Processing Systems Design and Implementation, pp. 303–308.
Nobunaga, D., et al. (2008). A 50 nm 8 Gb NAND Flash Memory with 100 MB/s Program Throughput and 200 MB/s DDR Interface. International Solid State Circuit Conference, ISSC, Session 23, pp. 623–625.
Zhang, R., et al. (2009). A 172 mm2 32 GB MLC NAND Flash Memory in 34 nm COMS. International Solid State Circuit Conference, ISSC, Session 13, pp. 429–431.
Berwer. J., & Gill, M. (2008). Nonvolatile Memory Technologies with Emphasis on Flash. IEEE Press Series on Microelectronic System.
Author information
Authors and Affiliations
Corresponding author
Additional information
This work was supported in part by DARPA-PERFECT and by NSF CSR-0910699.
Rights and permissions
About this article
Cite this article
Yang, C., Chen, HM., Mudge, T.N. et al. Improving the Reliability of MLC NAND Flash Memories Through Adaptive Data Refresh and Error Control Coding. J Sign Process Syst 76, 225–234 (2014). https://doi.org/10.1007/s11265-014-0880-5
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11265-014-0880-5