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.
Buy single article
Instant access to the full article PDF.
Tax calculation will be finalised during checkout.
Subscribe to journal
Immediate online access to all issues from 2019. Subscription will auto renew annually.
Tax calculation will be finalised during checkout.
McKusick M, Joy W, Leffler S, Fabry R (1984) A fast file system for UNIX. ACM Trans Comput Syst 2(3):181–197
Rosenblum M, Ousterhout JK (1992) The design and implementation of a log-structured file system. ACM Trans Comput Syst 10(1):26–52
Stalling W (2004) Operating systems: internals and design principles, 5th edn. Pearson Prentice Hall, New York
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)
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
Lim S, Park K (2006) An efficient NAND flash file system for flash memory storage. IEEE Trans Comput 55(7):906–912
Aleph One. YAFFS: yet another flash file system. www.aleph1.co.uk/yaffs/
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
Sharma AK (2003) Advanced semiconductor memories: architectures, designs, and applications. Wiley Interscience, New York
Samsung Electronics. NAND flash data sheet. www.samsung.com/Products/Semiconductor/NAND-Flash
Gal E, Toledo S (2005) Algorithms and data structures for flash memories. ACM Comput Surv 37(2):138–163
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
Gal E, Toledo S (2005) A transactions flash file system for microcontrollers. In: Proceedings of the 2005 USENIX annual technical conference, pp 89–104
Woodhouse D (2001) JFFS: the journaling flash file system, Ottawa Linux Symposium. http://source.redhat.com/jffs2/jffs2.pdf
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
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
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
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
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
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
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
Katcher J (1997) PostMark: a new file system benchmark. Technical Report TR3022, Network Appliance Inc
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
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
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
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
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
An earlier version of this paper appeared in the ACM Proceedings of the International Conference on Embedded Software (EMSOFT), 2007.
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
- Flash memory
- File system
- Performance Evaluation