欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于能效和節(jié)能的方法、裝置和系統(tǒng)與流程

文檔序號(hào):12662946閱讀:208來源:國知局
用于能效和節(jié)能的方法、裝置和系統(tǒng)與流程

技術(shù)領(lǐng)域

本公開涉及集成電路中的能效和節(jié)能以及在集成電路上執(zhí)行的代碼,更具體地但不排他地涉及平衡處理元件之間的功率和性能。



背景技術(shù):

半導(dǎo)體處理和邏輯設(shè)計(jì)的進(jìn)步已允許在集成電路器件上可能存在的邏輯量的增加。因此,計(jì)算機(jī)系統(tǒng)配置已經(jīng)從系統(tǒng)中的單個(gè)或多個(gè)集成電路進(jìn)化至各個(gè)集成電路上的多個(gè)硬件線程、多個(gè)核、多個(gè)設(shè)備和/或完整的系統(tǒng)。此外,隨著集成電路密度增長,計(jì)算系統(tǒng)(從嵌入式系統(tǒng)到服務(wù)器)的功率需求也逐步提高。此外,軟件低效率及其對(duì)硬件的要求也已造成了計(jì)算設(shè)備能耗的提高。實(shí)際上,一些研究表明計(jì)算機(jī)消耗了美國全部電力供應(yīng)的大部分。

因此,存在對(duì)與集成電路相關(guān)聯(lián)的能效和節(jié)能的關(guān)鍵需求。而且,隨著服務(wù)器、桌面計(jì)算機(jī)、筆記本、超極本、平板、移動(dòng)電話、處理器、嵌入式系統(tǒng)等等變得更加流行(從包括在典型的計(jì)算機(jī)、汽車和電視中到生物技術(shù)),計(jì)算設(shè)備銷售的影響已然超出能耗的范圍而延伸至對(duì)經(jīng)濟(jì)系統(tǒng)存在顯著、直接的影響。

此外,隨著集成電路密度增加,在單個(gè)集成電路和/或封裝中合并多個(gè)器件的能力已經(jīng)類似地提高。作為說明性示例,芯片上系統(tǒng)(SOC)器件最近備受青睞。然而,通常SOC(以及類似組件)將多個(gè)器件集成到單個(gè)設(shè)備/電路中,不過它們也繼承每個(gè)單獨(dú)器件的功率、性能和熱限制。因此,具有主控處理器和圖形處理器的設(shè)備通常單獨(dú)和分別地實(shí)現(xiàn)節(jié)能策略。即使針對(duì)整個(gè)封裝定義了功率策略,它通常僅針對(duì)各個(gè)器件中的每一個(gè)構(gòu)想假定的功率要求,而不會(huì)平衡不對(duì)稱核之間的功率和性能以實(shí)現(xiàn)最大整體性能。

附圖說明

本發(fā)明通過示例進(jìn)行說明,而且不旨在受限于附圖的各圖。

圖1示出包括具有多處理元件處理器和集成圖形處理器的集成電路的系統(tǒng)的邏輯表示的實(shí)施例。

圖2示出計(jì)算機(jī)系統(tǒng)配置的邏輯表示的實(shí)施例。

圖3示出計(jì)算機(jī)系統(tǒng)配置的邏輯表示的另一實(shí)施例。

圖4示出計(jì)算機(jī)系統(tǒng)配置的邏輯表示的另一實(shí)施例。

圖5示出用于平衡處理元件之間的功率以實(shí)現(xiàn)最大整體性能的集成電路的邏輯表示的實(shí)施例。

圖6示出用于平衡處理元件之間的功率以實(shí)現(xiàn)最大整體性能的集成電路的邏輯表示的另一實(shí)施例。

圖7示出用于平衡處理器與圖形處理器之間的功率以在功率限制之內(nèi)實(shí)現(xiàn)最大性能的流程圖的實(shí)施例。

圖8示出用于平衡處理器與圖形處理器之間的功率以在功率限制之內(nèi)實(shí)現(xiàn)最大性能的流程圖的另一實(shí)施例。

具體實(shí)施方式

在以下描述中,陳述了多個(gè)特定細(xì)節(jié),諸如特定類型的特定處理器和系統(tǒng)配置、特定硬件結(jié)構(gòu)、特定架構(gòu)和微架構(gòu)細(xì)節(jié)、特定寄存器配置、用于確定工作負(fù)荷的特定結(jié)構(gòu)、用于確定和設(shè)置性能/功率限制的特定模塊、特定類型的性能限制、特定類型的處理器件、特定類型的程序代碼、特定性能瓶頸假定、包括不對(duì)稱處理器的特定器件等等的示例,以提供對(duì)本發(fā)明的透徹理解。然而,對(duì)本領(lǐng)域普通技術(shù)人員顯而易見的是,不一定要采用這些具體細(xì)節(jié)來實(shí)施本發(fā)明。在其它實(shí)例中,未詳細(xì)描述公知的組件或方法,諸如特定和替代的處理器架構(gòu)、用于所描述算法的特定邏輯電路/代碼、特定固件代碼、特定互連操作、特定工作負(fù)荷確定、特定頻率設(shè)置技術(shù)、特定功率限制確定以及實(shí)現(xiàn)算法以及處理器的其它特定操作細(xì)節(jié),以免不必要地模糊本發(fā)明。

雖然參考特定集成電路中(諸如計(jì)算平臺(tái)或微處理器中)的節(jié)能和能效描述了以下實(shí)施例,但其它實(shí)施例可適用于其它類型的集成電路和邏輯器件。在此描述的實(shí)施例的相似的技術(shù)和教導(dǎo)可適用于也可受益于更好能效和節(jié)能的其它類型的電路或半導(dǎo)體器件。例如,所公開的實(shí)施例不限于桌面計(jì)算機(jī)系統(tǒng)。也可用于其它設(shè)備,諸如手持式設(shè)備、芯片上系統(tǒng)(SOC)以及嵌入式應(yīng)用。手持式設(shè)備的一些示例包括蜂窩電話、因特網(wǎng)協(xié)議設(shè)備、數(shù)碼相機(jī)、個(gè)人數(shù)字助理(PDA)、手持式PC。嵌入式應(yīng)用典型地包括微控制器、數(shù)字信號(hào)處理器(DSP)、芯片上系統(tǒng)、網(wǎng)絡(luò)計(jì)算機(jī)(NetPC)、機(jī)頂盒、網(wǎng)絡(luò)集線器、廣域網(wǎng)(WAN)交換機(jī)、或可執(zhí)行以下教導(dǎo)的功能和操作的任何其他系統(tǒng)。此外,本申請(qǐng)中描述的裝置、方法和系統(tǒng)不限于物理計(jì)算設(shè)備,而是也涉及用于節(jié)能和能效的軟件優(yōu)化。如將在以下描述中容易變得明顯地,本申請(qǐng)中描述的方法、裝置和系統(tǒng)的實(shí)施例(不論是參考硬件、固件、軟件還是其組合)對(duì)于與性能考慮相平衡的“綠色技術(shù)”未來是關(guān)鍵的。

本申請(qǐng)中描述的方法和裝置用于平衡多個(gè)不對(duì)稱器件之間的功率以實(shí)現(xiàn)最大整體性能。特定地,在下文中主要參考包括中央處理器/主控處理器(或其核)和圖形處理器(或其核)的集成電路和/或封裝來討論功率平衡和分配。不過,本申請(qǐng)中描述的裝置和方法不限于此,因?yàn)樗鼈兛山Y(jié)合包括任何類型的不對(duì)稱或?qū)ΨQ處理核的任何集成電路器件來實(shí)現(xiàn)。例如,可在兩個(gè)主控處理核之間、處理核與存儲(chǔ)器之間、和/或集成I/O器件之間利用如本申請(qǐng)中所描述的功率平衡和分配。如上所討論,它可用于服務(wù)器、臺(tái)式計(jì)算機(jī)、超極本、平板、小形狀因數(shù)設(shè)備、手持式設(shè)備、SOC或嵌入式應(yīng)用。

