600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > CPU 风扇一罢工 电脑越来越烫越来越烫越来越烫……

CPU 风扇一罢工 电脑越来越烫越来越烫越来越烫……

时间:2019-05-07 12:49:43

相关推荐

CPU 风扇一罢工 电脑越来越烫越来越烫越来越烫……

CPU 风扇停转后会发生什么?CPU 凭什么烧不坏

老狼,UEFI 固件、服务器、嵌入式产品、开源硬件从业者

当你坐在电脑前愉快的玩耍时,有没有想过一个细思恐极的问题:如果忽然我的 CPU 风扇卡住不转了,我的 CPU 会不会烧掉?

亦或整个主机被融化掉?

值得庆幸的是,聪明的工程师们早已开发出有效的处理器温度监控、保护技术。以特殊而敏锐的“嗅觉”随时监测 CPU 的温度变化,并提供必要的保护措施,使 CPU 免受高温下的灭顶之灾。在我们看来,探索这项技术如同开始一段神秘而有趣的旅程,何不与我们同行?

历史

建立 CPU 温度监控系统,首先要选择一种合适的温度测量器件。能够测量温度的器件有很多种,如热敏电阻、热电偶和半导体温度传感器等。电脑中最早使用热敏电阻(Thermal Resistor ,简称 Thermistor)作为测温元件,CPU 插座下竖立的球状或带状的小元件,就是热敏电阻。但这种接触式测温元件和 CPU 接触不够紧密,CPU 核心(die)发出热量由芯片封装向外部散热,其表面温度和核心温度之间约有 15℃~30℃ 的温差,同时因芯片封装形式不同,及环境温度的不同而难以确定。由于热敏电阻先天不足带来了一个十分严重的问题:表面温度不能及时反映 CPU 核心温度变化,用专业术语说就是存在一个时间滞后的问题。在这种背景之下,如果再以表面温度作为控制目标,保护电路尚未做出反应,CPU 可能已经命归黄泉了。

在这种情况下,Intel 在 Pentium Ⅱ和 Celeron CPU 中植入了热敏二极管(Thermal Diode)直接测量核心温度,开创了半导体测温技术的先河,术语叫做 DTS(数字温度传感器,digital thermal sensor)。与此同时,是在 CPU 内部集成了温度控制电路(Thermal Control Circuit,TCC),由其自身执行温度控制功能。在 DTS 温度超过 CPU 的额定核心最高温度(TjMAX,maximum junction temperature)时会引发 CPU 的降温措施,减慢 CPU 的执行速度。

那么如何减慢 CPU 的执行速度呢?不外乎让 CPU 做做停停磨洋工和做的慢一点两种。在 Pentium Ⅱ时同时引入的 TM1(Thermal Monitor1)就是磨洋工做法,而在 Pentium4 引入的 TM2(Thermal Monitor2)则是让 CPU 干的慢点。如下图:

可以过热会引发 PROCHOT# 信号,这时 TM1 会将一半的 Duty cycle 关掉,就是干一下,歇一下。与 TM1 相比,TM2 可以提供更智能,更有效的处理器热量功耗的管理方式,在保证处理器基本性能的前提下尽可能在满负荷情况下降低处理器的功耗和温度。它会降低 CPU 频率,与此同时通过与电压管理模块 VR 通讯,降低 CPU 电压,双管齐下保证 CPU 温度降低。

也许你还有疑问,如果降频还不足以降温呢?毕竟风扇不转后再慢的速度,CPU 温度还是会上升啊!下面我们从硬件和软件两个角度来看看原理细节。

原理

为什么我们要分成硬件和软件两部分来讲呢?因为依靠单纯的硬件和单纯的软件都有各自的问题:

1. 纯硬件:缺点是软件如操作系统不参与,OS 无从知道硬件过热,谁也不希望文件写着写着忽然断电,文件都丢失了。

2. 纯软件:软件容易死掉,假使操作系统宕机,纯软件方法没有办法继续降低 CPU 温度,会导致 CPU 烧毁。

只有结合软件和硬件,才能提供保障和有好的用户体验。软件预先报警和阻止温度上升,硬件在软件行动不利后插手进一步阻止温度上升,并在危急时刻自动切断电源。

硬件

在 Core2 后,Intel 融合了 TM1 和 TM2,提出了自适应温度监控(Adaptive Thermal Monitor),它实际上是结合了两者。Intel 在每个内核和核显上都放置了 DTS,并通过 TCC 随时监控各个 DTS 的状况,这些 DTS 的温度值可以通过 MSR 或者 PECI 总线进行读取。CPU 温度上升后,Intel 为保障系统安全设置了两道防线:

1. PROCHOT#

