2010年新系列移动显卡全面开战

  随着英特尔的Nehalem架构处理器的发布,英特尔睿频加速技术一时成为了热点。我们都知道一直以来英特尔是反对超频的,那么这项加速技术与超频有什么关联与区别呢?这个技术到底是遵循怎样的途径发挥作用,其原理又是什么呢?

  这项技术又有何种应用前景?这里我们就来一探究竟。

  英特尔睿频加速技术深度解析:今非昔比—此加速非彼超频

  首先我们先来解释一下英特尔睿频加速技术。所谓睿频加速,就是根据需要,自动调节多个CPU内核的负载以达到最佳运算效果。这样一来,处理器的主频能够适应运算需要,扩展性能以满足峰值性能需求。英特尔睿频加速技术的特点在于可以随时随地提供所需性能。它支持每个处理器内的特定内核在设定的范围内以超出额定频率的频率运行,根据需要提升频率以提高执行效率。

  我们知道,提高频率就会导致功耗提升,但是处理应用时间缩短的话,总功耗是不会增加的。关闭一些内核,降低功耗,同时给另外一些内核超频,这样就可以实现在总设计热功率TDP(Thermal Design Power)上限之内进行加速,对于部分单线程应用来讲大有裨益。需要多核心并行处理的任务,那么就让多核心以设定的频率同时运算,提高并行处理能力。需要单核心处理的任务,就关掉几个核心,给一个核心进行超频,提高单线程的运算能力。通过这种方式,总功耗不会增加,相应地发热量也不会增加,却可以实现灵活的运算切换。

  看到这里,有些读者朋友疑惑了,英特尔睿频加速技术和以前我们提到的动态超频的概念(Dynamic Overclocking)是很类似的。其实虽然都是根据需要进行超频或者加速,但是这两者差别是很大的。所谓动态超频,是主板自带的程序针侦测处理器负载高低,调整处理器的运作频率。但是需要注意的是,动态超频是强制处理器的所有内核都运行在额定频率范围之外,这必然导致功耗、电流、电压和温度等指标超出安全范围,对处理器的稳定运行是有较大影响的。而睿频加速技术,是根据系统负载,动态调节处理器内核运行频率从而提升性能,并全程保持处理器运行在技术规范限定的功耗、电流、电压和温度范围内。

  我们知道,英特尔一直以来都是公开反对超频的,甚至有一个反超频的技术。

  从上图我们可以看到英特尔反超频技术的特点, 反超频技术包括两个部分,一是频率分辨,二是频率控制。芯片内部有一个读取电路,读取CPU的额定频率,再由板载时钟信号将其转换成固定时钟频率,并与检测到的实际时钟频率相比较。从图中我们可以看出,固定的时钟频率32.968kHz,采用了一个32.968kMHz的晶振。通过CPU运行的频率与32.968kHz的比值来进行判断。当实际频率与32.968kHz的比值高于CPU额定频率与32.968kHz的比值,则判断出CPU进行了超频。利用英特尔的检测软件英特尔 ProcessorFrequency ID Utility,可以读出英特尔 CPU内置的Name String信息,然后将该数据与检测到的CPU实际工作频率进行比较,可以很轻易的检测CPU是否被超频。

  旧瓶新酒—英特尔的奇思妙想

  如果说睿频加速技术是英特尔为了提高CPU运算能力而超频核心让人很难理解的话,那么说睿频加速技术是英特尔为了CPU在高效运算时候而进行降温,这样就比较容易理解了。说到CPU的降温,我们很容易想到HLT指令。

  我们知道,CPU大约有40%的情况下空闲(空闲模式,Idle Mode)。目前,几乎所有的CPU设计都有空闲模式。当操作系统发现CPU当前没有可执行的任务时,便将CPU置于空闲状态。在空闲模式下,可以关闭不需要的时钟,以减少不必要的功耗。当系统发生中断时,CPU从空闲状态被唤醒。大多数系统都有操作系统计时器中断,这样CPU在一秒钟之内可能几千次地进出空闲状态。CPU时钟的“闲置”通常由“停止”或“闲置”指令触发,在应用或操作系统闲置时进行调用。目前的降温软件就是通过在CPU空闲时发送HLT(halt)指令,CPU将HLT指令插入指令序列,并停止处理指令序列,直到发生中断为止。发生中断后,CPU重新回到Normal状态处理指令,处理完中断代码后继续从HLT指令的下一条指令执行,进入Halt模式。这个过程实现起来也很简单,可以做一个最低优先级的任务做死循环处理,系统在空闲时都进入该任务。然后此任务的循环中加入一条HLT指令即可,这样就实现了Auto Halt模式。

  处理器在进入Ha lt模式后功耗将有所下降,我们在CPU的温度监控上可以看到7摄氏度左右的降低,估计在CPU内核应该有10摄氏度左右的降温。而且通过HLT指令降温不会对系统的执行效率和实时性构成影响。HLT指令有Halt、Probe State、Stop Grant 、Working、Stop Grant Cache NotSnoopable Sleep 等几个电源模式。其中,Working为CPU正常运行状态。当系统执行HLT指令,CPU进入Halt状态,但此时不关闭SMI#, INTR, NMI,INIT# RESET#侦听,当CPU收到在RESET#指令后,同时初始化回到Working状态。在Halt状态下,系统会产生一个STPCLK#信号,当CPU接收到STPCLK#信号,则进入Stop-Grant状态,在Stop-Grant状态,RESET#信号会让CPU迅速的初始化。当STPCLK#中断后,CPU返回Halt状态。在Stop-Grant状态和Halt状态,CPU可以对系统总线发出的snoop事件做出反应。而且Halt状态对CPU占用率、系统操作的实时性并没有影响。在Halt状态和非Halt状态,CPU占用率是一样的,因为操作系统计算任务的CPU占用时间时是以任务的上下文切换作为统计触发条件。当任务在执行HLT指令时操作系统并没有进行任务上下文切换,操作系统把CPU进入Halt状态的这段时间依然认为是被该任务占用的时间。

  英特尔现在做的就是对这几个电源管理状态重新进行了调整和扩充。英特尔将新的电源管理状态调整为C0、C1、C3和C6。在一些状态下,将CPU频率定义为基准频率+133n,n可以设置为1、2、3、4、5等,于是就实现了自动超频。这样我们就明白了,所谓自动超频,就是电源管理模式的扩充而已,只是相对以前而言,更加精准。

  管中窥豹—睿频加速技术探究

  从上文得知,英特尔通过定义新的电源管理状态,实现了自动超频。那么具体到CPU电路上,自动超频是如何实现的呢,这是我们要探讨的问题。要深入地了解睿频加速技术的工作原理,就要先来看CPU的基本工作原理和超频。

  我们知道现在的CPU的核心DIE都是以硅为基板,以铜为导线,CPU中最基本的单位为三极管。从工艺上来说,CPU的工艺一般分为CMOS(采用MOSFET管)和biCMOS(采用bipolar管)。对于MOSFET来说,在P型或N型衬底上设置两个距离接近、与衬底极性相反的区域,构成源极和漏极。并在此区域形成一层极薄的氧化硅绝缘层,覆上电极,构成栅极。当工作电流从源极流入,栅极上存在适当电压,就会在栅极下形成沟道来连接源极和漏极。电流进而在漏极形成输出,然后再驱动其它三极管的栅极。这个过程中,能量消耗发生在电流从源极到漏极的跨越上;对于bipolar来说,晶体管有两个相反的P-N结,集电极的电流一般不能穿过这两结到达发射极。如果加一个与集电极同向的电压在两个结之间的基区,这样,就打破了原来两个结之间的平衡状态,从而使电流通过。这个过程中,能量消耗发生在电流穿越两重PN结上。我们知道,在门电路中,高电平表示1,低电平表示0。如果要消去一些1,或是通过转化为负信号抵消,或是把高电平倒入GND,这样一些电流就被消耗掉。

  克服高热是超频中的一个很重要的方面,超频以后,频率提高,晶体管工作越频繁,处理速度加快,但是高的频率也使功耗增大。我们来看公式:

  P=CfV2。公式显示了功耗P,CMOS 门电容C,开关频率f及供电电压V之间的关系。其中,CMOS门电容C为常量。开关频率f 和供电电压V可根据实际的应用要求而调整。供电电压V和开关频率f之间的关系为:V∝f。即更高的开关频率需要更高的供电电压支持。这也是晶体管加电压和超频的关系。这个公式只是CPU的动态功率,漏电流造成的静态功率并没有考虑。

  从CMOS的角度来看,执行一个指令所需的功耗是相同的,所以降低CMOS频率不能减少耗电量,因为在高的时钟频率下,CPU仅仅是加快了完成工作的速度,但在空闲状态下停留的时间会更长。在实际工作中,CPU并非一直处于工作状态,即满负荷(full load),大约有40%的情况下空闲(no load),即空闲模式(IdleMode)。所以空闲状态的存在是只降低频率无法节约能耗的原因。如果电压随着频率一起降低,从公式P=CfV2可以看出,电压的平方V2与功耗P成正比,降低一点电压,功耗便大大减少。这样,每执行一条指令的能耗就随之降低。

  但是在实际的超频过程中,我们都需要提高电压,来增强系统的稳定性。为什么我们需要提高电压呢?这还要从晶体管的角度来加以说明。

  在超频的过程中适当的提高电压,之所以能使超频以后的CPU工作起来稳定一些,是因为加压后可以增加电流,从而为提高频率工作的晶体管正常工作提供足够的电流。同时提高电压以后,使晶体管的控制极工作电压提高,即0、1信号更清晰。MOSFET管的栅极到达晶体管的充电时间缩短,而且栅极电场强度增加,沟道的打开更迅速。但是电压不可以无限制提高的,过高的电压会将PN结击穿。

  从这些分析我们不难看出,睿频加速技术要想实现自动超频,就要解决自动调整电压和控制CPU的温度升高。二者必须实时的实现良好互动并求得一个平衡,该技术才可谓成功。那么英特尔是怎么实现的呢?我们来继续分析。

  我们来看Nehalem处理器的Die晶体管排列图,最上面的是内存控制器。下面依次是四个SMT内核和L2缓存,最下面是L3缓存。左右是I/O接口和QPI总线。要想实时的控制这4个核心,关闭闲置的核心并将执行运算的核心超频,就需要有个单独的处理单元。这就是PCU(Power ControlUnit)电源控制单元。正是通过它,睿频加速技术技术才得以实现。

  从图中我们可以看出来,在英特尔Neh a lem架构的处理器中,每个处理核心都带有自己的PLL同步逻辑单元,每个核心Co r e的时钟频率Frequency都是独立的,而且每个处理核心都是有自己单独的温度传感器Sensors。传感器实时的和PCU单元进行信息交换,便可以及时地控制核心温度。我们看到有个BCLK(Busclock f r equency,基准BCLK是133.33MHz,英特尔作为一个步进)CPU的核心频率,通过几次PLL后,就会加上几个步进的频率,得到超频后的频率。比如Core i7-860的核心频率是2.80GHz,超频以后,加上一个步进2800+133×1=2933(2.93GHz),加上四个步进2 8 0 0 + 1 3 3 ×4=3332(3.33GHz),加上五个步进2800+133×5=3465(3.46GHz)。PLL电路每上拉一次,核心频率就增加一个步进133.33MHz。

  而Vcc是接入电路的电压,代表高电平。在核心超频时PCU将该核心的供电电路上拉到Vcc,即可以为该核心增加一个电压,比如0.1v。如果该核心需要关闭,只需要PCU关闭该核心的供电即可。这样的好处是在深度睡眠的时候,个别的处理核心几乎可以完全被关闭。而在之前的多核心处理器中,所有的处理核心都具备相同的核心电压,也就是说活跃的处理核心与不活跃的处理核心都要消耗相同的功耗。

  PCU可以监控操作系统的性能,并且向其发出命令请求。因此它可以非常智能地决定系统的运行状态——是在高性能模式,还是在节电模式。

  PCU的调节是非常灵活的,当应用负载提高时,系统可以在TDP允许范围内对核心主频进行超频:如果4个CPU内核中有一个或两个核心检测到负荷不高,那么其功耗将会被切断,也就是将相关核心的工作电压设置为0,而节省下来的电力就会被用来提升高负荷内核的电压,从而提升核心频率最终提升性能。当然不仅限于这一种状态,也可以是关闭一个核心或者是关闭三个核心。这样就可以让CPU的能耗曲线更为接近应用负载曲线(负载高时,频率高、能耗高。负载低时,频率低、能耗低),让每一份的电源能耗都用到实处。

  张弛有度—睿频加速技术的工作流程睿频加速技术自动超频技术是一种新的性能控制思路,与以前一味的降低主频以达到控制能耗的想法不同,睿频加速技术自动超频技术的主旨在于:在不超过总TDP的前提下,尽量挖掘CPU的性能潜力。明白了睿频加速技术的工作原理,下面我们来看看睿频加速技术是如何工作的。

  下图就是睿频加速技术的工作模式图解:1代表在TDP的限制下,四个核心共同工作。2代表当应用负载只在两个核心上,那么可以把另外两个核心关闭,并把节省下的电力提供给剩余的两个核心。这样系统就可以关闭两个核心,同时在TDP的允许范围内对两个核心主频进行超频,让它们达到更高的频率。

  下图中3代表当应用负载只在一个核心上,那么可以关闭其余的三个核心,省下的电力可以提供给剩余的这个核心,同时在TDP的允许范围内对该核心主频进行进一步超频。4代表当负载全部回到四个核心上,那么之前关闭的三个核心全部打开,并在TDP的允许范围内对全部核心超频。

  从上面的分析我们可以看出,睿频加速技术自动超频技术不仅提供了比上一代产品更精细的电源管理模式以及更高的电源管理效率,并且还提供了强大的性能挖掘模式,以更好的满足用户的应用处理需求,做到了节能与高效并举。

  立竿见影—睿频加速技术的测试

  以Core i7 920为例我们来看打开和关闭睿频加速技术的区别。在BIOS中关闭睿频加速技术后,CPU则为默认频率。在BIOS中开启睿频加速技术后,自动提升了133MHz,随着运算量的增加,会自己按照133MHz的倍数提升。这就是睿频加速技术自动超频技术的效果了。在进行了简单的Super π测试以后发现。关闭睿频加速技术后,进行104万位计算需要15秒的时间,而打开睿频加速技术后,只需要12.9秒。这个提升还是比较大的。可见通过睿频加速技术技术带来的性能提升是比较明显的,而且相比常规的手动超频而言,睿频加速技术在功耗和性能方面达到了一个很好的平衡。
……
关注读览天下微信, 100万篇深度好文, 等你来看……
阅读完整内容请先登录:
帐户:
密码: