ARM在五月的ARM Tech Day上,发布了一个全新的架构:Cortex-A76。和近期所有命名为“7x”的架构一样的是,Cortex-A76是一款主打高性能的大核心产品。实际上,这款全新的高性能架构并不是那么大略,它有可能将ARM带入一个全新的市场,向从未正面交手的对手发起冲击。
来自奥斯汀家族的高性能移动架构在本刊《移动天下的新王者—深度解析Cortex-A73》一文中,曾经详细梳理了ARM几大研发中央对应的产品及研发历史。ARM的架构研发团队有三个,分别位于美国得克萨斯州的奥斯汀、法国索菲亚以及英国剑桥。在过去一段韶光中,其奥斯汀团队和旗下产品较少在人们面前涌现,人们熟习的Cortex-A73、Cortex-A75等都来自索非亚团队。实际上沉默是为了更好的爆发,奥斯汀团队早在2016年就已经开始研发有关未来微架构体系的干系内容,尤其是在FP/SIMD方面,Cortex-A75就从奥斯汀团队的新架构中吸取了不少“养分”。
奥斯汀团队最新的研发成果便是Cortex-A76。对ARM来说,Cortex-A76是一个全新研发的架构,也是一个全新的出发点—对一个以出售IP为主的企业来说,一样平常不会研发全新架构,由于这每每意味着高昂的投入。但是ARM还是这样做了,并流传宣传其为第五代“年度节点”产品。从ARM过去五年的发展来看,其每年推出一个新的微体系架构类似于英特尔的“Tick-Tock”,但在ARM这里实际上是“Tock-Tock-Tock”。ARM流传宣传其每一代的GAGR(Compound Annual Growth Rate,年度复合增长率)高达25%,并全部来自于微架构的改进。

