Exynos Octa组成与核心切换机制
从之前三星公布的Exynos Octa技术文档当中可以看出,三星该处理器当中的Cortex-A15四核与Cortex-A7四核采用物理上分开的方式;其中A7频率为200--1200MHz,A15频率为200--1800MHz。
三星Exynos Octa
三星Exynos Octa核心组成
虽然在物理结构上大小核之间保持独立,但是逻辑上每个A15核心和都和A7核心成为一组,每个组之间都可以根据负载大小进行“A15工作还是A7工作”这样的单独切换,而不是小的负载统一由四个A7承担,大的负载统一由四个A15承担。也就是说Exynos Octa可以像下图这样,三个A7和一个A15参与工作;目前的big.Little架构最大只能同时开启四个核心,物理上的八个核心并无法同时开启,因此说“双四核”要比“八核”更贴切一些。
当运行在大约8000 DMIPS以下的时候,LITTLE也就是四核A7工作,此时CPU平台功耗也维持在了非常低的水平;当负载大于8000 DMIPS左右的时候(或在此之前)big也就是四核A15介入工作,负载越大介入的A核心数越多。每组的A15工作时,该组A7关闭。
Exynos Octa CPU核心切换操作点(图片来自AnandTech)
三星Exynos Octa核心切换
至于A7/A15两种架构之间如何协同工作,负责为ARM编写SoC芯片各项功能软件接口的Linaro组织提供了两种解决方案,一种是我们在Exynos Octa上面看到的内核切换机制IKS(In-kernel Switcher),也就是所有核心无法同时开启,需要进行A7与A15之间的内核切换;另一种则是更加完善的异构多处理HMP(Heterogeneous Multi-Processing),可以实现全部A7与A15的协同工作。后者尚在Linaro的开发当中。
三星Exynos Octa当中所采用的即为第一种方案IKS,物理上Exynos Octa当中有A7与A15两个集群(CLUSTER 0,1),但是从逻辑上我们可以将每个A7与每个A15的组合看作是一个虚拟CPU(这里的Linaro技术文档提供的仅为“双双核”架构,因此只有 CPU 0,1),每个虚拟CPU仅允许一个A7或一个A15工作,这就决定了Exynos Octa当中最多仅能有四个核心同时开启。
A15与A7之间的CCI-400互联(图片来自Linaro)
IKS的切换工作跟Android硬件当中的电源管理类似,基于软件以及硬件驱动来实现;电源管理通过用户层的策略对电压、频率等电源参数进行调整来减少系统活动功耗所需要的硬件支持,而IKS则通过测量CPU平台的工作负载进行内核切换。
这里的IKS不仅能够实现通常意义上的CPU频率改变,还包含了在A7/A15两种完全不同能耗特性的CPU核心间作切换。
推荐经销商