POPPUR爱换

标题: 双核CPU的温度测量 -- By Core Temp Author---Zaarath 译--- 申请加精 [打印本页]

作者: zaarath    时间: 2006-10-28 14:41
标题: 双核CPU的温度测量 -- By Core Temp Author---Zaarath 译--- 申请加精
非常精彩的文章,作者的分析非常严谨。仔细看一遍你就会明白最新CPU (以Core 2, Rev F Opteron 为代表)的测温机理。为什么Core 2温度会显得很高,为什么有些K8可以制冷。如果你的英语过关,强烈推荐阅读。

http://www.overclockers.com/articles1378/



我把文章的第一部分译成了中文,希望大家能从文章中学到点东西。第二部分是关于Core Temp的使用,我就不译了。
--------------------------------------------------------------------------------------------------------------------------------------------------------
----译文----

这篇文章里我们将讨论Core Temp程序以及出于何种原因我决定编写这个软件。我希望各位喜欢学到一些新的,有趣的东西。

                                                         背景
作为电脑发烧友,把系统维持在顶尖状态是我们的追求。因了这个追求我们尝试各种各样的硬件监测程序来监测温度,电压还有风扇转速。可是一个问题总是挥之不去。
                                         “这些程序到底有多精确?“

多数现存的程序从主板上的super I/O芯片读取温度,电压以及转速信息,通过芯片生产厂家提供的公式进行转换,然后显示给用户。所有人都承认通过这种途径测量的电压从来不是精准的。

测量电压可以用万用表这样简单和直接的办法,可是CPU温度怎么办?很多人想知道关于CPU温度,他们主板上的传感器有多精确。以我个人的经验,我只能说“这些传感器很一般”。他们只能达到帮助判断CPU是否过热的程度。

厂家进行温度监测的方式造成了这个精确性问题。有些主板使用一个安置在CPU插座内部的测温二极管。这个二极管要直接接触CPU底部来达到测温的目的 ---- 这也许是最不准确的测温方式了。

好在这种拙劣的方式不再常用(实际上基本没有了)。这是因为绝大多数现代P4/Athlon64开始使用现代CPU内部安置的温度二极管,这种方式相对精准得多了,可是仍然有一些因素干扰信息的精确读取。

这些因素包括信号在到达Super I/O芯片被采样前必须通过的那些电路和部件。另外一个因素就是传感器所处的位置。在一个CPU核心上有若干部位产生热量,有些部位会比另一些部位产生更多的热。如果我们把一个传感器安置在CPU核心一个并不产生大量热的位置的话,这样我们测到到的温度会和把传感器安置在CPU核心最热的部分完全不同。

                                                     革新

Intel和AMD双双意识到到目前为止测温问题解决的并不好,于是用到了一个新的方式。这个方式仍然包括热敏二极管,但是热敏二极管是一个模拟器件,所以读数必须被转换成数字数据。这个工作由ADC(模数转换器)来完成。

一个热敏二极管加上一个模数转换器就构成一个被称为DTS(数字温度传感器)的部件。理论上来说这个DTS的工作方式十分简单:一个CPU核心上的电路从热敏二极管上采样然后把数字数据输出到CPU一个特定的寄存器中,从而任何程序都可以随意读取该数据。这种方式的长处就是所有工作都在CPU内部即时完成,和易于被干扰和衰弱的模拟信号相比,数字信号传输的时候不会损失精确性。

这个系统另一个优点就是你可以在一块芯片上集成若干个传感器。Intel和AMD都在CPU的每一个核心上集成了一个DTS,这意味着你可以看到你每一个核心的温度。例如当你在双核CPU上运行程序并把该程序的相关性设定到某一个核心的时候,你会看到只有一个核心会升温并且会升得非常之快。当然另一个核心温度也会上升,毕竟两个核心共处在一个硅片上,只是不会上升到全力工作的核心那么高罢了。

Intel 和AMD都使用DTS来监测过热并通过’throttling’或者完全关闭系统来保护CPU, 用何种方式由不同的极限温度决定。

第一个官方宣布使用DTS的是Intel在Core Duo (Yonah)系列,随之延续到Core 2 Duo系列。AMD官方宣布从Rev. F Opteron 开始支持DTS。有趣的是通过一些测试,DTS早在AMD 64芯片就已经存在了。

Intel指出他们的DTS被安放在CPU核心最热的部位。AMD虽然没说明他们把DTS放在了哪里,我可以肯定不是在最凉快的部分。

通过无数的测试,我发现对于Intel CPU,DTS报告的温度显得非常的合理。Intel的白皮书指出他们的CPU在出厂之前DTS都通过了严格的校准。

