- Wear levelling
Wear levelling (also written wear leveling) is a techniqueUS patent|6850443 Wear leveling techniques for flash EEPROM systems.] for prolonging the
service life of some kinds of erasablecomputer storage media, such asflash memory .The term has also been used by
Western Digital to describe theirhard disk preservation technique, buthard disk s are not generally wear-levelled devices.Rationale
EEPROM and flash memory media have individually erasable segments, each of which can be put through a limited number of erase cycles before becoming unreliable. This can be anywhere between 10,000 and 1,000,000 cycles [http://www2.electronicproducts.com/NAND_vs_NOR_flash_technology-article-FEBMSY1-FEB2002.aspx] , for example, for NAND flash devices. Erasable optical media such asCD-RW andDVD-RW are rated at up to 1,000 cycles (100,000 cycles forDVD-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 [http://www.corsairmemory.com/_faq/FAQ_flash_drive_wear_leveling.pdf] . In this way, no single erase block prematurely fails due to a high concentration of write cycles.
Conventional
file system s like FAT, UFS,ext2 andNTFS 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 filemetadata being constantly rewritten in-place.Techniques
There are several techniques for extending the life of the media:
* A checksum or error-correcting code can be kept for block or sector in order to detect errors or correct errors.
* A pool of reserve space can also be kept. When a block or sector does fail, future reads and writes to it can be redirected to a replacement in that pool.
* Blocks or sectors on the media can be tracked in a least recently used queue of some sort. The data structures for the queue itself must either be stored off-device or in such a way that the space it uses is itself wear-levelled.On most flash memory devices, such as
CompactFlash and Secure Digital cards, these techniques are implemented in hardware by a built-inmicrocontroller . 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 andYAFFS on flash media or UDF on optical media. All three arelog-structured filesystem s in that they treat their media as circular logs and write to them in sequential passes. File systems which implementCopy-on-write strategies, such asZFS , also implement a form of wear-levelling.References
External links
* [http://www.bitmicro.com/press_resources_flash_ssd.php Flash SSD wear-leveling and error-correction description by BiTMICRO.]
* [http://www.corsairmemory.com/_faq/FAQ_flash_drive_wear_leveling.pdf USB Flash wear leveling and life span] by Corsair
* [http://www.sandisk.com/Assets/File/OEM/WhitePapersAndBrochures/RS-MMC/WPaperWearLevelv1.0.pdf Flash Memory Cards Wear Leveling] White Paper by Sandisk.
* [http://www.eettaiwan.com/STATIC/PDF/200808/EETOL_2008IIC_Spansion_AN_13.pdf Wear Leveling] Application Note by Spansion
Wikimedia Foundation. 2010.