NVMe IP放棄XDMA原因
選用XDMA做NVMe IP的關鍵傳輸模塊,可以加速IP的設計,但是XDMA對于開發者來說,還是不方便,原因是它就象一個黑匣子,調試也非一番周折,尤其是后面PCIe4.0升級。
因此決定直接采用PCIe設計,雖然要費一番周折,但是目前看,還是值得的,uvm驗證也更清晰。
PCIe 加速模塊設計
PCIe 加速模塊負責處理PCIe事務層,并將其與NVMe功能和AXI接口直接綁定。如圖1所示,PCIe加速模塊按照請求發起方分為請求模塊和應答模塊。請求模塊負責將內部請求事務轉換為配置管理接口信號或axis請求方請求接口信號(axis_rq),以及解析 axis 請求方完成接口信號(axis_rc);應答模塊負責接收axis完成方請求接口信號(axis_cq),將請求內容轉換為AXI4接口信號或其它內部信號
做進一步處理,同時將應答事務通過axis完成方完成接口axis_cc)發送給PCIE集成塊.
圖1 PCIe加速模塊結構和連接關系圖
PCIe 加速模塊不僅承擔了TLP與其它接口信號的轉換功能,也是降低傳輸延遲增加吞吐量的核心部件。接下來分別對請求模塊和應答模塊的結構設計進行具體分析。