NVMe指令提交與完成機制
NVMe指令提交與完成機制是NVMe協議的核心,該機制制定了NVMe指令的 交互流程和處理步驟。在基于PCIe的NVMe協議中,NVMe主機控制器與NVMe 設備的交互通過PCIe進行,使用PCIe的存儲讀寫TLP請求。指令的提交與完成機 制如圖1所示,圖中展示的指令提交與完成步驟如下:

圖1 NVMe指令提交交與完成步驟圖
(1)主機控制器向提交隊列寫入一個或多個提交命令;
(2)主機請求配置NVMe設備的提交隊列尾門鈴寄存器,表示有新的命令需要 進行處理;
(3)NVMe設備從提交隊列中讀取提交指令條目;
(4)NVMe繼續執行獲取的命令,命令可以無序完成;
(5)命令完成執行后,控制器將完成隊列條目寫入關聯的完成隊列。NVMe設 備在完成隊列條目中提供最近的關聯提交隊列條目頭指針; (6)NVMe設備可選地向主機生成一個中斷,以表明有一個新的完成隊列條目 要等待主機控制器使用和處理;
(7)主機控制器處理完成隊列中的新完成隊列條目;
(8)主機控制器請求配置完成隊列頭門鈴寄存器,指示完成隊列條目已被處理
對相關視頻感興趣者,請移步B站 搜用戶名: 專注與守望
審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
nvme
+關注
關注
0文章
299瀏覽量
23842
發布評論請先 登錄
相關推薦
熱點推薦
NVMe高速傳輸之擺脫XDMA設計54:如何測試隊列管理功能2
。
如圖1 所示, 刪除所有提交隊列和完成隊列, 刪除成功。 然后分別創建一個I/O 完成和提交隊列, 連續多次刪除, 打印信息返回錯誤
發表于 12-10 08:33
NVMe高速傳輸之擺脫XDMA設計41:隊列管理功能驗證與分析5
關鍵信號波形如圖 3 所示。 在成功創建一個 I/O 完成隊列和一個I/O 提交隊列后, 刪除 I/O 提交隊列, 刪除操作返回 cr_s
發表于 10-23 16:24
NVMe高速傳輸之擺脫XDMA設計39:隊列管理功能驗證與分析3
提交隊列時, 返回數量錯誤, 并且不再生成對應 NVMe 指令, 仿真行為符合設計預期, 測試通過。
圖 2 創建隊列邊界測試波形圖三
發表于 10-20 16:01
NVMe高速傳輸之擺脫XDMA設計38:隊列管理功能驗證與分析2
波形如圖1 所示。 創建深度為 1024 的 I/O 提交隊列, 由于支持的最大隊列深度為 1023, 所以創建返回狀態 cr_status 值為 4, 表示創建深度錯誤, 仿真行為符合設計預期
發表于 10-15 08:14
NVMe高速傳輸之擺脫XDMA設計37:隊列管理功能驗證與分析1
隊列、 刪除隊列、 隊列邊界、 操作順序等功能的測試,待測設計的設計目標中, 提交隊列的最大數量為 16, 單
發表于 10-13 11:17
NVMe高速傳輸之擺脫XDMA設計36:初始化功能驗證與分析4
測試步驟 4 關鍵信號波形如圖1 所示, 通過 axis_cc 接口獲取 NVMe 指令后,NVMe 設備執行指令操作, 在操作完成后, 通過 axis_cq 接口向對應提交隊列的完
發表于 10-11 08:22
NVMe高速傳輸之擺脫XDMA設計30: NVMe 設備模型設計
隊列屬性寄存器、Admin 提交隊列地址寄存器和 Admin完成隊列地址寄存器, 以及在隊列工作中需要使用的門鈴寄存器組。
發表于 09-29 09:31
NVMe高速傳輸之擺脫XDMA設計九:隊列管理模塊設計(上)
效率和資源占用,N的最大數量為16。每一個提交隊列表單包含了隊列的ID、隊列深度、起始偏移地址、門鈴頭指針、門鈴尾指針、門鈴地址,表單中的初始信息在
發表于 07-27 17:41
NVMe高速傳輸之擺脫XDMA設計之十:NVMe初始化狀態機設計
DISABLE_CC狀態。
RD_CAP:讀控制器功能寄存器狀態。該狀態下讀取NVMe設備的控制器功能寄存器,獲取其中的Memory Page Size和支持的最大單隊列深度信息,然后跳轉到DISABLE_CC狀態
發表于 07-05 22:03
NVME控制器設計1
的相關寄存器來發送 DMA 或隊列管理請求, NVMe控制模塊在得到任務信息后生成對應的 NVMe 命令, 并通過指令提交與完成機制實現與 NVMe
發表于 04-24 09:45
NVMe協議分析之提交隊列
評論