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

  智能手机和平板终端配备双核与四核处理器已成为一种趋势。新一代应用处理器的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之类的技术。(记者:进藤 智则,《日经电子》)

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • 单片机
  • 嵌入式
  • MCU
  • STM
  • 嵌入式系统的运算处理架构

    硬件三人行,专注于工程师在线教育。以模拟电路课程和PCB实战课程为主,以基于stm32的算法课程和产品结构课程为辅。满足5年以下工作经验的硬件工程师技术提升需求

    昨天
  • Linux Kernel是如何工作的

    ( 作者:杨东杰)  本文发表于LinuxFormatmagazine杂志,作者从技术深度上解释了LinuxKernel是如何工作的。相信对Linux

    08-11
  • Linux在PMP消费类电子产品上的应用

      Linux是一种适合于嵌入式系统的开源操作系统,可以高效地处理各种复杂的任务。从基于TIDM320的PMP解决方案入手,以TIDM320平台为例,提出一种在

    08-11
  • C51中的关键字和ANSIC标准关键字

    1、C51中的关键字2、ANSIC标准关键字作者:武力戡乱来源:武力戡乱的博客

    08-11
  • Watchdog的原理和配置

    一、Watchdog介绍单片机的watchdog一般都有两个,一个是独立看门狗IWDG,一个是窗口看门狗WWDG。以STM32为例,STM32的独立看门狗是一个

    08-11
  • BSP在嵌入式开发中的位置和作用

    BSP是板级支持包,是介于主板硬件和操作系统之间的一层,应该说是属于操作系统的一部分,主要目的是为了支持操作系统,使之能够更好的运行于硬件主板。BSP是相对于操

    08-11
  • 6步移植Lua代码

    Lua代码符合ANSIC标准,只要有C编译器的开发环境就能跑Lua。虽说只要有C编译器就能跑Lua,但是单片机的环境太简单,有些C标准的内容仍旧无法支持。Lua

    08-11
  • 为什么单片机管脚设计成低电平才有效?

    它是由常用的电路结构所决定的,低电平时电路往往有较高电平时更低的环路阻抗,而低阻抗则意味着抗干扰能力更强。结合实际讲一个有用的例子来加深印象:有的同学可能已经学

    08-11
  • 单片机硬件设计去耦和供电

    1、建议在印制电路板中,VDD和GND分别由电源层和地层实现。连接到AVDD和AGND引脚的模拟电源应直接布线到电源层和地层,它们不能和任何一个数字电源共享线路

    08-11
  • 设计单片机线路板时有指示灯的好处

    在设计单片机线路板的硬件的时候,一般都有指示灯,有时还不止一个,这样做是为什么呢?下面我来简要说一下自己设计电路板和软硬件调试的时候,指示灯所起到的不可忽视的作

    08-11
  • ARM Contex三个系列的区别

    从cortex开始,分为三个系列,a系列,r系列,m系列。m系列与arm7相似,不能跑操作系统(只能跑ucos2),偏向于控制方面,说白了就是一个高级的单片机。

    08-11
  • 51单片机程序的几个特点

    本篇我们将分析上一篇所写的程序代码。未来学习单片机的大部分精力,我们也将放在程序代码的编写上。但是不用担心,我会非常详细的介绍每个程序的编写思路和各种注意事项等

    08-11
下载排行榜
更多
广告