Las primeras controladoras flash para unidades SSD NVMe compatible con PCIe 5.0 ya son una realidad y tienen la capacidad de conseguir por primera vez unidades de gigabytes por segundo en dos cifras. Pero, ¿qué ventajas tiene la adopción de la tecnología NVMe PCIe 5.0 a nivel doméstico y qué dificultades entraña?
Una de las máximas en rendimiento es que un sistema es tan lento como le deje la parte más lenta del mismo. Es por ello que de cara a conseguir rendimiento se esté buscando no solo aumentar la velocidad de componentes como los procesadores y la RAM, sino también de las unidades de almacenamiento. Lo cual se está consiguiendo al adoptar los diferentes estándares PCIe para los discos NVMe.
¿Qué es una controladora flash?
Una controladora flash es una pieza de hardware que se sitúa entre la memoria NVMe o cualquier otro tipo de memoria NAND Flash y la CPU o GPU que quiere acceder a ella. Su trabajo es traducir las direcciones virtuales en direcciones físicas que permiten el acceso directo a los bloques de memoria NVMe que componen la unidad de almacenamiento SSD.
A día de hoy, cuando una CPU o una GPU accede a cualquier espacio de la memoria lo hace utilizando un direccionamiento común en el que todas las memorias a las que tienen acceso dentro de la jerarquía están unificadas. Son las diferentes MMU integradas tanto en CPU como en GPU las encargadas de comunicarse con los diferentes tipos de memoria en el sistema, RAM, VRAM, pero también la RAM no volátil o NVRAM, lo cual es la memoria NVMe en los SSD.
Pero el direccionamiento virtual es diferente al direccionamiento físico y de ahí que se necesite un proceso de traducción, el cual es llevado por la controladora flash. Para ello hace uso de una memoria desde la cual almacena las tablas de conversión de dirección, los datos en origen en forma de direccionamiento virtual y los datos de destino en forma de direccionamiento físico. Dicha memoria se puede encontrar en la unidad SSD NVMe, puede ser la RAM del sistema en el caso de un diseño DRAM-Less o estar integrada como memoria empotrada dentro de la propia controladora flash
Controladoras Flash para NVMe PCIe 5.0, un análisis
Una de las primeras controladoras Flash compatibles con un PCI Express 5.0 es la Marvell Bravera SC5. La cual permite transmitir datos con un ancho de banda de 14 GB/s bajo un bus PCI Express 5.0 de 4 líneas, lo que supone duplicar el ancho de banda respecto a la misma cantidad de líneas bajo PCI Express 4.0, pero tampoco suponen saturar el bus en ambos casos, ya que pueden llegar a los 16 GB/s y a los 7 GB/s respectivamente.
Hay que tener en cuenta que una controladora flash funciona de la misma manera que las interfaces que comunican la memoria RAM o VRAM con las CPUs y GPUs. Se encargan de procesar las peticiones de lectura y escritura que realiza el procesador. Y debido a que a día de hoy tenemos ya de entrada varios núcleos en la CPU es muy importante que exista una gran cantidad de canales de acceso en una controladora flash. La Marvell Bravera SC5 dispone de 16 canales en total, por lo que se le pueden conectar hasta 16 chips NAND Flash de un solo canal u 8 de doble canal.
Los canales son la cantidad de chips de memoria NVMe al que la controladora flash puede hablar de manera simultánea. Los SSD NVMe de gama baja suelen tener 2 o 4 canales, los de gama alta 8 canales y tenemos casos especiales como el SSD de PlayStation 5 con 12 canales. El hecho que el Marvell Bravera SC5 tenga 16 canales no solo le permite tener una gran capacidad de almacenamiento, sino que demuestra que se trata de una controladora pensada para el mercado de los servidores y no el de los PCs domésticos.
Un alto ancho de banda requiere una alta capacidad de computación
El trasladar datos de una memoria a otra es una de las pesadillas más grandes a las que se han enfrentado los arquitectos de hardware en toda la historia de la informática. El traslado en gran volumen requiere que la CPU o la GPU se pase un buen tiempo ejecutando las ejecuciones pertinentes para ello. Es por eso que desde los albores del tiempo se han creado sistemas hardware que trasladan los datos de una memoria a otra sin participación de la CPU principal y que lo realizan en mucho menos tiempo.
El hecho de darle acceso a la memoria de un SSD NVMe a través del puerto PCI Express a una GPU por ejemplo, no supone que el acceso se pueda realizar de manera directa sin que afecte al rendimiento. En las consolas de nueva generación como PlayStation 5 y ambas Xbox Series X, la inclusión de unidades SSD NVMe ha traído consigo la integración de unidades especializadas encargadas de realizar el traslado, compresión y descompresión de datos desde el SSD a la memoria, las cuales buscan liberar tanto a la CPU como a la GPU de dichos sistemas de dicha carga.
En PC en cambio solo las tarjetas gráficas de NVIDIA y AMD con soporte para DirectX 12 Ultimate disponen de dichas unidades. Lo que lleva a que sea necesario tirar de potencia de computación de cara a gestionar el movimiento de los datos. Si la CPU o la GPU no son lo suficientemente rápidas para realizar dicha gestión entonces se genera un efecto en cadena que provoca que todas las peticiones posteriores se retrasen, haciendo que el total de datos a enviar por fracción de tiempo se retrase.
¿Qué aportan los SSD NVMe PCIe 5.0 aparte de más velocidad?
Debido a que son una evolución lineal respecto a los que utilizan la interfaz PCIe 4.0 podríamos decir que más bien poco, pero el lanzamiento de los SSD NVMe domésticos con PCIe 5.0 va a coincidir con el despliegue del estándar NVMe 2.0, el cual aportará una serie de ventajas que van más allá del aumento de la velocidad del bus. Por lo que ambos factores se combinarán de cara a mejorar este tipo de almacenamiento en un futuro cercano.
Aunque si hemos de destacar una mejora en el PCIe 5.0 en especial es el soporte de Compute Express Link o CXL. Se trata de una característica. que inicialmente solo estará en los servidores y simplifica el acceso del hardware. ¿El motivo? Permite acceder a un SSD NVMe de manera directa sin pasar por el IOMMU del Southbridge, reduciendo la latencia de acceso y haciendo posible la implementación de la controladora flash en la propia CPU, GPU o APU o incluso del uso de la interfaz PCIe CXL para el acceso directo a DIMMs que integran chips NVMe y DDR5 de manera conjunta.