Hardware. Almacenamiento SSD

Ahora que empiezan a ser cada vez más comunes en nuestros portátiles y ofrecer capacidades de almacenamiento mas aceptables para los tiempos que corren, he pensado que sería una buena idea empezar un post sobre los discos o memorias SSD (Solid State Drive), sus principales ventajas, desventajas, y en que situación puedes sacarle mayor ventaja respecto a los discos de toda la vida.

El objetivo del post es en definitiva que resulte práctico, útil y fácil de entender, y mi intención no es dejarlo estático, sino ir actualizándolo o completando con más información según convenga.

Tabla de contenidos:

  1. ¿Qué es un disco en estado sólido o SSD?
  2. ¿Como funciona por dentro?
    1. Memoria NAND
    2. Controlador
    3. Estándar de conexión
    4. Protocolo de comunicación
    5. Factor de forma
  3. Tipos de unidades SSD mas comunes
    1. SSD 2,5″ SATA
    2. SSD M.2 SATA
    3. SSD M.2 NVMe PCIe
  4. Referencias y más información

¿Qué es un Disco en Estado Sólido o SSD?

Como seguramente sabrás, los discos duros rígidos o HDD de toda la vida funcionan, a muy grandes rasgos, gracias al giro constante de unos discos magnéticos y una cabezal lector que se mueve sobre cada una de las caras para leer o escribir sobre ellas.

Los HDD han sido parte de la informática personal y profesional durante largos años, y, como todo en la vida, han tenido su evolución, ofreciendo mejores capacidades y más velocidad.

Su propia concepción mecánica, sin embargo, ha hecho que el margen de mejora fuera cada vez mas estrecho, siendo especialmente evidentes sus limitaciones en cuanto a velocidades de transferencia de datos y eficiencia.

Los discos en estado sólido o SSD han permitido romper por completo con este paradigma, ofreciendo unas prestaciones totalmente fuera del alcance de los HDD.

Aunque realmente aparecieron en la década de los 80, eran extremadamente costosos y estaban reservados casi en exclusiva para entornos militares, por lo que no ha sido hasta bien entrados los 2000 que han empezado a ser comercialmente viables para el gran publico.

Las ventajas de un disco duro en estado sólido con respecto a uno tradicional son muchas, empezando por la principal, que es la velocidad en la transferencia de datos, que supera de largo a la de los discos duros tradicionales, claramente limitada por las revoluciones por minuto a que gira, generalmente de 5.400 rpm o de 7.200 rpm en las más rápidas.

Además de eso, el hecho de no tener partes mecánicas en constante movimiento, también hace que una unidad SSD sea mucho mas silenciosa que un disco duro tradicional, además de poseer una mayor tolerancia a todo tipo de golpes y vibraciones, algo muy a tener en cuenta en el caso de portátiles.

¿Como Funciona un SSD?

El principio de funcionamiento de los SSD es radicalmente diferente al de los discos duros tradicionales, principalmente por el hecho de que no disponen de partes mecánicas móviles. Ahí no encontrarás ningún plato girando a velocidad constante, ni brazos moviéndose sobre él.

En lugar de utilizar discos magnéticos para almacenar datos, un SSD utiliza una matriz de chips de memoria Flash que a su vez están conectados a un controlador, que es el que se encarga de leer y escribir datos en los chips de memoria según sea necesario.

En los sucesivos apartados que vienen a continuación tienes explicado con mucho más detalle cada uno de los componentes que intervienen.

Memoria NAND

Hardware. SSD. Memoria NAND

Las unidades de memoria Flash utilizados en los SSD suelen ser de tipo NAND. A diferencia de las unidades de tipo NOR, más empleadas para los chips de memoria donde se instala la BIOS, las unidades de tipo NAND permiten almacenar mayor cantidad de datos, ofrecen mayor tolerancia ante imperfecciones en una celda de memoria, y son mas fáciles de fabricar en masa.

