• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    NVMe協議處理器及其處理方法技術

    技術編號:15191503 閱讀:255 留言:0更新日期:2017-04-20 09:14
    本發明專利技術公開了一種NVMe協議處理器及NVMe協議處理方法,所述NVMe協議處理器包括CPU子系統、共享存儲器、Gather?DMA模塊、Scatter?DMA模塊、主機存取模塊、獨立Doorbell寄存器和Doorbell檢測模塊。Gather?DMA模塊與共享存儲器連接,用于將外部主機的數據通過PCIe控制器搬移到共享存儲器;Scatter?DMA模塊與共享存儲器連接,用于將共享存儲器的數據通過PCIe控制器搬移到外部主機;主機存取模塊通過PCIe控制器連接在共享存儲器和外部主機之間,以訪問共享存儲器;獨立Doorbell寄存器連接在主機存取模塊和Doorbell檢測模塊之間,用于存儲Doorbell指針;所述Doorbell檢測模塊用于檢測Doorbell指針的更新。本發明專利技術易于在NVMe協議升級或擴展時進行適應性修改,無需重新設計NVMe協議處理器的硬件電路,方便易用,適應性強。

    【技術實現步驟摘要】

    本專利技術涉及固態存儲設備(SolidStorageDevice,SSD),更具體地,本專利技術涉及存儲器控制器中用于處理NVMe(NonVolatileMemoryexpress,非易失存儲器)協議的NVMe協議處理器及NVMe協議處理方法。
    技術介紹
    NVMe協議的處理流程一般為:1.命令提交(1)主機向提交隊列(SubmissionQueue,SQ)寫入NVMe命令;(2)主機寫入更新后的SQ隊列尾指針,作為Doorbell(門鈴)通知NVMe協議處理器有新命令要處理;2.命令處理(1)NVMe協議處理器從主機的SQ隊列取得NVMe命令;(2)NVMe協議處理器處理NVMe命令;3.命令完成(1)NVMe協議處理器向完成隊列(CompletionQueue,CQ)隊尾寫入數據,指示命令處理完成;(2)NVMe協議處理器生成MSI-X中斷,指示主機處理;(3)主機處理CQ中的數據;(4)主機寫入更新后的完成隊列CQ的頭指針,作為Doorbell通知NVMe協議處理器。現有技術中主要以全硬件方式實現對NVMe協議的處理,當NVMe協議升級時,或者對NVMe協議進行擴展時,例如增加功能,需要修改硬件設計才能實現對升級或擴展后的NVMe協議的處理。如果用全硬件方式實現NVMe協議,假設需要支持三條NVMe命令A,B和C,并實現了對應的命令處理功能。但是,如果NVMe協議升級,需要支持5條命令,那么多出來的兩條命令D和E就得通過增加硬件電路的方式來實現。而對于ASIC(ApplicationSpecificIntegratedCircuit,專用集成電路),增加硬件電路就需要重新進行前后端設計、仿真驗證,會帶來高昂的研發成本。
    技術實現思路
    本專利技術的目的是為解決目前采用全硬件方式實現NVMe協議處理器不能很好地適應NVMe協議升級或擴展的技術問題。為了實現上述專利技術目的,一方面,本專利技術提供了一種NVMe協議處理器,所述NVMe協議處理器第一種實現方案如下:包括:CPU子系統、共享存儲器、GatherDMA模塊、ScatterDMA模塊、主機存取模塊和PCIe控制器;所述CPU子系統包括一個或多個CPU,所述CPU耦合到所述共享存儲器;所述GatherDMA模塊與所述共享存儲器連接,用于將外部主機的數據通過所述PCIe控制器搬移到所述共享存儲器;所述ScatterDMA模塊與所述共享存儲器連接,用于將所述共享存儲器的數據通過所述PCIe控制器搬移到外部主機;所述主機存取模塊通過所述PCIe控制器耦合在所述共享存儲器和外部主機之間,以使外部主機訪問所述共享存儲器;所述共享存儲器中設有Doorbell寄存器,用于存儲Doorbell指針;所述PCIe控制器用于在所述外部主機與所述NVMe協議處理器之間交換數據。進一步地,還包括Doorbell檢測模塊,所述Doorbell檢測模塊與所述Doorbell寄存器相耦合,用于檢測所述Doorbell寄存器的更新。進一步地,所述GatherDMA模塊和所述ScatterDMA模塊還分別耦合到外部的SDD控制器。所述NVMe協議處理器第二種實現方案如下:包括:CPU子系統、共享存儲器、GatherDMA模塊、ScatterDMA模塊、主機存取模塊、獨立Doorbell寄存器、Doorbell檢測模塊和PCIe控制器;所述CPU子系統包括一個或多個CPU,所述CPU連接到所述共享存儲器;所述GatherDMA模塊與所述共享存儲器連接,用于將外部主機的數據通過所述PCIe控制器搬移到所述共享存儲器;所述ScatterDMA模塊與所述共享存儲器連接,用于將所述共享存儲器的數據通過所述PCIe控制器搬移到外部主機;所述主機存取模塊通過所述PCIe控制器連接在所述共享存儲器和外部主機之間,以訪問所述共享存儲器;所述獨立Doorbell寄存器連接在所述主機存取模塊和Doorbell檢測模塊之間,用于存儲Doorbell指針;所述Doorbell檢測模塊用于檢測所述獨立Doorbell寄存器的更新;所述GatherDMA模塊和所述ScatterDMA模塊還分別耦合到外部的SDD控制器。另一方面,本專利技術還提供了一種NVMe協議處理方法,第一種實現方案如下:包括如下步驟:(1)主機將NVMe命令寫入NVMe協議處理器的共享存儲器;(2)所述NVMe協議處理器的CPU處理所述共享存儲器中的NVMe命令;(3)所述NVMe協議處理器依據處理完成的NVMe命令,填充所述主機的完成隊列(CQ);(4)所述主機從所述完成隊列(CQ)中取出數據并處理,并告知所述NVMe協議處理器完成隊列(CQ)的處理情況。所述NVMe協議處理方法,第二種實現方案如下:包括如下步驟:(1)主機向NVMe協議處理器發送Doorbell指針值;(2)所述NVMe協議處理器的CPU獲知Doorbell值的更新;(3)所述NVMe協議處理器的CPU配置GatherDMA模塊從所述主機的提交隊列(SQ)取得NVMe命令,并存入共享存儲器;(4)所述NVMe協議處理器的CPU處理共享存儲器中的NVMe命令;(5)所述NVMe協議處理器的CPU依據處理完成的NVMe命令,配置ScatterDMA模塊,指示ScatterDMA模塊將數據寫入主機的完成隊列(CQ),該數據指示處理完成的NVMe命令;(6)所述主機從完成隊列(CQ)中取出數據并處理,并將所述完成隊列(CQ)對應的Doorbell指針值發送給所述NVMe協議處理器;(7)所述NVMe協議處理器的CPU獲知Doorbell值的更新并完成NVMe命令的處理。所述NVMe協議處理方法,第三種實現方案如下:包括:檢查對應于提交隊列(SQ)的第一Doorbell寄存器是否被更新;若第一Doorbell寄存器被更新,配置GatterDMA模塊來將主機的提交隊列(SQ)中的NVMe命令傳送到共享存儲器;對共享存儲器中的NVMe命令進行處理,將指示NVMe命令處理結果的數據寫入共享存儲器,并通過配置ScatterDMA模塊,將共享存儲器中的指示NVMe命令處理結果的數據傳送到主機的完成隊列(CQ);檢查對應于完成隊列(CQ)的第二Doorbell寄存器是否被更新;若第二Doorbell寄存器被更新,完成所述NVMe命令的處理。進一步地,所述第一Doorbell寄存器與第二Doorbell寄存器位于所述共享存儲器的存儲空間。進一步地,所述檢查對應于提交隊列(SQ)的第一Doorbell寄存器是否被更新,包括:輪詢所述Doorbell寄存器以確定所述第一Doorbell寄存器被更新。所述NVMe協議處理方法,第四種實現方案如下:包括:響應于接收到指示對應于提交隊列(SQ)的第一Doorbell寄存器被更新的中斷請求,配置GatterDMA模塊來將主機的提交隊列(SQ)中的NVMe命令傳送到共享存儲器;對共享存儲器中的NVMe命令進行處理,將指示NVMe命令處理結果的數據寫入共享存儲器,并通過配置ScatterDMA模塊,將共享存儲器中的指示NVMe命令處理結果的數據傳送到主機的完成隊列(CQ);檢查對應于完成隊列(CQ)的第二Doorbell寄存器是否被更新;若第二Doorbell寄存器被更本文檔來自技高網
    ...
    <a  title="NVMe協議處理器及其處理方法原文來自X技術">NVMe協議處理器及其處理方法</a>

    【技術保護點】
    NVMe協議處理器,其特征在于,包括:CPU子系統、共享存儲器、Gather?DMA模塊、Scatter?DMA模塊、主機存取模塊和PCIe控制器;所述CPU子系統包括一個或多個CPU,所述CPU耦合到所述共享存儲器;所述Gather?DMA模塊與所述共享存儲器連接,用于將外部主機的數據通過所述PCIe控制器搬移到所述共享存儲器;所述Scatter?DMA模塊與所述共享存儲器連接,用于將所述共享存儲器的數據通過所述PCIe控制器搬移到外部主機;所述主機存取模塊通過所述PCIe控制器耦合在所述共享存儲器和外部主機之間,以使外部主機訪問所述共享存儲器;所述共享存儲器中設有Doorbell寄存器,用于存儲Doorbell指針;所述PCIe控制器用于在所述外部主機與所述NVMe協議處理器之間交換數據。

    【技術特征摘要】
    2015.10.10 CN 20151065215811.NVMe協議處理器,其特征在于,包括:CPU子系統、共享存儲器、GatherDMA模塊、ScatterDMA模塊、主機存取模塊和PCIe控制器;所述CPU子系統包括一個或多個CPU,所述CPU耦合到所述共享存儲器;所述GatherDMA模塊與所述共享存儲器連接,用于將外部主機的數據通過所述PCIe控制器搬移到所述共享存儲器;所述ScatterDMA模塊與所述共享存儲器連接,用于將所述共享存儲器的數據通過所述PCIe控制器搬移到外部主機;所述主機存取模塊通過所述PCIe控制器耦合在所述共享存儲器和外部主機之間,以使外部主機訪問所述共享存儲器;所述共享存儲器中設有Doorbell寄存器,用于存儲Doorbell指針;所述PCIe控制器用于在所述外部主機與所述NVMe協議處理器之間交換數據。2.根據權利要求1所述的NVMe協議處理器,其特征在于,還包括Doorbell檢測模塊,所述Doorbell檢測模塊與所述Doorbell寄存器相耦合,用于檢測所述Doorbell寄存器的更新。3.根據權利要求1或2所述的NVMe協議處理器,其特征在于,所述GatherDMA模塊和所述ScatterDMA模塊還分別耦合到SDD控制器。4.NVMe協議處理器,其特征在于,包括:CPU子系統、共享存儲器、GatherDMA模塊、ScatterDMA模塊、主機存取模塊、Doorbell寄存器、Doorbell檢測模塊和PCIe控制器;所述CPU子系統包括一個或多個CPU,所述CPU連接到所述共享存儲器;所述GatherDMA模塊與所述共享存儲器連接,用于將外部主機的數據通過所述PCIe控制器搬移到所述共享存儲器;所述ScatterDMA模塊與所述共享存儲器連接,用于將所述共享存儲器的數據通過所述PCIe控制器搬移到外部主機;所述主機存取模塊通過所述PCIe控制器連接在所述共享存儲器和外部主機之間,以使外部主機訪問所述共享存儲器;所述Doorbell寄存器連接在所述主機存取模塊和Doorbell檢測模塊之間,用于存儲Doorbell指針;所述Doorbell檢測模塊用于檢測所述Doorbell寄存器的更新;所述GatherDMA模塊和所述ScatterDMA模塊還分別耦合到外部的SDD控制器。5.NVMe協議處理方法,其特征在于,包括如下步驟:(1)主機將NVMe命令寫入NVMe協議處理器的共享存儲器;(2)所述NVMe協議處理器的CPU處理所述共享存儲器中的NVMe命令;(3)所述NVMe協議處理器依據處理完成的NVMe命令,填充完成隊列...

    【專利技術屬性】
    技術研發人員:王晨陽王祎磊
    申請(專利權)人:北京憶芯科技有限公司
    類型:發明
    國別省市:北京;11

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 中文字幕AV中文字无码亚| 亚洲VA中文字幕无码一二三区| 无码av免费一区二区三区| 曰韩精品无码一区二区三区| 亚洲AV无码乱码在线观看富二代 | 无码乱码观看精品久久| 人妻无码中文字幕免费视频蜜桃| 久久国产精品无码网站| 亚洲av无码专区国产不乱码| 国产成人无码区免费网站| 亚洲午夜无码久久| 亚洲精品高清无码视频| 日韩精品无码免费视频| 亚洲av无码成人影院一区 | 亚洲AV无码日韩AV无码导航| 免费无码不卡视频在线观看| 久久久久亚洲Av片无码v| 成在线人免费无码高潮喷水| 无码人妻精品一区二区三区久久久 | 日韩精品人妻系列无码专区| 寂寞少妇做spa按摩无码| 999久久久无码国产精品| 无码人妻精品中文字幕| 亚洲av中文无码乱人伦在线r▽| 国产成人亚洲精品无码AV大片 | 久久精品亚洲中文字幕无码网站| 日韩专区无码人妻| 男男AV纯肉无码免费播放无码| 人妻无码αv中文字幕久久| 一本加勒比HEZYO无码资源网| 国产在线无码精品无码| 亚洲午夜成人精品无码色欲| 亚洲人成无码网站在线观看| 激情无码人妻又粗又大中国人| 一本无码中文字幕在线观| 亚洲中文字幕无码永久在线| 一区二区三区无码视频免费福利 | 成人免费无码大片a毛片| 亚洲AV永久无码天堂影院| 成人无码嫩草影院| 国产精品无码一区二区三区在 |