向處理器的異構(gòu)計(jì)算元件分配功率的制作方法
【專利說明】向處理器的異構(gòu)計(jì)算元件分配功率
【背景技術(shù)】
[0001] 隨著半導(dǎo)體領(lǐng)域的技術(shù)進(jìn)步,諸如處理器之類的設(shè)備包括越來越多的電路。隨著 時(shí)間的推移,處理器設(shè)計(jì)從獨(dú)立集成電路(1C)的集合發(fā)展到單一集成電路,到在單一 1C封 裝內(nèi)包括多個(gè)處理器核的多核處理器。隨著時(shí)間的推移,越來越多的核以及相關(guān)的電路正 在被包括到處理器及其他半導(dǎo)體中。
[0002] 多核處理器正在被擴(kuò)展以通過在處理器內(nèi)合并其他功能單元來包括額外的功能。 產(chǎn)生的一個(gè)問題是,不同的電路會(huì)基于它們的工作負(fù)荷消耗不同的電量。然而,目前不存在 確保這些不同的單元具有足夠的功率的合適的機(jī)制。
[0003] 例如,包括不同的計(jì)算元件的處理器將消耗的總功率量限制到叫做熱設(shè)計(jì)功率 (TDP)極限的級(jí)別除處理器的配置的TDP極限之外,初始設(shè)備制造廠家(OEM)可能會(huì)對(duì)于 不同的形狀因子等,將處理器的TDP限制到更低,以實(shí)現(xiàn)比較長的電池使用時(shí)間。當(dāng)在這些 系統(tǒng)上運(yùn)行功率消耗大的工作負(fù)荷時(shí),在不同的計(jì)算元件之間拆分可用功率(直到TDP極 限)。拆分功率的方式會(huì)影響系統(tǒng)的性能。當(dāng)前對(duì)此功率分配問題的解決方法是對(duì)于所有 工作負(fù)荷和TDP,使用固定比率,意味著,功率的某一部分被分配給處理器的不同的單元。然 而,此方法不是對(duì)于所有工作負(fù)荷都最佳的。
[0004] 附圖簡述
[0005] 圖1是根據(jù)本發(fā)明的一個(gè)實(shí)施例的用于在處理器的不同的域之間控制功率偏置 的方法的流程圖。
[0006] 圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施例的處理器的一部分的框圖。
[0007] 圖3是根據(jù)本發(fā)明的一個(gè)實(shí)施例的處理器的框圖。
[0008] 圖4是根據(jù)本發(fā)明的另一實(shí)施例的多域處理器的框圖。
[0009] 圖5是包括多個(gè)核的處理器的一個(gè)實(shí)施例的框圖。
[0010] 圖6是根據(jù)本發(fā)明的一個(gè)實(shí)施例的系統(tǒng)的框圖。
[0011] 詳細(xì)描述
[0012] 在各實(shí)施例中,可以提供功率偏置技術(shù),并可以將其用于包括多個(gè)域的處理器的 功率預(yù)算的分配。另外,在運(yùn)行時(shí),還可以動(dòng)態(tài)地更新功率偏置值本身。如此處所使用的, 術(shù)語"域"被用來表示在相同電壓和頻率點(diǎn)操作的硬件和/或邏輯的集合。作為示例,多核 處理器還可以包括其他非核處理引擎,諸如固定功能單元、圖形引擎等等。其他計(jì)算元件可 包括數(shù)字信號(hào)處理器、處理器通信互連(總線、環(huán)等等)以及網(wǎng)絡(luò)處理器。處理器可包括多 個(gè)獨(dú)立域,包括與核相關(guān)聯(lián)的第一域(此處被稱為核或中央處理單元(CPU)域)以及與圖 形引擎相關(guān)聯(lián)的第二域(此處被稱為圖形或圖形處理單元(GPU)域)。雖然可以在單一半 導(dǎo)體管芯上形成多域處理器的許多實(shí)現(xiàn),但是,其他實(shí)現(xiàn)可以通過其中不同的域可以存在 于單一封裝的不同的半導(dǎo)體管芯上的多芯片封裝來實(shí)現(xiàn)。進(jìn)一步的實(shí)施例可以適用于在由 許多單個(gè)芯片封裝構(gòu)成的單一系統(tǒng)的計(jì)算元件之間平衡功率。例如,如此處所描述的,可以 管理一個(gè)封裝上的CPU和不同的封裝上的GPU,且整個(gè)系統(tǒng)功率極限為50瓦特。
[0013] 在多域處理器中,多個(gè)域共同地共享單一功率預(yù)算。相應(yīng)地,例如,核域操作所在 的頻率越高,由核域消耗的功率越高。由核域消耗的功率越高,留給圖形域消耗的功率越 小,反之亦然。
[0014] 對(duì)于在處理器上執(zhí)行的許多應(yīng)用,核域可以充當(dāng)生成要被圖形域執(zhí)行的工作負(fù)荷 數(shù)據(jù)的生產(chǎn)者,如此,該圖形域充當(dāng)消費(fèi)者。例如,對(duì)于許多應(yīng)用,諸如基于3維(3D)的應(yīng) 用,處理器可以操作以從存儲(chǔ)器訪問數(shù)據(jù),向存儲(chǔ)器寫入命令和指令,并將數(shù)據(jù)提供到圖形 域,圖形域用于執(zhí)行圖形操作,諸如各種著色、呈現(xiàn)及其他操作,以如此生成像素?cái)?shù)據(jù),供顯 示在相關(guān)聯(lián)的顯示器上。
[0015] 在這樣的應(yīng)用中,根據(jù)本發(fā)明的一個(gè)實(shí)施例的智能偏置控制(IBC)可以基于工作 負(fù)荷需求,動(dòng)態(tài)地調(diào)整圖形域和核域之間的功率的分配。各實(shí)施例可以特別適合于低功率 環(huán)境,諸如處理器正在在諸如熱設(shè)計(jì)功率(TDP)級(jí)別(或甚至諸如由OEM設(shè)置的較低級(jí)別) 之類的熱極限操作的情況。在某些處理器中,可以諸如由基本輸入/輸出系統(tǒng)(BIOS),例 如,作為系統(tǒng)的配置的一部分,設(shè)置多個(gè)域之間共享功率的預(yù)定值。雖然這樣的設(shè)置可以適 合于許多工作負(fù)荷,但是,對(duì)于某些應(yīng)用,特別是在處理器被配置成僅限于低于TDP極限的 操作的情況下,例如,為了功率管理等等,性能會(huì)受到影響。相反,根據(jù)本發(fā)明的一個(gè)實(shí)施 例,通過使用IBC,可以基于工作負(fù)荷動(dòng)態(tài)地控制功率偏置值,該功率偏置值可用于控制不 同的域之間的功率分配。
[0016] 更具體而言,各實(shí)施例可以監(jiān)視各種域(包括核域、圖形域和互連域)的操作,以 便判斷這些域中的一個(gè)或多個(gè)是否需要比它當(dāng)前正在接收的功率多一些或少一些的功率。 如果核和互連域需要比它們當(dāng)前正在接收的較少的功率以便使圖形域維持十分忙,可以使 功率分配更多地偏向圖形域,例如,通過調(diào)整此功率偏置值。相反,如果核域和/或互連域 需要比它們當(dāng)前正在接收的功率更多的功率以使圖形域維持全部占用,則可以使功率分配 更多地朝核域和/或互連域偏向,例如,通過對(duì)功率偏置值的反向控制。
[0017] 一般而言,根據(jù)本發(fā)明的一個(gè)實(shí)施例的IBC可以一般性地按如下方式進(jìn)行操作。 首先,可以測量給定應(yīng)用正在為核、圖形和互連域創(chuàng)建的工作量。如果基于這些測量值判斷 圖形域空閑,例如,大于評(píng)估間隔內(nèi)的給定閾值時(shí)間量,可以向核域方向移動(dòng)功率平衡,例 如,通過對(duì)功率偏置值的控制。相反,如果圖形域在評(píng)估間隔中正在被完全使用,則可以向 圖形域方向移動(dòng)功率平衡。
[0018] 為便于討論,此處所描述的各實(shí)施例關(guān)于包括可以共享功率預(yù)算的核域和圖形域 的多域處理器。然而,應(yīng)理解,本發(fā)明的范圍在這方面不受限制,可以存在額外的域。作為 另一個(gè)示例,可以將每一個(gè)核分配給不同的域,可以給域中的每一個(gè)提供功率預(yù)算的動(dòng)態(tài) 地重新可分割的量。此外,除核域和圖形域之外,可以理解,可以存在額外的域。例如,另一 個(gè)域可以由諸如固定功能單元、加速器等其他處理單元構(gòu)成??梢詾樘幚砥鞯哪承┕芾泶?理提供更進(jìn)一步的域,這些域可以接收總功率預(yù)算的固定部分。
[0019] 注意,如此處所描述的執(zhí)行智能偏置控制的各實(shí)施例可以獨(dú)立于基于操作系統(tǒng) (0S)的功率管理。例如,根據(jù)基于0S的機(jī)制,S卩,高級(jí)配置和平臺(tái)接口(ACPI)標(biāo)準(zhǔn)(例如, 2006年10月10日發(fā)布的Rev. 3. Ob),處理器可以在各種性能狀態(tài)或級(jí)別操作,g卩,從P0到 PN。一般而言,P1性能狀態(tài)可以對(duì)應(yīng)于可以由0S請(qǐng)求的最高保證的性能狀態(tài)。除此P1狀 態(tài)之外,0S還可以請(qǐng)求較高性能狀態(tài),S卩,P0狀態(tài)。如此,此P0狀態(tài)可以是機(jī)會(huì)性狀態(tài),其 中,當(dāng)有電能和/或熱預(yù)算可用時(shí),處理器硬件可以配置處理器或其至少一些部分,以便以 高于保證的頻率操作。在許多實(shí)現(xiàn)中,處理器可包括多個(gè)所謂的高于此P1頻率的元(bin) 頻率。另外,根據(jù)ACPI,處理器還可以在各種功率狀態(tài)或級(jí)別下操作。相對(duì)于功率狀態(tài),ACPI 指定不同的功率消耗狀態(tài),一般被稱為C狀態(tài),CO, Cl到Cn狀態(tài)。當(dāng)核活躍時(shí),它在CO狀 態(tài)運(yùn)行,而當(dāng)核空閑時(shí),它可以被置于核低功率狀態(tài),也叫做核非零C狀態(tài)(例如,C1-C6狀 態(tài))。當(dāng)多核處理器的所有核都處于核低功率狀態(tài)時(shí),可以將處理器置于封裝低功率狀態(tài), 諸如封裝C6低功率狀態(tài)。
[0020] 現(xiàn)在參考圖1,所示是根據(jù)本發(fā)明的一個(gè)實(shí)施例的用于在處理器的不同的域之間 控制功率偏置的方法的流程圖。如圖1所示,在不同的實(shí)施例中,方法100可以以各種硬件、 軟件和/或固件來實(shí)現(xiàn)。例如,在一個(gè)實(shí)施例中,方法100可以在諸如功率控制單元(PCU) 之類的處理器的功率控制器的功率共享邏輯中實(shí)現(xiàn)。在另一個(gè)實(shí)施例中,方法100可以在 諸如內(nèi)核模式驅(qū)動(dòng)程序(KMD)之類的設(shè)備驅(qū)動(dòng)程序中實(shí)現(xiàn),例如,對(duì)于圖形域。注意,圖1 中所描述的各實(shí)施例關(guān)于CPU域和圖形域之間的功率偏置的分析和控制。雖然在圖1的實(shí) 施例中被描述為在這些特定域之間共享功率,但是,可以理解,本發(fā)明的范圍在這方面不受 限制,在其他實(shí)施例中,動(dòng)態(tài)功率共享可以在具有異構(gòu)計(jì)算元件的其他類型的域之間。
[0021] 如圖1所示,可以為在評(píng)估間隔過程中呈現(xiàn)的圖形的每一個(gè)幀執(zhí)行方法100的某 些部分(一般性地,通過菱形150)。可以看出,方法100從確定CP