用户
 找回密码
 立即注册
搜索

再次总结一下关于CPU的温度问题

[复制链接]
发表于 2010-1-19 05:24:57
本帖最后由 albert2kiss 于 2010-1-19 05:50 编辑

以下为转载内容
转自PCINLIFE
还有来自techpowerup的REAL TEMP官方介绍

夏天马上就到了,相信很多人在超频过程中,甚至常规使用时都很注重CPU温度的监控。
从目前的情况来看,即使同为45nm的CPU,在相同频率、相同电压下,温度相差都可能十分大。这到底是所谓的“测温bug”还是CPU核心本来就这么热?

下面就从Intel CPU的测温原理来看看温度监测“不正常”的原因。PS:此处只讨论Intel的45nm CPU,由于AMD的测温原理跟Intel有所不同,因此,如果大家需要了解AMD CPU的相关情况,我会考虑重新开帖。

早期的CPU并不具备测温功能,而从Socket插槽开始,主板通常会附带一颗温度探头,位于CPU与主板之间。但这样所测得的温度几乎不具备任何意义,因为真正发热的是CPU Die,于是,从PD开始,Intel引入了一种新的测温机制:digital thermal sensor (DTS),数字温度传感器。

DTS的工作原理是:Absolute Core Temperature = TJMax - DTS(实际温度=TJMax-DTS)。因此,CPU实际测得的数值并不是温度,而是DTS,要监控CPU的实际温度,就必须获得CPU的TJMax值:CPU能承受的最高温度。而Intel官方在TJMax上一直含糊不清,只是在去年的IDF大会上,Intel公布了45nm处理器的TJMax资料,但并不十分准确。因此,目前的CPU测温,可以说是100%不准确的,只能作为一个参考。

这实际上不能算是Bug,因为每颗处理器的核心不可能完全相同,因此TJMax值也肯定完全不同。Intel不可能在每颗CPU出厂之前都进行测试和校正,只能根据ES版CPU来制定一个大概的TJMax值。

另外一个重要参数是Tcase。Intel所建议的Tcase温度测试部位在IHS(Integrated Heat Spreader)中央,也就是通常所说的CPU铜盖中央。由于测试CPU表面的温度要比测试核心温度容易得多,因此,比起核心温度,监测所得的CPU表面温度更有意义。

下面是CoreTemp的作者给我的邮件全文:




H ello from Canada,

When running a high stress program like Prime 95 Small FFTs, the core temperature is about 25C hotter than the temperature at the center of the IHS or heat spreader on top of the cores.  This is where Intel recommends that the Tcase temperature should be measured.  When you are using a large air cooler, the side or top of the cooler will not feel very hot to the touch even when the core temperature is very high.  It's impossible to accurately judge the core temperature based on how hot the heatsink feels because the heatsink may only be a few degrees greater than body temperature.  It will feel warm but that's about it.  The heat dissipates very rapidly with some of the big, efficient air coolers that are available these days.

There are a lot of problems with the sensors that Intel uses in all of their Core 2 based 45nm CPUs.  There are a lot of variables which makes it difficult to do a fair temperature comparison between two different CPUs.

The first problem is that Intel has never properly documented TJMax.  They released some information about TJMax last year at their IDF conferences but some of the information released does not seem very accurate at all.  They also didn't include details like how much error is in their TJMax specification number.  With 45nm there seems to be as much as 10C of variation in TJMax and that's from one core to the next on the same CPU.  Without trying to do some sort of calibration to minimize this amount of error, accurate temperature comparisons are difficult.

The next problem is slope error in these sensors.  The futher you get away from TJMax, the more these sensors will move at a rate either faster or slower than changes in the actual core temperature.  At idle, this can result in another plus or minus 10 degrees of error.  Intel has never documented the size of this error.

You can have two CPUs that have the exact same part number but one might read too low at idle while the other one reads too high.  An actual core temperature of 40C might be displayed on one CPU as 30C and another CPU might show that as 50C even though the core temperature is exactly the same on both CPUs.  There are methods I've come up with to try and calibrate these sensors but very few users bother to do this.  Most temperature comparisons I read about are meaningless because of the amount of possible error.

