cpu风扇转速慢_谁在控制CPU风扇转速?什么是DPTF?

5d22b9f7fce537bc9b3a19caee0367b1.png

风扇,是CPU、内存和显卡等设备的主要散热渠道,也是计算机系统主要的噪音来源,人们对它是又爱又恨。风扇在机箱里面一会转的快,一会转的慢,它的控制系统在哪里呢?大部分人认为是BIOS控制着它, 毕竟BIOS有很多控制选项和它相关:

cb2a24392fd5215be335aeb314fb0cbf.png

有些OEM的BIOS允许更加精细的控制:

18d6dd5f6a9413aff95df97cc95eaf46.png

其实不然。除了显卡风扇由显卡的固件自己控制之外,机箱里的其他风扇,包括CPU、内存和机箱风扇都不由BIOS控制,那么是谁在掌控着这一切,BIOS在其中扮演什么角色?我们今天就来一起了解一下,并介绍风扇最新控制技术:Intel的DPTF。

谁在控制风扇?

BIOS并不控制风扇转速(尽管从能力上来说也可以),因为BIOS主要的生命周期都在启动前,仅仅一些运行时(Runtime)和SMM程序被留了下来,而风扇转速控制是从一开机就要开始,直到关机的。有的同学也许注意到了,有些主板在电源一插上,开机按键还没有按下,CPU风扇就已经转了几下,而这时BIOS还没有开始运行。那么这个控制风扇旋转速度的幽灵到底是谁呢?在笔记本系统中是EC(一个16位的小芯片,它与服务器中的BMC类似,掌控笔记本电脑的方方面面),服务器中是BMC(今后有机会专门讲,现在知道是个专门管理主板上方方面面的芯片,也有自己的固件),而台式机中有可能是EC、ME等。

看过我介绍风扇的文章:

老狼:CPU风扇是如何工作的?​zhuanlan.zhihu.com
a32a102a2d3082282378c51b46721b41.png

就知道风扇的控制曾经极其简单,只有两种状态:转还是不转,策略也十分简单,那就是开机接通电源就转,关机就停,从而也不需要单独的控制。如此简单粗暴的策略显然会被扫进历史的垃圾堆里面。一个好一点的策略是需要降温的部分温度高就转快点,加速让空气把热量带走;如果温度低就转慢点,减低噪音。要做的这两点需要两个前提条件,就是转速可控的风扇,和温度(如CPU)的读取。

四根线的Smart Fan让精确的风扇控制成为可能:

2a35ab709103fb88a6b24c53b9cb2837.png

通过四条连线,我们可以控制想要它多块速度旋转,也可以了解它现在的转速:TACH (tachometer) 线用来汇报风扇转速,而PWM线则用来控制转速。

那么如何了解温度情况呢?主板的温度可以有自己的传感器,但CPU的温度如何得知呢?对硬件和BIOS有一定了解的同学可能立刻想要回答:”通过MSR寄存器!“,是的,CPU内部的DTS(Digital Thermal Sensor)会把CPU内核温度反映到MSR中去,访问它可以知道CPU内部的温度,但这是带内(in-band)的访问方式,即运行在CPU上的程序才能够得知这些信息。那带外设备呢(OOB, out-of-band)?可以通过PECI(platform environment control interface)。是的,你没有看错,我也没有写错,不是PCIE(尽管字母一样,顺序不同)。它是一个一根线的总线,可以用来读取CPU内部的信息,它的故事我们今后再说,现在只要知道,通过PECI,带外设备就可以探知CPU内部DTS的温度信息。

好了,万事俱备,只欠东风,现在还需要一个中央控制机构,通过读取DTS的信息,来通过Smart Fan接口精确控制风扇转速。在服务器领域,这个机构就是BMC。服务器机箱里面风扇众多,CPU风扇仅仅是其中一部分,还可能有内存风扇、扩展槽风扇、磁盘阵列风扇和机箱风扇。尤其是磁盘阵列风扇可以是一组风扇。我曾经调试过的8路服务器,开机后,风扇噪音就像飞机起飞,完全不可以呆在旁边。服务器机箱还有单独的风道设计,良好的风道,可以精确控制各个地方的风扇,形成良好的风道,从而节省一部分风扇,如内存风扇,让穿堂而过的风帮助发热巨大的内存来撒热。这些区域可以形成多个感热区:

8c8c5fc67e8b3fbb6c257b9377986ae5.png
来自ACPI Spec 5.0

协调这些温感区十分复杂,BMC的FSC(Fan Speed Control)子系统就是用来完成相应任务的。

对笔记本和部分台式机来说,EC控制着风扇(EC是什么可以看这篇文章:老狼:合上笔记本的盖子会发生什么?背后的机理是什么?)。笔记本相对简单,一般只有一个温感区:

2252902afcb84fcecdf10e52e34a3d20.png
来自ACPI spec 5.0

部分台式机没有EC,ME控制读取DTS来控制风扇转速。

