본문 바로가기

Job Notes/File System

Algorithms and Data Structures for Flash Memories


Algorithms and Data Structures for Flash Memories


ERAN GAL and SIVAN TOLEDO
School of Computer Science, Tel-Aviv University

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.

Categories and Subject Descriptors: D.4.2 [Operating Systems]: Storage Management—Allocation/deallocation strategies; garbage collection; secondary storage; D.4.3 [Operating Systems]: File Systems Management—Acess methods; File organization; E.1 [Data Structures]: Arrays; Lists; Trees; E.2 [Data Storage Representations]: Linked representations; E.5 [Files]: Organizagtion/structure