为保证 CPU 工作在额定最大功率下(thermal design power ,TDP),Intel 为 CPU 设定了额定核心最高温度(TjMAX,maximum junction temperature)。TjMAX 是系统可以正常工作的最高温度,它通常是不能修改的。当 CPU 内任何 DTS(数字温度传感器,digital thermal sensor)高于 TjMAX 后,CPU 的 PROCHOT# 信号线就会被置起。PROCHOT# 信号线通常是双向的(在某些低端 CPU 上是只能 in,或 out),它可以通知外部 EC、BMC 等芯片 CPU 温度过高,也可以用于 CPU 感知外部某器件温度过高,而一样进入 CPU 降温模式:减慢 CPU 的执行速度。

“现在很多笔记本厂家都引入了一种名叫 BD PROCHOT(Bi-directional processor hot)的功能来解决高端 GPU 和 CPU 的发热问题。其核心原理就是在独显工作的时候,当其温度超过某一阈值,利用 PROCHOT# 通知 CPU 降频以达到减少发热的目的。反过来亦然,详情见文后的扩展阅读部分。“

PROCHOT# 是 CPU 的第一道防线,它是温度变高,TCC(温度控制电路,Thermal Control Circuit)反应的结果而不是原因。当这条黄线被跨过后,CPU 电压管理模块立刻行动起来:

A.立刻利用 TM2 降低频率和电压,直到 DTS 不再超过 TjMAX。因为可以选择的频率和电压有很多档,频率和电压是按照一定算法逐渐降低的,力度也是逐渐加大。

B. 如果温度继续上升到一个 Delta 值后,TM1 也会起作用,删除掉一部分工作周期,让 CPU 多休息一下。这时实际的效果是 TM1 和 TM2 的叠加。

2. THERMTRIP#

为保证 CPU 不会被毁坏,这是最后一道防线,当发生灾难性温度时(catastrophic Critical Temperature),THERMTRIP# 会被置起用以通知外部管理器件,同时 CPU 电源管理器会立刻强制关闭电源。这是一种类似保险丝的熔断机制,你会看到系统立刻掉电了,只有在系统凉下来之后,你才能恢复上电。

这里需要特别指出的是,主板厂商根据需要,可以在 BIOS 设定一个比 TjMAX 更低的温度来规避可能的风险,这个温度同样也可以产生 TjMAX 一样的相关动作。

好了,CPU 有了这两个双保险,看起来性命无忧了,但是我们的数据呢?达到 THERMTRIP# 可是会自动断电的。这就要靠软件来保证了。

软件

要读懂软件需要 ACPI 的背景知识(ACPI 与 UEFI - 知乎专栏)。ACPI 规定了几个温度阈值,如下图:

BIOS 可以设置这些阈值的具体数值,并通过温度中断告诉 CPU 阈值被突破。操作系统的 OSPM 在超过_PSV 的温度被报告后,会开始利用 EIST(P-State,CPU 省电的秘密(一):EIST - 知乎专栏)降频和利用 T-State 来关掉一部分有效时钟周期,这点和 TM1 和 TM2 十分类似,不过是 OS 发起的。在突破 AC1 和 AC0 后,OS 通过 ACPI 提供的方法疯狂提高风扇转速,尽力把情况控制在自己的掌握之中。当温度继续上升,到达_CRT 时,OS 会立刻发起强制关机,避免数据丢失。通常_CRT 温度会小于 THERMTRIP# 的温度。这种控制温度的方法叫做 on demand thermal mode。

这么多的温度阈值,软件方法和硬件方法,他们是怎么协同工作的呢?我们通过一个例子来串联一下所有的知识点。

Case Study

还是回到我们最初的例子。你正在愉快的玩着游戏,忽然有什么事情发生了:周围忽然好安静。喧嚣的 CPU 风扇忽然没了声音,更糟糕的是,你的操作系统也忽然死机了,游戏的人物僵住了。

正在你脑子里在考虑是不是某个敌人放出了时间停止魔法,你的电脑机箱里面正在进行一场温度与时间的赛跑。CPU 温度越来越高了,一个个报警器都开始运作了:

1. 温度首先突破软件的_PSV。因为 OS 死掉,CPU 温度继续升高。

2. 连续突破_AC0、_AC1 和 TjMAX。OS 还是无所作为,硬件 Adaptive Thermal Monitor 开始发挥作用,降频和抽频,温度上升有所减缓,但因为风扇不转,温度继续上升。

3. 突破_CRT。太可惜了,因为 OS 死机,没有抓住最后的机会保存你的游戏,你的进度丢失了。

4. 突破 THERMTRIP#! 你就听吧嗒一下,你的世界更清净了,电脑直接关机了,电源风扇和显示器都关闭了。

这时如果你不信邪,按下电源键试图再次开机,会发现没有任何反应。你拆开机箱,折腾了半天,徒劳无功,并开始怀疑人生。最后抱着仅剩的一点点希望,你颤抖的手按向电源,同时向上天祈祷。哇,开机了,电脑没坏啊!这时你应该注意到了呆掉的 CPU 风扇,并意识到 CPU 温度管理救了你一命。谁说这不是个智能家电,你的眼睛里充满着劫后余生之后感动的泪水!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。