借助 Design Gateway 的解决方案,AMD ZCU106 评估套件的 PetaLinux NVMe 的速度突破 7 GB/s
2026-03-11
当使用搭载 PCIe 3.0 硬核的标准 NVMe 驱动时,基于嵌入式 Linux 的大多数 Zynq™ UltraScale+™ MPSoC 设计,只能实现约 2 GB/s 的吞吐量。本文介绍全球首个不依赖 FPGA PCIe 硬核、却以 PCIe 4.0 速度运行的 NVMe PetaLinux 解决方案。这一性能突破,是通过 NVMe IP 核搭配来自 Design Gateway 的定制化设备驱动实现的。本文通过 AMD ZCU106 评估套件,演示使用主流 NVMe 4.0 SSD 可以实现约 7.5 GB/s 的读取速度、6.9 GB/s 的写入速度,并展示 Design Gateway 的技术如何在嵌入式 Linux 平台上释放高速 NVMe 的全部潜力。
Zynq® UltraScale+ MPSoC ZCU102 评估套件简介
AMD ZCU106 评估套件基于 Zynq™ UltraScale+™ MPSoC 平台,集成了四核 Arm Cortex®-A53 处理器和高速可编程逻辑。借助这种功能强大的组合,工程师能够运行 PetaLinux 等完整的操作系统,从而在单一环境中实现软件控制、高速 I/O 管理和 FPGA 加速器运行。
图 1:AMD Zynq™ UltraScale+™ 评估板。(图片来源:Advanced Micro Devices, Inc.)
图 2:在 AMD Zynq™ UltraScale+™ MPSoC 上运行的 Linux (PetaLinux) — 将软件的灵活性与 FPGA 硬件加速相结合。(图片来源:AMD)
然而,要充分释放 PCIe 4.0 NVMe SSD 的全部性能潜力,开发者还必须深入了解传统 Linux NVMe 协议栈在嵌入式 SoC 上的运行机制。即使 ZCU106 拥有强大的异构架构,PetaLinux 系统也会遇到吞吐量和效率方面的限制,下文将探讨这一挑战。
概念入门:为什么 PetaLinux 上的 NVMe 经常成为瓶颈?
尽管 PetaLinux 为硬件控制与数据 I/O 管理提供了功能强大的软件层,但其常规的 NVMe 实施方案并未针对持续高吞吐量性能做专项优化。Linux 内核与基于 ARM 的处理系统之间的交互引入了多个低效因素,即使 PCIe 4.0 资源充足,这些因素也会制约带宽利用率:
- ⚙️内核栈开销:标准 NVMe 驱动完全在 Linux 内核中运行,涉及多次上下文切换、中断处理、缓冲区复制和缓存维护。这些软件驱动型运行制约了 IOPS,无法充分利用带宽。
- 调度和队列深度约束:默认的 NVMe 配置通常采用浅队列和小 I/O 数据块。加上内核调度开销的影响,CPU 利用率会先于链路带宽达到饱和。
- CPU 和存储器子系统约束:在 Zynq UltraScale+ MPSoC 等嵌入式片上系统中,在 PS 与 PL 之间的 DDR 带宽及缓存一致性流量,将成为实际性能上限。
- 功耗和 IRQ 管理:配置了按需 CPU 调频调控器或中断亲和性失衡的系统,在高负载 I/O 工况下会产生性能衰减。
- 实际影响:即使是使用传统 NVMe 驱动的深度调优系统,速度也很少超过 ~1.5–2.5 GB/ss。这与 4 GB/s 带宽(PCIe Gen3x4 的全部功能)相比,仅相差 50 - 60% 。
- PCIe 4.0 硬核模块不可用:虽然某些 SoC 器件配备了支持 PCIe 4.0 信号传输速率(每通道 16 Gbps)的收发器,但其内置 PCIe 硬核模块仍仅支持 3.0 工作模式。这种架构上的差距使系统无法充分发挥 4.0 带宽的潜力,从而制约了高性能或数据密集型应用的发展,而这类应用要求在成本优化型 FPGA 平台上实现持续稳定的数千兆字节吞吐量。
突破极限
为了突破这种性能限制,开发人员通常会舍弃内核管理存储栈,转而采用用户态或硬件加速 I/O 技术。有两种主流方法:
- SPDK/DPDK 框架:在用户态采用轮询模式驱动,从而彻底消除内核上下文切换与中断。不过,这种方法会消耗大量的 CPU 资源。
- FPGA 卸载(如 NVMe-IP + DMA 引擎):将命令处理、队列调度及数据传输交由可编程逻辑实现,可达成近线速吞吐,并具备硬件级确定性性能。
解决方案架构
图 3:采用 Zynq UltraScale + 器件,在 PetaLinux 系统下的 NVMe 方案对比。(图片来源:Design Gateway)
Design Gateway 的 DMA PetaLinux 解决方案采用 NVMeG4-IP 软核和定制化 DG NVMe 驱动,取代了传统的 PCIe 硬核 IP 和 NVMe 驱动。
这种硬件卸载架构完全通过 FPGA 收发器运行 PCIe 4.0,在 Zynq UltraScale+ 平台上实现了 7 GB/s 的吞吐量。通过在统一的 DG 驱动下整合 NVMeG4-IP 和双 AXI DMA,系统消除了 CPU 开销,可在 PetaLinux 上实现满额 PCIe 4.0 x4 性能。
主要特性
- PL 端 NVMe 4.0 软核 IP —完整的硬件卸载 NVMe 解决方案,集成了 PCIe 4.0 软核 IP,无需 PCIe 硬核模块,可最大限度地发挥 FPGA 收发器的性能。
- 双 DMA 通道可将 DMA 带宽提高一倍,PCIe 4.0 速度可达 8 GB/s。
- 定制化 PetaLinux 驱动 具有简洁的控制和监控界面,经过精心优化,消除了软硬件数据传输的瓶颈。
- 兼容 AXI 兼容接口,可轻松集成到 PL 数据通路中
- 完整的演示软件包,包括源代码、脚本、文档和快速启动说明
- 便携式 设计适用于任何支持嵌入式 Linux 的 AMD FPGA 设备。
基于 ZCU106 评估板的方案实现与性能实测结果
图 4 显示了基于 AMD ZCU106 评估套件 (XCZU7EV) 的参考设计概览。该系统将 Design Gateway 的 NVMe 4.0 软核 IP 与双 DMA 架构和定制化 PetaLinux 驱动集成在一起,实现了 NVMe 4.0 SSD 与 PetaLinux 操作系统之间的高速访问。
关于 NVMeG4-IP 参考设计的更多详情,请参考 Design Gateway 网站上提供的 NVMeG4-IP 参考设计文件。
图 4:参考设计概览。(图片来源:Design Gateway)
该演示系统旨在对 ZCU102 上的 NVMe SSD 进行数据写入和验证。在 PetaLinux 系统环境下,测试执行功能通过串口控制台并使用 DG NVMe 应用进行控制。该应用通过双 DMA 通道完成主机内存与 NVMe SSD 之间的数据传输,以实现高速运行。CPU 仅负责配置与监控,所有数据传输工作均在硬件中完成。
通过 AB17-M2FMC 转接板将 NVMe 固态硬盘连接到 FMC-HPC 插槽,如图 5 所示。
图 5:在 ZCU106 上设置的演示环境。(图片来源:Design Gateway)
图 6 所示为在 ZCU106 评估板上运行演示系统时,使用 1 TB Samsung 990 Pro 的测试结果示例,验证了 PetaLinux 可充分利用 PCIe 4.0 x4 的带宽。
图 6:通过 ZCU106 评估板对比 NVMe SSD 读/写性能:传统 NVMe 驱动与 DG NVMe 解决方案。(图片来源:Design Gateway)
结语
Design Gateway 面向 PetaLinux 开发的 NVMe 4.0 软核 IP,可将 Zynq UltraScale+ 打造为高性能存储平台,并在 PCIe 4.0 速率下实现了全球首创的 7GB/s 吞吐量。通过将 NVMe 协议完全卸载到硬件逻辑中,再加上经过精心优化的 PetaLinux 设备驱动,该解决方案彻底消除了软件层瓶颈,最大限度地提高了数据路径效率,并为 DAQ 和视频处理工作负载拓展了带宽。该设计便携、高效,非常适合需要高吞吐量和确定性性能的边缘或嵌入式系统。
免责声明:各个作者和/或论坛参与者在本网站发表的观点、看法和意见不代表 DigiKey 的观点、看法和意见,也不代表 DigiKey 官方政策。


