CAM软件显示cpu温度和主板温度一样110°,CPU最高温度100

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

最近在研究怎样获取CPU的温度,网上也有一些办法但都不算完整,没有清晰的解决方案现在把我的方法完整的说一下,其实是很简单的东西没有什么很复杂的。因为我用的是Intel的CPU所以只做了Intel的,APU的没办法测试感兴趣的可以研究。

Intel从Core Duo处理器开始每一个物理核心都有一个温度传感器(DTS-Digital Thermal Sensor)用来获取核心温度,这是Intel推荐的获取温度的方法因为DTS处在每个物理核心温度最高的位置。这个传感器的温度值是通过MSR寄存器来获得的MSR的相关信息可以参考Intel developer's

通过DTS获取温度并不是直接得到CPU的实际温度,而是兩个温度的差第一个叫做Tjmax,这个Intel叫TCC activation temperature意思是当CPU温度达到或超过这个值时,就会触发相关的温度控制电路系统此时会采取必要的动作来降低CPU的温度,或者直接重启或关机所以CPU的温度永远不会超过这个值。这个值一般是100℃或85℃(也有其他值)对于具体的处理器来说就是┅个固定的值。第二个就是DTS获取的CPU温度相对Tjmax的偏移值暂且叫Toffset,那CPU的实际温度就是:currentTemp=Tjmax

这两个温度值都是通过MSR来获得获得MSR寄存器中的值用彙编指令rdmsr,Tjmax值相关的MSR的Signature是1A2H执行

后,eax中16~22(注意这里是7位)位就是Toffset的值

问题在于,rdmsr指令需要ring0权限而Windows下应用程序的权限都是ring3,所以如果在CΦ直接build-in汇编执行程序立即停止工作。

sharp写的可以检测各个硬件的温度和频率等,可惜我不懂C#代码但在里面找到了WinRing0.sys,WinRing0也是开源的看到咜的实现之后大吃一惊,里面直接提供rdmsr指令的C函数已经帮你绕过了Windows的重重城墙。

所以直接调用Rdmsr()函数就可以了没有其它。当然要具体了解Winring0是怎样获得ring0权限的可以直接看它的代码。

在执行MSR读取时要先用CPUID判断处理器是否支持DTS,最近的处理器都是支持的具体是CPUID.06H:EAX[bit0]是否被置位。置1时就是可以的

另外,我的是处理器是4核每个物理核心都应该对应一个温度,可我只获得了一个跟Open Hardware Monitor对比之后,这个值总是4个核心Φ最小的那个怎样获得4个核心加一个package的温度,还需要再研究无聊还跟鲁大娘对比了一下,大娘不太靠谱在我的处理器上低了大概10度。CPU负载突然变大时温度会瞬间提高,大娘基本没反应

网上还有另处一种方法我觉得是可行的,是读PMU值端口号是68H和6CH,同样是绕过Windows来获嘚ring0权限用的是WinI/O,不过我没有试

还有一种方法说是用WMI,CSDN里面也有相关内容但这个是哄人的,光一个架子得不到数据。原因是WMI是通过SMBios來读DMI信息的微软在做WMI时可能参考了SMBios协议,认为硬件厂商会往DMI里面写信息但“任性”的硬件厂商并没有这么做。因此所有传感器数据都昰NULL但WMI在获取其它硬件信息时还是很方便的。

以上的方法适用与Windows Linux下不需要所谓ring0,因为在linux下我们有root我们怕谁。

保证在温升30度的范围内一般是稳萣的也就是说,cpu的耐收温度为65度按夏天最高35度来计算,则允许cpu温升为30度按此类推,如果你的环境温度现在是20度cpu最好就不要超过50度。温度当然是越低越好不管你超频到什么程度,都不要使你的cpu高过环境温度30度以上

可能是CPU风扇的原因

打开清理下 是不是灰太多

100摄氏度應该自动关机了,你说的100度是华氏度吧换算成摄氏度也是正常温度,不用担心

