¿Cómo funcionan las SSD?

Aquí en 2007es.com, a menudo hemos discutido la diferencia entre diferentes tipos de estructuras NAND: NAND vertical versus celda plana o multinivel (MLC) versusceldas de triple nivel(TLC) y celdas de cuatro niveles (QLC). Ahora, hablemos de la pregunta relevante más básica: ¿Cómo funcionan las SSD en primer lugar y cómo se comparan con tecnologías más nuevas, como la tecnología de almacenamiento no volátil de Intel, Optane?

Para entender como y porque 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 platos. Hay un brazo actuador con cabezales de lectura / escritura adjuntos. Este brazo coloca los cabezales de lectura y 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 leer o escribir datos, y el disco gira constantemente, existe un retraso antes de que se pueda acceder a los datos. Es posible que la unidad necesite leer desde múltiples ubicaciones para iniciar un programa o cargar un archivo, lo que significa que puede tener que esperar a que los platos giren en la posición correcta varias veces antes de poder completar el comando. Si una unidad está inactiva o en un estado de bajo consumo de energía, el disco puede tardar varios segundos más en girar a plena potencia y comenzar a funcionar.



Desde el principio, quedó 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, en comparación con los nanosegundos de su CPU típica. Un milisegundo equivale a 1.000.000 de nanosegundos y, por lo general, un disco duro tarda entre 10 y 15 milisegundos en encontrar datos en el disco y comenzar a leerlos. La industria de los discos duros introdujo platos más pequeños, cachés de memoria en disco y velocidades de eje más rápidas para contrarrestar esta tendencia, pero las unidades solo pueden girar tan rápido. La familia 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 empresariales giran tan rápido como 15,000 RPM. El problema es que incluso la unidad giratoria más rápida con los cachés más grandes y los platos más pequeños siguen siendo dolorosamente lentos en lo que respecta a su CPU.

En qué se diferencian las SSD

'Si le hubiera preguntado a la gente qué querían, habrían dicho caballos más rápidos'. - Henry Ford

Las unidades de estado sólido se denominan así específicamente porque no dependen de piezas móviles o discos giratorios. En cambio, los datos se guardan en un grupo de flash NAND. NAND en sí está compuesto por lo que se denominan transistores de puerta flotante. A diferencia de los diseños de transistores utilizados en DRAM, que deben actualizarse varias veces por segundo, el flash NAND está diseñado para retener su estado de carga incluso cuando no está encendido. Esto hace que NAND sea un tipo de memoria no volátil.

Estructura de la celda flash

Imagen de Cyferz en Wikipedia, Creative Commons Attribution-Share Alike 3.0.

El diagrama anterior muestra un diseño de celda flash simple. Los electrones se almacenan en la puerta flotante, que luego se lee como '0' cargada o '1' no cargada. Sí, en la memoria flash NAND, un 0 significa que los datos se almacenan en una celda; es lo opuesto a cómo pensamos normalmente en un cero o uno. NAND flash está organizado en una cuadrícula. Todo el diseño de la cuadrícula se denomina 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 256 KB y 4 MB.

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 HDD típico. El siguiente gráfico muestra la latencia de acceso para medios de almacenamiento típicos en microsegundos.

Latencia SSD

Imagen de Código Cápsula

NAND no es tan rápido como la memoria principal, pero es varios órdenes de magnitud más rápido que un disco duro. Si bien las latencias de escritura son significativamente más lentas para la memoria flash NAND que las latencias de lectura, aún superan a los medios giratorios tradicionales.

Hay dos cosas a tener en cuenta en el cuadro anterior. Primero, observe cómo agregar más bits por celda de NAND tiene un impacto significativo en el rendimiento de la memoria. Es peor para las escrituras que para las lecturas: la latencia típica de celda de triple nivel (TLC) es 4 veces peor en comparación con la NAND de celda de un solo nivel (SLC) para las lecturas, pero 6 veces peor para las escrituras. Las latencias de borrado también se ven afectadas significativamente. El impacto tampoco es proporcional: TLC NAND es casi dos veces más lento que MLC NAND, a pesar de contener solo 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 celda.

La razón por la que TLC NAND es más lento que MLC o SLC tiene que ver con la forma en que los datos entran y salen de la celda NAND. Con SLC NAND, el controlador solo necesita saber si el bit es un 0 o un 1. Con MLC NAND, la celda puede tener cuatro valores: 00, 01, 10 o 11. Con TLC NAND, la celda puede tener ocho valores y QLC tiene 16. La lectura del valor correcto de la celda requiere que el controlador de memoria utilice un voltaje preciso para determinar si alguna celda en particular está cargada.

Lee, escribe y borra

