晶体管|超能课堂(242):CPU的功耗是怎么产生的?它的功耗大小与哪些因素有关?( 二 )
不同软件/指令下对晶体管的调动
由软件发出的指令经过CPU内核的解码和调度,最终进入到执行单元中被执行。执行单元有不同的种类,部分可能专门负责做加法,一部分可能专门负责做乘法。不同的执行单元在激活时会消耗不同的电能,也就是说,同样一个内核,在调用不同执行单元时其功耗会有很大不同。比如说现在处理器普遍支持AVX指令集,在支持AVX2的处理器上,一条AVX指令最多能够操作的数据宽度是原本SSE指令的两倍(128-bit=>256-bit),那么这就需要更宽的寄存器和执行单元来实现。
文章图片
关闭AVX指令集支持,此时的CPU功耗在133W左右
文章图片
打开AVX指令集支持,此时的CPU功耗在166W左右
文章图片
我们这里用了AIDA64的稳定性测试来简单说明,可以看到在同样使用FPU烤机时,关闭AVX指令的时候CPU功耗比开启时低了约莫有30W。
如果要更直观的说明,那不妨来看看服务器版Skylake内核的Die Shot:
文章图片
可以看到服务器版的Skylake内核在左上方有一块Server AVX-512区域,它就是用来支持AVX-512的。结合我们刚才所说的,更多的晶体管会耗更多的电,所以在调用AVX2、AVX-512这些更宽的指令集时,CPU的耗电量也会明显增加。
另外对功耗有影响的是现在x86处理器上面常见的同时超线程技术(SMT),它需要增加一定的晶体管数量,但能够获得比较可观的性能收益,由于超线程技术提升了执行单元的利用率,所以在开启了超线程技术之后,即便处在同样的满载情况下,CPU的功耗也会出现明显的增加。
电源管理策略的影响
处理器的功耗过大时会产生大量的热量,如果散热条件跟不上,那就会因为温度过高而影响晶体管的稳定性。另外在移动平台上,因为受到电池容量的制约,处理器的功耗不宜过大,那处理器该怎么控制自己的功耗呢?
现代处理器上面有各种各样的电源管理技术,比较通行的一种办法是将电源管理交由操作系统来负责。比如处理器厂商会为处理器定义多种电源状态,C-State和P-State就是两种常见的用于描述处理器电源状态的状态值。其中C-State用于节能,P-State用于决定CPU在有负载情况下的电压-频率状态。操作系统来根据当前的负载情况来调整CPU的状态,这样在检测到有高负载任务时,系统会将处理器调整到全速运行状态;在轻负载时,系统会让处理器进入低速状态,甚至将其部分关闭。
另外处理器厂商还加入了很多软硬件结合的节能技术,像是Intel和AMD在很久以前就给CPU引入的SpeedStep/Cool'n'Quiet这些技术都可以让CPU在不损失最大性能的同时,尽可能的节约能耗。现在则是有Speed Shift和Turbo Cove这样的技术接手了。
总结
CPU的功耗主要有动态功耗和静态功耗两大部分组成,前者主要由晶体管不断开关产生的,后者主要由晶体管漏电产生的。CPU那不断扩张的规模会抵消掉制程进步带来的一部分优化。在不同情况下,CPU的功耗表现会有很大不同,这主要是因为不同指令所调用到的晶体管数量是不同的。
为了管好CPU的功耗,CPU厂家也不断为它引入新的电源管理特性。如今的x86 CPU在节能表现上和当初已经不能同日而语了。但由于制程进步越来越困难而我们仍然需要不断扩张的CPU规模来提供更高的性能,所以未来的CPU也不会更为省电,不过它会拥有更好的能效比这一点是肯定的。
推荐阅读
- 社会实践|踏梦用心云支教,川行课堂新创意
- 奇趣|综艺 | 龚琳娜《叮咚上线!老师好》展现奇趣音乐课堂
- 聚智|腾讯课堂宣布战略升级并发布“聚智计划”,推动人才高质量就业
- 青少年 社区教育学校 暑期课堂 毕业典礼|龙山街道龙脊新村社区开展青少年“暑期课堂”毕业典礼活动
- 学而思|学而思AI互动课上线智慧屏,华为视频倾力打造家庭智慧课堂
- 课堂|腾讯课堂宣布战略升级:成为综合性终身教育平台
- 聚智|腾讯课堂宣布战略升级并发布“聚智计划” 推动人才高质量就业
- 教育|学而思AI互动课上线智慧屏,华为视频倾力打造家庭智慧课堂
- 养老保险|企业职工养老保险有疑问?青岛人社政策法规“云课堂”热点问答来啦
- 教学|中文教育转战网络 线上教学成国际中文教育“主课堂”