HardwaReviews

Guía unidades de estado sólido SSDs

unidades SSD

El mercado de computadoras siempre se ha caracterizado por que todo es medido por grandes números, características, especificaciones raras que se leen avanzadas y pocas veces sabemos para qué nos sirven, pruebas de desempeño que arrojan números deslumbrantes y que usualmente nos dejan a los consumidores defendernos de toda esa información por nuestra cuenta. Para el mercado de las unidades de almacenamiento de estado sólido (SSD) no es la excepción. En esta primera entrega analizaremos la anatomía y funcionamiento de las unidades SSD, podremos saber porqué habiendo dos unidades de la misma capacidad, una es más cara que la otra, o el porqué las SSD no se desfragmentan, etc.

En este handbook también explicaremos los términos, interfaces, siglas y números que debes de saber y considerar al momento de elegir tu SSD para no dejarnos llevar por los números y puedas hacer una compra informada e inteligente.

Trataré de ser lo más claro posible en una de las tecnologías más complejas en su modo de operar.

El almacenamiento, fundamental desde siempre.

Como todo en nuestros equipos, los dispositivos de almacenamiento han ido evolucionando; han dejado de ser un componente en el que se tenga que invertir mucho para tener una capacidad de almacenamiento generosa, e incluso, en algunos equipos han dejado de ser un componente clave para tener un sistema operable (por ejemplo en los thin clients, el almacenamiento local no es un dato clave para determinar la utilidad o desempeño del mismo).

El primer disco duro fue incluido por IBM en la computadora RAMAC 305 en 1956, tenía una capacidad de 5MB, pesaba cerca de una tonelada, era un arreglo de 50 discos de 61 centímetros, ocupaba el espacio de dos refrigeradores de casa y tuvo un precio de lanzamiento de $50,000 dólares (Aprox. 450 mil dólares de hoy).

La unidad de almacenamiento de 5MB para el RAMAC 305 desarrollada por IBM, 1956.

Las unidades de almacenamiento han ido haciéndose mucho más pequeñas, con mayor capacidad y menos caros. Hoy podemos tener unidades de almacenamiento del tamaño de la palma de nuestra mano, que ofrecen una capacidad promedio de 750 Gigabytes (GB) por mucho menos de $50 dólares.

Entre la RAM y el almacenamiento.

Hay una diferencia entre memoria (RAM) y almacenamiento. La primera puede almacenar temporalmente un programa en ejecución o cualquier dato, estos datos estarán disponibles por lo menos hasta que se deje de suministrarles energía eléctrica, son increíblemente rápidas y las tareas de escritura suceden en nanosegundos, igual que un CPU ejecuta sus instrucciones, gracias a eso, estos dos se llevan muy bien.

Por el otro lado, el almacenamiento en discos magnéticos mantiene todas las cosas que queramos retener de manera permanente aún cuando no reciban alimentación eléctrica en el dispositivo, es impresionante la velocidad y precisión con la que escriben y recuperan datos dada su complejidad, por ejemplo al disco duro más rápido le toma 7 milisegundos, aún así, para el CPU esas velocidades son muy lentas. La única razón por la que consideramos unidades de discos duros hoy en día en nuestros ensambles es porque son muy baratos, nos sirven de grandes bodegas de datos y no son volátiles. Sin embargo, a pesar de tener mecanismos de protección, pueden llegar a tener pérdidas de datos, muchas veces, porque sus partes móviles llegan a fallar.

Tanto la RAM como el almacenamiento basan su capacidad en la cantidad de bytes que puedan retener. Para una computadora moderna, la RAM viene típicamente en capacidades de 4, 6 u 8 Gigabytes (GB), y las unidades de almacenamiento, pueden retener muchísimas veces más esas capacidades (720 GB, 1000GB, 1500 GB, 4000GB, etc.).

