專利名稱:用于經(jīng)由資源分配和限制的異構(gòu)芯片多處理器的裝置和方法
技術(shù)領(lǐng)域:
本發(fā)明的一個(gè)或多個(gè)實(shí)施例一般涉及集成電路和計(jì)算機(jī)系統(tǒng)設(shè)計(jì)領(lǐng)域。更具體而言,本發(fā)明的一個(gè)或多個(gè)實(shí)施例涉及一種用于經(jīng)由資源分配和限制的異構(gòu)芯片多處理器的方法和裝置。
背景技術(shù):
芯片多處理器(CMP)在十年之后將會(huì)成為主流。當(dāng)代的CMP是使用“完全復(fù)制(copy-exactly)”方法來構(gòu)建的。在使用完全復(fù)制方法構(gòu)建的CMP中,CMP上的所有CPU是相同的,從而具有ALU、高速緩存和流水線的精確副本。該方法最小化了CMP的設(shè)計(jì)復(fù)雜度,因?yàn)橹恍柙O(shè)計(jì)一個(gè)CPU,但是它被實(shí)例化了多次。
某些軟件應(yīng)用程序?qū)τ趩蝹€(gè)線程的性能是敏感的,而其它則對(duì)于多線程或吞吐量性能是敏感的。對(duì)于那些對(duì)單個(gè)線程的性能敏感、且能夠從多個(gè)資源中獲益的應(yīng)用程序而言,期望向運(yùn)行該單個(gè)線程的CPU分配較多資源,而向運(yùn)行對(duì)性能較不敏感的線程的那些CPU分配較少資源。對(duì)于那些對(duì)多線程性能敏感的應(yīng)用程序而言,有益的是在所有線程之間更均勻地共享資源。另外,線程本身可能變化,有時(shí)候?qū)蝹€(gè)線程更為性能敏感,而在其它時(shí)候卻對(duì)所有線程都敏感。
正在開發(fā)中的CMP也必須處理對(duì)于功耗和電流獲取的限制。例如,如果所有的CPU都同時(shí)完全活動(dòng),則電壓和頻率必須被降低以確保CMP保持在電流和功率限制之下。然而,如果單個(gè)CPU是活動(dòng)的,則電壓和頻率可被設(shè)為最大電壓和頻率,且向其分配所有可用的資源。如果對(duì)每一CPU分配功率和電流,則分配到較多功率的CPU相對(duì)于分配到較少功率的其它CPU可更快地運(yùn)行程序。當(dāng)增加了智能(或者由軟件指示,或者由軟件或硬件算法推導(dǎo))時(shí),CMP可分配功率以改善一個(gè)或多個(gè)特定的執(zhí)行線程的性能,或平衡功率以最大化所有線程的吞吐量。由此,芯片功率成為要分配的資源。
附圖簡述本發(fā)明的各實(shí)施例在附圖的各個(gè)圖中作為示例而非限制地示出,在附圖中
圖1是示出根據(jù)一個(gè)實(shí)施例的芯片多處理器(CMP)的框圖,該CMP包括具有用于將處理器活動(dòng)限于定量CMP資源的處理器控制器的一個(gè)或多個(gè)處理器核心。
圖2是進(jìn)一步示出了根據(jù)一個(gè)實(shí)施例的如圖1所示的處理器控制器的框圖。
圖3A是進(jìn)一步示出根據(jù)一個(gè)實(shí)施例的圖1的CMP以及用于提供資源限制的相關(guān)聯(lián)處理器核心的框圖。
圖3B是進(jìn)一步示出根據(jù)一個(gè)實(shí)施例的圖1的CMP以及用于提供處理器活動(dòng)扼制的相關(guān)聯(lián)處理器核心的框圖。
圖4是進(jìn)一步示出根據(jù)一個(gè)實(shí)施例的圖3的處理器核心的框圖。
圖5是示出根據(jù)一個(gè)實(shí)施例的用于將處理器活動(dòng)限于定量CMP資源的方法的流程圖。
圖6是示出根據(jù)一個(gè)實(shí)施例的用于根據(jù)處理器活動(dòng)扼制矢量在至少一個(gè)當(dāng)前程序周期期間限制處理器活動(dòng)的方法的流程圖。
圖7是示出根據(jù)一個(gè)實(shí)施例的用于填充CMP的一個(gè)或多個(gè)活動(dòng)扼制矢量來從最小活動(dòng)水平到最大活動(dòng)水平以1/N程序周期為增量定義處理器活動(dòng)的方法的流程圖。
圖8是示出根據(jù)一個(gè)實(shí)施例的用于在受限制的活動(dòng)處理器周期期間禁用資源邏輯以減少共享資源上的功率/消耗和負(fù)荷的方法的流程圖。
圖9是示出根據(jù)一個(gè)實(shí)施例的用于根據(jù)從CMP的處理器核心接收的指令處理計(jì)數(shù)來改變CMP電壓、頻率和其它CMP資源的方法的流程圖。
圖10是示出使用所公開的技術(shù)對(duì)設(shè)計(jì)的仿真、模擬和制造的各種設(shè)計(jì)表示或格式的框圖。
詳細(xì)描述一種用于經(jīng)由資源限制的異構(gòu)芯片多處理器(CMP)的方法和裝置。在一個(gè)實(shí)施例中,該方法包括訪問資源利用寄存器以標(biāo)識(shí)資源利用策略。一旦被訪問,處理器控制器即確保處理器核心以由資源利用策略指定的方式來利用共享資源。在一個(gè)實(shí)施例中,CMP內(nèi)的每一處理器核心包括指令發(fā)布扼制資源利用寄存器、指令取出扼制資源利用寄存器、以及將其對(duì)共享資源的利用限制在最小和最大利用水平之內(nèi)的其它類似的方式。在一個(gè)實(shí)施例中,資源限制提供了一種用于向可由硬件或軟件控制的CMP的處理器核心分配電流和功率資源的靈活機(jī)制。
系統(tǒng)圖1是示出根據(jù)一個(gè)實(shí)施例的芯片多處理器(CMP)100的框圖,該CMP100包括具有處理器控制器和至少一個(gè)資源利用寄存器130(130-1、……、130-N)的處理器核心(CPU)110(110-1、……、110-N),以在至少一個(gè)程序周期期間根據(jù)至少一個(gè)資源限制或分配來限制CPU110的活動(dòng)。作為代表,CMP 100包含制造在同一管芯上的多個(gè)CPU110、共享高速緩存和其它功能。如圖所示,CPU110耦合到互連網(wǎng)絡(luò)170以訪問共享的高速緩存180。在一個(gè)實(shí)施例中,每一CPU110包括扼制資源利用寄存器130,該寄存器由特許軟件寫入以將CPU110對(duì)受限制資源的利用限制在從最小到最大的利用水平。
在一個(gè)實(shí)施例中,CPU110經(jīng)由耦合到互連網(wǎng)絡(luò)170的系統(tǒng)存儲(chǔ)器總線192訪問系統(tǒng)存儲(chǔ)器190。在一個(gè)實(shí)施例中,系統(tǒng)存儲(chǔ)器190可包括但不限于,包括存儲(chǔ)器模塊的雙側(cè)存儲(chǔ)器包(double-sided memory package),該存儲(chǔ)器包包括由隨機(jī)存取存儲(chǔ)器(RAM)、動(dòng)態(tài)RAM(DRAM)、靜態(tài)RAM(SRAM)、同步DRAM(SDRAM)、雙數(shù)據(jù)率(DDR)SDRAM(DDR-SDRAM)、Rambus DRAM(RDRAM)或能夠支持每一存儲(chǔ)器模塊中數(shù)據(jù)的高速臨時(shí)存儲(chǔ)的任何設(shè)備構(gòu)成的存儲(chǔ)器模塊。
諸如CMP100等的CMP設(shè)計(jì)具有在運(yùn)行程序之間共享的資源,包括共享的高速緩存、共享的存儲(chǔ)器端口、共享的電源等。盡管平均使用可能是沒問題的,但程序偶然會(huì)進(jìn)入導(dǎo)致對(duì)某些共享資源的過度需求的同步模式,從而導(dǎo)致額外的排隊(duì)延遲且可能導(dǎo)致活鎖或死鎖。因此,在一個(gè)實(shí)施例中,通過限制處理器核心對(duì)共享CMP資源的活動(dòng),CMP資源限制被用來限制對(duì)共享CMP資源的訪問,以避免這些問題。
在一個(gè)實(shí)施例中,資源分配指示共享CMP資源對(duì)CMP100的至少一個(gè)處理器核心限制每一周期的資源請(qǐng)求數(shù)。在另一實(shí)施例中,資源分配通過對(duì)CMP100的至少一個(gè)處理器核心將并發(fā)的未完成資源請(qǐng)求數(shù)限于固定數(shù)目來限制對(duì)資源的利用。在又一實(shí)施例中,資源分配為CMP100的一個(gè)或多個(gè)處理器核心保留比CMP100中的一個(gè)或多個(gè)其它處理器核心更多的靈活劃分的資源。
如圖1所示,每一CPU110包括活動(dòng)扼制資源利用寄存器130。在一個(gè)實(shí)施例中,填充每一活動(dòng)扼制矢量以將一個(gè)或多個(gè)程序周期中的處理器核心資源活動(dòng)水平定義為從關(guān)于一處理器資源的最小活動(dòng)水平到最大活動(dòng)水平。在一個(gè)實(shí)施例中,如參考圖2所示的,最小活動(dòng)水平指的是禁用或零活動(dòng)水平。在一個(gè)實(shí)施例中,活動(dòng)扼制矢量130可將處理器活動(dòng)水平限于每個(gè)周期或多個(gè)周期中資源利用的百分比。
在一個(gè)實(shí)施例中,活動(dòng)扼制矢量130可包括指令發(fā)布扼制矢量,以限制每一指令周期中處理器的最大發(fā)布速率。例如,指令發(fā)布限制可通過在處理器本來會(huì)在每一周期發(fā)布四條指令時(shí)將最大指令發(fā)布速率限于每一程序周期兩條指令來進(jìn)行。在一個(gè)實(shí)施例中,指令的種類可基于所消耗的功率或其它所需的資源來限制。
如在此處所描述的,資源限制可包括資源控制矢量,用于提供資源定量分配,諸如緩沖區(qū)限制(例如,將限制運(yùn)行中存儲(chǔ)器引用的次數(shù))、高速緩存路線限制以及其它形式的資源分配。在一個(gè)實(shí)施例中,共享高速緩存180中的高速緩存路線訪問通過高速緩存跟蹤哪一核心作出了請(qǐng)求、并根據(jù)資源控制矢量182在高速緩存的一個(gè)子集中分配所得的數(shù)據(jù),而在中央高速緩存級(jí)上進(jìn)行分配。在一個(gè)實(shí)施例中,對(duì)中央的存儲(chǔ)器請(qǐng)求隊(duì)列的分配是根據(jù)資源控制矢量來執(zhí)行的。在一個(gè)實(shí)施例中,控制器或特許軟件通過對(duì)每一處理器核心設(shè)置最大限制來填充資源控制矢量。在一個(gè)實(shí)施例中,監(jiān)視程序針對(duì)所分配的資源控制矢量的活動(dòng),并且可將資源分配調(diào)整到最佳地?cái)M合系統(tǒng)的累計(jì)程序活動(dòng)的總曲線圖。
在一個(gè)實(shí)施例中,活動(dòng)扼制矢量130是如圖2所示可由特許軟件寫入的N位桶式移位寄存器。圖2是進(jìn)一步示出根據(jù)一個(gè)實(shí)施例的如圖1所示的處理器控制器120的框圖。作為代表,活動(dòng)扼制矢量130的比特位置132指示是否允許資源在給定周期中使用。在一個(gè)實(shí)施例中,扼制矢量130的內(nèi)容在每一周期中移位。在一個(gè)實(shí)施例中,如圖2所示,每一CPU110都包括具有資源啟用/禁用邏輯122的處理器控制器120。
作為代表,資源啟用/禁用邏輯122訪問相應(yīng)扼制矢量130的當(dāng)前比特位置132。作為代表,當(dāng)前比特位置132被置位以指示當(dāng)前或即將到來的程序周期內(nèi)相應(yīng)處理器資源的全可用性。相反,在一個(gè)實(shí)施例中,當(dāng)前比特位置132被取消斷言(de-assert)以指示當(dāng)前或即將到來的程序周期內(nèi)相應(yīng)處理器資源的不可用性。在一個(gè)替換實(shí)施例中,活動(dòng)水平由活動(dòng)扼制矢量指定為最小活動(dòng)范圍到最大活動(dòng)范圍。如以下所描述的,CPU110可包括多個(gè)扼制矢量,它們可控制處理器活動(dòng),諸如處理器指令發(fā)布、處理器指令取出、浮點(diǎn)(FP)指令發(fā)布、整型指令發(fā)布、存儲(chǔ)器請(qǐng)求發(fā)布、或其它類似的CPU活動(dòng)。
因此,在一個(gè)實(shí)施例中,在每一程序或時(shí)鐘周期期間,處理器控制120經(jīng)由資源啟用/禁用邏輯122訪問活動(dòng)扼制矢量130的當(dāng)前比特位置132,以確定是否允許處理器在相應(yīng)周期期間訪問資源。因此,在一個(gè)實(shí)施例中,在扼制矢量130中儲(chǔ)存N位的值使得例如特許軟件能夠從最小活動(dòng)水平到最大活動(dòng)水平、以1/N程序周期為增量定義CPU110的活動(dòng)。如此處所使用的,“N”是整數(shù)。在一個(gè)實(shí)施例中,資源啟用/禁用邏輯122是使用狀態(tài)機(jī)、微碼或集成電路邏輯來實(shí)現(xiàn)的。
再次參考圖1,在一個(gè)實(shí)施例中,CMP100包括在每一CPU110中的一個(gè)活動(dòng)扼制矢量130,其中矢量130允許或禁止任何給定周期中的指令發(fā)布。在一個(gè)實(shí)施例中,僅允許CPU110在扼制矢量的第0個(gè)比特位置為“1”(置位)時(shí)發(fā)布指令。如果每一扼制矢量都為16比特,則軟件可從無活動(dòng)到全活動(dòng)、以1/16為增量來限制每一CPU的指令發(fā)布活動(dòng)。某些處理器資源可能不允許這一全范圍,但是可使用扼制矢量來控制某一最小水平和某一最大水平之間的活動(dòng)水平。
如此處所描述的,由CMP100的組件,諸如CPU11、資源控制器200或其它系統(tǒng)組件檢測或發(fā)布的各種信號(hào)可表示高電平有效或低電平有效信號(hào)。因此,如此處所描述的,術(shù)語“斷言”、“正在斷言”、“已斷言的”、“置位”、“正在置位”、“取消斷言”、“已取消斷言的”、“正在取消斷言”或其它類似的術(shù)語可以指數(shù)據(jù)信號(hào),這些信號(hào)是低電平有效或高電平有效信號(hào)。因此,當(dāng)與信號(hào)相關(guān)聯(lián)時(shí),這些術(shù)語可互換使用以要求或暗示低電平有效或高電平有效信號(hào)。
圖3A示出了根據(jù)一個(gè)實(shí)施例的具有資源利用寄存器(RUR)130的CMP100。在一個(gè)實(shí)施例中,RUR130是用于提供受限制資源的利用策略的CSR(映射到受保護(hù)I/O地址空間,且可由特許軟件寫入的配置系統(tǒng)寄存器)。作為代表,CPU110將狀態(tài)信息傳遞到資源控制器200。在一個(gè)實(shí)施例中,CPU110的實(shí)際發(fā)布的處理器指令處理計(jì)數(shù)(IPC)的快照通過將例如CPU110-1中的計(jì)數(shù)器在每次CPU110-1發(fā)布一指令時(shí)遞增1、并將計(jì)數(shù)器溢出傳達(dá)給功率控制器200來報(bào)告。
在一個(gè)實(shí)施例中,每一CPU110跟蹤執(zhí)行程序的性能特性。該信息被傳達(dá)給資源控制器200。在一個(gè)實(shí)施例中,資源控制器200然后可判定通過填充諸如共享高速緩存180的資源控制矢量182等共享CMP資源的資源控制矢量來重新分配資源以改善CMP100的總體性能。這一重新分配在程序正在執(zhí)行時(shí)發(fā)生,而不會(huì)中斷任何服務(wù)。例如,如果并行程序正在運(yùn)行且CPU110中的大多數(shù)已達(dá)到同步點(diǎn),而一個(gè)或多個(gè)仍在執(zhí)行,則資源控制器200可將資源從先完成者移位到落后者以改善CMP性能。在一個(gè)實(shí)施例中,功率控制器200可使用狀態(tài)機(jī)、微碼或集成電路邏輯來實(shí)現(xiàn)。
圖3B是示出帶有指令發(fā)布活動(dòng)扼制矢量130的CMP100的框圖。作為代表,通過將CPU110-1的發(fā)布扼制矢量130設(shè)為全1,CPU110-1的優(yōu)先級(jí)高于CPU110-2到110-N,而CPU110-2到110-N被限于在每八個(gè)周期之一中發(fā)布指令來節(jié)省功率。在一個(gè)實(shí)施例中,執(zhí)行CMP100的CPU110的不平衡使得將高性能的CPU110-1給予對(duì)性能要求最嚴(yán)格的線程。結(jié)果,CMP100向執(zhí)行的程序提供并行化的益處,同時(shí)避免了工作的一部分被串行化、并成為對(duì)由并行執(zhí)行提供的總體性能改善的限制的常見障礙。
在一個(gè)實(shí)施例中,可選擇一處理器核心來執(zhí)行資源較不密集型應(yīng)用程序線程,諸如助手(helper)線程。助手線程是一種新興技術(shù),其中某些線程在另一線程之前運(yùn)行,模仿其工作負(fù)荷,由此形成了其存儲(chǔ)器數(shù)據(jù)的預(yù)取效果,而不完成實(shí)際程序的工作。對(duì)助手線程的資源要求可能是相當(dāng)小的,從而使得它適于減小的資源分配從而為主線程節(jié)省功率。
圖4是進(jìn)一步示出根據(jù)一個(gè)實(shí)施例的CPU110的微架構(gòu)的框圖,它進(jìn)一步示出了針對(duì)CPU資源的CPU活動(dòng)扼制。在所示的實(shí)施例中,CPU110被配置成實(shí)現(xiàn)動(dòng)態(tài)執(zhí)行。然而,本領(lǐng)域的技術(shù)人員可以認(rèn)識(shí)到,CMP100內(nèi)的CPU110無需實(shí)現(xiàn)動(dòng)態(tài)執(zhí)行來落入此處所描述的實(shí)施例的范圍之內(nèi)。如此處所描述的,動(dòng)態(tài)執(zhí)行指的是使用前端邏輯140來根據(jù)程序次序取出下一指令,并準(zhǔn)備用于系統(tǒng)流水線中后續(xù)執(zhí)行的指令。
作為代表,前端邏輯140包括指令取出單元(IFU)142,該單元取出即將到來的程序指令以供執(zhí)行,并準(zhǔn)備供在系統(tǒng)流水線內(nèi)將來使用的指令。實(shí)際上,前端邏輯140的指令發(fā)布邏輯向指示指令的執(zhí)行(實(shí)際完成)的執(zhí)行邏輯116提供了高帶寬已解碼指令流。因此,前端邏輯140可包括指令取出單元(IFU)142,用于經(jīng)由總線接口單元(BIU)112從例如共享高速緩存180中取出宏指令。
一旦取出了指令,該指令即被解碼成執(zhí)行單元(EU)118所執(zhí)行的基本操作,此處稱為微操作(uOP)。換言之,IFU142從例如共享高速緩存180中取出宏指令,該宏指令被提供給指令發(fā)布邏輯150的指令解碼器(ID)152。響應(yīng)于所接收的宏指令,ID152將該宏指令解碼成提供給指令解碼器隊(duì)列(IDQ)154的一個(gè)或多個(gè)uOP。
在一個(gè)實(shí)施例中,前端邏輯140包括處理器控制器120,后者包括資源啟用/禁用邏輯122。作為代表,處理器控制器120被耦合到一個(gè)或多個(gè)資源利用寄存器(RUR)130(130-1、……、130-N)。在一個(gè)實(shí)施例中,資源利用寄存器130-1是指令發(fā)布活動(dòng)扼制矢量130-1,而資源利用寄存器130-N是指令取出活動(dòng)扼制矢量130-N。作為代表,基于例如指令取出扼制矢量130-N的當(dāng)前比特位置,處理器控制器120可在其中指令取出扼制矢量130-N的當(dāng)前比特值被取消斷言的程序周期期間禁用指令取出單元142。然而,在其中指令取出扼制矢量130-N的當(dāng)前比特值被置位的程序周期期間,處理器控制器120允許IFU142根據(jù)正常操作條件來運(yùn)作。一般而言,扼制矢量包括通過對(duì)受限制的CMP資源定義最小和最大活動(dòng)水平來控制不是處于簡單的開或關(guān)狀態(tài)的資源的計(jì)數(shù)器和限制值。
如進(jìn)一步示出的,在一個(gè)實(shí)施例中,指令發(fā)布扼制矢量130-1也由處理器控制120監(jiān)控,以使在其中指令發(fā)布扼制矢量130-N的當(dāng)前比特值被取消斷言的程序周期期間,處理器控制器120禁用指令發(fā)布邏輯150。因此,在這一不活動(dòng)周期期間,CPU110消耗的功率和電流受到限制,因?yàn)镺OO核心116以及指令單元118不接收發(fā)布的指令,因此減少了CPU110消耗的處理器資源。
在一個(gè)實(shí)施例中,為了改進(jìn)的功率定量分配,扼制矢量130能以更精細(xì)的粒度限制CPU110的活動(dòng)。例如,代替每一CPU110一個(gè)扼制矢量130,可以有幾個(gè)扼制矢量。一個(gè)扼制矢量控制取出,一個(gè)控制浮點(diǎn)(FP)指令發(fā)布,一個(gè)控制整型指令發(fā)布,而一個(gè)控制存儲(chǔ)器發(fā)布。另外,某些工作負(fù)荷很少使用FP執(zhí)行資源。需要選擇CMP100的電壓和頻率點(diǎn),以解決會(huì)導(dǎo)致電流問題或電壓突降的活動(dòng)猝發(fā)。由于FP指令是很少見的,因此可設(shè)立FP扼制矢量以將最大FP發(fā)布速率限于每16個(gè)周期1次,而不會(huì)對(duì)性能產(chǎn)生不利影響?,F(xiàn)在可將電壓和頻率設(shè)置得較高而無需擔(dān)心由于FP活動(dòng)的猝發(fā)而引起的差錯(cuò)。
相反,HPTC(高性能、技術(shù)計(jì)算)應(yīng)用程序可能會(huì)大量地使用FP單元。通過監(jiān)視FP單元的實(shí)際IPC需求,可由功率控制器200或特許軟件響應(yīng)于應(yīng)用程序的需求來調(diào)整電壓和頻率點(diǎn)。在一個(gè)實(shí)施例中,功率控制器200利用這一IPC信息并修改每一CPU110的扼制矢量130以及電壓和頻率,來對(duì)具有分散特性的各種工作負(fù)荷最大化性能。
再次參考圖4,當(dāng)不發(fā)布指令時(shí),不需要CPU微架構(gòu)110的功能單元和相關(guān)聯(lián)的邏輯。給定周期中缺少指令發(fā)布可通過使用處理器控制器120檢查扼制矢量130中的另一(未來)比特位置以在一個(gè)或多個(gè)所檢測到的CPU不活動(dòng)周期期間禁用時(shí)鐘門邏輯中的臨界路徑來提前預(yù)料。因此,禁止指令發(fā)布導(dǎo)致目標(biāo)CPU110的動(dòng)態(tài)電流獲取和功耗的減小。另外,限制CPU的發(fā)布活動(dòng)并不必定會(huì)與發(fā)布允許的減少成線性地降低其性能,因?yàn)镃PU一般不在每一周期中發(fā)布指令?,F(xiàn)在描述用于執(zhí)行一個(gè)或多個(gè)實(shí)施例的過程方法。
操作圖5是示出根據(jù)一個(gè)實(shí)施例的在至少一個(gè)程序周期期間根據(jù)資源利用策略使用至少一個(gè)處理器核心的資源利用寄存器來進(jìn)行資源限制的方法300的流程圖。在一個(gè)實(shí)施例中,資源利用寄存器是例如如參考圖1-4所示的芯片多處理器(CMP)的處理器核心(CPU)的活動(dòng)扼制矢量。在一個(gè)實(shí)施例中,資源利用策略指定了關(guān)于受限制資源的處理器活動(dòng),包括例如處理器指令發(fā)布、處理器指令取出、浮點(diǎn)(FP)指令發(fā)布、整型指令發(fā)布、存儲(chǔ)器發(fā)布或其它類似的處理器活動(dòng),以減小一個(gè)或多個(gè)處理器核心的電流和功耗、以及共享CMP資源上的負(fù)荷。
作為代表,在處理框310處,訪問活動(dòng)扼制矢量以標(biāo)識(shí)任何資源限制。在處理框320處,確定該活動(dòng)扼制矢量是否指示至少一個(gè)程序周期期間的資源限制。當(dāng)指示受限制的處理器活動(dòng)時(shí),在處理框322處,確定諸如處理器活動(dòng)水平等資源利用策略。在處理框350處,在至少一個(gè)程序周期期間根據(jù)資源利用策略將處理器活動(dòng)限于所確定的處理器活動(dòng)水平。在處理框360處,對(duì)CMP的每一處理器核心并行地重復(fù)處理框310-350,直到檢測到CMP關(guān)閉。
圖6是示出根據(jù)一個(gè)實(shí)施例的用于限制圖5的處理框322的處理器活動(dòng)的方法330的流程圖。在處理框332處,查詢活動(dòng)扼制矢量的當(dāng)前比特位置。在處理框334處,利用策略根據(jù)活動(dòng)扼制矢量的當(dāng)前比特位置的值指定關(guān)于在當(dāng)前程序周期期間啟用或禁用受限制資源的處理器活動(dòng)。在處理框336處,確定活動(dòng)扼制矢量的當(dāng)前比特位置是否被取消斷言。當(dāng)扼制矢量的當(dāng)前比特位置被取消斷言時(shí),在處理框338處,禁止處理器在當(dāng)前程序周期期間執(zhí)行針對(duì)受限制資源的活動(dòng)。否則,在處理框340處,允許處理器在當(dāng)前程序周期期間執(zhí)行資源活動(dòng)。在一個(gè)實(shí)施例中,圖5和6的方法是對(duì)圖1所示的CMP100的每一CPU110并行執(zhí)行的。
圖7是示出根據(jù)一個(gè)實(shí)施例的用于根據(jù)定義從最小活動(dòng)水平到最大活動(dòng)水平的處理器活動(dòng)的資源利用策略來填充一個(gè)或多個(gè)活動(dòng)扼制矢量的方法400的流程圖。在處理框410處,由特許軟件在處理器活動(dòng)扼制矢量內(nèi)寫入一N位值以定義諸如以1/N程序周期為增量的處理器活動(dòng)等資源利用策略。在一個(gè)實(shí)施例中,對(duì)例如參考圖1所示的CMP的每一處理器核心并行地執(zhí)行處理框410。在處理框420處,從每一CMP處理器核心周期性地接收處理器核心指令處理計(jì)數(shù)(IPC)。在處理框430處,將儲(chǔ)存在活動(dòng)扼制矢量內(nèi)的N位值改為增加或減少處理器活動(dòng)。在一個(gè)實(shí)施例中,資源控制器可填充共享CMP資源的資源控制矢量,以將每一周期的處理器核心請(qǐng)求限于某一定義值。
圖8是示出根據(jù)一個(gè)實(shí)施例的用于根據(jù)即將到來的處理器核心資源不活動(dòng)來啟用/禁用CMP的CPU的功能單元和相關(guān)聯(lián)邏輯的方法440的流程圖。在處理框442處,選擇CMP的CPU。一旦被選中,則在處理框444處,即檢查所選CPU的扼制矢量來標(biāo)識(shí)一個(gè)或多個(gè)即將到來的資源不活動(dòng)程序周期。一旦被檢測到,在處理框446處,即在所標(biāo)識(shí)的資源不活動(dòng)程序周期期間禁用該資源的功能單元和相關(guān)聯(lián)邏輯以減少CMP的功率和電流消耗。在處理框448處,對(duì)每一CMP CPU重復(fù)處理框442-446。
圖9是示出根據(jù)一個(gè)實(shí)施例的用于根據(jù)所確定的CMP處理器核心的工作負(fù)荷特性來改變CMP的交流電壓和頻率要求的方法450的流程圖。在處理框452處,根據(jù)從每一CMP處理器核心所接收到的IPC為CMP處理器核心確定工作負(fù)荷特性。一旦被確定,在處理框454處,即可如處理框452的工作特性所確定地改變CMP的電壓和頻率要求。
因此,在一個(gè)實(shí)施例中,軟件或硬件控制器可利用該工作負(fù)荷信息來修改每一CPU的資源利用寄存器以及電壓和頻率,以對(duì)具有分散特性的各種工作負(fù)荷最大化性能。在一個(gè)實(shí)施例中,軟件可讀取IPC,或由硬件收集的、關(guān)于運(yùn)行在每一處理器核心上的每一線程的工作負(fù)荷資源利用特性的其它反饋??筛沦Y源利用寄存器來改變資源利用,以更好地匹配工作負(fù)荷特性,并可改變電壓和電源來解決新的資源利用寄存器設(shè)置。
在一個(gè)實(shí)施例中,活動(dòng)扼制將功率移至它最有用的地方。但是其它資源也通過這一技術(shù)來定量分配,盡管是間接的。通過扼制CMP的發(fā)布速率,CPU的負(fù)荷在系統(tǒng)資源上受到控制,這些系統(tǒng)資源然后可以自由地服務(wù)其它請(qǐng)求。這對(duì)于控制對(duì)諸如三級(jí)高速緩存、系統(tǒng)鎖、主存儲(chǔ)器、處理器間鏈接和I/O(輸入/輸出)等共享資源的訪問尤為重要。
圖10是示出用于對(duì)使用所公開技術(shù)的設(shè)計(jì)的模擬、仿真和制造的各種表示或格式的框圖。表示設(shè)計(jì)的數(shù)據(jù)可用多種方式來表示該設(shè)計(jì)。首先,如在模擬中有用的,硬件可使用硬件描述語言或另一功能描述語言來表示,該描述語言本質(zhì)上提供了關(guān)于期望所設(shè)計(jì)的硬件如何執(zhí)行的計(jì)算機(jī)化模型。硬件模型510可儲(chǔ)存在諸如計(jì)算機(jī)存儲(chǔ)器等存儲(chǔ)介質(zhì)500中,使得該模型可使用模擬軟件520來模擬,該模擬軟件向硬件模型應(yīng)用特定的測試套件530以確定它實(shí)際上是否如所預(yù)期地運(yùn)作。在某些實(shí)施例中,模擬軟件不被記錄、捕捉或包含在介質(zhì)中。
在設(shè)計(jì)的任何表示中,數(shù)據(jù)可被儲(chǔ)存在任何形式的機(jī)器可讀介質(zhì)中。被調(diào)制或另外生成來傳輸這一信息的光波或電波560、存儲(chǔ)器550、或諸如盤等磁或光存儲(chǔ)540可以是機(jī)器可讀介質(zhì)。這些介質(zhì)中的任一個(gè)可承載設(shè)計(jì)信息。術(shù)語“承載”(例如,承載信息的機(jī)器可讀介質(zhì))因而覆蓋了儲(chǔ)存在存儲(chǔ)設(shè)備上的信息或已被編碼成載波或調(diào)制到載波上的信息。描述設(shè)計(jì)或設(shè)計(jì)細(xì)節(jié)的該組比特(當(dāng)包含在諸如載波或存儲(chǔ)介質(zhì)等機(jī)器可讀介質(zhì)中時(shí))是可被封入其本身或密封在其本身之外,或可由其他人使用來進(jìn)行進(jìn)一步設(shè)計(jì)或制造的制品。
替換實(shí)施例在以上描述中,陳述了眾多具體細(xì)節(jié),諸如邏輯實(shí)現(xiàn)、信號(hào)和總線的大小和名稱、系統(tǒng)組件的類型和相互關(guān)系、以及邏輯分區(qū)/集成選擇,以提供更全面的理解。然而,本領(lǐng)域的技術(shù)人員可以理解,本發(fā)明可以不用這些具體細(xì)節(jié)來實(shí)施。在其它情況下,未詳細(xì)示出控制結(jié)構(gòu)和門級(jí)電路以免本發(fā)明變得模糊。本領(lǐng)域的技術(shù)人員利用所包括的描述能夠在無需過多實(shí)驗(yàn)的情況下實(shí)現(xiàn)適當(dāng)?shù)倪壿嫽蜍浖?br>
在以上描述中,使用了某些術(shù)語來描述本發(fā)明的特征。例如,術(shù)語“邏輯”表示被配置成執(zhí)行一個(gè)或多個(gè)功能的硬件和/或軟件。例如,“硬件”的示例包括,但不限于集成電路、有限狀態(tài)機(jī)或甚至是組合邏輯。集成電路可采用諸如微處理器等處理器、專用集成電路、數(shù)字信號(hào)處理器、微控制器等的形式。
“軟件”的示例包括采用應(yīng)用程序、小程序、例程或甚至是一系列指令的形式的可執(zhí)行碼。在一個(gè)實(shí)施例中,制品可包括其上儲(chǔ)存有軟件的機(jī)器或計(jì)算機(jī)可讀介質(zhì),該軟件可用于對(duì)計(jì)算機(jī)(或其它電子設(shè)備)編程以執(zhí)行根據(jù)一個(gè)實(shí)施例的處理。計(jì)算機(jī)或機(jī)器可讀介質(zhì)包括但不限于可編程電子電路、包括易失性存儲(chǔ)器(例如,隨機(jī)存取存儲(chǔ)器等)和/或非易失性存儲(chǔ)器(例如,任何類型的只讀存儲(chǔ)器“ROM”、閃存)的半導(dǎo)體存儲(chǔ)器件、軟盤、光盤(例如,緊致盤或數(shù)字視頻盤“DVD”)、硬盤驅(qū)動(dòng)器、磁帶等。
可以理解,對(duì)于其它實(shí)施例,可使用不同的系統(tǒng)配置。例如,盡管系統(tǒng)100包括芯片多處理器系統(tǒng),但對(duì)其它實(shí)施例,包括至少一個(gè)處理器核心的系統(tǒng)可從各實(shí)施例的處理器矢量扼制中獲益。對(duì)其它實(shí)施例可使用另外一些不同類型的系統(tǒng)或不同類型的計(jì)算機(jī)系統(tǒng),諸如服務(wù)器、工作站、臺(tái)式計(jì)算機(jī)系統(tǒng)、游戲系統(tǒng)、嵌入式計(jì)算機(jī)系統(tǒng)、刀片服務(wù)器等。
有了這些公開的實(shí)施例和最佳方式,可對(duì)所公開的實(shí)施例作出各種修改和變化,同時(shí)仍落入所附權(quán)利要求書所定義的本發(fā)明的實(shí)施例的范圍之內(nèi)。
權(quán)利要求
1.一種方法,包括(a)訪問處理器資源利用寄存器以確定資源利用策略;以及(b)根據(jù)所確定的資源利用策略限制針對(duì)受限制資源的處理器利用。
2.如權(quán)利要求1所述的方法,其特征在于,所述資源利用寄存器包括比特矢量,其中每一比特表示其中針對(duì)所述受限制資源的處理器利用是允許和禁止之一的周期。
3.如權(quán)利要求2所述的方法,其特征在于,如果所述資源利用寄存器的當(dāng)前比特位置被取消斷言,則在當(dāng)前程序周期期間禁止所述處理器利用所述受限制資源。
4.如權(quán)利要求1所述的方法,其特征在于,所述受限制資源是處理器活動(dòng)、存儲(chǔ)器引用和共享高速緩沖存儲(chǔ)器中的一個(gè)。
5.如權(quán)利要求4所述的方法,其特征在于,所述處理器活動(dòng)是處理器指令發(fā)布、處理器指令取出和處理器存儲(chǔ)器請(qǐng)求發(fā)布中的一個(gè)。
6.如權(quán)利要求1所述的方法,其特征在于,還包括根據(jù)資源控制矢量,對(duì)芯片多處理器的至少一個(gè)核心處理器限制共享資源,以限制每一周期接受的資源請(qǐng)求數(shù)。
7.如權(quán)利要求2所述的方法,其特征在于,還包括(c)根據(jù)所述資源利用寄存器內(nèi)儲(chǔ)存的N位值,移位所述資源利用寄存器以移入一相鄰比特值作為當(dāng)前比特位置的值,其中N是整數(shù);以及對(duì)每一程序周期重復(fù)(a)-(c)。
8.如權(quán)利要求1所述的方法,其特征在于,在訪問之前,所述方法還包括由特許軟件在所述資源利用寄存器內(nèi)寫入一N位值,來從最小活動(dòng)水平到最大活動(dòng)水平,以1/N程序周期為增量,為針對(duì)所述受限制資源的處理器利用定義資源利用策略,其中N是整數(shù)。
9.如權(quán)利要求1所述的方法,其特征在于,限制所述處理器利用是根據(jù)所確定的資源利用策略,在逐個(gè)周期的基礎(chǔ)上執(zhí)行的。
10.如權(quán)利要求1所述的方法,其特征在于,還包括從所述處理器周期性地接收指令處理計(jì)數(shù);以及響應(yīng)于所述處理計(jì)數(shù),更新所述資源限制寄存器以將所述資源利用策略調(diào)整為指定處理器活動(dòng)的增加或減少。
11.一種方法,包括填充芯片多處理器的至少一個(gè)處理器核心的資源利用寄存器,以從關(guān)于受限制資源的最小利用水平到最大利用水平定義資源利用策略;從所述處理器核心周期性地接收指令處理計(jì)數(shù);以及響應(yīng)于所述處理計(jì)數(shù),更新所述資源利用以調(diào)整所述資源利用策略。
12.如權(quán)利要求11所述的方法,其特征在于,還包括填充芯片多處理器資源的資源控制寄存器,以限制每一周期從所述芯片多處理器的至少一個(gè)處理器核心接受的請(qǐng)求數(shù)。
13.如權(quán)利要求11所述的方法,其特征在于,所述填充還包括將一值寫入被分配來執(zhí)行應(yīng)用程序的對(duì)性能要求最嚴(yán)格的線程的處理器核心的活動(dòng)扼制矢量中,以指示所述處理器核心根據(jù)定義最大處理器核心活動(dòng)水平的資源利用策略來操作。
14.如權(quán)利要求11所述的方法,其特征在于,所述更新還包括根據(jù)接收自每一處理器核心的指令處理計(jì)數(shù)確定的工作負(fù)荷特性修改至少一個(gè)處理器核心的活動(dòng)扼制矢量,以改善所述芯片多處理器的性能。
15.如權(quán)利要求11所述的方法,其特征在于,還包括根據(jù)由所接收的指令處理計(jì)數(shù)確定的工作負(fù)荷特性改變所述芯片多處理器的電壓和頻率要求,以改善所述芯片多處理器的性能。
16.一種包括其上儲(chǔ)存有指令的機(jī)器可讀介質(zhì)的制品,所述指令可用于對(duì)系統(tǒng)編程以執(zhí)行一種方法,所述方法包括填充芯片多處理器的至少一個(gè)處理器核心的資源利用寄存器,以從關(guān)于受限制資源的最小利用水平到最大利用水平定義資源利用策略;從所述處理器核心周期性地接收指令處理計(jì)數(shù);以及響應(yīng)于所述處理計(jì)數(shù)更新所述資源利用以調(diào)整所述資源利用策略。
17.如權(quán)利要求16所述的制品,其特征在于,還包括填充芯片多處理器資源的資源控制寄存器,以限制每一周期從所述芯片多處理器的至少一個(gè)處理器核心接受的請(qǐng)求數(shù)。
18.如權(quán)利要求16所述的制品,其特征在于,所述填充還包括將一值寫入被分配來執(zhí)行應(yīng)用程序的對(duì)性能要求最嚴(yán)格的線程的處理器核心的活動(dòng)扼制矢量中,以指示所述處理器核心根據(jù)定義最大處理器核心活動(dòng)水平的資源利用策略來操作。
19.如權(quán)利要求16所述的制品,其特征在于,所述更新還包括根據(jù)從接收自每一處理器核心的指令處理計(jì)數(shù)確定的工作負(fù)荷特性修改至少一個(gè)處理器核心的活動(dòng)扼制矢量,以改善所述芯片多處理器的性能。
20.如權(quán)利要求16所述的制品,其特征在于,還包括根據(jù)由所接收的指令處理計(jì)數(shù)確定的工作負(fù)荷性能改變所述芯片多處理器的電壓和頻率要求,以改善所述芯片多處理器的性能。
21.一種裝置,包括至少一個(gè)處理器核心,所述處理器核心包括資源利用寄存器和處理器控制器,所述處理器控制器訪問所述資源利用寄存器來確定資源利用策略,并根據(jù)所確定的資源利用策略限制針對(duì)受限制資源的處理器利用。
22.如權(quán)利要求21所述的裝置,其特征在于,所述資源利用寄存器還包括指令發(fā)布扼制矢量,用于指示所述處理器控制器根據(jù)每一程序周期的最大指令發(fā)布速率限制至少一個(gè)程序周期期間的處理器指令發(fā)布。
23.如權(quán)利要求22所述的裝置,其特征在于,所述資源利用寄存器還包括浮點(diǎn)指令發(fā)布扼制矢量,用于指示所述處理器控制器根據(jù)每一程序周期的最大指令取出速率限制至少一個(gè)程序周期期間的處理器指令發(fā)布。
24.如權(quán)利要求21所述的裝置,其特征在于,所述資源利用寄存器包括N位桶式移位寄存器,用于從最小利用水平到最大利用水平,以1/N程序周期為增量,為所述受限制資源不活動(dòng)的處理器核心利用定義所述資源利用策略。
25.如權(quán)利要求21所述的裝置,其特征在于,還包括耦合到所述處理器核心的資源控制器,所述資源控制器從所述處理器核心接收指令處理計(jì)數(shù),并將所述指令處理計(jì)數(shù)記錄在至少一個(gè)軟件可見寄存器中。
26.一種系統(tǒng),包括耦合到互連網(wǎng)絡(luò)的系統(tǒng)存儲(chǔ)器;包括耦合到所述互連網(wǎng)絡(luò)的多個(gè)處理器核心的芯片多處理器,每一處理器核心包括至少一個(gè)資源利用寄存器和耦合到所述資源利用寄存器的處理器控制器,所述處理器控制器訪問所述資源利用寄存器來確定資源利用策略,并在對(duì)所述資源限制寄存器的訪問指示至少一個(gè)周期期間的資源限制時(shí)根據(jù)所確定的資源利用策略限制針對(duì)受限制資源的處理器核心利用;以及耦合到所述多個(gè)處理器核心的功率控制器,所述功率控制器從每一處理器核心接收指令處理計(jì)數(shù),并將從所述處理器核心接收的指令處理計(jì)數(shù)儲(chǔ)存在至少一個(gè)軟件可見寄存器內(nèi)。
27.如權(quán)利要求26所述的系統(tǒng),其特征在于,所述功率控制器根據(jù)從接收自每一處理器核心的指令處理計(jì)數(shù)確定的工作負(fù)荷特性修改所述處理器核心的資源利用寄存器,以改善所述芯片多處理器的性能。
28.如權(quán)利要求26所述的系統(tǒng),其特征在于,所述資源控制器根據(jù)由所接收的指令處理計(jì)數(shù)確定的工作負(fù)荷特性改變所述芯片多處理器的電壓和頻率要求,以改善所述芯片多處理器的性能。
29.如權(quán)利要求26所述的系統(tǒng),其特征在于,所述資源控制器填充共享的芯片多處理器資源的資源控制寄存器,以限制每一周期對(duì)所述芯片多處理器的至少一個(gè)處理器核心接受的請(qǐng)求數(shù)。
30.如權(quán)利要求26所述的系統(tǒng),其特征在于,所述資源利用寄存器還包括指令發(fā)布扼制矢量,用于指示處理器控制器在至少一個(gè)程序周期期間禁止處理器指令發(fā)布;以及指令取出扼制矢量,用于指示所述處理器控制器在至少一個(gè)程序周期期間禁止處理器指令取出。
全文摘要
一種用于經(jīng)由資源限制的異構(gòu)芯片多處理器(CMP)的方法和裝置。在一個(gè)實(shí)施例中,該方法包括訪問資源利用寄存器來標(biāo)識(shí)資源利用策略。一旦被訪問,處理器控制器即確保處理器核心以由該資源利用策略指定的方式利用共享資源。在一個(gè)實(shí)施例中,CMP內(nèi)的每一處理器核心包括指令發(fā)布扼制資源利用寄存器、指令取出扼制資源利用寄存器、以及將其對(duì)共享資源的利用限制在最小和最大利用水平之內(nèi)的其它類似方式。在一個(gè)實(shí)施例中,資源限制提供了用于向可由硬件或軟件控制的CMP的處理器核心分配電流和功率的靈活方式。描述并要求保護(hù)了其它實(shí)施例。
文檔編號(hào)G06F1/32GK1981280SQ200580022604
公開日2007年6月13日 申請(qǐng)日期2005年6月25日 優(yōu)先權(quán)日2004年7月2日
發(fā)明者T·福瑟姆, G·赫里索斯, T·達(dá)頓 申請(qǐng)人:英特爾公司