數據處理系統的強制空閒的製作方法
2023-07-05 09:01:46 2
專利名稱:數據處理系統的強制空閒的製作方法
技術領域:
本發明的至少一些實施例一般地涉及數據處理系統,更具體而言但非排他性地涉及數據處理系統中的功率和/或熱特性的管理。
背景技術:
傳統上,計算機系統被設計成能夠連續地運行一最壞情況的功率負載。根據這種連續的最壞情況功率負載的設計還未成為大問題,因為傳統上單獨的組件具有適度的操作功率並且計算機系統具有大功率預算,從而使得系統能夠自然適當地維持負載。當計算機系統的單獨組件的操作功耗緩慢上升時,計算機系統的功率預算變得吃緊。現在,設計一種運行連續的最壞情況負荷量並同時達成其他目標(例如,高計算功率、 小型化、安靜、更好的電池性能等等)的計算機系統正在成為一種挑戰。例如,諸如膝上型計算機之類的可攜式計算機系統具有有限的電池輸出容量;並因此被設計用於針對給定的電池輸出容量處理最壞情況負荷量的系統可能由於最壞情況負荷量極少發生而限制了系統的性能。因此,管理功率對於實現計算機系統或其他數據處理系統(例如,蜂窩電話)的電池壽命和熱設計目標兩者是非常重要的。一種例如用於管理重要處理單元(「CPU」)的功率的常見技術是在計算機系統的多個不同狀態之間動態地調節CPU內核的操作頻率以及供電電壓兩者。通常,在計算機系統的功率操作點上,可能存在兩種功耗分量,例如動態功率和洩漏功率。動態功率代表實際所需的電路操作。其與每秒時鐘跳變的次數(頻率)以及電壓的平方成比例。洩漏功率代表對CPU完全供電的代價開銷。其對於給定電壓是固定的,並且通常隨電壓增大呈指數上升。但是,動態調節操作頻率只能管理動態功率而對計算機系統的洩漏功率沒有效果。某些現有技術的系統包括周期性地通過將系統時鐘設置到零頻率而使系統停止執行指令的能力;但是,這些系統重複執行該操作,而對系統中的實際空閒時間沒有任何措施。
發明內容
用於管理數據處理系統的功率的方法和裝置的示例性實施例已被描述。數據處理系統的一個或多個約束參數可以被監視。基於這一個或多個約束參數,可以強制數據處理系統在時間的第一部分中進入空閒狀態,而在時間的第二部分中進行操作,其中,系統是響應於目標空閒時間與實際空閒時間的比較而被強制進入空閒狀態的。在一個實施例中,基於一個或多個系統約束參數來確定數據處理系統的目標空閒時間。數據處理系統的實際空閒時間可以被監視。數據處理系統的實際空閒時間可以在一時間量(例如5秒)上被累積, 該時間量可以與目標空閒時間所基於的時間量相同。可以允許數據處理系統基於目標空閒時間和實際空閒時間的比較結果來進行操作。在一個實施例中,空閒狀態防止系統執行指令。在一個實施例中,系統響應於中斷被從空閒狀態切換到操作狀態。在一個實施例中,系統在時間上重複確定實際空閒時間並將該實際空閒時間與目標空閒時間相比較,並基於比較來判決是強制還是不強制空閒時間。在該實施例中,如果最近的實際空閒時間大於目標空閒時間,系統則可以判決避免空閒時間。這樣,系統可以基於監視到的實際空閒時間來判斷是否強制空閒,其中所述監視到的實際空閒時間可以考慮到打斷空閒時間(並因此縮短實際空閒時間)的中斷並且還可以考慮到系統過去空閒的情況 (例如,因為未曾接收過用戶輸入或其他輸入,並且沒有軟體指令在等待執行)。該實施例允許系統通過檢查實際空閒時間來智能地判決是否強制空閒;如果已經存在足夠的空閒時間(例如,實際空閒時間超過目標空閒時間),系統則可以避免強制的空閒。系統可以將這裡描述的智能地判決是否強制空閒的實施例與其他用於高效地作業系統的技術一起使用,所述其他技術例如是在2005年8月25日遞交的美國申請 No. 11/212,970和/或在2006年1月5日遞交的美國申請No. 11/327,685中所描述的技術中的一種或多種,並且這些其他技術的提高系統操作效率(在功率上和/或熱特性上)的能力可以通過使用智能判決的強制空閒而得到提高。至少在某些實施例中,描述了一種數據處理系統,該系統包括處理器、耦合到處理器的存儲器、耦合到處理器的用於監視系統的一個或多個約束參數的一個或多個傳感器; 其中,處理器被配置用於基於一個或多個約束參數,在允許系統持續操作了時間的第二部分時,強制系統進入空閒狀態達時間的第一部分,其中處理器被配置為響應於目標空閒時間與實際空閒時間的比較來強制系統進入空閒狀態。在一個實施例中,處理器還被配置為基於一個或多個約束參數確定系統的目標空閒時間,並被配置為監視系統的實際空閒時間,並被配置為基於目標空閒時間和實際空閒時間的比較來允許系統在時間的第二部分中進行操作。在一個實施例中,實際空閒時間可以是表示系統的空閒時間的估計值。在一個實施例中,處理器還被配置為響應於中斷從空閒狀態切換到全操作狀態。在一個實施例中, 存儲器存儲一個或多個查找表,所述查找表包括與一個或多個約束參數相關聯的目標空閒時間。至少在某些實施例中,公開了一種存儲可執行程序指令的機器可讀存儲介質,所述可執行程序指令致使數據處理系統執行如下操作監視系統的一個或多個約束參數;以及基於一個或多個約束參數,在一時間的第一部分中強制所述系統進入空閒狀態,而在所述時間的第二部分中允許所述系統持續操作,其中所述強制是響應於目標空閒時間與實際空閒時間的比較來執行的。在一個實施例中,機器可讀介質還包括致使數據處理系統基於一個或多個系統約束參數來確定系統的目標空閒時間並且監視系統的實際空閒時間的指令。在一個實施例中,機器可讀介質還包括致使數據處理系統響應於中斷從空閒狀態切換到全操作狀態的指令。至少在某些實施例中,描述了一種數據處理系統,包括用於監視系統的一個或多個約束參數的裝置;以及用於基於所述一個或多個約束參數,在一時間的第一部分中強制所述系統進入空閒狀態,而在所述時間的第二部分中允許所述系統持續操作的裝置,其中所述強制是響應於目標空閒時間與實際空閒時間的比較來執行的。在一個實施例中,數據處理系統包括用於基於一個或多個系統約束參數來確定系統的目標空閒時間的裝置,以及用於監視系統的實際空閒時間的裝置。在一個實施例中,數據處理系統還包括用於響應於中斷從空閒狀態切換到全操作狀態的裝置。本發明的其他特徵將從附圖以及隨後的詳細描述中變得顯而易見。
在附圖中以示例方式而非限制方式圖示出本發明,在附圖中,類似標號指示類似元件。圖IA示出可被用於提供強制空閒狀態的典型計算機系統的一個示例。圖IB示出提供強制空閒狀態的系統的另一實施例。圖2示出提供強制空閒狀態的系統的一個實施例。圖3A是示出數據處理系統的功率操作點的一個實施例的示圖。圖;3B是示出洩漏功率對電源電壓的依賴性的示圖。圖4是示出根據本發明的一個實施例,在數據處理系統持續操作時強制系統進入空閒狀態的示圖。圖5A是示出根據本發明的一個實施例,在數據處理系統持續操作時強制系統進入空閒狀態的示圖。圖5B是示出根據本發明的另一實施例,在數據處理系統持續操作時強制系統進入空閒狀態的示圖。圖6示出包括關於空閒狀態的信息的表的一個實施例。圖7是強制數據處理系統進入空閒狀態的方法的一個實施例的流程圖。圖8是強制數據處理系統進入空閒狀態的方法的一個實施例的流程圖。圖9是基於約束參數強制數據處理系統進入空閒狀態的方法的一個實施例的流程圖。圖10示出用於動態地確定可以在這裡描述的某些實施例中使用的功率用量預算的方法。圖11示出可以在這裡描述的某些實施例中使用的功率用量情形。圖12是管理數據處理系統的功率到目標功率的方法的一個實施例的流程圖。圖13是增大不帶強制空閒的操作功率點的方法的一個實施例的流程圖。圖14是增大包括強制空閒的操作功率點的方法1400的一個實施例的流程圖。圖15是減小不帶強制空閒的操作功率點的方法的一個實施例的流程圖。圖16是減小包括強制空閒的操作功率點的方法的一個實施例的流程圖。圖17是為數據處理系統提供強制空閒狀態的方法的一個實施例的流程圖。圖18是從強制空閒狀態切換的方法的一個實施例的流程圖。圖19是提供強制空閒狀態的方法的一個實施例的流程圖。
具體實施例方式下面將參考下述細節來描述本發明的各個實施例和方面,並且附圖將圖示出各個實施例。以下描述和附圖是對本發明的舉例說明,不應被理解為限制本發明。多個具體細節被描述,以用於對本發明的各個實施例的全面理解。但是,本領域技術人員將會意識到, 無需這些具體細節也可以實施本發明的實施例。在其他實例中,公知的結構和設備以框圖形式而非細節形式示出,以免模糊本發明的實施例。在說明書中提到「一個實施例」或「實施例」意思是與該實施例相關聯地描述的特定特徵、結構或特性被包括在本發明的至少一個實施例中。在說明書中各個位置出現的短語「在一個實施例中,,不一定指代同一實施例。除非特別說明,否則將意識到,貫穿本說明,利用諸如「處理」或「計算」或「確定」 或「顯示」等術語所進行的論述指的是數據處理系統或類似電子計算設備的動作和進程,所述數據處理系統操縱計算機系統的寄存器和存儲器中的被表示為物理(電子)量的數據並將該數據變換成其他數據,所述其他數據也被類似地表示為計算機系統存儲器或寄存器或其他這樣的信息存儲設備、發送或顯示設備中的物理量。本發明的實施例可以涉及用於執行這裡所描述的一種或多種操作的裝置。該裝置可以針對所需目的特別構造,或者其可以包括由存儲在計算機中的電腦程式有選擇地激活或重配置的通用計算機。這樣的電腦程式可以被存儲在機器(例如,計算機)可讀存儲介質中,所述機器可讀存儲介質例如是(但不局限於)任意類型的盤(包括軟盤、光碟、 CD-ROM和磁光碟)、只讀存儲器(ROM)、隨機訪問存儲器(RAM)、可擦除可編程ROM(EPROM)、 電子可擦除可編程ROM(EEPROM)、磁或光卡、或者適合於存儲電子指令並各自耦合到總線的任意類型的介質。機器可讀介質包括用於存儲或發送具有機器(例如,計算機)可讀形式的信息的任意機制。例如,機器可讀介質包括只讀存儲器(ROM);隨機訪問存儲器(RAM);磁碟存儲介質;光存儲介質;快閃記憶體設備;電、光、聲或其他形式的介質。這裡呈現的算法和顯示沒有固有地與任意特定的計算機或其他裝置相關。可以使用具有根據這裡的教導的程序的各種通用系統,或者可以證明,構造更加專門的裝置來執行所需的及其實現的方法操作是很方便的。用於這些系統的各種所需結構將從以下描述中顯現。另外,本發明的實施例沒有參考任意特定的程式語言來描述。將會意識到,各種程式語言否可以被用來實現這裡所描述的本發明的實施例的教導。本發明的很多方法可以利用數字處理系統(例如,傳統的通用計算機系統)來執行。計算機系統例如可以是由位於加州Cupertino的Apple Inc.所生產的條目級Mac mini 和用戶級iMac 桌上型模型、工作站級MacPro 塔以及MacBook 和MacBook Pro 膝上型計算機。小型系統(例如,非常薄的膝上型計算機)可以受益於這裡所描述的方法。 為執行僅一種功能而設計或編程的專用計算機或者諸如蜂窩電話之類的用戶電子設備也可以執行這裡所描述的方法。圖IA示出可以用來提供強制空閒狀態的典型計算機系統的一個示例。注意,雖然圖IA示出計算機系統的各種組件,但是其意圖不是要代表任意特定的體系結構,或者如此詳細描述的組件互連方式不是與本發明密切相關。還將意識到,具有更少組件或更多組件的網絡計算機和其他數據處理系統也可以被用於本發明。圖IA的計算機系統例如可以是 AppleMacintosh 計算機。如圖IA所示,具有數據處理系統形式的計算機系統100包括總線102,該總線 102被耦合到微處理器103和ROM 107和易失性RAM 105和非易失性存儲器106。如圖IA 的示例所示,微處理器103被耦合到緩存存儲器104,所述微處理器103例如可以是來自 Motorola, Inc.或IBM的G3、G4或G5微處理器或者來自Intel的微處理器。總線102將這些各種組件互連在一起並且還將這些組件103、107、105和106互連到顯示控制器和顯示設備108以及諸如輸入/輸出(I/O)設備之類的外圍設備,所述I/O設備可以是滑鼠、鍵盤、數據機、網絡接口、印表機、掃描儀、視頻相機和本領預公知的其他設備。通常,輸入/輸出設備110通過輸入/輸出控制器109被耦合到系統。易失性RAM 105通常被實現為動態 RAM(DRAM),其需要連續供電以刷新或維持存儲器中的數據。非易失性存儲器106通常是磁性硬碟驅動器或磁光碟機動器或光學驅動器或DVD RAM或其它類型的存儲器系統,其即使在從系統移走供電之後也能夠維護數據。通常,非易失性存儲器也將是隨機訪問存儲器,但這不是必需的。雖然圖IA示出非易失性存儲器是直接耦合到數據處理系統的其餘組件的本地設備,但是將會意識到,本發明可以利用遠離系統的非易失性存儲器,例如通過諸如數據機或乙太網接口之類的網絡接口耦合到數據處理系統的網絡存儲設備。總線102可以包括通過本領域公知的各種橋接器、控制器和/或適配器彼此連接的一個或多個總線。在一個實施例中,I/O控制器109包括用於控制USB(通用串行總線)外設的USB適配器和/ 或用於控制IEEE-1394外設的IEEE-1394總線適配器。在本發明的一個實施例中,至少某些組件可以被主動抑制(throttle)以犧牲性能來供給功率用量。例如,微處理器103可以具有不同的內核電壓和頻率設置。在一個實施例中,系統100包括(一個或多個)被抑制的組件和(一個或多個)未被抑制的組件。 被抑制的組件具有不同的抑制設置,在抑制設置上,組件工作但工作在不同的功率/性能級別(操作設置)上。例如,處理器可以被抑制為工作在不同的內核電壓和內核頻率上; 盤驅動器可以被抑制為工作在不同的旋轉速率上;總線可以被抑制在不同的頻率上,等等。 如果一組件沒有被抑制來犧牲性能換取功率用量,該組件則被認為是未被抑制的組件。數據處理系統的被抑制的組件和未被抑制的組件在2005年8月25日遞交的美國專利申請 No. 11/212,970中被更詳細地描述,該在先申請通過引用被整體上結合於此。在本發明的一個實施例中,系統100還包括耦合到(一個或多個)1/0控制器109 的(一個或多個)功率用量傳感器111。(一個或多個)傳感器111可以包括一個或多個硬體和/或軟體組件。在一個實施例中,傳感器使用硬體來實現。可替換地,至少一些傳感器可以使用軟體來實現。例如,軟體模塊可被用來確定工作狀態和用於從工作狀態的預定功耗率計算實際功率用量的相應時間段,如在下述美國專利申請中更詳細描述的2005 年8月25日遞交的美國專利申請No. 11/212,970;2006年1月5日遞交的美國專利申請 No. 11/327,685 ;2006年1月5日遞交的美國專利申請No. 11/327,275 ;以及2006年1月5 日遞交的美國專利申請No. 11/327,238,上述在先申請通過引用被整體上結合於此。一個或多個傳感器可以被用來監視系統100的一個或多個約束參數,如下面將更詳細描述的。約束參數例如可以是可被耦合到系統100的電池(未示出)的功率、溫度、電流、負載或者它們的任意組合。系統的一個或多個約束參數可以被監視來確定中央處理單元(CPU)(例如,微處理器10 和/或圖形處理單元(GPU)(例如,顯示控制器108的處理器)的功率用量。此外,一個或多個傳感器可以被直接耦合到CPU和/或GPU(未示出)。在一個實施例中,實際功率用量被(一個或多個)傳感器111監視。例如,實際功率用量可以被周期性地測量來確定功率用量的歷史。功率用量的歷史可以被用來以某種平均方式確定功率用量。在一個實施例中,利用過去的功率用量的知識,系統可以動態地確定下一時間間隔的可允許的功率預算,如在2005年8月25日遞交的美國專利申請 No. 11/212,970中更詳細描述的,該在先申請通過引用被整體上結合於此。在本發明的一個實施例中,微處理器103根據存儲在緩存104、R0M107、RAM 105和 /或非易失性存儲器106中的指令來動態確定功率用量的預算並強制系統100進入空閒狀態,如下面將更詳細描述的。可替換地,系統100還包括微控制器(未示出),用於基於存儲在緩存104、R0M107、RAM 105、非易失性存儲器106中的信息或它們的任意組合來動態確定功率用量的預算並確定何時以及如何強制系統進入強制空閒狀態,如下面將更詳細描述的。在一個實施例中,數據處理系統100可以包括多個中央處理單元(CPU)/微處理器。從本說明將會發現,本發明的各個方面可以至少部分體現為軟體。就是說,這些技術可以在計算機系統或其他數據處理系統中響應於它的處理器(例如微處理器或微控制器)而執行,所述處理器執行包含在存儲器中的指令序列,所述存儲器例如是ROM 107、易失性RAM 105、非易失性存儲器106、緩存104或其他存儲設備或遠程存儲設備。在各個實施例中,可以將硬連線的電路與用於實現本發明的軟體指令結合使用。因此,這些技術並不局限於硬體電路和軟體的任意特定組合,也不局限於由數據處理系統執行的指令的任意特定源。另外,貫穿本說明,各種功能和操作被描述為由軟體代碼執行或引起以簡化描述。但是,本領域技術人員將意識到,這些表示的意思是各種功能是通過處理器(例如微處理器 103或微控制器)執行代碼而導致的。機器可讀介質可以被用於存儲軟體和數據,所述軟體和數據在被數據處理系統執行時指示系統執行本發明的各種方法。該可執行軟體和數據可以被存儲在各種空間中,例如包括如圖IA所示的ROM 107、易失性RAM 105、非易失性存儲器106和/或緩存104。該軟體和/或數據的多部分可以被存儲在這些存儲設備中的任意一種中。因此,機器可讀介質包括以機器(例如,計算機、網絡設備、個人數字助理、製造工具、具有一個或多個處理器的集合的任意設備、等等)可訪問的形式提供(即,存儲和/或發送)信息的任意機制。例如,機器可讀介質包括可記錄/不可記錄的介質(例如,只讀存儲器(ROM);隨機訪問存儲器(RAM);磁碟存儲介質;光存儲介質;快閃記憶體設備;等等)。本發明的方法可以使用專用硬體(例如,使用現場可編程門陣列,或專用集成電路)或在存儲在機器可讀介質中的程序指令控制下的共享電路(例如,微處理器或微控制器)來實現。本發明的方法還可以被實現為在數據處理系統(例如,圖IA的系統100)上執行的計算機指令。圖IB示出用於提供強制空閒狀態的系統120的另一實施例。系統120具有多個子系統。在一個實施例中,多個子系統包括處理器,例如CPU、GPU、微控制器等等。如圖IB 所示,系統120包括子系統121(例如CPU)子系統122(例如可以與顯示設備耦合的GPU); 以及一個或多個子系統1 (例如,耦合到一個或多個I/O設備的一個或多個I/O控制器); 以及耦合到總線126的微控制器127。此外,系統120包括易失性RAM 124、非易失性存儲器130 (例如硬碟驅動器)、ROM 123以及耦合到子系統121 (其耦合到總線126)的緩存存儲器125。由這些子系統中的每一個的至少一個子集所使用的功率受例如微控制器(例如微控制器127)所控制,並且由每個子系統所使用的最大功率通過整個系統在一平均時段期間的動態功率歷史所確定,如2005年8月25日遞交的美國專利申請No. 11/212,970中更詳細描述的,該在先申請通過引用被整體上結合於此。這種功率控制至少在某些環境中允許較高性能的操作。即,如果在平均時段期間存在相當低的功率操作,即,空閒時間, 則子系統可以在相當高功率的突發中工作,如在2005年8月25日遞交的美國專利申請 No. 11/212,970中更詳細描述的,該在先申請通過引用被整體上結合於此。在一個實施例中,系統的功率基於負載簡檔(load profile)在子系統之間重新分發,如在下述美國申請中更詳細描述的2006年1月5日遞交的美國專利申請 No. 11/327,685 ;2006年1月5日遞交的美國專利申請No. 11/327,275 ;以及2006年1月5 日遞交的美國專利申請No. 11/327,238,上述在先申請通過引用被整體上結合於此。一個或多個傳感器128被耦合到子系統121、122、129以及微控制器127,如圖IB 所示。傳感器可以被用來監視、測量和/或估計一個或多個約束參數(例如,功率、溫度、電流、電池負載或它們的任意組合),以確定工作在一定頻率和一定電壓上的一個或多個子系統的實際功率用量。傳感器1 進而可以將所確定功率用量值提供到微控制器127,該微控制器127可以基於一個或多個感測到的參數來強制系統和/或子系統進入空閒狀態,如下面將更詳細描述的。上面針對圖IA更詳細地描述了系統120的組件,包括處理器、微控制器、總線、I/O控制器、I/O設備、存儲器、傳感器。在一個實施例中,一個多個查找表被存儲在存儲器1沈、1對和125中的任意一個中或者存儲在微控制器127中的存儲器中,所述查找表包括關於何時以及怎樣強制系統和/或子系統進入空閒狀態的信息,如下面將更詳細描述的。在一個實施例中,微控制器127執行下面參考圖4-19所描述的方法。在另一實施例中,子系統121而非微控制器127執行下面參考圖4-19所描述的方法。在又一實施例中,子系統121和微控制器127 —起執行下面參考圖4-19所描述的方法。圖2示出提供強制空閒狀態的系統的一個實施例。如圖2所示,系統200包括耦合到互連206(例如總線)的子系統A 201(例如CPU)、子系統B 202(例如可以與顯示設備耦合的GPU)、子系統C 204(例如存儲器)、子系統D 205(例如微處理器)和一個或多個子系統N 203 (例如耦合到一個或多個I/O設備的一個或多個I/O控制器)、以及功率管理器208(例如,微控制器)、系統管理控制器(「SMC」)。子系統C204可以是易失性RAM、 非易失性存儲器(例如硬碟驅動器)和/或ROM。如上參考圖IA和IB所描述的一個或多個測量設備207 (例如一個或多個傳感器)被耦合到子系統201-205,並被耦合到功率管理器208,如圖2所示。功率查找表209被耦合到功率管理器208,如圖2所示,該功率查找表 209可以包括一個或多個查找表,這些查找表包含關於如何以及何時進入強制空閒狀態的信息,如下面將參考圖4-19所描述的。上面已經參考圖IA和IB詳細描述了系統200的組件,包括處理器、微控制器、總線、I/O控制器、I/O設備、存儲器、傳感器。在一個實施例中, 與計算機系統的各種性能設置相對應的一個或多個功率查找表可以被子系統201 (或由設計和/或製造過程中的測試設備)生成,並被存儲在存儲器204和/或位於功率管理器208 中的存儲器中。包括計算機系統的各種性能設置的一個或多個功率查找表可以被使用,如在下述美國申請中更詳細描述的2005年8月25日遞交的美國專利申請No. 11/212. 970 ; 2006年1月5日遞交的美國專利申請No. 11/327,685 ;2006年1月5日遞交的美國專利申請No. 11/327,275 ;以及2006年1月5日遞交的美國專利申請No. 11/327,238,上述在先申請通過引用被整體上結合於此。在一個實施例中,功率管理器208執行下面參考圖4-19所描述的方法。在另一實施例中,子系統201執行下面參考圖4-19所描述的方法。圖3A是示出數據處理系統的功率操作點的一個實施例的示圖。例如,該數據處理系統可以是圖1A、圖IB和圖2中所描繪的數據處理系統中的任意一個。如圖3A所示,數據處理系統的功率操作點(例如,功率操作點301-304)對應於數據處理系統的一對操作頻率和電壓。操作頻率和電壓例如可以是數據處理系統的微處理器的內核電壓核頻率。如圖3A 所示,最高功率操作點,例如操作點1^(302)代表數據處理系統所消耗的最高功率。由數據處理系統所消耗的最高功率可以基於一個或多個系統約束參數(例如功率、溫度、電流、電池負載等等)來確定。最高功率操作點1^(302)可以對應於一對最高操作頻率(fH)和電壓 (Vh)。如圖3A所示,中間功率操作點,例如操作點1\(303)代表數據處理系統所消耗的中間功率。中間功率操作點(303)對應於一對中間操作頻率(fN)和電壓(Vn)。通常,如果數據處理系統的功率需要減小到低於由最小(最低)工作電壓\所定義的功率狀態之下的功率狀態,則可以減小數據處理系統的操作頻率。數據處理系統的操作頻率(fN)可以按比率 X減小,其中X小於1。例如,如果電路在最低電壓的操作頻率(fN)為1GHz,則按X = 20% 的減小將操作頻率改變到800MHz (第一情況)。這具有將動態功率減小20%的淨效果,但對於洩漏功率沒有效果。數據處理系統的最小功率有效操作點是由數據處理系統的最低電壓以及數據處理系統在工作在最低電壓時被設計為持續表現的最高頻率來確定的。該最小功率有效操作點通常被稱為低頻率模式(「LFM」),該最小功率有效操作點例如是對應於最低(最小)操作電壓(\)和相應的最高(最大)操作頻率(FJ的操作點(301)。通常,最低操作電壓八不會大於數百毫瓦。通常,數據處理系統可以僅將可管理的功率減小到最小功率操作點 (例如1\(301)),因為數據處理系統在該點之下不具有實際操作點;由於數據處理系統已經在最小電壓上,其唯一替換方式是降低操作頻率,該替換方式效率較低並且可能甚至不起作用。通常,為了在數據處理系統沒有任務要執行時節省功率,數據處理系統完全停止時鐘(零頻率)。這具有將動態功率減小到零的效果。除了停止時鐘之外,數據處理系統還可以移動到更低的電壓電平。這具有呈指數減小洩漏功率的效果,如圖3B所示,圖;3B示出洩漏功率(Pleak)與電源電壓的關係。該操作點通常被稱為空閒狀態。至少這裡描述的某些實施例通過使用智能決定的強制空閒操作來允許系統工作在最小功率操作點(例如1\301)以下,在至少某些實施例中,該智能決定的強制空閒操作基於實際空閒時間和目標空閒時間之間的比較(如下面將描述的圖18和19所示)來強制進入空閒狀態(即使有任務要執行,例如有等待被執行的軟體指令);這種強制的空閒操作是智能的,因為可能存在比較結果顯示空閒狀態不應被強制的時間(例如,當已經存在充分的空閒時間時)。在一個實施例中,通過在最低功率操作點處連續操作數據處理系統,並且通過對於該操作時間(例如,一個時鐘周期)的某一百分比(例如,20%)強制該數據處理系統進入空閒狀態,創建了低於最小功率操作點的額外操作點。具有20%強制空閒的最小操作點 (該時間的20%中系統被強制空閒)的有效功率是最小操作點的功率的0. 8倍加上空閒狀態的功率的0. 2倍。由於空閒狀態的功率非常低,該具有智能決定的強制空閒的新操作點代表了功率比最小操作點小的一個點。在一個實施例中,強制的空閒狀態是在數據處理系統的任意功率操作點上提供的。例如,強制的空閒狀態可以在功率操作點301、302和303中的任意一個上提供,並且這些強制空閒狀態創建了可能在某些實施例中有用的中間點。在實現強制空閒方案時存在很多重要考慮。某些軟體任務(例如,多媒體回放) 需要實時響應並且可能不能承受延遲。很多硬體設備需要它們的軟體驅動器在固定的等待時間之內對它們作出響應,否則可能導致不正確的操作。某些軟體線程(例如實時任務、中斷)無法經受強制空閒操作。強制空閒的適當實現方式需要將這些問題納入考量(但是這不是取決於所實現的系統的需求的要求)。在一個實施例中,作業系統(OS)內核對例如哪些線程可以被保持關斷(off)保持跟蹤,這要求獨立於強制空閒設置的立即操作。該內核負責保證在存在實時線程時維持長時間的平均強制空閒百分比。在一個實施例中,在內核中的調度器對在數據處理系統上運行的所有進程/線程執行強制空閒操作。在一個實施例中,作業系統(「OS」)調度器機制被用於提供強制空閒。圖4是示出根據本發明的一個實施例,在數據處理系統持續操作時強制該系統進入空閒狀態的示圖。如圖4所示,數據處理系統在第一部分(例如,操作時間(例如時間 T3 (401))的部分TJ403))被強制進入空閒狀態S2 006),而在第二部分(例如,操作時間 (例如時間T3 (401))的部分T1 (402)),系統持續工作在全(例如100% )操作狀態Sl (407) 中。在一個實施例中,數據處理系統在任意相應的操作電壓所允許的操作頻率下持續工作在狀態Sl(407)中。在一個實施例中,數據處理系統在以最低電壓所允許的最大頻率持續工作在工作狀態SK407)中時被強制進入空閒狀態。如圖4所示,數據處理系統在時間、、 t2、t3和t4被強制進入空閒狀態。圖5A是示出根據本發明的一個實施例在數據處理系統持續操作時強制該系統進入空閒狀態的示圖。如圖5A所示,當系統以某一操作頻率和電壓持續工作時間的一部分 (例如,時間T1 (506)的部分502)時,基於一個或多個約束參數,系統被強制進入空閒狀態達時間的另一部分(例如,時間T1的部分504)。在一個實施例中,時間T1是數據處理系統的時鐘周期(例如T Ι/f)。在一個實施例中,空閒狀態防止系統執行指令。在一個實施例中,時鐘在系統處於空閒狀態時停止(操作頻率為零)。如圖5A所示,強制系統處於空閒狀態的調製比被保持恆定,從而使得系統在空閒狀態所花費的時間部分和系統在全操作狀態所花費的時間部分保持基本相同。圖5B是示出根據本發明的另一實施例在數據處理系統持續操作時強制該系統進入空閒狀態的示圖。如圖5B所示,當系統處於強制空閒狀態時,在時間、接收到中斷 1(508)。系統響應於中斷1被切換回到工作在以某一頻率和電壓的全(例如100%)操作狀態中,如圖5B所示。在一個實施例中,響應於中斷從空閒狀態到全操作狀態的切換是基於實際空閒時間和目標空閒時間來執行的,如下面將更詳細描述的。在服務了中斷1之後, 系統被切換回到強制空閒狀態。系統可以保持在強制空閒狀態中持續空閒時間512,如圖 5B所示。在一個實施例中,空閒時間512可以基於系統約束參數並且基於系統為了服務中斷1而在全操作狀態中花費了多少時間(時間510)來確定。如圖5B所示,在系統處於空閒狀態時,在時間、接收到中斷2。系統響應於中斷2被切換回到工作在全(例如100%) 操作狀態中。系統可以保持在全操作狀態中持續時間518,如圖5B所示。在一個實施例中, 時間518是基於系統約束參數和所累積的空閒時間量來確定的。在一個實施例中,所累積的空閒時間是在數據處理系統的一個或多個時鐘周期上確定的。如圖5B所示,在服務了中斷之後,系統被強制回到空閒狀態達時間520,然後被切換到全操作狀態以在時間522期間進行操作,該時間522可以由系統約束參數和所累積的空閒時間來確定,如下所述。就是說,系統被允許在強制空閒狀態期間的任何時候基於熱/功率約束而對中斷進行服務以操作高優先級的任務,所述熱/功率約束對系統的響應性是非常重要的。另一重要考量是強制空閒和數據處理系統在連續的強制空閒狀態中可以花費的最大時間的調製比。如果用於使能和禁止指令執行(例如,為了執行計算)的調製比過快, 則將花費極大的功率和計算能量來管理強制空閒循環的開銷。如果用於使能和禁止指令執行的調製比過慢,則較高的空閒百分比將導致相當長的強制空閒時段。在一個實施例中,提供如下控制較低百分比的強制空閒時段全部以基本相同的比率運行,如下面將更詳細描述的。在一個實施例中,當強制空閒百分比達到空閒時間處於所需的最大值的閾值時,空閒比率開始增大,以使得永遠不會超過最大空閒時間,如下面將更詳細描述的。圖7是強制數據處理系統進入空閒狀態的方法700的一個實施例的流程圖。方法開始於操作701,該操作包含監視工作在第一頻率和第一電壓的數據處理系統的約束參數。 該約束參數可以是數據處理系統所消耗的功率、數據處理系統的溫度、提供到數據處理系統的電流、被耦合以向數據處理系統供電的電池的負載、等等。約束參數可以使用如上所述的一個或多個傳感器來監視和測量。方法700繼續到操作702,該操作包含當基於約束參數系統持續工作在第二頻率和不同於(低於)第一電壓的第二電壓時,強制系統進入空閒狀態。在一個實施例中,強制數據處理系統進入空閒狀態包含防止指令被系統執行。在一個實施例中,當系統處於空閒狀態時的時間段是分散的,和/或被當系統工作在較高性能水平時的時間段所交織,從而使得系統所消耗的平均功率不會超過從系統的功率和/或熱約束所確定的最大平均功率。就是說,強制空閒狀態的佔空操作(dutycycling)可以按照如下速率來執行該速率使得用戶不需要知道它們的機器發生了什麼,如下面將更詳細描述的。 在一個實施例中,強制空閒狀態的佔空操作完全在頻域中執行。強制空閒操作機制將數據處理系統的功率管理擴展到超出最小功率操作點,例如圖3A所示的PJ301)。圖8是強制數據處理系統進入空閒狀態的方法800的一個實施例的流程圖。方法開始於操作801,該操作包含監視工作在第一頻率和第一電壓的數據處理系統的約束參數 (例如,實際功率、溫度、電流、電池負載等約束參數或它們的任意組合)。方法繼續到操作 802,該操作包含判斷約束參數是否大於第一約束參數閾值。約束參數閾值可以與數據處理系統的規範功率、溫度、電池負載、電流相關聯。約束參數閾值可以是針對數據處理系統的多個子系統(例如圖IB和2所示的子系統)有效的最壞情況值。在一個實施例中,約束參數閾值可以例如是從多個測量樣本的統計分布曲線確定的最壞情況功率、溫度、電流或電池負載值。在一個實施例中,測量出的約束參數(例如實際測得的功率、溫度、電流、電池負載或它們的任意組合)被與約束參數閾值相比較,以判斷測量出的約束參數是否大於或等於第一約束參數閾值。如果約束參數不大於或等於第一約束參數閾值,則在操作803判斷約束參數是否小於第二約束參數閾值。第二約束參數閾值可以通過從第一約束參數閾值減去一滯後量(hysteresis)來確定。如果約束參數小於第二約束參數閾值,則可以在操作804 增大操作點(例如,頻率、電壓),然後方法800返回到操作801。如果約束參數不小於第二約束參數閾值,方法則返回操作801。如果約束參數大於或等於第一約束參數閾值,則在操作806判斷數據處理系統的第一操作電壓和/或第一操作頻率是否可以被進一步降低。接下來,如果確定可以降低第一操作電壓和/或第一操作頻率,則在操作805降低操作功率點 (例如頻率和/或電壓),然後方法800返回操作801。例如,如果第一操作電壓對應於中間操作電壓(例如Vn)和/或第一操作頻率對應於中間操作頻率(例如fN),如圖3A所示, 則可以通過將電壓和/或頻率例如降低到最低操作頻率&和/或電壓\來向下移動操作功率點。如果確定第一操作電壓和/或第一操作頻率無法降低,則在數據處理系統持續操作在第一操作頻率和第一操作電壓的同時在操作807強制系統進入空閒狀態。在一個實施例中,第一操作電壓是否是最小操作電壓被判斷。在一個實施例中,如果第一操作電壓是最小操作電壓並且監視到的實際約束參數大於約束參數閾值,則強制系統進入空閒狀態。在一個實施例中,強制數據處理系統進入空閒狀態包含防止指令被數據處理系統所執行。在一個實施例中,如果系統沒有工作在最小電壓並且監視到的實際約束參數大於約束參數閾值,則降低系統的操作點(例如,頻率和/或電壓)。在一個實施例中,工作在第一頻率和第一電壓下的系統的空閒狀態的百分比是基於約束參數來確定的。例如,空閒狀態的百分比可以基於約束參數來減小或增大。圖9是基於約束參數強制數據處理系統進入空閒狀態的方法900的一個實施例的流程圖。方法900開始於操作901,該操作包含監視數據處理系統的約束參數(例如,實際使用的功率、實際溫度、電流、電池負載或它們的任意組合),如上所述。在操作902,判斷約束參數是否大於或等於約束參數閾值,如上所述。在操作904,如果確定約束參數大於或等於約束參數閾值,則增大強制空閒狀態相對於總操作時間的百分比(部分)。如果確定約束參數不大於或等於約束參數閾值,則可以在操作903可選地增大強制空閒狀態的百分比。返回參考圖4,基於約束參數,空閒狀態部分T2被增大到T2' 005),全操作狀態部分T1被減小到T1' (404) 0圖6示出包括關於空閒狀態的信息的表600的一個實施例。如圖6所示,表600包括如下列空閒比、空閒速率和空閒時間。在一個實施例中,較低百分比(例如,最大30%) 的強制空閒周期全部以相同速率運行。當強制空閒百分比達到使得空閒狀態所花費的時間 (空閒時間)處於所需最大值的閾值時,則空閒速率開始增大,以使得不會超過最大空閒時間。如圖6所示,當空閒比小於或等於30時,空閒速率可以維持在恆定值30000微秒,並且空閒時間隨空閒比增大而增大。如圖6所示,如果空閒比變為大於30,則空閒速率增大,而空閒時間可以保持在10000微秒的恆定值。圖12是用於管理數據處理系統的功率到目標功率的方法1220的一個實施例的流程圖。方法1220開始於1200。在1201,執行初始化,其中積分誤差(htegral Error)被設置為零(Integral Error = 0」)。在一個實施例中,積分誤差被定義為數據處理系統的測得功率和目標功率之差。在操作1202,方法1200等待下一樣本間隔以測量數據處理系統的功率。在操作1203,數據處理系統的目標功率和測得功率被接收。在一個實施例中,功率是使用一個或多個傳感器(如上所述)在樣本時間間隔期間測得的。數據處理系統的目標功率基於一個和多個系統約束參數和數據處理系統的所需性能來確定,如上所述。在操作1204,在樣本間隔期間測得的功率與數據處理系統的目標功率之差(「誤差」)被確定。 在操作1205,確定累積誤差(「積分誤差」)。在一個實施例中,在多個樣本間隔上累積的積分誤差被確定。在一個實施例中,在數據處理系統的一個或多個時鐘周期上累積的積分誤差被確定。在操作1206,確定時間(例如,數據處理系統的一個或多個時鐘周期和/或樣本間隔)上的積分功率(「PI」)。在一個實施例中,PI是通過使用以下公式將控制系統增益 「G-term」應用到誤差和積分誤差來計算的PI = Gp氺Error+Gi Integral氺Error,(1)其中,Gp可以與對在樣本間隔上確定誤差的加權因子相關聯,Gi與對積分誤差的加權因子相關聯。在操作1207,判斷積分功率(「PI,,)是否大於上閾值(「+閾值」)。如果PI大於上閾值,則在操作1209減小操作功率點。如果PI不大於上閾值,則在操作1208判斷PI是否小於下閾值。如果PI小於下閾值,則在操作1210增大操作功率點。圖15是無需強制空閒而降低操作功率點(1501)的方法1500的一個實施例的流程圖。在操作1502,判斷頻率和/或電壓是否在最低(最小)水平。如果頻率和/或電壓不在最低水平,則在操作1503減小頻率和/或電壓。如果頻率和/或電壓在最低水平,方法1500則在1504結束。但是,在很多情況下,該最低水平可能不足夠,並且可以使用智能的強制空閒操作來獲得在該最低水平上的更好性能。圖16是包括強制空閒的降低操作功率點(1601)的方法1600的一個實施例的流程圖。在操作1602,判斷頻率和/或電壓是否在最低水平。如果頻率和/或電壓不在最低水平,則在操作1603減小頻率和/或電壓。如果頻率和/或電壓在最低水平,則在操作1604 判斷強制空閒百分比是否在最大空閒百分比水平。如果強制空閒百分比不在最大空閒百分比水平,則在操作1605增大強制空閒百分比。方法1600在1606結束。圖13是無需強制空閒而增大操作功率點(1301)的方法1300的一個實施例的流程圖。在操作1303,判斷頻率和/或電壓是否在最高(最大)水平。如果數據處理系統頻率和/或電壓不在最大水平,則方法繼續到操作1303,該操作包含增大數據處理系統頻率和/或電壓。如果頻率和/或電壓在最高水平,則方法1300結束。圖14是包括強制空閒的增大操作功率點(1401)的方法1400的一個實施例的流程圖。在操作1402,判斷強制空閒百分比是否為0%。如果強制空閒百分比不是0%,則在操作1403減小強制空閒百分比。如果強制空閒百分比是0%,則在操作1404判斷頻率和/ 或電壓是否在最高水平。如果頻率和/或電壓不在最高水平,則在操作1405增大頻率和/ 或電壓。方法在1406結束。圖17是為數據處理系統提供強制空閒狀態的方法1700的一個實施例的流程圖。 如圖17所示,方法1700開始於操作1701,該操作包括監視數據處理系統的一個或多個約束參數,如上所述。方法繼續到操作1702,該操作包含基於這一個或多個約束參數,強制數據處理系統在時間的第一部分中進入空閒狀態,而允許系統在時間的第二部分中進行操作。 該強制是響應於目標空閒時間和實際空閒時間之間的比較的。圖18是從強制空閒狀態進行切換的方法1800的一個實施例的流程圖。方法1800 開始於操作1801,該操作包含基於數據處理系統的一個或多個約束參數確定目標強制空閒時間。例如,目標強制空閒時間可以通過將操作周期(例如,數據處理系統的時鐘周期)乘以空閒比來確定。在一個實施例中,空閒比與空閒時間相對於總操作時間的部分相關聯,如上所述。在一個實施例中,空閒比是基於系統功率/熱約束和系統性能來確定的。方法繼續到操作1802,該操作包含監視數據處理系統已經在空閒狀態中花費的實際時間(「實際空閒時間」)。在一個實施例中,實際空閒時間由一個或多個傳感器測量並被存儲在系統的存儲器中,用來提供在系統的一個或多個時鐘周期上的累積空閒時間。在一個實施例中,累積空閒時間是在系統的一個或多個時鐘周期上確定的。在操作1803,累計的空閒時間基於實際空閒時間被確定。在操作1804,判斷累積的空閒時間是否大於或等於目標空閒時間。如果累積空閒時間大於或等於目標空閒時間, 則允許系統基於目標空閒時間和累積空閒時間、在操作1805從空閒狀態切換到全操作狀態持續該時間的一部分。在一個實施例中,系統被從空閒狀態切換以持續操作工作時間的一部分。在一個實施例中,空閒狀態防止數據處理系統執行等待被執行的軟體指令。在一個實施例中,數據處理系統的存儲器存儲一個或多個查找表,這些查找表包括與一個或多個約束參數相關聯的目標空閒時間。圖19是提供強制空閒狀態的方法1900的一個實施例的流程圖。方法1900開始於1901,該操作包含開始強制空閒狀態。在操作1902,判斷數據處理系統被允許運行的時間與強制空閒時間之比(「操作比」)是否小於100。如果操作比小於100,則在操作1903 使用以下公式確定空閒百分比(部分)max_idle = ((100-操作比)*Period)/100,(2)其中,Period代表系統的時鐘周期T = Ι/f,其中f是系統的頻率。接下來,在操作1905判斷空閒百分比是否大於最近空閒(「lastjdle」)。在一個實施例中,最近空閒是從先前的時間(例如,系統的時鐘周期)確定的。如果maX_idle 大於lastjdle,則在操作1907通過根據以下公式考慮到最近空閒來計算累積空閒max_idle = max_idle_last_idle,(3)如果max_idle不大於lastjdle,則在操作1906將maxjdle設置為0。然後,方法1900繼續到操作1908,該操作包含根據以下公式確定允許數據處理系統進行操作的周期的結尾period_end = now+Period,(4)其中,「now」是當前時間,「Period」是時鐘周期。接下來,在操作1909,根據以下公式確定目標空閒時間(「idle_g0al」)idle_goal = accumulated_idle+ 最大空閒,(5)其中, 「accumulatecLidle」是從一個或多個先前時間(例如,時鐘周期)累積的空閒時間的總量, 「最大空閒」是最近的空閒時間。此外,在操作1910,判斷累積空閒是否小於idle_g0al。如果累積空閒小於idle_ goal,則只允許高優先級線程在操作1914運行。數據處理系統(例如CPU)在操作1915被強制進入空閒狀態持續最多maX_idle時間。在一個實施例中,中斷使系統退出空閒狀態。 在考慮到中斷的情況下,針對數據處理系統在強制空閒狀態中所花費的時間量對累積空閒進行更新。然後,方法1900返回操作1910。如果累積空閒不小於idle_g0al,則在操作1911 將空閒開始時間設置為accumulatecLidle。方法1900繼續到操作1912,該操作包含允許任何線程運行,直到在操作1908所確定的periocLend。在操作1913,根據以下公式確定 last_idle last_idle = accumulated_idle_idle_start,(6)然後,方法1900返回操作1902。如圖18和19所示的智能強制空閒操作可以與在如下美國申請中所描述的功率和/或熱管理技術中的一種或多種結合執行2005年8月25日遞交的美國申請 No. 11/212,970和/或2006年1月5日遞交的美國申請No. 11/327,685。例如,智能強制空閒操作可以通過對功率用量取平均來使用,以允許動態確定針對未來時間間隔的可允許的功率預算;圖10和11是來自美國申請No. 11/212,970,並且與使用功率用量的平均的實施例相關,並且這些實施例和附圖在該申請中有進一步描述。在前述說明書中,已經參考特定示例性實施例描述了本發明的實施例。將會發現, 在不脫離本發明的更廣闊精神和範圍的情況下可以作出各種修改。因此,認為說明書和附圖是示例性而非限制性的。
權利要求
1.一種機器實現的方法,包括監視系統的一個或多個約束參數;以及基於所述一個或多個約束參數,在一時間的第一部分中強制所述系統進入空閒狀態, 而在所述時間的第二部分中允許所述系統持續操作,其中所述強制是響應於目標空閒時間與實際空閒時間的比較來執行的。
2.如權利要求1所述的機器實現的方法,還包括基於一個或多個系統約束參數,確定所述系統的所述目標空閒時間;監視所述實際空閒時間,並且其中所述實際空閒時間在一時間段上被累積。
3.如權利要求1所述的機器實現的方法,其中所述空閒狀態防止所述系統執行指令, 並且其中,如果當作決定時所述實際空閒時間大於所述目標空閒時間,則作出避免空閒時間的決定。
4.如權利要求1所述的機器實現的方法,其中所述實際空閒時間和所述目標空閒時間基於一共同的時間段。
5.如權利要求1所述的機器實現的方法,還包括接收中斷;以及響應於所述中斷從所述空閒狀態切換到操作狀態。
6.如權利要求5所述的機器實現的方法,其中所述監視在確定所述實際空閒時間時考慮到中斷。
7.一種數據處理系統,包括處理器;耦合到所述處理器的存儲器;耦合到所述處理器的一個或多個傳感器,用於監視所述系統的一個或多個約束參數, 其中,所述處理器被配置為基於所述一個或多個約束參數,在一時間的第一部分中強制所述系統進入空閒狀態,而在所述時間的第二部分中允許所述系統持續操作,其中所述處理器被配置為響應於目標空閒時間與實際空閒時間的比較來強制所述系統進入所述空閒狀態。
8.如權利要求7所述的數據處理系統,其中所述處理器還被配置為基於一個或多個系統約束參數,確定所述系統的所述目標空閒時間,監視所述實際空閒時間,並且其中所述實際空閒時間在一時間段上被累積。
9.如權利要求7所述的數據處理系統,其中所述實際空閒時間和所述目標空閒時間基於一共同的時間段。
10.如權利要求7所述的數據處理系統,其中所述處理器還被配置為接收中斷,並且響應於所述中斷從所述空閒狀態切換到操作狀態。
11.如權利要求7所述的數據處理系統,其中所述存儲器存儲一個或多個查找表,所述查找表包括與所述一個或多個約束參數相關聯的所述目標空閒時間。
12.如權利要求7所述的數據處理系統,其中所述空閒狀態防止所述系統執行指令,並且其中,如果當作決定時所述實際空閒時間大於所述目標空閒時間,則作出避免空閒時間的決定。
13.一種存儲可執行程序指令的機器可讀存儲介質,所述可執行程序指令致使數據處理系統執行如下操作監視系統的一個或多個約束參數;以及基於所述一個或多個約束參數,在一時間的第一部分中強制所述系統進入空閒狀態, 而在所述時間的第二部分中允許所述系統持續操作,其中所述強制是響應於目標空閒時間與實際空閒時間的比較來執行的。
14.如權利要求13所述的機器可讀存儲介質,還包括致使所述數據處理系統執行如下操作的指令基於一個或多個系統約束參數,確定所述系統的所述目標空閒時間;監視所述實際空閒時間,並且其中所述實際空閒時間在一時間段上被累積。
15.如權利要求13所述的機器可讀存儲介質,其中所述空閒狀態防止所述系統執行指令,並且其中,如果當作決定時所述實際空閒時間大於所述目標空閒時間,則作出避免空閒時間的決定。
16.如權利要求13所述的機器可讀存儲介質,其中所述實際空閒時間和所述目標空閒時間基於一共同的時間段。
17.如權利要求13所述的機器可讀存儲介質,還包括致使所述數據處理系統執行如下操作的指令接收中斷;以及響應於所述中斷從所述空閒狀態切換到操作狀態。
18.如權利要求13所述的機器可讀存儲介質,其中所述監視在確定所述實際空閒時間時考慮到中斷。
19.一種數據處理系統,包括用於監視系統的一個或多個約束參數的裝置;以及用於基於所述一個或多個約束參數,在一時間的第一部分中強制所述系統進入空閒狀態,而在所述時間的第二部分中允許所述系統持續操作的裝置,其中所述強制是響應於目標空閒時間與實際空閒時間的比較來執行的。
20.如權利要求19所述的數據處理系統,還包括用於基於所述一個或多個約束參數,確定所述系統的所述目標空閒時間的裝置;用於監視所述實際空閒時間的裝置,並且其中所述實際空閒時間在一時間段上被累積。
21.如權利要求19所述的數據處理系統,其中所述空閒狀態防止所述系統執行指令, 並且其中,如果當作決定時所述實際空閒時間大於所述目標空閒時間,則作出避免空閒時間的決定。
22.如權利要求19所述的數據處理系統,其中所述實際空閒時間和所述目標空閒時間基於一共同的時間段。
23.如權利要求19所述的數據處理系統,還包括用於接收中斷的裝置;以及用於響應於所述中斷從所述空閒狀態切換到操作狀態的裝置。
24.如權利要求23所述的數據處理系統,其中所述用於監視的裝置在確定所述實際空閒時間時考慮到中斷。
25.如權利要求20所述的數據處理系統,還包括用於存儲一個或多個查找表的裝置,所述查找表包括與所述一個或多個約束參數相關聯的所述目標空閒時間。
全文摘要
用於管理數據處理系統的功率的方法和裝置的示例性實施例被描述。系統的一個或多個約束參數被監視。基於一個或多個約束參數,數據處理系統在時間的第一部分中被強制進入空閒狀態,而允許系統在時間的第二部分中進行操作,其中響應於目標空閒時間和實際空閒時間的比較而被強制進入空閒狀態。在一個實施例中,系統的目標空閒時間是基於一個或多個約束參數來確定的。系統的實際空閒時間可以被監視,以考慮到打斷空閒時間的中斷,並且空閒時間致使沒有軟體指令將執行。系統可以被允許基於目標空閒時間和實際空閒時間的比較結果來進行操作。
文檔編號G06F1/32GK102232205SQ200880124205
公開日2011年11月2日 申請日期2008年12月23日 優先權日2008年1月7日
發明者基思·考克斯, 大衛·G·康羅伊, 蓋伊·G·小索託瑪約爾, 麥可·庫伯特 申請人:蘋果公司