USD

Habilitar la interfaz SSD NVMe en un kit de evaluación Xilinx ZCU102

Por Design Gateway Co., Ltd.

Colaboración de Editores de Digi-Key de América del Norte

Descripción general

La familia MPSoC Zynq® UltraScale+™, basada en la arquitectura Xilinx® UltraScale™ MPSoC, integra un sistema de procesamiento basado en ARM (PS) de 64 bits de cuatro núcleos o de dos núcleos y la arquitectura UltraScale de lógica programable (PL) Xilinx en un solo dispositivo. También se incluye memoria en el chip, interfaces de memoria externa multipuerto y un rico conjunto de interfaces de conectividad periférica, especialmente, un transceptor GTH de 16.3 Gbps que tiene la capacidad de soportar una interfaz de dispositivo de almacenamiento PCI Express® Gen3 como una unidad SSD NVMe. Este artículo demuestra la solución de la implementación de la interfaz de la unidad de estado sólido (SSD) NVMe en el Kit de evaluación ZCU102 de Xilinx mediante el uso del núcleo NVMeG3-IP de Design Gateway, que es capaz de lograr un rendimiento increíblemente rápido: 2.319 MB/s de escritura y 3.347 MB/s de lectura.

Introducción al kit de evaluación de Zynq® UltraScale+ MPSoC ZCU102

El ZCU102 es una placa de evaluación de propósito general para la creación de prototipos rápidos basado en el dispositivo MPSoC XCZU9EG-2FFVB1156E. En la placa se incluyen un SODIMM DDR4 de alta velocidad e interfaces de memoria de componentes, puertos de expansión FMC, transceptores seriales de varios gigabits por segundo, una variedad de interfaces periféricas y lógica FPGA para diseños personalizados del usuario, todo lo cual proporciona una plataforma de prototipos flexible.

Imagen del kit de evaluación de Xilinx ZCU102Figura 1: Kit de evaluación ZCU102. (Fuente de la imagen: Xilinx Inc.)

El ZCU102 proporciona capacidades lógicas programables para crear aplicaciones de última generación como la 5G Wireless, la próxima generación de sistemas avanzados de asistencia al conductor (ADAS) y soluciones industriales de Internet de las cosas (IIoT).

De todos modos, para la aplicación que requiere un almacenamiento de datos externo de alto rendimiento y alta fiabilidad como las unidades SSD NVMe, se necesita una solución adecuada que aproveche el transceptor GTH para la interfaz de conformidad con el PCI Express® Gen3.

Introducción al almacenamiento de SSD NVMe

NVM Express (NVMe) define la interfaz para que el controlador de host acceda como SSD por PCI Express. NVM Express optimiza la emisión del comando y el proceso de finalización utilizando solo dos registros (emisión del comando y finalización del comando). Por lo demás, NVMe soporta el funcionamiento en paralelo al admitir hasta 64K comandos en una sola cola. Las entradas de comandos de 64K mejoran el rendimiento de la transferencia tanto para el acceso secuencial como para el aleatorio.

Los discos NVMe han allanado el camino para el almacenamiento de datos y la computación a muy altas velocidades. Mediante el uso de la tecnología PCIe Express® Gen3, las modernas unidades SSD NVMe pueden alcanzar velocidades de hasta 40 Gbit/s de rendimiento máximo.

Un ejemplo de un dispositivo de almacenamiento NVMe se muestra aquí.

Implementación del controlador de host NVMe en el ZCU102

Diagrama de la implementación de NVMeFigura 2: Implementación de NVMe. (Fuente de la imagen: Design Gateway)

Convencionalmente, el host de NVMe se implementa mediante el uso de un procesador de host que funciona con un controlador PCIe para transferir datos hacia y desde la SSD de NVMe. El protocolo NVMe se implementa para las comunicaciones de los controladores de los dispositivos con el periférico de la CPU del controlador PCIe conectado a través de un bus de muy alta velocidad. Se necesita una memoria DDR externa para el almacenamiento de datos y la cola de comandos para transferir los datos entre el controlador PCIe y el SSD.