La memoria flash, viene a combinar lo mejor de ambos mundos, borra la línea entre la RAM y el almacenamiento, ya que estos dispositivos almacenan una gran cantidad de información en chips y lo hacen aunque no estén energizados, y lo mejor, al no tener partes móviles como lo tendrían los discos duros tradicionales, las velocidades de acceso a la información pueden ser tan rápidas como la memoria RAM y su vida útil mejora considerablemente. En su lugar se componen de transistores y otros componentes sólidos que podemos hallar dentro de las computadoras, sin componentes móviles que se tengan que utilizar para accesar a la información, de allí toman su nombre de Unidades (ya no discos) de estado sólido (Solid State Drive – SSD).

Anatomía y funcionamiento de las unidades SSD

Para empezar, conozcamos cómo es que los SSD son tan pequeños y rápidos, veamos la anatomía de las unidades SSD:

Las unidades SSD contienen más componentes electrónicos que las unidades de disco (magnéticas), y son muy simples en su composición:

La mayor complejidad se halla en la controladora de la memoria , el resto es ingeniería electrónica y circuitería para interconectar todos los componentes.

Estructura interna de las unidades SSD

Tenemos algunos componentes principales para una unidad: el PCB, las memorias flash (en grupos de 2 o 4 componentes) y el controlador (etiquetados ‘SandForce’, ‘Samsung’, ‘Indilinx’, etc.). Hablando del controlador, habrá 8 canales de comunicación que van cada uno a un módulo flash. La mayoría de las unidades SSD cuentan con 8 canales en la PCB, pero no todos esos canales llegan necesariamente a una memoria, es posible que un fabricante coloque únicamente 6 módulos flash y dejar 2 canales sin ocupar.

Los módulos flash o NAND se pueden ver como el contrario a las memorias RAM, las cuales, como lo mencionamos al principio, son una memoria rápida pero volátil usadas para almacenar datos de manera temporal. Por ejemplo, en los juegos, la RAM se utiliza para almacenar cosas como datos de un mapa o variables de un mundo, lo cual deriva en una experiencia de juego más continua debido a que se cargan los datos necesarios a este tipo de memoria de acceso rápido en lugar de hacer consultas a la unidad de almacenamiento masivo (que es mucho más lenta). Cada que aparece una pantalla de «Cargando» o se nota una pausa repentina en pantalla, se está transportando información de la unidad de almacenamiento masivo a la RAM.

La palabra volátil quiere decirnos que es una memoria eléctrica y es un indicador de que el módulo puede perder la información retenida si se pierde su alimentación. La memoria de los SSD tiene una arquitectura y velocidad similar, sin embargo, esta es no volátil, lo cual la vuelve un almacenamiento permanente, y, a diferencia de los discos duros (HDD), el acceso a la información se hace en microsegundos y no en milisegundos).

Las memorias flash (celdas) también tienen un proceso de fabricación como en los CPUs y GPUs, donde su proceso es característico por el tamaño del silicón, por ejemplo hay memorias flash que se fabrican con procesos de 16nm, este proceso indica el corte más pequeño que la fábrica de semiconductores puede hacer. Un proceso de fabricación más pequeño tiene un impacto directo en el tamaño del transistor, así que, entre más pequeño el proceso de fabricación, más pequeño será el transistor, y un transistor más pequeño, tiene requerimientos de voltaje menores, lo cual dispara una serie de factores de ingeniería que impactan en el diseño final, como el calor a disipar y el diseño de soluciones de enfriamiento.

Las memorias flash y las que se utilizan para las memorias RAM utilizan compuertas lógicas NAND (Negative AND), las cuales controlan el flujo de información en el dispositivo y no son más que unos circuitos lógicos muy sencillos que están cargados eléctricamente y dependiendo qué cargas se activen, el resultado puede ser 0 ó 1 binario (Verdadero o falso y en electrónica 0v y +5v), estos valores formarán cadenas más grandes de información que eventualmente conformarán los datos que almacenaremos en ellos.

En resumen, las NAND son la razón por la cual podemos escribir y leer información en los módulos.

