PetaLinux NVMe supera los 7 GB/s en el kit de evaluación AMD ZCU106 con la solución de Design Gateway

Por Design Gateway Co., Ltd.

La mayoría de los diseños de MPSoC Zynq™ UltraScale+™ en Embedded Linux sólo alcanzan un rendimiento de unos 2 GB/s cuando se utiliza el controlador NVMe estándar con el bloque duro PCIe Gen3. Este artículo presenta la primera solución PetaLinux NVMe del mundo que funciona a velocidad PCIe Gen4 sin depender del PCIe Hard Block de la FPGA. Este avance se consigue utilizando NVMe IP Core junto con un controlador de dispositivo a medida de Design Gateway. En el kit de evaluación AMD ZCU106, este artículo demostrará que es posible una lectura de aproximadamente 7.5 GB/s y una escritura de 6.9 GB/s con una SSD NVMe Gen4 convencional y mostrará cómo la tecnología de Design Gateway libera todo el potencial de NVMe de alta velocidad en plataformas Linux integradas.

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

El kit de evaluación AMD ZCU106 está construido sobre la plataforma MPSoC Zynq™ UltraScale+™, que integra procesadores Arm Cortex®-A53 de cuatro núcleos con lógica programable de alta velocidad. Esta potente combinación permite a los ingenieros ejecutar sistemas operativos completos como PetaLinux, permitiendo el control del software, la gestión de E/S de alta velocidad y el funcionamiento del acelerador FPGA en un único entorno.

Imagen de AMD Zynq™ UltraScale+™ EV (haga clic para ampliar)Figura 1: AMD Zynq™ UltraScale+™ EV. (Fuente de la imagen: Advanced Micro Devices, Inc.)

Imagen de Linux (PetaLinux) ejecutándose en AMD Zynq™ UltraScale+™ MPSoCFigura 2: Linux (PetaLinux) ejecutándose en AMD Zynq™ UltraScale+™ MPSoC - combinando la flexibilidad del software con la aceleración del hardware FPGA. (Fuente de la imagen: AMD)

Sin embargo, para aprovechar plenamente el potencial de rendimiento de las unidades SSD PCIe Gen4 NVMe, los desarrolladores también deben comprender cómo se comporta la pila NVMe tradicional de Linux en los SoC integrados. Incluso con la potente arquitectura heterogénea del ZCU106, los sistemas PetaLinux pueden encontrar limitaciones de rendimiento y eficiencia, un reto que se analiza en la siguiente sección.

Concepto básico: por qué NVMe en PetaLinux suele provocar cuellos de botella

Aunque PetaLinux proporciona una potente capa de software para controlar el hardware y gestionar la E/S de datos, su implementación convencional de NVMe no está optimizada para un rendimiento sostenido de alto rendimiento. La interacción entre el núcleo Linux y el sistema de procesamiento basado en ARM introduce múltiples fuentes de ineficacia que limitan la utilización del ancho de banda incluso cuando los recursos PCIe Gen4 están disponibles:

  • ⚙️ Sobrecarga de la pila del Kernel: El controlador NVMe estándar se ejecuta por completo dentro del núcleo de Linux, lo que implica múltiples cambios de contexto, manejo de interrupciones, copias de búfer y mantenimiento de la caché. Estas operaciones controladas por software limitan las IOPS e impiden la plena utilización del ancho de banda.
  • Limitaciones de programación y profundidad de cola: Las configuraciones NVMe predeterminadas suelen utilizar colas poco profundas y tamaños de bloque de E/S pequeños. Combinado con la sobrecarga de programación del núcleo, la utilización de la CPU se satura antes de que lo haga el ancho de banda del enlace.
  • Limitaciones del subsistema de CPU y memoria: En los SoC integrados como el MPSoC Zynq UltraScale+, el ancho de banda DDR y el tráfico de coherencia de caché entre el PS y el PL pueden convertirse en el verdadero techo de rendimiento.
  • Gestión de potencia e IRQ: Los sistemas configurados con gobernadores de CPU bajo demanda o afinidades de interrupción desequilibradas pueden experimentar un rendimiento reducido bajo cargas de trabajo de E/S pesadas.
  • Impacto en el mundo real: Incluso los sistemas bien ajustados que utilizan el controlador NVMe convencional rara vez superan ~1.5-2.5 GB/s. Esto está a solo 50-60% del ancho de banda de 4 GB/s, que es la capacidad total de PCIe Gen3x4.
  • PCIe Hard Block no disponible para Gen4: Aunque ciertos dispositivos SoC incorporan transceptores que admiten velocidades de señalización PCIe Gen4 (16 Gbps por carril), su PCIe Hard Block integrado sigue estando limitado al funcionamiento Gen3. Esta laguna arquitectónica impide que el sistema aproveche todo el potencial del ancho de banda Gen4, lo que limita las aplicaciones de alto rendimiento o intensivas en datos que exigen un rendimiento sostenido de varios gigabytes en plataformas FPGA de coste optimizado.

Superar el límite

