APP下载

ARM big.LITTLE系统技术应用

2013-04-29RobinRandhawaBrianJeff

电子产品世界 2013年8期
关键词:中央处理器处理器集群

Robin Randhawa Brian Jeff

对于未来任何一种处理器,处理速度都将因为受限于散热问题而无法大幅跃进。设备一旦达到热障(thermal barrier)就会熔化,如果是移动电话,便会使设备的温度上升造成用户不适。除了物理层面的散热问题外,能源效率也相当差。若调校处理器使其速度加快,则所需耗能便会呈指数数增长,而为了增加最后一丁点的性能需要付出的成本非常高。过去,尺寸倍增代表着速度翻倍,但如今,面积倍增,速度却只增加几个百分点,因此复杂度并不代表有效率,而这就是单一核心系统有所限制的原因之一。

如果无法加快单一核心的速度,那么就必须增加独立核心的数量。这也有助于每个核心去应对其被分配到的任务需求,而这也就是ARM big.rLITTE(大小核)处理器技术的贡献所在。

big.LITTLE处理器技术要解决业界目前最严峻的挑战:通过提升性能和延长电池续航时间来拓展消费者“始终在线、始终连接”的互联移动体验。这种技术之所以能达成上述目标,是通过结合一个大(big)的多核心处理器与一个小(LITFLE)的多核心处理器,然后根据性能需求,以无缝的方式针对不同任务选择合适的处理器。更重要的是这种动态选择的动作,对于上层应用软件或中间件在处理器上的执行丝毫没有任何影响。

目前已应用于市面上移动设备的big.LITTLE设计,结合了高性能Cortex-A15多处理器集群与具有节能特色的Cortex-A7多处理器集群。这些处理器在架构上是百分之百兼容且具有相同功能(均支持LPAE、虚拟化扩充及NEON、VFP之类的运作单元),无须另外调整即可让针对其中一种处理器类型所编译的软件应用程序顺畅地应用于另一款处理器上。

big.UTTLE系统结构

就高速缓存一致性(cachecoherency)的维护而言,无论是同一处理器集群中的高速缓存、或是跨不同处理器集的高速缓存,皆保持了高速缓存数据的一致性。这种跨集群的一致性来自ARM CoreLink高速缓存一致性互连(CCI-400,也能提供ARMMali-T604之类的图形处理器[GPU]系统等组件的I/O一致性)。两种集群的中央处理器,还可通过CoreLink GIC-400之类的共享中断控制器互传信号。

big.LITTLE系统执

行模式

由于同一应用程序不需要任何修改以同时在Cortex-A7和Cortex-A15上运行,因此可以在随机的情况下也能为某个应用程序选择正确的处理器。下列执行模式便以止理论为基础:

·big.LITFLE转移模式:

·big.LITFLE MP模式。

顾名思义,转移模式支持不同类型处理器之间的内容获取和恢复。以中央处理器转移来说,集群中每个中央处理器在另一个集群中都有对应的中央处理器,而软件内容则以每个中央处理器为单位,随机在不同的集群间转移。如果集群中没有正在运转中的中央处理器,便可关闭整个集群以及相关的二级缓存(L2 cache)电源。MP模式则将软件堆栈分配到两个集群中各个处理器上。所有的中央处理器可同时运作,将系统性能提升到最高点。

big.UITTLE转移模式

转移模式是动态电压频率调整(DVFS)等功耗/性能管理技术的延伸。转移操作类似DVFS操作点的转换。处理器上DVFS曲线的操作点,会随负载变化不同而来回移动。在当前的处理器(或集群)已达到最高操作点时,如果软件堆栈仍需要更高的性能,处理器(或集群)转移就会发生。此时就会由另一个处理器(或集群)来执行工作,这个处理器(或集群)的操作点也会随着负载变化不同而来回变动。当性能需求不再,可以再切换回之前的处理器(或集群)。

一致性是实现快速转移的重要因素,它允许监视并将保存在离埠处理器(outbound processor)的状态,在入埠处理器(inbound processor)上检测与恢复,而不必通过主存储器的存取。此外,由于离埠处理器的L2有高速缓存一致性(cache coherency)的功能,当任务转移时,可以透过检测数据值的方式,改善入埠处理器的高速缓存预热时间,此时L2高速缓存仍然可以维持供电状态。不过,因为离埠处理器的L2高速缓存无法提供新数据的配置,最后还必须清除并关闭电源以节省耗电。

big.UITTLE中央处理器转移模式

至于中央处理器转移,小核的处理器集群中每个处理器都对应了一个大核集群的处理器。中央处理器为成对配置(cortex-A15及Cortex-A7处理器上同时配置CPUO、CPU1……依此类推)。使用中央处理器转移时,每个处理器配对中在同一时间只有一个中央处理器能够运转。

系统会主动检测各处理器的负载。高负载时内容执行会转移到大的核心,当负载较低,执行则会转移到小的核心。不论何时每个配对中只有一个处理器可以运转。当负载从离埠核心转移到入埠核心时,前者便会关闭。这种模式让大核与小核的组合能随时运转。

