ARM新一代多核技术可延长智能手机电池寿命
扫描二维码
随时随地手机看文章
智能手机和平板终端配备双核与四核处理器已成为一种趋势。新一代应用处理器的CPU内核将会如何发展?在CPU内核领域占有绝对市场份额的英国ARM公司,公开了今后几年内的多核技术发展蓝图。其战略是通过组合使用大小各异的内核,同时兼顾高性能和低功耗。而且,异质内核的并用将成为在移动领域引进虚拟化技术的基础。
智能手机及平板终端用CPU内核开发商英国ARM公司2011年秋季发布的内核“Cortex-A7”,配备了很多乍一看有些奇特的功能。
Cortex-A7是一款用于100美元以下低价位智能手机的CPU内核。在设计时最注重降低耗电量和成本,因此其电力效率与美国苹果公司“iPhone 4”中配备的ARM现有CPU内核“Cortex-A8”相比,提高至约5倍注1)。
注1)ARM公司Cortex系列产品名称中的数字,代表该CPU内核的相对性能。而不是像苹果公司的应用处理器“A4”和“A5”那样,代表发布顺序和产品工艺。
Cortex-A7内核彻底实现了“环保运行”,并配备了许多移动领域一般并不需要的先进技术和功能。包括虚拟化技术,用于主存储器的ECC功能,以及40bit的物理地址扩展(LPAE:Large Physical Address Extensions)等。
即使为了彻底提高电力效率、削减电路面积,也没有必要在用于低价位智能手机的Cortex-A7中配备虚拟化技术等。为什么ARM公司要在Cortex-A7内核中配备这些功能呢?
兼顾高性能和低功耗
之所以在Cortex-A7中大量配备先进功能,是为了实现一项称为“big.LITTLE”的技术,该技术可在未来的智能手机中兼顾高性能和低功耗这两个完全相反的特性。这项技术是ARM公司在发布Cortex-A7的同时推出的,将注重电力效率的内核Cortex-A7与ARM公司性能最高的CPU内核“Cortex-A15”组合使用(见图1)。正如字面意思一样,同时采用了性能不同的“大小”两种内核。
图1
:2013年以后智能手机也将采用虚拟化技术
图中是ARM公司的CPU内核“Cortex-A”系列,在用于智能手机等便携终端时的内核数量以及内核种类等。由本杂志根据ARM公司的资料制作而成。
big.LITTLE技术可根据电力和性能等情况,将Cortex-A15和Cortex-A7动态地分开使用。比如,像浏览器的屏幕渲染等需要高性能时,就会通过并行性较高、拥有较长管线的CPU内核——Cortex-A15来高速运行相关应用。反之当收发邮件等不需要太高性能时,则会切断Cortex-A15的电源,将整个系统转移到管线更短、电力效率较高的CPU内核——Cortex-A7中运行(图2)注2)。
图2:通过异构多核实现节能的big.LITTLE技术
ARM公司的big.LITTLE技术将注重性能的“A15”与注重耗电量的“A7”这两种CPU内核分开使用,由此可降低耗电量。CPU负荷较低时,将OS等整个系统转移到A7内核,并切断A15内核的电源(a、b)。由本杂志根据ARM公司的资料制作而成。
注2)在何时将某个应用和OS转移至其他内核的判断,与动态控制CPU内核工作频率与电源电压的“DVFS(Dynamic Voltage And Frequency Scaling)”以相同的原理进行。如果Cortex-A15F的电源电压和工作频率降至下限,就会启动Cortex-A7并转移系统。无法从软件看到内核的切换。另外,big.LITTLE技术可实现同时持续驱动异质内核的SMP利用方式。
在big.LITTLE技术中,两种内核间采用的SoC上的电源域(区域)和晶体管也不同。Cortex-A7的电路区域采用阈值电压较高的晶体管,通过降低电源电压来减少工作电流和漏电流。而Cortex-A15的电路区域则采用阈值电压较低的晶体管,通过提高电源电压来追求性能。
架构完全兼容
在big.LITTLE技术中,要想将在一个内核上运行的软件顺利转移到其他内核上,就需要大小两种CPU内核的架构和功能完全相同。
因此,ARM公司使Cortex-A7的架构与Cortex-A15完全兼容。除了Cortex-A7的指令集架构(ISA)与Cortex-A15完全相同外,还将Cortex-A15中首次向ARM架构引进的虚拟化技术、ECC功能和LPAE等先进功能,直接移植到了用于低价位智能手机的Cortex-A7中。注重电力效率的Cortex-A7之所以配备许多乍看并不需要的先进功能,是为了实现big.LITTLE技术。
异质架构成主流
big.LITTLE技术被定位为支撑今后智能手机和平板终端应用处理器的核心技术。ARM公司在2011年10月发布的64bit架构“ARMv8”,尚未发布支持的CPU内核,估计要在2014年以后才能配备在设备上。而big.LITTLE技术是已经可以使用的技术,不久的将来就可以实用化。
目前双核架构的智能手机用SoC,基本上都采用可多个排列相同CPU内核的同质架构。同质架构可采用通过多个内核运行单个OS的SMP(Symmetrical Multi Processing)架构,因此从软件来看易于使用。但从电力效率来看,即使在不需要高性能的情况下,同质架构也不得不采用配备高速架构(可发挥峰值性能)的内核,这点与异质架构相比处于不利地位。
big.LITTLE技术虽然在物理上采用异质架构,但就软件而言多个内核看起来就像一个。可以说是融合了异质架构与同质架构两者优点的技术。
实际上,ARM公司公开的未来应用处理器发展蓝图,从中端到高端的智能手机都并用了Cortex-A15和Cortex-A7,因此估计会采用big.LITTLE技术(见图1)。由此,智能手机在具备高性能的同时,还可延长电池寿命。作为实现这一点的王牌,big.LITTLE技术可以说是很有用的。
通过虚拟化技术掩盖微妙的不同
big.LITTLE技术在内部也采用了颇有意思的封装方法。这就是利用了虚拟化技术。
虽然Cortex-A7与Cortex-A15的ISA是相同的,但是两者在物理上是不同的内核。如果只统一ISA的话,那么内核间还是会存在无法掩盖的微妙不同。
例如,ARM架构中有名为“CP15”的寄存区,可存储CPU内核的ID以及缓存构成的拓扑等信息。ID中包括封装有相关CPU内核的企业ID,以及与CPU内核产品名称相对应的型号等。关于这些信息,Cortex-A7与Cortex-A15必然不同。
big.LITTLE技术通过应用虚拟化技术来掩盖这些不同。如前所述,Cortex-A7与Cortex-A15都采用了虚拟化技术。因此,在这些内核上运行的OS一旦访问CP15寄存器,根据虚拟化机构的原理,就会发生异常陷阱(Exception Trap)。于是,控制任务便会自动转移到OS以下模式运行的虚拟化软件(Hypervisor)上。在Hypervisor上向OS等提示与物理CP15寄存器等不同的信息,由此可以掩盖Cortex-A7与Cortex-A15之间在硬件上的不同。
利用虚拟化原理在软件上“欺骗”OS和应用,由此看起来就像在完全相同的内核上运行一样。ARM公司总裁Tudor Brown表示,“big.LITTLE技术的精髓在于虽然内核的物理性质不同,但从软件来看却完全相同”。
在Cortex-A7中封装虚拟化技术,不仅是为了与前面提到的Cortex-A15确保兼容性,还是为了最终通过Hypervisor消除两个内核间的微妙差异。
加速虚拟化技术在智能手机上的普及
ARM公司在2010年9月发布了该公司首款采用虚拟化技术的内核Cortex-A15,当时未必明确了在移动领域如何利用虚拟化技术。Cortex-A15不同于此前ARM公司的CPU内核产品,专门面向该公司近年着力发展的服务器领域。因此,估计是为了满足该领域的需求,才在Cortex-A15中采用了虚拟化技术。
然而,big.LITTLE技术公布后发现,虚拟化技术实际上可以广泛用于智能手机和平板终端上。ARM公司表示,“最初big.LITTLE项目是与虚拟化技术分别推进的,中途我们认识到可以利用虚拟化技术,于是将两者融合在了一起”。以big.LITTLE技术以及Cortex-A7的引进为契机,此前一直与移动领域无缘的虚拟化技术,将标配在几乎所有的智能手机和平板终端上(见图1)。
在集群间控制一致性
在big.LITTLE技术中,要想使某项任务顺利地从一个内核转移到另一个内核,需要在硬件方面进行改进。具体要求是在不同内核间确保缓存的一致性(Coherency)。
在缓存的一致性控制方面,ARM公司网已经有了“MPCore”多核技术,可以对CPU内核内一次缓存的一致性进行控制。不过,MPCore以最大四核的同质架构多核为前提,不支持big.LITTLE技术这种异质架构多核。
因此,ARM公司针对big.LITTLE技术这种异质架构,在SoC上新设立“集群”(Cluster)这个单位。通过MPCore技术构成的同质架构多核以集群为单位汇总,当在SoC上同时配备不同种类的CPU内核时,需要另外设置新的集群。比如,分别设置一个配备两个Cortex-A7的集群,以及配备两个Cortex-A15的集群(图2)。
集群间的缓存一致性,采用专用的IP内核“CCI(Cache Coherent Tnterconnect)-400”来确保。CCI-400在内部配备了交叉开关。CPU内核内一次缓存的一致性由MPCore技术控制,集群间二级缓存的一致性由CCI-400控制(表1)。
由于可以在Cortex-A15与Cortex-A7之间维持缓存的一致性,因此big.LITTLE技术可在约20μs内完成两个内核间的任务转移。20μs是将CPU内核内部多项寄存器信息转移到其他内核上所需要的时间(图2)。利用基于CCI-400的一致性控制,二级缓存数据可与CPU内核处理并行,从而自动转移到其他内核上。
英伟达也有类似技术
根据负荷情况将阈值电压更高的节电型CPU内核进行切换使用的方法,其实除了ARM公司的big.LITTLE技术外还有其他技术。比如,美国英伟达(NVIDIA)在2011年9月发布的“vSMP(variable Symmetric Multi Processing)”技术。vSMP技术已经用于该公司2011年11月发布的应用处理器“Tegra 3”上,台湾华硕电脑(ASUSTeK Computer)的“Eee Pad TransformerPrime”等平板终端产品已经配备了“Tegra 3”。
Tegra 3配备五个“Cortex-A9”,其中一个用作“协处理内核”,采用漏电流较小的低功耗制造技术形成。虽然不能像big.LITTLE技术那样同时采用微架构不同的内核,但在组合使用电力效率不同的内核这点上,双方是类似的(表1)。
不过,vSMP没有big.LITTLE技术中的集群这一概念,协处理内核以及其他内核直接共享二级缓存。内核间切换所需时间在2ms以内,远远高于big.LITTLE技术的20μs。估计将来会改换成配备更先进系统的big.LITTLE之类的技术。