在AMD的Rev. F芯片上,DTS的温度报告也显得十分准确,但是从各种途径的报告和我从AMD白皮书上了解到的来看,AMD的CPU在出厂前DTS没有经过同Intel一般正确的校准。AMD声称他们DTS的精确度在±14ºC。我注意到AMD的一些较老的CPU(Rev F 之前)或者在两个Core之间有一个很大的差值,或者报告一个非同寻常的低温。我觉得这也可以理解,毕竟在AMD Rev F之前的CPU, DTS还没有被官方支持。

有两个更为重要的数值你一定要了解:

1.        TCaseMax: 这个值表示能使CPU 100%稳定运行的在 核心表面正中或者是IHS (就是cpu的金属顶盖)正中的最高温度。
2.        Tjunction (or TjunctionMax) 这个值表示在核心和核心所在PCB板之间所容许的最大温度,通常这个值要远高于TCaseMax.

很重要的一点就是在解读DTS温度时不要混淆这两个值。当DTS报告一个比TCaseMax还要高的温度时并不意味着CPU处于危险状态。因为TCaseMax是CPU所能忍受的最高外部温度。可是如果CPU达到了Tjunction,你就要小心了,这是一个你不想让CPU超过的温度。

在Intel CPU中TjunctionMax 不难被测到,在AMD Rev. F CPU中,TCaseMax可以被检测到。可惜的是我还不知道如何检测Intel CPU 的TCaseMax, 或者AMD CPU的TjunctionMax (这个值更为重要)。

DTS令人吃惊的是它用起来很简单。传统的Super I/O芯片要求你对不同的I/O芯片进行编程,因为他们所用的地址和算法各不相同。

使用DTS的话,你只需要读取MSR( for Intel ) 或者 NB 寄存( for AMD ), 简单的计算一下就成了,下面是公式:

AMD_CoreTemp = DTS_Value – 49

AMD的DTS数据是8位,可以理论上报告-49 – 206摄氏度的范围。

Intel_CoreTemp = Tjunction – DTS_Value

Intel 的DTS数据是7位,可以报告Tjunction和Tjunction往下126度。如果Tjunction 是85度(Conroe),则理论值下限就是-42度。可是我从没见过哪个CPU能报告低于0度的温度。这些CPU的DTS看来在某些温度点就停止继续下探了。

我开始Core Temp的编写是在我从一个朋友处听到关于Intel Yonah的一些有趣信息之后。他发现了这个DTS功能,我认为这是个好机会开始一个崭新的设计。

--- By Arthur Liberman [-请使用文明用语-orum]

[ 本帖最后由 zaarath 于 2006-12-11 08:35 编辑 ]
作者: zaarath    时间: 2006-10-28 14:43
如果很多人需要,我可以把整篇文章翻译一遍。
作者: zhxb99    时间: 2006-10-28 14:48
我需要看看,请楼主翻译一下,谢谢!
作者: popwangyuII    时间: 2006-10-28 14:59
大体过了一遍,无非还是K7那种方式和K8那种方式的内容.
作者: zaarath    时间: 2006-10-28 16:40
我把第一部分翻了一下,看在码字辛苦的分上,版主给个精吧。
作者: philip    时间: 2006-10-28 17:26
这是我第一次加精的文章,欢迎作者把全文翻译完
作者: 下午开船    时间: 2006-10-28 17:55
下载不了
作者: NONO    时间: 2006-10-28 19:24
好貼,一定要來支持:loveliness: :loveliness:
作者: gatorade    时间: 2006-10-28 19:25
支持翻译。
%……
作者: timdd    时间: 2006-10-28 20:29
看就随便看看了
下载不了...
作者: D65    时间: 2006-10-29 00:14
总之能量是守恒的。顶。
作者: 毛毛叉    时间: 2006-10-29 08:30
支持楼主,翻译的很好!
作者: 醉酒棕熊    时间: 2006-10-29 09:17
下载的主页无法访问...
难道被国内屏蔽了? :funk:
作者: k0838    时间: 2006-10-29 09:53
提示: 作者被禁止或删除 内容自动屏蔽
作者: 菜鸟来啦    时间: 2006-10-29 11:10
:lol:  LZ做PCI特派翻译员吧...:lol:
作者: OST_2005    时间: 2006-12-11 00:13
提示: 作者被禁止或删除 内容自动屏蔽
作者: Hunter001    时间: 2006-12-11 04:08
提示: 作者被禁止或删除 内容自动屏蔽
作者: zaarath    时间: 2006-12-11 08:37
因为coretemp很小,我作为附件直传到pcinlife上了,参考原帖。
作者: Hunter001    时间: 2006-12-11 08:42
提示: 作者被禁止或删除 内容自动屏蔽
作者: gatorade    时间: 2006-12-11 09:45
还好,猴子基本能看懂
作者: jogo    时间: 2006-12-11 10:05
提示: 作者被禁止或删除 内容自动屏蔽
作者: pkpk    时间: 2006-12-11 10:58
楼主强人呀,看了楼上兄弟的话,更是佩服:)
作者: RocketBoy    时间: 2006-12-11 11:01
原帖由 jogo 于 2006-12-11 10:05 AM 发表
其实,楼主对intel 975xbx主板的了解和精通是我在这个论坛上所仅见的,呵呵,不妨写个专题指导大家吧。

