[發明專利]一種多核系統處理器和數據更新方法有效
| 申請號: | 201811258200.1 | 申請日: | 2018-10-26 |
| 公開(公告)號: | CN109614220B | 公開(公告)日: | 2020-06-30 |
| 發明(設計)人: | 馬凌;何昌華 | 申請(專利權)人: | 阿里巴巴集團控股有限公司 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50 |
| 代理公司: | 北京博思佳知識產權代理有限公司 11415 | 代理人: | 林祥 |
| 地址: | 英屬開曼群島大開*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 多核 系統 處理器 數據 更新 方法 | ||
1.一種數據更新方法,所述方法應用于多核系統處理器,所述多核系統處理器用于處理多線程任務,并且,所述多核系統處理器包括多個CPU;待更新的數據是多個線程的共享數據;所述方法由任一CPU執行;
所述方法包括:
在本CPU對應的線程將要執行對應的關鍵區域函數時,請求獲取鎖,所述鎖用于表示對所述多個線程的共享數據執行更新的權限;所述關鍵區域函數用于更新所述共享數據;
若所述鎖已經被其他CPU占用,則在鎖內存設置對應本CPU的內存索引,以使得擁有鎖的CPU根據內存索引執行本CPU對應線程的關鍵區域函數;所述鎖內存是擁有鎖的CPU的私有緩存中被該鎖占用的緩存區。
2.根據權利要求1所述的方法,所述請求獲取鎖,包括:
通過鎖請求指令申請獲取鎖,所述鎖請求指令攜帶本CPU對應的內存索引;
根據緩存一致性MESI協議,獲取到鎖內存的地址。
3.根據權利要求2所述的方法,所述在鎖內存設置對應本CPU的內存索引,包括:根據所述鎖請求指令中攜帶的內存索引,將所述鎖內存中對應內存索引的比特位置1。
4.根據權利要求1所述的方法,所述方法還包括:
檢測到擁有鎖的CPU已經調用所述關鍵區域函數結束時,確認完成所述線程對共享數據的更新。
5.根據權利要求4所述的方法,在所述請求獲取鎖之前,所述方法還包括:在本CPU的私有緩存中設置標識參數;
所述檢測到擁有鎖的CPU已經調用所述關鍵區域函數結束,包括:
若所述標識參數已經被擁有鎖的CPU清除,則確定所述關鍵區域函數已經被擁有鎖的CPU調用執行結束。
6.一種數據更新方法,所述方法應用于多核系統處理器,所述多核系統處理器用于處理多線程任務,并且,所述多核系統處理器包括多個CPU;待更新的數據是多個線程的共享數據;所述方法由任一CPU執行;
所述方法包括:
在本CPU對應的線程將要執行對應的關鍵區域函數時,請求獲取鎖,所述鎖用于表示對所述多個線程的共享數據執行更新的權限;
若所述鎖未被其他CPU占用,則獲取到所述鎖,執行本CPU對應線程的關鍵區域函數,以通過所述關鍵區域函數更新所述共享數據;
在執行本CPU對應線程的關鍵區域函數后,若發現鎖內存中還設置有其他CPU的內存索引,則根據所述內存索引執行對應的關鍵區域函數,以通過所述關鍵區域函數更新所述共享數據;所述鎖內存是擁有鎖的CPU的私有緩存中被該鎖占用的緩存區。
7.根據權利要求6所述的方法,所述根據所述內存索引執行對應的關鍵區域函數,包括:
根據所述內存索引,獲取到對應內存索引的內存區域,所述內存區域中存儲有關鍵區域函數的函數指針和參數指針;
根據所述函數指針和參數指針,調用執行對應的關鍵區域函數對共享數據進行更新,在執行關鍵區域函數中使用共享數據寫指令對共享數據執行寫操作;
所述方法還包括:在調用執行完所有的關鍵區域函數之后,將使用所述共享數據寫指令更新的共享數據放入到多個CPU的共享緩存中;所述所有的關鍵區域函數包括:鎖內存中所有設置的內存索引對應的關鍵區域函數。
8.根據權利要求7所述的方法,所述對應內存索引的內存區域,屬于本CPU的私有緩存中的一塊內存區域。
9.根據權利要求7所述的方法,所述方法還包括:在調用執行完所有的關鍵區域函數之后,將所述鎖放入到多個CPU的共享緩存中。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于阿里巴巴集團控股有限公司,未經阿里巴巴集團控股有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811258200.1/1.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





