Abstract
Flash memory is being rapidly deployed as data storage for embedded devices such as PDAs, MP3 players, mobile phones and digital cameras due to its low electronic power, non-volatile storage, high performance, physical stability and portability. The most prominent characteristic of flash memory is that prewritten data can only be dynamically updated via the time consuming erase operation. Furthermore, every block in flash memory has a limited program/erase cycle. In order to manage these issues, the flash memory controller can be integrated with a software module called the flash translation layer (FTL). This paper surveys the state-of-art FTL algorithms. The FTL algorithms can be classified by the complexity of the algorithms: basic and advance. Furthermore, they can be classified by their corresponding tasks: performance enhancement and durability enhancement. The FTL algorithms corresponding to each classification are further broken down into various schemes depending on the methods they adopt. This paper also provides the information of hardware features of flash memory for FTL programmers.
Similar content being viewed by others
References
http://www.samsung.com/sec/business/semiconductor/products/Products.html
Intel Corporation (2010) Nor flash memory. 28F640J3A data book
Samsung Electronics (2010) Nand flash memory. K9F5608X0D data book
Gal E, Toledo S (2005) Algorithms and data structures for flash memories. ACM Comput Surv 37(2):138–163
Chung T-S, Park D-J, Park S, Lee D-H, Lee S-W, Song H-J (2009) A survey of flash translation layer. J Syst Archit Embed Syst Design 55(5–6):332–343
Samsung Electronics (2010) Nand flash memory. K9F1G16U0M data book
Samsung Electronics (2010) Nand flash memory. K9GAG08U0M data book
Dan R, Singler R (2003) Implementing MLC NAND flash for cost efficiency, high-capacity memory. M-Systems Inc
Samsung Electronics (2009) Page program addressing for MLC NAND application note
Kawaguchi A, Nishioka S, Motoda H (1995) A flash memory based file system. In: 1995 USENIX technical conference, pp 155–164
Resenblum M, Ousterhout J (1992) The design and implementation of a log-structured file system. ACM Trans Comput Syst 1(1):26–52
Wu M, Zwaenepoel W (1994) eNVy: a non-volatile, main memory storage system. In: International conference on architectural support for programming language and operating systems
Ban A (1995) Flash file system. United States Patent, No 5,404,485
Kim B-s, Lee GY (2002) Method of driving remapping in flash memory and flash architecture suitable therefor. United States Patent, No 6,381,176
Shinohara T (1999) Flash memory card with block memory address arrangement. United States Patent, No 5,905,993
Ban A (1999) Flash file system optimized for page-mode flash technologies. United States Patent, No 5,937,425
Wu CH, Kuo TW (2006) An adaptive two-level management for the flash translation layer in embedded systems. In: Proceedings of the 2006 IEEE/ACM international conference on computer-aided design, pp 601–606
Wang Y, Liu D, Wang M, Qin Z, Shao Z, Guan Y (2010) RNFTL: a reuse-aware NAND flash translation layer for flash memory, LCTES, pp 163–172
Kim J, Kim JM, Noh SH, Min SL, Cho Y (2002) A space-efficient flash translation layer for compact flash systems. IEEE Trans Consum Electron 48(2):366–375
Lee S-W, Park D-j, Chung T-S, Lee D-H, Park S, Song H-J (2007) A log buffer based flash transition layer using fully associative sector translation. ACM Trans Embed Comput Syst 6(3):1–27
Kwon SJ, Chung T-S (2008) An efficient and advanced space-management technique for flash memory using reallocation blocks. IEEE Trans Consum Electron 54(2):631–638
Lee S, Shin D, Kim Y, Kim J (2008) LAST: locality-aware sector translation for NAND flash memory-based storage systems. In: Proceeding of IEEE international workshop on storage and I/O virtualization, performance, energy, evaluation and dependability (SPEED08), pp 36–42
Chung T-S, Park H-S (2007) STAFF: a flash driver algorithm minimizing block erasures. J Syst Archit 53(12):889–901
Chung T-S, Park D-J, Ryu Y, Hong S (2004) LSTAFF: system software for large block flash memory. In: AsiaSim 2004, pp 704–712
Hsieh J-W, Tsai Y-L, Kuo T-W, Lee T-L (2008) Configurable flash-memory management: performance versus overheads. IEEE Trans Comput 57(11):1571–1583
Park C, Cheon W, Kang J-U, Roh K, Cho W, Kim J-S (2008) A reconfigurable FTL (flash translation layer) architecture for NAND flash-based applications. ACM Trans Embed Comput Syst 7(4):1–23
Jung D, Kang J-U, Jo H, Kim J-S, Lee J (2010) Superblock FTL: a superblock-based flash translation layer with a hybrid address translation scheme. ACM Trans Embed Comput Syst 9(4):1–41
Gupta A, Urgaonkar B (2009) DFTL: a flash translation layer employing demand-based selective caching of page-level address mappings. In: ASPLOS’09, pp 229–240
Qin Z, Wang Y, Liu D, Shaom Z (2010) Demand-based block-level address mapping in large-scale NAND flash storage systems. In: CODES+ISSS’10, pp 173–182
Wu P-L, Chang Y-H, Kuo T-W (2009) a file-system-aware FTL design for flash-memory storage systems. In: DATE 2009, pp 393–398
Assar M (1995) Flash memory mass storage architecture incorporation wear leveling technique. United States Patent, No 5,479,638
Han S-W (2000) Flash memory wear leveling system and method. United States Patent, No 6,016,275
Chang RC (2006) Method and apparatus for managing an erase count block. United States Patent, No 7,103,732
Wells SE, Heights C, Calif (1994) Method for wear leveling in a flash EEPROM memory. United States Patent, No 5,341,339
Achiwa K (1999) Memory system using a flash memory and method of controlling the memory system. United States Patent, No 5,930,193
Chang L-P (2007) On efficient wear leveling for large-scale flash-memory storage systems. In: Proceedings of the 2007 ACM symposium on applied computing, March 11–15, 2007, Seoul, Korea
Lofgren KMJ (2005) Wear leveling techniques for flash EEPROM systems. United States Patent, No 6,850,443
Jung D, Chae Y-H, Jo H, Kim J-S, Lee J (2007) A group-based wear-leveling algorithm for large-capacity flash memory storage systems. In: Proceedings of the international conference on compilers, architecture, and synthesis for embedded systems (CASES), Salzburg, Austria, September 2007
Conley KM (2002) Zone boundary adjustment for defects in non-volatile memories. United States Patent, No 6,901,498
Woodhouse D (2001) JFFS: the journaling flash file system. In: Proceeding of Ottawa Linux symposium
Manning C, Wookey (2001) YAFFS specification. Aleph One Limited
Chiang M-L, Cheng C-L, Wu C-H (2008) A new FTL-based flash memory management scheme with fast cleaning mechanism. In: 2008 international conference on embedded software and systems, pp 205–214
Chang LP, Kuo TW (2002) An adaptive stripping architecture for flash memory storage systems of embedded systems. In: IEEE eight real-time and embedded technology and applications symposium, San Jose, USA, September 2002
Syu SJ, Chen J (2005) An active space recycling mechanism for flash storage systems in real-time application environment. In: 11th IEEE international conference on embedded and real-time computing systems and applications, pp 53–59
Hsieh J-W, Chang L-P, Kuo T-W (2006) Efficient identification of hot data for flash memory storage systems. ACM Trans Storage 2(1):22–40
Cho H, Shin D, Eom YI (2009) KAST: K-associative sector translation for NAND flash memory in real-time systems. In: Design, Automation & Test in Europe (DATE) 2009, pp 507–512
Chu Y-S, Hsieh J-W, Chang Y-H, Kuo T-W (2009) A set-based mapping strategy for flash-memory reliability enhancement. In: Design, automation & test in Europe (DATE) 2009, pp 405–410
Liu Z, Yue L, Wei P, Jin P, Xiang X (2009) An adaptive block-set based management for large-scale flash memory. In: Proceedings of the 2009 ACM symposium on applied computing, pp 1621–1625
Chang Y-H, Hsieh J-W, Kuo T-W (2010) Improving flash wear-leveling by proactively moving static data. IEEE Trans Comput 59(1):53–65
Chiang ML, Lee Paul CH, Chang RC (1999) Using data clustering to improve cleaning performance for flash memory. Softw Pract Exp 29(3):267–290
Chiang ML, Chang RC (1999) Cleaning policies in mobile computers using flash memory. J Syst Softw 48(3):213–231
Kim HJ, Lee SG (1999) A new flash memory management for flash storage system. In: IEEE COMPSAC computer software and applications conference, pp 284–289
Lasser M (2003) Method of fast wake-up of a flash memory system. United States Patent, No 6,510,488
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Kwon, S.J., Ranjitkar, A., Ko, YB. et al. FTL algorithms for NAND-type flash memories. Des Autom Embed Syst 15, 191–224 (2011). https://doi.org/10.1007/s10617-011-9071-9
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10617-011-9071-9