[發明專利]功率管理鎖優化有效
| 申請號: | 201080021002.9 | 申請日: | 2010-05-07 |
| 公開(公告)號: | CN102918474B | 公開(公告)日: | 2016-10-12 |
| 發明(設計)人: | J·P·德塞里;R·沃德萬;M·J·史密斯;P·庫馬;B·J·塞美麗亞 | 申請(專利權)人: | 蘋果公司 |
| 主分類號: | G06F1/32 | 分類號: | G06F1/32 |
| 代理公司: | 中國國際貿易促進委員會專利商標事務所 11038 | 代理人: | 張陽 |
| 地址: | 美國加*** | 國省代碼: | 美國;US |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 功率 管理 優化 | ||
發明領域
本發明涉及處理器以及實施處理器的系統領域,尤其涉及的是在包含處理器的系統中對鎖進行管理。
背景技術
在多個線程可以同時活動的系統中,這些線程可以訪問相同的資源(例如存儲器位置,存儲器中的數據結構,系統中的設備等等)。為了確保針對共享資源的訪問是以邏輯受控方式執行的,所述共享資源可以用鎖來保護。這些鎖可以在多處理器系統中使用,例如用于防止在不同處理器上執行的線程重疊訪問資源。在多線程系統中,即便只有一個處理器,但如果調度了一個線程,與此同時另一個線程正處于訪問/更新該資源的過程中,那么在多個活動的線程之間也有可能會發生重疊訪問。
為了在鎖保護資源的時候訪問或更新該資源,訪問線程會獲取所述鎖,執行預期的訪問/更新,以及釋放所述鎖。在當前線程保持所述鎖的時候,其他線程是不能獲得所述鎖的。對于一些鎖(通常被稱為“自旋鎖”)來說,不能獲得鎖的線程將會進入一個在檢測到釋放(通常被稱為“繞鎖自旋”)之前持續訪問所述鎖的循環。該循環有可能會非常緊,由此通常只包括用于讀取該鎖以及測試該縮能否被獲取的指令。相應地,循環和相應的數據訪問往往會命中處理器緩存。由此,處理器有可能會耗費大量功率來等待自旋鎖釋放,與此同時實際并未完成有用的工作。另一種類鎖被稱為“互斥鎖”。對于互斥鎖來說,線程嘗試獲取所述鎖,然后,如果嘗試失敗,那么線程將會阻塞,由此處理器可以完成其他工作,而線程則會等待鎖被釋放。
在很多情況、尤其是多處理器系統中,線程會頻繁地在很短的時段內保持互斥鎖。舉例來說,該時段可以小于用來調度另一個線程以取代嘗試獲取所述鎖的被阻塞線程所需要的時間量。相應地,對互斥鎖的優化在于與典型的保持時段大致相等或者有可能稍長的時間量中進入繞鎖的自旋循環。如果鎖被釋放并且與此同時線程仍舊處于自旋循環,那么它可以獲得所述鎖,并且避免在稍后時刻取消調度該線程或重新調度該線程的開銷。當線程處于自旋循環時,處理器有可能會再次消耗大量功率。
在一些系統中實施的另一種機制包括:使用一個等待事件指令以及一個。該等待事件指令可用于促使正在執行線程的處理器進入低功率狀態。該處理器會在低功率狀態中等待在傳送發送事件指令的另一個處理器(例如正保持鎖的處理器)中發送事件指令的執行。響應于對發送事件消息的接收,該處理器會返回高功率狀態以獲取所述鎖。
發明內容
在一個實施例中可以提供一個定時器單元,該定時器單元可以被編程到一個選定的時間間隔或喚醒間隔。處理器可以執行一個等待事件指令,并且為包含該指令的線程進入低功率狀態。所述定時器單元可以在喚醒間隔終止時用信號通告一個定時器事件,并且處理器可以響應于該定時器事件而退出低功率狀態。該線程可以繼續執行等待事件指令之后的指令。
在一個實施例中,定時器和等待事件指令可被用于實施獲取互斥鎖的功率管理優化處理。喚醒間隔可以基于線程將會保持鎖的典型預期時間而被確定。例如,典型的鎖保持時間可以是喚醒間隔的倍數(或是約為其倍數),由此可以確定嘗試獲取鎖、失敗并且執行等待事件指令的最大迭代次數。與喚醒間隔相乘的這個最大迭代次數約為典型的鎖保持時間(或是略大于典型的鎖保持時間)。因此,如果在典型的鎖保持時間以內釋放所述鎖,那么嘗試獲取所述鎖的線程有可能尚未阻塞。如果沒有在典型的鎖保持時間以內釋放所述鎖,那么線程有可能會阻塞,并且指定給該線程的處理器資源有可能被投入其他生產用途。
附圖說明
以下的詳細描述對附圖進行了參考,并且現在將對這些附圖進行簡要描述。
圖1是一個包含了定時器單元及一個或多個處理器的系統的一部分的實施例的框圖。
圖2是另一個包含了一個或多個處理器及定時器單元的系統的一部分的實施例的框圖。
圖3是示出了圖1或2所示的執行核心的一個實施例的操作的狀態機。
圖4是示出了圖1或2所示的事件控制單元的一個實施例的操作的流程圖。
圖5是示出了初始化代碼的一個實施例的一部分的流程圖。
圖6是示出了鎖代碼的一個實施例的流程圖。
圖7是示出了線程調度器的一個實施例的操作的流程圖。
圖8是示出了鎖代碼的第一示例的時序圖。
圖9是示出了鎖代碼的第二示例的時序圖。
圖10是示出了鎖代碼的第三示例的時序圖。
圖11是系統的一個實施例的框圖。
圖12是計算機存儲可訪問介質的一個實施例的框圖。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于蘋果公司,未經蘋果公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201080021002.9/2.html,轉載請聲明來源鉆瓜專利網。





