Abstract
When flash memory is used as a storage in embedded systems, block level translation layer is required between conventional filesystem and flash memory chips due to its physical characteristics. A far more efficient use of it is the design of a filesystem itself without no extra layer of translation. However, since flash filesystem does not use block device layer, it cannot utilize deferred I/O although deferred I/O enhances write latency by delaying the flushing jobs. Linux operating system generally uses the write back routine for deferred I/O using kernel thread, which writes back dirty pages and buffers through the block device layer. In this paper, we design and implement efficient I/O for JFFS2 flash filesystem based on flash memory. For this, we first analyze the write procedure of JFFS2 filesystem in detail, and derive the drawback and overhead. Then, we design the flash write back routine for deferred I/O. We apply it to the Linux JFFS2 by implementing fflush and flash_writeback kernel thread. The designed flash write back routine can reduce average write latency when the kernel buffers are enough to get the users data.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Douglis, F., Caceres, R., Kaashoek, F., Li, K., Marsh, B., Tauber, J.A.: Storage alternatives for mobile computers. In: Proc. of the 1st Symposium on Operating Systems Design and Implementation (OSDI), pp. 25–37 (1994)
Intel Corporation, Understanding the flash translation layer (FTL) specification, http://developer.intel.com/
Samsung Electronics Co., NAND Flash Memory & SmartMedia Data Book (2002)
Samsung Electronics Co., OneNAND Specification (2005)
Memory Technology Device (MTD) subsystem for Linux, http://www.linux-mtd.infradead.org
Ban, A.: Flash file system. United States Patent, no. 5,404,485 (April 1995)
Card, R., Ts’o, T., Tweedie, S.: Design and Implementation of the Second Extended Filesystem. The HyperNews Linux KHG Discussion (1999), http://www.linuxdoc.org
Kawaguchi, A., Nishioka, S., Motoda, H.: A Flash-Memory Based File System. In: Usenix Technical Conference (1995)
Woodhouse, D.: JFFS: The Journalling Flash File System. In: Ottawa Linux Symposium (2001)
Rosenblum, M., Ousterhout, J.K.: The Design and Implementation of a Log-Structured File System. ACM Transactions on Computer Systems 10(1) (1992)
Bovet, D.P., Cesati, M.: Understanding the Linux Kernel. O’Reilly, Sebastopol
Texas Instruments Co., OMAP 5912 Startker Kit (OSK), http://focus.ti.com/omap/docs/omaphomepage.tsp
Threaded I/O bench for Linux, http://sourceforge.net/projects/tiobench/
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Lim, SH., Baek, SH., Hwang, JY., Park, KH. (2006). Write Back Routine for JFFS2 Efficient I/O. In: Sha, E., Han, SK., Xu, CZ., Kim, MH., Yang, L.T., Xiao, B. (eds) Embedded and Ubiquitous Computing. EUC 2006. Lecture Notes in Computer Science, vol 4096. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11802167_80
Download citation
DOI: https://doi.org/10.1007/11802167_80
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-36679-9
Online ISBN: 978-3-540-36681-2
eBook Packages: Computer ScienceComputer Science (R0)