路人战队|超能课堂(242):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也不会更为省电 , 不过它会拥有更好的能效比这一点是肯定的 。


推荐阅读