在 Xilinx ZCU102 評估套件上啟用 NVMe SSD 介面

作者:Design Gateway Co., Ltd.

資料提供者:DigiKey 北美編輯群

總覽

Zynq® UltraScale+™ MPSoC 系列Xilinx® UltraScale™ MPSoC 架構為基礎,在單一裝置中整合了功能豐富的 64 位元四核心或雙核心 ARM 架構處理系統 (PS),以及 Xilinx 可編程邏輯 (PL) UltraScale 架構。此外,亦包含晶片上記憶體、多埠外部記憶體介面以及豐富的周邊裝置連接介面,尤其是 GTH 16.3 Gbps 收發器,可支援 PCI Express® Gen3 儲存裝置介面 (例如 NVMe SSD 硬碟)。本文將說明在 Xilinx 的 ZCU102 評估套件上透過 Design Gateway 的 NVMeG3-IP 核心實作 NVMe 固態硬碟 (SSD) 介面的解決方案,可達到驚人的快速效能:2319 MB/s 的寫入速度和 3347 MB/s 的讀取速度。

Zynq® UltraScale+ MPSoC ZCU102 評估套件簡介

ZCU102 是一般用途評估板,能以 XCZU9EG-2FFVB1156E MPSoC 元件為基礎快速進行原型開發。此評估板包含高速 DDR4 SODIMM 和組件記憶體介面、FMC 擴充埠、每秒數 Gigabit 的序列收發器、多種周邊裝置介面,以及客製化設計用的 FPGA 邏輯,因此可提供靈活的原型開發平台。

Xilinx 的 ZCU102 評估套件圖片圖 1:ZCU102 評估套件。(圖片來源:Xilinx Inc.)

ZCU102 提供可編程的邏輯功能,可用來打造最先進的應用,例如 5G 無線網路、新一代先進駕駛輔助系統 (ADAS) 和工業物聯網 (IIoT) 解決方案。

無論如何,若是應用要求使用高效能、高度可靠的外部資料儲存空間 (例如 NVMe SSD 硬碟),則需要選擇合適的解決方案,以運用 GTH 收發器提供 PCI Express® Gen3 相容介面的優勢。

NVMe SSD 儲存空間簡介

NVM Express (NVMe) 可針對主機控制器界定其介面,以透過 PCI Express 存取 SSD。NVM Express 只需使用兩個暫存器 (命令發布和命令完成),即可讓命令的發布和完成程序達到最佳化。另一方面,NVMe 支援平行操作,能在單一佇列中支援最高 64K 命令。64K 命令條目可改善循序存取和隨機存取的傳輸效能。

NVMe 硬碟為迎接高速資料儲存和運算做好準備。使用 PCIe Express® Gen3 技術,現代化 NVMe SSD 硬碟即可實現高達 40 Gbit/s 的峰值效能。

此處顯示 NVMe 儲存裝置範例

在 ZCU102 上實作 NVMe 主機控制器

NVMe 實作示意圖圖 2:NVMe 實作。(圖片來源:Design Gateway)

通常,NVMe 主機的實作會使用主機處理器搭配 PCIe 控制器一起操作,以便與 NVMe SSD 進行資料雙向傳輸。NVMe 協議的實作,是為了讓裝置驅動器與 PCIe 控制器硬體 CPU 周邊裝置,透過超高速匯流排進行通訊。而資料緩衝處理和命令佇列都需要外部 DDR 記憶體,以便在 PCIe 控制器和 SSD 之間傳輸資料。

由於 ZCU102 上的 XCZU9EG-2FFVB1156E FPGA 元件沒有 PCIe Gen3 整合區塊,因此無法採用傳統的實作方法。

Design Gateway 推出一項解決方案,可使用 NVMeG3-IP 核心 (如圖 2 所示),針對沒有 PCIe 整合區塊的 Zynq® UltraScale+™ MPSoC 元件啟用 NVMe SSD 介面。ZCU102 的 NVMe 介面可建構效能極高、FPGA 資源消耗最低的多通道 RAID 系統。NVMeG3-IP 核心授權包括範例公版設計,可幫助設計人員減少開發時間和成本。

Design Gateway 的 NVMeG3-IP 概述

NVMe IP 核心具有 PCIe Gen 3 軟體 IP (NVMeG3-IP),非常適合在沒有 PCIe 整合區塊、CPU 和外部記憶體的情況下存取 NVMe SSD。NVMeG3-IP 包含 PCIe Gen3 軟體 IP 和 256 KB 記憶體。此解決方案可使用不含 PCIe 整合區塊的低成本 FPGA,因此推薦用於需要超高速效能 NVMe SSD 儲存空間的應用。

NVMeG3-IP 方塊圖圖 3:NVMeG3-IP 方塊圖。(圖片來源:Design Gateway)

NVMeG3-IP 的特點

