用于高性能微处理器的具有热操作码的指令集、微处理器和由此的方法

文档序号:6552851阅读:262来源:国知局
专利名称:用于高性能微处理器的具有热操作码的指令集、微处理器和由此的方法
技术领域
本发明一般涉及微处理器和由此的方法,并且特别涉及用于高性能微处理器的具有热操作码的指令集和由此的方法。
背景技术
例如IBM Power4的当代64位高性能微处理器具有以七层有色冶金互连的1.74亿个晶体管。其是以0.18μm互补金属氧化物半导体(CMOS)硅绝缘体(SOI)技术所制造,运转于大约1.3GHz,并且在最坏情况下消耗140W。
类似于其它微处理器,并非该管芯的所有部分都产生同样热量。更快或更频繁使用的电路(例如浮点单元(FPU)等等)比芯片的剩余部分运行于更高的温度,由此形成该芯片上的“热点”。由于芯片可靠性是温度的指数函数,因此保证芯片的任一部分均不超过额定最大结温是至关重要的。由此,需要在芯片的多个位置精确测量温度。
测量微处理器的温度的一种方法是使用多个二极管作为温度传感器。这些二极管可以在芯片的外部或内部。
外部温度二极管用针对模拟电路优化的半导体过程制造,并且趋于具有比内部二极管更好的分辨率。现有技术是+/-1摄氏度内的测量分辨率。内部二极管不得不与数字电路妥协,并且具有更差的规格。
例如,Motorola PowerPC具有带+/-4摄氏度分辨率的温度传感二极管(例如见1997年由Hector Sanchez等所著的“Thermal ManagementSystem for High Performance PowerPC Microprocessors”,IEEE1063-6390/97)。
众所周知,跨二极管的正向电压降Vd与温度成线性比例,其由下面的方程给出Vd=(N*k*T/q)*ln(If/Is)其中,N=非线性因子,k=波尔兹曼常数,T=绝对温度,q=电子电荷,If=正向电流,Is=饱和电流。N和Is是与过程和设备相关的。于是,每个二极管典型地必须在使用前被校准。
存在用于避开所述校准的几种方法。一种方法是使一个二极管比其它的大得多(例如32x),然后看两个Vd的比率,如由此处引入作为参考的美国专利No.5,829,879所建议的那样。
另一种方法是改变正向电流If,并且还看两个电压的比率来确定非线性因子。两种方法都有显著缺点大得多的面积(案例1)或多个电流源(案例2)。
温度传感二极管给出大约2mV/摄氏度,其需要稳定电流源(一个或多个)、低噪声放大器和可能高分辨率的模数转换(ADC),用以正常运行。将所有这些模拟部件与有噪声的、高速数字电路集成以在多个不同位置精确测量温度是有挑战性的。
另一个实际的考虑是,很多时候,由于空间限制而不能将二极管传感器放在正好所述“热点”之上/之处。实际上,二极管传感器可能被放置在远离感兴趣的设备数百个晶体管(例如毫米级)的位置。由此,代替于测量感兴趣的设备的温度,所述二极管传感器可能错误地传感相邻设备。因此,即使使用最好的传感器,但仍然需要某种形式的空间外推来确定真实的热点温度。
另外,为最小化二极管传感器等的噪声,可以使用低通滤波器(LPF)。然而,所述LPF减小带宽从而增加了传感器的响应时间,由此导致测量的延迟时间。由此,当温度上升时,所述上升不必要被立即感知。

