Design Gateway 的解決方案在 AMD 的 ZCU106 評估套件上成功讓 PetaLinux NVMe 傳輸速度突破 7 GB/s
2026-03-11
大多數設計在嵌入式 Linux 上的 Zynq™ UltraScale+™ MPSoC,使用標準 NVMe 驅動程式和 PCIe Gen3 硬體模塊時,傳輸量只能達到約 2 GB/s。本文介紹世界上第一款無需依賴 FPGA 的 PCIe 硬體模塊即可以 PCIe Gen4 速度執行的 NVMe PetaLinux 解決方案。此突破係使用 NVMe IP 核以及 Design Gateway 量身定做的裝置驅動程式達成。本文將以 AMD 的 ZCU106 評估套件為例,說明使用主流 NVMe Gen4 SSD 可以達到約 7.5 GB/s 的讀取速度和 6.9 GB/s 的寫入速度,並展示 Design Gateway 的技術如何在嵌入式 Linux 平台上釋放高速 NVMe 的全部潛力。
Zynq™ UltraScale+™ MPSoC ZCU106 評估套件介紹
AMD 的 ZCU106 評估套件以 Zynq™ UltraScale+™ MPSoC 平台構建,整合四核心 Arm Cortex®-A53 處理器和高速可編程邏輯。此組合功能強大,能讓工程師在單一環境中執行完整的作業系統 (如 PetaLinux) 進行軟體控制、高速 I/O 管理,以及 FPGA 加速器操作。
圖 1:AMD 的 Zynq™ UltraScale+™ EV。(圖片來源:Advanced Micro Devices, Inc.)
圖 2:在 AMD Zynq™ UltraScale+™ MPSoC 上執行的 Linux (PetaLinux),結合軟體的靈活性和 FPGA 硬體加速。(圖片來源:AMD)
然而,要充分發揮 PCIe Gen4 NVMe SSD 效能的潛力,開發人員還必須瞭解傳統的 Linux NVMe 堆疊在嵌入式 SoC 上的運作方式。PetaLinux 系統即使具備 ZCU106 強大的異質架構,其傳輸量和效率仍然可能會受限,以下將探討這些挑戰。
概念入門:為什麼在 PetaLinux 的 NVMe 經常成為瓶頸
雖然 PetaLinux 提供一個強大的軟體層用來控制硬體和管理資料 I/O,但其傳統的 NVMe 實作並未經過最佳化,無法達到持續的高傳輸量效能。Linux 核心與 ARM 架構處理系統之間的互動,會造成多種問題導致效率低下,即使有可用的 PCIe Gen4 資源,也會限制頻寬利用率:
- ⚙️ 核心堆疊開銷:標準的 NVMe 驅動程式完全在 Linux 核心中執行,會涉及多重本文切換、中斷處理、緩衝區複製、快取維護。這些軟體驅動的作業會限制 IOPS,並讓頻寬無法充分利用。
- 調度和隊列深度限制:預設的 NVMe 配置通常使用淺隊列和小型 I/O 區塊,加上核心調度開銷,CPU 使用率會比鏈路頻寬更快達到飽和。
- CPU 和記憶體子系統限制:在 Zynq UltraScale+ MPSoC 等嵌入式 SoC 上,PS 和 PL 之間的 DDR 頻寬和快取一致性流量可能會是真正的效能上限。
- ⚡ 電源與 IRQ 管理:系統若配置為按需 CPU 調度模式或不平衡中斷親和性,在高 I/O 工作負載下,其效率可能會下降。
- 實際影響:即使系統經過良好調校,使用傳統 NVMe 驅動程式,也很少超過約 1.5 至 2.5 GB/s。PCIe Gen3x4 的完整效能為 4 GB/s 頻寬,這僅佔 50% 至 60%。
- 不可用於 Gen4 的 PCIe 硬體模塊:儘管部分具備收發器的 SoC 裝置可支援 PCIe Gen4 訊號傳輸率 (每通道 16 Gbps),但其內建的 PCIe 硬體模塊仍限制使用 Gen3 作業。這種架構上的差距,會讓系統無法充分運用 Gen4 頻寬的潛力,使得高效能或資料密集型應用受限,無法在成本最佳化的 FPGA 平台上達到維持多 Gigabyte 傳輸量要求。
突破極限
為了克服此效能限制,開發人員通常會從核心管理的儲存堆疊,轉向使用使用者空間或硬體加速 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 Gen4,在 Zynq UltraScale+ 平台上達到 7 GB/s 的傳輸量。此系統在統一的 DG 驅動程式下,將 NVMeG4-IP 和雙 AXI DMA 相結合,消除 CPU 開銷,能在 PetaLinux 上達到完整 Gen4 x4 效能。
主要特點
- PL 中的 NVMe Gen4 軟體 IP - 完整的硬體卸載 NVMe 解決方案,整合一個 PCIe Gen4 軟體 IP 核心,因此無需 PCIe 硬體模塊,且可充分運用 FPGA 收發器的能力。
- 雙 DMA 通道 - 可讓 DMA 頻寬翻倍,達到 8 GB/s 的 PCIe Gen4 速度。
- 自訂 PetaLinux 驅動程式 - 具有簡潔的控制和監控介面,且經過充分最佳化,可消除資料在軟硬體傳輸的瓶頸。
- AXI 相容介面 - 便於整合到 PL 資料管道中。
- 完整示範包 - 包含原始碼、腳本、文件、快速入門指南。
- 可攜式設計 - 可適應任何支援嵌入式 Linux 的 AMD FPGA 裝置。
ZCU106 的實作與效能表現
圖 4 顯示以 AMD ZCU106 評估套件 (XCZU7EV) 為中心的公版設計概覽。此系統將 Design Gateway 的 NVMe Gen4 軟體 IP 與雙 DMA 架構和客製化的 PetaLinux 驅動程式整合,促使 NVMe Gen4 SSD 和 PetaLinux 作業系統之間的高速存取。
如需進一步瞭解 PetaLinux 的 NVMeG4-IP 含 DMA 公版設計,請參閱 Design Gateway 網站上的 PetaLinux 的 NVMeG4-IP 含 DMA 公版設計文件。
圖 4:公版設計概覽。(圖片來源:Design Gateway)
此示範系統使用 ZCU106 的 NVMe SSD 寫入和驗證資料。透過 PetaLinux 上的序列控制台使用 DG NVMe 應用程式執行測試。此應用程式透過雙 DMA 通道,在主機記憶體和 NVMe SSD 之間傳輸資料,達到高速作業。CPU 只負責設定和監控,所有資料傳輸都在硬體處理。
如圖 5 所示,使用 AB17-M2FMC 配接器板將 NVMe SSD 連接到 FMC-HPC 插槽。
圖 5:ZCU106 的示範環境設定。(圖片來源:Design Gateway)
圖 6 顯示在 ZCU106 上使用 1 TB Samsung 990 Pro 執行示範系統的範例測試結果,證實充分利用 PetaLinux 上 PCIe Gen4 x4 頻寬。
圖 6:ZCU106 的 NVMe SSD 讀寫效能:傳統 NVMe 驅動程式與 DG NVMe 解決方案比較。(圖片來源:Design Gateway)
結論
Design Gateway 的 PetaLinux NVMe Gen4 軟體 IP 將 Zynq UltraScale+ 轉化為高效能儲存平台,達到全球首創的 7 GB/s Gen4 速度傳輸量。此解決方案將 NVMe 協定完全卸載到硬體邏輯中,並配合經過最佳化的 PetaLinux 裝置驅動程式,可消除軟體層面的瓶頸,大幅提高資料路徑效率,並擴大 DAQ 和視訊處理工作負載的頻寬。此設計不僅可攜且效率高,非常適合邊緣或嵌入式系統,提供所需的高傳輸量和確定性效能。
聲明:各作者及/或論壇參與者於本網站所發表之意見、理念和觀點,概不反映 DigiKey 的意見、理念和觀點,亦非 DigiKey 的正式原則。