Una de las limitaciones funcionales de los SSD es que pueden leer y escribir datos muy rápidamente a un disco vacío, sobrescribir datos es mucho más lento. Esto se debe a que, si bien los SSD leen datos a nivel de página (es decir, de filas individuales dentro de la cuadrícula de memoria NAND) y pueden escribir a nivel de página, suponiendo que las celdas circundantes estén vacías, solo pueden borrar datos a nivel de bloque. Esto se debe a que el acto de borrar el flash NAND requiere una gran cantidad de voltaje. Si bien teóricamente puede borrar NAND en el nivel de la página, la cantidad de voltaje requerido tensiona las celdas individuales alrededor de las celdas que se están reescribiendo. Borrar datos a nivel de bloque ayuda a mitigar este problema.

La única forma 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, el SSD primero debe buscar los bloques que están marcados para su eliminación pero que aún no se han eliminado, borrarlos y luego escribir los datos en la página ahora borrada. Esta es la razón por la que los SSD pueden volverse más lentos a medida que envejecen: una unidad casi vacía está llena de bloques que se pueden escribir de inmediato, una unidad casi llena es más probable que se vea forzada a través de toda la secuencia del programa / borrado.

Si ha utilizado SSD, es probable que haya oído hablar de algo llamado 'recolección de basura'. La recolección de basura es un proceso en segundo plano que permite que una unidad mitigue el impacto en el rendimiento del ciclo de programa / borrado al realizar ciertas tareas en segundo plano. La siguiente imagen muestra los pasos del proceso de recolección de basura.

Recolección de basura

Imagen cortesía de Wikipedia

Tenga en cuenta 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 primeros cuatro bloques (A'-D '). También está escrito dos bloques nuevos, E y H. Los bloques A-D ahora están marcados como obsoletos, lo que significa que contienen información que la unidad ha marcado como desactualizada. Durante un período de inactividad, el SSD moverá las páginas nuevas a un nuevo bloque, borrará el bloque anterior 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 bloque X ahora vacío, en lugar de realizar el ciclo de programa / borrado.

