国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

NVME控制器之隊(duì)列管理模塊

高速傳輸與存儲(chǔ) ? 來(lái)源:高速傳輸與存儲(chǔ) ? 作者:高速傳輸與存儲(chǔ) ? 2025-05-03 15:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

隊(duì)列管理模塊是整個(gè)NVMe Host控制器的核心模塊,該模塊實(shí)現(xiàn)了提交隊(duì)列與完成隊(duì)列的管理,多隊(duì)列請(qǐng)求的仲裁判決等功能。隊(duì)列管理模塊中含有數(shù)據(jù)選擇單元、SQ、CQ、和仲裁器等模塊。其中Admin SQ與IO SQ的內(nèi)部結(jié)構(gòu)一致,包含狀態(tài)機(jī)、BRAM、Tail REG和Head REG。Admin CQ與IO CQ的內(nèi)部結(jié)構(gòu)一致,包含狀態(tài)機(jī)、Tail REG和Head REG。
隊(duì)列管理模塊框圖如圖1所示。

wKgZPGgVxQqADJyzAABA6tcvNUY291.png


圖1 隊(duì)列管理模塊框圖
在NVMe協(xié)議中,使用隊(duì)列來(lái)傳輸、緩存和處理命令條目,以實(shí)現(xiàn)Host端和NVMe SSD端之間的通信。在CPU上運(yùn)行NVMe軟件協(xié)議棧,其Host端生成提交命令的速度遠(yuǎn)大于NVMe SSD的執(zhí)行速度,同時(shí)由于CPU的指令是順序執(zhí)行的,需要通過(guò)中斷來(lái)通知CPU去處理完成信息。因此,通過(guò)增加提交隊(duì)列和完成隊(duì)列的深度可以提高系統(tǒng)的傳輸性能。


設(shè)計(jì)中可以利用FPGA的并行處理能力來(lái)加速NVMe Host端的控制流程。相較于軟件協(xié)議棧,通過(guò)硬件電路生成提交命令的速度更快,并且能夠通過(guò)并行操作去實(shí)時(shí)檢查返回的完成信息,從而避免了采用中斷來(lái)通知CPU去處理完成信息而造成延遲較大的問(wèn)題。本設(shè)計(jì)主要針對(duì)順序讀寫(xiě)場(chǎng)景進(jìn)行了資源方面的優(yōu)化。考慮到在順序讀寫(xiě)情況下,傳輸性能與隊(duì)列深度的大小無(wú)關(guān),且硬件邏輯生成NVMe命令的速度要遠(yuǎn)大于軟件協(xié)議棧生成NVMe命令的速度,因此通過(guò)增加提交隊(duì)列和完成隊(duì)列的深度來(lái)提高系統(tǒng)的傳輸性能的方法不再可行,本設(shè)計(jì)將提交隊(duì)列深度設(shè)置為NVMe SSD一次突發(fā)讀取的數(shù)據(jù)量大小,這樣在保證性能的前提下,可以盡可能的減少資源的消耗。此外,取消了完成隊(duì)列緩存的設(shè)計(jì),對(duì)完成信息的解析工作通過(guò)組合邏輯電路對(duì)其進(jìn)行實(shí)時(shí)檢測(cè),而不用通過(guò)中斷來(lái)通知NVMe Host檢查,從而可以提高NVMe命令的執(zhí)行效率,并節(jié)省了大量的存儲(chǔ)資源。


