CPU也上保险——CPU的温度监控技术

技术大讲堂

一、意外险——外部温控

以前,我们对CPU温度监控只能通过“外部监测”措施——即通过主板CPU插座下面的热敏电阻来监测CPU工作时的温度。如果大家找一块KT133、KT266A之类的主板,往往就会发现CPU插座内的热敏电阻(图1)。整个监测过程全面由主板负责,热敏电阻直接将所监测到的数据传给主板上的温控电路,如果监测到CPU的工作温度超过在BIOS中的预设值时,就会报警或自动断电关机。

1-e12-1.jpg
图1

不过此类监测到的温度往往是CPU底部表面的温度,而不是内核温度,温度读数是由监控芯片根据热敏电阻的阻值变化计算得出。而且此类接触式测试受外部环境影响很大,比如安装时热敏电阻没有与CPU底面接触等情况都会对结果带来很大影响。故此类CPU温控结果误差极大、反应不灵敏,所得结果仅仅只能作参考之用。也正因为如此,AMD曾在其白皮书中专门为Athlon XP处理器制定了名为“Temperature Offset Correction”(温度偏差修正)的CPU内核温度监测修正方案,用来纠正此种CPU温控所带来的偏差。所谓“温度偏差修正”就是指当系统采用外部测量法时,必须在测量结果的基础上增加一个温度偏差值:即BIOS中显示的温度值=实际测试值+温度偏差值。这个偏差值由主板热敏电阻、临界温度等因素来决定,当系统设定以后它就是一个常量(当然通过刷新BIOS可以改变这个值)。采取这样的措施在一定程度上可以减小误差值。

目前支持外测法的Athlon XP主板一般都采用了温度偏差修正方案,但各个厂商采取的具体保护设计都不同,有些厂商很注意这方面的功能开发,BIOS里面有关温控的选项很多,而且在BIOS默认状态下就能实现过热自动关机功能。基本上名牌大厂在这方面都相对做得比较好。

不过,此类温控技术仍存在一个致命缺点,那就是对于突发事件(如风扇脱落)所带来的温度急剧提升完全不能及时做出反应。这是因为CPU核心温度穿透CPU基板到达它的表面会有一定的时间延迟,而且延迟不小,同时热敏电阻的品质直接影响其反应速度,再好的材料也不能保证时间长了之后品质不会下降,而就在这短短的时间里面,CPU早已烧毁!因此对于采用外部温控的CPU仍需要注意散热问题。

二、平安险——内部温控

随着CPU频率越来越高,温度对CPU的影响越来越大,此类CPU外部控温方法已经不能很好地为CPU提供保护。后来CPU厂商在CPU内核里面加入了一个专门用于监测CPU温度的热敏二极管,将CPU温度监控引入“内部温控”时代。

此类CPU温控技术也就是在CPU内核里整合一个热敏二极管,然后将二极管的正负两极作为CPU两个针脚直接通过主板CPU插座和主板的温度监控电路相连。当CPU工作时,热敏二极管就将感应到的数据变化传输给主板的温控电路,由主板的一个特定逻辑运算电路通过所接收到的数据计算出CPU的内核温度,如果计算出来的温度高于预设温度警戒线时,系统就会自动在瞬间切断CPU核心电压,使CPU停止工作并让系统挂起,从而保护CPU不被烧毁。以前PⅢ以及现在的Athlon XP处理器都采用了此种技术。

此外,AMD为防止它的处理器过热烧毁又推出了S2K 总线断开技术:即当处理器内核温度过高时,系统会发出一个HALT指令(HALT指令的作用是在没有数据需要处理时将处理器挂起,有点像休眠指令),当CPU接收到HALT指令时,处理器会转至相应的等待模式,这种模式下消耗的功率较小,发热量也相对减小。事实上,这一技术可以在主板芯片组或者BIOS中实现,AMD也要求所有的AMD平台主板厂商通过支持S2K 总线断开技术的认证。现在所有的K7主板芯片组都支持这一设计了,但是直到目前为止,大多数主板的 BIOS 在默认设置中是将此功能关闭的,这样的结果是即使Athlon XP处理器处于空闲状态,它的温度也不会有什么下降(注:在主板BIOS中一般有“CPU Temperature、External Temperature和System Temperature”,其中CPU Temperature就是通过内测法得到的CPU核心温度)。

