強(qiáng)制處理器進(jìn)入低功率狀態(tài)的制作方法
【技術(shù)領(lǐng)域】
[0001] 各實(shí)施例設(shè)及對系統(tǒng)的功率管理,更具體而言,設(shè)及對多核處理器的功率管理。
【背景技術(shù)】
[0002] 半導(dǎo)體處理和邏輯設(shè)計的進(jìn)步可使集成電路設(shè)備上可W存在的邏輯量增大。結(jié) 果,計算機(jī)系統(tǒng)配置從系統(tǒng)中的單一或多個集成電路發(fā)展到單個集成電路上的多個硬件線 程、多個核、多個設(shè)備和/或完整的系統(tǒng)。另外,隨著集成電路的密度增長,計算系統(tǒng)(從嵌 入式系統(tǒng)到服務(wù)器)的功率要求也逐步升高。此外,軟件低效率W及其對硬件的要求也導(dǎo) 致計算設(shè)備能源消耗的增大。事實(shí)上,某些研究指出,計算設(shè)備消耗了諸如美國之類的國家 的全部電力供應(yīng)的相當(dāng)大的百分比。結(jié)果,迫切需要與集成電路相關(guān)聯(lián)的能量效率和節(jié)省。 隨著服務(wù)器、臺式計算機(jī)、筆記本、超極本?、平板電腦、移動電話、處理器、嵌入式系統(tǒng)等等 變得越來越流行(從包括在典型的計算機(jī)中、汽車,W及電視機(jī)到生物技術(shù)),運(yùn)些需要將 增大。
[0003] 附圖簡述
[0004] 圖1是根據(jù)本發(fā)明的一個實(shí)施例的系統(tǒng)的框圖。 陽0化]圖2是根據(jù)本發(fā)明的實(shí)施例的處理器的框圖。
[0006] 圖3是示出了多核處理器環(huán)境中的各種硬件組件之間的交互的框圖。
[0007] 圖4是根據(jù)一實(shí)施例的用于處理強(qiáng)制空閑狀態(tài)進(jìn)入和退出的封裝級別控制的通 f目流。
[0008] 圖5是描述了根據(jù)一實(shí)施例的頻率發(fā)生器設(shè)備的操作范圍的曲線。
[0009] 圖6A是根據(jù)本發(fā)明的實(shí)施例的用于對處理器操作頻率進(jìn)行控制的方法的流程 圖。
[0010] 圖6B是根據(jù)另一實(shí)施例的皿C控制方法的流程圖。
[0011] 圖7是對執(zhí)行的兩個線程的原始調(diào)度W及根據(jù)一實(shí)施例的使用硬件輪停的修改 的調(diào)度。
[0012] 圖8是根據(jù)本發(fā)明的另一實(shí)施例的用于執(zhí)行皿C操作的方法的流程圖。
[0013] 圖9是根據(jù)本發(fā)明的實(shí)施例的處理器的框圖。
[0014] 圖10是根據(jù)本發(fā)明的另一實(shí)施例的多域處理器的框圖。
[0015] 圖11是包括多個核的處理器的實(shí)施例。
[0016] 圖12是根據(jù)本發(fā)明的實(shí)施例的系統(tǒng)的框圖。
[0017] 圖13是根據(jù)本發(fā)明的另一實(shí)施例的處理器的框圖。
【具體實(shí)施方式】
[0018] 在各實(shí)施例中,硬件控制的輪停(皿C)允許處理器自主地強(qiáng)制處理器的一些或所 有組件進(jìn)入諸如給定低功率狀態(tài)之類的空閑狀態(tài)。例如,處理器可W有選擇地只強(qiáng)制處理 器的諸個核(或諸個核的子集)(諸如所稱的英特爾架構(gòu)(IA)核)進(jìn)入空閑狀態(tài)?;蛟谄?他情況下,可w強(qiáng)制諸如圖形處理單元之類的額外的計算引擎或其他運(yùn)樣的引擎進(jìn)入給定 低功率狀態(tài)。在一個實(shí)施例中,在受支持的處理器上,可W可控制地啟用或默認(rèn)地禁用皿C。 在運(yùn)樣的情況下,系統(tǒng)軟件(例如,操作系統(tǒng)(0巧或基本輸入輸出系統(tǒng)度10巧)可W動態(tài) 地啟用或禁用皿C操作。注意,當(dāng)在活躍的皿C模式,處理器不延遲諸如計時器失效或任何 接收設(shè)備中斷之類的事件,但是,當(dāng)線程在恰恰好快要完成并進(jìn)入天然的空閑狀態(tài)之前被 強(qiáng)制進(jìn)入空閑狀態(tài)時,它可能會影響短軟件線程的延遲,并且會因?yàn)榉钦5膱?zhí)行流程的 強(qiáng)制空閑而在正常的執(zhí)行中添加延遲。
[0019] 皿C強(qiáng)制的空閑操作可W被視為操作頻率下降。目P,有效平均操作頻率(例如,如 由軟件計算出的)包括皿C強(qiáng)制的空閑影響。軟件還將簡單地計數(shù)皿C操作,作為其定期 執(zhí)行時間過程中的空閑時間。
[0020] 皿C的主要目標(biāo)是對于低活躍度的工作負(fù)荷而言延長在深度低功率狀態(tài)(例如, 封裝級別低功率狀態(tài))中的停留時間,W及對于高活躍度的工作負(fù)荷而言,在功率或熱限 審揃情況下,提供降低平均操作頻率的比較有效的方式。當(dāng)邏輯處理器、核或封裝進(jìn)入強(qiáng)制 的空閑狀態(tài)時,它可W被置于相對深度低功率狀態(tài),特別是在接收事件被校準(zhǔn)到在活動窗 口中發(fā)生的情況下。
[0021] 現(xiàn)在參考圖1,所示是根據(jù)本發(fā)明的實(shí)施例的系統(tǒng)的一部分的框圖。如圖1所示, 系統(tǒng)100可W包括各種組件,包括處理器110,如圖所示,該處理器110是多核處理器。處理 器110可W通過外部電壓調(diào)節(jié)器160禪合到電源150,調(diào)節(jié)器160可W執(zhí)行第一電壓轉(zhuǎn)換, W向處理器110提供主要被調(diào)節(jié)的電壓。
[0022] 可W看出,處理器110可W是包括多個核120。-120。的單管忍處理器。另外,每一 個核還可W與集成的調(diào)壓器(IVR)125a-125n相關(guān)聯(lián),運(yùn)些集成的調(diào)壓器接收主要被調(diào)節(jié) 的電壓,并生成操作電壓,操作電波被提供到與IVR相關(guān)聯(lián)的處理器的一個或多個代理。相 應(yīng)地,可W提供IVR實(shí)現(xiàn),W允許對每一個單個核的電壓進(jìn)行細(xì)粒度的控制,因而對每一個 單個核的功率和性能進(jìn)行細(xì)粒度的控制。如此,每一個核都可W在獨(dú)立電壓和頻率下操作, 允許極大的靈活性,并提供用于對功率消耗與性能進(jìn)行平衡的廣泛的機(jī)會。
[0023] 仍參考圖1,額外的組件可W存在于處理器內(nèi),包括輸入/輸出接口 132、另一接口 134W及集成的存儲器控制器136??蒞看出,運(yùn)些組件中的每一個都可W由另一集成的電 壓調(diào)節(jié)器125、來供電。在一個實(shí)施例中,接口 132可W符合Intel敏快速路徑互連(QPI)協(xié) 議,該協(xié)議在高速緩存一致性協(xié)議中提供點(diǎn)對點(diǎn)(Pt巧鏈路,該高速緩存一致性協(xié)議包括 多個層,包括物理層、鏈路層W及協(xié)議層。接口 134又可W符合外圍組件互連快速(PCIe?) 規(guī)范,例如,PCIExpress?規(guī)范基礎(chǔ)規(guī)范版本2. 0 (2007年1月17日)。
[0024] 還示出了功率控制單元(PCU) 138,該功率控制單元(PCU) 138可包括對于處理器 110執(zhí)行功率管理操作的硬件、軟件和/或固件??蒞看出,PCU138通過數(shù)字接口向外部 電壓調(diào)節(jié)器160提供控制信息,W導(dǎo)致電壓調(diào)節(jié)器生成合適的被調(diào)節(jié)的電壓。PCU138還 通過另一數(shù)字接口向IVR125提供控制信息,W控制所生成的操作電壓(或?qū)е聦?yīng)的IVR 在低功率模式下被禁用)。在各實(shí)施例中,PCU138可包括控制并執(zhí)行如此處所描述的皿C 操作的邏輯。 陽0巧]盡管為便于說明未示出,但是,可W理解,額外的組件可W存在于處理器110內(nèi), 諸如非核邏輯、及其他組件,諸如圖形處理器、內(nèi)部存儲器,例如,一個或多個級別的緩存存 儲器層次結(jié)構(gòu)等等。此外,盡管在圖1的實(shí)現(xiàn)中是利用集成的電壓調(diào)節(jié)器示出的,但是,各 實(shí)施例不是限制性的。此外,還可W理解,在某些實(shí)施例中,某些組件可W共享電壓調(diào)節(jié)器, 而其他組件可W具有專用的電壓調(diào)節(jié)器。
[0026] 雖然參考特定集成電路(諸如在計算平臺或處理器中)描述了下列實(shí)施例,但其 他實(shí)施例也適用于其他類型的集成電路和邏輯設(shè)備??蒞將此處所描述的各實(shí)施例的類似 的技術(shù)和教示應(yīng)用于也可W得益于更好的能量效率和能量節(jié)約的其他類型的電路或半導(dǎo) 體器件。例如,所公開的各實(shí)施例不僅限于任何特定類型的計算機(jī)系統(tǒng),也可W用于諸如手 持式設(shè)備、片上系統(tǒng)(S0C)設(shè)備W及嵌入式應(yīng)用之類的其他設(shè)備中。手持式設(shè)備的某些示 例包括蜂窩電話、網(wǎng)際協(xié)議設(shè)備、數(shù)碼相機(jī)、個人數(shù)字助理(PDA)W及手持式PC。嵌入式應(yīng) 用通常包括微控制器、數(shù)字信號處理器值SP)、網(wǎng)絡(luò)計算機(jī)(NetPC)、機(jī)頂盒、網(wǎng)絡(luò)集線器、 廣域網(wǎng)(WAN)交換機(jī),或能夠執(zhí)行下面教導(dǎo)的功能和操作的任何其他系統(tǒng)。此外,此處所描 述的設(shè)備、方法,W及系統(tǒng)也不僅限于物理計算設(shè)備,但是,也可W設(shè)及對于節(jié)能和效率的 軟件優(yōu)化。如在下面的描述中顯而易見地看出,此處所描述的方法、設(shè)備W及系統(tǒng)的各實(shí)施 例(無論引用硬件、固件、軟件或其組合)為未來的綠色技術(shù)摂所不可缺少的,諸如,用于涵 蓋美國經(jīng)濟(jì)的大部分的產(chǎn)品中的電能節(jié)省和能量效率。
[0027] 注意,此處所描述的硬件輪?;驒C(jī)會性的斷電(0PD)操作可W獨(dú)立于基于操作系 統(tǒng)(0巧的機(jī)制,諸如高級配置和平臺接口(ACPI)標(biāo)準(zhǔn)(例如,2006年10月10日發(fā)布的 Rev.3.化),并與其互補(bǔ)。根據(jù)ACPI,處理器可W操作在各種性能狀態(tài)或級別,所謂的P狀 態(tài),即,從P0到PN。一般而言,P1性能狀態(tài)可W對應(yīng)于可W由0S請求的最高保證的性能 狀態(tài)。除此P1狀態(tài)之外,0S還可W請求較高性能狀態(tài),即,P0狀態(tài)。如此,此P0狀態(tài)可W 是機(jī)會性狀態(tài)或超頻模式狀態(tài),其中,當(dāng)有電能和/或熱預(yù)算可用時,處理器硬件可W配置 處理器或其至少一些部分,W便W高于保證的頻率操作。在許多實(shí)現(xiàn)中,處理器可包括高于 P1保證的最大頻率的多個所謂的元頻率,也被稱為P1頻率,超出特定處理器的最大峰值頻 率,運(yùn)是在制造過程中烙化的或W別的方式寫入到處理器中。另外,根據(jù)ACPI,處理器還可 W在各種功率狀態(tài)或級別下操作。相對于功率狀態(tài),ACPI指定不同的功率消耗狀態(tài),一般 被稱為C狀態(tài),C0,C1到化狀態(tài)。當(dāng)核活躍時,它在C0狀態(tài)運(yùn)行,而當(dāng)核空閑時,它可W被 置于核低功率狀態(tài),也叫做核非零C狀態(tài)(例如,C1-C6狀態(tài)),每一個C狀態(tài)都處于低功率 消耗級別便C6是比C1更深的低功率狀態(tài),等等)。在強(qiáng)制的空閑狀態(tài),硬件線程、核和 /或處理器封裝可W被置于所選擇的C狀態(tài),例如,至少C3狀態(tài)。
[0028] 各實(shí)施例提供允許0S、BI0S或其他系統(tǒng)軟件判斷皿C是否在給定處理器上得到支 持,控制皿C操作并監(jiān)測其影響的各種接口。在不同的實(shí)施例中,對皿C的控制可WW各種 方式實(shí)行。在一個實(shí)施例中,可W通過系統(tǒng)BIOS,利用完全控制啟用皿C,有或者沒有來自 0S驅(qū)動程序的輔助,0S驅(qū)動程序可W由0S供應(yīng)商或者由任何其他軟件供應(yīng)商開發(fā)。在此 模式下,0S不控制皿C。在另一個實(shí)施例中,可W通過0S,利用完全控制來啟用皿C,W便0S 可W動態(tài)地啟用或禁用皿C。在一個實(shí)施例中,系統(tǒng)BIOS在引導(dǎo)過程中選擇皿C控制操作 的模式。在皿C由0S控制的情況下,硬件可W枚舉皿C操作的能力。0S又可W確保皿C在 給定處理器上得到支持,然后,啟用皿C。
[0029] 皿C啟用/禁用在處理器封裝級別或者在邏輯處理器級別是可能的。如此處所使 用的,術(shù)語"邏輯處理器"和"硬件線程"是可互換的,用于表示處理器的提供對要在核的其 他邏輯或其他硬件上執(zhí)行的線程進(jìn)行控制w及其狀態(tài)的硬件結(jié)構(gòu)。
[0030] 為了使邏輯處理器參與輪停,封裝W及該邏輯處理器兩者都可W啟用皿C。啟用或 禁用封裝級別皿C可W通過任何邏輯處理器來完成。邏輯處理器級別皿C可W在只在該邏 輯處理器上執(zhí)行的上下文內(nèi)啟用或禁用。在一種默認(rèn)情況下,在一個實(shí)施例中,邏輯處理器 皿C是啟用的,而封裝級別是禁用的。在此默認(rèn)情況下,0S可W決定使用皿C,W便0S啟用 封裝級別皿CW便啟用皿C操作。
[0031] 現(xiàn)在參照圖2,其中示出了根據(jù)本發(fā)明一實(shí)施例的處理器的框圖。如圖2所示,處 理器200實(shí)現(xiàn)為多核處理器,例如,單一封裝處理器,其中,在封裝內(nèi)的一個或多個半導(dǎo)體 管忍上實(shí)現(xiàn)多個核及其他計算引擎。注意,此邏輯圖示將核與封裝分離,并將線程與核分 離;然而,可W理解:線程是硬件線程或是基礎(chǔ)核的邏輯處理器,并且核本身是封裝的一部 分。當(dāng)然,還可W為多封裝系統(tǒng)提供皿C支持。
[0032] 在圖2的示圖中,注意封裝級別啟用/禁用指示符212的存在,該指示符212被配 置成指示處理器作為整體(例如,整個封裝地)是否被允許被置于強(qiáng)制的空閑狀態(tài)。還存在 強(qiáng)制的空閑計數(shù)器214,該計數(shù)器214被配置成計數(shù)封裝處于強(qiáng)制的空閑狀態(tài)的周期,意味 著,封裝內(nèi)的至少一個硬件線程正處于強(qiáng)制的空閑狀態(tài),而封裝的所有其他線程處于空閑 狀態(tài)(天然地通過0S請求或由于強(qiáng)制的空閑)。另外,還存在多個低功率狀態(tài)計數(shù)器215, 此處也被稱為C狀態(tài)計數(shù)器。
[0033] 仍參考圖2,存在包括皿C邏輯218的功率控制單元(PCU) 216,下面將進(jìn)一步描述 其細(xì)節(jié)。簡單地說,皿C邏輯218設(shè)及實(shí)現(xiàn)封裝范圍內(nèi)的進(jìn)入合適的輪停狀態(tài)的決定,包括 運(yùn)些狀態(tài)的持續(xù)時間,W及在各種邏輯處理器、核、計算引擎及封裝210內(nèi)的其他運(yùn)樣的單 元之間對運(yùn)些輪停狀態(tài)的控制的協(xié)調(diào)或同步。
[0034] 仍參考圖2,在封裝210內(nèi)存在多個核220。-22〇m??蒞看出,每一個核都包括其 自己的強(qiáng)制空閑計數(shù)器225。-225"。運(yùn)些強(qiáng)制空閑計數(shù)器可W被配置成計數(shù)當(dāng)對應(yīng)的核的 一個或多個邏輯處理器(即,硬件線程)處于強(qiáng)制的空閑狀態(tài)時的諸個空閑周期。還存在 也具有其自己的強(qiáng)制空閑計數(shù)器225。的圖形處理器220。。<