国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      控制流水線型處理器中的功率消耗的方法和系統(tǒng)的制作方法

      文檔序號:6467992閱讀:245來源:國知局
      專利名稱:控制流水線型處理器中的功率消耗的方法和系統(tǒng)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明總地針對數(shù)據(jù)處理系統(tǒng)領(lǐng)域。
      一方面,本發(fā)明涉及流水線型處理
      器系統(tǒng)(pipelined processor system )中的動態(tài)功率控制。
      背景技術(shù)
      在流水線型處理器設(shè)計中,典型地設(shè)計各個流水線級,以通過在每一級處使從存儲器(讀出)的等待時間和向存儲器(寫入)的等待時間最小化、并且使每一級處的帶寬最大化來提供最大性能。然而,這種處理器通常被"過度設(shè)計(over-designed)" 了,因?yàn)榈湫偷奶幚砥魇褂貌恍枰诿總€時鐘周期中所有級都最大限度地運(yùn)行。在處理器被設(shè)計以在任何可能的時間都最大限度地執(zhí)行的情況下,它們的操作可能導(dǎo)致大的功率消耗,并且實(shí)際上可能致使對于一些指令分發(fā)(instruction distribution)的性能P爭低。例如,當(dāng)執(zhí)行具有自然低的指令級并行性(instruction-level parallelization, ILP )的工作量時,處理器流水線不需要以全功率/高吞吐量(throughput)模式操作,實(shí)際上,這種操作模式由于各單元中的更高的等待時間可能對性能造成負(fù)面影響,并且不必要地耗費(fèi)功率。因此,需要一種控制流水線型處理器系統(tǒng)中的性能和功率消耗的系統(tǒng)和方法。另外,需要一種流水線型處理器系統(tǒng)及設(shè)計,其提供所需要等級的性能和吞吐量、而沒有過多的功率消耗。在參照隨后的附圖和詳細(xì)說明來考察本申請的剩余部分后,傳統(tǒng)的解決方案的其它限制和缺陷對于本領(lǐng)域技術(shù)人員將會變得顯而易見。

      發(fā)明內(nèi)容
      根據(jù)本發(fā)明的各種實(shí)施例,提出了一種處理器設(shè)計和方法,其中當(dāng)處理器中的各個單元或者級執(zhí)行給定的工作量時,可動態(tài)配置的處理器監(jiān)視或檢
      測所述處理器中的各個單元或者級的性能??蓜討B(tài)配置的處理器包括一個或多個具有高性能設(shè)計/模式以及低性能設(shè)計/模式的級。高性能設(shè)計/模式被用來以相對高的功率消耗等級執(zhí)行工作量,但是當(dāng)所檢測到的、執(zhí)行工作量的性能特性許可時,處理器切換以使用低性能設(shè)計/模式來以相對較低的功率消耗等級執(zhí)行工作量。通過配置處理器以從高性能設(shè)計后退到低性能設(shè)計以滿
      足(meet)所檢測到的、執(zhí)行工作量許可的性能特性,可以優(yōu)化功率消耗。在所選擇的實(shí)施例中,諸如通過在所定義的時間窗口期間對級操作的數(shù)目進(jìn)行計數(shù),來在所述時間窗口期間監(jiān)視各個流水線級(例如,取出、解碼、執(zhí)行、回寫(write back)、完成)的吞吐量。 一開始,各個流水線級使用高吞吐量、高功率設(shè)計。然而,如果任一級的吞吐量計數(shù)指示在該級存在性能瓶頸,
      則動態(tài)地重新配置處理器流水線以使用較低吞吐量、較低功率設(shè)計。
      根據(jù)各種實(shí)施例,在使用這里描述的方法和/或裝置的軟件控制下,可以動態(tài)地配置各個流水線級中的一個或多個流水線級,以在高吞吐量、高功率設(shè)計以及較低吞吐量、較低功率設(shè)計之間切換,所述軟件控制可以在具有包括計算機(jī)可執(zhí)行指令的計算機(jī)程序代碼的數(shù)據(jù)處理系統(tǒng)中實(shí)現(xiàn)。無論何種實(shí)現(xiàn)形式,都可以通過測量在高性能模式下操作的多個流水線級的吞吐量速率來控制流水線型處理器中的功率消耗。在示例實(shí)現(xiàn)中,對于每個流水線級,通過對在預(yù)定的窗口期間發(fā)生多少個級事件進(jìn)行計數(shù)來測量吞吐量速率。通過隨時間推移測量吞吐量速率,諸如通過將一個或多個吞吐量速率與預(yù)定的高性能吞吐量閾值進(jìn)行比較,可以檢測到速率中的任何跌落(drop-off)。在檢測到何時多個吞吐量速率中的一個或數(shù)個吞吐量速率被降低到第 一預(yù)定吞吐量速率時,將第一功率等級控制信號發(fā)送到該多個流水線級。在各種實(shí)施例中,可以將功率控制信號作為l-位功率等級控制信號廣播到所有流水線級,或者將該功率控制信號作為單獨(dú)的功率等級控制信號發(fā)送到每個流水線級。如果該級具有以各種吞吐量和功率速率操作的多個等級,則可以實(shí)現(xiàn)多個功率等級控制信號以在各操作等級之間進(jìn)行選擇。響應(yīng)于第一功率等級控制信號,每個流水線級被重新配置來在低性能模式下操作,從而降低該多個流水線級的功率消耗。可以通過響應(yīng)于第一功率等級控制信號而在每一級處選擇第一低功率電路,來實(shí)現(xiàn)重新配置為低性能模式。為了返回高性能模式,監(jiān)視現(xiàn)在在低性能模式下操作的多個流水線級的吞吐量速率,以在時鐘周期窗口中檢測何時吞吐量速率達(dá)到或超出第二預(yù)定闊值速率,在該時刻將第二功率等級控制信號發(fā)送到各流水線級,使得每個流水線級被重新配置為在高性能模式下操作。


      當(dāng)結(jié)合隨后的附圖考慮下面的詳細(xì)描述時,可以理解本發(fā)明的所選擇的
      實(shí)施例、以及本發(fā)明的眾多目的、特性以及所得到的優(yōu)點(diǎn),附圖中
      圖1圖示可以實(shí)現(xiàn)本發(fā)明的所選擇的實(shí)施例的多處理器計算機(jī)架構(gòu);圖2以簡化的示意形式圖示具有性能監(jiān)視器邏輯的處理器流水線,該性
      能監(jiān)視器邏輯對在所定義的多個周期的窗口中的事件進(jìn)行計數(shù);
      圖3以簡化形式圖示用于對可編程的周期窗口中的事件進(jìn)行計數(shù)的計數(shù)
      器;
      圖4以簡化的示意開,式圖示處理器流水線,其中, 一個或多個功率等級信號饋送到流水線并控制各級的功能;
      圖5圖示可以響應(yīng)于功率等級信號而單獨(dú)選擇高性能設(shè)計和低性能設(shè)計的執(zhí)行級的示例實(shí)現(xiàn);以及
      圖6示出用于監(jiān)視各個流水線級的性能并且生成一個或多個功率等級位以控制各流水線級的示例序列的流程圖。
      具體實(shí)施例方式
      公開了一種用于監(jiān)視流水線型處理器的性能來在檢測到處理器吞吐量降低時重新配置流水線以從高性能(高功率)模式切換到低性能(低功率)模式的方法、系統(tǒng)和程序。通過將各單元設(shè)計為具有多種操作模式,并且采用通過感測吞吐量或者執(zhí)行工作量的ILP特性來在模式之間切換的機(jī)制,功率消耗可以與每個周期的執(zhí)行等待時間一起被降低,使得性能并不必然惡化,并且實(shí)際上可能提高性能。在所選擇的實(shí)施例中,性能監(jiān)視器協(xié)調(diào)如何配置每個流水線級的操作,使得使用高性能配置以相對高的功率消耗等級來執(zhí)行工作量,而在所檢測到的、執(zhí)行工作量的性能特性許可時,使用低性能配置以相對較低的功率消耗等級來執(zhí)行工作量。
      現(xiàn)在將參照附圖詳細(xì)描述本發(fā)明的各種示例實(shí)施例。將理解可以將這里描述的流程示和/或框圖整體地或者部分地由如下方式實(shí)現(xiàn)專用硬件電路、固件和/或計算機(jī)程序指令,該計算機(jī)程序指令被提供給通用計算機(jī)、專用計算機(jī)或者其它可編程數(shù)據(jù)處理裝置的處理器以產(chǎn)生一機(jī)器,使得該指令(其經(jīng)由計算機(jī)或者其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行)實(shí)現(xiàn)在流程圖和/或框圖中的一個或多個框中指定的功能/動作。另外,當(dāng)在下面的描述中提出各種細(xì)節(jié)時,將了解可以在沒有這些特定細(xì)節(jié)的情況下實(shí)踐本發(fā)明,并且可以對這里描述的發(fā)明做出許多特定實(shí)現(xiàn)決定以達(dá)到設(shè)備設(shè)計者的特定目標(biāo),諸如遵循技術(shù)或者與設(shè)計有關(guān)的限制,這些限制將依每個實(shí)現(xiàn)而有所變化。盡管這樣的開發(fā)工作可能是復(fù)雜和耗時的,但對于受益于本公開的本領(lǐng)域普通技術(shù)人員來說這仍然是可以從事的工作。例如,以框圖形式、而不是詳細(xì)地示出所選擇的方面,從而避免限制本發(fā)明或者使本發(fā)明不明確。另外,按照關(guān)于計算機(jī)存儲器內(nèi)數(shù)據(jù)的算法或者操作來呈現(xiàn)這里提供的詳細(xì)描述的一些部分。本領(lǐng)域技術(shù)人員使用這樣的描述和表述來將他們工作的主旨描述和傳遞給本領(lǐng)域其他技術(shù)人員?,F(xiàn)在將在下面參照附圖詳細(xì)描述本發(fā)明的各種示例實(shí)施例。
      現(xiàn)在參照圖1,其中圖示了根據(jù)本發(fā)明的所選擇的實(shí)施例的、提供程序
      工作量的低功率執(zhí)行而不降低性能的多處理器(MP)數(shù)據(jù)處理系統(tǒng)100的高層級框圖。數(shù)據(jù)處理系統(tǒng)100具有被布置在一個或多個處理器組中的一個或多個處理單元,并且如所示的包括處理器組10中的四個處理單元11、 21、31、 41。在對稱多處理器(SMP)實(shí)施例中,所有的處理單元ll、 21、 31、41通常是相同的,即它們都使用共同的指令和協(xié)議集或者子集來操作,并且通常具有相同架構(gòu)。如用處理單元ll所示的,每個處理單元可以包括一個或多個處理器核16a、 16b,其運(yùn)行程序指令從而操作計算機(jī)。示例處理單元可以是由國際商業(yè)機(jī)器公司出售的POWER5 處理器,其包括具有都由集成電路形成的各種執(zhí)行單元、寄存器、緩沖器、存儲器、以及其它功能單元的單個集成電路超標(biāo)量體系結(jié)構(gòu)(superscalar)微處理器。處理器核可以根據(jù)精簡指令集計算(RISC)技術(shù)操作,并且可以采用流水線以及指令的亂序執(zhí)行這兩者來進(jìn)一步提高超標(biāo)量體系結(jié)構(gòu)架構(gòu)的性能。
      如圖1進(jìn)一步所示的,每個處理器核16a、 16b包括由高速存儲器設(shè)備構(gòu)成的板上(L1)高速緩沖存儲器19a、 19b(典型地,單獨(dú)的指令和數(shù)據(jù)高速緩沖存儲器)。高速緩沖存儲器一般被用來臨時存儲可能被處理器重復(fù)存取的值,從而通過避免從系統(tǒng)存儲器61加載值的較長(時間)的步驟來加快處理速度。處理單元可以包括諸如第二級(L2 )高速緩沖存儲器12的另 一高速緩沖存儲器,其連同高速緩沖存儲器控制器(未示出) 一起支持分別作為核16a和16b的部分的Ll高速緩沖存儲器19a、 19b??梢蕴峁╊~外的緩沖存儲器級,諸如可經(jīng)由結(jié)構(gòu)總線(fabric bus) 50存取的L3高速緩沖存儲器66。從
      7最高(LI )到最低(L3)的每個高速緩沖存儲器級依次可以存儲更多的信息,但是以更長的存取(時間)作為代價。例如,處理器核(例如,16a)中的板上L1高速緩沖存儲器(例如,19a)可能具有128千字節(jié)的存儲器存儲容量,L2高速緩沖存儲器12可能具有4兆字節(jié)的存儲容量,以及L3高速緩沖存儲器66可能具有132兆字節(jié)的存儲容量。為了便于修理/更換有缺陷的處理單元組件,可以以可更換電路板、可插入模塊、或者類似的現(xiàn)場可更換單元(FRU)的形式來構(gòu)成每個處理單元11、 21、 31、 41,所述可更換電路板、可插入模塊、或者類似的現(xiàn)場可更換單元(FRU)可以被以組件形式容易地?fù)Q入、裝入、或者換出系統(tǒng)100。
      處理單元經(jīng)由系統(tǒng)互連或者結(jié)構(gòu)總線50與系統(tǒng)100的其它組件通信。將結(jié)構(gòu)總線50連接到一個或多個服務(wù)處理器60、系統(tǒng)存儲器設(shè)備61、存儲器控制器62、共享的或者L3系統(tǒng)高速緩沖存儲器66、和/或各種外圍設(shè)備69。可選地,可以使用處理器橋70將另外的處理器組相互連接。盡管未示出,將理解數(shù)據(jù)處理系統(tǒng)IOO還可以包括固件,其存儲系統(tǒng)的基本輸入/輸出邏輯,并且無論何時首次打開(引導(dǎo))計算機(jī)系統(tǒng),都從外圍設(shè)備之一搜出并加載操作系統(tǒng)。
      如圖1所描述的,可以將數(shù)據(jù)處理系統(tǒng)100中包括的每個核(例如16a)與流水線結(jié)構(gòu)50 —起實(shí)現(xiàn),在該流水線結(jié)構(gòu)50中,提供多個流水線級使得每一級可以同時執(zhí)行任務(wù)。在示例實(shí)現(xiàn)中,流水線結(jié)構(gòu)50可以包括取出級51、解碼級52、執(zhí)行級53、回寫級54以及完成級55,其中每一級可以包括一個或多個單元。當(dāng)操作為流水線時,取出級51在給定的周期中取出一個或多個指令,同時在同一周期期間,解碼級52解碼在前一周期中取出的指令。同時,執(zhí)行級53計算之前取出并解碼的一個或多個指令的結(jié)果,回寫級54執(zhí)行前一周期中的執(zhí)行級所需要的任何寄存器回寫操作,完成級55通過考慮之前執(zhí)行的指令來維持正確的架構(gòu)機(jī)器狀態(tài)。
      系統(tǒng)存儲器設(shè)備61 (隨機(jī)存取存儲器或RAM)以易失性(臨時)狀態(tài)存儲由處理單元使用的程序指令和操作數(shù)數(shù)據(jù)(叩erand data),該系統(tǒng)存儲器設(shè)備61包括操作系統(tǒng)61A和應(yīng)用程序61B。另外,可以以諸如操作系統(tǒng)模塊或者系統(tǒng)管理器(supervisor)的任何期望的形式將性能監(jiān)視器模塊61C存儲在系統(tǒng)存儲器中,該系統(tǒng)管理器諸如是管理程序(hypervisor)組件等,并且響應(yīng)于流水線結(jié)構(gòu)50中的所檢測到的性能或者吞吐量狀況,使用該性能監(jiān)視器模塊61C來優(yōu)化處理器核的功耗。盡管作為系統(tǒng)存儲器內(nèi)的設(shè)施示出,但本領(lǐng)域技術(shù)人員將理解可以替代地在數(shù)據(jù)處理系統(tǒng)100的另一組件內(nèi)實(shí)現(xiàn)性能監(jiān)視器模塊61C,或者可以在每個處理核中實(shí)現(xiàn)性能監(jiān)視器模塊的各個實(shí)例(instance),以分別控制每個核處的功率消耗。無論被如何實(shí)現(xiàn),性能監(jiān)視器模塊61C都可以使用可執(zhí)行指令、代碼和/或包括可編程寄存器的控制邏輯,以便在某一數(shù)目(或者窗口)的時鐘周期上檢查給定的流水線結(jié)構(gòu)的性能吞吐量(例如,8個時鐘周期中有5個事件);檢測任何正在以較低的吞吐量性能進(jìn)行操作(例如,正被停止運(yùn)轉(zhuǎn)(stall))的流水線級;并且在受影響的流水線級中選擇以較低的功率消耗操作的低性能模式或者電路設(shè)計,且同時維持該流水線現(xiàn)有的性能等級,如在下面將更全面地描述的。
      在各種實(shí)施例中,性能監(jiān)視器模塊可被用來監(jiān)視和控制處理器核中的各個流水線級的性能等級,從而將吞吐量(或者帶寬)與等待時間和功率進(jìn)行權(quán)衡。圖2中描述了示例實(shí)施例,以筒化的示意形式圖示具有性能監(jiān)視器邏輯220的示例處理器流水線200,該性能監(jiān)視器邏輯220監(jiān)視每個流水線級的吞吐量,然后基于所檢測到的各個流水線級的吞吐量來控制各個流水線級的功耗。可以使用包括多個級的任何期望的流水線架構(gòu)。例如,流水線200可以包括取出并轉(zhuǎn)送指令的指令高速緩沖存儲器取出級202、解碼所取出的指令的指令解碼級204、基于執(zhí)行和回寫反饋來執(zhí)行解碼后的指令的執(zhí)行級206、對寄存器文件執(zhí)行回寫操作的回寫級208、以及完成各指令的完成級210。如圖2中所示,處理器流水線200的取出級、解碼級、執(zhí)行任務(wù)(executionissue)級、回寫級、以及完成級中的每一級具有多種操作模式和/或可分別選擇的電路或者邏輯。例如,流水線200可以包括取出級202,該取出級202具有至少兩種模式,諸如(1 )在2個流水線周期上每周期可以取出4個指令的高功率、高吞吐量模式、以及(2)在1個流水線周期上每周期可以取出2個指令的低功率、低吞吐量模式??梢岳玫谝蝗〕鲭娐?02A實(shí)現(xiàn)高功率、高吞吐量取出模式,可以利用第二取出電路202B實(shí)現(xiàn)低功率、低吞吐量模式。另外,解碼級204可以具有兩個或者多個可分別選擇的解碼電路,諸如(l)在3個流水線周期上解碼4個指令的第一解碼電路204A、以及(2)在1個流水線周期上解碼2個指令的第二解碼電路204B。以類似的方式,可以在執(zhí)行級206處提供可分別選擇的電路、模式和/或邏輯,用來執(zhí)行指令,諸如(1 )以解碼單元的時鐘頻率的兩倍的時鐘頻率運(yùn)行的、在2個周期中執(zhí)行一指令的第一執(zhí)行電路206A、以及(2)以與解碼單元相同的時鐘頻率運(yùn)行的、在4個周期中執(zhí)行一指令的第二執(zhí)行電路206B。類似地,可以給回寫級208提供可分別選擇的電路、模式和/或邏輯,以處理對于寄存器文件的各種回寫數(shù)目和各種回寫等待時間,并且在完成級210處處理各種完成指令數(shù)目和各種完成指令等待時間。在每個所描述的級中,利用后綴"A,,指示高功率、高吞吐量的電路或模式,而利用后綴"B"指示低功率、低吞吐量的電路或模式。
      如圖2所描述的,流水線級202、 204、 206、 208、 210每一個具有通過檢測每個周期的吞吐量計數(shù)來監(jiān)視每個流水線級的性能的邏輯和/或電路,該吞吐量計數(shù)被發(fā)送到性能監(jiān)視器邏輯220。因此,指令高速緩沖存儲器取出級202對每個周期中被取出并被轉(zhuǎn)送到指令解碼級204的指令的數(shù)目進(jìn)行計數(shù),并將取出計數(shù)213提供給性能監(jiān)視器220。同樣,指令解碼級204對每個周期的解碼事件進(jìn)行計數(shù),并將解碼計數(shù)215發(fā)送到性能監(jiān)視器220,而執(zhí)行級206對每個周期的執(zhí)行事件進(jìn)行計數(shù),并將執(zhí)行計數(shù)217提供給性能監(jiān)斗見器220。以類似的方式,回寫級208發(fā)送被轉(zhuǎn)送到完成級210的回寫揭:作的數(shù)目的回寫計數(shù)219,而完成級210對所執(zhí)行的完成的數(shù)目進(jìn)行計數(shù),并將完成計數(shù)221提供給性能監(jiān)視器220。還示出了功率消耗信號222,其可由熱傳感器生成,并且指示系統(tǒng)的當(dāng)前功率消耗狀態(tài)。信號222可以包括源自系統(tǒng)的不同部件的多個信號。
      盡管可以使用任何期望的技術(shù)來監(jiān)視流水線性能,但是本發(fā)明的所選擇的實(shí)施例通過在計數(shù)窗口期間對每一級的操作的數(shù)目進(jìn)行計數(shù)來監(jiān)視各個級的性能。圖3中描述示例實(shí)現(xiàn),以筒化形式圖示給每一級提供的、以在可編程的周期窗口期間對在該級處發(fā)生的事件的數(shù)目進(jìn)行計數(shù)的吞吐量計數(shù)器300。盡管可以使用任何期望的窗口來進(jìn)行計數(shù),但所描述的吞吐量計數(shù)器300通過使用8周期移位寄存器302來在8周期窗口上對級事件進(jìn)行計數(shù)。提供可編程移位寄存器302來從該級接收事件計數(shù)指示,其中將每個事件計數(shù)指示加到由計數(shù)器304保持的值。還將計數(shù)器304耦接到可編程移位寄存器302的輸出端,使得從計數(shù)器304中減去從寄存器302中移出的事件計數(shù)。在操作中,進(jìn)入移位寄存器302的最左邊的寄存器位的事件計數(shù)在每個時鐘點(diǎn)(tick)時被移到下一寄存器位。利用該配置,計數(shù)器304將輸出事件計數(shù),該事件計數(shù)等于級的數(shù)目乘以當(dāng)在高性能模式下以穩(wěn)定狀態(tài)操作時每個時鐘周期在該級中可以發(fā)生的最大的事件數(shù)目。例如,如果每個時鐘周期可以發(fā)
      10生4個事件并且寄存器302長為8級,則最大計數(shù)器值可以是"32"。然而,如果該級在一時鐘周期期間無法生成任何事件,則計數(shù)器304將輸出較低的事件值,從而發(fā)信號通知該級的降低的性能吞吐量。以此方式,由吞吐量計數(shù)器300生成的事件計數(shù)提供正被吞吐量計數(shù)器300監(jiān)視的級的性能等級的指示。
      返回參照圖2,性能監(jiān)視器220使用吞吐量計數(shù)213、 215、 217、 219、221生成一個或多個信號以調(diào)節(jié)各個流水線級的性能,從而匹配最低性能級的性能等級。因此,如果性能監(jiān)視器220由吞吐量計數(shù)確定處理器流水線的后端停止運(yùn)轉(zhuǎn)(例如,等待明顯的負(fù)載丟失(outstanding load miss )、分支預(yù)測錯誤、以及執(zhí)行單元等待時間),則可將前端級的性能從高性能、高功耗模式(其使用高性能取出電路202A)轉(zhuǎn)換到低性能、低功耗模式(其使用較低性能的取出電路202B)。在這樣的情況下,前端取出級202也可以使用較低性能電路202B或者模式來一次一個地取出較少的指令,而對于整個流水線200而言具有相同的性能,這是因?yàn)榱魉€的后端正在限制總吞吐量。同樣,如果前端級停止運(yùn)轉(zhuǎn)(例如,取出級202由于指令丟失(miss)而停止運(yùn)轉(zhuǎn)),則不需要隨后的解碼級204繼續(xù)使用高性能、高功耗解碼電路204A來在同一周期中解碼最大數(shù)目的指令以供在處理器流水線中的后面進(jìn)一步使用,這是因?yàn)樵谶@些指令被解碼后,由于取出單元停止運(yùn)轉(zhuǎn)的狀況而在管道(pipe)中將出現(xiàn)空泡(bubble)。通過在使用較低性能解碼電路204B來解碼較少的指令而不存在性能影響時使用該較低性能解碼電路204B來解碼較少的指令,可以降低每個周期的功率消耗。以類似的方式,可以有效地降低其它后端級的功率,以匹配停止運(yùn)轉(zhuǎn)的前端級的性能等級,從而實(shí)質(zhì)上降低整個流水線的功耗。
      在所選擇的實(shí)施例中,性能監(jiān)視器220包括控制邏輯,'用于生成被廣播到所有各級的一個或多個功率等級信號224。實(shí)際上(in effect),控制邏輯將吞吐量計數(shù)213、 215、 217、 219、 221 (單獨(dú)地或者與功率消耗信號22組合地,該功率消耗信號22量化正被處理器流水線200消耗的功率量)拼合為一個(或多個)功率等級信號224??梢詫⑿阅鼙O(jiān)視器220中的控制邏輯配置為使用吞吐量計數(shù)來確定一級與其它各級相比是否具有降低的吞吐量,并且為該流水線識別具有最低吞吐量的流水線級。當(dāng)檢測到低性能級時,性能監(jiān)視器220中的控制邏輯生成一個或多個功率等級信號224來控制各個級的性能,以通過為每一級選擇較低功率的電路或者操作模式來匹配最低性能級
      的吞吐量。因此,功率等級信號224向各級指示應(yīng)當(dāng)使用哪種操作模式,使得每一級要么提供高功率/高吞吐量、要么提供低功率/低吞吐量。
      使用性能監(jiān)視器控制邏輯,可以降低各個流水線級的功耗以滿足最低性能流水線級的性能吞吐量。為了例示的目的,下面示出了示例偽代碼,其可被操作系統(tǒng)或者系統(tǒng)管理器使用來利用事件閾值動態(tài)地重新配置被提供給各個流水線級的功率等級信號,以確定何時流水線的吞吐量計數(shù)將允許改變功率等級而不減損(impair)流水線的總體吞吐量??梢詫⒃搨未a實(shí)現(xiàn)為軟件、微代碼、或者硬件邏輯電路。此偽代碼可以適于其中每級每時鐘周期有4個
      可能事件的8周期事件計數(shù)窗口。
      #define HI_EVENT—THRESH 12#define L6[jEVENiLTHRESH 16#defme PL—COUNT—THRESH 256
      FH = (FetohEventCount >= HI—EVENT—THRESH);DH = (DecodeEventCount >= 5l—EVElT丁一THRESH);EH = (ExecutionEventCount >= 5i一EVEl^i—THRESH);WH = (WritebackEventCount 〉= HY一EVENf一THRESH);CH = (CompletionEventCoimt >= H匸EVENiL丁HRESH);FL = (FetchEventCount = LO—EVE^TT—THRisH);DL = (DecodeEventCount = iTo—EVEl^T—THRESH);EL = (ExecuteEventCount = LO—EVENT—THRESH);WL = (WritebackEventCount = lo—EVENT—THRESH);CL = (CompleteEventCount = LO—EVENT—THRESH);
      if ((!FH && !DH && !EH && !WH && !CH && 〃幾個事件PL) 〃高功率II SYS_POWER) { 〃系統(tǒng)功率消耗信號高PL = 0; 〃進(jìn)入低功率PL—COUNT = 0; 〃復(fù)位} elseif(!PL&& 〃低功率
      ((FL && DL && EL && WL && CL) || 〃所有級都繁忙PL_COUNT 〉= PL—COUNT—THRESH)) { 〃低功率計數(shù)高PL=1; 〃進(jìn)入高功率} else PL_COUNT++; 〃向上計lt直到闊值
      利用此示例代碼序列,設(shè)置事件閾值以定義何時充分利用了處于高功率/高性能模式下的單個級(例如,在窗口期間來自級的事件計數(shù)何時超出
      HI—EVENTJTHRESH,該HI—EVENTJTHRESH為12),并且定義何時充分利 用了處于低功率/低性能模式下的單個級(例如,在窗口期間來自級的事件計 數(shù)何時等于LO—EVENT—THRESH,該LO—EVENT—THRESH為16 )。另夕卜, 設(shè)置超時計數(shù)器閾值(PL—COUNT—THRESH )以定義在切換回高功率/高性 能模式之前流水線應(yīng)當(dāng)在低功率/低性能模式下運(yùn)行多少時鐘周期,這給予監(jiān) 視器確定流水線現(xiàn)在是否可以具有較高的總體吞吐量的機(jī)會。將來自每個流 水線級的事件計數(shù)(例如,F(xiàn)etchEventCount, DecodeEventCount, ExcuteEventCount, WritebackEventCount, CompleteEventCount ) 與高功率事件閾值
      (HI—EVENT—THRESH)進(jìn)行比較,并且使用比較結(jié)果來生成被用來控制流 水線執(zhí)行的功率等級(PL)邏輯位。在所描述的代碼序列中,當(dāng)所有級沒有 被很好地利用時(例如,來自各級的事件計數(shù)低于高功率事件閾值 HI—EVENT—THRESH),將在高功率模式(例如,當(dāng)PL=1時)下操作的流水 線切換到低功率模式(例如,當(dāng)PL=0時)。當(dāng)將流水線切換到低功率模式(!PL ) 時,隨著每個時鐘周期對復(fù)位功率等級超時計數(shù)器(PL_COUNT)增計數(shù), 并且將來自每個流水線級的事件計數(shù)與最大低功率事件閾值
      (LO—EVENT—THRESH )進(jìn)行比較,該最大低功率事件閾值
      (LO—EVENT—THRESH)在一個實(shí)施例中意味著在8周期窗口上每個周期 計數(shù)2個事件。當(dāng)此比較指示各流水線級在其低功率/低性能模式下被充分利 用并且功率等級超時計數(shù)器達(dá)到或者超出超時計數(shù)器閾值
      (PL—COUNT—THRESH)時,選擇高功率模式(PL=1)。還示出了系統(tǒng)功率 消耗信號(SYS—POWER)的使用,當(dāng)通過系統(tǒng)熱傳感器或者其它高功率狀 況,將該系統(tǒng)功率消耗信號設(shè)置為高(例如,SYS—POWER=l)時,該系統(tǒng) 功率消耗信號使得功率等級信號保持為低(例如,pl=0),其依次降低系統(tǒng) 功率并且逐漸使得功率消耗信號返回低(例如,SYS—POWER=0 )。
      可以參照圖4中描述的示例來示出施加一個(或多個)功率等級(PL) 信號以控制各個流水線級的操作,圖4以筒化形式圖示處理器流水線400, 其中一個或多個功率等級信號412饋入流水線級402、 404、 406、 408、 410, 并且控制各級的功能。在每一級中,可以利用第一電路(如利用后綴"A" 指示的)實(shí)現(xiàn)第一高功率、高吞吐量模式,可以利用第二電路(如利用后綴
      "B"指示的)實(shí)現(xiàn)第二低功率、低吞吐量模式。如果性能監(jiān)視器檢測到完成單元410A每周期完成平均2個或者更少的指令,則可以使該各級使用低功 率/低吞吐量模式,這是因?yàn)樵诟吖β?高吞吐量模式下運(yùn)行取出、解碼、回寫 以及發(fā)出單元是不理智的。為了完成這點(diǎn),性能監(jiān)視器發(fā)出一個或多個功率 等級信號412來指示完成級和其它級開始在降低的或者低功率/低吞吐量模式 下執(zhí)行。在功率等級信號412是被發(fā)送到所有級的單個信號的示例實(shí)施中, 接收"低"功率等級信號412的級選擇低功率模式或者低功率電路來執(zhí)行其 功能。因此,如果取出級402A接收"低"功率等級信號412,則重新配置取 出級以使用低功率、低吞吐量電路402B,使得每周期僅取出2個指令,而不 是每周期取出4個指令(當(dāng)其在高功率/高吞吐量^t式下時)。同樣,可以將 接收"低,,功率等級信號412的解碼級404A重新配置為低功率、低吞吐量 模式,其中,使用兩個低功率解碼器404B以便每周期最多僅解碼2個指令。 并且,當(dāng)提供"低"功率等級信號412時,將高性能執(zhí)行級406A重新配置 為低性能執(zhí)行級406B,以便每周期僅調(diào)度(schedule)兩個指令或者在低頻 率模式下執(zhí)行。另外,將高功率回寫級408A重新配置為低性能回寫級408B, 以便每周期4義回寫兩個指令。以此方式,當(dāng)完成級410的吞吐量將流水線400 的總體工作量執(zhí)行特性降低為每周期完成兩個指令時,可以"下移"其它級 來匹配完成單元410的性能等級,而不使總體流水線性能降級。
      如將理解的,不應(yīng)當(dāng)無限期地將各流水線級留在低性能、低功率模式下, 并且應(yīng)當(dāng)提供在明顯地工作量可以受益于更高吞吐量時允許流水線返回高性 能模式的機(jī)制,如在程序執(zhí)行階段中工作量的固有指令級并行性(ILP)增加 時發(fā)生的。這可以通過在各級在低功率/低吞吐量模式下操作時繼續(xù)監(jiān)視來自 各級的吞吐量計數(shù)來完成。當(dāng)性能監(jiān)視器220 (圖2中示出)隨后檢測到處 于低功率/低吞吐量模式下的各級平均為或者接近于在低功率/低通過率模式 下所允許的每周期的最大利用指令處理時,可以將各流水線級重新配置以返 回高性能、高功率模式。為此目的,性能監(jiān)視器220可以發(fā)出一個或多個功 率等級信號224以指示所有級切換到高功率/高吞吐量模式。 一旦返回高功率 /高吞吐量模式,性能監(jiān)視器224繼續(xù)監(jiān)視來自每一級的吞吐量計數(shù),以確定 工作量特性是否已經(jīng)改變以及現(xiàn)在是否可以并行地處理更多指令。如將理解 的,可以在同一周期或者不同周期中使各個級在各模式之間切換,并且可以 利用各個功率等級信號224單獨(dú)控制該各個級。
      除了降低功耗之外,與有時被稱作設(shè)計的"貪婪(greedy)"方式的、僅
      14被設(shè)計來用于最大性能執(zhí)行的流水線級相比,對于各個級選擇性地使用較低 性能電路的能力實(shí)際上可以改進(jìn)對于特定工作量的工作量性能。例如,凈皮設(shè) 計為在單個周期中解碼四個指令的流水線解碼級可能比單個周期解碼兩個指 令的解碼占用更多的時鐘周期。在此情況下,當(dāng)工作量僅需要每周期解碼兩 個指令時,相對于更長的等待時間(但更高的吞吐量)而言,降低的等待時 間的解碼器將動態(tài)地是優(yōu)選的。這種工作量的示例為具有自然低的指令級平 行性(ILP)的工作量,其中在全功率/高吞吐量中執(zhí)行處理器流水線是不必 要的,并且由于各單元中較高的等待時間可能對性能造成負(fù)面影響,并且不 必要地耗費(fèi)功率。
      為了例示如何使用功率等級信號來動態(tài)地重新配置單個處理器級從而使
      其在高性能和低性能模式之間切換,圖5圖示可以響應(yīng)于功率等級信號而分 別選擇高性能設(shè)計和低性能設(shè)計的執(zhí)行級500的示例實(shí)現(xiàn)。如所描述的,執(zhí) 行級500包括多個可分別選擇的執(zhí)行電路,其包括第一高功率執(zhí)行流水線電 路520、第二高功率執(zhí)行流水線電路522、低功率執(zhí)行流水線電路524以及可 配置執(zhí)行流水線電路526。高功率執(zhí)行流水線520和522以及可配置流水線 526可以使用額外的電路或者倍頻以明顯更多的功率消耗為代價來降低指令 執(zhí)行的等待時間。如所描述的,執(zhí)行調(diào)度器510包括調(diào)度邏輯512以及門控
      (gating)邏輯514、 516,該調(diào)度邏輯512以及門控邏輯514、 516接收解碼 后的指令501,并且取決于功率等級信號502的值來選擇性地路由指令,以 便由執(zhí)行電路520、 522、 524、 526執(zhí)行。 一般而言,功率等級信號確定執(zhí)行 級500使用執(zhí)行電路來實(shí)現(xiàn)高性能模式(其造成較高的功率消耗)還是低性 能模式(其造成較低的功率消耗)。如圖5的簡單示例實(shí)現(xiàn)中所示,被設(shè)置為
      "高"并且被施加到門控邏輯514、 516的單個功率等級位502有效地使得所 有執(zhí)行電路520、 522、 524、 526能夠被處于高性能模式下的執(zhí)行級500使用。 然而,當(dāng)將功率等級位502設(shè)置為"低"時,門控邏輯514、 516有效地禁用 第一和第二高功率執(zhí)行流水線電路520、 522,使得低功率執(zhí)行流水線電路524 被處于低性能模式下的執(zhí)行級500使用。除了選擇性地使能高功率執(zhí)行流水 線電路520、 522之外,還可以使用功率等級位502來單獨(dú)配置可配置執(zhí)行單 元526。還可以將功率等級位502并入調(diào)度邏輯512中以限制所調(diào)度的操作。
      當(dāng)然,將理解可以使用其它途徑來在各個流水線級處降低功耗和性能, 而不降低在其當(dāng)前吞吐量速率上的總體流水線吞吐量。例如,可以通過降低每一級的時鐘速率來節(jié)流(throttle back)各個流水線級。另外或者作為替換, 如果單個級包括重復(fù)的資源(例如,執(zhí)行級中的兩個浮點(diǎn)單元),則可以通過
      僅使用所述資源之一來將該級重新配置為較低功率^t式。
      為了進(jìn)一步例示本發(fā)明的所選擇的實(shí)施例,圖6示出了用于監(jiān)視各個流 水線級的性能并且生成一個或多個功率等級位來控制流水線級的示例方法 600的流程圖示。在步驟601中,處理開始,諸如當(dāng)處理器正在以被配置為 處于高性能、高功率模式下的流水線操作時。在步驟602中,監(jiān)視流水線性 能以檢測流水線吞吐量或者性能何時下降。對于每一級,這可以通過計數(shù)或 者檢測在時間窗口中發(fā)生多少個級事件來完成,其中該窗口可以是固定的或 者可被可編程地調(diào)節(jié)。因此,性能監(jiān)視器對在計數(shù)窗口期間在取出級處發(fā)生 的取出事件進(jìn)行計數(shù),并且分離地對在計數(shù)窗口期間在解碼級處發(fā)生的解碼 事件進(jìn)行計數(shù),依此類推。步驟602的結(jié)果是為每個流水線級測量吞吐量計 數(shù)或者事件窗口計數(shù)。在步驟603中,使用性能監(jiān)視器中的控制邏輯將每一 級的事件窗口計數(shù)與預(yù)定閾值進(jìn)行比較?;诒容^,生成功率等級位以控制 流水線操作。如果來自單個級的事件窗口計數(shù)低于第一閾值,則該比較可以 生成"低"功率等級位,或者可以要求來自所有級的事件計數(shù)都低于第一閾 值。相反,如果來自所有級的事件窗口計數(shù)都等于或者高于第二閾值,則該 比較可以生成"高"功率等級位。在步驟604中,將功率等級位分發(fā)或者廣 播到各流水線級以控制在每一級處如何使用資源。當(dāng)功率等級位在步驟604 中指示要實(shí)現(xiàn)較低性能、較低功率模式時,重新配置流水線級資源以降低取 出、解碼、執(zhí)行、回寫以及完成指令時的速率。相反,如果功率等級位在步 驟604指示要實(shí)現(xiàn)較高性能、高功率模式時,則重新配置流水線級資源以提 高取出、解碼、執(zhí)行、回寫以及完成指令時的速率。因此,當(dāng)隨時間推進(jìn)而 重復(fù)方法600時,使用檢測到的吞吐量計數(shù)以調(diào)節(jié)功率等級位來要么降低要 么提高流水線性能(以及隨之的功井毛)。
      盡管已經(jīng)參照用于控制流水線處理中的各個級的功耗的示例實(shí)現(xiàn)提供了 前述描述,但將理解這里公開的技術(shù)可被更廣泛地應(yīng)用。例如,可以基于多 核處理器系統(tǒng)的總體工作量執(zhí)行特性來將多核處理器系統(tǒng)從第一、高性能模 式(其中所有處理器核都在操作)動態(tài)地重新配置為第二、較低功率性能模 式(其中僅所選擇的處理器核被使能并且可操作)。在另一示例中,在較低性 能模式下可以選擇通用處理器核來應(yīng)對圖形處理要求,否則該圖形處理要求將通過更快、更消耗功率的專用圖形加速器電路來應(yīng)對。
      如本領(lǐng)域技術(shù)人員將理解的,可以將本發(fā)明整體或者部分地實(shí)現(xiàn)為方法、
      系統(tǒng)、或者計算機(jī)程序產(chǎn)品。因此,本發(fā)明可以采用以下形式整體硬件實(shí) 施例、整體軟件實(shí)施例(包括固件、駐留軟件、微代碼)等、或者組合軟件 和硬件方面的實(shí)施例,這些實(shí)施例在這里被統(tǒng)稱作"電路"、"模塊"、或者"系 統(tǒng)"。此外,本發(fā)明可以釆用計算機(jī)可用存儲介質(zhì)上的計算機(jī)程序產(chǎn)品的形式, 在該計算機(jī)可用存儲介質(zhì)上包含計算機(jī)可用程序代碼。例如,多處理器系統(tǒng) 中的每個處理器核可以具有其自身的編程指令或者代碼,用于基于檢測到的 流水線吞吐量來重新配置流水線性能以降低功耗。可替換地,性能監(jiān)視器邏 輯可以集中地(centrally)位于整個多處理器系統(tǒng)的單個位置處。
      已經(jīng)為例示和說明的目的提出了前述描述。并非意在窮舉或者將本發(fā)明 限制為所公開的確切形式。按照上述教導(dǎo),可以進(jìn)行許多修改和變化。意在 本發(fā)明的范圍不由此詳細(xì)描述、而是由所附的權(quán)利要求書限制。上述說明和 示例實(shí)現(xiàn)提供了制造和使用本發(fā)明的組成部分的完整描述。由于可以在不背 離本發(fā)明的精神和范圍的前提下做出本發(fā)明的許多實(shí)施例,因此本發(fā)明在于 所附的權(quán)利要求書。
      權(quán)利要求
      1. 一種用于控制流水線型處理器中的功率消耗的方法,包括測量在高性能模式下操作的多個流水線級的對應(yīng)的多個吞吐量速率;檢測該多個吞吐量速率中的一個或數(shù)個吞吐量速率何時被降低到第一預(yù)定吞吐量速率;在檢測到該多個吞吐量速率被降低到該第一預(yù)定吞吐量速率時,將第一功率等級控制信號發(fā)送到該多個流水線級;以及響應(yīng)于該第一功率等級控制信號來重新配置該多個流水線級以在低性能模式下操作,從而降低該多個流水線級的功率消耗。
      2. 如權(quán)利要求l所述的方法,還包括監(jiān)^f見該多個流水線級的該多個吞吐量速率,以^r測該多個吞吐量速率何 時達(dá)到或超出第二預(yù)定閾值速率;在檢測到該多個吞吐量速率達(dá)到或超出第二預(yù)定閾值速率時,將第二功 率等級控制信號發(fā)送到該多個流水線級;以及響應(yīng)于該第二功率等級控制信號來重新配置該多個流水線級以在高性能 模式下操作。
      3. 如權(quán)利要求l所述的方法,其中,測量多個吞吐量速率包括對于每 個流水線級,計數(shù)在預(yù)定窗口期間發(fā)生多少個級事件。
      4. 如權(quán)利要求l所述的方法,其中,檢測該多個吞吐量速率中的一個或 數(shù)個吞吐量速率何時被降低到第一預(yù)定吞吐量速率包括將該多個吞吐量速 率中的 一個或數(shù)個吞吐量速率與預(yù)定高性能吞吐量閾值進(jìn)行比較。
      5. 如權(quán)利要求l所述的方法,其中,發(fā)送第一功率等級控制信號包括 將1-位功率等級控制信號廣播到該多個流水線級。
      6. 如權(quán)利要求l所述的方法,其中,發(fā)送第一功率等級控制信號包括 將單獨(dú)的功率等級控制信號發(fā)送到該多個流水線級中的每一個流水線級。
      7. 如權(quán)利要求l所述的方法,其中,發(fā)送第一功率等級控制信號包括 將多個功率等級控制信號發(fā)送到每一級,以選擇對應(yīng)的多個流水線級功率消 耗模式、等級或者電路。
      8. 如權(quán)利要求l所述的方法,其中,重新配置該多個流水線級包括響 應(yīng)于該第一功率等級控制信號,來在每一級處選擇第一低功率電路。
      9. 一種婆:據(jù)處理系統(tǒng),包括處理器,包括多個電路模塊,其中,每個電路模塊執(zhí)行預(yù)定電路操作, 并且包括用于執(zhí)行該預(yù)定電路操作的較高功率電路以及用于執(zhí)行該預(yù)定電路 操作的較低功率電路;數(shù)據(jù)總線,其被耦接到該處理器;以及計算機(jī)可用介質(zhì),包含計算機(jī)程序代碼,該計算機(jī)可用介質(zhì)被耦接到該 數(shù)據(jù)總線,該計算機(jī)程序代碼包括可由該處理器執(zhí)行、并被配置為通過以下 步驟來控制該處理器中的功率消耗的指令測量多個電路模塊的對應(yīng)的多個吞吐量速率,該多個電路模塊中的每 個電路模塊通過使用其較高功率電路來進(jìn)行操作;檢測該多個吞吐量速率中的一個或數(shù)個吞吐量速率何時被降低到第 一預(yù)定吞吐量速率;在檢測到該多個吞吐量速率被降低到該第一預(yù)定吞吐量速率時,將第 一功率等級控制信號發(fā)送到該多個電路模塊;以及響應(yīng)于該第一功率等級控制信號來重新配置該多個電路模塊,使得每 個電路模塊通過使用其較低功率電路而操作,從而降低該多個電路模塊的 功率消耗。
      10. 如權(quán)利要求9所述的數(shù)據(jù)處理系統(tǒng),還包括被配置為通過以下步驟 來控制該處理器中的功率消耗的指令監(jiān)視該多個電路模塊的該多個吞吐量速率,以檢測該多個吞吐量速率何 時達(dá)到或超出第二預(yù)定閾值速率;在檢測到該多個呑吐量速率達(dá)到或超出第二預(yù)定閾值速率時,將第二功 率等級控制信號發(fā)送到該多個電路模塊;以及響應(yīng)于該第二功率等級控制信號來重新配置該多個電路模塊,使得每個 電路模塊通過使用其較高功率電路而操作。
      11. 如權(quán)利要求9所述的數(shù)據(jù)處理系統(tǒng),其中,該多個電路模塊包括處 理器核中的多個流水線型處理器級。
      全文摘要
      提供了一種用于動態(tài)地重新配置流水線型處理器來以降低的功耗操作而不降低現(xiàn)有性能的方法、系統(tǒng)和程序。通過在處理器中的各個單元或者級執(zhí)行給定的工作量時監(jiān)視或者檢測它們的性能,每一級可以一直使用高性能電路直到諸如檢測到吞吐量性能下降時為止,在該時間點(diǎn)重新配置各級以使用較低性能的電路,從而使用較少的功率來滿足降低的性能吞吐量的要求。通過配置處理器以從高性能設(shè)計后退到低性能設(shè)計以滿足所檢測到的、執(zhí)行工作量許可的性能特性,可以優(yōu)化功率消耗。
      文檔編號G06F1/32GK101464721SQ200810176830
      公開日2009年6月24日 申請日期2008年11月25日 優(yōu)先權(quán)日2007年12月19日
      發(fā)明者小羅伯特·H·貝爾, 小路易斯·B·卡普斯, 邁克爾·J·夏皮羅 申請人:國際商業(yè)機(jī)器公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1