0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Arm架构是如何开发的

Arm社区 来源:Arm社区 2023-11-23 16:31 次阅读

作者:Arm 架构与技术部产品管理总监 Martin Weidmann

随着人工智能 (AI) 的兴起和安全威胁的加剧,计算需求不断提高。全球各种设备所依赖的基础计算架构也必须持续向前推进。为此,我们的工程团队不断地在应用广泛的 Arm 架构中加入新的功能和技术,同时我们的软件团队也在努力让软件能够顺利地适配这些未来的功能和技术。

Arm 架构是如何开发的

Arm 每年都会发布 Arm 指令集架构 (ISA) 的更新,这些更新是通过与 Arm 生态系统中的各类合作伙伴合作参与创建的。该流程涉及芯片合作伙伴、操作系统供应商、OEM 厂商,以及 Arm 内部的工程团队和多家标准组织。

经过精心设计的 ISA 可确保软件在未来数年内持续兼容新旧硬件。Arm 与 Linaro 等众多合作伙伴紧密协作,让诸如 Linux 内核和发行版等广泛使用的软件上游社区能支持 Arm ISA,以便建立庞大的开发者生态系统。

每年九月,我们都会发表一篇技术博客,分享该年度对 A-Profile 架构所作的一些重要增添。同时,我们也会在 Arm 开发者网站上发布完整的指令集和系统寄存器文档[1]。

完整的 Arm 架构参考手册[2] (Arm Architecture Reference Manual, Arm ARM) 也会每年更新一次。预计 2024 年初会发布包含 2023 年扩展内容的更新版。“学习架构 (Learn the Architecture)”[3]页面同样会在 2023 年和 2024 年更新。

技术博客和文档的发布只是部署新架构的一小步。接下来我们还要同生态合作伙伴一起努力,确保一旦硬件准备就绪,开源软件就能即刻支持新的架构功能。

2023 年,Arm 推出新特性以加强对人工智能 (AI)、机器学习 (ML) 和安全性的支持。Arm 架构的首要任务之一是让安全的 AI 无处不在,而神经网络 (NN) 的训练是 AI 不断进步和发展的关键。因此,2023 年的架构扩展增加了已在神经网络中广泛使用的新八位浮点格式,名为 FP8。为了提高安全性,我们还增加了“经检查的指令运算 (Checked Pointer Arithmetic)”功能,该功能基于 Arm 内存标记扩展 (MTE)[4] 的现有支持而打造,可以帮助开发者快速发现内存安全违规,节省应用开发的成本和时间。

以下为今年新增的功能:

FP8

2022 年,Arm、Intel 和 Nvidia 宣布针对 FP8 展开合作。FP8 是一种交换格式,可以让软件生态系统轻松共享神经网络模型,并让 AI 计算能力不断提高。作为 2023 年扩展的一部分,SME2、SVE2 和 Advanced SIMD (Neon) 增加了对 FP8 的支持。

FP8 支持两种数据格式:E5M2 和 E4M3。这两种格式在精度和范围上有不同的取舍。

aa8b2f5a-7855-11ee-939d-92fbcf53809c.png

使用哪种格式由 FPMR 寄存器中的字段选择。对于一条指令的不同输入,可以选择不同的格式,从而有效地处理各种格式的数据集。我们坚信,围绕八位浮点格式的行业共创将带来一系列好处,同时可使开发者专注于真正重要的创新和差异化。我们非常高兴看到 FP8 将推动未来 AI 的发展。

热迁移

热迁移是指将虚拟机 (VM) 从一台主机移动到另一台主机上,而不影响其可用性和状态。能够高效地进行热迁移对于大规模数据中心管理而言非常重要。

为了实现热迁移,虚拟机管理程序要在 VM 仍在旧主机上运行时,就把它所占用的页面复制到新主机上。这个过程通常要反复进行几次,因为 VM 可能会修改已经复制的页面。解决这个问题有不同的方法,但都要面对三项挑战:

记录:记录 VM 修改过(污染过)的页面。

调查:根据记录判断哪些页面需要重新复制。

清理:每次迭代时重置记录机制。

2023 年的扩展增加了几项功能,可以帮助优化上述的三项挑战。