參考圖1,示出了包括多個(gè)器件/核的集成電路(或封裝)的實(shí)施例。集成電路(IC)100包括任何處理器或處理設(shè)備,諸如微處理器、嵌入式處理器、數(shù)字信號(hào)處理器(DSP)、網(wǎng)絡(luò)處理器、手持式處理器、應(yīng)用處理器、協(xié)處理器、或用于執(zhí)行代碼的其它器件。在一個(gè)實(shí)施例中,處理器100包括:至少兩個(gè)中央的、主控或處理核——核101和102,這兩個(gè)核可以是不對(duì)稱核或?qū)ΨQ核(所示實(shí)施例);以及輸入/輸出(I/O)設(shè)備180,諸如圖形處理器(或它的核)。然而,IC 100可包括任何數(shù)量的處理元件,這些處理元件可以是對(duì)稱的或不對(duì)稱的。

在一個(gè)實(shí)施例中,處理元件指的是用于支持軟件線程的硬件或邏輯?;蛟诹硪粚?shí)施例中,處理元件指的是設(shè)備的核或處理邏輯,諸如圖形處理器/核、網(wǎng)絡(luò)控制器、嵌入式處理器、微控制器、等等。硬件中央處理元件的其它示例包括:線程單元、線程槽、線程、進(jìn)程單元、上下文、上下文單元、邏輯處理器、硬件線程、核、和/或能保持處理器的諸如執(zhí)行狀態(tài)或架構(gòu)狀態(tài)之類的狀態(tài)的任何其它元件。換言之,在一個(gè)實(shí)施例中,處理元件指的是能夠與諸如軟件線程、操作系統(tǒng)、應(yīng)用、或其它代碼之類的代碼獨(dú)立地相關(guān)聯(lián)的任何硬件。物理處理器通常指的是集成電路,其可能包括任意數(shù)量的諸如核或硬件線程之類的其它處理元件。

處理(或中央處理單元)核通常指的是位于集成電路上的能夠維持獨(dú)立架構(gòu)狀態(tài)的邏輯,其中每個(gè)獨(dú)立維持的架構(gòu)狀態(tài)與至少某些專用執(zhí)行資源相關(guān)聯(lián)。與核相反,硬件線程通常指的是位于集成電路上的能維持獨(dú)立架構(gòu)狀態(tài)的任何邏輯,其中獨(dú)立維持的架構(gòu)狀態(tài)共享對(duì)執(zhí)行資源的訪問??梢钥闯?,當(dāng)某些資源是共享的而其它資源是架構(gòu)狀態(tài)專用時(shí),硬件線程與核的術(shù)語之間的界線交疊。不過通常,核和硬件線程被操作系統(tǒng)視為各個(gè)邏輯處理器,其中操作系統(tǒng)能夠分別在每個(gè)邏輯處理器上調(diào)度操作。

如圖1中所示的物理封裝100包括兩個(gè)處理核,即核101和102。在此,核101和102被視為對(duì)稱核,即具有相同配置、功能單元和/或邏輯的核。在另一實(shí)施例中,核101包括無序處理器核,而核102包括有序處理器核。然而,可從任何類型的核中分別選擇核101和102,諸如原生核、軟件管理的核、適于執(zhí)行原生指令集架構(gòu)(ISA)的核、適于執(zhí)行經(jīng)轉(zhuǎn)換指令集架構(gòu)(ISA)的核、共同設(shè)計(jì)的核或其它已知核。不過為了進(jìn)一步討論,在下文中更詳細(xì)描述了核101中示出的功能單元,因?yàn)楹?02中的單元以相似的方式操作。

如所描繪,核101包括兩個(gè)硬件線程101a和101b,它們可被稱為硬件線程槽101a和101b。因此,在一個(gè)實(shí)施例中,諸如操作系統(tǒng)之類的軟件實(shí)體可能將處理器100視為四個(gè)單獨(dú)的處理器,即能夠同時(shí)執(zhí)行四個(gè)軟件線程的四個(gè)邏輯處理器或處理元件。此外,第一線程與架構(gòu)狀態(tài)寄存器101a相關(guān)聯(lián),第二線程與架構(gòu)狀態(tài)寄存器101b相關(guān)聯(lián),第三線程可與架構(gòu)狀態(tài)寄存器102a相關(guān)聯(lián),以及第四線程可與架構(gòu)狀態(tài)寄存器102b相關(guān)聯(lián)。在此,架構(gòu)狀態(tài)寄存器(101a、101b、102a和102b)中的每一個(gè)可被稱為處理元件、線程槽或線程單元,如上所述。如上所述,架構(gòu)狀態(tài)寄存器101a被復(fù)制在架構(gòu)狀態(tài)寄存器101b中,因此能夠?yàn)檫壿嬏幚砥?01a和邏輯處理器101b存儲(chǔ)各個(gè)架構(gòu)狀態(tài)/上下文。在核101中,也為線程101a和101b復(fù)制其它較小的資源,諸如重命名分配器邏輯130中的指令指針和重命名邏輯。諸如重排序器/引退單元135中的重排序緩沖器、ILTB 120、加載/存儲(chǔ)緩沖器、以及隊(duì)列之類的一些資源可通過分區(qū)來共享。諸如通用內(nèi)部寄存器、頁表基本寄存器、低級(jí)數(shù)據(jù)高速緩存和數(shù)據(jù)TLB 115、執(zhí)行單元140、以及無序單元135的多個(gè)部分之類的其它資源可能被完全共享。

處理器100通常包括其它資源,這些其它資源可被完全共享、通過分區(qū)共享、或由處理元件專用/專用于處理元件。在圖1中,示出了具有處理器的說明性的邏輯單元/資源的純示例性處理器的實(shí)施例。注意,處理器可包括或省略這些功能單元中的任一個(gè),并包括未描繪出的任何其它已知的功能單元、邏輯或固件。如所示,核101包括簡(jiǎn)化的表示性的無序(OOO)處理器核。但是,在不同實(shí)施例中可利用有序處理器。OOO核包括用于預(yù)測(cè)要執(zhí)行/采用的分支的分支目標(biāo)緩沖器120和用于存儲(chǔ)指令的地址轉(zhuǎn)換條目的指令轉(zhuǎn)換緩沖器(I-TLB)120。

核101進(jìn)一步包括耦合至取出單元120的解碼模塊125,用于解碼取出的元素。在一個(gè)實(shí)施例中,取出邏輯包括分別與線程槽101a、101b相關(guān)聯(lián)的各個(gè)序列發(fā)生器。通常,核101與第一指令集架構(gòu)(ISA)相關(guān)聯(lián),第一指令集架構(gòu)(ISA)定義/指定能在處理器100上執(zhí)行的指令。通常,作為第一ISA的部分的機(jī)器代碼指令包括該指令的部分(稱為操作碼),該部分引用/指定要執(zhí)行的指令或操作。解碼邏輯125包括電路,所述電路根據(jù)這些指令的操作碼來識(shí)別這些指令并在流水線中傳遞經(jīng)解碼的指令,以供按照第一ISA定義地那樣來處理。例如,如下文更詳細(xì)討論地,在一個(gè)實(shí)施例中,解碼器125包括設(shè)計(jì)成或適合于識(shí)別諸如事務(wù)性指令之類的特定指令的邏輯。作為解碼器125識(shí)別的結(jié)果,架構(gòu)或核101采取特定、預(yù)定義的動(dòng)作以執(zhí)行與適當(dāng)指令相關(guān)聯(lián)的任務(wù)。重要的是應(yīng)注意,本申請(qǐng)中描述的任務(wù)、塊、操作和方法中的任一個(gè)可響應(yīng)于單個(gè)或多個(gè)指令來執(zhí)行;它們中的一些可以是新的或舊的指令。