La mayoría de los fabricantes de SSD (Kingston, Corsair, Crucial, etc.) no fabrican sus propias memorias flash, en su lugar, los compran a proveedores y los incluyen en sus diseños finales. Estos proveedores utilizan sus mismas instalaciones de fabricación de memoria RAM para fabricar los módulos flash; estos proveedores pueden ser Micron, Samsung o Toshiba. Cada uno tiene procesos y diseños diferentes de fabricación de sus módulos NAND, por lo que hallaremos diferencias en cuanto al diseño de cada fabricante, sin embargo los básicos de operación y desempeño se mantienen constantes para los dispositivos dirigidos al consumidor casual.

Cómo se manejan las capacidades.

Como lo mencionamos anteriormente, los fabricantes utilizan 8 canales de comunicación desde las memorias flash hacia el controlador, al final de cada canal puede haber hasta 4 módulos de memoria para aprovechar al máximo las capacidades del controlador.

Como es de esperarse, las capacidades de los módulos de las memorias flash se miden en Gigabits. Si recuerdas el post de «Bits en el procesador», tenemos que un byte tiene 8 bits, por lo que 128 Gigabits (Gb) es igual a 16 Gigabytes (GB):

128 Gigabits / 8 bits (1 byte) = 16 Gigabytes

Es importante tomar en cuenta que las abreviaturas son diferentes para bits (b) y para bytes (B), por lo tanto no es lo mismo 1b (bit) que 1B (byte), usualmente el primero se utiliza para medir velocidades de transmisión y el segundo, almacenamiento.

Las unidades SSD organizan el almacenamiento de datos en las NAND de la siguiente manera: Primero tomaremos como ejemplo un módulo convencional de 128Gb de capacidad de la marca Micron con un proceso de fabricación de 16nm, donde cada módulo tiene una arquitectura de doble plano, cada plano se conforma de 1024 bloques, y cada bloque, de 512 páginas de 16KB cada una.

De esta manera se organiza la información dentro de las NAND

Esto quiere decir que al final, todos los datos que escribamos en la unidad, serán descompuestos en pedacitos de 16KB (o menos) y se escribirán en páginas que miden 16KB alojados en un bloque de la NAND.

Las NAND no se pueden escribir bit por bit, se escriben a nivel de página, es decir, en trozos de información de 16KB a la vez. En algunas unidades, las páginas llegan a ser aún de 4KB, de ahí que muchas pruebas sintéticas para medir el desempeño de estas unidades, aún toman este valor.

Si consideramos un ejemplo de una unidad de almacenamiento con su capacidad al tope, entonces, con 4 chips NAND de 16 GB por canal, tenemos:

16GB x 4 chips = 64GB en cada canal x 8 canales = 512 Gigabytes de almacenamiento total (recordemos que para unidades de menor capacidad, no se utilizan todos los canales).

4 chips de 16GB cada uno por canal, al final suman 512GB de capacidad del SSD

Aunque los cálculos de los módulos NAND para las unidades de almacenamiento siempre nos darán cantidades de 64, 128, 256, 512 o ahora hasta 1024 GB de capacidad de almacenamiento en total, nunca hemos visto ninguna unidad de almacenamiento que en su etiqueta diga la capacidad total (por ejemplo, un SSD de 512GB), siempre vemos que dice «480GB SSD».

Esta capacidad se refiere a la capacidad utilizable, pero en este caso nos están quitando 32GB de nuestro SSD, 32GB donde caben unos buenos títulos para instalar y jugar. Esto es porque todas las unidades reservan un espacio de las memorias para algo que se llama «Overprovisioning». 

La vida útil y el overprovisioning.

El overprovisioning se refiere a una cantidad de almacenamiento que está reservada en la unidad para hacer swapping de información, también sirve como respaldo en caso de alguna falla de una NAND y también se utiliza para realizar comandos específicos y determinar en qué NAND se escribirá la información.

