專利名稱:用于高性能微處理器的具有熱操作碼的指令集、微處理器和由此的方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及微處理器和由此的方法,并且特別涉及用于高性能微處理器的具有熱操作碼的指令集和由此的方法。
背景技術(shù):
例如IBM Power4的當(dāng)代64位高性能微處理器具有以七層有色冶金互連的1.74億個(gè)晶體管。其是以0.18μm互補(bǔ)金屬氧化物半導(dǎo)體(CMOS)硅絕緣體(SOI)技術(shù)所制造,運(yùn)轉(zhuǎn)于大約1.3GHz,并且在最壞情況下消耗140W。
類似于其它微處理器,并非該管芯的所有部分都產(chǎn)生同樣熱量。更快或更頻繁使用的電路(例如浮點(diǎn)單元(FPU)等等)比芯片的剩余部分運(yùn)行于更高的溫度,由此形成該芯片上的“熱點(diǎn)”。由于芯片可靠性是溫度的指數(shù)函數(shù),因此保證芯片的任一部分均不超過(guò)額定最大結(jié)溫是至關(guān)重要的。由此,需要在芯片的多個(gè)位置精確測(cè)量溫度。
測(cè)量微處理器的溫度的一種方法是使用多個(gè)二極管作為溫度傳感器。這些二極管可以在芯片的外部或內(nèi)部。
外部溫度二極管用針對(duì)模擬電路優(yōu)化的半導(dǎo)體過(guò)程制造,并且趨于具有比內(nèi)部二極管更好的分辨率?,F(xiàn)有技術(shù)是+/-1攝氏度內(nèi)的測(cè)量分辨率。內(nèi)部二極管不得不與數(shù)字電路妥協(xié),并且具有更差的規(guī)格。
例如,Motorola PowerPC具有帶+/-4攝氏度分辨率的溫度傳感二極管(例如見(jiàn)1997年由Hector Sanchez等所著的“Thermal ManagementSystem for High Performance PowerPC Microprocessors”,IEEE1063-6390/97)。
眾所周知,跨二極管的正向電壓降Vd與溫度成線性比例,其由下面的方程給出Vd=(N*k*T/q)*ln(If/Is)其中,N=非線性因子,k=波爾茲曼常數(shù),T=絕對(duì)溫度,q=電子電荷,If=正向電流,Is=飽和電流。N和Is是與過(guò)程和設(shè)備相關(guān)的。于是,每個(gè)二極管典型地必須在使用前被校準(zhǔn)。
存在用于避開(kāi)所述校準(zhǔn)的幾種方法。一種方法是使一個(gè)二極管比其它的大得多(例如32x),然后看兩個(gè)Vd的比率,如由此處引入作為參考的美國(guó)專利No.5,829,879所建議的那樣。
另一種方法是改變正向電流If,并且還看兩個(gè)電壓的比率來(lái)確定非線性因子。兩種方法都有顯著缺點(diǎn)大得多的面積(案例1)或多個(gè)電流源(案例2)。
溫度傳感二極管給出大約2mV/攝氏度,其需要穩(wěn)定電流源(一個(gè)或多個(gè))、低噪聲放大器和可能高分辨率的模數(shù)轉(zhuǎn)換(ADC),用以正常運(yùn)行。將所有這些模擬部件與有噪聲的、高速數(shù)字電路集成以在多個(gè)不同位置精確測(cè)量溫度是有挑戰(zhàn)性的。
另一個(gè)實(shí)際的考慮是,很多時(shí)候,由于空間限制而不能將二極管傳感器放在正好所述“熱點(diǎn)”之上/之處。實(shí)際上,二極管傳感器可能被放置在遠(yuǎn)離感興趣的設(shè)備數(shù)百個(gè)晶體管(例如毫米級(jí))的位置。由此,代替于測(cè)量感興趣的設(shè)備的溫度,所述二極管傳感器可能錯(cuò)誤地傳感相鄰設(shè)備。因此,即使使用最好的傳感器,但仍然需要某種形式的空間外推來(lái)確定真實(shí)的熱點(diǎn)溫度。
另外,為最小化二極管傳感器等的噪聲,可以使用低通濾波器(LPF)。然而,所述LPF減小帶寬從而增加了傳感器的響應(yīng)時(shí)間,由此導(dǎo)致測(cè)量的延遲時(shí)間。由此,當(dāng)溫度上升時(shí),所述上升不必要被立即感知。
發(fā)明內(nèi)容
考慮到常規(guī)方法和結(jié)構(gòu)的前述和其它示例問(wèn)題、缺點(diǎn)和不足,本發(fā)明的示例特征是,提供一種用于在不必使用溫度二極管傳感器的情況下感知微處理器中的溫度的方法和結(jié)構(gòu)。
本發(fā)明的另一示例特征是,提供這樣一種方法和結(jié)構(gòu),其判斷將在微處理器中被處理的指令流,并且確定將由此被產(chǎn)生的熱量,以便此后采取某種動(dòng)作。
在本發(fā)明的第一方面中,一種管理電路中的熱量的方法包括使用附加到將被處理的指令的熱指令來(lái)確定關(guān)聯(lián)于該指令的熱負(fù)荷。
在本發(fā)明的第二方面中,一種管理處理器中的熱量的方法包括檢查附加到將由處理器處理的現(xiàn)有指令的熱指令;以及在多個(gè)位置實(shí)時(shí)測(cè)量處理器的熱量產(chǎn)生,以便檢測(cè)局部平均溫度和實(shí)際瞬時(shí)溫度。
在本發(fā)明的第三方面中,一種微處理器包括執(zhí)行指令的執(zhí)行單元,其中,所述指令包括附加到其的熱指令,通過(guò)該熱指令,關(guān)聯(lián)于所述指令的熱量負(fù)荷可測(cè)量。
在本發(fā)明的第四方面中,一種用于管理電路中的熱量的系統(tǒng)包括用于接收將被處理的指令的執(zhí)行單元,其中,所述指令包括被附加到其的熱指令;以及用于基于該熱指令確定關(guān)聯(lián)于所述指令的熱量負(fù)荷的單元。
在本發(fā)明的第五方面中,一種將在微處理器中被處理的指令包括用于被所述微處理器執(zhí)行的現(xiàn)有指令;以及附加到所述現(xiàn)有指令的熱指令,該熱指令指示由將被所述現(xiàn)有指令調(diào)用的至少一個(gè)執(zhí)行單元產(chǎn)生的熱量。
在本發(fā)明的第六方面中,一種將在微處理器中被處理的指令包括用于被所述微處理器執(zhí)行的現(xiàn)有指令;以及附加到所述現(xiàn)有單元的、指示用于索引查找表的地址的熱指令,其中所述查找表保存了指示由將被所述現(xiàn)有指令調(diào)用的至少一個(gè)執(zhí)行單元產(chǎn)生的熱量的條目。
在本發(fā)明的第七方面中,一種管理微處理器中的熱能的方法包括判斷將在微處理器中被處理的指令流;以及基于該指令流確定將通過(guò)處理該指令流產(chǎn)生的熱量。
在本發(fā)明的第八方面中,一種信號(hào)承載媒體有形地包括機(jī)器可讀指令的程序,其可由數(shù)字處理裝置執(zhí)行從而執(zhí)行管理電路中的熱量的方法。所述方法包括使用附加到將處理的指令的熱指令來(lái)確定關(guān)聯(lián)于該指令的熱量負(fù)荷。
根據(jù)本發(fā)明的獨(dú)特和不明顯方面,一種在不需要使用任何溫度傳感器的情況下監(jiān)視(跟蹤)溫度的方法(和結(jié)構(gòu))被提供。
即,在示例實(shí)施例中,新的熱操作碼被添加到現(xiàn)有指令集,以指示多少熱量正被每個(gè)指令產(chǎn)生。通過(guò)保持正被產(chǎn)生的熱量的動(dòng)態(tài)和(runningsum),可以映射芯片的任意區(qū)域或每個(gè)執(zhí)行單元的溫度。
另外,本發(fā)明方法用光刻技術(shù)(lithography)來(lái)調(diào)整,避免了伴隨傳感器放置的問(wèn)題和緩慢的傳感器響應(yīng)時(shí)間。由此,所述芯片及其區(qū)域被更好地保護(hù)使其免于熱損壞。
因此,本發(fā)明可以提前考慮當(dāng)前指令,其具有除了當(dāng)前指令之外的附加信息,并且可以斷定多少熱量將通過(guò)對(duì)該指令的處理產(chǎn)生。
不同于其它方法,本發(fā)明不需要實(shí)際的功率生成輸入(例如功率測(cè)量),而作為代替可以為將被執(zhí)行的每個(gè)指令嵌入估計(jì)的熱信息(熱量)。因此,在不測(cè)量實(shí)際電流或電阻等的情況下,本發(fā)明可以基于所述指令處理獲得將在每個(gè)位置消耗的熱量(焦耳)。
由此,本發(fā)明對(duì)于現(xiàn)在的微處理器以及將來(lái)當(dāng)可以想象用于執(zhí)行下述詳盡算法的大型、大量微處理器(比現(xiàn)有的那些微處理器大很多倍)時(shí)都具有極大效用,其中所述算法提供跨所述大量微處理器的即時(shí)溫度測(cè)量/預(yù)測(cè)映射。本發(fā)明提供了一種管理所述熱量并且避免所述熱量在芯片上的“熱點(diǎn)”增大的裝置。
從下面參考附圖對(duì)本發(fā)明的示例實(shí)施例的詳細(xì)描述中,前述和其它示例目的、方面和優(yōu)點(diǎn)將被更好地理解,在附圖中圖1示出了常規(guī)的高性能微處理器體系結(jié)構(gòu)100;圖2示出了具有熱執(zhí)行單元210的微處理器體系結(jié)構(gòu)200;圖3示出了具有預(yù)測(cè)熱執(zhí)行單元310的微處理器體系結(jié)構(gòu)300;圖4示出了熱指令400;圖5示出了所述熱執(zhí)行單元210的細(xì)節(jié);圖6示出了熱執(zhí)行單元的示例600;圖7示出了多速率熱執(zhí)行單元700;圖8示出了多速率熱執(zhí)行單元示例800;圖9示出了編碼熱執(zhí)行單元900;圖10示出了編碼熱執(zhí)行單元查找表1000;圖11示出了編碼熱執(zhí)行單元示例1100;圖12示出了用于將本發(fā)明引入其中的示例性硬件/信息處理系統(tǒng)1200;以及圖13示出了用于存儲(chǔ)根據(jù)本發(fā)明的方法的程序的步驟的信號(hào)承載媒體1300(例如存儲(chǔ)媒體)。
具體實(shí)施例方式
現(xiàn)在參考附圖并且特別是圖1-13,其示出了根據(jù)本發(fā)明的方法和結(jié)構(gòu)的示例性實(shí)施例。
示例性實(shí)施例圖1示出了常規(guī)的、示例性當(dāng)代高性能微處理器的體系結(jié)構(gòu)100,并且更準(zhǔn)確地說(shuō)是推測(cè)性超規(guī)模無(wú)序執(zhí)行設(shè)計(jì)的IBM Power微處理器核心的高度簡(jiǎn)化框圖。
指令被載入到64KB I高速緩存110中,其開(kāi)始于由取指令地址寄存器(IFAR)120指示的位置。每周期中多個(gè)(例如多達(dá)八個(gè))指令被讀取到指令隊(duì)列130中以及解碼器140中,其中,所述指令被分組并發(fā)送到合適的發(fā)布隊(duì)列150A(分支/條件寄存器發(fā)布隊(duì)列)、150B(定點(diǎn)/加載發(fā)布隊(duì)列)、150C(浮點(diǎn)發(fā)布隊(duì)列)以及相應(yīng)的執(zhí)行單元(EU)160A(分支執(zhí)行單元)、160B(條件寄存器執(zhí)行單元)、160C(定點(diǎn)執(zhí)行單元)、160D(加載/存儲(chǔ)執(zhí)行單元)和160E(浮點(diǎn)執(zhí)行單元)。
Power具有兩個(gè)定點(diǎn)/加載隊(duì)列和兩個(gè)浮點(diǎn)執(zhí)行單元,但為使讀者容易理解,二者中的僅一個(gè)被示出。所述隊(duì)列的每個(gè)輸出被發(fā)送到合適的執(zhí)行單元。如所示,所述定點(diǎn)執(zhí)行單元將兩個(gè)整數(shù)值加到一起(或相減),而所述浮點(diǎn)執(zhí)行單元處理非整數(shù)值。所述加載/存儲(chǔ)可以被分為兩種類型的加載和存儲(chǔ)。
由此,所述加載/存儲(chǔ)從存儲(chǔ)器以及更準(zhǔn)確地說(shuō)從D高速緩存(例如數(shù)據(jù)高速緩存等)或從即時(shí)存儲(chǔ)隊(duì)列獲得指令。如果所述存儲(chǔ)隊(duì)列更近,則從所述即時(shí)存儲(chǔ)隊(duì)列獲得指令相對(duì)于所述D高速緩存耗費(fèi)更少能量。
多級(jí)分支預(yù)測(cè)器170預(yù)測(cè)指令并且以“最佳猜測(cè)”的下一地址加載IFAR 120。Power4使用內(nèi)部二極管作為芯片上某處的溫度傳感器195來(lái)進(jìn)行熱量管理。
為加載代碼,來(lái)自所述取指令地址寄存器120的地址被使用。所述地址通過(guò)三種方法中的一種被生成。一種方法是通過(guò)所述分支預(yù)測(cè)器170,其中,該分支預(yù)測(cè)器170考慮從I高速緩存110到來(lái)的指令,以及,例如可以查看循環(huán)將被(或正被)執(zhí)行,以及下一指令集被需要。由此,所述分支預(yù)測(cè)器170發(fā)送下一指令地址。
另一種方法是通過(guò)分組完成表180,在該表中,指令可以被無(wú)序地執(zhí)行。所述分組完成表180對(duì)哪些指令已被執(zhí)行進(jìn)行跟蹤。
第三種方法是通過(guò)跳躍。所述三種的任一種可以修改將被加載的下一指令塊的地址。
由此,圖1示出了所述微處理器的高級(jí)示圖/視圖。應(yīng)當(dāng)指出,為簡(jiǎn)潔起見(jiàn),并非把所述微處理器的所有操作/功能示出在圖1中,而是,將其限制于指令如何在所述微處理器中被執(zhí)行和處理,以及新的分支如何被生成。
所述Power4體系結(jié)構(gòu)的更詳細(xì)操作可以在2002年1月的IBMJournal of Research & Development,Volume 46,Number 1中由Tendler等所著的“Power4 System Microarchitecture”中找到。
應(yīng)當(dāng)指出,本發(fā)明可以以圖1的示例性體系結(jié)構(gòu)被使用,但當(dāng)然不限于僅以圖1的所述體系結(jié)構(gòu)使用。
圖2示出了把熱執(zhí)行單元210添加到圖1的微體系結(jié)構(gòu)。所述指令隊(duì)列130信息和解碼、分組構(gòu)造140信息被發(fā)送到所述熱EU 210。所述熱EU 210解碼所述指令的熱操作碼部分,并且保存正由當(dāng)前指令流產(chǎn)生的熱量的動(dòng)態(tài)和。由此,所述熱執(zhí)行單元210知道什么指令正在被運(yùn)行以及按什么順序運(yùn)行。
所述熱EU 210與所述指令解碼器順序牽動(dòng)地(locked-step)運(yùn)行,并且再次利用分組構(gòu)造的輸出來(lái)處理無(wú)序指令執(zhí)行。所述熱EU 210的內(nèi)部運(yùn)轉(zhuǎn)將在隨后詳細(xì)討論。在所述配置中,熱指令被與正常指令一起存儲(chǔ)在I高速緩存110中,并且熱EU 210僅分析執(zhí)行的指令。
圖3示出了允許在指令被執(zhí)行之前提前確定什么單元將被加熱的配置。為此,必須在指令被執(zhí)行前考慮這些指令。由此,在圖3中,接收(除被提供給I高速緩存110之外的)取指令地址的T高速緩存(熱高速緩存)304和預(yù)測(cè)熱執(zhí)行單元310被提供。
因此,在圖3的配置中,指令被載入到I高速緩存110中,并且相應(yīng)的熱操作碼被載入到熱高速緩存304中。所述T高速緩存305具有附加邏輯,以致當(dāng)熱操作碼被加載時(shí),其被預(yù)測(cè)熱EU 310處理。這提供了一種機(jī)制,用于預(yù)測(cè)如果I高速緩存110中的當(dāng)前指令被執(zhí)行則將來(lái)的熱負(fù)荷將是什么。當(dāng)然,任何時(shí)候當(dāng)新地址被分支EU 160A、分組完成表180或分支預(yù)測(cè)器170載入到所述取指令地址寄存器120中之時(shí),所述信息將被更新。所述概念可以被擴(kuò)展到L2/L3高速緩存,以便預(yù)測(cè)將來(lái)遠(yuǎn)期的熱負(fù)荷。
如圖4中所示,熱指令405被附加到每個(gè)現(xiàn)有微處理器指令410。對(duì)于該特定示例,所述熱指令可以包括6位(為簡(jiǎn)化,忽略復(fù)制的定點(diǎn)和加載/存儲(chǔ)單元)。
每一位指示哪個(gè)執(zhí)行單元被特定指令調(diào)用。BR 420、CR 430、FX 440、LD 450、LQ 460和FQ 470分別指分支、條件寄存器、定點(diǎn)、來(lái)自/到D高速緩存的加載/存儲(chǔ)、來(lái)自/到存儲(chǔ)隊(duì)列的加載/存儲(chǔ)和浮點(diǎn)單元。由于每一類型訪問(wèn)導(dǎo)致不同水平的能量消耗,所以獨(dú)立的位被用于指示到所述存儲(chǔ)隊(duì)列或到所述D高速緩存的訪問(wèn)。應(yīng)當(dāng)指出,如果特定指令缺失(例如沒(méi)有從隊(duì)列加載的指令、沒(méi)有分支指令等),則將不存在代表該“缺失”指令的相應(yīng)位。
對(duì)于具有更多執(zhí)行單元的其它微體系結(jié)構(gòu),將需要附加位。對(duì)于多個(gè)執(zhí)行單元完成同一功能的情況(例如兩個(gè)浮點(diǎn)單元、兩個(gè)分支單元等),兩個(gè)位可以被使用(例如FX1、FX2;BR1、BR2等)。另外,可以優(yōu)化它們(所述位)在于,盡管針對(duì)當(dāng)前配置中的每個(gè)執(zhí)行單元一位被示出,但是很多時(shí)候,某些操作/指令/作業(yè)可能未出現(xiàn),并且由此,可以不(幾乎不)需要跟蹤某些單元以及從其產(chǎn)生的熱量。
由此,本發(fā)明的一個(gè)重要方面是通過(guò)用所述附加位擴(kuò)充現(xiàn)有指令集來(lái)修改現(xiàn)有指令集。
圖5示出了根據(jù)本發(fā)明的熱執(zhí)行單元的一個(gè)示例性實(shí)現(xiàn),并且更準(zhǔn)確地說(shuō),其示出了,在每個(gè)指令周期中,熱操作碼2110的N位乘以熱表2105的N個(gè)條目,并且然后被加到每個(gè)執(zhí)行單元(EU)的熱儀表(thermal meter)(n-1)2115的動(dòng)態(tài)和。典型地,每個(gè)執(zhí)行單元存在一個(gè)儀表。該操作可以類比于家用的電表。
所述熱表2105的每個(gè)條目指示當(dāng)相應(yīng)的執(zhí)行單元運(yùn)行時(shí)由其產(chǎn)生的熱量。操作碼中的“0”是指匹配的EU不運(yùn)行,并且由此將不會(huì)添加熱量。
操作碼中的相反值是“1”。在所述配置中,向量乘法器和加法器運(yùn)行于Ghz級(jí)的指令速率并且累加由各個(gè)EU產(chǎn)生的熱量。由于熱傳播慢得多,所述熱儀表2115可以以低得多的速度進(jìn)行采樣。
設(shè)想所述熱儀表(n)2120以幾十到幾百微秒的速率被讀取和復(fù)位。所述熱采樣速率取決于許多變量,例如指令速率、設(shè)備大小/幾何形狀/材料、以及芯片熱傳導(dǎo)性。
所述熱表2105在上電時(shí)被加載以合適的值,并且可以在運(yùn)行期間基于芯片的狀態(tài)被更新。存在用于確定這些值的很多方法。
對(duì)于當(dāng)前微處理器設(shè)計(jì),一種方法是將所述設(shè)計(jì)分解到寄存器傳輸級(jí)(RTL),并且基于容量、凈長(zhǎng)、面積和開(kāi)關(guān)活動(dòng)來(lái)估計(jì)功率消耗。例如Power Theater(例如參見(jiàn)2002年1月的IBM Journal of Research &Development,Volume 46,Number 1中由Tendler等所著的“Power4System Microarchitecture”)或IBM Common Power Analysis Method(CPAM)(例如參見(jiàn)2000年的9th Topical Meeting on the ElectricalPerformance of Electronic Packaging的會(huì)議錄的303-306頁(yè)中由ScottNeely、Howard Chen、Steven Walker和Thomas Bucelot所著的“CPAMA Common Power Analysis Methodology for High-Performance VLSIDesign”)的商用仿真軟件可以被用作起始點(diǎn)。1996年9月的美國(guó)專利No.5,557,557的由Frantz等所著的“Processor Power Profiler”提出了一種用于確定當(dāng)執(zhí)行程序時(shí)處理器的能量消耗的方法。
1999年8月的美國(guó)專利No.5,941,991的由Kageshima等所著的“Method of Estimating Power Consumption of each instruction processedby a microprocessor”考慮了指令的高速緩存命中/缺失。2002年1月的美國(guó)專利No.6,338,025B1的由Bowen等所著的“Data Processing system andmethod to estimate power in mixed dynamic/static CMOS designs”處理動(dòng)態(tài)CMOS電路的功率仿真。
通過(guò)上述工具和方法,可以獲得對(duì)由每個(gè)EU消耗的功率的良好估計(jì)。
下一步將是使用物理電路設(shè)計(jì)的模型,并且將功率消耗數(shù)量翻譯為每指令的熱量上升,其可以被稱為“熱量子”。例如,如果浮點(diǎn)乘法指令導(dǎo)致浮點(diǎn)單元上升5微攝氏度,則該指令具有5個(gè)熱量子,并且5將被載入到熱表2105中。該翻譯過(guò)程優(yōu)選地應(yīng)當(dāng)考慮三維空間中每個(gè)設(shè)備的熱阻性和容性。
由此,對(duì)于當(dāng)前的微處理器設(shè)計(jì),存在許多仿真工具來(lái)允許知道對(duì)于每個(gè)指令,多少晶體管正被開(kāi)關(guān),以及所述晶體管正在驅(qū)動(dòng)什么設(shè)備,由此知道多少熱量正被產(chǎn)生以及所述熱量正被產(chǎn)生的位置。
應(yīng)當(dāng)指出,圖5的另一重要特征在于,所有單元(電路)都在指令速率(例如目前大約2-3Ghz)運(yùn)行。由此,通過(guò)對(duì)熱量的跟蹤,由于在Ghz速率的實(shí)時(shí)相乘而大量熱量通過(guò)該過(guò)程本身產(chǎn)生。
圖6示出了圖5中示出的配置的例子。假設(shè)所述分支、條件寄存器、定點(diǎn)、高速緩存加載/存儲(chǔ)、隊(duì)列加載/存儲(chǔ)和浮點(diǎn)單元分別產(chǎn)生2、1、5、3、1和10個(gè)熱量子。由此,所述條件寄存器(CR)不執(zhí)行大量工作(例如創(chuàng)造大量熱量),而所述浮點(diǎn)產(chǎn)生相對(duì)大量熱量。
對(duì)于僅使用定點(diǎn)(FX)和高速緩存加載/存儲(chǔ)(LD)的特定指令,用于該指令的熱操作碼將是“001100”。由此,5和3個(gè)量子將被加到所述熱儀表的動(dòng)態(tài)和,其中,“n”被定義為當(dāng)前狀態(tài)(例如熱儀表2120),以及“n-1”(例如熱儀表2115)為前一狀態(tài)。于是,對(duì)于所述FX和LD,現(xiàn)在有50和75個(gè)量子。所述熱儀表的剩余部分保持不變。
應(yīng)當(dāng)指出,在上面描述的示例性應(yīng)用中,正被產(chǎn)生的所述熱量數(shù)值(熱儀表)是在一定時(shí)間周期上累積的。然而,取決于設(shè)計(jì)者的需求和約束,所述熱儀表可以是不同的或是具有不同類型。
即,代替于對(duì)應(yīng)于正特定時(shí)間周期上被釋放的累積熱量的熱儀表,在另一示例性應(yīng)用中,以及通過(guò)利用使用該信息的實(shí)際模型,可以不需要所述熱儀表以累積模式運(yùn)轉(zhuǎn)。相反,僅使用熱表2105和熱指令2110的輸出(乘積)作為熱估計(jì)器的輸入就足夠了。熱估計(jì)器典型在其中具有內(nèi)置消耗單元,例如具有熱阻性的電阻等,并且所述單元可以基于整體系統(tǒng)冷卻體系結(jié)構(gòu)來(lái)選擇所消耗的熱量子多快將最終被消耗完。
因此,可以想象這樣的情形,其中,一個(gè)處理器可以使用液體冷卻,而另一處理器使用不同的熱消散機(jī)制(被動(dòng)的、散熱片等)。實(shí)際上,即使所述另一處理器使用液體冷卻,如果將冷卻設(shè)備連接到所述處理器的熱膠(thermal paste)由于機(jī)械誤差而稍微脫離(不同),則其消耗速率也將不同。由此,其它活動(dòng)可以作為整個(gè)實(shí)現(xiàn)的一部分有益于確定消耗參數(shù)。
因此,在下一情況下,所述熱儀表將被增加或保持固定,并且由此讀取和復(fù)位操作將被所述熱估計(jì)器執(zhí)行。實(shí)際上,所述熱儀表的優(yōu)點(diǎn)中的一個(gè)在于,即使所述數(shù)量正在每個(gè)指令周期被添加,但對(duì)于實(shí)際的熱模型實(shí)現(xiàn),不需要這么好的熱消耗信息級(jí)別。相反,可以僅找到例如對(duì)于每千次執(zhí)行的和。因此,可以使用累積信息,但不必要從時(shí)刻0開(kāi)始。
轉(zhuǎn)向圖7,其示出了,通過(guò)顛倒從圖6中所示的操作的順序,熱EU的功率消耗可以被大大減小。即,圖6的相乘操作和相加操作的順序被顛倒,如圖7中所示。
在圖7中,熱指令2110被以指令速率添加到熱計(jì)數(shù)器2130的前一狀態(tài),以及,與熱表2115的相乘以較低的熱采樣速率被完成。所述加法器現(xiàn)在簡(jiǎn)單得多,因?yàn)槠鋬H加上1。代替于如前的整體加法器,簡(jiǎn)單遞增計(jì)數(shù)器(例如1位計(jì)數(shù)器)可以被用于該操作。
對(duì)于相同的熱指令(“001100”)、熱表(n)2105以及等價(jià)的熱計(jì)數(shù)器2130(n-1)和2130a的值,熱儀表(n)2120給出同樣的讀數(shù)(例如與圖6中相同),如圖8中所示。
由此,在圖7中,相對(duì)較快的指令速率(在圖7示圖的頂部示出,并且為GHz級(jí))區(qū)別于相對(duì)較慢的速率(例如在圖7的底部的操作中示出的速率;還被稱為熱響應(yīng)時(shí)間)。
因此,代替于如圖6中乘以由每個(gè)指令產(chǎn)生的熱量,在圖7中,對(duì)于每個(gè)單元(例如運(yùn)行在指令速率)被執(zhí)行的指令的數(shù)量進(jìn)行計(jì)數(shù),因而僅所述熱表2115中的數(shù)值當(dāng)需要時(shí)以較低速率被相乘,并且熱儀表2120將與圖6中相同。再次,與圖6相同的結(jié)果被得到,但其使用簡(jiǎn)單得多的電路。該實(shí)施例對(duì)于當(dāng)需要所述熱信息之前需要求和大量指令周期的情形有益。由此,乘法操作不是每個(gè)周期必要的。相反,求和可以在每個(gè)周期繼續(xù),但乘法可以在需要熱信息時(shí)被選擇性地執(zhí)行。
所述熱指令2110應(yīng)當(dāng)盡量短,以最小化開(kāi)銷(xiāo)。保持所述熱指令很短的一種方法是僅監(jiān)視被大量使用的EU。
例如,所述分支單元不太可能在每個(gè)指令中被使用。由此,其可以不需要被監(jiān)視。對(duì)于某種微體系結(jié)構(gòu),所述定點(diǎn)單元被使用得最多。在所述情況下,僅該EU和對(duì)于該定點(diǎn)單元的熱負(fù)荷有貢獻(xiàn)的一些關(guān)鍵的相鄰EU應(yīng)當(dāng)被監(jiān)視。
如上面所指出的,可以是每執(zhí)行單元為一位。然而,這可能不是位的數(shù)量的高效使用,由于所述位正被加到每個(gè)指令(被遞增1以及之后被乘),并且由此,這可能變成非常大的增量。由此,找到一種編碼所述熱指令以使其在空間上更加高效的方法將是有益的。
由此,另一種方法是二進(jìn)制編碼所述熱指令。圖9示出了管理2N個(gè)區(qū)域的N位熱操作碼。所述熱操作碼提供了到包含2N個(gè)條目的查找表(LUT)2190的索引或地址。其加法和乘法操作與圖7中相同。熱儀表2120示出了區(qū)域0到(2N-1)中累積的熱量。
由此,在圖9中,代替于如之前描述的代表執(zhí)行單元的每個(gè)位,每個(gè)位將貫穿所述LUT 2190,該LUT 2190將把所述位翻譯為如結(jié)構(gòu)1000中所示的芯片(例如微處理器1010)上的對(duì)應(yīng)空間,如圖10中所示。
例如,4位熱指令提供了用于索引16條目LUT 2190的必要地址,并且對(duì)芯片(例如微處理器1010)的16個(gè)區(qū)域進(jìn)行跟蹤,如圖10的結(jié)構(gòu)1000中所示。LUT 2190的每個(gè)條目可以涉及單一區(qū)域或多個(gè)區(qū)域。在該例中,熱指令(地址)“0000”指向LUT 2190的條目0,其跟蹤區(qū)域R2、R3、R6和R7。熱指令(地址)“0001”將指向R5、R9和R13。另外,熱指令(地址)“1111”可以指向R10和R15的對(duì)角區(qū)域。通過(guò)所述示例性映射,多達(dá)16個(gè)區(qū)域可以用僅4個(gè)位覆蓋。
由此,代替于每執(zhí)行單元為一位,所述地址將載入用于索引LUT 2190的指令,由此來(lái)得到熱索引2195,正如前面圖8中那樣。
圖11示出了其中地址“0000”影響區(qū)域R2、R3、R6和R7的例子。圖11示出,所述熱計(jì)數(shù)器當(dāng)被添加到動(dòng)態(tài)計(jì)數(shù)時(shí)對(duì)于具有索引“1”的每個(gè)區(qū)域遞增1。所述熱儀表值是熱計(jì)數(shù)器和熱表的積。
對(duì)比于在其中不論四個(gè)位是否正產(chǎn)生熱量四個(gè)位都將對(duì)應(yīng)于所使用的四個(gè)執(zhí)行單元的實(shí)施例,使用與指向表(LUT)2190的地址生成器相同的4個(gè)位的圖10(以及如圖11所示)的配置(以及4個(gè)位的使用)現(xiàn)在從所述4個(gè)位提供16組信息,并且由此增強(qiáng)了加寬熱信息的能力。其開(kāi)銷(xiāo)是去往所述表的額外步驟。所述表提供了關(guān)于哪些區(qū)域正在參與以及哪些區(qū)域未參與的信息(例如由圖10的“0”和“1”所示)。
熱EU的輸出可以與新的或現(xiàn)有的動(dòng)態(tài)熱管理或點(diǎn)冷卻技術(shù)耦合,以便調(diào)節(jié)微處理器的最大結(jié)溫(例如,參見(jiàn)上面提到的由S.M.Sri-Jayantha等提出的被題目為“METHOD AND SYSTEM FOR REAL TIMEESTIMATION AND PREDICTION OF THE THERMAL STATE OF AMICROPROCESSOR UNIT”的美國(guó)專利申請(qǐng)No.10/892,211,以及IEEE2001,0-7695-1019-1/01中由David Brooks和Margaret Martonosi所著的“Dynamic Thermal Management for High-PerformanceMicroprocessor”)。
圖12示出了與本發(fā)明一起使用并且優(yōu)選具有至少一個(gè)處理器或中央處理單元(CPU)1211的信息處理/計(jì)算機(jī)系統(tǒng)的典型硬件配置。
所述CUP 1211經(jīng)由系統(tǒng)總線1212互連到隨機(jī)存取存儲(chǔ)器(RAM)1214、只讀存儲(chǔ)器(ROM)1216、輸入/輸出(I/O)適配器1218(用于將例如磁盤(pán)單元1221和磁帶驅(qū)動(dòng)器1240的外圍設(shè)備連接到總線1212)、用戶接口適配器1222(用于將鍵盤(pán)1224、鼠標(biāo)1226、揚(yáng)聲器1228、麥克風(fēng)1232和/或其它用戶接口設(shè)備連接到總線1212)、用于將信息處理系統(tǒng)連接到數(shù)據(jù)處理網(wǎng)絡(luò)、因特網(wǎng)、內(nèi)聯(lián)網(wǎng)、個(gè)人區(qū)域網(wǎng)(PAN)等的通信適配器1234,以及用于將總線1212連接到顯示設(shè)備1238和/或打印機(jī)的顯示適配器1236。
除上面描述的硬件/軟件環(huán)境之外,本發(fā)明的不同方面包括一種用于執(zhí)行上述方法的計(jì)算機(jī)實(shí)現(xiàn)方法。作為例子,所述方法可以在上面描述的特定環(huán)境中被實(shí)現(xiàn)。
所述方法可以例如通過(guò)操作計(jì)算機(jī)來(lái)執(zhí)行機(jī)器可讀指令序列來(lái)實(shí)現(xiàn),其中,所述計(jì)算機(jī)如由數(shù)字?jǐn)?shù)據(jù)處理裝置體現(xiàn)。這些指令可以駐留在各種類型的信號(hào)承載媒體中。
所述信號(hào)承載媒體可以包括例如被包含在CPU 1211中的RAM,例如由快速存取存儲(chǔ)器代表的那樣??蛇x地,所述指令可以被包含在可以由CPU 1211直接或間接訪問(wèn)的另一信號(hào)承載媒體中,例如磁性數(shù)據(jù)存儲(chǔ)裝置或CD-ROM盤(pán)(圖13)。
不論是否被包含在盤(pán)1300、計(jì)算機(jī)/CPU 1211或其它地方之中,所述指令可被存儲(chǔ)在多種機(jī)器可讀數(shù)據(jù)存儲(chǔ)媒體中,例如DASD存儲(chǔ)裝置(例如常規(guī)“硬盤(pán)驅(qū)動(dòng)器”或RAID陣列)、磁帶、電子只讀存儲(chǔ)器(例如ROM、EPROM或EEPROM)、光存儲(chǔ)設(shè)備(例如CD-ROM、WROM、DVD、數(shù)字光帶等)、紙質(zhì)“打孔”卡或其它合適的信號(hào)承載媒體,其包括例如數(shù)字和模擬的傳送媒體和通信鏈路以及無(wú)線。在本發(fā)明的示例實(shí)施例中,所述機(jī)器可讀指令可以包括通過(guò)例如“C”等語(yǔ)言編譯的軟件目標(biāo)代碼。
另外,在本發(fā)明的又另一方面中,在作為整體考慮本說(shuō)明后,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)容易地認(rèn)識(shí)到,本發(fā)明可以用作大量商業(yè)或服務(wù)活動(dòng)的基礎(chǔ)。所有的潛在服務(wù)相關(guān)活動(dòng)都旨在被本發(fā)明所覆蓋。
根據(jù)本發(fā)明的獨(dú)特和不明顯方面,一種在不需要使用任何溫度傳感器的情況下監(jiān)視(跟蹤)溫度的方法(和結(jié)構(gòu))被提供。相反,在示例性實(shí)施例中,新的熱操作碼可以被添加到現(xiàn)有指令集,以指示多少熱量正被每個(gè)指令產(chǎn)生。通過(guò)保持正被產(chǎn)生的熱量的動(dòng)態(tài)和,每個(gè)執(zhí)行單元或芯片的任意區(qū)域的溫度可以被映射。
另外,本發(fā)明方法以設(shè)備光刻技術(shù)來(lái)調(diào)整,避免了關(guān)聯(lián)于傳感器放置的常規(guī)問(wèn)題和緩慢的傳感器響應(yīng)時(shí)間。由此,所述芯片及其區(qū)域被更好地保護(hù)使其免于熱損壞。此外,每個(gè)指令可以被提前考慮,并且可以具有除了當(dāng)前指令之外的附加信息,并且可以確定多少熱量將通過(guò)對(duì)該指令的處理產(chǎn)生。
本發(fā)明不需要具有實(shí)際的功率生成輸入(例如功率測(cè)量),但相反,可以對(duì)于將被執(zhí)行的每個(gè)指令嵌入估計(jì)的熱信息(熱量)。因此,在不測(cè)量實(shí)際電流、電阻等的情況下,本發(fā)明可以基于所述指令處理獲得將在每個(gè)位置消耗的熱量(焦耳)。
由此,本發(fā)明具有極大效用,并且可以管理熱量,以及避免所述熱量在芯片上的“熱點(diǎn)”增大。
盡管已通過(guò)幾個(gè)示例性實(shí)施例描述了本發(fā)明,但本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,本發(fā)明可以通過(guò)落在權(quán)利要求的精神和范圍內(nèi)的修改來(lái)實(shí)現(xiàn)。
例如,盡管本發(fā)明已被描述為用于并且引入到圖1的示例性體系結(jié)構(gòu)中,但本發(fā)明決不限于用于或引入到所述體系結(jié)構(gòu)中。實(shí)際上,許多其它不同體系結(jié)構(gòu)可以被使用,如對(duì)于整體考慮本申請(qǐng)書(shū)的本領(lǐng)域的普通技術(shù)人員將顯而易見(jiàn)的那樣。
另外,應(yīng)當(dāng)指出,申請(qǐng)者的目的是包括所有的權(quán)利要求要素的等價(jià)體,即使在之后的實(shí)行期間被修正過(guò)也是如此。
權(quán)利要求
1.一種管理電路中的熱量的方法,包括使用附加到將被處理的指令的熱指令來(lái)確定關(guān)聯(lián)于所述指令的熱負(fù)荷。
2.根據(jù)權(quán)利要求1所述的方法,其中,所述電路包括微處理器,所述方法還包括在多個(gè)位置實(shí)時(shí)測(cè)量所述微處理器的熱量產(chǎn)生,以檢測(cè)局部平均溫度和實(shí)際瞬時(shí)溫度。
3.根據(jù)權(quán)利要求1所述的方法,其中,所述電路包括微處理器,所述方法還包括測(cè)量當(dāng)前指令的熱負(fù)荷,以及由仍在所述微處理器的存儲(chǔ)器中的將來(lái)指令產(chǎn)生的將來(lái)的熱負(fù)荷。
4.根據(jù)權(quán)利要求3所述的方法,還包括為所述微處理器提供熱表,其中,所述熱表中的值代表所述微處理器的指令執(zhí)行單元。
5.根據(jù)權(quán)利要求4所述的方法,還包括確定關(guān)聯(lián)于被使用了預(yù)定的少量時(shí)間的執(zhí)行單元的指令,以便在確定所述熱負(fù)荷時(shí)所述指令被避開(kāi)。
6.根據(jù)權(quán)利要求1所述的方法,還包括以指令速率將由指令產(chǎn)生的熱負(fù)荷的值乘以代表所述指令的發(fā)生的值以獲得乘積,以及將該乘積加到之前產(chǎn)生的熱量的動(dòng)態(tài)和中。
7.根據(jù)權(quán)利要求1所述的方法,其中所述電路包括熱執(zhí)行單元、熱計(jì)數(shù)器和熱表,所述方法還包括通過(guò)以指令速率將所述熱指令添加到所述熱計(jì)數(shù)器的之前狀態(tài)來(lái)獲得和,從而減少所述熱執(zhí)行單元的功率消耗;以及以低于所述指令速率的速率將所述熱計(jì)數(shù)器中的和乘以存儲(chǔ)在所述熱表中的值。
8.根據(jù)權(quán)利要求1所述的方法,其中所述電路包括微處理器,所述方法還包括對(duì)于所述微處理器的每個(gè)執(zhí)行單元所執(zhí)行的指令數(shù)量進(jìn)行計(jì)數(shù),以獲得計(jì)數(shù);以及選擇性地將熱表中的因子乘以所述計(jì)數(shù)以獲得熱儀表。
9.根據(jù)權(quán)利要求1所述的方法,其中所述電路包括具有多個(gè)執(zhí)行單元的微處理器,以及其中,在所述熱指令中,對(duì)所述微處理器的每個(gè)執(zhí)行單元提供一位。
10.根據(jù)權(quán)利要求1所述的方法,其還包括二進(jìn)制編碼所述熱指令,使得所述熱指令提供到包含2N個(gè)條目的查找表的索引,其中,N是整數(shù)。
11.根據(jù)權(quán)利要求10所述的方法,還包括通過(guò)用附加位擴(kuò)充現(xiàn)有指令集來(lái)修改所述現(xiàn)有指令集。
12.根據(jù)權(quán)利要求11所述的方法,其中所述電路包括微處理器,以及其中每個(gè)所述附加位指向?qū)⒃摳郊游环g為所述微處理器上的對(duì)應(yīng)空間的查找表。
13.根據(jù)權(quán)利要求1所述的方法,其中N位熱指令提供了用于索引2N個(gè)條目的查找表的地址,并且對(duì)所述微處理器的2N個(gè)區(qū)域進(jìn)行跟蹤。
14.根據(jù)權(quán)利要求13所述的方法,其中所述查找表的每個(gè)條目是指單一區(qū)域和多個(gè)區(qū)域中的一個(gè)。
15.一種管理處理器中的熱量的方法,包括檢查附加到將被處理器處理的現(xiàn)有指令的熱指令;以及在多個(gè)位置實(shí)時(shí)測(cè)量所述處理器的熱量產(chǎn)生,以檢測(cè)局部平均溫度和實(shí)際瞬時(shí)溫度。
16.根據(jù)權(quán)利要求15所述的方法,還包括測(cè)量當(dāng)前指令的熱負(fù)荷以及由仍在所述處理器的存儲(chǔ)器中的將來(lái)指令產(chǎn)生的將來(lái)的熱負(fù)荷。
17.一種微處理器,包括執(zhí)行指令的執(zhí)行單元,所述指令包括附加到其的熱指令,通過(guò)該熱指令,關(guān)聯(lián)于所述指令的熱負(fù)荷可測(cè)量。
18.根據(jù)權(quán)利要求17所述的微處理器,還包括運(yùn)行在指令速率的熱執(zhí)行單元,其具有可修改的熱表和多個(gè)熱儀表。
19.根據(jù)權(quán)利要求18所述的微處理器,其中所述熱執(zhí)行單元被控制以選擇性地運(yùn)轉(zhuǎn)于多個(gè)速率。
20.根據(jù)權(quán)利要求18所述的微處理器,其中所述熱執(zhí)行單元被編碼以最小化所述熱指令的長(zhǎng)度。
21.根據(jù)權(quán)利要求18所述的微處理器,其中所述熱執(zhí)行單元包括映射所述微處理器的多個(gè)區(qū)域的熱查找表。
22.根據(jù)權(quán)利要求18所述的微處理器,其中所述熱執(zhí)行單元解碼附加到所述指令的所述熱指令,并且保持正由當(dāng)前指令流產(chǎn)生的熱量的動(dòng)態(tài)和。
23.根據(jù)權(quán)利要求18所述的微處理器,其中所述熱指令的每個(gè)位指示哪個(gè)執(zhí)行單元被特定指令調(diào)用。
24.根據(jù)權(quán)利要求18所述的微處理器,其中在確定所述熱負(fù)荷時(shí),關(guān)聯(lián)于特定執(zhí)行單元的指令被選擇性地忽略。
25.根據(jù)權(quán)利要求18所述的微處理器,其中所述熱執(zhí)行單元包括乘法器和加法器,其中,在每個(gè)指令周期,在所述熱執(zhí)行單元內(nèi),所述乘法器將所述熱指令的N個(gè)位乘以熱表的N個(gè)條目以產(chǎn)生乘積,以及所述加法器將所述乘積加到每個(gè)執(zhí)行單元的所述熱儀表的動(dòng)態(tài)和中,其中,對(duì)每個(gè)執(zhí)行單元提供一個(gè)儀表。
26.根據(jù)權(quán)利要求25所述的微處理器,其中所述熱表的每個(gè)條目指示當(dāng)對(duì)應(yīng)執(zhí)行單元運(yùn)行時(shí)由所述對(duì)應(yīng)執(zhí)行單元產(chǎn)生的熱量。
27.一種用于管理電路中的熱量的系統(tǒng),包括用于接收將被處理的指令的執(zhí)行單元,所述指令包括被附加到其的熱指令;以及用于基于所述熱指令確定關(guān)聯(lián)于所述指令的熱負(fù)荷的裝置。
28.一種將在微處理器中被處理的指令,包括用于被所述微處理器執(zhí)行的現(xiàn)有指令;以及被附加到所述現(xiàn)有指令的、指示由將被所述現(xiàn)有指令調(diào)用的至少一個(gè)執(zhí)行單元產(chǎn)生的熱量的熱指令。
29.根據(jù)權(quán)利要求28所述的指令,其中在所述熱指令中對(duì)將被所述現(xiàn)有指令調(diào)用的所述至少一個(gè)執(zhí)行單元的每個(gè)執(zhí)行單元提供一位。
30.一種將在微處理器中被執(zhí)行的指令,包括用于被所述微處理器執(zhí)行的現(xiàn)有指令;以及被附加到所述現(xiàn)有指令的、指示用于索引查找表的地址的熱指令,其中所述查找表保存了指示由將被所述現(xiàn)有指令調(diào)用的至少一個(gè)執(zhí)行單元產(chǎn)生的熱量的條目。
31.一種管理微處理器中的熱能的方法,包括判斷將在微處理器中被處理的指令流;以及基于所述指令流確定將通過(guò)處理所述指令流產(chǎn)生的熱量。
32.一種信號(hào)承載媒體,其有形地包括可由數(shù)字處理裝置執(zhí)行從而執(zhí)行管理電路中的熱量的方法的機(jī)器可讀指令的程序,其包括使用附加到將被處理的指令的熱指令來(lái)確定關(guān)聯(lián)于所述指令的熱負(fù)荷。
全文摘要
一種管理電路中的熱量的方法(系統(tǒng)),包括使用被附加到將被處理的指令的熱指令來(lái)確定關(guān)聯(lián)于所述指令的熱負(fù)荷。
文檔編號(hào)G06F1/20GK101048722SQ200580036643
公開(kāi)日2007年10月3日 申請(qǐng)日期2005年10月27日 優(yōu)先權(quán)日2004年11月5日
發(fā)明者H·P·丹, A·夏爾馬, S·M·斯里加亞塔 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司