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

基于軟件的微處理器功率損耗控制的制作方法

文檔序號:6422557閱讀:136來源:國知局
專利名稱:基于軟件的微處理器功率損耗控制的制作方法
技術(shù)領(lǐng)域
本發(fā)明通常涉及集成電路中的功率損耗控制,例如,應(yīng)用于低功率和其它對功率敏感的應(yīng)用。
對許多集成電路(IC)或芯片來講,功率損耗往往是首要的設(shè)計(jì)約束條件。例如,集成電路越來越常在各式各樣的便推式及其它靠電池供電的的應(yīng)用中使用,例如在移動(dòng)電話和其它無線通信裝置、便攜式計(jì)算機(jī)、手持設(shè)備和游戲控制臺等等。此外,即使在非可移植的對電池壽命不關(guān)心的應(yīng)用中,集成電路也可能對過熱敏感,其結(jié)果是或者需要昂貴的和/或龐大的冷卻組件,或者降低了集成電路可靠性。由IC所消耗的功率的量在電子器件的電池壽命和發(fā)熱性這兩個(gè)方面扮演了重要的角色。
此外,因?yàn)镮C變得更加復(fù)雜,具體表現(xiàn)為更快的時(shí)鐘頻率和更大量的晶體管,相應(yīng)增加由這些IC消耗的功率的量。因此,一項(xiàng)重要的研發(fā)計(jì)劃已經(jīng)開始針對降低IC的功率損耗進(jìn)行。
一些已經(jīng)有針對性的研究計(jì)劃,例如,減少IC中的各個(gè)晶體管的功率損耗,例如,通過改變晶體管布局和/或減少供電電壓。在某種程度上,對晶體管的設(shè)計(jì)進(jìn)行修改和對功率電壓電平的降低了已經(jīng)對功率損耗中的增加進(jìn)行了補(bǔ)償,這是由于使用了更加復(fù)雜和更高性能的IC而導(dǎo)致的。然而,對很多功率敏感應(yīng)用來說,需要進(jìn)行其它精簡。
例如一些IC,諸如在移動(dòng)式應(yīng)用中使用的微處理器,利用電壓和/或頻率標(biāo)準(zhǔn)變化來減少供電電壓和/或時(shí)鐘頻率,從而減少總的功率損耗。然而,這種精簡一般應(yīng)用于寬IC(IC-wide),并且伴隨有在處理性能方面的相應(yīng)精簡。
其它設(shè)計(jì)可以包括睡眠模式,該睡眠模式響應(yīng)一個(gè)特定的命令或指令,或諸如外部中斷的事件,使IC處于低功率狀態(tài)。例如,一些微處理器支持的WAIT或HALT指令,它們將整個(gè)微處理器設(shè)置在一個(gè)低功率的睡眠模式。然而,當(dāng)處于這種模式的時(shí)候,在微處理器中所有的有效處理活動(dòng)一般都暫停,直到通過中斷或其它觸發(fā)事件再次將微處理器喚醒。
在另外的設(shè)計(jì)中,IC可能具有不同的電路,這些電路能夠在它們沒有被使用的時(shí)候可選擇地被禁止,從而減少總的功率損耗。通常,這種電路可以響應(yīng)特定指令的執(zhí)行,有選擇地被啟動(dòng)或禁止,所述的指令是針對相關(guān)的計(jì)算機(jī)程序的執(zhí)行,特別是對于包括某種處理器或處理核心形式的IC。
例如,一些低功率微處理器設(shè)計(jì)允許通過路由特定的“掉電”指令到各個(gè)功能單元,這些專用功能單元可以有選擇地被禁止。在計(jì)算機(jī)程序的編譯期間,通過編譯器插入掉電指令,這樣在由微處理器執(zhí)行的計(jì)算機(jī)程序執(zhí)行期間,將通過各個(gè)功能單元處理指令。然而,這樣一個(gè)方法的缺點(diǎn)是,將各個(gè)指令發(fā)送到特定的功能單元占用了該功能單元的處理資源,因此降低了該功能單元的可用性,以及其它處理器流水線的可用性,以便處理其它的產(chǎn)生的計(jì)算操作。
與上述掉電指令有關(guān)的是使用了控制位,控制位與通過微處理器處理每個(gè)指令關(guān)聯(lián),并且動(dòng)態(tài)地控制微處理器中的每個(gè)功能單元的狀態(tài)的啟動(dòng)。然而,在這類設(shè)計(jì)中,需要對每個(gè)指令的常數(shù)指令進(jìn)行解碼,可以對通過有選擇地禁止各個(gè)功能單元獲得的一些功率損耗減少進(jìn)行補(bǔ)償。此外,響應(yīng)一個(gè)控制位的特定的組,禁止或啟動(dòng)一個(gè)特定的功能單元所需要的時(shí)間可以限制微處理器的合理的工作頻率,從而限制微處理器的綜合性能。此外,對每個(gè)指令的控制位的增加加大了代碼的尺寸,因此增加了存儲需求,或降低了所支持的不同的指令的數(shù)量。
上述基于控制方案的指令的另一個(gè)缺點(diǎn)是,它們經(jīng)常局限于對微處理器中的功能單元進(jìn)行控制。當(dāng)功能單元,如執(zhí)行單元、運(yùn)算邏輯單元、浮點(diǎn)單元、定點(diǎn)單元等等時(shí),可以對微處理器中的總體功率損耗提供有效的作用,大多數(shù)的設(shè)計(jì)包括大量的附加電路,例如,緩存、寄存器堆等等,還影響到功率損耗,但是不由上述控制方案闡明。
其它的設(shè)計(jì)可以包括多個(gè)指令集,這些指令組支持微處理器的不同功率操作。通常,在這樣的設(shè)計(jì)中,一個(gè)指令集可以完全使用一個(gè)微處理器,因此另一個(gè)指令集可以僅僅使用微處理器的一部分,因此減少了功率消耗。然而,這個(gè)方法的一個(gè)缺點(diǎn)是,僅僅例如完全或有限地支持有限的處理器應(yīng)用模式。此外,增加了代碼的復(fù)雜性、和由此而導(dǎo)致的處理器中的解碼邏輯的復(fù)雜性,這又能增加功率損耗。
在相關(guān)領(lǐng)域的發(fā)展中,可以利用程序的多個(gè)版本支持不同的功率損耗能力。然而,存儲程序的多個(gè)版本需要使用運(yùn)行時(shí)調(diào)度程序,該調(diào)度程序根據(jù)當(dāng)前的功率需要選擇用于執(zhí)行的代碼版本,并且存儲多個(gè)代碼版本需要更多的程序存儲器和調(diào)度程序的執(zhí)行,這可進(jìn)一步導(dǎo)致功率損耗。
對于在IC中有選擇地啟動(dòng)各個(gè)電路,可以使用禁止這些電路的各種的方式,從而最小化它們的功率消耗。例如,經(jīng)常使用時(shí)鐘選通器禁止電路的時(shí)鐘,有效地限制電路中晶體管的切換,因?yàn)樵诰w管中經(jīng)常進(jìn)行狀態(tài)切換占了電路中功率損耗的最大部分。
對于微處理器中的功能單元,禁止的另一個(gè)方式是停止對電路的功率供應(yīng)。另一個(gè)方式是使電路的輸入信號無效。
同時(shí),對于其它的電路,比如在動(dòng)態(tài)隨機(jī)存取存儲器(DRAM)裝置中使用的存儲器陣列,可以有選擇地?cái)嚅_時(shí)鐘信號和讀出放大器,以禁止陣列中的儲存單元的存儲體,從而減少整個(gè)陣列中的功率損耗。
盡管已經(jīng)產(chǎn)生了與例如微處理器等的IC中的控制功率損耗相關(guān)的顯著增益,但是在本領(lǐng)域,仍然需要繼續(xù)進(jìn)一步完善本領(lǐng)域。
例如,在IC中的有選擇地禁止電路的程序控制的方面,仍然需要有有選擇地禁止電路方式,該禁止電路與由傳統(tǒng)的電路控制方案支持的電路相比,具有更大的粒度和靈活性,以及更少開銷。
本發(fā)明將對這些及其它的現(xiàn)有技術(shù)有關(guān)的問題進(jìn)行闡述,這是通過提供電路方案、利用功率控制指令的執(zhí)行程序代碼的方法和生成程序代碼的方法來完成的,在處理器執(zhí)行程序期間,功率控制指令能夠動(dòng)態(tài)地控制多個(gè)硬件資源的功率損耗。此外,被設(shè)置為處理這種功率控制指令的處理器控能夠?qū)⒍鄠€(gè)硬件資源的功率模式保持在以前處理的功率控制指令指定的狀態(tài),這樣,在將多個(gè)硬件資源的功率模式設(shè)置為由以前處理的功率控制指令指定的狀態(tài)時(shí),將處理后續(xù)要處理的指令。
本發(fā)明的這些及其它優(yōu)點(diǎn)和特征,將在所附的權(quán)利要求中闡述并且作為在本文中的進(jìn)一部分。然而,為了更好的理解本發(fā)明,應(yīng)該參考附圖,和相關(guān)的描述的內(nèi)容,通過使用它獲得的優(yōu)點(diǎn)和目的,在這里本發(fā)明還描述了典型實(shí)施例。


