Design and implementation of an efficient wear-leveling algorithm for solid-state-disk microcontrollers

Solid-state disks (SSDs) are storage devices that emulate hard drives with flash memory. They have been widely deployed in mobile computers as disk drive replacements. Flash memory is organized in terms of erase blocks. With the current technology, a block can reach the end of its lifetime after thousands of erasure operations. Wear leveling is a technique to evenly erase the entire flash memory so that all blocks remain alive as long as possible. This study introduces a new wear-leveling algorithm based the observation that, under a real-life mobile PC's workload, most erasure operations are contributed by a small fraction of blocks. Our key ideas are 1) moving rarely updated data to a block that is extraordinarily worn and 2) avoiding repeatedly involving a block in wear-leveling activities. This study presents a successful implementation of the proposed wear-leveling algorithm using about 200 bytes of RAM in an SSD controller rated at 33 MHz. Evaluation results show that this algorithm achieves even wear of the entire flash memory while reducing the overheads of extra flash-memory operations.

[1]  Han-joon Kim,et al.  An Effective Flash Memory Manager for Reliable Flash Memory Space Management , 2002 .

[2]  Heeseung Jo,et al.  A group-based wear-leveling algorithm for large-capacity flash memory storage systems , 2007, CASES '07.

[3]  J. Rinehart,et al.  U . S . Patent , 2006 .

[4]  Li-Pin Chang,et al.  A self-balancing striping scheme for NAND-flash storage systems , 2008, SAC '08.

[5]  Werner Vogels,et al.  File system usage in Windows NT 4.0 , 1999, SOSP.

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

[7]  Sivan Toledo,et al.  Algorithms and data structures for flash memories , 2005, CSUR.

[8]  Heeseung Jo,et al.  A superblock-based flash translation layer for NAND flash memory , 2006, EMSOFT '06.

[9]  Hai Zhou,et al.  Parallel CAD: Algorithm Design and Programming Special Section Call for Papers TODAES: ACM Transactions on Design Automation of Electronic Systems , 2010 .

[10]  Tei-Wei Kuo,et al.  Efficient management for large-scale flash-memory storage systems with resource conservation , 2005, TOS.

[11]  Tei-Wei Kuo,et al.  Endurance Enhancement of Flash-Memory Storage, Systems: An Efficient Static Wear Leveling Design , 2007, 2007 44th ACM/IEEE Design Automation Conference.

[12]  Sang Lyul Min,et al.  Development Platforms for Flash Memory Solid State Disks , 2008, 2008 11th IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC).

[13]  Tei-Wei Kuo,et al.  Real-time garbage collection for flash-memory storage systems of real-time embedded systems , 2004, TECS.

[14]  Youngjoon Choi,et al.  A High Performance Controller for NAND Flash-based Solid State Disk (NSSD) , 2006, 2006 21st IEEE Non-Volatile Semiconductor Memory Workshop.

[15]  케빈 엠. 콘레이,et al.  Automated wear leveling in non-volatile storage systems , 2003 .

[16]  Sang-Won Lee,et al.  System Software for Flash Memory: A Survey , 2006, EUC.

[17]  David Woodhouse,et al.  JFFS : The Journalling Flash File System , 2001 .

[18]  ChiangMei-Ling,et al.  Using data clustering to improve cleaning performance for plash memory , 1999 .

[19]  Rina Panigrahy,et al.  Design Tradeoffs for SSD Performance , 2008, USENIX ATC.

[20]  Li-Pin Chang,et al.  On efficient wear leveling for large-scale flash-memory storage systems , 2007, SAC '07.

[21]  John Wilkes,et al.  UNIX Disk Access Patterns , 1993, USENIX Winter.

[22]  Peter T. McLean Information Technology - AT Attachment with Packet Interface - 5 (ATA/ATAPI-5) , 1998 .

[23]  Sang Lyul Min,et al.  A space-efficient flash translation layer for CompactFlash systems , 2002, IEEE Trans. Consumer Electron..

[24]  Kai Li,et al.  Storage alternatives for mobile computers , 1994, OSDI '94.

[25]  KuoTei-Wei,et al.  Efficient management for large-scale flash-memory storage systems with resource conservation , 2005 .

[26]  Thomas E. Anderson,et al.  A Comparison of File System Workloads , 2000, USENIX Annual Technical Conference, General Track.

[27]  Joonwon Lee,et al.  A multi-channel architecture for high-performance NAND flash-based storage system , 2007, J. Syst. Archit..