▲Cortex-A76是一个“条记本电脑”级别的处理器产品。
那么Cortex-A76为何值得ARM投入甚多,并让主要的架构研发团队从零开始、全力投入呢?这是由于Cortex-A76的上风在于设计时兼顾了高性能和高效率。如果从传统架构改进而来,研发职员不得不碰着很多掣肘,但是设计一个全新架构,研发职员可以肃清全体系统中的瓶颈,并冲破之前微架构的限定。
Cortex-A76的重点放在了高性能上,并且保持极高的能耗比使其能够适应不同的场合,包括对功耗及其敏感的移动设备等。鉴于Cortex-A76如此精良的特性,用ARM的话来说,Cortex-A76是一款“条记本电脑”级别的高性能处理器架构,同时还具有高效能。这个理念贯穿了ARM Tech Day的始终,ARM希望利用Cortex-A76的巨大性能提升来进一步强化新兴市场的竞争,例如高通正在宣扬其骁龙处理器的“Always Connected PCs”,正是基于这个情由。
在一些宽泛的指标中,ARM对Cortex-A76的详细期望如下:性能提高35%,功率效率(能耗比)提高40%,此外还有对机器学习的支持,性能提升至原有架构的4倍等。ARM还给出了性能比拟的基准:10nm工艺、2.8GHz运行的Cortex-A75架构比拟7nm工艺、3GHz运行的Cortex-A76架构。
▲ARM对Cortex-A76的性能期望。
其余,Cortex-A76还可以兼容最新的DynamIQ技能,可以将其合营Cortex-A55,组成一个兼顾高性能和高性能功耗比的处理器集群,厂商可以和目前的Cortex-A75搭配Cortex-A55那样,推出Cortex-A76搭配Cortex-A55的“1+6”或者“2+6”处理器集群。值得一提的是,Cortex-A76在设计中也作出了一些取舍,比如ARM依旧指出Cortex-A75拥有最好的PPA(单位面积性能),因此Cortex-A75也并非后进,在详细产品中利用谁将取决于厂商的需求。
▲Cortex-A76支持DynamIQ,能够组成不同的核心。
接下来,本文将深入Cortex-A76的核心,带你理解这一全新架构。
▲Cortex-A76架构设计的一些要点
Cortex-A76前端架构总体来看,Cortex-A76是这样一个构造:超标量乱序构造,拥有4个解码前端(4发射),8个实行端口,总流水线级数13级,实行延迟为11级。在前端,ARM设计了一个新的预测/获取单元,被称为“基于预测的获取”,这意味着分支预测单元将参与指令获取单元的事情,这和之前所有的ARM微架构都有所不同,能够实现更高的性能和更低的功耗。
▲Cortex-A76的架构总览
在分支预测单元方面,ARM首次采取了稠浊间接预测器。预测器和读取单元分离,其支持的大型构造独立于机器别的部分运行。独立构造意味着可以利用时钟门控技能掌握功耗,这对分支预测单元而言是能效比上的积极改进。分支预测器方面,ARM设计了3级分支目标缓存,一个16通路的nanoBTB,一个64通路的microBTB和一个6000通路的主BTB。
比较之下,虽然ARM在Cortex-A73和Cortex-A75的分支预测器上流传宣传能够预测所有分支,但是Cortex-A76的分支预测器显然更为强大,能够带来比前代产品更强的分支预测效果,以提高效能。
▲Cortex-A76的前端,强化的预测部分的功能。
Cortex-A76的分支预测单元运行速率是读取单元的2倍,也便是32Bit/周期,这意味着每周期可以实行多达8×32bit条指令,这些指令在由12个“区块”所组成的指令提取单元前会组成一个指令提取行列步队。相对应的,读取单元以16Bit/周期操作,实行4×32bit的指令。以指令读取单元2倍速率运行的分支预测单元,能够在预测缺点的情形下,隐蔽流水线中的分支“气泡”并避免缺点影响指令提取单元以及后续的核心别的部分,一些显示核心方面能够处理指令方面涌现的8次缺点,大大提高了容错率。
所谓“气泡”,是指那些可能存在的危险导致流水线发生指令结束或者延迟。在之前的微架构中,纵然预测精确,并且指令端能够向解码端发送大量的指令,但一旦指令输入解码端并被分解成微操作的时候,就有很大可能碰着“气泡”。
流水管线方面,Cortex-A76拥有13级流水线和11级核心的延迟。在这个过程中,指令等待的关键路径和阶段可以重叠,比如发生在分支预测过程的第二个循环和指令提取过程的第一个循环之间。在最空想的情形下,核心延迟可以缩短3个周期。
在解码和重命名阶段,Cortex-A76的每个周期吞吐量为4个指令,也便是4发射方案。比较之下,Cortex-A73和Cortex-A75在这个阶段的指令吞吐能力分别为2和3,以是Cortex-A76带来了比Cortex-A75约33%的指令宽度增幅。Cortex-A72的指令吞吐能力为3,但是在Cortex-A73上变为2,紧张是考虑到架构须要进一步优化效率和功率,并尽可能高的提高前端设备的利用率。随着Cortex-A76进入4发射,ARM引来了自己最“宽”的微架构,虽然比较三星或者苹果,Cortex-A76依旧显得比较“瘦”。
▲Cortex-A76的解码和重命名阶段的设计。
Cortex-A76的提取单元供应最多16个32bit的指令解码行列步队。流水线阶段由2个指令对齐和解码循环组成。在这一步,ARM决定利用2周期单元而不是之前架构上的1周期单元。其余,在处理ASIMD/FP管线指令时,之前的索菲亚内核在解码阶段依旧须要一个赞助周期,但是ARM彷佛创造了其他的优化方法,使得Cortex-A76的微架构能知足设计的需求。
解码阶段的每个周期采取4条指令,并且以每条指令1.06Mops的均匀比率输出宏操作。ARM同样在寄存看重命名阶段进行了功耗优化,做法和之前的分支预测单元类似,都是为功能模块加入时钟门控。Cortex-A76中的重命名单元时独立的,通过时钟门控掌握整数、ASMID和标志操作等。
其余,Cortex-A76的重命名和调度只须要利用1个循环,比较之前的2个周期有所减少。在宏指令方面,Cortex-A76的宏指令按照每条指令1.2uop的比例拆分为微操作,因此每个周期拥有高达8uops的调度次数,这比之前Cortex-A75的6uops和Cortex-A73的4uops增加了不少。
在乱序实行方面,Cortex-A76的乱序窗口大小为128,缓冲区被分成卖力指令管理和卖力回收注册的两个方面,ARM称其为稠浊提交系统。这里须要强调的是,ARM没有把重点放在增加干系单元和设计方面,由于ARM创造这部分的性能投资回报非常糟糕。一些数据表明重新排序缓冲区7%才能增加1%的性能,因此这部分设计只须要做到够用就好。其余,ARM还表明自己试图优化前端,一伙的管理程序活动和系统调用方面的最低延迟,但是没有更进一步的。
Cortex-A76的后端架构再来看看后真个实行部分。Cortex-A76的整数核心包含了6个实行单元,个中图中有4个单元分别是1个分支、2个ALU、1个ALU/MAC/DIV单元,再加上一个加载/存储单元。个中的3个整数实行流水线中的2个ALU进行大略算术操作,1个繁芜流水线实行乘法触发和CRC操作。3个整数管道由一个深度为16的指令行列步队供应指令做事,2个加载/存储单元则由深度为12的指令行列步队卖力。
▲Cortex-A76的后端设计
浮点方面,ARM设计了2个实行单元,个中一个实行FMUL/FADD/FDIV/ALU/IMAC等,功能较为强大,另一个比较大略只实行FMUL/FADD/ALU,ASMID浮点核心由2个深度为16的行列步队供应指令做事。
当人们谈及后端架构时,每每会提到指令吞度量和延迟。Cortex-A76在指令延迟方面有很大进步,这是由于其架构设计可以在非常主要的指令上减少周期所致。Cortex-A76将乘法和乘法累加的延迟从之前的3个周期降落到了2个周期,吞吐量比较Cortex-A75保持不变。显然,由于Cortex-A76有3个整数流水线,这相称于吞吐量比较Cortex-A75增加了50%,同时延迟更低。
在卖力FP和ASMID操作的“VX”也便是矢量实行流水线中它有着更显著的改进,ARM称其为“最前辈”的设计,虽然这个结果已经被炒作了好多年了。从设计来看,浮点算数运算的延迟从3个周期降落到了2个周期,乘法累加从5个周期降落到了4个周期。ARM在这里称实行带宽依旧是“双128位ASMID”的意思是,对付Cortex-A75和之前的处理器,只有一个向量管线能够利用128位,另一个则是64位,在Cortex-A76上,2个向量管线都是128位,以是4精度操作的吞吐能力比较前代产品增加了一倍。
Cortex-A76的数据缓存固定为64KB,并且是4路关联的设计方案,负载延迟保持在4周期,数据标签和查找所须要的DTLB运行在一个单独的管道中。ARM的设计目标是最大限度的提高MLP/内存级并行性,以便能够支持更多的内核。此外,Cortex-A76还设计了4个不同的预取引擎,这些并走运行的预取引擎可以查看各种数据模式并将数据加载到缓存中。
就Cortex-A76的缓存层次而言,ARM设计的还是非常到位的,在带宽和数据延迟方面达到两全其美。64KB L1指令缓存和64KB L1数据缓存的读取速率高达32Bit/周期。L2高速缓存可配置为256KB或者512KB,并且利用了第二代DSU设计,D端包括了一个2X 32Bit/周期写入和读取接口。L3缓存采取了独占设计。整体而言,核心微架构方面有关缓存的改进听说可以将内存带宽提升最高达90%。
▲Cortex-A76的L1数据缓存设计
▲Cortex-A76的缓存加入了第二代DSU
Cortex-A76在存储微架构设计上的上风在于通过详细优化每一周期的运行以最大化全体核心的内存性能。在设计阶段,工程师研究那些可以为性能或者功耗带来0.25%差异的特性,如果可以达到,那么就被认为是对核心有代价的设计。不要鄙视这些百分比,大量的小数据调优后能够带来相称显著的性能提升。
▲Cortex-A76的缓存性能比前代产品有很大提升
在延迟方面,ARM认为Cortex-A76做到了极致。ARM流传宣传要使得自己的客户能够SoC上遵照自己的设计规范,以实现最高的性能并充分发挥上风。比如对主内存每纳秒的延迟提升将会带来0.25%的性能。正如我们在骁龙845中所看到的,这颗SoC的问题在于其延迟较高的L4缓存,使得终极性能没有达到ARM的期望。未来,ARM的客户们须要更多的关注内存子系统的干系延迟信息,否则处理器的性能和功耗将会产生较大差异,乃至高于不同的架构带来的差异。
性能和功耗预测ARM对Cortex-A76的性能和功耗进行了预测,包括微架构设计差异、内存子系统差异、频率和系统等。
就通用IPC而言,比较Cortex-A75,ARM承诺Cortex-A76的整数效能提升25%,ASIMD/浮点效能提升35%,再加上90%的内存效能提升,因此终极可以在GeekBench4中提升25%,JavaScript性能增加35%,在AI打算中,Cortex-A76的双ASMID 128位打算单元使得半精度矩阵乘法的性能达到之前产品的3.9倍。考虑到微架构的改进,这些数据是可信的。
▲ARM针对Cortex-A76的性能预测。
▲比较之前的Cortex-A75,Cortex-A76在给定工艺和频率下综合性能提升了35%。
须要把稳的是,比较中的Cortex-A76利用的是更新的TSMC的7nm工艺,时钟频率也要更高一些。这一部分,ARM预测的结果是Cortex-A76在7nm工艺下可达3GHz,其GeekBench4的测试性能总分增加高达35%。
在单核心性能方面,Cortex-A76的情形是若何的呢?用目前常见的处理器为例的话,Cortex-A76在3GHz的情形下,单核心性能将和Exynos 9810、Apple A10靠近,在2.5GHz情形下已经胜出骁龙845不少。从这一点来看,Cortex-A76的性能表现终极还是取决于频率情形,在过去的发布中,ARM总是在这一点上表现的过于乐不雅观,比如Cortex-A73最初估量高达2.8GHz,Cortex-A75乃至可达3GHz,终极实际产品不超过2.4GHz和2.8GHz。
由于不同的工艺和设计,纵然采取一样的核心架构,都会导致频率和功耗的差异。由于移念头能芯片一因此性能分档,二因此功耗分档,因此终极在不同目标产品中利用时,有可能会降落频率以更好的平衡功耗和性能,两者都会带来频率降落。对付实际上市的第一批Cortex-A76产品而言,频率可能难以达到3GHz,估计以2.5GHz旁边居多。
在这里,ARM的预测则更为激进一些,更倾向于高TDP平台所能达到的频率。ARM还展示了一张幻灯片,显示了处理器在3.3GHz下的极限性能,此时Cortex-A76的性能险些可以达到Cortex-A73的2倍。须要把稳的是,这里的功耗已经超过了5W,因此利用场合可能并非电池供电的小尺寸移动设备。
再来看看功耗方面的改进。ARM给出的数据是在750mW每内核的功耗下,10nm工艺的Cortex-A75和7nm工艺的Cortex-A76比拟时,后者的性能提高了40%;或者说在运行同样的SPECRAM2006,输出同样的性能时,Cortex-A76的只有比拟产品的一半。在这所有的测试和比拟中,我们尚未看到处理器更详细的性能比拟,包括3GHz下Cortex-A76的一些细节表现等。
从目前的工艺情形来看,台积电的承诺是10nm FF相对付其16nm FF功耗低落40%,但是迄今为止台积电还未在实际生产中出货过Cortex-A75的产品,实际上只有三星的10nm LPP上生产过Cortex-A75干系的骁龙845处理器,从一些数据上来看三星的工艺可能略胜台积电的10nm FF。
在能耗方面,ARM引用的是SEPCint2006的性能指标,据预测ARM在这个比拟中利用的是2.8GHz的Cortex-A75作为参照,如果ARM要和骁龙845为难刁难比的话,大概和2.4GHz的Cortex-A76相称,考虑到工艺的进步,这大概还为Cortex-A76留下了约15%的架构上风。但是,由于Cortex-A76的目标是性能提升35%,正如我们看到的那样,提升频率得到性能后,功耗并非线性增长,因此功耗和效率上风在峰值性能下可能会很快的降落。
尽可能考虑所怀孕分后,我们认为7nm的Cortex-A76在峰值性能的能耗比表现可以略微胜出目前的高端SoC,这是一个非常主要的指标。如果更守旧的来看的话,2.5GHz的情形下,Cortex-A76和Cortex-A73以及Cortex-A75比较,能耗比上风将会扩大至30%。
总的来看的话,Cortex-A76的能源效率(能耗比)非常高,但是它也可以是一个受到TDP掌握的设计,峰值性能下TDP较高,但这种处理器每每并不会利用在手机这样的小尺寸产品中,由于它们须要更低的频率以更好地掌握发热。对付条记本电脑这类设备而言,Cortex-A76可以尽可能利用高频率来获取较高性能,毕竟大尺寸设备在散热和电源方面都会有更好的表现。
未来两代处理器的根本Cortex-A76并非一个弘大的架构,而是在各方面都很均衡。除了性能的提升外,Cortex-A76在险些每一步设计中都非常关注电源效率,ARM希望得到的是能两全其美的架构。
Cortex-A76的干系产品目前已经有两家厂商与ARM在互助,很可能今年年底之前就有干系产品发布。个中华为海思是最主要的互助伙伴之一,高通不才一代产品上也可能采取Cortex-A76。至于三星,由于Cortex-A76没有明显超越M3,三星在改进M3的能耗比后还可能进一步推出M4,因此可能不再利用ARM公版或者改版。
根据ARM的方案来看,Cortex-A76将成为未来2代处理器的根本,也便是说未来的新的架构将以Cortex-A76为根本进行进一步开拓,提高性能或者提高能耗比。根据ARM的数据,他们希望自己的产品年复合增长率为25%,这意味着未来几年移动SoC就有希望追上PC处理器的性能,这会让市场变得更加有趣。