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

Abstract

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.

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

References

  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

    Article  Google 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

    Article  Google 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)

  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

  6. 6.

    Lim S, Park K (2006) An efficient NAND flash file system for flash memory storage. IEEE Trans Comput 55(7):906–912

    Article  Google Scholar 

  7. 7.

    Aleph One. YAFFS: yet another flash file system. www.aleph1.co.uk/yaffs/

  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

    Article  Google 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. www.samsung.com/Products/Semiconductor/NAND-Flash

  11. 11.

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

    Article  Google 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

  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

  14. 14.

    Woodhouse D (2001) JFFS: the journaling flash file system, Ottawa Linux Symposium. http://source.redhat.com/jffs2/jffs2.pdf

  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

  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

  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

  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

  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

  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

    Article  Google 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

    Article  Google Scholar 

  22. 22.

    EZ-X5. www.falinux.com/zproducts

  23. 23.

    Katcher J (1997) PostMark: a new file system benchmark. Technical Report TR3022, Network Appliance Inc

  24. 24.

    Ben-Aroya A (2006) Competitive analysis of flash-memory algorithms. MSc paper, April 2006. www.cs.tau.ac.il/~stoledo/Pubs/flash-abrhambe-msc.pdf

  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

  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

    Article  Google 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

  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

Download references

Author information

Affiliations

Authors

Corresponding author

Correspondence to Jongmoo Choi.

Additional information

An earlier version of this paper appeared in the ACM Proceedings of the International Conference on Embedded Software (EMSOFT), 2007.

Rights and permissions

Reprints and Permissions

About this article

Cite this article

Baek, S., Choi, J., Ahn, S. et al. Design and implementation of a uniformity-improving page allocation scheme for flash-based storage systems. Des Autom Embed Syst 13, 5–25 (2009). https://doi.org/10.1007/s10617-008-9023-1

Download citation

Keywords

  • Flash memory
  • File system
  • Modeling
  • Uniformity
  • Implementation
  • Performance Evaluation