C-Lash: A Cache System for Optimizing NAND Flash Memory Performance and Lifetime

NAND flash memories are the most important storage media in mobile computing and tend to be less confined to this area. Nevertheless, it is not mature enough to allow a widespread use. This is due to poor write operations’ performance caused by its internal intricacies. The major constraint of such a technology is the reduced number of erases operations which limits its lifetime. To cope with this issue, state-of-the-art solutions try to level the wear out of the memory to increase its lifetime. These policies, integrated into the Flash Translation Layer (FTL), contribute in decreasing write operation performance. In this paper, we propose to improve the performance and reduce the number of erasures by absorbing them throughout a dual cache system which replaces traditional FTL wear leveling and garbage collection services. C-lash enhances the state-of-the-art FTL performance by more than an order of magnitude for some real and synthetic workloads.

[1]  Joe Brewer,et al.  Flash Memory Applications , 2008 .

[2]  Sang-Won Lee,et al.  A log buffer-based flash translation layer using fully-associative sector translation , 2007, TECS.

[3]  Jin-Soo Kim,et al.  FAB: flash-aware buffer management policy for portable media players , 2006, IEEE Transactions on Consumer Electronics.

[4]  Daniel S. Myers,et al.  On the use of NAND flash memory in high-performance relational databases , 2008 .

[5]  Sooyong Kang,et al.  Performance Trade-Offs in Using NVRAM Write Buffer for Flash Memory-Based Storage Devices , 2009, IEEE Transactions on Computers.

[6]  Ryan Johnson,et al.  Evaluating and repairing write performance on flash devices , 2009, DaMoN '09.

[7]  Joonwon Lee,et al.  CFLRU: a replacement algorithm for flash memory , 2006, CASES '06.

[8]  Steven Swanson,et al.  Gordon: using flash memory to build fast, power-efficient clusters for data-intensive applications , 2009, ASPLOS.

[9]  Adam Leventhal Flash Storage Today , 2008, ACM Queue.

[10]  Joe Brewer,et al.  Nonvolatile memory technologies with emphasis on flash , 2007 .

[11]  Tei-Wei Kuo,et al.  An efficient B-tree layer implementation for flash-memory storage systems , 2007, TECS.

[12]  Sang-Won Lee,et al.  A survey of Flash Translation Layer , 2009, J. Syst. Archit..

[13]  Dongchul Park,et al.  CFTL: A Convertible Flash Translation Layer with Consideration of Data Access Patterns , 2009 .

[14]  David Hung-Chang Du,et al.  CFTL: a convertible flash translation layer adaptive to data access patterns , 2010, SIGMETRICS '10.

[15]  Gregory R. Ganger,et al.  The DiskSim Simulation Environment Version 4.0 Reference Manual (CMU-PDL-08-101) , 1998 .

[16]  Youngjae Kim,et al.  DFTL: a flash translation layer employing demand-based selective caching of page-level address mappings , 2009, ASPLOS.

[17]  Santosh Pande,et al.  Power-efficient prefetching for embedded processors , 2007, TECS.

[18]  Hyojun Kim,et al.  BPLRU: A Buffer Management Scheme for Improving Random Writes in Flash Storage , 2008, FAST.

[19]  Youngjae Kim,et al.  FlashSim: A Simulator for NAND Flash-Based Solid-State Drives , 2009, 2009 First International Conference on Advances in System Simulation.

[20]  Tae-Sun Chung,et al.  STAFF: A flash driver algorithm minimizing block erasures , 2007, J. Syst. Archit..

[21]  Tei-Wei Kuo,et al.  An Efficient B-Tree Layer for Flash-Memory Storage Systems , 2003, RTCSA.

[22]  Xubin He,et al.  BPAC: An adaptive write buffer management scheme for flash-based Solid State Drives , 2010, 2010 IEEE 26th Symposium on Mass Storage Systems and Technologies (MSST).