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

Li-Pin Chang*, Chun Da Du

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

54 Scopus citations


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.

Original languageEnglish
Article number6
JournalACM Transactions on Design Automation of Electronic Systems
Issue number1
StatePublished - 1 Dec 2009


  • Embedded systems
  • Flash memory
  • Solid-state disks
  • Wear leveling


Dive into the research topics of 'Design and implementation of an efficient wear-leveling algorithm for solid-state-disk microcontrollers'. Together they form a unique fingerprint.

Cite this