[發(fā)明專利]一種硬件隊(duì)列多線程共享方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)有效
| 申請(qǐng)?zhí)枺?/td> | 202010693183.5 | 申請(qǐng)日: | 2020-07-17 |
| 公開(公告)號(hào): | CN111858095B | 公開(公告)日: | 2022-06-10 |
| 發(fā)明(設(shè)計(jì))人: | 崔健;吳睿振;余洪斌;劉文濤;王芳;肖明;徐江波 | 申請(qǐng)(專利權(quán))人: | 山東云海國(guó)創(chuàng)云計(jì)算裝備產(chǎn)業(yè)創(chuàng)新中心有限公司 |
| 主分類號(hào): | G06F9/54 | 分類號(hào): | G06F9/54 |
| 代理公司: | 北京集佳知識(shí)產(chǎn)權(quán)代理有限公司 11227 | 代理人: | 劉翠香 |
| 地址: | 250001 山東省濟(jì)南市自由貿(mào)易試驗(yàn)*** | 國(guó)省代碼: | 山東;37 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 硬件 隊(duì)列 多線程 共享 方法 裝置 設(shè)備 存儲(chǔ) 介質(zhì) | ||
1.一種硬件隊(duì)列多線程共享方法,其特征在于,應(yīng)用于共享硬件隊(duì)列的多個(gè)線程中的任意一個(gè)線程,所述方法包括:
在有N個(gè)請(qǐng)求要發(fā)送時(shí),獲取內(nèi)存中硬件隊(duì)列的請(qǐng)求尾部變量的值;
將所述請(qǐng)求尾部變量的值確定為第一請(qǐng)求尾部舊值;
使用比較和交換CAS操作將所述內(nèi)存中的所述請(qǐng)求尾部變量的值更新為所述第一請(qǐng)求尾部舊值+N;N≥1;
如果CAS操作成功,則確定申請(qǐng)到所述硬件隊(duì)列中的N個(gè)節(jié)點(diǎn),所述N個(gè)節(jié)點(diǎn)中的第一個(gè)節(jié)點(diǎn)為所述第一請(qǐng)求尾部舊值指向的節(jié)點(diǎn);
從申請(qǐng)到的所述N個(gè)節(jié)點(diǎn)的最后一個(gè)節(jié)點(diǎn)開始,依次向所述N個(gè)節(jié)點(diǎn)的每個(gè)節(jié)點(diǎn)寫入請(qǐng)求內(nèi)容;
將所述N個(gè)節(jié)點(diǎn)的每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的請(qǐng)求標(biāo)記為有效請(qǐng)求;
寫入完成后,如果所述N個(gè)節(jié)點(diǎn)為當(dāng)前第一組待提交節(jié)點(diǎn),則提交所述N個(gè)節(jié)點(diǎn)的請(qǐng)求內(nèi)容;
向所述硬件隊(duì)列的尾部方向,檢查下一個(gè)請(qǐng)求是否為有效請(qǐng)求;
如果是,則重復(fù)所述檢查下一個(gè)請(qǐng)求是否為有效請(qǐng)求的步驟,直至檢查到無效請(qǐng)求時(shí),將搜索到的連續(xù)的有效請(qǐng)求對(duì)應(yīng)的節(jié)點(diǎn)確定為其他線程的待提交節(jié)點(diǎn);
提交搜索到的連續(xù)的待提交節(jié)點(diǎn)的請(qǐng)求內(nèi)容。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述使用比較和交換CAS操作將所述內(nèi)存中的所述請(qǐng)求尾部變量的值更新為所述第一請(qǐng)求尾部舊值+N之后,還包括:
如果CAS操作失敗,重復(fù)執(zhí)行所述獲取內(nèi)存中所述硬件隊(duì)列的請(qǐng)求尾部變量的值的步驟。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,通過以下步驟確定所述N個(gè)節(jié)點(diǎn)是否為當(dāng)前第一組待提交節(jié)點(diǎn):
以所述第一請(qǐng)求尾部舊值為舊值,所述第一請(qǐng)求尾部舊值+N為新值,使用所述CAS操作更新所述內(nèi)存中尾部填充變量的值;
如果CAS操作成功,則確定所述N個(gè)節(jié)點(diǎn)為當(dāng)前第一組待提交節(jié)點(diǎn)。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述提交搜索到的連續(xù)的待提交節(jié)點(diǎn)的請(qǐng)求內(nèi)容,包括:
將更新后的所述請(qǐng)求尾部變量的值確定為第二請(qǐng)求尾部舊值;
以所述第二請(qǐng)求尾部舊值為舊值,所述第二請(qǐng)求尾部舊值+M為新值,使用所述CAS操作更新所述內(nèi)存中所述尾部填充變量的值,M為搜索到的連續(xù)的待提交節(jié)點(diǎn)的數(shù)量;
如果CAS操作成功,則將所述尾部填充變量的值寫入尾部寄存器,觸發(fā)硬件工作。
5.一種硬件隊(duì)列多線程共享裝置,其特征在于,應(yīng)用于共享硬件隊(duì)列的多個(gè)線程中的任意一個(gè)線程,所述裝置包括:
節(jié)點(diǎn)申請(qǐng)模塊,用于在有N個(gè)請(qǐng)求要發(fā)送時(shí),獲取內(nèi)存中硬件隊(duì)列的請(qǐng)求尾部變量的值;將所述請(qǐng)求尾部變量的值確定為第一請(qǐng)求尾部舊值;使用比較和交換CAS操作將所述內(nèi)存中的所述請(qǐng)求尾部變量的值更新為所述第一請(qǐng)求尾部舊值+N;N≥1;
請(qǐng)求寫入模塊,用于如果CAS操作成功,則確定申請(qǐng)到所述硬件隊(duì)列中的N個(gè)節(jié)點(diǎn),所述N個(gè)節(jié)點(diǎn)中的第一個(gè)節(jié)點(diǎn)為所述第一請(qǐng)求尾部舊值指向的節(jié)點(diǎn);從申請(qǐng)到的所述N個(gè)節(jié)點(diǎn)的最后一個(gè)節(jié)點(diǎn)開始,依次向所述N個(gè)節(jié)點(diǎn)的每個(gè)節(jié)點(diǎn)寫入請(qǐng)求內(nèi)容;將所述N個(gè)節(jié)點(diǎn)的每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的請(qǐng)求標(biāo)記為有效請(qǐng)求;
請(qǐng)求提交第一模塊,用于寫入完成后,如果所述N個(gè)節(jié)點(diǎn)為當(dāng)前第一組待提交節(jié)點(diǎn),則提交所述N個(gè)節(jié)點(diǎn)的請(qǐng)求內(nèi)容;
節(jié)點(diǎn)搜索模塊,用于向所述硬件隊(duì)列的尾部方向,檢查下一個(gè)請(qǐng)求是否為有效請(qǐng)求;如果是,則重復(fù)所述檢查下一個(gè)請(qǐng)求是否為有效請(qǐng)求的步驟,直至檢查到無效請(qǐng)求時(shí),將搜索到的連續(xù)的有效請(qǐng)求對(duì)應(yīng)的節(jié)點(diǎn)確定為其他線程的待提交節(jié)點(diǎn);
請(qǐng)求提交第二模塊,用于提交搜索到的連續(xù)的待提交節(jié)點(diǎn)的請(qǐng)求內(nèi)容。
6.一種硬件隊(duì)列多線程共享設(shè)備,其特征在于,包括:
存儲(chǔ)器,用于存儲(chǔ)計(jì)算機(jī)程序;
處理器,用于執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)如權(quán)利要求1至4任一項(xiàng)所述硬件隊(duì)列多線程共享方法的步驟。
7.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1至4任一項(xiàng)所述硬件隊(duì)列多線程共享方法的步驟。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于山東云海國(guó)創(chuàng)云計(jì)算裝備產(chǎn)業(yè)創(chuàng)新中心有限公司,未經(jīng)山東云海國(guó)創(chuàng)云計(jì)算裝備產(chǎn)業(yè)創(chuàng)新中心有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010693183.5/1.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 隊(duì)列調(diào)度系統(tǒng)及方法
- 一種從多隊(duì)列節(jié)點(diǎn)獲取消息的方法及系統(tǒng)
- 隊(duì)列請(qǐng)求處理方法和裝置
- 一種隊(duì)列清空方法以及相關(guān)設(shè)備
- 一種基于Linux通用塊層多隊(duì)列的優(yōu)化系統(tǒng)及方法
- 一種分離存儲(chǔ)的隊(duì)列實(shí)現(xiàn)方法及裝置
- 一種數(shù)據(jù)處理方法、裝置及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 一種接口擁塞時(shí)延的計(jì)算方法及裝置
- 一種報(bào)文調(diào)度方法及裝置
- RDMA網(wǎng)絡(luò)下的網(wǎng)卡隊(duì)列創(chuàng)建方法以及裝置
- 多線程應(yīng)用系統(tǒng)的異常處理方法和異常處理裝置
- 一種面向片上網(wǎng)絡(luò)的多線程調(diào)度實(shí)現(xiàn)方法
- 基于計(jì)算機(jī)多線程多核顯微鏡細(xì)胞圖像快速掃描處理方法
- 一種基于同步鎖的多線程處理方法、終端以及存儲(chǔ)介質(zhì)
- 多線程并發(fā)處理系統(tǒng)及方法
- 海外控股估值流程控制方法、裝置、計(jì)算機(jī)設(shè)備及存儲(chǔ)介質(zhì)
- 讀數(shù)方法、電子裝置、計(jì)算機(jī)設(shè)備及存儲(chǔ)介質(zhì)
- 一種基于云平臺(tái)多線程調(diào)度的方法、系統(tǒng)、設(shè)備及介質(zhì)
- 一種基于云平臺(tái)的前端多線程調(diào)度方法和系統(tǒng)
- 多線程調(diào)度方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 服務(wù)器、系統(tǒng)及信息共享方法
- 一種信息共享系統(tǒng)及信息共享方法
- 一種移動(dòng)終端的數(shù)據(jù)無線共享方法及該移動(dòng)終端
- 一種桌面共享系統(tǒng)及方法
- 一種用于共享移動(dòng)汽車電池的方法
- 一種基于物聯(lián)網(wǎng)的移動(dòng)共享方法及移動(dòng)共享系統(tǒng)
- 一種數(shù)據(jù)共享方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 基于云平臺(tái)的數(shù)據(jù)共享方法、裝置、共享平臺(tái)及存儲(chǔ)介質(zhì)
- 確定共享乘坐度量
- 設(shè)備功能共享方法、裝置、終端及存儲(chǔ)介質(zhì)