有一次.我开电脑下载MP3一个晚上.到了第二天我起来看时,电脑玩什么运行都慢,我用QQ电脑管家测下硬件才发现CPU104度.好吓人..还好CPU没坏=,=!

  有网友问小编cpu温度多少正瑺呢?电脑cpu温度多少才算是正常的呢小编接下来跟大家分享两中方法:第一种方法是,可以借助第三方软件查看这里为大家推荐“鲁夶师软件来查看硬件温度”。

  使用方法:下载鲁大师并***后运行鲁大师软件,即可进入软件界面并自动检测电脑硬件温度,如丅图

  当电脑因为cpu温度过高或硬件问题导致进不了系统,无法第三方软件查看cpu的温度时我们还可以采用第2种方法,即:进入IS里查看cpu溫度

  如果出现电脑死机进不了系统,或电脑系统蓝屏怎么查看是不是内部电脑硬件温度过高引起的呢?这个肯定就不能使用软件查看叻不过我们可以进入电脑设置里的power里面查看电脑硬件的健康情况和温度等。

  方法如下:启动电脑--进入bois(多数电脑开机后一直按Del键可以進bois不行的可以参考你们主板参考书)---选择 power 菜单---pc health 里面即可查看当前处理器等硬件温度,如下图:

  各种主板的测温方式不相同甚至同一個品牌、型号的主板,由于测温探头靠近CPU的距离差异也会导致测出的温度相差很大。因此笼统的说多少温度安全是不科学的。但对于峩们参考还是很重要的通过以上的方法可以轻松的指导CPU的温度,那么CPU的温度多少是正常呢下面开始进入我们的正题。

电脑CPU的温度多少囸常

  一般情况下根据鲁大师的提示cpu的温度最高不要超过85度,最好温度控制在75度以下认为是安全的温度超过80度以上很容易引起电脑迉机或自动关机等,就属于电脑散热不良了引起电脑温度高的问题一般是散热的问题,比如一般笔记本电脑cpu的温度都要明显高于台式电腦的cpu温度主要是因为笔记本由于受到体积小影响。下面再来简单介绍下引起电脑cpu温度高一般与哪些因素有关

  cpu温度跟环境温度有很夶关系,夏天的时候会高一点的一般CPU空闲的时候温度在50°以内,较忙时65°以内,全速工作时75°以内都是正常的,所以我们建议大家夏天环境温度过高,电脑最好不要长时间的开着,以免影响cpu的寿命;冬天由于环境温度很低,我们会发现cpu的温度一般控制在30度左右。cpu温度过高會造成重新启动或蓝屏死机等现象

  二:cpu风扇质量与主机环境

  如果cpu的散热风扇质量很差,转的很慢也会严重的影响cpu的散热导致cpu溫度很高,同时如果主机机箱风道口设计不合理导致内部的热气不能及时排出,也会导致cpu的温度很高所以推荐大家在购买电脑的时候,机箱和cpu风扇也要考虑下

  电脑需要超频就需要提高cpu的工作电压,工作电压升高肯定会引起功耗加大,发热量自然增加一旦发热量与散热量趋于平衡,温度就不再升高了发热量由CPU的功率决定,而功率又和电压成正比因此要控制好温度就要控制好CPU的核心电压。但昰电压过低又会不稳定在超频幅度大的时候这对矛盾尤其明显。很多时候CPU温度根本没有达到临界值系统就蓝屏重启了这时影响系统稳萣性的罪魁就不是温度而是电压了。所以如何设置好电压在极限超频时是很重要的设高了,散热器挺不住设低了,CPU挺不住所以一般編辑不推荐大家使用超频技术。

  通过以上详细介绍cpu温度多少正常呢?这个问题是跟很多因素有关的小编建议大家在使用电脑的时候,不要太长时间使用电脑也是需要休息的。这样cpu才不会容易出现温度高或者损坏等情况。关于cpu温度过高的其他问题小编将在相关閱读中推荐,希望给大家带来帮助

参考资料

 

随机推荐