本文主要交流設(shè)計思路,在本博客已給出相關(guān)博文幾十篇,希望對初學(xué)者有用。注意這里只是拋磚引玉,切莫認(rèn)為參考這就可以完成商用IP設(shè)計。有的帖子可見本站相關(guān)經(jīng)驗貼。
隊列管理模塊采用管理與存儲分離的結(jié)構(gòu)進(jìn)行設(shè)計,由發(fā)送隊列存儲、發(fā)送隊列管理、接收隊列管理、完成條目解析、異常完成條目處理和 Round-Robin 仲裁組成。隊列管理模塊的結(jié)構(gòu)如圖 1 所示。

圖1 隊列管理模塊的結(jié)構(gòu)圖
發(fā)送流程:
首先,用戶指令發(fā)送到發(fā)送隊列存儲,存儲實(shí)際的發(fā)送數(shù)據(jù)/指令。用戶隊列ID用于識別是哪個用戶的隊列,發(fā)送隊列管理根據(jù)用戶隊列ID查找對應(yīng)的用戶SQn表單,獲取該用戶發(fā)送隊列的當(dāng)前序號(SQn),管理發(fā)送隊列的讀寫位置(比如寫地址對應(yīng)SQn的遞增)。
發(fā)送隊列存儲的讀地址可能來自發(fā)送隊列管理,當(dāng)需要讀取發(fā)送隊列數(shù)據(jù)時,發(fā)送隊列管理提供讀地址,發(fā)送隊列管理向Round Robin仲裁提交發(fā)送請求,Round Robin仲裁采用輪詢方式選擇一個發(fā)送請求,生成發(fā)送隊列條目,輸出到外部。
接收與完成流程:
外部的接收隊列條目進(jìn)入Round Robin仲裁。Round Robin仲裁將選中的接收隊列條目發(fā)送到完成條目解析模塊,完成條目解析負(fù)責(zé)解析接收的內(nèi)容。
完成條目解析同時將解析后的信息(比如完成的序號)發(fā)送到指令釋放模塊,指令釋放模塊根據(jù)數(shù)據(jù)排序序號,和接收隊列RQn表單、用戶RQn表單來管理接收隊列的序號,確保接收的數(shù)據(jù)按順序釋放給用戶。
異常處理:
異常完成條目處理模塊負(fù)責(zé)處理異常情況,比如接收的完成條目有錯誤(比如CRC錯誤、超時),或者發(fā)送隊列的異常(比如隊列溢出),當(dāng)出現(xiàn)異常時,該模塊處理這些異常條目,可能生成異常通知,或者糾正錯誤,確保隊列管理的正確性。
B站已給出相關(guān)性能的視頻,如想進(jìn)一步了解,請搜索B站用戶:專注與守望
https://www.bilibili.com/video/BV1mPV5eCE8z/?spm_id_from=333.337.search-card.all.click&vd_source=c355545d27a44fe96188b7caefeda6e7
審核編輯 黃宇
-
隊列管理
+關(guān)注
關(guān)注
0文章
5瀏覽量
6387 -
RDMA
+關(guān)注
關(guān)注
0文章
99瀏覽量
9615
發(fā)布評論請先 登錄
RDMA設(shè)計40:隊列管理及連接建立功能驗證與分析
RDMA設(shè)計25:隊列管理模塊之發(fā)送模塊詳細(xì)設(shè)計分析
RDMA設(shè)計27:隊列管理模塊設(shè)計之完成模塊詳細(xì)分析
RDMA設(shè)計26:隊列管理模塊設(shè)計之接收隊列模塊詳細(xì)分析
RDMA設(shè)計18:隊列管理模塊設(shè)計3
RDMA設(shè)計17:隊列管理模塊設(shè)計2
RDMA設(shè)計12:融合以太網(wǎng)協(xié)議棧設(shè)計1
NVMe高速傳輸之?dāng)[脫XDMA設(shè)計54:如何測試隊列管理功能2
NVMe高速傳輸之?dāng)[脫XDMA設(shè)計53:如何測試隊列管理功能
NVMe高速傳輸之?dāng)[脫XDMA設(shè)計37:隊列管理功能驗證與分析1
NVMe IP高速傳輸卻不依賴XDMA設(shè)計之九:隊列管理模塊(上)
RDMA設(shè)計24:隊列管理模塊設(shè)計
評論