[發明專利]實現自適應鎖的方法和裝置以及多核處理器系統有效
| 申請號: | 201110394780.9 | 申請日: | 2011-12-02 |
| 公開(公告)號: | CN102566979A | 公開(公告)日: | 2012-07-11 |
| 發明(設計)人: | 秦嶺;陳渝;崔巖;吳瑾 | 申請(專利權)人: | 華為技術有限公司;清華大學 |
| 主分類號: | G06F9/38 | 分類號: | G06F9/38 |
| 代理公司: | 北京龍雙利達知識產權代理有限公司 11329 | 代理人: | 王君;肖鸝 |
| 地址: | 518129 廣東*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 實現 自適應 方法 裝置 以及 多核 處理器 系統 | ||
技術領域
本發明實施例涉及計算機領域,并且更具體地,涉及實現自適應鎖的方法和裝置以及多核處理器系統。
背景技術
隨著芯片技術的不斷發展,多處理器核系統已經越來越普及。為了最大限度地發揮多處理器核的潛力,應用程序通常采用多線程的方式進行并行運行。
現在的大部分架構的計算機系統,例如SMP(SymmetricalMulti-Processing?Architecture,對稱多處理架構)、NUMA(Non?UniformMemory?Access?Architecture,非一致內存訪問架構),提供了統一的物理內存地址空間。因此,多個應用程序或線程可以通過共享變量來訪問(讀操作或寫操作)同一個內存地址。但是,對同一個內存地址的并行訪問,必然存在競爭。例如,兩個線程同時訪問一個內存地址,有可能會引起資源沖突。為了避免這樣的沖突,處理器核提供了多種同步機制來保護共享的存儲設備和/或共享的硬件高速緩存中的共享資源,例如自旋鎖、互斥鎖等。
并行多線程訪問共享資源時,必然會競爭保護該共享資源的鎖。隨著核數的增多,并行線程的增多,鎖競爭度也變得越來越激烈,以至于會對應用程序的性能產生較大的影響。因此,需要采取有效的措施降低鎖競爭、避免鎖抖動,進而提高系統性能。
發明內容
本發明實施例提供了一種實現自適應鎖的方法以及裝置以及多核處理器系統,針對系統中處理器核的鎖機制,能夠一定程度上解決多線程競爭同一個鎖時產生的鎖抖動。
一方面,提供了一種實現自適應鎖的方法,包括:當新的第一線程嘗試獲得自適應鎖時,如果所述自適應鎖空閑,則使所述第一線程獲得所述自適應鎖,否則使所述第一線程根據競爭所述自適應鎖的激烈程度進入自旋狀態或者節能狀態;當所述第一線程處于節能狀態,使所述第一線程等待被喚醒進入自旋狀態,或者當所述第一線程處于自旋狀態,使所述第一線程競爭所述自適應鎖,直到所述第一線程競爭到所述自適應鎖并對所述自適應鎖保護的共享資源操作完畢,釋放所述自適應鎖;當所述自適應鎖被釋放時,如果有處于節能狀態的線程,則喚醒另一個處于節能狀態的線程以使其進入自旋狀態,以便與其他處于自旋狀態的線程一同競爭所述自適應鎖。
另一方面,提供了一種實現自適應鎖的裝置,包括:確定單元,用于當新的第一線程嘗試獲得自適應鎖時,如果所述自適應鎖空閑,則使所述第一線程獲得所述自適應鎖,否則使所述第一線程根據競爭所述自適應鎖的激烈程度進入自旋狀態或者節能狀態;競爭單元,用于當所述第一線程處于節能狀態,使所述第一線程等待被喚醒進入自旋狀態,或者當所述第一線程處于自旋狀態,使所述第一線程競爭所述自適應鎖,直到所述第一線程競爭到所述自適應鎖并對所述自適應鎖保護的共享資源操作完畢,釋放所述自適應鎖;喚醒單元,用于當所述自適應鎖被釋放時,如果有處于節能狀態的線程,則喚醒另一個處于節能狀態的線程以使其進入自旋狀態,以便與其他處于自旋狀態的線程一同競爭所述自適應鎖。
再一方面,提供了一種多核處理器系統,包括:兩個或更多個處理器核,以及共享的硬件資源;所述兩個或更多個處理器核訪問由自適應鎖保護的所述共享的硬件資源;其中每個所述處理器核用于:當新的第一線程嘗試獲得自適應鎖時,如果所述自適應鎖空閑,則使所述第一線程獲得所述自適應鎖,否則使所述第一線程根據競爭所述自適應鎖的激烈程度進入自旋狀態或者節能狀態;當所述第一線程處于節能狀態,使所述第一線程等待被喚醒進入自旋狀態,或者當所述第一線程處于自旋狀態,使所述第一線程競爭所述自適應鎖,直到所述第一線程競爭到所述自適應鎖并對所述自適應鎖保護的共享資源操作完畢,釋放所述自適應鎖;當所述自適應鎖被釋放時,如果有處于節能狀態的線程,則喚醒另一個處于節能狀態的線程以使其進入自旋狀態,以便與其他處于自旋狀態的線程一同競爭所述自適應鎖。
可見,本發明實施例的可擴展的自適應鎖的實現技術,由于能夠根據自適應鎖的競爭程度(即競爭自適應鎖的線程的數目多少)選擇合適的鎖模式,當競爭自適應鎖的線程的數目超過一定數量,使超出的部分線程進入節能狀態,而保證不超過一定數量的處于自旋狀態的線程在競爭自適應鎖,只有當一個處于自旋狀態的線程在訪問自適應鎖保護的共享資源后才相應地使一個處于節能狀態的線程進入自旋狀態,從而避免了多線程在競爭同一個鎖時產生的鎖抖動,進而降低了系統的開銷,提高了系統的性能。
附圖說明
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華為技術有限公司;清華大學,未經華為技術有限公司;清華大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110394780.9/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:道路擁堵狀況實時查詢系統及方法
- 下一篇:觸摸控制方法和電子設備





