Design and implementation of a uniformity-improving page allocation scheme for flash-based storage systems

  • Seungjae Baek
  • Jongmoo Choi
  • Seongjun Ahn
  • Donghee Lee
  • Sam H. Noh


Flash memory is being actively employed in a variety of embedded systems such as digital cameras, MP3 players, cell phones, solid state disks (SSDs), and digital media broadcasting (DMB) devices. This paper considers performance issues in file systems that employ Flash memory as a storage medium. Firstly, it explores the characteristics of Flash memory and identifies the cost of block cleaning as the key performance bottleneck for Flash memory analogous to the seek time in disk storage. Then, it defines three performance parameters, namely, utilization, invalidity, and uniformity and derives a formula for block cleaning cost based on these parameters. It is shown that, of these parameters, uniformity exerts the strongest influence on the cost of cleaning and that uniformity is a file system controllable parameter. Finally, we design a uniformity-aware page allocation scheme and analyze how enhanced uniformity affects the block cleaning cost with various workloads. Real implementation experiments conducted on an embedded system show that the scheme proposed here typically reduces the cleaning time by 20 to 30% compared to the traditional sequential allocation scheme that is used in YAFFS.


Flash memory File system Modeling Uniformity Implementation Performance Evaluation 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    McKusick M, Joy W, Leffler S, Fabry R (1984) A fast file system for UNIX. ACM Trans Comput Syst 2(3):181–197 CrossRefGoogle Scholar
  2. 2.
    Rosenblum M, Ousterhout JK (1992) The design and implementation of a log-structured file system. ACM Trans Comput Syst 10(1):26–52 CrossRefGoogle Scholar
  3. 3.
    Stalling W (2004) Operating systems: internals and design principles, 5th edn. Pearson Prentice Hall, New York Google Scholar
  4. 4.
    Yu H, Agrawal D, Abbadi AE (2003) Towards optimal I/O scheduling for MEMS-based storage. In: Proceedings of the 20th IEEE/11th NASA Goddard conference on mass storage systems and technologies (MSS’03) Google Scholar
  5. 5.
    Schlosser SW, Ganger GR (2004) MEMS-based storage devices and standard disk interfaces: a square peg in a round hole? In: Proceedings of the USENIX conference on file and storage technologies (FAST), pp 87–100 Google Scholar
  6. 6.
    Lim S, Park K (2006) An efficient NAND flash file system for flash memory storage. IEEE Trans Comput 55(7):906–912 CrossRefGoogle Scholar
  7. 7.
    Aleph One. YAFFS: yet another flash file system.
  8. 8.
    Chiang M-L, Lee PCH, Chang R-C (1999) Using data clustering to improve cleaning performance for Flash memory. Soft Pract Exp 29(3):267–290 CrossRefGoogle Scholar
  9. 9.
    Sharma AK (2003) Advanced semiconductor memories: architectures, designs, and applications. Wiley Interscience, New York Google Scholar
  10. 10.
    Samsung Electronics. NAND flash data sheet.
  11. 11.
    Gal E, Toledo S (2005) Algorithms and data structures for flash memories. ACM Comput Surv 37(2):138–163 CrossRefGoogle Scholar
  12. 12.
    Kawaguchi A, Nishioka S, Motoda H (1995) A flash-memory based file system. In: Proceedings of the 1995 USENIX annual technical conference, pp 155–164 Google Scholar
  13. 13.
    Gal E, Toledo S (2005) A transactions flash file system for microcontrollers. In: Proceedings of the 2005 USENIX annual technical conference, pp 89–104 Google Scholar
  14. 14.
    Woodhouse D (2001) JFFS: the journaling flash file system, Ottawa Linux Symposium.
  15. 15.
    Blackwell T, Harris J, Seltzer M (1993) Heuristic cleaning algorithms in log-structured file systems. In: Proceedings of the winter USENIX technical conference, pp 277–288 Google Scholar
  16. 16.
    Matthews J, Roselli D, Costello A, Wang R, Anderson T (1997) Improving the performance of log-structured file system with adaptive methods. In: Proceedings of the ACM symposium on operating system principles (SOSP), pp 238–251 Google Scholar
  17. 17.
    Wang J, Hu Y (2002) WOLF—a novel reordering write buffer to boost the performance of log-structured file system. In: Proceedings of the USENIX conference on file and storage technologies (FAST), pp 46–60 Google Scholar
  18. 18.
    Wang W, Zhao Y, Bunt R (2004) HyLog: a high performance approach to managing disk layout. In: Proceedings of the USENIX conference on file and storage technologies (FAST), pp 145–158 Google Scholar
  19. 19.
    Wu M, Zwaenepoel W (1994) eNVy: a non-volatile, main memory storage system. In: Proceedings of the 6th international conference on architectural support for programming languages and operation systems (ASPLOS), pp 86–97 Google Scholar
  20. 20.
    Chang LP, Kuo TW, Lo SW (2004) Real-time garbage collection for flash memory storage systems of real time embedded systems. ACM Trans Embed Comput Syst 3(4):837–863 CrossRefGoogle Scholar
  21. 21.
    Kim J, Kim JM, Noh SH, Min SL, Cho Y (2002) A space-efficient flash translation layer for compactflash systems. IEEE Trans Consum Electron 48(2):366–375 CrossRefGoogle Scholar
  22. 22.
  23. 23.
    Katcher J (1997) PostMark: a new file system benchmark. Technical Report TR3022, Network Appliance Inc Google Scholar
  24. 24.
    Ben-Aroya A (2006) Competitive analysis of flash-memory algorithms. MSc paper, April 2006.
  25. 25.
    Zhou Y, Chen PM, Li K (2001) The multi-queue replacement algorithm for second-level buffer caches. In: Proceeding of the USENIX annual technical conference, pp 91–104 Google Scholar
  26. 26.
    Jo H, Kang J, Park S, Kim J, Lee J (2006) FAB: flash-aware buffer management policy for portable media players, IEEE Trans Consum Electron 52(2):485–493 CrossRefGoogle Scholar
  27. 27.
    Du Y, Cai M, Dong J (2005) Adaptive energy aware design of a multi-bank flash-memory storage system. In: Proceedings of the 11th IEEE international conference on embedded and real-time computing systems and applications, pp 311–316 Google Scholar
  28. 28.
    Chang L-P (2007) On efficient wear leveling for large-scale flash-memory storage systems. In: Proceedings of the ACM symposium on applied computing, pp 1126–1130 Google Scholar

Copyright information

© Springer Science+Business Media, LLC 2008

Authors and Affiliations

  • Seungjae Baek
    • 1
  • Jongmoo Choi
    • 1
  • Seongjun Ahn
    • 2
  • Donghee Lee
    • 3
  • Sam H. Noh
    • 4
  1. 1.Division of Information and Computer ScienceDankook UniversityYounginSouth Korea
  2. 2.Software LaboratoriesSamsung ElectronicsSuwonSouth Korea
  3. 3.Department of Computer ScienceUniversity of SeoulSeoulSouth Korea
  4. 4.School of Computer and Information EngineeringHongik UniversitySeoulSouth Korea

Personalised recommendations