Design Automation for Embedded Systems

, Volume 15, Issue 3–4, pp 191–224 | Cite as

FTL algorithms for NAND-type flash memories

  • Se Jin Kwon
  • Arun Ranjitkar
  • Young-Bae Ko
  • Tae-Sun ChungEmail author


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.


NAND flash memory Embedded system FTL 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  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 CrossRefGoogle 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 CrossRefGoogle 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 Google Scholar
  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 Google Scholar
  16. 16.
    Shinohara T (1999) Flash memory card with block memory address arrangement. United States Patent, No 5,905,993 Google Scholar
  17. 17.
    Ban A (1999) Flash file system optimized for page-mode flash technologies. United States Patent, No 5,937,425 Google Scholar
  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 CrossRefGoogle 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 CrossRefGoogle 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 CrossRefGoogle 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 CrossRefGoogle 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 CrossRefGoogle 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 MathSciNetCrossRefGoogle 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 CrossRefGoogle 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 CrossRefGoogle 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 Google Scholar
  33. 33.
    Han S-W (2000) Flash memory wear leveling system and method. United States Patent, No 6,016,275 Google Scholar
  34. 34.
    Chang RC (2006) Method and apparatus for managing an erase count block. United States Patent, No 7,103,732 Google Scholar
  35. 35.
    Wells SE, Heights C, Calif (1994) Method for wear leveling in a flash EEPROM memory. United States Patent, No 5,341,339 Google Scholar
  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 Google Scholar
  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 Google Scholar
  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 Google Scholar
  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 Google Scholar
  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 CrossRefGoogle 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 CrossRefGoogle 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 CrossRefGoogle 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 MathSciNetCrossRefGoogle 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 CrossRefGoogle Scholar
  52. 52.
    Chiang ML, Chang RC (1999) Cleaning policies in mobile computers using flash memory. J Syst Softw 48(3):213–231 CrossRefGoogle 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 Google Scholar

Copyright information

© Springer Science+Business Media, LLC 2011

Authors and Affiliations

  • Se Jin Kwon
    • 1
  • Arun Ranjitkar
    • 2
  • Young-Bae Ko
    • 3
  • Tae-Sun Chung
    • 3
    Email author
  1. 1.Computer EngineeringAjou UniversitySuwonSouth Korea
  2. 2.Information & CommunicationAjou UniversitySuwonSouth Korea
  3. 3.Information & Computer EngineeringAjou UniversitySuwonSouth Korea

Personalised recommendations