Abstract
The multi-level cell (MLC) NAND flash memory technology enables multiple bits of information to be stored in a memory cell, thus making it possible to increase the density of flash memory without increasing the die size. In MLC NAND flash memory, each memory cell can be programmed as a single-level cell or a multi-level cell at runtime because of its performance/capacity asymmetric programming property, which is called flexible programming in this paper. Therefore, MLC flash memory has a potential to achieve the high performance of SLC flash memory while preserving its maximum capacity. In this paper, we present a flexible flash file system, called FlexFS, which takes advantage of flexible programming. FlexFS divides a flash memory medium into SLC and MLC regions, and then dynamically changes two different types of regions to provide an optimal storage solution to end-users in terms of performance and capacity. FlexFS also provides a reasonable storage lifetime by managing the wearing rate of NAND flash memory, which is accelerated by the use of flexible programming. Our implementation of FlexFS in the Linux 2.6 kernel shows that it achieves the I/O performance comparable to SLC flash memory while guaranteeing the capacity of MLC flash memory in various real-world workloads.
Original language | English |
---|---|
Article number | 6520839 |
Pages (from-to) | 2445-2458 |
Number of pages | 14 |
Journal | IEEE Transactions on Computers |
Volume | 63 |
Issue number | 10 |
DOIs | |
State | Published - 1 Oct 2014 |
Bibliographical note
Publisher Copyright:© 2013 IEEE.
Keywords
- File system
- NAND flash memory
- Operating system
- Storage system