# Anivellament de desgast

L'anivellament de desgast (també escrit com a nivell de desgast) és una tècnica per allargar la vida útil d'alguns tipus de suports d'emmagatzematge d'ordinador esborrables, com la memòria flash, que s'utilitza en unitats d'estat sòlid (SSD) i unitats flash USB, i memòria de canvi de fase. Hi ha diversos mecanismes d'anivellament del desgast que proporcionen diferents nivells de millora de la longevitat en aquests sistemes de memòria.
Western Digital ha utilitzat el terme nivell de desgast preventiu (PWL) per descriure la seva tècnica de preservació utilitzada en discs durs (HDD) dissenyats per emmagatzemar dades d'àudio i vídeo. Tanmateix, els HDD generalment no són dispositius amb nivell de desgast en el context d'aquest article.

## Justificació

L'EEPROM i els mitjans de memòria flash tenen segments esborrables individualment, cadascun dels quals es pot sotmetre a un nombre limitat de cicles d'esborrat abans de ser poc fiables. Això sol ser d'uns 3.000/5.000 cicles però molts dispositius flash tenen un bloc amb una vida especialment ampliada de més de 100.000 cicles que pot ser utilitzat pel controlador de memòria Flash per fer un seguiment del desgast i el moviment de dades entre segments. Els suports òptics esborrables com ara CD-RW i DVD-RW tenen una capacitat de fins a 1.000 cicles (100.000 cicles per a suports DVD-RAM).
L'anivellament del desgast intenta evitar aquestes limitacions organitzant les dades de manera que els esborrats i les reescriptures es distribueixin uniformement pel mitjà. D'aquesta manera, cap bloc d'esborrat no falla prematurament a causa d'una gran concentració de cicles d'escriptura. A la memòria flaix, un únic bloc del xip està dissenyat per a una vida més llarga que els altres, de manera que el controlador de memòria pugui emmagatzemar dades operatives amb menys possibilitats de corrupció.
Els sistemes de fitxers convencionals com FAT, UFS, HFS / HFS+, EXT i NTFS es van dissenyar originalment per a discs magnètics i, com a tal, reescriuen moltes de les seves estructures de dades (com ara els seus directoris) repetidament a la mateixa àrea. Quan aquests sistemes s'utilitzen en suports de memòria flash, això es converteix en un problema. El problema s'agreuja pel fet que alguns sistemes de fitxers fan un seguiment dels temps d'últim accés, cosa que pot provocar que les metadades dels fitxers es tornin a escriure constantment al seu lloc.

## Tipus

Hi ha tres tipus bàsics de mecanismes d'anivellament de desgast utilitzats en dispositius d'emmagatzematge de memòria flash:

### Sense anivellament de desgast

Un sistema d'emmagatzematge de memòria flaix sense nivell de desgast no durarà gaire si les dades s'escriuen al flaix. Sense l'anivellament del desgast, el controlador de flaix subjacent ha d'assignar permanentment les adreces lògiques del sistema operatiu (SO) a les adreces físiques de la memòria flaix. Això vol dir que cada escriptura en un bloc escrit prèviament s'ha de llegir, esborrar, modificar i tornar a escriure a la mateixa ubicació. Aquest enfocament requereix molt de temps i les ubicacions escrites amb freqüència es desgastaran ràpidament, mentre que altres ubicacions no s'utilitzaran en absolut. Un cop uns quants blocs arriben al final de la seva vida útil, aquest dispositiu es torna inoperable.

### Anivellació dinàmica del desgast

El primer tipus d'anivellament de desgast s'anomena anivellació de desgast dinàmic i utilitza un mapa per enllaçar adreces de blocs lògics (LBA) del sistema operatiu a la memòria flash física. Cada vegada que el sistema operatiu escriu dades de substitució, el mapa s'actualitza de manera que el bloc físic original es marca com a dades no vàlides i s'enllaça un bloc nou a aquesta entrada del mapa. Cada vegada que un bloc de dades es torna a escriure a la memòria flaix, s'escriu en una nova ubicació. Tanmateix, els blocs de memòria flaix que mai reben dades de reemplaçament no patirien desgast addicional, per la qual cosa el nom prové només de les dades dinàmiques que es reciclen. Aquest dispositiu pot durar més d'un sense anivellament de desgast, però encara hi ha blocs que romanen actius tot i que el dispositiu ja no funciona.

### Nivell de desgast estàtic

L'altre tipus d'anivellament de desgast s'anomena anivellació de desgast estàtic que també utilitza un mapa per enllaçar l'LBA amb adreces de memòria física. L'anivellament de desgast estàtic funciona igual que l'anivellament de desgast dinàmic, excepte que els blocs estàtics que no canvien es mouen periòdicament perquè aquestes cel·les de baix ús puguin ser utilitzades per altres dades. Aquest efecte de rotació permet que un SSD continuï funcionant fins que la majoria dels blocs estiguin prop del seu final de vida.

### Nivell de desgast global

Tant l'anivellament de desgast dinàmic com estàtic s'implementa a nivell local. Això simplement vol dir que en un producte multixip, cada xip es gestiona com un sol recurs. El nombre de blocs defectuosos en diferents xips dins d'una memòria flaix NAND varia: un xip determinat podria tenir tots els seus blocs de dades desgastats mentre que un altre xip del mateix dispositiu podria tenir tots els seus blocs encara actius. L'anivellament global del desgast soluciona aquest problema gestionant tots els blocs de tots els xips de la memòria flash junts, en un sol grup. Assegura que totes les cèl·lules de tots els xips del producte estiguin desgastades de manera uniforme.