用975xbx主板超频后,不能使用everest,sadara等软件查看信息,否则cpu电压会被强制reset to default- ...

是啊是啊,楼主对975XBX的掌握程度超强...最初我也纳闷,为什么一直超不上去,结果电压被锁定了...虽然今天我有亲手锁定了电压,才发现只有这样才能启动EIST
作者: jogo    时间: 2006-12-11 11:18
提示: 作者被禁止或删除 内容自动屏蔽
作者: star_wrx    时间: 2006-12-11 15:33
超级好东西
一定要顶的
多谢楼主啊:loveliness:
作者: monaish    时间: 2006-12-12 18:57
顶!好东西希望能看到中文版!
作者: sonyrw    时间: 2006-12-12 19:45
好东西+好人一个。
作者: alom    时间: 2006-12-12 23:14
提示: 作者被禁止或删除 内容自动屏蔽
作者: 2314    时间: 2006-12-12 23:31
This a very straight forward program. Just run it and it reads your Yonah or next gen (Conroe/Merom etc.)
Die temperature.
Here's how to use it. When you launch it the main window will appear, along with a system tray icon:

1) Hover the mouse over the icon with enumerate all cores and show their temperature.
2) Double-Left click will either show or hide the main window.
3) Minimizing the main window will be hide it.
4) Single-Left click will bring up a Balloon Tip window with CPU and Core enumeration and temperature
readings.
5) Single-Right click will bring up the "File" menu. (Basically just 'Exit' option)

There are also settings that you can adjust:

1) Set the interval between each temperature read (10 - 9999ms).
2) Set the interval between each write to the log file (higher than read interval and up to 9999ms).
3) Toggle the logging On/Off.
4) Prevent from the "CPU is overheating!" message from appearing in case of overheating.
----------------------------------------------------------------------------------------------------------
Some chips either don't support this feature or might fail to provide a "Valid Reading"
If this happens you'll see a "(?)" right after the temperature value in question.

这是一个非常简单的程序,你只需要运行它就可以读出你的yonah(酷睿)或者更下一代芯片的核心温度

使用指南:你运行它的时候会出现一个主窗口,在右下角会出现系统托盘图标

1 把鼠标放在托盘上面会列举所有的核心并显示他们的温度(现在的本子不是双核的所以不知道到底是什么样子)

2 双击左键可以显示或者隐藏主窗口

3 最小化窗口就会自动隐藏

4 单击左键会出现一个气球窗口提示,显示所有的cpu核心温度(不知道具体什么样子,理由同1)

5 右键单击会出现文件选项(基本上只有exit)

你可以调整的选项如下:

1 温度读取时间间隔(10ms-9999ms)

2 温度读数写入日志间隔(大于读取时间间隔,小于9999ms)

3 锁定日志写入开/关

4 在超频的时候可以手工阻止“cpu过热”警告的出现

有些cpu不支持此种测温方式,因此不能够得到准确的读数,如果这种情况发生的话,在有问题的温度读数后面会出现“?”字样
作者: jpbird    时间: 2006-12-13 01:11
原帖由 gatorade 于 2006-12-11 09:45 发表
还好,猴子基本能看懂


这年头,猴子也懂得文化交流的重要性苦练阴文:p
作者: yankunxin    时间: 2009-6-22 21:18
支持楼主,翻译的很好! 支持了
作者: zajara    时间: 2009-6-22 21:35
为什么这样的帖子我就顶不起来呢?
作者: cobra_woo    时间: 2009-6-22 23:43
不错  支持分享
作者: ryc    时间: 2009-6-23 01:41
为什么软件不是中文的呢?
作者: 4479237    时间: 2009-6-23 08:27
挖坟。。。。。。。。。
作者: paullu126    时间: 2009-6-24 13:09
我的每台电脑都装了core temp,确实是好软件。
作者: wzn111    时间: 2009-6-24 23:18
这个我早就在用了。。
作者: 8876711    时间: 2009-6-25 01:36
看就随便看看了
下载不了...
作者: 93blue    时间: 2009-6-25 18:30
好帖。。

不过现在测温还是得靠手。
作者: 罗艾    时间: 2009-7-23 16:48
这个帖子是用来“缅怀”core temp作者的吗?
作者: sarsqlg    时间: 2009-8-25 17:29
我讨厌english
作者: danieltao    时间: 2009-9-25 22:52
下了,看看先




欢迎光临 POPPUR爱换 (https://we.poppur.com/) Powered by Discuz! X3.4