在一個(gè)示例中,分配器和重命名器塊130包括用于預(yù)留資源的分配器,諸如用于存儲(chǔ)指令處理結(jié)果的寄存器組。然而,線程101a和101b可能能夠無序地執(zhí)行,在此情況下,分配器和重命名器塊130也預(yù)留其它資源,諸如用于跟蹤指令結(jié)果的重排序緩沖器。單元130也可包括寄存器重命名器,用于將程序/指令引用寄存器重命名為處理器100內(nèi)部的其它寄存器。重排序器/引退單元135包括諸如上述的重排序緩沖器、加載緩沖器以及存儲(chǔ)緩沖器之類的組件,以支持無序執(zhí)行和無序執(zhí)行的指令的稍后有序引退。

在一個(gè)實(shí)施例中,調(diào)度器和執(zhí)行單元塊140包括調(diào)度器單元,用于在執(zhí)行單元上調(diào)度指令/操作。例如,在具有可用的浮點(diǎn)執(zhí)行單元的執(zhí)行單元的端口上調(diào)度浮點(diǎn)指令。還包括與執(zhí)行單元相關(guān)聯(lián)的寄存器組,用于存儲(chǔ)信息指令處理結(jié)果。示例性的執(zhí)行單元包括浮點(diǎn)執(zhí)行單元、整數(shù)執(zhí)行單元、跳轉(zhuǎn)執(zhí)行單元、加載執(zhí)行單元、存儲(chǔ)執(zhí)行單元以及其它已知的執(zhí)行單元。

較低級(jí)數(shù)據(jù)高速緩存和數(shù)據(jù)轉(zhuǎn)換緩沖器(D-TLB)150耦合至執(zhí)行單元140。數(shù)據(jù)高速緩存用于存儲(chǔ)諸如數(shù)據(jù)操作數(shù)之類的最近使用/操作的元素,這些元素可能以存儲(chǔ)器一致性狀態(tài)被保持。D-TLB用于存儲(chǔ)最近的虛擬/線性至物理地址轉(zhuǎn)換。作為特定示例,處理器可包括頁表結(jié)構(gòu),用于將物理存儲(chǔ)器分解成多個(gè)虛擬頁。

在此,核101和102共享對(duì)較高級(jí)或進(jìn)一步遠(yuǎn)離的高速緩存110的訪問,較高級(jí)或進(jìn)一步遠(yuǎn)離的高速緩存用于高速緩存最近取出的元素。注意,較高級(jí)或進(jìn)一步遠(yuǎn)離的高速緩存指的是從執(zhí)行單元提高或進(jìn)一步遠(yuǎn)離執(zhí)行單元的高速緩存級(jí)。在一個(gè)實(shí)施例中,較高級(jí)的高速緩存110是末級(jí)數(shù)據(jù)高速緩存——處理器100上的存儲(chǔ)器層次中的最后一級(jí)高速緩存,諸如二級(jí)或三級(jí)數(shù)據(jù)高速緩存。然而,較高級(jí)高速緩存110不限于此,因?yàn)樗膳c指令高速緩存相關(guān)聯(lián)或包括指令高速緩存。替代地,跟蹤高速緩存——一種類型的指令高速緩存——可耦合在解碼器125之后以存儲(chǔ)最近解碼的蹤跡。

在所描繪的配置中,處理器100還包括總線接口模塊105。在過去,下文更詳細(xì)描述的控制器170已被包含在處理器100外部的計(jì)算系統(tǒng)中。在該情形下,總線接口105用于與處理器100外部的設(shè)備通信,這些設(shè)備諸如系統(tǒng)存儲(chǔ)器175、芯片組(通常包括用于連接至存儲(chǔ)器175的存儲(chǔ)器控制器中樞和用于連接外圍設(shè)備的I/O控制器中樞)、存儲(chǔ)器控制器中樞、北橋或其它集成電路。并且,在此情形下,總線105可包括任何已知的互連,諸如多分支總線、點(diǎn)對(duì)點(diǎn)互連、串行互連、并行總線、一致(例如高速緩存一致)總線、分層協(xié)議架構(gòu)、差分總線以及GTL總線。

存儲(chǔ)器175可專用于處理器100,或與系統(tǒng)中的其它設(shè)備共享。存儲(chǔ)器175的類型的常見示例包括動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、靜態(tài)RAM(SRAM)、非易失性存儲(chǔ)器(NV存儲(chǔ)器)以及其它已知的存儲(chǔ)設(shè)備。與以上討論類似,I/O設(shè)備180已經(jīng)傳統(tǒng)地被包括在中央處理單元外部的計(jì)算系統(tǒng)中。在此,設(shè)備180可包括耦合至存儲(chǔ)器控制器中樞的圖形加速器、處理器或卡、耦合至I/O控制器中樞的數(shù)據(jù)儲(chǔ)存器、無線收發(fā)機(jī)、閃存設(shè)備、音頻控制器、網(wǎng)絡(luò)控制器或其它已知設(shè)備。

然而應(yīng)注意,在所描繪的實(shí)施例中,控制器170和I/O設(shè)備180被示為處理器100的部分。最近,隨著更多的邏輯和器件被集成在諸如芯片上系統(tǒng)(SOC)之類的單個(gè)管芯上,這些器件中的每一個(gè)器件可被包含在處理器100上,以形成具有多個(gè)器件的單個(gè)封裝或單個(gè)集成電路。例如,在一個(gè)實(shí)施例中,存儲(chǔ)器控制器中樞170和圖形處理器/器件180被包括在與中央處理器單元相同的封裝和/或管芯上以形成IC 100,該IC 100在此可被稱為處理器100,該處理器100包括集成存儲(chǔ)器控制器170和圖形器件180。在此,核的部分(核上部分)包括一個(gè)或多個(gè)控制器170,用于與諸如存儲(chǔ)器175和/或圖形器件180之類的其它器件相連接。包括互連和用于與此類器件相連接的控制器的該配置通常被稱為核上(或非核配置)。作為示例,總線接口105包括環(huán)形互連,該環(huán)形互連具有用于與存儲(chǔ)器175相連接的存儲(chǔ)器控制器,以及用于與圖形處理器180相連接的圖形控制器。圖形處理器180甚至可直接訪問高速緩存110。不過,在SOC環(huán)境下,可在單個(gè)管芯或集成電路上集成甚至更多的器件,諸如網(wǎng)絡(luò)接口、協(xié)處理器、存儲(chǔ)器175、圖形處理器180以及任何其它已知的計(jì)算機(jī)器件/接口,以提供具有高功能性和低功耗的小形狀因數(shù)。如在下文中更詳細(xì)討論,當(dāng)開發(fā)用于整個(gè)IC 100的功率策略時(shí),用于重要的集成電路(諸如核101-102和圖形器件180)之間的功率平衡的技術(shù)變得更加重要。

在一個(gè)實(shí)施例中,處理器100能夠執(zhí)行編譯器、優(yōu)化和/或轉(zhuǎn)換器代碼177以編譯、轉(zhuǎn)換和/或優(yōu)化應(yīng)用代碼176,以支持本申請(qǐng)中描述的裝置和方法或與本申請(qǐng)中描述的裝置和方法相連接。編譯器通常包括用于將源文本/代碼轉(zhuǎn)換成目標(biāo)文本/代碼的程序或程序集合。通常,利用編譯器對(duì)程序/應(yīng)用代碼的編譯是在多個(gè)階段和多次運(yùn)行中完成的,以將高級(jí)編程語言代碼轉(zhuǎn)換成低級(jí)機(jī)器或匯編語言代碼。不過,對(duì)于簡(jiǎn)單編譯,仍可利用單次運(yùn)行編譯器。編譯器可利用任何已知的編譯技術(shù),并執(zhí)行任何已知的編譯器操作,諸如詞法分析、預(yù)處理、解析、語義分析、代碼生成、代碼轉(zhuǎn)換以及代碼優(yōu)化。

