¿Por qué los SSD fallan? Razones de los errores del SSD.


¿Por qué los SSD fallan?



Los SSD (Solid State Drives) almacenan datos en chips Flash-NAND. Son más rápidos y eficientes (por lo menos esto es lo que afirman los fabricantes y vendedores) que los discos duros. Son silenciosos y consumen menos electricidad. Al almacenar datos en circuitos integrados, no necesitan un mecanismo complejo, preciso y propenso a fallos.
La resistencia de los SSD a los fallos mecánicos se ha convertido en un dogma de fiabilidad en los materiales de marketing. La caída de los precios ha hecho que los SSD sean muy populares en los últimos años y, al mismo tiempo, la realidad ha disipado brutalmente el mito de que están libres de fracasos. En teoría, es posible construir dispositivos electrónicos que puedan funcionar sin fallos durante varios o incluso varias docenas de años, pero en la práctica no es difícil encontrar componentes informáticos que fallen el primer día de funcionamiento. Y muy a menudo es el SSD quien se niega a cooperar ya en la fase de instalación del sistema operativo. Entonces, ¿por qué los SSD tienen un índice de fallos tan alto y hasta qué punto pueden confiar en ellos como portadores de datos?



Almacenamiento de datos en SSD



Los transistores de campo NPN modificado - efecto (FET) son los encargados de almacenar datos en medios de comunicación utilizando chips Flash-NAND (no sólo SSD, sino también pendrives, tarjetas de memoria y recuerdos integrados en dispositivos como teléfonos inteligentes). Este transistor consiste en tres electrodos - áreas del semiconductor - dos ricos en electrones (y por tanto cargados negativamente, de ahí la designación "n", por "negativo"), una fuente y un drenaje separados por un área pobre en electrones (cargado positivamente - de ahí la letra "p", como "positivo").
En estos transistores, los electrones son los portadores responsables del flujo de corriente. Entre la fuente y el desagüe se encuentra una puerta eléctricamente aislada que se utiliza para controlar el transistor. También hay transistores pnp en los que la fuente y el desagüe están cargados positivamente y la puerta negativamente. Sin embargo, este tipo de transistores no se utilizan en chips flash.
Los transistores de efecto de campo se llaman unipolares porque la corriente en ellos es llevada sólo por portadores mayoritarios. Para los transistores npn, éstos son electrones, y para pnp - los llamados agujeros. Además de los transistores unipolares, los transistores bipolares se pueden encontrar en otras aplicaciones, en las que la corriente eléctrica es transportada tanto por la mayoría como por transportadores minoritarios. Los transistores bipolares también se llaman transistores de unión o de capa.
En campo - efecto transistor, bajo la influencia de un campo eléctrico (por eso el transistor se llama "efecto campo"), se crea un canal llamado n-canal, que permite a los electrones fluir entre la fuente y el drenaje. Sin embargo, si aplicamos tensión en la puerta, el canal n se cierra y la corriente entre la fuente y el desagüe deja de fluir. Los transistores en los que el canal n está abierto y se cierra cuando se aplica un voltaje en la puerta se llaman transistores de canal de agotamiento, y en electrónica también utilizamos transistores de canal enriquecido, en los que aplicar un voltaje a la puerta resulta en la apertura del canal transistor.
Para utilizar ese transistor para el almacenamiento de datos no volátiles, era necesario modificar la puerta. Estaba dividida en una puerta de control y, la parte más importante para almacenar información, una puerta flotante. Una puerta flotante es un área eléctricamente aislada en la que se puede acumular una carga eléctrica, que se mantiene después de que el dispositivo se desconecte de la fuente de alimentación. Y de eso es de lo que trata el almacenamiento de datos, no perderlo cuando los medios de comunicación se desconecten del suministro eléctrico. Si acumulamos una carga eléctrica en la puerta flotante, conseguiremos el efecto de cerrar el canal n, igual que si hubiéramos aplicado un voltaje en la puerta. Si la puerta flotante está vacía, el canal n estará abierto y la corriente podrá fluir libremente entre la fuente y el desagüe. Por tanto, normalmente una puerta flotante vacía se interpreta como una puerta lógica, y una puerta cargada cerrando el canal n - como un cero lógico.



Datos dirigidos a SSD



