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

使用低功率虛擬線程的軟件指定的電源性能管理裝置和方法

文檔序號:6567468閱讀:226來源:國知局

專利名稱::使用低功率虛擬線程的軟件指定的電源性能管理裝置和方法使用低功率虛擬線程的軟件指定的電源性能管理裝置和方法
技術(shù)領(lǐng)域
一般說來,本發(fā)明涉及多線程處理器中的電源管理。更確切地說,本發(fā)明涉及采用策略管理器和分派調(diào)度器對多線程處理器的軟件控制。
背景技術(shù)
:微處理器設(shè)計者采用許多技術(shù)提高微處理器的性能。大多數(shù)微處理器運行時使用以固定頻率行進的時鐘信號。在每個時鐘周期,微處理器的若干電路都執(zhí)行其各自功能。微處理器性能的一種度量是執(zhí)行某程序或程序集合所需的時間。根據(jù)這個觀點,微處理器的性能是其時鐘頻率、執(zhí)行指令所需的時鐘周期的平均數(shù)目(換言之,每時鐘周期所執(zhí)行指令的平均數(shù)目)以及所述程序或程序集合中執(zhí)行的指令的數(shù)目的函數(shù)。半導(dǎo)體科學(xué)家和工程師正不斷地使微處理器以更高時鐘頻率運行成為可能,主要通過減小晶體管尺寸而導(dǎo)致更快的切換時間。所執(zhí)行指令的數(shù)目很大程度上由程序要執(zhí)行的任務(wù)所確定,盡管它也受到微處理器指令集架構(gòu)的影響。若干架構(gòu)和組構(gòu)概念比如并行性已經(jīng)實現(xiàn)了性能的大幅提升。一種已經(jīng)改進了微處理器每時鐘周期指令數(shù)以及時鐘頻率的并行性概念是流水線技術(shù),它在微處理器流水線階段內(nèi)重疊了多條指令的執(zhí)行。在理想情況下,每時鐘周期一條指令在流水線內(nèi)下移至一個新階段,它執(zhí)行該指令的不同功能。因此,雖然完成每條單獨指令需要多個時鐘周期,但是由于若干單獨指令的多個周期重疊,所以減少了每條指令的平均時鐘周期數(shù)。流水線技術(shù)對性能的改進可以實現(xiàn)到程序中這些指令允許它達到的程度,換言之,達到指令執(zhí)行時不依賴于其前驅(qū)站的程度,所以能夠與其前驅(qū)站并行地執(zhí)行,這通常稱為指令級并行。由當(dāng)代微處理器使用的指令級并行中的另一種方法是對每時鐘周期的執(zhí)行發(fā)布多條指令。這些微處理器通常稱為超標(biāo)量微處理器。以上討論屬于單指令級的并行。不過,通過開發(fā)單指令級并行可以實現(xiàn)的性能改進是有限的。由指令級并行有限所強加的多種約束和其他性能約束問題近來已經(jīng)使在指令塊、序列或流的層次中開發(fā)并行性重新受到關(guān)注,這通常稱為線程級并行。線程只不過是程序指令的序列或流。多線程微處理器根據(jù)指示取回和發(fā)出多種線程指令的某種調(diào)度策略并發(fā)地執(zhí)行多個線程,比如交錯的、阻塞的或聯(lián)立的多線程。典型情況下,多線程微處理器允許多個線程以并發(fā)的方式共享微處理器的若干功能單元(如指令的取回和譯碼單元、高速緩存、分支預(yù)測單元以及加載/存儲、整數(shù)、浮點、SIMD等執(zhí)行單元)。不過,多線程微處理器包括多個資源組即語境以存儲每個線程的唯一狀態(tài),比如多個程序計數(shù)器和通用寄存器組,以易于能夠在若干線程之間快速切換以便取回指令和發(fā)出指令。由多線程微處理器涉及的性能約束問題的一個實例是,典型情況下高速緩存丟失具有相對長的等待時間。當(dāng)代基于微處理器的計算機系統(tǒng)的存儲器訪問時間通常比高速緩存命中訪問時間長一至兩個數(shù)量級之間。依賴于在高速緩存中所沒有數(shù)據(jù)的指令停滯在流水線中,等待來自存儲器的數(shù)據(jù)。因此,單線程微處理器的某些或全部流水線階段可能是空轉(zhuǎn),在許多時鐘周期都不執(zhí)行有用的工作。多線程微處理器通過在存儲器取數(shù)的等待時間期間從其他線程中發(fā)布指令可以解決這個問題,從而使流水線階段能夠前進,執(zhí)行有用的工作,有些類似于操作系統(tǒng)在缺頁時執(zhí)行任務(wù)切換,但是粒度級別比其更細。由多線程微處理器涉及的性能約束問題的其他實例是由于數(shù)據(jù)依賴;或者由于等待時間長的指令,比如除指令、浮點指令等;或者由于有限的硬件資源沖突的流水線停滯和與其相伴的空轉(zhuǎn)周期。此外,多線程微處理器從其他線程向流水線階段(否則可能會空轉(zhuǎn))發(fā)布指令的能力可以顯著地減少包括這些線程的程序或程序集合所需要的執(zhí)行時間。通過多線程和其他技術(shù)實現(xiàn)的微處理器性能提高導(dǎo)致了微處理器電源消耗的增加。電源消耗在許多應(yīng)用中是關(guān)鍵因素。所以,電源管理技術(shù)曰益受到重視。現(xiàn)有技術(shù)集中在電壓和頻率調(diào)節(jié)。許多這些技術(shù)都是處理器固有的,所以用戶無法以簡單的方式調(diào)優(yōu)。所以,在多線程處理器中非常需要提供改進的電源管理技術(shù)。理想情況下,這樣的技術(shù)將允許通過軟件界面可調(diào)的電源管理,從而使用戶便于控制電源管理。理想情況下,這樣的技術(shù)將允許通過控制各個線程進行電源管理,否則提供與各個線程相關(guān)聯(lián)的電源管理的可見性和控制。
發(fā)明內(nèi)容本發(fā)明包括具有軟件控制模塊的處理器,軟件控制模塊指定電源性能度量。策略管理器響應(yīng)所述軟件控制模塊。分派調(diào)度器響應(yīng)所述策略管理器,按照所述電源性能度量運行所述處理器。本發(fā)明還包括具有軟件控制模塊的處理器,軟件控制模塊指定電源性能度量。分支線程調(diào)度器包括內(nèi)部處理器核心組件和與軟件控制模塊直接通信的外部處理器核心組件。所述分支線程調(diào)度器按照電源性能度量運行所述處理器。本發(fā)明還包括運行處理器的方法。通過軟件控制指定電源性能度量。在外部處理器核心組件響應(yīng)所述電源性能度量。利用響應(yīng)所述外部處理器核心組件的內(nèi)部處理器核心組件實施所述電源性能度量。與連同附圖閱讀以下詳細說明,將會更全面地理解本發(fā)明,其中圖l展示了根據(jù)本發(fā)明實施例可以使用的多線程微處理器;圖2展示了根據(jù)本發(fā)明實施例所采用的分支調(diào)度器,包括分派調(diào)度器和策略管理器;圖3展示了可以與圖2的分支調(diào)度器使用的分派調(diào)度器;圖4展示了與圖3的分派調(diào)度器相關(guān)聯(lián)的若干處理操作;圖5展示了可以與圖2的分支調(diào)度器使用的策略管理器;圖6展示了與圖5的策略管理器相關(guān)聯(lián)的若干處理操作。相同的附圖標(biāo)記是指貫穿幾幅附圖的對應(yīng)部分。具體實施方式圖l展示了根據(jù)本發(fā)明實施例的流水線多線程處理器100。這個示范多線程微處理器100用于公開本發(fā)明的若干概念。應(yīng)當(dāng)理解,本發(fā)明的概念也適用于替代的多線程微處理器設(shè)計。微處理器100被配置為并發(fā)地執(zhí)行多個線程。線程一本文也稱為執(zhí)行線程的線程或指令流一包括程序指令的序列或流。這些線程可以來自微處理器100上執(zhí)行的不同程序,也可以是來自微處理器上執(zhí)行的同一程序不同部分的指令流,或者是其組合。每個線程都具有關(guān)聯(lián)的線程語境(TC)。線程語境包括若干存儲單元比如若干寄存器或若干鎖存器;以及/或者微處理器100若干存儲單元中若干位的集合,后者描述了線程執(zhí)行的狀態(tài)。換言之,所述線程語境描述了其各自線程的狀態(tài),對該線程來說它是唯一的,而不是與微處理器100上并發(fā)執(zhí)行的其他執(zhí)行線程共享的狀態(tài)。通過在線程語境中存儲每個線程的狀態(tài),微處理器100被配置為在線程之間快速切換以取回和發(fā)出指令。在一個實施例中,每個線程語境包括程序計數(shù)器(PC)、通用寄存器組和若干線程控制寄存器,它們包括在微處理器100的若干寄存器列112中。微處理器100根據(jù)命令多個線程取回指令和發(fā)出指令的調(diào)度策略并發(fā)地執(zhí)行這些線程。本文介紹了從多個線程調(diào)度分派指令的多個實施例。本文可交換地使用術(shù)語指令"發(fā)出"和"分派"。多線程微處理器100允許多個線程以并發(fā)的方式共享微處理器100的若干功能單元(如指令的取回和譯碼單元、高速緩存、分支預(yù)測單元以及執(zhí)行單元,比如加載/存儲、整數(shù)、浮點、SIMD和其他執(zhí)行單元)。微處理器100包括指令高速緩存102,用于高速緩存從包括微處理器100的系統(tǒng)的系統(tǒng)存儲器取回的程序指令一確切地說,不同線程的指令。微處理器100還包括指令抓取程序104,即指令取回流水線104,連接為從指令高速緩存102和/或系統(tǒng)存儲器并發(fā)地取回多個線程的若干,并送入連接到指令抓取程序104的指令/滑動緩沖區(qū)106中。在一個實施例中,指令取回流水線104包括四階段流水線。指令/滑動緩沖區(qū)106將若干指令提供給指令調(diào)度器108,即線程調(diào)度程序108。在一個實施例中,每個線程都具有自己的指令/滑動緩沖區(qū)106。在每個時鐘周期,調(diào)度器108都從線程之一選擇指令并發(fā)出該指令,以便在微處理器100流水線的執(zhí)行階段內(nèi)執(zhí)行。寄存器列112連接到調(diào)度器108并向執(zhí)行這些指令的執(zhí)行單元114提供指令操作數(shù)。微處理器100還包括連接到執(zhí)行單元114的數(shù)據(jù)高速緩存118。執(zhí)行單元114可以包括但是不限于整數(shù)執(zhí)行單元、浮點執(zhí)行單元、SIMD執(zhí)行單元、加載/存儲單元和分支執(zhí)行單元。在一個實施例中,整數(shù)執(zhí)行單元流水線包括四個階段訪問寄存器列112的寄存器列(RF)訪問階段、地址產(chǎn)生(AG)階段、執(zhí)行(EX)階段和存儲器第二(MS)階段。在EX階段,運行了簡單的ALU運算(比如加、減、移位等)。另外,數(shù)據(jù)高速緩存118是兩個周期的高速緩存,在EX階段中的第一個時鐘周期期間接受訪問,而且在MS階段中的第二個時鐘周期期間也接受訪問。每個線程的語境都包括其自己的寄存器列112,而每個寄存器列都包括其自己的程序計數(shù)器、通用寄存器組和若干線程控制寄存器。指令抓取程序104根據(jù)每個線程語境的程序計數(shù)器值取回若干線程的若干指令。應(yīng)當(dāng)指出,某些執(zhí)行單元114可以被流水線化,而某些可以大范圍進行。微處理器100的流水線還包括寫回階段116,它將指令結(jié)果寫回到寄存器列112中。在一個實施例中,微處理器100的流水線還包括連接在執(zhí)行單元114和寫回階段116之間的異常解決階段。在一個實施例中,執(zhí)行單元114產(chǎn)生與每個線程語境相關(guān)聯(lián)的TC指令提交信號124,以表明所指定線程的指令已經(jīng)被提交以便執(zhí)行。如果保證指令不會被微處理器100的流水線清除,而是被提交為最終完成執(zhí)行,該指令就已經(jīng)被提交以便執(zhí)行,它產(chǎn)生結(jié)果并更新微處理器100的架構(gòu)狀態(tài)。在一個實施例中,每時鐘周期可以提交多條指令,而TC指令提交信號124表明了該時鐘周期對線程語境所提交指令的數(shù)目。TC指令提交信號124提供給調(diào)度器108。調(diào)度器108響應(yīng)TC指令提交信號124,更新該線程的虛擬水位指示器,調(diào)度器108的線程調(diào)度策略使用它完成所需要的服務(wù)質(zhì)量,如以下介紹。TC指令提交信號124也提供給各自的指令/滑動緩沖區(qū)106。指令/滑動緩沖區(qū)106響應(yīng)TC指令提交信號124,更新指針以便從緩沖區(qū)106中有效移出該指令。在常規(guī)的微處理器中,從常規(guī)指令緩沖區(qū)移出若干指令并發(fā)布以便執(zhí)行。不過,指令/滑動緩沖區(qū)106在指令已經(jīng)發(fā)布用于執(zhí)行之后還會繼續(xù)存儲它們。在執(zhí)行單元114通過各自的TC指令提交信號124表明指令已經(jīng)被提交用于執(zhí)行后,才從指令/滑動緩沖區(qū)106移出這些指令。調(diào)度器108向執(zhí)行單元114提供可運行的TC信號132??蛇\行的TC信號132指定哪些線程語境是可運行的,即調(diào)度器108當(dāng)前可以從哪些線程語境發(fā)出指令。在一個實施例中,如果某線程語境是活動的并且未被其他條件(比如被暫停、等待、掛起或退讓)所阻塞,該線程語境就是可運行的。確切地說,執(zhí)行單元114使用可運行的TC信號132判斷停滯的線程語境是不是唯一的可運行線程語境,以便決定是否清除所述停滯線程語境的若千指令。執(zhí)行單元114向調(diào)度器108提供停滯事件信號126。停滯事件信號126指明由于具體停滯事件信號126所指定的原因,在執(zhí)行單元114中的某指令已經(jīng)停滯,或者可能已經(jīng)停滯。另外,停滯事件信號126包括識別所述停滯指令的線程語境的標(biāo)識符。執(zhí)行單元114還向調(diào)度器108提供解除停滯事件信號128。調(diào)度器108響應(yīng)停滯事件信號126,停止發(fā)布用于停滯線程語境的指令,直到發(fā)出了相關(guān)的解除停滯事件信號128??赡苁箞?zhí)行單元114響應(yīng)某指令而停滯的事件實例包括但不限于下列各項。第一,所述指令可能依賴于不可得到的數(shù)據(jù),比如加載指令在數(shù)據(jù)高速緩存118中未找到的數(shù)據(jù)。例如,某加法指令可能會指定不可得到的操作數(shù),因為在先加載指令在數(shù)據(jù)高速緩存118中未找到并且所述操作數(shù)尚未從系統(tǒng)存儲器中取回。第二,所述指令可能依賴于長時間運行指令產(chǎn)生的數(shù)據(jù),比如除法或其他長時間算術(shù)指令,或者從例如協(xié)處理器寄存器中移出數(shù)值的指令。第三,所述指令可能會因為硬件資源有限而引發(fā)沖突。例如,在一個實施例中,微處理器100包括單一除法器電路。如果所述除法器已經(jīng)在執(zhí)行除法指令,那么第二條除法指令必須停滯,等待第一條除法指令完成。作為另一個實例,在一個實施例中,微處理器100的指令集包括一組指令,用于進行指令高速緩存102的低級管理操作。如果某指令高速緩存管理指令已經(jīng)在執(zhí)行,那么第二條指令高速緩存管理指令必須停滯,等待第一條完成。作為另一個實例,在一個實施例中,微處理器100包括一個加載隊列,它包含相對少量的時間片,用于存儲運行中數(shù)據(jù)高速緩存118的替換數(shù)值。當(dāng)加載指令在數(shù)據(jù)高速緩存118中未找到數(shù)據(jù)時,就分配一個加載隊列入口并啟動處理器總線事務(wù)處理,從系統(tǒng)存儲器中獲取未找到的數(shù)據(jù)。當(dāng)所述數(shù)據(jù)返回到總線上時,它被存儲到加載隊列中并在隨后寫入到數(shù)據(jù)高速緩存118中。當(dāng)總線事務(wù)處理完成并將全部數(shù)據(jù)寫入到數(shù)據(jù)高速緩存118后,就釋放所述加栽隊列入口。不過,當(dāng)加載隊列被占滿時,加載未成會引起流水線停滯。第四,所述指令可能跟隨EHB指令。在一個實施例中,微處理器100的指令集包括EHB(執(zhí)行冒險屏蔽)指令,軟件使用它停止指令的執(zhí)行,直到已經(jīng)清除了全部的執(zhí)行冒險。典型情況下,跟隨EHB指令的若干指令將在流水線中停滯,直到收回了EHB指令。第五,所述指令可能跟隨其地址為同一線程語境中的線程間通信(ITC)空間的加載或存儲指令。在一個實施例中,微處理器100支持向包括同步存儲器的ITC空間進行加載和存儲,它可能阻塞任意長的時間,導(dǎo)致跟隨ITC加栽或存儲之后的同一線程語境中的指令停滯。相反,解除停滯事件信號128的實例包括但不限于下列各項在數(shù)據(jù)高速緩存118中未找到的加載數(shù)據(jù)已返回;釋放了有限的硬件資源,比如除法器電路、指令高速緩存102或加載隊列時間片;完成了EHB指令、長時間運行指令或?qū)€程間通信(ITC)空間的加載/存儲指令。執(zhí)行單元114還產(chǎn)生與每個線程語境相關(guān)聯(lián)的TC清除信號122,以指示在流水線執(zhí)行部分(即在調(diào)度器108下面的流水線部分)中所指定線程的指令已經(jīng)被清除或已經(jīng)無效。在一個實施例中,清除指令或使指令無效包括清除與流水線中指令相關(guān)聯(lián)的有效位,這就阻止了流水線響應(yīng)該指令的結(jié)果而更新微處理器100的架構(gòu)狀態(tài)。執(zhí)行單元114可以產(chǎn)生TC清除信號122的一個前提是當(dāng)線程的指令將在執(zhí)行單元114中停滯之時,如上所述。清除指令或使指令無效消除了指令將被停滯的前提,因為產(chǎn)生的用于指令的結(jié)果將被忽略不計,因此不必正確。優(yōu)選情況下,通過清除停滯的指令,其他線程的指令可以繼續(xù)執(zhí)行并利用執(zhí)行流水線的執(zhí)行帶寬,從而潛在地提高了微處理器100的整體性能,如以下更詳細的介紹。在一個實施例中,僅僅清除停滯線程的指令,優(yōu)選情況下,這可以減少由清除所引入的流水線氣泡的數(shù)目,并且在某些情況下,可以僅僅導(dǎo)致與停滯指令相關(guān)聯(lián)的一個氣泡,取決于來自執(zhí)行單元114流水線中現(xiàn)有多種線程的指令組成。在一個實施例中,TC清除信號122指明已經(jīng)清除了所述線程語境的全部未提交指令。在另一個實施例中,執(zhí)行單元114可以不清除執(zhí)行單元114中現(xiàn)有的全部未提交指令,也就是僅僅清除停滯指令和停滯線程語境的任何更新的指令,而不清除線程語境中比停滯指令更舊的未提交指令。在這個實施例中,TC清除信號122還指明了被執(zhí)行單元114所清除的許多指令。TC清除信號122由執(zhí)行單元114向它們各自的指令/滑動緩沖區(qū)106提供。所述指令/滑動緩沖區(qū)106使用TC清除信號122重算緩沖區(qū)106中的指令狀態(tài)。因為所述指令/滑動緩沖區(qū)106繼續(xù)存儲指令,直到它們已經(jīng)被提交不再被清除,所以被清除的任何指令隨后都可以從所述指令/滑動緩沖區(qū)106重新發(fā)布,而不必從指令高速緩存102再次取回。這樣做的優(yōu)點是潛在地減少與從執(zhí)行流水線清除停滯指令使來自其他線程的指令能夠運行相關(guān)聯(lián)的損失。減少不得不再次取回指令的似然性正在變得日益重要,因為指令取回的時間似乎在增加。這是因為除了其他因素以外,變得更常見的是指令高速緩存訪問所需要的時鐘周期多于更老的微處理器設(shè)計,主要由于處理器時鐘周期縮短。因此,與更早的設(shè)計相比,與指令再次取回相關(guān)聯(lián)的損失可能是多一個、兩個或多個時4中周期?,F(xiàn)在參考圖2,顯示的框圖展示了根據(jù)本發(fā)明一個實施例,圖1的微處理器100內(nèi)的調(diào)度器108,其中調(diào)度器108被分為二支。分支的調(diào)度器108包括分派調(diào)度器(DS)602部分和策略管理器(PM)604部分。分派調(diào)度器602部分包括在微處理器100的處理器核606之內(nèi);而策略管理器604部分卻包括在處理器核606之外。處理器核606是微處理器100的一部分,客戶無法進行定制;而策略管理器604卻可由客戶定制。在一個實施例中,處理器核606是可同步的核,也稱為軟核??赏胶说脑O(shè)計能夠縮減為快捷地使用自動工具的可制造形式,這些工具通常稱為合成工具。處理器核606向策略管理器604提供了包括多個信號的接口628。在一個實施例中,對分派調(diào)度器602的輸入和從分派調(diào)度器602的輸出經(jīng)過寄存,以方便核外的策略管理器604的邏輯能夠與處理器核606接口,其方式為減輕由分支的調(diào)度器以其他方式可能引入的某些計時問題。不僅如此,接口628易于客戶理解,它使調(diào)度策略的策略管理器604易于設(shè)計。在以下的表1中,顯示了根據(jù)一個實施例包括策略管理器接口628的多種信號。表l指定信號名、信號相對策略管理器604的方向以及每個信號的簡短說明。在表l介紹的實施例中,微處理器100包括九個線程語境,用于存儲與多達九個執(zhí)行線程相關(guān)聯(lián)的狀態(tài)。不僅如此,所述實施例使微處理器100能夠被配置為多達兩個虛擬處理單元(VPE)。在一個實施例中,微處理器100實質(zhì)上符合MIPS32或MIPS64的指令集架構(gòu)(ISA),并且包括控制協(xié)處理器O,在表中稱為CPO,它包括若干線程控制寄存器,并且實質(zhì)上符合在MIPS特許資源架構(gòu)(PRA)和MIPS多線程應(yīng)用程序特殊擴展(MTASE)中指定的協(xié)處理器0。表1中所描述的若干信號中的幾種用于訪問CPO寄存器。<table>tableseeoriginaldocumentpage14</column></row><table><table>tableseeoriginaldocumentpage15</column></row><table><table>tableseeoriginaldocumentpage16</column></row><table>現(xiàn)在將更詳細地介紹表1中指定的策略管理器界面628的某些具體信號。策略管理器604通過PM—TC—priority652的輸出向分派調(diào)度器602指定各個線程語境的優(yōu)先級。在一個實施例中,PM—TC—priority652包括兩位,所以分派調(diào)度器602允許策略管理器604為線程語境指定四個不同優(yōu)先級之一。策略管理器604通過在各自的PM—TC—block654輸出上產(chǎn)生真值,命令分派調(diào)度器602停止為線程語境發(fā)布指令。因此,策略管理器604可以通過PM—TC—priority652的輸出和PM—TC—block654的輸出影響分派調(diào)度器602如何為多個線程語境發(fā)布指令。處理器核606向策略管理器604提供PM_gclk658,它使得策略管理器604能夠才艮據(jù)PM—gclk658定期調(diào)節(jié)所述PM—TC—priority652。分派調(diào)度器602通過各自的PM—TC—state642輸入傳遞每個線程的語境傳遞。如表1所示,線程語境可以處于以下八種狀態(tài)之一。待用分派調(diào)度器602不能發(fā)布線程語境的指令,因為所述線程語境當(dāng)前未與執(zhí)行的線程相關(guān)聯(lián)?;顒铀鼍€程語境當(dāng)前與執(zhí)行的線程相關(guān)聯(lián),所以,如果不存在其他阻塞條件,分派調(diào)度器602可以發(fā)布用于執(zhí)行的線程語境的指令。退讓分派調(diào)度器602不能發(fā)布執(zhí)行的線程語境的指令,因為所述線程已經(jīng)執(zhí)行了YIELD指令,它使所述線程語境在指定的事件上被阻塞。暫停分派調(diào)度器602不能發(fā)布執(zhí)行的線程語境的指令,因為所述線程已經(jīng)被自己或另一個線程所暫停。掛起分派調(diào)度器602不能發(fā)布執(zhí)行的線程語境的指令,因為所述線程執(zhí)行了DMT或DVPE指令,或者因為微處理器100或VPE當(dāng)前正在運行異常處理。DMT指令掛起VPE的多線程操作。DVPE指令掛起整個處理器100的多線程操作。等待ITC:分派調(diào)度器602不能發(fā)布執(zhí)行的線程語境的指令,因為所述線程被阻塞,等待從所述線程執(zhí)行的加栽/存儲指令所指定的線程間通信(ITC)空間中位置加栽數(shù)據(jù),或向該位置存儲數(shù)據(jù)。由于WAIT而等待分派調(diào)度器602不能發(fā)布執(zhí)行的線程語境的指令,因為所述線程已經(jīng)執(zhí)行了WAIT指令,它使該線程語境被阻塞,直到中斷已經(jīng)發(fā)生。作為SRS使用分派調(diào)度器602不能發(fā)布執(zhí)行的線程語境的指令,因為所述線程語境沒有并且無法與執(zhí)行的線程相關(guān)聯(lián),原因是所述線程語境的寄存器組用于進行遮蔽寄存器組的操作。分派調(diào)度器602向策略管理器604傳達它已經(jīng)通過各自的PM—TC_inst—issued646輸入為每個線程語境都發(fā)布了指令。執(zhí)行單元114向策略管理器604傳達它們已經(jīng)通過各自的PM—TC—instr—committed644輸入,提交了線程語境的指令。在一個實施例中,PM—TC—instr—committed644信號表明指令的執(zhí)行已經(jīng)完成了。在另一個實施例中,PM—TC_instr_committed644信號表明保證所述指令不被清除,換言之,直到最終完成執(zhí)行,但是可能尚未完成。突出點在于,PM—TC_instr_committed644輸入向策略管理器604提供了已執(zhí)行指令的有關(guān)信息,而不僅僅是已分派指令(如由PM—TC—inst—issued輸入646所傳達)的有關(guān)信息,由于某些指令可能是推測地分派的并且永遠不會完成,它們可能是不同的。這對策略管理器604可能是重要的特征,因為應(yīng)用程序中的某些線程可能需要特定的服務(wù)質(zhì)量。在一個實施例中,PM—TC—instr—committed信號644是TC—instr—committed信號124的寄存版本。因此,處理器核606通過PMTC一instissued646、PMTC—instr—committed644和PM—TC—state642輸入,為多個線程語境和線程語境的狀態(tài)提供了有關(guān)指令發(fā)布和執(zhí)行的反饋。因此,所述策略管理器接收多種多樣信息,允許它跟蹤電源管理操作。確切地說,如以下討論,可以由策略管理器以便于電源管理操作的粒度方式跟蹤電源管理線程的使用。在一個實施例中,分派調(diào)度器602還向策略管理器604提供了衰減函數(shù),它的目的是當(dāng)應(yīng)用程序線程語境不需要處理器的完全帶寬時,使微處理器100能夠節(jié)省電源,而不必實際上進入休眠。所述衰減函數(shù)運行時仿佛又有一個線程語境被調(diào)度。不過,當(dāng)選中了衰減線程語境進行發(fā)布時,分派調(diào)度器602不發(fā)布指令。因此,所述衰減線程語境可以被視為低功率的虛擬線程。衰減線程語境是低功率的虛擬線程意味著又有一個線程語境被調(diào)度,但是它實際上不被選中。換言之,所迷分派調(diào)度程序指定,所迷低功率虛擬線程的流水線位置所對應(yīng)的流水線位置中不執(zhí)行任何操作。例如,不執(zhí)行ALU的運算,不加載數(shù)據(jù),在所述低功率虛擬線程所對應(yīng)的流水線位置處也不執(zhí)行某種其他操作,從而節(jié)省了電源。實現(xiàn)這種電源節(jié)省時沒有對電壓和頻率參數(shù)進行直接調(diào)制,而是通過運行所述低功率虛擬線程間接地影響電壓和頻率參數(shù),與其他電源管理技術(shù)不同。所述低功率虛擬線程使得處理器能夠降低其功率消耗而不必實際上進入休眠。因此,通過策略管理器可以調(diào)用低功率虛擬線程,以方便電源管理任務(wù)。所述策略管理器具有對線程語境進行控制的機制。所以,這種新形式的線程——低功率虛擬線程允許所述策略管理器以現(xiàn)有的控制技術(shù)運行而完成電源控制。換言之,所述低功率虛擬線程提供的新工具能夠連同與電源管理無關(guān)的現(xiàn)有控制技術(shù)一起使用。從而不需要分立的電源管理技術(shù),比如電壓和頻率的調(diào)整操作。如以下將討論的圖5所示,策略管理器604保存著EXC—LEVEL計數(shù)器(每VPE),其操作類似于以下介紹的TC—LEVEL918計數(shù)器,只不過它使用RELAX—RATE進行加1,并且當(dāng)衰減指令時間片完成時進行減1。在一個實施例中,所述微處理器100包括VPESchednle寄存器(每VPE),類似于使軟件能夠指定RELAX_RATE的TCSchedule寄存器902。所述衰減函數(shù)通過表1中指定的PM—vpejelax一enable信號啟用或禁用,而所述衰減線程語境的優(yōu)先級通過PM一vpe—relax—priority信號指定。這些信號是軟件可控制的。因此,圖2所示的軟件控制模塊660可以用于創(chuàng)建電源性能度量和實施所述電源性能度量的相關(guān)聯(lián)RELAX信號,如以下進一步的討論。在一個實施例中,分派調(diào)度器602還向策略管理器604提供了異常處理函數(shù),它的目的是使異常處理線程語境能夠使其自己的優(yōu)先級獨立于正常的線程語境。所述策略管理器保存著EXC—LEVEL計數(shù)器(每VPE),其作用類似于以下介紹的TC—LEVEL918計數(shù)器,只不過它使用RELAX_RATE進行加1,并且當(dāng)異常處理指令時間片完成時進行減1。當(dāng)啟用了異常處理模式并取得了VPE的異常處理時,那么所述VPE的線程語境將全部設(shè)置為異常處理優(yōu)先級。在一個實施例中,軟件通過VPESchedule寄存器指定EXC—RATE。異常處理函數(shù)通過表1指定的PM—vpe—exc—enable信號啟用或禁用,而所述異常處理線程語境的優(yōu)先級通過PM_vpe—exc_priority信號指定。現(xiàn)在參考圖3,其中的框圖更詳細地展示了圖2的分派調(diào)度器602和與指令/滑動緩沖區(qū)106相關(guān)聯(lián)的指令選擇邏輯202。指令選擇邏輯202包括由比較器714控制的若干多路復(fù)用器724的樹。每個多路復(fù)用器724都從兩個不同的線程語境接收指令206。每個多路復(fù)用器724也都接收與DS—TC—priority208相關(guān)聯(lián)的指令206。與每個多路復(fù)用器724相關(guān)聯(lián)的比較器714也接收兩個線程語境的DS—TC—priority信號對,并且控制其關(guān)聯(lián)的復(fù)用器724選擇具有最高DS—TC_priority208值的指令206和DS—TC—priority208。所選擇的指令206和DS—TC—priority208向樹的下方傳播,直到最后的復(fù)用器724選中了具有最高DS—TC—priority208的所選擇的指令204以便向執(zhí)行流水線提供。圖3顯示了分派調(diào)度器602的邏輯,即停滯指示器704,可發(fā)布指令邏輯708和循環(huán)邏輯712。在一個實施例中,停滯指示器704和可發(fā)布指令邏輯708在每個線程語境的分派調(diào)度器602內(nèi)復(fù)制,為每個線程語境產(chǎn)生DS—TC_priority208。相反,循環(huán)邏輯712對每個可能的PMTC—priority652只例示一次,并且為每個PM—TC—priority652都產(chǎn)生循環(huán)指示器。例如,在圖3展示的實施例中,策略管理器604可以指定四種可能的PM—TC^priority652之一;因此,循環(huán)邏輯712在分派調(diào)度器602中被例示了四次并產(chǎn)生了四個各自的循環(huán)指示器。在一個實施例中,所述循環(huán)指示器對微處理器100的每線程包括一位。與其各自線程語境相關(guān)聯(lián)的循環(huán)指示器位被提供為循環(huán)位748。如果循環(huán)位748為真,那么在目前具有相同的PM—TC—priority652的其他線程語境當(dāng)中,在循環(huán)模式中輪到所述線程語境接受發(fā)布。可發(fā)布指令邏輯708從圖1的執(zhí)行單元114接收解除停滯事件信號128和停滯事件信號126,從圖2的策略管理器604接收PM_TC—block654信號,從指令/滑動緩沖區(qū)106接收空信號318以及接收TC狀態(tài)742信號。在一個實施例中,TC狀態(tài)742信號傳達的信息類似于圖2的PM_TC—state642信號。可發(fā)布指令邏輯708響應(yīng)識別線程語境的停滯事件信號126,設(shè)置停滯指示器704以標(biāo)明被停滯的線程語境??砂l(fā)布指令邏輯708也響應(yīng)停滯事件126而存儲狀態(tài),以記憶停滯的原因。反之,如果解除停滯事件128與停滯的原因有關(guān),可發(fā)布指令邏輯708響應(yīng)解除停滯事件信號128,清除停滯指示器704??砂l(fā)布指令邏輯708響應(yīng)其輸入而產(chǎn)生可發(fā)布746信號。如果對所述線程語境由指令/滑動緩沖區(qū)106的讀指針?biāo)赶虻闹噶?06是可發(fā)布的,則可發(fā)布746信號為真。在一個實施例中,如果所述TC狀態(tài)信號742指明線程語境處于活動狀態(tài)且未被其他條件(比如被暫停、等待、掛起或退讓)所阻塞,停滯指示器704為假,以及PM—TC—block654和空318信號為假,則指令是可發(fā)布的。所述可發(fā)布746位、所述PM—TC—priority652位和所述循環(huán)位748組合以創(chuàng)建DS—TC—priority208。在圖3的實施例中,所述可發(fā)布746位是最高位,所述循環(huán)位748是最低位,而所述PM—TC—priority652是中間兩位。如圖中可見,因為所述可發(fā)布746位是DS_TC—priority208的最高位,所以不可發(fā)布指令的優(yōu)先級將低于全部可發(fā)布指令的優(yōu)先級。相反,所述循環(huán)位748僅僅用于在不止一個線程語境具有可發(fā)布指令且具有相同的最高PM—TC—priority652時選擇線程?,F(xiàn)在參考圖4,顯示的流程圖展示了根據(jù)本發(fā)明圖3的分派調(diào)度器602操作。流程從方框802開始。在方框802,分派調(diào)度器602對每個PM—TC—priority652初始化每個循環(huán)指示器。流程繼續(xù)到方框804。在方框804,分派調(diào)度器602對每個線程語境判斷所述線程語境是否具有可發(fā)布指令206。換言之,可發(fā)布指令邏輯708為每個線程語境都產(chǎn)生可發(fā)布746信號上的值。在一個實施例中,僅僅在所述TC狀態(tài)信號742指明線程語境處于活動狀態(tài)且未被其他條件(比如被暫停、等待、掛起或退讓)所阻塞,停滯指示器704為假,以及PM一TC—block654和空318信號為假時,可發(fā)布指令邏輯708才產(chǎn)生可發(fā)布746信號上的真信號。流程繼續(xù)到?jīng)Q策框806。在決策框806,分派調(diào)度器602通過為每個線程語境測驗可發(fā)布746信號,判斷是否存在著任何具有可發(fā)布指令206的線程語境。如果不存在,流程返回方框804,直到至少一個線程語境具有可發(fā)布指令206;否則,流禾呈繼續(xù)到方框808。在方框808,分派調(diào)度器602根據(jù)所述線程語境的可發(fā)布746位、所述線程語境的PM—TC—priority652以及所述線考呈語境的PM—TC—priority652的循環(huán)位748,為每個線程語境的指令206產(chǎn)生DS—TC—priority208。流程繼續(xù)到方框812。在方框812,分派調(diào)度器602發(fā)布具有最高DS—TC—priority208的指令206。換言之,分派調(diào)度器602從具有可發(fā)布指令并具有最高PM_TC_priority652的線程語境發(fā)布指令。如果多個線程語境滿足這條準(zhǔn)則,分派調(diào)度器602從線程語境的PM—TC_priority652的循環(huán)位748指明輪到其發(fā)布的線程語境發(fā)布指令。流程繼續(xù)到方框814。在方框814,所述循環(huán)邏輯712根據(jù)選中了哪個線程語境使其指令被發(fā)布的信息,更新PM—TC—priority652的循環(huán)指示器。流程返回到方4醫(yī)804?,F(xiàn)在參考圖5,顯示的框圖展示了根據(jù)本發(fā)明圖2的策略管理器604和TCSchedule寄存器902。微處理器100包括用于每個線程語境的TCSchedule寄存器902。TCSchedule寄存器902是軟件可編程的,并且提供了軟件工具,向策略管理器604提供線程調(diào)度的提示。在一個實施例中,TCSchedule寄存器902包括在以上關(guān)于圖2和表1討論的協(xié)處理器0寄存器之內(nèi),確切地說包括在策略管理器604之內(nèi)。TCSchedule寄存器902包括六個字段TCLEVEL—PARAM1908、TC—LEVEL—PARAM2906、TCJLEVEL—PARAM3904、TC—RATE912、OV914和PRIO916。在圖5的實施例中,TC—LEVEL—PARAM1908、TC—LEVELPARAM2906、TC_LEVELPARAM3904、TC一RATE912字段包括四位,PRIO916字段包括兩位,而OV914字段是單一位。圖5所示的策略管理器604包括控制邏輯924;比較器922,連接為向控制邏輯924提供它們的輸出;TCJLEVEL918寄存器,連接為將其輸出提供為比較器922的輸入;以及三輸入多路復(fù)用器926,連接為將其輸出提供為TCJLEVEL918寄存器的輸入。多路復(fù)用器926在其第一輸入上接收TC—LEVEL918寄存器的輸出以保留正確值。多路復(fù)用器926在其第二輸入上接收減一器932的輸出,后者的輸入是TC_LEVEL918寄存器的輸出。多路復(fù)用器926在其第三輸入上接收加一器934的輸出,后者的輸入是加法器936的輸出,加法器936將TC—LEVEL918寄存器的輸出與將TC_RATE912乘2的乘法器938的輸出加起來。TC—RATE912是線程語境的期望執(zhí)行速率的指示,即每單位時間要完成的指令數(shù)量。軟件控制模塊660可以用于指定電源性能度量,比如用于低功率虛擬線程的TC—RATE912。例如,軟件控制模塊660可以用于以對指令完成速率限度的形式指定用于低功率虛擬線程的電源性能度量(如在幾百到幾千周期的指令完成速率限度)??梢詾槿烤€程設(shè)置電源性能度量,也可以為單獨的線程設(shè)置電源性能度量,比如所述低功率虛擬線程。在圖5的實施例中,TC—RATE912指示了每16個時鐘周期所述線程應(yīng)當(dāng)完成的指令數(shù)量。雖然剛才列出的邏輯在圖5中僅僅顯示了一次,但是在策略管理器604內(nèi)為每個線程語境都復(fù)制所述邏輯,為每個線程語境都產(chǎn)生所述PMTC—block654和PM—TC—priority652信號,并且接收PMTC—state642、PM—TC—instr—committed644、PM_TC—inst—issued646和PM—gclk658信號。策略管理器604采用修改后的泄漏存儲桶算法實現(xiàn)調(diào)度器108的高水位線程調(diào)度策略。TC一LEVEL918寄存器類似于存儲桶中的水位。TC一LEVEL918本質(zhì)上是所述線程語境需要完成的工作量的度量。在一個實施例中,TC—LEVEL918寄存器包括初始化為0的12位寄存器。控制邏輯924產(chǎn)生的控制信號928控制多路復(fù)用器926選擇哪個輸入。每隔32個時鐘周期,多路復(fù)用器926都選擇加法器936的輸出,以便存儲在TC—LEVEL918寄存器中,這使TC—LEVEL918增加(TC—RATE*2+1)的數(shù)量。在一個實施例中,基于TC—RATE912的TC—LEVEL918的更新之間的時鐘周期數(shù)量也是可編程的。在其他時鐘周期,如果PM—TC—instr—committed信號644指明線程語境的某指令已經(jīng)被提交用于執(zhí)行,則多路復(fù)用器926選擇減一器932的輸出將TC—LEVEL918減一。因此,軟件通過調(diào)節(jié)線程的TCSchedule寄存器902的TC—RATE912數(shù)值,能夠影響線程語境存儲桶中的虛擬水位。在圖5的實施例中,TC—RATE912的數(shù)值指明了期望微處理器100每16個時鐘周期對所述線程語境要執(zhí)行的指令數(shù)量。隨著泄漏存儲桶水位的提高,水壓也提高了,這使得水以更高的速率泄漏。類似地,TC—LEVEL—PARAM字段904/906/908編程為定義虛擬水壓范圍的單調(diào)增加數(shù)值。比較器922將TC_LEVEL918與TC—LEVEL—PARAM904/906/908進行比較,并且將它們的結(jié)果提供給控制邏輯924,它根據(jù)TC_LEVEL918落入的虛擬水壓范圍產(chǎn)生PM—TC—priority652。如圖5的泄漏存儲桶所展示,如果TC—LEVEL918的最高半字節(jié)高于TC—LEVEL_PARAM3904數(shù)值,控制邏輯924產(chǎn)生的PM_TC—priority652數(shù)值為3(最高優(yōu)先級);如果TC_LEVEL918的最高半字節(jié)在TC—LEVEL—PARAM3904數(shù)值與TC—LEVEL—PARAM2906數(shù)值之間,控制邏輯924產(chǎn)生的PM—TC—priority652數(shù)值為2;如果TC—LEVEL918的最高半字節(jié)在TC—LEVEL—PARAM2906數(shù)值與TC—LEVEL—PARAMl908數(shù)值之間,控制邏輯924產(chǎn)生的PM—TC—priority652數(shù)值為1;如果TC—LEVEL918的最高半字節(jié)低于TC—LEVEL—PARAMl908,控制邏輯924產(chǎn)生的PM—TC_priority652數(shù)值為0(最低優(yōu)先級)。類似地,提高PM_TC_priority652的等級就提高了對分派調(diào)度器602為所述線程語境發(fā)布指令的壓力,而降低PM—TC—priority652的等級就降低了對分派調(diào)度器602為所述線程語境發(fā)布指令的壓力。如以上的討論,在使用微處理器100的某些應(yīng)用中,不同的線程可能需要不同的指令執(zhí)行速率,這是使用TC_RATE912字段可編程的。因此,通過軟件控制模塊660可以設(shè)置TC—RATE912,以調(diào)整與一個或多個低功率虛擬線程相關(guān)聯(lián)的電源管理性能。根據(jù)本發(fā)明的電源管理能夠通過使用單一低功率虛擬線程而實現(xiàn)。作為替代,電源管理也能夠通過使用多個低功率虛擬線程而實現(xiàn)。不僅如此,不同的線程可能需要不同的分辨率,即度量指令執(zhí)行速率的時間周期。換言之,雖然某些線程也許不需要執(zhí)行速率高,但是也不允許指令執(zhí)行的拖延超過某最小時間周期。換言之,所述線程需要特定的服務(wù)質(zhì)量。軟件控制模塊660可以依靠連接到一個或多個低功率虛擬線程的服務(wù)質(zhì)量參數(shù)調(diào)整電源管理性能。正如從圖5和對其的解釋可見,TC—LEVEL—PARAM904/906/908可以用于實現(xiàn)每個線程所需要的分辨率。通過分配彼此相對接近的TC—LEVEL—PARAM904/906/908,可以實現(xiàn)較高的分辨率;而分配相對遠離的TC—LEVEL—PARAM904/906/908將產(chǎn)生較低的分辨率。因此,通過策略管理器604調(diào)節(jié)每個線程語境的TC—LEVEL_PARAM904/906/908,軟件可以實現(xiàn)所期望的月良務(wù)質(zhì)量目標(biāo),在指令執(zhí)行速率上實現(xiàn)所需要的分辨率。如果OV位914置位,控制邏輯924就忽略TC—LEVEL—PARAM904/906/908、TC—RATE912和TC—LEVEL918的數(shù)值,而在PM—TC—priority652信號上產(chǎn)生與PRIO字段916中所指定數(shù)值相等的數(shù)值。這就允許軟件在需要時繞過所述泄漏存儲桶策略并直接控制一個或多個線程語境的優(yōu)先級。在一個實施例中,如果TC—LEVEL918在預(yù)定數(shù)量的時鐘周期內(nèi)飽和到其最大數(shù)值,那么微處理器IOO發(fā)出中斷信號,以使軟件能夠在更高的層次做出線程調(diào)度的調(diào)整,確切地說,通過改變在一個或多個TCSchedule寄存器902中的數(shù)值。在一個實施例中,可以通過軟件屏蔽所述中斷。在一個實施例中,微處理器100的指令集包括YIELD(退讓)指令,線程語境可以執(zhí)行它命令調(diào)度器108停止為所述線程語境發(fā)布指令,直到發(fā)生指定的事件。在一個實施例中,當(dāng)線程退讓時,策略管理器604會臨時禁止所述線程的TC—LEVEL918的更新,所以所述線程的PM—TC—priority被保持,直到所述線程變?yōu)榻獬俗?。在另一個實施例中,策略管理器604繼續(xù)更新所述線程的TC—LEVEL918,很可能會使所述線程的PM—TC—priority提高,以致于當(dāng)所述線程變?yōu)榻獬俗寱r,它將臨時地具有高優(yōu)先級,實質(zhì)上幫助所述線程起動其泵。在一個實施例中,策略管理器604對于退讓線程的行為可由軟件編程。應(yīng)當(dāng)理解,雖然在所描述的實施例中,使用了明確數(shù)量的位指定PM—TC—priority652、TC—LEVELPARAM904/906/908、TC—RATE912、TCJLEVEL918等,但是卻未以任何方式將所述調(diào)度器108限制為在所述實施例中所使用的數(shù)值;所述調(diào)度器108反而可以配置為使用多種不同數(shù)量的位、優(yōu)先級、層次、速率等,按照其中使用微處理器100的具體應(yīng)用所需。不僅如此,雖然策略管理器604已經(jīng)介紹為采用改進的泄漏存儲桶線程調(diào)度策略,但是應(yīng)當(dāng)理解,策略管理器604可以被配置為采用多種線程調(diào)度策略的任何一種,同時仍然具有分支調(diào)度器108的優(yōu)點。本發(fā)明的低功率虛擬線程可以用任意數(shù)量的調(diào)度策略成功實現(xiàn)。例如,在一個實施例中,策略管理器604采用了簡單的循環(huán)線程調(diào)度策略,其中對所有線程語境的PM—TC_priority652輸出約束為同一數(shù)值。在另一個實施例中,策略管理器604采用了時間片線程調(diào)度策略,其中在一個線程語境的TCSchedule寄存器902中指定的多個連續(xù)時鐘周期中,所述線程語境的PMJTC一priority652輸出被提升到最高的優(yōu)先級,然后在另一個線程語境的TCSchedule寄存器902中指定的或許數(shù)目不同的多個連續(xù)時鐘周期中,所述線程語境的PM—TC—priority652輸出被提升到最高的優(yōu)先級,以時間片的形式對每個線程語境依此類推。在一個實施例中,微處理器100的指令集包括派生(FORK)指令,用于分配可用的線程語境并在新分配的線程語境內(nèi)調(diào)度新線程的執(zhí)行。在一個實施例中,當(dāng)線程語境派生新的線程語境時,父線程語境的TC—RATE912在自己與子線程語境之間被均勻地分開,即新的TC_RATE912是老的TC—RATE912除以2。這樣做的優(yōu)點是防止線程語境請求比原始分配的更多的處理帶寬。如從上可見,調(diào)度器108的分支使得處理器核606中包括的分派調(diào)度器602相對簡單,這又使得分派調(diào)度器602在面積和功率方面相對小,并且將線程調(diào)度策略的應(yīng)用特定的復(fù)雜性放置在策略管理器604中,它在處理器核606之外。這是有利的,因為某些應(yīng)用也許不需要復(fù)雜的策略管理器604,所以不必負擔(dān)另外的面積和功率需求,要是調(diào)度器108未被分支這些需求將被強加到所有應(yīng)用,如本文所述?,F(xiàn)在參考圖6,顯示的流程圖展示了根據(jù)本發(fā)明圖5策略管理器604的操作。雖然在圖6中顯示的操作僅僅對于單一線程語境,但是圖6指定的操作在策略管理器604內(nèi)對每個線程語境都發(fā)生。流程從方框1002開始。在方框1002,策略管理器604將TC—LEVEL918初始化為0。流程繼續(xù)到方框1004。在方框1004,策略管理器604等待PM—gclk658的一個周期。流程繼續(xù)到?jīng)Q策框1006。在決策框1006,策略管理器604判斷自從上次流程到達決策框1006以后是否32個PM—gclk658已經(jīng)到達。如果沒有,流程繼續(xù)到?jīng)Q策框1012;否則,流程繼續(xù)到方框1008。在方框1008,將TC—LEVEL918增加TC—RATE912數(shù)值的兩倍加l。流程繼續(xù)到?jīng)Q策框1012。在決策框1012,策略管理器604判斷PM—TC—instr—committed644是否為真。如果不是,流程繼續(xù)到?jīng)Q策框1016;否則,流程繼續(xù)到方才醫(yī)1014。在方框1014,將TC—LEVEL918減一。流程繼續(xù)到?jīng)Q策框1016。在決策框1016,策略管理器604判斷OV位914是否置位。如果沒有,流程繼續(xù)到?jīng)Q策框1022;否則,流程繼續(xù)到方框1018。在方框1018,策略管理器604在PM—TC—priority652上產(chǎn)生等于所述PRIO916字段的數(shù)值的數(shù)值。流程繼續(xù)到方框1004。在決策框1022,策略管理器604判斷TC_LEVEL918是否大于TC—LEVEL—PARAM3904的數(shù)值。如果不是,流程繼續(xù)到?jīng)Q策框1026;否則,流程繼續(xù)到方框1024。在方框1024,策略管理器604在PM_TC_priority652上產(chǎn)生數(shù)值3(最高優(yōu)先級)。流程返回到方框1004。在決策框1026,策略管理器604判斷TC—LEVEL918是否大于TC—LEVEL—PARAM2906的數(shù)值。如果不是,流程繼續(xù)到?jīng)Q策框1032;否則,流程繼續(xù)到方框1028。在方框1028,策略管理器604在PM_TC—priority652上產(chǎn)生數(shù)值2。流程返回到方框1004。在決策框1032,策略管理器604判斷TC_LEVEL918是否大于TC—LEVEL—PARAMl908的數(shù)值。如果不是,流程繼續(xù)到?jīng)Q策框1036;否則,流程繼續(xù)到方框1034。在方框1034,策略管理器604在PM_TC_priority652上產(chǎn)生數(shù)值l。流程返回到方框1004。在方框1036,策略管理器604在PM—TC—priority652上產(chǎn)生數(shù)值0(最j氐優(yōu)先級)。流禾呈返回到方框1004。因此,所述策略管理器連同所述軟件控制模塊660提供了電源管理的機制。與管理電源所用的直接電壓或頻率調(diào)節(jié)技術(shù)不同,所公開的技術(shù)嵌套著多線程的處理。所述技術(shù)依賴現(xiàn)有的線程控制技術(shù)而實現(xiàn)新的電源管理選項。例如,本發(fā)明的技術(shù)不是使用暫停操作,比如通過使用WAIT指令,而是允許連續(xù)地、細粒度地(如逐個周期地)控制功率消耗。軟件控制模塊660可以用于提供高層次的電源管理。例如,使用軟件控制模塊660,人們可以指定電源性能度量,然后將操作結(jié)果與電源性能目標(biāo)進行對比。所述策略管理器提供了實現(xiàn)這樣功能的接口和控制信息。優(yōu)選情況下,在不改變處理器核606的分派調(diào)度器606的情況下實現(xiàn)這種功能。還可以實現(xiàn)本發(fā)明的多種替代實施例。例如,通過策略管理器停度量。所公開的策略管理器允許逐個周期地控制各個線程,從而提供了細粒狀的電源管理分辨率。雖然已經(jīng)介紹了本發(fā)明的多種實施例,但是應(yīng)當(dāng)理解,它們是作為實例呈現(xiàn)而不是限制。對于相關(guān)計算機領(lǐng)域的技術(shù)人員顯而易見,在其中能夠做出形式和細節(jié)上的多種改變而不脫離本發(fā)明的實質(zhì)和范圍。例如,除以硬件(如在中央處理單元("CPU")、微處理器、微控制器、數(shù)字信號處理器、處理器核、片上系統(tǒng)("SOC")或任何其他可編程設(shè)備之內(nèi)或與之連接的硬件)實現(xiàn)的低功率虛擬線程之外,若干實施例也可以以例如在配置為存儲軟件的計算機可用(如可讀)介質(zhì)中部署的軟件(如以任意形式,比如源代碼、目標(biāo)碼或機器語言部署的計算機可讀代碼、程序代碼、指令和/或數(shù)據(jù))實施。這樣的軟件能夠?qū)崿F(xiàn)本文介紹的裝置和方法的例如功能、制造、模擬、仿真、描述和/或測試。例如,通過4吏用通用編禾呈語言(如C、C++)、GDSII數(shù)據(jù)庫、包括VerilogHDL、VHDL等的硬件描述語言(HDL)或者其他可用的程序、數(shù)據(jù)庫和/或電路(即原理圖)捕獲工具能夠?qū)崿F(xiàn)這種過程。這樣的軟件可以被部署在任何已知的計算機可用介質(zhì)中,包括半導(dǎo)體、磁盤、光盤(如CD-ROM、DVD-ROM等),并且作為在計算機可用(如可讀)傳輸媒介(如載波或任何其他媒介,包括基于數(shù)字、光學(xué)或基于模擬的媒介)中具體體現(xiàn)的計算機數(shù)據(jù)信號。同樣,所述軟件也能夠在包括因特網(wǎng)和內(nèi)聯(lián)網(wǎng)的通信網(wǎng)絡(luò)上傳輸。應(yīng)當(dāng)理解,本文介紹的裝置和方法可以包括在半導(dǎo)體知識產(chǎn)權(quán)核心中,比如微處理器核(如以HDL體現(xiàn))中,并且在生產(chǎn)集成電路時轉(zhuǎn)換為硬件。另外,本文介紹的裝置和方法可以實施為硬件和軟件的組合。因此,本發(fā)明不應(yīng)當(dāng)受限于以上介紹的任何示范實施例,而是僅僅應(yīng)當(dāng)按照以下的權(quán)利要求書及其相當(dāng)內(nèi)容進行定義。權(quán)利要求1.一種處理器,包括指定電源性能度量的軟件控制模塊;響應(yīng)所述軟件控制模塊的策略管理器;以及響應(yīng)所述策略管理器,按照所述電源性能度量運行所述處理器的分派調(diào)度器。2.根據(jù)權(quán)利要求1的處理器,其中,所述電源性能度量是按單位時間參數(shù)的指令。3.根據(jù)權(quán)利要求1的處理器,其中,所述策略管理器響應(yīng)所述電源性能度量而指定低功率虛擬線程,所述分派調(diào)度器部署所述低功率虛擬線程。4.根據(jù)權(quán)利要求3的處理器,其中,所述策略管理器跟蹤所述低功率虛擬線程的運行。5.根據(jù)權(quán)利要求3的處理器,其中,所述分派調(diào)度器指定在所述低功率虛擬線程的流水線位置所對應(yīng)的流水線位置中不執(zhí)行任何操作。6.根據(jù)權(quán)利要求1的處理器,其中,所述策略管理器響應(yīng)所述電源性能度量命令所選定的線程停止運行,并且所述分派調(diào)度器停止運行所述選定的線程。7.根據(jù)權(quán)利要求6的處理器,其中,所述策略管理器逐個周期地命令選定線程停止運行。8.—種處理器,包括指定電源性能度量的軟件控制模塊;分支的線程調(diào)度器,包括內(nèi)部處理器核心組件和與所述軟件控制模塊直接通信的外部處理器核心組件,所述分支的線程調(diào)度器按照所述電源性能度量運行所述處理器。9.根據(jù)權(quán)利要求8的處理器,其中,所述電源性能度量是按單位時間參數(shù)的指令。10.根據(jù)權(quán)利要求8的處理器,其中,所述外部處理器核心組件響應(yīng)所述電源性能度量而指定低功率虛擬線程,所述內(nèi)部處理器核心組件部署所述低功率虛擬線程。11.根據(jù)權(quán)利要求10的處理器,其中,所述外部處理器核心組件跟蹤所述低功率虛擬線程的運行。12.根據(jù)權(quán)利要求10的處理器,其中,所述內(nèi)部處理器核心組件指定在所述低功率虛擬線程的流水線位置所對應(yīng)的流水線位置中不執(zhí)行任何操作。13.根據(jù)權(quán)利要求8的處理器,其中,所述外部處理器核心組件響應(yīng)所述電源性能度量命令所選定的線程停止運行,并且所述內(nèi)部處理器核心組件停止運行所述選定的線程。14.根據(jù)權(quán)利要求13的處理器,其中,所述外部處理器核心組件逐個周期地命令選定線程停止運行。15.—種運行處理器的方法,包括通過軟件控制指定電源性能度量;在外部處理器核心組件響應(yīng)所述電源性能度量;以及響應(yīng)所述外部處理器核心組件,用內(nèi)部處理器核心組件實施所述電源性能度量。16.根據(jù)權(quán)利要求15的方法,其中,指定包括按單位時間參數(shù)指定指令。17.根據(jù)權(quán)利要求15的方法,其中,響應(yīng)包括響應(yīng)所述電源性能度量而指定低功率虛擬線程,實施包括部署所述低功率虛擬線程。18.根據(jù)權(quán)利要求17的方法,進一步包括停止所述低功率虛擬線程的流水線位置所對應(yīng)的流水線位置中的操作。19.根據(jù)權(quán)利要求15的方法,其中,響應(yīng)包括響應(yīng)所述電源性能度量命令所選定的線程停止運行。20.根據(jù)權(quán)利要求19的方法,其中,響應(yīng)包括逐個周期地命令選定線程停止運行。21.—種計算機可讀介質(zhì),包括以下可執(zhí)行指令\響應(yīng)來自軟件控制模塊的電源性能度量定義策略管理器;以及響應(yīng)所述策略管理器指定分派調(diào)度器,以按照所述電源性能度量運行處理器。22.根據(jù)權(quán)利要求21的計算機可讀介質(zhì),其中,所述定義策略管理器的可執(zhí)行指令包括響應(yīng)所述電源性能度量而指定低功率虛擬線程的可執(zhí)行指令,而所述指定分派調(diào)度器的可執(zhí)行指令包括指定分派調(diào)度器部署所述低功率虛擬線程的可執(zhí)行指令。23.根據(jù)權(quán)利要求22的計算機可讀介質(zhì),其中,所述定義策略管理器的可執(zhí)行指令包括定義跟蹤所述低功率虛擬線程運行的策略管理器的可執(zhí)行指令。24.根據(jù)權(quán)利要求22的計算機可讀介質(zhì),其中所述指定分派調(diào)度器的可執(zhí)行指令包括指定分派調(diào)度器的可執(zhí)行指令,所述分派調(diào)度器指定在所述低功率虛擬線程的流水線位置所對應(yīng)的流水線位置中不執(zhí)行任何操作。25.—種使計算機能夠生成處理器的方法,包括選擇可執(zhí)行指令,所述可執(zhí)行指令響應(yīng)來自軟件控制模塊的電源性能度量定義策略管理器;以及響應(yīng)所述策略管理器指定分派調(diào)度器,以按照所述電源性能度量運行處理器;以及在網(wǎng)絡(luò)上將所述可執(zhí)行指令傳送到指定的計算機。26.根據(jù)權(quán)利要求25的方法,其中,選擇可執(zhí)行指令包括選擇定義策略管理器使之響應(yīng)所述電源性能度量而指定低功率虛擬線程的可執(zhí)行指令,并且選擇可執(zhí)行指令包括選擇指定分派調(diào)度器使之部署所述低功率虛擬線程的可執(zhí)行指令。27.根據(jù)權(quán)利要求26的方法,其中,選擇可執(zhí)行指令包括選擇定義策略管理器使之跟蹤所述低功率虛擬線程運行的可執(zhí)行指令。28.根據(jù)權(quán)利要求26的方法,其中,選擇可執(zhí)行指令包括選擇指定分派調(diào)度器使之指定在所述低功率虛擬線程的流水線位置所對應(yīng)的流水線位置中不執(zhí)行任何操作的可執(zhí)行指令。全文摘要處理器包括指定電源性能度量的軟件控制模塊。策略管理器響應(yīng)所述軟件控制模塊。分派調(diào)度器響應(yīng)所述策略管理器,按照所述電源性能度量運行所述處理器。文檔編號G06F1/32GK101238425SQ200680016775公開日2008年8月6日申請日期2006年3月28日優(yōu)先權(quán)日2005年4月14日發(fā)明者達倫·M·約納斯申請人:Mips技術(shù)公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
买车| 土默特左旗| 宁城县| 陇西县| 平泉县| 闻喜县| 甘德县| 乌兰察布市| 介休市| 玛多县| 西丰县| 怀远县| 万盛区| 关岭| 嘉峪关市| 南靖县| 平潭县| 辉南县| 文成县| 阳西县| 观塘区| 邮箱| 巩义市| 威宁| 荣昌县| 凌海市| 鹿邑县| 江西省| 邵东县| 婺源县| 八宿县| 和政县| 睢宁县| 濮阳县| 罗甸县| 通州市| 闸北区| 武鸣县| 灵川县| 兴海县| 广水市|