可以说,通过在CPU内核整合的热敏二极管,已经能很准确监控CPU核心温度了,而且配合主板的温控电路就能即时保护过热的CPU,使其不至于在CPU风扇突然停转或意外脱落时被烧毁。

不过此类内部温控技术存在一个弊端,那就是在CPU温度过高时通过直接关闭电脑来达到保护的目的,这就会导致数据因为不能及时保存而丢失,要知道有时数据的价值往往比一个CPU的价值更高。因此,Intel在其Pentium 4中引入了更先进、更具弹性的温控技术。

三、双重保险——热量控制电路

从Pentium 4开始,Intel在其CPU中使用了一项新的温控技术——热量控制电路(Thermal Control Circuit,Intel又将它命名为热量监视器,Thermal Monitoring),这项新技术能够确保CPU工作的稳定性并且对CPU进行过热保护。

在前面我们已经谈到传统的CPU内部温控在CPU内核整合了一个热敏二极管,而Pentium 4处理器的热量控制电路却拥有两套热敏二极管。其中一套热敏二极管侦测CPU的温度值并传输给主板上的硬件监控系统,这套装置像传统的内部温控技术一样通过关闭系统来保护CPU,不过只是在紧急情况下才会自动使用。第二套热敏二极管放置在CPU内核温度最高的部位,几乎触及ALU单元,也作为热量控制电路的一个组成部分。

在CPU工作时,这两套热敏二极管的电阻会因温度而变化,因此通过它的电流也会随着CPU的核心温度而变化,通过与内设参考电流的比较,系统能够判断当前电流是否达到了临界点。如果CPU最热的地方超过一定值,第二套热量温控装置会发送一个PROCHOT#信号使热量控制电路系统开始工作,通过减小CPU的负载来降温,其实这套热敏二极管起到波动调节作用。在此前许多朋友认为这个热量控制机制就是Pentium 4在过热的时候降低了它的时钟频率,也就是说,如果它默认的频率是2.8GHz,在它过热的时候可能会降到2GHz或者更低。其实这个观点并不正确。

以Pentium 4 2.8GHz为例, CPU的外频为133MHz,它乘以21的倍频就等于2.8GHz。这个频率决定了处理器的算术单元的工作效率。热量控制单元能够影响到这个频率(图2)。当温度正常的时候,ALU(算术逻辑运算器)将会接受到2800MHz的频率。但当主板检测到CPU的核心温度达到一个特定的临界值时,热量控制电路就开始发送PROCHOT#信号,将空置的时钟周期插入到正常的时钟周期内,发送到CPU的调节信号如图3所示。

1-e12-2.jpg
图2
1-e12-3.jpg
图3

结果,PROCHOT#激活的无效周期会将某些正常时钟周期省略掉,使得最终发送给CPU逻辑运算单元的信号频率就会有所降低,从而降低CPU的工作效能达到降温的目的。虽然主板和CPU内部的时钟发生器还是保持在2.8GHz,但是CPU的性能也会随着发热量的增长而降低。Intel声称最终性能降幅可能达到30%~50%之多,这主要取决于CPU的工作模式。

随着温度的降低,热量控制电路将会开始减少空置时钟周期的数量以使CPU返回它原来的工作模式。只要CPU核心温度比临界值低1摄氏度时,热量监视器就会停止发送过热信号。随后,热量控制单元就会停止产生空置的时钟周期,CPU的性能也就恢复到2800MHz的正常值。这里有一个问题:什么温度值被定为临界值呢?其实,它对于不同频率的Pentium 4是不同的,Intel声称每一个CPU集成的热敏二极管在制造的时候已经被校准了,并且一旦热量监视器的临界温度设定好以后就再也不能更改了,我们无须进行干预,不用添加任何硬件。热量控制电路能够通过主板的BIOS或者用一个软件通过ACPI启用,如果它是通过软件启用的话,热量控制电路能够在“需求”模式下工作。也就是说,通过软件调节空置时钟周期和有效周期的比例,它能够在任何温度的情况下被启用,空置时钟周期可以达到总频率的12.5% 到87.5%之间。由于这样热量控制电路在默认的情况下是设置为禁用的,因此,你必须在系统启动前在主板的BIOS中打开此功能,或者在进入系统之后通过驱动或者一些其它特殊的软件将其打开。

