FTL algorithms for NAND-type flash memories


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.

This is a preview of subscription content, access via your institution.


  1. 1.


  2. 2.


  3. 3.

    Intel Corporation (2010) Nor flash memory. 28F640J3A data book

    Google Scholar 

  4. 4.

    Samsung Electronics (2010) Nand flash memory. K9F5608X0D data book

    Google Scholar 

  5. 5.

    Gal E, Toledo S (2005) Algorithms and data structures for flash memories. ACM Comput Surv 37(2):138–163

    Article  Google Scholar 

  6. 6.

    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

    Google Scholar 

  7. 7.

    Samsung Electronics (2010) Nand flash memory. K9F1G16U0M data book

    Google Scholar 

  8. 8.

    Samsung Electronics (2010) Nand flash memory. K9GAG08U0M data book

    Google Scholar 

  9. 9.

    Dan R, Singler R (2003) Implementing MLC NAND flash for cost efficiency, high-capacity memory. M-Systems Inc

    Google Scholar 

  10. 10.

    Samsung Electronics (2009) Page program addressing for MLC NAND application note

    Google Scholar 

  11. 11.

    Kawaguchi A, Nishioka S, Motoda H (1995) A flash memory based file system. In: 1995 USENIX technical conference, pp 155–164

    Google Scholar 

  12. 12.

    Resenblum M, Ousterhout J (1992) The design and implementation of a log-structured file system. ACM Trans Comput Syst 1(1):26–52

    Article  Google Scholar 

  13. 13.

    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

    Google Scholar 

  14. 14.

    Ban A (1995) Flash file system. United States Patent, No 5,404,485

  15. 15.

    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

  16. 16.

    Shinohara T (1999) Flash memory card with block memory address arrangement. United States Patent, No 5,905,993

  17. 17.

    Ban A (1999) Flash file system optimized for page-mode flash technologies. United States Patent, No 5,937,425

  18. 18.

    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

    Google Scholar 

  19. 19.

    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

    Google Scholar 

  20. 20.

    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

    Article  Google Scholar 

  21. 21.

    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

    Article  Google Scholar 

  22. 22.

    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

    Article  Google Scholar 

  23. 23.

    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

    Google Scholar 

  24. 24.

    Chung T-S, Park H-S (2007) STAFF: a flash driver algorithm minimizing block erasures. J Syst Archit 53(12):889–901

    Article  Google Scholar 

  25. 25.

    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

    Google Scholar 

  26. 26.

    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

    MathSciNet  Article  Google Scholar 

  27. 27.

    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

    Article  Google Scholar 

  28. 28.

    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

    Article  Google Scholar 

  29. 29.

    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

    Google Scholar 

  30. 30.

    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

    Google Scholar 

  31. 31.

    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

    Google Scholar 

  32. 32.

    Assar M (1995) Flash memory mass storage architecture incorporation wear leveling technique. United States Patent, No 5,479,638

  33. 33.

    Han S-W (2000) Flash memory wear leveling system and method. United States Patent, No 6,016,275

  34. 34.

    Chang RC (2006) Method and apparatus for managing an erase count block. United States Patent, No 7,103,732

  35. 35.

    Wells SE, Heights C, Calif (1994) Method for wear leveling in a flash EEPROM memory. United States Patent, No 5,341,339

  36. 36.

    Achiwa K (1999) Memory system using a flash memory and method of controlling the memory system. United States Patent, No 5,930,193

  37. 37.

    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

    Google Scholar 

  38. 38.

    Lofgren KMJ (2005) Wear leveling techniques for flash EEPROM systems. United States Patent, No 6,850,443

  39. 39.

    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

    Google Scholar 

  40. 40.

    Conley KM (2002) Zone boundary adjustment for defects in non-volatile memories. United States Patent, No 6,901,498

  41. 41.

    Woodhouse D (2001) JFFS: the journaling flash file system. In: Proceeding of Ottawa Linux symposium

    Google Scholar 

  42. 42.

    Manning C, Wookey (2001) YAFFS specification. Aleph One Limited

  43. 43.

    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

    Google Scholar 

  44. 44.

    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

    Google Scholar 

  45. 45.

    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

    Google Scholar 

  46. 46.

    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

    Article  Google Scholar 

  47. 47.

    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

    Google Scholar 

  48. 48.

    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

    Google Scholar 

  49. 49.

    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

    Google Scholar 

  50. 50.

    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

    MathSciNet  Article  Google Scholar 

  51. 51.

    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

    Article  Google Scholar 

  52. 52.

    Chiang ML, Chang RC (1999) Cleaning policies in mobile computers using flash memory. J Syst Softw 48(3):213–231

    Article  Google Scholar 

  53. 53.

    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

    Google Scholar 

  54. 54.

    Lasser M (2003) Method of fast wake-up of a flash memory system. United States Patent, No 6,510,488

Download references

Author information



Corresponding author

Correspondence to Tae-Sun Chung.

Rights and permissions

Reprints 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

Download citation


  • NAND flash memory
  • Embedded system
  • FTL