Arm重磅发布,推出全新CPU和GPU_风闻
半导体行业观察-半导体行业观察官方账号-专注观察全球半导体最新资讯、技术前沿、发展趋势。2021-05-26 16:46
来源:内容由半导体行业观察(ID:icbank)编译自「anandtech」,谢谢。在上个月Arm发布了最新基础架构Neoverse V1和Neoverse N2 CPU IP之后,现在是时候该讨论Arm在客户端和移动方面的进展了。今年,Arm的情况比往常要大得多,因为我们看到了面向移动设备和客户端的三种新一代微体系结构:旗舰级Cortex-X2内核,以Cortex-A710形式亮相的新A78后续产品,还有名为Cortex-A510的全新小核心。
这三个新CPU构成了Armv9兼容设计的新三重奏,旨在标志着行业中很少出现的更大的体系结构/ ISA转换。
除了新的CPU内核外,我们还看到了新L3和群集设计——DSU-110,Arm还通过新的缓存一致性CI-700网状网络和NI-700NoC IP对其互连IP进行了重大升级。
Cortex-X2,A710和A510是去年X1,A78和A55的后续产品。特别是对于新的Cortex-X2和A710,它们是其前代产品的直接微体系结构后继产品。这些部分在迭代改进IPC和效率的同时,还以Armv9和新扩展(例如SVE2)的形式结合了全新的体系结构功能。
Arm的新小核心Cortex-A510是一个更大的微体系结构跳跃,因为它代表了Arm的Cambridge CPU设计团队的一项新的CPU设计。A510在改进IPC的同时仍继续关注功率效率,并且也许最有趣的是,它保留了其有序的微体系结构特征。
Armv9 CPU系列:仅用于所有实际目的的AArch64 *
新的CPU系列标志着我们多年来最大的体系结构飞跃之一,因为该公司现在将所有三个新CPU IP都基于Armv9.0。早在三月下旬,我们就广泛地介绍了新Arm架构的细节。新ISA的基础功能包括新注册的先前可选/缺失的Armv8.2 +功能,这些功能在移动和客户端设计中无法得到保证(主要是由于较旧的A55内核),以及引入了新的SVE2 SIMD和矢量扩展。
我们期待已久的一大变化是,在即将到来的Arm Cortex-A移动内核中,我们将看到32位AArch32执行模式的弃用。自从Google在2019年宣布Google Play商店将要求上传64位应用程序以来,我们就一直在为32位应用程序倒计时。该公司也将于今年夏天晚些时候停止向64位兼容设备提供32位应用程序,
尽管Arm宣布这一转变将在2023年发生,但就所有意图和目的而言,明年大多数全球用户都已经在发生这种转变。Cortex-X2旗舰内核和Cortex-A510小内核都是仅限AArch64的微体系结构,它们不再能够执行AArch32代码。
话虽如此,信心的读者可能会注意到,三分之二的CPU并不是一个完整的转变,其原因是因为Cortex-A710实际上仍然支持AArch32。Arm表示,这样做的原因主要是为了满足中国移动市场的需求,因为中国移动市场缺乏全球Play商店市场的同类生态系统功能,中国供应商及其国内应用程序市场需要更多时间来促进向仅64位转变。这意味着明年我们将有一个奇怪的情况,那就是只有SoC能够在其中级内核上执行32位应用程序,而这些应用程序被降级到A710内核中级,而错过了A510内核的小功率效率或X2内核的性能。
在核心方面,新的Cortex-X2和Cortex-A710是Cortex-X1和Cortex-A78的后继产品。这两种设计大多由ARM奥斯汀的设计团队设计的,从多年前的A76算起,新产品代表了这个微架构系列的第四代产品。在Arm借助明年的新Sophia内核将其移交给全新设计之前,这些内核应该是该微体系结构家族中的最后一个,
在设计理念上,X2和A710总体上保持了X1和A78所定义的总体目标:X系列继续致力于通过增加微体系结构来提高性能,并且Arm愿意在合理的范围内折衷功率。同时,A710继续致力于通过更智能的设计来提高性能和效率,并着重于最大化IP的功率,性能和面积(PPA)平衡。
在上一张幻灯片中,Arm提出的重点是优化了关键路径(critical paths)和物理设计,以实现持续的电压运行,这更多是该公司在下一代“Middle”内核中追求的目标,而不是在Cortex-A710中专门体现的目标。。
今年,我们也终于看到了一个新的小核心。我们早在2017年就介绍了Cortex-A55,自那时以来我们还没有看到对Arm的小内核的任何更新,以至于它被视为最后几代移动SoC的重大弱点。
全新的Cortex-A510是Arm剑桥设计团队的clean-sheet 设计,它利用了公司较大内核中已采用的许多技术,但将这些技术实施到了新的有序(in-order)小型微体系结构中。是的,我们仍在讨论有序内核,而Arm仍将其视为提取移动设备最佳效率和“使用天数”的最佳选择。
尽管这是一个有序内核,但Arm进行了比较,认为新设计与2017年的旗舰内核Cortex-A73非常相似,实现了非常相似的IPC和频率功能,而功耗却要低得多。
新设计还采用了非常有趣的共享复杂方法,并与第二个内核共享了L2和FP / SIMD pipelines,一个被Arm称为“合并内核”(merged core)的设计方法,这无疑会让读者想起十年前AMD在推土机内核中使用的CMT方法 ,即使在方法上有非常重要的差异。
Cortex-X2:更高的性能,更深的OoO
我们首先从去年的Cortex-X1的继承者Cortex-X2开始。
X1是Arm推出的新IP系列产品中的第一款产品,在这个系列面世后,Arm将其“大”核心产品分成了两个不同的IP产品线,其中Cortex-A兄弟继续了Arm最初的PPA设计理念,而X系列则被允许为了实现更高的性能点而不断发展壮大。
Cortex-X2延续了这一理念,并进一步扩大了其与“Middle”同类产品Cortex-A710之间的性能和功耗差距。我还注意到,在Arm的整个演讲中,都提到了将Cortex-X2用于大屏幕计算设备和笔记本电脑等外形尺寸中的情况,因此这很可能表明该公司的这一代产品,将被应用在上述场景的产品设计中。
从体系结构的角度来看,X2与X1自然不同,这在很大程度上要归功于它对Armv9的支持以及该体系结构的新基准化所带来的所有安全性和相关的ISA平台改进。
如简介中所述,Cortex-X2还是仅64位内核,即使在PL0用户模式应用程序中,也仅支持AArch64执行。从微体系结构的角度来看,这很有趣,因为这意味着Arm将能够消除设计中的某些缺陷。但是,由于该设计是Austin处理器系列的延续,因此,我想知道我们是否会在未来的 “clean-sheet” 大内核设计中看到这种弃用的更多好处,因为从一开始就设计了仅AArch64。实际上,这是Arm的其他CPU内核中已经发生的事情,因为新的小内核Cortex-A510设计为sans-AArch32。
在前端方面,Arm一直在尝试改进其认为微体系结构最重要的方面:分支预测。这包括继续以与获取阶段分离的方式运行(run the branch resolution in a decoupled way)分支分辨率(branch resolution),以使这些功能块能够在错误预测的情况下领先于内核的其余部分运行,并最大程度地减少分支气泡( branch bubbles)。Arm通常不愿就其预测变量在这里进行过多少改动而谈论太多细节,但希望在新的X2和A710内核的分支预测准确性方面取得显着改善,从而有效地降低了MPKI(Misses per kilo instructions)指标,以应对非常广泛的工作负载。
由于Arm能够将dispatch stages从2个周期减少到1个周期,因此新的核心总体上将其pipeline长度从11个周期减少到10个周期。需要注意的是,我们必须将pipeline cycles与mispredict penalties分开来,在大多数情况下,后者在Cortex-A77设计中已减少到10个周期。移除pipeline stage通常是一个相当大的变化,特别是考虑到Arm的目标是保持内核的频率能力。这种设计变更确实招致了一些更复杂的工程,并且具有面积和功耗成本。但是尽管如此,正如Arm所解释的那样,削减pipeline stage仍然可以带来更大的投资回报,从而带来绩效收益,因此非常值得。
内核还增加了乱序功能,这一代产品还将ROB(reorder buffer)从224个条目增加了30%,增加到288个条目。有效数字实际上还要高一点,因为在压缩和指令捆绑的情况下,实际上存储了超过288个条目。Arm说,这一代产品还促进了更多的指令融合案例。
在核心的后端,FP / ASIMD pipelines的一部分有了新的重大变化,这些 pipelines现在支持SVE2。在移动市场,SVE向量长度将继续为128b,本质上,新的X2内核具有与X1的4x FP / NEON流水线相似的吞吐量特性。之所以选择128b向量而不是更高的向量是因为在big.LITTLE设计中需要具有统一的体系结构特征,因为您不能在同一SoC中以无缝方式混合不同向量长度的微体系结构。
在后端,Cortex-X2继续致力于通过将load-store窗口和结构大小增加33%来提高MLP (memory level parallelism) )。Arm在这里采用了几种结构,且通常不会详细说明已扩展了哪些队列,但是一旦我们拿到了X2系统,就很可能能够对此进行衡量。L1 dTLB已从40个条目(entries)增加到48个条目,并且与每一代一样,Arm还改进了其预取器(prefetchers),提高了准确性和覆盖范围。
Prefetchers是今年早些时候在Cortex-X1和A78上使我们惊讶的一个设计,这是我们在行业中认识到的同类产品中的第一个。这能够锁定到任意重复的内存模式上,并识别内存访问中的新迭代,从而能够智能地预取整个模式直至一定深度(我们估计为32-64MB的窗口)。Arm表示,现在覆盖范围以及准确性都得到了进一步的提高,尽管只有在接触到芯片之后,我们才能再次看到这些细节。
就IPC的改进而言,在SPECint2006中,ISO频率在今年数字达到了+ 16%。该度量标准的问题(并且适用于今天所有Arm的数据)是Arm将8MB L3缓存设计与4MB L3设计进行了比较,因此我希望+ 16%的数字中的较大部分是由于较大缓存而不是核心IPC自身进行改进。
就他们而言,Arm重申他们希望明年的X2 SoC使用8MB L3设计,因此,这个+ 16%的数字是现实的,这是用户在实际实现中应该看到的。但是话虽这么说,我们去年还是就Arm期望用于X1 SoC的8MB L3缓存进行了相同的讨论,而Exynos 2100和Snapdragon 888都没有采用。因此我们还是看最终商用的旗舰SoC将采多大的高速缓存。
在性能和功耗曲线方面,新的X2内核在这两个指标上都超越了X1。尽管峰值性能点的确增加了16%的性能,但这确实要付出更高的功耗。
通常,考虑到我们现在在市场上看到的有关处理供应商的节点选择的情况,这有点令人担忧。我们已经看到,高通公司和S.LSI在Snapdragon 888和Exynos 2100中使用的三星5LPE节点在性能和能效方面的交付不足,我通常认为这两个大核的功耗都较高限制散热。我认为高通公司在下一代产品中将继续使用三星代工厂,因此,我对采用旗舰级SoC的任何节点(无论是5LPP还是4LPP)在功率改进方面都持悲观态度。明年我们可能看不到实际SoC的全部+ 16%改善,这很有可能是合理的。
Cortex-A710:性能更高,效率更高
正如前面介绍,Cortex-X2在提供全面性能的同时,要付出功耗和面积上的损失,但Arm的Cortex-A710设计却采用了更有效的方法。
首先,就Arm未来的发展而言,现在新产品的命名是显而易见了的,他们跳过了A79的名称,只是简单地从A710的新的三位数方案开始。这在公司宏伟计划中逼哥不是很重要,但却是有趣的营销方式。
与X2一样,Cortex-A710是Armv9内核,具有新体系结构版本附带的所有新功能。与X2不同,A710还支持EL0 AArch32执行,并且如介绍中所述,这主要是因应中国市场客户要求所做的的设计选择。因为在中国市场,生态系统将所有应用程序迁移到AArch64方面仍然略有滞后。
在前端增强方面,我们看到了与X2相同的分支预测改进,具有更大的结构和更好的准确性。其他结构(例如L1I TLB)也已从32个条目增加到48个条目。其他前端结构(例如macro-OP cache )在1.5K条目处保持不变(X2在3K条目处也保持不变)。
A710中核的一个非常有趣的选择是Arm将macro-OP cache和dispatch stage的吞吐量从6-wide降低到5-wide。这主要是针对这一代产品的有针对性的功率和效率优化,因为我们看到Cortex-A和Cortex-X内核之间在其专业性和性能和功耗的目标用例方面存在更大的分歧。
Dispatch stage还具有与X2相同的优化功能,从流水线中删除了1个周期,从而实现了整个10周期的pipeline设计。
Arm还专注于影响系统非核心部分的核心改进,这要归功于预取器设计的新改进以及它们如何与新的DSU-110交互。内核和DSU的新组合能够减少从内核到L3缓存的访问时间,并且由于效率更高的预取器和更大的L3缓存而减少了昂贵的DRAM访问。
在IPC方面,Arm宣传了10%的提升,但是这里出现的数字又是我们将8MB L3缓存设计与4MB L3缓存设计进行了比较。虽然这可能会与明年的旗舰SoC进行比较,因为Cortex-A710还是可用于中端或低端SoC(可能使用较小的L3缓存)的内核,但我们不太可能看到这样的IPC提升,除非实际的SoC确实能够改善其DSU尺寸。
比性能提高+ 10%更为重要的是,当稍微降低频率时,我们可以看到功耗降低幅度可能很大。据Arm称,在性能相同的情况下,A710的功耗比Cortex-A78少30%。这将大大有助于Cortex-A710的时钟频率适中的“中间”核心实现的持续性能和电源效率。
总的来说,X2和A710的性能和功率指标都相当适中,使其成为我们在Arm几年中看到的最小的一代又一代的数字。Arm解释说,由于这一代随着向Armv9的迁移而进行了较大的体系结构更改,因此对我们在前几代中看到的通常的效率和性能改进产生了影响。
X2和A710都是该奥斯汀微体系结构家族的第四代产品,因此我们正面临着不断减少的收益和成熟的设计壁垒。几年前,我们给人的印象是,奥斯汀家族只能进行三代的工作,然后再将其移交给Sophia团队的全新clean-sheet设计,但是原来的路线图已经改变,现在我们将期待明年的Sophia新核心在性能上能有更大的飞跃。
Cortex-A510:全新的小巧设计
接下来,我们将介绍Arm最新的小内核,即全新的Cortex-A510。新设计是工程师在过去4年中一直在研究的Arm剑桥团队开发的一种clean-sheet的微体系结构,它在将小内核内置到SoC中时标志着一种截然不同的方法。
首先,Arm明确指出了设计继续使用有序执行,并指出他们认为这仍然是为此类工作负载设计内核的最省电方式。当将其置于苹果自己乱序的效率核心的上下文中时,这仍然是一个相对有争议的话题和讨论点,我稍后将再次讨论该话题。
其次,Cortex-A510引入了一种称为“合并核心”(merged-core)的微体系结构,这与AMD十年前在其Bulldozer内核中对CMT所做的一些非常高的比较和相似之处,但是在某些重要方面却有很大不同。细节和设计方面。
当然,与X2和A710一样,A510是Armv9设计,并且所有三个内核彼此共享相同的架构功能,从而可以将它们集成到同一SoC中。值得注意的是,与X2一样,A510是仅64位的AArch64内核。
Cortex-A510最有趣的方面是新的合并核心方法。Arm在这里所做的事情是创建一个新的“复杂”,最多两个核心对,它们共享L2缓存系统以及它们之间的FP / NEON / SVE pileline。
乍一看,这听起来与AMD使用Bulldozer和CMT(Clustered Multithreading)方法所做的极为相似,但是Arm的设计在实际内核共享方面更加分散。AMD的CMT模块主要由两个整数后端和一个FP / SIMD后端之间的共享前端组成,而Arm的“合并核心”实际上是具有各自前端,中核,整数后端和L1缓存层次结构。“核心”之间共享的唯一内容是实际的FP / SIMD后端以及L2缓存层次结构。
此外,虽然我们希望在移动市场中,供应商能够在每个复杂方法中使用这两个新的合并核心,但实际上有可能仅在每个复杂中仅使用一个核心。在这种情况下,独立核心将本质上具有其自己的专用(非共享)资源,但是与预期的合并核心方法相比,其区域效率显着降低。
通常,考虑到采用SVE2以及新执行后端所需的相对较大的占位面积,为这些微小的新内核实际共享这些资源是很有意义的。它们的典型工作负载也大多仅为整数绑定后台工作负载,这对此类单元造成的压力较小。
从更高级别的SoC角度来看,内核数量并没有真正改变,细节是我们将看到两对或小的内核现在彼此之间共享更大的L2缓存。该L2最多可配置为512KB,但一如既往,我们在产品中实际看到的内容将很大程度上取决于供应商要在其设计中实现的内容。由于新的综合系统也仅占用DSU上的单个接口,因此也为大于8个“核心”的设计提供了可能性,我希望这种情况不会发生,或者希望仅通过更多的中型或大型核心发生。
就新A510的前端而言,我们看到了一个128位的fetch pipeline ,这意味着它每个周期最多可以获取4条指令,这给前端留出了一些余地来关闭分支气泡。解码器的实际宽度已从2宽增加到3宽。
在分支预测方面,一如既往Arm并未透露太多细节,但该公司确实指出,它在大型核上使用了相同的最新方法和技术。L1指令高速缓存可以是32KB或64KB。