?
PRP控制模塊負責實現指令相關的PRP列表的生成、存儲與管理。NVMe的提交命令中,存在PRP1和PRP2兩個字段,PPR2作為地址指針還是PRP列表指針是根據命令請求數據傳輸長度和PRP1的偏移量來確定的。當PRP2作為PRP列表指針時,PRP2指向PRP列表的首地址。在傳統的NVMe系統中,PRP列表存放的位置一般與數據存放位置接近,因此在處理指令過程中,讀取PRP經歷的延時與讀取數據的延時相近,為了降低讀取PRP的延時,使用PRP控制模塊將PRP的存儲位置轉移到NoP邏輯加速引擎內部。PRP控制模塊的結構和連接關系如圖1所示。


圖1 PRP控制模塊結構和連接關系圖
當用戶想要進行大塊數據傳輸時,需要使用PRP提供數據的分布地址,為了降低PRP尋址的延時和復雜度,使用PRP控制模塊替代原本的PRP機制。需要傳輸大塊零散分布數據時,可以減小DMA請求長度,不使用PRP鏈表,將PRP鏈表條目字節轉換為DMA請求地址。需要傳輸大塊連續數據時,只需要PRP鏈表將由PRP控制模塊根據請求地址自動生成。指令控制模塊接收到相關指令時,根據PRP1和傳輸長度判斷PRP2類型,如果PRP2類型為PRP鏈表指針,則以指令ID為地址,將PRP1的4KB偏移寫入PRP MEM,PRP2則包含指令ID并指向PRP控制模塊。當PCIe加速模塊收到指向PRP控制模塊的讀數據請求時,判斷為讀PRP請求,PRP控制模塊根據讀地址取出對應的存儲條目返回,然后將該數據進行偏移4KB地址計算后重新寫入PRP MEM。PRP MEM的大小與指令ID池的深度一致,每個指令ID指向一個64比特的PRP MEM存儲條目。
?審核編輯 黃宇
-
PCIe
+關注
關注
16文章
1461瀏覽量
88422 -
nvme
+關注
關注
0文章
299瀏覽量
23842
發布評論請先 登錄
NVMe高速傳輸之擺脫XDMA設計44:工程設計考量?
NVMe高速傳輸之擺脫XDMA設計43:如何上板驗證?
NVMe高速傳輸之擺脫XDMA設計30: NVMe 設備模型設計
NVMe高速傳輸之擺脫XDMA設計20: PCIe應答模塊設計
NVMe高速傳輸之擺脫XDMA設計20: PCIe應答模塊設計
NVMe高速傳輸之擺脫XDMA設計17:PCIe加速模塊設計
NVMe高速傳輸之擺脫XDMA設計16:TLP優化
NVMe高速傳輸之擺脫XDMA設計14: PCIe應答模塊設計
NVMe高速傳輸之擺脫XDMA設計14: PCIe應答模塊設計
NVMe IP高速傳輸卻不依賴XDMA設計之九:隊列管理模塊(上)
NVMe高速傳輸之擺脫XDMA設計九:隊列管理模塊設計(上)
NVMe IP高速傳輸卻不依賴XDMA設計之八:系統初始化
NVMe高速傳輸之擺脫XDMA設計之11:PRP控制模塊設計
評論