干货满满科普文 从架构解析麒麟960如何刷爆安兔兔
今年10月和11月,对于华为来说是非常重要的两个时间。10月发布了全新的麒麟960处理器,而11月则迎来了华为Mate 9——首款采用了麒麟960处理器的手机。在国产手机依赖高通、MTK的年代,华为手机堪称一股清流,给我们带来了第三种选择。今天评价君要讲解一个稍微“深”一点的话题,那就是麒麟960为什么性能好。
传统印象中我们认为频率高性能就强,GPU强图形性能就强,八核比四核好,DDR4比DDR3好……这种概念已经无处不在。但事实真正如此么?如果不深入探索的话,恐怕真的会被这种观点给误导了。评价君先从几组CPU的安兔兔成绩差距入手,到最后讲清楚到底是什么东西在影响手机CPU跑分,抓住这支无形的“手”。
安兔兔跑分暴露性能差异
第一组对比对象是麒麟960对比麒麟950。自从麒麟960发布以来,不是跟骁龙820对比就是跟麒麟950对比,总之这组对比也算是最常见的组合之一。在两两对比时怎么组合最直观,评价君也头疼了一阵子,还是先从华为自家下手吧。
麒麟960相对于麒麟950来说,跑分暴涨了50%,其中得益于两个分项,第一是3D性能,第二是RAM性能。3D性能没得说了,但麒麟960的RAM性能比麒麟950性能翻倍,这该如何理解呢?要知道两款手机使用的可都是DDR4内存。
第二组是骁龙820对比MTK Helio X25。两款CPU的跑分差距也主要来自3D性能和RAM性能。有意思的是和第一组相比,两款CPU的3D性能差距并不小,RAM成绩的落差却小很多,总成绩落差也变小了。骁龙820的RAM性能比Helio X25高了大约27%,总分高了接近38%。
从这两组对比可以看出一些端倪,RAM性能权重大,对总分有影响很明显。麒麟960与骁龙820性能爆表,也很大程度上得益于此,目前在手机CPU里应该还没有RAM性能比他们两个更高的产品。骁龙820手机中有一款异类更是佐证了这点:vivo Xplay5跑分高达16万,它的成绩正是凭借高速内存让RAM性能达到1200以上得来。还不相信RAM才是跑分主宰?
再来第三组作为参考,分别是高通骁龙652和三星Exynos 7420。RAM性能以及各项得分都相近,总成绩的差距也相近了。RAM性能从高到低是麒麟960(DDR4)、骁龙820(DDR4)、Helio X25(DDR3)、Exynos 7420(DDR4)、骁龙652(DDR3)、麒麟950(DDR4)。没错,MTK用DDR3跑赢了别人DDR4。
顺藤摸瓜窥探CPU的总线差距
在实际使用中,除了CPU自身的性能之外,内存确实是影响整个手机的关键性能指标,所以RAM性能权重并不是没道理。那么硬件性能差异是怎么造成的呢?不少媒体都在注意CPU架构不同、GPU性能强弱等因素,评价君关注点则是在能够影响内存和GPU发挥的外部因素上,那就是总线。
麒麟960官方PPT中以并不太起眼的字体展现出了它使用的总线——CCI-550。CCI-550是ARM去年底发布的一个新的总线架构。但由于高通研发自有架构、三星和MTK研发迭代步调与ARM不一致等原因,如今成为被麒麟960率先使用的总线架构。
现在看来,这套ARM“最新”架构正是成就了麒麟960关键。不信?那先看看高通、三星、MTK这些前辈们在用什么。
上图是与Cortex A57/A53同时发布的CCI-400总线架构。从架构图可以看到,手机CPU并不是我们想象中那种一条总线管理一切的样子,而是屋上架屋床上架床的形态。比如大小核之间有GIC-400拦路,这也是导致初期某些CPU大小核不能同时工作的元凶;CPU与GPU之间有ADB-400拦路,GPU与视频输出之间有MMU-500拦路,CCI-400总线和内存之间还隔着TZC-400和DMC-400,总之,两年前CPU内部到处都是拦路虎。
如果CPU访问内存、GPU,都要等整个架构体系有空闲的时候层层突破才行。可以这么理解,CPU与内存之间隔着4层,CPU与GPU之间隔着4层,GPU与内存之间隔着5层,CPU负载越高整套总线拥堵的就越厉害,正中间的CCI-400带宽又只有12GB左右常年满载,其他线路带宽也小的可怜,核心性能再强也无用武之地。
上图是随着Cortex A72发布的CCI-500总线架构,可以看到比CCI-400简单了不少,整个架构的“拦路虎”明显少了。CPU和总线实现了直连,但是GPU部分依然没有简化多少。而更坑的是CCI-500使用的内存部分依然是DMC-400,唯一的“升级”是添加了第三方芯片让DMC-400可以识别DDR3和DDR4两种颗粒了。
所以除了从A57升级到A72之外,系统总线也全面升级和改善,优化结构的同时总线带宽也从前代的12GB提升到了25GB。大大提升了运行效率,甚至比核心升级带来的效果更明显。美中不足的是内存依然存在瓶颈,毕竟支持DDR4是通过兼容方式实现的,就好比USB2.0接口对USB3.0优盘也“兼容”,但只能跑在慢速下。
但实际来看,CCI-500总线架构应该是存在很多问题的,据评价君所知,高通、三星和MTK都没有使用这种总线,而是采用了定制方案。对初生牛犊的麒麟950来说,短期内定制总线并不现实,但也对这套总线退避三舍,最后大概是用回了CCI-400。这也就理解为什么麒麟950的DDR4只跑出了DDR3的成绩。好在ARM又发布了CCI-550总线进一步打通了障碍:
和前面的CCI-500对比,CCI-550首先最直观的就是Mali GPU和总线直连了,CPU和GPU终于能通过一条总线通讯,DMC-500吃掉了TZC避免影响性能,而且能让DDR4跑全速……总之折腾了三代,所有影响性能的部分都终于被打通了,能通过一个CCI-550互相直接通讯,形成一个高效率的体系,不然就算是塞一套《黑客帝国》里的Matrix进手机也发挥不出作用。
到这里大致就可以得到一个结论了。麒麟960是伴随着ARM最新的总线架构而来,在此基础上又植入了最新的A73架构核心和G71图形处理器,性能自然暴涨。能够与之比肩的也确实只有骁龙820,高通凭借自己定制总线架构与CCI-550总线架构分庭抗礼,但回忆一下骁龙810和骁龙615,这种定制也是付出了巨大代价的。
结语:ARM架构等于ARM设计?
那么问题来了,使用ARM的总线、ARM的内核架构,那和从ARM那里“买”来一个处理器有区别吗?答案当然是有,而且区别很大。
评价君拿房子来做比喻:ARM相当于一个户型方案供应商,定期发布一些造房子的基本规范,要求房子必须符合他的要求,否则就是违章建筑;台积电相当于一个专业泥瓦匠和装修师傅,不断提升自己技能,希望接更多的活,定期宣布一下自己学会了什么装修技能,避免客户提出他实现不了的要求。
至于自己的一亩三分地里,房子盖多高、多少个房间、什么户型、什么朝向、花多少钱,包括内部装修、水电燃气等等,这些全部细节要一点点去琢磨、落实清楚,这些事情才是最有价值的,而且只能厂商自己做。所以,既要符合ARM规范,又要保证台积电能做出来,对内要自己有能力设计并且有预算支持,对外要有竞争力,这才是一个合格的CPU。
造CPU真简单的话,国产CPU早就满天飞了,也不至于垄断在几家手里。要知道同样是标准ARM架构,联芯在量产LC1860C之后足足憋了3年才憋出一个松果,而且仅仅是在纸面上曝光,至今还没影子。真像华为这样自己动手做CPU,就如同是戴着镣铐跳芭蕾,相当艰难。