采用XDMA是許多人常用xilinx庫實現(xiàn)NVMe或其他傳輸?shù)姆椒ā5?,XDMA介紹較少,在高速存儲設計時,尤其是PCIe4.0模式下,較難發(fā)揮其最優(yōu)性能,因此,直接采用PCIe實現(xiàn)NVMe功能。
這里主要分享基于PCIe3.0接口的NVMe IP設計簡介。有需要更高性能需求的,請先了解其性能簡介,在文末給出鏈接。它的系統(tǒng)初始化流程主要分為鏈路訓練、PCIe 初始化和 NVMe 初始化, 分別實現(xiàn) PCIe鏈路連接、 PCIe 設備枚舉配置和 NVMe 設備配置功能。 其中鏈路訓練由 PCIE 集成塊實現(xiàn), 初始化模塊根據(jù)鏈路訓練完成信號和初始化啟動信號來執(zhí)行 PCIe 初始化和NVMe 初始化。
圖1 系統(tǒng)初始化流程
系統(tǒng)初始化的主要流程如圖 1 所示, 在系統(tǒng)供電后, 首先進入復位狀態(tài), 一旦退出復位狀態(tài), 由 PCIE 集成塊執(zhí)行鏈路訓練, PCIE 集成塊提供了 LinkUp 信號用于指示鏈路訓練是否成功。 鏈路訓練消耗時間為毫秒級別, 為了確保系統(tǒng)的穩(wěn)定, 在系統(tǒng)復位退出后 1 秒時如果 LinkUp 信號仍為低電平, 則斷言為鏈路訓練失敗, 初始化流程終止。
如果 LinkUp 為高電平, 此時用戶可通過系統(tǒng)控制模塊啟動 PCIe 初始化,進入 PCIe 初始化狀態(tài)。 PCIe 初始化狀態(tài)機在執(zhí)行完初始化流程后, 會報告初始化執(zhí)行狀態(tài), 如果在初始化過程中出錯, 進入初始化終止狀態(tài)并將錯誤信息反饋到初始化狀態(tài)寄存器。 當 PCIe 初始化正常完成后, 可以進入 NVMe 初始化狀態(tài), NVMe 初始化也由用戶通過系統(tǒng)控制模塊啟動。 當 NVMe 初始化正常完成后, 系統(tǒng)的初始化完成, NoP 邏輯加速引擎進入正常工作模式。
-
高速傳輸
+關(guān)注
關(guān)注
0文章
37瀏覽量
9256 -
高速存儲
+關(guān)注
關(guān)注
0文章
15瀏覽量
6053 -
nvme
+關(guān)注
關(guān)注
0文章
283瀏覽量
23611
發(fā)布評論請先 登錄
NVMe IP高速傳輸卻不依賴便利的XDMA設計之三:系統(tǒng)架構(gòu)
NVMe IP高速傳輸卻不依賴XDMA設計之五:DMA 控制單元設計
NVMe高速傳輸之擺脫XDMA設計之七:系統(tǒng)初始化
NVMe高速傳輸之擺脫XDMA設計之十:NVMe初始化狀態(tài)機設計
NVMe高速傳輸之擺脫XDMA設計33:初始化功能驗證與分析
NVMe高速傳輸之擺脫XDMA設計34:初始化功能驗證與分析2
NVMe高速傳輸之擺脫XDMA設計35:初始化功能驗證與分析3
NVMe IP高速傳輸卻不依賴XDMA設計之二:PCIe讀寫邏輯

NVMe IP高速傳輸卻不依賴XDMA設計之三:系統(tǒng)架構(gòu)

NVMe IP高速傳輸卻不依賴XDMA設計之四:系統(tǒng)控制模塊

NVMe IP高速傳輸卻不依賴XDMA設計之五:DMA 控制單元設計

NVMe IP高速傳輸卻不依賴XDMA設計之六:性能監(jiān)測單元設計

NVMe IP高速傳輸卻不依賴XDMA設計之九:隊列管理模塊(上)

評論