更大的編譯器通常包括多個(gè)階段,但多數(shù)時(shí)候這些階段被包括在兩個(gè)一般階段中:(1)前端,一般而言,即在其中可進(jìn)行語法處理、語義處理以及一些轉(zhuǎn)換/優(yōu)化,(2)后端,一般而言,即在其中可進(jìn)行分析、轉(zhuǎn)換、優(yōu)化以及代碼生成。一些編譯器指的是中端,其示出了編譯器的前端與后端之間的界定的模糊。因此,對(duì)插入、關(guān)聯(lián)、生成或編譯器的其它操作的引用可在編譯器的上述階段或運(yùn)行中的任一個(gè)以及任何其它已知的階段或運(yùn)行中進(jìn)行。作為說明性示例,編譯器可能在編譯的一個(gè)或多個(gè)階段中插入操作、調(diào)用、函數(shù)等等,諸如在編譯的前端階段插入調(diào)用/操作,然后在轉(zhuǎn)換階段期間將這些調(diào)用/操作轉(zhuǎn)換成較低級(jí)代碼。注意,在動(dòng)態(tài)編譯期間,編譯器代碼或動(dòng)態(tài)優(yōu)化代碼可插入這樣的操作/調(diào)用,并優(yōu)化代碼以供在運(yùn)行時(shí)間期間執(zhí)行。作為特定的說明性示例,可在運(yùn)行時(shí)間期間動(dòng)態(tài)地優(yōu)化二進(jìn)制代碼(已經(jīng)是經(jīng)編譯的代碼)。在此,程序代碼可包括動(dòng)態(tài)優(yōu)化代碼、二進(jìn)制代碼或其組合。

與編譯器類似,諸如二進(jìn)制轉(zhuǎn)換器之類的轉(zhuǎn)換器將代碼靜態(tài)地或動(dòng)態(tài)地轉(zhuǎn)換以優(yōu)化和/或轉(zhuǎn)換代碼。因此,對(duì)代碼、應(yīng)用代碼、程序代碼或其它軟件環(huán)境的執(zhí)行的引用可表示:(1)執(zhí)行編譯器程序、優(yōu)化代碼優(yōu)化器或轉(zhuǎn)換器,以動(dòng)態(tài)地或靜態(tài)地編譯程序代碼、維護(hù)軟件結(jié)構(gòu)、執(zhí)行其它操作、優(yōu)化代碼或轉(zhuǎn)換代碼;(2)執(zhí)行包括操作/調(diào)用的主程序代碼,諸如已經(jīng)被優(yōu)化/編譯的應(yīng)用代碼;(3)執(zhí)行與主程序代碼相關(guān)聯(lián)的其它程序代碼(諸如庫),以維護(hù)軟件結(jié)構(gòu)、執(zhí)行其它軟件相關(guān)操作、或用于優(yōu)化代碼;或(4)上述的組合。

在一個(gè)實(shí)施例中,可包括硬件、固件、軟件或其組合的功率控制模塊160能夠平衡和分配IC 100的器件之間的功率/頻率以實(shí)現(xiàn)最大性能;即使IC 100在功率限制之下。此外,在一種情形下,這樣的分配基于器件的實(shí)際工作負(fù)荷,而不是基于工作負(fù)荷或功耗的假定。例如,對(duì)IC 100設(shè)置功率限制(最大功率限制或在節(jié)能模式期間的降低限制)。以前,降低IC 100的所有處理元件的最大電流(以及必然也降低頻率)以滿足該功率限制。替代地,在本情形下,對(duì)被確定為性能瓶頸(比如從應(yīng)用的角度認(rèn)為的吞吐量性能)的器件分配更多電流/頻率,同時(shí)定限/限制其它勝任的器件以確保仍滿足功率限制。換言之,動(dòng)態(tài)平衡持續(xù)保持在器件之間,以確保將這樣的額外資源分配給需要更多資源以實(shí)現(xiàn)更好整體性能的器件,同時(shí)使其它器件“平衡”(性能降低)與滿足給定的功率限制。

作為特定說明性示例,假定I/O器件180是圖形處理器。在此,處理核101、102和圖形器件180形成生產(chǎn)者和消費(fèi)者關(guān)系。核101、102接收并處理指令;指令的一些被卸載至圖形處理器180以進(jìn)行處理(例如,CPU核101、102將像素發(fā)送至GPU 180以進(jìn)行紋理處理,GPU 180計(jì)算像素的紋理以獲得紋素(texel))。因此,如果CPU核101、102過度工作(即產(chǎn)生過多工作,使得GPU 180在當(dāng)前性能水平下不能處理),則來自最大潛能的整體性能降級(jí)(CPU核101-102用來過度生產(chǎn)的額外性能可能已經(jīng)被分配給GPU 180)。注意,即使CPU核101、102在與GPU 180相同頻率或比GPU 180低的頻率下工作,該過度生產(chǎn)情形也可能出現(xiàn)。反之,如果CPU核101、102生產(chǎn)不足(即未產(chǎn)生足夠工作以保持GPU 180繁忙),則不可能實(shí)現(xiàn)最大潛在性能。此外,還可從其它角度理解該生產(chǎn)者-消費(fèi)者關(guān)系,其中在CPU核101、102能得到進(jìn)一步向前進(jìn)展之前,CPU核101、102消費(fèi)來自生產(chǎn)者180的圖形輸出。

因此,在一個(gè)實(shí)施例中,確定核101-102的處理工作負(fù)荷和圖形器件180的圖形工作負(fù)荷。例如,確定兩個(gè)核101-102以及圖形核180在時(shí)間份額或時(shí)間段上的活動(dòng)量(例如活動(dòng)循環(huán)次數(shù))?;谀切┕ぷ髫?fù)荷,平衡核101-102和圖形核180的性能以實(shí)現(xiàn)最大整體性能。作為說明性示例,如果器件(CPU核101-102或GPU核180)之一在最大處或接近最大處工作,同時(shí)其它器件未被完全占據(jù),則該接近最大器件被分配更多性能(例如更高頻率)。

注意,當(dāng)功率限制存在并且IC 100不接近功率限制時(shí),剛剛上述的性能提高可能不包括其它器件中的抵消的降低。例如,假定GPU核180被完全占據(jù)(在一時(shí)間段期間的所有循環(huán)都是活動(dòng)的)并且CPU核101-102僅在該時(shí)間段期間的70%循環(huán)中活動(dòng)。在該情形下,CPU核101-102并未滿負(fù)荷工作,但對(duì)于GPU 180而言仍然過度生產(chǎn)。在一個(gè)實(shí)施例中,當(dāng)IC 100未處于設(shè)置的功率限制,則將GPU 180頻率提高以滿足CPU 101-102的過度生產(chǎn)。然而,一旦GPU 180開始以更高速率消費(fèi),CPU核101-102能夠以甚至更高的速率生產(chǎn)。如果達(dá)到IC 100的功率或熱限制,則如果GPU 180提高頻率(例如根據(jù)以上相同的假定),則在一個(gè)實(shí)施例中,CPU 101-102被限制/定限以確保不超過功率限制或熱限制。然而,智能地分配該限制內(nèi)的功率和性能,以確保最大“經(jīng)平衡”的性能。