Dado que un Bloque Integrado PCIe Gen3 no está disponible en un dispositivo FPGA XCZU9EG-2FFVB1156E en el ZCU102, no es posible un enfoque de implementación convencional.

Design Gateway propone una solución utilizando el núcleo NVMeG3-IP, como se muestra en la figura 2, para habilitar una interfaz NVMe SSD para un dispositivo MPSoC Zynq® UltraScale+™ para el que no se dispone de un bloque integrado PCIe. La interfaz NVMe para el ZCU102 permite la construcción de un sistema RAID multicanal de muy alto rendimiento y con el menor consumo posible de recursos FPGA. La licencia básica de NVMeG3-IP incluye el ejemplo de diseño de referencia que ayuda a los diseñadores a reducir el tiempo y el costo de desarrollo.

Descripción general de NVMeG3-IP de Design Gateway

El NVMe IP Core con PCIe Gen3 Soft IP (NVMeG3-IP) es ideal para acceder a una SSD NVMe sin un bloque integrado PCIe, CPU y memoria externa. NVMeG3-IP incluye PCIe Gen3 Soft IP y 256 Kbyte de memoria. Esta solución está recomendada para la aplicación que requiere el almacenamiento de NVMe SSD con un rendimiento de ultra alta velocidad mediante el uso de una FPGA de bajo costo que no contiene un bloque integrado PCIe.

Diagrama de bloque NVMeG3-IPFigura 3: Diagrama de bloques NVMeG3-IP. (Fuente de la imagen: Design Gateway)

Características de NVMeG3-IP

NVMeG3-IP tiene muchas características, algunas de las cuales se destacan a continuación:

  • Implementar la capa de aplicación, la capa de transacción, la capa de enlace de datos y algunas partes de la capa física para acceder a la SSD NVMe sin utilizar la CPU
  • Operar con Xilinx PCIe PHY IP configurado como un PCIe Gen3 de 4 carriles (interfaz de bus de 128 bits)
  • Incluye un búfer de datos de 256 Kbytes de RAM
  • Interfaz de usuario simple a través de tipos dgIF
  • Admite seis comandos, es decir, Identificar, Apagar, Escribir, Leer, SMART y Purgar (admite comandos adicionales como opcional)
  • Dispositivo NVMe compatible:
    • Código de clase base:01h (almacenamiento masivo), Código de subclase:08h (no volátil), Interfaz de programación:02h (NVMHCI)
    • MPSMIN (Tamaño mínimo de la página de memoria): 0 (4Kbyte)
    • MDTS (Tamaño de transferencia de datos máximo): Al menos 5 (128 Kbyte) o 0 (sin limitación)
    • Unidad LBA: 512 bytes o 4096 bytes
  • La frecuencia del reloj del usuario debe ser mayor o igual al reloj del PCIe (250 MHz para Gen3)
  • Diseño de referencia disponible:
    • ZCU102 con tarjeta adaptadora AB17-M2FMC
    • KCU105 con tarjeta adaptadora AB18-PCIeX16/AB16-PCIeXOVR
    • VCU118 con tarjeta adaptadora AB18-PCIeX16

Design Gateway desarrolló el NVMeG3-IP para que se ejecutara como un controlador de host NVMe para acceder a un SSD NVMe. La interfaz de usuario y las características estándar están diseñadas para facilitar su uso sin necesidad de conocer el protocolo NVMe. La característica adicional de NVMeG3-IP es el PCIe soft IP incorporado que implementa la capa de enlace de datos y algunas partes de la capa física del protocolo PCIe por pura lógica. Así, NVMeG3-IP puede funcionar en una FPGA, que no tiene un bloque integrado PCIe, usando el soft IP del PCIe incorporado y el núcleo del PCIe PHY IP de Xilinx. Xilinx PCIe PHY IP es un núcleo IP gratuito disponible que incluye un transceptor y un ecualizador lógico.

