以一个能够更改其时钟速度的CPU为例,例如现代计算机CPU(Intel,AMD等)。当它以特定的时钟速度进行特定计算时,是否会产生与以较低的时钟速度进行相同计算时产生的热量相同的热量?我知道散热和热量积聚是不同的问题,所以让我们只谈谈产生的原始热量。
以一个能够更改其时钟速度的CPU为例,例如现代计算机CPU(Intel,AMD等)。当它以特定的时钟速度进行特定计算时,是否会产生与以较低的时钟速度进行相同计算时产生的热量相同的热量?我知道散热和热量积聚是不同的问题,所以让我们只谈谈产生的原始热量。
Answers:
除了时钟速度外,请记住,在真正的“大型” CPU(具有高速缓存,MMU,TLB,流水线执行,SIMD等的CPU)中,产生大量热量的另一个重要因素是指令流的利用效率可用的CPU资源。如果您运行的程序占用大量内存,那么大多数时候CPU只会饿死数据,什么也不做,因此产生的热量会相对较低。带有紧密循环的纯计算代码会发热更多。严格优化的代码甚至可以产生更多的热量,几乎不会引起分支预测错误,大量使用SIMD单元,优化利用缓存等。
有一些专门设计用于在这种模式下运行CPU的程序-尽可能强调它,Prime95是PC的突出示例。
实际上,如果PC在所有可用的CPU内核上都已经运行Prime95,然后同时启动另一个占用大量CPU的应用程序(例如3D渲染),则会注意到CPU 冷却了。这是因为它必须与需求相对较低的渲染代码(可能有很多缓存未命中和分支错误预测)分时共享非常繁重的Prime95代码(“点亮所有晶体管”),这些代码会导致高速缓存未命中和分支错误预测-那些使CPU停止运行一段时间,然后冷静下来)。
您应该考虑的另一件事是,通常每个CPU都有一个表,其中包含允许的时钟速度以及与每个速度相关的核心电压。较低的时钟也与较低的电压匹配,因为制造商已确定CPU将在该电压下保持稳定。功耗随时钟速度大致呈线性变化,但随电压呈二次变化。
消耗的功率与时钟的转换速率和切换这些有效电容器栅极时的传导损耗成比例。然而,温升与功耗乘以有效热阻成正比,以每瓦特C为单位,因此与能量无关,或者取决于功耗,其温度可能更低或更热,并且该功率不会在更长的时间内散布。可能存在一个公式,表明温度随时钟速度的升高是大于一的部分功率。
在较低的工作频率下,瓦数将较低。
在相同的内核电压下,总的能量在较低的时钟频率下会更高。
但是,如果将内核电压随频率调低,则总能量可能会更少。
对于花费大部分时间等待I / O操作的算法,无论内核时钟频率如何,执行时间都将近似恒定。因此,计算所需的总能量将与时钟频率成正比。
CPU的功耗由两部分组成。
1)静态电流消耗(I_static)。对于某些特定的电源电压和温度,无论CPU在做什么,此电流消耗都是恒定的。
使用CMOS技术制成的CPU由数千或数百万个MOSFET晶体管组成。静态电流消耗主要归因于数百万个MOSFET晶体管的截止状态泄漏电流。
静态电流消耗通常随着电源电压的增加而增加。
静态电流消耗通常随着CPU温度的升高而增加。
对于许多设备而言,静态电流消耗比动态电流消耗小得多。
2)动态电流消耗。对于使用CMOS工艺构造的处理器,动态电流会在晶体管在开/关状态之间切换时发生。
对于指定的电源电压,动态电流消耗通常与频率成正比。
动态电流消耗随着电源电压的增加而增加。
原因如下。CPU中的每个MOSFET晶体管都具有一定的电容值。每次MOSFET切换时;需要电荷Q = C * V来对该电容进行充电/放电。
每个晶体管的动态电流消耗为I_dynamic = C * V * f。
无论指令以何种频率执行,特定CPU上的一组特定操作(假定来自缓存和内存的行为相同)由于动态电流消耗而消耗一定数量的总电荷(Q_program),而与频率无关执行指令的位置。
但是,如果指令执行得更慢,则由于消耗了更多的时间,由于静态电流消耗而产生的总电荷会更高。
数学上可以写...
W =(I_dynamic + I_static)* V_电源
E = W *时间= Q_program * V_supply + I_static * V_supply *时间
我们可以看到,随着时钟频率接近0,瓦数将接近固定值,但是计算程序所需的能量接近无穷大。
因此,如果针对特定的电源电压和一组操作(基于CPU晶体管的电容)Q_program是固定的,那么现代CPU如何通过降低其时钟频率来节省功率?答案是,大多数现代CPU要么在板载(或在配套芯片中)包括一个可调节的核心电压调节器。当它们降低时钟频率时,它们也可以降低其内核电压。然后,Q_program(和E_program)随电源电压成比例降低。
请注意,CPU不能在较高的频率下使用较低的电压,因为在较低的电压下,晶体管的切换时间会增加。
功率与电压(平方)和电流消耗成正比。因此,如果电压与频率同时下降,则功率随频率的立方下降。
晶体管使用能量,这些能量被浪费为热量。有两种机制,静态和动态能量。静态能量是恒定的,而动态(切换)能量只要它改变状态(0-> 1或1-> 0),就会发生。动态(开关)能量通常比静态能量更多。您要执行的计算将花费相同数量的时钟周期,并且无论时钟速度如何,都会导致相同数量的晶体管位翻转。因此,两种情况下的动态热量是相同的。静电是...静电。因此,总而言之,假设CPU仅执行此1计算,则在给定时间段内进行平均时的能量/热量消耗完全相同。