Desde la perspectiva de un usuario, estamos acostumbrados a dirigir datos en las estructuras lógicas de los sistemas de archivos. Cada día utilizamos particiones, archivos y directorios. Si tenemos algo de interés por los ordenadores, también conocemos los clusters y sectores. A su vez, los chips NAND probablemente no están interesados ​​en los ordenadores, porque no tienen ni idea de los sectores.
Los sectores LBA se utilizan en la comunicación entre varios dispositivos y software. Las unidades SSD aceptan órdenes para realizar operaciones en direcciones LBA específicas y devolverlas a la interfaz externa por compatibilidad con protocolos de comunicación como el protocolo ATA. Sin embargo, la comunicación interna entre el controlador y los sistemas de memoria se realiza de acuerdo con el estándar ONFI.
Según esta norma, los datos se abordan en páginas y blogs. Una página es la unidad mínima de lectura y escritura (prorgamming). Su tamaño corresponde al tamaño del registro de la página y actualmente alcanza aproximadamente 16 kB. Sí, es el equivalente a 32 sectores LBA de 512 B cada uno, que el controlador recorta de la página adecuada en respuesta a la solicitud del ordenador. Además de los sectores de usuarios, la página también contiene información redundante que almacena varios tipos de datos necesarios para el correcto funcionamiento del SSD. La estructura para organizar los datos del usuario y la información redundante dentro de una página se llama formato de página.
¿Cómo sabe el responsable qué página está ubicada el sector que busca? El subsistema para traducir direcciones lógicas a físicas (FTL - Flash Translation Layer - Capa de traducción del flash) es el responsable de ello, al que volveremos varias veces más tarde.
La siguiente unidad de direccionamiento es un blog de varias a incluso varios cientos de páginas. Ésta es la unidad de supresión mínima de datos. A diferencia del medio magnético, los sistemas Flash no pueden sobreescribir directamente el contenido anterior. Sólo podemos programar transistores cuyas puertas flotantes hayan sido previamente eliminadas - despejadas de electrones. Por tanto, los chips nuevos o completamente vacíos leídos en el programador devuelven el valor 0xFF. Este valor también devuelve bloques vacíos y porciones finales no programadas de páginas si existen estas áreas no utilizadas en el formato de página.



Operaciones básicas y su impacto en el desgaste de chips Flash-NAND



Dado que en el caso de los chips Flash no tenemos la capacidad física de sobreescribir directamente el contenido existente, sólo podemos guardar (programa) puertas flotantes vacías de transistores. Por tanto, es necesario apoyar tres operaciones básicas: programar el contenido deseado, leerlo y borrar datos obsoletas. Editar desde el lado físico implica leer el contenido original en el búfer, cambiarlo y guardarlo en una ubicación físicamente diferente.
Aquí volvemos a tocar la capa de traducción Flash, que debe registrar la transferencia de direcciones LBA a un otro sitio físico y el destino de su ubicación original para su eliminación. Los blogs borrados se pueden utilizar durante los escritos posteriores y después se les asignarán nuevas direcciones LBA apropiadas a las tablas de traducción.
Los chips Flash-NAND están diseñados para desgastarse gradualmente. Esto tiene que ver con la forma en que los electrones se colocan en las puertas flotantes en la operación de programación y se liberan durante el borrado.
Dado que la puerta flotante está eléctricamente separada del resto del transistor por un aislante, si queremos colocar electrones en él o liberarlos, deben superar la barrera potencial creada por el aislante. Esta tarea se realiza normalmente utilizando el fenómeno de túnel Fowler-Nordheim conocido por la mecánica cuántica. El túnel de Fowler-Nordheim utiliza las propiedades de onda de los electrones para superar la barrera potencial, pero requiere el uso de voltajes más altos, llegando a varios o incluso hasta 20 V.
Esta operación se asocia con pérdidas de energía disipadas en forma de calor de trabajo eléctrico (calor de Joule, que mejor conocemos por el funcionamiento de los chips sobre los que debemos colocar los radiadores y de los calentadores eléctricos) y carga el aislante, provocando su daño con el tiempo. El aislante degradado ya no tiene carga en la puerta flotante, lo que hace que los electrones se escapen y, por tanto, fugas de datos. La lectura implica medir la tensión entre la fuente y el desagüe (compruebe si el canal n está abierto o cerrado, y por tanto indirectamente si la puerta flotante está vacía o cargada). El voltaje medido se compara con un valor de voltaje de referencia específico y si es mayor que él, el controlador lo interpreta como un lógico, y si es más bajo - como cero. Esta operación no requiere aumentar la tensión y no carga el aislante de la puerta flotante, y por tanto es neutral a la vida del sistema. De ahí que la vida útil de los chips NAND se mida en el número de ciclos de programa/borrado (P/E).



¿Qué te parece aumentar el número de bits almacenados en el transistor?



