
La nivelación de 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 .

La idea que subyace a la nivelación de desgaste es similar a la de cambiar la posición de los neumáticos de un coche , evitando que se aplique una carga repetitiva a la misma rueda. Los algoritmos de nivelación de desgaste distribuyen las escrituras de forma más uniforme por todo el dispositivo, de modo que ningún bloque se utiliza con más frecuencia que otros.
Western Digital ha utilizado el término nivelación de desgaste preventiva (PWL, por sus siglas en inglés) para describir su técnica de preservación empleada en discos duros (HDD) diseñados para almacenar datos de audio y vídeo. [ 2 ] Sin embargo, en el contexto de este artículo, los discos duros generalmente no se consideran dispositivos con nivelación de desgaste.
Razón fundamental
Las memorias EEPROM y flash 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. Esto suele ser de alrededor de 3000/5000 ciclos [ 3 ] [ 4 ] , pero muchos dispositivos flash tienen un bloque con una vida útil especialmente extendida de más de 100 000 ciclos que el controlador de memoria flash puede usar para rastrear el desgaste y el movimiento de datos entre segmentos. Los soportes ópticos borrables como CD-RW y DVD-RW tienen una vida útil de hasta 1000 ciclos (100 000 ciclos para los soportes DVD-RAM ).
La nivelación de desgaste intenta sortear estas limitaciones organizando los datos de manera que los borrados y las reescrituras se distribuyan uniformemente por todo el medio. De esta forma, ningún bloque de borrado individual falla prematuramente debido a una alta concentración de ciclos de escritura. [ 5 ] En la memoria flash, un único bloque del 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 menor probabilidad de que se corrompan. [ 6 ] [ 7 ]
Los sistemas de archivos convencionales como FAT , UFS , HFS / HFS+ , EXT y NTFS fueron diseñados originalmente para discos magnéticos y, por lo tanto, reescriben repetidamente muchas de sus estructuras de datos (como sus directorios) 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 registran las horas de último acceso, lo que puede provocar que los metadatos de los archivos se reescriban constantemente en el mismo lugar. [ 8 ]
Tipos
Existen varios mecanismos de nivelación de desgaste que proporcionan distintos niveles de mejora de la longevidad en dichos sistemas de memoria. [ 9 ] [ 6 ]
Sin nivelación de desgaste
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 (SO) a las direcciones físicas de la memoria flash. Esto significa que cada escritura en un bloque previamente escrito debe primero leerse, borrarse, modificarse y reescribirse en la misma ubicación. Este enfoque consume mucho tiempo y las ubicaciones de escritura frecuente se desgastarán rápidamente, mientras que otras ubicaciones no se utilizarán en absoluto. Una vez que algunos bloques alcanzan el final de su vida útil, dicho dispositivo se vuelve inoperable. [ 9 ]
Nivelación dinámica del desgaste
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 datos no válidos 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 sufren desgaste adicional; de ahí el nombre, que proviene únicamente del reciclaje dinámico de datos. Un dispositivo de este tipo puede durar más que uno sin nivelación de desgaste, pero aún quedan bloques activos aunque el dispositivo ya no funcione. [ 9 ] [ 6 ]
Nivelación de desgaste estático
El otro tipo de nivelación de desgaste se denomina nivelación de desgaste estática, que también utiliza un mapa para vincular el LBA con las direcciones de memoria física. La nivelación de desgaste estática funciona igual que la dinámica, con la diferencia de 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 una SSD continúe funcionando hasta que la mayoría de los bloques estén cerca del final de su vida útil. [ 9 ] [ 6 ]
Nivelación de desgaste global
Tanto la nivelación de desgaste dinámica como la estática se implementan a nivel local. Esto significa que, en un producto multichip, cada chip se gestiona como un recurso independiente. El número de bloques defectuosos en los diferentes chips de una memoria flash NAND varía: un chip determinado podría tener todos sus bloques de datos desgastados, mientras que otro chip del mismo dispositivo podría tener todos sus bloques aún activos. La nivelación de desgaste global resuelve este problema gestionando conjuntamente todos los bloques de todos los chips de la memoria flash, en un único pool. De esta forma, se garantiza que todas las celdas de todos los chips del producto se desgasten de manera uniforme. [ 10 ] [ 11 ]
Comparación
La siguiente tabla compara la nivelación de desgaste estática y dinámica: [ 6 ]
Técnicas
Existen varias técnicas para prolongar la vida útil de los medios de comunicación:
- Se puede guardar una suma de verificación o un código de corrección de errores para cada bloque o sector con el fin de detectar o corregir errores.
- También se puede mantener un grupo de espacio de reserva sobredimensionado . Cuando un bloque o sector falla, las lecturas y escrituras futuras en él se pueden redirigir a un reemplazo en ese grupo.
- Los bloques o sectores del medio se pueden rastrear en una cola de uso menos frecuente (LFU). Las estructuras de datos para la propia cola deben almacenarse fuera del dispositivo o de forma que el espacio que utiliza esté nivelado según el desgaste o, en el caso de la memoria flash, en un bloque con una vida útil especialmente extendida. Sin embargo, los algoritmos de caché habituales están diseñados para gestionar el flujo de datos hacia y desde las cachés basadas en RAM , lo que los hace inadecuados si se utilizan dispositivos de almacenamiento basados en flash , en lugar de dispositivos de almacenamiento basados en RAM, como cachés, ya que las SSD tienen una naturaleza asimétrica : las lecturas suelen ser mucho más rápidas que las escrituras, y las operaciones de borrado solo se pueden realizar de un "bloque" a la vez. [ 13 ]
- Recogida de basura
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 de desgaste es transparente y se puede utilizar un sistema de archivos convencional como FAT sin modificaciones.
La nivelación de desgaste también puede implementarse mediante software con sistemas de archivos especializados como JFFS2 y YAFFS en memorias flash o UDF en memorias ópticas. Los tres son sistemas de archivos con estructura de registro, ya que tratan sus medios como registros circulares y escriben en ellos en pasadas secuenciales. Los sistemas de archivos que implementan estrategias de copia en escritura , como ZFS , btrfs y APFS , también implementan alguna forma de nivelación de desgaste.
Véase también
Referencias
- ↑ Patente estadounidense 6,850,443 Técnicas de nivelación de desgaste para sistemas de memoria flash.
- ↑ "Información del producto de disco duro AV de Western Digital" . Western Digital. Archivado del original el 2 de enero de 2010. Consultado el 1 de junio de 2010 .
- ↑ "¿Quieres comprar un SSD? Lee esto primero" . Hardware Canucks . 10 de enero de 2011.
- ↑ "Las SSD migran a la memoria NAND de 25 nm: lo que necesitas saber | StorageReview.com - Reseñas de almacenamiento" . www.storagereview.com . 12 de febrero de 2011. Archivado del original el 5 de diciembre de 2019. Consultado el 5 de diciembre de 2019 .
- ↑ "Algoritmos y estructuras de datos para memorias flash", E. Gal y S. Toledo, ACM Computing Surveys, 2005
- 1 2 3 4 5 "Nivelación de desgaste y vida útil de la memoria flash USB" (PDF) . Corsair . Junio de 2007. Archivado del original (PDF) el 13 de octubre de 2007. Recuperado el 27 de julio de 2013 .
- ↑ Arnd Bergmann (18 de febrero de 2011). "Optimización de Linux con unidades flash económicas" . LWN.net . Consultado el 3 de octubre de 2013 .
- ↑ Jonathan Corbet (8 de agosto de 2007). "Érase una vez" . LWN.net . Consultado el 21 de enero de 2014 .
- 1 2 3 4 5 Perdue, Ken (30 de abril de 2010). "Nota de aplicación de nivelación de desgaste" (PDF) . Spansion . Archivado del original (PDF) el 7 de junio de 2011. Recuperado el 12 de agosto de 2010 .
- ↑ "Nivelación de desgaste" . Transcend . Consultado el 20 de noviembre de 2019 .
- ↑ "Nivelación de desgaste: estática, dinámica y global" (PDF) . Cactus : 5. Consultado el 20 de noviembre de 2019 .
- 1 2 "Tarjetas de memoria SD industriales Swissbit" . Mouser Electronics . Consultado el 21 de abril de 2017 .
- ↑ Qing Yang (25 de febrero de 2012). "Por qué los algoritmos de caché estándar no funcionan para las unidades SSD" . velobit.com. Archivado del original el 2 de diciembre de 2013. Consultado el 26 de noviembre de 2013 .
Enlaces externos
- Unidades SSD de memoria flash : ¿ tecnología inferior o estrella oculta? , bitmicro.com, archivado del original el 2 de febrero de 2007.
- Memoria de computadora
- Memoria no volátil
- Sistemas de archivos flash
- Almacenamiento informático de estado sólido
- Tecnología de equilibrio