发明内容
考虑到常规方法和结构的前述和其它示例问题、缺点和不足,本发明的示例特征是,提供一种用于在不必使用温度二极管传感器的情况下感知微处理器中的温度的方法和结构。
本发明的另一示例特征是,提供这样一种方法和结构,其判断将在微处理器中被处理的指令流,并且确定将由此被产生的热量,以便此后采取某种动作。
在本发明的第一方面中,一种管理电路中的热量的方法包括使用附加到将被处理的指令的热指令来确定关联于该指令的热负荷。
在本发明的第二方面中,一种管理处理器中的热量的方法包括检查附加到将由处理器处理的现有指令的热指令;以及在多个位置实时测量处理器的热量产生,以便检测局部平均温度和实际瞬时温度。
在本发明的第三方面中,一种微处理器包括执行指令的执行单元,其中,所述指令包括附加到其的热指令,通过该热指令,关联于所述指令的热量负荷可测量。
在本发明的第四方面中,一种用于管理电路中的热量的系统包括用于接收将被处理的指令的执行单元,其中,所述指令包括被附加到其的热指令;以及用于基于该热指令确定关联于所述指令的热量负荷的单元。
在本发明的第五方面中,一种将在微处理器中被处理的指令包括用于被所述微处理器执行的现有指令;以及附加到所述现有指令的热指令,该热指令指示由将被所述现有指令调用的至少一个执行单元产生的热量。
在本发明的第六方面中,一种将在微处理器中被处理的指令包括用于被所述微处理器执行的现有指令;以及附加到所述现有单元的、指示用于索引查找表的地址的热指令,其中所述查找表保存了指示由将被所述现有指令调用的至少一个执行单元产生的热量的条目。
在本发明的第七方面中,一种管理微处理器中的热能的方法包括判断将在微处理器中被处理的指令流;以及基于该指令流确定将通过处理该指令流产生的热量。
在本发明的第八方面中,一种信号承载媒体有形地包括机器可读指令的程序,其可由数字处理装置执行从而执行管理电路中的热量的方法。所述方法包括使用附加到将处理的指令的热指令来确定关联于该指令的热量负荷。
根据本发明的独特和不明显方面,一种在不需要使用任何温度传感器的情况下监视(跟踪)温度的方法(和结构)被提供。
即,在示例实施例中,新的热操作码被添加到现有指令集,以指示多少热量正被每个指令产生。通过保持正被产生的热量的动态和(runningsum),可以映射芯片的任意区域或每个执行单元的温度。
另外,本发明方法用光刻技术(lithography)来调整,避免了伴随传感器放置的问题和缓慢的传感器响应时间。由此,所述芯片及其区域被更好地保护使其免于热损坏。
因此,本发明可以提前考虑当前指令,其具有除了当前指令之外的附加信息,并且可以断定多少热量将通过对该指令的处理产生。
不同于其它方法,本发明不需要实际的功率生成输入(例如功率测量),而作为代替可以为将被执行的每个指令嵌入估计的热信息(热量)。因此,在不测量实际电流或电阻等的情况下,本发明可以基于所述指令处理获得将在每个位置消耗的热量(焦耳)。
由此,本发明对于现在的微处理器以及将来当可以想象用于执行下述详尽算法的大型、大量微处理器(比现有的那些微处理器大很多倍)时都具有极大效用,其中所述算法提供跨所述大量微处理器的即时温度测量/预测映射。本发明提供了一种管理所述热量并且避免所述热量在芯片上的“热点”增大的装置。


