La vida de tu SSD depende de él, ¿cómo funciona el Wear Leveling?

La vida de tu SSD depende de él, ¿cómo funciona el Wear Leveling?

Javier López

Los SSD son totalmente distintos a la hora de trabajar que los HDD y aunque su finalidad es la misma, sus pros y contras, así como las técnicas que utilizan no suelen tener nada que ver. En SSD se necesitan una serie de algoritmos específicos que se encarguen de ciertas tareas y que permitan al mismo mantenerse correctamente incluso prolongar su vida útil. De esto precisamente se encarga Wear Leveling (nivelación de desgaste), pero ¿cómo lo hace?

Todo parte de dónde y cómo se guarda la información en un SSD con respecto a un HDD. Como sabemos, este último usa diversos platos magnéticos que mediante varias técnicas graban los datos en su superficie polarizándolos magnéticamente en ceros o unos.

Un SSD guarda la información en chips NAND Flash y por ello, sufre una degradación de los mismos con el paso del tiempo, algo que sería realmente preocupante si no fuera por nuestro protagonista.

SSD Wear Leveling, así logra tu SSD prolongar su vida útil

Wear-Leveling

El mayor problema de los SSD es aumentar la capacidad sin disminuir su vida útil, ganando rendimiento con ello. Por la naturaleza de este tipo de dispositivo los bloques de las NAND Flash con el paso de los ciclos tienen a fallar tras los correspondientes borrados y escrituras.

Esto pasa todos los días sin excepción y es normal que el controlador en algún momento vaya directo a escribir en uno de estos bloques que tienen que ser reasignados. Para evitar que ocurra, los controladores tienen un algoritmo que se encarga de esta tarea de forma eficiente, de manera que no se pierdan o corrompan los datos. Es el llamado Wear Leveling o algoritmo de nivelación del desgaste.

Por norma general, el controlador de un SSD no va a escribir en un bloque ya activo, sino que va repartiendo la información por diversos bloques para así nivelar precisamente su desgaste. Pero, aunque se perfecciona este hecho, lo cierto es que a mayor velocidad aparecen mayor número de posibles fallos y es necesario cada vez más un mejor algoritmo Wear Leveling.

Dos tipos de algoritmos de nivelación de desgaste

SSD+Internal+4_+Wear+Leveling

Partimos de la base de que hay tres tipos de bloques:

  • Los que sufren cambios.
  • Aquellos que no se están utilizando.
  • Los que están estáticos con datos.

Sabiendo esto, los fabricantes trabajan con dos tipos de algoritmos de nivelación: estático y dinámico. El algoritmo con base estática gestiona la escritura en todos los bloques del SSD, lo cual implica que los que sean estáticos con datos válidos se moverán para permitir que todos los bloques reciban la misma cantidad de desgaste.

El algoritmo dinámico solo utiliza los bloques que no se utilizan y aquellos que sufren cambios, esto permite que aquellos estáticos no sufran desgaste alguno y nivela la balanza con los otros dos tipos.

WearLeveling_img1_en

Aunque los dos algoritmos trabajan de forma distinta, en ambos casos se estima donde se moverán los datos, cuántos se moverán y cómo se pueden consolidar los fragmentos para hacer bloques completos. Lógicamente esto puede suponer una sobre escritura si no se hace bien y lograr el efecto contrario a lo que se pretende.

¿Cuál es el impacto que tienen estos algoritmos en la vida útil del SSD? Pues todo depende del algoritmo y la precisión que tenga el fabricante. Este algoritmo trabaja en consonancia con otros como la recolección de basura y determinan también en parte el rendimiento del propio SSD.

Si hace su trabajo realmente bien e iguala el desgaste por bloques, puede prolongar la vida útil del mismo en casi tres veces si lo comparamos con el no incluirlo en el SSD.