Arm的下一代CPU指令集架构(ISA:指令集架构)“ Armv9”开始推出。该公司正在逐步扩展当前的ISA“ Armv8”,而扩展的高潮最终将成为Armv9的搭建桥梁。至于Armv9,一位CPU行业人士表示,安全性增强是最重要的关键。Arm在Armv8.3之后的阶段扩展中专注于安全性,并被视为迈向Armv9的一步。
Arm的指令集架构的发展对于当前的IT行业至关重要。这是因为高性能CPU的指令集体系结构几乎被x86 / x64和Arm两个系统所垄断。对于移动和嵌入式应用程序,Arm是最大的力量。即使不使用Arm本身的CPU内核IP,Apple的A系列SoC的CPU内核和Qualcomm的Snapdragon SoC的Kryo内核也符合Arm的指令集。Arm的指令集体系结构更改会影响许多计算设备。
该公司在2011年使用Armv8将CPU ISA 64位化,同时极大地改变了架构 使用AArch64(一种智能且有条理的64位体系结构),并对ISA进行了重新分区,然后重新开始。在Armv8基础之上,Arm目前正在建立扩展指令。扩展从三个方向进行:虚拟化和RAS等服务器的系统扩展,深度学习的计算扩展以及安全性扩展。
此外,Arm还发布了未来CPU体系结构扩展的方向。引入事务性内存以扩展CPU内核数量,增加了用于车载的功能安全功能,支持用于深度学习的矩阵运算,针对矢量市场中的某些市场将矢量扩展到256位。
它还允许获得Arm许可的客户将自定义指令合并到Arm指令集中。定制指令从用于嵌入式用途的Cortex-M开始,但也正在考虑将其部署到实时的Cortex-R和计算的Cortex-A中。到目前为止,Arm尚未允许被许可方添加自定义指令,以防止破坏CPU指令集体系结构。Cortex-A类中的自定义说明将谨慎进行,以免造成干扰。客户自定义指令的引入旨在与允许客户自定义指令的RISC-V指令集体系结构相反。
不断升级的Armv8-A指令集
Arm CPU当前的指令集架构是第8代“ Armv8”。即使具有相同的Armv8名称,它也会按CPU配置文件分为ISA系列的三种类型。“ Armv8-A”用于高性能CPU“ Cortex-A”系列,“ Armv8-R”用于实时CPU“ Cortex-R”系列,“ Armv8-M”用于嵌入式MCU“ Cortex-M”系列,每个配置文件都有不同的指令集。
此外,对指令集进行了较小的升级。用于高性能CPU的Armv8-A在小数点后也有一个版本。从Armv8.1-A开始,十进制版本每年都会增加“ .1”,现在宣布了Armv8.6-A。Armv8.6-A是ISA在2019年的扩展,Armv8.5-A是2018年,Armv8.4-A是2017年。
传统上,当出现新的Arm ISA小数点版本时,新的小数点版本几乎同步地添加到Arm自己的CPU核心IP中。但这不是现在。Arm的高端CPU核心IP“ Cortex-A77” ISA版本为Armv8.2-A。下一个内核Hercules也是Armv8.2-A。实际上,自2015年Armv8.2-A起,CPU核心IP ISA版本就没有增加。
Apple CPU内核几乎没有Armv8.3-A。已经发布了过去几年的Armv8.x,但尚未在CPU上完全实现。这这种情况有些复杂。首先,ISA版本和CPU实施ISA版本名称之间存在关联。每个Armv8.x一代ISA版本都包含多个功能。使用Arm ISA,如果您具有特定世代的所有功能,则可以首次声明该版本。
例如,如果实现了Armv8.2-A的所有功能,它将成为Armv8.2-A CPU。但是,除了Armv8.0-A的基本功能之外,如果仅实现Armv8.2-A功能的一部分,它将成为Armv8.0-A CPU而不是Armv8.2-A CPU。
在实际的核心IP示例中,Cortex-A77实现了Armv8.2-A之前的所有功能,但仅实现了Armv8.3-A和Armv8.4-A的某些功能。因此,ISA版本是Armv8.2-A CPU。完全装有Armv8.4-A的CPU内核尚未出现。由于该功能的“旋钮”,无法满足Armv8 ISA的升级条件,并且版本无法升级。
但是,这种情况将在不久的将来改变。Arm CPU内核是下一代“ Matterhorn”,并且可以立即实现Armv8.6-A的许多功能。 Matterhorn是该指令集的主要里程碑。Arm将 Matterhorn的CPU代号规则从当前的希腊神话更改为Yamana名称,而且还切换了CPU体系结构以及代号。 Matterhorn可能是“ Armv9之前的CPU”。
过去两年中,Arv8.x指令扩展集中在安全性扩展上
过去,随着分阶段添加功能,Arm的指令集是在Arm的CPU核心IP中同步实现的。但是,自Armv8.2-A以来,它的实施并不顺利,新功能的积累也有所重叠。因此,如前所述,CPU内核的ISA版本似乎未从Armv8.2-A升级。
剩下这么多的原因是什么?它与Armv8.2-A及更高版本功能的内容有关。最后三代的Armv8.x扩展专注于安全性。特别是,Armv8.4-A和8.5-A主要是与安全相关的扩展。
从Meltdown和Spectre开始,这是为了处理CPU微体系结构上的安全性问题。2017年,CPU厂商出现了侧面通道攻击类型Meltdown和Spectre。因此,在过去几年中,开发高性能CPU的供应商(包括Intel和AMD以及Arms)一直致力于将安全功能集成到CPU体系结构和微体系结构中。
就Arm而言,高度依赖Arm平台的Google已成为重要的合作伙伴,并在架构上采取了先进的安全措施。它内置在最新的ISA十进制版本中,例如Armv8.4-A(2017)和Armv8.5-A(2018)。
如果您查看上面每个Armv8.xA版本中的新功能,则可以看到对安全性的偏爱。在该图中,SIMD / FP(浮点)算术系统功能以绿色显示,安全功能以紫色显示,系统和内存功能以卡其色显示。安全功能从Armv8.3-A开始,并随着Armv8.4-A / Armv8.5-A迅速增加。
重点再次从安全转向深度学习
侧通道攻击问题极大地改变了高性能CPU架构的发展。在此之前,您只需要实现一种良好的加速技术,但是在Meltdown / Spectre之后,您现在需要检查该技术是否存在安全问题。并且已经有必要将用于边信道攻击的基本安全功能整合到体系结构/微体系结构中。
自2017年中以来,高性能CPU供应商一直在努力解决此问题。除Arm之外,包括Intel和AMD在内的所有高性能CPU供应商的当前目标是完善一种可免受侧通道攻击的体系结构。
Armv8-A指令集的演变清楚地表明了这种情况。Arm正在迁移到Matterhorn,其安全扩展由Armv8.5-A分隔。因此,下一个指令扩展Armv8.6-A不是偏向于安全性,而是专注于深度学习。
Arm在Armv8.2-A中支持FP16(16位半精度浮点算术),在Armv8.4-A中支持8位点积指令。其加强了对CPU的SIMD(单指令,多数据)操作的深度学习支持。Armv8.6-A进一步支持矩阵运算和BFloat16,以加强对深度学习的兴趣。将矩阵运算和BFloat16带入CPU的原因之一是支持边缘侧训练。支持在中间边缘进行轻度训练,而不是在云侧进行繁重训练。
本文由电子发烧友翻译自pc.watch
-
ARM
+关注
关注
134文章
9083浏览量
367362 -
cpu
+关注
关注
68文章
10853浏览量
211563 -
指令集
+关注
关注
0文章
222浏览量
23378
发布评论请先 登录
相关推荐
评论