Para superar esta limitación de rendimiento, los desarrolladores suelen alejarse de la pila de almacenamiento gestionada por el núcleo y acercarse a la E/S acelerada por hardware o en el espacio de usuario. Hay dos enfoques clásicos:

  • Marcos SPDK/DPDK: Utilice controladores en modo de sondeo en el espacio de usuario, eliminando los cambios de contexto y las interrupciones del núcleo. Sin embargo, este método consume enormes recursos de la CPU.
  • Descarga FPGA (por ejemplo, motor NVMe-IP + DMA): Traslada el procesamiento de comandos, las colas y la transferencia de datos a la lógica programable, logrando un rendimiento cercano a la velocidad del cable con un rendimiento determinista a nivel de hardware.

Arquitectura de la solución

Imagen de comparación de soluciones NVMe en PetaLinux utilizando Zynq UltraScale+.Figura 3: Comparación de soluciones NVMe en PetaLinux con Zynq UltraScale+. (Fuente de la imagen: Design Gateway)

La solución DMA PetaLinux de Design Gateway sustituye la tradicional PCIe Hard IP y el controlador NVMe por un núcleo Soft NVMeG4-IP y un controlador DG NVMe personalizado.

Esta arquitectura descargada de hardware ejecuta PCIe Gen4 enteramente a través de transceptores FPGA, logrando un rendimiento de 7 GB/s en plataformas Zynq UltraScale+. Al combinar NVMeG4-IP y DMA dual-AXI bajo un controlador DG unificado, el sistema elimina la sobrecarga de la CPU, permitiendo un rendimiento Gen4 x4 completo en PetaLinux.

Características principales

  • NVMe Gen4 Soft IP en PL - solución NVMe completa descargada de hardware que integra un núcleo PCIe Gen4 Soft IP, eliminando la necesidad del PCIe Hard Block y utilizando los transceptores FPGA a su máximo potencial.
  • Canales DMA dobles para duplicar el ancho de banda DMA, alcanzando los 8 GB/s para la velocidad PCIe Gen4.
  • Controlador PetaLinux personalizado con interfaces limpias de control y monitorización, bien optimizado para eliminar el cuello de botella en el movimiento de datos Software-Hardware.
  • Interfaces compatibles con AXI para una fácil integración en las canalizaciones de datos PL
  • Paquete completo de demostración con código fuente, scripts, documentación e instrucciones rápidas de puesta en marcha
  • Diseño portátil adaptable a cualquier dispositivo AMD FPGA que soporte Linux embebido.

Resultado de la aplicación y el rendimiento del ZCU106

La figura 4 muestra la vista general del diseño de referencia basado en el kit de evaluación AMD ZCU106 (XCZU7EV). El sistema integra la IP NVMe Gen4 Soft de Design Gateway con una arquitectura dual-DMA y un controlador PetaLinux personalizado, lo que permite un acceso de alta velocidad entre la SSD NVMe Gen4 y el SO PetaLinux.

Para obtener más detalles sobre el diseño de referencia de NVMeG4-IP, consulte el documento de diseño de referencia de NVMeG4-IP que se ofrece en el sitio web de Design Gateway.

Imagen del documento de diseño de referencia de NVMeG4-IP con DMA en PetaLinuxFigura 4: Visión general del diseño de referencia. (Fuente de la imagen: Design Gateway)

El sistema de demostración está diseñado para escribir y verificar datos con el NVMe SSD en el ZCU102. La ejecución de la prueba se controla a través de una consola en serie en PetaLinux utilizando la aplicación DG NVMe. Esta aplicación transfiere datos entre la memoria host y la unidad SSD NVMe a través de canales DMA duales para un funcionamiento a alta velocidad. La CPU sólo es responsable de la configuración y la supervisión, mientras que todo el movimiento de datos se gestiona en el hardware.

Se utiliza una placa adaptadora AB17-M2FMC para conectar la SSD NVMe a la ranura FMC-HPC, como se muestra en la figura 5.

Imagen del entorno de demostración instalado en ZCU106Figura 5: Entorno de demostración configurado en ZCU106. (Fuente de la imagen: Design Gateway)

El resultado de la prueba de ejemplo cuando se ejecuta el sistema de demostración en el ZCU106 mientras se utiliza el Samsung 990 Pro de 1 TB se muestra en la Figura 6, confirmando la plena utilización del ancho de banda PCIe Gen4 x4 en PetaLinux.

Imagen de la comparación del rendimiento de lectura/escritura de las SSD NVMe en ZCU106Figura 6: Comparación del rendimiento de lectura/escritura de las SSD NVMe en ZCU106: controlador NVMe tradicional frente a la solución NVMe de DG. (Fuente de la imagen: Design Gateway)

Conclusión

La IP NVMe Gen4 Soft de Design Gateway para PetaLinux transforma la Zynq UltraScale+ en una plataforma de almacenamiento de alto rendimiento, logrando un rendimiento de 7 GB/s a velocidad Gen4, pionero en el mundo. Al descargar completamente el protocolo NVMe en la lógica de hardware, junto con un controlador de dispositivos PetaLinux bien optimizado, la solución elimina los cuellos de botella a nivel de software, maximiza la eficiencia de la ruta de datos y escala el ancho de banda para cargas de trabajo de DAQ y procesamiento de video. El diseño es portátil, eficiente e ideal para sistemas de borde o embebidos que exigen tanto un alto rendimiento como determinismo.

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 DigiKey o de las políticas oficiales de DigiKey.

Acerca de este autor

Design Gateway Co., Ltd.