Arm构架CPU:岂止于大

微信公众号 mindshare思享

本文翻译自“Arm-Compatible CPUs Get Bigger” ,LinleyGwennap,并扩展

有的时候光大是不够的。在最新一代移动SoC中,Apple和三星都扩大了其晶体管的数目以获得超过其他对手的性能优势。这些定制的CPU要比arm的大核更大。

不是大总是意味着好:尽管Apple的A11处理器有优异的功效和面积,Samsung的Exynos 9810却比标准的Cortex CPU要差一些。

今年早些时候Qualcomm出的845,是第一个实现arm新的DynamIQ构架的处理器,DynamIQ运行设计者将不同的CPU(比如大核和小核)放在同一个Cluster 里面,DynamIQ CPU也包含私有的L2 cache,在DynamIQ之前L2 cache 是在同一Cluster的CPU之间共享的。这种改变需要重新布局SoC同时增加了片上内存大小。

下图显示了这些最尖端的10nm CPU的多样性。尽管这些都是arm兼容的处理器,它们的芯片面积可能有10倍的差距,从Cortex-A53(华为10nm麒麟970上)的0.366mm2到Samsung Meerkat(10nm Exynos9810上)的3.43mm2. L2 cache从共享变成CPU私有使这种比较更复杂,但是Apple和Samsung的设计都比Cortex-A面积要大。

这种面积的优势帮助Apple达到了Cortex-A73 2倍以上的IPC,单是Samsung只有大致67%的IPC优势。

Samsung的设计显示了最大的面积增加,3倍于上一代的Mongoose核。Apple的Monsoon只比A10里的Hurricane CPU面积增加了15%。

Arm阵营最大的CPU也比Intel的Skylake核小的多,Skylake在Intel14nm工艺下有8.73mm2的面积(我们预计如果使用TSMC的10nm工艺,Skylake的面积为6.91mm2,这个也是Samsung的Meerkat的2倍多)。Intel最新的Kaby Lake和Coffee会继续使用和Skylake一样的10nm工艺。

Apple 加大SRAM

和往常一样,Apple披露了很少的A11芯片里CPU的信息。对于A10,Apple在2个大核的基础上增加了2个小核,类似于arm在mobile市场的big.LITTLE策略。对于A11,Apple更进一步地加入了4个小核,来增强支持低功耗任务的能力。新的Mistral核仅仅有0.54mm2的面积,所以额外的两个核相对于A11芯片88mm2的面积来说只是增加很少的面积。

每个Monsoon核有64KB的指令和数据cache,另外,每个核有个512KB我们认为是私有指令cache的部分,类似的但是更小的结构也出现在A10 Hurricane的设计中。Apple叫它共享L2 cache,这使这个私有cache变成L1.5,但是我们更愿意叫它私有L2 cache 和共享L3 cache.

A11保持了2个大核,而其他的竞争者是4个大核。尽管这看起来是个劣势,但是一个Monsoon的性能赶得上2个高端CortexCPU 的性能,使SoC有类似的性能。Monsoon也大致有2倍于CortexCPU 的面积,所以总的CPU子系统有类似的面积。我们测试过A11子系统,2个Monsoon和4个Mistral核的面积为13.9mm2,而带有4个Cortex-A75核4个Cortex-A55核的Snapdragon 845的面积为10.1mm2.

大多数的面积差距来自于A11大cache设计。我们计算到在在一个CPU Cluster里总共9MB的共享SRAM,这个不包含额外的4MB SRAM的独立系统cache(给GPU和其他计算引擎使用)。分析软件发现了A11有8MB的L3 cache,所以额外的1MB可能是Mistral核之间共享的L2 cache, 或是给剩余的SRAM做冗余。不管怎样,这些 SRAM占用了4.8mm2的面积,而Snapdragon的845 2MB的共享L2 SRAM仅占用1.3mm2的面积。额外的SRAM增强了A11的大型应用的性能,减少了需要更多功耗的DRAM访问。

DynamIQ正改变SoC设计

