|
Wear levelling (also written wear leveling) is a techniqueU.S. Patent 6,850,443 Wear leveling techniques for flash EEPROM systems. for prolonging the service life of some kinds of erasable computer storage media, such as flash memory.
The term has also been used by Western Digital to describe their hard disk preservation technique, but hard disks are not generally wear-levelled devices.
Contents |
EEPROM and flash memory media have individually erasable segments, each of which can be put through a finite number of erase cycles before becoming unreliable. This can be anywhere between 10,000 and 1,000,000 cycles[citation needed], for example, for NAND flash devices. Erasable optical media such as CD-RW and DVD-RW are rated at up to 1,000 cycles (100,000 cycles for DVD-RAM media).
Wear-levelling attempts to work around these limitations by arranging data so that erasures and re-writes are distributed evenly across the medium. In this way, no single sector prematurely fails due to a high concentration of write cycles.
Conventional file systems like FAT, ext2 and NTFS were originally designed for magnetic disks and as such rewrite many of their data structures (such as their directories) repeatedly in place. Some file systems aggravate the problem by tracking last-access times, which can lead to file metadata being constantly rewritten in-place.
There are several techniques for extending the life of the media:
On flash memory devices, such as CompactFlash and Secure Digital cards, these techniques are implemented in hardware by a built-in microcontroller. On such devices, wear-levelling is transparent and most conventional file systems can be used as-is on them.
Wear-levelling can also be implemented in software by special-purpose file systems such as JFFS2 and YAFFS on flash media or UDF on optical media. All three are log-structured filesystems in that they treat their media as circular logs and write to them in sequential passes.
Some storage interfaces do not in themselves perform wear levelling.[citation needed]
This article is licensed under the GNU Free Documentation License. It uses material from Wikipedia