那么热量控制技术对我们又有什么样的影响呢?例如:有一个Pentium 4 CPU,它工作在一个很差的散热系统之下,CPU和散热片之间没有涂上导热物质,并且系统风扇也关掉了,系统处于过热状态。所有的这些原因都可能导致CPU过热,因而这个CPU的性能将会比装备了良好散热系统或在其它具有良好通风环境的CPU差。这个问题在CPU超频的情况下更加明显。一颗超频的CPU会比它没有超频时发出更多的热量。因此,一个超了频却没有足够好的散热条件的CPU会比它在没有超频的时候慢也是很有可能的。

例如,我们把一颗Pentium 4 2.4GHz的CPU超频到3GHz,但不改进散热系统。在这个情况下,CPU的温度会迅速地达到临界值,同时热量控制电路开始起作用:CPU开始产生空置时钟周期。结果,用户会在启动的时候或者WCPUid类型的软件中看到CPU工作在3GHz上,但实质上处理器这时候的性能甚至比工作在2.4GHz的时候还低。这就是为什么有些朋友发现在某些情况下Pentium 4在超频后性能不升反降的原因,这也正是因为温控电路启动保护功能所导致的。

这种温控措施在一定程度上可以达到防超频的目的,因此对于喜欢超频的朋友只有采用更优良的散热系统将CPU工作温度控制到临界值以下才能达到提升性能的目的,否则我们建议你还是不超频。但无论什么过热原因,热量控制电路会设定一定的性能——温度比,从相关测试来看,当Pentium 4的核心温度从70摄氏度升高到75摄氏度的时候,性能的损失将达到10%,因此假若经常出现性能下降,换散热器是个不错的解决方案,能在投资增加不多的情况下,尽可能发挥电脑的全部性能。

如果上面的防护措施并不能阻止CPU温度继续上升,那么当超过特定值时温控电路就会启动第一套热敏二极管:它就不再只是降低CPU的速度,而是发送了终结信号,从而关闭整个系统。由于热量控制电路是集成到CPU里面和主板独立开来的,所以抗过热系统的反应非常快:温度的比较只需要十亿分之一秒。因此,当你把散热器从CPU移走之后,这个系统依然可以有效地保护你的CPU。值得注意的是:Intel声称在温度达到135摄氏度的时候才会发出终结信号。

可以看出,热量控制电路的优势非常明显,热量监测器及热量控制电路都是集成于CPU内部,与主板独立。通常,对于核心温度的检测和比较只需要极短的时间,这样在CPU风扇停转甚至脱落的情况下可以不用切断CPU的工作而让各种运行中的任务继续进行,不必担心数据未保存而丢失的问题,损失的只是系统性能暂时下降而已,而且当CPU温度降下来以后,温控电路又会让CPU恢复实际工作频率时的性能。在这种情况下,即使CPU的温度在临界值附近上下波动,电脑也能够比较稳定地工作,除非出现突发性事故,否则系统不会关闭。值得一提的是,Intel在最新EO版的Prescott核心中引入了第二代热量控制电路。与第一代相比,第二代热量控制电路最大的特点是可以通过动态调节处理器电压来降低温度。

结语:

随着处理器主频的不断提高,散热问题也变得越发突出。从目前的温控技术来看,Intel在Pentium 4上所采用的温控技术暂时走在了AMD的前面,它最先进之处具有智能性,极大程度上保护了数据的安全,而这也是温控技术的最大意义所在。不过,AMD目前对CPU温度控制问题也越来越重视,相信未来AMD也将很快推出更先进的温控技术来保护其“龙芯”!