專利名稱:通過從處理器性能管理系統(tǒng)掩蔽處理來減少功耗的制作方法
通過從處理器性能管理系統(tǒng)掩蔽處理來減少功耗
背景技術(shù):
本發(fā)明一般涉及信息技術(shù)中的能效的領(lǐng)域,具體涉及當(dāng)處理器性能管理(PPM)(或者,處理器性能管理(PPM)也被稱為動態(tài)頻率和電壓調(diào)節(jié)(DFVS))被采用時提高能效。具體地,本發(fā)明涉及通過減少與特定處理(特別是用戶應(yīng)用、系統(tǒng)級服務(wù)或“精靈虛擬光驅(qū)(daemon)”)相關(guān)聯(lián)的計算負(fù)荷對功率性能管理算法或系統(tǒng)的影響來運(yùn)作的節(jié)電技術(shù)?,F(xiàn)在,處理器性能管理被廣泛使用以便減少包含處理器(特別是中央處理單元,CPU)的計算機(jī)以及其他設(shè)備/裝置(尤其是大部分時間使用電池電力的便攜設(shè)備-膝上型電腦、PDA、移動電話等)的功耗。在本文中,術(shù)語“計算裝置”應(yīng)當(dāng)被用作表示包括處理器的設(shè)備/裝置的一般表述?,F(xiàn)代的處理器能夠在不同時鐘頻率和處理器核心電壓(Vcc )的范圍內(nèi)工作。根據(jù) 高級配置和電源接口標(biāo)準(zhǔn)(ACPI ),操作頻率和操作電壓的每種組合對應(yīng)于不同的處理器性能標(biāo)準(zhǔn),并且通常被稱為“性能狀態(tài)”或“操作點”或者“P狀態(tài)”。每種性能狀態(tài)涉及不同水平的功耗功耗隨著CPU時鐘頻率并且隨著操作電壓的平方以線性方式上升。換句話說,下面的公式(I)是對功耗P隨著CPU時鐘頻率f和操作電壓V如何變化的近似P=CV2f (I)其中C是處理器容量。作為示例,表I指出由I. 6GHz Intel Pentium M處理器支持的處理器性能狀態(tài)。表I
頻率~~iS ~176GHz I. 484V ~174GHz I. 420V ~172GHz I.276V—高性能模式(最聞功耗)
~I. OGHz ~I. 164V 800MHz 1.036V 600MHz 0.956V—低性能模式(最低功耗)廣義上講,處理器性能管理涉及動態(tài)地基于當(dāng)時可用于系統(tǒng)的條件和/或基于用戶已經(jīng)指定的功率管理協(xié)議來選擇處理器性能狀態(tài)。通常,當(dāng)處理器的利用百分率高時,高性能狀態(tài)(最高可能操作頻率和電壓)將被選擇,而當(dāng)處理器的利用百分率低時,低性能狀態(tài)(最低可能操作頻率和電壓)將被選擇,并且在其他情況中,中間狀態(tài)被選擇。影響對處理器性能狀態(tài)的選擇的具體因素可有多種并且可因系統(tǒng)不同而變化。通常考慮的參數(shù)包括但不限于處理器利用百分率(或處理器“活動性”)、用戶的功率策略、當(dāng)前的電池水平以及熱狀況和事件。而且,某些PPM算法基于對于即將到來的時段這些參數(shù)的預(yù)測值而實現(xiàn)對處理器性能狀態(tài)的選擇。PPM可以多種方式來實現(xiàn),可利用處理器、BIOS和/或操作系統(tǒng)中的特征。眾所周知的PPM系統(tǒng)的示例包括AMD的powerNow! 、ARM的PowerWise自適應(yīng)電壓調(diào)節(jié)(AVS)和智能能量管理器(IEM)以及Intel的高級SpeedStep 這些技術(shù)。分解PPM系統(tǒng)的一種方式是考慮存在以下組件控制單元,該控制單元決定對于給定時段應(yīng)選擇哪種處理器性能狀態(tài);以及驅(qū)動器模塊,該驅(qū)動器模塊實施所希望的處理器性能狀態(tài)設(shè)置(例如,通過向寄存器寫入代碼,向處理器內(nèi)寫入代碼,這種代碼標(biāo)識出下 一目標(biāo)處理器性能狀態(tài)-如在Intel SpeedStep 系統(tǒng)中那樣)。在某些情況中,操作系統(tǒng)可能需要參考BIOS以便確定保持目標(biāo)處理器性能狀態(tài)和/或?qū)嶋H處理器性能狀態(tài)的寄存器的位置。當(dāng)處理器被指示改變性能狀態(tài)時,通常,該處理器將向相關(guān)聯(lián)的電壓調(diào)節(jié)器標(biāo)識出所希望的操作電壓。不論用于指示所希望的處理器性能狀態(tài)的改變的具體技術(shù)如何并且不論被采用來實施所指示的改變的具體技術(shù)如何,都可應(yīng)用本發(fā)明。通常,存在一組不同的功率管理策略并且用戶可在給定時間選擇哪種策略希望應(yīng)用于系統(tǒng),和/或可以配置策略。例如,微軟Windows 7 操作系統(tǒng)指定了三種功率管理策略(或“功率規(guī)劃”),它們分別稱為“性能”、“平衡”和“節(jié)電”,并且用戶被允許定制這些策略,例如通過指定給定策略中對于處理器利用率的上下限。在許多情況中,系統(tǒng)將在PPM模式中運(yùn)作,在PPM模式中,處理器上的負(fù)荷影響被選擇用于該處理器的性能狀態(tài)。被配置為實施考慮處理器活動性而選擇處理器性能狀態(tài)的PPM策略的計算機(jī)(或具有數(shù)據(jù)處理能力的其他設(shè)備)在當(dāng)計算密集型的任務(wù)被處理時,將選擇高性能處理器狀態(tài)(即,高操作頻率和高操作電壓-相應(yīng)地具有高功耗)。一般而言,PPM模塊不能在確實應(yīng)當(dāng)被迅速處理的高優(yōu)先級任務(wù)和不怎么急的任務(wù)(即,用戶將容忍較慢地完成的任務(wù)-即,低處理器性能狀態(tài)-如果這將導(dǎo)致功耗降低的話)之間進(jìn)行區(qū)分。就此,考慮當(dāng)計算機(jī)用戶將其系統(tǒng)的資源提供給志愿(volunteer)計算項目并且其系統(tǒng)被配置為實施至少部分地基于處理器上的計算負(fù)荷選擇處理器性能狀態(tài)的PPM策略時會有什么發(fā)生。在志愿計算中,人們將它們的計算機(jī)資源貢獻(xiàn)于大的并且最常見的科研計算項目。眾所周知的志愿計算項目為主要由牛津大學(xué)在climateprediction. net網(wǎng)站上運(yùn)行的氣候建模項目。為了能夠參與到志愿計算項目中,用戶通常要從與志愿計算項目相關(guān)聯(lián)的服務(wù)器下載小型應(yīng)用并將此應(yīng)用安裝到該用戶的計算機(jī)上。此應(yīng)用然后下載數(shù)據(jù)塊,利用志愿用計算機(jī)的處理器執(zhí)行計算,將結(jié)果更新到服務(wù)器,下載下一數(shù)據(jù)塊,等等。志愿計算項目一般涉及計算密集型應(yīng)用,即,需要處理器主要執(zhí)行數(shù)學(xué)運(yùn)算的應(yīng)用。這樣的應(yīng)用通常被稱為“CPU 約束(CPU-bound)” 應(yīng)用。在大多數(shù)普通情況中,志愿計算應(yīng)用被配置為使得它們僅當(dāng)計算機(jī)在一段時間內(nèi)空閑時才運(yùn)行,即,它們作為屏保運(yùn)行。為了估計此種情況(以及其他情況)中的功耗,基準(zhǔn)(benchmark)應(yīng)用被寫入,并且此基準(zhǔn)應(yīng)用被設(shè)計為執(zhí)行虛擬計算以使得其將模仿CPU約束用戶應(yīng)用的行為?;鶞?zhǔn)應(yīng)用利用如下的裝置運(yùn)行使用特征在于SpeedStep 技術(shù)的1500MHzIntel Pentium M Banias 處理器、使用具有 Linux kernel 2· 6· 31 版的 GNU /Linux操作系統(tǒng)、并且被配置為基于處理器利用百分率來選擇處理器的性能狀態(tài)的SonyVAI0 膝上型電腦(型號PCG-ZISP)。當(dāng)基準(zhǔn)應(yīng)用作為屏保在上述裝置上運(yùn)行時,該應(yīng)用運(yùn)行期間的處理器利用率(或處理器負(fù)荷)為100% (因為該應(yīng)用是計算密集型的應(yīng)用),并且相應(yīng)地,PPM系統(tǒng)選擇可用的最高性能處理器狀態(tài)。在這些情形中,完成計算需要大約57秒并且粗略地1700焦耳的能量被使用,使得平均功耗為30瓦。如果用戶故意純粹地使其計算機(jī)開著而使得志愿計算應(yīng)用能夠使用其資源,則由于參與到志愿計算項目中而全部此功率都被純粹消耗。 相對地,還可能將志愿計算應(yīng)用(或者其他CPU約束任務(wù))作為后臺任務(wù)來運(yùn)行,例如在當(dāng)用戶使用其計算機(jī)用于例行的辦公室工作時。圖I圖示出當(dāng)用戶使用上述膝上型電腦(按照描述配置)用于例行的辦公室工作時(PU的活動性的典型圖樣。圖I (a)圖示出在PPM系統(tǒng)的控制下CPU負(fù)荷隨時間的變化的典型圖樣,并且圖1(b)示出CPU時鐘頻率在同樣的時段的改變(PPM系統(tǒng)被配置為當(dāng)CPU負(fù)荷高時選擇高性能處理器模式,而當(dāng)CPU負(fù)荷低時選擇低性能處理器模式)。從圖I (a)將看出,平均CPU負(fù)荷低-一般低于20%-當(dāng)膝上型電腦被用于通常的辦公室工作時。圖1(b)示出CPU的時鐘頻率也保持低,對于較高頻率(例如,當(dāng)辦公室應(yīng)用加載并解壓縮圖像時)偶然有尖峰。當(dāng)膝上型電腦被用于例行的辦公室工作時的功耗約為13瓦,這實際上與當(dāng)膝上型電腦空閑時相同(即,CPU負(fù)荷接近零)。在當(dāng)用戶在上述測試用膝上型電腦配置上涉及例行的辦公室工作的同時基準(zhǔn)應(yīng)用作為后臺任務(wù)運(yùn)行時,基準(zhǔn)應(yīng)用使得處理器利用率跳到100%,這導(dǎo)致PPM系統(tǒng)對于當(dāng)基準(zhǔn)應(yīng)用運(yùn)行時的整個時段選擇高性能處理器模式。再次,計算花去大約57秒并且在此時段平均功率為30瓦。然而,在此情況中,很公平地認(rèn)為在用戶為了執(zhí)行他的例行的辦公室工作無論如何所需要的功率以上或以外僅僅17瓦“超額”功率被過渡消耗(這表示從屏保情況中使用的1700焦耳的能量下降到后臺運(yùn)行的情況中的969焦耳)。因此,在用戶使用他的計算機(jī)的同時作為后臺任務(wù)運(yùn)行計算密集型的應(yīng)用(或者,更一般地,計算密集型的任務(wù))比作為屏保運(yùn)行該應(yīng)用能效更高,但是仍涉及相當(dāng)大的額外能量的花費(fèi)。而且,當(dāng)CPU約束任務(wù)在后臺運(yùn)行時,CPU從相對低的水平升高到100%,這馬上給CPU造成熱壓力并且計算機(jī)風(fēng)扇開始全速運(yùn)轉(zhuǎn)。機(jī)器的噪聲馬上變得會煩擾用戶并且對于任意延長的時段都難以容忍。在志愿計算的環(huán)境中已經(jīng)嘗試的一種解決方法是允許用戶將其計算機(jī)資源可用于志愿計算應(yīng)用的時間部分進(jìn)行限制。此功能通過稱為BOINC (伯克利開放式網(wǎng)絡(luò)計算平臺)的軟件包來提供,該軟件包常被采用來部署志愿計算項目。如果用戶指定他的計算機(jī)資源對于少于100%的時間可用于志愿計算項目,則BOINC管理器將間歇地請求操作系統(tǒng)改變該應(yīng)用的狀態(tài)以進(jìn)行“加速”,從而將平均CPU利用率降低到用戶指定的分?jǐn)?shù)。例如,20%的用戶設(shè)置將導(dǎo)致BOINC管理器運(yùn)行2秒并且然后“使得該應(yīng)用睡眠” 8秒,其中假定在所述2秒時段期間,該應(yīng)用是計算密集型的應(yīng)用,并當(dāng)該應(yīng)用運(yùn)行時的CPU負(fù)荷為100%。當(dāng)該應(yīng)用睡眠時,CPU負(fù)荷將落回到其空閑水平(或者可歸因于CPU正運(yùn)行的任何其他處理的水平)。BOINC為用戶提供的用于限制志愿計算應(yīng)用對CPU的訪問的這種手段不會導(dǎo)致由該應(yīng)用消耗的能量降低。這可從下面看出使α表示用戶設(shè)置的允許CPU利用度,其中,0〈 α ( I ;P0是當(dāng)CPU負(fù)荷為0% (CPU空閑)時的功耗;P100是當(dāng)CPU負(fù)荷為100%時的功耗;
T100是當(dāng)以CPU負(fù)荷為100%執(zhí)行應(yīng)用并且如果計算未被中斷時所花的時間;并且T是完成計算實際所花的時間(包括“酬民”時段)。平均功耗應(yīng)為P=a Pltltl+(I-a Wtltj然而,由于運(yùn)行志愿計算應(yīng)用而導(dǎo)致的“超額”功耗(在計算機(jī)空閑時使用的功耗以上或以外)僅為P= a (P100-Po)。因為BOINC引入的睡眠,計算時間從TltlO增加為T=Tltltl/α。因此,由于運(yùn)行志愿計算應(yīng)用所消耗的總“超額”能量E=PXT變?yōu)?Picici-Pci) XTltltl,這確實與沒有“酬民”的情況所花費(fèi)的一樣。實際上,實踐中已經(jīng)發(fā)現(xiàn),當(dāng)計算密集型的應(yīng)用對CPU的訪問按照這種方式被限制時,所消耗的總能量實際升高。圖2示出在修改后的版本的基準(zhǔn)應(yīng)用-適于減少BOINC所提供的功能-在測試用膝上型電腦配置上運(yùn)行的情況中功耗隨著參數(shù)α (表示志愿計算應(yīng)用訪問CPU的時間的比例)的值如何變化。圖3示出在這些實驗中消耗的時間隨參數(shù)α的值如何變化。從圖2可以看出,對于幾乎所有α值,能耗大于沒有睡眠的情況(S卩,α=1的情況)。另外,圖3示出對于所有小于I的α值,計算持續(xù)時間增長。換句話說,使用BOINC所提供的限制CPU使用的手段看來主要導(dǎo)致能耗增大并且完成計算所需的時間加長。另外,已經(jīng)發(fā)現(xiàn),當(dāng)在BOINC偏好中參數(shù)α被設(shè)置為比O. 2大的值時,CPU上的熱壓力使得風(fēng)扇運(yùn)行并且機(jī)器迅速地變得不能忍受的吵雜。從上述可見,不論自愿計算應(yīng)用(或者其它CPU約束任務(wù),例如,用戶應(yīng)用、系統(tǒng)級服務(wù)、多任務(wù)操作系統(tǒng)環(huán)境中的基準(zhǔn)等)作為屏保運(yùn)作還是作為后臺任務(wù)運(yùn)作,在運(yùn)行此應(yīng)用中都涉及到相當(dāng)大的額外的能量浪費(fèi)。對于此非常大的能量使用的部分原因在于如下事實自愿計算應(yīng)用涉及高百分比的CPU利用率(為或者接近100%),并且這導(dǎo)致PPM系統(tǒng)選擇高性能處理器模式,即使此應(yīng)用不真正需要處理器的高性能(用戶并不真需要任務(wù)被快速運(yùn)行-用戶可以容忍完成此任務(wù)的運(yùn)行所需的時間延長)。更一般地考慮,至少部分地基于利用率來選擇處理器性能狀態(tài)的PPM系統(tǒng)即使在促使高性能狀態(tài)被選擇的某些部分的處理器負(fù)荷對于用戶來說實際上并不緊急或者并不具有高優(yōu)先級的情況中,也可能以相當(dāng)大的比率消耗電力。顯然,如果僅僅要被處理器執(zhí)行的任務(wù)是非緊急的,則用戶可以選擇功率管理簡檔(profile),該簡檔總是將處理器設(shè)置為低性能/低功耗狀態(tài)。然而,如果處理器將面對某些任務(wù)緊急而其它任務(wù)不緊急的情況,則這并不適當(dāng)。在這樣的情形中,則用戶很可能把當(dāng)設(shè)置處理器性能狀態(tài)時將CPU負(fù)荷考慮在內(nèi)的PPM簡檔擱置不用。US2009/0199019描述了一種技術(shù),通過該技術(shù),計算機(jī)系統(tǒng)(特別是其操作系統(tǒng))被配置使得對于不同工作負(fù)荷具有明確的優(yōu)先級水平指派。從而使得PPM算法可以使其處理器性能狀態(tài)選擇不僅僅基于百分比處理器利用率,而且還基于所涉及的工作負(fù)荷的優(yōu)先級水平。然而,為了現(xiàn)有計算機(jī)系統(tǒng)(或者具有數(shù)據(jù)處理能力的其它設(shè)備)能能夠利用這種技術(shù),將需要更新每個系統(tǒng)/設(shè)備上的操作系統(tǒng)。如果大量不同類型的操作系統(tǒng)(以及不同操作系統(tǒng)版本)當(dāng)前在被使用,這是不實際的任務(wù)。
發(fā)明內(nèi)容
本發(fā)明提出了一種不同解決方案,該解決方案在處理器面對雖然計算密集型但是對于用戶而言不緊急的任務(wù)(即,用戶可容忍完成運(yùn)行所需的時間一定程度增加的那些任務(wù))的情況中實現(xiàn)相對低性能處理器狀態(tài)。本發(fā)明并非解決操作系統(tǒng)級別上的問題,相反,本發(fā)明解決任務(wù)本身級別上的問題,適配任務(wù)以使得它們從PPM系統(tǒng)被掩蔽(mask)。 更具體地,本發(fā)明提供了在權(quán)利要求中定義的能耗減少方法、計算機(jī)程序產(chǎn)品、編譯器和計算裝置。根據(jù)本發(fā)明的技術(shù)使得當(dāng)計算密集型但不緊急的任務(wù)在采用至少部分地基于CPU上的負(fù)荷選擇處理器性能狀態(tài)的PPM算法的系統(tǒng)上運(yùn)行時能夠節(jié)省能量。本發(fā)明減少了與任務(wù)的運(yùn)行相關(guān)聯(lián)的計算負(fù)荷對PPM算法的影響。具體地,本發(fā)明使得與PPM系統(tǒng)完全考慮與所選任務(wù)的運(yùn)行相關(guān)聯(lián)的對CPU的計算負(fù)荷的情況相比,更有可能的是PPM系統(tǒng)將維持相對較低性能處理器狀態(tài)。可認(rèn)為與所選任務(wù)的運(yùn)行相關(guān)聯(lián)的CPU負(fù)荷已被全部或部分地從PPM系統(tǒng)被掩蔽。這種掩蔽可使得任務(wù)將利用正常所需能量的一部分來被運(yùn)行。此外,本發(fā)明的節(jié)能技術(shù)提供了如下優(yōu)點減少了對處理器的熱壓力;減少了運(yùn)行冷卻風(fēng)扇所需的時間量(以及伴隨著噪聲的降低)。本發(fā)明的節(jié)能技術(shù)獨立于被采用的具體處理器、操作系統(tǒng)、PPM系統(tǒng)或設(shè)備架構(gòu),并且實質(zhì)上可使用任何現(xiàn)代的處理器、操作系統(tǒng)和/或設(shè)備架構(gòu),倘若相關(guān)操作系統(tǒng)和/或PPM系統(tǒng)使用CPU負(fù)荷作為啟發(fā)式來確定處理器功率狀態(tài)。本發(fā)明的節(jié)能技術(shù)即使在多核處理器的情況也能應(yīng)用。如果采用本發(fā)明的掩蔽技術(shù)的任務(wù)正在第一處理器核心上運(yùn)行并且突然遷移到不同的處理器核心上,則在掩蔽過程中可能出現(xiàn)短期的擾動,但是最多這會導(dǎo)致CPU負(fù)荷臨時增大,但是這種增大很快會消失。
本發(fā)明的進(jìn)一步特征和優(yōu)點通過下面作為示例而非限制的聯(lián)合附圖對本發(fā)明的優(yōu)選實施例的描述將變得更加清楚,在附圖中圖1(a)是示出CPU負(fù)荷的圖示,并且圖1(b)是示出在膝上型電腦被用于例行的辦公室工作的情況中的CPU時鐘頻率的圖示;圖2是示出當(dāng)用戶應(yīng)用在運(yùn)行時所消耗的能量隨著參數(shù)α (即,根據(jù)BOINC軟件包提供的選項的CPU被允許運(yùn)行的時間的比例)如何變化的圖示;圖3是圖示在圖2的實驗中計算時間隨著參數(shù)α如何變化的圖示;
圖4(a)是圖示節(jié)能(當(dāng)運(yùn)行基準(zhǔn)應(yīng)用時)隨著參數(shù)T和S的值的改變?nèi)绾巫兓膱D示;圖4(b)是圖示處理器保持在最低功率模式中的時間的百分比(當(dāng)運(yùn)行基準(zhǔn)應(yīng)用時)隨著參數(shù)T和S的值的改變?nèi)绾巫兓膱D示;圖5(a)圖示在圖示本發(fā)明的第一優(yōu)選實施例的功效的實驗中運(yùn)行基準(zhǔn)應(yīng)用時所消耗的總能量隨著活動時段T的持續(xù)時間如何變化;圖5(b)圖示在圖5(a)的實驗中為了完成基準(zhǔn)應(yīng)用的允許所需的時間隨著時間T如何變化;圖5(c)示出對于圖5(a)的實驗中的不同T值CPU處于低功率(空閑)性能模式的時間的部分;圖5(d)圖示在圖5(a)的實驗中可歸因于基準(zhǔn)應(yīng)用的運(yùn)行的額外能耗隨著T如何變化; 圖6(a)圖示在圖示本發(fā)明的第一優(yōu)選實施例的功效的實驗中所消耗的總能量隨著活動時段之間的間隔S的持續(xù)時間如何變化;圖6(b)圖示在圖6(a)的實驗中為了完成基準(zhǔn)應(yīng)用的運(yùn)行所需的時間隨著S如何變化;圖6(c)示出在圖6(a)的實驗中對于不同的S值CPU處于低功率(空閑)性能模式中的時間部分;圖6(d)圖示在圖6(a)的實驗中可歸因于基準(zhǔn)應(yīng)用的運(yùn)行的額外能耗隨著S如何變化;以及圖7圖示可歸因于氣候模型的運(yùn)行的額外能耗隨著活動時段T之間的間隔S如何變化。
具體實施例方式現(xiàn)將參照圖4至圖7來描述當(dāng)前優(yōu)選的本發(fā)明的第一實施例。PPM系統(tǒng)所使用的用于確定CPU負(fù)荷的詳細(xì)的啟發(fā)式針對操作系統(tǒng)的類型/版本而顯著不同。例如,據(jù)稱微軟Windows 7 操作系統(tǒng)以新的方式來處理對處理器活動的計量(accounting),當(dāng)基于當(dāng)前系統(tǒng)活動性來確定哪個性能狀態(tài)是合適的時,這種方式能夠?qū)崿F(xiàn)更高的準(zhǔn)確度。不管PPM系統(tǒng)用于評估CPU利用率當(dāng)前所使用的具體啟發(fā)式是什么,都可應(yīng)用本發(fā)明,并且,本發(fā)明基于如下概念在PPM系統(tǒng)正根據(jù)至少部分基于CPU利用率來選擇處理器性能狀態(tài)的簡檔運(yùn)行的同時,通過欺騙(trick)PPM系統(tǒng)使得即使處理器正在執(zhí)行CPU約束任務(wù)或處理也保持處理器的相對低的性能狀態(tài),可以獲得節(jié)能。本發(fā)明基于如下發(fā)現(xiàn)一般而言,PPM系統(tǒng)以固定時間間隔評估CPU負(fù)荷并基于針對給定時間間隔所確定的CPU負(fù)荷來決定選擇哪個處理器性能狀態(tài)。根據(jù)本發(fā)明,與任務(wù)執(zhí)行相關(guān)聯(lián)的平均處理器利用率在當(dāng)確定CPU負(fù)荷時PPM系統(tǒng)所應(yīng)用的計量時段中減小,并且因此,PPM算法并未“看到”任務(wù)(或僅“看到”部分任務(wù))。換言之,與任務(wù)執(zhí)行相關(guān)聯(lián)的計算負(fù)荷被使得對PPM系統(tǒng)所選的處理器性能狀態(tài)具有減小的影響。在發(fā)明的第一優(yōu)選實施例中,所使用的使得任務(wù)可在PPM系統(tǒng)所使用的用于評估CPU負(fù)荷的每個計量時段上減少其CPU使用的技術(shù)是布置任務(wù)在非常短的時段上運(yùn)行,且在活動的時段之間具有固定的短間隔。通過與BOINC所使用的方式進(jìn)行類比,在發(fā)明的第一優(yōu)選實施例中,其可被看作為任務(wù)具有“微休眠(miciO-sleeps)”(即,很小的休眠,此處使用詞“微”并不是將這些小休眠的持續(xù)時間限為微秒量級)。在本發(fā)明的第一優(yōu)選實施例的情形中,活動時段的持續(xù)時間和其間的間隔被設(shè)置為使得在PPM系統(tǒng)的計量時段中由任務(wù)所導(dǎo)致的平均CPU負(fù)荷相對低,并且,其不大可能為處理器觸發(fā)選擇更高的性能狀態(tài),但是,該減小的平均CPU負(fù)荷仍舊是非零的,S卩,仍舊使得某些進(jìn)程在計算上進(jìn)行。因此,與BOINC中的休眠不同,發(fā)明的第一優(yōu)選實施例中所使用的微休眠確實獲得了能耗降低。實際上,BOINC不能獲得本發(fā)明中所使用的定時粒度。當(dāng)BOINC軟件包被用于部署志愿計算應(yīng)用時,該應(yīng)用必須用實現(xiàn)單個處理程序的BOINC庫來編譯。在應(yīng)用執(zhí)行在志愿處理器上的期間內(nèi),BOINC管理器作為單獨的處理運(yùn)行并以固定的時間間隔向應(yīng)用發(fā)送信號(利用操作系統(tǒng)所提供的處理間通信設(shè)備)。當(dāng)信號處理程序從BOINC管理器接收信號 時,其檢查已經(jīng)過去了多少時間并將應(yīng)用置為休眠(如果必要的話)。該用于將應(yīng)用置入休眠的技術(shù)不能獲得本發(fā)明所涉及的短持續(xù)時間的活動時段和微休眠。圖4至圖7示出了根據(jù)用于獲得節(jié)能的第一優(yōu)選實施例的方法的效果。上述基準(zhǔn)應(yīng)用根據(jù)以下偽碼運(yùn)行在測試膝上型計算機(jī)配置上
start = now () loop until work done do some work if (now() - start > T) sleep (S) start = now()
end ifend loop.該偽碼導(dǎo)致基準(zhǔn)應(yīng)用訪問處理器,以在時段T期間執(zhí)行少量工作,然后在間隔S期間將自己置于休眠。取不同的T和S值,從而顯示發(fā)明的第一優(yōu)選實施例的效果。當(dāng)S=O時,這相當(dāng)于基準(zhǔn)應(yīng)用連續(xù)訪問處理器,導(dǎo)致100%的平均CPU利用率以及(由PPM系統(tǒng))為處理器選擇高性能模式。這等同于上述的屏?;驊T常的后臺執(zhí)行。當(dāng)T和S 二者被設(shè)定為與PPM系統(tǒng)的計量時段(Pa,在利用GNU / Linux的本示例中,大約為10毫秒)相比更大的值時,則存在CPU使用為100%的某些PPM計量時段(活動時段T期間),并存在CPU使用為0%的其他PPM計量時段(休眠S期間)。因此,在某些時段期間,高性能模式被選擇,而針對其他時段,低性能模式被選擇。這等同于沒有節(jié)能的利用BOINC的使用限制設(shè)備所獲得的行為。圖4示出了當(dāng)T和S被設(shè)置為比計量時段Pa更大和更小的不同值時所觀察到的行為。圖4(a)示出了能量使用是如何隨著T和S的值變化的,而圖4(b)示出了變更T和S的值對處理器在最低功率性能狀態(tài)中所花費(fèi)的時間百分比的影響。下表2列出了圖4 (a)和圖4 (b)中所畫出的數(shù)據(jù)點。表 權(quán)利要求
1.一種減少當(dāng)處理器在后臺執(zhí)行任務(wù)時所述處理器所消耗的能量的方法,所述處理器的性能狀態(tài)由處理器性能管理PPM系統(tǒng)控制,所述處理器性能管理系統(tǒng)在考慮計量時段Pa期間對處理器負(fù)荷的評估的情況下來選擇所述性能狀態(tài),該能耗減少方法包括如下步驟 (a)在活動時段T期間使得所述處理器執(zhí)行所述任務(wù)的一部分, (b)在每個活動時段后,使得所述處理器在間隔S期間停止執(zhí)行所述任務(wù),以及 (c)重復(fù)執(zhí)行步驟(a)和步驟(b),直到所述任務(wù)已經(jīng)被完成為止; 其中,所述活動時段T和間隔S的持續(xù)時間被選擇,使得在所述任務(wù)的執(zhí)行的開始和結(jié)束之間的所述PPM系統(tǒng)的每個計量時段Pa期間,對所述任務(wù)的執(zhí)行在所述處理器上施加平均負(fù)荷,所述平均負(fù)荷小于100%但大于0%。
2.根據(jù)權(quán)利要求I所述的能耗減少方法,其中,每個活動時段T的持續(xù)時間小于所述PPM系統(tǒng)的所述計量時段Pa的持續(xù)時間。
3.根據(jù)權(quán)利要求I或2所述的能耗減少方法,其中,步驟(b)包括配置所述任務(wù)的指令序列以包括一個或多個虛擬指令以及使得所述處理器在所述間隔S執(zhí)行一個或多個所述虛擬指令。
4.根據(jù)權(quán)利要求I或2所述的能耗減少方法,其中,步驟(b)包括在所述間隔S內(nèi)將所述任務(wù)置入休眠。
5.根據(jù)權(quán)利要求I所述的能耗減少方法,其中,所述任務(wù)被配置為使得在執(zhí)行期間進(jìn)行對執(zhí)行的當(dāng)前時段期間所經(jīng)過的時間的檢查,并且當(dāng)已經(jīng)經(jīng)過預(yù)定持續(xù)時間T時,做出請求以在所述間隔S內(nèi)將所述任務(wù)置于休眠。
6.根據(jù)權(quán)利要求2所述的能耗減少方法,其中,所述任務(wù)被配置為使得在執(zhí)行期間進(jìn)行對執(zhí)行的當(dāng)前時段期間所經(jīng)過的時間的檢查,并且當(dāng)已經(jīng)經(jīng)過預(yù)定持續(xù)時間T時,做出請求以在所述間隔S內(nèi)將所述任務(wù)置于休眠。
7.根據(jù)權(quán)利要求5或6所述的能耗減少方法,其中,所述任務(wù)被配置為使得每當(dāng)所述任務(wù)調(diào)用函數(shù)調(diào)用時進(jìn)行對已經(jīng)經(jīng)過的時間的所述檢查。
8.根據(jù)權(quán)利要求I所述的能耗減少方法,包括根據(jù)用來執(zhí)行所述任務(wù)的處理器和操作系統(tǒng)來設(shè)置所述活動時段T和所述間隔S中的至少一個的持續(xù)時間。
9.根據(jù)權(quán)利要求I所述的能耗減少方法,其中,所述活動時段T和所述間隔S中的至少一個的持續(xù)時間在所述任務(wù)的執(zhí)行的開始和結(jié)束之間被變更。
10.一種存儲在計算機(jī)可用介質(zhì)上并包括軟件代碼的計算機(jī)程序產(chǎn)品,所述軟件代碼表示適合由處理器CPU實現(xiàn)的任務(wù),所述處理器的性能狀態(tài)由處理器性能管理PPM系統(tǒng)控制,所述處理器性能管理系統(tǒng)考慮計量時段Pa期間對處理器負(fù)荷的評估來選擇所述性能狀態(tài),所述任務(wù)包括程序代碼,當(dāng)利用所述處理器來運(yùn)行所述計算機(jī)程序產(chǎn)品時,所述程序代碼被適配為在各自活動時段T期間使得所述CPU執(zhí)行所述任務(wù)的一部分,所述活動時段T之間具有當(dāng)所述處理器停止執(zhí)行所述任務(wù)時的間隔S,其中,所述活動時段T和間隔S的持續(xù)時間被選擇,使得在所述任務(wù)的執(zhí)行的開始和結(jié)束之間的所述PPM系統(tǒng)的每個計量時段Pa期間,對所述任務(wù)的執(zhí)行在所述處理器上施加平均負(fù)荷,所述平均負(fù)荷小于100%但大于0%。
11.根據(jù)權(quán)利要求10所述的計算機(jī)程序產(chǎn)品,其中,所述程序代碼被適配為使得所述任務(wù)在比所述計量時段Pa的持續(xù)時間更短的活動時段T期間執(zhí)行所述任務(wù)。
12.—種計算裝置,包括處理器并被配置為實現(xiàn)處理器性能管理PPM,所述處理器性能管理考慮計量時段Pa期間對處理器負(fù)荷的評估來選擇所述性能狀態(tài),其中,所述計算裝置被配置為通過在活動時段T期間執(zhí)行所述任務(wù)的一部分并在每個活動時段后在間隔S內(nèi)停止執(zhí)行所述任務(wù)來執(zhí)行所選擇的任務(wù),其中,所述活動時段T和間隔S的持續(xù)時間被選擇為使得在所述任務(wù)的執(zhí)行的開始和結(jié)束之間的所述PPM系統(tǒng)的每個計量時段Pa期間,對所述任務(wù)的執(zhí)行在所述處理器上施加平均負(fù)荷,所述平均負(fù)荷小于100%但大于0%。
13.根據(jù)權(quán)利要求12所述的計算裝置,其中,所述活動時段T的持續(xù)時間比所述計量時段Pa的持續(xù)時間短。
14.一種被配置為重新編譯程序代碼的編譯器,所述程序代碼表示將要在處理器上執(zhí)行的任務(wù),所述處理器的性能狀態(tài)由處理器性能管理系統(tǒng)控制,所述處理器性能管理系統(tǒng)考慮計量時段Pa期間對處理器負(fù)荷的評估來選擇所述性能狀態(tài),所述編譯器被配置為重新編譯所述程序代碼,使得當(dāng)重新編譯后的任務(wù)在所述處理器上執(zhí)行時,執(zhí)行如下步驟 (a)在活動時段T內(nèi)運(yùn)行, (b)在每個活動時段T后,在間隔S內(nèi)停止運(yùn)行,以及 (C)重復(fù)執(zhí)行步驟(a)和步驟(b),直到所述任務(wù)已經(jīng)被完成為止; 其中,所述重新編譯后的程序代碼被適配為使得所述活動時段T和間隔S的持續(xù)時間使得在所述任務(wù)的執(zhí)行的開始和結(jié)束之間的所述PPM系統(tǒng)的每個計量時段Pa期間,對所述任務(wù)的執(zhí)行在所述處理器上施加平均負(fù)荷,所述平均負(fù)荷小于100%但大于0%。
15.根據(jù)權(quán)利要求14所述的編譯器,其中,所述重新編碼后的程序代碼被適配為使得所述活動時段T的持續(xù)時間比所述計量時段Pa的持續(xù)時間短。
16.根據(jù)權(quán)利要求14所述的編譯器,其中,所述編譯器被配置為重新編譯所述程序代碼,使得當(dāng)在所述處理器上執(zhí)行重新編譯后的任務(wù)時,執(zhí)行如下步驟 每當(dāng)所述重新編譯后的任務(wù)調(diào)用函數(shù)調(diào)用時核實所經(jīng)過的時鐘周期,以及 當(dāng)所述核實步驟顯示在所述活動時段T內(nèi)所述任務(wù)在所述處理器上是活動的時,在所述間隔S內(nèi)將所述任務(wù)置入休眠。
17.一種存儲在計算機(jī)可用介質(zhì)上并包括軟件代碼的計算機(jī)程序產(chǎn)品,當(dāng)所述軟件代碼在包括處理器的計算裝置上運(yùn)行時,所述軟件代碼被適配為控制由所述處理器進(jìn)行的對任務(wù)的執(zhí)行,所述處理器的性能狀態(tài)由處理器性能管理系統(tǒng)控制,所述處理器性能管理系統(tǒng)考慮計量時段Pa期間對處理器負(fù)荷來選擇所述性能狀態(tài),其中,所述軟件代碼被適配為使得所述處理器執(zhí)行如下步驟 (a)針對活動時段T,執(zhí)行所述任務(wù), (b)在每個活動時段T后,針對間隔S停止執(zhí)行所述任務(wù),以及 (c)重復(fù)執(zhí)行步驟(a)和步驟(b),直到所述任務(wù)已經(jīng)被完成為止; 其中,所述活動時段T和間隔S的持續(xù)時間被選擇,使得在所述任務(wù)的執(zhí)行的開始和結(jié)束之間,在所述PPM系統(tǒng)的每個計量時段Pa期間對所述任務(wù)的執(zhí)行在所述處理器上施加平均負(fù)荷,所述平均負(fù)荷小于100%但大于0%。
18.根據(jù)權(quán)利要求17所述的計算機(jī)程序產(chǎn)品,其中,所述活動時段T的持續(xù)時間比所述計量時段Pa的持續(xù)時間短。
全文摘要
可通過從處理器性能管理系統(tǒng)掩蔽計算密集型任務(wù)來獲得節(jié)能,該處理器性能管理系統(tǒng)基于處理器(CPU)上的負(fù)荷來選擇處理器。通過防止PPM系統(tǒng)對應(yīng)用置于處理器上的計算性負(fù)荷做出反應(yīng),完成執(zhí)行應(yīng)用的時間增加,但是,應(yīng)用所使用的能量被極大地減小,并且,CPU上的熱壓力也被降低(防止有噪聲的風(fēng)扇操作)。該方式使得將計算密集型任務(wù)作為后臺任務(wù)運(yùn)行很方便。可通過在小突發(fā)中運(yùn)行任務(wù)來獲得掩蔽,在小突發(fā)之間帶有微休眠,使得在PPM系統(tǒng)用于測量CPU活動/負(fù)荷的時段中平均CPU負(fù)荷為低。
文檔編號G06F1/32GK102822768SQ201180015576
公開日2012年12月12日 申請日期2011年3月22日 優(yōu)先權(quán)日2010年3月23日
發(fā)明者皮特·哈納皮 申請人:索尼公司