注:這是采用PCIe設(shè)計(jì)NVMe,并非調(diào)用XDMA方式,后者在PCIe4.0時(shí)不大方便,故團(tuán)隊(duì)直接采用PCIe設(shè)計(jì),結(jié)合UVM驗(yàn)證加快設(shè)計(jì)速度。
隊(duì)列管理模塊采用隊(duì)列的存儲(chǔ)與控制分離的設(shè)計(jì)結(jié)構(gòu),如圖1所示為隊(duì)列管理模塊的結(jié)構(gòu)框圖。

圖1 隊(duì)列管理模塊結(jié)構(gòu)圖
對于提交隊(duì)列,設(shè)置一塊完整的BRAM存儲(chǔ)空間用于存儲(chǔ)提交隊(duì)列條目,一個(gè)提交隊(duì)列管理單元用于實(shí)現(xiàn)提交隊(duì)列存儲(chǔ)地址空間的管理和門鈴控制。在提交隊(duì)列管理單元中,構(gòu)建一個(gè)admin提交隊(duì)列表單和N個(gè)I/O提交隊(duì)列表單,I/O提交隊(duì)列表單的個(gè)數(shù)N為參數(shù)配置,考慮到仲裁效率和資源占用,N的最大數(shù)量為16。每一個(gè)提交隊(duì)列表單包含了隊(duì)列的ID、隊(duì)列深度、起始偏移地址、門鈴頭指針、門鈴尾指針、門鈴地址,表單中的初始信息在NVMe初始化的創(chuàng)建提交隊(duì)列過程中獲取,起始偏移地址在初始化時(shí)按照隊(duì)列深度依次連續(xù)分配,而門鈴頭指針則由完成隊(duì)列管理單元更新。
當(dāng)指令控制模塊需要向某一個(gè)提交隊(duì)列寫入提交條目時(shí),提交隊(duì)列管理單元首先讀取所選則隊(duì)列的表單信息,根據(jù)起始偏移地址、隊(duì)列深度和門鈴尾指針計(jì)算出提交隊(duì)列存儲(chǔ)寫地址,再將提交條目寫入該地址中,同時(shí)發(fā)起對應(yīng)的門鈴寫請求。當(dāng)接收到提交隊(duì)列讀請求時(shí),根據(jù)請求的地址獲取對應(yīng)表單信息生成提交隊(duì)列存儲(chǔ)讀地址。
對相關(guān)視頻感興趣的,B站搜用戶名: 專注與守望
審核編輯 黃宇
-
高速傳輸
+關(guān)注
關(guān)注
0文章
45瀏覽量
9319 -
nvme
+關(guān)注
關(guān)注
0文章
300瀏覽量
23909
發(fā)布評論請先 登錄
NVMe高速傳輸之擺脫XDMA設(shè)計(jì)54:如何測試隊(duì)列管理功能2
NVMe高速傳輸之擺脫XDMA設(shè)計(jì)53:如何測試隊(duì)列管理功能
NVMe高速傳輸之擺脫XDMA設(shè)計(jì)37:隊(duì)列管理功能驗(yàn)證與分析1
NVMe高速傳輸之擺脫XDMA設(shè)計(jì)十:隊(duì)列管理模塊設(shè)計(jì)(下)
NVMe高速傳輸之擺脫XDMA設(shè)計(jì)九:隊(duì)列管理模塊設(shè)計(jì)(上)
NVMe IP高速傳輸卻不依賴XDMA設(shè)計(jì)之八:系統(tǒng)初始化
NVMe IP高速傳輸卻不依賴XDMA設(shè)計(jì)之五:DMA 控制單元設(shè)計(jì)
NVMe IP高速傳輸卻不依賴XDMA設(shè)計(jì)之五:DMA 控制單元設(shè)計(jì)
NVMe IP高速傳輸卻不依賴XDMA設(shè)計(jì)之四:系統(tǒng)控制模塊
NVMe IP高速傳輸卻不依賴XDMA設(shè)計(jì)之三:系統(tǒng)架構(gòu)
NVMe IP高速傳輸卻不依賴XDMA設(shè)計(jì)之九:隊(duì)列管理模塊(上)
評論