什么是ARM big.LITTLE架构

前段时间,MTK宣布了下一代的手机芯片平台MT6592,最大的亮点就是MTK的“真八核”方案(八个内核同时运行)。并以此抨击Samsung Exynos 5 Octa 系列的”big.LITTLE”八核方案。为了更好了解这场争论的核心内容,抽空上网补习了一些相关知识。

“big.LITTLE”是ARM 公司在2012年新推出的一种处理器架构。为的是解决处理器性能提升和功耗/发热控制这一对矛盾。在Exynos 5410(Galaxy S4)中,三星将一块 低功耗,低性能的 4核Cortex A7芯片(LITTLE)和一块高性能,高功耗的Cortex A15芯片(big)桥接在一起。当手机在运行的时候,绝大部分时间只有LITTLE在工作,当运算负载变化的时候,芯片首先通过DVFS(Dynamic Voltage Frequency Scaling)调整运行频率应对。当负载继续变高,需要更多的计算能力时,芯片会将工作切换到A15上继续执行,直到负载下降,重新切回LITTLE。由于Cortex A7和A15同属于ARM v7A架构,因此任务的切换在这两块芯片是可行的。同时,由于用户使用的固有模式(大部分时间处于待机或低负载运行),使得用户可以节约大量的电池电量,大幅提高待机时间。

下图演示了采用big.LITTLE架构(Cortex A7+A15)和单纯使用Cortex A15之间的比较。

1
关于MTK所说的Samsung Exynos Octa芯片事实上只能使用4个核的说法,是不是正确呢?实际上,S4确实只能使用4个核,但是Note3已经升级到可以同时使用8核了。big.LITTLE架构支持三种使用方式:Cluster Migration, CPU Migration和HMP(Heterogenous Multiple Processing, 也叫 Global Task Scheduling)。

a

 

在Cluster Migration模式,只能进行簇(cluster)切换,即只能同时使用4核Cortex A7或者A15。这是big.LITTLE最初的模式,Galaxy S4(Exynos 5410)也只能使用这种模式。

在CPU Migration模式,内核可以单独切换,但是只能切换到自己对应的内核上。比如CPU0.big(Cortex A7)只能和 CPU0.LITTLE(Cortex A15)互相切换,CPU1.big只能和CPU1.LITTLE切换。这样子,带来了一定的灵活度,但是同一时刻工作的CPU仍然不会超过4颗。

HMP被视为终极模式,big.LITTLE可以单独管理所有的内核,分配任务。最多可以让8个内核同时工作。Galaxy Note3 (Exynos 5420)采用的就是这种方式。在youtube上,ARM还分享了一段视频,演示在Samsung设备上,采用ARM big.LITTLE架构的芯片加上加上ARM自家的MALI GPU,运行RenderScript(Android上的异构计算语言)的情景。可以看到,在极端(高计算负载)情况下,所有的8个CPU内核以及6个GPU内核都会同时参与运算,但是,在大部分时间,芯片处于待机,或者只有少数A7的内核在工作,以节省功耗。

更多关于ARM big.LITTLE的细节,可以参考anatech.comARM的文档

Leave a Reply

Your email address will not be published. Required fields are marked *