big.LITTLE的前世今生
回顾当年big.LITTLE的诞生历程,其实这完全是一个为降低功耗而诞生的微架构,因为相比起来性能提升显得更加容易。
在此之前的Cortex-A15虽然在当时性能强大,但与之前的A7、A9相比增加单位功耗所带来的性能提升越来越不明显,如果再追求无止境的性能提升———甚至只用四核A15——必然是功耗的不可控,于是A7这样功耗很小但性能尚可的核心便作为辅助加入进来成为了初代big.LITTLE的标准组成。
当年Cortex-A15双核平台功耗测试数据
ARM提供的big.LITTLE架构省电效率(红色为big.LITTLE)
就目前来看这样的组成还是比较合理的,其一我们无法用功耗很高的A15、A57核心去面对移动终端SoC平台的多核趋势,其二我们的绝大多数日常任务也根本用不到更多颗A15、A57这样的大核提供的超高性能。
同为公版为何性能不一?
回到我们的测试当中,同样是“四大+四小”的Exynos 7420与骁龙810、或者同样是“四小+四小”的MT6795与麒麟935,既然核心组成与频率都类似,为什么两者之间还会有性能区别呢?除了制程之外,也要提到当年因为“真假八核”的争论而进入人们视线的“CPU核心切换和调度”问题。这个问题经历了“集群迁移”“CPU迁移”“HMP”三个阶段,我们来具体看看区别。
集群迁移方式,只能同时全开大核或同时全开小核,最高性能 = 单个大核性能 X 大核个数;实现最简单,切换灵活度低。
CPU迁移方式,每个大核与每个小核构成虚拟核心,每个虚拟核心同时只允许打开一个大核或一个小核,最高性能 = 单个大核性能 X 大核个数;切换灵活度中等。
HMP方式,所有核心和同时全开,最高性能 = 单个大核性能 X 大核个数 + 单个小核性能 X 小核个数;实现起来最复杂,切换灵活度高。
世界上首款big.LITTLE架构的SoC为三星Exynos 5410(Octa),用于三星Galaxy S4。Exynos 5410的八个CPU核心调度采用第二种方式,也就是说物理上Exynos Octa当中有A7与A15两个集群(CLUSTER 0,1),但是从逻辑上我们可以将每个A7与每个A15的组合看作是一个虚拟CPU,每个虚拟CPU同一时刻仅允许一个A7或一个A15工作,这就决定了Exynos Octa当中最多仅能有四个核心同时开启。
而不久之后的2013年底,“八核全开”的异构多处理HMP(Heterogeneous Multi-Processing)调度机制就被用到了随后的big.LITTLE架构处理器上,我们才真正迎来八核时代。
具体到此次测试当中的四款SoC所用到的调度方式,似乎只有联发科在一直宣传其自主开发的Core Pilot技术,白皮书当中提到它基于开源HMP技术,在核心调度上综合考虑了如何获得最大性能以及更小的功耗水平。
推荐经销商