Las unidades de memoria NAND se componen de muchas celdas, que a su vez se organizan en páginas y bloques.

  • Las celdas son las encargadas de almacenar la información a nivel binario, mediante cargas eléctricas. Existen diferentes tipos de unidades NAND, en función del numero de bits por celda:
    • SLC. Celdas que pueden almacenar 1 bit de información (pueden guardar el valor 0 o 1). Ofrecen el mayor rendimiento y durabilidad, pero permiten menos capacidad y son las mas caras.
    • MLC. Celdas que pueden almacenar 2 bits de información. Ofrecen mas capacidad, y son mas baratas, pero a costa de perder rendimiento y durabilidad.
    • TLC. Celdas que pueden almacenar 3 bits de información. Son las que ofrecen mas capacidad y las mas baratas, pero también las que ofrecen menor rendimiento y durabilidad.
  • Las paginas son una agrupación de celdas que se pueden programar simultáneamente, y representan la unidad mas pequeña de lectura o escritura. En las unidades SSD modernas, suelen tener un tamaño de 4 KB o 8 KB, en función del fabricante.
  • Los bloques, por su parte, son agrupaciones de 128 o 256 páginas, y representan la unidad mas pequeña a nivel de borrado de datos.

El proceso de escritura de nuevos datos en una unidad NAND tiene su miga, como verás a continuación. De entrada, la tecnología NAND no permite la sobre-escritura de datos, lo que significa que, a la hora de introducir nuevos datos en una celda, estos únicamente pueden escribirse en páginas vacías.

Para poner un poco de contexto, seguramente sabrás que, cuando decides borras archivos para liberar espacio en el disco, en realidad no se realiza ningún borrado de información como tal. Lo que hace el sistema operativo es marcar el espacio que ocupaban dichos datos para que pueda ser sobre-escrito con nueva información.

Esto ultimo en el caso de la tecnología NAND es especialmente relevante, porqué significa que, a medida que haya páginas que vayan siendo liberadas para poderlas a llenar con nuevo contenido, antes de ser re-escritas deberán ser vaciadas.

Y para complicarlo más, la operación de borrado no funciona a nivel de página, sino a nivel de bloque entero. Así pues, para borrar esas paginas, primero se debe copiar todo el contenido del bloque (eso son muchas páginas) en una memoria cache temporal, hasta dejarlo vació. En esa cache temporal es donde las paginas que deben ser borradas se sobre-escriben con el nuevo contenido.

Por ultimo, el contenido de la caché es copiado de nuevo en la al bloque que ha quedado vacío. Resultando en nuevo bloque, en el que el contenido de ciertas paginas ha sido sustituido por nuevos datos.

Como ves, el proceso completo implica un trabajo de borrado y escritura bastante más intensivo del que podría parecer a priori. A esto, hay que sumar el hecho de las unidades NAND tienen un limite en el numero de ciclos de escritura y borrado que permiten.

Para evitar que todo ello tengo un impacto negativo en el rendimiento de la unidad, y que, de paso, acabe repercutiendo en un acortamiento de su vida útil, la mayoría de sistemas operativos implementan una característica denominada TRIM, de la que te hablo justo abajo.

Controlador

Hardware. SSD. Controlador

El cerebro que se encarga de controlar toda la operativa que se requiere en las unidades NAND es el controlador. El controlador de un SSD es en esencia un microprocesador dedicado, cuya función principal es interpretar las ordenes que recibe del sistema operativo y ejecutar las instrucciones del protocolo de comunicación para llevar a cabo las operaciones pertinentes en las unidades NAND.

El controlador se encarga de controlar el acceso a la memoria NAND y asegurarse de garantizar que los nuevos datos se escriban en los bloques vacíos, y no en los que contengan datos para ser eliminados. Esto simplifica y acorta en gran medida el proceso de escritura.

Otra función vital es la de procesar los comandos de TRIM que dicta el sistema operativo. TRIM se encarga de aprovechar los momentos de reposo para realizar las operaciones de borrado de todas aquellas paginas que contienen datos que han sido marcados para su eliminación por parte del sistema operativo. Con esto se consigue que, a la hora de realizar la escritura de nuevos datos, las paginas con contenido marcado para ser borrado ya estén vacías y preparadas para ser llenadas.