去年12月华为发售了第一款使用麒麟970的手机,时间有些早而利用不到Arm新的DynamIQ CPU.这个SoC是一个旧big.LITTLE设计的典范。如下图所示,它包含两个独立的CPU Cluster。和A11类似,970采用TSMC的10nm工艺,因此面积也类似。

每个Cluster包含4个CPU,它们共享L2 cache。对于970,华为利用了10nm工艺的密度扩展了cache的大小。Cortex-A73 cluster包含了2MB的共享cache,而Cortex-A53 cluster使用1MB的共享cache. 这种方式的不足之处在于A73和A53 CPU之间的数据共享必须通过AMBA cache-coherence 总线来实现,这会比简单的访问本地cache的延迟要大很多。这种情况在将一个任务从大核迁移到小核会表现的更明显。

相反,Snapdragon845 是第一个完全实现DynamIQ构架的芯片。这个处理器由Samsung 10nm工艺制造,3月在Galaxy S9里量产(我们预估采用这个工艺的设计要比采用TSMC 10nm工艺的面积大3%)。Snapdragon 845有4个Cortex-A75核和4个Cortex-A55核。(通过Semicustom授权,Qualcomm将它叫Kryo385, 但是它还基本上是Cortex设计),这些CPU是前两个支持DynamIQ技术的CPU,它们允许在同一个Cluster混合不同的CPU。

下图显示了845中8个共享L3 cache的CPU。每个A75包含一个256KB的私有L2 cache, 而每个A55包含一个128KB的私有L2 cache. 在一个Cluster的中心包含一个arm叫DynamIQ Shared Unit(DSU),它包含一个L3 cache控制逻辑和AMBA 总线控制器。这部分面积也包含L3 cache tag和其他SRAM。一个Cluster里总的L2和L3 cache大小为3.5MB, 比麒麟970稍微大些。

Cache结构的变化使在新的Cortex设计和以前的Cortex CPU比较更困难。如上所述,845里的Cortex-A75的面积是1.35mm2,远比麒麟970的Cortex-A73的0.82mm2要大。但A75的面积包含256KB的L2 cache,而A73的面积不包含L2 cache。加上1/4的970的cache控制逻辑+256KB SRAM使A73的面积和Cortex-A75相当,为1.23mm2,比A75小10%左右。Arm预估在考虑到cache不同结构的情形下A75比A73大20%左右,所以A75好像验证了这一预估。类似地,A55的面积比A53大0.11mm2,大多少的差异来自于额外的SRAM。

总体上,DynamIQ Cluster(包含L3 cache)面积为10.39mm2,而麒麟970总的面积为7.82mm2.DSU本身面积为1.93mm2,而老的设计中总的非单个核的逻辑面积为1.44mm2.这个差异是DSU的cache控制逻辑是加上了潜入到每个CPU的L2控制逻辑。DynamIQ设计有9个L2/L3控制器,而之前的设计只有2个。这个用来管理这些cache的额外逻辑的确增加了芯片面积,所以应用程序必须能获得对应的性能提升以保持其能效。

Apple Monsoon碾压竞争对手

为了测试性能,我们选择了Geekbench 4, 这是一个可以运行在Android,iOS和windows的流行benchmark.虽然Geekbench只是一个benchmark,但是我们发现它通常是其他流行移动CPU benchmark的代表。它有单核和多核分数。因为大多数移动应用只利用到一个或2个核,我们相信单核分数能代表最终用户体验。多核分数是所有的核满负载的最好性能,这通常在玩手游和性能要求很高的应用才用得到。分数来自于Primate Lab网站。

Apple继续在单核分数领先于其他对手,A 11跑在2.46GHz,iPhone8 plus的分数是4,237,基本上是麒麟970的单核分数的两倍。

Samsung的Meerkat设计的单核性能比其上一代的Exynos要高75%,但是还是比A11差14%。Exynos9810在GalaxyS9的某些型号中使用,而其他的一些型号才有Snapdragon 845. 在上一代产品中,Exynos和Snapdragon型号有相似的性能,但是Snapdragon在电路面积方面小34%。845还是比麒麟970更强,但主要得益于更快的CPU频率(2.8GHz比2.36GHz).