El siguiente concepto que quiero discutir es TRIM. Cuando elimina un archivo de Windows en un disco duro típico, el archivo no se elimina de inmediato. En cambio, el sistema operativo le dice al disco duro que puede sobrescribir el área física del disco donde se almacenaron esos datos la próxima vez que necesite realizar una escritura. Esta es la razón por la que es posible recuperar archivos (y la razón por la que eliminar archivos en Windows no suele liberar mucho espacio en el disco físico 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 páginas. Con un SSD, esto es importante.

El comando TRIM permite al sistema operativo decirle al SSD que puede omitir 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 del SSD. Tanto la lectura como la escritura 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 la memoria flash NAND moderna. Más datos sobre Longevidad SSD, cortesía del Informe técnico, se puede encontrar aquí.

Los dos últimos conceptos de los que queremos hablar son la nivelación de desgaste y la amplificación de escritura. Debido a que los SSD escriben datos en páginas pero borran datos en bloques, la cantidad de datos que se escriben en la unidad es siempre mayor que la actualización real. Si realiza un cambio en un archivo de 4KB, por ejemplo, se debe actualizar y reescribir todo el bloque en el que se encuentra el archivo de 4K. Dependiendo de la cantidad de páginas por bloque y el tamaño de las páginas, puede terminar escribiendo 4 MB de datos para actualizar un archivo de 4 KB. La recolección de basura reduce el impacto de la amplificación de escritura, al igual que el comando TRIM. Mantener una parte significativa de la unidad libre y / o el sobreaprovisionamiento del fabricante también puede reducir el impacto de la amplificación de escritura.

La nivelación de desgaste se refiere a la práctica de garantizar que ciertos bloques NAND no se escriban y borren con más frecuencia que otros. Si bien la nivelación del desgaste aumenta la esperanza de vida y la resistencia de una unidad al escribir en la NAND por igual, en realidad puede aumentar la amplificación de escritura. En otras palabras, para distribuir las escrituras de manera uniforme en todo el disco, a veces es necesario programar y borrar bloques aunque su contenido no haya cambiado. Un buen algoritmo de nivelación del desgaste busca equilibrar estos impactos.

El controlador SSD

Debería ser obvio a estas alturas que los SSD requieren mecanismos de control mucho más sofisticados que los discos duros. Eso no es para disolver los medios magnéticos; de hecho, creo que los discos duros merecen más respeto del que se les da. Los desafíos mecánicos involucrados en el equilibrio de varios nanómetros de cabezales de lectura y escritura por encima de los platos que giran a entre 5,400 y 10,000 RPM no son nada despreciable. El hecho de que las unidades de disco duro realicen este desafío mientras son pioneros en nuevos métodos de grabación en medios magnéticos y, finalmente, terminen vendiendo unidades a 3-5 centavos por gigabyte es simplemente increíble.

Controlador SSD

Un controlador SSD típico

SSD controladores, sin embargo, están en una clase por sí mismos. A menudo tienen un grupo de memoria DDR3 o DDR4 para ayudar con la administración de la propia NAND. Muchas unidades también incorporan cachés de celda de un solo nivel que actúan como búferes, lo que aumenta el rendimiento de la unidad al dedicar NAND rápido a los ciclos de lectura / escritura. Debido a que la memoria flash NAND en un SSD generalmente se conecta al controlador a través de una serie de canales de memoria paralelos, puede pensar que el controlador de la unidad realiza parte del mismo trabajo de equilibrio de carga que una matriz de almacenamiento de alta gama; las SSD no Implemente RAID internamente, pero la nivelación del desgaste, la recolección de basura y la administración de caché SLC tienen paralelos en el gran mundo del hierro.

Algunas unidades también utilizan algoritmos de compresión de datos para reducir el número total de escrituras y mejorar la vida útil de la unidad. El controlador SSD maneja la corrección de errores y los algoritmos que controlan los errores de un solo bit se han vuelto cada vez más complejos a medida que pasa el tiempo.

Desafortunadamente, no podemos entrar en demasiados detalles sobre los controladores SSD porque las empresas bloquean sus diversas salsas secretas. Gran parte del rendimiento de la memoria flash NAND está determinado por el controlador subyacente, y las empresas no están dispuestas a levantar demasiado la tapa sobre cómo hacen lo que hacen, no sea que le den una ventaja a un competidor.

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 varias pulgadas de largo, que se insertan directamente en la placa base (o, en algunos casos, en un soporte de montaje en una tarjeta vertical PCIe. La unidad 970 EVO Plus se muestra a continuación.


Las unidades NVMe ofrecen un rendimiento más alto que los controladores SATA tradicionales porque admiten una interfaz más rápida. Los SSD convencionales conectados a través de SATA alcanzan un máximo de ~ 550 MB / 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

La memoria flash NAND ofrece una mejora enorme con respecto a los discos duros, pero no está exenta de inconvenientes y desafíos. Se espera que la capacidad de las unidades y el precio por gigabyte sigan subiendo y bajando respectivamente, pero hay pocas posibilidades de que los SSD atrapen los discos duros en precio por gigabyte. La reducción de los nodos de proceso es un desafío importante para la memoria flash NAND; mientras que la mayoría del hardware mejora a medida que el nodo se reduce, NAND se vuelve más frágil. Los tiempos de retención de datos y el rendimiento de escritura son intrínsecamente más bajos para NAND de 20 nm que para NAND de 40 nm, incluso si la densidad de datos y la capacidad total mejoran enormemente. Hasta ahora, hemos visto unidades con hasta 96 capas en el mercado, y 128 capas parecen plausibles en este momento. En general, el cambio a 3D NAND ha ayudado a mejorar la densidad sin reducir los nodos del proceso ni depender del escalado plano.

Hasta ahora, los fabricantes de SSD han brindado 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. No obstante, a largo plazo, se supone que NAND será reemplazado por algo más.

El aspecto que tendrá esa otra cosa aún está abierto a debate. Ambos RAM magnética y memoria de cambio de fase se han presentado como candidatos, aunque ambas tecnologías aún se encuentran en etapas tempranas y deben superar desafíos importantes para competir realmente como un reemplazo de NAND. Si los consumidores notarían la diferencia es una pregunta abierta. Si ha actualizado de NAND a un SSD y luego ha actualizado a un SSD más rápido, es probable que sepa que la brecha entre HDD y SSD es mucho mayor que la brecha de SSD a 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 caer por debajo de lo que los humanos realmente pueden percibir en la mayoría de los casos.

El 3D XPoint de Intel (comercializado como Intel Optane) ha surgido como un potencial rival para el flash NAND y la única tecnología alternativa actual en la producción convencional. Los SSD de Optane no usan NAND, están construidos con memoria no volátil que se cree que se implementa de manera similar a la RAM de cambio de fase, pero ofrecen un rendimiento secuencial similar al de las unidades flash NAND actuales, pero con un rendimiento mucho mejor en colas de unidades bajas. La latencia de la unidad también es aproximadamente la mitad de la memoria flash NAND (10 microsegundos, frente a 20) y una resistencia mucho más alta (30 escrituras de unidad completas por día, en comparación con 10 escrituras de unidad completas por día para un SSD Intel de gama alta).

Optane1

Objetivos de rendimiento de Intel Optane

Optane ahora está disponible en una amplia variedad de formatos, incluidas tarjetas de expansión de servidor, SSD personales y como caché adicional para acelerar un disco duro convencional. Intel también ha impulsado a 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.

Consulte nuestra serie 2007es.com Explains para obtener una cobertura más profunda de los temas tecnológicos más candentes de la actualidad.

Copyright © Todos Los Derechos Reservados | 2007es.com