The next problrem is sticking sensors at low temperatures.  It's possible for a sensor to get stuck at 50C and it will keep reporting this number even as the actual core temperature gets cooler.  This can make users think that their CPU is running "hot" but it might just be more sensor problems.

What I found during testing was that if you had sensors that weren't sticking and if you calibrated them then there isn't a big difference in the core temperature at idle between a wide variety of Intel's CPUs; Dual and Quad cores.  
At full load, if you have two 45nm dual Core CPUs and run them on the same motherboard, with the same heatsink and fan and at the same core voltage and at the same speed with the same load; there's not a lot of difference in temperature either.

I think many users try to make temperature comparisons that are not very fair and don't take in to consideration the significant problems these sensors have.  You have to do a lot of work to try and make a fair comparison.  Different users with different cases and air flow and room temperatures and 101 other things rarely equalize all of these factors and variables for a fair comparison.
I hope this makes some sense.  If you don't understand something or don't agree or need some more information then write back.

Here's the latest version of RealTemp I'm working on:
http://www.fileden.com/files/2008/3/3/1794507/RealTempBeta.zip

As long as your computer is stable at full load then core temperatures aren't too important.  I've learned to run Intel's CPUs as cool as possible for maximum performance and not to worry too much about exact temperature numbers because the sensors are too inaccurate.



在运行Prime 95或者OR这类FFTs测试软件时,CPU核心温度通常大概比表面温度高25度左右。注意:此时说的是满载温度,并不是待机温度)。当使用底部面积较大的散热器时,由于散热器与CPU接触面积较大,并且鰭片数量较多,因此即使CPU表面温度非常高,也不一定能用手感觉出来(实际上,即使温度很高,鰭片散热器温度也只会比体温高出几度,因此靠触摸等方法判断温度高低完全没用)。

而Intel在45nm CPU上使用的传感器也存在很多问题,所以单纯对比两个45nm CPU的温度也毫无意义(比如用E5200@4G的温度与E8400@4G的温度进行对比是完全错误的)。首先是前面提到过的TJMax,所有CPU的TJMax都不相同,Intel也没给出TJmax的误差范围。从CoreTemp作者对45nm CPU所进行的测试来看,即便是相同型号,相同条件下的两个CPU,TJMax的差距也能达到10°C以上。除非能进行大量的校正工作来缩小误差范围,否则要准确测得核心温度非常困难,这并不是制造工艺问题,也不是Bug。

除了TJMax,DTS传感器本身也有很多问题。CPU核心温度越低(也就是距离TJMax越多),传感器的精确度就越差。在待机状态下,这个误差能在10°C左右。即使是相同生产周期的两个CPU,假设他们的温度都是40度,那么监测所得的温度也可能是:一颗CPU 30度,另一颗是50度。


下载 (38.84 KB)
2009-5-17 14:19


传感器误差示意图


CoreTemp作者提到,大量收集用户手中CPU的各种温度监控参数,有利于减少误差,但很少有用户愿意反馈这些信息,而少部分反馈回来的信息,也基本无用,因为这些参数受到了太多外界因素的影响。

另外,Intel CPU的传感器在低温状态下会“卡住”。很有可能监测温度是50度,而实际上核心温度已经下降了很多了,但CPU的温度传感器仍然继续报告相同的DTS值。而如果CPU传感器没有故障,并且TJMax也经过了校准,那么可以发现,Intel的所有45nm CPU之间(包括双核以及四核)的待机温度并不会有太大差距。而对于两颗同为45nm的CPU(比如E5200与E8400),在频率,电压以及散热条件相同的情况下满载,他们之间的温度也不会有很大差距。


下载 (29.81 KB)
2009-5-17 14:19


这是CoreTemp作者对某颗Q6600传感器的测试结果

但通常情况下,用户所做的温度对比几乎都不能叫公平,因为中间会有散热器差别,机箱温度差别,室温差别以及CPU传感器本身的差别等因素。

因此,CoreTemp作者建议,以及他自己也是这样做的:在CPU超频并满载状态下,如果做好了常规的散热措施,并且系统稳定运行,那么就别去管核心温度了,因为它根本不重要,根本不可能准确。


