關(guān)聯(lián)能量消耗與虛擬的制造方法
【專利摘要】本發(fā)明公開(kāi)關(guān)聯(lián)處理器和處理器核心能量消耗與任務(wù)(諸如虛擬機(jī))。各種事件使跟蹤記錄被寫(xiě)入到用于處理器的跟蹤緩沖器。讀取與使用處理器的處理器核心的任務(wù)關(guān)聯(lián)的標(biāo)識(shí)符。此外,還讀取與處理器核心的能量消耗關(guān)聯(lián)的一個(gè)或者多個(gè)值。響應(yīng)于事件,向跟蹤緩沖器存儲(chǔ)器寫(xiě)入與處理器核心的能量消耗關(guān)聯(lián)的一個(gè)或者多個(gè)值以及標(biāo)識(shí)符。
【專利說(shuō)明】關(guān)聯(lián)能量消耗與虛擬機(jī)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明主題的實(shí)施例總體涉及計(jì)算機(jī)領(lǐng)域,并且更具體地,涉及關(guān)聯(lián)在計(jì)算機(jī)上運(yùn)行的虛擬機(jī)或者其它任務(wù)的能量消耗。
【背景技術(shù)】
[0002]用于大型數(shù)據(jù)中心和云計(jì)算環(huán)境的運(yùn)營(yíng)成本的很大一部分和與數(shù)據(jù)中心或者云服務(wù)器關(guān)聯(lián)的能量成本有關(guān)。在這樣的環(huán)境中,可以指派虛擬機(jī)來(lái)代表用戶運(yùn)行任務(wù)。通常指派虛擬機(jī)在多核心系統(tǒng)的一個(gè)或者多個(gè)核心上運(yùn)行。數(shù)據(jù)中心或者云運(yùn)營(yíng)商可能希望針對(duì)虛擬機(jī)在處理器核心上運(yùn)行時(shí)消耗的能量向用戶開(kāi)賬單。然而目前沒(méi)有用于直接測(cè)量處理器核心消耗的能量的方式。作為結(jié)果,先前系統(tǒng)已經(jīng)使用各種模型來(lái)估計(jì)虛擬機(jī)的功率消耗。然而這樣的模型通常使用未必與能量消耗良好相關(guān)的基于性能的值。
【發(fā)明內(nèi)容】
[0003]公開(kāi)各種實(shí)施例,在這些實(shí)施例中確定用于任務(wù)(諸如虛擬機(jī))的能量消耗。各種事件使跟蹤記錄被寫(xiě)入到用于處理器的跟蹤緩沖器。讀取與使用處理器的處理器核心的任務(wù)關(guān)聯(lián)的標(biāo)識(shí)符。此外,還讀取與處理器核心的能量消耗關(guān)聯(lián)的一個(gè)或者多個(gè)值。響應(yīng)于事件,向跟蹤緩沖器存儲(chǔ)器寫(xiě)入與處理器核心的能量消耗關(guān)聯(lián)的一個(gè)或者多個(gè)值以及標(biāo)識(shí)符。
【專利附圖】
【附圖說(shuō)明】
[0004]可以通過(guò)參照附圖更好地理解本實(shí)施例并且使許多目的、特征和優(yōu)點(diǎn)為本領(lǐng)域技術(shù)人員所清楚。
[0005]圖1描繪根據(jù)實(shí)施例的用于關(guān)聯(lián)能量消耗與任務(wù)的系統(tǒng)。
[0006]圖2描繪根據(jù)實(shí)施例的小芯片(chiplet)。
[0007]圖3描繪在一些實(shí)施例中使用的跟蹤緩沖器記錄。
[0008]圖4是圖示用于關(guān)聯(lián)能量消耗與虛擬機(jī)的方法的流程圖。
[0009]圖5是圖示用于確定用于任務(wù)(諸如虛擬機(jī))的能量消耗的方法的流程圖。
[0010]圖6是圖示用于根據(jù)縮放因子調(diào)整能量消耗值的方法的流程圖。
【具體實(shí)施方式】
[0011]以下描述包括體現(xiàn)本發(fā)明主題的技術(shù)的示例性系統(tǒng)、方法、技術(shù)、指令序列和計(jì)算機(jī)程序產(chǎn)品。然而理解無(wú)這些具體細(xì)節(jié)仍然可以實(shí)現(xiàn)描述的實(shí)施例。例如雖然示例涉及關(guān)聯(lián)處理器核心的能量消耗與虛擬機(jī),但是處理器核心的能量消耗可以與其它任務(wù)或者任務(wù)組關(guān)聯(lián)。在其它實(shí)例中,并未具體示出眾所周知的指令示例、協(xié)議、結(jié)構(gòu)和技術(shù)以免模糊描述。
[0012]一般而言,實(shí)施例提供一種用于關(guān)聯(lián)處理器核心的能量消耗與在處理器核心上運(yùn)行的任務(wù)(例如虛擬機(jī))的手段。各種傳感器點(diǎn)檢測(cè)或者測(cè)量與處理器核心的能量消耗關(guān)聯(lián)的活動(dòng),這些處理器核心代表在系統(tǒng)上運(yùn)行的虛擬機(jī)執(zhí)行指令并且訪問(wèn)存儲(chǔ)器。向處理器核心提供用于在核心上運(yùn)行的虛擬機(jī)的標(biāo)識(shí)符。多種事件可以觸發(fā)向存儲(chǔ)器寫(xiě)入跟蹤緩沖器記錄,其中跟蹤緩沖器包括與核心和在核心上運(yùn)行的虛擬機(jī)在寫(xiě)入跟蹤緩沖器記錄時(shí)的能量消耗關(guān)聯(lián)的數(shù)據(jù)。可以聚合并且分析跟蹤緩沖器中的記錄以確定與在系統(tǒng)上運(yùn)行的虛擬機(jī)關(guān)聯(lián)的能量消耗。
[0013]圖1描繪根據(jù)實(shí)施例的用于關(guān)聯(lián)能量消耗與任務(wù)的系統(tǒng)100。在一些實(shí)施例中,系統(tǒng)10包括處理器102、存儲(chǔ)器130和管理程序(hypervisor) 140并且可以可選地包括能量管理單元150。
[0014]處理器102是多核心處理器,其中在小芯片104中提供處理器核心。雖然在圖1中圖示三個(gè)小芯片(例如小芯片104AU04B和104C),但是從本公開(kāi)內(nèi)容受益的本領(lǐng)域技術(shù)人員將理解處理器102可以具有更多或者更少小芯片104。除了小芯片104之外,處理器102還包括跟蹤存儲(chǔ)器110和功率管理單元120。
[0015]小芯片104包括處理器核心、存儲(chǔ)器(例如L2和L3緩存)和用于處理器核心的支持邏輯單元。小芯片104也包括功率代理(power proxy)單元106和任務(wù)標(biāo)識(shí)(ID)寄存器108。任務(wù)ID寄存器108是專用寄存器,該專用寄存器存儲(chǔ)用于在小芯片104的處理器核心上執(zhí)行的任務(wù)的標(biāo)識(shí)符。功率代理106收集小芯片104的處理器核心的能量消耗并且生成與該能量消耗關(guān)聯(lián)的數(shù)據(jù)。某些事件(諸如定時(shí)器到期、電壓改變等)使功率代理106向處理器102的跟蹤存儲(chǔ)器110中的與小芯片關(guān)聯(lián)的小芯片隊(duì)列112寫(xiě)入跟蹤緩沖器記錄114。跟蹤存儲(chǔ)器110包含用于處理器102上的每個(gè)小芯片的小芯片隊(duì)列112。跟蹤緩沖器記錄114包括和與小芯片關(guān)聯(lián)的能量消耗有關(guān)的各種數(shù)據(jù)元素。以下參照?qǐng)D3提供關(guān)于跟蹤緩沖記錄114的數(shù)據(jù)元素的更多細(xì)節(jié)。在一些實(shí)施例中,小芯片隊(duì)列112是被配置用于存儲(chǔ)八個(gè)跟蹤緩沖器記錄114的圓形隊(duì)列。在小芯片隊(duì)列112中維持的跟蹤緩沖器記錄114的數(shù)目可以根據(jù)跟蹤存儲(chǔ)器110的大小和處理器102上的小芯片數(shù)目而變化。希望跟蹤緩沖器記錄的數(shù)目大到足以避免數(shù)據(jù)在它被功率管理單元120處理之前被重寫(xiě)。跟蹤存儲(chǔ)器110可以如圖1中所示是處理器102的一部分。從公開(kāi)內(nèi)容受益的本領(lǐng)域技術(shù)人員將理解跟蹤存儲(chǔ)器110可以位于處理器102可訪問(wèn)的其它部件上。
[0016]功率管理單元120從小芯片隊(duì)列112定期地讀取跟蹤記錄114并且處理數(shù)據(jù)使得來(lái)自與相同任務(wù)ID關(guān)聯(lián)的跟蹤記錄114的數(shù)據(jù)被聚合在一起。在一些實(shí)施例中,功率管理單元每32毫秒讀取并且處理跟蹤記錄。希望選擇如下間隔,該間隔避免數(shù)據(jù)在功率管理單元120可以處理隊(duì)列112中的跟蹤記錄之前在該跟蹤記錄中被重寫(xiě)。隨著處理跟蹤記錄,功率管理單元遞增用于隊(duì)列的隊(duì)列指針以指向下一跟蹤記錄。功率管理單元120然后向管理程序140可訪問(wèn)的存儲(chǔ)器130中的能量陣列132添加按照任務(wù)ID聚合的數(shù)據(jù)。能量陣列132維持用于任務(wù)的能量消耗數(shù)據(jù)并且在一些實(shí)施例中根據(jù)任務(wù)標(biāo)識(shí)符來(lái)編索引。例如在一些實(shí)施例中,可以通過(guò)包括虛擬機(jī)標(biāo)識(shí)符的任務(wù)ID對(duì)能量陣列132編索引。功率管理單元120通過(guò)使用任務(wù)標(biāo)識(shí)符作為進(jìn)入能量陣列中的索引將用于任務(wù)的當(dāng)前處理的能量消耗值與已經(jīng)存儲(chǔ)于能量陣列132中的值相加來(lái)積累能量消耗值。
[0017]管理程序140管理虛擬化的操作環(huán)境并且提供用于系統(tǒng)100的虛擬化的資源(例如虛擬化的硬件資源)。管理程序140管理在系統(tǒng)100的各種計(jì)算機(jī)上執(zhí)行的虛擬機(jī)(也稱為分區(qū))。虛擬機(jī)在虛擬機(jī)內(nèi)運(yùn)行操作系統(tǒng)和應(yīng)用。在一個(gè)虛擬機(jī)上運(yùn)行的操作系統(tǒng)和應(yīng)用可以完全不同于在其它虛擬機(jī)上運(yùn)行的操作系統(tǒng)和應(yīng)用。例如一個(gè)虛擬機(jī)可以在AIX操作系統(tǒng)上運(yùn)行記賬系統(tǒng),而另一虛擬機(jī)可以在Linux操作系統(tǒng)上運(yùn)行文件服務(wù)器應(yīng)用。備選地,虛擬機(jī)可以運(yùn)行與另一虛擬機(jī)相同的操作系統(tǒng)和應(yīng)用并且在另一虛擬機(jī)中的故障或者超負(fù)荷的情況下用作備用。從虛擬機(jī)的觀點(diǎn)來(lái)看,虛擬機(jī)表現(xiàn)為實(shí)際上控制下層硬件的獨(dú)立計(jì)算機(jī),每個(gè)虛擬機(jī)與其它虛擬機(jī)共享硬件資源。
[0018]在一些實(shí)現(xiàn)方式中,在管理程序140調(diào)度虛擬機(jī)以在處理器核心上運(yùn)行時(shí),管理程序140向用于處理器核心的小芯片104的任務(wù)ID寄存器108寫(xiě)入與虛擬機(jī)關(guān)聯(lián)的虛擬機(jī)標(biāo)識(shí)符,該處理器核心將執(zhí)行虛擬機(jī)。功率代理106從任務(wù)ID寄存器108讀取虛擬機(jī)標(biāo)識(shí)符并且在用于小芯片104的能量消耗值被寫(xiě)入到跟蹤存儲(chǔ)器110中的小芯片隊(duì)列112時(shí)在跟蹤緩沖器記錄114中存儲(chǔ)虛擬機(jī)標(biāo)識(shí)符。
[0019]如圖1中所示,在一些實(shí)施例中,功率管理單元120是在處理器102上提供的片上控制器。在備選實(shí)施例中,功率管理單元120可以與處理器102分離。在更多備選實(shí)施例中,功率管理單元120提供的與處理跟蹤存儲(chǔ)器110中的跟蹤記錄114有關(guān)的功能可以由管理程序140執(zhí)行。在這樣的實(shí)施例中,管理程序140直接訪問(wèn)跟蹤存儲(chǔ)器110以處理記錄。
[0020]能量管理單元150跨越多個(gè)計(jì)算系統(tǒng)提供能量管理功能。例如能量管理單元150可以提供用于數(shù)據(jù)中心或者用于支持云計(jì)算環(huán)境的計(jì)算系統(tǒng)的能量管理功能。能量管理單兀的不例是來(lái)自IBM公司的IBM Systems Director Active Energy Manager。在一些實(shí)施例中,能量管理單元15定期地查詢管理程序140以獲得與管理程序管理的任務(wù)(例如虛擬機(jī))關(guān)聯(lián)的能量消耗數(shù)據(jù)。
[0021]圖2提供關(guān)于根據(jù)實(shí)施例的小芯片104的更多細(xì)節(jié)。小芯片104包括處理器核心202、L2緩存存儲(chǔ)器204和L3緩存存儲(chǔ)器206。處理器核心202、L2緩存存儲(chǔ)器204和L3緩存存儲(chǔ)器206各自包括一個(gè)或者多個(gè)活動(dòng)感測(cè)點(diǎn)208、210和212?;顒?dòng)感測(cè)點(diǎn)檢測(cè)可以與部件的能量消耗相關(guān)的事件。例如活動(dòng)感測(cè)點(diǎn)208可以檢測(cè)與處理器核心功能(諸如加載和存儲(chǔ)操作、指令分派、定點(diǎn)運(yùn)算、浮點(diǎn)運(yùn)算和其它處理器核心功能)關(guān)聯(lián)的事件?;顒?dòng)感測(cè)點(diǎn)210和212可以檢測(cè)與L2和L3緩存讀取和寫(xiě)入關(guān)聯(lián)的事件。這些事件中的每個(gè)事件具有關(guān)聯(lián)的能量消耗值。在活動(dòng)感測(cè)點(diǎn)208、210和212檢測(cè)到事件時(shí),功率代理106可以遞增與事件關(guān)聯(lián)的事件計(jì)數(shù)器216。在一些實(shí)施例中,功率代理106可以使用活動(dòng)權(quán)值214對(duì)在感測(cè)點(diǎn)208、210和212檢測(cè)的各種活動(dòng)加權(quán)。活動(dòng)權(quán)值214根據(jù)與特定事件關(guān)聯(lián)的能量消耗相對(duì)于其它事件調(diào)整事件計(jì)數(shù)器216。例如可以基于浮點(diǎn)運(yùn)算比緩存查找使用更多功率向與浮點(diǎn)事件關(guān)聯(lián)的計(jì)數(shù)器比與緩存查找事件關(guān)聯(lián)的計(jì)數(shù)器加權(quán)更多。
[0022]活動(dòng)權(quán)值214可以可配置。例如可以在管理程序140或者配置工具可以寫(xiě)入的存儲(chǔ)器或者寄存器中維持活動(dòng)權(quán)值214。
[0023]一般而言,可以通過(guò)對(duì)建模不同工作量以及回歸測(cè)試來(lái)確定事件計(jì)數(shù)器216中計(jì)數(shù)的事件和用于活動(dòng)權(quán)值214的具體值以確定如下活動(dòng)和加權(quán)的組合,這些活動(dòng)和加權(quán)提供與測(cè)試的系統(tǒng)的實(shí)際能量消耗的最強(qiáng)相關(guān)性。在一些實(shí)施例中,事件計(jì)數(shù)器可以與分派的指令、完成的指令、執(zhí)行寄存器文件訪問(wèn)、執(zhí)行流水線問(wèn)題類型、指令提取單元事件、力口載-存儲(chǔ)單元緩存事件、加載-存儲(chǔ)單元D-ERAT(有效到實(shí)際數(shù)據(jù)地址轉(zhuǎn)換)事件、加載-存儲(chǔ)單元預(yù)提取事件、L2緩存讀取/寫(xiě)入和L3緩存讀取/寫(xiě)入中的一項(xiàng)或者多項(xiàng)的各種組合關(guān)聯(lián)。從公開(kāi)內(nèi)容受益的本領(lǐng)域技術(shù)人員將理解可以對(duì)其它事件計(jì)數(shù)。
[0024]以上描述的事件可以根據(jù)電壓源而與各種電壓域關(guān)聯(lián)。例如在一些實(shí)施例中,Vdd電壓域包括與向核心和緩存邏輯供電的電壓軌關(guān)聯(lián)的事件,而Vcs電壓域包括與向L2和L3緩存供電的Vcs軌關(guān)聯(lián)的事件。Vdd和Vcs電壓二者可以由VRM (電壓調(diào)節(jié)器模塊)控制并且可以隨時(shí)間變化。從公開(kāi)內(nèi)容受益的本領(lǐng)域技術(shù)人員將理解存在的電壓域數(shù)目和類型可以變化。
[0025]活動(dòng)計(jì)數(shù)器220代表與特定電壓域關(guān)聯(lián)的事件的加權(quán)求和。因此,對(duì)于Vdd電壓域:
[0026]Vdd 活動(dòng)計(jì)數(shù)=event_counterl*event_weightl+…+
event_counterN*eventweightN
[0027]其中在計(jì)算中包括的事件計(jì)數(shù)器是與Vdd電壓關(guān)聯(lián)的那些事件??梢葬槍?duì)與其它電壓域(例如Vcs電壓域)關(guān)聯(lián)的事件計(jì)算相似的活動(dòng)計(jì)數(shù)。
[0028]在一些實(shí)施例中,小芯片104包括P狀態(tài)(功率狀態(tài))改變寄存器218。P狀態(tài)改變寄存器218提供一種用于管理程序140用信號(hào)通知電壓改變點(diǎn)的機(jī)制。這樣的改變可以使功率代理106向跟蹤存儲(chǔ)器110中的與小芯片關(guān)聯(lián)的小芯片隊(duì)列112寫(xiě)入新的跟蹤緩沖器記錄元素114。
[0029]圖3描繪用于跟蹤緩沖器記錄114的示例數(shù)據(jù)結(jié)構(gòu)。在一些實(shí)施例中,跟蹤緩沖器記錄114中的字段包括間隔定時(shí)器302、任務(wù)ID304、空閑狀態(tài)306、一個(gè)或者多個(gè)活動(dòng)計(jì)數(shù)器308、存儲(chǔ)器活動(dòng)計(jì)數(shù)器310、平均頻率計(jì)數(shù)312、內(nèi)部VRM (電壓調(diào)節(jié)器模塊)電壓314、外部VRM電壓316、事件ID318、核心溫度320和序列號(hào)322。
[0030]間隔定時(shí)器302存儲(chǔ)如下值,該值代表自從功率代理上次寫(xiě)入跟蹤緩沖器記錄114起的時(shí)間間隔。
[0031]任務(wù)ID304是在寫(xiě)入跟蹤緩沖器記錄114時(shí)在核心上運(yùn)行的任務(wù)的任務(wù)ID。可以從任務(wù)ID寄存器108獲得這一個(gè)值。
[0032]空閑狀態(tài)306是如下值,該值代表處理器核心在寫(xiě)入跟蹤緩沖器記錄114時(shí)的空閑狀態(tài)。在一些實(shí)施例中,空閑狀態(tài)306的值指示用于處理器核心的非空閑狀態(tài)、瞌睡狀態(tài)(nap state)、睡眠狀態(tài)、“費(fèi)勁(winkle)”狀態(tài)(即更深度睡眠)或者喚醒狀態(tài)。
[0033]活動(dòng)計(jì)數(shù)器308存儲(chǔ)用于由功率代理106維持的一個(gè)或者多個(gè)活動(dòng)計(jì)數(shù)器220的值。如以上描述的那樣,在一些實(shí)施例中,可以將與特定電壓域關(guān)聯(lián)的計(jì)數(shù)器求和成一個(gè)元素??梢韵蚧顒?dòng)計(jì)數(shù)器308寫(xiě)入用于與電壓域關(guān)聯(lián)的各種活動(dòng)計(jì)數(shù)器的計(jì)算和加權(quán)的求和。存儲(chǔ)器活動(dòng)計(jì)數(shù)器310是與由處理器核心執(zhí)行的存儲(chǔ)器讀取和寫(xiě)入關(guān)聯(lián)的計(jì)數(shù)器。
[0034]平均頻率計(jì)數(shù)312是處理器核心在測(cè)量的時(shí)間間隔內(nèi)的平均頻率。系統(tǒng)的各種部件可以改變電壓和頻率二者。例如在小芯片104上的性能管理程序或者安全管理程序可以請(qǐng)求電壓或者頻率改變。此外,管理程序140可以請(qǐng)求電壓或者頻率改變。如果頻率已經(jīng)在測(cè)量的間隔內(nèi)改變,則使用平均頻率計(jì)數(shù)在與瞬時(shí)或者當(dāng)前頻率比較時(shí)可以提供更準(zhǔn)確能量消耗測(cè)量。
[0035]內(nèi)部VRM (電壓調(diào)節(jié)器模塊)電壓314是用于處理器102的內(nèi)部VRM的電壓值。內(nèi)部VRM控制用于處理器102上的部件的電壓。[0036]外部VRM電壓316是用于外部VRM的電壓值。外部VRM控制向處理器102供應(yīng)的電壓。
[0037]事件ID318是如下值,該值代表觸發(fā)功率代理單元106寫(xiě)入跟蹤記錄114的事件。在一些實(shí)施例中,事件可以包括定時(shí)器到期、任務(wù)ID寄存器的值改變(這指示由處理器核心執(zhí)行的任務(wù)已經(jīng)改變)、進(jìn)入空閑狀態(tài)、退出空閑狀態(tài)、內(nèi)部或者外部電壓改變或者內(nèi)部或者外部VRM狀態(tài)改變。從公開(kāi)內(nèi)容受益的本領(lǐng)域技術(shù)人員將理解其它事件可以使功率代理單元106向小芯片隊(duì)列112寫(xiě)入新跟蹤緩沖器記錄114。在事件指示值已經(jīng)改變(例如任務(wù)ID改變、電壓改變等)的情況下,將在改變出現(xiàn)之前使用該值來(lái)寫(xiě)入跟蹤記錄114。
[0038]核心溫度320是如下值,該值代表由用于處理器核心的溫度傳感器提供的溫度。溫度與處理器和有關(guān)部件的能量消耗良好相關(guān)并且可以用作輸入以確定估計(jì)的功率消耗。
[0039]序列號(hào)322是如下值,該值指示跟蹤緩沖器記錄114的序列號(hào),并且該序列號(hào)32可以由功率管理單元用來(lái)檢測(cè)數(shù)據(jù)丟失或者無(wú)效記錄。在一些實(shí)施例中,序列號(hào)322包括無(wú)效位,該無(wú)效位指示隊(duì)列中的記錄是否包含有效數(shù)據(jù)或者可用于寫(xiě)入。
[0040]以上描述的跟蹤緩沖器記錄元素是在一個(gè)示例實(shí)施例中包括的元素的示例。從公開(kāi)內(nèi)容受益的本領(lǐng)域技術(shù)人員將理解并非以上所有元素將在每個(gè)實(shí)施例中存在并且可以在備選實(shí)施例中在跟蹤緩沖器記錄中包括其它元素。
[0041]圖4是圖示用于關(guān)聯(lián)能量消耗與任務(wù)(諸如虛擬機(jī))的方法400的流程圖。該方法始于塊402,其中執(zhí)行該方法的系統(tǒng)或者部件確定事件已經(jīng)出現(xiàn)。如以上所言,事件可以是定時(shí)器到期、任務(wù)ID寄存器的值改變(這指示處理器核心執(zhí)行的任務(wù)已經(jīng)改變)、進(jìn)入空閑狀態(tài)、退出空閑狀態(tài)、內(nèi)部或者外部電壓改變或者內(nèi)部或者外部VRM狀態(tài)改變中的任一項(xiàng)。
[0042]可以響應(yīng)于在塊402檢測(cè)到事件來(lái)執(zhí)行塊404-408。事件可以是定時(shí)器到期、與在處理器核心上運(yùn)行的任務(wù)關(guān)聯(lián)的任務(wù)ID的值改變(因此指示處理器核心執(zhí)行的任務(wù)已經(jīng)改變)、進(jìn)入空閑狀態(tài)、退出空閑狀態(tài)、內(nèi)部或者外部電壓改變或者內(nèi)部或者外部VRM狀態(tài)改變。從公開(kāi)內(nèi)容受益的本領(lǐng)域技術(shù)人員將理解可以檢測(cè)其它事件。
[0043]在塊404,讀取與在處理器核心上執(zhí)行的任務(wù)關(guān)聯(lián)的任務(wù)標(biāo)識(shí)符。在一些實(shí)施例中,在向處理器核心指派任務(wù)時(shí)從寄存器讀取管理程序或者操作系統(tǒng)寫(xiě)入的任務(wù)標(biāo)識(shí)符。任務(wù)標(biāo)識(shí)符可以是任務(wù)專屬標(biāo)識(shí)符,諸如虛擬機(jī)標(biāo)識(shí)符或者進(jìn)程標(biāo)識(shí)符。備選地,任務(wù)標(biāo)識(shí)符可以與出于確定能量消耗的目的而將要分組在一起的一組任務(wù)關(guān)聯(lián)。
[0044]在塊406,確定代表自從功率代理單元寫(xiě)入的上個(gè)跟蹤記錄起的能量使用的能量使用值。如以上討論的那樣,這樣的值可以包括代表能量消耗事件的活動(dòng)計(jì)數(shù)器,也可以確定電壓值和頻率值。
[0045]在塊408,向跟蹤緩沖器中的小芯片隊(duì)列寫(xiě)入在塊406確定的能量使用值。在一些實(shí)施例中,寫(xiě)入跟蹤緩沖器記錄114 (圖1和3)。在預(yù)期向跟蹤緩沖器中的小芯片隊(duì)列的下一寫(xiě)入時(shí)推進(jìn)用于小芯片隊(duì)列的指針。
[0046]可以與塊402-408獨(dú)立地執(zhí)行塊410。在一些實(shí)施例中,可以以周期性的間隔執(zhí)行塊410。例如可以每250微秒執(zhí)行塊410。在塊410,從跟蹤緩沖器讀取一個(gè)或者多個(gè)記錄。在一些實(shí)施例中,處理每個(gè)可用記錄以根據(jù)記錄中的數(shù)據(jù)確定由記錄代表的總能量消耗。例如可以將用于記錄中的與特定電壓域關(guān)聯(lián)的活動(dòng)計(jì)數(shù)器中的每個(gè)活動(dòng)計(jì)數(shù)器的能量消耗求和以確定與記錄關(guān)聯(lián)的總能量消耗??梢曰谟涗浿械碾妷骸囟群皖l率值調(diào)整每個(gè)電壓域活動(dòng)計(jì)數(shù)器對(duì)記錄代表的總能量消耗的貢獻(xiàn)。例如在一些實(shí)施例中,可以根據(jù)下式確定用于電壓域Vdom的跟蹤記錄能量:
[0047]
【權(quán)利要求】
1.一種方法,包括: 接收與使用處理器核心的任務(wù)關(guān)聯(lián)的標(biāo)識(shí)符; 讀取與所述處理器核心的能量消耗關(guān)聯(lián)的一個(gè)或者多個(gè)值; 檢測(cè)事件的出現(xiàn);并且 響應(yīng)于檢測(cè)所述事件,向跟蹤存儲(chǔ)器寫(xiě)入與所述處理器核心的所述能量消耗關(guān)聯(lián)的所述一個(gè)或者多個(gè)值以及所述標(biāo)識(shí)符。
2.根據(jù)權(quán)利要求1所述的方法,其中接收與使用所述處理器核心的所述任務(wù)關(guān)聯(lián)的所述標(biāo)識(shí)符包括接收與虛擬機(jī)關(guān)聯(lián)的標(biāo)識(shí)符。
3.根據(jù)權(quán)利要求1所述的方法,其中檢測(cè)所述事件的出現(xiàn)包括檢測(cè)定時(shí)器到期、用于所述處理器核心的電壓中的改變、用于所述處理器核心的頻率中的改變、用于所述處理器核心的功率狀態(tài)中的改變或者與使用所述處理器核心的所述任務(wù)關(guān)聯(lián)的所述標(biāo)識(shí)符中的改變中的一項(xiàng)或者多項(xiàng)。
4.根據(jù)權(quán)利要求1所述的方法,還包括: 從所述跟蹤存儲(chǔ)器讀取一個(gè)或者多個(gè)記錄;并且 針對(duì)與使用所述處理器核心的所述任務(wù)關(guān)聯(lián)的每個(gè)標(biāo)識(shí)符,確定用于所述任務(wù)的能量消耗值。
5.根據(jù)權(quán)利要求4所述的方法,還包括: 至少部分基于所述跟蹤存儲(chǔ)器中的一個(gè)或者多個(gè)記錄確定用于處理器的估計(jì)的功率消耗值; 基于所述估計(jì)的功率消耗值和用于所述處理器的實(shí)際功率消耗值確定縮放因子;并且 至少部分基于所述縮放因子縮放用于所述任務(wù)的所述能量消耗值。
6.根據(jù)權(quán)利要求1所述的方法,其中讀取與所述處理器核心的能量消耗關(guān)聯(lián)的一個(gè)或者多個(gè)值包括讀取用于耦合到所述處理器核心的L2緩存、L3緩存中的一個(gè)或者多個(gè)緩存的一個(gè)或者多個(gè)能量消耗值。
7.根據(jù)權(quán)利要求1所述的方法,還包括: 將加權(quán)應(yīng)用于與所述處理器核心的能量消耗關(guān)聯(lián)的所述一個(gè)或者多個(gè)值中的單獨(dú)值。
8.一種處理器,包括: 多個(gè)小芯片,其中每個(gè)小芯片包括: 處理器核心;以及 功率代理單元,所述功率代理單元被配置用于: 讀取與使用處理器核心的任務(wù)關(guān)聯(lián)的標(biāo)識(shí)符, 讀取與所述處理器核心的能量消耗關(guān)聯(lián)的一個(gè)或者多個(gè)值, 檢測(cè)事件的出現(xiàn),并且 響應(yīng)于所述事件,向跟蹤緩沖器寫(xiě)入與所述處理器核心的所述能量消耗關(guān)聯(lián)的所述一個(gè)或者多個(gè)值以及所述標(biāo)識(shí)符。
9.根據(jù)權(quán)利要求8所述的處理器,還包括存儲(chǔ)器,其中在所述存儲(chǔ)器中維持所述跟蹤緩沖器。
10.根據(jù)權(quán)利要求8所述的處理器,還包括用于存儲(chǔ)與使用所述處理器核心的所述任務(wù)關(guān)聯(lián)的所述標(biāo)識(shí)符的任務(wù)標(biāo)識(shí)寄存器。
11.根據(jù)權(quán)利要求8所述的處理器,其中所述事件包括定時(shí)器到期、用于所述處理器核心的電壓中改變、用于所述處理器核心的頻率中的改變、用于所述處理器核心的功率狀態(tài)中的改變或者與使用所述處理器核心的所述任務(wù)關(guān)聯(lián)的所述標(biāo)識(shí)符中的改變中的一項(xiàng)或者多項(xiàng)。
12.根據(jù)權(quán)利要求8所述的處理器,還包括:功率管理單元,被配置用于: 從所述跟蹤緩沖器讀取一個(gè)或者多個(gè)記錄;并且 針對(duì)與使用所述處理器核心的所述任務(wù)關(guān)聯(lián)的每個(gè)標(biāo)識(shí)符,確定用于所述任務(wù)的能量消耗值。
13.根據(jù)權(quán)利要求8所述的處理器,其中每個(gè)小芯片包括耦合到所述處理器核心的至少一個(gè)緩存,并且其中所述功率代理單元還被配置用于讀取用于所述至少一個(gè)緩存的一個(gè)或者多個(gè)能量消耗值并且向所述跟蹤緩沖器寫(xiě)入所述一個(gè)或者多個(gè)能量消耗值。
14.根據(jù)權(quán)利要求8所述的處理器,其中每個(gè)小芯片包括: 一個(gè)或者多個(gè)活動(dòng)計(jì)數(shù)器,用于存儲(chǔ)所述能量消耗值;以及 一個(gè)或者多個(gè)活動(dòng)權(quán)值寄存器,用于存儲(chǔ)與所述一個(gè)或者多個(gè)活動(dòng)計(jì)數(shù)器關(guān)聯(lián)的加權(quán); 其中所述功率代理單元還被配置用于將所述加權(quán)應(yīng)用于與所述處理器核心的能量消耗關(guān)聯(lián)的所述一個(gè)或者多個(gè)值。
15.一種裝置,包括: 處理器,所述處理器具有一個(gè)或者多個(gè)存儲(chǔ)器,所述一個(gè)或者多個(gè)存儲(chǔ)器在其中包含計(jì)算機(jī)可用程序代碼,所述計(jì)算機(jī)可用程序代碼包括如下計(jì)算機(jī)可用程序代碼,被配置用于: 讀取與所述多個(gè)處理器核心中的處理器核心的能量消耗關(guān)聯(lián)的一個(gè)或者多個(gè)值; 檢測(cè)事件的出現(xiàn);并且 響應(yīng)于所述事件,向跟蹤存儲(chǔ)器寫(xiě)入與所述處理器核心的所述能量消耗關(guān)聯(lián)的所述一個(gè)或者多個(gè)值以及所述標(biāo)識(shí)符。
16.根據(jù)權(quán)利要求15所述的裝置,其中被配置用于接收與使用所述處理器核心的所述任務(wù)關(guān)聯(lián)的所述標(biāo)識(shí)符的所述計(jì)算機(jī)可用程序代碼包括被配置用于接收與虛擬機(jī)關(guān)聯(lián)的標(biāo)識(shí)符的計(jì)算機(jī)可用程序代碼。
17.根據(jù)權(quán)利要求15所述的裝置,其中被配置用于檢測(cè)所述事件的出現(xiàn)的所述計(jì)算機(jī)可用程序代碼包括被配置用于檢測(cè)定時(shí)器到期、用于所述處理器核心的電壓中的改變、用于所述處理器核心的頻率中改變、用于所述處理器核心的功率狀態(tài)中改變或者與使用所述處理器核心的所述任務(wù)關(guān)聯(lián)的所述標(biāo)識(shí)符中的改變中的一項(xiàng)或者多項(xiàng)的計(jì)算機(jī)可用程序代碼。
18.根據(jù)權(quán)利要求15所述的裝置,其中所述計(jì)算機(jī)可用程序代碼還被配置用于: 將加權(quán)應(yīng)用于與所述處理器核心的能量消耗關(guān)聯(lián)的所述一個(gè)或者多個(gè)值中的單獨(dú)值。
【文檔編號(hào)】G06F11/36GK103838668SQ201310594796
【公開(kāi)日】2014年6月4日 申請(qǐng)日期:2013年11月21日 優(yōu)先權(quán)日:2012年11月27日
【發(fā)明者】B·布羅克, T·格洛克勒, C·R·勒夫格, K·拉加瑪尼, G·S·斯蒂爾, M·S·艾倫-韋爾 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司