big.UITTLE MP运作

由于big.LITTLE系统可以经由CCI-400达到高速缓存的一致性,因此有另一种模式能让Cortex-A15及Cortex-A7处理器同时运作并同步执行程序代码,称为big.LITTLE MP(本质上是一种异质性多任务处理模型)。这是big.LITTLE系统最先进且最具弹性的模式,能跨越两个集群调整单一执行环境。在这种使用模式下,若线程有上述处理性能方面的需求,便可开启Cortex-A15处理器核心并同时通过Cortex-A7处理器核心执行任务。如果没有这方面需求,则只需开启Cortex-A7处理器。在实际应用上,不同集群的处理器核心并不需要保持一致,而big.LITFLE MP更容易支持非对称的丛集。

移动应用的特性

big.LITTLE技术具有优势的原因之一,就是普通情况下移动应用工作量对性能的需求各有不同。图5显示的是目前搭载Cortex-A9的移动设备中,两个核心在DVFS、闲置与完全关机状态下所花费时间的百分比。图中红色代表最高频率的操作点,绿色区块则代表最低频率操作点,介于两者的颜色则属中级频率。除了DVFS状态,操作系统电源管理也会使中央处理器闲置。图中浅蓝色区块代表空闲时间。当中央处理器闲置的时间够长,系统的电源控制软件可能会完全关闭其中一个核心以节省耗电。图中最深的颜色便代表这部份。

从图5可清楚看出,应用程序处理器在好几种普通工作量下,都有相当多时间处于低频率状态。在big.LITTLE系统里,系统级芯片(Soc)可利用耗能较低的cortex-A7中央处理器,执行深红色部分以外的所有工作。下图则以相同方式分析了更为密集的工作量,而即使是在这样的状况下,在Cortex-A7处理器对应出低于1GHz的频率的机会仍然很大。

性能与耗电分析:big.LITTLE测试芯片

2011年起,用户层级软件已能在big.LITTLE排程上运转,不过,那只是在处理器核心与互联的软件模型环境上发展。为完整评估big.LITTLE系统的性能、节能以及调校是否合适,必须打造一个能让用户软件全速运转的测试芯片。ARM的测试芯片早在2012年初夏即由制造厂完成,并在短短几周内开始搭配硬件开发板(development board)运转,支持完整版的Linux系统及安卓操作系统Ice Cream Sandwich(Jelly Bean亦纳入测试但本文引用结论均来自Ice Creamsandwich)。这个测试芯片包含了一个双核Cortex-A15集群、一个三核Cortex-A7集群,以及CCI-400高速缓存一致总线架构。会影响部分使用者评效基准的图形处理器并不包括在内,但平台仍可支持Linux、安卓操作系统以及性能测试软件。

图5的性能测评是由Cortex-A15与Cortex-A7中央处理器集群各自独立运转。测试芯片的Cortex-A1S最高频率达1.2GHz,Cortex-A7则为1GHz。性能测评结果显示,虽然测试芯片上的内存系统,其性能不如big.LITTLE系统级芯片量产后的预测水平,Cortex-A15与Cortex-A7中央处理器的性能仍落在预期范围内。根据各个核心独立运转所得结果,我们对平台测量big,LITFLE性能的准确度深具信心。测试芯片平台软件包含基本的Linux核心,还采用了中央处理器转移软件与big.LITTLE MP修正程序组,以测试中央处理器转移或big.LITFLE MP模式。

而用来测试big.LITTLE性能的任务量,主要基于Android CreamSandwich系统,通过网页进行网络浏览器性能循环,背景则有音效播放。在这个使用实例中,是以相当密集的工作量搭配对性能需求不高的背景活动。网络浏览器每2秒便进行网页循环,每页卷动达500像素,因此对系统性能需求相对较高。为了在进行性能测试的同时测量性能与能耗,首先必须建立性能与能耗的基线。而这个基线则搭配独立运作的Cortex-A15集群进行测量。

值得一提的是,这组结论属于较早期的测试结果:用来测试的第一版big.LITTLE MP修正程序组,将Linux排程程序从一个完整而平衡的排程模式调整成big.LITTLE模式。我们预期软件修正后性能与能耗将会改善,也会寻找其他可调校的元素。另外,测试芯片缺少绘图处理器:这将使得中央处理器的负载高于搭载绘图处理器的系统在卸除状态下的负载水平,而在中央处理器负载较低的状况下,可能会较常使用LITTLE核心,进而达到节能目的。它包含一套基本的电压及频率操作点(DVFS),但没有对单处理器核心做独立的电源开关设计,因此big.LITTLE系统单芯片量产后测试结果有望提升。举例来说,后台任务的性能便可节省超过70%的能耗。

如何选择big.LITTLE软件模式