El controlador también monitoriza constantemente el estado de las diferentes celdas NAND, y cuando detecta que una de ellas esta próxima a alcanzar su numero máximo de ciclos de escritura, la marca como usada, para evitar que se puedan escribir datos nuevos en ella, y previniendo la degradación de la misma. Esto es vital de cara a maximizar la vida útil de la unidad.

Asimismo, el controlador también es el responsable de garantizar la integridad de los datos almacenados. Para ello, implementa algoritmos específicos, como el ECC, que se encargan de detectar y corregir errores a nivel de bits.

Estándar de Conexión: SATA o PCIe

El estándar de conexión es el medio por el cual la unidad SSD se conecta a la placa base del equipo. Los SSD pueden utilizar diferentes interfaces de conexión, pero los más utilizados son SATA o PCIe. Aunque estas siglas también puedes verlas para identificar al conector físico involucrado en la conexión, pero aquí las emplearé para referirme al estándar en sí, que define el «como» se transmiten los datos entre la unidad de almacenamiento y el procesador.

SATA

SATA, o Serial ATA, viene de Serial Advanced Technology, y es la interfaz de datos que a día de hoy se utiliza en la mayoría de discos HDD, para comunicarse con la CPU. Asimismo, también es la interfaz que se empezó a utilizar en cuando salieron aSSD, y aun hoy se sigue utilizando en algunos casos.

A la hora de interpretar los datos, la interfaz SATA puede funcionar con diferentes protocolos de comunicación, pero el más utilizado es AHCI. En algunos casos particulares se utiliza también RAID, que te sonará posiblemente porque es el que interviene cuando se da una arquitectura de varios discos HDD en paralelo para conseguir diferentes niveles de distribución o redundancia de datos.

A nivel de conector físico, las conexiones que funcionan con SATA suelen ser a través del conector SATA estándar de 7 pines que comúnmente habrás visto para conectar un HDD con la placa base del ordenador.

La ultima versión, SATA III, o también conocida como SATA 6 Gbps, permite una velocidad real de transferencia de hasta 750 MB/s, lo cuál es mas que suficiente cubrir las tasas de lectura y escritura de un disco HDD.

Para la tecnología Flash, sin embargo, supone un claro cuello de botella, sobretodo de cara a las unidades SSD más modernas de tipo NVMe. Y aquí es donde entra en juego el estándar de conexión PCIe.

PCIe

PCIe, también conocido como PCI Express, viene de Peripheral Component Interconnect Express, y es un bus de conexión de hardware de alta velocidad utilizado tradicionalmente para conectar componentes tales como la tarjeta gráfica, la tarjeta de sonido o la tarjeta de red. A día de hoy, se ha convertido en el estándar de facto para las unidades SSD NVMe más modernas.

A la hora de gestionar e interpretar la información, PCIe soporta varios protocolos, pero los más comunes son AHCI, que es el que utiliza mayormente SATA, y NVMe, una especificación mas moderna y diseñada expresamente para las unidades SSD.

El bus PCIe puede funcionar en diferentes tipos de ranuras PCIe, que se suelen diferenciar por el número de carriles de daros en paralelos que pueden gestionar (pudiendo ser de 16, 8, 4 o 1). El conector PCIe de la tarjeta gráfica, por ejemplo, puede gestionar 16 carriles, pero los slots M.2 que suelen utilizar las unidades SSD M.4 suelen ser de 4 carriles. A mayor numero de carriles, mayor será el ancho de banda real en la transmisión de datos.

Además de esto, la velocidad de transmisión de cada carril ha aumentado considerablemente a lo largo de las sucesivas versiones del estándar. Así, mientras que en PCIe 1.0 cada carril permitía una velocidad de transmisión de 250 MB/s, en PCIe 4.0 ya hablamos de 2 GB/s por carril.

El resultado de esto es un ancho de banda muy superior al de SATA, y con menor latencia. A modo de ejemplo, y para que te hagas una idea de la diferencia de magnitud de la que hablamos, en una unidad SSD con PCie 4.0 de 4 carriles, la velocidad máxima de transferencia llegaría a ser de 8 GB/s o 8000 MB/s (en SATA hablábamos de 750 MB/s)

