广州城市网

向7nm时代的性能巅峰出击!ARM Cortex-A76架构解析

分享到:
 2020-09-24 06:24:03 来源: 阅读:-G0

ARM的处理器架构基本上维持着一年一变。从早期的Cortex-A15到Cortex-A57,再到Cortex-A72、Cortex-A73以及Cortex-A75,ARM最近数年内不断通过发布全新架构,推动了移动计算性能的不断前行。今年五月,ARM又发布了全新的Cortex-A76架构,这款架构瞄准的是全新7nm工艺,其性能表现有望再攀高峰。

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%,并全部来自于微架构的改进。

向7nm时代的性能巅峰出击!ARM Cortex-A76架构解析

▲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架构。

向7nm时代的性能巅峰出击!ARM 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也并非落伍,在具体产品中使用谁将取决于厂商的需求。

向7nm时代的性能巅峰出击!ARM Cortex-A76架构解析

▲Cortex-A76支持DynamIQ,能够组成不同的核心。

接下来,本文将深入Cortex-A76的核心,带你了解这一全新架构。

向7nm时代的性能巅峰出击!ARM Cortex-A76架构解析

▲Cortex-A76架构设计的一些要点

Cortex-A76前端架构

总体来看,Cortex-A76是这样一个结构:超标量乱序结构,拥有4个解码前端(4发射),8个执行端口,总流水线级数13级,执行延迟为11级。在前端,ARM设计了一个新的预测/获取单元,被称为“基于预测的获取”,这意味着分支预测单元将介入指令获取单元的工作,这和之前所有的ARM微架构都有所不同,能够实现更高的性能和更低的功耗。

向7nm时代的性能巅峰出击!ARM Cortex-A76架构解析

▲Cortex-A76的架构总览

在分支预测单元方面,ARM首次采用了混合间接预测器。预测器和读取单元分离,其支持的大型结构独立于机器其余部分运行。独立结构意味着可以使用时钟门控技术控制功耗,这对分支预测单元而言是能效比上的积极改进。分支预测器方面,ARM设计了3级分支目标缓存,一个16通路的nanoBTB,一个64通路的microBTB和一个6000通路的主BTB。

相比之下,虽然ARM在Cortex-A73和Cortex-A75的分支预测器上宣称能够预测所有分支,但是Cortex-A76的分支预测器显然更为强大,能够带来比前代产品更强的分支预测效果,以提高效能。

向7nm时代的性能巅峰出击!ARM 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依旧显得比较“瘦”。

向7nm时代的性能巅峰出击!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的指令队列负责。

向7nm时代的性能巅峰出击!ARM Cortex-A76架构解析

▲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%。

向7nm时代的性能巅峰出击!ARM Cortex-A76架构解析

▲Cortex-A76的L1数据缓存设计

向7nm时代的性能巅峰出击!ARM Cortex-A76架构解析

▲Cortex-A76的缓存加入了第二代DSU

Cortex-A76在存储微架构设计上的优势在于通过详细优化每一周期的运行以最大化整个核心的内存性能。在设计阶段,工程师研究那些可以为性能或者功耗带来0.25%差异的特性,如果可以达到,那么就被认为是对核心有价值的设计。不要小看这些百分比,大量的小数据调优后能够带来相当显著的性能提升。

向7nm时代的性能巅峰出击!ARM Cortex-A76架构解析

▲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倍。考虑到微架构的改进,这些数据是可信的。

向7nm时代的性能巅峰出击!ARM Cortex-A76架构解析

▲ARM针对Cortex-A76的性能预测。

向7nm时代的性能巅峰出击!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处理器的性能,这会让市场变得更加有趣。

推荐阅读:深圳之窗

文章评价COMMENT

还可以输入2000个字

暂无网友的评论

意见反馈

×
J