Es verdad que los SSD tienen un tiempo de vida útil, y esto es por la manera en la que funcionan las unidades de almacenamiento. Al igual que en los HDDs, los SSD eliminan completamente bloques de información cada que se envía un comando de reescritura o de borrado de información ubicado en algún bloque; cada vez que se ejecuta cualquiera de estos dos comandos, al proceso se le conoce como ciclo de programación y eliminación (P/E Cycle), estos ciclos, con el tiempo, van deteriorando la precisión eléctrica con la que se van almacenando los datos en cada módulo flash NAND.

Cada módulo flash tiene un número limitado de ciclos P/E, conforme pasa el tiempo, los bloques de memoria flash van perdiendo gradualmente su capacidad de retener la carga eléctrica. Los SSD para el consumidor promedio, tienen entre 3000 y 10000 ciclos P/E, lo cual quiere decir que la unidad deberá ser borrada y reprogramada en su totalidad entre 3000 y 10000 veces antes que comience a presentar los primeros problemas (y eso es muchísimo tiempo).

Una tarea básica del controlador del SSD, es ir administrando los módulos NAND para que la unidad vaya degradándose de manera equitativa, relocalizando, reescribiendo y borrando bloques de manera continua y en segundo plano mientras escribimos y leemos en la unidad. Para lograr esto sin que se afecte el desempeño ni la estabilidad del SSD, el controlador necesita sacar la información y depositarla de manera temporal en otro espacio mientras reacomoda los datos (a esto se le conoce como swapping), ese espacio que se requiere se le conoce como overprovisioning, y por esa razón no podemos acceder a leer o escribir directamente en esta parte del SSD.

Ejemplo del espacio reservado en las unidades SSD de sobre aprovisionamiento para almacenar datos de manera temporal mientras el controlador acomoda las páginas de información cuando se escriben nuevos datos.

El espacio destinado al overprovisioning consume entre el 6 y el 7% de la capacidad total del SSD. En las unidades de alto desempeño que están dirigidas al sector empresarial, el tamaño del overprovisioning puede llegar a ser del 28%, esta cantidad mejora dramáticamente el desempeño (velocidad), estabilidad y la longevidad de la unidad.

Los controladores de las unidades SSD mueven la información en bloques dentro de la memoria flash. En los discos duros, se escriben estos bloques desde el centro hacia afuera del disco.

Físicamente, mantener la información lo más cercana al centro del disco, facilita el acceso del cabezal a la información y responde más rápidamente y se incrementa así el desempeño. En un SSD, no importa en dónde esté localizada la información porque se accede a ésta inmediatamente y de manera eléctrica; es por esto que la fragmentación de los datos no existe en un SSD y tampoco el proceso de desfragmentado de una unidad.

Entonces, ¿qué pasa al momento en que la vida útil de las NAND llega a su fin? Pues resultará en un SSD que entrará en un estado de sólo lectura por un corto tiempo, donde los ciclos P/E están muy limitados debido a que las cargas eléctricas se van debilitando en cada ciclo de lectura efectuado por la unidad, resultando en ciclos menos precisos y muchos errores de lectura.

Si una memoria NAND deja de funcionar o se le terminan los ciclos P/E, toda la unidad cambia a un estado «cerrado» (en algunas excepciones, y depende el controlador, se puede llegar a utilizar el espacio de overprovisioning para sustituir la NAND sin ciclos P/E disponibles, pero tendría efectos negativos en el desempeño de la unidad). Este estado «cerrado»  asegurará que las memorias restantes se administren de tal manera que se vayan degradando uniformemente bajo la nueva configuración, esto resulta en mayor vida a la unidad hasta que se terminan sus ciclos P/E.

WAF: El enemigo de nuestros SSD

Como resultado del manejo de datos por parte del controlador y su tarea de swapping, se presenta un fenómeno que no es muy agradable: el factor de amplificación de escritura (Write Amplification Factor – WAF). Este término se refiere a las veces que la unidad tiene que reescribir y borrar la información en las NAND para que el desgaste de estas sea uniforme. Este factor es la cantidad de datos que el controlador del SSD tiene que mover al overprovisioning y reescribir en las NAND en relación a la cantidad de datos originales que debe de escribir. Suena confuso, pero ya lo explicamos a continuación.