Protocolo de Comunicación: AHCI o NVMe

El protocolo de comunicación es el conjunto de reglas que establece cómo los datos son transferidos entre el controlador del SSD y el resto del sistema, como el procesador y la memoria RAM.

AHCI

AHCI viene de de Advances Host Controller Interface, y es un protocolo de comunicación pensado para establecer como debe tener lugar la comunicación entre entre un sistema de almacenamiento basado en discos mecánicos giratorios, y el subsistema de CPU y memoria.

AHCI funciona generalmente en combinación con el bus de conexión SATA, y aunque fue diseñado pensando en los discos HDD, lo cierto es que también es el que suelen utilizar las unidades SSD que se conectan por SATA.

Pese a ello, hay que tener en cuenta que el funcionamiento entre un disco HDD y SSD no tiene nada que ver, por lo que las ventajas que representó AHCI en su momento para los HDD (velocidad de salto del cabezal entre lineas de los diferentes sectores, etc.) no suponen ninguna ventaja en un SSD.

Aunque cubrió la necesidad al principio (y aún se sigue utilizando en algunos casos), era evidente que AHCI suponía una limitación importante a la hora de explotar al máximo las capacidades del almacenamiento Flash, dejando clara la necesidad de contar con un protocolo de comunicación nativo para ese tipo de almacenamiento.

NVMe

NVMe, o NVM express, viene de Non-Volatile Memory Express, y es un protocolo de comunicación que ha sido diseñado partiendo de cero y pensado específicamente para trabajar con almacenamiento de tipo Flash. Nace justamente de esa necesidad que puso de manifiesto el uso de AHCI en los primeros SSD.

A diferencia del primero, NVMe está optimizado para la lectura de disco aleatoria propia de las memorias Flash. Además, esta pensado para funcionar exclusivamente con PCIe como interfaz de conexión, en vez de con SATA, por tal de poder aprovecharse al máximo de la baja latencia y el paralelismo que permite PCIe.

Lo anterior se acaba traduciendo en un límite de operaciones por segundo (IOPS) muchísimo mayor, y una latencia considerablemente más baja.

Aunque en sus inicios, únicamente las unidades SSD más caras hacías uso de NVMe, a día de hoy su uso es ya muy generalizado. NVMe ha desbancado a AHCI y se ha convertido en el nuevo estándar de facto para el almacenamiento Flash.

Factor de Forma: 2.5″ o M.2

Hardware. SSD. Factor de Forma

Hasta ahora era relativamente sencillo diferenciar entre una unidad SSD y un disco HDD, pues aunque internamente no tienen absolutamente nada que ver, externamente ambas solían adoptar el clásico formato de 2.5 pulgadas. la llegada de las unidades NVMe que se conectan por PCIe, sin embargo, también ha venido acompañada de un nuevo factor de forma que poco a poco ha ido desplazando al clásico esquema de 2.5 pulgadas: el formato M.2.

2.5″

La verdad es que no hay mucho que decir del formato de 2.5 pulgadas, ya que, junto al formato de 3.5 pulgadas, constituye el factor de forma mas común de los discos HDD, y también de las primeras unidades SSD que se comercializaron.

Aunque internamente un SSD no se parece en nada a un HDD, las primeras unidades SSD adoptaron ese formato justamente para poder ser alojadas en el mismo compartimento destinado para los discos duros HDD. Asimismo, lo más común es que vayan conectadas a la placa base a través de un conector SATA, al igua que los HDD.

Mas allá de esa cuestión de compatibilidad, sin embargo, no hay ninguna necesidad de diseño en un SSD que obligue a adoptar ese tipo de formado. Es por ello que, a medida que se fue generalizando el uso de PCIe como interfaz de conexión, esa cuestión de compatibilidad perdió su razón de ser, lo que nos lleva a M.2.

M.2

M.2 es un factor de forma que nació específicamente para las unidades SSD. Estéticamente es mucho más pequeño que el formato de 2.5 pulgadas, pareciéndose mucho más a un módulo de memoria RAM. El tamaño, sin embargo, puede variar entre unas unidades y otras, lo que repercute directamente con la capacidad que ofrecen.

