新四季網

減少微處理器的功率消耗的寄存器堆選通方法

2024-02-19 08:15:15

專利名稱:減少微處理器的功率消耗的寄存器堆選通方法
技術領域:
本發明總地涉及對集成電路中的功率消耗的控制,例如,用於使用在低功率和其它功率敏感應用系統中。
對於許多集成電路(IC)或者「晶片」來說,功率消耗經常是首要的設計約束條件。舉例來說,集成電路越來越多地使用在非常多種的可攜式和其它由電池供電的應用系統中,諸如在行動電話和其它無線通信設備、可攜式計算機、手持設備和遊戲控制板等。此外,即使在非可攜式的應用系統中,在該應用系統中電池的壽命可能並不重要,但是集成電路也易受到過熱影響,這會需要昂貴的和/或體積龐大的冷卻部件,或者減少IC的可靠性。IC的功率消耗量在電子設備的電池壽命和熱產生中扮演著非常重要的角色。
此外,因為IC變得更加複雜,以及整合入了更快的時鐘速度和更多的電晶體,這些IC的功率消耗量也相應成比例的增加。同樣的,重要的開發任務就直接致力於減少IC的功率消耗上。
一些努力,舉例來說,致力於降低IC中的單個電晶體的功率消耗,例如,通過更改電晶體的布局和/或降低電源電壓。從某種程度上來說,對於電晶體設計的修改和對電源電壓電平的減少抵消了使用更為複雜的和更高執行力的IC所產生的功率消耗。然而,對於許多功率敏感應用系統來說還需要額外的簡化。
例如,一些使用在移動應用系統中IC,如微處理器,使用電壓和/或頻率縮放以減少電源電壓和/或時鐘頻率,並且從而減少整體的功率消耗。然而,這樣的減少典型地使用在IC範圍內,並且伴隨著在處理性能方面的相應減小。
其它設計可以加入休眠模式,其響應特定的命令或指令,亦或是諸如外部中斷之類的事件而將IC置於低功率狀態。例如,一些微處理器支持WAIT或HALT指令,這些指令可將整個微處理器置於低功率休眠模式。然而,當處於這樣的模式中時,微處理器中的所有有效處理動作一般是處於停止狀態直到微處理器被中斷或其它觸發事件再次喚醒。
在其它設計中,IC還可以有不同的電路,這些電路可以在它們不在使用時被有選擇地禁止,以減少整體的功率消耗。典型地,上述電路響應特定指令的執行,被有選擇地啟動或禁止,其中的特定指令是與電腦程式相關聯而發出的,特別對於加入了某些形式的處理器或處理核心的IC中。
例如,一些低功率微處理器設計允許通過發送特定的「功率降低」指令給單獨的功能單元而將它們有選擇地禁止。在對電腦程式進行編譯期間,由編譯器輸入功率降低指令,以使得在微處理器執行電腦程式期間,將由單個功能單元處理這些指令。然而,上述方法的缺點是,向特定的功能單元發送單個指令會佔用該功能單元的處理資源,並且從而對於其它處理其它產生性的計算操作降低了該功能單元的可用性,以及處理器剩餘管線的可用性。
關於前述功率降低指令是使用控制位,該控制位與每個微處理器處理的指令相關聯,動態地控制微處理器中的每個功能單元的啟動狀態。然而,在該類型的設計中,需要對每個指令的持續指令解碼,這可以抵消一些由選擇性禁止單個功能單元所獲得的功率消耗的減少。此外,響應一組特殊的控制位而對特殊功能單元進行禁止或啟動所需的時間可以限制微處理器的合理工作頻率,從而限制微處理器的整體性能。此外,為每個指令增加的控制位增加了代碼的尺寸,並從而增加了存儲的需求量,或者減少了可以支持的不同指令的數量。
前述基於指令的控制方案的另一個缺點是它們常常受限於控制微處理器中的功能單元。當功能單元,例如執行單元、算術邏輯單元、浮點單元、定點單元等,確實為微處理器中的整體功率消耗提供了重要貢獻時,大部分設計加入了大量的附加電路,例如,高速緩存、寄存器堆等,它們也會消耗功率,但是不會被前述控制方案訪問到。
其它設計可以整合支持微處理器的不同功率工作模式的多指令組。典型地,在這樣的設計中,一個指令組可能完全佔用微處理器,而另一個指令組可能僅使用一部分微處理器,從而減少功率消耗。然而,該方法的一個缺點是僅支持有限數量模式的處理器利用率,例如完全的和受限的。此外,代碼的複雜度增加了,因而處理器的解碼邏輯的複雜度也增加了,這本身會增加功率消耗。
在開發的相關領域中,可以使用程序的多個版本來支持不同的功率消耗能力。然而,存儲多個版本的程序需要使用運行時間調度程序,該調度程序根據當前的功率需求來選擇用於執行的代碼版本,而且存儲多個版本的程序需要更多的程序存儲和調度程序的執行,這都將進一步地增加功率消耗。
關於有選擇地啟動IC中的單個電路,可以使用禁止這些電路的各種方式,並從而將它們的功率消耗減少到最小。例如,時鐘選通常常被用於禁止一個電路的計時,這可以有效地限制電路中的電晶體的切換,因為電晶體狀態的切換常常會導致電路中最大數量的功率消耗。
對於微處理器中的功能單元,一種可選的禁止電路方法是切斷對該電路的供電。還有一種可選擇的方法是使得輸入給該電路的信號無效。
同樣的,對於其它電路,如使用在動態隨機存取存儲器(DRAM)裝置上的存儲器陣列,時鐘信號和讀出放大器可以被有選擇地關閉以禁止在一個陣列中的存儲單元的存儲體,並且從而減少整個陣列的功率消耗。
儘管在對控制如微處理器之類的IC的功率消耗方面取得了重要收穫,但是在該領域的進一步發展中不斷存在需求。
例如,在有選擇地禁止電路的領域,有待發展的一個潛在領域在於對與IC中的處理器或處理核心使用的和寄存器相關的功率消耗的控制。常常將寄存器組織成寄存器堆,並使用CMOS鎖存器或觸發電路來實施,它們均具有相當大的功率消耗特性。然而,在許多程序運行期間寄存器的利用率是相當低的,結果在IC的寄存器堆中形成了大量無用的寄存器在不必要地消耗功率。而在一些環境中希望能夠禁止某些寄存器,禁止存儲單元的傳統方法,例如,如結合在DRAM等使用的那樣,一般使用時鐘選通和/或禁止讀出放大器來禁止存儲單元或存儲單元的存儲體。雖然上述技術可以被用來禁止寄存器堆中的寄存器,採用這樣的技術所帶來的功率消耗減少的程序是有限的。
本發明通過提供電路布置和控制寄存器堆的功率消耗的方法,解決了與現有技術相關的上述和其它的問題,其中的寄存器堆通過外加了啟動邏輯的組合設計,從而具有功率消耗控制能力,該啟動邏輯配置為由選擇性斷開向其提供的時鐘、地址和數據輸入來有選擇地禁止未使用的寄存器存儲體。特別地,寄存器堆中的寄存器被分割為多個存儲體,啟動邏輯能夠有選擇地禁止每個存儲體,該啟動邏輯選擇性地斷開對每個存儲體的時鐘、地址和數據的輸入。
通過除提供給寄存器堆中的寄存器的不同存儲體的時鐘輸入之外,還斷開其地址和數據輸入,可以獲得比僅斷開時鐘輸入更大的功率消耗的降低。此外,當使用由CMOS鎖存器或觸發電路製作的寄存器來實現寄存器堆時,其特性在於相對高的連線電容,功率消耗的減少也更為顯著,這是因為在寄存器堆存儲體內部的長導線上,選通方法一般禁止了切換的動作。
成為本發明特性的上述和其它優點和特徵將在這裡所附加的權利要求中說明,並形成一個延伸的部分。然而,為了更好的理解本發明,以及通過使用它而獲得的優點和目的,將參照圖以及所附的說明文字進行說明,其中描述了本發明的典型實施例。


