终极指南:2013年手机CPU的现状与未来
最后来谈一谈技术最为复杂,同时争议也最大的三星Exynos 5 Octa(Exynos 5410)。这个芯片最大的特色就是整合了ARM的big.LITTLE技术,内部集成了8个核心——四个Cortex A15为一组,四个Cortex A7为一组,从而成为了手机上第一枚超越四核的片上系统。
也许你会提出质疑,NV的Tegra 3和Tegra 4实际上也拥有5个核心,为什么它不能算作是五核SoC呢?原因很简单,因为Tegra多出来的那一枚核心其实设计上是作为四个主核心其中之一的映射,在实际工作中系统是识别不出这一颗核心的。
但Exynos 5 Octa不同,它的八颗核心在某些情况下是可以同时运行的,因此可以称之为八核SoC,虽然实际情况下这样的工作模式不一定会被用上,关于这点,即Exynos 5 Octa是否是伪八核,同样也是围绕这颗芯片的众多争议中最大的一个,对此后面我们会详细讨论。
Big.Little架构
除了big.LITTLE以外,Exynos 5 Octa本质上是一颗非常典型的处理器,它拥有标准的Cortex A15核心、标准的ARM系统IP,支持的规格与系统配置也一如三星以往的风格,优异而不顶尖。LPDDR3 1600的内存支持与12.8GB/s的理论带宽在手机SoC中实为翘楚,而PowerVR SGX544MP3运行在533MHz的高频下,假如不考虑信息尚不明确的Tegra 4,性能也足以进入ARM世界的前三:仅次于iPad4的SGX554MP4和骁龙800的Adreno 330。
工艺方面,三星使用了自家最新的28nm HKMG LP,根据三星的宣传资料,相对于32nm HKMG,28nm HKMG主要的提升在于集成度,也就是单位面积下可以实现更多的晶体管,提升幅度大约在35%左右。至于漏电等工艺性能,我们有理由认为不会和32nm HKMG,也就是上一代的Exynos 4412所采用的工艺有太大的差别,具体原因在上篇中我们也多有提及。三星32nm HKMG实际上是一个性能相当强悍的工艺,Exynos 5 Octa的基础至少也是有所保障的。
不过,如同之前说过的,Cortex A15本身不是一个利于手机使用的架构,只要把它做进手机,都要面对功耗难题,,三星也不能例外。Exynos 5 Octa的最高频率目前并没有明确的说法,也许会在1.7到1.9GHz之间,但我们知道的是,在Galaxy S4上,Exynos 5 Octa的最高频率只开放到了1.6GHz。
1.6GHz的标准Cortex A15核心满载功耗不会低于1.8W,三星即使经过大量优化,Exynos 5410四颗A15核心的总功率也依然要在6W以上,这大大超越了2.5W乃至4.15W的散热极限。实际情况可以作为这个推断的非常好的例证:Galaxy S4的CPU满载工作的时间只能达到区区10秒,之后就不得不因为核心温度突破90度而被迫关闭Cortex A15核心。
Exynos 5 Octa是一个明显的市场导向产品,三星在设计它的时候,考虑优先点是市场对于参数的需求,而完全不顾这样规模的硬件是否可以安全的工作。当然,作为应对,ARM提出了big.LITTLE,三星也将其引进到产品中,但是这样的行为并不能本质上改变这个设计的失败之处。有人也许会说,这不是很好吗,何来失败?那就让我们继续研究下去。
运行5秒钟以后,猎户座5处理器的A15核心即开始降频
现在让我们来打个赌:如果你是Galaxy S4八核版的用户,你绝对会有这样的体会:Exynos 5410处理器主频在实际运行中非常不稳定,低于标称的1.6GHz是常态。
在Exynos 5410中,Cortex A15四核的最低工作频率是1.2GHz,而Cortex A7四核的最高工作频率也是1.2GHz。问题是,这两者的同频性能并不一样,导致以频率为控制参数的算法比较难写。于是三星在系统中将Cortex A7的有效频率显示为实际频率的一半,并以此作为控制参数,就实现了较为线性的频率——性能曲线。
也就是说,只要你看到Exynos 5 Octa的工作频率是1.2GHz以上,就意味着现在是Cortex A15在工作,而600MHz则意味着Cortex A15已经关闭,系统已经切换到1.2GHz的Cortex A7。由于频率调节十分频繁,所以这给我们计算Exynos 5 Octa的效率带来了一定的困难,不过我们依然可以从实际工作的情况下对于极限性能给出近似的计算。
Exynos 5410 CPU + GPU同时满载的情况,注意下方的频率曲线
根据爱活网友站enet的测试结果,在满负荷工作的时候,Exynos 5410的工作模式大约如下:Cortex A15于1.6GHz工作6秒左右,于1.2或1.4GHz工作4秒左右,然后切换到1.2GHz的Cortex A7工作10秒左右,并且在这样的序列下循环。由于频率调节的目标是功耗以及温度,因此我们可以近似认为在这样的工作序列下,处理器系统的平均功耗大约是2.5W左右。如果将Cortex A15的性能归一化为同频Cortex A9的1.5倍,Cortex A7为0.7倍,因此我们可以得到在这20秒内,Exynos 5 Octa所输出的总性能相当于四核Cortex A9运行在1.53GHz时的性能。也就是说,Exynos 5 Octa所能提供的持续性能,甚至还不如Exynos 4412,因为后者在2.5W的功耗限制下可以运行在1.6GHz。
Exynos 4412依然是能耗比最为均衡的手机处理器
当然,这个结论有些粗略,我们只验证了基准测试时猎户座5处理器的CPU频率变化,实际应用中可能有所不同,但有一点可以确定,那就是Exynos 5410在手机上可以发挥的性能远远低于硬件设计的极限性能。Cortex A7与Cortex A15联合的效率,大约和Cortex A9不相上下,这也就意味着配备了Exynos 5 Octa的设备,其体效值并不会比Exynos 4412高。
然而,这并非Exynos 5 Octa的非常好的工作模式。ARM big.LITTLE技术其实包含有三种工作模式:整体迁移、非对称多核心与异构多核心。整体迁移模式指Cortex A15或Cortex A7轮流工作,两者无法同时激活,具体开启的核心数字根据系统负载决定。非对称多核心则是将Cortex A15四核簇和Cortex A7四核簇看作两组非对称多核心簇,依靠外部总线工作在异步模式下,从而启动所有的八个核心。而第三种是最诱人的,也就是将每一个A15与A7组合成为一个“处理器对”,将其看作一个单独的处理器,系统根据需求开启若干个“处理器对”,而每一对处理器究竟使用Cortex A15还是Cortex A7,完全根据该核心的负载决定。
从理论上来说,Exynos 5 Octa支持全部的三个模式,但是三星目前在系统中却只支持了第一种模式,产品中的工作模式也只有整体迁移。这导致一些人认为三星这颗CPU的技术开发尚未完成,是“半成品”,因此并没有实现非常好的的工作效果。甚至有一些分析表示,这是源于Exynos 5 Octa的硬件设计缺陷导致的,需要在未来的产品中才能修复。对此,我们认为这样的说法既是对的,也是错的。
big.little的三种工作模式
为什么这样说?前提是,单纯的降低功耗并没有意义,只有提升体效值才可以获得更强的性能。对于Exynos 5 Octa而言,其他的两种工作模式似乎可以降低功耗,但可以提升每瓦特性能吗?这是一个未知数,而且是一个相当不容乐观的未知数,原因之一就在于Exynos 5 Octa的两组处理器,二级缓存的大小不同。
根据架构图,Exynos 5 Octa的Cortex A15部分,二级缓存为2MB,而Cortex A7部分只有512KB。如果是Cortex A9时代,这并不是问题,因为所有的二级缓存都是靠总线实现的访问。但是在Cortex A15和A7时代,ARM为了提升缓存效能,将L2 Cache整合进了多核心控制器SCU中,它的坏处就在这里:一旦系统内同时存在着激活的Cortex A7和Cortex A15,那么由于二级缓存的大小不同,两组核心之间的联合工作将会变得非常麻烦。
二级缓存是内存的映射,所以所有核心所访问的二级缓存的数据必须完全相同。Cortex A15和Cortex A7各自拥有自己独占的二级缓存,当两者协同工作时,缓存是无法共享的,维护两组L2之间的数据一致性会变成一件非常重要同时也非常影响性能的事情。高通的异步架构之所以有性能损失,一致性开销就是其中很重要的因素之一。
在Exynos 5 Octa中,两组A15和A7核心的二级缓存大小不同,这就意味着即便是在最好的情况下,也会导致Cortex A15处理器簇的有效L2从2MB缩减到512KB,这对性能的影响极为巨大。
同一个处理器中,A15核心和A7核心的缓存容量根本就不相等,在它们公布工作时会带来问题
所以,三星选择了只实现第一种工作模式。在这个模式下,缓存一致性无需维持,只需要在切换时通过内存将缓存数据复制即可(A7到A15可以视作部分填充,而A15到A7可以丢弃超出512KB的部分),甚至可以更简单的直接丢弃L2数据,令其重新填充。因为相对于联合工作所需要的一致性维护需求(其频繁程度与缓存命中率相关,可能只比处理器时钟频率低2~3个量级)而言,由于动态频率控制导致的核心切换要少的多,至多只有每秒百次的水平,因此这样的损失是最少的,换句话说,另外两种big.little模式虽然看起来更美好,但实际上反而会导致系统效率的降低,从而进一步降低搭载Exynos 5 Octa设备的体效值,使其变得比Cortex A9更慢。
从这个意义上说,如果你需要一颗手机处理器,至少在CPU部分,Exynos 5 Octa实际上相对于Exynos 4412而言是倒退的。这无疑是对于畸形市场需求的非常好的打脸:超高的规格,强大的指标,性能却在偷偷的后退,不知道这到底迎合了谁的需求。
当然,Exynos 5 Octa也不全都是坏处。由于LPDDR3的引入,翻倍的内存带宽可以极大提升系统在日常使用中的感受,因此总体而言Exynos 5 Octa的体验不会有之前评价的那么悲观,只是会距离你所认为的强大相去甚远罢了。至于另一个好处则来源于PowerVR SGX544MP3这枚GPU。
就如同PC一样,手机对于GPU的需求也慢慢超过了CPU。不客气的说,现在的日常需求,一枚四核心Cortex A7就可以满足了,但是游戏所需要的性能却是永无止境的。在Exynos 4210“猎户座”刚刚发布的时候,Mali400MP4几乎可以满足所有游戏,这枚GPU不仅速度飞快,而且极为省电,能耗比相当高。但是随着手机游戏的进步,在Exynos 4412上这枚GPU已经显出了疲态。三星在Exynos 5 Octa上作出更换GPU的决定非常及时。Exynos 5 Octa的3D性能达到了目前手机处理器的优异水平,在日常使用中你有很多机会可以体验到它带来的提升。
根据粗略测试,搭载Exynos 5 Octa的Galaxy S4在运行3Dmark的时候,整机功耗不会超过2.5W,这也就意味着这枚GPU的满载功耗将不会超过1.5W。这无疑是一个非常振奋人心的数据,这意味着PowerVR SGX544MP3在维持了Mali400MP4能耗比的基础上(严格来说仍然有一定的下滑,但是远远高于继任者Mali T604)将其的最大性能扩展了几乎四倍,这样的提升才是符合用户需求的提升。对于这样的进步,我们需要高举双手给予掌声。