Algorithms and data structures for flash memories

Eran Gal, Sivan Toledo

Research output: Contribution to journalReview articlepeer-review


Flash memory is a type of electrically-erasable programmable read-only memory (EEPROM). Because flash memories are nonvolatile and relatively dense, they are now used to store files and other persistent objects in handheld computers, mobile phones, digital cameras, portable music players, and many other computer systems in which magnetic disks are inappropriate. Flash, like earlier EEPROM devices, suffers from two limitations. First, bits can only be cleared by erasing a large block of memory. Second, each block can only sustain a limited number of erasures, after which it can no longer reliably store data. Due to these limitations, sophisticated data structures and algorithms are required to effectively use flash memories. These algorithms and data structures support efficient not-in-place updates of data, reduce the number of erasures, and level the wear of the blocks in the device. This survey presents these algorithms and data structures, many of which have only been described in patents until now.

Original languageEnglish
Pages (from-to)138-163
Number of pages26
JournalACM Computing Surveys
Issue number2
StatePublished - Jun 2005


  • EEPROM memory
  • Flash memory
  • Wear leveling


Dive into the research topics of 'Algorithms and data structures for flash memories'. Together they form a unique fingerprint.

Cite this