Cortex X2/A710:和苹果的差距还有多少?
这个东西也算是憋了很多,除了做新的live2d,另外一方面,我也不想做基本ARMppt的翻译。我也想在这里先提出来一个问题:ARM的X系列核心和苹果A系列大核有多少差距?
新的指令
在Arm V9之后,X2和A710就是首先使用新的指令集的IP,所以首先来了解一下上次挖的坑。
X2和A510都是不支持AArch32的,而A710保持了AArch32的兼容。我上次挖的坑BF16和GEMM指令的支持可以查找X2和A710的软件优化手册。
首先,Armv8.5的部分都有(除了AArch32只有A710有)。接下来可以查一下BF16:
显然支持了ASIMD和SVE指令的BFloat16相关的指令。而在BFloat16指令里,又有Matrix(矩阵)指令:ASIMD/SVE matrix multiply accumulate/矩阵乘法累加。
挖掘访存空间
当你回顾X2和A710,他们相对前代的X1和A78,除了新指令带来的相关指令,最明显的额改动就是指令和数据TLB增加到了48 entry,X1的ROB从224entry增加到288。
另外一个改动是,流水线上,将dispatch的2个周期减少到了1个周期。一方面流水线长度减少了一级,但是一方面,实际上11到10级的影响并不大,比如已知之前的流水线设计的A77普遍超频上了3.2GHz:
显然,这里的2.91GHz是一个不可能这么低的底线,因为实际上,流水线减少意味着触发器减少了。单指令的执行时间变短了,所以频率一定会比2.91GHz更高,甚至实际上根本不需要担心。另外一方面,单指令的执行时间确实变短了,时钟性能绝对性能都会有很大的提升。尤其是在X2和A710相对于前代其他改动都不明显的情况下:一方面提高分支预测的命中率,减少五分支预测的惩罚的影响(尤其是ARM对于分支预测的部分向来谜语人)。同时
,改进了预取器提高了命中率。总的来说,这些部分ARM给你看的就是前端和后端的stall(停滞)的减少程度:
A710除了上面提到的TLB改进,另外将MOP Cache的带宽从6个MOPs每周期减少到了5MOPs每周期。实际上还有点缩水。
X2和苹果
首先来看,X2的疗效,一方面ARM宣传了16%的PPC提升:
但是众所周知:评价一个架构的是性能,功耗,面积这三个要素。ARM也有给了其性能功耗曲线:
A710明确表示了A78某个位置上,同性能功耗降低30%,同功耗性能增加10%。
就像之前我曾提到的,不可能说同频率性能增加而功耗不增加,这里时钟性能提升当然是在10%以上。而X2整个就和谜语人似的更本没有标尺,老谜语人了。
不过既然有现成的X1和A78曲线的我,当然可以去吧这个曲线对上去:
我这里实际上发现,X1的数据基本和2.8-2.9GHz的X1是对的上的,而A78几乎是和2.8GHz一致的。而另一方面,ARM明确再说三星是合作伙伴,实际上也刚好有对的上的三星SoC:猎户座2100,可以知道这里的A78和X1基本就是猎户座2100,不过我这里以高通的骁龙888做参照。
这里,整个系统的三级缓存在8MB,而A710核心的二级缓存在512KiB,你可以预料三星一下一代的缓存配置基本就是这样,而同代其他旗舰应该也大差不差。
对比今天的次旗舰和旗舰大核和中核的实际表现:
可以看到从X1开始,X系列核心在不断的冲向苹果大核心的表现。不管是功耗还是性能,相比之下A710倒是继承了过去A系列大核的表现,相对的中间功耗。而实际上不管是SSN5对于TSMC N7的A13,还是相同TSMC N5拟合去对A14,显然性能功耗曲线上和苹果大核心的差距已经很小了。但是无论如何,X2都没有苹果A13或者A14的4.5W附近的功耗,所以实际上还是有很大的性能上的差距。但是,可以看到如果在X2同代有厂商跑高频并且接下来继续提高阈值,可以预见的是苹果的大核优势会越来越小。
A710至少,SSN5应该可以超过TSMC N6的A78还是不错的。甚至可以想象,同代工艺的X1在没那么高频的情况下还算差不多很接近也是很不错的了。
而简单的标注一下:
实际上,依靠过去测量的SRAM密度,我这里可以估算出X2/A710/V1/N2的面积:
Area(mm^2) | TSMC N7 | TSMC N5 |
A13 BIG | 2.736217088 | 1.881149248 |
A14 BIG | 3.262852559 | 2.243211134 |
A12 BIG | 2.005533766 | 1.378804464 |
X2 | 3.405774572 | 2.341470018 |
A710 512KiB | 2.056291803 | 1.413700615 |
A710/N2 1MiB | 2.172963184 | 1.493912189 |
X1/V1 1MiB | 3.425802139 | 2.355238971 |
微架构三角
这里,我觉得可以拉出来一个经典的架构问题:通常性能功耗面积,三者只能取两者。典型的苹果大核和X系列核心就是选择了性能和高性能的功耗而抛弃了面积,这里就可以画一个雷达图,来更加综合的表现微架构:
*新增:对面积进行了重新评估,同时区分了N5节点(这里是SS N5)和TSMC N7节点。
可以看到,A710在能耗比和面积性能上占优,而X系列核心和苹果大核都主要集中在性能上,而抛开TSMC N5的A14,都不在面积性能上很占优。单独取苹果大核:
可以看到,当统一架构之后,A12到A14都在逐渐放弃面积性能和能耗比来换取性能。而A14正是搭配了TSMC N5的工艺,才在面积性能和能耗比上拉回来表现。
ARM端的X1到X2也明显在重复这个过程,明显有一个冲性能的过程,而相对的A710则保持能耗比和面积性能的优势。当然这里的A710并不是一个运行在高频率的环境,本身就避开了弱势的高频性能。
这里将三角形的质心在这样一个坐标体系下画出来,就是最终得到到的性能面积功耗的倾向图:
需要注意的,这张图的结果也和具体的频率有关,想象当你给CPU超频,一方面CXPU性能得到了提升,同时随着性能提升,面积性能也得到了提升,而能耗比则不断降低,这会使得随着超频,这里的标定会随着超频向左偏上移动,向苹果大核心的部分移动。而当你给CPU增加缓存,性能会有幅度不大的提升,而能耗比不变或者提升,面积性能降低,这里就会向右上方移动,就如同这里别的N2和A710的样本的移动一样。
具体的相关的可以在未来再做阐释。
总结
总的来说,X2等X系列核心注定是要被人说功耗高的。一方面向苹果大核靠近,伴随的功耗提升,是和之前A系列大核的特征不同的,但是我想将来的X系列大核心的趋势就是如此了。而A系列核心确实保持了过去的功耗阈值,更接近很多人预期的大核。