谢邀,并不是温度越低越好,太低了会超过 DTS 温度测量窗口下线,导致芯片认为温度过高,触发温度过高的保护机制。下面我们来看看为什么。
芯片内核温度的测量方法
我在这篇文章中介绍了芯片温度传感器的历史:
简单来说,Intel 在 Pentium Ⅱ和 Celeron 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 之间。
如我们看 Baytrial 的窗口空间大小:
因为 DTS 的值只有一个字节,Tjmax 就是中位线。我们看到 207 是 10 度,很容易看出 255 的度数是零下 38 度。再低了 DTS 的值就翻转成了 0,那么对应的温度是多少度呢?
127+90=217 度!
也就是说在 Tjmax 是 90 度的时候,最低温度是零下 38 度,再低了就变成了 217 度。在这时,如果还没开机,直接就开不了机,如果正在运行,直接就会引发最高温度的熔断机制,保护 CPU。就如同温度真的过高一样,详见:老狼:CPU 风扇停转后会发生什么?CPU 凭什么烧不坏
那要测量更低温度怎么办?
我们知道 Intel 的 CPU 不是都面向台式机,还有面向物联网的设备,这时需要支持的温度范围要很广。如上面那个例子中的 Baytrail,面向物联网的 Sku,最低温度可以到零下 50 度。那么怎么支持这个温度呢?十分简单,就是下调温度窗口的中位线,也就是 Tjmax,它是可以调节的。如我们把 Tjmax 改成 80 度,最低温就变成了零下 48 度。
我做过一个板子: 老狼:Minnowboard MAX 介绍, 有客户给我打来电话,说温度在零下 40 度不能开机。我把板子拿回家想要放在冰箱的冷冻室试验一下,发现冰箱最低温才 -25 度,远远不够。最后不得不找了个低温实验室才解决问题。那可是个夏天,带着一袋子厚衣服,披上实验室的大衣让我现在还记忆犹新。我当时不禁对客户想要干什么感到好奇,打听之下,才知道他们要把板子做成摄像头,放在加拿大最北边的省份来监控交通违法,那里冬天温度最低就是 -40 度!知道我是怎么支持 -40 度的吗?其实就是把 Tjmax 下调到 80 度而已。
其他
DTS 的度数并不太准,根据资料,DTS 在 60 度以下的准确度是 8 度左右,在 60 度以上是 6 度左右。液氮制冷不是液氮直接倒在上面,也不是没开机就制冷的。