Aquí en ExTech, hemos discutido a menudo la diferencia entre los diferentes tipos de estructuras NAND - NAND vertical versus planar, o células de nivel múltiple (MLC) versus células de nivel triple (TLC) y células de nivel cuádruple (QLC). Ahora, hablemos de la pregunta relevante más básica: ¿Cómo funcionan los discos SSD? en primer lugar, y ¿cómo se comparan con las nuevas tecnologías, como la tecnología de almacenamiento no volátil de Intel, Optane?
Para entender cómo y por qué los SSD son diferentes de los discos giratorios, necesitamos hablar un poco sobre los discos duros. Un disco duro almacena datos en una serie de discos magnéticos giratorios llamados discos. Hay un brazo actuador con cabezales de lectura/escritura conectados a él. Este brazo posiciona los cabezales de lectura-escritura sobre el área correcta de la unidad para leer o escribir información.
Debido a que los cabezales de la unidad deben alinearse sobre un área del disco para poder leer o escribir datos, y el disco está girando constantemente, hay un retraso antes de que se pueda acceder a los datos. La unidad puede necesitar leer desde múltiples lugares para lanzar un programa o cargar un archivo, lo que significa que puede tener que esperar a que los platos giren en la posición adecuada varias veces antes de poder completar el comando. Si una unidad está dormida o en un estado de baja potencia, puede tomar varios segundos más para que el disco gire a plena potencia y comience a funcionar.
Desde el principio, estaba claro que los discos duros no podían igualar las velocidades a las que podían funcionar las CPU. La latencia en los discos duros se mide en milisegundos, comparada con los nanosegundos de tu típica CPU. Un milisegundo es 1.000.000 de nanosegundos, y normalmente a un disco duro le lleva entre 10 y 15 milisegundos encontrar datos en el disco y empezar a leerlos. La industria de los discos duros introdujo discos más pequeños, cachés de memoria en el disco y velocidades de husillo más rápidas para contrarrestar esta tendencia, pero las unidades de disco duro son tan rápidas que no pueden girar. La familia de VelociRaptor de 10.000 RPM de Western Digital es el conjunto de unidades más rápido jamás construido para el mercado de consumo, mientras que algunas unidades para empresas giran tan rápido como 15.000 RPM. El problema es que incluso el disco giratorio más rápido con las cachas más grandes y los platos más pequeños siguen siendo dolorosamente lentos en lo que respecta a su CPU.
Cómo los SSD son diferentes
Las unidades de estado sólido se llaman así específicamente porque no dependen de partes móviles o discos giratorios. En su lugar, los datos se guardan en un grupo de flash NAND. La propia NAND está compuesta por lo que se llaman transistores de puerta flotante. A diferencia de los diseños de transistores usados en DRAM, que deben ser refrescados varias veces por segundo, el flash NAND está diseñado para mantener su estado de carga incluso cuando no está encendido. Esto hace de NAND un tipo de memoria no volátil.
La estructura de las celdas Flash
El diagrama de arriba muestra un simple diseño de célula de flash. Los electrones se almacenan en la puerta flotante, que luego se lee como "0" cargado o "1" no cargado. Sí, en el flash NAND, un 0 significa que los datos se almacenan en una celda - es lo contrario de lo que típicamente pensamos de un cero o un uno. El flash NAND está organizado en una cuadrícula. Toda la disposición de la cuadrícula se conoce como un bloque, mientras que las filas individuales que componen la cuadrícula se denominan página. Los tamaños de página comunes son 2K, 4K, 8K, o 16K, con 128 a 256 páginas por bloque. Por lo tanto, el tamaño del bloque suele variar entre 256KB y 4MB.
Una ventaja de este sistema debería ser inmediatamente obvia. Debido a que los SSD no tienen partes móviles, pueden funcionar a velocidades muy superiores a las de un disco duro típico. El siguiente gráfico muestra la latencia de acceso para los medios de almacenamiento típicos dada en microsegundos.
SSD-Latencia
NAND no es ni de lejos tan rápido como la memoria principal, pero es varios órdenes de magnitud más rápido que un disco duro. Mientras que las latencias de escritura son significativamente más lentas para el flash NAND que las latencias de lectura, aún así superan a los medios tradicionales de giro.
Hay dos cosas que hay que tener en cuenta en el cuadro anterior. Primero, note como agregar más bits por celda de NAND tiene un impacto significativo en el rendimiento de la memoria. La latencia típica de las células de triple nivel (TLC) es 4 veces peor comparada con la de las células de un nivel (SLC) NAND para las lecturas, pero 6 veces peor para las escrituras. Las latencias de borrado también se ven afectadas de manera significativa. El impacto no es proporcional, tampoco - TLC NAND es casi el doble de lento que MLC NAND, a pesar de tener sólo un 50% más de datos (tres bits por celda, en lugar de dos). Esto también es cierto para las unidades QLC, que almacenan aún más bits a diferentes niveles de voltaje dentro de la misma célula.
La razón por la que el TLC NAND es más lento que el MLC o el SLC tiene que ver con la forma en que los datos entran y salen de la célula NAND. Con SLC NAND, el controlador sólo necesita saber si el bit es un 0 o un 1. Con MLC NAND, la celda puede tener cuatro valores: 00, 01, 10 u 11. Con TLC NAND, la célula puede tener ocho valores, y QLC tiene 16. La lectura del valor correcto de la célula requiere que el controlador de la memoria utilice un voltaje preciso para determinar si una célula en particular está cargada.
Lectura, escritura y borrado
Una de las limitaciones funcionales de los SSD es que mientras que pueden leer y escribir datos muy rápidamente en una unidad vacía, la sobrescritura de datos es mucho más lenta. Esto se debe a que mientras los SSD leen datos a nivel de página (es decir, de filas individuales dentro de la red de memoria NAND) y pueden escribir a nivel de página, suponiendo que las celdas circundantes están vacías, sólo pueden borrar datos a nivel de bloque. Esto se debe a que el acto de borrar el flash NAND requiere una alta cantidad de voltaje. Aunque teóricamente se puede borrar NAND a nivel de página, la cantidad de voltaje requerida estresa las celdas individuales alrededor de las celdas que se están reescribiendo. Borrar los datos a nivel de bloque ayuda a mitigar este problema.
La única manera de que un SSD actualice una página existente es copiar el contenido de todo el bloque en la memoria, borrar el bloque y luego escribir el contenido del bloque antiguo + la página actualizada. Si la unidad está llena y no hay páginas vacías disponibles, la SSD debe primero escanear los bloques que están marcados para ser borrados pero que aún no han sido borrados, borrarlos y luego escribir los datos en la página ahora borrada. Por eso las SSD pueden volverse más lentas a medida que envejecen: una unidad mayormente vacía está llena de bloques que pueden escribirse inmediatamente, una unidad mayormente llena tiene más probabilidades de ser forzada a través de toda la secuencia de programación/borrado.
Si has usado SSD, probablemente has oído hablar de algo llamado "recogida de basura". La recogida de basura es un proceso de fondo que permite a una unidad mitigar el impacto de rendimiento del ciclo de programa/borrado realizando ciertas tareas en el fondo. La siguiente imagen muestra los pasos del proceso de recolección de basura.
Recogida de basura
Obsérvese que en este ejemplo, la unidad ha aprovechado el hecho de que puede escribir muy rápidamente en páginas vacías escribiendo nuevos valores para los cuatro primeros bloques (A'-D'). También se han escrito dos nuevos bloques, E y H. Los bloques A-D están ahora marcados como obsoletos, lo que significa que contienen información que la unidad ha marcado como obsoleta. Durante un período de inactividad, el SSD moverá las páginas nuevas a un nuevo bloque, borrará el bloque antiguo y lo marcará como espacio libre. Esto significa que la próxima vez que el SSD necesite realizar una escritura, puede escribir directamente en el ahora vacío Bloque X, en lugar de realizar el ciclo de programación/borrado.
El siguiente concepto que quiero discutir es TRIM. Cuando eliminas un archivo de Windows en un disco duro típico, el archivo no se borra inmediatamente. En cambio, el sistema operativo le dice al disco duro que puede sobrescribir el área física del disco donde se almacenaron los datos la próxima vez que necesite realizar una escritura. Por eso es posible volver a borrar archivos (y por eso el borrado de archivos en Windows no suele ocupar mucho espacio físico en el disco hasta que se vacía la papelera de reciclaje). Con un disco duro tradicional, el sistema operativo no necesita prestar atención a dónde se escriben los datos o cuál es el estado relativo de los bloques o las páginas. Con un SSD, esto importa.
El comando TRIM permite al sistema operativo decirle al SSD que puede saltarse la reescritura de ciertos datos la próxima vez que realice un borrado de bloque. Esto reduce la cantidad total de datos que escribe la unidad y aumenta la longevidad de la SSD. Tanto leer como escribir dañan el flash NAND, pero las escrituras hacen mucho más daño que las lecturas. Afortunadamente, la longevidad a nivel de bloque no ha demostrado ser un problema en el flash NAND moderno. Más datos sobre la longevidad de los SSD, cortesía del Informe Técnico, se pueden encontrar aquí.
Los dos últimos conceptos de los que queremos hablar son la nivelación del desgaste y la amplificación de la escritura. Debido a que los SSD escriben datos en las páginas pero borran los datos en bloques, la cantidad de datos que se escriben en la unidad es siempre mayor que la actualización real. Si se hace un cambio en un archivo de 4KB, por ejemplo, todo el bloque en el que se encuentra ese archivo de 4K debe ser actualizado y reescrito.
Dependiendo del número de páginas por bloque y del tamaño de las páginas, podrías terminar escribiendo 4MB de datos para actualizar un archivo de 4KB. La recolección de basura reduce el impacto de la amplificación de la escritura, al igual que el comando TRIM. Mantener una parte importante del disco duro libre y/o el exceso de suministro del fabricante también puede reducir el impacto de la amplificación de escritura.
La nivelación del desgaste se refiere a la práctica de asegurar que ciertos bloques NAND no se escriban y se borren más a menudo que otros. Mientras que la nivelación del desgaste aumenta la esperanza de vida y la resistencia de una unidad escribiendo al NAND por igual, puede aumentar la amplificación de la escritura. En otros, para distribuir los escritos de manera uniforme en el disco, a veces es necesario programar y borrar los bloques aunque su contenido no haya cambiado realmente. Un buen algoritmo de nivelación de desgaste busca equilibrar estos impactos.
La nivelación del desgaste se refiere a la práctica de asegurar que ciertos bloques NAND no se escriban y se borren más a menudo que otros. Mientras que la nivelación del desgaste aumenta la esperanza de vida y la resistencia de una unidad escribiendo al NAND por igual, puede aumentar la amplificación de la escritura. En otros, para distribuir los escritos de manera uniforme en el disco, a veces es necesario programar y borrar los bloques aunque su contenido no haya cambiado realmente. Un buen algoritmo de nivelación de desgaste busca equilibrar estos impactos.
Controlador SSD
Los controladores de SSD, sin embargo, están en una clase por sí mismos. A menudo tienen un fondo de memoria DDR3 o DDR4 para ayudar a manejar el NAND en sí. Muchas unidades también incorporan cachés de célula de un solo nivel que actúan como búferes, lo que aumenta el rendimiento de la unidad al dedicar rápidos NAND a los ciclos de lectura/escritura.
Dado que la memoria flash NAND de una SSD suele estar conectada a la controladora a través de una serie de canales de memoria paralelos, se puede pensar en la controladora de la unidad como si realizara el mismo trabajo de equilibrio de carga que un array de almacenamiento de gama alta: las SSD no despliegan RAID internamente, sino que la nivelación del desgaste, la recogida de basura y la gestión de la caché SLC tienen todos ellos paralelismos en el gran mundo del hierro.
Algunos discos también utilizan algoritmos de compresión de datos para reducir el número total de escrituras y mejorar la vida útil del disco. El controlador SSD se encarga de la corrección de errores, y los algoritmos que controlan los errores de un solo bit se han vuelto cada vez más complejos con el paso del tiempo.
Desafortunadamente, no podemos entrar en muchos detalles sobre los controladores SSD porque las compañías bloquean sus diversas salsas secretas. Gran parte del rendimiento de NAND flash está determinado por el controlador subyacente, y las empresas no están dispuestas a levantar la tapa demasiado lejos en cómo hacen lo que hacen, para no dar a un competidor una ventaja.
Interfaces
Al principio, los SSD usaban puertos SATA, al igual que los discos duros. En los últimos años, hemos visto un cambio a las unidades M.2 - unidades muy delgadas, de varios centímetros de largo, que encajan directamente en la placa madre (o, en algunos casos, en un soporte de montaje de una tarjeta elevadora PCIe. A continuación se muestra una unidad Samsung 970 EVO Plus.
Las unidades NVMe ofrecen un mayor rendimiento que los controladores SATA tradicionales porque soportan una interfaz más rápida. Los SSDs convencionales conectados a través de SATA se recargan a ~550MB/s en términos de velocidades prácticas de lectura/escritura. Las unidades M.2 son capaces de un rendimiento sustancialmente más rápido en el rango de 3,2 GB/s.
El flash NAND ofrece una enorme mejora respecto a los discos duros, pero no está exento de sus propios inconvenientes y desafíos. Se espera que la capacidad de los discos y el precio por gigabyte sigan aumentando y disminuyendo respectivamente, pero hay pocas posibilidades de que las unidades SSD atrapen los discos duros a un precio por gigabyte, aunque es cierto que cada vez es más fácil encontrar un SSD barato.
Algunos discos también utilizan algoritmos de compresión de datos para reducir el número total de escrituras y mejorar la vida útil del disco. El controlador SSD se encarga de la corrección de errores, y los algoritmos que controlan los errores de un solo bit se han vuelto cada vez más complejos con el paso del tiempo.
Desafortunadamente, no podemos entrar en muchos detalles sobre los controladores SSD porque las compañías bloquean sus diversas salsas secretas. Gran parte del rendimiento de NAND flash está determinado por el controlador subyacente, y las empresas no están dispuestas a levantar la tapa demasiado lejos en cómo hacen lo que hacen, para no dar a un competidor una ventaja.
Interfaces
Al principio, los SSD usaban puertos SATA, al igual que los discos duros. En los últimos años, hemos visto un cambio a las unidades M.2 - unidades muy delgadas, de varios centímetros de largo, que encajan directamente en la placa madre (o, en algunos casos, en un soporte de montaje de una tarjeta elevadora PCIe. A continuación se muestra una unidad Samsung 970 EVO Plus.
Las unidades NVMe ofrecen un mayor rendimiento que los controladores SATA tradicionales porque soportan una interfaz más rápida. Los SSDs convencionales conectados a través de SATA se recargan a ~550MB/s en términos de velocidades prácticas de lectura/escritura. Las unidades M.2 son capaces de un rendimiento sustancialmente más rápido en el rango de 3,2 GB/s.
El camino por delante
El flash NAND ofrece una enorme mejora respecto a los discos duros, pero no está exento de sus propios inconvenientes y desafíos. Se espera que la capacidad de los discos y el precio por gigabyte sigan aumentando y disminuyendo respectivamente, pero hay pocas posibilidades de que las unidades SSD atrapen los discos duros a un precio por gigabyte, aunque es cierto que cada vez es más fácil encontrar un SSD barato.
El encogimiento de los nodos de proceso es un desafío significativo para el flash NAND - mientras que la mayoría del hardware mejora a medida que el nodo se encoge, el NAND se vuelve más frágil. Los tiempos de retención de datos y el rendimiento de escritura son intrínsecamente menores para 20nm NAND que para 40nm NAND, incluso si la densidad de datos y la capacidad total se mejoran enormemente. Hasta ahora, hemos visto unidades con hasta 96 capas en el mercado, y 128 capas parece plausible en este momento. En general, el cambio a la NAND 3D ha ayudado a mejorar la densidad sin encoger los nodos de proceso o depender de la escala planar.
Hasta ahora, los fabricantes de SSD han ofrecido un mejor rendimiento al ofrecer estándares de datos más rápidos, más ancho de banda y más canales por controlador, además del uso de cachés SLC que mencionamos anteriormente. Sin embargo, a largo plazo, se supone que NAND será reemplazada por otra cosa.
Cómo se verá ese algo más aún está abierto a debate. Tanto la RAM magnética como la memoria de cambio de fase se han presentado como candidatas, aunque ambas tecnologías se encuentran todavía en sus primeras etapas y deben superar importantes desafíos para competir realmente como reemplazo de la NAND. Si los consumidores notarán la diferencia es una cuestión abierta.
Hasta ahora, los fabricantes de SSD han ofrecido un mejor rendimiento al ofrecer estándares de datos más rápidos, más ancho de banda y más canales por controlador, además del uso de cachés SLC que mencionamos anteriormente. Sin embargo, a largo plazo, se supone que NAND será reemplazada por otra cosa.
Cómo se verá ese algo más aún está abierto a debate. Tanto la RAM magnética como la memoria de cambio de fase se han presentado como candidatas, aunque ambas tecnologías se encuentran todavía en sus primeras etapas y deben superar importantes desafíos para competir realmente como reemplazo de la NAND. Si los consumidores notarán la diferencia es una cuestión abierta.
Si ha actualizado de NAND a una SSD y luego a una SSD más rápida, es probable que sepa que la diferencia entre las unidades de disco duro y las SSD es mucho mayor que la diferencia entre las SSD y las SSD, incluso cuando se actualiza desde una unidad relativamente modesta. Mejorar los tiempos de acceso de milisegundos a microsegundos es muy importante, pero mejorarlos de microsegundos a nanosegundos podría estar por debajo de lo que los humanos pueden percibir realmente en la mayoría de los casos.
El 3D XPoint de Intel (comercializado como Intel Optane) ha surgido como un potencial desafío para el flash NAND, y la única tecnología alternativa actual en la producción principal. Las unidades SSD de Optane no utilizan NAND - están construidas utilizando memoria no volátil que se cree que se implementa de forma similar a la RAM de cambio de fase - pero ofrecen un rendimiento secuencial similar a las unidades flash NAND actuales, pero con un rendimiento mucho mejor en las colas de unidades bajas. La latencia de la unidad también es aproximadamente la mitad de la de la flash NAND (10 microsegundos, frente a 20) y una resistencia mucho mayor (30 escrituras de unidad completas por día, en comparación con las 10 escrituras de unidad completas por día de un SSD Intel de alta gama).
Optane está ahora disponible en una amplia variedad de formatos, incluyendo tarjetas de expansión de servidores, SSDs personales, y como caché adicional para acelerar un disco duro convencional. Intel también ha impulsado Optane como una forma de memoria de conexión directa con mucha más capacidad disponible en total que la DRAM, a costa de mayores latencias de acceso.
El 3D XPoint de Intel (comercializado como Intel Optane) ha surgido como un potencial desafío para el flash NAND, y la única tecnología alternativa actual en la producción principal. Las unidades SSD de Optane no utilizan NAND - están construidas utilizando memoria no volátil que se cree que se implementa de forma similar a la RAM de cambio de fase - pero ofrecen un rendimiento secuencial similar a las unidades flash NAND actuales, pero con un rendimiento mucho mejor en las colas de unidades bajas. La latencia de la unidad también es aproximadamente la mitad de la de la flash NAND (10 microsegundos, frente a 20) y una resistencia mucho mayor (30 escrituras de unidad completas por día, en comparación con las 10 escrituras de unidad completas por día de un SSD Intel de alta gama).
Optane1
Optane está ahora disponible en una amplia variedad de formatos, incluyendo tarjetas de expansión de servidores, SSDs personales, y como caché adicional para acelerar un disco duro convencional. Intel también ha impulsado Optane como una forma de memoria de conexión directa con mucha más capacidad disponible en total que la DRAM, a costa de mayores latencias de acceso.

Comentarios
Publicar un comentario