圖1是依照本發明的包括動態功率消耗控制電路的媒體處理器的方框圖。
圖2是圖1所示中央處理單元的方框圖,其中包括根據本發明的一個動態功率消耗控制電路。
圖3是如圖2所示寄存器堆的方框圖,並且加入了用於有選擇地禁止寄存器的存儲體的啟動邏輯。
圖4是適於控制圖1所示的媒體處理器的功率消耗的功率控制指令的示例性指令格式的方框圖。
圖5是說明依照本發明的功率消耗最佳例行程序的程序流程的流程圖。
圖6是說明由圖1的媒體處理器對典型程序進行處理的方框圖。
圖7是圖2所示的控制寄存器堆中功率消耗的替換方式的方框圖。
依照本發明的動態功率消耗控制可以包括在傳統的功率消耗控制技術基礎上提供了實質性優點的兩種概念中的任何一個或者兩個。第一個概念單單應用在由處理器或者處理核心使用的寄存器堆的功率消耗控制的實施中。依照本發明,一個寄存器堆被分割成多個寄存器存儲體,每個寄存器存儲體包括時鐘、數據和地址的輸入線。啟動邏輯耦合到上述寄存器堆上,以有選擇地斷開或者禁止寄存器堆中未使用的寄存器存儲體的時鐘、數據和地址的輸入線。
第二個概念更通常應用於基於軟體控制集成電路的功率消耗的情況,其中的集成電路包括處理器或者其它處理軟體指令的可編程電路。特別地,加入由處理器執行的程序代碼中的功率控制指令被用於控制多硬體資源的功率模式,其中的多硬體資源可被有選擇地配置為兩種或多種功率模式,硬體資源的每種模式具有該硬體資源的特定功率消耗狀態。
每個功率控制指令包括在其操作數中布置的功率控制信息,該操作數能夠設定多硬體資源的功率模式。此外,一旦由特定的功率控制指令設定了功率模式,在處理器處理後續指令期間將使用設定的功率模式,例如,直到由另一個功率控制指令或者特定事件(例如外部中斷)重新設定了功率模式。
將會結合處理器集成電路的典型實施例的說明詳細描述每個上述概念,其中的處理器集成電路使用了基於軟體的寄存器堆功率消耗控制方法。然而,在討論該特定實施例之前,將在下面更為詳細地描述典型的硬體和軟體環境。
轉到附圖,其中相同的附圖標記表示相同的部件,圖1說明了依據本發明的用於包括執行動態功率消耗控制的媒體處理器12的數據處理系統10的典型硬體和軟體環境。媒體處理器12可以被實施為,例如,可從飛利浦半導體獲得的PNX1300系列可兼容三媒體的媒體處理器,或者也可選擇另一種媒體處理器結構,例如Equator MAP1000、TITMS320C6xxx、BOPS ManArray等。媒體處理器12是一種晶片上系統(SOC)集成電路裝置,其包括通過內部總線16耦合到多個附加電路部件上的中央處理單元(CPU)或者處理核心14,該附加電路部件是合併到同一個集成電路裝置中。
CPU14可以被實施為,例如,VLIW處理器核心,例如,合併有32位地址空間和包括128個32位的通用寄存器的寄存器堆。處理器核心包括27個功能單元,可通過五個發送槽以及16KB數據和32KB指令高速緩存來進行訪問,其中的數據高速緩存是雙埠的,並且兩個高速緩存是與64位元組塊的大小相關聯的8通道組。
處理器12的工作存儲器由外部存儲器18(例如,SDRAM存儲器)來提供,該外部存儲器可通過主存儲器輸入/輸出接口塊20來進行訪問,而通過外部總線接口塊24方便於外部外圍部件在外圍總線22(例如,PCI總線)上的連接。
為了支持各種媒體處理功能,媒體處理器12包括各種專業化媒體處理電路,包括視頻輸入/輸出塊26、28;音頻輸入/輸出塊30、32;SPDIF輸出塊34;I2C接口塊36;同步串行接口塊38;圖像協處理器塊40;DVD解密器(DVDD塊42);可變長度解碼(VLD)協處理器塊44;以及計時器塊46。
現轉到圖2,其中更為詳細地說明了CPU14,並且示出其包括將內部總線16耦合到指令高速緩存52和數據高速緩存54上的總線接口單元(BIU)50。來自於指令高速緩存52的指令被送入一個或多個指令解碼器56,其輸出指令給一個或者多個功能單元58中,例如,各種算術邏輯單元、浮點單元、子字並行多媒體操作單元、負載/存儲單元、SIMD多媒體操作單元、矢量多媒體操作單元、乘法器、分支單元等。如上所述,CPU14可以支持VLIW指令,藉此,當處理VLIW指令以同時將編碼為VLIW指令的多個操作發送給多個功能單元時,可以使用多指令槽(例如,五個)。
CPU14一般實施為負載/存儲結構,功能單元58藉此訪問寄存器堆60,這裡包括128個32位通用寄存器。一個附加的支持寄存器是程序控制和狀態字(PCSW)寄存器61,其用於設定CPU的各種配置的設置,例如,關於浮點運算,字節性別(big/little endian),中斷啟動、異常事件等。為了提供依據本發明的動態功率消耗控制,CPU14還包括功率控制電路62,其中的功率控制電路62被圖示為一種支持寄存器64,這裡稱為功率模式寄存器,其中的功率模式寄存器存儲了用於媒體處理器12中的各種硬體資源的功率模式狀態信息,該媒體處理器12能夠有選擇地被禁止以使得媒體處理器中的功率消耗減少到最小。在一些實施例中,可以期望在PCSW或CPU中的另一個支持寄存器中還支持對功率模式狀態信息的存儲,藉此將功率模式狀態信息與與功率消耗控制無關的其它狀態信息組合起來。
功率控制電路62控制整個CPU14的功率消耗,並且也可有選擇地控制在媒體處理器12中的功率消耗,通過對一個或多個啟動信號66進行確認來啟動在CPU14和/或媒體處理器12中的各種硬體資源內嵌入的邏輯。在這裡,硬體資源實際上可能代表集成電路中的任何電子電路,因為其可能實際上和/或希望被禁止以便減少集成電路中的功率消耗。在CPU14中,例如,BIU50、高速緩存52、54、指令解碼器56、功能單元58以及寄存器堆60,憑藉在每個各自的塊上存在的啟動邏輯(通過該參考標識符″E″來標明),全部被圖示說明為能夠被有選擇地禁止的硬體資源。
在該圖示說明的實施例中,功率控制電路62響應存儲在功率模式寄存器64中的功率模式狀態信息,有選擇地確認啟動信號66。該狀態信息是響應嵌入在由CPU 14執行的程序中的功率控制指令而設置在寄存器64中的。這些功率控制指令一般以與通常在現有技術中使用的其它傳統的寄存器存儲指令幾乎相同的方式,由指令解碼器56進行解碼並被用於更新功率模式寄存器64。
可以理解,該啟動信號66可以用來徹底啟動/禁止整個塊或者硬體資源,或者可以用來僅僅啟動/禁止部分這樣的塊/硬體資源和/或為所有或僅一部分上述塊/資源而從多個可用功率消耗狀態中選擇。例如硬體資源可以支持多於兩個的功率模式,例如,睡眠或者完全關閉模式,兩個或多個低功率或者節能模式,以及一種全功率模式。當為在圖2中的每個啟動信號66說明單個線時,可以理解多個信號通路可以用於有選擇地啟動每個硬體資源的部分以改變粒度等級。同時,可以理解一種硬體資源實際上可以應用現有技術範圍內任何已知的節能或者功率消耗降低技術,只要能夠如所述那樣在功率控制電路的控制下有選擇地啟用該技術。
在以下論述的實施例中,例如,可以控制一種硬體資源,比如寄存器堆,以便通過將多個能夠響應由處理器執行的程序中的各個功率控制指令而被有選擇地禁止的寄存器存儲體組織成寄存器堆,以此來減少功率消耗。在這方面,每個寄存器存儲體本身可以被認為是代表一種單獨的硬體資源。
在該圖示說明的實施例中,每個寄存器存儲體應用啟動邏輯,該啟動邏輯不僅斷開時鐘信號,而且斷開輸入給每個禁止的寄存器存儲體的地址和數據輸入信號。如下將變得更為顯而易見的那樣,同時斷開時鐘、地址和數據輸入信號經常提供最理想的節能,因為與通用寄存器結合使用的CMOS鎖存器或者觸發電路常常遭受較高的連線電容。然而,在依據本發明的一些實施例中,也可以使用其它的禁止寄存器堆的方式。
此外,當將功率控制電路62圖示說明為被用於控制在CPU14內單獨布置的硬體資源時,可以理解,依據本發明的功率控制電路可以應用於控制其它硬體資源,包括例如布置在相同的集成電路上的硬體資源(例如,圖1中圖示的任何功能塊的全部或者部分),以及布置在另一個集成電路上的硬體資源。事實上,依據本發明的功率控制電路可以用來控制與各種的硬體資源有關的功率消耗,包括例如寄存器堆、存儲器、高速緩存、發送槽(issue slots)、總線、功能單元、功能塊、IO焊盤或者管腳、緩衝器、指令重排序邏輯、嵌入式現場可編程門陣列(FPGA)、協處理器,或者實際上能夠被禁止和/或設置為具有降低了的功率消耗狀態的任何類型的電子電路。此外,任何前述電路都可以考慮加入多個可分別控制的硬體資源,例如,使得電路的各個部分能夠被有選擇地禁止(例如寄存器堆中的各個存儲體或者寄存器、高速緩存的各個組、總線中的單個線或者線組等等)。
此外,當功率控制電路62如圖所示布置在CPU14中時,可以理解功率控制電路可以在功能上與CPU或者其它處理核心分離。通常在不同的實施例中,將功率消耗控制功能分配給集成電路上的特定方式可以是不同的,並且因而,本發明不被限制在論述的具體實施方式
中。
作為附加方式,以舉例的方式在此給出在一種媒體處理器內的功率控制電路62的一種具體實施方式
。功率消耗控制,並且特別地,如下所述的對功率控制指令的使用,可以應用在各種可選擇的根據本發明的集成電路中。功率控制指令,例如,可以與各種的處理器體系結構結合使用,包括VLIW、EPIC、RISC、CISC、DSP、超級標量等等。此外,本發明不限於使用在SOC體系結構內,或者處理核心與其它支持電路相結合的其它體系結構。
在許多情況中,就功率消耗降低而言的重要好處在與VLIW、EPIC、超級標量或者其它寬發出(wide-issue)體系結構相結合時會得以實現,在所述體系結構中並行硬體資源在程序執行期間可以一直未充分使用,因為時常可以按照程序應用命令有選擇地禁止未充分使用的並行硬體資源。然而,本發明不限於單獨與寬發出體系結構等等相結合的可用性。
通常,可以理解於此論述的任何基於硬體的功能一般實施在加入了一個或多個集成電路的電路布置中,並且選擇性地包括附加支持電子部件。此外,如在現有技術中所公知的那樣,集成電路一般使用一個或多個計算機數據文件來設計和裝配,在此被稱為硬體定義程序,其定義該設備上的電路布置的布線設計。該程序一般由一種設計工具生成,並且隨後在生產期間使用以產生布線掩膜,其定義應用到半導體晶片上的電路布置。通常,使用一種硬體定義語言(HDL),比如VHDL、verilog、EDIF等等,以一種預定格式來給出該程序。雖然本發明已描述的和下面將要描述的電路布置環境是在全功能集成電路和數據處理系統中實現的,本領域的技術人員可以理解依據本發明的電路布置也能夠作為各種形式的程序產品被分配,並且從而可以不考慮用於實際執行該分配的信號承載媒體的具體類型而同樣地應用本發明。信號承載媒體的範例包括但是不限於可記錄型媒體,諸如易失的和非易失性存儲器設備,軟盤及其它可移動磁碟、硬碟驅動器、磁帶、光碟(例如,CD-ROM、DVD等),連同其它,以及傳送型媒體,比如數字和模擬通信連結。在一些依據本發明的實施例中,其它集成電路技術,例如FPGA等也可以用來實施一些於此論述的基於硬體的功能。
如上所述,可以通過嵌入在由CPU14執行的程序內的功率控制指令而控制功率控制電路62。這些功率控制指令可以由程序設計器生成,或者在備選方案中,可以由編譯程序、連結程序、優化程序等以一種自動的方式添加到程序中。此外,當這樣的程序控制指令的自動添加一般先於運行時間發生時,一些實施例中,例如可以使用程序控制指令的運行時間增加與及時編譯/最優化或者運行時間解碼/指令解碼相結合。
程序控制指令的自動增加,不考慮實施的特定方式(即,先於或者在運行時間內,在編譯程序或者優化程序中等),一般使用一個或多個例行程序來實施,該例行程序將要在下文中更為詳細地描述。這些例行程序,無論其是在作業系統還是在專門的應用程式、組件、程序、對象、模塊或者指令序列乃至其子集中實施,其在這裡都稱為「電腦程式代碼」或者簡單地稱作「程序代碼」。程序代碼一般包括在不同時間駐留在計算機或者數據處理系統的各種存儲器以及存儲設備中的一個或多個指令,而且,當由計算機的一個或多個處理器讀出和執行指令時,會導致計算機執行對實現本發明的各個方面的步驟或元件來說是必需的步驟。此外,儘管已經和以下將描述在計算機和數據處理系統環境中的本發明與軟體有關的方面,本領域的技術人員可以理解,本發明的各個實施例能夠作為各種各樣形式的程序產品而分配,從而可以不考慮用於實際執行該分配的信號承載媒體的具體類型而同樣地應用本發明。
此外,以下描述的各種程序代碼可以基於該應用程式而識別,在該應用程式中其以本發明的一種特定實施例而被實施。然而可以理解,下述的任何特定程序術語都是僅僅為了方便起見而使用的,因此本發明不應該被限制在完全使用由這樣的術語確定和/或暗示的任何專門應用程式中。此外,假設存在無窮多的方法可以將電腦程式組織成例行程序、過程、方法、模塊、對象等,以及可以將程序功能配備在作為示例性計算機的常駐程序的各種軟體之中的各種方法(例如,作業系統、庫、API、應用程式、小應用程式等等),應該理解本發明不限於在此描述的程序功能的具體組織和配置。
本領域的技術人員將認識到圖1和2中說明的該示例性環境並不意圖限制本發明。實際上,本領域的技術人員將認識到可以使用不背離本發明範圍的其它備選硬體和/或軟體環境。
如上所述,依據本發明的動態功率消耗控制可以包括與傳統功率消耗控制技術相比提供相當大的優點的兩個概念中的任何一個或者兩者。第一個概念特別適用於實施對由處理器或者處理核心使用的寄存器堆的功率消耗的控制。第二個概念更為普遍地適用於一種在集成電路中控制功率消耗的軟體控制方式。為了促進對這些概念中的每一個的更好的理解,在下面結合圖3-6說明結合了兩個概念的一個典型實施例。然而,可以理解,以下論述的這兩個概念可以分別地和獨立地在其它實施例中使用,因而,本發明不限於以下論述的具體實施方式

