1、引言
上一篇文章我们介绍了Arm的Cortex-X1至Cortex-X3系列处理器,2023年的5月底,Arm如期发布了新一年的处理器架构,分别为超级大核心Cortex-X4,大核心A720和小核心A520。在智能手机行业,Arm始终保持每年一迭代的处理器架构升级节奏,让用户可以不断体验到最先进的产品设计。本文主要介绍了2023年的新处理器架构的变化,重点分析变化较大的Cortex-X4核心,并探讨今年核心处理器架构有哪些值得关注的改变。
2、整体介绍
从Arm的宣传数据可以看出,今年的三款处理机架构侧重点有所不同,Cortex-X4主打性能提升,相比上一代Cortex-X3提升15%的性能,A720和A520则偏重能效改善,相比上一代A715和A520分别改善20%和22%的能效。值得注意的是今年的处理器没有升级工艺,这些数据应该是基于相同工艺计算而来的(例如TSMC 4nm)。
除了新的处理机架构,Arm在今年还带来了全新的Armv9.2指令集,包括新的QARMA3 PAC算法、浮点能力增加和PMU增强等,最关键的变化是今年Arm计划完全抛弃32bit应用的支持,三个新的核心均不兼容32bit应用。
今年Arm还更新了DSU120模块,用来更好管理处理器核心之间的数据,并支持最多达14核心和最多32MB的L3缓存设计。从下面这张图可以看出来,今年的处理器设计也有明显变化,去年高通8Gen2处理器采用了1+4+3架构,今年我们会看到更少小核心的1+5+2架构(参考链接3,高通8Gen3处理器),多核心性能有大幅度提升。
3、Cortex-X4微架构分析
Cortex-X4的代号是Hunter-ELP,下图是X4的微架构图,第一感觉是变“大”了,X4的核心变得越来越大,如果大家看过前几篇文章,应该可以感觉到这个微架构设计越来越像另外一款行业领先处理器,殊途同归,最优秀的设计往往只有一个选择,下面我们会详分析今年的核心改变。
在前端设计上,X4取消了L0级别的MOP Cache,注意这个变化从大核心A715就开始了,这是一个大的改变,也侧面说明MOP Cache的成本可能真的很高,在先进工艺中不经济。为了弥补取消MOP Cache的影响,X4这次将Decoder的数量从6个增加到了10个。上一代X3,如果从MOP Cache取数据是8-wide,从L1取数据是6-wide,这次的X4则统一是10-wide。在流水线长度上,X3如果从L1取数据是11级,从MOP取数据是9级,这次由于取消了MOP,X4特意优化了流水线,从L1取数据从11级降到了10级。
在后端设计上这次X4同样变化不少,特别是运算单元,增加了1个新的Branch单元,2个新的ALU单元,并且提供了第二个完整的 MAC ALU单元,这些对于整体性能的提升都有显著帮助。
为了支撑新增的10个decoder和运算单元,X4的重排序缓冲(ROB)的尺寸也从320提升到384,提升了20%。
在存储模块方面,Arm重新调整了Load和Store单元的数量,X3有个LS AGU和1个LD AGU,X4则调整为1个 LS AGU,2个LD AGU和1个ST AGU。从3个AGU提升到4个AGU,但是功能稍有差异。此外,像L1的d-TLB,也从48提升到了96,增强了数据的处理能力。
这次X4核心还有一个特点是支持更大的L2缓存,从X3的最大支持1MB提升到X4最大支持2MB,根据Arm给出的数据显示,2MB的L2缓存可以有效降低每千条指令的重填充和写回率,不过由于增加缓存会增加成本,不一定所有厂商都愿意增加到最大的缓存尺寸。
从X4的整体性能数据看,Sepcint2K7提升达到了2位数,Geekbench系列的提升在6-8%之间,只有个位数的提升,推测Geekbench对于L2不是很敏感,而对于L2缓存依赖的Sppdometer2这个benchmark提升比较明显,注意这里面的测试数据使用2MB的L2测试得出的。
此外Arm资料显示X4的典型CPU频率可以跑到3.4G左右,虽然厂商实际处理器频率还没有确认,但是从上一代天玑9200+运行在3.35G推测,3.4G应该是4nm能达到的一个比较高的频率水平。
总结下Cortex-X4的关键改变:
1、取消了MOP Cache;
2、Decoder数量从6个提升到10个;
3、流水线统一为10级;
4、Branch单元从2个提升到3个;
5、ALU单元从6个提升到8个;
6、AGU单元增加了一个且功能有调整;
7、ROB尺寸从320提升到384;
8、L1的d-TLB从48提升到96;
9、最大支持的L2缓存从1MB提升到2MB;
10、不支持32bit。
整体性能上Sepcint2K7参数有13%-14%的提升。
资料直通车:Linux内核源码技术学习路线+视频教程内核源码
学习直通车:Linux内核源码内存调优文件系统进程管理设备驱动/网络协议栈
4、A720微架构分析
上一节我们列举了10条X4内核的微架构变化,相比X4的大动作,A720和A520的变化则没有那么大,但也有些值得我们研究和探讨。
首先我们来看下A720,A720的代号叫做Hunter,A720的设计目标是比A715提升20%的能效,在同样的功耗下,A720可以提供更强的性能。
A720的的微架构整体和A715差异不大,Arm并没有增加fetch-decode宽度,也没有增加诸如ROB尺寸之类的优化,而是进一步深入到微架构的细节调整以优化能效。
在前端设计上,A720持续优化分支预测能力,通俗的说就是走一步看两步的能力。A720的分支预测错误的恢复周期从12降低到11周期,这个优化对于实际用户场景中无法准确预测的案例很有帮助。在分支预测能力上,A710的大核心每周期可以预测2个unconditional分支,A715额外支持了conditional分支,A720则进一步进行了优化了功耗,Arm宣称可以在不影响性能的情况下降低功耗。
在后端设计上,A720通过管线化排序FDIV\FSQRT单元(除法和开方),提升指令执行能效。同时,A720优化了数据在整型和浮点单元的传输效率,降低数据传输的延迟和存储数据的延迟。A720还改进了发射队列和执行单元,简化网点到AGU的数据传输等。
A720在存储模块上有一个较为明显的优化是降低了L2访问的延迟,从10个周期降低为9个周期,对于访存多的场景会比较有帮助。另外A720支持的最大L2缓存数量还是512KB。
最后介绍一个A720在今年最大的变化,今年Arm的A720不是一个人,是一对双胞胎,Arm提供了另外一个A720min(暂时这样叫)的核心。这个核心和A720不同,在面积上做了一定的削减,整体核心面积大小和A78接近,性能上也弱于A720,但是比A78强10%左右。总结,A720min的面积和A78接近(耗电也应该接近),性能比A78强10%,属于A720的一个分支。
最后简单总结下A720的关键改变:
1、分支预测错误的恢复周期从12降低到11周期;
2、L2访问延迟从10个周期降低为9个周期;
3、提供了一个A720min的选择,面积和A78接近,性能比A78强10%。
5、A520微架构分析
我们来看一下小核心A520,A520小核心的代号叫做Hayes,依然不支持乱序执行,设计相对简单,主打能效改善。A520依然继承了A510的2个小核心拼接在一起共享SIMD单元的设计,这次的A520也是仅支持64bit,不再支持32bit。A520提供了新的QARMA3 PAC算法,旨在将PAC的影响降低到1%以内。
相比A510,A520为了提升能效还做了减法,主要的变化是减少了一个执行单元的ALU。A510有3个ALU,A520只有2个。当然,Arm说通过全局的优化有将性能的损失弥补回来,从Arm提供的数据上看,A520在相同的性能下,功耗可以降低22%;在相同的功耗下,性能可以提升约8%,我们也会实际测试看看。
可惜,8%的性能提升相比旗舰处理器的需求还是有一定差距,我们看到在今年的旗舰处理器设计上,芯片厂商在继续减少使用A520小核心,甚至有的厂商完全没有使用A520小核心。
6、DSU120分析
最后我们来看一下用于协调处理器核心和缓存的DSU模块,Arm升级了最新的DSU120模块,可以在一个Cluster内支持最多14个核心,并且支持最多32MB的L3缓存管理。
DSU120提供了一个有价值的功能,随着L3缓存越来越大,静态漏电也成为一个需要考虑的影响因素,会影响手机的待机耗电场景。DSU120提供了一个L3部分关闭的功能,在一些不需要使用那么大缓存的场景,关闭部分L3缓存,可以减少静态漏电。
7、总结
本文主要分析了Arm公司于2023年最新发布的Cortex-X4、A720和A520等处理器架构。今年是Arm公司发布的第四代X系列处理器,通过前面的分析,我们可以看到Arm在不断提升其核心处理器的计算性能,挑战业内最先进的架构设计。同时,Arm也通过优化A720、A520的能效,给用户提供在芯片能效上更有竞争力的产品组合。
2023年,芯片厂商也不满足传统的核心搭配,开始了减少小核心,增加大核心的架构升级。我们今年可以看到更多的多大核心SOC设计,在多核心性能上有了进一步的提升。无疑,2023年的处理器竞争会更加激烈,多大核心的引入也需要警惕功耗和发热增加的风险,作为芯片和智能设备终端的开发者,需要充分了解处理器架构,通过合理的软硬件调度设计,将芯片的能效优化到最佳,给用户提供最佳且可持续的性能表现。