Teleobjetivo Imagen de Cabecera

¿Por que fallan los discos SSD?

19 de Marzo de 2008 · 17 Comentarios

Leo en abadiadigital que, en los portátiles con discos sólidos, la tasa de devoluciones se encuentra entre el 20% y el 30%. La mayoría de las devoluciones se deben a fallos en las unidades de disco, pero también se están produciendo muchas devoluciones porque el rendimiento de estas unidades es inferior al de un disco duro normal. ¿Por que esta ocurriendo todo esto?

La explicación rápida es que estamos ante una tecnología nueva y, en consecuencia, todavía requiere afinarla; la explicación completa hay que buscarla en la forma como funcionan los chips de memoria flash, el componente en el que están basados este tipo de unidades.

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 porque 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.

En resumen, que 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.

Etiquetas: Tecnologia

17 respuestas ↓

  • 1 Diego // 19 de Marzo de 2008 a la(s) 11:15 pm

    Muy importante información.

    Los discos SSD sucks.

  • 2 ErPaquillo // 23 de Marzo de 2008 a la(s) 5:07 am

    Esto es como todo… Por eso yo prefiero las cámaras de vídeo en formato MiniDV antes que en DVD o disco duro. Lo más mejor es la cinta digital…

    Vamos a echarle huevos y a cargar un windows con un BLOAD¨¨,R

    BLOAD¨C:WinXP.COM”, R
    Found: WinXP

    Please wait…

  • 3 Enlaces interesantes | blojer // 24 de Marzo de 2008 a la(s) 12:12 am

    […] ¿Por qué fallan los discos SSD?, comentarios sobre las limitaciones de la memoria flash. […]

  • 4 Explicación: ¿Por qué fallan los discos SSD? // 8 de Abril de 2008 a la(s) 9:07 am

    […] Explicación: ¿Por qué fallan los discos SSD?teleobjetivo.org/blog/porque-fallan-los-discos-ssd.html por bertol hace pocos segundos […]

  • 5 Diego // 8 de Abril de 2008 a la(s) 9:22 am

    Serán el futuro, sin duda, sólo que hay que darles un poco de más tiempo (y más dinero) para salvar estos pequeños problemas.

    Pero cuando estén solucionados, sí que serán buenos porque no harán ruido, el consumo será mínimo y el peso también. Así que…

  • 6 troin // 8 de Abril de 2008 a la(s) 10:16 am

    El numero limitado de borrados es mentira.

  • 7 caspas // 8 de Abril de 2008 a la(s) 12:03 pm

    El trabajo por transacciones sólo agravaría el problema, estas pasando la carga de operaciones de todo el disco a una pequeña parte donde estaría constantemente escribiendo y leyendo, en cuanto fallasen los sectores de esta área de registro el disco entero quedaría desactualizado, ¡eso más que una solución es un desastre!.

    Otra alternativa sería dejar pendiente el procesamiento hasta que faltara el espacio en disco, así las celdas se borrarían pocas veces, pero claro, ¿Qué pasa con el rendimiento?, ahora ya no hablamos de leer una celda o página, si no de leer cientos de ellas para calcular lo que “debería” haber en una celda que ha sido cambiada muchas veces.

  • 8 frames // 8 de Abril de 2008 a la(s) 1:37 pm

    Estoy relacionado con una de las comunidades que más usa “discos” SSD en un ordenador: los usuarios de Eee PCs.

    Como la afirmación inicial de devoluciones (creo que parte de Dell) me parece un tanto “cuestionable”, he querido hacer un pequeño experimento pseudo-científico que he anunciado en el weblog del Eee PC en español y he creado una encuesta en el foro.

    A ver qué nos cuenta la gente.

  • 9 Davaeron // 8 de Abril de 2008 a la(s) 3:39 pm

    Troin, tus argumentos son aplastantes… e inexistentes.

    Gracias por la información, me lo pensaré antes de comprar un portátil con SSD

  • 10 oaninor // 8 de Abril de 2008 a la(s) 8:19 pm

    tengo una asus eee desde hace poco mas de un mes. en cuanto a la fiabilidad creo que tendria que darle mas tiempo, y en cuanto al rendimento, me imagino que algo hay de cierto pues de verdad veo el acceso a disco ya sea lectura o escritura muy lento. no diria que mas que un disco normal pero si es mucho mas lento de lo que esperaba.

  • 11 Atec // 8 de Abril de 2008 a la(s) 9:06 pm

    No sé si acabo de entender el problema, pero dice que hay 3 operaciones: 0: escribir 0, 1: escribir 1, 2: borrar, no?

    Si la operación 2 es tan dañina, por qué no sustituirla por escribir 0? Y si esta operación la hace el SO, todo esto se podría arreglar con una simple actualización del SO (pongamos un service pack :p )

    Saludos.

  • 12 AlejoLp // 8 de Abril de 2008 a la(s) 9:55 pm

    Las operaciones de Escribir y Borrar son las mismas. Cuando borrás lo que haces es Escribir que “aquí no hay nada interesante”.

  • 13 monti // 8 de Abril de 2008 a la(s) 11:57 pm

    No, no son las mismas. En las memorias flash, el escribir un bit significa poner ese bit a cero, y borrarlo significa ponerlo a uno (Las memorias salen de fábrica con todos sus bits a uno). La operación de escritura es sencilla y requiere poca energía, mientras que la operación de borrado si que es compleja y destructiva.

  • 14 LordRedyen // 9 de Abril de 2008 a la(s) 5:27 am

    Hola yo creo, no me ocnta, que el problema de los discos SSD es con sistemas winfdws, los *nix like, segun entiendo, no tiene acceso directo al disco (magnetico o de estado solido) sino qeu tiene un disoc virtual en la ram donde hacen todo el trabajo, cada sierto tiempo o con la orden *sync* escribe(escribir o borrar) los datos en el disco, por ello que no tenemos porblemas con los discos de estado solido, llevo milenios (2 años y medio) usando un USB Kingston, en linux rula bien por que veo que el led indicador no esta trabajando sino hasta uqe me pongo a usar la swap y demases, pero en cambio en entornos windows ese led siempre anda prendido opr que sera??, bueno en el EeePC hay un linux con el mismo manejo del disco, asi que rula bien…
    es mi opinion espero sea respaldad o refutada por terceros : D

  • 15 willy // 9 de Abril de 2008 a la(s) 12:04 pm

    Una duda, segun el articulo: “en los chips de memoria flash el borrado hace que, con cada operación de borrado, la celda se deteriore hasta quedar inutilizada”.

    Por que esto no ocurre con la memoria RAM?, o acaso con la memoria RAM no se realiza tambien una cantidad enorme de borrados?

  • 16 monti // 9 de Abril de 2008 a la(s) 12:12 pm

    willy: Porque son tecnologías diferentes. En la RAM, las celdas de memoria son condensadores, y el borrado consiste simplemente en dejar que descarguen. En las memorias Flash, las celdas de memoria son diodos y el borrado consiste en “quemarlos” con una descarga eléctrica de alto voltaje.

  • 17 Javier // 15 de Junio de 2008 a la(s) 2:53 am

    Tus suposiciones son bastante falsas.
    Los discos SSD van equipados con caché de escritura y lectura. A eso, hay que añadirle la caché del sistema operativo. Esto elimina la posibilidad de tener que borrar un solo sector a la vez.
    En segundo lugar, los discos SSD no acceden siempre al mismo sector a la hora de hacer grabaciones, sino que van rotando. Es decir, el sector que para el ordenador sea 5, para el SSD en realidad puede ser 19, y esto se hace transparentemente.
    En las memorias flash sucede algo similar, pero claro, depende de la calidad y el año en que la compraste, tendrán estas correcciones de errores o no.
    Están ofreciendo 5 años de garantía en estos discos, y por algo será.
    (Ese 20% de devoluciones, en caso de ser real que no me lo creo, seguro que es porque los usuarios no se esperaban que el ordenador fuera como es, o no sea suficientemente rápido, etc)

Dejar un Comentario