[發明專利]獲取隊列精確狀態的裝置及其方法有效
| 申請號: | 201610122532.1 | 申請日: | 2016-03-04 |
| 公開(公告)號: | CN107153580B | 公開(公告)日: | 2020-08-18 |
| 發明(設計)人: | 伍德斌;湯峰 | 申請(專利權)人: | 北京憶恒創源科技有限公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54 |
| 代理公司: | 北京卓特專利代理事務所(普通合伙) 11572 | 代理人: | 陳變花 |
| 地址: | 100192 北京市海淀區西小口*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 獲取 隊列 精確 狀態 裝置 及其 方法 | ||
提供了獲取隊列精確狀態的裝置及其方法。命令隊列處理方法包括:清除標志寄存器;更新存儲器中的隊首指針;讀取標志寄存器,確定所述標志寄存器被置位后,才訪問所述狀態寄存器,并依據所述狀態寄存器對所述命令隊列進行處理。
技術領域
本發明涉及用于處理NVMe命令的NVMe控制器,特別地,涉及在NVMe控制器中準確識別NVMe隊列狀態。
背景技術
設備之間通過隊列交換命令或消息是常用的。命令發送方將命令插入提交隊列尾部,命令接收方從隊列尾部取出命令并處理,將處理結果插入到完成隊列尾部,命令發送方從完成隊列頭部取出命令處理結果。通過隊列交換命令,能夠在發送方與接收方直接維護多個并發的命令,并且命令之間的處理速度不必一致。NVMe協議(參見“NVM ExpressRevision 1.2”,2014年11月3日,通過引用將其全文合并于本說明書)定義了主機(Host)與設備(Device)之間交換數據的命令與數據結構(如圖1所示)。主機中維護多個隊列,每個隊列中可填充多個命令。主機與設備基于隊列交換數據。主機將命令C填入提交隊列,設備從提交隊列中取得命令C,并按命令C的內容進行處理,將處理結果填入完成隊列。主機從完成隊列獲取命令C的處理結果以知曉命令C的處理完成。
依據NVMe協議,在設備端維護多個隊列的隊首與隊尾指針。主機與設備都會更新隊首與隊尾指針。主機向設備發送命令時,主機將命令插入提交隊列的隊尾,并更新隊尾指針。設備端比較提交隊列的隊首指針與隊尾指針,在二者不同時,確定隊列中有待處理的命令。設備端從隊列中取出命令后,更新隊首指針。主機端基于隊首指針與隊尾指針,可確定隊列中是否有空間容納新的命令。
在軟件組件之間、集成電路組件之間以及軟件與硬件之間也使用隊列交換消息或命令。
發明人提出了在設備端維護隊列指針的方式(申請號為201510997494.X、發明名稱為NVMe門鈴處理方法及其裝置的中國專利申請)。(參看圖2),將隊列指針存儲在設備端的NVMe控制器的存儲器中,從而設備端的NVMe控制器可維護不同數量的NVMe隊列指針。當在主機與設備之間有N個隊列時,在存儲器中存儲2N個指針。為每個隊列在存儲器中存儲隊首指針與隊尾指針。在NVMe控制器中還提供狀態寄存器,用以指示各個隊列的狀態(隊首指針與隊尾指針是否相同,隊首指針與隊尾指針不同,意味著隊列中有待處理的NVMe命令),狀態寄存器中為每個隊列提供一個寄存器位。
在圖2中,主機能夠訪問設備端的存儲器中存儲的隊列指針;NVMe控制器的CPU能夠訪問存儲器中存儲的隊列指針;監控器組件1,在監視到主機更新存儲器中的隊尾指針時,設置狀態寄存器中與該隊尾指針所屬的隊列所對應的位;監控器組件2,在監視到NVMe控制器的CPU更新存儲器中的隊首指針時,讀取與該隊首指針相對應的隊尾指針,在隊首指針與隊尾指針不同時,設置狀態寄存器中與該隊尾指針所屬的隊列所對應的位;在隊首指針與隊尾指針相同時,清除狀態寄存器中與該隊尾指針所屬的隊列所對應的位。
發明內容
然而,(1)存儲器的訪問速度較慢,而NVMe控制器中的CPU指令執行速度較快。從而當CPU執行指令更新存儲器中的隊列指針后,會繼續依據狀態寄存器的指示,確定是否對隊列進行處理。而在NVMe CPU更新存儲器中的隊列指針與狀態寄存器反映出真實的隊列狀態之間存在時間窗口。在該時間窗口內,狀態寄存器可能指示隊列中有命令需要處理,但相應的命令已被NVMe CPU處理完成。從而狀態寄存器指示的狀態信息是錯誤的。在多CPU的情況下,這種問題將更加嚴重。
參看下表,在t0時刻,NVMe控制器CPU發出指令更新隊列指針(隊首指針)。存儲器的訪問速度較慢,在t2時候才完成對存儲器中的隊首指針的更新。監控器在t3時刻從存儲器中查詢到隊尾指針。在t4時刻,狀態寄存器才能反映出隊列真實的狀態。這導致在t1-t3的時間窗口內,NVMe CPU無法通過狀態寄存器獲得隊列的真實狀態。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京憶恒創源科技有限公司,未經北京憶恒創源科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610122532.1/2.html,轉載請聲明來源鉆瓜專利網。





