A File-System-Aware FTL Design for Flash-Memory Storage Systems


Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

A File-System-Aware FTL Design for Flash-Memory Storage Systems

  1. 1. A File-System-Aware FTL Design for Flash-Memory Storage Systems Po-Liang Wu Yuan-Hao Chang Tei-Wei Kuo Department of Computer Science Department of Computer Science Department of Computer Science and Information Engineering and Information Engineering and Information Engineering National Taiwan University, National Taiwan University, National Taiwan University, Taipei 106, Taiwan, R.O.C. Taipei 106, Taiwan, R.O.C. Taipei 106, Taiwan, R.O.C. Email: b91029@csie.ntu.edu.tw Email: d93944006@csie.ntu.edu.tw Email: ktw@csie.ntu.edu.tw Abstract—As flash memory became popular over various plat- block size and the page size of a SLC(/MLC) NAND flash forms, there is a strong demand on the performance degradation memory are 128KB(/256KB) and 2KB, respectively. A page problem, due to the special characteristics of flash memory. This can not be overwritten unless it is erased. Therefore, out- research proposes the design of a file-system-aware flash translation place-update is usually adopted in flash-memory management, layer, in which a filter mechanism is designed to separate the where out-place update is to write to-be-updated data to access requests of file-system metadata and file contents for better another free page of flash memory. In the past decades, there performance. A recovery scheme is then proposed to maintain the were many excellent work and implementations in meeting integrity of a file system. The proposed flash translation layer is the performance and reliability requirements of flash-memory implemented as a Linux device driver and evaluated with respect to storage systems, e.g., [4], [5], [6], [7]. Some exploited different ext2 and ext3 file systems. The experimental results show significant system architectures and layer designs, e.g., [5], [8], [9], performance improvement over ext2 and ext3 file systems with [10], and some explored the design issues of the native limited system overheads.1 file systems over flash-memory storage devices, e.g., [4], I. INTRODUCTION [8], [11]. Researchers also exploited large-scaled and energy- aware storage systems, e.g., [12], [13]. In particular, Wu et The applications of flash memory technology have grown al. [9] proposed a hybrid flash-translation-layer design to much beyond its original design goal. The success of flash switch the mapping information between a fine-grained and memory technology not only comes with a significant market a coarse-grained address translation mechanisms dynamically growth rate but also introduces new challenges. One popular and adaptively. Hsieh et al. [14] proposed a caching strategy example is a solid state disk (SSD)2 . Although Single-Level- and data structure with the considerations of the characteristics Cell (SLC) flash memory is more reliable, its cost weakens it- of NAND flash memory and energy consumption of the system self from the strong competition from Multi-Level-Cell (MLC) on processing read and write requests. Chang et al. [15] flash memory in storage-system designs3 . As the capacity proposed a hybrid architecture to combine SLC and MLC of storage system is doubled roughly every 18 months, we NAND flash memory on Solid State Disks so as to utilize the face challenging performance and reliability problems of MLC advantages of SLC and MLC flash memory. A Hot-Data Filter flash memory. For example, the time to program one page of is designed to identify frequently accessed data from non- MLC×2 flash memory is 800µs, and each block of MLC×2 frequently accessed data according to the size of accessed data flash memory can only endure 10,000 erase cycles, compared in each request. Moreover, Samsung presented a OneNAND to 200µs page-program time and 100,000 erase cycles of SLC structure, which uses NAND flash memory and a SRAM buffer flash memory [1], [2]. These problems are further exaggerated to replace NOR flash memory, e.g., [16], [17], [18]. NAND by the behavior of file systems (that are usually over storage flash memory is also adopted to facilitate the booting process systems), mainly due to frequent writes of small sizes to the or to save the energy consumption of hard disks [19], [20], flash memory [3]. This observation motivates this research on [14]. the exploring of file-system behaviors and the design of a file- system-aware flash-memory management scheme. However, due to the special write constraints of MLC flash A NAND flash memory chip is organized in terms of blocks, memory, partial-programming to a page is impossible, and and each block is further divided into a fixed number of pages. random writes to pages of a block are prohibited. These A block is the basic unit for erase operations, while reads write constraints makes many existing flash-translation-layer and writes are processed in the unit of one page. The typical (FTL) designs infeasible or lack of efficiency. Different from the previous work, we are interested in the performance and 1 This work is partially supported by the Genesys Logic, the National reliability improvements for different file systems with the Science Council of Taiwan, and Excellent Research Projects of National consideration of flash-memory characteristics. In this paper, Taiwan University, under Grant NSC-95-2221-E-002-094-MY3 and 97R0062- we propose the design of a file-system-aware flash translation 05 2 There are two types of flash memory: NOR and NAND. In this paper, we layer with the considerations of file system behavior and consider NAND flash memory because it is the most widely adopted flash reliability issues. An efficient filter mechanism is designed to memory in storage systems. separate the access requests of file metadata and contents for 3 Each cell of MLC×n flash memory can store n-bit information, while better performance based on the knowledge of the layout of each cell of SLC can store only one-bit information file systems. A recovery scheme is also proposed to maintain 978-3-9810801-5-5/DATE09 © 2009 EDAA
  2. 2. the integrity of a file system. The proposed flash translation Application 1 Application 2 Application n layer is implemented as a Linux device driver on a DaVinci evaluation board [21] and evaluated with respect to ext2 and Operating Systems API ext3 file systems. Host The experimental results show that 20% performance im- provement can be obtained for ext2/ext3 file systems. More- File Systems (e.g., NTFS, EXT2) over, the extra RAM consumption of the proposed FTL design over ext2/ext3 is under 2.4% of existing designs. Interface (e.g., ATA or SATA) The rest of this paper is organized as follows: Section II (e.g., Solid State Disks) Flash Storage Devices presents the system architecture and the motivation of this Flash Translation Layer work. Section III presents file-system-behavior analysis and proposes an efficient file-system-aware FTL design. Section IV summarizes the experimental results of the proposed FTL Memory Technology Device Layer design over popular Linux file systems. Section V is the conclusion. MLC MLC MLC II. SYSTEM ARCHITECTURE AND RESEARCH MOTIVATION A. System Architecture Fig. 1. System Architecture Consider a typical system architecture of flash-memory- based storage systems, as shown in Figure 1, where a flash storage device is usually connected to a host system through (VBA) and a block offset (page number). Its translation table a standard interface. In order to control flash media of a stores the mapping information from each given VBA to its flash storage device, a Memory Technology Device (MTD) PBA. The data is written to the PBA with the corresponding driver is needed to support primitive flash-memory opera- block offset. If the corresponding page is already used, a tions, such as reads, writes, and erases. A Flash Translation new block is allocated, and the valid data in the previous Layer (FTL) driver is used to provide advanced functionality block are copied to the new block with the new written in address translation, garbage collection, and wear-leveling. data. NFTL [24] also adopts a block-level address translation Here address translation is to translate any given logical block mechanism. The mapping mechanism is like BL, except that addresses (LBAs) to physical block addresses (PBAs), where NFTL uses a replacement block to handle subsequent write each LBA represents a storage unit of 512B. Note that data requests. The contents of the (over-written) write requests are updates must be written to free pages of flash memory such sequentially written to the replacement block. Therefore, an that there is a need in address translation, and pages of old data entry in the address translation table stores two physical block versions become invalid after each update. Garbage collection numbers, i.e., primary block and replacement block. When is to reclaim space that store invalid data, whenever there are a replacement block is full, the replacement block and the no sufficient free pages. In other words, garbage collection corresponding primary block are merged into a new primary selects victim blocks that contain invalid pages, copies valid block. The merge operation copies all of the valid data of pages from the victim blocks to free pages (referred to as the primary block and replacement block to a newly allocated live-page copyings), and then erases the victim blocks. Wear- primary block and erases the previous two blocks. leveling is to distribute block erases as evenly as possible over flash-memory chips. An FTL driver usually emulates the underlying flash memory as a block device so that file systems B. Motivation can access the flash storage device transparently. Although NAND flash memory has been widely adopted in One increasing critical problem for users is that existing many storage-system designs due to various attractive features, file systems, such as ext2 and ext3, are designed with little its application domains quickly grow beyond its original awareness of flash-memory characteristics. targets. A well-known example could be solid state disks It is mainly because they are designed when hard drives (SSDs). Note that SSDs are used to replace the role of hard (that rely on in-place updates) are the most popular secondary disks. Because the accessing of user and system data often storage devices. Such an observation underlines our research generates many small-sized writes, those small-sized writes motivation in the investigation of the design issues of FTL could quickly deteriorate the write performance of SSDs, due drivers in reducing the potential overheads imposed by file to the out-place-update characteristics of flash memory and its systems on flash memory. slow erase operations. There are three major implementation approaches of flash- As shown in Table I, in order to create a 64KB file in ext2, memory management schemes: FTL, BL, and NFTL: FTL we need 11 write requests to different places, and only one of adopts a page-level address translation mechanism for fine- them is about the writing of some file contents. Most requests, grained address translation [22], [23]. It relies on an address except the request to the file contents, only access 8 LBAs per translation table to map any given LBA to its PBA, where time. This observation implies harsh challenges on the designs LBAs are the addresses of sectors which are accessed by of flash-memory management schemes. Although FTL has the operating system, and PBAs are the addresses of flash good performance on random writes of small sizes, its page- pages (which consists of two parts, i.e., the residing block level translation mechanism needs a huge translation table, number and the page number in the block). BL adopts a block- which is often too large to fit in the main memory. In order level translation mechanism for coarse-grained translation. to resolve the size problem of translation tables, block-level An LBA under BL is divided into a virtual block address translation mechanisms, e.g., NFTL and BL, are invented for
  3. 3. large-scaled flash storage devices, e.g., SSDs. However, they File System introduce considerable overheads of live-page copyings such IO Requests FTL Partition that the system performance might be significantly affected. File System Table Metadata Filter Identifier File System ext2 Metadata Userdata Number of total write requests 11 Allocation Metadata FTL Userdata FTL Number of total write requests to metadata 10 Unit Number of write requests to the file content 1 Number of accessed LBAs 196 IO Operations Number of accessed LBAs to metadata 68 Number of accessed LBAs to the file content 128 Fig. 2. The System Modules of the File-System-Aware Management Scheme TABLE I C REATING OF A 64KB F ILE IN F ILE S YSTEMS As shown in Figure 2, the proposed FTL design consists of five components: file system identifier, Metadata filter, MLC flash memory, instead of SLC flash memory, is usually Metadata FTL, Userdata FTL, and Allocation unit. The file selected as the storage media for low-cost embedded-system system identifier is to identify the location of the file-system’s solutions. However, pages of MLC flash memory can only be metadata in the flash storage device by analyzing the partition written sequentially in a block, and partial-page programming table during the system’s start-up. As a result, whenever the is prohibited4. Such a limitation introduces extra overheads metadata filter receives an I/O request, it can distinguish to writes over flash memory, and it might even make many metadata from userdata according to the accessed LBAs. If the existing management schemes infeasible. For instance, FTL accessed LBAs are belonging to userdata, they are passed to and NFTL need to invalidate a page by updating the status the userdata FTL where the userdata FTL adopts existing flash- bit of the spare area of a page, but the above constraints memory management schemes, such as FTL, NFTL, and BL. of MLC flash memory makes it impossible. Meanwhile, it If the accessed LBAs are in the metadata area, the metadata is of paramount importance to maintain the sanity of file FTL is invoked to manipulate the underlying flash memory. systems because the endurance of MLC flash memory is The metadata FTL adopts the proposed “MFTL” management much lower than that of SLC flash memory, and embedded scheme that adopts a fine-grained address translation mech- systems, especially portable devices, tend to run out of the anism, so that the overhead of address translation and the battery during the run time. This research is motivated by number live-data copyings are reduced (Please see Section the needs of performance and reliability enhancement over III-B). The MFTL requests free space in the unit of a block I/O-intensive applications with the considerations of physical set, where a block set is a fixed number of blocks. In order constraints of MLC flash memory. Our goal is to propose a to identify the version of stored data and to improve the FTL (driver) design that better fits file systems, so as to reduce performance on address translation, the last page of each block the overheads introduced by file systems and to improve the set stores the version number and the mapping information of sanity of file systems after power losses. The technical problem the block set (Please see Section III-C). In addition, the stored is how to explore the attributes of file systems and their version number and the mapping information can also help to access patterns with the considerations of write constraints recover the lost metadata of file systems so that the reliability and the low reliability/performance problem of MLC flash and sanity of file systems can be improved as well. The memory. We should also explore the possibility in minimizing allocation unit is to manage free space. Whenever metadata the number of live-page copyings caused by flash-memory FTL or userdata FTL requests any free space, the allocation management schemes. unit returns with the number of requested blocks. Once there are not enough free blocks, the allocation unit initiates the III. A FILE-SYSTEM-AWARE FTL DESIGN garbage collection to reclaim free space. A. Overview B. MFTL: A Metadata Management Scheme In order to improve the performance and reliability of file systems over MLC flash-memory storage systems, we In this section, we will first illustrate the general information propose a file-system-aware FTL (driver) design, where the and layout of a file system because the design of a file system characteristics of file systems are considered. In a file system, has a significant impact on the performance of a storage a systematic way is provided to organize data, and it usually system. We shall then provide some observations based on the consists of two parts: metadata and userdata. Metadata contain access patterns of file systems and propose our approach in the general information of the file system, e.g., the super- the handling of metadata. In this work, we propose to manage block and inode tables in ext2 , and the attributes of files userdata with an existing flash-memory management scheme, and directories. Some modern journaling file systems might such as NFTL, and adopt our metadata management scheme include journaling techniques to protect their metadata. Al- (MFTL) for metadata management. though metadata usually take a small part of the space of a MFTL, which is implemented in the metadata FTL (as storage system, it is frequently accessed with small sizes and shown in Figure 2), is specifically designed to manage the therefore needs to be managed carefully. On the other hand, metadata of file systems efficiently. Note that different file userdata stores the contents of files or user data. Compared systems do manage their general information in different ways. to metadata, most userdata are less frequently accessed, and For example, ext2 divides the entire file system into several each access to userdata often touches data of a larger size. block groups and uses two metadata structures, i.e. Superblock and Group Descriptor Table (GDT), to describe the general 4 A 2KB page in SLC flash memory can partially be programmed for four information of the file system (as shown in Figure 3). The times. Superblock contains the basic information of the file system,
  4. 4. such as the block size, the number of blocks, and the number way to maintain the metadata should be different from user of inodes per block group. The GDT is to manage the block data so as to improve the performance of the file system, due group information, and each entry of the GDT maintains the to the out-place update characteristics of flash memory. information of one block group, e.g., the starting address The metadata filter of the proposed FTL (driver) design is of each block group and the status of blocks and inodes. to identify I/O requests as metadata requests and userdata Therefore, the layout of ext2 can be determined by scanning requests, where a metadata(/userdata) request is to access its Superblock and GDT. Each block group has its own “inode data belonging to metadata(/userdata). The metadata filter bitmap” and ”block bitmap”. Each bit in this bitmap indicates maintains a run-length structure for each metadata file in the the allocation status of one data cluster or inode. Each block main-memory. As shown in Figure 5, each I/O request contains group also maintains an inode table, and each inode of the information like S LBA and Length, where S LBA is inode table describes the attributes of one file or directory in the first LBA being accessed by the request, and Length the group. is the number of consecutive LBA’s to be accessed. Based on the information, the metadata filter determine which of Group Descriptor Table Block Group metadata or userdata FTL will handle the request. If the request is to access the content of a file or directory, it is sent to the userdata FTL, that adopts an existing flash-memory Superblock a Block Inode InodeTable File Content File Content management scheme, such as NFTL or BL. Bitmap Bitmap Metadata Filter Superblock Metadata Request Fig. 3. The File Systems Layout S_LBA Length S_LBA Length M_type I/O Request Group Descriptor Table S_LBA Length S_LBA Length Requests LBA Sectors Data Type User Request (R/W) S_LBA Length R 8 8 Group Descriptor Table Metadata Requests R 1976 8 Inode Bitmap W 2 2 Superblock Fig. 5. Metadata Filter W 8 8 Group Descriptor Table W 1976 8 Inode Bitmap MFTL, that is implemented in the metadata FTL, adopts W 1984 8 Inode Table a page-level address translation mechanism in a logging- R 1968 8 Block Bitmap similar fashion. The page-level address translation mechanism W 137296 128 File Content maintains one mapping entry for each page so as to reduce Metadata Requests W 6032 8 Directory the address translation overhead and live-data copyings. Since W 2 2 Superblock metadata only occupy a small portion of file system, the W 8 8 Group Descriptor Table memory requirement of the mapping table should be able to fit W 1984 8 Inode Table in most embedded systems MFTL writes data to a block from W 1968 8 Block Bitmap its first page one by one in a sequential way, i.e., a logging- similar fashion. When there is no free space, MFTL requests for another block set to store new or updated data, where a Fig. 4. The Traces of Creating a 64KB File in ext2 block set is composed of a fixed number of blocks (Please see Section III-C). Metadata of different requests might be written Before any access to a file or directory, the file system to flash-memory pages in an interleaving way. The type of might access related metadata to determine the system layout. metadata (i.e., M type as shown in Figure 5) is stored in the The file system then accesses the metadata that contain the spare area of each page, so that the type of data stored in a attributes of the accessed file or directory. If the file system flash-memory page can be identified during the construction of needs to allocate or de-allocate any data clusters, the file address translation tables. When a block set is about to fill up, system reads the corresponding bitmap structure to update the last page, referred to as a summary page, is written with a the allocation status of the data clusters. Finally, the file version number and the page-level translation information of system accesses the user data, i.e., the contents of the file the metadata stored in the block set. Therefore, the address- or directory, and then updates the corresponding metadata if translation overhead and the number of live-data copyings for needed. Figure 4 shows the access patterns in the creating frequently updated metadata can be reduced. The writing of a of a 64KB file in ext2. In order to determine the file system summary page is also referred to as a “commit” action to the layout, the Superblock and Group Descriptor Table in ext2 are writes of the corresponding block set. accessed. In order to allocate data clusters to a newly created file, the block bitmap in ext2 are accessed. In addition, the C. Reliability versus Commit Actions corresponding file attributes must be inserted to the inode table Block management should take the reliability of file systems in ext2. Since the file system status has been changed, the into considerations, especially for battery-driven embedded updated information is written to the corresponding metadata systems. If a system crashes while data are written to a storage to maintain the consistency of file system. It is observed that device, the file system in the storage device might be in an the traces contain many write requests to Superblock and inconsistent state. In order to avoid the scanning of the entire Group Descriptor table. file system during the recovery, some journaling technique The above observations show that metadata of a modern is needed to protect sensitive data, such as metadata, where file system are frequently accessed and are of small sizes. The a journaling technique usually keeps update information in
  5. 5. “safe” area for recovery purpose. For example, Ext3, i.e., a shaped scheme from their first pages, and pages in a block are journaling version of ext2, stores the journaling information sequentially written, the transmission time and programming in some specific area in the unit of a transaction, which time of metadata in a block set can be significantly reduced by consists of a descriptor, updated metadata, and a committing writing multiple pages simultaneously. The read performance status. Although the journaling technique is adopted by some can be also improved in a similar way. file system to improve the integrity of a file system, it does introduce a significant amount of overheads, mostly in terms IV. PERFORMANCE EVALUATION of writes. A. Performance Metrics and Experiment Setup Block Set The purpose of this section is to evaluate the capability of Metadata Metadata Metadata Summary Page the proposed FTL (driver) design with FTL, NFTL, and BL (implemented in the userdata FTL) over ext2 and ext3 file (LBA, PBA) (LBA, PBA) (LBA, PBA) Metadata Metadata Metadata sysetms, in terms of performance improvement. The perfor- Version ... ... Metadata Metadata Metadata Metadata Metadata Summary mance improvement was based on the data transmission time Page and the amount of live-data copyings. The proposed FTL design was implemented on the DM644X Fig. 6. A Block Set and its Summary Page DaVinci evaluation board to evaluate its performance under ext2 and ext3 file systems. The DaVinci evaluation board has 64MB on-board NAND SLC NAND flash memory (32 The design of MFTL not only aims at the system perfor- pages per block and 512 bytes per page). The proposed mance improvement but also introduces the idea of commit FTL design was implemented as a Linux device driver to action for reliability considerations. Consider popular file control the on-board flash memory. 50MB of the on-board systems that do not support the journaling technique, such flash memory was partitioned as an ext2 or ext3 file system as FAT32 and ext2. With MFTL, writes to each block set and each block set (allocated to store metadata) consisted of commit with a summary page for crash recovery, where MFTL two blocks. The capability of the proposed FTL design was allocates free space in the unit of a block set. As shown in evaluated over some realistic cases and popular benchmarks. Figure 6, inter-block link information is also maintained in The realistic cases were the real archive (linux-kernel header the spare area of the first page of each block to speed up the files) to evaluate the performance of the proposed FTL design block traversal in a set, where two links are used to point over ext2 and ext3. Meanwhile, the benchmark “Bonnie++” to its next block and the last block of the set, respectively. was used to further evaluate the performance over ext2 based Pages of each block set are used to store metadata, except the on the industry practice. summary page. Each summary page contains a 64-bit version number to indicate the version of the block set and the page- B. Performance Improvement level translation information of the metadata in the block set. Whenever the summary page of a block set is written, the 1) Data Transmission Time: Figure 7 shows the perfor- block set is said being “committed”. When the file system mance improvement of the proposed FTL design with FTL, crashes, MFTL will scan the summary page of each block set NFTL, and BL, compared with pure FTL, NFTL, and BL to recover the translation information of metadata according management schemes. For example, the improvement ratios on to their version numbers. If the system finds an uncommitted NFTL with small-file copyings and Bonnie++ benchmark over block set, then every page in the block set must be scanned. the ext2 file system were 22% and 19%, respectively. Com- Any partial programmed page in an uncommitted block set pared with the pure BL management scheme, which is widely should be discarded because the system might crash during used in USB flash drives, the performance improvement was some data writing. For metadata stored in discarded pages, more than 30%. It was worth of mentioning that there was their most recent versions in committed block sets should be no significant improvement, compared with the pure FTL used, where metadata in a committed block set are guaranteed management scheme, because the FTL management scheme being correct. When a bad block occurs, the system should adopted a fine-grained address translation mechanism for both also adopt the most recent version of metadata in a committed userdata and metadata. However, the FTL management scheme block set. The commit action of a block set can help in the is not practical in large-scale flash memory because it needs reliability improvement of file systems with or without the large RAM space to maintain the address translation table. support of the journaling technique because their journaling 2) Live-Page Copyings: Figure 8 shows the number of information might have a chance to get lost. The protection live-page copyings with different management schemes over of metadata is improved by the commit action. Note that the ext2 and ext3. The proposed FTL design could reduce more block-set size could have an impact on the space utilization than 30% of live-page copyings in most cases. However, the and might affect the worst-case amount of lost data after the number of live-page copings of the proposed FTL design was system crash. That is because the last page of each block set is higher than that of pure FTL management scheme under the not used to store data, and parts of the data of an uncommitted testing of the Bonnie++ benchmark. This was because the block set could be discarded. The selection of the block-set data accessed by Bonnie++ were relatively small, and most of size is a trade-off between the space utilization and the degree them were metadata. Therefore, the proposed FTL design had of reliability. to do garbage collection many times to release free pages for When multi-chip and multi-channel designs are considered metadata and resulted in many live-page copings in metadata. for better performance, the proposed management scheme do In contrast, the pure FTL management scheme could store have good potential in parallelism. Each block of a block set metadata in any block of flash memory, and the amount of can reside in a different flash-memory chip. Since metadata accessed userdata was relatively small so that the garbage are circularly written to blocks of a block set in a ”z”- collection was not triggered.
  6. 6. 400 900 mission time(s) For future research, we shall further explore the trade- mission time (s) 350 800 300 700 250 600 500 off between the main-memory consumption and performance n 200 400 150 300 100 improvement, especially for low-cost products. Multi-channel Transm Transm FTL 200 NFTL 50 100 0 MFTL+FTL 0 MFTL+NFTL Ext2 Ext3 Bonnie++ Ext2 Ext3 Bonnie++ system designs will also be exploited for huge-capacity flash- Small file copies Benchmark Small file copies Benchmark memory storage devices for better performance and lower cost. Test C T Cases Test Cases R EFERENCES (a) FTL (b) NFTL [1] K9NBG08U5M 4G * 8 Bit NAND Flash Memory Data Sheet, Samsung 4000 Electronics, 2005. ission time (s) 3500 3000 2500 [2] NAND08Gx3C2A 8Gbit Multi-level NAND Flash Memory, STMicroelec- 2000 1500 tronics, 2005. 1000 Transmi BL 500 0 MFTL+BL [3] B. Carrier, File System Forensic Analysis. Addison Wesley Professional, Ext2 Ext3 Bonnie++ 2005. Small file copies Benchmark [4] D. Woodhouse, “JFFS: The Journalling Flash File System,” in Ottawa Test Cases Linux Symposium, 2001. [5] L.-P. Chang and T.-W. Kuo, “An Adaptive Striping Architecture for (c) BL Flash Memory Storage Systems of Embedded Systems,” in IEEE Real- Time and Embedded Technology and Applications Symposium, 2002, pp. Fig. 7. Comparisons on the Transmission Time with Different Management 187–196. Schemes [6] L.-P. Chang, “On efficient wear-leveling for large-scale flash-memory storage systems.” 22st ACM Symposium on Applied Computing (ACM 12000 140000 SAC), March 2007. ngs Live page copyings 10000 120000 [7] Y.-H. Chang, J.-W. Hsieh, and T.-W. Kuo, “Endurance Enhancement Live page copyin 8000 100000 80000 of Flash-Memory Storage Systems: An Efficient Static Wear Leveling c 6000 60000 4000 40000 Design,” the 44th ACM/IEEE Design Automation Conference (DAC), p 2000 FTL NFTL 20000 0 MFTL+FTL 0 MFTL+NFTL June 2007. Ext2 Ext3 Bonnie++ Ext2 Ext3 Bonnie++ [8] A. Kawaguchi, S. Nishioka, and H. Motoda, “A Flash-Memory Based Small file copies Benchmark Small file copies Benchmark File System,” in Proceedings of the 1995 USENIX Technical Conference, Test Cases T C Test Cases Jan 1995, pp. 155–164. [9] C.-H. Wu and T.-W. Kuo, “An Adaptive Two-Level Management for (a) FTL Live-Page Copyings (b) NFTL Live-Page Copyings the Flash Translation Layer in Embedded Systems,” in IEEE/ACM 5000000 2006 International Conference on Computer-Aided Design (ICCAD), Live page copyings 4000000 November 2006. 3000000 2000000 [10] J.-H. Lin, Y.-H. Chang, J.-W. Hsieh, T.-W. Kuo, and C.-C. Yang, “A NOR Emulation Strategy over NAND Flash Memory,” the 13th p 1000000 BL 0 MFTL+BL IEEE International Conference on Embedded and Real-Time Computing Ext2 Ext3 Bonnie++ Systems and Applications(RTCSA 2007), August 2007. Small file copies Benchmark [11] “Flash File System. US Patent 540,448,” in Intel Corporation. Test Cases [12] L.-P. Chang and T.-W. Kuo, “An Efficient Management Scheme for Large-Scale Flash-Memory Storage Systems,” ACM Symposium on (c) BL Live-Page Copyings Applied Computing (SAC), pp. 862–868, Mar 2004. [13] Y. Du, M. Cai, and J. Dong, “Adaptive Energy-aware Design of a Fig. 8. Comparisons on the Number of Live-Page Copyings with Different Multi-bank Flash-memory Storage System,” Proceedings of the 11 Management Schemes IEEE Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA’05), 2005. [14] J.-W. Hsieh, T.-W. Kuo, P.-L. Wu, and Y.-C. Huang, “Energy-Efficient and Performance-Enhanced Disks Using Flash-Memory Cache,” pro- V. CONCLUSION AND FUTURE WORK ceedings of ACM/IEEE International Symposium on Low Power Elec- tronics and Design (ISLPED 2007), pp. 334–339, 2007. This research is motivated by the significant performance [15] L.-P. Chang, “Hybrid Solid-State Disks: Combining Heterogeneous degradation of file systems, such as ext2 and ext3, when flash NAND Flash in Large SSDs,” The 13th Asia and South Pacific Design memory is used as a storage medium. An efficient file-system- Automation Conference (ASP-DAC), 2008. aware FTL design is proposed to better manage the metadata [16] KFW8G16Q2M-DEBx 512M x 16bit OneNAND Flash Memory Data of file systems for performance and reliability considerations. Sheet, Samsung Electronics, 09 2006. [17] OneNAND Features and Performance, Samsung Electronics, 11 2005. With careful system behavior analysis, it was observed that [18] Y. Joo, Y. Choi, C. Park, S. W. Chung, E.-Y. Chung, and N. Chang, the access frequency and small size characteristics of metadata “Demand paging for onenandtm flash execute-in-place.” CODES+ISSS, introduce considerable overheads, e.g., live-page copyings, to October 2006. flash-memory management. A metadata filter is proposed to [19] “Flash Cache Memory Puts Robson in the Middle,” Intel. separate metadata requests and userdata requests based on the [20] “Windows ReadyDrive and Hybrid Hard Disk Drives, knowledge of the layout of file systems, and metadata are http://www.microsoft.com/whdc/device/storage/hybrid.mspx,” Microsoft, Tech. Rep., May 2006. managed with a fine-grained address translation mechanism [21] “DaVinci Digital Media System-on-Chip - TMS320DM6446 http: and written to flash-memory pages in a logging-similar fashion //focus.ti.com/docs/prod/folders/print/tms320dm6446.html,” Texas In- for performance and reliability considerations. An effective struments, Tech. Rep. recovery scheme is then proposed to improve the integrity of [22] “Understanding the Flash Translation Layer (FTL) Specification, a file system. The effectiveness of the proposed scheme was http://developer.intel.com/,” Intel Corporation, Tech. Rep., Dec 1998. analyzed with case studies over ext2/ext3 file systems. A series [Online]. Available: http://developer.intel.com/ [23] “FTL Logger Exchanging Data with FTL Systems,” Intel Corporation, of experiments also shows that the performance of ext2/ext3 Tech. Rep. file systems could be significantly improved by more than [24] “Flash-memory Translation Layer for NAND flash (NFTL),” M-Systems, 20%, in most cases, where only limited extra main-memory 1998. was needed.