Un WAF con valor de 1 es el ideal, es decir, a la hora de escribir 1MB, el controlador del SSD escribe únicamente 1MB (una relación 1 a 1). Un valor WAF mayor a 1 no es deseable, desafortunadamente no podemos llegar a ese valor.

No se puede llegar a ese valor por la naturaleza de trabajo de los SSD, ya que para meter datos a la unidad, el controlador debe mover más información para asegurar el desgaste uniforme de las NAND, entonces, puede ser que el archivo de 1GB que vayas a meter al SSD provoque que el controlador reacomode 500MB que ya están ahí (pasándolos temporalmente a la memoria overprovisioning -reservada para swapping- y volviéndose a escribir en las NAND), ocupando ciclos P/E y obviamente acortando la vida de la unidad. Es decir, tomando nuestro ejemplo, las consecuencias de escribir 1GB de datos, deriva en que en realidad se escribieron 1.5GB.

El valor de WAF no dependerá tanto del fabricante, sino dependerá directamente de la eficiencia en la que el controlador está programado para realizar estas tareas y del espacio reservado para overprovisioning, entre más espacio haya, más cercano será el valor de WAF a 1.

También existe TRIM que es un comando propio de los sistemas operativos (en Windows lo encontraremos a partir de Win7) donde indica que los bloques sin utilizar se pueden usar temporalmente como espacio reservado para overprovisioning, esto permite alargar la vida de la unidad mientras se va llenando.

Entre mayor sea el valor de WAF, menor tiempo de vida tendrá la unidad de almacenamiento, además que su desempeño será pobre.Sin embargo, la mayoría de los fabricantes no indica este valor en sus características técnicas.

Tipos de memoria NAND: la diferencia entre SSDs

Siguiendo con la anatomía y funcionamiento de un SSD, es muy importante conocer el tipo de memorias que  pueden integrar nuestras unidades, ya que en el momento que estamos eligiendo alguna unidad de almacenamiento, puede que nos encontremos con un escenario donde dos marcas distintas tienen un SSD de la misma capacidad, pero uno es mucho más barato que el otro.

Esta diferencia de precios seguramente tiene que ver por el tipo de chips de almacenamiento que está utilizando, y hay que prestar especial atención a este dato, porque existen tres tipos de memoria distintos y cada uno tendrá características, ventajas y desventajas que definirán el desempeño de nuestro SSD:

Cada nivel representa la cantidad de bits utilizados para almacenar datos y cuántos niveles de voltaje se almacenan por cada una. Esta diferencia tiene un impacto en la capacidad total de la unidad, velocidad, durabilidad y costo por GB.

SLC – Celda de un nivel (Single Level Cell): Fue el primer tipo de NAND que se utilizó en las unidades SSD (dirigido para el mercado especializado y enterprise), se caracteriza por ser de los dispositivos más duraderos, con mayor desempeño y su precio prácticamente insostenible para los consumidores promedio. Las unidades SLC dominan el mercado enterprise, donde se requiere tener componentes altamente fiables y que su tiempo de vida sea el mayor posible para mantener operando servicios 24/7 (web servers, base de datos, etc.).

Este tipo de NAND únicamente despliega los datos posibles de 1 bit (1 nivel): 0 y 1 (binario), esto quiere decir que almacena un bit de datos por celda, podrá parecer muy poco, pero está bien porque un SSD tiene miles de millones de celdas.

Cuando la carga se envía a la celda, la NAND responde con un valor 0 o 1. Gracias a que sólo se manejan 2 valores, el dispositivo tendrá la mejor estabilidad y desempeño que los demás, ya que los otros requieren mayores niveles de voltaje y precisión eléctrica al momento de responder los valores.

MLC – Celda de múltiples (2) niveles (2 bits) (Multiple Level Cell) y cuentan con 4 niveles de voltaje (2^2 = 4). Este tipo de memoria nos dará desempeños superiores a los TLC, pero sin ser tan caros como un SLC, por lo que los SSD con NAND MLC serán los mejores en cuanto a la relación precio/rendimiento.