好了,我们现在总结一下,BMC、EC或者ME这些带外设备,他们通过PECI读取CPU内核DTS的温度,来控制CPU风扇;也通过其他方式读取其他的温度传感器(如磁盘的SMART信息,DIMM的温度传感器信息等等),来控制它们那里的风扇。策略就是温度低转慢点,温度高转快点,简单而高效。由于它们是带外设备,不受CPU死机的影响,可以高效而不被干扰的完成任务,是散热的可靠保证,本文结束!

慢着,这似乎不是最优解。靠温度来散热毕竟被动,总是晚了一步,能不能根据工作量(work load)来散热呢?这里就要引入Intel的DPTF了。

什么是DPTF?

如果问你,谁知道现在的Workload是大是小?答案当然是操作系统了,它才有现在运行程序的详细信息。如果能够让操作系统来控制风扇,就可以有的放矢,在工作量大的时候加速风扇,而不是等工作一会有温度上升再来降温。这是一种主动散热的方案,也是一种带内策略

操作系统要控制风扇,就要知道有哪些风扇,它们都各自给谁散热,而这些信息又只有BIOS才能够知道。Intel提出DPTF(Dynamic Platform and Thermal Framework)来规范这些信息:

e58128dea9a4f1002355b8ab17feca94.png

DPTF的详细内容我们今后再详述,我们今天只要概括了解一下皆可。DPTF继承了已有一些温度控制ACPI表,并扩展了很多新表来综合成一组规范,要求BIOS必须提供这些表来告诉操作系统这些信息:

1. 有哪些散热设备,都给谁散热,传感器在哪。

2. 几组管理策略(Policy),和其中引发的条件。

3. 精确的RPM风扇信息,cTDP等。

有了这些信息,操作系统就可以按需调整风扇转速了,结合PState和TState,也可以同时对CPU的性能做出综合控制。值得一提的是DPTF提供的几组策略,可以在运行时动态切换,从而让风扇控制更加细腻。例如变形本,变形成平板后散热困难,可以给出在这种情况下散热的策略;打开后散热条件改善,这种情况下散热策略;插入Dock后,有了电源和Dock本身散热的支持,这时候细化的散热策略。更好的风扇控制意味着更低的噪音和提供当期情况更好的性能:

b653b2943d03459b3afbcd82206ca639.png
图片来自IDF

结论

那么BIOS在两种风扇控制策略中扮演什么角色呢?BIOS对于DPTF来说当然是信息提供者,对于EC/ME的风扇控制来说,BIOS只是它们控制模式的配置者,因为他们没有显示界面的能力。本质上是个二传手,把用户设置的内容告诉EC或者ME罢了。当然BIOS可以设置几个温度阈值来处理紧急温度事件,详见:

老狼:CPU风扇停转后会发生什么?CPU凭什么烧不坏​zhuanlan.zhihu.com
95a3330f566421aa0c8a4ce9dbafc605.png

带内的DPTF和基于带外的风扇控制又是什么关系呢?它们可以并行不悖。

986a82261a0e0484c9ae028d8e908193.png

从图中我们可以看到PCH和BMC都可以控制风扇的转速。带外风扇控制出现的早,对workload后知后觉,但不会受到CPU死机的影响。DPTF在继承了已有一些温度控制ACPI表的基础上,扩展了新表,来让操作系统做主控制风扇,以和workload同步。但是操作系统死机,DPTF的大部分功能就失效了,这时带外风扇控制依然发挥作用来降温。在两者都失效的时候,THERMTRIP#最后的熔断机制可以保证CPU在极限情况下不会被烧毁。

其他CPU电源管理文章:

老狼:CPU省电的秘密(一):EIST​zhuanlan.zhihu.com
02010b3353bc5c86edcadf4c5d1254a0.png
老狼:CPU省电的秘密(二):CStates​zhuanlan.zhihu.com
b019b24ce71c7619ee74755908633b45.png
老狼:睿频:榨干CPU所有的潜力(CPU电源管理系列番外篇)​zhuanlan.zhihu.com
9cb7be5497c451e557d71107d705869a.png
老狼:CPU风扇停转后会发生什么?CPU凭什么烧不坏​zhuanlan.zhihu.com
95a3330f566421aa0c8a4ce9dbafc605.png
老狼:CPU中的电源管家:PCU​zhuanlan.zhihu.com
44842ef6eae1a797420ae98083dd108f.png
老狼:TDP是CPU的功耗吗?TDP是固定不变的吗?​zhuanlan.zhihu.com
87cb2892724ac673f3b50a295df90af5.png
老狼:电脑内存占用满会比占用率很低时更加费电吗?​zhuanlan.zhihu.com
a136635a92dbf37f886058413d1a160a.png

欢迎大家关注本专栏和用微信扫描下方二维码加入微信公众号"UEFIBlog",在那里有最新的文章。同时欢迎大家给本专栏和公众号投稿!

97c92fff91219ea11a8de91f8de4f65e.png
用微信扫描二维码加入UEFIBlog公众号

参考资料:

[1]: Understanding Intel's Dynamic Power and Thermal Framework 8.1: Smarter Throttling

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值