首页 > 电脑数码 >

CPU是怎么调节输入电压的?为什么要这么做?

343次浏览     发布时间:2024-01-18 18:38:14    

有朋友问我CPU的核心电压Vcore是多少,我的答案是大概1V左右。这个回答引起了争议,”到底是左还是右,计算机科学这种事可容不得模糊!“,我也很无奈,核心电压是个动态变化的过程,会随着运行频率不同会被动态调节,1V只是个中位数。核心电压也曾经小而美,但随着CPU电源管理的演进早已十分复杂。今天我们就一起来了解一下为什么要随着频率不同而改变电压?怎么和由谁改变电压?电压调节的演进等等,也就是从Why,How,Who和When来全面掌握CPU电压调节的知识。

WHY?为什么要调节电压?

除了提供更高的性能之外,CPU们的战场还有一个:谁的能效比更好。现代CPU往往采用低电压大电流的供电方案,也是为了改善能效比:低电压带来低功耗。要理解这点,要从原理上谈起。

从含有1亿4000万个场效应晶体管FET的奔腾4到高达80多亿的Kabylake,Intel忠实的按照摩尔定律增加着晶体管的数目。这么多个FET随着每一次的翻转都在消耗者能量。一个FET的简单示意图如下:

当输入低电平时,CL被充电,我们假设a焦耳的电能被储存在电容中。而当输入变成高电平后,这些电能则被释放,a焦耳的能量被释放了出来。因为CL很小,这个a也十分的小,几乎可以忽略不计。但如果我们以1GHz频率翻转这个FET,则能量消耗就是a × 10^9,这就不能忽略了,再加上CPU中有几十亿个FET,消耗的能量变得相当可观。

从图示中,也许你可以直观的看出,能耗和频率是正相关的。这个理解很正确,实际上能耗和频率成线性相关。能耗关系公示是(参考资料1):

P代表能耗。C可以简单看作一个常数,它由制程等因素决定,制程越小,C越小;V代表电压,和P是二次方的关系;而f就是频率了。理想情况,提高一倍频率,则能耗提高一倍。而V的幂函数关系对P来说更至关重要。

通俗的来讲,CPU可以看作由几十亿到上百亿个小开关组成的。开关切换的速度f决定了计算机的性能。为了高性能,必须提高开关速度f,这才是大家关心的。而V则因为省电的原因越小越好。那为什么不把v定成很低很低呢?

我们这里要引入门延迟(Gate Delay)的概念。简单来说,组成CPU的FET充放电需要一定时间,这个时间就是门延迟。只有在充放电完成后采样才能保证信号的完整性。而这个充放电时间和电压负相关,即电压高,则充放电时间就短。也和制程正相关,即制程越小,充放电时间就短。让我们去除制程的干扰因素,当我们不断提高频率f后,过了某个节点,太快的翻转会造成门延迟跟不上,从而影响数字信号的完整性,从而造成错误。这也是为什么超频到某个阶段会不稳定,随机出错的原因。那么怎么办呢?聪明的你也许想到了超频中常用的办法:加压。对了,可以通过提高电压来减小门延迟,让系统重新稳定下来。

也就是说,为了省电,要降低V,但为了达到数G的主频,而不得不提高电压V到一个可以接受的最小值,达到一个平衡。

我们来总结一下,对于一定频率,需要保证一定的最低电压,虽然不同芯片这个值不同,但同一种芯片却有着明确的对应关系,我们把它叫做频率电压对照表T1。它是一个静态表,T1往往存贮在PCU里面。PCU是什么我们今后再介绍。

怎么和由谁改变电压?

在曾经那个什么都很简单的年代,CPU一开机就是一个频率,当然没有动态调整电压的需求,这一切随着EIST的引入而不得不发生了改变。

有了EIST,随着工作量不同,操作系统可以动态调节频率。而光调频率不调电压,节能的目的就大半浪费了。于是Intel提出来VRM(Voltage Regulator Module, 电压调节模块)标准,对位于主板上的VRM建立了标准,以期规范其电气特性和CPU和VRM的通讯协议。

图片出自参考资料3

VRM负责将8/4 pin的CPU 12V供电转成CPU的低电压输入。最新的VRM已经是11.1了,可以在Intel官网上下载到,我也在参考资料2里面附上了它的链接。

对于其中的电气标准我们这里不再详述,CPU和VRM如何通讯才是我们感兴趣的地方:

可以看到,CPU传入VID给VRM,VRM根据VID给出不同的Vcore。VID原来有5 bit,现在被扩展到了8 bit。不同的VID根据标准对应不同的电压,对应关系太长,我这里只列出最大和最小值:

有同学会问最小值只有0.03125v, 这么小能够驱动CPU内核吗?这个是理论上VRM可以提供的最小值,而真实条件下,PCU并不会输入11111101的VID值。

电压调节模块VRM根据传入参数不同,根据标准提供不同的电压。那么谁来提供VID呢?还记得我们前面说的表T1吗?PCU在改变频率的同时,根据频率找到响应VID,传给VRM来得到相应电压。

VRM在哪里?

看到VRM有spec,有些人认为它是一个模块,实际上它是由几部分组成的:

图片出自参考资料3

包括MOSFETs,Chokes(电感), 电容和PWM芯片。 PWM芯片实现了VID==>电压的逻辑,常见的是ISL6334,支持VRM 11.1标准。

最开始VRM只有一个,给CPU内核供电。随着北桥和GPU被集成进CPU,VRM也由一个变成了5+1,分别是给CPU的:Core VR、Graphics VR、PLL VR、System Agent VR和IO VR,加上另外的内存VR。

高端VRM效果不错,但低端主板VRM十分糟糕,Intel在Haswell将为CPU服务的VRM全部集成进了CPU,变成了FIVR(Fully Integrated Voltage Regulator,全集成式电压调节模块)或者ISVR(Integrated Silicon Voltage Regulator),只在主板上留下了为内存服务的VR:

FIVR的电气特性很好,同时也大大简化了主板的设计,收到很大欢迎。但是因为发热的问题,后期被移出CPU,再后面又被重新加入。FIVR不可或缺的一个重要原因是如果希望CPU中各个内核工作频率不同,又要省电,最好它们都有自己的VR,FIVR可以做到这一点,每个core都有自己的Vcore:

这也是现在EIST和睿频的Domain不再是整个CPU的一个原因。

超频怎么办?

VR都被集成进CPU变成FIVR了,超频需要的加压怎么办?其实还可以做:

FIVR需要的输入电压VccIn可以提高,这样他们给出的VccCorex也就会相应提高。

结论

CPU的核心电压Vcore随运行频率不同,在1V左右波动。CPU内部的各个内核的Vcore因为它们频率不同,也不一样。

相关文章