CPU超频的原理是什么?为什么超频要提高电压?提高/降低电压对CPU有害吗?
近期有朋友询问询问CPU电压和超频的关系,以及低电压会不会损害CPU。 让我想起关于CPU超频还欠有一篇旧账。今天我们来一起讨论一下,Intel的CPU超频的原理是什么?为什么超频要提高电压?以及回答知友关于电压和CPU寿命的问题。
CPU超频的原理
自从Intel放弃前端总线(FSB)后,CPU的频率计算十分的简单:
CPU主频 = 基频 × 倍频
基频(Base Clock,BCLK)是从南桥PCH的PLL发出的基础时钟信号:
它一路传递到CPU中,为内核和很多uncore部分(内存控制器,GPU等等)提供基础时钟信号:
这个基频缺省情况下是100MHz,可以提高到200MHz甚至更高。因为它并不仅仅为CPU内核提供基频信号,还为众多CPU中的小伙伴服务。提高它,内存频率、Cache频率、GPU频率等等都会成倍提高,所谓牵一发而动全身。也正因为如此,提高它会整体提高CPU的运输速度,但也很容易引发某些部分的不稳定。
有了基频,CPU中的各个器件并不是工作在100MHz上的,在它后面带个倍频(Multiplier),来为自己服务。例如内核、GPU、Cache和内存控制器等等,都有自己的倍频。
举个例子,标称3.5GHz的CPU,它的基频是100MHz,内核的倍频是35,算下来就是
100 × 35 = 3500MHz=3.5GHz
十分简单,是不是?超频中我们单独调节各个部分的倍频,来提高它的速度。例如我们把内核的倍频调成45,那么我们就有了4.5GHz的CPU。调整倍频的好处是可以单独调节,而不是像调整基频一样一股脑向上提高,死机后很难判断那里出了问题。
超频资深玩家往往先试探基频的极限,再单独调整内核的倍频,找到在此之上,倍频的极限。而入门用户,调节倍频往往就够了。
提高频率如此简单,只要我们有了K结尾的CPU,在BIOS中仅仅调整几个数字就好了:
超频真的如此简单吗?
情况要复杂很多,超频后,系统往往开始表现的不稳定。只要我们知道哪里不稳定,提高它的电压供给,往往就能让它再次稳定下来。为什么提高电压会改善高频的稳定性呢?
为什么要提高电压?
我在那篇较受欢迎的文章中对电压和频率的关系有所提及:为什么CPU的频率止步于4G?我们触到频率天花板了吗?
含有高达80多亿的场效应晶体管FET的Kabylak等CPU结构十分复杂,每个一个FET的简单示意图如下:
当输入低电平时,CL被充电,我们假设a焦耳的电能被储存在电容中。而当输入变成高电平后,这些电能则被释放,a焦耳的能量被释放了出来。因为CL很小,这个a也十分的小,几乎可以忽略不计。但如果我们以1GHz频率翻转这个FET,则能量消耗就是a × 10^9,这就不能忽略了,再加上CPU中有几十亿个FET,消耗的能量变得相当可观。
我们这里要引入门延迟(Gate Delay)的概念。简单来说,组成CPU的FET充放电需要一定时间,这个时间就是门延迟。只有在充放电完成后采样才能保证信号的完整性。而这个充放电时间和电压负相关,即电压高,则充放电时间就短。就越能保证信号的完整性。
如果超频后,频率升高,原先可以满足门延迟的电压慢慢就不能保证信号完整性了,这时提高电压,就可以降低门延迟,从而重新满足信号完整性。这就需要我们发现哪部分不能满足信号完整性,从而提高它的电压供给。
拿CPU内核超频来说,CPU内核电压叫做Vcore。每种CPU都有一个VID(Voltage Identification,电压识别码),这个代码会被主板的电压调节模块(VR)或者CPU内置的VR(silicon-based voltage regulator,FIVR)所识别从而来设置内核运作时的电压:
缺省的VID对应的电压只能保证标称的内核频率工作正常。根据每个CPU品质的不同,超过一定范围的频率后,往往需要提高Vcore,来满足稳定性的需要:
Vcore往往是auto,在超频时要单独设置
这里没有统一的某个频率必须多少电压,必须慢慢一点点试错,举个例子:
这是某个Skylake的电压和稳定频率关系。
当然不管三七二十一,一下设个爆大的电压也不是不行,但高电压往往意味着高功耗,一般没有人这么做。
高电压/低电压对CPU有害吗?
CPU的最大敌人不是电压,而是温度。超频的对CPU寿命的影响,也是因为温度,而电压的影响很小。实际上,CPU的电压无时无刻不在变化,CPU的EIST中对应的各个降频或者超频状态,VR提供的电压都不相同:
CPU的能效管理模块会根据CPU的频率,来要求VR提供不同的电压,从而节省用电。我们如果能提供有效的散热,超频对于CPU寿命影响不大。
现在回到朋友的问题上来,低电压并不会损害CPU寿命,反而会增加CPU寿命。现在问题来了,什么情况下要手动降低CPU电压呢?
我们前面提过VID,VID各种CPU都不同,但同种CPU(stepping,SKU)都一样,这意味着它对应的Vcore是Intel测试过,对于该种CPU都适用的电压。而熟知本专栏的用户都知道:
“All CPUs are born equal, but some are more equal than others." (猜猜引申自哪里?)
CPU品质各有不同,VID缺省对于的Vcore,也就是Auto对于你的CPU不一定最优,资深玩家完全可以试着调低Vcore来省电。绿色环保,利国利民,何乐而不为呢?
结论
CPU超频比较麻烦,首先要有个带k的CPU,升级你的散热设备(原先那个自带的风扇小身板完全不行)。然后推荐慢慢提高倍频,不稳定后增加电压,再次提高倍频,再次增加电压,直到你觉得满意、不能增高了、温度超高为止。调整BCLK还是留给资深玩家吧。