总结以上,所谓的测温Bug实际上包含了很多因素。首先是TJMax的个体差异。然后是CPU温度传感器会有误差和故障,特别是在待机状态下。并且由于对每颗CPU都进行TJMax和传感器校准会耗费大量资金和精力,因此Intel永远也不可能这样做。而TJMax不能称为Bug,真正有Bug的是传感器。

所以,大家在做好散热措施之后,根本不用去担心待机温度,而不管检测到满载温度是高还是低,都应该做好散热工作,因为实际上,所有45nm的CPU在电压相近,频率相近的条件下,发热量都是基本相等的,完全不存在高温U或者低温U的说法,温度差异就是Bug,并且所有U在超频后都会很热~~


Real Temp is a temperature monitoring program designed for all Intel single Core, Dual Core and Quad Core processors. Each core on these processors has a digital thermal sensor (DTS) that reports temperature data relative to TjMax which is the safe maximum operating core temperature for the CPU. As your CPU heats up, your Distance to TjMax will decrease. If it reaches zero your processor will start to throttle or slow down so maximizing your distance away from TjMax will help your computer run at full speed and more reliably too.

Real Temp是一款专为Intel处理器开发的温度检测工具,支持各种单核心、双核心、四核心型号。它根据每个核心内集成的数字热敏传感器(DTS)报告其温度,并同时给出煳最高答应温度(TjMax)的距离,提醒你注意保持清凉。
在访问有很多款能够监测CPU的核心温度的软件,虽然它们的工作原理都相同,都是利用处理器核心中的数字感温器( DTS) ,但是所测得的温度却玩全不一样。作者就指出这些软件的原理都不正确,以致于都测到错误数值,特殊是在越低温荒环境下误差就越大。作者不是光说不练的人,他就实际开发一款号秤是疹没有误差的测温软体,就是现在的实时温度
使用道具 举报 回复
发表于 2010-1-19 05:36:59
本帖最后由 albert2kiss 于 2010-1-19 05:53 编辑

此前pangauto版主给出的那个资料,
可能时代太久远,CPU核心不具备内建传感功能,
明显是不准确的;
并且,很明显DTS显示的核心温度,
是独立于表面温度和其他温度的,
所以,根据表面温度推算核心温度的说法也明显不成立;
另外,虽然DTS所反映的温度,不完全准确,
但是还是同样具备参考价值,
也就是同一类型构架的CPU的普遍DTS感温,确实能反映CPU实际的发热程度
使用道具 举报 回复 支持 反对
发表于 2010-1-19 08:59:25
提示: 作者被禁止或删除 内容自动屏蔽
使用道具 举报 回复 支持 反对
发表于 2010-1-19 13:41:34
这篇文章 最后的结论 其实还是那一句话  还是在含糊其词
最有效的 是自己准备个 温度传感器 来测  HOHO  想必这种方法来的更容易
使用道具 举报 回复 支持 反对
发表于 2010-1-19 15:53:31
买个红外线温度传感 应该也只能测表面的温度
使用道具 举报 回复 支持 反对
发表于 2010-1-19 18:11:09
4# lloovveerr
以现在的INTEL技术而言,
表面温度的取得,应该还是非常准确的
能得到的内核温度数值,仅限于内嵌的二线式数字传感,
自备普通传感,恐怕会比内核中的数字传感,误差更大,
毕竟CPU内核是精确到NM级别的东西,
如果额外准备数字传感,可能结果误差会更大,
连INTEL自己都只能搞出这样一个数值,
就不谈其他了,
因为数字式传感原理都是一样的;;
使用道具 举报 回复 支持 反对
发表于 2010-1-19 18:45:00
所以都说是幻觉了:a159:
使用道具 举报 回复 支持 反对
发表于 2010-1-20 10:57:50
Cpu温度值应是个参考值。一台0.5级精度且符合计量法章程的温度计比主板贵。
使用道具 举报 回复 支持 反对
发表于 2010-1-20 11:27:36
天晴说的这个有点夸张了 。。
我去电子材料市场问过,0.1度精度的 测温计都要1K+    还是垃圾牌子的,好牌子的更贵   o.o
所以差不多知道个大概就可以了
不玩液氮那种极限,一般用感觉够了
使用道具 举报 回复 支持 反对
发表于 2010-1-21 00:01:01
专业了。。。。。
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则