新闻中心

EEPW首页>嵌入式系统>设计应用> ARM新一代多核技术可延长智能手机电池寿命

ARM新一代多核技术可延长智能手机电池寿命

作者: 时间:2012-05-03 来源:网络 收藏

架构完全兼容

在big.LITTLE技术中,要想将在一个内核上运行的软件顺利转移到其他内核上,就需要大小两种CPU内核的架构和功能完全相同。

因此,公司使Cortex-A7的架构与Cortex-A15完全兼容。除了Cortex-A7的指令集架构(ISA)与Cortex-A15完全相同外,还将Cortex-A15中首次向架构引进的虚拟化技术、ECC功能和LPAE等先进功能,直接移植到了用于低价位手机的Cortex-A7中。注重电力效率的Cortex-A7之所以配备许多乍看并不需要的先进功能,是为了实现big.LITTLE技术。

异质架构成主流

big.LITTLE技术被定位为支撑今后手机和平板终端应用处理器的核心技术。公司在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)。

9.gif

由于可以在Cortex-A15与Cortex-A7之间维持缓存的一致性,因此big.LITTLE技术可在约20μs内完成两个内核间的任务转移。20μs是将CPU内核内部多项寄存器信息转移到其他内核上所需要的时间(图2)。利用基于CCI-400的一致性控制,二级缓存数据可与CPU内核处理并行,从而自动转移到其他内核上。



评论


相关推荐

技术专区

关闭