FEAT_HDBSS 让我们可以记录日志,记录 Stage 2 已被污染的页面或块。该机制解决了“记录”成本问题,因为内存管理单元 (MMU) 可以在不中断 VM 执行的情况下高效创建日志。日志也解决了“调查”成本问题,因为生成的数据是虚拟机管理程序可以有效使用的格式。

aad8ab18-7855-11ee-939d-92fbcf53809c.png

为了解决“清理”成本问题,FEAT_HACDBS 增加了一个加速器来清理 Stage 2 转换表中的污染状态。引擎利用污染页面日志来定位需要更新的 Stage 2 转换表描述符。

这些功能结合起来可以大幅提高热迁移的性能和效率。

经检查的指令运算

AArch64 支持多项功能,这些功能让我们可以重新利用保存地址的寄存器高位。例如,Armv8.0-A 中引入的标记指针 (Tagged Pointer) 和 Armv8.5-A 中引入的 MTE。

软件经常需要操作指针,比如给一个基地址加上一个偏移量。这通常是用加法或减法等常规算术运算来完成的。如果地址计算出现溢出,就可能会破坏寄存器中非地址位的信息。例如,如果使用 MTE,地址操作则可能会改变指针中存储的标记。损坏的标记可能会导致处理器无法检测到内存安全违规,如下所示:

aadcd8be-7855-11ee-939d-92fbcf53809c.png

2023 年的扩展引入了专门用于指针操作的新指令。这些指令包含多种针对指针的检查,包括检查 bits[63:56] 是否被修改并防止溢出。使用 寻址模式的内存加载和存储指令也可以配置为保留 bits[63:56]。

以前面的 MTE 为例,新功能让处理器能够检测指针的前八位是否已被修改。这意味着,如果 MTE 标记损坏,则会向软件发出报告。

其他功能

其他新引入的增强功能包括:

当生成或检查指针验证 (PAC) 码时,支持组合使用程序计数器 (Program Counter, PC) 和当前选择的堆栈指针 (Stack Pointer, SP) 作为修饰符。

支持启用了机密领域管理扩展 (RME)[5] 的设计,可以在 Granule Protection Tables 中支持 non-secure only,也可以禁用某些物理地址空间 (PAS)。

EL3 配置写入陷阱。

断点支持地址范围和 mismatch 触发,而无需链接。

支持将 SError 从 EL3 高效委派给 EL2 或 EL1 处理。

在接下来的几个月,Arm 将与合作伙伴一起努力,确保软件生态系统能够在未来处理器上市后尽快利用发挥这些功能的优势。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ARM
    ARM
    +关注

    关注

    134

    文章

    8653

    浏览量

    361855
  • AI
    AI
    +关注

    关注

    87

    文章

    26472

    浏览量

    264106
  • 人工智能
    +关注

    关注

    1776

    文章

    43899

    浏览量

    230646
  • ARM架构
    +关注

    关注

    14

    文章

    167

    浏览量

    35992

原文标题:Arm A-Profile 架构 2023 扩展

