¿Por qué fallan los discos SSD?

pqi_64gb_ssd.jpgSe ha observado que los portátiles basados en discos SSD presentan una tasa de devoluciones muy elevada, de un 20% a un 30%. Las devoluciones se deben tanto a averías (los discos sólidos parecen ser mucho mas propensos a estropearse que los convencionales) como a bajo rendimiento; aunque su velocidad de transferencia es muy alta, las aplicaciones que mueven bloques de datos pequeños (un lector de correo electrónico, por ejemplo) son mas lentas que con un disco convencional. ¿A qué se deben estos fallos? La respuesta trivial es que se trata de una tencología nueva, así que es lógico que haya problemas. Lamentablemente, esto no es así; aunque es verdad que los discos sólidos son algo nuevo, la tecnología en la que se basan, los chips de memoria flash, lleva bastantes años en el mercado bajo la forma de tarjetas de memoria para cámaras de fotos y reproductores multimedia. ¿A qué se deben entonces estos fallos?

La respuesta hay que buscarla en la propia manera como funcionan las memorias flash; estos componentes presentan unas limitaciones que en sus aplicaciones tradicionales (sistema de almacenamiento para dispositivos móviles) no presenta problemas, pero que en este nuevo entorno sí resultan problemáticas.

Para ser mas precisos, las memorias flash presentan unas limitaciones muy importantes:

  • Numero limitado de borrados: En los chips de memoria flash el borrado de una celda de memoria requiere una descarga eléctrica de una tensión relativamente elevada; esto hace que, con cada operación de borrado, la celda se deteriore hasta quedar inutilizada. En la práctica, el número total de borrados ronda el millón. En las aplicaciones habituales de las memorias flash (cámaras fotográficas o reproductores multimedia) llevará años realizar un número tan elevado de borrados, pero en un ordenador personal, donde el disco duro está trabajando de forma casi continua, esta cifra se puede alcanzar en muy poco tiempo.
  • El borrado es una operación peligrosa: La naturaleza destructiva de las operaciones de borrado hace la fiabilidad de estos componentes sea muy inferior a la de un disco duro convencional. No es solo que un borrado pueda destruir las celdas afectadas, es que el deterioro que sufren hace que sus probabilidades de fallar en el momento de realizar una operación de lectura o escritura vayan aumentando con el tiempo.
  • El borrado se ha de hacer por páginas: En los circuitos flash las celdas de memoria están agrupadas por sectores de 512 bytes (como en las unidades de disco), y estos sectores a su vez se agrupan en páginas de un tamaño relativamente grande, del orden de 128kb o 256Kb. Las operaciones de lectura o escritura se hacen por sectores, pero el borrado se hace por páginas; es decir, cada orden de borrado supone limpiar 256 o 512 sectores del disco.

Despues de leer estas limitaciones queda claro por qué la tasa de fallos es tan alta; simplemente, la fiabilidad de estos componentes es mucho menor que la de un disco duro convencional. Ahora queda explicar el problema del bajo rendimiento; si siempre se nos ha dicho que las memorias flash tienen unos tiempos de acceso muchísimo menores que un disco duro, ¿Como es posible que los discos SSD sean mas lentos que los convencionales?

De lo dicho anteriormente se desprende que el controlador de memoria flash debe estar programado para reducir al mínimo el número de borrados, algo que no es nada fácil si pensamos en el hecho de que los sectores no se pueden borrar individualmente. Es decir, si queremos borrar un sector no podemos aplicar la solución obvia: Leer la página, borrar la página, reescribir la página pero sin el sector que queríamos eliminar. Hacer esto supondría inutilizar el disco en muy poco tiempo.

La solución es trabajar mediante transacciones; es decir, cuando el sistema ordena borrar un sector la operación no se ejecuta físicamente, sino que se escribe una anotación en el disco indicando que se ha dado esta orden. Cuando se ordena una operación de escritura que, para ejecutarse, necesita borrar datos (vamos a sobreescribir un sector)  se procede de la misma manera. Esto significa que el disco se va llenando con una lista de operaciones a realizar y, cuando el espacio libre empieza a escasear, se ejecuta la transacción; es decir, todas las operaciones de borrado y sobreescritura pendientes se ejecutan en bloque y el espacio extra se libera.

Trabajar de esta forma no tiene ningún efecto negativo si el trabajo que hace el disco consiste en leer o escribir archivos de gran tamaño; casualmente, así es como trabajan los reproductores multimedia y cámaras de fotos, que es la aplicación habitual de las memorias flash. El problema es que los PCs no trabajan así; en los ordenadores lo habitual es que se lean y escriban bloques de datos de pequeño tamaño de forma casi continua. Un buen ejemplo son los programas de correo electrónico; cada vez que llega un correo nuevo hay que grabarlo en el disco, en el momento en que lo leemos hay que escribir la marca de leído, … cada operación que hacemos con nuestro programa implica escribir en el disco una cantidad muy pequeña de información.

Resumiendo, un programa de correo electrónico genera una carga enorme de trabajo sobre el controlador de nuestro disco SSD; eso explica porque estos discos pueden llegar a ser mucho mas lentos que los convencionales.

Fuente: Teleobjetivo