Competitive analysis of flash memory algorithms

Avraham Ben-Aroya, Sivan Toledo

Research output: Contribution to journalArticlepeer-review

Abstract

Flash memories are widely used in computer systems ranging from embedded systems to workstations and servers to digital cameras and mobile phones. The memory cells of flash devices can only endure a limited number of write cycles, usually between 10,000 and 1,000,000. Furthermore, cells containing data must be erased before they can store new data, and erasure operations erase large blocks of memory, not individual cells. To maximize the endurance of the device (the amount of useful data that can be written to it before one of its cells wears out), flash-based systems move data around in an attempt to reduce the total number of erasures and to level the wear of the different erase blocks. This data movement introduces an interesting online problem called the wear-leveling problem.Wear-leveling algorithms have been used at least since 1993, but they have never been mathematically analyzed. In this article we analyze the two main wear-leveling problems. We show that a simple randomized algorithm for one of them is essentially optimal both in the competitive sense and in the absolute sense (our competitive result relies on an analysis of a nearly-optimal offline algorithm). We show that deterministic algorithms cannot achieve comparable endurance. We also analyze a more difficult problem and show that offline algorithms for it can improve upon naive approaches, but that online algorithms essentially cannot.

Original languageEnglish
Article number23
JournalACM Transactions on Algorithms
Volume7
Issue number2
DOIs
StatePublished - Mar 2011

Keywords

  • Competitive analysis
  • Flash memories
  • Online algorithms
  • Wear leveling

All Science Journal Classification (ASJC) codes

  • Mathematics (miscellaneous)

Fingerprint

Dive into the research topics of 'Competitive analysis of flash memory algorithms'. Together they form a unique fingerprint.

Cite this