×
嵌入式 > 集成电路 > 详情

探索强劲性能的秘密(二)

发布时间:2020-05-25 发布时间:
|

同一款处理器不同版本在耗电上一样吗?

  NVIDIA在较早之前发布的SHIELD采用的是前面提到的Tegra 4处理器,这是NVIDIA的第四代Tegra处理器,和其他手机SoC芯片厂商有多款不同芯片供选择不同的是,NVIDIA这几年走的都是单芯片多型号路线,也就是把芯片单纯按照频率、GPU使能规模来划分多个型号供客户选择。

  

  SHIELD 采用的Tegra 4具体型号是T40,是Tegra 4的顶级性能版本,最高频率设定为1.9GHz,GPU规模使能规模为72 core但是频率多少并不清楚,Tegra 4 GPU的文档有提到在672MHz时候的性能规格,但是这不代表T40的GPU就是这样的规格。

  不过手机显然不会上这样规格的Tegra 4,因为SHIELD的形制较大,可以塞进风扇辅助散热,电池容量也可以支持这样规格跑接近10小时的游戏,即使是旗舰级别手机的个头只有它的三分之一不到。

  NVIDIA提供的手机版Tegra 4型号为AP40,这个版本在多个方面做了精简,例如T40有很多的I/O口,AP40只保留了必要的,温控的策略也会有不同。

  从一些厂商提供的消息,经过这些精简后,AP40的TDP(热设计功率,代表能让设备低于结温所需的散热能力)从T40的8-10瓦降低到了3瓦级别,这相当降低到了1/3不到,变化非常大。

  那么功率降低到这么多,性能是否会有大的下降呢?这是一个有趣的问题。不同的厂商会采用不同的功耗控制策略。 一般在多核心同时高负荷工作下,手机的处理器工作速度会随着温度的上升而降低,从而把总的功耗降到较低的水平。

  不过,单核心工作的时候,频率的下降速度就会慢很多。而且大部分的情况下,CPU高负荷的往往是间歇性的,对于大部分的应用,实际的性能应该不会有什么影响。

  CPU性能的重要性

  Cortex-A15 相对于S600、S800、Cortex-A9、Cortex-A7 等“对手”来说优势就是具备更强的单核心性能。在多线程程序并不十分普及的情况下,单核心性能的重要性是毋庸置疑的。

  其实无论是手机还是我们的台式机、笔记本电脑,日常的不少程序都采用单线程代码。多线程程序的开发需要比较复杂的代码编写、经验以及调试,而且很多任务并不容易做到并行化,因此经过很多年以后,实际上真正的多线程重负荷的程序即使在PC上也并不普遍,在移动平台上就更少了。

  除了一些专门用来烧机的软件外,能让多核尤其是四核手机老是处于跑满状态的应用可说是少之又少,更常见的情况是某些高计算负荷的任务让四核冲起来一下就跑完了。

  举个简单的例子,例如刷微博或者刷网页的情况,里面包含很多图文的信息,刷的时候速度快的处理器能够很快地显示出内容,而速度较慢的处理器则需要等待一段时间。

  刷完以后CPU总的占有率会骤然降低,之后都是一些单线程的程序让个别内核处于较饱满的负载状态。

  真正需要CPU高负荷的时间占总时间的比例很低,甚至连1%都远远不到,但是这个时间虽说很短,却往往是影响用户体验的一个非常重要的因素。

  因此,CPU的峰值性能的重要性毋庸置疑。此外,现在有一种趋势,移动处理器面对的屏幕分辨率甚至普遍比笔记本电脑甚至台式机更高,这意味着界面的处理压力越来越高。

  界面的刷新和网页刷新的情况类似,对CPU的性能要求高,但是时间短,用户的体验感受很直接。

  因此更高的处理器速度也将是一种硬性的需求,而不是可有可无的摆设。但是对于性能和功耗的评估需要有理性的分析,有一些人一味强调拷机软件下的CPU频率过热降频情况对手机用家来说其实是某种程度的误导,这和实际的应用情况完全不一样。

  

  多核处理器的意义更多在于多任务的情况。Android和Windows都是典型的多任务操作系统,多核处理器在处理多任务的时候大大提升了多个程序同时运行时的处理和响应速度。

  不过,多任务对于核心数量的需求是有限的,PC CPU和移动处理器主流的核心都是两到四核,这不是偶然的。

  虽然系统中有多个线程和多个任务同时存在,但是出于活跃状态的往往也就少数几个,因此更多的CPU核心意义是不大的。现在有些厂商推出的所谓八核Cortex-7的处理器,在绝大部份的情况下性能一定还不如双核Cortex-A15。

