CPU测温软件怎么读出来的内核温度?有什么简单靠谱的 ...

论坛 期权论坛 金融     
hx9n   2022-6-14 19:42   5006   2
前几天,服务了我几年的NUC电脑开始不定期自动进入S4休眠,尤其是网页上出现视频的时候,过一会必然会开始休眠。在按下电源键从休眠中恢复的时候,映入眼帘丑陋的黑底白字提示我发生了什么:机器刚刚发生了温度进入了Critical状态。也许电脑小白将会立刻陷入恐慌,不知道发生了什么,但作为BIOS老炮的我立刻明白了发生了什么:因为CPU温度太高,ACPI的_CRT事件被触发了,操作系统进行了保护性休眠。(什么是_CRT,可以阅读这篇文章:老狼:CPU风扇停转后会发生什么?CPU凭什么烧不坏)
既然知道原因,那就开始解决问题。我先用测温软件检测了一下CPU各个内核在普通负载和高负载的温度。再打开机器,用皮老虎对着NUC的进风口和主板风扇等地方一统吹,再次打开了测温软件,发现平均温度降低了10度。问题解决,多么简单!今天,我来介绍一下我经常用得到的测温软件,同时本着专栏授人以鱼不如授人以渔的精神,科普一下测温软件是怎么读到CPU温度的。
简单靠谱测温软件:CoreTemp

很多同学用 NZXT's CAM和AIDA64测温,在我看来,有些杀鸡用牛刀了。这里介绍一个简单的小程序:CoreTemp[1]:



CoreTemp界面

1MB多一点的size,可以提供足够多的信息了。界面和著名的CPU-Z有些类似,简单,但信息量丰富。比较重要的有TDP、Power、TjMax和各个内核的温度,包括最小值和最大值。这点比较重要,大家可以将它在后台开启一段时间,运行一些拷机程序,看看最高温度能达到多大。
下载安装后,在我过热的NUC上打开,是这样:


这里需要注意我特别标出的两个值:我的主板BIOS设置的TjMax值是100度,也就是超过100度,PROCHOT#将被使能,就要开始降频了;而我的内核2在我几乎什么都没做的情况下,最高温度已经达到100度,已经开始降频使用。
那么这个TjMax是什么意思?这个软件又是怎么得到各个内核的温度的呢?
CPU内核测温原理

Intel在Pentium Ⅱ和之后的CPU中,植入了热敏二极管(Thermal Diode)直接测量核心温度,开创了半导体测温技术的先河,术语叫做DTS(数字温度传感器,digital thermal sensor)。与此同时,是在CPU内部集成了温度控制电路(Thermal Control Circuit,TCC),由其自身执行温度控制功能。在DTS温度超过CPU的额定核心最高温度(TjMAX,maximum junction temperature)时会引发CPU的降温措施,减慢CPU的执行速度,直至关机。
CPU可以工作的温度在-50°C到110°C之间。在-50°C以下,CPU将不能稳定工作。在110°C以上,CPU有烧毁的风险。这个范围之外,因为CPU内部器件比热容不同,膨胀系数不同,会导致CPU内部器件产生裂缝和虚焊等等风险。实际上CPU内部的传感器会不停的向CPU内部的管理器报告温度状况,这些传感器不但有最高值,也有最低值。他们的差不变,但中位线可以调整。就像一个滑动窗口,随时监控CPU各种温度异常,超过范围就会强制关闭CPU。这个窗口大致会在-35°C到110°C之间。因为DTS的值只有一个字节,我们就以TjMax作为中位线,DTS的数值就是相对TjMax的差值(Offset)。那么这个这个DTS的值,软件是怎么读出来的呢?
内核温度通过MSR寄存器可以读取。在x86编程“圣经”Intel的x86 SDM[2]的2.1节,MSR 0x19C就可以读到DTS的值:


注意两点:

  • 这个值是相对于TjMAX的差值(Offset),要先通过另一个MSR读到TjMAX的值,再计算成摄氏度。
  • 这个MSR是CPU中的PCU通过读取每个内核(Core)的DTS值,然后反映到MSR中的。也就是说这个MSR的作用域是各个内核:HT的两个线程共享一样的MSR,各个内核这个MSR读取的值不同。
结语

不但是CoreTemp,大部分测温软件都是通过这种方式读取CPU内核温度。最后,我给大家出一个思考题:我们现在知道每个内核的DTS温度可以通过MSR读取,是一组值;我们还知道系统温度控制系统的很多策略的触发温度是一个值,那么这个值和这组值,以及系统中其他部分的温度是什么关系?欢迎留言讨论。
欢迎大家关注本专栏和用微信扫描下方二维码加入微信公众号"UEFIBlog",在那里有最新的文章。关注公众号,留言“资料”,有一些公开芯片资料供下载。


参考


  • ^CoreTemp下载https://www.alcpu.com/CoreTemp/
  • ^x86 SDMhttps://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-vol-3b-part-2-manual.pdf
分享到 :
0 人收藏

2 个回复

倒序浏览
2#
pinguo  1级新秀 | 2022-6-14 19:43:16 发帖IP地址来自 福建
在Intel官网上看CPU,基本上都是商业级的,最低0℃
3#
prfnee  1级新秀 | 2022-6-14 19:43:36 发帖IP地址来自 中国
Throttlestop[doge]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP