專利名稱:提供用戶優(yōu)先級模式的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及對系統(tǒng)功率管理機(jī)制的資源分配的加強(qiáng)。更具體地說,本發(fā)明涉及響應(yīng)于優(yōu)先事件,移動到高性能狀態(tài)。
背景技術(shù):
設(shè)計(jì)者試圖降低計(jì)算機(jī)系統(tǒng)所消耗的功率,尤其是在移動電子設(shè)備方面。移動電子設(shè)備包括電池操作計(jì)算機(jī)系統(tǒng),例如筆記本計(jì)算機(jī)、小型筆記本計(jì)算機(jī)(sub-notebook computer)和個(gè)人數(shù)字助理。通過降低這些或其他的電池操作設(shè)備所消耗的功率,用戶可以享受電池充電之間的長時(shí)間的系統(tǒng)使用和操作。因此,主要考慮電池操作計(jì)算機(jī)系統(tǒng)可獲得的優(yōu)勢,系統(tǒng)制造商已經(jīng)向研究與開發(fā)輔助降低這些移動電子設(shè)備內(nèi)的處理器所消耗的功率的技術(shù),投入了可觀的資源。
眾所周知,諸如中央處理單元(CPU)的處理器所消耗的功率與供給處理器的電壓的平方乘以處理器的工作頻率近似成比例,P~(V2×f)。對于這個(gè)關(guān)系,可見降低頻率或電壓將使得處理器所消耗的功率降低。但是,降低處理器工作的頻率降低了處理器可以處理數(shù)據(jù)的速度。因此,降低處理器工作的頻率既降低了處理器所消耗的功率,也降低了處理器的性能狀態(tài)。
一般地,CPU功率管理系統(tǒng)使用算法來控制處理器的性能狀態(tài)。算法在降低處理器的功率消耗和對處理器的處理需求之間進(jìn)行平衡。通常,算法在將處理器轉(zhuǎn)換到處理器的最高性能狀態(tài)之前產(chǎn)生一定時(shí)間的滯后或阻礙。
例如,算法可以被編程為將處理器的處理工作量分散到三個(gè)時(shí)段,而不是提高處理速率以在一個(gè)時(shí)段中完成主要的處理負(fù)載,并在下面兩個(gè)時(shí)段中不充分地利用處理器的能力。
一般地,現(xiàn)代移動CPU功率管理系統(tǒng)基于CPU利用率的簡短歷史來轉(zhuǎn)換到較高的性能狀態(tài)。CPU利用率的歷史通常由到當(dāng)前為止的小的有限時(shí)間窗口來定義。一般的移動系統(tǒng)在很大一部分時(shí)間是處于空閑性能狀態(tài),這使得即使處理最密集的任務(wù)要達(dá)到最高性能狀態(tài)也會產(chǎn)生一個(gè)時(shí)間窗口的一部分的延遲。實(shí)際上,有限時(shí)間窗口作為加權(quán)平均而阻礙了處理器向最高性能狀態(tài)的轉(zhuǎn)換。
例如,在開始處理密集任務(wù)時(shí),由于處理器在該時(shí)段期間處于空閑的性能狀態(tài),有限時(shí)間窗口的百分之九十被以70%的容量使用的CPU占用,而由于處理器上處理密集任務(wù)的需求,有限時(shí)間窗口的百分之十被以100%的容量使用的CPU占用。因此,算法確定在這整個(gè)有限時(shí)間窗口期間,處理器的平均利用百分比是容量的73%,而不是其當(dāng)前對容量100%的利用。算法將百分之九十的有限時(shí)間窗口乘以70%的利用率,再加上百分之十的有限時(shí)間窗口乘以100%的利用率來計(jì)算,得到73%的利用率。例如,如果啟動點(diǎn)(trip point)被設(shè)置為85%,則將需要再經(jīng)過40%的時(shí)間窗口才會開始向下一個(gè)較高的性能狀態(tài)轉(zhuǎn)換。也許到下一個(gè)有限時(shí)間窗口時(shí),處理器的利用百分比將反映其當(dāng)前的100%的需求,并且算法將升高處理器的性能狀態(tài)。
本發(fā)明參考以下附圖,其中圖1是示例性多性能狀態(tài)計(jì)算機(jī)系統(tǒng)的方框圖,該計(jì)算機(jī)系統(tǒng)可以一起使用來在檢測到用戶事件時(shí),將集成電路從第一性能狀態(tài)轉(zhuǎn)換到較高性能狀態(tài);圖2圖示了具有多個(gè)性能狀態(tài)的集成電路的一個(gè)實(shí)施例的各種性能狀態(tài)的圖;
圖3圖示了集成電路的一個(gè)實(shí)施例的各種性能狀態(tài)的圖,該集成電路具有多個(gè)性能狀態(tài),包括在短暫的時(shí)間段內(nèi)工作在較高的性能狀態(tài)下的性能狀態(tài);以及圖4圖示了轉(zhuǎn)換集成電路性能狀態(tài)的算法的一個(gè)實(shí)施例的流程圖。
雖然本發(fā)明可以進(jìn)行各種改進(jìn)并采用其他形式,但是已經(jīng)通過視圖中的示例示出了其具體實(shí)施例。本發(fā)明應(yīng)該被理解為不限于所公開的特定形式,而相反,本發(fā)明覆蓋落在本發(fā)明的精神和范圍之內(nèi)的所有改進(jìn)、等價(jià)物和替換物。
具體實(shí)施例方式
在下面對本發(fā)明的詳細(xì)描述中給出了大量具體細(xì)節(jié),例如具體的數(shù)據(jù)信號、命名的組件框、性能級別、算法的存儲和操作位置等的例子,以便于充分理解本發(fā)明。但是,對于本領(lǐng)域的技術(shù)人員很清楚,沒有這些具體細(xì)節(jié)也可以實(shí)施本發(fā)明。在另外一些例子里,沒有對公知的組件或方法進(jìn)行詳細(xì)的描述,而只是以方框圖來描述,以避免不必要地混淆本發(fā)明。具體的細(xì)節(jié)可以變化,而仍被認(rèn)為在本發(fā)明的精神和范圍之內(nèi)。術(shù)語耦合被定義為直接或間接連接的含義。
一般地,描述了方法、裝置和系統(tǒng),它們允許用戶事件來觸發(fā)集成電路從第一性能狀態(tài)到較高性能狀態(tài)的直接轉(zhuǎn)換。在一個(gè)實(shí)施例中,第一性能狀態(tài)是供給處理器的第一電壓電平、以及對于該處理器或者計(jì)算機(jī)系統(tǒng)中其他類似集成電路的第一工作時(shí)鐘頻率。在一個(gè)實(shí)施例中,較高性能狀態(tài)是供給處理器的第二較高的電壓電平和對于該處理器的第二較高工作時(shí)鐘頻率。在一個(gè)實(shí)施例中,較高性能狀態(tài)增加第二處理器以應(yīng)付處理負(fù)載。在一個(gè)實(shí)施例中,降低處理器的時(shí)鐘頻率和/或電壓電平降低了處理器所消耗的功率。在一個(gè)實(shí)施例中,功率管理算法控制供給處理器的時(shí)鐘頻率和電壓。
圖1是示例性多性能狀態(tài)計(jì)算機(jī)系統(tǒng)的方框圖,該計(jì)算機(jī)系統(tǒng)可以一起使用來在檢測到用戶事件時(shí),將集成電路從第一性能狀態(tài)轉(zhuǎn)換到較高性能狀態(tài)。在一個(gè)實(shí)施例中,計(jì)算機(jī)系統(tǒng)100包括用于傳遞信息的通信機(jī)制或總線111,以及用于處理信息的、與總線111耦合的、諸如處理器112的集成電路組件。處理器112可以包括微處理器,但是不限于微處理器,例如PentiumTM、PowerPCTM、AlphaTM等。
計(jì)算機(jī)系統(tǒng)100還包括耦合到總線111的隨機(jī)訪問存儲器(RAM)或其他動態(tài)存儲設(shè)備(稱為主存儲器),用于存儲信息和要被處理器112執(zhí)行的指令。主存儲器114也可以在處理器112執(zhí)行指令時(shí),用于存儲臨時(shí)變量或其他中間信息。
計(jì)算機(jī)系統(tǒng)100還包括耦合到總線111的只讀存儲器(ROM)和/或其他靜態(tài)存儲設(shè)備106,用于存儲靜態(tài)信息和用于處理器112的指令,還包括大容量存儲器107,例如磁盤或光盤以及其相應(yīng)的盤驅(qū)動器。大容量存儲器107耦合到總線111,用于存儲信息和指令。
計(jì)算機(jī)系統(tǒng)100還可以耦合到顯示設(shè)備121,例如陰極射線管(CRT)或液晶顯示器(LCD),其耦合到總線111以向計(jì)算機(jī)用戶顯示信息。包括字母數(shù)字和其他鍵的字母數(shù)字輸入設(shè)備(鍵盤)122也可以耦合到總線111,用于向處理器112傳遞信息和命令選擇。另外的用戶輸入設(shè)備是耦合到總線111的光標(biāo)控制設(shè)備123,例如鼠標(biāo)、軌跡球、軌跡板、記錄針或光標(biāo)定向鍵,用于向處理器112傳遞方向信息和目錄選擇,并用于控制顯示設(shè)備112上的光標(biāo)運(yùn)動。
可以耦合到總線111的另一種設(shè)備是硬拷貝設(shè)備124,它可以用于在諸如紙、膠片或類似類型的介質(zhì)上,打印指令、數(shù)據(jù)或其他信息。另外,諸如揚(yáng)聲器和/或麥克風(fēng)(未示出)的聲音記錄和回放設(shè)備,可以可選地耦合到總線上,用于與計(jì)算機(jī)系統(tǒng)100音頻接口。另一個(gè)可以耦合到總線111的設(shè)備是有線/無線通信接口125,用于與電話通信。
在一個(gè)實(shí)施例中,處理器112使用由頻率調(diào)整邏輯134提供的時(shí)鐘頻率來協(xié)調(diào)處理器112中指令的執(zhí)行。對于一個(gè)實(shí)施例,頻率調(diào)整邏輯134包括這樣的電路系統(tǒng),其在將時(shí)鐘信號發(fā)送到處理器112的內(nèi)部執(zhí)行單元之前,對時(shí)鐘頻率倍頻、三倍頻或?qū)⑵涑艘砸粋€(gè)整數(shù)或有理數(shù)值。對于一個(gè)實(shí)施例,處理器112自身包括這樣的電路系統(tǒng),其在將時(shí)鐘信號發(fā)送到處理器112的內(nèi)部執(zhí)行單元之前,對時(shí)鐘頻率倍頻、三倍頻或?qū)⑵涑艘砸粋€(gè)整數(shù)或有理數(shù)值。例如,處理器112的工作頻率在低性能狀態(tài)下可以是225兆赫茲,而在高性能狀態(tài)下可以甚至是初始頻率的八倍或2000兆赫茲。在一個(gè)實(shí)施例中,時(shí)鐘耦合并控制處理器112的工作頻率。
在一個(gè)實(shí)施例中,處理器112使用由電壓調(diào)整邏輯130供給的電壓來為其操作供電。電壓調(diào)整邏輯130耦合到諸如電池操作計(jì)算機(jī)中的電池的電源132,并且生成供給處理器112的供電電壓。在一個(gè)實(shí)施例中,電壓調(diào)整器耦合到處理器以確定處理器的工作電壓。例如,電壓調(diào)整邏輯可以供應(yīng)1.8伏的電壓電平和較高的3.3伏電壓電平。
在一個(gè)實(shí)施例中,功率管理算法136響應(yīng)于某個(gè)預(yù)定條件,例如預(yù)設(shè)的處理器利用百分比,而發(fā)信號通知頻率調(diào)整邏輯134降低供給處理器112的工作頻率。這樣,預(yù)定條件降低了處理器112的工作頻率。一旦頻率降低,頻率調(diào)整邏輯134直接與電壓調(diào)整邏輯130通信,告訴電壓調(diào)整邏輯130降低供給處理器112的電壓。電壓調(diào)整邏輯130照做,并且處理器112繼續(xù)在此較低的功率性能狀態(tài)下工作,降低了電源130的功率耗損。
在一個(gè)實(shí)施例中,功率管理算法136響應(yīng)于某個(gè)優(yōu)先事件,例如檢測到用戶事件,而發(fā)信號通知頻率調(diào)整邏輯134將頻率提高到較高的工作頻率,以使處理器又可以全速工作。但是,在提高頻率之前,頻率調(diào)整邏輯134直接與電壓調(diào)整邏輯130通信,來信號通知電壓調(diào)整邏輯130將供電電壓提高到較高的電壓電平。電壓調(diào)整邏輯130響應(yīng)該請求,并且在完成時(shí)直接向頻率調(diào)整邏輯134傳回信息,告知供電電壓已經(jīng)提高。一旦從電壓調(diào)整邏輯130接收到該信息,頻率調(diào)整邏輯134就接著將頻率提高回較高的值,以允許處理器112在較高的性能狀態(tài)下工作。在一個(gè)實(shí)施例中,功率管理算法136被分成兩個(gè)分離的算法。第一算法將處理器112從較高的性能狀態(tài)降低而轉(zhuǎn)換到較低的性能狀態(tài),第二算法將處理器112從較低的性能狀態(tài)轉(zhuǎn)換到較高的性能狀態(tài)。
注意,可以存在根據(jù)本發(fā)明的其他實(shí)施例的各種其他配置和實(shí)現(xiàn)。
例如,在一個(gè)實(shí)施例中,處理器112可以是能夠工作在可變工作頻率和電壓電平下的單個(gè)處理器。在一個(gè)實(shí)施例中,處理器112可以是合作工作來響應(yīng)處理負(fù)載的兩個(gè)或多個(gè)處理器。在一個(gè)實(shí)施例中,處理器112可以是具有多個(gè)性能模式的芯片組。
例如,功率管理算法136可以是基于軟件的或基于硬件的,例如可以在處理器之間共享的仲裁邏輯,或者是基于軟件和基于硬件的結(jié)合。
例如,在一個(gè)實(shí)施例中,功率管理算法136檢測到用戶事件。一檢測到該用戶事件,功率管理算法136就觸發(fā)多性能狀態(tài)計(jì)算機(jī)系統(tǒng)100來轉(zhuǎn)換到較高的性能狀態(tài)。處理器112具有多個(gè)性能狀態(tài),包括第一性能狀態(tài)、高于第一性能狀態(tài)的第二性能狀態(tài)和高于第二性能狀態(tài)的第三性能狀態(tài)?;跈z測到用戶事件,算法直接將處理器112從第一性能狀態(tài)轉(zhuǎn)換到第三性能狀態(tài)。注意,第三性能狀態(tài)可以是,也可以不是處理器112能達(dá)到的最高性能狀態(tài)。
例如,在一個(gè)實(shí)施例中,優(yōu)先事件可以是對最高性能狀態(tài)的直接請求,該請求是由知道功率管理算法136的應(yīng)用直接或間接地發(fā)起或模擬善意用戶事件而提出的。
圖2圖示了具有多個(gè)性能狀態(tài)的集成電路的一個(gè)實(shí)施例的各種性能狀態(tài)的圖。上面的示了響應(yīng)于優(yōu)先事件207的發(fā)生以及響應(yīng)于非優(yōu)先事件209的發(fā)生時(shí),相對于時(shí)間203的CPU平均利用百分比。下面的示了響應(yīng)于優(yōu)先事件211的發(fā)生以及響應(yīng)于非優(yōu)先事件213的發(fā)生時(shí),相對于同樣時(shí)間線的處理器205的性能級別。虛線表示非優(yōu)先事件209的示例性的CPU的平均利用百分比,以及響應(yīng)于那些非優(yōu)先事件213的性能級別轉(zhuǎn)換。實(shí)線表示優(yōu)先事件207的示例性的CPU的平均利用百分比,以及響應(yīng)于優(yōu)先事件211的性能級別轉(zhuǎn)換??刂铺幚砥餍阅軤顟B(tài)的算法可以將諸如用戶事件的某些事件分優(yōu)先級,使得優(yōu)先事件202的發(fā)生可以觸發(fā)來立即進(jìn)入諸如處理器的多性能狀態(tài)集成電路中的較高性能狀態(tài)。在實(shí)施例中,直接轉(zhuǎn)換是響應(yīng)于優(yōu)先事件202而轉(zhuǎn)換到最高性能狀態(tài)204。
在一個(gè)實(shí)施例中,響應(yīng)于由非優(yōu)先事件所啟動來轉(zhuǎn)換到較高性能狀態(tài)的觸發(fā),控制處理器性能狀態(tài)的算法利用在一個(gè)時(shí)間窗口(歷史窗口208)中CPU利用的實(shí)時(shí)歷史數(shù)據(jù),來決定轉(zhuǎn)換到下一個(gè)較高的性能狀態(tài)或從下一個(gè)較高的性能狀態(tài)轉(zhuǎn)換,所述時(shí)間窗口例如過去的一百微秒。相反,當(dāng)諸如用戶事件的優(yōu)先事件202被觸發(fā)時(shí),控制處理器性能狀態(tài)的算法立即在定義的時(shí)間段206內(nèi)處于較高的性能狀態(tài),例如最高性能狀態(tài)204。定義的時(shí)間段206的持續(xù)時(shí)間可以包括這樣的考慮,例如較高的性能狀態(tài)是可維持的還是短時(shí)間的。
注意,響應(yīng)于諸如軟件發(fā)起事件的非優(yōu)先事件,控制處理器性能狀態(tài)的算法將向下一個(gè)較高性能狀態(tài)的轉(zhuǎn)換阻礙一段時(shí)間。在一個(gè)實(shí)施例中,控制處理器性能狀態(tài)的算法使用這樣一個(gè)要求,即在歷史窗口208的有限時(shí)間段內(nèi)CPU 201的平均利用百分比大于預(yù)定的設(shè)置,例如85%的利用率的設(shè)置,然后控制處理器性能狀態(tài)的算法逐漸地將處理器轉(zhuǎn)換到較快的性能狀態(tài)。
例如,在超過為CPU的平均利用百分比設(shè)置的觸發(fā)量后,算法可以將處理器從諸如睡眠性能狀態(tài)的最低性能狀態(tài),轉(zhuǎn)換到下一個(gè)較高的狀態(tài)即空閑性能狀態(tài)212。經(jīng)過第一短暫時(shí)間段214,算法檢查歷史窗口206的時(shí)間段內(nèi)的CPU利用率201。歷史窗口208表示了沿著時(shí)間線最近的有限寬度時(shí)間的記錄,例如一百毫秒,其反映了CPU的平均利用百分比201。因?yàn)閷Ω逤PU利用率201的要求已經(jīng)在歷史窗口206的檢查時(shí)段中持續(xù)了更大百分比的時(shí)間,并且因?yàn)镃PU自身已經(jīng)在較高的處理或性能狀態(tài)下運(yùn)行了歷史窗口206的一部分檢查時(shí)間,所以CPU的平均利用百分比已在改變。
注意,在一個(gè)實(shí)施例中,睡眠狀態(tài)是最低的性能狀態(tài),空閑狀態(tài)是下一個(gè)較高的性能狀態(tài),活動狀態(tài)是僅次于最高的性能狀態(tài),并且下一個(gè)較高的性能狀態(tài)是最高性能狀態(tài)。在該示例中描述了四個(gè)性能狀態(tài)。但是在任何實(shí)施例中可以存在兩個(gè)或更多的性能狀態(tài)。
當(dāng)預(yù)設(shè)的CPU平均利用百分比仍超過諸如95%的預(yù)設(shè)閾值時(shí),接著算法將處理器從空閑性能狀態(tài)212轉(zhuǎn)換到下一個(gè)較高的狀態(tài),例如活動性能狀態(tài)216。經(jīng)過第二短暫時(shí)間段218,算法檢查CPU在歷史窗口206的時(shí)間段內(nèi)的CPU利用率。
但是,如果預(yù)設(shè)的CPU的平均利用百分比仍超過觸發(fā)閾值,則算法可以將處理器從活動性能狀態(tài)216轉(zhuǎn)換到下一個(gè)較高的狀態(tài),例如最高性能狀態(tài)204。這樣,在該示例中,第三時(shí)間段220等于在處理器轉(zhuǎn)換到最高性能狀態(tài)204之前經(jīng)過的所有的轉(zhuǎn)換時(shí)間段。算法可以在時(shí)間段使用這種處理功率隨時(shí)間的逐步增加,來平衡對于提高性能的要求和降低電源的功率耗損的努力。
注意,即使對CPU利用率的要求立即增加到百分之百,也可能不超過諸如95%CPU利用率的觸發(fā)閾值,直到在歷史窗口206中整個(gè)寬度的時(shí)間段內(nèi)的平均值等于或超過95%。這樣,在算法觸發(fā)處理器向較高狀態(tài)的轉(zhuǎn)換之前,發(fā)生時(shí)間加權(quán)的延遲。
相反,當(dāng)諸如用戶事件的優(yōu)先事件202被觸發(fā)時(shí),算法隨后立即將處理器轉(zhuǎn)換到諸如活動性能狀態(tài)216的較高性能狀態(tài)或最高性能狀態(tài)204。檢測到優(yōu)先事件202強(qiáng)迫算法越過與當(dāng)前的性能級別緊鄰的較高的性能級別,而直接轉(zhuǎn)換到較高的性能狀態(tài)。在一個(gè)實(shí)施例中,算法越過多少個(gè)性能級別取決于諸如溫度考慮和可用電池功率的情況。在一個(gè)實(shí)施例中,如果處理器只有兩個(gè)性能級別,則算法將處理器轉(zhuǎn)換到最高性能級別。注意,對于該實(shí)施例,可以避免確定CPU利用率百分比的計(jì)算開銷。
當(dāng)處理器響應(yīng)于優(yōu)先事件而轉(zhuǎn)換到較高的性能狀態(tài)時(shí),因?yàn)樘幚碡?fù)載可能還未增加但是處理器的性能容量增加了,所以實(shí)際的CPU平均利用百分比可能會降低。例如,在優(yōu)先事件202發(fā)生之前,處理器可以工作在50%的CPU利用率下。算法可以將處理器轉(zhuǎn)換到最高性能狀態(tài)204。但是,處理負(fù)載可能未增加,這樣就將實(shí)際的CPU利用百分比201從例如50%降低到48%的CPU利用率201。在一個(gè)實(shí)施例中,因?yàn)閮?yōu)先事件是異步的,并且經(jīng)常在系統(tǒng)為更多的工作“準(zhǔn)備好”(空閑)時(shí)發(fā)生,所以對于它們發(fā)生更快的轉(zhuǎn)換。
在一個(gè)實(shí)施例中,用戶可以對軟件發(fā)起的事件增加處理時(shí)間。例如,作為用戶在鍵盤上按下一個(gè)鍵的結(jié)果,Excel圖表和圖形將更快地計(jì)算和重新繪畫。用戶事件的發(fā)生使得算法立即向較高的性能級別轉(zhuǎn)換,而不論實(shí)際的CPU平均利用百分比如何。這樣,在一個(gè)實(shí)施例中,即使在軟件發(fā)起的處理任務(wù)期間,例如Excel電子數(shù)據(jù)表的計(jì)算,用戶可以通過簡單地按下一個(gè)鍵來增加那些式子的處理速率。
計(jì)算系統(tǒng)可以察覺到諸如擊鍵、鼠標(biāo)移動、操縱桿輸入、鼠標(biāo)點(diǎn)擊、經(jīng)由麥克風(fēng)的人類命令等的用戶事件。在一個(gè)實(shí)施例中,處理器工作的編程環(huán)境定義了用戶事件。在此實(shí)施例中,操作環(huán)境可以定義什么事件構(gòu)成用戶事件以及如何檢測該事件。
在一個(gè)實(shí)施例中,控制處理器性能狀態(tài)的算法可以駐留在操作軟件中。在一個(gè)實(shí)施例中,控制處理器性能狀態(tài)的算法可以駐留在基本輸入輸出系統(tǒng)(BIOS)沖。BIOS可以是個(gè)人計(jì)算機(jī)中基本的例程集合,其存儲在芯片上,并提供操作系統(tǒng)和計(jì)算機(jī)硬件之間的接口。在該實(shí)施例中,取決于編程語言和系統(tǒng)體系結(jié)構(gòu),BIOS可以直接察覺到用戶事件已經(jīng)發(fā)生,或者可以例如從操作系統(tǒng)接收關(guān)于用戶事件剛發(fā)生的通知。在一個(gè)實(shí)施例中,控制處理器性能狀態(tài)的算法可以作為應(yīng)用程序、可執(zhí)行程序模塊或其他類似的程序而駐留。在該實(shí)施例中,應(yīng)用程序、可執(zhí)行程序模塊或其他類似的程序可以直接檢測諸如用戶事件的優(yōu)先事件何時(shí)發(fā)生,或者從操作系統(tǒng)接收關(guān)于優(yōu)先事件發(fā)生的通知。
在一個(gè)實(shí)施例中,在非優(yōu)先事件中觸發(fā)轉(zhuǎn)換的閾值可以是某個(gè)CPU平均利用百分比,例如85%、基于空閑與活動比率的轉(zhuǎn)換或者其他預(yù)定義的閾值。
在一個(gè)實(shí)施例中,控制處理器性能狀態(tài)的算法可以被分成兩個(gè)分離的算法。第一算法控制向較高性能狀態(tài)的轉(zhuǎn)換。類似地,第二算法控制向較低性能狀態(tài)的轉(zhuǎn)換。在一個(gè)實(shí)施例中,處理器可以在長時(shí)間可維持的時(shí)間段內(nèi)在較高的性能狀態(tài)下運(yùn)行。在該實(shí)施例中,最高性能狀態(tài)與系統(tǒng)的熱消散能力組合成這樣,使得或者長時(shí)間的運(yùn)行將不會熱損壞系統(tǒng)內(nèi)的任何組件,或者做好了對過負(fù)荷模式(override mode)的準(zhǔn)備。在一個(gè)實(shí)施例中,由于對熱的考慮,處理器可以在瞬間或短暫的時(shí)間段內(nèi)運(yùn)行在較高的性能狀態(tài)。
圖3圖示了集成電路的一個(gè)實(shí)施例的各種性能狀態(tài)的圖,該集成電路具有多個(gè)性能狀態(tài),包括在短暫的時(shí)間段內(nèi)工作在較高的性能狀態(tài)下的性能狀態(tài)。在一個(gè)實(shí)施例中,由于組件過熱,該處理器的較高性能狀態(tài)無法在可能不導(dǎo)致系統(tǒng)故障的情況下來長時(shí)間維持。該示了處理器的工作頻率隨時(shí)間的變化。示出了三個(gè)性能狀態(tài),例如在500MHz的空閑性能狀態(tài)302、在1000MHz的熱最大性能狀態(tài)304和在2000MHz被稱為峰值虛擬MHz(peak virtual MHz)的實(shí)際最高性能狀態(tài)306。在這段時(shí)間,在圖上發(fā)生了多個(gè)用戶事件308以及非用戶事件310。
由諸如應(yīng)用程序的非用戶事件310發(fā)起的處理請求,只可以將處理器轉(zhuǎn)換到熱最大性能狀態(tài)304。處理器和其他系統(tǒng)組件可以在熱最大性能狀態(tài)304下工作可維持的時(shí)間段,而不會由于熱因素引起故障。在實(shí)際最高性能狀態(tài)306和熱最大性能狀態(tài)304之間存在熱保護(hù)帶312。持久地工作在超過熱最大性能狀態(tài)304的工作頻率和電壓下可能損壞諸如集成組件的熱敏感組件。
但是,用戶事件308的發(fā)生或重復(fù)相對于處理時(shí)間發(fā)生得很緩慢。在用戶按下第一鍵,并接著按下第二鍵的時(shí)段中,處理器可能會響應(yīng)幾百或上千個(gè)非用戶事件處理請求310。通常,第一用戶事件316和第二用戶事件318之間存在相對很大的滯后時(shí)間。在用戶事件308之間的很大的時(shí)間滯后,一般允許計(jì)算系統(tǒng)的熱耗散能力去除,由響應(yīng)于第一用戶事件316轉(zhuǎn)換到實(shí)際最高性能狀態(tài)306而產(chǎn)生的多余的熱,該轉(zhuǎn)換在處理器響應(yīng)于第二用戶事件318而轉(zhuǎn)換到實(shí)際最高性能狀態(tài)306之前。
但是,可以增加一些設(shè)計(jì)安全預(yù)防措施。在一個(gè)實(shí)施例中,轉(zhuǎn)換到實(shí)際最高性能狀態(tài)306在很短的時(shí)間段內(nèi),這保證沒有組件由于熱因素而發(fā)生故障。此外,在處理器轉(zhuǎn)換到實(shí)際最高性能狀態(tài)306之后,接著發(fā)生在預(yù)定義時(shí)間段內(nèi)阻止轉(zhuǎn)換到實(shí)際最高性能狀態(tài)306,此時(shí)間段例如熱隙(thermal gap)320。如果在熱隙段320期間發(fā)生諸如鼠標(biāo)點(diǎn)擊326的用戶事件,則算法將處理器轉(zhuǎn)換到熱最大性能狀態(tài)304。例如,如果諸如擊鍵324和鼠標(biāo)點(diǎn)擊326的兩個(gè)用戶事件實(shí)質(zhì)上同時(shí)發(fā)生,則擊鍵234將處理器轉(zhuǎn)換到實(shí)際最高性能狀態(tài)306,而發(fā)生在熱隙320期間的鼠標(biāo)點(diǎn)擊326,只觸發(fā)向熱最大性能狀態(tài)304的轉(zhuǎn)換。在一個(gè)實(shí)施例中,熱隙段320被隔開這么長,即等于在由快速用戶生成的用戶事件308之間觀察到的時(shí)間延遲。
圖4圖示了轉(zhuǎn)換集成電路性能狀態(tài)的算法的一個(gè)實(shí)施例的流程圖。在一個(gè)實(shí)施例中,嵌入計(jì)算機(jī)可讀介質(zhì)的程序運(yùn)行下面的步驟。
在框402,算法檢測這樣的觸發(fā),即將諸如處理器的集成電路轉(zhuǎn)換到較高性能狀態(tài)。該觸發(fā)可以是檢測到諸如用戶事件或類似事件的優(yōu)先事件。該觸發(fā)也可以是諸如CPU的平均利用百分比的預(yù)設(shè)閾值。如果該觸發(fā)是非優(yōu)先事件,則響應(yīng)于該觸發(fā)時(shí)可以存在延遲,來平衡處理器性能和功率消耗的因素。
在框404,算法確定處理事件是否是諸如用戶事件的優(yōu)先事件,該優(yōu)先事件使得算法立即將處理器轉(zhuǎn)換到較高的性能狀態(tài)。
在框406,如果算法確定處理器事件是優(yōu)先事件,則如果可行的話,算法立即越過下一個(gè)較高性能狀態(tài),而將處理器轉(zhuǎn)換到較高的性能狀態(tài)一段預(yù)定的時(shí)間段。這樣,如果有第一性能狀態(tài)、高于第一性能狀態(tài)的第二性能狀態(tài)、高于第二性能狀態(tài)的第三性能狀態(tài)以及高于第三性能狀態(tài)的第四性能狀態(tài),則算法可以轉(zhuǎn)換到第三狀態(tài)或第四狀態(tài),以帶給用戶可能的對性能的顯著提高。在一個(gè)實(shí)施例中,如果只有兩個(gè)性能狀態(tài),則算法將處理器轉(zhuǎn)換到最高性能狀態(tài)。在一個(gè)實(shí)施例中,如果存在兩個(gè)更多性能狀態(tài),則算法將處理器轉(zhuǎn)換到最高性能狀態(tài)。在一個(gè)實(shí)施例中,在經(jīng)過預(yù)定的時(shí)間段之后,功率管理算法隨后基于CPU利用率,而將處理器轉(zhuǎn)換到適合的性能狀態(tài)。
在一個(gè)實(shí)施例中,根據(jù)沒有故障地在最高性能狀態(tài)下工作的熱因素,最高性能狀態(tài)可以維持很長的時(shí)間段。在一個(gè)實(shí)施例中,根據(jù)沒有故障地在最高性能狀態(tài)下工作的熱因素,最高性能狀態(tài)可以維持短暫的時(shí)間段。
在框408,如果算法確定處理事件不是優(yōu)先事件,則發(fā)送將處理器轉(zhuǎn)換到下一個(gè)較高性能狀態(tài)。
在一個(gè)實(shí)施例中,用于幫助算法的軟件可以嵌入機(jī)器可讀介質(zhì)。機(jī)器可讀介質(zhì)包括任何以機(jī)器(例如,計(jì)算機(jī))可讀的形式提供(例如,存儲和/傳輸)信息的機(jī)構(gòu)。例如,機(jī)器可讀介質(zhì)包括只讀存儲器(ROM);隨機(jī)訪問存儲器(RAM);磁盤存儲介質(zhì);光存儲介質(zhì);閃存設(shè)備;DVD;電、光、聲或其他形式的傳播信號(例如載波、紅外信號、數(shù)字信號);EPROM、EEPROM、FLASH、磁或光卡;或任何類型的適于存儲電子指令的介質(zhì)。較慢的介質(zhì)可以用較快的更實(shí)用的介質(zhì)來高速緩存。
上面詳細(xì)描述的某些部分展示為對于計(jì)算機(jī)存儲器內(nèi)數(shù)據(jù)比特的操作的符號表示和算法。這些算法描述和表示是那些數(shù)據(jù)處理領(lǐng)域的技術(shù)人員所使用的方法,以最有效地將他們的工作傳達(dá)給本領(lǐng)域其他技術(shù)人員。這里算法一般被認(rèn)為是導(dǎo)致所需結(jié)果的自相容步驟。盡管不是必須的,但通常這些量采取電或磁信號的形式,其能夠被存儲、傳遞、結(jié)合、比較或者操縱。將這些信號稱為比特、值、元素、符號、字符、項(xiàng)(term)、數(shù)字等等,這已被證明有時(shí)是方便的,主要是為了共同使用。
但是,應(yīng)該意識到,所有這些和類似的術(shù)語都與適合的物理量相關(guān)聯(lián),并且只是賦予這些量的方便的標(biāo)記。除非特別聲明,否則從上面的討論很清楚,應(yīng)該意識到在整個(gè)說明書中,利用諸如“處理”或“計(jì)算”或“運(yùn)算”或“確定”或“顯示”等的討論,是指計(jì)算機(jī)系統(tǒng)或類似電子計(jì)算設(shè)備的動作和處理,所述計(jì)算機(jī)系統(tǒng)或類似電子計(jì)算設(shè)備將表示為計(jì)算機(jī)系統(tǒng)中的寄存器和存儲器中的物理(電子)量的數(shù)據(jù),操縱并轉(zhuǎn)換為類似地表示為計(jì)算機(jī)系統(tǒng)存儲器或寄存器或其他這樣的信息存儲、傳輸或顯示設(shè)備中的物理量的其他數(shù)據(jù)。
雖然已經(jīng)示出了本發(fā)明的一些具體實(shí)施例,但是本發(fā)明不限于這些實(shí)施例。例如,大多數(shù)由電子硬件組件運(yùn)行的功能可以由軟件模擬來復(fù)制。這樣,軟件程序可以發(fā)出命令來模仿用戶事件命令代碼。即使實(shí)際的用戶事件還沒發(fā)生,檢測用戶事件命令的算法也直接將處理器轉(zhuǎn)換到較高的性能狀態(tài)。在一個(gè)實(shí)施例中,優(yōu)先事件可以是軟件命令,其被發(fā)出來使得處理器直接轉(zhuǎn)換到較高的性能狀態(tài)。本發(fā)明應(yīng)被理解為不限于這里描述的具體的實(shí)施例,而只由所附權(quán)利要求的范圍來限制。
權(quán)利要求
1.一種方法,包括在計(jì)算系統(tǒng)中檢測用戶事件,所述計(jì)算系統(tǒng)包括具有多個(gè)性能狀態(tài)的集成電路,所述多個(gè)性能狀態(tài)包括第一性能狀態(tài)、高于所述第一性能狀態(tài)的第二性能狀態(tài)和高于所述第二性能狀態(tài)的第三性能狀態(tài),所述計(jì)算系統(tǒng)具有電源,所述電源包括電池;以及基于檢測到所述用戶事件,直接將所述集成電路從所述第一性能狀態(tài)轉(zhuǎn)換到所述第三性能狀態(tài)。
2.如權(quán)利要求1所述的方法,其中所述用戶事件由編程環(huán)境定義,所述計(jì)算系統(tǒng)在所述編程環(huán)境中工作。
3.如權(quán)利要求1所述的方法,其中直接轉(zhuǎn)換包括沒有延遲地轉(zhuǎn)換。
4.如權(quán)利要求1所述的方法,還包括根據(jù)沒有故障地在所述第三性能狀態(tài)下工作的熱因素,使所述集成電路在所述第三性能狀態(tài)下工作一段預(yù)定義的時(shí)間。
5.如權(quán)利要求4所述的方法,其中所述計(jì)算系統(tǒng)包括膝上計(jì)算機(jī)。
6.如權(quán)利要求1所述的方法,其中所述計(jì)算系統(tǒng)包括個(gè)人數(shù)字助理。
7.一種裝置,包括計(jì)算機(jī)可讀介質(zhì);具有多個(gè)性能狀態(tài)的第一集成電路,所述多個(gè)性能狀態(tài)包括第一性能狀態(tài)、高于所述第一性能狀態(tài)的第二性能狀態(tài)和高于所述第二性能狀態(tài)的第三性能狀態(tài),所述第一集成電路耦合到所述計(jì)算機(jī)可讀介質(zhì);和存儲在所述計(jì)算機(jī)可讀介質(zhì)中的程序,所述程序用于管理所述第一集成電路中的功率消耗,與所述程序相關(guān)聯(lián)的指令用于基于檢測到用戶事件,而直接將所述第一集成電路從所述第一性能狀態(tài)轉(zhuǎn)換到所述第三性能狀態(tài)。
8.如權(quán)利要求7所述的裝置,其中所述第一性能狀態(tài)包括第一電壓電平和第一工作頻率。
9.如權(quán)利要求7所述的裝置,其中所述第三性能狀態(tài)包括第二集成電路與所述第一集成電路共同處理指令。
10.如權(quán)利要求7所述的裝置,還包括頻率調(diào)整邏輯,用于改變所述第一集成電路的工作頻率,所述頻率調(diào)整邏輯從所述程序接收信號。
11.如權(quán)利要求7所述的裝置,還包括電壓調(diào)整邏輯,用于改變所述第一集成電路的工作電壓,所述電源調(diào)整邏輯從所述程序接收信號。
12.如權(quán)利要求7所述的裝置,其中所述指令駐留在基本輸入輸出系統(tǒng)中。
13.如權(quán)利要求7所述的裝置,其中所述指令駐留在操作系統(tǒng)中。
14.如權(quán)利要求7所述的裝置,其中所述指令駐留在應(yīng)用軟件中。
15.如權(quán)利要求7所述的裝置,其中所述第一集成電路包括芯片組。
16.如權(quán)利要求7所述的裝置,其中所述第一集成電路包括處理單元。
17.如權(quán)利要求12所述的裝置,其中所述基本輸入輸出系統(tǒng)從操作系統(tǒng)接收關(guān)于所述用戶事件已經(jīng)發(fā)生的通知信號。
18.如權(quán)利要求11所述的裝置,其中所述程序包括與降低狀態(tài)轉(zhuǎn)換算法分離的升高狀態(tài)轉(zhuǎn)換算法。
19.如權(quán)利要求7所述的裝置,其中所述程序基于非用戶事件的發(fā)生,將所述第一集成電路轉(zhuǎn)換到下一個(gè)較高的性能狀態(tài),所述非用戶事件將所述第一集成電路的利用率提高到預(yù)設(shè)的閾值以上。
20.一種提供了指令的機(jī)器可讀介質(zhì),當(dāng)所述指令被機(jī)器執(zhí)行時(shí),使得所述機(jī)器執(zhí)行以下操作在計(jì)算系統(tǒng)中檢測用戶事件;所述計(jì)算系統(tǒng)包括具有多個(gè)性能狀態(tài)的集成電路,所述多個(gè)性能狀態(tài)包括第一性能狀態(tài)、高于所述第一性能狀態(tài)的第二性能狀態(tài)和高于所述第二性能狀態(tài)的第三性能狀態(tài);以及基于檢測到所述用戶事件,直接將所述集成電路從所述第一性能狀態(tài)轉(zhuǎn)換到所述第三性能狀態(tài)。
21.如權(quán)利要求20所述的機(jī)器可讀介質(zhì),還包括指令,當(dāng)所述指令被機(jī)器執(zhí)行時(shí),使得所述機(jī)器還執(zhí)行以下操作改變所述集成電路的工作頻率來改變所述集成電路的性能狀態(tài)。
22.如權(quán)利要求20所述的機(jī)器可讀介質(zhì),還包括指令,當(dāng)所述指令被機(jī)器執(zhí)行時(shí),使得所述機(jī)器還執(zhí)行以下操作改變所述集成電路的工作電壓電平來改變所述集成電路的性能狀態(tài)。
23.如權(quán)利要求20所述的機(jī)器可讀介質(zhì),還包括指令,當(dāng)所述指令被機(jī)器執(zhí)行時(shí),使得所述機(jī)器還執(zhí)行以下操作使所述集成電路在所述第三性能狀態(tài)下工作一段短暫的時(shí)間。
24.一種裝置,包括用于在計(jì)算系統(tǒng)中檢測用戶事件的裝置;所述計(jì)算系統(tǒng)包括具有多個(gè)性能狀態(tài)的集成電路,所述多個(gè)性能狀態(tài)包括第一性能狀態(tài)、高于所述第一性能狀態(tài)的第二性能狀態(tài)和高于所述第二性能狀態(tài)的第三性能狀態(tài);和用于基于檢測到所述用戶事件,直接將所述集成電路從所述第一性能狀態(tài)轉(zhuǎn)換到所述第三性能狀態(tài)的裝置。
25.如權(quán)利要求24所述的裝置,還包括用于改變所述集成電路的工作頻率來改變所述集成電路的性能狀態(tài)的裝置。
26.如權(quán)利要求24所述的裝置,還包括用于改變所述集成電路的工作電壓電平來改變所述集成電路的性能狀態(tài)的裝置。
27.一種提供指令的機(jī)器可讀介質(zhì),當(dāng)所述指令被機(jī)器執(zhí)行時(shí),使得所述機(jī)器執(zhí)行以下操作在由電池供電的計(jì)算系統(tǒng)中檢測用戶事件,所述計(jì)算系統(tǒng)包括具有多個(gè)性能狀態(tài)的集成電路,所述多個(gè)性能狀態(tài)包括第一性能狀態(tài)和最高性能狀態(tài);以及基于檢測到所述用戶事件,直接將所述集成電路從所述第一性能狀態(tài)轉(zhuǎn)換到所述最高性能狀態(tài)。
28.如權(quán)利要求27所述的機(jī)器可讀介質(zhì),還包括指令,當(dāng)所述指令被機(jī)器執(zhí)行時(shí),使得所述機(jī)器還執(zhí)行以下操作通過改變管理處理負(fù)載的處理器的數(shù)量來改變所述集成電路的性能狀態(tài)。
29.如權(quán)利要求27所述的機(jī)器可讀介質(zhì),還包括指令,當(dāng)所述指令被機(jī)器執(zhí)行時(shí),使得所述機(jī)器還執(zhí)行以下操作通過改變所述集成電路的工作頻率級別來改變所述集成電路的性能狀態(tài)。
全文摘要
基于檢測到用戶事件,將具有多個(gè)性能狀態(tài)的集成電路直接從第一性能狀態(tài)轉(zhuǎn)換到第三性能狀態(tài)的方法、裝置和系統(tǒng)。該集成電路具有多個(gè)性能狀態(tài),包括第一性能狀態(tài)、高于第一性能狀態(tài)的第二性能狀態(tài)和高于第二性能狀態(tài)的第三性能狀態(tài)。
文檔編號G06F1/32GK1610872SQ02818841
公開日2005年4月27日 申請日期2002年9月4日 優(yōu)先權(quán)日2001年9月25日
發(fā)明者蘭迪·斯擔(dān)利 申請人:英特爾公司