TLC – Celda de tres niveles (3 bits) (Three Level Cell) y tienen 8 niveles de voltaje (2^3 = 8), ofrece significativamente mayor capacidad de almacenamiento que los dos anteriores (3 veces más capacidad que un SSD SLC y 33% más que un MLC). El costo por GB de estas unidades es muchísimo menor porque se utiliza menos hardware para almacenar más datos y por lo tanto podemos tener unidades más baratas con este tipo de NAND. Las desventajas de usar este tipo de NAND, es que al tener que consultar más bits por NAND, la vida de la memoria es más corta, y por lo tanto, la vida útil de estas unidades SSD es menor.

Cada uno ofrece mayor capacidad de almacenamiento que el anterior, y, el costo por Gigabyte se reduce porque se requiere menos hardware para almacenar más datos, resultando en SSDs más accesibles para el consumidor promedio.

Para los MLC y TLC, es necesario saber que, al almacenar exponencialmente más variantes de voltaje, se requiere mayor precisión eléctrica, lo cual deriva en un dispositivo más lento gracias a la complejidad que implica revisar hasta 8 combinaciones distintas de voltaje. También se incrementa la posibilidad de algún error al revisar el voltaje de alguna celda, y cuando esto sucede, se compromete la estabilidad de la unidad. Los controladores también son de gran ayuda para evitar estos errores de lectura.

Gracias al avance de los procesos de fabricación, los fabricantes han podido poblar los chips de memoria con la mayor cantidad de de transistores posibles, en 15 años se ha reducido el tamaño de un transistor de 120nm a 1nm, aumentando un poco más de 100 veces su capacidad de almacenamiento, sin embargo, colocar tal densidad de NANDs en un chip TLC, crea problemas de interferencia eléctrica entre celdas (propiciando datos imprecisos y errores) y limitantes en el proceso de fabricación.

Los tipos de NAND, este será el componente más básico de un SSD y los podemos encontrar por miles de millones en un chip.

Vertical NAND (V-NAND / 3D NAND): Este tipo de  NAND se están desarrollando debido a que el proceso de fabricación de las NAND tradicionales (2D NAND) están llegando a su límite por cuestiones físicas. En el CES de 2014, Samsung presentó el siguiente paso para ir más allá de las TLC en el mercado masivo: las V-NAND.  Ahora Intel también está fabricando e investigando en el desarrollo de este tipo de NANDs.

Lo que hace esta tecnología V-NAND es evitar hacer más pequeña la celda y en lugar de eso, apila varias capas NAND una sobre otra en un solo chip, de ahí su nombre Vertical NAND. Esta arquitectura permite desarrollar mayores capacidades de almacenamiento en el mismo espacio, con mayor rapidez de lectura y escritura (todo indica que para 2017-1018 tendremos unidades de almacenamiento de estado sólido de aproximadamente 8TB).

Al igual que con las NAND 2D, existen V-NAND de 2 y 3 bits, y la diferencia es que la de 3 bits  tiene mayor capacidad de almacenamiento.

Los chips V-NAND actuales, tienen 32 capas de alrededor de 5 Gigabits cada una, donde en teoría, se podrían apilar hasta 100 capas para tener capacidades de al menos 1 Terabit por chip de memoria, esto es 128 GB de almacenamiento por chip. Actualmente se están desarrollando unidades SSD con V-NAND de 48 capas.

En nuestra siguiente entrega, hablaremos de interfaces y números que determinarán el desempeño de nuestras unidades SSD que nos permitirán reconocer la que mejor se ajuste a nuestro presupuesto y necesidades.

Espero que hayas disfrutado esta primera parte y te agradecemos que hayas llegado hasta estos renglones pacientemente.

Déjanos tus comentarios y puntos de vista para tomarlos en cuenta en la siguiente entrega, también si crees que algo nos faltó algo, y, si quieres que ahondemos en algún tema en específico, no dudes en decirnos.

Salir de la versión móvil