Los chips Flash-NAND eran muy caros en sus inicios, por lo que no es de extrañar que los fabricantes buscaran una forma de mejorar la relación capacidad-precio. Una forma de duplicar la capacidad de los chips era colocar dos bits de datos en un transistor. Este efecto puede conseguirse cargando la puerta flotante a un nivel específico, lo que provoca un cierre convenientemente controlado del canal n. Para poder almacenar dos bits en un transistor, hay que distinguir 4 estados lógicos (00, 01, 10 y 11), y por tanto 4 correspondientes a estos estados flotantes de carga de puerta.
Es natural que a los contables les gustara esta idea y que les ingenieros esperaban desarrollar aún más la tecnología multiestatal, pero no era tan simple. Colocar el tercer bit en el transistor no duplica ya la capacidad del chip, sino que sólo aumenta a la mitad. ¿Qué ocurre con los niveles de carga del transistor? Sí, todavía tenemos que duplicar su número. Si queremos colocar hasta tres bits en un transistor, debemos distinguir 8 niveles de carga correspondientes a valores lógicos de 000 a 111. Y, por supuesto, añadir cada bit posterior al transistor provoca un aumento de la capacidad del sistema en menor y menor medida, a la vez que aumenta exponencialmente los niveles de carga de la puerta flotante distinguible requeridos.
El deterioro de la relación señal-ruido resultante de la brecha cada vez menor entre los valores de voltaje que representan los estados lógicos posteriores favorece los errores de lectura y los errores de bits. El funcionamiento de los transistores de programación también debe realizarse de forma cada vez más precisa, porque los errores también pueden ocurrir durante la escritura. La introducción de electrones en puertas flotantes utilizando mecánica cuántica no permite una precisión repetibles. A lo sumo, es posible cargar estas puertas con aproximadamente el número de electrones necesarios. Esto significa que muchas puertas flotantes contienen cargas con valores similares a los estados lógicos vecinos, y algunos representan estados distintos a los previstos.
Teóricamente, sería posible responder a cada error de escritura repitiendo la operación, pero en la práctica esto no es posible. Cuando se reprograma una página de miles de bytes, es decir, decenas de miles de bits, es muy probable que algunos errores vuelvan a ocurrir durante la siguiente escritura. De esta forma se podría esperar que la operación de escritura se completara con éxito. No olvidemos que cada escritura posterior lleva el chip y nos acerca al fracaso final. Por tanto, cuando el número de errores es aceptablemente pequeño, es necesario renunciar a luchar por la perfección y confiar en las matemáticas de corrección ECC - Error Correction Code - Código de corrección de errores. Cuando los chips que ofrecen almacenamiento de dos bits en un transistor fueron introducidos en el mercado, los sistemas más antiguos que almacenan un bit de datos por transistor fueron designados SLC (Single Level Cell), mientras que los sistemas con dos bits por transistor fueron llamados MLC (Multi Level Cell). Los siguientes chips que almacenan tres bits en cada transistor son TLC (Triple Level Cell). Los nuevos chips Flash-NAND disponibles actualmente están marcados como QLC (Quad Level Cell) y almacenan 4 bits en cada transistor. Y como la designación MLC también se utiliza genéricamente para referirse a todo tipo de memorias multiestado, algunos vendedores menos honestos también utilizan esta abreviatura para designar chips TLC y QLC inferiores.
Colocando bits de información posteriores en el transistor no sólo reduce la relación señal-ruido, sino que también afecta negativamente al rendimiento y la vida de los chips Flash-NAND. La lectura requiere comparar el voltaje medido con varios voltajes de referencia, lo que requiere tiempo. La programación también se realiza en varias etapas, lo que resulta no sólo en un tiempo de operación más largo, sino también en mayor carga en aislantes de puertas flotantes. Como consecuencia, el aislante se degrada más rápido y la vida útil de los sistemas, que en el caso de la memoria SLC superaba los 100.000 operaciones de programación/borrado, para la memoria MLC cae a un nivel todavía razonable de varios miles de ciclos P/E. Para la memoria TLC, los valores declarados por los fabricantes se hallan normalmente dentro del rango de 3-5 mil ciclos, pero los sistemas más débiles de esta clase resisten sólo unos 1.500 ciclos. En el caso de los últimos recuerdos de QLC, su vida útil se reduce a varios cientos (normalmente alrededor de 600 operaciones de programación).
Debido a la drástica disminución de la durabilidad de los chips NAND, los fabricantes recurren a un truco de marketing de sustituir información sobre los recursos de las operaciones de programación/borrado con el parámetro TBW (Total Bytes Written). La información que un SSD de 1 TB tiene un TBW de 1,5 PB sin duda despertará mucha más confianza en que los sistemas utilizados en él tengan una vida útil de un millar y medio de ciclos P/E. Podemos calcular esta vida útil dividiendo el parámetro TBW por la capacidad de los medios. Y no olvidemos que la unidad mínima de grabación es una página, a menudo de 8 o 16 kB, por lo que normalmente perdemos estos bytes escritos mucho más rápido de lo que podría parecer a primera vista.
A pesar de los problemas de crecimiento exponencial relacionados con el ocurrencia de errores de bits y la vida útil de los chips, algunos fabricantes ya anuncian la introducción de sistemas que almacenan 5 bits en cada transistor, que deben marcarse con el símbolo PLC. Los chips PLC deberían distinguir 25=32 niveles de carga. Con un voltaje de alimentación nominal de 3,3 V, esto significará la necesidad de distinguir los estados lógicos subsiguientes cada 0,1 V. Al mismo tiempo, es difícil esperar a que la vida de estos sistemas supere las 100 operaciones de programación/borrado. Para un medioma regrabable, esto no es demasiado.