參考圖2-4,示出了適于包括用于平衡集成電路上的處理元件/核之間的性能和功率的處理器的計(jì)算機(jī)系統(tǒng)配置的實(shí)施例。參考圖2,示出雙處理器系統(tǒng)200的說明性示例,該系統(tǒng)的每個(gè)處理器205、210中具有集成的存儲(chǔ)器控制器和輸入/輸出(I/O)控制器。注意,如上所討論,處理器205、210可各自包括集成圖形處理器/核。盡管為了避免模糊本討論而未進(jìn)行詳細(xì)討論,但平臺(tái)200示出用于在組件之間傳輸信息的多個(gè)互連。例如,在一個(gè)實(shí)施例中,點(diǎn)對(duì)點(diǎn)(P2P)互連215包括串行P2P、雙向的、高速緩存一致性的總線,該總線具有能夠?qū)崿F(xiàn)高速數(shù)據(jù)傳輸?shù)姆謱訁f(xié)議架構(gòu)。此外,眾所周知的接口(外圍組件互連高速,PCIE)或其變型被用于I/O設(shè)備245、250之間的接口240。但是,任何已知的互連或接口可被用于與計(jì)算系統(tǒng)的域通信或在計(jì)算系統(tǒng)的域內(nèi)通信。

轉(zhuǎn)到圖3,示出四處理器平臺(tái)300。像圖2一樣,處理器301-304通過高速P2P互連305彼此耦合。并且處理器301-304包括集成控制器301c-304c。圖4描繪具有不同配置的另一四核處理器平臺(tái)400。在此,代替使用處理器上I/O控制器通過I/O接口(諸如PCI-E接口)與I/O器件通信,P2P互連被用于耦合處理器和I/O控制器中樞420。然后中樞420又通過類似PCIE的接口與I/O器件通信。

接下來參考圖5,其示出用于平衡多個(gè)處理元件間的功率以實(shí)現(xiàn)最大性能的模塊的邏輯表示的實(shí)施例。盡管在圖5中僅示出兩個(gè)核,但是可使用任意類型和任意數(shù)量的處理元件。例如,在本文最常討論的情形下(CPU和GPU),CPU和GPU兩者可能包括多個(gè)核。因此,工作負(fù)荷確定(以下將更詳細(xì)地描述)可能參考單獨(dú)的核或核的分組,諸如關(guān)于所有CPU核相對(duì)于關(guān)于所有GPU核的工作負(fù)荷。

然而,為了關(guān)于圖5進(jìn)一步討論,以下將核505稱為CPU核(或CPU核的集合),而將核510稱為GPU核(或GPU核的集合)。還值得注意的是,盡管本文的討論主要集中在非對(duì)稱核之間的功率平衡上;但在一個(gè)實(shí)施例中,這種平衡也用于相同類型的核之間。例如,假設(shè)核505和510均為CPU核并且執(zhí)行相關(guān)線程(例如,生產(chǎn)者和消費(fèi)者相關(guān)線程,諸如在核505上執(zhí)行的單個(gè)應(yīng)用的主線程以及在核510上執(zhí)行的單個(gè)應(yīng)用的領(lǐng)先幫助線程,其中領(lǐng)先幫助線程產(chǎn)生要由主線程消費(fèi)的信息)。因此,可執(zhí)行功率/頻率平衡以實(shí)現(xiàn)線程之間的最大性能(例如,如果執(zhí)行幫助線程的核510領(lǐng)先太遠(yuǎn),諸如獲得太多未來的塊(lock)或預(yù)取太多信息,那么核510的頻率被降低,而核505的頻率被提高以便以更高的速率進(jìn)行消費(fèi)并且跟上核510的預(yù)取)。

繼續(xù)圖5的討論,工作負(fù)荷模塊515確定核505、核510或兩者的工作負(fù)荷。確定工作負(fù)荷包括用于確定硬件活動(dòng)、軟件工作負(fù)荷、已執(zhí)行或要執(zhí)行的指令數(shù)量、或者用于確定處理元件的使用的任何其它度量的任何已知方法。作為一個(gè)示例,核505的工作負(fù)荷包括在一段時(shí)間期間核505活動(dòng)的時(shí)間量。當(dāng)核505處于活動(dòng)性能狀態(tài)(相對(duì)于睡眠或低功率狀態(tài))中或者處于執(zhí)行或進(jìn)行操作的多個(gè)周期中時(shí),可以確定活動(dòng)。

作為大量潛在工作負(fù)荷測(cè)量的必然結(jié)果,測(cè)量這種工作負(fù)荷的組件也可變化。為了進(jìn)一步討論用于工作負(fù)荷測(cè)量的潛在組件,以下假設(shè)工作負(fù)荷被測(cè)量為一段時(shí)間上的活動(dòng)周期數(shù)(即用于測(cè)量的周期總數(shù))。作為第一示例,與核505、510中的每一個(gè)相關(guān)聯(lián)的硬件寄存器、計(jì)數(shù)器和/或累加器跟蹤活動(dòng)周期。并且在測(cè)量時(shí)間段屆滿之后,確定該時(shí)間段的活動(dòng)周期數(shù)。作為另一示例,微控制器執(zhí)行代碼,該代碼導(dǎo)致硬件在一段時(shí)間上跟蹤活動(dòng)周期。此外,可執(zhí)行微代碼、特權(quán)級(jí)代碼、應(yīng)用代碼或其它代碼以類似地導(dǎo)致硬件在測(cè)量時(shí)間段上跟蹤活動(dòng)周期。

在一個(gè)實(shí)施例中,功率模塊520基于來自工作負(fù)荷模塊515的工作負(fù)荷確定來動(dòng)態(tài)地平衡核505、510之間的性能。平衡核之間的“性能”包括修改影響核性能和/或功率的任何度量或因素。例如,如果從GPU核510向CPU核505提供單獨(dú)功率傳輸,那么功率傳輸或其限制可被改變以平衡它們之間的性能。然而,通常當(dāng)CPU核505和GPU核510被包括在同一個(gè)封裝上時(shí),功率傳輸并不是單獨(dú)的。因此,作為另一示例,個(gè)體的核之間的頻率被平衡。在該情形下,功率模塊520基于包括核505、510的集成電路或封裝的功率限制以及由工作負(fù)荷模塊515所確定的一個(gè)或多個(gè)工作負(fù)荷來動(dòng)態(tài)地調(diào)節(jié)核505和核510之間的功率分配。注意,在一些實(shí)施例中,頻率可能不是被直接改變的,而是諸如電流之類的基礎(chǔ)度量被改變以實(shí)現(xiàn)頻率的改變。

作為一個(gè)示例,功率模塊520響應(yīng)于所動(dòng)態(tài)確定的核505的工作負(fù)荷大于核510的工作負(fù)荷而提高核505的頻率和/或降低核510的頻率。在此,如果一個(gè)核展示了由于較高工作負(fù)荷而對(duì)性能有更大需求,那么就提高它的頻率。而當(dāng)包括核505和510的集成電路接近功率限制時(shí),展示出對(duì)性能要求的需求較少的核的頻率被降低以抵銷/補(bǔ)償另一核的頻率提高。在另一示例中,功率模塊520響應(yīng)于確定核505是性能瓶頸而提高核505的頻率和/或降低核510的頻率。換言之,核505正在限制整體性能,因?yàn)楹?10依賴于來自核505的輸出以繼續(xù)進(jìn)一步的執(zhí)行。但是核505運(yùn)行的太慢。隨后,提高核505的頻率以確保加速整體性能。再一次,如果遭遇功率限制,那么核510的頻率可被類似地降低以確保功率限制被實(shí)施。注意,在一些實(shí)施例中,滯后現(xiàn)象可用于避免“搖擺(see-saw)”效應(yīng),在該效應(yīng)中功率/性能平衡在諸個(gè)設(shè)置之間往復(fù)。例如,CPU頻率快速升高(例如在首次檢測(cè)到需要更多性能/頻率之后),而在多個(gè)連續(xù)(或者非連續(xù)但是緊密相關(guān)的)的測(cè)量時(shí)間段上由于需求缺乏而確定減小頻率。

