直播提醒:今天下午14:00~16:00
来源:编译自anandtech 及EETOP综合整理
自 2011 年 10 月 Arm 首次公布 Armv8架构以来,已经有近 10 年的时间了,这是计算领域相当多变的10 年,因为指令集架构通过移动领域到服务器领域的应用日益广泛,如今已开始在笔记本电脑和即将到来的台式机等消费设备市场上普及。
这些年来,Arm 对 ISA 进行了各种更新和扩展,其中一些重要的内容,有些也许很容易被忽略。但不管如何改动,都是基于ArmV8架构基础之上的。所以,大家也都在翘首等待Arm最新的ArmV9架构的到来。
今天,作为Arm的Vision Day活动的一部分,该公司终于宣布了全新Armv9架构的首个细节,为Arm公司希望在未来十年成为下一个3000亿芯片的计算平台奠定基础。
Armv9 与 Armv8 到底有多大区别,才会在 ISA 的命名上有如此大的跳跃?
读者可能会问自己一个最大的问题,那就是Armv9与Armv8到底有什么区别,才会在ISA的命名上有如此大的跳跃。说实话,单纯从ISA的角度来看,v9可能并不像v8比v7那样是一个根本性的跳跃,v8曾用Arch64引入了完全不同的执行模式和指令集,而Arch64比Arch32有更大的微架构影响,比如扩展寄存器、64位虚拟地址空间等许多改进。
Armv9延续了 AArch64 作为基准指令集的使用,然而在功能上增加了一些非常重要的扩展,值得在架构编号上做一个增量,可能让 Arm 也实现了一种软件的重新垒砌,不仅是新的 v9 功能,也包括我们这些年看到的各种 v8 扩展的发布。
EETOP了解到,Armv9 拥有三大新支柱,Arm 认为新架构的主要目标是:安全、AI 以及改进矢量扩展和 DSP 能力。安全性是 v9 的一个非常大的话题,我们将更深入地讨论新的扩展和特性的新细节,但首先应该直接了解DSP和AI特性。
新的Armv9兼容CPU所承诺的最大的新功能可能是开发人员和用户可以立即看到的,它是SVE2作为NEON的后继产品的基础。
可扩展矢量扩展(Scalable Vector Extensions,简称SVE)的首次实现是在2016年宣布的,并首次在富士通的A64FX CPU内核中实现,目前正用于为日本世界第一的超级计算机Fukagu。。SVE的问题在于,这个新的可变向量长度 SIMD 指令集的首次迭代范围相当有限,而且更多的是针对 HPC 工作负载,缺少了许多通用性较强的指令,而这些指令仍然被 NEON 所覆盖。
SVE2 早在 2019 年 4 月就公布了,希望通过补充新的可扩展 SIMD 指令集所需的指令来解决这个问题,以服务于目前仍在使用 NEON(指 128 位 SIMD 单指令多数据扩展结构)的更多样的 DSP 类工作负载。
SVE 和 SVE2 除了增加各种现代 SIMD(单指令多数据)能力之外,好处在于它们的可变向量大小,从 128b 到 2048b 不等,允许可变 128b 粒度的向量,而不管实际硬件运行在什么地方。纯粹从矢量处理和编程的角度来看,这意味着软件开发者只需要编译一次代码,如果未来 CPU 会出现比如原生 512b 的SIMD 执行流水线,代码就已经可以利用单位的全部宽度了。
另外,同样的代码也能在更保守的设计上运行,并具有更低的硬件执行宽度能力,这对 Arm 公司来说非常重要,因为他们设计了从物联网、移动设备到数据中心的 CPU。此外,它还能在 Arm 架构的 32b 编码空间内完成所有这些工作,而在 x86 上的其他实现则必须根据向量大小增加新的扩展和指令。
机器学习也被视为Armv9的重要组成部分,因为Arm认为未来几年越来越多的ML工作负载将变得普遍。在专用加速器上运行ML工作负载自然仍将是性能或能效关键的任何要求,然而,仍将有大量新的较小范围的ML工作负载将在CPU上运行。
矩阵乘法指令是这里的关键,并将代表着在整个生态系统中看到更大规模采用的重要一步,作为 v9 CPU 的基础功能。
一般来说,SVE2 可能是保证跳转到 v9 命名法的最重要因素,因为它是一个更明确的 ISA 功能,在日常使用中区别于 v8 CPU,这将保证软件生态系统去实际分化现有的 v8 堆栈。这其实已经成为Arm在服务器领域的一个相当大的问题,因为软件生态系统仍然是以v8.0为基础的软件包,可惜缺少了最重要的v8.1大系统扩展。
让整个软件生态系统向前发展,并且能够假设新的v9硬件具有新架构扩展的能力,这将有助于推动事情的发展,可能会解决目前的一些情况。
然而v9不仅仅是SVE2和新的指令,它还有一个非常大的重点就是安全,在这里我们会看到一些比较彻底的变化。
具有保密功能的计算架构
在过去的几年中,我们已经看到安全性和硬件安全性漏洞已成为新闻的头等大事,例如Spectre,Meltdown等许多漏洞,以及它们所有同级的侧信道攻击都表明,对安全性的根本需求是重新思考如何处理安全性。Arm希望解决这一总体问题的一种方法是通过引入Arm机密计算体系结构来重新设计安全应用程序的工作方式。
在继续之前,先提醒一下,今天的披露仅仅是对新CCA运作方式的高层解释,Arm表示,有关新安全机制的确切工作原理的更多细节将在今年夏天晚些时候公布。
CCA的目标是从当前的软件堆栈情况中获得更大的收益,在当前的软件堆栈情况下,在设备上运行的应用程序必须固有地信任它们所运行的操作系统和虚拟机管理程序。传统的安全模型是基于以下事实建立的:更高特权的软件层被允许并能够查看较低层软件的执行情况,,然而当操作系统或系统管理程序被以任何方式损害时,这就可能成为了一个问题。
CCA引入了动态创建““realms”的新概念,可以将其视为对OS或虚拟机管理程序完全不透明的安全容器化执行环境。系统管理程序将仍然存在,但仅负责调度和资源分配。而“realm”将由称为“ealm manager”的新实体管理,其被认为是一段新的代码,大约只有管理程序的1/10大小。
realm内的应用程序将能够“证明”realm管理器以确定其是否可信任,这对于传统的虚拟机管理程序而言是不可能的。
Arm并没有深入探讨究竟是什么造成了realm与操作系统和虚拟机管理程序的非安全世界之间的这种隔离,但听起来确实像硬件支持的地址空间,它们无法相互交互。
使用领域的优势在于,它极大地减少了设备上运行的给定应用程序的信任链,并且OS对安全性问题变得越来越透明。与当今需要企业或企业使用带有授权软件堆栈的专用设备的情况相反,需要监督控制的关键任务应用程序将能够在任何设备上运行。
MTE并不是v9的新功能,而是随v8.5一起引入的,MTE或内存标签扩展旨在帮助解决全球软件中两个最持久的安全问题。缓冲区溢出和无用后使用是持续的软件设计问题,在过去的50年中,这些问题一直是软件设计的一部分,要识别或解决它们可能要花费数年时间。MTE旨在通过在分配时标记指针并在使用时进行检查来帮助识别此类问题。
未来 Arm CPU路线图
虽然这与v9没有直接关系,但是与即将到来的v9设计的技术路线图紧密相关,Arm还谈到了有关他们在未来2年中对v9设计的预期性能的一些观点。
Arm表示,与几年前2016年的Cortex-A73相比,移动领域今年的X1设备性能提升了2.4倍(我们这里说的是纯ISO进程设计的IPC)。
有趣的是,Arm还谈到了Neoverse V1设计,以及他们如何实现2.4倍于A72级设计的性能,并披露他们预计今年晚些时候将发布第一批V1设备。
对于代号为Matterhorn和Makalu的下一代移动IP核,Arm披露这两代产品预计IPC总增益将达到30%,不包括SoC设计人员可能达到的频率或任何其他额外性能增益。这实际上代表了这两款新设计的14%的代际增长,正如幻灯片中的性能曲线所示,这表明相对于Arm在A76之后的几年里所做的改进正在放缓。尽管如此,该公司表示,发展速度仍然远远超过行业平均水平。
Arm还提供了一张很有意思的PPT,该PPT旨在关注系统侧对性能的影响,而不仅仅是CPU IP性能。从这里提供的一些数据可以看到,例如每5ns的内存延迟中有1%的性能,但Arm在这里也指出,如果专注于通过改善内存路径、增加缓存或优化频率能力来改善实现的其他各方面,CPU的性能可以被压榨出整整一代。我认为这是对目前SoC厂商保守做法的隐晦抨击,他们没有充分利用X1核心的预期性能余量,随后也没有达到新核心的预期性能预测。
Arm仍然认为CPU是未来最通用的计算块。虽然专用加速器或GPU会有其一席之地,但它们很难解决可编程性、保护性、普适性(本质上能够在任何设备上运行)以及正确工作的成熟能力等重要点。目前,计算生态系统的运行方式极其分散,不仅设备类型不同,设备厂商和操作系统之间也存在差异。
SVE2和矩阵乘法可以极大地简化软件生态系统,让计算工作负载向前迈进一步,采用更统一的方法,未来可以在任何设备上运行。
最后,Arm对Mali GPU的未来有一个新的信息,披露了该公司正在研究VRS,特别是Ray Tracing等新技术。后一点听起来颇为令人惊讶,也预示着AMD和Nvidia推出RT的桌面和游戏机生态系统的推动,也有望推动移动GPU生态系统向RT发展。
Armv9设备将在2022年初面世
今天的公告是以一种极其高级的形式发布的,我们预计Arm会在未来几个月公司惯常的年度技术披露中更多地谈论Armv9的各种细节以及CCA等新特性。
总的来说,Armv9似乎是一个混合体,一方面是更根本的ISA转变,SVE2可以看作是,另一方面是对软件生态系统的总体重新梳理,以汇总过去十年的v8扩展,并为下一个十年的Arm架构打下基础。
Arm在去年年底就已经谈到了Neoverse V1和N2,我确实预计N2至少会作为v9设计最终亮相。Arm进一步披露,预计今年会有更多的Armv9 CPU设计亮相,很可能是移动端Cortex-A78和X1的继任者,新的CPU很可能已经被一般的SoC厂商扎堆,预计2022年初就能在商用设备上看到。
华为是否可用?
由于美国的霸权行为,目前华为先进芯片已经无法获得代工支持了,但是对应后续芯片的研发华为应该不会放弃。目前华为最新的移动处理器是麒麟9000,基于Armv8 的 A77架构。因为华为早已购买了Armv8架构,所以基于此架构的A78、X1架构华为依然可用。但是华为是否可用最新的基于Armv9架构?
早在2019年9月25日,ARM全球负责芯片授权的IP产品事业群总裁热内·哈斯(Rene Haas)曾明确表示,华为和海思是ARM的长期合作伙伴,后续的芯片架构都可以授权给华为海思。哈斯表示,在2019年5月美国政府将华为列入实体清单后,ARM对公司产品进行了厘清,目前有了一个明确结论,即无论是目前的V8架构,还是后续新的芯片架构,都是基于英国技术开发,不会受美国出口管制影响,可以授权给华为海思。由此看来只要ARM没有被美国公司英伟达所收购的化,Armv9架构授权给华为还是应该问题不大的。
直播提醒:今天下午14:00~16:00