Nivelación del desgaste

Principio de funcionamiento de determinados medios de almacenamiento

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.

Razón fundamental

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]

Tipos

Hay tres tipos básicos de mecanismos de nivelación de desgaste utilizados en dispositivos de almacenamiento de memoria flash: [2]

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 (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]

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 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]

Nivelación de desgaste estático

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]

Nivelación global del desgaste

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]

Comparación

La siguiente tabla compara la nivelación del desgaste estático y dinámico: [3]

ArtículoEstáticoDinámica
ResistenciaMayor esperanza de vidaEsperanza de vida más corta
ActuaciónMás lentoMás rápido
Complejidad del diseñoMás complejoMenos complejo
Uso típicoSSD, [2]
unidades flash de grado industrial [12]
Unidades flash de consumo

Técnicas

Existen varias técnicas para prolongar la vida útil de los medios:

  • Se puede mantener una suma de comprobación o un código de corrección de errores para cada bloque o sector con el fin de detectar errores o corregirlos.
  • También se puede mantener un grupo de espacio de reserva. Cuando un bloque o sector falla, las futuras operaciones de lectura y escritura en él se pueden redirigir a un reemplazo en ese grupo.
  • Los bloques o sectores de los medios pueden rastrearse en una cola de uso menos frecuente (LFU). Las estructuras de datos de la cola en sí deben almacenarse fuera del dispositivo o de tal manera que el espacio que utiliza esté nivelado por el desgaste o, en el caso de la memoria flash, en un bloque con una vida útil especialmente prolongada. Sin embargo, los algoritmos de caché habituales están diseñados para gestionar el flujo de datos que entra y sale de las cachés basadas en RAM , lo que los hace no directamente adecuados para los dispositivos de almacenamiento basados ​​en flash, ya que 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 un "bloque" a la vez. [13]
  • Recolección 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 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.

Véase también

Referencias

  1. ^ Patente de EE. UU. 6.850.443 Técnicas de nivelación de desgaste para sistemas de memoria flash.
  2. ^ abcdef Perdue, Ken (30 de abril de 2010). "Nota de aplicación de nivelación de desgaste" (PDF) . Spansion . Archivado desde el original (PDF) el 7 de junio de 2011 . Consultado el 12 de agosto de 2010 .
  3. ^ abcde "Nivelación de desgaste y vida útil de las memorias USB" (PDF) . Corsair . Junio ​​de 2007. Archivado desde el original (PDF) el 13 de octubre de 2007 . Consultado el 27 de julio de 2013 .
  4. ^ "Información del producto de disco duro Western Digital AV". Western Digital. Archivado desde el original el 2010-01-02 . Consultado el 2010-06-01 .
  5. ^ "¿Entonces quieres comprar un SSD? Lee esto primero". Hardware Canucks . 10 de enero de 2011.
  6. ^ "Las unidades SSD pasan a NAND de 25 nm: lo que necesita saber | StorageReview.com - Reseñas de almacenamiento" www.storagereview.com . 12 de febrero de 2011. Archivado desde el original el 5 de diciembre de 2019 . Consultado el 5 de diciembre de 2019 .
  7. ^ "Algoritmos y estructuras de datos para memorias flash", E. Gal y S. Toledo, ACM Computing Surveys, 2005
  8. ^ 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 .
  9. ^ Jonathan Corbet (8 de agosto de 2007). "Érase una vez". LWN.net . Consultado el 21 de enero de 2014 .
  10. ^ "Nivelación del desgaste". Transcend . Consultado el 20 de noviembre de 2019 .
  11. ^ "Nivelación del desgaste: estática, dinámica y global" (PDF) . Cactus : 5 . Consultado el 20 de noviembre de 2019 .
  12. ^ ab "Tarjetas de memoria SD industriales Swissbit". Mouser Electronics . Consultado el 21 de abril de 2017 .
  13. ^ Qing Yang (25 de febrero de 2012). "Por qué los algoritmos de caché estándar no funcionan con los SSD". velobit.com . Consultado el 26 de noviembre de 2013 .
  • SSD flash: ¿tecnología inferior o superestrella oculta?, bitmicro.com, archivado desde el original el 2 de febrero de 2007
Obtenido de "https://es.wikipedia.org/w/index.php?title=Nivelación_del_desgaste&oldid=1224768092"