La nivelación del desgaste (también escrita como nivelación de desgaste ) es una técnica [1] para prolongar la vida útil de algunos tipos de medios de almacenamiento informático borrables , como la memoria flash , que se utiliza en unidades de estado sólido (SSD) y unidades flash USB , y la memoria de cambio de fase . Existen varios mecanismos de nivelación del desgaste que proporcionan distintos niveles de mejora de la longevidad en dichos sistemas de memoria. [2] [3]
Western Digital ha utilizado el término nivelación de desgaste preventivo (PWL) para describir su técnica de conservación utilizada en unidades de disco duro (HDD) diseñadas para almacenar datos de audio y vídeo. [4] Sin embargo, los HDD generalmente no son dispositivos con nivelación de desgaste en el contexto de este artículo.
Los medios de memoria flash y EEPROM tienen segmentos borrables individualmente, cada uno de los cuales puede someterse a un número limitado de ciclos de borrado antes de volverse poco fiable. Por lo general, esto es alrededor de 3000/5000 ciclos [5] [6], pero muchos dispositivos flash tienen un bloque con una vida útil especialmente extendida de más de 100 000 ciclos que puede ser utilizada por el controlador de memoria flash para rastrear el desgaste y el movimiento de datos entre segmentos. Los medios ópticos borrables , como CD-RW y DVD-RW, tienen una capacidad nominal de hasta 1000 ciclos (100 000 ciclos para medios DVD-RAM ).
La nivelación del desgaste intenta evitar estas limitaciones organizando los datos de modo que los borrados y las reescrituras se distribuyan de manera uniforme en todo el medio. De esta manera, ningún bloque de borrado falla prematuramente debido a una alta concentración de ciclos de escritura. [7] En la memoria flash, un solo bloque en el chip está diseñado para una vida útil más larga que los demás, de modo que el controlador de memoria pueda almacenar datos operativos con menos posibilidades de que se corrompan. [3] [8]
Los sistemas de archivos convencionales como FAT , UFS , HFS / HFS+ , EXT y NTFS fueron diseñados originalmente para discos magnéticos y, como tales, reescriben muchas de sus estructuras de datos (como sus directorios) repetidamente en la misma área. Cuando estos sistemas se utilizan en medios de memoria flash, esto se convierte en un problema. El problema se agrava por el hecho de que algunos sistemas de archivos rastrean los tiempos del último acceso, lo que puede provocar que los metadatos de los archivos se reescriban constantemente en el lugar. [9]
Hay tres tipos básicos de mecanismos de nivelación de desgaste utilizados en dispositivos de almacenamiento de memoria flash: [2]
Un sistema de almacenamiento de memoria flash sin nivelación de desgaste no durará mucho si se escriben datos en la memoria flash. Sin nivelación de desgaste, el controlador de memoria flash subyacente debe asignar permanentemente las direcciones lógicas del sistema operativo (OS) a las direcciones físicas de la memoria flash. Esto significa que cada escritura en un bloque previamente escrito debe leerse, borrarse, modificarse y reescribirse primero en la misma ubicación. Este enfoque requiere mucho tiempo y las ubicaciones en las que se escribe con frecuencia se desgastarán rápidamente, mientras que otras ubicaciones no se utilizarán en absoluto. Una vez que algunos bloques llegan al final de su vida útil, un dispositivo de este tipo deja de funcionar. [2]
El primer tipo de nivelación de desgaste se denomina nivelación de desgaste dinámica y utiliza un mapa para vincular las direcciones de bloques lógicos (LBA) del sistema operativo a la memoria flash física. Cada vez que el sistema operativo escribe datos de reemplazo, el mapa se actualiza de modo que el bloque físico original se marca como dato no válido y se vincula un nuevo bloque a esa entrada del mapa. Cada vez que se reescribe un bloque de datos en la memoria flash, se escribe en una nueva ubicación. Sin embargo, los bloques de memoria flash que nunca reciben datos de reemplazo no sufrirían desgaste adicional, por lo que el nombre proviene únicamente de los datos dinámicos que se reciclan. Un dispositivo de este tipo puede durar más que uno sin nivelación de desgaste, pero hay bloques que siguen estando activos aunque el dispositivo ya no esté operativo. [2] [3]
El otro tipo de nivelación del desgaste se denomina nivelación del desgaste estático , que también utiliza un mapa para vincular la LBA a las direcciones de memoria física. La nivelación del desgaste estático funciona de la misma manera que la nivelación del desgaste dinámico, excepto que los bloques estáticos que no cambian se mueven periódicamente para que estas celdas de bajo uso puedan ser utilizadas por otros datos. Este efecto rotacional permite que un SSD continúe funcionando hasta que la mayoría de los bloques estén cerca del final de su vida útil. [2] [3]
Tanto la nivelación de desgaste dinámica como la estática se implementan a nivel local. Esto simplemente significa que en un producto de múltiples chips, cada chip se administra como un único recurso. La cantidad de bloques defectuosos en diferentes chips dentro de una memoria flash NAND varía: un chip determinado podría tener todos sus bloques de datos desgastados mientras que otro chip en el mismo dispositivo podría tener todos sus bloques aún activos. La nivelación de desgaste global aborda este problema al administrar todos los bloques de todos los chips en la memoria flash juntos, en un solo grupo. Garantiza que todas las celdas en todos los chips dentro del producto se desgasten de manera uniforme. [10] [11]
La siguiente tabla compara la nivelación del desgaste estático y dinámico: [3]
Existen varias técnicas para prolongar la vida útil de los medios:
En las tarjetas Secure Digital y las unidades flash USB , [12] las técnicas se implementan en hardware mediante un microcontrolador integrado . En estos dispositivos, la nivelación del desgaste es transparente y se puede utilizar en ellos un sistema de archivos convencional como FAT tal como está.
La nivelación del desgaste también se puede implementar en software mediante sistemas de archivos de propósito especial, como JFFS2 y YAFFS en medios flash o UDF en medios ópticos. Los tres son sistemas de archivos estructurados en forma de registro , ya que tratan sus medios como registros circulares y escriben en ellos en pases secuenciales. Los sistemas de archivos que implementan estrategias de copia en escritura , como ZFS , también implementan una forma de nivelación del desgaste.