Research Abstracts Online
January 2010 - March 2011
University of Minnesota Twin Cities
College of Science and Engineering
of Computer Science and Engineering
PI: David H.C. Du, Fellow
Static Wear-Leveling Algorithm for Flash Memory and Data Deduplication
NAND flash memory has the potential to replace disks in large-scale enterprise storage due to its better performance and low power requirements. However, reliability is still a critical issue in using NAND Flash-based solid-state storage for enterprise applications. The number of times a block can be reliably erased is limited in a NAND flash memory. A wear-leveling algorithm spreads the erase operations evenly across all blocks and thus prevents the early wear out of a few blocks in the flash memory. In attempting to do so the less frequently updated data, or cold data, is moved to more worn out blocks thereby reducing the rate of wear in those blocks. The migration of cold data is an expensive operation since it induces additional erase operations in the swapping process. To overcome this overhead, these researchers are developing a static wear leveling algorithm, named Rejuvenator, that allocates data to blocks based on their erase counts in a more natural manner. Cold data is assigned to more-worn data blocks and hot data is assigned to less-worn blocks. In addition to further reducing the cost of the additional cold data migrations, Rejuvenator uses an adaptive scheme that gradually reduces the variance in erase counts of the blocks as some of the blocks are approaching their maximum erase count limit. Experimental results show that Rejuvenator outperforms the existing best-known wear-leveling algorithms.
Other projects by this group include development of a NAND Flash-based Hybrid SLC-MLC device, development of an algorithm for frequency-based chunking for data deduplication, and parallelization of the content-defined chunking algorithm on multiple nodes.
Guanlin Lu, Graduate Student
Muthukumar Murugan, Research Associate