Cpu工作頻率的動態(tài)調(diào)節(jié)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本公開內(nèi)容涉及計(jì)算機(jī)系統(tǒng)領(lǐng)域。更特別地,提供了用于動態(tài)地改變中央處理單 元(CPU)所操作于的頻率并因而改變其在操作期間消耗的功率的系統(tǒng)和方法。
【背景技術(shù)】
[0002] CPU的功率消耗取決于其操作所使用的頻率和電壓。調(diào)節(jié)由CPU所使用的功率的 現(xiàn)有方法(例如,ACPI或者高級配置和電源接口)的唯一目標(biāo)是降低其消耗。這些方法通 常在工作負(fù)載輕時降低CPU的功率,同時允許其在工作負(fù)載重時增大。盡管能源消耗和該 能源隨之而來的成本可能是一些個人用戶和/或組織的關(guān)注,但是這并非總是它們具有的 關(guān)于其計(jì)算資產(chǎn)的操作的主要關(guān)注。
[0003] 例如,提供在線服務(wù)(例如,網(wǎng)站、應(yīng)用)的組織與降低能源成本相比可能更關(guān)心 提供充足或者許諾的性能。這兩種期望(性能和能源節(jié)約)經(jīng)常是沖突的。因?yàn)檎{(diào)節(jié)CPU 的功率消耗的現(xiàn)有方法無法考慮并且也不考慮特定應(yīng)用的性能要求,所以當(dāng)CPU被節(jié)流時 組織的期望的性能目標(biāo)可能受挫或者受阻礙。此外,如果主要或者關(guān)鍵應(yīng)用的性能已經(jīng)處 于功率增加之前的目標(biāo)等級或者在功率增加之前的目標(biāo)等級之上,則現(xiàn)有方法可能不一定 允許當(dāng)能源消耗被增大以滿足相對重的工作負(fù)載時的過度能源消耗。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的各實(shí)施例涉及CPU工作頻率的動態(tài)調(diào)節(jié)。
[0005] 根據(jù)本發(fā)明的示例性實(shí)施例,提供了一種動態(tài)調(diào)節(jié)中央處理單元(CPU)的操作的 方法,該方法包括:根據(jù)一個或多個度量,確定由該CPU執(zhí)行的應(yīng)用的當(dāng)前性能;以及基于 該當(dāng)前性能和在與該應(yīng)用相關(guān)聯(lián)的服務(wù)水平協(xié)議(SLA)中標(biāo)識的目標(biāo)性能,動態(tài)地修改該 CPU的工作頻率,而不考慮該CPU除該應(yīng)用之外的工作負(fù)載。
[0006] 根據(jù)本發(fā)明的示例性實(shí)施例,還提供了一種裝置,包括:中央處理單元(CPU);以 及存儲指令的存儲器,該指令當(dāng)被該CPU執(zhí)行時使該裝置:根據(jù)一個或多個度量,確定由 該CPU執(zhí)行的應(yīng)用的當(dāng)前性能;以及基于該當(dāng)前性能和在與該應(yīng)用相關(guān)聯(lián)的服務(wù)水平協(xié)議 (SLA)中標(biāo)識的目標(biāo)性能,動態(tài)地修改該CPU的工作頻率,而不考慮該CPU除該應(yīng)用之外的 工作負(fù)載。
[0007] 根據(jù)本發(fā)明的示例性實(shí)施例,還提供了一種系統(tǒng),包括:監(jiān)視器模塊,包括存儲指 令的計(jì)算機(jī)可讀存儲介質(zhì),該指令當(dāng)被執(zhí)行時使該系統(tǒng)根據(jù)一個或多個度量,確定由CPU 執(zhí)行的應(yīng)用的當(dāng)前性能;引擎模塊,包括存儲指令的計(jì)算機(jī)可讀存儲介質(zhì),該指令當(dāng)被執(zhí)行 時使該系統(tǒng)基于該當(dāng)前性能和在與該應(yīng)用相關(guān)聯(lián)的服務(wù)水平協(xié)議(SLA)中標(biāo)識的目標(biāo)性 能,動態(tài)地修改該CPU的工作頻率,而不考慮該CPU除所述應(yīng)用之外的工作負(fù)載。
【附圖說明】
[0008] 圖1是描繪了根據(jù)一些實(shí)施例的其中CPU工作頻率被自動調(diào)節(jié)的系統(tǒng)的框圖。
[0009] 圖2A至圖2B圖示了根據(jù)一些實(shí)施例的多個性能閾值和性能區(qū)域。
[0010] 圖3是圖示了根據(jù)一些實(shí)施例的自動調(diào)節(jié)CPU工作頻率的方法的流程圖。
[0011] 圖4是描繪了根據(jù)一些實(shí)施例的其中CPU工作頻率被自動調(diào)節(jié)的裝置的框圖。
【具體實(shí)施方式】
[0012] 以下描述是為了使得任何本領(lǐng)域技術(shù)人員能夠做出和使用所公開的實(shí)施例而給 出的,并且是在一個或多個特定應(yīng)用及其要求的上下文中提供的。對所公開的實(shí)施例的各 種修改對本領(lǐng)域技術(shù)人員將是顯而易見的,并且在此定義的一般原理在不脫離所公開的范 圍的情況下可被應(yīng)用于其他實(shí)施例和應(yīng)用。因此,當(dāng)前的一個或多個發(fā)明并非旨在與局限 于所示出的實(shí)施例,而是將根據(jù)與公開內(nèi)容一致的最廣范圍。
[0013] 在一些實(shí)施例中,提供了用于動態(tài)調(diào)節(jié)CPU(中央處理單元)或者其他處理器組件 的操作的系統(tǒng)、裝置和方法。這些調(diào)節(jié)的第一和主要的目標(biāo)是滿足由CPU所執(zhí)行的應(yīng)用或 服務(wù)的服務(wù)水平協(xié)議(SLA)的要求。次要目標(biāo)是減少由CPU所消耗的電能或功率的量。
[0014] 在這些實(shí)施例中,通過改變單元所操作于的頻率(即,其時鐘速率)或者供應(yīng)給單 元的電壓水平來調(diào)節(jié)CPU的操作。因此,CPU的工作頻率在有必要有助于滿足SLA要求時 可被增大,但是如果在應(yīng)用做得比SLA要求好的情況下可被減小。
[0015] 系統(tǒng)、裝置和/或方法的實(shí)現(xiàn)方式可因?qū)嵤├?。在一些?shí)施例中,在此描述的 功能被嵌入在計(jì)算設(shè)備的操作系統(tǒng)或者在該設(shè)備上執(zhí)行的服務(wù)、實(shí)用(utility)或者其他 程序中。例如,后者的實(shí)施例之一可以引起新的管理者的創(chuàng)建或者對由Linux?操作系統(tǒng) 所提供的高級配置和電源接口(ACPI)實(shí)用或者類似實(shí)用內(nèi)的現(xiàn)有管理者或者類似管理者 的修改?;蛘撸δ芸杀磺度朐谂c由CPU所執(zhí)行的其他處理并行執(zhí)行的單獨(dú)的程序內(nèi),乃至 被嵌入在被監(jiān)視以促進(jìn)滿足其相關(guān)聯(lián)的SLA的應(yīng)用內(nèi)。
[0016] 在一些實(shí)施例中,以多種方式中的任何方式來動態(tài)地調(diào)節(jié)CPU的工作頻率。例如, "最大化"或者"最小化"調(diào)節(jié)分別將使工作頻率立即變?yōu)樽畲蠡蛘咦钚 A硗猓?按比例增 大"或者"按比例減小"調(diào)節(jié)分別將使工作頻率被增大或者減小缺省量或者在將進(jìn)行調(diào)節(jié)時 指定的量。
[0017] 處理器組件的工作頻率的調(diào)節(jié)方式以及其被調(diào)節(jié)的程度取決于根據(jù)吞吐量、響應(yīng) 時間、延時和/或一些其他度量的與由處理器所執(zhí)行的應(yīng)用(或者服務(wù))的服務(wù)水平協(xié)議 (SLA)相比的該應(yīng)用(或者服務(wù))的當(dāng)前性能。例示性地,處理器的工作頻率在應(yīng)用的當(dāng)前 性能下降到目標(biāo)性能(例如,在SLA中標(biāo)識的性能水平)之下的情況下可被立即最大化,在 當(dāng)前性能僅滿足或者略微超過目標(biāo)性能的情況下可被稍微提高,并且在當(dāng)前性能大大超過 目標(biāo)性能的情況下可被減小。在一些情況下可以不進(jìn)行調(diào)節(jié)。
[0018] 在一些實(shí)施例中,為了確定要進(jìn)行哪個調(diào)節(jié)(如有的話)的目的而定義應(yīng)用性能 的多個閾值。例如,一個閾值可以與應(yīng)用的目標(biāo)性能(例如,每秒IOK事件(事件/秒)的 吞吐量、200KBps吞吐量、IOOms響應(yīng)時間)相匹配,另一閾值可被設(shè)置為目標(biāo)性能的110 %, 另一閾值可被設(shè)置為125%,諸如此類。閾值可被設(shè)置為小于目標(biāo)性能的100%。多個閾值 可被看作定義了各種性能區(qū)域,并且每個區(qū)域(或者每個閾值)在應(yīng)用的當(dāng)前性能水平與 該區(qū)域(或者閾值)相匹配時將使相關(guān)聯(lián)的調(diào)節(jié)應(yīng)用到CPU。可以按照任何周期性來測量 應(yīng)用的當(dāng)前性能;在一些實(shí)施例中,這一周期可以是十到二十秒的級別。
[0019] 調(diào)節(jié)還可以取決于正被調(diào)節(jié)的特定CPU。例如,不同CPU具有不同的最小和/或最 大工作頻率,并且調(diào)節(jié)因而可以在它們遇到相同或者類似工作負(fù)載時因處理器而異。作為 示例,考慮具有1200MHz的最小工作頻率、2001MHz的最大工作頻率以及間隔IOOMHz的八 個附加工作頻率水平(即,1300MHz、1400MHz,…,2000MHz)的例示性處理器或者CPU核心。 因此,使這一處理器的工作頻率按比例增大或者按比例減小可以使其增大或者減小一個或 多個水平(或者增大至最大或者減小至最?。?。其他CPU可具有更多或更少的工作頻率、不 同的最大值和最小值和/或其他差異。
[0020] 更進(jìn)一步地,對CPU的工作頻率的調(diào)節(jié)可以取決于CPU的工作負(fù)載的簡檔 (profile),或者至少取決于由應(yīng)用所給出的負(fù)載。例如,隨著時間,可以在一天中的不同時 間、在多個天、多個周等內(nèi)跟蹤工作負(fù)載。表示工作負(fù)載以示出相對高負(fù)載的時間段、相對 低負(fù)載的時間段、在高工作負(fù)載與低工作負(fù)載之間的轉(zhuǎn)換等的了解到的簡檔或者歷史簡檔 然后可被匯編。計(jì)劃的簡檔或者預(yù)測的簡檔可被從歷史簡檔得出以覆蓋未來時間段,并且 可被改變以考慮到某個或者某些重要事件,諸如新版本應(yīng)用的發(fā)布、新應(yīng)用特征的發(fā)布、暫 時無法訪問應(yīng)用(例如,為了維護(hù)或者更新),等等。
[0021] 任何類型的簡檔在性能閾值/區(qū)域的選擇期間都可以被應(yīng)用,和/或可以被用來 改變與閾值或區(qū)域相關(guān)聯(lián)的調(diào)節(jié)。例如,在增加負(fù)載或需求的預(yù)計(jì)或