ARM推出A12就等于否定A15?

  ARM是一家非常纯粹的设计公司,它并不向终端消费者、厂商出售任何处理器,而是提供授权给第三方公司,让其自行设计或者堆砌出自己的处理器。

  这样的好处是它可以节省掉一大笔行销上的资源,ARM设计一款处理器内核并不会产生任何库存压力,它只消告诉厂商这个处理器如何做对接以及可以用来干嘛就可以了,接下来就是等着收钱了。

  在这样的情况下,ARM可以做到非常灵活多变,当看到市场上(也许是将会)存在空挡时候,就能很快推出相应的“产品”。按照时间来看,Cortex-A12的推出其实就是瞄准了Cortex-A7/A53和Cortex-A57之间的空隙,属于未来一年后的中端偏低市场的主力。

  在Cortex-A12推出后,有些人就马上下结论,这代表了ARM对Cortex-A15在手机应用上的否定。

  如果以big.LITTLE布局来看Cortex-A12属于ARM产品规划中的big,也就是偏向性能先决的内核,目前确定的制程包括了GlobalFoundries的SLP-28和台积电的28 HPM。Cortex-A12和Cortex-A9一样是双发射乱序执行,但是和A9相比,A12的乱序执行不仅限于整数流水线,而是浮点流水线和内存操作都具备了乱序执行。

  此外 A12实现了VFPv4浮点单元并且将Neon向量单元列为标准配备,Coremark测试可以做到单核3.0 DMIPS/MHz,相比之下A9 和A15 分别是2.5和35。

  所以很明显,A12性能处于A9和A15性能之间,这对ARM来说是很正常不过的事情。事实上ARM在发布A12的同时还更新了A9,提到A9 r4版的性能更新,按照幻灯片,对分支预测和内存子系统作改进后的r4在IPC 上能做到初版A9 的1.4倍左右。

  

  Cortex-A9至今已经有多个版本,见上图的r1-r4描述

  如果单看IPC的话,A9 r4是不是和A12很类似?那如果按照某些人的思维,A9 r4岂不是可以用来否定A15?

  目前A9 r4已经在NVIDIA Tegra 4i里面采用,按照NVIDIA的数据,在BBench中相比A9 r1有25%的性能提升,而在SPECint 2000中也有15%的性能提升,基于Tegra 4i的终端很可能会在明年第一季度就能看到,而A12还没有任何厂商宣布采用,A15即使退下火线也未必是因为A12的出现,因为A15的定位接替者其实是基于ARMv8的 A57。

  余论与后记

  

  看到这里,相信大家已经基本了解了Cortex-A15大致架构和性能、定位,而配备四核Cortex-A15的三星Galaxy S4手机已经取得了非常瞩目的成功。

  不同厂商、不同型号的四核Cortex-A15处理器在很多方面都存在不少的差别,这些差别或因为设计意念、经验,或因为各自在某领域的优势,或因为产品定位,或因为制程,这些差别让我们不能简单地类比,例如直接把某型号的Cortex-A15四核处理器在性能、功耗的指标类推到另一型号上。

  手机性能测试是比较特殊的,它是一个封闭的东西,从硬件角度看,绝大多数情况下你不能把里面的东西卸下来拿到另一部不同型号的手机里测试来验证不同硬件组合下的影响,从软件角度看,目前缺乏足够的工具和经验了解在测试的时候到底发生了什么,到底是广谱的优化还是定制优化非知情者是很难了解的。

  对于手机来说,单线程的性能同样不容忽视,这和多线程代码编写的难度有直接关系,现实中许多应用还是基于单线程的,在此时Cortex-A15的单线程性能优势就能体现出来。

  在日常应用中没有多少应用会像拷机程序那样长时间持续的四核全部跑满,尤其是在手机应用中,在手机测试中采用这类程序到底有多少意义是令人怀疑的,手机用家真的会整天没事呆看手机跑StabilityTest之类的东西吗?

  Cortex-A12上市的时间点可能是明年下半年以后的事情,它的性能定位就是接替Cortex-A9,而Cortex-A15的接替者将会是Cortex-A57,Cortex-A12在此时(A57时代)扮演的就是中阶偏低的角色。

  总之,我相信在未来的一年里,Cortex-A15四核版的手机将会越来越多,相应的芯片型号也会层出不穷,其中应该不乏成功的产品

 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
解析一下技术节点的意思以及晶体管的缩小过程中涉及到三