提交隊(duì)列內(nèi)部由一個(gè)雙端口RAM、兩個(gè)寄存器和一個(gè)狀態(tài)機(jī)構(gòu)成。其中,提交隊(duì)列分為Admin提交隊(duì)列和I/O提交隊(duì)列,分別用于管理Admin命令和I/O命令。雖然這兩個(gè)隊(duì)列針對(duì)的命令條目不同,但其內(nèi)部結(jié)構(gòu)相同。因此,通過(guò)采用相同的設(shè)計(jì)來(lái)實(shí)現(xiàn)兩個(gè)隊(duì)列,以提高代碼的復(fù)用性和可維護(hù)性。雙端口RAM使用BRAM資源實(shí)現(xiàn),包括兩個(gè)128位寬、深度可配置的端口,用于實(shí)現(xiàn)NVMe命令的緩存。四個(gè)控制寄存器用于監(jiān)測(cè)隊(duì)列狀態(tài),包括Head指針和Tail指針。Head指針指向隊(duì)列中下一個(gè)被執(zhí)行的命令的位置,Tail指針指向隊(duì)列中下一個(gè)空位置,新產(chǎn)生的命令條目總是被寫(xiě)入Tail所指向的位置。當(dāng)同一個(gè)隊(duì)列的Head指針等于Tail指針加1時(shí),表示隊(duì)列為滿(mǎn);當(dāng)Head指針等于Tail指針時(shí),表示隊(duì)列為空。該模塊中的狀態(tài)機(jī)用來(lái)實(shí)現(xiàn)門(mén)鈴寄存器信息更新的流程控制工作。隊(duì)列管理狀態(tài)機(jī)的跳轉(zhuǎn)圖如圖2所示。

wKgZPGgVxYWAD_ZRAAAxG-vHZ2U637.png

圖2 隊(duì)列管理狀態(tài)機(jī)的跳轉(zhuǎn)圖

各狀態(tài)說(shuō)明如下:

IDLE:空閑狀態(tài),該狀態(tài)為模塊上電后的初始化狀態(tài),該狀態(tài)下檢測(cè)到s_axis_entry_valid信號(hào)有效時(shí),表示有提交命令傳輸至隊(duì)列管理模塊,狀態(tài)跳轉(zhuǎn)至RD_SQ_REG狀態(tài),否則維持當(dāng)前IDLE狀態(tài)。

RD_SQ_REG:讀提交隊(duì)列寄存器狀態(tài),該狀態(tài)下讀取提交隊(duì)列中的cmd_cnt寄存器,cmd_cnt寄存器負(fù)責(zé)記錄隊(duì)列中緩存的命令數(shù),即SQ Head指針與SQ Tail指針之差,當(dāng)cmd_cnt寄存器的值大于10時(shí)向仲裁器發(fā)起更新門(mén)鈴寄存器請(qǐng)求,這里設(shè)置為10主要是考慮到減少NVMe Host控制器和NVMe SSD之間的數(shù)據(jù)交互次數(shù),讓其通過(guò)突發(fā)傳輸一次讀取多條命令,來(lái)達(dá)到提升系統(tǒng)性能的效果,同時(shí),為了解決長(zhǎng)時(shí)間沒(méi)有接收到新的提交命令使得小于10條命令無(wú)法發(fā)送的情況,添加了超時(shí)機(jī)制,當(dāng)計(jì)時(shí)計(jì)數(shù)器達(dá)到一定值時(shí),不再等待cmd_cnt滿(mǎn)足條件,直接跳轉(zhuǎn)至SC_REQ狀態(tài),否則維持當(dāng)前狀態(tài)。

SC_REQ:仲裁請(qǐng)求狀態(tài),該狀態(tài)下將sq_req信號(hào)置為高電平來(lái)向仲裁器發(fā)起仲裁請(qǐng)求,若接收到仲裁授權(quán),狀態(tài)跳轉(zhuǎn)至SEND狀態(tài),否則維持當(dāng)前狀態(tài)。

SEND:發(fā)送狀態(tài),該狀態(tài)下向接口轉(zhuǎn)換模塊發(fā)送當(dāng)前的隊(duì)列信息,接口轉(zhuǎn)換模塊將內(nèi)部信號(hào)轉(zhuǎn)換為AXI4接口信號(hào),通過(guò)訪(fǎng)問(wèn)PCIe的BAR空間來(lái)實(shí)現(xiàn)對(duì)NVMe SSD門(mén)鈴寄存器的更新,等待返回應(yīng)答信號(hào),狀態(tài)跳轉(zhuǎn)至IDLE狀態(tài)。