圖3-6特別地圖示說明了在寄存器堆中的基於軟體的功率消耗控制,其中的寄存器堆使用在可兼容三媒體的媒體處理器中。例如,已經發現在許多可編程體系結構中(例如,VLIW、EPIC,和超級標量),寄存器堆在整體功率消耗中佔有了很大部分。在一些應用程式中,已經發現寄存器堆可以消耗到由處理核心消耗的功率的20%。特別在媒體處理器中,寄存器堆常常相對較大,並且常常包括多個埠和寄存器。一些可兼容三媒體的處理器,例如,使用帶有128個寄存器和20個獨立埠的寄存器堆。寄存器堆設計是線路佔支配地位的,因此用相對功率消耗按技術縮放比例增長。因而,在寄存器堆中降低功率消耗常常可以在媒體處理器中節約相當大的能量消耗。
已經發現在任何可編程體系結構中常常由應用程式確定寄存器堆的大小,其中應用程式需要最高數量的主動變量,該變量一般存儲在該寄存器堆中。然而,當執行其它帶有較少主動變量的應用程式時,寄存器堆中的許多寄存器仍然是沒有使用的。同樣地,在一種特定應用程式中,寄存器堆的應用能夠在該應用程式的不同點上發生顯著地變化。舉例來說,已經發現一種可兼容三媒體的媒體處理器在AC3解碼期間具有相對高的最高值的寄存器利用率,而在一種典型的應用程式中的其它操作期間,平均寄存器利用率常常是相對低的。因此,可以認為,依賴於運行應用程式的現行要求,很有希望禁止寄存器堆中沒有使用的部分以減少它的整體功率消耗。
如特別在圖3中所示的那樣,有選擇地禁止部分的寄存器堆的一種方式是通過沿著地址空間將該寄存器堆(這裡是圖2的寄存器堆60)分割成為若干存儲體70,然後有條件地啟動或者禁止這些存儲體,例如,響應通過功率控制電路62(圖2)提供給這些存儲體的啟動信號66。
每個存儲體70可以包括多個寄存器,以致由寄存器堆代表的寄存器空間被分割成多組寄存器。例如,對於一個包括128個寄存器的寄存器堆,將該寄存器空間分割成每個16個寄存器的八個存儲體是合乎需要的。然而可以使用分割寄存器的其它方法,例如,應用最高有效地址輸入作為存儲體選擇信號,並應用最低有效地址輸入來從一個選定的存儲體中選擇一個特定的寄存器。例如,在將寄存器堆分割成為八個16寄存器的存儲體的情況下,可以使用七地址輸入,其中有三個高位輸入用作存儲體選擇信號,以及四個低位輸入用作寄存器選擇信號。
如在現有技術中所公知的,寄存器堆60包括輸出選擇邏輯72,以及各種輸入諸如時鐘輸入74、地址輸入76以及數據輸入78。此外,寄存器堆60在數據輸出80上輸出數據。可以理解,根據由該寄存器堆支持的輸入/輸出埠的數量,以及寄存器的數目和每個寄存器的寬度,可以將地址輸入、數據輸入以及數據輸出信號的不同的數量提供給該寄存器堆。另外,輸入選擇邏輯(未示出)同樣可以用於支持多個功能單元對多個寄存器的並行訪問。
為了有選擇地禁止一個寄存器存儲體,通過配置在每個存儲體中的啟動電路82將時鐘、地址輸入和數據輸入提供給每個存儲體。此外,來自該功率控制電路的啟動信號66另外被送到每個啟動電路82,以對於該相關的寄存器存儲體70有選擇地斷開或者防護該時鐘、地址輸入以及數據輸入。
依據本發明可以有大量方式來實施每個存儲體內的啟動電路82。例如,實施該啟動電路的一種方式是通過使用一系列選通電晶體,其帶有一個耦合到輸入給寄存器存儲體的每個時鐘、地址輸入以及數據輸入上的上述電晶體,並且由輸出該寄存器存儲體的啟動信號66來進行選通。
通過斷開每個存儲體的地址和數據輸入,而不僅僅是時鐘輸入,由於與CMOS鎖存器或觸發電路(合成的)寄存器實施方式關聯的相對高的連線電容,一般獲得相對較大的節能,因為選通電路一般禁止了在寄存器堆存儲體中使用的相對長的連線上的切換動作。然而,應該理解,在一些實施方式中,附加的選通邏輯可以引入附加的延遲並且可以因此在很小的程度上禁止執行。此外,可以理解本發明可以被應用在與使用不同的寄存器實施方式實施的寄存器堆結合的場合。
為了實施對寄存器堆60的基於軟體的功率消耗控制,在CPU14的指令組系統結構中支持功率控制指令。功率控制指令的一個典型格式在圖4的90處示出。如所示的那樣,功率控制指令90可以包括一個操作碼92,其將指令標識為pwr_control指令,以及一個操作數94,其為寄存器堆60的寄存器的各種存儲體指定用於設置功率模式的功率控制信息。操作數94可以作為例如一個包括位掩模的立即操作數被實施,其包括一個分配給寄存器堆的寄存器的每個存儲體的啟動/禁止比特96。因而,例如對於寄存器堆中的8個存儲體,在指令90中可以支持一個8位的立即操作數。
更通常的,操作數94的大小可以用該公式來表示i=1jlog2(Modes(i))]]>其中j是要控制的硬體資源(這裡是寄存器存儲體)的數量,以Modes(i)是硬體資源i的功率模式的數量。
其它指令格式可以用於可選方案中。例如,如圖4所示,支持一個任選的源寄存器操作數97是理想的,該操作數97標識在其內存儲功率模式狀態信息的寄存器。因此,通過一個用於檢索需要的功率模式狀態信息的寄存器操作,該功率模式狀態信息可以保持在一個單獨的寄存器內,而不是直接將功率模式狀態信息存儲在功率控制指令以及執行一個立即運算。在可選方案中可以支持其它的編址方式。
同樣如圖4中所示,需要支持一種防護操作數98,其可以用來指定在由功率控制指令表示的功率模式狀態信息被應用之前必須滿足的條件。實際上依據本發明可以使用任何已知條件。
回到圖2,在該圖示說明的實施例中,由CPU14處理功率控制指令,以便用在功率控制指令中規定的功率控制信息來更新功率模式寄存器64。因而,期望功率模式寄存器64具有一個用於功率控制指令的立即操作數的相同映射,以使得將功率控制指令僅僅作為一個寫入到功率模式寄存器中的立即數而進行處理。
此外,如上所述,在有些情況下,可能需要應用一種預先存在的寄存器來存儲功率模式狀態信息,例如PCSW寄存器。在這樣的情況下,功率控制指令不會需要獨立的操作碼。相反,可以使用一種用於寫入適合的寄存器中的預先存在的操作碼,同時用該操作數更新與存儲功率模式狀態信息結合使用的位。
依據本發明,功率控制指令可以以許多方式合併到可執行程序代碼中。例如,功率控制指令可以在開發期間由程序設計器添加到原始碼中。在可選方案中,編譯程序、優化程序、連結程序等可以執行開發中程序的模擬或者靜態分析,以確定適當的位置以基於預計的資源利用率插入功率控制指令。
此外,程序的剖析、靜態分析或者模擬可以用於確定應該在該程序的某個部分內使用什麼硬體資源,以及應該禁止什麼資源。例如,如果確定在程序的某一部分僅要求10個寄存器,而使用該10個寄存器對於程序語義來說是不重要的,編譯程序可能僅僅需要使用來自於有限數量的寄存器存儲體的寄存器,然後向程序代碼插入適當的功率控制指令以禁止沒有使用的寄存器存儲體。此外,如果上述10個寄存器起初分布在多個寄存器存儲體中,可能需要在減少數量後的寄存器存儲體內將寄存器重新映射以集中這些寄存器。
例如,圖5圖示說明了功率消耗優化例行程序100,該例行程序100可以在對電腦程式進行編譯或優化期間執行,以便為了最佳功率消耗而優化一段電腦程式。對於每個指定程序段,例行程序100首先分析該段程序,以由在塊102中的程序代碼段確定硬體資源的使用情況。其次,選擇性地執行塊104以試圖將資源重新映射以將資源使用集中到有限的一組硬體資源中(例如,將寄存器限制為有限數量的寄存器存儲體)。接下來,塊106產生並將適當的功率控制指令插入到程序代碼中以禁止任何未使用的資源。然後完成對那段程序的處理。
同樣可以在運行時間內例如結合翻譯或及時編譯而使用例行程序100或在功能方面類似的例行程序。此外,可以理解,例行程序100可以結合指令的生成而被使用,在運行時間內該指令被調度用於並行和/或無序運算,例如,在超級標量處理器體系結構中。在這樣的實施方式中,編譯程序和運行時間硬體將期望限制對功率控制指令的重新排序,以將對其它推測指令的影響降到最低,例如通過將副作用分配給功率控制指令,該指令限制其運行時間推測。然而在其它實施例中,如果CPU/處理器不是完全承擔計算,作業系統可以調度/發出功率控制指令。
在可選方案中,可以結合明確並行的指令集體系結構,例如VLIW或EPIC代碼來使用例行程序100,其中在編譯期間發生對並行指令的檢測。在上述實施方式中,對功率控制指令的插入可以看作包括將功率控制操作插入更大型的包括多個操作的VLIW或EPIC指令。
在編譯過程或運行時間過程中功率控制指令嵌入程序碼內,僅在需要改變硬體資源的使用時,該程序碼中需要包括分布在其中的程序控制指令。此外,常常需要單個功率控制指令能夠控制多個硬體資源的啟動/禁止狀態。因而,依據本發明,最小的附加處理額外消耗一般與功率控制指令有關,從而將任何由於將附加指令插入程序代碼而產生的不利的性能效果降到最低。
例如,圖6用圖示說明了以上述方式編譯的程序的一個典型部分的執行過程,例如可以結合在與可兼容三媒體的媒體處理器使用。在該例子中,假定有五個發送槽,各標記為110、112、114、116和118,在各自的發送槽中在各個周期內(周期數0-4)執行的指令被圖示在對應於該周期的相應發送槽中。還假定寄存器堆包括分割為八個存儲體的128個寄存器(表示為r0-r127),而且功率控制指令使用一個立即操作數,在其中當二進位數″1″位於與選定的存儲體相關聯的操作數位掩模位置時啟動該選定的存儲體。在該例子中,pwr_control指令的等待時間是一個周期;然而,可以理解在一些實施方式中pwr_control指令能夠具有超過一個周期的等待時間。
還假定在周期0中,一個由CPU處理的指令(這裡是在發送槽112中)是帶有立即操作數0x1b(二進位的00011011)的功率控制指令,其僅啟動寄存器堆(例如寄存器r0-r31和r48-r79)的存儲體1、2、4和5。執行該指令的結果是,更新功率模式寄存器64(圖2)以存儲0x1b(二進位的00011011)值。結果,在後續的周期內,禁止寄存器存儲體3、6、7和8。然而,請注意,在周期0的功率控制指令執行期間,所有的寄存器存儲體都可由其它指令訪問(假定預先啟動所有的存儲體)。
在周期1和2內,沒有遇到其它功率控制指令。結果,寄存器存儲體3、6、7和8保持禁止,並且限制所有的指令從存儲體1、2、4和5(r0-r31和r48-r79)訪問寄存器。
在周期3內,保存在功率模式寄存器64的功率模式狀態信息繼續將寄存器存儲體3、6、7和8保持在禁止狀態。然而,在該周期內執行的指令(發送到發送槽118)是帶有立即操作數0xff(二進位的11111111)的功率控制指令,其為在周期4內執行的指令而啟動寄存器堆的全部八個存儲體。
前述動態功率消耗控制技術與傳統設計相比存在許多優點。同需要指令發送給指定功能單元或需要將啟動/禁止命令附加到每個指令並被繼續解碼的傳統設計相比,在控制多種帶有最小的處理額外消耗的硬體資源方面存在顯著的靈活性。
此外,前述技術以許多有用的方式提供了解決針對適當的平衡特性和功率消耗的各種有關功率消耗問題的靈活性。例如,使用前述技術,處理器性能可以通過例如增加寄存器或功能單元而按比例上升,而不會增加沒有使用額外資源的代碼的功率消耗。此外,對於性能不是關鍵性的應用程式,功率控制指令可以用來犧牲性能以降低功耗,例如通過調度操作有限的資源而禁止其它資源。
對於基於軟體的功率消耗控制而言,可以理解,可替換的指令格式、可替換的編譯程序、優化程序和/或調度例行程序以及可替換的處理器體系結構可以用在根據本發明的其它實施例。此外,除如上所述的有關所述的聯組工作的寄存器堆設計之外的資源禁止電路可以結合依據本發明的基於軟體的功率消耗控制使用。
此外,關於所述的聯組工作的寄存器堆設計,可以理解,依據本發明可以使用除於此所述的基於軟體的控制機制之外的控制機制。例如,基於硬體的控制機制可以用來基於對讀/寫地址的動態解碼來動態地啟動某個硬體資源。例如,圖7說明了可選的寄存器堆設計120,其包括多個寄存器存儲體122,每個包括用於有選擇地斷開提供給與圖3的寄存器堆60類似的寄存器堆的時鐘輸入126、數據輸入128、地址輸入130的選通邏輯124。然而,寄存器堆120包括基於硬體的啟動邏輯電路132,其包括動態地產生各個存儲體啟動信號136的地址解碼器134,以有選擇地禁止各種未使用的寄存器存儲體,而不是從基於軟體的控制電路提供啟動信號。
地址解碼器134可以例如在任何周期內有選擇地禁止寄存器存儲體,因為在該寄存器存儲體之內當前沒有寄存器被訪問。特別對於支持多輸入埠的寄存器堆,很容易地確定在給定周期內訪問了什麼寄存器,並且從而提供有選擇地減少寄存器堆的功率消耗的功能,而在由特定的處理器設計所使用的編譯程序和/或指令集系統結構中不會有任何改變。
具有及時公開的優點的各種附加修改對於本領域的技術人員來說是顯而易見的。所以,本發明由附屬的權利要求所限定。
權利要求
1.一種電路布置(14),包括(a)分割成多個存儲體(70)的寄存器堆(60),每個存儲體包括至少一個寄存器(82),和至少一個時鐘輸入(74)、地址輸入以及數據輸入;以及(b)耦合到該寄存器堆並配置為從多個存儲體中通過斷開其時鐘(74)、地址和數據輸入而有選擇地禁止至少一個未使用存儲體(70)的啟動邏輯(66)。
2.如權利要求1的電路布置,其中寄存器堆中的每個寄存器包括CMOS觸發器和CMOS鎖存器中的至少一個。
3.如權利要求1的電路布置,其中該啟動邏輯包括多個啟動電路(82),每個啟動電路耦合到寄存器堆中的寄存器存儲體,並且每個啟動電路被配置成響應啟動信號,斷開提供給相關聯的存儲體的每個時鐘(74)、地址和數據輸入。
4.如權利要求3的電路布置,其中每個啟動電路包括多個選通電晶體,每個選通電晶體耦合到時鐘、地址和數據輸入之一,並且每個選通電晶體響應提供給啟動電路的啟動信號。
5.如權利要求1的電路布置,進一步包括耦合到多個寄存器存儲體的每一個的輸出選擇邏輯(80)。
6.如權利要求1的電路布置,其中該啟動邏輯(132)被配置成動態地確定哪個寄存器存儲體未使用並且響應該動態確定而為每個存儲體產生啟動信號。
7.如權利要求6的電路布置,其中該啟動邏輯包括地址解碼器,其被配置成響應由提供給該寄存器堆的地址輸入指定的至少一個地址,產生該啟動信號。
8.如權利要求1的電路布置,其中該啟動邏輯被配置成響應存儲的功率模式狀態信息,為每個存儲體產生一個啟動信號。
9.如權利要求8的電路布置,進一步地包括支持寄存器,其被配置成存儲功率模式狀態信息,其中該狀態寄存器被配置成響應駐留在由處理器執行的程序代碼中的功率控制指令而更新。
10.如權利要求9的電路布置,其中狀態寄存器包括一個功率模式寄存器。
11.如權利要求9的電路布置,其中狀態寄存器還存儲有與功率消耗控制無關的狀態信息。
12.如權利要求1的電路布置,其中該電路布置被布置在集成電路中。
13.如權利要求12的電路布置,其中該電路布置被布置在集成電路的處理器中。
14.一種程序產品,包括硬體定義程序,其定義如權利要求1的電路布置,以及信號承載媒體,其承載硬體定義程序,其中該信號承載媒體包括至少一個傳輸媒體以及一個可記錄媒體。
15.一種控制寄存器堆的功率消耗的方法,該方法包括(a)接收分別送往寄存器堆的多個寄存器存儲體中的寄存器第一和第二寄存器存儲體的第一和第二啟動信號,其中寄存器的每個存儲體包括至少一個寄存器和至少一個時鐘輸入、地址輸入、和數據輸入;以及(b)響應第一啟動信號通過斷開其時鐘、地址和數據輸入而有選擇地禁止寄存器的第一存儲體。
16.如權利要求15的方法,其中寄存器堆中的每個寄存器包括CMOS觸發器和CMOS鎖存器中的至少一個。
17.如權利要求15的方法,其中有選擇地禁止寄存器的第一存儲體包括將啟動信號提供給耦合到第一寄存器存儲體的多個選通電晶體,每個選通電晶體耦合到時鐘、地址和數據輸入之一。
18.如權利要求15的方法,進一步地包括動態地確定未使用第一存儲體,並且據此產生第一啟動信號。
19.如權利要求18的方法,其中動態地確定未使用第一存儲體的步驟包括對由提供給寄存器堆的地址輸入所指定的至少一個地址進行解碼。
20.如權利要求15的方法,進一步地包括響應存儲的功率模式狀態信息而產生第一和第二啟動信號。
21.如權利要求20的方法,其中存儲的功率模式狀態信息存儲在支持寄存器中,該方法進一步包括響應駐留在由處理器執行的程序代碼中的功率控制指令,更新該支持存儲器。
全文摘要
一種電路布置和控制功率消耗的方法,通過耦合有啟動邏輯(62、82)的聯組工作的寄存器設計使用具有功率消耗控制能力的寄存器堆(60),該啟動邏輯被配置成通過有選擇地斷開向其提供的時鐘(74)、地址(76)和數據(78)輸入而有選擇地禁止未使用的寄存器存儲體(70)。
文檔編號G06F9/30GK1720494SQ200380104979
公開日2006年1月11日 申請日期2003年12月3日 優先權日2002年12月4日
發明者A·特雷奇科, M·加格 申請人:皇家飛利浦電子股份有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