?
續(xù)上,隊(duì)列管理模塊采用隊(duì)列的存儲(chǔ)與控制分離的設(shè)計(jì)結(jié)構(gòu),如圖1所示為隊(duì)列管理模塊的結(jié)構(gòu)框圖。
?

圖1 隊(duì)列管理結(jié)構(gòu)
由于提交隊(duì)列管理單元使用表單管理隊(duì)列信息,所以使隊(duì)列具有了可動(dòng)態(tài)配置的屬性,通過(guò)修改表單的信息便可以修改隊(duì)列數(shù)量和深度。在實(shí)際應(yīng)用中,當(dāng)出現(xiàn)大量隨機(jī)數(shù)據(jù)讀寫請(qǐng)求時(shí),可以通過(guò)修改表單增加隊(duì)列數(shù)量和深度,增強(qiáng)隨機(jī)讀寫性能;在順序讀寫數(shù)據(jù)時(shí),可以清除表單減少隊(duì)列數(shù)量和深度,降低資源占用和功耗。
對(duì)于完成隊(duì)列,設(shè)置一個(gè)完成隊(duì)列管理單元、一個(gè)完成條目解析單元和一塊異常完成條目緩存。完成管理單元中同樣包含了完成隊(duì)列表單,與提交隊(duì)列表單不同的是完成隊(duì)列表單中只包含了門鈴地址、隊(duì)列深度和門鈴頭、尾指針,并且只設(shè)置了一個(gè)admin完成隊(duì)列和一個(gè)I/O完成隊(duì)列。
這樣的結(jié)構(gòu)設(shè)計(jì)基于兩個(gè)方面的考量:首先,當(dāng)完成條目狀態(tài)為正常完成時(shí),只需將完成條目中的指令I(lǐng)D釋放到ID池,將對(duì)應(yīng)提交隊(duì)列ID的門鈴頭指針更新到提交隊(duì)列條目,當(dāng)完成條目狀態(tài)為異常時(shí),將其寫入異常完成條目緩存等待處理,這些過(guò)程由完成條目解析單元在短時(shí)間內(nèi)并行處理,不會(huì)出現(xiàn)完成隊(duì)列寫請(qǐng)求的阻塞,因此不需要設(shè)置多個(gè)I/O完成隊(duì)列和完成條目的存儲(chǔ)空間。其次,由于ID池的存在,所有的NVMe指令都具有一個(gè)唯一的ID,完成條目中的提交隊(duì)列ID不再作為指令的標(biāo)識(shí),因此僅使用一個(gè)I/O完成隊(duì)列對(duì)應(yīng)多個(gè)I/O提交隊(duì)列是可行的,并且異常的I/O完成條目和異常的admin完成條目存放在同一個(gè)緩存中也不會(huì)影響ID的辨識(shí)作用。
在有新的提交條目寫入提交隊(duì)列和新的完成隊(duì)列寫請(qǐng)求時(shí),提交隊(duì)列管理單元和完成隊(duì)列管理單元向?qū)?yīng)的隊(duì)列發(fā)起門鈴寫請(qǐng)求,這些請(qǐng)求經(jīng)過(guò)Round Robin仲裁器的仲裁后被發(fā)送給SSD。實(shí)際上,隨著仲裁輸入數(shù)量的增加,仲裁的效率和時(shí)序也會(huì)變差[[i]]。假設(shè)采用完成隊(duì)列和提交隊(duì)列一一對(duì)應(yīng)的結(jié)構(gòu),仲裁的輸入數(shù)量將是提交隊(duì)列數(shù)量的2倍,要保證仲裁效率和良好的時(shí)序,只能降低提交隊(duì)列數(shù)量,導(dǎo)致性能下降。而完成隊(duì)列管理單元所實(shí)現(xiàn)的結(jié)構(gòu)只占用兩個(gè)仲裁請(qǐng)求輸入,基于此可以增加更多的I/O提交隊(duì)列,充分發(fā)揮SSD性能。
B站已給出相關(guān)性能的視頻,如想進(jìn)一步了解,請(qǐng)搜索B站用戶:專注與守望
鏈接:https://space.bilibili.com/585132944/dynamic?spm_id_from=333.1365.list.card_title.click
?
審核編輯 黃宇
-
nvme
+關(guān)注
關(guān)注
0文章
299瀏覽量
23842
發(fā)布評(píng)論請(qǐng)先 登錄
NVMe高速傳輸之擺脫XDMA設(shè)計(jì)54:如何測(cè)試隊(duì)列管理功能2
NVMe高速傳輸之擺脫XDMA設(shè)計(jì)53:如何測(cè)試隊(duì)列管理功能
NVMe高速傳輸之擺脫XDMA設(shè)計(jì)37:隊(duì)列管理功能驗(yàn)證與分析1
NVMe IP高速傳輸卻不依賴XDMA設(shè)計(jì)之九:隊(duì)列管理模塊(上)
NVMe高速傳輸之擺脫XDMA設(shè)計(jì)十:隊(duì)列管理模塊設(shè)計(jì)(下)
NVMe高速傳輸之擺脫XDMA設(shè)計(jì)九:隊(duì)列管理模塊設(shè)計(jì)(上)
NVMe IP高速傳輸卻不依賴XDMA設(shè)計(jì)之八:系統(tǒng)初始化
NVMe IP高速傳輸卻不依賴XDMA設(shè)計(jì)之五:DMA 控制單元設(shè)計(jì)
NVMe IP高速傳輸卻不依賴XDMA設(shè)計(jì)之四:系統(tǒng)控制模塊
NVMe IP高速傳輸卻不依賴XDMA設(shè)計(jì)之三:系統(tǒng)架構(gòu)
NVMe IP高速傳輸卻不依賴XDMA設(shè)計(jì)之十:隊(duì)列管理模塊下
評(píng)論