Algorithms and data structures for flash memories

被引:370
作者
Gal, E [1 ]
Toledo, S [1 ]
机构
[1] Tel Aviv Univ, Sch Comp Sci, IL-69978 Tel Aviv, Israel
关键词
algorithms; performance; reliability; flash memory; EEPROM memory; wear leveling;
D O I
10.1145/1089733.1089735
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
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.
引用
收藏
页码:138 / 163
页数:26
相关论文
共 38 条
[1]  
*AL ON, 2002, YAFFS YET FLASH FIL
[2]  
ASSAR M, 1995, Patent No. 547968
[3]  
Assar Mahmud, 1995, United States Patent, Patent No. [5,388,083, 5388083]
[4]  
Assar Mahmud, 1996, United States Patent, Patent No. [5,485,595, 5485595]
[5]  
Ban A., 2004, Google Patents. US Patent, Patent No. [6,732,221, 6732221]
[6]  
Ban A., 1999, United States Patent, Patent No. [5,937,425, 5937425]
[7]  
Ban Amir, 1995, United States Patent, Patent No. [5,404,485, 5404485]
[8]  
BARRETT P. L., 1995, US Patent, Patent No. 5392427
[9]  
Chang L.-P., 2004, ACM Trans. on Embedded Computing Syst, V3, P837
[10]   Cleaning policies in mobile computers using flash memory [J].
Chiang, ML ;
Chang, RC .
JOURNAL OF SYSTEMS AND SOFTWARE, 1999, 48 (03) :213-231