### Comparació

La taula següent compara l'anivellament de desgast estàtic i dinàmic:
| Article | Estàtica | Dinàmic |
| Resistència | Esperança de vida més llarga | Esperança de vida més curta |
| Rendiment | Més lent | Més ràpid |
| Complexitat del disseny | Més complex | Menys complex |
| Ús típic | SSD, unitats flash de qualitat industrial | Unitats flash per a consumidors |

### Tècniques

Hi ha diverses tècniques per allargar la vida dels mitjans:
* Es pot conservar una suma de verificació o un codi de correcció d'errors per a cada bloc o sector per tal de detectar errors o corregir-los.
* També es pot mantenir una reserva d'espai. Quan un bloc o sector falla, les futures lectures i escriptures es poden redirigir a un substitut d'aquest grup.
* Els blocs o sectors dels mitjans es poden fer un seguiment en una cua d'ús menys freqüent (LFU). Les estructures de dades de la pròpia cua s'han d'emmagatzemar fora del dispositiu o de tal manera que l'espai que utilitza estigui en si mateix nivell de desgast o, en el cas de la memòria flaix, en un bloc amb una vida especialment allargada. Tanmateix, els algorismes de memòria cau habituals estan dissenyats per gestionar el flux de dades dins i fora de les memòries cau basades en RAM, per la qual cosa no són directament adequats per a dispositius d'emmagatzematge basats en flash, ja que tenen una naturalesa asimètrica. – les lectures solen ser molt més ràpides que les escriptures, i les operacions d'esborrat només es poden realitzar un "bloc" alhora.
* Recollida d'escombraries
A les targetes Secure Digital i les unitats flash USB, les tècniques s'implementen al maquinari mitjançant un microcontrolador integrat. En aquests dispositius, l'anivellament del desgast és transparent i el sistema de fitxers convencional com FAT es pot utilitzar en ells tal qual.

## Referències

* ↑ Perdue, Ken. «Wear Leveling Application Note» (en anglès). Spansion, 30-04-2010. Arxivat de l'original el 2011-06-07. [Consulta: 12 agost 2010].
* ↑ «USB Flash Wear-Leveling and Life Span» (en anglès). Corsair, 01-06-2007. Arxivat de l'original el 13 octubre 2007. [Consulta: 27 juliol 2013].
* ↑ «Western Digital AV Hard Drive Product Information» (en anglès). Western Digital. Arxivat de l'original el 2010-01-02. [Consulta: 1r juny 2010].
* ↑ «So you wanna buy a SSD? Read this first.» (en anglès). Hardware Canucks.
* ↑ «SSDs Shifting to 25nm NAND - What You Need to Know | StorageReview.com - Storage Reviews» (en anglès). www.storagereview.com, 12-02-2011. Arxivat de l'original el 5 desembre 2019. [Consulta: 5 desembre 2019].
* ↑ «USB Flash Wear-Leveling and Life Span» (en anglès). Corsair, 01-06-2007. Arxivat de l'original el 13 octubre 2007. [Consulta: 27 juliol 2013].
* ↑ Arnd Bergmann. «Optimizing Linux with cheap flash drives» (en anglès). LWN.net, 18-02-2011. [Consulta: 3 octubre 2013].
* ↑ Jonathan Corbet. «Once upon atime» (en anglès). LWN.net, 08-08-2007. [Consulta: 21 gener 2014].
* ↑ Perdue, Ken. «Wear Leveling Application Note» (en anglès). Spansion, 30-04-2010. Arxivat de l'original el 2011-06-07. [Consulta: 12 agost 2010].
* ↑ Perdue, Ken. «Wear Leveling Application Note» (en anglès). Spansion, 30-04-2010. Arxivat de l'original el 2011-06-07. [Consulta: 12 agost 2010].
* ↑ Perdue, Ken. «Wear Leveling Application Note» (en anglès). Spansion, 30-04-2010. Arxivat de l'original el 2011-06-07. [Consulta: 12 agost 2010].
* ↑ «USB Flash Wear-Leveling and Life Span» (en anglès). Corsair, 01-06-2007. Arxivat de l'original el 13 octubre 2007. [Consulta: 27 juliol 2013].
* ↑ Perdue, Ken. «Wear Leveling Application Note» (en anglès). Spansion, 30-04-2010. Arxivat de l'original el 2011-06-07. [Consulta: 12 agost 2010].
* ↑ «USB Flash Wear-Leveling and Life Span» (en anglès). Corsair, 01-06-2007. Arxivat de l'original el 13 octubre 2007. [Consulta: 27 juliol 2013].
* ↑ «Wear Leveling» (en anglès). Transcend. Transcend. [Consulta: 20 novembre 2019].
* ↑ "Wear Leveling – Static, Dynamic and Global", pàg. 5 [Consulta: 20 novembre 2019].
* ↑ «USB Flash Wear-Leveling and Life Span» (en anglès). Corsair, 01-06-2007. Arxivat de l'original el 13 octubre 2007. [Consulta: 27 juliol 2013].
* ↑ Perdue, Ken. «Wear Leveling Application Note» (en anglès). Spansion, 30-04-2010. Arxivat de l'original el 2011-06-07. [Consulta: 12 agost 2010].
* ↑ «Swissbit Industrial SD Memory Cards» (en anglès). Mouser Electronics. [Consulta: 21 abril 2017].
* ↑ «Swissbit Industrial SD Memory Cards» (en anglès). Mouser Electronics. [Consulta: 21 abril 2017].