Reducir el tamaño del transistor.



Esto ha ocurrido desde el inicio de la electrónica moderna: se hicieron esfuerzos por reducir el tamaño de los componentes incluso antes de la aparición de los circuitos integrados. Reducir el proceso litográfico permite producir circuitos integrados cada vez más baratos, más pequeños, menos consumibles de energía, menos generadores de calor y, al mismo tiempo, más y más eficientes con mayor grado de integración. Este proceso también se aplica a los chips flash. Si reducimos el tamaño de los transistores, podemos arrastrar más de ellos a un paquete de circuito integrado con dimensiones estandarizadas, aumentando su capacidad. Pero este proceso no se puede desarrollar hasta el infinito.
Aquí nos enfrentamos a limitaciones en la forma del tamaño físico de los átomos. Por ejemplo, un átomo de silicio (Si) tiene un diámetro de menos de un cuarto de nanómetros. En el caso de los transistores con tamaños de varios mm, es muy difícil transferir su producción de laboratorios a condiciones de fábrica de producción en masa. Otro obstáculo para reducir el tamaño de los transistores es la necesidad de utilizar luz con longitudes de onda cada vez más cortas en el proceso litográfico. Ya se requiere utilizar rangos de longitud de onda apenas dentro de los límites del ultravioleta extremo. Si los transistores se hacen más pequeños, será necesario utilizar rayos X. El uso de ondas de frecuencia cada vez más altas requiere también un entorno cada vez más limpio. Por tanto, los procesos de fabricación mediante ultravioleta profundo deben llevarse a cabo en condiciones de vacío.
Este problema también lo experimentan los fabricantes de procesadores, que tienen cada vez más dificultades para cumplir las expectativas del mercado debido a las dificultades de producción y grandes cantidades de residuos. La Ley de Moore, que a lo largo de décadas afirmó que el número de transistores en un chip se duplica cada año y medio, ha sido corregido recientemente. Actualmente se asume que el número de transistores en un chip se duplica cada dos años. Es posible que la Ley de Moore pronto deje de trabajar por completo.
Reducir el tamaño de un transistor también significa reducir el tamaño de sus componentes, incluido el grosor de la capa aislante y el volumen de la puerta flotante. El grosor del aislante afecta a su durabilidad y eficacia en la retención de la carga acumulada en la puerta flotante. Éstos son factores críticos para el almacenamiento fiable de datos. Una capa aislante demasiado delgada no sólo se degrada más fácilmente durante las operaciones de borrado y programación, sino que también permite que los electrones individuales se escapen, lo que a su vez puede conducir a un cambio en el estado de carga hasta al punto de que cuando se lea el contenido se interpretará como un estado lógico diferente.
El volumen de la puerta flotante, o más exactamente el número de átomos que contiene, también tiene un impacto significativo en el almacenamiento de información. Los electrones cargados negativamente tienden a repelerse mutuamente. Esto significa que, a pesar de su pequeño tamaño, no se pueden meter en la puerta flotante en grandes cantidades. Los electrones deben estar situados en la capa de valencia exterior de los átomos, donde para la mayoría de los tipos de átomos su número puede ser de un máximo de 8 por átomo. Esto es una limitación resultante de la mecánica cuántica - la regla de Pauli, que establece que cada orbital puede contener un máximo de dos electrones. El silicio, del que se forman transistores, tiene 4 orbitales de este tipo en su capa de valencia exterior.
El grosor recomendado de la capa aislante para el almacenamiento permanente y seguro de datos es de aproximadamente 4 nm. En el caso de los chips hechos en litografía de 15 nm, cae a aproximadamente 2 nm. El número de electrones que pueden almacenarse en la puerta flotante también disminuye de varios a aproximadamente mil. En la práctica, esto significa que en los últimos chips TLC y QLC, el escape de unas pocas docenas de electrones provoca la lectura de un estado lógico incorrecto. Y los electrones escapan más fácilmente cuanto más delgado sea el aislante. Por tanto, no debería sorprendernos que la tasa de fallo más alta se produzca en sistemas realizados en litografía inferior a 20 nm, que al mismo tiempo almacenan tres o cuatro bits en un transistor.



