skip to main content
research-article

A reliability enhancement design under the flash translation layer for MLC-based flash-memory storage systems

Authors Info & Claims
Published:05 September 2013Publication History
Skip Abstract Section

Abstract

Although flash memory has gained very strong momentum in the storage market, the reliability of flash-memory chips has been dropped significantly in the past years. This article presents a reliability enhancement design under the flash management layer (i.e., flash translation layer) to address this concern so as to reduce the design complexity of flash-memory management software/firmware and to improve the maintainability and portability of existing and future products. In particular, a log-based write strategy with a hash-based caching policy is proposed to provide extra ECC redundancy and performance improvement. Strategies for bad block management are also presented. The failure rate of flash-memory storage systems is analyzed with the considerations of bit errors. The proposed design is later evaluated by a series of experiments based on realistic traces. It was shown that the proposed approach could significantly improve the reliability of flash memory with very limited system overheads.

References

  1. Agrawal, N., Prabhakaran, V., Wobber, T., Davis, J. D., Manasse, M., and Panigrahy, R. 2008. Design tradeoffs for SSD performance. In Proceedings of the USENIX Annual Technical Conference. 57--70. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Balakrishnan, M., Kadav, A., Prabhakaran, V., and Malkhi, D. 2010. Differential RAID: Rethinking RAID for SSD reliability. ACM Trans. Storage 6, 2, 4:1--4:22. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Birrell, A., Isard, M., Thacker, C., and Wobber, T. 2007. A design for high-performance flash disks. SIGOPS Oper. Syst. Rev. 41, 2, 88--93. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Chang, L.-P. and Kuo, T.-W. 2002. An adaptive striping architecture for flash memory storage systems of embedded systems. In Proceedings of the IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS). 187--196. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Chang, Y.-H., Hsieh, J.-W., and Kuo, T.-W. 2007. Endurance enhancement of flash-memory storage systems: An efficient static wear leveling design. In Proceedings of the 44th ACM/IEEE Design Automation Conference (DAC). Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Chang, Y.-H. and Kuo, T.-W. 2009. A commitment-based management strategy for the performance and reliability enhancement of flash-memory storage systems. In Proceedings of the 46th ACM/IEEE Design Automation Conference (DAC). Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Chang, Y.-H. and Kuo, T.-W. 2010. A reliable MTD design for MLC flash-memory storage systems. In Proceedings of the ACM International Conference on Embedded Software (EMSOFT). Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Cho, H., Shin, D., and Eom, Y. I. 2009. KAST: K-associative sector translation for NAND flash memory in real-time systems. In Proceedings of the Design a Automation & Test in Europe Conference (DATE). Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Cormen, T. H., Leiserson, C. E., Rivest, R. L., and Stein, C. 2009. Introduction to Algorithms 3rd Ed. The MIT Press, Combridge, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Du, Y., Cai, M., and Dong, J. 2005. Adaptive energy-aware design of a multi-bank flash-memory storage system. In Proceedings of the 11th IEEE Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA). Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Godard, B., Daga, J.-M., Torres, L., and Sassatelli, G. 2007. Evaluation of design for reliability techniques in embedded flash memories. In Proceedings of the ACM/IEEE Design, Automation and Test in Europe (DATE). Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Grupp, L. M., Caulfield, A. M., Coburn, J., Swanson, S., Yaakobi, E., Siegel, P. H., and Wolf, J. K. 2009. Characterizing flash memory: Anomalies, observations, and applications. In Proceedings of the IEEE/ACM International Symposium on Microarchitecture (MICRO). Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Gupta, A., Kim, Y., and Urgaonkar, B. 2009. DFTL: A flash translation layer employing demand-based selective caching of page-level address mappings. In Proceedings of the International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS). Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Gyu, H. and Chang, N. 2003. Energy-aware memory allocation in heterogeneous non-volatile memory systems. In Proceedings of the International Symposium on Low Power Electronics and Design (ISLPED). Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Hsieh, J.-W., Kuo, T.-W., Wu, P.-L., and Huang, Y.-C. 2007. Energy-efficient and performance-enhanced disks using flash-memory cache. In Proceedings of the ACM/IEEE International Symposium on Low Power Electronics and Design (ISLPED). 334--339. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. inSpectrum 2011. NAND Flash Contract Price, http://www.inspectrumtech.com/DP/NANDFlashContract Price.aspx.Google ScholarGoogle Scholar
  17. Intel Corporation. 1998. Understanding the flash translation layer (FTL) specification (AP-684). Intel Corporation.Google ScholarGoogle Scholar
  18. Jiang, A., Mateescu, R., Yaakobi, E., Bruck, J., Siegel, P. H., Vardy, A., and Wolf, J. K. 2010. Storage coding for wear leveling in flash memories. IEEE Trans. Inf. Theory. 56, 10(Oct), 5290--5299. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Jo, H., Kang, J.-U., Park, S.-Y., Kim, J.-S., and Lee, J. 2006. FAB: Flash-aware buffer management policy for portable media players. IEEE Trans. Consum. Electron. 52, 2, 485--493. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Joo, Y., Cho, Y., Shin, D., and Chang, N. 2007. Energy-aware data compression for multi-level cell (MLC) flash memory. In Proceedings of the 44th ACM/IEEE Design Automation Conference (DAC). 716--719. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Joo, Y., Choi, Y., Park, C., Chung, S. W., Chung, E.-Y., and Chang, N. 2006. Demand paging for OneNANDTM flash eXecute-in-place. In Proceedings of the International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS). Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Kang, S., Park, S., Jung, H., Shim, H., and Cha, J. 2009. Performance trade-offs in using NVRAM write buffer for flash memory-based storage devices. IEEE Trans. Comput. 58, 6, 744--758. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Kang, Y. and Miller, E. L. 2009. Adding aggressive error correction to a high-performance compressing flash file system. In Proceedings of the ACM International Conference on Embedded Software (EMSOFT). Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Kawaguchi, A., Nishioka, S., and Motoda, H. 1995. A flash-memory based file system. In Proceedings of the USENIX Technical Conference. 155--164. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Kgil, T. and Mudge, T. 2006. FlashCache: A NAND flash memory file cache for low power web servers. In Proceedings of the International Conference on Compilers, Architecture and Synthesis for Embedded Systems (CASES). 103--112. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Kim, G., Baek, S., Lee, H., Lee, H., and Joe, M. 2006. LGeDBMS: A small DBMS for embedded system with flash memory. In Proceedings of the 32nd International Conference on Very Large Data Bases (VLDB). 1255--1258. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Kim, H. and Ahn, S. 2008. BPLRU: A buffer management scheme for improving random writes in flash storage. In Proceedings of USENIX Conference on File and Storage Technologies (FAST). Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Kim, J., Kim, J. M., Noh, S. H., Min, S. L., and Cho, Y. 2002. A space-efficient flash translation layer for CompactFlash systems. IEEE Trans. Consumer Electro. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Larson, H. J. 1994. Introduction to Probability 3rd Ed. Addison-Wesley, Boston, MA.Google ScholarGoogle Scholar
  30. Lee, J.-H., Park, G.-H., and Kim, S.-D. 2004. A new NAND-type flash memory package with smart buffer system for spatial and temporal localities. J. Syst. Archit. 51, 111--123. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Lee, S.-W., Park, D.-J., Chung, T.-S., Lee, D.-H., Park, S.-W., and Song, H.-J. 2007. A log buffer-based flash translation layer using fully-associative section translation. ACM Trans. Embed. Comput. Syst. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Matthews, J., Trika, S., Hensgen, D., Coulson, R., and Grimsrud, K. 2008. Intel® Turbo Memory: Nonvolatile disk caches in the storage hierarchy of mainstream computer systems. ACM Trans. Storage 4, 2, 1--24. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Mielke, N., Marquart, T., Wu, N., Kessenich, J., Belgal, H., Schares, E., Trivedi, F., Goodness, E., and Nevill, L. R. 2008. Bit error rate in NAND flash memories. In Proceedings of IEEE International Reliability Physics Symposium (IRPS'08). 9--19.Google ScholarGoogle Scholar
  34. Moon, T. K. 2005. Error Correction Coding: Mathematical Methods and Algorithms. Wiley-Interscience, Hoboken, NJ. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Murugan, M. and Du, D. H. C. 2011. Rejuvenator: A static wear leveling algorithm for NAND flash memory with minimized overhead. In Proceedings of IEEE Symposium in Massire Storage Systems and Technologies (MSST). Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Narayanan, D., Donnelly, A., and Rowstron, A. 2008. Write off-loading: Practical power management for enterprise storage. ACM Trans. Storage 4, 10:1--10:23. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Nath, S. and Kansal, A. 2007. FlashDB: Dynamic self-tuning database for NAND flash. In Proceedings of the ACM International Conference of Information Processing in Sensor Networks (IPSN). Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Papirla, V. and Chakrabarti, C. 2009. Energy-aware error control coding for flash memories. In Proceedings of the ACM/IEEE Design Automation Conference (DAC). Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Park, C., Kang, J.-U., Park, S.-Y., and Kim, J.-S. 2004. Energy-aware demand paging on NAND flash-based embedded storages. In Proceedings of the ACM/IEEE International Symposium on Low Power Electronics and Design (ISLPED). Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Park, D., Debnath, B., and Du, D. 2010. CFTL: A convertible flash translation layer adaptive to data access patterns. In Proceedings of ACM SIGMETRICS International Conference Measurement and Modeling of Computer Systems (SIGMETRICS). 14--18. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Samsung Electronics. 2005. K9K8G08U0M 1G * 8 Bit NAND Flash Memory Data Sheet. Samsung Electronics.Google ScholarGoogle Scholar
  42. Samsung Electronics. 2006. K9GAG08U0M 2G × 8bit NAND Flash Memory Data Sheet. Samsung Electronics.Google ScholarGoogle Scholar
  43. Smith, A. J. 1985. Disk cache--miss ratio analysis and design considerations. ACM Trans. Comput. Syst. (TOCS) 3, 3, 161--203. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. STMicroelectronics. 2005. NAND08Gx3C2A 8Gbit Multi-level NAND Flash Memory. STMicroelectronics.Google ScholarGoogle Scholar
  45. Woodhouse, D. 2001. JFFS: The journalling flash file system. In Proceedings of the Ottawa Linux Symposium.Google ScholarGoogle Scholar
  46. Wu, C.-H., Chang, L.-P., and Kuo, T.-W. 2003. An efficient b-tree layer for flash-memory storage systems. In Proceedings of the 9th International Conference on Real-Time and Embedded Computing Systems and Applications (RTCSA).Google ScholarGoogle Scholar

Index Terms

  1. A reliability enhancement design under the flash translation layer for MLC-based flash-memory storage systems

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!