从下面参考附图对本发明的示例实施例的详细描述中,前述和其它示例目的、方面和优点将被更好地理解,在附图中图1示出了常规的高性能微处理器体系结构100;图2示出了具有热执行单元210的微处理器体系结构200;图3示出了具有预测热执行单元310的微处理器体系结构300;图4示出了热指令400;图5示出了所述热执行单元210的细节;图6示出了热执行单元的示例600;图7示出了多速率热执行单元700;图8示出了多速率热执行单元示例800;图9示出了编码热执行单元900;图10示出了编码热执行单元查找表1000;图11示出了编码热执行单元示例1100;图12示出了用于将本发明引入其中的示例性硬件/信息处理系统1200;以及图13示出了用于存储根据本发明的方法的程序的步骤的信号承载媒体1300(例如存储媒体)。
具体实施例方式
现在参考附图并且特别是图1-13,其示出了根据本发明的方法和结构的示例性实施例。
示例性实施例图1示出了常规的、示例性当代高性能微处理器的体系结构100,并且更准确地说是推测性超规模无序执行设计的IBM Power微处理器核心的高度简化框图。
指令被载入到64KB I高速缓存110中,其开始于由取指令地址寄存器(IFAR)120指示的位置。每周期中多个(例如多达八个)指令被读取到指令队列130中以及解码器140中,其中,所述指令被分组并发送到合适的发布队列150A(分支/条件寄存器发布队列)、150B(定点/加载发布队列)、150C(浮点发布队列)以及相应的执行单元(EU)160A(分支执行单元)、160B(条件寄存器执行单元)、160C(定点执行单元)、160D(加载/存储执行单元)和160E(浮点执行单元)。
Power具有两个定点/加载队列和两个浮点执行单元,但为使读者容易理解,二者中的仅一个被示出。所述队列的每个输出被发送到合适的执行单元。如所示,所述定点执行单元将两个整数值加到一起(或相减),而所述浮点执行单元处理非整数值。所述加载/存储可以被分为两种类型的加载和存储。
由此,所述加载/存储从存储器以及更准确地说从D高速缓存(例如数据高速缓存等)或从即时存储队列获得指令。如果所述存储队列更近,则从所述即时存储队列获得指令相对于所述D高速缓存耗费更少能量。
多级分支预测器170预测指令并且以“最佳猜测”的下一地址加载IFAR 120。Power4使用内部二极管作为芯片上某处的温度传感器195来进行热量管理。
为加载代码,来自所述取指令地址寄存器120的地址被使用。所述地址通过三种方法中的一种被生成。一种方法是通过所述分支预测器170,其中,该分支预测器170考虑从I高速缓存110到来的指令,以及,例如可以查看循环将被(或正被)执行,以及下一指令集被需要。由此,所述分支预测器170发送下一指令地址。
另一种方法是通过分组完成表180,在该表中,指令可以被无序地执行。所述分组完成表180对哪些指令已被执行进行跟踪。
第三种方法是通过跳跃。所述三种的任一种可以修改将被加载的下一指令块的地址。
由此,图1示出了所述微处理器的高级示图/视图。应当指出,为简洁起见,并非把所述微处理器的所有操作/功能示出在图1中,而是,将其限制于指令如何在所述微处理器中被执行和处理,以及新的分支如何被生成。
所述Power4体系结构的更详细操作可以在2002年1月的IBMJournal of Research & Development,Volume 46,Number 1中由Tendler等所著的“Power4 System Microarchitecture”中找到。
应当指出,本发明可以以图1的示例性体系结构被使用,但当然不限于仅以图1的所述体系结构使用。
图2示出了把热执行单元210添加到图1的微体系结构。所述指令队列130信息和解码、分组构造140信息被发送到所述热EU 210。所述热EU 210解码所述指令的热操作码部分,并且保存正由当前指令流产生的热量的动态和。由此,所述热执行单元210知道什么指令正在被运行以及按什么顺序运行。
所述热EU 210与所述指令解码器顺序牵动地(locked-step)运行,并且再次利用分组构造的输出来处理无序指令执行。所述热EU 210的内部运转将在随后详细讨论。在所述配置中,热指令被与正常指令一起存储在I高速缓存110中,并且热EU 210仅分析执行的指令。
图3示出了允许在指令被执行之前提前确定什么单元将被加热的配置。为此,必须在指令被执行前考虑这些指令。由此,在图3中,接收(除被提供给I高速缓存110之外的)取指令地址的T高速缓存(热高速缓存)304和预测热执行单元310被提供。
因此,在图3的配置中,指令被载入到I高速缓存110中,并且相应的热操作码被载入到热高速缓存304中。所述T高速缓存305具有附加逻辑,以致当热操作码被加载时,其被预测热EU 310处理。这提供了一种机制,用于预测如果I高速缓存110中的当前指令被执行则将来的热负荷将是什么。当然,任何时候当新地址被分支EU 160A、分组完成表180或分支预测器170载入到所述取指令地址寄存器120中之时,所述信息将被更新。所述概念可以被扩展到L2/L3高速缓存,以便预测将来远期的热负荷。
如图4中所示,热指令405被附加到每个现有微处理器指令410。对于该特定示例,所述热指令可以包括6位(为简化,忽略复制的定点和加载/存储单元)。
每一位指示哪个执行单元被特定指令调用。BR 420、CR 430、FX 440、LD 450、LQ 460和FQ 470分别指分支、条件寄存器、定点、来自/到D高速缓存的加载/存储、来自/到存储队列的加载/存储和浮点单元。由于每一类型访问导致不同水平的能量消耗,所以独立的位被用于指示到所述存储队列或到所述D高速缓存的访问。应当指出,如果特定指令缺失(例如没有从队列加载的指令、没有分支指令等),则将不存在代表该“缺失”指令的相应位。
对于具有更多执行单元的其它微体系结构,将需要附加位。对于多个执行单元完成同一功能的情况(例如两个浮点单元、两个分支单元等),两个位可以被使用(例如FX1、FX2;BR1、BR2等)。另外,可以优化它们(所述位)在于,尽管针对当前配置中的每个执行单元一位被示出,但是很多时候,某些操作/指令/作业可能未出现,并且由此,可以不(几乎不)需要跟踪某些单元以及从其产生的热量。
由此,本发明的一个重要方面是通过用所述附加位扩充现有指令集来修改现有指令集。
图5示出了根据本发明的热执行单元的一个示例性实现,并且更准确地说,其示出了,在每个指令周期中,热操作码2110的N位乘以热表2105的N个条目,并且然后被加到每个执行单元(EU)的热仪表(thermal meter)(n-1)2115的动态和。典型地,每个执行单元存在一个仪表。该操作可以类比于家用的电表。
所述热表2105的每个条目指示当相应的执行单元运行时由其产生的热量。操作码中的“0”是指匹配的EU不运行,并且由此将不会添加热量。
操作码中的相反值是“1”。在所述配置中,向量乘法器和加法器运行于Ghz级的指令速率并且累加由各个EU产生的热量。由于热传播慢得多,所述热仪表2115可以以低得多的速度进行采样。
设想所述热仪表(n)2120以几十到几百微秒的速率被读取和复位。所述热采样速率取决于许多变量,例如指令速率、设备大小/几何形状/材料、以及芯片热传导性。
所述热表2105在上电时被加载以合适的值,并且可以在运行期间基于芯片的状态被更新。存在用于确定这些值的很多方法。
对于当前微处理器设计,一种方法是将所述设计分解到寄存器传输级(RTL),并且基于容量、净长、面积和开关活动来估计功率消耗。例如Power Theater(例如参见2002年1月的IBM Journal of Research &Development,Volume 46,Number 1中由Tendler等所著的“Power4System Microarchitecture”)或IBM Common Power Analysis Method(CPAM)(例如参见2000年的9th Topical Meeting on the ElectricalPerformance of Electronic Packaging的会议录的303-306页中由ScottNeely、Howard Chen、Steven Walker和Thomas Bucelot所著的“CPAMA Common Power Analysis Methodology for High-Performance VLSIDesign”)的商用仿真软件可以被用作起始点。1996年9月的美国专利No.5,557,557的由Frantz等所著的“Processor Power Profiler”提出了一种用于确定当执行程序时处理器的能量消耗的方法。
1999年8月的美国专利No.5,941,991的由Kageshima等所著的“Method of Estimating Power Consumption of each instruction processedby a microprocessor”考虑了指令的高速缓存命中/缺失。2002年1月的美国专利No.6,338,025B1的由Bowen等所著的“Data Processing system andmethod to estimate power in mixed dynamic/static CMOS designs”处理动态CMOS电路的功率仿真。
通过上述工具和方法,可以获得对由每个EU消耗的功率的良好估计。
下一步将是使用物理电路设计的模型,并且将功率消耗数量翻译为每指令的热量上升,其可以被称为“热量子”。例如,如果浮点乘法指令导致浮点单元上升5微摄氏度,则该指令具有5个热量子,并且5将被载入到热表2105中。该翻译过程优选地应当考虑三维空间中每个设备的热阻性和容性。
由此,对于当前的微处理器设计,存在许多仿真工具来允许知道对于每个指令,多少晶体管正被开关,以及所述晶体管正在驱动什么设备,由此知道多少热量正被产生以及所述热量正被产生的位置。
应当指出,图5的另一重要特征在于,所有单元(电路)都在指令速率(例如目前大约2-3Ghz)运行。由此,通过对热量的跟踪,由于在Ghz速率的实时相乘而大量热量通过该过程本身产生。
图6示出了图5中示出的配置的例子。假设所述分支、条件寄存器、定点、高速缓存加载/存储、队列加载/存储和浮点单元分别产生2、1、5、3、1和10个热量子。由此,所述条件寄存器(CR)不执行大量工作(例如创造大量热量),而所述浮点产生相对大量热量。
对于仅使用定点(FX)和高速缓存加载/存储(LD)的特定指令,用于该指令的热操作码将是“001100”。由此,5和3个量子将被加到所述热仪表的动态和,其中,“n”被定义为当前状态(例如热仪表2120),以及“n-1”(例如热仪表2115)为前一状态。于是,对于所述FX和LD,现在有50和75个量子。所述热仪表的剩余部分保持不变。
应当指出,在上面描述的示例性应用中,正被产生的所述热量数值(热仪表)是在一定时间周期上累积的。然而,取决于设计者的需求和约束,所述热仪表可以是不同的或是具有不同类型。
即,代替于对应于正特定时间周期上被释放的累积热量的热仪表,在另一示例性应用中,以及通过利用使用该信息的实际模型,可以不需要所述热仪表以累积模式运转。相反,仅使用热表2105和热指令2110的输出(乘积)作为热估计器的输入就足够了。热估计器典型在其中具有内置消耗单元,例如具有热阻性的电阻等,并且所述单元可以基于整体系统冷却体系结构来选择所消耗的热量子多快将最终被消耗完。
因此,可以想象这样的情形,其中,一个处理器可以使用液体冷却,而另一处理器使用不同的热消散机制(被动的、散热片等)。实际上,即使所述另一处理器使用液体冷却,如果将冷却设备连接到所述处理器的热胶(thermal paste)由于机械误差而稍微脱离(不同),则其消耗速率也将不同。由此,其它活动可以作为整个实现的一部分有益于确定消耗参数。
因此,在下一情况下,所述热仪表将被增加或保持固定,并且由此读取和复位操作将被所述热估计器执行。实际上,所述热仪表的优点中的一个在于,即使所述数量正在每个指令周期被添加,但对于实际的热模型实现,不需要这么好的热消耗信息级别。相反,可以仅找到例如对于每千次执行的和。因此,可以使用累积信息,但不必要从时刻0开始。
转向图7,其示出了,通过颠倒从图6中所示的操作的顺序,热EU的功率消耗可以被大大减小。即,图6的相乘操作和相加操作的顺序被颠倒,如图7中所示。
在图7中,热指令2110被以指令速率添加到热计数器2130的前一状态,以及,与热表2115的相乘以较低的热采样速率被完成。所述加法器现在简单得多,因为其仅加上1。代替于如前的整体加法器,简单递增计数器(例如1位计数器)可以被用于该操作。
对于相同的热指令(“001100”)、热表(n)2105以及等价的热计数器2130(n-1)和2130a的值,热仪表(n)2120给出同样的读数(例如与图6中相同),如图8中所示。
由此,在图7中,相对较快的指令速率(在图7示图的顶部示出,并且为GHz级)区别于相对较慢的速率(例如在图7的底部的操作中示出的速率;还被称为热响应时间)。
因此,代替于如图6中乘以由每个指令产生的热量,在图7中,对于每个单元(例如运行在指令速率)被执行的指令的数量进行计数,因而仅所述热表2115中的数值当需要时以较低速率被相乘,并且热仪表2120将与图6中相同。再次,与图6相同的结果被得到,但其使用简单得多的电路。该实施例对于当需要所述热信息之前需要求和大量指令周期的情形有益。由此,乘法操作不是每个周期必要的。相反,求和可以在每个周期继续,但乘法可以在需要热信息时被选择性地执行。
所述热指令2110应当尽量短,以最小化开销。保持所述热指令很短的一种方法是仅监视被大量使用的EU。
例如,所述分支单元不太可能在每个指令中被使用。由此,其可以不需要被监视。对于某种微体系结构,所述定点单元被使用得最多。在所述情况下,仅该EU和对于该定点单元的热负荷有贡献的一些关键的相邻EU应当被监视。
如上面所指出的,可以是每执行单元为一位。然而,这可能不是位的数量的高效使用,由于所述位正被加到每个指令(被递增1以及之后被乘),并且由此,这可能变成非常大的增量。由此,找到一种编码所述热指令以使其在空间上更加高效的方法将是有益的。
由此,另一种方法是二进制编码所述热指令。图9示出了管理2N个区域的N位热操作码。所述热操作码提供了到包含2N个条目的查找表(LUT)2190的索引或地址。其加法和乘法操作与图7中相同。热仪表2120示出了区域0到(2N-1)中累积的热量。
由此,在图9中,代替于如之前描述的代表执行单元的每个位,每个位将贯穿所述LUT 2190,该LUT 2190将把所述位翻译为如结构1000中所示的芯片(例如微处理器1010)上的对应空间,如图10中所示。
例如,4位热指令提供了用于索引16条目LUT 2190的必要地址,并且对芯片(例如微处理器1010)的16个区域进行跟踪,如图10的结构1000中所示。LUT 2190的每个条目可以涉及单一区域或多个区域。在该例中,热指令(地址)“0000”指向LUT 2190的条目0,其跟踪区域R2、R3、R6和R7。热指令(地址)“0001”将指向R5、R9和R13。另外,热指令(地址)“1111”可以指向R10和R15的对角区域。通过所述示例性映射,多达16个区域可以用仅4个位覆盖。
由此,代替于每执行单元为一位,所述地址将载入用于索引LUT 2190的指令,由此来得到热索引2195,正如前面图8中那样。
图11示出了其中地址“0000”影响区域R2、R3、R6和R7的例子。图11示出,所述热计数器当被添加到动态计数时对于具有索引“1”的每个区域递增1。所述热仪表值是热计数器和热表的积。
对比于在其中不论四个位是否正产生热量四个位都将对应于所使用的四个执行单元的实施例,使用与指向表(LUT)2190的地址生成器相同的4个位的图10(以及如图11所示)的配置(以及4个位的使用)现在从所述4个位提供16组信息,并且由此增强了加宽热信息的能力。其开销是去往所述表的额外步骤。所述表提供了关于哪些区域正在参与以及哪些区域未参与的信息(例如由图10的“0”和“1”所示)。
热EU的输出可以与新的或现有的动态热管理或点冷却技术耦合,以便调节微处理器的最大结温(例如,参见上面提到的由S.M.Sri-Jayantha等提出的被题目为“METHOD AND SYSTEM FOR REAL TIMEESTIMATION AND PREDICTION OF THE THERMAL STATE OF AMICROPROCESSOR UNIT”的美国专利申请No.10/892,211,以及IEEE2001,0-7695-1019-1/01中由David Brooks和Margaret Martonosi所著的“Dynamic Thermal Management for High-PerformanceMicroprocessor”)。
图12示出了与本发明一起使用并且优选具有至少一个处理器或中央处理单元(CPU)1211的信息处理/计算机系统的典型硬件配置。
所述CUP 1211经由系统总线1212互连到随机存取存储器(RAM)1214、只读存储器(ROM)1216、输入/输出(I/O)适配器1218(用于将例如磁盘单元1221和磁带驱动器1240的外围设备连接到总线1212)、用户接口适配器1222(用于将键盘1224、鼠标1226、扬声器1228、麦克风1232和/或其它用户接口设备连接到总线1212)、用于将信息处理系统连接到数据处理网络、因特网、内联网、个人区域网(PAN)等的通信适配器1234,以及用于将总线1212连接到显示设备1238和/或打印机的显示适配器1236。
除上面描述的硬件/软件环境之外,本发明的不同方面包括一种用于执行上述方法的计算机实现方法。作为例子,所述方法可以在上面描述的特定环境中被实现。
所述方法可以例如通过操作计算机来执行机器可读指令序列来实现,其中,所述计算机如由数字数据处理装置体现。这些指令可以驻留在各种类型的信号承载媒体中。
所述信号承载媒体可以包括例如被包含在CPU 1211中的RAM,例如由快速存取存储器代表的那样。可选地,所述指令可以被包含在可以由CPU 1211直接或间接访问的另一信号承载媒体中,例如磁性数据存储装置或CD-ROM盘(图13)。
不论是否被包含在盘1300、计算机/CPU 1211或其它地方之中,所述指令可被存储在多种机器可读数据存储媒体中,例如DASD存储装置(例如常规“硬盘驱动器”或RAID阵列)、磁带、电子只读存储器(例如ROM、EPROM或EEPROM)、光存储设备(例如CD-ROM、WROM、DVD、数字光带等)、纸质“打孔”卡或其它合适的信号承载媒体,其包括例如数字和模拟的传送媒体和通信链路以及无线。在本发明的示例实施例中,所述机器可读指令可以包括通过例如“C”等语言编译的软件目标代码。
另外,在本发明的又另一方面中,在作为整体考虑本说明后,本领域的普通技术人员应当容易地认识到,本发明可以用作大量商业或服务活动的基础。所有的潜在服务相关活动都旨在被本发明所覆盖。
根据本发明的独特和不明显方面,一种在不需要使用任何温度传感器的情况下监视(跟踪)温度的方法(和结构)被提供。相反,在示例性实施例中,新的热操作码可以被添加到现有指令集,以指示多少热量正被每个指令产生。通过保持正被产生的热量的动态和,每个执行单元或芯片的任意区域的温度可以被映射。
另外,本发明方法以设备光刻技术来调整,避免了关联于传感器放置的常规问题和缓慢的传感器响应时间。由此,所述芯片及其区域被更好地保护使其免于热损坏。此外,每个指令可以被提前考虑,并且可以具有除了当前指令之外的附加信息,并且可以确定多少热量将通过对该指令的处理产生。
本发明不需要具有实际的功率生成输入(例如功率测量),但相反,可以对于将被执行的每个指令嵌入估计的热信息(热量)。因此,在不测量实际电流、电阻等的情况下,本发明可以基于所述指令处理获得将在每个位置消耗的热量(焦耳)。
由此,本发明具有极大效用,并且可以管理热量,以及避免所述热量在芯片上的“热点”增大。
尽管已通过几个示例性实施例描述了本发明,但本领域的技术人员将认识到,本发明可以通过落在权利要求的精神和范围内的修改来实现。
例如,尽管本发明已被描述为用于并且引入到图1的示例性体系结构中,但本发明决不限于用于或引入到所述体系结构中。实际上,许多其它不同体系结构可以被使用,如对于整体考虑本申请书的本领域的普通技术人员将显而易见的那样。
另外,应当指出,申请者的目的是包括所有的权利要求要素的等价体,即使在之后的实行期间被修正过也是如此。
权利要求
1.一种管理电路中的热量的方法,包括使用附加到将被处理的指令的热指令来确定关联于所述指令的热负荷。
2.根据权利要求1所述的方法,其中,所述电路包括微处理器,所述方法还包括在多个位置实时测量所述微处理器的热量产生,以检测局部平均温度和实际瞬时温度。
3.根据权利要求1所述的方法,其中,所述电路包括微处理器,所述方法还包括测量当前指令的热负荷,以及由仍在所述微处理器的存储器中的将来指令产生的将来的热负荷。
4.根据权利要求3所述的方法,还包括为所述微处理器提供热表,其中,所述热表中的值代表所述微处理器的指令执行单元。
5.根据权利要求4所述的方法,还包括确定关联于被使用了预定的少量时间的执行单元的指令,以便在确定所述热负荷时所述指令被避开。
6.根据权利要求1所述的方法,还包括以指令速率将由指令产生的热负荷的值乘以代表所述指令的发生的值以获得乘积,以及将该乘积加到之前产生的热量的动态和中。
7.根据权利要求1所述的方法,其中所述电路包括热执行单元、热计数器和热表,所述方法还包括通过以指令速率将所述热指令添加到所述热计数器的之前状态来获得和,从而减少所述热执行单元的功率消耗;以及以低于所述指令速率的速率将所述热计数器中的和乘以存储在所述热表中的值。
8.根据权利要求1所述的方法,其中所述电路包括微处理器,所述方法还包括对于所述微处理器的每个执行单元所执行的指令数量进行计数,以获得计数;以及选择性地将热表中的因子乘以所述计数以获得热仪表。
9.根据权利要求1所述的方法,其中所述电路包括具有多个执行单元的微处理器,以及其中,在所述热指令中,对所述微处理器的每个执行单元提供一位。
10.根据权利要求1所述的方法,其还包括二进制编码所述热指令,使得所述热指令提供到包含2N个条目的查找表的索引,其中,N是整数。
11.根据权利要求10所述的方法,还包括通过用附加位扩充现有指令集来修改所述现有指令集。
12.根据权利要求11所述的方法,其中所述电路包括微处理器,以及其中每个所述附加位指向将该附加位翻译为所述微处理器上的对应空间的查找表。
13.根据权利要求1所述的方法,其中N位热指令提供了用于索引2N个条目的查找表的地址,并且对所述微处理器的2N个区域进行跟踪。
14.根据权利要求13所述的方法,其中所述查找表的每个条目是指单一区域和多个区域中的一个。
15.一种管理处理器中的热量的方法,包括检查附加到将被处理器处理的现有指令的热指令;以及在多个位置实时测量所述处理器的热量产生,以检测局部平均温度和实际瞬时温度。
16.根据权利要求15所述的方法,还包括测量当前指令的热负荷以及由仍在所述处理器的存储器中的将来指令产生的将来的热负荷。
17.一种微处理器,包括执行指令的执行单元,所述指令包括附加到其的热指令,通过该热指令,关联于所述指令的热负荷可测量。
18.根据权利要求17所述的微处理器,还包括运行在指令速率的热执行单元,其具有可修改的热表和多个热仪表。
19.根据权利要求18所述的微处理器,其中所述热执行单元被控制以选择性地运转于多个速率。
20.根据权利要求18所述的微处理器,其中所述热执行单元被编码以最小化所述热指令的长度。
21.根据权利要求18所述的微处理器,其中所述热执行单元包括映射所述微处理器的多个区域的热查找表。
22.根据权利要求18所述的微处理器,其中所述热执行单元解码附加到所述指令的所述热指令,并且保持正由当前指令流产生的热量的动态和。
23.根据权利要求18所述的微处理器,其中所述热指令的每个位指示哪个执行单元被特定指令调用。
24.根据权利要求18所述的微处理器,其中在确定所述热负荷时,关联于特定执行单元的指令被选择性地忽略。
25.根据权利要求18所述的微处理器,其中所述热执行单元包括乘法器和加法器,其中,在每个指令周期,在所述热执行单元内,所述乘法器将所述热指令的N个位乘以热表的N个条目以产生乘积,以及所述加法器将所述乘积加到每个执行单元的所述热仪表的动态和中,其中,对每个执行单元提供一个仪表。
26.根据权利要求25所述的微处理器,其中所述热表的每个条目指示当对应执行单元运行时由所述对应执行单元产生的热量。
27.一种用于管理电路中的热量的系统,包括用于接收将被处理的指令的执行单元,所述指令包括被附加到其的热指令;以及用于基于所述热指令确定关联于所述指令的热负荷的装置。
28.一种将在微处理器中被处理的指令,包括用于被所述微处理器执行的现有指令;以及被附加到所述现有指令的、指示由将被所述现有指令调用的至少一个执行单元产生的热量的热指令。
29.根据权利要求28所述的指令,其中在所述热指令中对将被所述现有指令调用的所述至少一个执行单元的每个执行单元提供一位。
30.一种将在微处理器中被执行的指令,包括用于被所述微处理器执行的现有指令;以及被附加到所述现有指令的、指示用于索引查找表的地址的热指令,其中所述查找表保存了指示由将被所述现有指令调用的至少一个执行单元产生的热量的条目。
31.一种管理微处理器中的热能的方法,包括判断将在微处理器中被处理的指令流;以及基于所述指令流确定将通过处理所述指令流产生的热量。
32.一种信号承载媒体,其有形地包括可由数字处理装置执行从而执行管理电路中的热量的方法的机器可读指令的程序,其包括使用附加到将被处理的指令的热指令来确定关联于所述指令的热负荷。
全文摘要
一种管理电路中的热量的方法(系统),包括使用被附加到将被处理的指令的热指令来确定关联于所述指令的热负荷。
文档编号G06F1/20GK101048722SQ200580036643
公开日2007年10月3日 申请日期2005年10月27日 优先权日2004年11月5日
发明者H·P·丹, A·夏尔马, S·M·斯里加亚塔 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1