美文网首页程序员
Intel X86的turboboost 动态变频

Intel X86的turboboost 动态变频

作者: simitel | 来源:发表于2020-07-28 08:07 被阅读0次

    turboboost是Intel在iCore平台引入的动态变频技术。

    在这之前,或者说大约20+年前,在Intel奔腾处理器的时代,在那个CPU性能主要决定于主频的时代,各大院校的高年级学生非常热衷于购买Intel的赛扬处理器,因为它具有超强的超频能力,比如200MHz的CPU,通过主板跳线就可以超频到300MHz,甚至更高。在大家Hi的不亦乐乎的时候,也面临着CPU玩完的风险,因为超频太高,温度高,导致CPU的永久损坏。

    到了iCore之后,Intel把变频技术design-inCPU,这样就不用在打开机箱,拨弄跳线了。这个变频技术就是turboboost。它不仅仅是超频,也包括了降频,为啥要降频?这就好像家里的空调,晚上睡觉了就希望空调吹的小一些,温柔一些,既省电,还能安静睡眠。所以,降频也是为了节约系统的功耗,在系统负载小的时候就把CPU的总频率降下来,节约用电,save the earth。

    简单来说,Intel的turboboos就是根据目前CPU的功耗/温度特性,动态调整CPU核心频率的技术。

    比如一个4核心的CPU,标称频率2.4GHz,当其中core1被一个任务占用而忙,其余三个core的负载很轻的情况下,CPU会把core1的频率提到到2.8GHz,甚至更高,只要总的温度/功耗特性仍然在CPU的设计范围之内就可以。如果很不幸,所有的4个core都很忙,CPU使用率都很高,那么这个时候大家都还是按照CPU出厂的标称频率2.4GHz进行工作。

    具体的turboboost的描述,请参考Intel的文档。

    还是用测试来形象地展示一下它的工作。

    测试系统是在Intel Xeon E7-EX上测试的,系统一共72个核心,18*4,没有超线程,标称频率2.4GHz。

    首先看缺省的情况,

    Socket [0] - [physical cores=18, logical cores=18, max onlinecores ever=18]

      CPU Multiplier 24x ||Bus clock frequency (BCLK) 100.00 MHz

      TURBO ENABLED on 18Cores, Hyper Threading OFF

      Max Frequency withoutconsidering Turbo 2500.00 MHz (100.00 x [25])

      Max TURBO Multiplier (ifEnabled) with 1/2/3/4/5/6/7/8/9/10/11/12/13/14/15 cores is  33x/33x/31x/30x/29x/28x/28x/28x/28x/28x/28x

      Real Current Frequency2798.83 MHz (Max of below)

            Core [core-id]  :Actual Freq (Mult.)      C0%  Halt(C1)%  C3 %   C6 % Temp

            Core 1 [0]:       2798.83 (27.99x)       100      0       0       0   34

            Core 2 [1]:       2798.80 (27.99x)        25   70.8       0       0   34

            Core 3 [2]:       2798.80 (27.99x)      24.2   71.7       0       0   34

            Core 4 [3]:       2798.83 (27.99x)      99.5      0       0       0   33

            Core 5 [4]:       2798.83 (27.99x)      65.5   23.6       0       0   32

    需要关注的是第5行,它显示了,如果一个或者两个core工作的情况下,它可以有3.3GHz(33x100MHz),如果有4个core工作的情况下,最高可以到3.0GHz(30x100MHz),以此类推。

    而现在的工作频率是2.8GHz。

    现在看关掉turboboost之后的情况(通过BIOS或者其他手段关闭)。

    Socket [0] - [physical cores=18, logical cores=18, max onlinecores ever=18]

      CPU Multiplier 24x ||Bus clock frequency (BCLK) 99.96 MHz

      TURBO ENABLED on 18Cores, Hyper Threading OFF

      Max Frequency withoutconsidering Turbo 2498.96 MHz (99.96 x [25])

      Max TURBO Multiplier (ifEnabled) with 1/2/3/4/5/6/7/8/9/10/11/12/13/14/15 cores is33x/33x/31x/30x/29x/28x/28x/28x/28x/28x/28x/28x/28x/28x/28x

      Real Current Frequency2399.03 MHz (Max of below)

      Core [core-id] :ActualFreq (Mult.) C0% Halt(C1)% C3 % C6 % Temp

      Core 1 [0]: 2399.01(24.00x) 28.2 71.8 0 0 29

      Core 2 [1]: 2399.01(24.00x) 27.6 72.4 0 0 28

      Core 3 [2]: 2399.01(24.00x) 28.6 71.4 0 0 30

      Core 4 [3]: 2399.00(24.00x) 42.9 57.1 0 0 30

      Core 5 [4]: 2399.02(24.00x) 25.1 74.9 0 0 29

      Core 6 [5]: 2399.01(24.00x) 43.1 56.9 0 0 29

    可以看到,目前所有的core都工作在标称频率2.4GHz的情况下。

    再来看一下,如果只使能了4个CPU core,在打开turboboost的情况下会怎么样。

    Socket [0] - [physical cores=4, logical cores=4, max onlinecores ever=4]

      CPU Multiplier 24x ||Bus clock frequency (BCLK) 99.96 MHz

      TURBO ENABLED on 4Cores, Hyper Threading OFF

      Max Frequency withoutconsidering Turbo 2498.96 MHz (99.96 x [25])

      Max TURBO Multiplier (ifEnabled) with 1/2/3/4 cores is 33x/33x/31x/30x

      Real Current Frequency3000.00 MHz (Max of below)

            Core[core-id]  :Actual Freq (Mult.)      C0%  Halt(C1)%  C3 %   C6 % Temp

            Core 1 [0]:       3000.00 (30.01x)       100      0       0       0   32

            Core 2 [1]:       3000.00 (30.01x)       100      0       0       0   27

            Core 3 [2]:       3000.00 (30.01x)      99.4      0       0       0   31

            Core 4 [3]:       2999.98 (30.01x)      42.5   46.9       0       0   29

    这个时候,仅仅列出了4个CPU core,而且每个都工作在3.0GHz,和第5行描述的一样。

    “Intel,诚不我欺也”。

    Linux系统中引入了cpufreq机制来支持turboboost以及用户的配置。还有工具turbostat用来查看当前系统的CPU变频情况。

    总的来说Linux里面会结合当前系统对于功耗,性能的要求(profile)以及CPU自身的特性为用户提供符合其业务特性的支持。

    下一次讲讲Intel X86的SMP吧。

    相关文章

      网友评论

        本文标题:Intel X86的turboboost 动态变频

        本文链接:https://www.haomeiwen.com/subject/qgpxrktx.html