文章出处:【微信号:Arm社区,微信公众号:Arm社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    x86与arm架构区别主板还是cpu

    开发的一种32位和64位计算机处理器架构,广泛应用于个人计算机和服务器领域。ARM架构则是英国公司ARM Holdings
    的头像 发表于 12-21 17:08 830次阅读

    Arm架构学习—开启Armv9时代

    在上一篇文章“从A76到A78——在变化中学习Arm架构”中,我们了解了Arm处理器微架构的基本组成,介绍了Armv8架构最后几代经典处理
    的头像 发表于 11-27 16:46 615次阅读
    <b class='flag-5'>Arm</b>微<b class='flag-5'>架构</b>学习—开启Armv9时代

    AMD计划生产基于Arm架构的CPU

    英伟达已经开始设计基于 Arm 架构的 CPU。该处理器将运行微软 Windows 操作系统。此外,AMD 也计划生产基于 Arm 架构的 CPU。
    的头像 发表于 10-27 10:53 681次阅读

    X86架构ARM架构的主要区别

    X86和ARM是两种主要的CPU架构,X86架构的CPU是PC服务器行业的老大,而ARM架构的CPU则是移动端的老大。它们在设计理念、性能、
    的头像 发表于 09-22 08:23 4212次阅读
    X86<b class='flag-5'>架构</b>与<b class='flag-5'>ARM</b><b class='flag-5'>架构</b>的主要区别

    升腾910和英伟达A100的区别

    ,用于进行深度学习和人工智能。 升腾910和英伟达A100在处理器架构、技术能力和应用场景方面有很大的区别。本文将介绍这些差异并将其与您的用例联系起来,以便更好地了解哪种处理器最适合您的工作需求。 1. 处理器架构 升腾910是华为公司基于
    的头像 发表于 08-31 17:06 4.5w次阅读

    从电源架构迁移到ARM的应用说明

    本文档的目的是强调那些参与将软件应用程序从Power架构迁移到ARM平台的人员感兴趣的领域。 本文并不试图将一种体系结构提升到另一种体系结构之上,只是为了清楚地解释将现有软件应用程序从一种体系结构
    发表于 08-22 06:09

    m3芯片相当于英特尔什么水平?

    m3芯片相当于英特尔什么水平? M3芯片是一种用于移动设备的处理器芯片,由ARM架构开发,可以用于智能手机、平板电脑和其他移动设备。它最初是由华为公司自主设计并制造的,后来被其他厂商采用。那么,M3
    的头像 发表于 08-16 11:33 6695次阅读

    rk3566和rk3588的区别

    不同,因此两者的功能也略有不同。本文将详细介绍RK3566和RK3588的异同之处,并分析它们在不同应用场景下的优劣势。 一、处理器架构 RK3566处理器基于ARM架构开发,采用
    的头像 发表于 08-15 17:44 7465次阅读

    ARM体系结构参考手册

    ARM体系结构已经发展到支持跨多种性能点实施的程度。 超过20亿个部件的出货量,使其成为许多细分市场的主导架构ARM处理器的架构简单性传统上导致了非常小的实现,而小实现允许设备具有
    发表于 08-11 07:10

    Arm架构的扩展详解

    Arm架构的补充以版本增量的形式提供,称为扩展。扩展允许我们根据合作伙伴的需求定期发布新功能,而无需制作主要架构的主要变化。 Arm每年都会发布一个新的扩展。Cortex cpu,它
    发表于 08-02 06:08

    米尔ARM+FPGA架构开发板PCIE2SCREEN示例分析与测试

    本次测试内容为基于ARM+FPGA架构的米尔MYD-JX8MMA7开发板其ARM端的测试例程pcie2screen并介绍一下FPGA端程序的修改。
    的头像 发表于 07-08 14:38 441次阅读
    米尔<b class='flag-5'>ARM</b>+FPGA<b class='flag-5'>架构</b><b class='flag-5'>开发</b>板PCIE2SCREEN示例分析与测试

    米尔ARM+FPGA架构开发板PCIE2SCREEN示例分析与测试

    本次测试内容为基于ARM+FPGA架构的米尔MYD-JX8MMA7开发板其ARM端的测试例程
    的头像 发表于 07-07 14:15 452次阅读
    米尔<b class='flag-5'>ARM</b>+FPGA<b class='flag-5'>架构</b><b class='flag-5'>开发</b>板PCIE2SCREEN示例分析与测试

    两大架构RISC-V 和 ARM 的各种关系

    一、RISC-V 和 ARM 的相似之处 RISC-V 和 ARM 基本上都是 RISC(精简指令集计算机)。RISC-V 和 ARM 都使用加载-存储架构。意思是数据从内存中加载,在
    发表于 06-21 20:31

    X86架构Arm架构的区别

    X86架构ARM架构是主流的两种CPU架构,X86架构的CPU是PC服务器行业的老大,ARM
    的头像 发表于 06-16 12:50 7750次阅读
    X86<b class='flag-5'>架构</b>与<b class='flag-5'>Arm</b><b class='flag-5'>架构</b>的区别

    Arm架构下的Synchronization概述和案例分析

    随着近年来Arm服务器的应用越来越广泛,越来越多的云厂商开始提供基于Arm架构的云实例,越来越多的开发人员正在为Arm平台编写软件。
    的头像 发表于 05-11 14:45 633次阅读
    <b class='flag-5'>Arm</b><b class='flag-5'>架构</b>下的Synchronization概述和案例分析