NVMeG3-IP soporta seis comandos de NVMe, es decir, Identificar, Apagar, Escribir, Leer, SMART y Purgar. El BlockRAM de 256 Kbytes está integrado en el NVMeG3-IP para actuar como un búfer de datos. El sistema no necesita una CPU y una memoria externa. Para obtener más información del NVMeG3-IP, consulte la ficha técnica que se puede descargar de nuestra página web.

Los usos de los recursos de la FPGA en el dispositivo FPGA XCZU9EG-2FFVB1156E se muestran en la Tabla 1 de abajo.

Familia Dispositivos de ejemplo Fmax (MHz) Regulaciones CLB CLB LUT CLB IOB BRAMTile PLL GTX Herramientas de diseño
Zynq-Ultrascale+ XCZU9EG-2FFVB1156E 300 18982 17109 3690 - 70 - - Vivado2017.4

Tabla 1: Ejemplo de estadísticas de implementación para el dispositivo de Ultrascale/Ultrascale+

Resultado de la aplicación y el rendimiento del ZCU102

La figura 4 muestra la visión general del diseño de referencia basado en el ZCU102 para demostrar el funcionamiento del NVMeG3-IP. El módulo NVMeG3IPTest en el sistema de demostración incluye con los siguientes módulos: TestGen, LAxi2Reg, CtmRAM, IdenRAM y FIFO.

Para más detalles del diseño de referencia de NVMeG3-IP, consulte el Documento de diseño de referencia de NVMeG3-IP que se encuentra en el sitio web de Design Gateway.

Diagrama del diseño de referencia del NVMeG3-IPFigura 4: Visión general del diseño de referencia de NVMeG3-IP. (Fuente de la imagen: Design Gateway)

El sistema de demostración está diseñado para escribir/verificar datos con el NVMe SSD en el ZCU102. El usuario controla la operación de prueba a través de una consola de serie. Para que la SSD NVMe se interconecte con la ZCU102, se requiere una placa adaptadora AB17-M2FMC como se muestra en la Figura 5.

Imagen del entorno de demostración de NVMeG3-IP instalado en el Xilinx ZCU102Figura 5: Entorno de demostración de NVMeG3-IP instalado en ZCU102. (Fuente de la imagen: Design Gateway)

El resultado de la prueba de ejemplo al ejecutar el sistema de demostración en el ZCU102 mientras se utiliza el Samsung 970 Pro de 512 GB se muestra en la Figura 6.

Diagrama del rendimiento de lectura y escritura de la NVMe SSD en el Xilinx ZCU102Figura 6: Rendimiento de lectura/escritura de la NVMe SSD en el ZCU102 utilizando el Samsung 970 PRO S. (Fuente de la imagen: Design Gateway)

Conclusión

El núcleo NVMeG3-IP proporciona una solución para habilitar la interfaz SSD NVMe en el kit de evaluación ZCU102 y también la solución para la familia de dispositivos MPSoC Zynq® UltraScale+™ de Xilinx® donde no está disponible un bloque integrado PCIe. NVMeG3-IP está diseñado con el objetivo de lograr el mayor rendimiento posible con el menor uso posible de recursos FPGA para el acceso a NVMe SSD sin necesidad de una CPU. Es muy adecuado para el almacenamiento de alto rendimiento de NVMe sin la invención de la CPU y capaz de implementar múltiples interfaces SSD de NVMe utilizando transceptores GTH sin las limitaciones del número de bloques integrados PCIe disponibles en el dispositivo FPGA.

Descargo de responsabilidad: Las opiniones, creencias y puntos de vista expresados por los autores o participantes del foro de este sitio web no reflejan necesariamente las opiniones, las creencias y los puntos de vista de Digi-Key Electronics o de las políticas oficiales de Digi-Key Electronics.

Acerca de este autor

Design Gateway Co., Ltd.

Acerca de este editor

Editores de Digi-Key de América del Norte