将Geekbench分数除于CPU频率得到IPC的预估。IPC显示A75只比A73好13%左右。这是个没意料到的结果,arm宣称A75可以比A73 的IPC高20%。我们选择小米MI Mix 2S来做这个比较,因为它的分数比Galaxy S9+高大致7%. 随着越来越多的845的手机开始量产,我们预计A75带来的IPC好处为10%, 这是一个很好的增长,但是远比arm宣称的20%要差。

Arm核超过IntelIPC

自然地,越大的arm定制核有更好的IPC。一个Apple Monsoon核可以赶上2个Cortex CPU, 而Samsung的Meeerkat仅有高60%的IPC。为了增加IPC,两个大核有比Cortex CPU 更多的解码器,执行单元, 更强的乱序能力。事实上,它们有比Intel旗舰Skylake设计更高的IPC,如下图所示。尽管Skylake或许有比最大的arm核更多的微构资源,Skylake也有更深的pipeline,扩展了跳转,cache访问和其他类似操作的每cycle的Penalty.

多核benchmark是更好的用来测试处理器全部性能的方式。Snapdragon 的性能和8核的麒麟970的性能类似。但是A11多核性能因为它只有2个大核和4个小核可能会受到影响,但是它还是在所有的移动处理器里多核性能最高的。Exynos 9810有4个大核,可是它因为智能手机功耗和发热的限制不能全速跑这个4个核。尽管 Galaxy S9的单个Meerkat可以跑到2.7GHz, 但是跑两个大核时需要讲到2.3GHz,而跑4个大核时需要降到1.8GHz. 因此,9810的多核性能只比845高3%,比预期的这么强大的核低一些。

我们基于die-photo 分析,也比较了这些处理器的面积效率。为了评估单个CPU的效率,我们将单个CPU的分数除于单个CPU的面积。对于Cortex-A73,我们考虑到没有私有L2 cache和控制逻辑(其他CPU有自己的L2 cache),将其面积调整为1.23mm2. 调整之后,Cortex-A75有最好的单核面积效率,为1,801 Geekbench 每mm2,Apple的Monsoon也很好,但比Cortex-A75差10% 左右,Samsung的Meerkat设计在这方面较差,归因于它的面积增加比较多。它有512KB的L2 cache大小,比大多数其他处理器的都要大。

Cortex在面积效率方面领先

多核benchmark着重全CPU子系统性能,我们通过多核性能和整个CPU cluster的面积(包括L3 cache)来评估效率.在这方面,麒麟970比845和其他移动处理器要好,如下图所示,通过老的A73/A53组合,麒麟970芯片有比845 DynamIQ设计更少的cache控制逻辑的开销。

面积效率比较重要,因为它影响到die的成本,它也影响到功耗和发热。在这种比较中,我们依赖于有发热限制的高端智能机,因此,性能数据表示为每瓦特性能。

我们也将arm处理器和Intel Core M5-6Y57做了比较,Y序列通常用于平板和类似的智能手机中。它有7.5W TDP,使它可以放到其他移动处理一类。在这个发热限制前提下,这个14nm的Skylake CPU频率可以达到2.8GHz,它可以有超过A75的单核Geekbench分数,但是比其他的arm大核要差。因为它有大得多的面积(甚至按TSMC的工艺做相应调整),Intel的芯片还是在面积效率方面明显差很多,即使是多核面积效率。

尽管这个比较只是Skylake在移动系统的能力,这对CPU微构架的评估不公平。Intel是在高很多的PC功耗层面设计性能优化的CPU。一个Skylake要比Apple CPU面积更大的原因是Skylake有更深的pipeline, 因此需要更多的forwarding逻辑,更强的分支预测和其他硬件资源。但是更少的pipeline让Skylake可以跑到2倍于Arm CPU的频率。即使将这个额外的速度考虑在内,Intel CPU还是在面积效率方面落后,下图显示i7-7700K核,可以运行在91W TDP,峰值频率4.5GHz,但在面积效率方面只是Cortex-A73的一半。

猜你喜欢

转载自blog.csdn.net/weixin_39366778/article/details/82662563