Design Issues and Challenges of File Systems for Flash Memories
Stefano Di Carlo, Michele Fabiano, P. Prinetto, Maurizio Carami · InTech eBooks · 2011
The increasing demand for high-speed storage capability both in consumer electronics (e.g., USB flash drives, digital cameras, MP3 players, solid state hard-disks, etc.) and mission critical applications, makes NAND flash memories a rugged, compact alternative to traditional mass-storage devices such as magnetic hard-disks.The NAND flash technology guarantees a non-volatile high-density storage support that is fast, shock-resistant and very power-economic.At higher capacities, however, flash storage can be much more costly than magnetic disks, and some flash products are still in short supply.Furthermore, the continuous downscaling allowed by new technologies introduces serious issues related to yield, reliability, and endurance of these devices (Cooke, 2007; IEEE Standards Department, 1998;Jae-Duk et al., 2002;Jen-Chieh et al., 2002;Ielmini, 2009;Mincheol et al., 2009;Mohammad et al., 2000).Several design dimensions, including flash memory technology, architecture, file management, dependability enhancement, power consumption, weight and physical size, must be considered to allow a widespread use of flash-based devices in the realization of high-capacity mass-storage systems (Caramia et al., 2009a).Among the different issues to consider when designing a flash-based mass-storage system, the file management represents a challenging problem to address.In fact, flash memories store and access data in a completely different manner if compared to magnetic disks.This must be considered at the Operating System (OS) level to grant existing applications an efficient access to the stored information.Two main approaches are pursuit by OS and flash memory designers: (i) block-device emulation, and (ii) development of native file systems optimized to operate with flash-based devices (Chang & Kuo, 2004).Block-device emulation refers to the development of a hardware/software layer able to emulate the behavior of a traditional block device such as a hard-disk, allowing the OS to communicate with the flash using the same primitives exploited to communicate with magnetic-disks.The main advantage of this approach is the possibility of reusing available file systems (e.g., FAT, NTFS, ext2) to access the information stored in the flash, allowing maximum compatibility with minimum intervention on the OS.However, traditional file systems do not take into account the specific peculiarities of the flash memories, and the emulation layer alone may be not enough to guarantee maximum performance.