3D-NAND.



Otra forma de aumentar la capacidad de los chips NAND es apilar transistores en múltiples capas una por encima de la otra. Gracias a ello, puede multiplicarse la capacidad de memoria sin aumentar la superficie del chip. Esta solución apareció relativamente recientemente, aunque podría parecer que la idea en sí es tan trivial que debería haber aparecido hace mucho tiempo. Pues bien, esta solución no está exenta de inconvenientes.
El primer problema es la inducción entre transistores adyacentes. También se produjo en chips planares bidimensionales, causando la aparición de capacidades parasitarias y resultando en riesgo de errores de bits. ¿Qué ocurre cuando aparecen capas posteriores al chip? Además de la inducción de las cargas acumuladas en transistores adyacentes en el plan, existe una inducción adicional de las cargas situadas en las capas superiores e inferiores.
Otro problema es el mencionado
calor de Joule emitida, especialmente durante la operación de borrar y programar los datos. Ya sabemos que promueve la degradación del aislante de puertas flotantes. Por tanto, deberían liberarse en el medio ambiente lo antes posible.
La tasa de liberación de calor depende de muchos factores, el más importante de los cuales es la superficie de liberación de calor. Por eso los mejores disipadores de calor tienen muchas láminas delgadas que dan una gran superficie. Y con la ayuda de un radiador podemos aumentar la superficie de disipación de calor desde el chip. Pero en el caso de los chips multicapa, el quid de la cuestión es evitar la acumulación de calor dentro del chip y eliminarlo adecuadamente entre las capas.
Ambos problemas aumentan a medida que aumenta el número de capas y disminuye el espaciado entre las capas. El campo electromagnético disminuye con el cuadrado de la distancia, por lo que cuanto más pequeñas sean las distancias entre transistores, más fuertes serán las interacciones inductivas entre las cargas almacenadas en ellos. Las interacciones térmicas son también más destructivas cuando se reduce el tamaño de los objetos colocados en la estructura de silicio de los sistemas.



El mecanismo de fallo más común de los portadores de datos de semiconductores.



Ya sabemos que durante el funcionamiento de los chips Flash-NAND se desgastan, que es la principal causa de errores de bits. Normalmente, cuando el número de errores de bits excede la capacidad de corregirlos con códigos ECC, un bloque dado se considera dañado, se registra en la lista de defectos y se excluye de la operación posterior. Hasta hace poco, los algoritmos de gestión de defectos eran tan efectivos que prácticamente no existían situaciones en las que se produjeran señales de alerta como problemas de lectura y daños a ficheros o estructuras lógicas antes de un fracaso. Sin embargo, los fallos suelen ocurrir de repente como por ejemplo, que el ordenador se reinicia de repente o no carga el sistema operativo después del inicio, y un momento de diagnóstico permite determinar que la BIOS no ve el SSD o lo reconoce bajo alguno nombre extraño y con una capacidad cero o sospechosamente baja.
Esto se debe a que no sólo los blogs que almacenan información del usuario están desgastados y dañados, sino también los blogs que contienen tablas de traducción que son importantes para una correcta dirección de datos. Si el problema afecta a las entradas de estas tablas, no es posible asignar correctamente direcciones lógicas a las direcciones físicas apropiadas y el controlador no es capaz de construir correctamente una imagen de estructuras lógicas o proporcionar acceso a los archivos de usuario. Si se producen errores en esta parte (o cualquier otra importante) del firmware, el controlador impide el acceso a los chips NAND. En lugar del modelo SSD, en respuesta a la solicitud de la BIOS de presentar el identificador, se mantiene en un estado ocupado (suspendido) o el llamado pasaporte tecnológico (p. ej. SATAFIRM S11), y en lugar de la capacidad de todo el disco SSD, le gusta devolver la capacidad de algún búfer disponible.