又是一年6月,ARM在旧金山发布了全新的Cortex A76架构。
数码爱好者们对ARM的架构代号想必已经耳熟能详,但或许并不知道这些架构具体出自谁手。实际上,ARM在全球拥有3家设计团队,分别是位于美国德州的奥斯丁团队、位于法国南部的索菲亚团队以及位于英国大本营的剑桥团队。
这三家团队各有分工,奥斯丁团队负责设计高性能架构,代表作为Cortex A57和Cortex A72;剑桥团队专门设计Cortex A53和Cortex A55等低功耗架构;而索菲亚团队则主打均衡,Cortex A73和Cortex A75便是出自其手。
不过自摩尔定律在28nm节点放缓开始,奥斯丁团队在Cortex A57和Cortex A72架构上两次遭遇瓶颈,性能强劲是不假,可功耗和发热也堪称恐怖。自那以后的几年里,奥斯丁团队一直没有什么动作。就在人们几乎已经忘了这群美国壮汉的时候,奥斯汀团队带着全新的Cortex A76回归了。
从设计的角度来看,Cortex A76对于ARM来说至关重要,他是一款完全重新打造的全新微架构,是“第二代奥斯汀家族”的领军者,代表了一个全新的开始。ARM称它“是一款具有的笔记本级性能的处理器。”
Cortex A76在最新7nm工艺下,运行频率预计将达到3GHz,相比基于10nm工艺制造、运行在2.8GHz的Cortex A75,能耗将降低40%,性能可提升35%,机器学习能力可提升4倍。
Cortex A76是一个乱序超标量内核,前端为乱序4发射指令解码,后端为13级流水线,执行延迟为11个阶段。ARM在设计了一个“定向预测获取”单元,这代表分支预测单元会反馈到取指单元中。ARM还在业内首创使用了“混合间接预测单元”,将预测单元与取指单元分离,且支持内核中的各模块独立运行,运行期间更易于进行时钟门控以节省功耗。
Cortex A76分支预测单元由3级BTB(分支目标缓存)支持,包括一个16链路nanoBTB,一个64链路microBTB和一个6000链路主BTB。在Cortex A73和Cortex A75世代,ARM便声称其分支预测单元几乎能预测所有分支,Cortex A76的这个新单元似乎还要比之前更强一些。
取指单元的运行速度为每时钟周期16Byte,分支预测单元的运行速度是取指单元带宽的两倍,为每周期32Byte,可在由12个“块”组成的取指单元之前提供一个取指队列。这样做的目的是,分支预测错误时可以在管道中隐藏分支气泡,并避免使取指单元和核心的其余部分陷入停滞,ARM称Cortex A76最多可应对每周期出现8次分支预测错误。
Cortex A76的取指单元最多可提供16条32bit指令,取指流水线由2个指令对齐和解码循环组成。在指令解码和重命名阶段,Cortex A76每周期可吞吐4条指令,并以平均每条指令1.06Mops的比率输出宏指令。
此前,Cortex A72和Cortex A75每周期可吞吐3条指令,Cortex A73则只能吞吐2条。根据雷锋网掌握的资料来看,Cortex A73相比Cortex A72解码带宽下降是为了优化能效,而随着对移动处理器性能需求的提升,Cortex A75恢复了每周期3吞吐的设计。此次Cortex A76则更进一步,成为了公版架构中解码带宽最高的,但仍低于三星和苹果的定制架构(三星M3每周期6吞吐/苹果A11每周期7吞吐)。
在指令重命名阶段,ARM分离了重命名单元,并将时钟门控用于整数/ASIMD/标记操作,重命名和调度从A73和A75的每次2周期缩短为1周期。宏指令按照每条指令1.2μop的比例扩展为微操作,每周期执行8μops调度,相比Cortex A75的6μops/周期和Cortex A73的4μops/周期有明显增强。
Cortex A76的乱序提交窗口大小为128,缓冲区被分成负责指令管理和注册回收的两个结构,称为混合提交系统。由于性能缩放比只有1/7,即缓冲区增加7%只能提升1%性能,所以ARM并没有着重增强这部分设计。
流水线方面,整数部分包含6个问题队列和执行端口,共3条整数执行流水线,由1个16深度的问题队列提供服务。其中2条整数流水线可执行简单算术运算,1条可执行乘法、除法和CRC等复杂操作。ASIMD/浮点部分则包含2条流水线,它们由2个16深度的问题队列服务。
在整数运算方面,Cortex A76将乘法和乘法累加延迟从Cortex A75的3个周期降低到2个周期,总吞吐量保持不变。而由于Cortex A76有3条整数流水线,在执行简单算术运算时的吞吐量相比Cortex A75的2条流水线增加了50%。
在负责浮点和ASIMD操作的“VX”(矢量执行)流水线中,ARM也做了重要的改进。Cortex A76的浮点算术运算延迟从3个周期降低到2个周期,乘法累加也从5个周期降低到4个周期。ARM表示,相比Cortex A75,Cortex A76的双128bit ASIMD可带来双倍的执行带宽,四倍精度操作的执行吞吐量增加了一倍。
ARM还在Cortex A76上引入了第四代预读取单元,每个核心有4个不同的预读取引擎并行运行,查看各种数据模式并将数据加载到缓存中,以更接近完美缓存命中操作的目标。ARM在Cortex A76的缓存体系设计上没有做丝毫妥协,在带宽和延迟两个方面都做到了堪称完美的水平,据说可将缓存带宽提高90%之多。
综合以上这些架构改进,ARM称Cortex A76相比Cortex A75,每周期整数性能和浮点性能可分别增长25%和35%,再加上高达90%的缓存带宽提升,Cortex A76的GeekBench4跑分提升了28%,JavaScript性能提升了约35%(Octane,JetStream)。
ARM给出了运行SPECint2006测试的性能对比,在运行GCC编译的基准二进制文件时,Cortex A76在2.4GHz时便干掉了骁龙845,同频性能提升了15%。当然,半导体工艺所带来的频率红利对SoC的性能提升也非常重要,如果台积电7nm工艺顺利投产,让Cortex A76运行在3GHz+的频率上,Cortex A76的性能将和使用三星自研M3架构的全新Exynos 9810持平。
除了性能增强之外,Cortex A76的能耗比也有一定提升。在750mW的内核功耗预算下,7nm的Cortex A76相比10nm的Cortex A75可提升40%性能。ARM表示,Cortex A76可实现四核持续满载时保持满速不降频运行。
不过此前ARM立下的频率目标往往有些过于乐观,例如最初预计Cortex A73将运行在2.8GHz,Cortex A75则为3GHz,而二者的实际最高运行频率仅为2.45GHz和2.7GHz。对半导体供应商来说,工艺成熟度和不同流水线间的差异均会影响芯片运行频率,压低频率上限是为了保证供货量不得已而为之。
此外据雷锋网了解,每种核心架构在某一工艺下,都有一个能耗比最佳的频率区间。以使用三星自研M3架构的全新Exynos 9810为例,其CPU大核集群在单核、双核、四核满载的情况下频率分别为2.7GHz、2.3GHz、1.8GHz,功耗均为3.5瓦左右。换言之,经过逆推可知,M3核心从1.8GHz到2.3GHz,提升500MHz频率功耗便翻了一倍,而从2.3GHz提升到2.7GHz,仅400MHz的提升就让功耗再次翻倍。
而从1.8GHz到2.7GHz,即便性能也线性同步提升,幅度也只有50%,功耗则翻了两番。可见越过最佳能耗比区间后,冲击高频需要付出极大的功耗代价。而骁龙845的Kryo 385 Gold核心的表现也与之类似,在超过大约位于2.1GHz的阈值后,功耗飙升的幅度甚至比三星的M3核心犹有过之。
因此,首批使用Cortex A76架构的SoC,频率有很大可能依然达不到3GHz。雷锋网认为,考虑到核心架构的变化和规模的增长,其实际频率会在2.5GHz左右,但不排除随着后期工艺成熟或将其应用在笔记本等对功耗较为宽限的设备时可冲上3GHz+的高频。
最近几年里,人们一直在期待能与苹果一较高下的强劲架构。三星在不久前推出的自研架构M3虽然在性能上追近了苹果A11,代价却是单核3.5W的恐怖功耗。在这种情况下,ARM依然选择稳扎稳打的进行世代更替,这次奥斯丁团队的Cortex A76并不是性能怪兽,它充分显示了一个平衡的微架构有多么重要。
据悉,高通和华为海思已经在准备Cortex A76 SoC的研发和生产,我们很可能会在今年年底前看到它在商业产品中出货。而三星方面则比较微妙,Cortex A76的性能并没有超越M3,所以在理论上三星只需重点改善M4(如果有的话)的能耗比即可。
不出意外的话,基于Cortex A76的架构将在接下来的几年里至少进行两次迭代升级。ARM已经连续5年达成年度规划目标,并且年复合增长率为20-25%,随着移动处理器迅速接近X86处理器的性能,未来几年的处理器市场将会更加有趣。
via:Anandtech