El formato M.2 viene con su propio conector físico, por lo que para que para poder conectar un unidad M.2, la placa base deberá contar con un puerto de conexión específico para este formato.

A nivel de estándar de conexión, el conector M.2 puede funcionar internamente con SATA o con PCIe, dependiendo de lo que haya decidido soportar el fabricante. Aunque opere con PCIe, sin embargo, una unidad M.2 no se puede conectar a un puerto PCIe como el de la tarjeta gráfica, sino que la conexión debe ser mediante el slot M.2 diseñado para ese tipo de unidades.

Tipos de Unidades SSD Más Comunes

A la hora de comercializar sus unidades SSD, los fabricantes generalmente las clasifican según aspectos como el factor de forma, el protocolo de comunicación o la interfaz utilizada, formando un juego de palabras en el que a veces no se acaba de precisar del todo bien lo que

SSD 2.5″ SATA

Este es el tipo que engloba a las primeras unidades SSD que se comercializaron. En aquel entonces, aún no existía la especificación NVMe, ni se había empezado a utilizar el factor de forma M.2. Así pues, estas unidades utilizaban el mismo formato de 2.5″ que comúnmente vemos en los HDD, y al igual que estos, se conectaban a la placa a través de la interfaz SATA (utilizando el protocolo AHCI).

Ahora mismo, no se puede decir que sea una tipologia que este en desuso, pero dado el cuello de botella que suponen SATA (y AHCI), lo cierto es que se han visto claramente superados, y su uso esta mas bien centrado en equipos de gama baja. También son la única opción a la hora de sustituir el HDD de tu viejo portátil y darle una segunda vida con un SSD que podrás alojar en su lugar

SSD M.2 SATA

Aquí tenemos a las unidades que adoptan el factor de forma M.2, mucho más pequeño que el clásico de 2.5 pulgadas, pero que, a pesar de hacer uso del conector PCIe del slot M.2, internamente sigue haciendo uso de SATA para la transmisión de datos.

A pesar de que se las conoce con la denominación de M.2 SATA, lo cierto es que sería mas preciso conocerlas bajo el nombre de M.2 AHCI, puesto que es el protocolo AHCI el que permite que la unidad se comporte como si estuviera conectada a través de SATA, aun haciendo uso de un conector diferente.

Así pues, a pesar de su diferencia física con respecto a las unidades de 2.5 pulgadas SATA, no suponen ninguna mejora en rendimiento con respecto a las anteriores, y que siguen estando sujetas a los mismos cuellos de botella. Esto es importante tenerlo en cuenta, porque generalmente se asocia la denominación M.2 a un mejor rendimiento, y como ves, esto no es necesariamente así.

SSD M.2 NVMe PCIe

Las unidades M.2 que si suponen una clara mejora en rendimiento son las de tipo NVMe, y que se conectan con PCIe. Por fuera apenas se distinguen de las M.2 que operan con SATA, si no fuera por la propia etiqueta o por el conector, que en este caso solo suele tener una muesca, a diferencia de las unidades que funcionan con SATA, que tienen dos.

La diferencia principal aquí la tenemos a nivel de la lógica de conexión interna, ya que gracias a contar con NVMe en combinación con el bus de conexión PCIe, ofrecen un rendimiento muy por encima de las anteriores. Además, dentro de ese tipo de unidades también existirán diferencias muy notables, dependiendo, por ejemplo, de la versión del estándar PCIe con la que opere, y el numero de carriles que permita gestionar el puerto.

Todos estos parámetros suelen venir identificados en la ficha técnica de la unidad. A modo de ejemplo, en una unidad NVMe PCIe 3.0 x4 estamos hablando de la versión 3.0 de PCIe, y un conector que soporta 4 carriles. El ancho de banda teórico en este caso sería de 4.000 MB/s (en la practica suele ser menos). Con la versión 4.0 de PCIe, sin embargo, estaríamos hablando de un ancho de banda de entre 7.000 y 8.000 MB/s.

Referencias y Más Información

A %d blogueros les gusta esto:
search previous next tag category expand menu location phone mail time cart zoom edit close