專利名稱:使用處理器硬件反饋機(jī)制來選擇最佳處理器性能水平的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明的實(shí)施例概要地涉及平臺(tái)的功率管理,更具體地,涉及使 用硬件反饋的自適應(yīng)功率管理策略。
背景技術(shù):
存在多種平臺(tái)功率管理機(jī)制。現(xiàn)有的方法依賴于基于處理器利用 率來調(diào)整處理器頻率。在使用自適應(yīng)功率管理策略的計(jì)算機(jī)系統(tǒng)中,
處理器的性能狀態(tài)(P-State)基于需要進(jìn)行調(diào)整。當(dāng)處理器利用率降 低時(shí),處理器可轉(zhuǎn)換到較低的性能狀態(tài)以保存功率。當(dāng)處理器利用率 增加時(shí),處理器可轉(zhuǎn)換到較高的性能狀態(tài),并且會(huì)消耗較多功率。在 很多操作系統(tǒng)中,目標(biāo)性能水平或P-State選擇是基于處理器利用率和 由使用IA32一APERF和IA32一MPERF機(jī)器狀態(tài)寄存器(MSR)的GV3 硬件反饋確定的有效P-State的組合。在GV3硬件反饋中返回的 IA32_APERF/IA32_MPERF比率通過將實(shí)際頻率時(shí)鐘計(jì)數(shù)除以在核執(zhí) 行時(shí)(處于COC-state)的最大頻率時(shí)鐘計(jì)數(shù)來提供上次統(tǒng)計(jì)周期內(nèi) 的有效P-State 。
在大多數(shù)處理器中,例如在可以從英特爾公司獲得的處理器中, 這些P-State在處理器中的多個(gè)核中是聯(lián)動(dòng)的(coordinated)。如果一 個(gè)核100%繁忙并且選擇在最高頻率運(yùn)行,則同一個(gè)處理器中的其它 核也在較高頻率運(yùn)行。因?yàn)楦鱾€(gè)核是聯(lián)動(dòng)的,所以由IA32一APERF和 IA32_MPERF MSR提供的GCV硬件反饋可以進(jìn)行組合以尋找到該核 的有效頻率,而不是僅僅使用上一次的P-State,從而更準(zhǔn)確地選擇新 的目標(biāo)P陽(yáng)State
發(fā)明內(nèi)容
本發(fā)明提供一種用于選擇平臺(tái)上的處理器狀態(tài)的系統(tǒng),包括具 有用于提供與當(dāng)前的處理器頻率、處理器狀態(tài)和所述處理器的繁忙時(shí) 間百分比相關(guān)的硬件反饋的電路的處理器;用于基于利用處理器停滯 信息進(jìn)行調(diào)整的所述反饋來更新所述處理器狀態(tài)的部件。
本發(fā)明還提供一種用于選擇平臺(tái)上的處理器狀態(tài)的方法,包括 從所述平臺(tái)上的處理器接收與當(dāng)前的處理器頻率、處理器狀態(tài)和所述 處理器的繁忙時(shí)間百分比相關(guān)的硬件反饋;基于利用處理器停滯信息 進(jìn)行調(diào)整的所述反饋來更新所述處理器狀態(tài)。
本發(fā)明還提供一種用于選擇平臺(tái)上的處理器狀態(tài)的機(jī)器可讀存 儲(chǔ)介質(zhì),其中存儲(chǔ)有指令,所述指令在機(jī)器上執(zhí)行時(shí)使所述機(jī)器從 所述平臺(tái)上的處理器接收與當(dāng)前的處理器頻率、處理器狀態(tài)和所述處 理器的繁忙時(shí)間百分比相關(guān)的硬件反饋;基于利用處理器停滯信息進(jìn)
行調(diào)整的所述反饋來更新所述處理器狀態(tài)。
通過以下對(duì)本發(fā)明的詳細(xì)描述,本發(fā)明的特征和優(yōu)點(diǎn)將變得顯而 易見,附圖中
圖1是示出根據(jù)本發(fā)明的實(shí)施例用于優(yōu)化處理器的P-State的示范 性方法的流程圖2A-B是示出來自使用本發(fā)明的實(shí)施例的早期試驗(yàn)的經(jīng)驗(yàn)數(shù)據(jù) 的表格;以及
圖3是其上可實(shí)現(xiàn)本發(fā)明的實(shí)施例的示范性系統(tǒng)的框圖。
具體實(shí)施例方式
本發(fā)明的實(shí)施例是涉及使用硬件反饋來選擇最佳處理器頻率并 降^f氐功率/瓦特的自適應(yīng)功率管理的系統(tǒng)和方法。在至少一個(gè)實(shí)施例 中,本發(fā)明旨在基于為處理器停滯行為(stall behavior)調(diào)整的硬件反 饋來優(yōu)化處理器頻率和功率/瓦特使用。當(dāng)由于存儲(chǔ)器訪問、總線活動(dòng) 及諸如此類而導(dǎo)致處理器停滯時(shí),反饋會(huì)顯得較低,即,
8APERF/MPERF的比率將會(huì)較低。這將導(dǎo)致OS為處理器選擇較低的 P-State,由此將導(dǎo)致額外的功率節(jié)約且對(duì)性能幾乎沒有影響。在一些 實(shí)施例中,P-State可以通過位于處理器內(nèi)部或外部的電路、固件、或 位于OS外部的其它服務(wù)來進(jìn)行更新。應(yīng)注意,本發(fā)明的實(shí)施例可用 于任何類型的停滯,其中處理器停滯能以降低的性能狀態(tài)運(yùn)行,而對(duì) 工作負(fù)荷性能造成很小影響或沒有影響。
說明書中提到本發(fā)明的"一個(gè)實(shí)施例"時(shí)表示,結(jié)合該實(shí)施例描 述的特定特征、結(jié)構(gòu)或特性包含在本發(fā)明的至少一個(gè)實(shí)施例中。因此, 在整篇說明書中的不同位置出現(xiàn)"在一個(gè)實(shí)施例中"的表達(dá)時(shí)不一定 都指同一個(gè)實(shí)施例。
出于解釋的貝的,闡述了具體配置和細(xì)節(jié)以便充分理解本發(fā)明。 然而,本領(lǐng)域的技術(shù)人員將明白,在沒有本文介紹的這些具體細(xì)節(jié)的 情況下,也可以實(shí)現(xiàn)本發(fā)明的實(shí)施例。此外,可能會(huì)忽略或簡(jiǎn)化公知 的特征以免使本發(fā)明不明確。本描述中會(huì)給出多個(gè)實(shí)例。它們只是本 發(fā)明的特定實(shí)施例的描述。本發(fā)明的范圍并不局限于給出的實(shí)例。
本文公開改進(jìn)的自適應(yīng)功率管理系統(tǒng)和方法。作者最初進(jìn)行的試 驗(yàn)已經(jīng)表明,盡管處理器處于100%繁忙,但是處理器停滯的時(shí)間期 間目標(biāo)P-State選擇中的周期性減少將導(dǎo)致額外的功率節(jié)約,而其性能 損失可以忽略不計(jì)。假設(shè)目標(biāo)P-State選擇是GV3硬件反饋的功能, 則本發(fā)明的實(shí)施例設(shè)計(jì)成用于通過基于處理器停滯行為來調(diào)整GV3 硬件反饋從而獲得具有極小操作系統(tǒng)開銷的最佳目標(biāo)P-State選擇。描 述了 2種基于處理器停滯行為來調(diào)整GV3硬件反饋的備選方式。第一 種方式是修改IA32一APERF以返回基于處理器停滯活動(dòng)進(jìn)行調(diào)整的計(jì) 數(shù),由此將減小在GV3硬件反饋中返回的比率。第二種方式是通過使 用新的MSR或計(jì)數(shù)器以基于處理器停滯活動(dòng)而調(diào)整 IA32—APERF/IA32_MPERF比率來調(diào)整GV3硬件反饋。可預(yù)期通過 組合這兩種方式來實(shí)現(xiàn)其它備選方式。
出于說明的目的,簡(jiǎn)要論述了 MSR的使用。IA32—APERF MSR (下文稱為"APERF")以實(shí)際處理器頻率計(jì)數(shù),而IA32—MPERF (下文稱為"MPERF")寄存器以最大頻率計(jì)數(shù)。例如,在具有最大頻率 為2 GHz的平臺(tái)上,如果在給定時(shí)間基于P-State選擇的處理器的當(dāng) 前實(shí)際頻率是lGHz,則APERF/MPERF的比率 (IA32—APERF/IA32_MPERF)將是50 % 。
本發(fā)明的一個(gè)實(shí)施例在確定P-State時(shí)基于停滯行為來改變將由 OS或其它控制邏輯看到的APERF值。換句話說,APERF將返回基 于停滯行為進(jìn)行調(diào)整的比率,這將在下面更充分地論述。通過調(diào)整 APERF的返回值,由OS看到的比率APERF/MPERF也將會(huì)發(fā)生改變。 在現(xiàn)有系統(tǒng)中,如果將處理器識(shí)別為100%繁忙,則即使有90%的時(shí) 間發(fā)生停滯,處理器仍將保持在為完全工作負(fù)荷運(yùn)行的最高頻率(最 大P-State )。
在一些操作系統(tǒng)中,OS每100ms重新評(píng)估計(jì)數(shù)器,并相應(yīng)地調(diào) 整P-State。不同的OS可具有不同的P-State更新周期性。因此,本發(fā) 明的實(shí)施例將基于工作負(fù)荷利用率(%繁忙)和停滯行為的組合來改 變P-State選擇。而現(xiàn)有系統(tǒng)并未利用停滯調(diào)整的APERF/MPERF比 率來選擇P-State。
如果在P-State評(píng)估之間的時(shí)間期間很少出現(xiàn)或不出現(xiàn)停滯,則處 理器可保持在較高的頻率。
現(xiàn)在參考圖1,示出根據(jù)本發(fā)明的實(shí)施例用于選擇最佳處理器性 能水平的示范性方法。將通過該示范性方法100來更新P-State。在方 框101,確定一定時(shí)間周期內(nèi)的有效P-state。這可以通過使用機(jī)器狀 態(tài)寄存器(MSR) IA32—APERF (APERF)和IA32_MPERF (MPERF) 值來完成,其中.APERF以實(shí)際頻率核比率計(jì)數(shù)(為處理器停滯而調(diào) 整),而MPERF以最大頻率核比率計(jì)數(shù)。依照APERF/MPERF比率計(jì) 算有效P-State。盡管都使用機(jī)器狀態(tài)寄存器(MSR) IA32—APERF和 IA32—MPERF,但本發(fā)明的實(shí)施例在使用MSR時(shí)相對(duì)于現(xiàn)有OS使用 MSR做出了新穎的變化。在本發(fā)明的實(shí)施例中,雖然APERF以實(shí)際 頻率核比率計(jì)數(shù),但會(huì)為處理器停滯而做出調(diào)整。MPERF繼續(xù)以最 大頻率核比率計(jì)數(shù)。依照修改后的APERF除以MPERF值的比率來計(jì)算有效P-state。這種計(jì)算與現(xiàn)有系統(tǒng)中所用的計(jì)算的不同之處在于, 它考慮了處理器停滯時(shí)間。
在方框103,確定目標(biāo)P-State。該P(yáng)-State依照處理器繁忙(即, 使用而非空閑)時(shí)間的百分比(。/。Busy)乘以有效P-State(P-Stateeffective) 來計(jì)算。在方框105,做出關(guān)于目標(biāo)P-State是否不等于當(dāng)前P-State 的判定。如果它們不相同,則在方框107切換P-State。這可以通過將 邏輯處理器或核設(shè)定為如上確定的新P-State來執(zhí)行。 一旦設(shè)定了 P-State,還重設(shè)APERF和MPERF。在另一個(gè)實(shí)施例中,實(shí)際上并不 重設(shè)APERF和MPERF值,而是存儲(chǔ)上次已知的APERF和MPERF 值,然后將它們從MSR中的最新計(jì)數(shù)中減去。實(shí)際實(shí)現(xiàn)只導(dǎo)致對(duì)給 定時(shí)間周期中的計(jì)數(shù)器中的變化進(jìn)行比率計(jì)算,而計(jì)算的細(xì)節(jié)可基于 架構(gòu)或設(shè)計(jì)而改變。然后,處理在方框109繼續(xù)進(jìn)行。
修改APERF的實(shí)施例提供了與現(xiàn)有系統(tǒng)不同的非常好的架構(gòu) (IA)差異,使得由于當(dāng)前的操作系統(tǒng)(OS)在目標(biāo)P-State選擇時(shí) 對(duì)IA32—APERF/IA32—MPERF比率的使用而導(dǎo)致的操作系統(tǒng)開銷極 小?;谔幚砥魍頊p小IA32一APERF直接減小了該比率,由此在 具有足夠停滯的情況下將自動(dòng)導(dǎo)致選擇較低的目標(biāo)P-State。
另一個(gè)實(shí)施例需要在OS中使用額外的計(jì)數(shù)器,該計(jì)數(shù)器可用于 調(diào)整GV3硬件反饋。這個(gè)實(shí)施例的權(quán)衡是,它將需要更多的操作系統(tǒng) 開銷,但更少的處理器變化。
工作負(fù)荷性能能基于完成執(zhí)行所花費(fèi)的時(shí)間來表示。在最高 P-State運(yùn)行所花費(fèi)的時(shí)間表示為7>0,而在目標(biāo)P-State中的時(shí)間表示 為T^-。因在4交低目標(biāo)P-State運(yùn)行而導(dǎo)致的性能損失Pe《。M可以表 示如下
(叫i.o)P《w=>^--1
乂PO
上面這些值可以分為芯上(on-die)和芯外(off-die)階段,分別 表示為和能夠在下面的公式(其中能利用在目標(biāo)P-State 的時(shí)間(T)相比于在最大頻率P-StatePO的時(shí)間來計(jì)算性能損失)中
ii看到:
ort—必e
(叫2.0)
尸4
一 '加get
1
由于在處理器停滯期間的執(zhí)行時(shí)間不成比例,即,停滯時(shí)間的變
化速率不會(huì)與處理器頻率的變化速率相同,所以當(dāng)前的P-State (由/ 表示)芯外處理器時(shí)間7;,^將等于目標(biāo)和P0芯外時(shí)間。在本論述中, "芯外"表示處理器出現(xiàn)停滯并等待事件的發(fā)生。類似地,由于執(zhí)行 時(shí)間與處理器頻率成比例,所以這時(shí)能使用當(dāng)前P-State的CO循環(huán)計(jì) 數(shù)(cycle count) CO,.(即,處理器的當(dāng)前運(yùn)行狀態(tài))相比于目標(biāo)P-State CO循環(huán)計(jì)數(shù)和PO P-State CO循環(huán)計(jì)數(shù)來導(dǎo)出等式3.1和3.2。應(yīng)注意,
應(yīng)該與當(dāng)前P-State的頻率/目標(biāo)P-State的頻率的比率相同。雖然該比 率應(yīng)該與頻率比率相同,但是一個(gè)是在該頻率對(duì)實(shí)際循環(huán)計(jì)數(shù),CO. CO,是在當(dāng)前P-State計(jì)數(shù),所以它與在最大P-State計(jì)數(shù)時(shí)相比可能計(jì) 數(shù)會(huì)更慢。
<formula>formula see original document page 12</formula>
當(dāng)在運(yùn)行芯上(非停滯)處理時(shí)的目標(biāo)P-State是PO (最大頻率) 而在運(yùn)行芯外(停滯)處理時(shí)的目標(biāo)P-State處于某個(gè)較低頻率P-State (例如P3)時(shí),能在性能損失可忽略不計(jì)的情況下實(shí)現(xiàn)額外的功率節(jié) 約,如下式4所示
<formula>formula see original document page 12</formula>
性能損失的量取決于能多精確地檢測(cè)處理器停滯以及能多快地
實(shí)現(xiàn)P-State的調(diào)整。進(jìn)行更精確的停滯檢測(cè)和直接在處理器中更加頻 繁的進(jìn)行P-State調(diào)整的能力將提供最佳的性能。
一種計(jì)算新APERF值的方式可以通過改寫上面的公式并使用等式3.1和3.2以使用當(dāng)前循環(huán)計(jì)數(shù)(C0i)和最大頻率循環(huán)計(jì)數(shù)(C0P0) 進(jìn)行循環(huán)計(jì)數(shù)來實(shí)現(xiàn)
(eq. 5.0)
'CO,、
f CO 、求解上式中的OWget得到
(eq. 6.0)
C0
CO
P0
target
1 +
尸《
用停滯比率來代替T。n-die /T°ff-die得到 (叫7.0)
《
CO
、
C0:
+ 1
CO
target
尸《
/aw
1 +
CO
stalls
CO
、
PO
(H) Co; J
上面計(jì)算的C(^get展示了一種計(jì)算新APERF值的方式。應(yīng)注意,
在計(jì)算目標(biāo)頻率時(shí),性能損失值將作為常數(shù)使用。通過閱讀本文的說 明,本領(lǐng)域的技術(shù)人員將明白,可以基于在處理器上運(yùn)行的應(yīng)用來預(yù)
先選擇性能損失。出于實(shí)證研究的目的,作者已經(jīng)使用5%的性能損 失值,這在上式中是可接受的。計(jì)算的C(Wget可以作為MSR中的新 APERF值返回。這個(gè)等式的使用導(dǎo)致比會(huì)在現(xiàn)有系統(tǒng)中返回的 APERF值更低的APERF值,這是因?yàn)榭紤]了停滯。因此,由于對(duì) APERF值進(jìn)行了調(diào)整,而導(dǎo)致APERF/MPERF比率更小。較低比率 導(dǎo)致處于較低頻率的P-State,由此導(dǎo)致能量節(jié)約。
應(yīng)注意,出現(xiàn)停滯的處理器與空閑處理器相比處于不同的C-state。 空閑處理器什么都不做,而出現(xiàn)停滯的處理器是繁忙的,只是在等待。 處理器可處于各種C-state之一中。例如,狀態(tài)CO表示處理器正在運(yùn) 行。Cl 、C2或C3是處理器可能所處的不同的空閑狀態(tài)。最深的C-State 將提供最多的功率節(jié)約。
還應(yīng)注意,OS經(jīng)常會(huì)過高估計(jì)所需的處理頻率。例如,如果目 標(biāo)P-State經(jīng)計(jì)算在2/3比率,則OS可能將實(shí)際頻率設(shè)定為最大頻率的2.33/3,以確保過程具有足夠的處理功率。另一個(gè)OS可能采用這 樣的策略,其中如果處理器100%繁忙地運(yùn)行,則將P-State頻率更新 為最大頻率,然后允許其在下一個(gè)更新周期中自然地遷移(如果可能) 到較低頻率。圖2A-B是示出使用上面的公式從早期試驗(yàn)中獲得的經(jīng)驗(yàn)數(shù)據(jù)的 表格。出于說明的目的,圖表中將使用本發(fā)明的實(shí)施例的結(jié)果標(biāo)為"ACNT2"。本發(fā)明的實(shí)施例在Sandra存儲(chǔ)器測(cè)試中顯示出2位數(shù)的 功率節(jié)約而性能損失可忽略不計(jì)。更多關(guān)于標(biāo)準(zhǔn)Sandra基準(zhǔn)測(cè)試的信 息可以在公共因特網(wǎng)的URL www承sisoftwaretet/上找到。應(yīng)注意,本 文的URL中使用星號(hào)來代替句點(diǎn)以避免造成疏漏的超鏈接。例如, 圖2A示出使用具有如下五(5)個(gè)可能的P-State的移動(dòng)系統(tǒng)的初步 試驗(yàn)結(jié)果2333、 2000、 1666、 1333、 1000。圖2B示出使用具有如 下四(4)個(gè)可能的P-State的服務(wù)器系統(tǒng)的初步試驗(yàn)結(jié)果3000、 2666、 2333和2000。第一列表示具體的基準(zhǔn)運(yùn)行。標(biāo)為"DBS Score"的第二列表示 沒有使用ACNT2時(shí)的基于需要切換(DBS)測(cè)試評(píng)分。標(biāo)為"Acnt2 Score"的第三列表示使用ACNT2時(shí)的評(píng)分。標(biāo)為"Acnt2PerfLoss" 的第四列表示當(dāng)使用ACNT2時(shí)的測(cè)試評(píng)分百分比性能損失。最后三 列示出DBS功率(瓦特)、ACNT2功率(瓦特)以及當(dāng)4吏用ACNT2 時(shí)的百分比功率節(jié)約(瓦特)。在另 一個(gè)實(shí)施例中,不是如上所述在計(jì)算目標(biāo)P-State時(shí)僅使用 APERFMSR,而是在處理器中添加新計(jì)數(shù)器,例如"SPERF,,以對(duì) 停滯計(jì)數(shù)。在這個(gè)實(shí)施例中,在用于計(jì)算與MPERF的比率之前,從 APERF中減去SPERF。在另一個(gè)實(shí)施例中,可在處理器中實(shí)現(xiàn)用于 直接指示比率的計(jì)數(shù)器,并且可使用停滯統(tǒng)計(jì)。這些實(shí)施例可能需要 對(duì)處理器架構(gòu)啦文出額外的i奮改以生成這些新的MSR,并且如果在接收 MSR數(shù)據(jù)之后進(jìn)行計(jì)算,則可能需要對(duì)OS做出修改。另一個(gè)實(shí)施例 可在處理器中提供控制以對(duì)如何生成APERF MSR做出調(diào)整。例如, 當(dāng)標(biāo)志是ON時(shí),可通過停滯計(jì)數(shù)來自動(dòng)調(diào)整APERF。當(dāng)實(shí)施例在OS計(jì)算比率之前修改APERF寄存器時(shí),OS的啟動(dòng)努力(enabling effort)很小。因此,OS不會(huì)改變執(zhí)行計(jì)算的方式,而只是導(dǎo)致通過 調(diào)整變量來修改計(jì)算。在本發(fā)明的實(shí)施例中,在硬件中生成和調(diào)整MSR計(jì)數(shù)器,然后 供OS訪問。每個(gè)邏輯處理器將具有它自己的MSR。核可具有多于一 個(gè)邏輯處理器。然而,單個(gè)核只可在一個(gè)頻率運(yùn)行。如果所得計(jì)算提 供比插槽中的同一個(gè)核上的另一個(gè)邏輯處理器更低的頻率,則每個(gè)邏 輯處理器將使用最大值。然而,預(yù)期未來的處理器將允許同一插槽上 的各個(gè)核在不同的頻率運(yùn)行。圖3是其上可以實(shí)現(xiàn)本發(fā)明的實(shí)施例的示范性系統(tǒng)300的框圖。 處理器310經(jīng)由前端總線301與存儲(chǔ)器控制器中心(MCH) 314 (又 稱為北橋)通信。MCH 314經(jīng)由存儲(chǔ)器總線303與系統(tǒng)存儲(chǔ)器312通 信。操作系統(tǒng)(OS) 313通常駐留在系統(tǒng)存儲(chǔ)器中以便由處理器310 執(zhí)行。MCH314還可經(jīng)由圖形總線305與高級(jí)圖形端口 (AGP)316 通信。MCH314經(jīng)由外圍組件互連(PCI)總線307與1/0控制器中 心(ICH) 320 (又稱為南橋)通信。ICH 320可經(jīng)由低引腳計(jì)數(shù)(LPC) 總線356耦合到一個(gè)或多個(gè)組件,例如PCI硬盤驅(qū)動(dòng)器(未示出), 諸如IDE 322、 USB 324、 LAN 326和音頻328的傳統(tǒng)組件,以及超級(jí) I/O (SIO)控制器356。處理器310可以是能夠執(zhí)行軟件的任何類型的處理器,例如微處 理器、數(shù)字信號(hào)處理器、微控制器、多核處理器等。盡管圖3只示出 一個(gè)這樣的處理器310,但在平臺(tái)硬件300中可以有一個(gè)或多個(gè)處理 器,并且其中一個(gè)或多個(gè)處理器可以包含多個(gè)線程、多個(gè)核及諸如此 類。存儲(chǔ)器312可以是硬盤、軟盤、隨才踏取存儲(chǔ)器(RAM)、只讀 存儲(chǔ)器(ROM)、閃速存儲(chǔ)器、或可由處理器310讀取的任何其它類 型的介質(zhì)。存儲(chǔ)器312可存儲(chǔ)用于執(zhí)行本發(fā)明的方法實(shí)施例的指令。諸如閃速存儲(chǔ)器352的非易失性存儲(chǔ)器可以經(jīng)由低引腳計(jì)數(shù) (LPC)總線309耦合到IO控制器。BIOS固件354通常駐留在閃速存儲(chǔ)器352中,并且啟動(dòng)將執(zhí)行來自閃存或固件的指令。在一些實(shí)施例中,平臺(tái)300是啟動(dòng)服務(wù)器管理任務(wù)的服務(wù)器。這 個(gè)平臺(tái)實(shí)施例可以具有經(jīng)由LPC 309耦合到ICH 320的主板管理控制 器(BMC) 350。處理器310可在板上具有若干個(gè)機(jī)器狀態(tài)寄存器(MSR) 311。 在一個(gè)實(shí)施例中, 一個(gè)MSR是如上所述的IA32—APERF寄存器。另 一個(gè)MSR是如上所述的IA32—MPERF寄存器。這些寄存器311可以 供OS 313訪問以用于為處理器310確定目標(biāo)P-State。為了將對(duì)OS 的影響減至最小,可以在處理器上實(shí)現(xiàn)本發(fā)明的實(shí)施例,以使得在 OS檢索寄存器之前修改寄存器。在一個(gè)備選實(shí)施例中,可以修改OS 以改變對(duì)APERF/MPERF比率的計(jì)算,從而確定目標(biāo)P-State。在另一 個(gè)實(shí)施例中,其它寄存器可在處理器310上實(shí)現(xiàn)以計(jì)算停滯時(shí)間,并 且可以在處理器電路中或通過OS引入到計(jì)算中。雖然大部分現(xiàn)有系統(tǒng)都使用OS來改變處理器P-State,但一些現(xiàn) 有的或?qū)淼募軜?gòu)可使用位于OS外部的邏輯來執(zhí)行這些動(dòng)作,這些 邏輯例如位于處理器內(nèi)部或外部的電路、固件服務(wù)、在嵌入式分區(qū)中 運(yùn)行的代碼、虛擬裝置或位于OS外部的其它服務(wù)。這些情況也將通 過利用停滯行為以基于與繁忙時(shí)間百分比和當(dāng)前P-State相關(guān)的反饋 信息來調(diào)整新P-State值而得益于本發(fā)明的實(shí)施例。在一些實(shí)施例中, 可在P-State計(jì)算中使用除了利用APERF和MPERF寄存器值以外的 方法。在這些情況下,可采用與如上所述的方式類似的方式來^f吏用停 滯行為的測(cè)量以調(diào)整所得計(jì)算從而考慮停滯。本文描述的技術(shù)并不限于任何特定的硬件或軟件配置,它們可以 應(yīng)用于任何計(jì)算、消費(fèi)型電子裝置或處理環(huán)境。這些技術(shù)可以在硬件、 軟件或兩者的結(jié)合中實(shí)現(xiàn)。對(duì)于仿真,程序代碼可以使用硬件描述語言或?qū)嵸|(zhì)上提供預(yù)期所 設(shè)計(jì)的硬件將如何執(zhí)行的模型的其它功能描述語言來表示硬件。程序 代碼可以是匯編或機(jī)器語言、或可編譯和/或解釋的數(shù)據(jù)。此外,本領(lǐng) 域中常將一種形式或另一種形式的軟件說成是采取動(dòng)作或造成結(jié)果。這些表述只是陳述通過處理系統(tǒng)來執(zhí)行程序代碼以使處理器執(zhí)行動(dòng) 作或產(chǎn)生結(jié)果的簡(jiǎn)略方式。每個(gè)程序都可以使用高級(jí)過程語言或面向?qū)ο缶幊陶Z言來實(shí)現(xiàn) 以與處理系統(tǒng)通信。然而,如果需要,也可以用匯編或機(jī)器語言來實(shí) 現(xiàn)程序。在任何情況下,語言都可以編譯或解釋。程序指令可用于導(dǎo)致用這些指令編程的通用或?qū)S锰幚硐到y(tǒng)執(zhí) 行本文描述的操作。或者,這些操作可通過包含用于執(zhí)行這些操作的 硬接線邏輯的特定硬件組件、或通過程序設(shè)計(jì)的計(jì)算機(jī)組件和定制硬 件組件的任意組合來實(shí)現(xiàn)。本文描述的方法可作為計(jì)算機(jī)程序產(chǎn)品來 提供,該計(jì)算機(jī)程序產(chǎn)品可包括其上存儲(chǔ)有指令的機(jī)器可訪問介質(zhì), 其中這些指令可用于將處理系統(tǒng)或其它電子裝置編程以執(zhí)行這些方 法。程序代碼或指令可存儲(chǔ)在例如易失性和/或非易失性存儲(chǔ)器中,例 如存儲(chǔ)裝置和/或關(guān)聯(lián)的機(jī)器可讀或機(jī)器可訪問介質(zhì),包括固態(tài)存儲(chǔ) 器、硬盤驅(qū)動(dòng)器、軟盤、光存儲(chǔ)設(shè)備、磁帶、閃速存儲(chǔ)器、存儲(chǔ)棒、數(shù)字視頻盤、數(shù)字多功能盤(DVD)等;以及更奇特的介質(zhì),例如機(jī) 器可訪問生物狀態(tài)保存存^i殳備。機(jī)器可讀介質(zhì)可包括用于以可由機(jī) 器讀取的形式存儲(chǔ)、傳送或接收信息的任何機(jī)制,該介質(zhì)可包括可傳 遞將程序代碼編碼的電、光、聲或其它形式的傳插一言號(hào)或載波的有形 介質(zhì),例如天線、光纖、通信接口等。程序代碼可以采用分組、串行 數(shù)據(jù)、并行數(shù)據(jù)、傳播信號(hào)等形式來傳送,并且可以使用壓縮或加密 格式。程序代碼可在可編程機(jī)器上執(zhí)行的程序中實(shí)現(xiàn),可編程機(jī)器例如 移動(dòng)或固定計(jì)算機(jī)、個(gè)人數(shù)字助理、機(jī)頂盒、蜂窩電話和傳呼機(jī)、消 費(fèi)型電子裝置(包括DVD播放器、個(gè)人錄像機(jī)、個(gè)人視頻播放器、 衛(wèi)星接收器、立體聲收音機(jī)、有線電視接收機(jī))和其它電子裝置,其 中每個(gè)機(jī)器都包括處理器、可由處理器讀取的易失性和/或非易失性存 儲(chǔ)器、至少一個(gè)輸入裝置和/或一個(gè)或多個(gè)輸出裝置??蓪?duì)利用輸入裝 置輸入的數(shù)據(jù)應(yīng)用程序代碼以執(zhí)行所描述的實(shí)施例并生成輸出信息。輸出信息可應(yīng)用于一個(gè)或多個(gè)輸出裝置。本領(lǐng)域的技術(shù)人員可以理 解,公開的主題的實(shí)施例能夠以各種計(jì)算機(jī)系統(tǒng)配置來實(shí)施,包括多 處理器或多核處理器系統(tǒng)、微型計(jì)算機(jī)、大型計(jì)算機(jī)、以及實(shí)際上可嵌入到任何裝置中的滲透型(pervasive)或微型計(jì)算機(jī)或處理器。公 開的主題的實(shí)施例也能夠在分布式計(jì)算環(huán)境中實(shí)施,在分布式計(jì)算環(huán) 境中,任務(wù)或其一部分可以由通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理裝置來執(zhí) 行。盡管可以將操作作為連續(xù)的過程來描述,但是其中一些操作實(shí)際 上可以并行地、同時(shí)地和/或在分布式環(huán)境中執(zhí)行,并且可以用本地和 /或遠(yuǎn)程存儲(chǔ)可供單或多處理器機(jī)器訪問的程序代碼來執(zhí)行。此外,在 一些實(shí)施例中,在不背離公開的主題的實(shí)質(zhì)的情況下,操作的順序可 以重新設(shè)置。程序代碼可供嵌入式控制器使用或與嵌入式控制器配合 使用。雖然參考說明性實(shí)施例描述了本發(fā)明,但不希望將本描述解釋為 具限制意義。對(duì)于本發(fā)明所屬領(lǐng)域的技術(shù)人員顯而易見的說明性實(shí)施 例的各種修改以及本發(fā)明的其它實(shí)施例都視為是屬于本發(fā)明的實(shí)質(zhì) 和范圍之內(nèi)。
權(quán)利要求
1.一種用于選擇平臺(tái)上的處理器狀態(tài)的系統(tǒng),包括具有用于提供與當(dāng)前的處理器頻率、處理器狀態(tài)和所述處理器的繁忙時(shí)間百分比相關(guān)的硬件反饋的電路的處理器;用于基于利用處理器停滯信息進(jìn)行調(diào)整的所述反饋來更新所述處理器狀態(tài)的部件。
2. 如權(quán)利要求1所述的系統(tǒng),其中所述用于更新的部件包括一個(gè) 或多個(gè)施動(dòng)者,用于接收所述反饋和處理器停滯信息,并基于所述反 饋和處理器停滯信息來計(jì)算新的處理器頻率,以及在所述處理器中啟 動(dòng)所述新的處理器頻率。
3. 如權(quán)利要求2所述的系統(tǒng),其中所述一個(gè)或多個(gè)施動(dòng)者是從由 以下組件組成的組中選擇的操作系統(tǒng)、處理器電路、位于處理器內(nèi) 部的軟件代理、固件服務(wù)、嵌入式分區(qū)代理、虛擬設(shè)備代理、位于操 作系統(tǒng)外部的軟件代理、以及位于所述處理器外部的電路。
4. 如權(quán)利要求1所述的系統(tǒng),其中用于更新所述處理器狀態(tài)的所 述部件還包括用于在允許施動(dòng)者使用第一機(jī)器狀態(tài)寄存器和第二機(jī)器狀態(tài)寄 存器的比率的計(jì)算結(jié)果之前修改所述第一機(jī)器狀態(tài)寄存器的值的邏 輯,其中所述修改運(yùn)用處理器停滯信息。
5. 如權(quán)利要求4所述的系統(tǒng),其中所述施動(dòng)者是從由以下組件組 成的組中選擇的操作系統(tǒng)、處理器電路、固件服務(wù)、嵌入式分區(qū)代 理、虛擬設(shè)備代理、位于操作系統(tǒng)外部的軟件代理、以及位于所述處 理器外部的電路。
6. 如權(quán)利要求4所述的系統(tǒng),其中用于更新所述處理器狀態(tài)的目 標(biāo)P國(guó)State (P-Statetarget)是通過才艮據(jù)尸-5^^13|^ — % 尸-6to&effective 來計(jì)算所述處理器的繁忙時(shí)間百分比(%Busy)和有效P-State(P-Stateeffective)的乘積而確定的,其中所述P-Stateeffective取決于處理 器停滯信息、當(dāng)前的P-State和所述處理器的最大頻率。
7.如權(quán)利要求6所述的系統(tǒng),其中所述處理器的目標(biāo)循環(huán)計(jì)數(shù) (C0target)是通過計(jì)算下式確定的<formula>formula see original document page 3</formula>其中C0i表示當(dāng)前的循環(huán)計(jì)數(shù),COpo表示最大頻率循環(huán)計(jì)數(shù),costalls 表示處理器停滯時(shí)間期間的循環(huán)計(jì)數(shù),并且Perfi鵬是預(yù)定的可接受的執(zhí)行時(shí)間性能損失百分比,并且其中CO加get作為修改后的IA32—APERF值返回。
8. 如權(quán)利要求4所述的系統(tǒng),其中所述第一機(jī)器狀態(tài)寄存器 (MSR)是IA32_APERF MSR,并且所述第二機(jī)器狀態(tài)寄存器是IA32_MPERF MSR,其中IA32—APERF以實(shí)際處理器頻率計(jì)數(shù),并且 IA32—MPERF以最大處理器頻率計(jì)數(shù),以使得 IA32—APERF/IA32一MPERF的比率和所述處理器的繁忙時(shí)間百分比的 乘積包括在修改所述IA32_APERF之前的所述處理器的有效P-State, 并且修改后的IA32—APERF寄存器基于處理器停滯信息而減小并導(dǎo)致 目標(biāo)P-State較低,4旦在性能損失的可接受水平之內(nèi)。
9. 如權(quán)利要求1所述的系統(tǒng),其中用于更新所述處理器狀態(tài)的所 述部件還包括用于修改第一機(jī)器狀態(tài)寄存器和第二機(jī)器狀態(tài)寄存器的比率的 計(jì)算結(jié)果的邏輯,其中所述修改基于處理器停滯信息。
10. 如權(quán)利要求l所述的系統(tǒng),其中用于更新所述處理器狀態(tài)的 所述部件還包括用于在利用第一機(jī)器狀態(tài)寄存器和第二機(jī)器狀態(tài)寄存器的比率 的計(jì)算結(jié)果之前修改所述第一機(jī)器狀態(tài)寄存器的值的邏輯,其中所述 修 文運(yùn)用反映處理器停滯信息的計(jì)數(shù)器。
11. 一種用于選擇平臺(tái)上的處理器狀態(tài)的方法,包括 從所述平臺(tái)上的處理器接收與當(dāng)前的處理器頻率、處理器狀態(tài)和所述處理器的繁忙時(shí)間百分比相關(guān)的硬件反饋;基于利用處理器停滯信息進(jìn)行調(diào)整的所述反饋來更新所述處理 器狀態(tài)。
12. 如權(quán)利要求11所述的方法,還包括 基于所述反饋和處理器停滯信息來計(jì)算新的處理器頻率;以及 在所述處理器中啟動(dòng)所述新的處理器頻率。
13. 如權(quán)利要求12所述的方法,其中所述計(jì)算和啟動(dòng)由一個(gè)或多 個(gè)施動(dòng)者來執(zhí)行,所述一個(gè)或多個(gè)施動(dòng)者是從由以下組件組成的組中 選擇的操作系統(tǒng)、處理器電路、位于處理器內(nèi)部的軟件代理、固件 服務(wù)、嵌入式分區(qū)代理、虛擬設(shè)備代理、位于操作系統(tǒng)外部的軟件代 理、以及位于所述處理器外部的電路。
14. 如權(quán)利要求11所述的方法,其中所述更新還包括 在計(jì)算第一機(jī)器狀態(tài)寄存器和第二機(jī)器狀態(tài)寄存器的比率之前,修改所述第一沖/U器狀態(tài)寄存器的值,其中所述修改運(yùn)用處理器停滯信 息。
15. 如權(quán)利要求14所述的方法,還包括根據(jù)尸-5^的arget — %Bl^y * P-&fl《eeffective將用于更新所述處理器頻率的目標(biāo)P-State( P-State^get )確定為所述處理器的繁忙時(shí)間百分比(% Busy)和有效P-State (P-Stateeffective)的乘積,其中所述P-Stateeffective 取決于所述處理器停滯信息、當(dāng)前的P-State和所述處理器的最大頻 率。
16. 如權(quán)利要求15所述的方法,還包括根據(jù)下式計(jì)算所述處理器 的目標(biāo)循環(huán)計(jì)數(shù)(C0咖et):表示處理器停滯時(shí)間期間的循環(huán)計(jì)數(shù),并且Perfl。ss是預(yù)定的可接受的執(zhí)行時(shí)間性能損失百分比,并且其中COtoget作為修改后的IA32 APERF值返回。
17. 如權(quán)利要求11所述的方法,其中用于更新所述處理器狀態(tài)的 所述部件還包^r:修改第一機(jī)器狀態(tài)寄存器和第二機(jī)器狀態(tài)寄存器的比率的計(jì)算 結(jié)杲,其中所述修改基于處理器停滯信息。
18. —種用于選擇平臺(tái)上的處理器狀態(tài)的機(jī)器可讀存儲(chǔ)介質(zhì),其 中存儲(chǔ)有指令,所述指令在機(jī)器上執(zhí)行時(shí)使所述機(jī)器從所述平臺(tái)上的處理器接收與當(dāng)前的處理器頻率、處理器狀態(tài)和 所述處理器的繁忙時(shí)間百分比相關(guān)的硬件反饋;基于利用處理器停滯信息進(jìn)行調(diào)整的所述反饋來更新所述處理 器狀態(tài)。
19. 如權(quán)利要求18所述的介質(zhì),還包括用于執(zhí)行以下操作的指令基于所述反饋和處理器停滯信息來計(jì)算新的處理器頻率;以及 在所述處理器中啟動(dòng)所述新的處理器頻率。
20. 如權(quán)利要求19所述的介質(zhì),其中所述計(jì)算和啟動(dòng)是通過一個(gè) 或多個(gè)施動(dòng)者來執(zhí)行的,所述一個(gè)或多個(gè)施動(dòng)者是從由以下組件組成 的組中選擇的操作系統(tǒng)、處理器電路、位于處理器內(nèi)部的軟件代理、 固件服務(wù)、嵌入式分區(qū)代理、虛擬設(shè)備代理、位于操作系統(tǒng)外部的軟 件代理、以及位于所述處理器外部的電路。
21. 如權(quán)利要求18所述的介質(zhì),其中所述更新還包括用于執(zhí)行以 下操作的指令在計(jì)算第一機(jī)器狀態(tài)寄存器和第二機(jī)器狀態(tài)寄存器的比率之前, 修改所述第一機(jī)器狀態(tài)寄存器的值,其中所述修改運(yùn)用處理器停滯信 息。
22. 如權(quán)利要求21所述的介質(zhì),還包括用于執(zhí)行以下操作的指令根據(jù)尸-Sto的arget — %5z^y * P-^flfeeffective將用于更新所述處理器頻率的目標(biāo)P-State( P-Statetarget )確定為所述處理器的繁忙時(shí)間百分比(% Busy)和有效P-State (P-Stateeffective)的乘積,其中所述P-Stateeffective取決于所述處理器停滯信息、當(dāng)前的P-State和所述處理器的最大頻 率。
23. 如權(quán)利要求22所述的介質(zhì),還包括用于根據(jù)下式計(jì)算所述處 理器的目標(biāo)循環(huán)計(jì)數(shù)(C0target)的指令<formula>formula see original document page 6</formula>其中C0i表示當(dāng)前的循環(huán)計(jì)數(shù),COpo表示最大頻率循環(huán)計(jì)數(shù),costalls 表示處理器停滯時(shí)間期間的循環(huán)計(jì)數(shù),并且Perflw是預(yù)定的可接受的執(zhí)行時(shí)間性能損失百分比,并且其中C0加get作為修改后的IA32一APERF值返回。
24. 如權(quán)利要求18所述的介質(zhì),其中對(duì)所述處理器狀態(tài)的所述更新還包括用于執(zhí)行以下操作的指令修改第一機(jī)器狀態(tài)寄存器和第二機(jī)器狀態(tài)寄存器的比率的計(jì)算結(jié)果,其中所述修改基于處理器停滯信息。
全文摘要
本發(fā)明名稱為“使用處理器硬件反饋機(jī)制來選擇最佳處理器性能水平的系統(tǒng)和方法”。本發(fā)明的實(shí)施例是涉及利用硬件反饋來選擇最佳處理器頻率并降低功率/瓦特的自適應(yīng)功率管理的系統(tǒng)和方法。本發(fā)明提供一種用于選擇平臺(tái)上的處理器狀態(tài)的系統(tǒng),包括具有用于提供與當(dāng)前的處理器頻率、處理器狀態(tài)和所述處理器的繁忙時(shí)間百分比相關(guān)的硬件反饋的電路的處理器;用于基于利用處理器停滯信息進(jìn)行調(diào)整的所述反饋來更新所述處理器狀態(tài)的部件。本發(fā)明還提供一種用于選擇平臺(tái)上的處理器狀態(tài)的方法和一種用于選擇平臺(tái)上的處理器狀態(tài)的機(jī)器可讀存儲(chǔ)介質(zhì)。在至少一個(gè)實(shí)施例中,本發(fā)明旨在基于硬件反饋和處理器停滯行為來優(yōu)化處理器頻率和功率/瓦特使用。
文檔編號(hào)G06F1/32GK101539799SQ20081017692
公開日2009年9月23日 申請(qǐng)日期2008年9月28日 優(yōu)先權(quán)日2007年9月28日
發(fā)明者A·阿加沃爾, R·J·芬格, S·考什克 申請(qǐng)人:英特爾公司