各界最常见的疑问就是:“应该选择哪一种软件模式?”目前主要是在中央处理器转移与big.LITTLEMP之间选择一种,而两种方式各有优劣势。在中央处理器转移方面,由于big以及LITTLE核心处于搭配成对的状态,因此对称式的拓扑能顺畅运作。而big及LITTLE核心数量不同的非对称式拓扑则需要额外运作。由于Cortex-A7中央处理器核心体积较小,因此可使用4个LITTLE核心加上1到2个big核心,这种作法可能会具有吸引力。从正面的角度来看,中央处理器转移让电源及性能的调校更为容易,可重复利用既有的操作系统电源管理程序代码,代表产品将有多年的研发及测试结果作为支持。加上不必调整核心的排程程序,范围比执行big.LITTLE MP模式更为简化,而软件模式也正日趋成熟。整体而言,中央处理器转移是一种极佳的解决方案,2013上半年后可望进入量产,并持续为尚未完成big.LYITLE MP模式升级准备的系统提供可行的转移模式解决方案。

big.LITTLE MP具有多项技术上的优势,虽然技术尚未完全成熟,但目前正处于进阶研发阶段,测试结果如本文所示相当不错。由于支持非对称式拓扑为标准配备,因此无需调整软件,big.LITTLE MP技术便能利用系统中所有核心。它在性能与能耗方面优点更多。举例来说,它能同步利用所有核心以提升性能,或将big与LITTLE核心上的DVFS设定与排程程序设定调成不同状态以节省更多能耗。因为需要增加调校的动作,才能从big.LITTLE MP平台获取完整的性能及能耗优势,所以弹性提升仍有其代价。这与过去数年来由硅组件以及代工厂商将操作系统能源管理设定以及DVFS参数数据,并依据装置需求转化为移动系统级芯片平台的主流做法并无太大差异。big.LITTLE MP模式将转移模式延伸并纳入新的参数数据,不仅更为节能,更能为经过性能优化的big核心增加系统响应度。

big.LITTLE MP模式正快速成熟,虽然尚未成为主流技术,但目前这项技术已可接受合作伙伴整合,并有望在2013下半年打入上游。所幸支持big.LITTLE MP并不需要改变硬件,因此晶圆厂可能会部署具有中央处理器转移的平台,针对部署平台进行核心更新并升级至big.LITTLE MP模式,或建设现有的big.LITTLE平台以便在2013年后半年直接取得big.LITTLE MP软件转移模式。

虽然big.LITTLE MP模式尚未进入量产,但如文中测试结果,我们可以看到相关软件已开始运作,并已开始在硅组件厂研发平台端进行测试。big.LYITLE MP软件已用于我们的测试系统,目前正积极进行软件强化,并针对各种实际应用将系统性能调校至最佳效果。

有部分的可调校因素已在应用中,包括排程程序的负载平衡策略、上下移转点以及线程优先顺序,ARM与芯片设计合作伙伴将持续就上述领域进行系统调校。

新一代big.LITTLE硬件

cortex-A15与cortex-A7核心代表第一代的big.LITTLE硬件。ARM已发布两款具有big.LITTLE处理性能的新型中央处理器核心,即cortex-AS7以及Cortex-AS3处理器。Cortex-AS7处理器是经过性能优化的big核心,每频率周期的性能可增加25%,频率性能也更为提高,效率则略高于cortex-A15处理器。Cortex-AS3处理器为LITTLE核心,每频率周期的性能可增加40%,能源效率则大约于cortex-A7处理器相同。

这些新的处理器核心在架构上都完全相同,并支持ARMv8架构,因此能导入全新的NEON技术与浮点功能、加密加速并支持64位架构。除了AMBA4 ACE,两种核心也都支持新一代高速缓存一致总线架构,且与现有的ARMv7中央处理器核心相同,能在AArch32模式下执行既有程序代码。支持64位及额外一般用途缓存器的应用方式效率更高,且能耗增加不多。同时,微架构也经过强化,以增加各核心在每个指令频率周期中的传输量。这些新款核心在经过软件细节升级并支持64位寻址模式后,将会与cortex-A15以及cortex-A7处理器一样支持big.LITTLE技术。

结论

big.LITTLE系统为能耗及性能控制点的极度宽动态(wide dynamicrange)开启了大门。这是仅由单一类型处理器组成的产品所无法达到的。目前市面上设备的工作量往往混杂了需求程度高低不同的线程,这种宽动态便可为其提供完美的执行环境。由于日后Cortex-A7将成为平台主力,这一系统另一个优点即能够打造基于Cortex-A7的高度节能产品。

猜你喜欢

中央处理器处理器集群
海上小型无人机集群的反制装备需求与应对之策研究
计算机中央处理器液体循环散热器实验研究
一种无人机集群发射回收装置的控制系统设计
关于计算机中央处理器的研究
Python与Spark集群在收费数据分析中的应用
CPU与GPU探究
计算机中央处理器的研究
勤快又呆萌的集群机器人
Imagination的ClearCallTM VoIP应用现可支持Cavium的OCTEON® Ⅲ多核处理器
ADI推出新一代SigmaDSP处理器