相關(guān)視頻感興趣的,請(qǐng)移步B站,搜用戶(hù)名 專(zhuān)注與守望 或 內(nèi)容 NVMe IP

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1660

    文章

    22408

    瀏覽量

    636217
  • 控制器
    +關(guān)注

    關(guān)注

    114

    文章

    17787

    瀏覽量

    193079
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    RDMA設(shè)計(jì)25:隊(duì)列管理模塊發(fā)送模塊詳細(xì)設(shè)計(jì)分析

    發(fā)送隊(duì)列存儲(chǔ)為所有發(fā)送隊(duì)列共用的存儲(chǔ)空間,根據(jù)用戶(hù)環(huán)境和開(kāi)發(fā)板環(huán)境不同可由 BRAM、URAM 或 LUTRAM 實(shí)現(xiàn)。發(fā)送隊(duì)列管理單元?jiǎng)t負(fù)責(zé)管理這個(gè)存儲(chǔ)空間,并處理用戶(hù)指令和發(fā)送
    的頭像 發(fā)表于 01-25 16:27 ?3340次閱讀
    RDMA設(shè)計(jì)25:<b class='flag-5'>隊(duì)列管理</b><b class='flag-5'>模塊</b><b class='flag-5'>之</b>發(fā)送<b class='flag-5'>模塊</b>詳細(xì)設(shè)計(jì)分析

    RDMA設(shè)計(jì)27:隊(duì)列管理模塊設(shè)計(jì)完成模塊詳細(xì)分析

    。 (3)完成隊(duì)列 完成隊(duì)列管理由完成條目解析單元和異常完成條目處理單元組成。完成條目解析單元中只設(shè)置了一個(gè)虛擬完成隊(duì)列,使用這樣的結(jié)構(gòu)設(shè)計(jì)原因有三。 一是當(dāng)完成條目狀態(tài)為正常完成
    發(fā)表于 01-23 08:52

    RDMA設(shè)計(jì)26:隊(duì)列管理模塊設(shè)計(jì)接收隊(duì)列模塊詳細(xì)分析

    表單,并通知發(fā)送隊(duì)列管理單元釋放對(duì)應(yīng)表單中的發(fā)送隊(duì)列條目。同時(shí)接收隊(duì)列管理單元也不再處理遠(yuǎn)程主機(jī)發(fā)送過(guò)來(lái)的數(shù)據(jù),而是直接由 RoCEv2 接收模塊通知 DMA
    發(fā)表于 01-22 09:03

    RDMA設(shè)計(jì)24:隊(duì)列管理模塊設(shè)計(jì)

    隊(duì)列管理模塊采用管理與存儲(chǔ)分離的結(jié)構(gòu)進(jìn)行設(shè)計(jì),由發(fā)送隊(duì)列存儲(chǔ)、發(fā)送隊(duì)列管理、接收隊(duì)列管理、完成條
    的頭像 發(fā)表于 01-20 11:45 ?1352次閱讀
    RDMA設(shè)計(jì)24:<b class='flag-5'>隊(duì)列管理</b><b class='flag-5'>模塊</b>設(shè)計(jì)

    RDMA設(shè)計(jì)18:隊(duì)列管理模塊設(shè)計(jì)3

    標(biāo)識(shí)。故而只使用一個(gè)虛擬完成隊(duì)列足以滿(mǎn)足接收隊(duì)列管理單元和發(fā)送隊(duì)列管理單元的信息需求。這樣的設(shè)計(jì)在一定程度上縮減存儲(chǔ)資源開(kāi)銷(xiāo)的同時(shí),也會(huì)進(jìn)一步減小用戶(hù)操作難度,使模塊不再需要為每一個(gè)發(fā)
    發(fā)表于 01-05 09:04

    RDMA設(shè)計(jì)17:隊(duì)列管理模塊設(shè)計(jì)2

    接收模塊通知 DMA 控制器處理數(shù)據(jù)。這樣的設(shè)計(jì)使得接收隊(duì)列管理單元并不需要占用存儲(chǔ)資源,可以更好的節(jié)省系統(tǒng)的資源占用并提高接收隊(duì)列處理效率。 B站已給出相關(guān)性能的視頻,如想進(jìn)一步了
    發(fā)表于 01-04 14:54

    NVMe高速傳輸擺脫XDMA設(shè)計(jì)54:如何測(cè)試隊(duì)列管理功能2

    邊界操作的錯(cuò)誤反饋。 圖1 隊(duì)列管理串口打印信息三 B站已給出相關(guān)性能的視頻,如想進(jìn)一步了解,請(qǐng)搜索B站用戶(hù):專(zhuān)注與守望 鏈接:https://space.bilibili.com
    發(fā)表于 12-10 08:33

    NVMe高速傳輸擺脫XDMA設(shè)計(jì)53:如何測(cè)試隊(duì)列管理功能

    本博文主要交流設(shè)計(jì)思路,希望對(duì)初學(xué)者有用。注意這里只是拋磚引玉,切莫認(rèn)為參考這就可以完成商用IP設(shè)計(jì)。若有NVME或RDMA 產(chǎn)品及項(xiàng)目需求,請(qǐng)看B站視頻后聯(lián)系。 這里通過(guò)實(shí)際環(huán)境中測(cè)試隊(duì)列管理
    發(fā)表于 12-09 08:21

    NVMe高速傳輸擺脫XDMA設(shè)計(jì)37:隊(duì)列管理功能驗(yàn)證與分析1

    。 測(cè)試點(diǎn)與對(duì)應(yīng)測(cè)試步驟如表 1所示。 表 1 隊(duì)列管理功能驗(yàn)證步驟 (1) 創(chuàng)建隊(duì)列功能測(cè)試結(jié)果 測(cè)試步驟 1、 2 關(guān)鍵信號(hào)波形如圖1 所示。 在配置隊(duì)列控制寄存
    發(fā)表于 10-13 11:17

    NVMe IP高速傳輸卻不依賴(lài)XDMA設(shè)計(jì)九:隊(duì)列管理模塊(上)

    這是采用PCIe設(shè)計(jì)NVMe,并非調(diào)用XDMA方式,后者在PCIe4.0時(shí)不大方便,故團(tuán)隊(duì)直接采用PCIe設(shè)計(jì),結(jié)合UVM驗(yàn)證加快設(shè)計(jì)速度。 隊(duì)列管理模塊采用隊(duì)列的存儲(chǔ)與
    的頭像 發(fā)表于 08-04 09:53 ?764次閱讀
    <b class='flag-5'>NVMe</b> IP高速傳輸卻不依賴(lài)XDMA設(shè)計(jì)<b class='flag-5'>之</b>九:<b class='flag-5'>隊(duì)列管理</b><b class='flag-5'>模塊</b>(上)

    NVMe高速傳輸擺脫XDMA設(shè)計(jì)十:隊(duì)列管理模塊設(shè)計(jì)(下)

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

    NVMe高速傳輸擺脫XDMA設(shè)計(jì)九:隊(duì)列管理模塊設(shè)計(jì)(上)

    設(shè)計(jì),結(jié)合UVM驗(yàn)證加快設(shè)計(jì)速度。隊(duì)列管理模塊采用隊(duì)列的存儲(chǔ)與控制分離的設(shè)計(jì)結(jié)構(gòu),如圖1所示為隊(duì)列管理
    發(fā)表于 07-27 17:41

    NVMe控制器IP設(shè)計(jì)接口轉(zhuǎn)換

    (addr、en、data_db)轉(zhuǎn)換為與AXI PCIe IP模塊相連接的AXI4-Lite接口。該模塊的主要功能是在隊(duì)列管理模塊需要更新SSD內(nèi)部門(mén)鈴寄存
    發(fā)表于 05-10 14:33

    NVME控制器隊(duì)列管理模塊

    隊(duì)列管理模塊是整個(gè)NVMe Host控制器的核心模塊,該模塊實(shí)現(xiàn)了提交
    發(fā)表于 05-03 20:19

    NVME控制器設(shè)計(jì)1

    的相關(guān)寄存來(lái)發(fā)送 DMA 或隊(duì)列管理請(qǐng)求, NVMe控制模塊在得到任務(wù)信息后生成對(duì)應(yīng)的 NVMe
    發(fā)表于 04-24 09:45