圖1是按照本發(fā)明的一個(gè)媒體處理器的方框圖,該媒體處理器包括動(dòng)態(tài)的功率損耗控制電路。
圖2是涉及圖1中的中央處理器的方框圖,包括一個(gè)按照本發(fā)明的動(dòng)態(tài)的功率損耗控制電路。
圖3是涉及圖2中的寄存器堆的方框圖,包括用于有選擇地禁止寄存器的存儲體的啟動(dòng)邏輯。
圖4是用于一個(gè)功率控制指令的典型的指令格式的方框圖,該功率控制指令適用于控制圖1的媒體處理器中的功率損耗。
圖5是說明按照本發(fā)明的功率損耗優(yōu)化例程的程序流程的流程圖。
圖6是說明由圖1的媒體處理器處理的典型的程序的方框圖。
圖7是針對圖2所示的寄存器堆中控制功率損耗的另一個(gè)方式的方框圖。
按照本發(fā)明的動(dòng)態(tài)功率損耗控制可以包括兩個(gè)概念中的一個(gè)或兩個(gè),這兩個(gè)概念提供了比傳統(tǒng)的功率損耗控制技術(shù)多很多的優(yōu)點(diǎn)。第一個(gè)概念只能應(yīng)用于對由一個(gè)由處理器或處理芯使用的寄存器堆進(jìn)行功率損耗控制。按照本發(fā)明,將寄存器堆分割為多個(gè)寄存器的存儲體,寄存器的每個(gè)存儲體包括時(shí)鐘、數(shù)據(jù)和地址輸入線。啟動(dòng)邏輯連接到這樣的寄存器堆,以便為在寄存器堆中未使用的寄存器的存儲體,有選擇地?cái)嚅_或禁止時(shí)鐘、數(shù)據(jù)和地址輸入線。
第二個(gè)概念更廣泛地應(yīng)用在集成電路中控制功率損耗的基于軟件的方式中,所述的集成電路包括一個(gè)處理器或其它的處理軟件指令的可編程電路。特別是,與由處理器執(zhí)行的程序代碼組合的功率控制指令,用于控制多個(gè)硬件資源的功率模式,也就是有選擇地被設(shè)置為兩個(gè)或更多功率模式,每個(gè)硬件資源模式對于硬件資源具有一個(gè)特定的功率消耗狀態(tài)。
每個(gè)功率控制指令包括在操作數(shù)中處理的功率控制信息,該功率控制信息能夠設(shè)置多個(gè)硬件資源的功率模式。此外,一旦由特定的功率控制指令設(shè)置了功率模式,所設(shè)置的功率模式在后繼指令的處理期間由處理器使用,例如,在由另一個(gè)功率控制指令、或一個(gè)特殊事件(例如外部中斷)重新設(shè)置功率模式之前。
每個(gè)概念都將結(jié)合處理器集成電路的典型實(shí)施例的說明更加詳細(xì)的被描述,該處理器集成電路使用了寄存器堆的基于軟件的功率損耗控制。然而,在討論這些特定的實(shí)施例以前,下面詳細(xì)描述一下典型的硬件和軟件環(huán)境。
參看附圖,其中在幾個(gè)圖中,相同的數(shù)字表示相同的部分,圖1示出了數(shù)據(jù)處理系統(tǒng)10的典型的硬件和軟件環(huán)境,包括一個(gè)實(shí)現(xiàn)按照本發(fā)明的動(dòng)態(tài)功率損耗控制的媒體處理器12。例如,媒體處理器12可以被實(shí)現(xiàn)為可從PhilipsSemiconductors中獲得的PNX1300系列TriMedia兼容的媒體處理器,或例如Equator MAP1000、TITMS320C6xxx、BOPS ManArray等等的其它媒體處理器體系結(jié)構(gòu)。媒體處理器12是一個(gè)系統(tǒng)芯片內(nèi)(SOC)集成電路裝置,該裝置包括一個(gè)通過內(nèi)部總線16連接到多個(gè)合并到相同集成電路裝置中的附加電路組件的中央處理器(CPU)或處理核14。
例如,CPU14可以實(shí)現(xiàn)為例如VLIW處理器芯,例如包括32位地址空間,和包括128個(gè)32位的通用寄存器的寄存器堆。處理器核包括可通過五個(gè)發(fā)行時(shí)隙訪問的27個(gè)功能單元、以及16KB數(shù)據(jù)和32KB指令高速緩存,所述功能單元具有雙端口的數(shù)據(jù)高速緩存,并具有兩個(gè)與64字節(jié)塊大小相關(guān)的8路線組的高速緩存。
當(dāng)外部總線接口塊24實(shí)現(xiàn)由外圍總線22(例如PCI總線)到外部的外圍組件的連接性時(shí),由通過主存儲器輸入/輸出接口塊20訪問的外存儲器18(例如SDRAM存儲器)提供處理器12的工作存儲器。
為了支持各種不同的媒體處理功能,媒體處理器12包括各種特定的媒體處理電路,包括視頻輸入/輸出塊26、28;音頻輸入/輸出塊30、32;SPDIF輸出信息組34;I2C接口塊36;同步的串行接口塊38;圖像協(xié)處理器塊40;DVD反倒頻器(DVDD)塊42;可變長度解碼(VLD)協(xié)處理器塊44;和計(jì)時(shí)器塊46。
現(xiàn)在轉(zhuǎn)到圖2,CPU14進(jìn)行詳細(xì)說明,如圖所示,包括總線接口單元組件(BIU)50將內(nèi)部總線16連接到指令高速緩存52和數(shù)據(jù)高速緩存54。將來自指令高速緩存52的指令提供給一個(gè)或多個(gè)指令譯碼器56,將指令輸出到一個(gè)或多個(gè)功能單元58,例如各種的運(yùn)算邏輯單元、浮點(diǎn)單元、子字并行多媒體操作組件、負(fù)載/存儲單元、SIMD多媒體操作組件、矢量多媒體操作單元組件、乘法器、分支單元等等。如上所述,CPU14可以支援VLIW指令,從而當(dāng)處理VLIW指令時(shí)可以使用多指令時(shí)隙(例如五個(gè)),以便同時(shí)路由被編碼成為VLIW指令的多重操作到多功能組件。
CPU14通常作為一個(gè)加載/存儲體系結(jié)構(gòu)被實(shí)現(xiàn),由此功能單元58訪問包括128個(gè)32位通用寄存器的寄存器堆60。附加支持的寄存器是程序控制和狀態(tài)字(PCSW)寄存器61,該寄存器用來設(shè)置CPU的各種結(jié)構(gòu)配置,例如,關(guān)于浮點(diǎn)操作、字節(jié)性別(byte sex)(高/低端在前格式)、中斷啟動(dòng)、異常等等。為了提供按照發(fā)明的動(dòng)態(tài)功率損耗控制,CPU14還包括功率控制電路62,其中描述了一個(gè)支持寄存器64,在此稱為功率模式寄存器,其中存儲了媒體處理器12中各種硬件資源的功率模式狀態(tài)信息,這些資源能夠有選擇地被禁止,以便最小化在媒體處理器中的功率損耗。在一些實(shí)現(xiàn)中,可能希望同時(shí)支持在PCSW中的功率模式狀態(tài)信息的存儲或在CPU中的另一個(gè)支持寄存器,從而功率模式狀態(tài)信息與其它獨(dú)立于功率損耗控制的狀態(tài)信息結(jié)合損耗。
功率控制電路62控制整個(gè)CPU14的功率損耗,在媒體處理器12以外的地方是可選的,控制是通過確定一個(gè)或多個(gè)啟動(dòng)信號66,以啟動(dòng)嵌入在CPU14和/或媒體處理器12中的各種的硬件資源中的邏輯。在本文中,實(shí)際上硬件資源可以代表集成電路中的任何可以實(shí)際上和/或希望禁止的電子電路,所述的禁止是為了減少集成電路中的功率損耗。在CPU14中,例如BIU50、高速緩存52、54、指令譯碼器56、功能單元58和寄存器堆60都作為能夠有選擇地被禁止的硬件資源,根據(jù)每個(gè)相應(yīng)塊上存在的啟動(dòng)邏輯(通過參考標(biāo)記″E″標(biāo)志)來進(jìn)行說明。
在示出的實(shí)施例中,響應(yīng)存儲在功率模式寄存器64中的功率模式狀態(tài)信息,功率控制電路62有選擇地確定啟動(dòng)信號66。在寄存器64中設(shè)置這些狀態(tài)信息,以響應(yīng)嵌入到由CPU14執(zhí)行的程序中的功率控制指令。這些功率控制指令通常由指令譯碼器56解碼,并且用于以幾乎與其它的傳統(tǒng)的現(xiàn)有技術(shù)中使用的普通的寄存器存儲指令相同的方式更新功率模式寄存器64。
應(yīng)當(dāng)理解的是,啟動(dòng)信號66可以用來完全地啟動(dòng)/禁止整個(gè)塊或硬件資源,也可以用來僅啟動(dòng)/禁止這些塊/資源的一部分,和/或從這樣的塊/資源的全部或一部分的多個(gè)有效的功率消耗狀態(tài)中選擇。例如,硬件資源可以支持多于兩個(gè)的功率模式,例如,睡眠或完全關(guān)閉模式、兩個(gè)或更多低功率或節(jié)能模式、和滿功率模式。在圖2中,雖然為每個(gè)啟動(dòng)信號66示出了一個(gè)線,應(yīng)當(dāng)理解的是,可以使用多個(gè)信號通路,用不同程度的粒度有選擇地啟動(dòng)每個(gè)硬件資源部分。同時(shí),應(yīng)當(dāng)理解,損耗硬件資源可實(shí)際地使用任何在本領(lǐng)域中已知的節(jié)能或功率消耗減少技術(shù),只要這樣的技術(shù)能夠有選擇地在這里描述的功率控制電路的控制下啟動(dòng)。
在以下論述的實(shí)施例中,例如,可以控制諸如寄存器堆的硬件資源,以便通過將寄存器堆組織成為多個(gè)寄存器存儲體而減少功率損耗,這些寄存器存儲體可以相應(yīng)地通過響應(yīng)處理器執(zhí)行的程序中的功率控制指令有選擇地被禁止。在這點(diǎn)上,可以將每個(gè)寄存器存儲體本身認(rèn)為是代表一個(gè)單獨(dú)的硬件資源。
在被說明的實(shí)施例中,每個(gè)寄存器組使用啟動(dòng)邏輯,啟動(dòng)邏輯不但斷開時(shí)鐘信號,而且斷開到每個(gè)被禁止的寄存器存儲體的地址和數(shù)據(jù)輸入。這點(diǎn)在下面將變得更明顯,因?yàn)榕c通用寄存器有關(guān)而使用的CMOS鎖存器或觸發(fā)器通常受到更高布線能力的影響,一起斷開時(shí)鐘、地址和數(shù)據(jù)輸入信號通常能夠提供最好的節(jié)能效果。然而,在按照本發(fā)明的一些實(shí)施例中,也可以使用禁止寄存器堆的其它方式。
此外,當(dāng)功率控制電路62在CPU14中用來控制硬件資源單獨(dú)處理時(shí),應(yīng)當(dāng)理解,按照本發(fā)明,可以使用功率控制電路控制其它的硬件資源,包括例如在相同集成電路的其它地方處理的資源(例如,在圖1所示的所有功能塊的全部或部分),以及在另一個(gè)集成電路上處理的硬件資源。按照本發(fā)明的功率控制電路可以用來控制功率損耗,事實(shí)上,與多種硬件資源有關(guān),包括例如寄存器堆、存儲器、高速緩存、協(xié)議時(shí)隙、總線、功能單元、功能塊、10pads或插腳、緩沖器、指令排序邏輯、嵌入式字段可編程門陣列(FPGA)、協(xié)處理器或幾乎所有類型的電子電路,它們能夠被禁止和/或能夠設(shè)置為一種具有減少功率損耗級的狀態(tài)。此外,可以認(rèn)為上述任意電路包括多個(gè)可單獨(dú)可控的硬件資源,例如,這樣的電路的各個(gè)部分可以有選擇地被禁止(例如,寄存器堆中的各個(gè)存儲體或寄存器、高速緩存的各個(gè)集合、總線中的各個(gè)線路或線路組等等)。
此外,當(dāng)示出的功率控制電路62在CPU14中被處理時(shí),應(yīng)當(dāng)理解,從功能上可以將功率控制電路單獨(dú)從CPU或其它的處理核分離出來。通常,在不同的實(shí)施例中,在集成電路上分配功率損耗控制功能的特定方式可以不同,因而,本發(fā)明不僅限于在此論述的特定的執(zhí)行過程。
作為附加內(nèi)容,在此處舉例來提供媒體處理器中的功率控制電路62的實(shí)現(xiàn)。功率損耗控制,特別是,以下描述的功率控制指令的用途,可在按照本發(fā)明可以在多種集成電路中廣泛地使用。例如,與各種處理器結(jié)構(gòu)有關(guān)的功率控制指令都可以使用,包括VLIW、EPIC、RISC、CISC、DSP、超標(biāo)量等等。此外,本發(fā)明不僅限于在SOC結(jié)構(gòu)或與其它支持電路集成的處理核的其他結(jié)構(gòu)中使用。
在許多情況下,因功率損耗降低得到的顯著優(yōu)勢是通過VLIW、EPIC超標(biāo)量或其它的寬協(xié)議結(jié)構(gòu)而實(shí)現(xiàn)的,在這些結(jié)構(gòu)中,在程序執(zhí)行期間一直并行硬件資源利用不足,,因?yàn)闀r(shí)常利用不足的并行硬件資源,按照程序應(yīng)用需求,可以有選擇地被禁止。然而,本發(fā)明不僅限適用于寬-協(xié)議結(jié)構(gòu)等等。
通常,應(yīng)當(dāng)理解在此討論的任何基于硬件的功能都能在一個(gè)電路布置中結(jié)合一個(gè)或多個(gè)集成電路實(shí)現(xiàn),并且選擇性地包括附加的支持電子組件。此外,如本領(lǐng)域公知的技術(shù)那樣,通常利用一個(gè)或多個(gè)在此成為硬件定義程序的計(jì)算機(jī)數(shù)據(jù)文件設(shè)計(jì)和制造集成電路,在此計(jì)算機(jī)數(shù)據(jù)文件定義了裝置上的電路布置的布局。通常通過設(shè)計(jì)工具產(chǎn)生程序,隨后在制造期間用來創(chuàng)建布局模板,該設(shè)計(jì)屏蔽定義了應(yīng)用于半導(dǎo)體片的電路布置。通常,利用例如VHDL、verilog、EDIF等等硬件定義語言(HDL)以預(yù)先確定的格式提供程序。本發(fā)明將在下文的電路布置中,以將全部功能集成在一起的電路和使用該電路的數(shù)據(jù)處理系統(tǒng)中實(shí)現(xiàn),,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,按照本發(fā)明的電路布置還能夠以各種形式的程序產(chǎn)品的形式分發(fā),本發(fā)明的應(yīng)用是相同的,與實(shí)際上執(zhí)行分發(fā)的特定類型的信號媒體無關(guān)。信號承載媒體的例子包括但是不僅限于可記錄類型的媒體,尤其例如易失和非易失性存儲器裝置、軟盤及其它活動(dòng)磁盤、硬盤驅(qū)動(dòng)器、磁帶、光盤(例如,CDROM、DVD等等),和傳送類型媒體,例如數(shù)字和模擬通信鏈接。在按照本發(fā)明的一些實(shí)施例中,其它的集成電路技術(shù),例如FPGA等等也可以用來實(shí)現(xiàn)一些在此討論的基于硬件的功能。
如上所述,可以通過嵌入在由CPU14執(zhí)行的程序中的功率控制指令控制功率控制電路62。這些功率控制指令可以由程序設(shè)計(jì)器產(chǎn)生,或可以通過編譯器、連接程序、佳化器等等以自動(dòng)方式被增加到程序中。此外,這樣自動(dòng)附加程序控制指令通常發(fā)生在運(yùn)行時(shí)之前,在一些實(shí)施例中,可以使用程序控制指令的運(yùn)行時(shí)附加,例如關(guān)于準(zhǔn)時(shí)編譯/優(yōu)化或運(yùn)行時(shí)解釋/指令譯碼。
與特定方式的實(shí)現(xiàn)無關(guān)(即,在運(yùn)行時(shí)之前或在運(yùn)行時(shí)期間、在編譯器或佳化器中等等),程序控制指令的自動(dòng)附加通常利用一個(gè)或多個(gè)將在下面進(jìn)行詳細(xì)說明的例程而實(shí)現(xiàn)。這些例程,無論是否是在操作系統(tǒng)或在特定的應(yīng)用程序、組件、程序、對象、模塊或指令序列乃至它們的子集中實(shí)現(xiàn),在此都成為″計(jì)算機(jī)程序代碼″或簡單地為″程序代碼″。程序代碼通常包括一個(gè)或多個(gè)在不同時(shí)間駐留在計(jì)算機(jī)或數(shù)據(jù)處理系統(tǒng)中的各種存儲器和存儲設(shè)備中的指令,當(dāng)通過計(jì)算機(jī)中的一個(gè)或多個(gè)處理器讀取和執(zhí)行的時(shí)候,使計(jì)算機(jī)執(zhí)行體現(xiàn)本發(fā)明不同特征的執(zhí)行步驟或單元所必需的步驟。此外,與本發(fā)明基于軟件的方面和計(jì)算機(jī)和數(shù)據(jù)處理系統(tǒng)將在下文描述,對本領(lǐng)域的技術(shù)人員來講,應(yīng)當(dāng)理解本發(fā)明的不同實(shí)施例都能夠以各種程序產(chǎn)品的形式分發(fā),本發(fā)明的應(yīng)用是同樣地,與實(shí)際上執(zhí)行分發(fā)信號承載媒體的特定類型無關(guān)。
此外,可以基于本發(fā)明的特定實(shí)施例中實(shí)現(xiàn)的應(yīng)用確定以下描述的不同程序代碼。然而,應(yīng)當(dāng)理解的是,下述任意特定程序術(shù)語僅僅是為了方便而使用,本發(fā)明不僅限于由這些術(shù)語標(biāo)識和/或表示的特定的應(yīng)用。此外,通常給出的循環(huán)編號的方式,其中計(jì)算機(jī)程序可以組織成例程、程序、方法、模塊、對象等等,而且不同的方式中的程序功能可以被分配在不同的軟件層中,也就是說駐留在一般的計(jì)算機(jī)(例如操作系統(tǒng)、庫、API、應(yīng)用程序、小應(yīng)用程序等等)中,應(yīng)當(dāng)理解,本發(fā)明不僅限于在此描述的程序的特定的組織和分配。
本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)認(rèn)識到本發(fā)明不僅限于圖1和2所示的典型的環(huán)境。實(shí)際上,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,在不脫離本發(fā)明的范圍的情況下,可以選擇使用其它的硬件和/或軟件環(huán)境。
如上所述,按照本發(fā)明的動(dòng)態(tài)功率損耗控制可以包括兩個(gè)概念中的一個(gè)或兩個(gè),這兩個(gè)概念提供了優(yōu)于傳統(tǒng)的功率損耗控制技術(shù)的實(shí)質(zhì)性優(yōu)點(diǎn)。第一個(gè)概念專門應(yīng)用于,實(shí)現(xiàn)對一個(gè)由處理器或處理核使用的寄存器堆進(jìn)行功率損耗控制。第二概念更廣泛地應(yīng)用在集成電路中用軟件控制方式控制功率損耗。為了便于更透徹地理解這些概念中的每一個(gè),下面連同圖3-6對結(jié)合兩個(gè)概念對典型的實(shí)施例進(jìn)行說明。然而應(yīng)當(dāng)理解,以下討論的兩個(gè)概念可以分別地和獨(dú)立地在其它的實(shí)施例中使用,本發(fā)明不僅限于以下討論的特定的執(zhí)行過程。
特別地,在圖3-6對在TriMdeia兼容的媒體處理器中使用的寄存器堆中對功率損耗的基于軟件的控制進(jìn)行說明。已經(jīng)發(fā)現(xiàn),例如,在許多可編程結(jié)構(gòu)(例如VLIW、EPIC、和超標(biāo)量)中,寄存器堆占整個(gè)功率消耗的很大部分。在一些應(yīng)用中,已經(jīng)發(fā)現(xiàn)寄存器堆可以達(dá)到處理核功率消耗的20%。特別是在媒體處理器中,寄存器堆通常比較大,并通常包括許多端口和寄存器。一些TriMdeia兼容處理器,例如利用具有128個(gè)寄存器和20個(gè)單獨(dú)端口的寄存器堆。寄存器堆設(shè)計(jì)主要是配線,所以相對功率損耗隨技術(shù)規(guī)模而增加。因而,減少寄存器堆中的功率損耗通常導(dǎo)致大量節(jié)省媒體處理器中的能量耗費(fèi)。
已經(jīng)發(fā)現(xiàn)在任何可編程結(jié)構(gòu)中的寄存器堆的大小通常由應(yīng)用程序確定,該應(yīng)用程序需要很高的活性變量,其通常存儲在寄存器堆中。然而,當(dāng)執(zhí)行只需要較少活性變量的其它應(yīng)用程序時(shí),寄存器堆中的許多寄存器仍然未被使用。此外,在特定的應(yīng)用程序中,在應(yīng)用程序中寄存器堆的應(yīng)用可以在不同的點(diǎn)完全不同。舉例來說,已經(jīng)發(fā)現(xiàn)在AC3解碼期間,TriMdeia兼容的媒體處理器具有比較高峰值的寄存器利用率,而在一般的應(yīng)用程序中的其它操作的性能期間,平均寄存器利用率通常相對較低。從而,人們相信,依靠運(yùn)行應(yīng)用程序的當(dāng)前需求,也許非常希望禁止未使用的寄存器堆部分,以便減少它的整體功率損耗。
如圖3具體所示,有選擇地禁止寄存器堆的一部分的一個(gè)方式是通過沿著地址空間將寄存器堆(這里圖2的寄存器堆60)分割成為幾個(gè)存儲體70,然后有條件地啟動(dòng)或禁止這些存儲體,例如通過功率控制電路62(圖2)響應(yīng)提供給存儲體的啟動(dòng)信號66。
每個(gè)存儲體70可以包括多個(gè)寄存器,因此由寄存器堆代表的寄存器空間被分割成為寄存器存儲體。例如,對于包括128個(gè)寄存器的寄存器堆,也許希望將寄存器空間分割成為每16個(gè)寄存器的八個(gè)存儲體。也可以使用其它的分割寄存器方式,舉例來說,也許希望利用最高有效地址輸入作為存儲體選擇信號,并且利用最低有效地址輸入從被選擇的存儲體中選擇一個(gè)特定的寄存器。例如,寄存器堆被分割成為16寄存器的八個(gè)存儲體,可以使用七個(gè)地址輸入,用三個(gè)高位輸入作為存儲體選擇信號,四個(gè)低位輸入作為寄存器選擇信號。
作為本領(lǐng)域的公知常識,寄存器堆60包括輸出選擇邏輯72,和不同的輸入,例如時(shí)鐘輸入74、地址輸入76和數(shù)據(jù)輸入78。此外,寄存器堆60通過數(shù)據(jù)輸出80輸出數(shù)據(jù)。應(yīng)當(dāng)理解,根據(jù)由寄存器堆支持的輸入/輸出端的數(shù)量,以及寄存器的數(shù)量和每個(gè)寄存器的寬度,可以將各種不同的地址輸入、數(shù)據(jù)輸入和數(shù)據(jù)輸出信號提供給寄存器堆。此外,還可以通過多個(gè)功能單元使用輸入選擇邏輯(未示出)來支持多個(gè)寄存器的并行訪問。
為了有選擇地禁止寄存器的存儲體,通過在每個(gè)存儲體中處理的啟動(dòng)電路82將時(shí)鐘、地址輸入、輸入數(shù)據(jù)提供給每個(gè)存儲體。此外,將來自功率控制電路的啟動(dòng)信號66附加地供應(yīng)給每個(gè)啟動(dòng)電路82,以便有選擇地為相關(guān)的寄存器存儲體70斷開或保護(hù)時(shí)鐘、地址輸入和數(shù)據(jù)輸入。
按照本發(fā)明,可以以許多方式實(shí)現(xiàn)每個(gè)存儲體中的啟動(dòng)電路82。例如,一個(gè)實(shí)現(xiàn)啟動(dòng)電路的方式是通過使用一系列選通晶體管,用一個(gè)這樣的連接每個(gè)時(shí)鐘、地址輸入和數(shù)據(jù)輸入的晶體管到寄存器存儲體,并且由寄存器存儲體各個(gè)的啟動(dòng)信號66選通。
通過斷開到每個(gè)存儲體的地址和數(shù)據(jù)輸入,而不僅僅是時(shí)鐘輸入,通常獲得了由于與CMOS鎖存器或觸發(fā)器(合成的)寄存器執(zhí)行過程有關(guān)的相對高的電線電容相對更大的節(jié)能效果,因?yàn)檫x通通常在寄存器堆存儲體中使用相對長的電線上抑制切換活動(dòng)。然而應(yīng)當(dāng)理解,在一些實(shí)現(xiàn)中,附加的選通邏輯可能引入附加的延遲,從而在較小的范圍抑制性能。此外,應(yīng)當(dāng)理解,本發(fā)明可以利用不同的寄存器實(shí)現(xiàn)方式與被實(shí)現(xiàn)的寄存器堆結(jié)合使用。
為了實(shí)現(xiàn)對寄存器堆60的基于軟件的功率損耗控制,在CPU14的指令集結(jié)構(gòu)中支持功率控制指令。圖4中的90說明了一種用于功率控制指令的典型格式。如圖所示,功率控制指令90可以包括將指令確定為pwr_control指令的操作碼92,和指定功率控制信息的操作碼94,用于對寄存器堆60中的各種寄存器存儲體設(shè)置功率模式。操作碼94可以被實(shí)現(xiàn)為,例如一個(gè)包括一個(gè)位屏蔽的立即操作數(shù),位屏蔽包括分配給寄存器堆中的每個(gè)寄存器的存儲體的啟動(dòng)/中止位96。從而,例如對于寄存器堆中的八個(gè)存儲體,指令90中可以支持八位立即操作數(shù)。
在更一般水平,可以用下述公式表示操作數(shù)94的大小Σi=1jlog2(Modes(i))]]>其中i是將被控制的硬件資源(這里為寄存器存儲體)的數(shù)量,Modes(i)是硬件資源i的功率模式的數(shù)量。
在其它方案中可以使用其它的指令格式。例如,如圖4所示,可能希望支持任意標(biāo)識一個(gè)寄存器的源寄存器操作數(shù)97,在該寄存器中,功率模式狀態(tài)信息已經(jīng)被存儲。從而,并不是直接將功率模式狀態(tài)信息存儲在功率控制指令中并且執(zhí)行立即操作,而是可以用寄存器操作將功率模式狀態(tài)信息存儲在單獨(dú)的寄存器中,該寄存器操作用于檢索期望的功率模式狀態(tài)信息。在其它方案中可以支持其它的編址方式。
如圖4所示,可能還希望支持保護(hù)操作數(shù)98,該操作數(shù)可以用來指定,在提供由應(yīng)用的功率控制指令指定的該功率模式狀態(tài)信息之前必須滿足的情況。按照本發(fā)明,實(shí)際上可以使用任意已知條件。
回到圖2,在對實(shí)施例的說明中,通過CPU14處理功率控制指令,以便用功率控制指令中指定的功率控制信息更新功率模式寄存器64。這樣,可能希望功率模式寄存器64具有與功率控制指令的立即操作數(shù)相同的映射,因此可以簡單地將功率控制指令作為直接寫入功率模式寄存器那樣處理。
此外,如上所述,在有些情況下也許希望利用之前存在的寄存器,例如PCSW寄存器來存儲功率模式狀態(tài)信息。在這樣的情況,功率控制指令不需要單獨(dú)的操作碼。反之,用于向適當(dāng)?shù)募拇嫫鲗懭氲南惹按嬖诘牟僮鞔a可以與更新那些與存儲功率模式狀態(tài)信息一同使用的位的操作數(shù)一起使用。
按照本發(fā)明,功率控制指令可以以許多方式與可執(zhí)行程序代碼結(jié)合。例如,可以在研發(fā)期間由程序設(shè)計(jì)器將功率控制指令增加到源代碼。在另一個(gè)方案中,編譯器、優(yōu)化器、連接程序等等,可以執(zhí)行正在研發(fā)中的程序的模擬或靜態(tài)分析,以便確定適當(dāng)?shù)奈恢?,用于基于預(yù)測的資源利用率插入功率控制指令。
此外,配置、靜態(tài)分析或程序的模擬可以用來確定在某些程序段間應(yīng)該使用哪個(gè)硬件資源,以及哪個(gè)資源應(yīng)該禁止。例如,如果確定某個(gè)程序段只需要10個(gè)寄存器,但是使用哪10個(gè)寄存器對程序語義不重要,也許編譯器希望使用僅來自寄存器存儲體的寄存器,然后將適當(dāng)?shù)墓β士刂浦噶畈迦氲匠绦虼a里,以便禁止未使用的寄存器存儲體。此外,如果那10個(gè)寄存器最初分散在幾個(gè)寄存器存儲體中,也許所希望將寄存器重新映射,以便將寄存器集中在有限數(shù)量的寄存器存儲體中。
例如,圖5示出了可以在計(jì)算機(jī)程序的編譯或優(yōu)化期間執(zhí)行的功率損耗優(yōu)化例程100,以便為最佳的功率損耗佳化一個(gè)計(jì)算機(jī)程序段。針對每個(gè)指定的程序段,例程100首先分析該段,以便通過塊102中的程序代碼段確定硬件資源用途。接下來,選擇性地執(zhí)行塊104,以便試圖重新映射資源,從而將資源使用集中到硬件資源的有限集(例如,將寄存器限制到有限數(shù)量的寄存器存儲體)。接下來,塊106產(chǎn)生適當(dāng)?shù)墓β士刂浦噶?,并且將該適當(dāng)?shù)墓β士刂浦噶畈迦氲匠绦虼a里,以便禁止任意未用資源。然后完成對該段的處理。
可以在運(yùn)行時(shí)期間例如連同解釋或準(zhǔn)時(shí)編譯使用例程100,或與其在功能上相似的例程。此外,應(yīng)當(dāng)理解例程100可以與指令的產(chǎn)生相結(jié)合使用,指令在運(yùn)行時(shí)期間被調(diào)度,以便并行和/或無序操作,例如,在超級標(biāo)量處理器結(jié)構(gòu)中。在這樣的執(zhí)行過程中,編譯器和運(yùn)行時(shí)硬件希望限制功率控制指令的重新排序,以便最小化對其它推測指令的影響,例如,通過將邊界效應(yīng)分配給限制它的運(yùn)行時(shí)推測的功率控制指令。在其它的實(shí)施例中,如果CPU/處理器沒有完全地被計(jì)算負(fù)載,操作系統(tǒng)可以調(diào)度/發(fā)出功率控制指令。
在另一個(gè)方案中,例程100可以與明確地并行于例如VLIW或EPIC代碼的指令集結(jié)構(gòu)結(jié)合使用,其中在編譯期間檢測出現(xiàn)的并行指令。在這樣的實(shí)現(xiàn)中,認(rèn)為功率控制指令的插入可以包括將功率控制操作插入到包括多重操作的大VLIW或EPIC指令里。
程序代碼希望包括程序控制指令,在編譯期間或在運(yùn)行時(shí)期間已經(jīng)將功率控制指令嵌入到所述的程序代碼,所述的程序控制指令散布在程序代碼中,此時(shí)希望在硬件資源利用率方面發(fā)生變化。此外,通常希望一個(gè)功率控制指令就能夠控制多個(gè)硬件資源的啟動(dòng)/禁止?fàn)顟B(tài)。因此,最小附加處理的開銷通常與按照本發(fā)明的功率控制指令有關(guān),從而將由于將附加指令插入到程序代碼里而產(chǎn)生的任意相反的性能效果最小化。
例如,圖6示意地所示以如所述的方式編譯的典型程序段的執(zhí)行,例如,就如與TriMdeia兼容的媒體處理器結(jié)合使用那樣。在這個(gè)例子中,假定有五個(gè)發(fā)出時(shí)隙,被指定為110、112、114、116和118,在那個(gè)周期的相應(yīng)的發(fā)出時(shí)隙的每個(gè)周期(周期0-4)期間,在每個(gè)發(fā)出時(shí)隙中執(zhí)行指令。還假定寄存器堆包括分割成為八個(gè)存儲體的128寄存器(表示為r0-r127),以及當(dāng)在與存儲體有關(guān)的操作數(shù)位屏蔽位置遇到二進(jìn)制″1″的時(shí)候,功率控制指令在啟動(dòng)選擇的存儲體的位置使用立即操作數(shù)。在這個(gè)例子中,pwr_control指令的延遲是一個(gè)周期;然而,應(yīng)當(dāng)理解,在一些執(zhí)行過程中,pwr_control指令可以具有大于一個(gè)周期的延遲。
在周期0期間假定,通過CPU(在發(fā)出時(shí)隙112中)處理的一個(gè)指令是一個(gè)具有0x1b(二進(jìn)制00011011)的立即操作數(shù)的功率控制指令,其僅啟動(dòng)了寄存器堆(例如寄存器r0-r31和r48-r79)的存儲體1、2、4和5。作為這些指令的執(zhí)行結(jié)果,更新功率模式寄存器64(圖2),以便存儲0x1b(二進(jìn)制00011011)值。結(jié)果,在后來的周期期間,禁止寄存器存儲體3、6、7和8。然而注意,在周期0中的功率控制指令的執(zhí)行期間,對于通過其它的指令訪問來說,全部寄存器存儲體都是可用的(假定全部存儲體在以前已經(jīng)啟動(dòng))。
在周期1和2期間,沒有遇到其它功率控制指令。結(jié)果,寄存器存儲體3、6、7和8仍然是禁止的,限制全部指令訪問來自存儲體1、2、4和5(r0-r31和r48-r79)的寄存器。
在周期3期間,存儲在功率模式寄存器64中的功率模式狀態(tài)信息繼續(xù)將寄存器存儲體3、6、7和8保持在禁止?fàn)顟B(tài)。然而,在這個(gè)周期期間(向發(fā)出時(shí)隙118發(fā)出)執(zhí)行的一個(gè)指令是功率控制指令,該功率控制指令具有一個(gè)0xff(二進(jìn)制11111111)的立即操作數(shù),它可以啟動(dòng)在周期4執(zhí)行的指令的全部八個(gè)寄存器堆的存儲體。
上述的動(dòng)態(tài)功率損耗控制技術(shù)與傳統(tǒng)的設(shè)計(jì)相比有許多優(yōu)點(diǎn)。根據(jù)控制具有最小處理開銷的多種硬件資源,同傳統(tǒng)的設(shè)計(jì)相比較,提供了顯著的靈活性,傳統(tǒng)的設(shè)計(jì)需要指令被路由到特定的功能單元,或需要啟動(dòng)/禁止將被附加到每個(gè)指令的命令,并且被不斷地解碼。
此外,上述的技術(shù)提供了靈活性,以解決各種功率損耗相關(guān)的問題,從而以多種有效的方式適當(dāng)?shù)仄胶饬颂匦院凸β蕮p耗。例如,利用上述的技術(shù),可以例如通過增加寄存器或功能單元來提升處理器性能,而不用增加對沒有使用的額外的資源的代碼的功率損耗。此外,對于性能不是很重要的應(yīng)用,功率控制指令可以犧牲性能來降低功率消耗,例如為操作調(diào)度有限的資源,同時(shí)禁止其它的資源。
就基于軟件的功率損耗控制而言,應(yīng)當(dāng)理解,按照本發(fā)明的其它的實(shí)施例中也可以使用其它的指令格式、其它的編譯、優(yōu)化和/或進(jìn)度例程、和其它的處理器結(jié)構(gòu)。此外,如上所述以外的資源禁止電路,以及在此說明的存儲體寄存器堆設(shè)計(jì)可以與按照本發(fā)明的基于軟件的功率損耗控制結(jié)合使用。
此外,就在此處說明的存儲體寄存器堆設(shè)計(jì)而言,應(yīng)當(dāng)理解,按照本發(fā)明可以使用在此處說明的基于軟件的控制機(jī)制的之外的其它控制機(jī)制。例如,基于硬件的控制機(jī)制可以用來動(dòng)態(tài)地啟動(dòng)某些基于讀取/寫入地址的動(dòng)態(tài)解碼的硬件資源。舉例來說,圖7描述了另一個(gè),與圖3的寄存器堆60相似的寄存器堆設(shè)計(jì)120,包括多個(gè)寄存器存儲體122,其每一個(gè)包括用于有選擇地?cái)嚅_提供給寄存器堆的時(shí)鐘輸入126、輸入數(shù)據(jù)輸入128和輸入地址輸入130的選通邏輯124。然而,寄存器堆120沒有來自基于控制電路的軟件的啟動(dòng)信號,寄存器堆120包括基于硬件的啟動(dòng)邏輯電路132,包括用于動(dòng)態(tài)產(chǎn)生各個(gè)存儲體啟動(dòng)信號136的地址譯碼器134,該啟動(dòng)信號136用于有選擇地禁止不同的未使用的寄存器存儲體。
例如,在任意周期期間,地址譯碼器134可以有選擇地禁止寄存器存儲體,在這任意周期中,所述存儲體中的寄存器不正在被訪問。特別是支持多輸入端口的寄存器堆,在給定周期期間很容易確定正在訪問哪個(gè)寄存器,從而能夠有選擇地減少功率損耗,而在由特定的處理器設(shè)計(jì)使用的編譯器和/或指令集結(jié)構(gòu)中沒有任何改變。
對本領(lǐng)域的普通技術(shù)人員來講,在屬于上述公開范圍內(nèi)的各種補(bǔ)充修改是顯而易見的。因此,本發(fā)明限于以下附加權(quán)利要求中。
權(quán)利要求
1.一種電路裝置,包括(a)多個(gè)硬件資源,其中每個(gè)硬件資源具有一個(gè)在至少第一和第二功率消耗狀態(tài)之間可設(shè)置的功率模式;(b)一個(gè)連接到多個(gè)硬件資源的處理器,處理器(14)被設(shè)置為處理程序代碼,該程序代碼包括至少一個(gè)功率控制指令(90),該指令(90)包括具有在其中被處理的功率控制信息的操作數(shù),其中處理器(14)被設(shè)置為通過基于在功率控制指令中被處理的功率控制信息有選擇地設(shè)置的多個(gè)硬件資源當(dāng)中的至少兩個(gè)硬件資源(50-60)的功率模式來處理功率控制指令,并且其中處理器更進(jìn)一步被設(shè)置為,當(dāng)處理至少一個(gè)在程序代碼中的后繼指令時(shí),將至少兩個(gè)硬件資源的功率模式保持為功率控制指令中指定的模式。
2.如權(quán)利要求1的電路裝置,其中所述的功率控制指令更進(jìn)一步包括唯一標(biāo)識功率控制指令的操作碼(92)。
3.如權(quán)利要求1的電路裝置,更進(jìn)一步包括(a)一個(gè)支持寄存器,該支持寄存器存儲多個(gè)硬件資源的功率模式狀態(tài)信息;(b)連接到支持寄存器的啟動(dòng)邏輯,并且被設(shè)置為響應(yīng)存儲在支持寄存器中的功率模式狀態(tài)信息,對多個(gè)硬件資源的功率模式進(jìn)行控制,其中處理器(14)被設(shè)置為通過存儲來自支持寄存器中的功率控制指令的功率控制信息有選擇地設(shè)置至少兩個(gè)硬件資源(50-60)的能量模式。
4.如權(quán)利要求3的電路裝置,其中所述的支持寄存器包括功率模式寄存器(64)。
5.如權(quán)利要求3的電路裝置,其中所述的支持寄存器包括獨(dú)立于功率損耗控制的附加狀態(tài)信息。
6.如權(quán)利要求3的電路裝置,其中多個(gè)硬件資源的子集包括定義寄存器堆(60)的寄存器(70)的多個(gè)存儲體,其中啟動(dòng)邏輯(132)包括多個(gè)啟動(dòng)電路,其每一個(gè)與來自寄存器(70)的多個(gè)存儲體的寄存器(122)的存儲體有關(guān),并且每一個(gè)被設(shè)置為響應(yīng)啟動(dòng)信號(136)有選擇地禁止它相關(guān)的寄存器的存儲體,其中所述的啟動(dòng)邏輯更進(jìn)一步被設(shè)置為根據(jù)存儲在支持寄存器中的功率模式狀態(tài)信息,為每個(gè)寄存器的存儲體產(chǎn)生啟動(dòng)信號。
7.如權(quán)利要求6的電路裝置,其中寄存器(122)的每個(gè)存儲體包括至少一個(gè)時(shí)鐘輸入(126)、訪問輸入(130)和數(shù)據(jù)輸入(128),并且其中寄存器的每個(gè)存儲體的啟動(dòng)電路(136)被設(shè)置為響應(yīng)提供的啟動(dòng)信號(66),有選擇地?cái)嚅_它相關(guān)的寄存器的存儲體的時(shí)鐘(74)、地址和數(shù)據(jù)輸入。
8.如權(quán)利要求1的電路裝置,其中每個(gè)硬件資源都是從由寄存器堆(80)、寄存器存儲體(70)、寄存器、高速緩存(52)、總線接口單元(50)、總線(16)、功能單元(58)、功能塊、指令譯碼器(56)組成的組中選擇出來的。
9.如權(quán)利要求1的電路裝置,其中處理器被設(shè)置為明確地處理并行指令,并且其中功率控制指令包括在在明確并行指令中的多個(gè)操作中的一個(gè)操作。
10.如權(quán)利要求9的電路裝置,其中所述的處理器是從由VLIW處理器和EPIC處理器組成的組中選擇出來的。
11.如權(quán)利要求1的電路裝置,其中所述的處理器包括超標(biāo)量處理器。
12.如權(quán)利要求1的電路裝置,其中所述的處理器被設(shè)置為將邊界效應(yīng)分配給功率控制指令,以便限制它的運(yùn)行時(shí)推測。
13.如權(quán)利要求1的電路裝置,其中操作數(shù)中的功率控制信息可以識別存儲了至少兩個(gè)硬件資源的功率模式狀態(tài)信息的寄存器,并且其中所述的處理器被設(shè)置為通過從由操作數(shù)中的功率控制信息標(biāo)識的寄存器檢索功率模式狀態(tài)信息,有選擇地設(shè)置至少兩個(gè)硬件資源的功率模式。
14.如權(quán)利要求1的電路裝置,其中在處理器中處理多個(gè)硬件資源。
15.如權(quán)利要求1的電路裝置,其中至少一個(gè)硬件資源在處理器外但在與該處理器位于相同的集成電路中進(jìn)行處理。
16.如權(quán)利要求1的電路裝置,其中至少一個(gè)硬件資源在來自處理器的單獨(dú)的集成電路上處理。
17.一種集成電路,包括權(quán)利要求1的電路裝置。
18.一種程序產(chǎn)品,包括定義了權(quán)利要求1的電路裝置的硬件定義程序,和承載硬件定義程序的信號承載媒體,其中所述的信號承載媒體包括傳輸介質(zhì)和可記錄的媒體的至少一個(gè)。
19.一種在包括多個(gè)硬件資源類型的處理器上執(zhí)行程序代碼的方法,每個(gè)硬件資源具有一個(gè)可在至少第一和第二功率消耗狀態(tài)之間設(shè)置的功率模式,所述的方法包括(a)通過基于在功率控制指令的操作數(shù)中被處理的功率控制信息有選擇地設(shè)置的多個(gè)硬件資源當(dāng)中的至少兩個(gè)硬件資源的功率模式來處理來自程序代碼的功率控制指令(100,102)(b)當(dāng)至少兩個(gè)硬件資源的功率模式被設(shè)置為用功率控制指令的功率控制信息指定的模式時(shí),處理程序代碼中至少一個(gè)后來的指令(104,106)。
20.如權(quán)利要求19的方法,其中所述的功率控制指令更進(jìn)一步包括唯一標(biāo)識功率控制指令的操作碼(92)。
21.如權(quán)利要求19的方法,其中所述的處理器包括一個(gè)支持寄存器,該支持寄存器由處理器中的啟動(dòng)邏輯使用,用于設(shè)置多個(gè)硬件資源的功率模式,并且其中有選擇地設(shè)置的至少兩個(gè)硬件資源的功率模式包括在支持寄存器中存儲功率控制信息。
22.如權(quán)利要求21的方法,更進(jìn)一步包括,處理第一個(gè)后繼指令之后,通過在支持寄存器中存儲在其操作數(shù)中處理的第二功率控制信息,來處理來自程序代碼的第二個(gè)功率控制指令,從而改變第一硬件資源的功率模式,并且在處理第二功率控制指令之后處理第二后繼指令,從而當(dāng)將第一硬件資源的功率模式設(shè)置為第二功率控制指令中指定的功率模式時(shí)處理第二后繼指令。
23.如權(quán)利要求21的方法,其中多個(gè)硬件資源的子集包括定義了寄存器堆的寄存器的多個(gè)存儲體,其中啟動(dòng)邏輯包括多個(gè)啟動(dòng)電路,其每一個(gè)都與來自寄存器的多個(gè)存儲體的寄存器的存儲體有關(guān),并且每一個(gè)都被設(shè)置為響應(yīng)啟動(dòng)信號,有選擇地禁止與它相關(guān)的寄存器的存儲體,所述的方法更進(jìn)一步包括根據(jù)存儲在支持寄存器中的功率模式狀態(tài)信息,為每個(gè)寄存器的存儲體產(chǎn)生啟動(dòng)信號。
24.如權(quán)利要求23的方法,其中寄存器的每個(gè)存儲體包括至少一個(gè)時(shí)鐘輸入、地址輸入和數(shù)據(jù)輸入,并且其中寄存器的每個(gè)存儲體的啟動(dòng)電路被設(shè)置為響應(yīng)提供的啟動(dòng)信號,為它相關(guān)的寄存器的存儲體有選擇地?cái)嚅_時(shí)鐘、地址和數(shù)據(jù)輸入。
25.如權(quán)利要求19的方法,其中每個(gè)硬件資源都是從由寄存器堆、寄存器存儲體、寄存器、高速緩存、總線接口單元、總線、功能單元、功能塊、指令譯碼器組成的組中選出來的。
26.如權(quán)利要求19的方法,其中處理器被設(shè)置為處理明確地并行指令,其中所述的功率控制指令包括在明確并行指令中的多個(gè)操作當(dāng)中的一個(gè)操作。
27.一種生成由包括多個(gè)硬件資源類型的處理器執(zhí)行的程序代碼的方法,硬件資源的每一個(gè)具有可在至少第一和第二功率消耗狀態(tài)之間設(shè)置的功率模式,所述的方法包括(a)分析至少一部分程序,以便在執(zhí)行至少一段來自程序的程序代碼期間由處理器確定多個(gè)硬件資源的利用率;(b)基于確定的多個(gè)硬件資源的利用率,將功率控制指令插入到程序里,所述的功率控制指令包括在其操作數(shù)中處理的功率控制信息,該功率控制信息指定了多個(gè)硬件資源當(dāng)中至少兩個(gè)硬件資源的功率模式,其中所述的功率控制指令被設(shè)置為在程序代碼中的至少一個(gè)非功率控制指令之前執(zhí)行,并且其中所述的程序代碼被設(shè)置為使所述的處理器動(dòng)態(tài)地為至少兩個(gè)硬件資源設(shè)置在功率控制指令中指定的功率模式,因此當(dāng)至少兩個(gè)硬件資源的功率模式保持在功率控制指令指定的功率模式時(shí),處理非功率控制指令。
28.如權(quán)利要求27的方法,其中在至少一個(gè)程序的編譯和優(yōu)化期間執(zhí)行分析程序和插入功率控制指令。
29.如權(quán)利要求27的方法,其中由處理器執(zhí)行的程序與分析程序和插入功率控制指令并發(fā)執(zhí)行。
30.如權(quán)利要求27的方法,更進(jìn)一步包括在將功率控制指令插入到程序里之前,將在程序中資源的使用固定到有限的硬件資源的子集。
全文摘要
在由處理器(14)執(zhí)行的程序期間,一種利用功率控制指令(90)執(zhí)行程序代碼的方法以及生成程序代碼的方法的電路布置,所述的控制指令(90)能夠動(dòng)態(tài)地控制多個(gè)硬件資源(50-60)的功率損耗。此外,處理器(14)被設(shè)置為處理這樣功率控制指令(90),該控制指令(90)能夠?qū)⒍鄠€(gè)硬件資源(50-60)的功率模式保持為之前處理的功率控制指令(90)中所指定的模式,這樣,當(dāng)多個(gè)硬件資源(50-60)的功率模式被設(shè)置為之前處理的功率控制指令(90)指定的功率模式的時(shí)候,處理隨后處理的指令(90)。
文檔編號G06F9/30GK1720495SQ200380105109
公開日2006年1月11日 申請日期2003年12月3日 優(yōu)先權(quán)日2002年12月4日
發(fā)明者A·特雷奇科, M·加格 申請人:皇家飛利浦電子股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
榆社县| 临桂县| 诸暨市| 曲水县| 荔波县| 涞水县| 疏附县| 固镇县| 织金县| 岳阳市| 始兴县| 乃东县| 宁津县| 靖宇县| 乌鲁木齐市| 广汉市| 四平市| 内丘县| 滦平县| 托克逊县| 元朗区| 马山县| 罗甸县| 和龙市| 星座| 宁陕县| 新疆| 汉阴县| 贡山| 湟源县| 探索| 邯郸县| 来安县| 禹城市| 平安县| 化德县| 凭祥市| 建德市| 冷水江市| 四平市| 辽阳市|