查看原文
其他

什么是Speed Shift?

Wolf UEFI社区 2023-12-29
点击上方“公众号” 可以订阅哦!

英特尔第六代Skylake处理器对原Speed Step技术进行了改进,升级后被称为Speed Shift。这项技术可提升电脑响应速度。它是怎么做到的呢?听我缓缓道来。

为什么要变频?

本专栏前面一篇文章介绍了频率和功耗的关系(为什么CPU的频率止步于4G?我们触到频率天花板了吗?)这里我们来简单回顾一下。

CPU芯片里面有几十亿个晶体管,它们可以简化如下:

Vin的每次变化都要充放电一次,放电的能量被浪费掉了。所以功耗和频率正相关,而且在频率升高后,充放电跟不上这个频率,必须通过提高电压来加速充放电。电压的加大,会导致充放电浪费的电能更加严重。能耗公式如下:

可以看出能耗P和f线性相关,而和电压V是幂函数的关系。由于前面提高的V和f的关系,实际上P=a × f^3,是大致3次幂函数的关系。从下面的实际例子可以验证

i7-2600K频率和功耗的关系

合适的才是最好的

那为了节省能耗,是不是就是低频慢慢干就好了呢?答案是否定的。我们排除浪费时间等因素,只从能耗上考量,如果我们衡量干完某件事需要消耗的整体能量,实际上有两种策略:

1. 保持固定频率,将事情干完,然后CPU进入休息状态。

2. 加速干事情,忍受短时功耗上升,尽快干完事情,尽早让CPU休息。

这和人一样,有些人是慢性子,徐徐图之;而有些人性子急,希望早干完早休息。很难判断哪种好,这就需要量化分析了,好在Intel的工程师已经为我们找到这个平衡点:

既不能磨洋工也不能一味蛮干,只有将频率调整到最合适才是真的好。

Speed Shift出场

那么如何动态调节CPU频率和电压呢?长期关注本专栏的同学也许还记得Intel EIST技术(CPU省电的秘密(一):EIST),是的,它的确可以让操作系统按需调节频率。而这次推出的Speed Shift技术就是它的升级版。它可以让频率转换时间急速缩短:

如上图,蓝色是老的EIST技术,绿色是Speed Shift。可以看出,特殊的频率调变从20ms降到1ms,而整体从最低频到最高频也从100ms降到30ms。这里注意它们都不能从最低频直接跳到最高频,主要是因为电压需要慢慢增加,急速的加压会带来严重问题。

Speed Shift技术概述

Speed Shift技术是EIST的提高版,专栏EIST文章详细介绍了EIST的细节。这里简单总结一下,便于比较它和加强版的区别:EIST技术是BIOS通过一组ACPI表告诉操作系统怎么改变频率,而操作系统负责根据工作量通过这个表改变CPU频率

我们可以看出,改变频率是操作系统的行为,它全面掌控所有变频行为,而硬件和BIOS只是配合它。这点在Speed Shift做出了彻底改变。它的名字原本叫做Hareware Performance State或Hardware P-state,简称HWP。顾名思义,它的本质是操作系统让渡变频的操控权给硬件,转而只提供性能提示(hint)和控制变频范围,而由硬件自主根据提示工作量快速变化频率

Skylake的架构如下图:

Intel IDF Skylake架构图片

PCU在电源的管理中扮演的主要角色,正式因为它的就近管理才让变频变得如此迅速。Speed Shift的细节见新的IA32手册(参考资料1),有兴趣的同学可以参阅一下,在第三卷14节。其他Skylake硬件架构方面的探究敬请期待后续文章。

真实性能

是骡子是马,拉出来溜溜。anandtech网站已经做了评测,见参考资料2。这里摘录部分内容:


从中可以看出对于一般家庭使用环境,性能变化只提高了3%-5%。对于突发性能要求高的应用可以提高30%!另据其他评测资料,系统整体突发相应时间减少了20%,还是相当可观的。

结论

看了这些你是不是也跃跃欲试了呢?且慢,用上Speed Shift需要操作系统支持,Windows 10最新版已经提供了支持,但你如果是Win7/Win8那就没有希望了。Linux世界似乎还没有完全支持。

另外Kabylake和Coffeelake对Speed Shift做了调整提升,相应时间更低了。更妙的是这个调整是软件透明的,操作系统不需要改变就能尽享提升带来的好处。还在等什么,快在BIOS里面打开Speed Step吧!

参考资料:

[1] : software.intel.com/site

[2]: Examining Intel's New Speed Shift Tech on Skylake: More Responsive Processors



继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存