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

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