[發(fā)明專利]一種多核系統(tǒng)處理器和數(shù)據(jù)更新方法有效
| 申請(qǐng)?zhí)枺?/td> | 201811258200.1 | 申請(qǐng)日: | 2018-10-26 |
| 公開(kāi)(公告)號(hào): | CN109614220B | 公開(kāi)(公告)日: | 2020-06-30 |
| 發(fā)明(設(shè)計(jì))人: | 馬凌;何昌華 | 申請(qǐng)(專利權(quán))人: | 阿里巴巴集團(tuán)控股有限公司 |
| 主分類號(hào): | G06F9/50 | 分類號(hào): | G06F9/50 |
| 代理公司: | 北京博思佳知識(shí)產(chǎn)權(quán)代理有限公司 11415 | 代理人: | 林祥 |
| 地址: | 英屬開(kāi)曼群島大開(kāi)*** | 國(guó)省代碼: | 暫無(wú)信息 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 多核 系統(tǒng) 處理器 數(shù)據(jù) 更新 方法 | ||
本說(shuō)明書實(shí)施例提供一種多核系統(tǒng)處理器和數(shù)據(jù)更新方法,其中,所述方法應(yīng)用于多核系統(tǒng)處理器,所述多核系統(tǒng)處理器用于處理多線程任務(wù),并且,所述多核系統(tǒng)處理器包括多個(gè)CPU;待更新的數(shù)據(jù)是多個(gè)線程的共享數(shù)據(jù);所述方法由任一CPU執(zhí)行;該方法可以包括:在本CPU對(duì)應(yīng)的線程將要執(zhí)行對(duì)應(yīng)的關(guān)鍵區(qū)域函數(shù)時(shí),請(qǐng)求獲取鎖,所述鎖用于表示對(duì)所述多個(gè)線程的共享數(shù)據(jù)執(zhí)行更新的權(quán)限;所述關(guān)鍵區(qū)域函數(shù)用于更新所述共享數(shù)據(jù);若所述鎖已經(jīng)被其他CPU占用,則在鎖內(nèi)存設(shè)置對(duì)應(yīng)本CPU的內(nèi)存索引,以使得擁有鎖的CPU根據(jù)內(nèi)存索引執(zhí)行本CPU對(duì)應(yīng)線程的關(guān)鍵區(qū)域函數(shù)。
技術(shù)領(lǐng)域
本公開(kāi)涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種多核系統(tǒng)處理器和數(shù)據(jù)更新方法。
背景技術(shù)
多核系統(tǒng)處理器(Multiple Cores Processor)是指在一枚處理器中集成兩個(gè)或多個(gè)完整的計(jì)算引擎(CPU),由于多核系統(tǒng)處理器能夠在單位時(shí)間內(nèi)處理更多的任務(wù),處理能力更強(qiáng),應(yīng)用也越發(fā)廣泛。在利用多核系統(tǒng)處理器運(yùn)行多線程任務(wù)時(shí),該多個(gè)線程之間可以具有都能夠操作的共享數(shù)據(jù)(Shared_Data)。并且,在更新所述的共享數(shù)據(jù)時(shí),同一時(shí)刻只能有一個(gè)線程更新,以避免線程沖突導(dǎo)致數(shù)據(jù)錯(cuò)誤。當(dāng)前技術(shù)中,各個(gè)線程之間可以申請(qǐng)鎖Lock,成功獲取到鎖的線程可以操作該共享數(shù)據(jù),未獲取到鎖的線程只能等待。此外,成功獲取到鎖的線程會(huì)將鎖和共享數(shù)據(jù)遷移到對(duì)應(yīng)CPU的私有緩存中,這種不同線程執(zhí)行時(shí)將鎖和共享數(shù)據(jù)在各個(gè)CPU之間來(lái)回遷移的行為影響了所有線程執(zhí)行結(jié)束所需要的時(shí)間,使得多線程任務(wù)的執(zhí)行效率較低。
發(fā)明內(nèi)容
有鑒于此,本說(shuō)明書一個(gè)或多個(gè)實(shí)施例提供一種多核系統(tǒng)處理器和數(shù)據(jù)更新方法,以提高多線程對(duì)共享數(shù)據(jù)操作時(shí)的處理效率。
具體地,本說(shuō)明書一個(gè)或多個(gè)實(shí)施例是通過(guò)如下技術(shù)方案實(shí)現(xiàn)的:
第一方面,提供一種數(shù)據(jù)更新方法,所述方法應(yīng)用于多核系統(tǒng)處理器,所述多核系統(tǒng)處理器用于處理多線程任務(wù),并且,所述多核系統(tǒng)處理器包括多個(gè)CPU;待更新的數(shù)據(jù)是多個(gè)線程的共享數(shù)據(jù);所述方法由任一CPU執(zhí)行;該方法可以包括:
在本CPU對(duì)應(yīng)的線程將要執(zhí)行對(duì)應(yīng)的關(guān)鍵區(qū)域函數(shù)時(shí),請(qǐng)求獲取鎖,所述鎖用于表示對(duì)所述多個(gè)線程的共享數(shù)據(jù)執(zhí)行更新的權(quán)限;所述關(guān)鍵區(qū)域函數(shù)用于更新所述共享數(shù)據(jù);
若所述鎖已經(jīng)被其他CPU占用,則在鎖內(nèi)存設(shè)置對(duì)應(yīng)本CPU的內(nèi)存索引,以使得擁有鎖的CPU根據(jù)內(nèi)存索引執(zhí)行本CPU對(duì)應(yīng)線程的關(guān)鍵區(qū)域函數(shù)。
第二方面,提供一種數(shù)據(jù)更新方法,所述方法應(yīng)用于多核系統(tǒng)處理器,所述多核系統(tǒng)處理器用于處理多線程任務(wù),并且,所述多核系統(tǒng)處理器包括多個(gè)CPU;待更新的數(shù)據(jù)是多個(gè)線程的共享數(shù)據(jù);所述方法由任一CPU執(zhí)行:該方法可以包括:
在本CPU對(duì)應(yīng)的線程將要執(zhí)行對(duì)應(yīng)的關(guān)鍵區(qū)域函數(shù)時(shí),請(qǐng)求獲取鎖,所述鎖用于表示對(duì)所述多個(gè)線程的共享數(shù)據(jù)執(zhí)行更新的權(quán)限;
若所述鎖未被其他CPU占用,則獲取到所述鎖,執(zhí)行本CPU對(duì)應(yīng)線程的關(guān)鍵區(qū)域函數(shù),以通過(guò)所述關(guān)鍵區(qū)域函數(shù)更新所述共享數(shù)據(jù);
在執(zhí)行本CPU對(duì)應(yīng)線程的關(guān)鍵區(qū)域函數(shù)后,若發(fā)現(xiàn)鎖內(nèi)存中還設(shè)置有其他CPU的內(nèi)存索引,則根據(jù)所述內(nèi)存索引執(zhí)行對(duì)應(yīng)的關(guān)鍵區(qū)域函數(shù),以通過(guò)所述關(guān)鍵區(qū)域函數(shù)更新所述共享數(shù)據(jù)。
第三方面,提供一種多核系統(tǒng)處理器,所述多核系統(tǒng)處理器包括多個(gè)CPU,所述多核系統(tǒng)處理器用于處理多線程任務(wù),該多個(gè)線程具有待更新的共享數(shù)據(jù);
所述多核系統(tǒng)處理器中的每個(gè)CPU,用于執(zhí)行可執(zhí)行指令以實(shí)現(xiàn)如下操作:
在本CPU對(duì)應(yīng)的線程將要執(zhí)行對(duì)應(yīng)的關(guān)鍵區(qū)域函數(shù)時(shí),請(qǐng)求獲取鎖;所述鎖用于表示對(duì)所述多個(gè)線程的共享數(shù)據(jù)執(zhí)行更新的權(quán)限;
判斷所述鎖是否已經(jīng)被其他CPU占用;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于阿里巴巴集團(tuán)控股有限公司,未經(jīng)阿里巴巴集團(tuán)控股有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811258200.1/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法、數(shù)據(jù)系統(tǒng)、接收設(shè)備和數(shù)據(jù)讀取方法
- 數(shù)據(jù)記錄方法、數(shù)據(jù)記錄裝置、數(shù)據(jù)記錄媒體、數(shù)據(jù)重播方法和數(shù)據(jù)重播裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)發(fā)送系統(tǒng)、數(shù)據(jù)發(fā)送裝置以及數(shù)據(jù)結(jié)構(gòu)
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法及數(shù)據(jù)系統(tǒng)
- 數(shù)據(jù)嵌入裝置、數(shù)據(jù)嵌入方法、數(shù)據(jù)提取裝置及數(shù)據(jù)提取方法
- 數(shù)據(jù)管理裝置、數(shù)據(jù)編輯裝置、數(shù)據(jù)閱覽裝置、數(shù)據(jù)管理方法、數(shù)據(jù)編輯方法以及數(shù)據(jù)閱覽方法
- 數(shù)據(jù)發(fā)送和數(shù)據(jù)接收設(shè)備、數(shù)據(jù)發(fā)送和數(shù)據(jù)接收方法
- 數(shù)據(jù)發(fā)送裝置、數(shù)據(jù)接收裝置、數(shù)據(jù)收發(fā)系統(tǒng)、數(shù)據(jù)發(fā)送方法、數(shù)據(jù)接收方法和數(shù)據(jù)收發(fā)方法
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置





