NVMe 控制模塊負責實現(xiàn)用戶請求事務與 NVMe 事務的轉(zhuǎn)換、 NVMe 命令提交與完成機制、 PRP 尋址機制。 在 NoP 邏輯加速引擎中, 用戶通過配置系統(tǒng)控制模塊的相關寄存器來發(fā)送 DMA 或隊列管理請求, NVMe 控制模塊在得到任務信息后生成對應的 NVMe 命令, 并通過指令提交與完成機制實現(xiàn)與 NVMe SSD 的任務交互。NVMe 控制模塊一方面通過硬件實現(xiàn)降低了命令交互的延遲和 PRP 尋址機制的過程延遲, 另一方面通過結(jié)構的設計繼承了軟件協(xié)議棧的靈活性, 這使得系統(tǒng)即使在不同的應用場景下也能充分發(fā)揮性能優(yōu)勢。 如圖 3.8 所示 NVMe 控制模塊按照功能劃分為命令控制模塊、 隊列管理模塊、 PRP 管理模塊三個部分。

圖1 NVMe控制器架構圖
指令控制模塊負責 NVMe 指令的組裝、分配、注銷。在 NVMe 協(xié)議中, 一條 NVMe指令由 16 個雙字構成, 不同指令對應字段的含義也不相同。 因此當系統(tǒng)控制模塊發(fā)起請求事務時, 指令控制模塊將對應寄存器中的信息整合成為 NVMe 的提交隊列條目, 并分配唯一的指令 ID, 再將條目寫入提交隊列中, 實現(xiàn)指令的組裝和分配; 當
接收到完成隊列中的正常完成條目時, 指令控制模塊提取其中的指令 ID 進行注銷。隊列管理模塊實現(xiàn) NVMe 提交隊列和完成隊列的存儲、 門鈴機制、 仲裁機制,以及隊列的創(chuàng)建和刪除管理。 NVMe 隊列是實現(xiàn) NVMe 指令提交與完成機制的核心組件, 隊列的數(shù)量和深度直接影響數(shù)據(jù)傳輸?shù)男阅堋?在小數(shù)據(jù)隨機讀寫的場景下, 性能隨著隊列數(shù)量和深度線性增加然后趨于飽和; 在大數(shù)據(jù)順序讀寫的場景下, 性能則受隊列數(shù)量和深度影響很小。 為了適應不同的應用場景, 隊列管理模塊采用存儲和控制分離的結(jié)構設計, 實現(xiàn)動態(tài)配置隊列, 以更低的時間和資源成本實現(xiàn)性能的最優(yōu)發(fā)揮。
PRP 控制模塊實現(xiàn) PRP 的管理與生成。 每一條涉及數(shù)據(jù)傳輸?shù)?NVMe 指令都有對應的 PRP 條目或列表來指示地址, PRP 控制模塊根據(jù)指令 ID 創(chuàng)建對應的 PRP 列表頭指針, 在有指令需要讀取 PRP 列表時根據(jù) ID 生成與指令對應的 PRP 條目。 PRP控制模塊使 PRP 的存儲位置更加接近數(shù)據(jù)傳輸鏈路, 從而降低 PRP 讀取延遲, 提高數(shù)據(jù)傳輸效率。
接下來對指令控制模塊、 隊列管理模塊、 PRP 控制模塊的結(jié)構設計進行分析。
審核編輯 黃宇
-
控制器
+關注
關注
114文章
17886瀏覽量
195298 -
nvme
+關注
關注
0文章
301瀏覽量
23923
發(fā)布評論請先 登錄
高性能網(wǎng)絡存儲設計:NVMe-oF IP的實現(xiàn)探討
NVMe高速傳輸之擺脫XDMA設計50:主要功能測試結(jié)果與分析2 nvmePCIe高速存儲
Xilinx高性能NVMe Host控制器IP+PCIe 3.0軟核控制器IP,純邏輯實現(xiàn),AXI4和AXI4-Stream DMA接口,支持PCIe 3.0和4.0
NVMe高速傳輸之擺脫XDMA設計37:隊列管理功能驗證與分析1
NVMe高速傳輸之擺脫XDMA設計33:初始化功能驗證與分析
NVMe高速傳輸之擺脫XDMA設計30: NVMe 設備模型設計
NVMe高速傳輸之擺脫XDMA設計之十:NVMe初始化狀態(tài)機設計
NVMe IP高速傳輸卻不依賴XDMA設計之五:DMA 控制單元設計
NVMe IP高速傳輸擺脫XDMA設計之四:系統(tǒng)控制模塊設計
NVMe協(xié)議研究掃盲
NVMe協(xié)議簡介2
NVMe協(xié)議簡要分析
NVMe控制器IP設計系列之接口轉(zhuǎn)換模塊
NVMe控制器設計1
評論