具有逐核和封裝級(jí)p0確定功能的處理器的制造方法
【專(zhuān)利說(shuō)明】具有逐核和封裝級(jí)PO確定功能的處理器發(fā)明領(lǐng)域
[0001]本發(fā)明的領(lǐng)域大致涉及計(jì)算系統(tǒng),且更具體而言,涉及具有逐核和封裝級(jí)PO確定功能的處理器。
[0002]置量
[0003]圖1示出了標(biāo)準(zhǔn)多核處理器設(shè)計(jì)100的架構(gòu)。如圖1中所見(jiàn),處理器包括:1)多個(gè)處理核101_1至101_N ;2)互連網(wǎng)絡(luò)102 ;3)末級(jí)緩存系統(tǒng)103 ;4)存儲(chǔ)器控制器104以及I/O中樞105。每個(gè)處理核包含一個(gè)或多個(gè)用于執(zhí)行程序代碼指令的指令執(zhí)行流水線。互連網(wǎng)絡(luò)102用于將核101_1至101_N中的每一個(gè)互連至彼此,以及其他元件103、104、105。末級(jí)緩存系統(tǒng)103在指令和/或數(shù)據(jù)被放至系統(tǒng)存儲(chǔ)器108之前用作處理器100中的最后一層緩存。存儲(chǔ)器控制器104從/至系統(tǒng)存儲(chǔ)器108讀/寫(xiě)數(shù)據(jù)和指令。I/O中樞105管理處理器和“10”設(shè)備(如非易失性存儲(chǔ)設(shè)備和/或網(wǎng)絡(luò)接口)之間的通信。端口 106源自于互連網(wǎng)絡(luò)102以連接多個(gè)處理器,使得具有超過(guò)N核的系統(tǒng)可以被實(shí)現(xiàn)。圖形處理器107執(zhí)行圖形計(jì)算。為方便起見(jiàn),其他具有意義的功能模塊(鎖相環(huán)(PLL)電路,功率管理電路等)在圖1中未被繪出。
[0004]隨著計(jì)算機(jī)系統(tǒng)的功耗開(kāi)始受到關(guān)注,大多現(xiàn)今的系統(tǒng)包括精巧的功率管理功能。一種常見(jiàn)的機(jī)制是同時(shí)定義“性能”狀態(tài)和“功率”狀態(tài)。處理器的性能是其在設(shè)定時(shí)間周期內(nèi)的工作能力。處理器的性能狀態(tài)越好,在設(shè)定時(shí)間周期內(nèi)其所做的工作越多。處理器的性能可以在運(yùn)行期間通過(guò)改變其內(nèi)部時(shí)鐘速度和電壓水平來(lái)進(jìn)行調(diào)節(jié)。因此,處理器的功耗隨著性能的提升而增加。
[0005]處理器不同的性能狀態(tài)對(duì)應(yīng)著不同的時(shí)鐘設(shè)定和內(nèi)部電壓設(shè)定,導(dǎo)致不同的性能與功耗的折衷。根據(jù)高級(jí)配置和功率接口(ACPI)標(biāo)準(zhǔn),不同的性能狀態(tài)被標(biāo)以不同的“P數(shù)值”:P0、P1、P2……P_N,其中,PO代表最高性能和功耗狀態(tài),而P_N代表處理器能工作的最低功耗水平。Pl性能狀態(tài)是最大保證性能的工作狀態(tài)。PO狀態(tài),也被稱(chēng)為加速狀態(tài),是任何比Pl更高的工作點(diǎn)?!癙_R”中的“R”意味著不同的處理器可被配置具有不同數(shù)量的性能狀態(tài)。
[0006]與性能狀態(tài)相對(duì),功率狀態(tài)很大程度上是用來(lái)定義處理器不同的“休眠模式”。根據(jù)ACPI標(biāo)準(zhǔn),CO狀態(tài)是僅有的處理器能工作的功率狀態(tài)。因此,對(duì)于要進(jìn)入任何性能狀態(tài)$0至?_的的處理器,該處理器必須處在CO功率狀態(tài)中。當(dāng)沒(méi)有工作要做,而處理器將被置于休眠時(shí),該處理器可被置于數(shù)個(gè)不同的功率狀態(tài)C1、C2……CM中的任一個(gè),其中每個(gè)功率狀態(tài)代表一個(gè)不同的休眠等級(jí),而相應(yīng)的,需要不同數(shù)量的功率節(jié)省和不同長(zhǎng)短的時(shí)間來(lái)切換回到可操作的CO功率狀態(tài)。
[0007]更深的休眠等級(jí)對(duì)應(yīng)著更慢的內(nèi)部時(shí)鐘頻率和/或更低的內(nèi)部供電電壓,并且可能有一些邏輯模塊被掉電。C數(shù)值的增加對(duì)應(yīng)著更深層的休眠等級(jí),以及相應(yīng)更長(zhǎng)的退出和返回至喚醒或CO狀態(tài)的延遲。設(shè)計(jì)具有由加利福尼亞圣克拉拉的英特爾公司提供的處理器的計(jì)算機(jī)系統(tǒng)包括被稱(chēng)為“睿頻加速(Turbo Boost) ”的“封裝級(jí)” PO狀態(tài),在其中處理器作為一個(gè)整體會(huì)在一個(gè)有限時(shí)間周期內(nèi)工作在相比其額定最大保證頻率更高的時(shí)鐘頻率下,以達(dá)到更高性能。這里,“封裝級(jí)”是指至少一顆處理器芯片以及可能其他芯片,例如一顆或多顆其他處理器芯片以及一顆或多顆其他系統(tǒng)存儲(chǔ)器(如DRAM)芯片。這樣,在最低限度上,根據(jù)睿頻加速技術(shù)的現(xiàn)有狀態(tài),當(dāng)進(jìn)入封裝級(jí)PO狀態(tài)時(shí),處理器100的所有核101_1至101_N會(huì)在一個(gè)有限時(shí)間周期內(nèi)接收相比處理器額定最大保證時(shí)鐘頻率更高的時(shí)鐘頻率。
[0008]工作于加速(Turbo)模式的代價(jià)是功耗的增加。鑒于該功耗的后果,加速模式的進(jìn)入是受到控制的,主要由處理器上的總工作負(fù)載需求整體上超過(guò)某個(gè)可配置閾值而確定。也就是說(shuō),進(jìn)入睿頻加速模式是封裝級(jí)工作負(fù)載需求的函數(shù)。
[0009]僅從封裝級(jí)角度而言,現(xiàn)有睿頻加速技術(shù)的問(wèn)題是其響應(yīng)速度。例如,工作在一個(gè)核上的操作系統(tǒng)(OS)實(shí)例可請(qǐng)求進(jìn)入封裝PO狀態(tài)。然而,所請(qǐng)求的PO狀態(tài)除非且直到遍及處理器的工作負(fù)載,其包括遍及所有處理器核101_1至101_N測(cè)得的工作負(fù)載,整體上越過(guò)了預(yù)先設(shè)立的閾值,才會(huì)被進(jìn)入。
【附圖說(shuō)明】
[0010]對(duì)本發(fā)明更好的理解可結(jié)合以下附圖從以下詳細(xì)說(shuō)明中得到,其中:
[0011]圖1示出了一種處理器;
[0012]圖2示出了具有逐核PO功率狀態(tài)確定的改進(jìn)型處理器;
[0013]圖3a示出了由圖2中改進(jìn)型處理器執(zhí)行的方法;
[0014]圖3b示出了可由圖2中改進(jìn)型處理器執(zhí)行的逐核PO功率狀態(tài)確定的算法;
[0015]圖3c示出了可由圖2中改進(jìn)型處理器執(zhí)行的封裝級(jí)PO功率狀態(tài)確定的算法;
[0016]詳細(xì)說(shuō)曰月
[0017]一種改進(jìn)是將技術(shù)單獨(dú)擴(kuò)展至核。也就是說(shuō),處理器被設(shè)計(jì)為在一個(gè)有限時(shí)間周期內(nèi)將超過(guò)處理器額定最大保證頻率的時(shí)鐘頻率在逐個(gè)核(core-by-core)的基礎(chǔ)上施加于不同的核,而非施加于作為整體的所有核。這樣的功能可允許,例如,處理器管芯上的第一核工作于PO狀態(tài),而同一處理器管芯的另一個(gè)核工作在一個(gè)更低的性能狀態(tài),Pi, i>0o
[0018]圖2繪出了實(shí)現(xiàn)“逐核(per core) ” PO性能狀態(tài)的處理器設(shè)計(jì)200,其中單一核,而非處理器的所有核一起,可被配置成在一個(gè)有限時(shí)間周期內(nèi)以超過(guò)處理器最大額定保證頻率的時(shí)鐘速度來(lái)工作。如圖2中可見(jiàn),處理器200包括N個(gè)處理核201_1至201_N。處理器的其他特征,如以上相對(duì)于圖1討論的任何特征,為方便起見(jiàn)未被包括在圖中。
[0019]每個(gè)處理核可包括多個(gè)邏輯處理器或硬件線程。多線程核能夠在一段時(shí)間內(nèi)同時(shí)執(zhí)行不同的指令序列線程。根據(jù)虛擬化環(huán)境中的典型配置,虛擬機(jī)可被安排在一個(gè)或多個(gè)這樣的邏輯核上運(yùn)行。在非虛擬化環(huán)境中,OS會(huì)將進(jìn)程/應(yīng)用安排在邏輯核上。
[0020]在圖2的實(shí)施例中,為了監(jiān)測(cè)每個(gè)核的工作負(fù)載,監(jiān)測(cè)計(jì)數(shù)器被分配給每個(gè)邏輯核,在物理核上亦稱(chēng)硬件線程。這樣,由于每個(gè)核能夠處理多達(dá)X個(gè)線程,每個(gè)核就有X組監(jiān)測(cè)計(jì)數(shù)器。例如,核201_1被分配了監(jiān)測(cè)計(jì)數(shù)器213_1至213_X。監(jiān)測(cè)計(jì)數(shù)器組213_1至213_X被用于監(jiān)測(cè)核201_1的整體工作負(fù)載。根據(jù)一個(gè)特定的實(shí)現(xiàn),每組監(jiān)測(cè)計(jì)數(shù)器包括兩個(gè)計(jì)數(shù)器:線程 _C0 (Thread_C0)和線程 _C0P0 (Thread_C0P0)。
[0021]Thread_C0計(jì)數(shù)器對(duì)其對(duì)應(yīng)的線程活躍,即非空閑,即處在CO狀態(tài)的周期數(shù)進(jìn)行計(jì)數(shù)。例如,在線程指定其核將要進(jìn)入CO功率狀態(tài)后,計(jì)數(shù)器每個(gè)周期都會(huì)遞增,除非且直到線程指定其核將要進(jìn)入休眠狀態(tài)(如任一休眠狀態(tài)Cl、C2……等)。這里,應(yīng)該意識(shí)到,OS,或運(yùn)行在特定線程上的虛擬機(jī)可為其底層的核指定具體的功率狀態(tài)。
[0022]ThreacLCOPO計(jì)數(shù)器對(duì)其對(duì)應(yīng)的線程活躍且請(qǐng)求進(jìn)入更高性能狀態(tài)的周期數(shù)進(jìn)行計(jì)數(shù),例如,在線程指定其核將要進(jìn)入CO功率狀態(tài)和PO性能狀態(tài)后,計(jì)數(shù)器每個(gè)周期都會(huì)遞增,除非以及直到線程另有指定。在一個(gè)實(shí)施例中,被計(jì)數(shù)的“周期”對(duì)應(yīng)于施加于所有核的時(shí)鐘信號(hào)周期而非核的實(shí)際、特有的周期時(shí)間。這里,應(yīng)該指出的是,不同的核可被置于分別具有其各自唯一的時(shí)鐘頻率的不同性能狀態(tài)中。如果不同核的不同時(shí)鐘頻率被用于增加每個(gè)核分別的計(jì)數(shù)結(jié)果,遍及逐核的記分計(jì)數(shù)會(huì)由于不同的計(jì)數(shù)速率而不齊(skewed)并且不會(huì)立刻能相互比較。因此,為了減輕這個(gè)問(wèn)題,在一個(gè)實(shí)施例中,每個(gè)核的計(jì)數(shù)利用了共同的,遍及所有核的,時(shí)鐘信號(hào)(例如,來(lái)自鎖相環(huán)電路或延遲鎖定環(huán)電路)。這樣,所有核,不管它們的工作頻率如何,在其百分比利用率方面,都被同等對(duì)待,而沒(méi)有懲罰。雖然沒(méi)有明確提到,該相同的技術(shù)可被用于以下討論的任何其他被列表的逐核計(jì)數(shù)。
[0023]值得注意的是,線程可在其請(qǐng)求CO狀態(tài)的很久之后請(qǐng)求PO狀態(tài)。在這種情況下,Thread_C0P0計(jì)數(shù)僅在PO狀態(tài)被請(qǐng)求后開(kāi)始遞增。這里,再次,應(yīng)該意識(shí)到,OS或運(yùn)行在特定線程上的虛擬機(jī)可為其底層的核及功率狀態(tài)指定性能狀態(tài)。
[0024]在一個(gè)實(shí)施例中,參照?qǐng)D3a,在一個(gè)特定的“觀察”時(shí)間周期內(nèi)核的所有線程的計(jì)數(shù)被列表于計(jì)數(shù)器中301。
[0025]在每個(gè)觀察周期結(jié)束時(shí),單獨(dú)的線程或稱(chēng)邏輯核的CO和COPO計(jì)數(shù)被結(jié)合以產(chǎn)生物理核的CO和COPO計(jì)數(shù)。這被在單獨(dú)的CO計(jì)數(shù)和COPO計(jì)數(shù)的每一個(gè)上,不帶比例的,利用簡(jiǎn)單的算術(shù)加法完成。這樣,我們有一個(gè)忠實(shí)反映利用程度的計(jì)量(metric),甚至是在與物理核相關(guān)聯(lián)的一個(gè)或多個(gè)邏輯核被關(guān)閉的情況下(按英特爾的說(shuō)法,超線程被關(guān)閉以獲得更高單線程性能),以及甚至是在僅有一個(gè)活躍進(jìn)程且其從一個(gè)物理核跳至另一個(gè)的情況下。
[0026]如果,在觀察時(shí)間周期結(jié)束時(shí),核的線程的核(稍后會(huì)被更詳細(xì)地討論)計(jì)數(shù)器的綜合的(consolidated)記分反映了足夠高的核工作負(fù)載302,核被置于最高性能狀態(tài)(如PO狀態(tài))303。根據(jù)一個(gè)實(shí)施例,最高性能狀態(tài)允許核在一個(gè)有限時(shí)間周期內(nèi)工作在高于處理器最大保證額定頻率的頻率下。
[0027]在每個(gè)觀察周期結(jié)束時(shí),一旦邏輯核相關(guān)的CO和COPO計(jì)數(shù)器的數(shù)值被消耗以生成物理核相關(guān)的CO和COPO記分,則邏輯核相關(guān)的CO和COPO計(jì)數(shù)器的計(jì)數(shù)被重置,且如果在觀察時(shí)間周期結(jié)束時(shí)核的線程的計(jì)數(shù)器未反映足夠高的核工作負(fù)載,計(jì)數(shù)器被重置304,且另一個(gè)觀察周期開(kāi)始。
[0028]圖2和圖3b也描繪了一個(gè)實(shí)施例,用于基于計(jì)數(shù)器數(shù)值確定