采用XDMA是許多人常用xilinx庫(kù)實(shí)現(xiàn)NVMe或其他傳輸?shù)姆椒ā5?,XDMA介紹較少,在高速存儲(chǔ)設(shè)計(jì)時(shí),尤其是PCIe4.0模式下,較難發(fā)揮其最優(yōu)性能,因此,直接采用PCIe實(shí)現(xiàn)NVMe功能。
這里主要分享基于PCIe3.0接口的NVMe IP設(shè)計(jì)簡(jiǎn)介。有需要更高性能需求的,請(qǐng)先了解其性能簡(jiǎn)介,在文末給出鏈接。它的系統(tǒng)初始化流程主要分為鏈路訓(xùn)練、PCIe 初始化和 NVMe 初始化, 分別實(shí)現(xiàn) PCIe鏈路連接、 PCIe 設(shè)備枚舉配置和 NVMe 設(shè)備配置功能。 其中鏈路訓(xùn)練由 PCIE 集成塊實(shí)現(xiàn), 初始化模塊根據(jù)鏈路訓(xùn)練完成信號(hào)和初始化啟動(dòng)信號(hào)來(lái)執(zhí)行 PCIe 初始化和NVMe 初始化。


圖1 系統(tǒng)初始化流程
系統(tǒng)初始化的主要流程如圖 1 所示, 在系統(tǒng)供電后, 首先進(jìn)入復(fù)位狀態(tài), 一旦退出復(fù)位狀態(tài), 由 PCIE 集成塊執(zhí)行鏈路訓(xùn)練, PCIE 集成塊提供了 LinkUp 信號(hào)用于指示鏈路訓(xùn)練是否成功。 鏈路訓(xùn)練消耗時(shí)間為毫秒級(jí)別, 為了確保系統(tǒng)的穩(wěn)定, 在系統(tǒng)復(fù)位退出后 1 秒時(shí)如果 LinkUp 信號(hào)仍為低電平, 則斷言為鏈路訓(xùn)練失敗, 初始化流程終止。
如果 LinkUp 為高電平, 此時(shí)用戶可通過(guò)系統(tǒng)控制模塊啟動(dòng) PCIe 初始化,進(jìn)入 PCIe 初始化狀態(tài)。 PCIe 初始化狀態(tài)機(jī)在執(zhí)行完初始化流程后, 會(huì)報(bào)告初始化執(zhí)行狀態(tài), 如果在初始化過(guò)程中出錯(cuò), 進(jìn)入初始化終止?fàn)顟B(tài)并將錯(cuò)誤信息反饋到初始化狀態(tài)寄存器。 當(dāng) PCIe 初始化正常完成后, 可以進(jìn)入 NVMe 初始化狀態(tài), NVMe 初始化也由用戶通過(guò)系統(tǒng)控制模塊啟動(dòng)。 當(dāng) NVMe 初始化正常完成后, 系統(tǒng)的初始化完成, NoP 邏輯加速引擎進(jìn)入正常工作模式。
-
高速傳輸
+關(guān)注
關(guān)注
0文章
38瀏覽量
9269 -
高速存儲(chǔ)
+關(guān)注
關(guān)注
0文章
15瀏覽量
6061 -
nvme
+關(guān)注
關(guān)注
0文章
286瀏覽量
23700
發(fā)布評(píng)論請(qǐng)先 登錄
NVMe IP高速傳輸卻不依賴便利的XDMA設(shè)計(jì)之三:系統(tǒng)架構(gòu)
NVMe IP高速傳輸卻不依賴XDMA設(shè)計(jì)之五:DMA 控制單元設(shè)計(jì)
NVMe高速傳輸之擺脫XDMA設(shè)計(jì)之七:系統(tǒng)初始化
NVMe高速傳輸之擺脫XDMA設(shè)計(jì)之十:NVMe初始化狀態(tài)機(jī)設(shè)計(jì)
NVMe高速傳輸之擺脫XDMA設(shè)計(jì)33:初始化功能驗(yàn)證與分析
NVMe高速傳輸之擺脫XDMA設(shè)計(jì)34:初始化功能驗(yàn)證與分析2
NVMe高速傳輸之擺脫XDMA設(shè)計(jì)35:初始化功能驗(yàn)證與分析3
NVMe IP高速傳輸卻不依賴XDMA設(shè)計(jì)之二:PCIe讀寫邏輯
NVMe IP高速傳輸卻不依賴XDMA設(shè)計(jì)之三:系統(tǒng)架構(gòu)
NVMe IP高速傳輸卻不依賴XDMA設(shè)計(jì)之四:系統(tǒng)控制模塊
NVMe IP高速傳輸卻不依賴XDMA設(shè)計(jì)之五:DMA 控制單元設(shè)計(jì)
NVMe IP高速傳輸卻不依賴XDMA設(shè)計(jì)之六:性能監(jiān)測(cè)單元設(shè)計(jì)
NVMe IP高速傳輸卻不依賴XDMA設(shè)計(jì)之九:隊(duì)列管理模塊(上)

NVMe IP高速傳輸卻不依賴XDMA設(shè)計(jì)之八:系統(tǒng)初始化
評(píng)論