在一個(gè)實(shí)施例中,對(duì)潛在瓶頸的基本假設(shè)允許簡(jiǎn)化過程。例如,假設(shè)核505是CPU核的集合并且核510是GPU核的集合。在此,作為示例性基本假設(shè),假設(shè)當(dāng)GPU核510以最大性能操作時(shí)(即被完全占用),那么GPU核510是性能瓶頸(即GPU在當(dāng)前限制下盡可能快地工作,但是它完成工作并不是足夠地快)。作為該假設(shè)的結(jié)果,如果GPU核510在工作負(fù)荷/活動(dòng)閾值以上操作,那么它被認(rèn)為是瓶頸。因此,提高GPU的頻率。并且如果達(dá)到了功率限制,那么GPU頻率被給定上限(或降低)以確保維持功率限制。然而,如果工作負(fù)荷模塊520確定GPU 505的頻率低于閾值(即,沒有以最大負(fù)荷進(jìn)行工作/消費(fèi)),那么CPU 505的任意頻率上限或限制被提高以導(dǎo)致更多生產(chǎn),使得GPU核510工作負(fù)荷相應(yīng)地增大。

任何硬件、固件、微代碼、軟件或其組合可執(zhí)行上述的平衡、調(diào)節(jié)和/或分配。作為一個(gè)示例,平衡策略在功率控制單元(PCU)中實(shí)施,該功率控制單元通常包括微控制器,該微控制器被配置成執(zhí)行并置的功率代碼。在此,功率代碼當(dāng)由微控制器執(zhí)行時(shí),加載來自工作負(fù)荷模塊515的工作負(fù)荷信息,確定適當(dāng)?shù)钠胶鈩?dòng)作(例如,提高核510的頻率),以及開始平衡動(dòng)作(例如,指示頻率提高,從而使得硬件/邏輯能夠?qū)嶋H上提高頻率)。作為另一示例,可將代碼和硬件均用于平衡。在一個(gè)情形下,GPU核510的圖形驅(qū)動(dòng)程序加載來自工作負(fù)荷模塊520(例如,硬件活動(dòng)跟蹤邏輯)的圖形工作負(fù)荷信息。并且器件驅(qū)動(dòng)程序、特權(quán)級(jí)功率服務(wù)例程(例如OS服務(wù)例程)或其它代碼/硬件至少基于圖形工作負(fù)荷信息來確定是否要采取平衡動(dòng)作。另外,也可考慮CPU核505工作負(fù)荷信息以確定適當(dāng)?shù)钠胶鈩?dòng)作。

在一個(gè)實(shí)施例中,平衡決策者也考慮軟件提示以確定如何在處理元件之間平衡性能/功率。例如,如上所討論的,確定GPU核510工作負(fù)荷信息。并且執(zhí)行應(yīng)用提供未來工作負(fù)荷(即,應(yīng)用的一部分)是否包括與導(dǎo)致已測(cè)得的工作負(fù)荷的該應(yīng)用的先前部分相比較而言更大或更小圖形工作負(fù)荷的軟件提示。在此,如果GPU接近閾值(或接近于完全占用)并且應(yīng)用提示下一時(shí)間段與更大的圖形工作負(fù)荷相關(guān)聯(lián),那么功率模塊520可確定GPU要被提高且CPU頻率要被給定上限;即使先前活動(dòng)尚未達(dá)到活動(dòng)閾值。結(jié)果,該提示幫助預(yù)測(cè)未來活動(dòng);代替純粹依賴于先前的、已測(cè)得的工作負(fù)荷信息。注意,可通過定義這種提示的指令集架構(gòu)、應(yīng)用程序接口(API)或用于將信息從軟件傳達(dá)到硬件的其它已知結(jié)構(gòu)/方法來提供提示。

轉(zhuǎn)到圖6,其示出用于平衡處理元件間的功率以實(shí)現(xiàn)最大整體性能的模塊的邏輯表示的另一實(shí)施例。在一個(gè)實(shí)施例中,圖形處理單元(GPU)核605和中央處理單元(CPU)核610位于可能經(jīng)受整體功率或性能限制的同一管芯、集成電路、封裝或其它分組上。例如,通常為集成電路或封裝提供熱設(shè)計(jì)功率(TDP)功率限制。換言之,為集成電路的最大熱耗散能力提供功率限制。然而,在另一實(shí)施例中,GPU核605和CPU核610是要被插入到單個(gè)平臺(tái)中的分離的諸個(gè)集成電路,該單個(gè)平臺(tái)可類似地經(jīng)受整體平臺(tái)功率和/或熱限制。

工作負(fù)荷監(jiān)控器606被示為與GPU核605相關(guān)聯(lián),而工作負(fù)荷監(jiān)控器611被示為與CPU核610相關(guān)聯(lián)。如上所述,工作負(fù)荷監(jiān)控器606和611可被實(shí)現(xiàn)在與GPU核605和CPU核610相關(guān)聯(lián)的硬件、要由微控制器執(zhí)行的工作負(fù)荷代碼、和/或在GPU核605和/或CPU核610上執(zhí)行的代碼(例如,微代碼、驅(qū)動(dòng)程序代碼、其它代碼)中。

可在CPU核610上執(zhí)行的器件驅(qū)動(dòng)程序620讀取/加載來自工作負(fù)荷監(jiān)控器606的工作負(fù)荷信息。例如,將GPU核605活動(dòng)的周期數(shù)保持在GPU 605中的寄存器、計(jì)數(shù)器和/或累加器中。器件驅(qū)動(dòng)程序620加載每個(gè)時(shí)間段的計(jì)數(shù)并且確定GPU 605的活動(dòng)。在此,在一個(gè)實(shí)施例中,器件驅(qū)動(dòng)程序620基于來自工作負(fù)荷監(jiān)控器606的圖形活動(dòng)做出平衡決策。在一個(gè)情形下,如果工作負(fù)荷活動(dòng)大于閾值,那么驅(qū)動(dòng)程序620指示GPU核605被占用(即,完全活動(dòng)并且可能是瓶頸)。在該實(shí)施例中,功率管理/平衡模塊630(硬件、固件、代碼或其組合)接收占用指示并且執(zhí)行適當(dāng)?shù)钠胶鈩?dòng)作(例如,給定CPU核610的頻率上限和/或增大GPU核605的頻率)。作為特定例示性示例,功率模塊630包括PCU、功率代碼、微代碼、應(yīng)用代碼、特權(quán)級(jí)代碼、操作系統(tǒng)(OS)功率管理服務(wù),等等。

在另一實(shí)施例中,功率管理模塊630(例如,諸如有特權(quán)的功率管理服務(wù))加載來自監(jiān)控器611的CPU活動(dòng)信息。并且利用直接來自工作負(fù)荷監(jiān)控器606或器件驅(qū)動(dòng)程序620的GPU核605活動(dòng)信息,功率管理模塊630做出平衡決策。并且模塊630還直接實(shí)施平衡決策或者指示平衡將由一些其它模塊、單元或?qū)嶓w來執(zhí)行。