NVMeG3-IP 有許多特點,以下列出一些重點項目:

  • 無需佔用 CPU,即可實作應用層、交易層、資料鏈路層,以及實體層的某些部分以存取 NVMe SSD
  • 可搭配設定為 4 通道 PCIe Gen3 (128 位元匯流排介面) 的 Xilinx PCIe PHY IP 進行操作
  • 包含 256 KB RAM 資料緩衝區
  • 透過 dgIF typeS 提供簡便的使用者介面
  • 支援六個命令,即識別 (Identify)、關機 (Shutdown)、寫入 (Write)、讀取 (Read)、SMART 以及排清 (Flush) (可選擇支援其他命令)
  • 支援的 NVMe 裝置:
    • 基本類程式碼:01h (大容量儲存),子類型程式碼:08h (非揮發性),編程介面:02h (NVMHCI)
    • 最小記憶體分頁大小 (MPSMIN):0 (4 KB)
    • 最大資料傳輸大小 (MDTS):至少 5 (128 KB) 或 0 (無限制)
    • LBA 單元:512 位元組或 4096 位元組
  • 使用者時脈頻率必須大於或等於 PCIe 時脈 (Gen3 為 250 MHz)
  • 可用的公版設計:
    • ZCU102 配 AB17-M2FMC 配接器板
    • KCU105 配 AB18-PCIeX16/AB16-PCIeXOVR 配接器板
    • VCU118 配 AB18-PCIeX16 配接器板

Design Gateway 開發 NVMeG3-IP 做為 NVMe 主機控制器執行,以便存取 NVMe SSD。不必了解 NVMe 協議,亦可輕鬆使用使用者介面和標準功能。NVMeG3-IP 的附加功能是內建 PCIe 軟體 IP,可透過純邏輯實作 PCIe 協議的資料鏈路層和實體層的某些部分。因此,透過內建的 PCIe 軟體 IP 和 Xilinx PCIe PHY IP 核心,NVMeG3-IP 即可在沒有 PCIe 整合區塊的 FPGA 中運作。Xilinx 的 PCIe PHY IP 是可免費取得的 IP 核心,其中包含收發器和邏輯等化器。

NVMeG3-IP 支援六個 NVMe 命令,即識別 (Identify)、關機 (Shutdown)、寫入 (Write)、讀取 (Read)、SMART 以及排清 (Flush)。256 KB BlockRAM 整合在 NVMeG3-IP 中,可當作資料緩衝區。此系統不需要 CPU 和外部記憶體。如需更多詳情,請參閱 NVMeG3-IP 的規格書 (可從我們的網站下載)。

下表 1 中顯示 XCZU9EG-2FFVB1156E FPGA 元件上的 FPGA 資源使用情況。

系列 範例元件 Fmax (MHz) CLB Reg CLB LUT CLB IOB BRAMTile PLL GTX 設計工具
Zynq-Ultrascale+ XCZU9EG-2FFVB1156E 300 18982 17109 3690 - 70 - - Vivado2017.4

表 1:Ultrascale/Ultrascale+ 元件的實作統計資訊範例

ZCU102 的實作與效能結果

在圖 4 中,可概覽以 ZCU102 為基礎的公版設計,以示範 NVMeG3-IP 的操作。示範系統中的 NVMeG3IPTest 模組包括以下模組:TestGen、LAxi2Reg、CtmRAM、IdenRAM 和 FIFO。

如需進一步瞭解 NVMeG3-IP 公版設計,請參閱 Design Gateway 網站上的 NVMeG3-IP 公版設計文件

NVMeG3-IP 公版設計概覽圖圖 4:NVMeG3-IP 公版設計概覽。(圖片來源:Design Gateway)

示範系統可使用 ZCU102 上的 NVMe SSD 寫入/驗證資料。使用者可透過序列控制台控制測試作業。為了讓 NVMe SSD 介接 ZCU102,需要一個 AB17-M2FMC 配接器板,如圖 5 所示。

設置在 Xilinx ZCU102 上的 NVMeG3-IP 示範環境示意圖圖 5:設置在 ZCU102 上的 NVMeG3-IP 示範環境。(圖片來源:Design Gateway)

使用 512 GB Samsung 970 Pro 時,在 ZCU102 上執行示範系統的範例測試結果如圖 6 所示。

Xilinx ZCU102 上的 NVMe SSD 讀取/寫入效能示意圖圖 6:使用 Samsung 970 PRO S 時,ZCU102 上的 NVMe SSD 讀取/寫入效能。(圖片來源:Design Gateway)

結論

NVMeG3-IP 核心提供解決方案,可在 ZCU102 評估套件上啟用 NVMe SSD 介面;同時也針對沒有 PCIe 整合區塊的 Xilinx® Zynq® UltraScale+™ MPSoC 元件系列提供解決方案。NVMeG3-IP 的設計目標是在不使用 CPU 的情況下,以最低的 FPGA 資源使用量達到最高效能的 NVMe SSD 存取。該元件非常適合在無 CPU 介入下達到高效能 NVMe 儲存,並可運用 GTH 收發器實作多個 NVMe SSD 介面,不受 FPGA 元件上可用 PCIe 整合區塊數量的限制。

DigiKey logo

聲明:各作者及/或論壇參與者於本網站所發表之意見、理念和觀點,概不反映 DigiKey 的意見、理念和觀點,亦非 DigiKey 的正式原則。

關於作者

Design Gateway Co., Ltd.

關於出版者

DigiKey 北美編輯群