本博文主要交流設(shè)計(jì)思路,在本博客已給出相關(guān)博文約100篇,主要分布在文章及經(jīng)驗(yàn)貼,希望對(duì)初學(xué)者有用。注意這里只是拋磚引玉,切莫認(rèn)為參考這就可以完成商用IP設(shè)計(jì)。

(1)發(fā)送隊(duì)列
發(fā)送隊(duì)列的管理由發(fā)送隊(duì)列管理單元和發(fā)送隊(duì)列存儲(chǔ)共同實(shí)現(xiàn)。其中,發(fā)送隊(duì)列存儲(chǔ)為所有發(fā)送隊(duì)列共用的存儲(chǔ)空間,根據(jù)用戶環(huán)境和開(kāi)發(fā)板環(huán)境不同可由 BRAM、URAM 或 LUTRAM 實(shí)現(xiàn)。發(fā)送隊(duì)列管理單元?jiǎng)t負(fù)責(zé)管理這個(gè)存儲(chǔ)空間,并處理用戶指令和發(fā)送隊(duì)列讀取請(qǐng)求。在發(fā)送隊(duì)列管理單元中存在一個(gè) SQ1 表單和若干用戶 SQ表單來(lái)管理發(fā)送隊(duì)列,每個(gè)表單中存儲(chǔ)發(fā)送隊(duì)列的信息,包括隊(duì)列 ID、隊(duì)列深度、會(huì)話 ID、遠(yuǎn)程主機(jī) IP 地址、MAC 地址、遠(yuǎn)程訪問(wèn)密鑰、遠(yuǎn)程主機(jī)數(shù)據(jù)包序列號(hào)、本地主機(jī)數(shù)據(jù)包序列號(hào)、遠(yuǎn)程主機(jī)內(nèi)存起始地址和遠(yuǎn)程主機(jī)內(nèi)存地址大小等。
當(dāng)收到系統(tǒng)控制模塊中的隊(duì)列控制單元發(fā)送過(guò)來(lái)的創(chuàng)建隊(duì)列請(qǐng)求時(shí),發(fā)送隊(duì)列管理單元首先判斷隊(duì)列 ID 和會(huì)話 ID 是否已存在。當(dāng)隊(duì)列管理模塊可以接受請(qǐng)求時(shí),其會(huì)啟用一個(gè)用戶請(qǐng)求隊(duì)列表單并根據(jù)接收到的信息創(chuàng)建用戶發(fā)送隊(duì)列,還會(huì)同步通知接收隊(duì)列管理單元啟用一個(gè)用戶接收隊(duì)列表單并創(chuàng)建接收隊(duì)列,并且通知連接管理模塊進(jìn)入創(chuàng)建連接流程。如果隊(duì)列 ID 或會(huì)話 ID 已存在,則請(qǐng)求失敗并返回錯(cuò)誤信息。
類似的,當(dāng)收到刪除隊(duì)列請(qǐng)求時(shí),同樣判斷隊(duì)列 ID 和會(huì)話 ID,如果二者均存在,則刪除對(duì)應(yīng)的用戶請(qǐng)求隊(duì)列表單并同步通知接收隊(duì)列管理單元?jiǎng)h除對(duì)應(yīng)用戶接收隊(duì)列表單,并通知連接管理模塊進(jìn)入斷開(kāi)連接流程。當(dāng)接收到系統(tǒng)控制模塊中的指令控制單元發(fā)送過(guò)來(lái)的用戶請(qǐng)求時(shí),發(fā)送隊(duì)列管理單元首先根據(jù)用戶請(qǐng)求中的信息判斷對(duì)應(yīng)隊(duì)列是否存在。如果存在,則再次判斷遠(yuǎn)程主機(jī) IP 地址、MAC 地址、遠(yuǎn)程訪問(wèn)密鑰等信息是否正確,如果均校驗(yàn)通過(guò),則根據(jù)對(duì)應(yīng)用戶發(fā)送隊(duì)列表單中的起始偏移地址、隊(duì)列深度計(jì)算出當(dāng)次用戶請(qǐng)求的寫(xiě)地址,將發(fā)送隊(duì)列條目寫(xiě)入該地址。同樣的,當(dāng)接收到讀發(fā)送隊(duì)列請(qǐng)求時(shí),其根據(jù)請(qǐng)求的地址獲取其對(duì)應(yīng)的用戶請(qǐng)求隊(duì)列中的表單信息,生成發(fā)送隊(duì)列讀地址,并從該地址讀取發(fā)送隊(duì)列條目。
通過(guò)上述的發(fā)送隊(duì)列管理方式,使得發(fā)送隊(duì)列可在系統(tǒng)工作過(guò)程中動(dòng)態(tài)配置,用戶可以通過(guò)修改表單信息的方式簡(jiǎn)便地修改隊(duì)列深度、隊(duì)列數(shù)量。在實(shí)際應(yīng)用中,用戶即可根據(jù)不同的數(shù)據(jù)環(huán)境靈活控制隊(duì)列深度和數(shù)量,以此來(lái)優(yōu)化系統(tǒng)的性能發(fā)揮和功耗表現(xiàn)。
B站已給出相關(guān)性能的視頻,如想進(jìn)一步了解,請(qǐng)搜索B站用戶:專注與守望
https://www.bilibili.com/video/BV1mPV5eCE8z/?spm_id_from=333.337.search-card.all.click&vd_source=c355545d27a44fe96188b7caefeda6e7
-
模塊
+關(guān)注
關(guān)注
7文章
2833瀏覽量
53239 -
高速傳輸
+關(guān)注
關(guān)注
0文章
43瀏覽量
9283 -
RDMA
+關(guān)注
關(guān)注
0文章
96瀏覽量
9604 -
BRAM
+關(guān)注
關(guān)注
0文章
43瀏覽量
11623
發(fā)布評(píng)論請(qǐng)先 登錄
NVME控制器之隊(duì)列管理模塊
NVMe高速傳輸之擺脫XDMA設(shè)計(jì)九:隊(duì)列管理模塊設(shè)計(jì)(上)
NVMe高速傳輸之擺脫XDMA設(shè)計(jì)十:隊(duì)列管理模塊設(shè)計(jì)(下)
NVMe高速傳輸之擺脫XDMA設(shè)計(jì)37:隊(duì)列管理功能驗(yàn)證與分析1
RDMA設(shè)計(jì)17:隊(duì)列管理模塊設(shè)計(jì)2
RDMA設(shè)計(jì)18:隊(duì)列管理模塊設(shè)計(jì)3
RDMA設(shè)計(jì)26:隊(duì)列管理模塊設(shè)計(jì)之接收隊(duì)列模塊詳細(xì)分析
RDMA設(shè)計(jì)27:隊(duì)列管理模塊設(shè)計(jì)之完成模塊詳細(xì)分析
RDMA設(shè)計(jì)40:隊(duì)列管理及連接建立功能驗(yàn)證與分析
主動(dòng)隊(duì)列管理建模及最優(yōu)控制策略
隊(duì)列管理電路-上篇
隊(duì)列管理電路-下篇
NVMe IP高速傳輸卻不依賴XDMA設(shè)計(jì)之九:隊(duì)列管理模塊(上)
RDMA設(shè)計(jì)24:隊(duì)列管理模塊設(shè)計(jì)
RDMA設(shè)計(jì)25:隊(duì)列管理模塊之發(fā)送模塊詳細(xì)設(shè)計(jì)分析
評(píng)論