作為一個(gè)示例,功率管理模塊630(在一些實(shí)施例中包括器件驅(qū)動(dòng)程序620)為CPU核610和/或GPU核605中的一個(gè)或多個(gè)設(shè)置性能限制。在此,假設(shè)已經(jīng)達(dá)到GPU核605和CPU核610的整體功率或熱限制。并且在工作負(fù)荷測(cè)量期間,確定了GPU核605活動(dòng)超出占用閾值。作為閾值的例示性示例,用于考慮GPU占用的周期數(shù)可從一時(shí)間段中超過50%的周期為活動(dòng)到一時(shí)間段中100%的周期為活動(dòng)。例如,假設(shè)活動(dòng)閾值是95%活動(dòng),則如果工作負(fù)荷監(jiān)控器606檢測(cè)到96%-100%的活動(dòng)周期,那么確定超出了活動(dòng)閾值。

因此,設(shè)置性能限制(例如,CPU核610的最大操作頻率、CPU核610的最大超頻頻率(turbo frequency)、CPU核610的最大電流、CPU核610的最大能耗)。該動(dòng)作獨(dú)自可能足以平衡CPU核610的生產(chǎn)以匹配GPU605的消費(fèi)速率。然而,在另一實(shí)施例中,提高GPU核605的性能度量,該性能度量可以是與為CPU核610設(shè)限的性能度量相同或不同的性能度量。在此,智能地選擇針對(duì)GPU 605的提高以與CPU核610的提高平衡,使得不會(huì)超出已經(jīng)遭遇到的功率或熱限制。相反地,如果GPU工作負(fù)荷低于閾值并且從先前時(shí)間段已對(duì)CPU核610給定上限/限制,那么提高或者去除該上限。本質(zhì)上,如果GPU核605未被充分利用,那么認(rèn)為CPU 610沒有以足夠快的速率進(jìn)行生產(chǎn)以完全利用GPU 605。因此,CPU 610被提高或允許運(yùn)行到完成以便為GPU核605生成更多工作。同樣非常類似于以上所討論的,如果達(dá)到了功率限制,那么GPU 605的性能度量(諸如頻率)可被降低,因?yàn)樗恍枰啃阅軄硗瓿善涞陀诨顒?dòng)閾值的工作負(fù)荷。

從上述可見,已達(dá)到限制的功耗在處理元件之間被智能地重新分配,以實(shí)現(xiàn)提供最佳整體性能的最優(yōu)平衡。相反,如果功率并沒有如本文所討論地這樣被平衡,那么功率限制被實(shí)施,但是處理元件之一可能作為限制整體性能的性能瓶頸。相反,這種智能重新分配使得瓶頸能夠被緩和,甚至在功率約束之下亦可如此,這實(shí)現(xiàn)了最高效能耗約束下的最大性能。

轉(zhuǎn)到圖7,其示出用于平衡處理器和圖形處理器之間的功率以實(shí)現(xiàn)功率限制內(nèi)的最大性能的流程圖的模塊和/或表示的實(shí)施例。注意,以基本上串行的方式示出了流程(或模塊)。然而,這些流程的串行性質(zhì)以及所描繪的順序不是必須的。同樣,以基本線性方式示出流程。然而,在相同時(shí)間段上可并行執(zhí)行這些流程。此外,所示出的流程或邏輯塊中的任一個(gè)可在硬件、軟件、固件或其組合中執(zhí)行。如上和如下所述,在一個(gè)實(shí)施例中,每個(gè)流程表示模塊、模塊的部分或多個(gè)模塊的重疊。此外,一個(gè)或多個(gè)指令或操作形式的任何程序代碼在被執(zhí)行時(shí)可使機(jī)器執(zhí)行以下所示出和描述的流程。例如,在一個(gè)實(shí)施例中,程序代碼包括:器件驅(qū)動(dòng)程序,諸如圖形驅(qū)動(dòng)程序;有特權(quán)的服務(wù)例程;功率控制單元的功率代碼的一部分;處理器的微代碼的一部分;或者以上的組合。

在流程705中,從一個(gè)或多個(gè)工作負(fù)荷監(jiān)控器接收(或加載)在一時(shí)間段上的圖形處理器和/或中央處理器工作負(fù)荷。作為一個(gè)示例,從這些器件中的硬件寄存器讀取/加載活動(dòng)計(jì)數(shù)。不過,可利用用于跟蹤一時(shí)間段上的工作負(fù)荷或活動(dòng)的任何已知方法。

然后在流程710中,確定是否達(dá)到諸如熱設(shè)計(jì)功率(TDP)限制之類的限制。盡管可能遭遇任何功率或能量限制,但是通常使用基于對(duì)包括GPU和CPU的封裝的電和熱限制(即封裝的TDP限制)的功率限制。如果尚未達(dá)到功率限制并且CPU或GPU工作負(fù)荷指示需要提高性能(流程715),那么在流程720中增大諸如頻率之類的功率或性能度量使其達(dá)到可允許的容納工作負(fù)荷的最大值。在此,如果無需擔(dān)心命中功率限制,那么通過純粹提供更多性能來消除潛在瓶頸。相反,如果不需要性能增大,如流程705的工作負(fù)荷所指示,那么流程重置以測(cè)量工作負(fù)荷并且在后續(xù)時(shí)間段中在流程705中再次讀取。注意,在流程715中,可替代地確定諸如GPU之類的器件的性能可被降低并且GPU仍將能夠容納所測(cè)得的工作負(fù)荷。因此,GPU性能降低,這又降低了功耗,同時(shí)維持工作負(fù)荷性能。

然而,如果已經(jīng)遭遇限制,那么平衡功率和/或性能以盡可能多地緩和瓶頸。因此,在流程725中,確定所加載的GPU工作負(fù)荷是否大于工作負(fù)荷/活動(dòng)閾值。如果GPU工作負(fù)荷在閾值以上,那么在流程730中對(duì)CPU施加性能限制。換言之,GPU過度工作且CPU的生產(chǎn)被給定上限。可見,緩和GPU工作負(fù)荷的一個(gè)方法是給定CPU生產(chǎn)的上限。然而,為了進(jìn)一步緩和瓶頸,提高諸如頻率之類的GPU性能。由于GPU頻率的提高,因此GPU功耗提高。并且在沒有降低CPU頻率或給定其上限的情況下(這導(dǎo)致更低的CPU功耗),將會(huì)超出所遭遇的TDP限制。然而,對(duì)給定CPU性能上限以及GPU頻率的類似增大的平衡確保不會(huì)超出TDP限制。但是相反,基于實(shí)際的、所測(cè)得的GPU工作負(fù)荷在GPU和CPU之間智能地重新分配可用功率以獲得最佳性能。

不過,如果GPU工作負(fù)荷不大于閾值,那么在流程735中確定先前的CPU限制是否已被施加。如果尚未施加限制,那么在流程745中CPU繼續(xù)根據(jù)現(xiàn)有策略操作。然而,如果GPU低于活動(dòng)閾值并且CPU具有當(dāng)前性能限制,那么在流程740中增大和/或去除該限制。如上所討論的,在該情形下,GPU沒有努力工作,因此提高CPU的生產(chǎn)。因此,如果沒有設(shè)置CPU上限,那么低圖形活動(dòng)可歸因于非圖形密集型的應(yīng)用。相反,如果已經(jīng)施加CPU性能限制,那么提高該限制以潛在地同樣提高用于GPU的CPU的生產(chǎn)。

參考圖8,其示出用于平衡處理器和圖形處理器之間的功率以達(dá)到功率限制內(nèi)的最大性能的流程圖的模塊和/或表示的另一實(shí)施例。類似于圖7和流程705,確定中央處理器的處理工作負(fù)荷活動(dòng)以及圖形處理器的圖形工作負(fù)荷活動(dòng)。并且在流程810中,如在流程710中一樣,確定保持中央處理器和圖形處理器的平臺(tái)、封裝、集成電路或其它形態(tài)是否已經(jīng)達(dá)到功率限制、熱限制或者其組合(例如TDP限制)。

