基于雙閾值功耗自適應(yīng)的dvfs調(diào)節(jié)算法
【技術(shù)領(lǐng)域】
[0001 ]本發(fā)明屬于計算機算法技術(shù)領(lǐng)域,尤其是涉及一種基于雙閾值功耗自適應(yīng)的DVFS調(diào)節(jié)算法。
【背景技術(shù)】
[0002]DVFS技術(shù)是一種針對處理器功耗優(yōu)化的技術(shù),其主要是通過調(diào)節(jié)處理器的頻率與電壓讓處理器在處理不同負載的任務(wù)時處于不同的性能水平下。這種技術(shù)既需要處理器硬件的支持也需要軟件的配合使用。
[0003]在支持DVFS的處理器中,硬件支持的電壓調(diào)節(jié)有兩種方式:片外調(diào)節(jié)與片內(nèi)調(diào)節(jié)。采用片外調(diào)節(jié)器的處理器在調(diào)節(jié)電壓時,需要的穩(wěn)定時間比較長,一般需要幾十微妙到幾十毫秒,但是,其優(yōu)點也比較明顯,就是電源轉(zhuǎn)換效率相對比較高,最大可以達到90%。但是,這個相對較高的電源轉(zhuǎn)換效率與負載有很大關(guān)系,當輸出功率較大時,電源轉(zhuǎn)換效率相對來說比較高。正是因為片外的電壓調(diào)節(jié)方式穩(wěn)定時間比較長,所以在采用片外調(diào)機器的處理器上調(diào)節(jié)電壓時不宜過頻。另一種片內(nèi)調(diào)節(jié)的方式可以將電壓切換的時間縮短到納秒級,為處理器內(nèi)較短的電壓切換時間對實現(xiàn)快速調(diào)節(jié)提供了非常有利的條件。雖然片內(nèi)調(diào)節(jié)器所需要的切換時間相對于片外調(diào)節(jié)器來說大大降低了,但是,其電源轉(zhuǎn)換率相對來說要低一些,通常在70%到80%之間。而且,片內(nèi)調(diào)節(jié)方式在處理器內(nèi)部占用的硅片面積開銷比較大,約每瓦特2mm2。
[0004]在支持DVFS的處理器中,硬件支持的頻率調(diào)節(jié)有兩種方式:分頻器調(diào)節(jié)與鎖相環(huán)調(diào)節(jié)。鎖相環(huán)與分頻器調(diào)節(jié)這兩種方式也分別有各自的優(yōu)缺點。對于鎖相環(huán)來說,從開始調(diào)整到最終穩(wěn)定下來,需要一個鎖定的時間,并且,在這個時間內(nèi),時鐘信號輸出可能會造成執(zhí)行錯誤。因此,在采用鎖相環(huán)調(diào)節(jié)頻率的處理器中,調(diào)節(jié)頻率時會關(guān)閉時鐘一段時間去等待時鐘穩(wěn)定。而且這個時間一般在幾十微秒以上。因此,在采用鎖相環(huán)調(diào)節(jié)頻率時,不適合頻繁調(diào)節(jié),這也導(dǎo)致在設(shè)計DVFS算法時不適合細粒度調(diào)節(jié)。相對于鎖相環(huán)調(diào)節(jié)頻率,以分頻器調(diào)節(jié)的方式則快很多。并且,沒有鎖定時間,它從接收到信號至產(chǎn)生穩(wěn)定輸出只需要幾個時鐘周期就可以完成。因此,可以實現(xiàn)比較快速的頻率調(diào)節(jié),但是,這種調(diào)節(jié)方式所獲取的頻率有可能并非50%占空比。
[0005]在處理器有了硬件上支持DVFS技術(shù)之后,還需要軟件的相關(guān)算法配合調(diào)節(jié)。目前在軟件調(diào)節(jié)上主要是檢測到處理器的idle時刻,并在這個時刻降低處理器的頻率與電壓來降低處理器的功耗,并且不會對性能造成較大損失。在軟件調(diào)節(jié)中DVFS主要分為兩大類:一種是閉環(huán)的DVFS,另一種是開環(huán)的DVFS。在使用開環(huán)的DVFS調(diào)節(jié)時,一般會考慮具體的工作情況。需要事先設(shè)定好一些工作的電壓和頻率的匹配狀態(tài)集合點。當處理器在運行某些應(yīng)用程序時,實時采集一些必要的信息,并結(jié)合相關(guān)的控制調(diào)節(jié)算法,最后根據(jù)算法的結(jié)果選取一個預(yù)先設(shè)定的合適工作狀態(tài)。然而,在閉環(huán)的DVFS調(diào)節(jié)中,主要是一種自適應(yīng)電壓頻率調(diào)節(jié),在處理器內(nèi)部有一個延時采樣的性能監(jiān)控器,這個監(jiān)控器與供電控制電壓模塊和處理器頻率控制模塊形成一個閉環(huán)的系統(tǒng)。在運行程序時,性能監(jiān)控器采集一些必要的信息來綜合決定最終的處理器合適的工作電壓與頻率。處理器中開環(huán)與閉環(huán)DVFS調(diào)節(jié)最大的區(qū)別在于,有沒有預(yù)先設(shè)定好的電壓與頻率的值。在開環(huán)系統(tǒng)中,會預(yù)先設(shè)定好一系列的電壓頻率值,在運行程序時,通過獲取的處理器信息,合理的選擇預(yù)先設(shè)定好的頻率和電壓。然而,閉環(huán)系統(tǒng)中,并沒有預(yù)先設(shè)定好的頻率與電壓值,都是在處理器工作時,通過性能監(jiān)控器收集信息,來預(yù)測和判斷目前處理器最合適的運行頻率以及工作電壓,然后再根據(jù)相應(yīng)的算法進行調(diào)節(jié)。這是一個軟硬件協(xié)同設(shè)計的過程,而且設(shè)計相當復(fù)雜。目前并沒有一個非常完善的能夠通用的采用閉環(huán)調(diào)節(jié)的DVFS方法。所以,大多數(shù)DVFS還是以開環(huán)為主。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的是為了克服現(xiàn)有技術(shù)不足,提供一種基于雙閾值功耗自適應(yīng)的DVFS調(diào)節(jié)算法,合理利用處理器性能、降低處理器功耗。
[0007]本發(fā)明的技術(shù)方案是:一種基于雙閾值功耗自適應(yīng)的DVFS調(diào)節(jié)算法,包括:
[0008]實時獲取處理器的利用率與處理器功耗值;
[0009]判斷處理器的利用率是否在第一級閾值之內(nèi);
[0010]若是,則維持工作頻率不變;以及若否,則執(zhí)行以下步驟:
[0011]判斷處理器的利用率是否超出第二級閾值;
[0012]若否,則采用分頻的方式調(diào)節(jié)頻率,以及若是,執(zhí)行以下步驟:
[0013]判斷處理器利用率是否低于第二級閾值的下限或者超出第二級閾值的上限與功耗閾值;
[0014]若否,則采用分頻的方式調(diào)節(jié)頻率;若是,則采用鎖相環(huán)的方式調(diào)節(jié)頻率,同時變更電壓值。
[0015]進一步,所述處理器的利用率和工作頻率呈正相關(guān)。
[0016]進一步,所述第一級閾值、第二級閾值和功耗閾值將所述處理器的調(diào)節(jié)區(qū)間劃分為了六個,當處理器的利用率在第一級閾值內(nèi)時,則維持工作頻率不變,如果處理器利用率介于第一級閾值下限與第二級閾值下限之間時,就采用分頻的方式迅速降低頻率;如果處理器利用率介于第一級閾值上限與第二級閾值上限之間時,就采取分頻調(diào)節(jié)的方式迅速升高頻率。
[0017]進一步,當處理器利用率超出第二級閾值的上限但是功耗要低于功耗閾值,采取分頻調(diào)節(jié)頻率的方式升高頻率,如果此時已經(jīng)是該電壓下的最高頻率,那么就繼續(xù)維持此頻率。
[0018]進一步,如果處理器利用率超出第二級閾值,并且此時處理器的功耗超出了功耗閾值,則采取鎖相環(huán)的方式升高處理器基準頻率,并且在調(diào)節(jié)頻率之前需要先升高電壓,保證此時的電壓能夠正常支持所需要的新頻率。
[0019]進一步,如果處理器利用率低于第二級閾值的下限時,則采用鎖相環(huán)的方式降低處理器基準頻率,并且在降低頻率之后再降低處理器電壓。
[0020]進一步,所述第一級閾值包含在所述第二級閾值內(nèi),所述功耗閾值大于第二級閾值上限。
[0021]進一步,當所述處理器為多核時,可以將所述處理器劃分為多個簇,每個簇中包含單個或者多個核,如果所述處理器的多個核同時需要調(diào)頻,在多核形成的一個簇中,一旦有一個核的處理器利用率超過第一級閾值、第二級閾值或者功耗閾值的上限值,那么將該核所在的整個簇頻率提升到基準頻率。
[0022]本發(fā)明具有的優(yōu)點和積極效果是:由于采用上述技術(shù)方案,采用處理器利用率的雙極閾值控制,能夠在雙重限制下讓處理器性能得到更合理的利用。相對于傳統(tǒng)的單閾值算法來說,這種雙閾值能夠在處理器利用率超過第一級閾值時啟動調(diào)頻機制,可以盡早地把處理器的性能控制在合理的范圍。一旦超過第二級閾值時,還可以啟動第二套調(diào)頻方案再次控制處理器性能。因此,這種雙閾值的調(diào)節(jié)方式具有提前控制,后續(xù)協(xié)調(diào)的雙重壓制的特點,能夠達到更好地利用處理器性能的目的。
【附圖說明】
[0023]圖1是本發(fā)明的基于雙閾值功耗自適應(yīng)的DVFS調(diào)節(jié)算法的流程圖;
[0024]圖2是本發(fā)明的處理器調(diào)節(jié)區(qū)間結(jié)構(gòu)示意圖。
【具體實施方式】
[0025]下面結(jié)合附圖對本發(fā)明做詳細說明。
[0026]如圖1本發(fā)明的基于雙閾值功耗自適應(yīng)的DVFS調(diào)節(jié)算法的流程圖所示,本發(fā)明提供一種基于雙閾值功耗自適應(yīng)的DVFS調(diào)節(jié)算法,包括:
[0027]步驟101,實時獲取處理器的利用率與處理器功耗值。
[0028]步驟102,判斷處理器的利用率是否在第一級閾值之內(nèi);若是,則維持工作頻率不變;以及若否,則執(zhí)行以下步驟:
[0029]步驟103,判斷處理器的利用率是否超出第二級閾值;若否,則采用分頻的方式調(diào)節(jié)頻率,以及若是,執(zhí)行以下步驟:
[0030]步驟104,判斷處理器利用率是否低于第二級閾值的下限或者超出第二級閾值的上限與功耗閾值;若否,則采用分頻的方式調(diào)節(jié)頻率。
[0031]步驟105,若是,則采用鎖相環(huán)的方式調(diào)節(jié)頻率,同時變更電壓值。
[0032]所述處理器的利用率和工作頻率呈正相關(guān)。
[0033]工作頻率會隨著使用率的升高而升高,以及隨著使用率的下降而降低。一般而言,當處理器執(zhí)行字處理、網(wǎng)絡(luò)瀏覽或其它2D繪圖等低使用率的應(yīng)用程序時,只需要以較低的工作頻率來運行即能滿足使用需求。相反地,當處理器執(zhí)行3D繪圖、視頻轉(zhuǎn)碼、解壓縮或游戲軟件等高使用率的應(yīng)用程序時,則必需大幅提高工作頻率才能滿足高負載情況下的使用需求。因此,處理器的工作頻率和使用率之間具有相對應(yīng)的關(guān)系,也就是說,根據(jù)使用率范圍的不同,處理器會分別以相應(yīng)的工作頻率來運作,從而在不同的使用率底下提供適當?shù)墓ぷ黝l率,使處理器運行時的整體能耗降低。也就是處理器在不同使用率的使用狀態(tài)下,可以采用的優(yōu)選的工作頻率,從而在兼具高效能