[發(fā)明專利]一種固態(tài)硬盤的IO隊列滿狀態(tài)處理的方法和設備有效
| 申請?zhí)枺?/td> | 202011225903.1 | 申請日: | 2020-11-05 |
| 公開(公告)號: | CN112328178B | 公開(公告)日: | 2022-08-09 |
| 發(fā)明(設計)人: | 尹作剛 | 申請(專利權)人: | 蘇州浪潮智能科技有限公司 |
| 主分類號: | G06F3/06 | 分類號: | G06F3/06 |
| 代理公司: | 北京連和連知識產(chǎn)權代理有限公司 11278 | 代理人: | 劉小峰;張騰 |
| 地址: | 215100 江蘇省蘇州市吳*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 固態(tài) 硬盤 io 隊列 狀態(tài) 處理 方法 設備 | ||
本發(fā)明提供了一種固態(tài)硬盤的IO隊列滿狀態(tài)處理的方法和設備,該方法包括:在內(nèi)存中創(chuàng)建鏈表并建立若干存儲節(jié)點;響應于固態(tài)硬盤向IO完成引擎發(fā)送IO完成命令且IO完成引擎返回預設狀態(tài),將IO完成命令存儲到空閑的存儲節(jié)點中并將存儲有IO完成命令的存儲節(jié)點掛接到鏈表中;經(jīng)預設時間后將鏈表中按掛接順序第一個存儲節(jié)點中存儲的IO完成命令發(fā)送到IO完成引擎并在第一個存儲節(jié)點中刪除IO完成命令;響應于IO完成引擎返回成功處理IO完成命令的消息,將IO完成命令釋放。通過使用本發(fā)明的方案,能夠有效的保證在有隊列滿狀態(tài)下固態(tài)硬盤能夠正常運行工作同時不會造成性能瓶頸。
技術領域
本領域涉及計算機領域,并且更具體地涉及一種固態(tài)硬盤的IO隊列滿狀態(tài)處理的方法和設備。
背景技術
隨著存儲系統(tǒng)的不斷發(fā)展,NVMe SSD(固態(tài)硬盤)越來越被廣泛的使用,Host(主機)通過NVMe IO(輸入輸出)提交隊列將內(nèi)核Block(塊)層的IO請求進行下發(fā),SSD完成相應的IO命令后通過IO完成隊列將完成狀態(tài)返回給Host,由于Host側(cè)的IO協(xié)議棧在命令處理時會存在較大的開銷,會導致對SSD返回的IO完成命令不能夠及時處理,會在SSD側(cè)出現(xiàn)IO完成隊列滿的狀態(tài),導致性能帶寬存在著瓶頸。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明實施例的目的在于提出一種固態(tài)硬盤的IO隊列滿狀態(tài)處理的方法和設備,通過使用本發(fā)明的方法,能夠有效的保證在有隊列滿狀態(tài)下固態(tài)硬盤能夠正常運行工作同時不會造成性能瓶頸。
基于上述目的,本發(fā)明的實施例的一個方面提供了一種固態(tài)硬盤的IO隊列滿狀態(tài)處理的方法,包括以下步驟:
在內(nèi)存中創(chuàng)建鏈表并建立若干存儲節(jié)點;
響應于固態(tài)硬盤向IO完成引擎發(fā)送IO完成命令且IO完成引擎返回預設狀態(tài),將IO完成命令存儲到空閑的存儲節(jié)點中并將存儲有IO完成命令的存儲節(jié)點掛接到鏈表中;
經(jīng)預設時間后將鏈表中按掛接順序第一個存儲節(jié)點中存儲的IO完成命令發(fā)送到IO完成引擎并在第一個存儲節(jié)點中刪除IO完成命令;
響應于IO完成引擎返回成功處理IO完成命令的消息,將IO完成命令釋放。
根據(jù)本發(fā)明的一個實施例,在內(nèi)存中創(chuàng)建鏈表并建立若干存儲節(jié)點包括:
在內(nèi)存中創(chuàng)建空閑鏈表和使用鏈表;
在內(nèi)存中建立用于存儲IO完成命令的若干個存儲節(jié)點并將若干個存儲節(jié)點掛接到空閑鏈表中。
根據(jù)本發(fā)明的一個實施例,響應于固態(tài)硬盤向IO完成引擎發(fā)送IO完成命令且IO完成引擎返回預設狀態(tài),將IO完成命令存儲到空閑的存儲節(jié)點中并將存儲有IO完成命令的存儲節(jié)點掛接到鏈表中包括:
響應于固態(tài)硬盤向IO完成引擎發(fā)送IO完成命令且IO完成引擎返回滿狀態(tài),將IO完成命令存儲到空閑鏈表的存儲節(jié)點中并將儲有IO完成命令的存儲節(jié)點按順序掛接到使用鏈表中。
根據(jù)本發(fā)明的一個實施例,經(jīng)預設時間后將鏈表中按掛接順序第一個存儲節(jié)點中存儲的IO完成命令發(fā)送到IO完成引擎并在第一個存儲節(jié)點中刪除IO完成命令包括:
經(jīng)預設時間后將使用鏈表中第一個存儲節(jié)點中存儲的IO完成命令發(fā)送到IO完成引擎;
在第一個存儲節(jié)點中刪除IO完成命令并將第一存儲節(jié)點掛接到空閑鏈表中。
根據(jù)本發(fā)明的一個實施例,還包括:
響應于IO完成引擎返回滿狀態(tài),將IO完成命令存儲到空閑鏈表中的存儲節(jié)點中;
將存儲有IO完成命令的存儲節(jié)點按順序掛接到使用鏈表中。
本發(fā)明的實施例的另一個方面,還提供了一種固態(tài)硬盤的IO隊列滿狀態(tài)處理的設備,設備包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于蘇州浪潮智能科技有限公司,未經(jīng)蘇州浪潮智能科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011225903.1/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字數(shù)據(jù)處理
G06F3-00 用于將所要處理的數(shù)據(jù)轉(zhuǎn)變成為計算機能夠處理的形式的輸入裝置;用于將數(shù)據(jù)從處理機傳送到輸出設備的輸出裝置,例如,接口裝置
G06F3-01 .用于用戶和計算機之間交互的輸入裝置或輸入和輸出組合裝置
G06F3-05 .在規(guī)定的時間間隔上,利用模擬量取樣的數(shù)字輸入
G06F3-06 .來自記錄載體的數(shù)字輸入,或者到記錄載體上去的數(shù)字輸出
G06F3-09 .到打字機上去的數(shù)字輸出
G06F3-12 .到打印裝置上去的數(shù)字輸出