在流程825中,至少基于在流程805中確定的圖形工作負(fù)荷活動(dòng)來確定圖形處理器是否是性能瓶頸。作為一個(gè)示例,這種確定是基于圖形工作負(fù)荷活動(dòng)是否大于圖形活動(dòng)閾值。在此,如果活動(dòng)大于閾值,那么認(rèn)為GPU是瓶頸。然而,如果活動(dòng)小于閾值,那么對(duì)流程825則認(rèn)為CPU是瓶頸。然而,此類活動(dòng)與閾值的比較不是必需的。例如,可直接比較工作負(fù)荷。并且如果一個(gè)高于另一個(gè),那么這一個(gè)就被確定為瓶頸。

因此,在流程830中,響應(yīng)于在流程825中確定圖形處理器是性能瓶頸,將中央處理器的處理器性能限制設(shè)為低于先前的處理器性能限制?;蛘撸诹鞒?40中,響應(yīng)于在流程835中確定中央處理器是性能瓶頸,將圖形處理器的圖形性能限制設(shè)為低于先前的圖形處理器性能限制。并且類似于以上的討論,可增加競(jìng)爭(zhēng)器件以進(jìn)一步緩和任何瓶頸。

盡管討論主要集中在作為中央處理器和圖形處理器的競(jìng)爭(zhēng)器件上,但是具有生產(chǎn)者-消費(fèi)者關(guān)系的、為功率或性能資源而競(jìng)爭(zhēng)的、或在整體功率或熱限制下被調(diào)節(jié)的任何器件之間的功率/性能可被類似地平衡。因此,可用功率在器件之間被智能地分配以從全局視角提供最佳可能性能,代替了每個(gè)個(gè)體組件用其自己的功率和性能規(guī)則來處理而不考慮它們的應(yīng)用級(jí)貢獻(xiàn)或?qū)Y源的壟斷。

在本文中使用的模塊指的是硬件、軟件、和/或固件的任意組合。作為示例,模塊包括與非瞬態(tài)介質(zhì)相關(guān)聯(lián)的諸如微控制器之類的硬件,該非瞬態(tài)介質(zhì)用于存儲(chǔ)適于由該微控制器執(zhí)行的代碼。因此,在一個(gè)實(shí)施例中,對(duì)模塊的引用是指硬件,該硬件被專門配置成識(shí)別和/或執(zhí)行要保存在非瞬態(tài)介質(zhì)上的代碼。另外,在另一實(shí)施例中,模塊的使用是指包括代碼的非瞬態(tài)介質(zhì),該代碼專門適于由微處理器執(zhí)行以進(jìn)行預(yù)定操作。并且可推斷,在又一實(shí)施例中,術(shù)語模塊(在該示例中)可以指微控制器和非瞬態(tài)介質(zhì)的組合。通常,被示為分開的模塊邊界一般不同而且有可能重疊。例如,第一和第二模塊可共享硬件、軟件、固件、或它們的組合,同時(shí)可能保留某些獨(dú)立的硬件、軟件或固件。在一個(gè)實(shí)施例中,術(shù)語邏輯的使用包括諸如晶體管、寄存器之類的硬件或諸如可編程邏輯器件之類的其它硬件。

如在本文中所使用的值包括數(shù)字、狀態(tài)、邏輯狀態(tài)、或二進(jìn)制邏輯狀態(tài)的任何已知表示。通常,邏輯電平、邏輯值、或多個(gè)邏輯值的使用也被稱為1和0,這簡(jiǎn)單地表示了二進(jìn)制邏輯狀態(tài)。例如,1指的是邏輯高電平,0指的是邏輯低電平。在一個(gè)實(shí)施例中,諸如晶體管或閃存單元之類的存儲(chǔ)單元能夠保持單個(gè)邏輯值或多個(gè)邏輯值。不過,也使用了計(jì)算機(jī)系統(tǒng)中的值的其它表示。例如,十進(jìn)制數(shù)字10也可被表示為二進(jìn)制值1010和十六進(jìn)制字母A。因此,值包括能保持在計(jì)算機(jī)系統(tǒng)中的信息的任何表示。

而且,狀態(tài)也可由值或值的部分來表示。作為示例,諸如邏輯1之類的第一值可表示默認(rèn)或初始狀態(tài),而諸如邏輯0之類的第二值可表示非默認(rèn)狀態(tài)。此外,在一個(gè)實(shí)施例中,術(shù)語重置和置位分別指的是默認(rèn)和已更新的值或狀態(tài)。例如,默認(rèn)值可能包括高邏輯值,即重置,而已更新的值可能包括低邏輯值,即置位。注意,值的任何組合可用來表示任意數(shù)量的狀態(tài)。

上述方法、硬件、軟件、固件或代碼的實(shí)施例可通過存儲(chǔ)在機(jī)器可存取、機(jī)器可讀、計(jì)算機(jī)可存取、或計(jì)算機(jī)可讀介質(zhì)上可由處理元件執(zhí)行的指令或代碼來實(shí)現(xiàn)。非瞬態(tài)機(jī)器可存取/可讀介質(zhì)包括提供(即存儲(chǔ)和/或發(fā)送)諸如計(jì)算機(jī)或電子系統(tǒng)之類的機(jī)器可讀的形式的信息的任何機(jī)制。例如,非瞬態(tài)機(jī)器可存取介質(zhì)包括:諸如靜態(tài)RAM(SRAM)或動(dòng)態(tài)RAM(DRAM)之類的隨機(jī)存取存儲(chǔ)器(RAM);ROM;磁或光存儲(chǔ)介質(zhì);閃存設(shè)備;電存儲(chǔ)設(shè)備;光存儲(chǔ)設(shè)備;聲存儲(chǔ)設(shè)備;其它形式的用于保持從瞬態(tài)(傳播)信號(hào)(例如載波、紅外信號(hào)、數(shù)字信號(hào))接收的信息的存儲(chǔ)設(shè)備等等,這些信號(hào)與可從其接收信息的非瞬態(tài)介質(zhì)相區(qū)別。

貫穿本說明書,對(duì)“一個(gè)實(shí)施例”或“一實(shí)施例”的引用意味著結(jié)合該實(shí)施例描述的特定特征、結(jié)構(gòu)或特性被包括在本發(fā)明的至少一個(gè)實(shí)施例中。因此,在整個(gè)說明書的多個(gè)位置出現(xiàn)短語“在一個(gè)實(shí)施例中”或“在實(shí)施例中”不一定指的是同一實(shí)施例。此外,在一個(gè)或多個(gè)實(shí)施例中,特定特征、結(jié)構(gòu)或特性可以以任何合適的方式組合起來。

在上述說明書中,已經(jīng)參考特定示例性實(shí)施例給出了詳細(xì)描述。然而,顯然可對(duì)這些實(shí)施例作出各種修改和改變,而不背離如所附權(quán)利要求所述的本發(fā)明的更寬泛精神和范圍。相應(yīng)地,說明書和附圖應(yīng)被視為說明性的,而不是限制性的。而且,實(shí)施例和其它示例性語言的上述使用不一定指的是同一實(shí)施例或同一示例,而可能指的是不同和獨(dú)特的實(shí)施例,也有可能是同一實(shí)施例。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
庆元县| 浦东新区| 吉林市| 瓦房店市| 淅川县| 汤阴县| 邵武市| 泸州市| 石楼县| 屏东市| 朝阳区| 扶绥县| 会昌县| 广汉市| 凉城县| 通江县| 抚顺市| 海阳市| 堆龙德庆县| 通城县| 郎溪县| 闻喜县| 华安县| 白朗县| 茶陵县| 庐江县| 革吉县| 鄂托克旗| 昌邑市| 井研县| 高陵县| 德令哈市| 望谟县| 五寨县| 秭归县| 郯城县| 朝阳县| 贵定县| 隆回县| 怀来县| 屏东市|