[core]-ARMV7-A、ARMV8-A、ARMV9-A 架构简介「建议收藏」

Armv9-AarchitectureArmv9-A架构建立在Armv8-A架构的基础上并向前兼容。Armv9-A架构构成了Arm基础系统架构的基础——该规范概述了一种标准,可确保硬件和固件在系统级的广泛应用中具有兼容性。Armv9-A架构引入了一些主要的新特性:SVE2:extendingthebenefitofscalablevectorstomanymoreusecasesRealmManagementExtension(RME):extend

大家好,又见面了,我是你们的朋友全栈君。

引流关键词: optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表…

快速链接:
.
??? 个人博客笔记导读目录(全部) ???

Armv9-A architecture

Armv9-A 架构建立在 Armv8-A 架构的基础上并向前兼容。 Armv9-A 架构构成了 Arm 基础系统架构的基础——该规范概述了一种标准,可确保硬件和固件在系统级的广泛应用中具有兼容性。

Armv9-A 架构引入了一些主要的新特性:

  • SVE2: extending the benefit of scalable vectors to many more use cases
  • Realm Management Extension (RME): extending Confidential Compute on Arm platforms to all developers. Read more about Confidential Compute and Arm architecture security features
  • BRBE: providing profiling information, such as Auto FDO
  • Embedded Trace Extension (ETE) and Trace Buffer Extension (TRBE): enhanced trace capabilities for Armv9
  • TME: hardware transactional memory support for the Arm architecture

Armv8-A architecture

Armv8-A 架构引入了使用 64 位和 32 位执行状态的能力,分别称为 AArch64 和 AArch32。 AArch64 执行状态支持 A64 指令集。 它在 64 位寄存器中保存地址,并允许基本指令集中的指令使用 64 位寄存器进行处理。 AArch32 执行状态是一个 32 位执行状态,它保留了与 Armv7-A 架构的向前兼容性,增强了该配置文件,使其可以支持 AArch64 状态中包含的某些功能。 它支持 T32 和 A32 指令集。

Armv8-A 架构允许不同级别的 AArch64 和 AArch32 支持,例如:

  • AArch64 only designs
  • AArch64 designs that also support AArch32 operating systems and virtual machines
  • AArch64 support with AArch32 at (unprivileged) application level only

Armv7-A architecture

Armv7-A 架构引入了架构配置文件的概念,这个概念在 Armv8-A 和 Armv9-A 中得到延续。 Armv7-A架构:

  • 以多种模式实现传统的Arm架构
  • 支持基于内存管理单元 (MMU) 的虚拟内存系统架构 (VMSA)
  • 支持 Arm (A32) 和 Thumb (T32) 指令集

该架构还支持多种扩展:

  • Security Extensions
  • Multiprocessing Extensions
  • Large Physical Address Extension
  • Virtualization Extensions
  • Generic Timer Extension
  • Performance Monitors Extension

所有这些扩展都是可选的,它们提供的大部分功能都包含在 Armv8-A 架构中。


Armv9-A特性总结

Arm Application-profile (A-profile) 架构面向高性能市场,例如 PC、移动、游戏和企业。 A-profile 架构的最新版本是 Armv9-A 和 Armv8-A。 Armv9-A和Armv8-A的特性对比请看下表:

Feature Architecture
versions
Description
AArch64 Armv8.0-A
Armv9.0-A
AArch64 是 Arm 架构的 64 位执行环境。包括:
(1)、 大物理和虚拟地址空间
(2)、 64 位寄存器
(3)、 高性能的自旋锁
(4)、 高效的缓存管理
(5)、 为 C++11、C11、Java 内存模型设计的 Load-Acquire、Store-Release 指令。
(6)、 Arm 架构的 64 位执行环境。
AArch32 Armv8.0-A
Armv9.0-A(EL0 only)
Arm 架构的 32 位执行环境。 提供与 Armv7-A 及更早版本的兼容性。
Virtualization Armv8.0-A
Armv9.0-A
支持hypervisors 和virtualization
TrustZone Armv8.0-A
Armv9.0-A
TrustZone 通过内置于 CPU 中的硬件强制隔离提供了一种高效的、系统范围的安全方法。
Realm Management Extension (RME) Armv9.0-A Realm Management Extension (RME) 建立在 TrustZone 之上,具有以下功能:
(1)、两个额外的安全状态
(2)、两个额外的物理地址空间
(3)、在安全状态之间动态移动资源的能力
这些功能支持 Arm 机密计算架构 (Arm CCA) 和动态 TrustZone。
Hardware-accelerated cryptography Armv8.0-A
Armv9.0-A
ARM cryptography extension
Neon Armv8.0-A
Armv9.0-A
Neon 技术是一种打包的 SIMD 架构。 Neon 寄存器被视为相同数据类型元素的向量,Neon 指令同时对多个元素进行操作。 该技术支持多种数据类型,包括浮点和整数运算。
Virtualization Host Extension (VHE) Armv8.1-A
Armv9.0-A
这些增强功能通过减少在host os和guest os之间转换时相关的软件开销来提高 Type 2 hypervisors的性能。 这些扩展允许host os在 EL2 上执行,而不是在 EL1 上执行,而无需进行大量修改。
Privilege Access Never (PAN) Armv8.1-A
Armv9.0-A
PAN 允许内核阻止访问非特权位置,从而提供更高的健壮性。
Statistical Profiling Extension (SPE) Armv8.2-A
Armv9.0-A
在指令或微操作的基础上设置采样标准,然后定期采样。 然后,每个样本将与该样本关联的上下文收集到一个分析记录中,在任何给定时间只编译一个记录。 当在长时间运行大型工作负载的系统上连续采样时,分析大型工作样本集可以提供对软件执行及其相关性能的深入了解。
Scalable Vector Extensions (SVE) Armv8.2-A SVE 为具有可变矢量长度的 SIMD 提供支持。 SVE 支持向量长度不可知的编码风格,其中代码不需要重新编写或重新编译,因为它动态地适应实现的向量长度。 SVE 架构允许实现向量长度高达 2048 位,其中向量长度必须是 128 位的倍数。 SVE 还支持为固定向量长度编写的代码。
Pointer authentication Armv8.3-A
Armv9.0-A
计算机攻击正变得越来越复杂。 这方面的示例是利用机制,例如在Return-Orientated Programming(ROP) 和Jump-Orientated Programming(JOP) 中使用gadgets 。 为了缓解此类漏洞,Armv8.3-A 引入了一项功能,可在将寄存器的内容用作间接分支或数据引用的地址之前对其进行身份验证。 对于地址验证,该功能使用 64 位地址值中的高位,通常与地址空间的签名扩展相关联。 这允许在值的高位中引入Pointer Authentication Code (PAC) 作为新字段。
Nested Virtualization Armv8.3-A
Armv9.0-A
人们对云计算越来越感兴趣,尤其是对日益普遍的用例感兴趣,即用户从基础设施即服务 (IaaS) 提供商处租用虚拟机。 嵌套虚拟化是一个有吸引力的提议,其中打算在此虚拟机上运行的工作负载包括使用管理程序。
Memory Tagging Extension (MTE) Armv8.5-A
Armv9.0-A
Memory tagging extension(MTE)使开发人员能够识别他们程序中的内存安全违规。
Branch Target Identification (BTI) Armv8.5-A
Armv9.0-A
BTI 允许软件识别跳转分支的有效目标。 BTI 补充了对指针身份验证的支持,提供了针对 JOP 技术的防御。
GEneral Matrix Multiply (GEMM) Armv8.6-A
Armv9.0-A
添加新的高级 SIMD (Neon) 和 SVE 指令以加速矩阵运算,大大减少所需的内存访问次数。
BFloat16 Armv8.6-A
Armv9.0-A
支持 BFloat16 数据类型的高级 SIMD (Neon) 和 SVE。 BF16 最近成为一种专门为神经网络的高性能处理量身定制的格式。
High precision timers Armv8.6-A
Armv9.0-A
通用定时器频率增加到 1GHz 的新标准。
64-byte load and stores Armv8.7-A
Armv9.0-A
企业系统的一个增长趋势是引入可以使用 64 字节原子加载或存储访问的加速器。 这些用于向队列添加项目,并且在某些情况下可以表示入队操作的成功或失败。
Scalable Vector Extension v2 (SVE2) Armv9.0-A SVE2 是 Armv8-A SVE 的超集,具有扩展的功能。 SVE2 指令集增加了全面的定点算术支持。
Transactional Memory Extension (TME) Armv9.0-A 事务内存扩展为 Arm 架构带来了硬件事务内存 (HTM) 支持。 事务内存用于解决编写高并发、多线程程序的困难,通过减少由于锁争用导致的序列化,粗粒度、线程级并行的数量可以随着 CPU 的数量更好地扩展。
Branch Record Buffer Extensions (BRBE) Armv9.2-A
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/128733.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • sftp特定端口连接「建议收藏」

    sftp特定端口连接「建议收藏」默认走22端口如果需要修改端口号sftp-oPort=55288root@192.168.0.254使用-o选项来指定端口号.-oPort=远程端口号

    2022年9月14日
    3
  • resnet讲解_resnet50网络结构详解

    resnet讲解_resnet50网络结构详解1、 RestNet网络1.1、 RestNet网络结构ResNet在2015年被提出,在ImageNet比赛classification任务上获得第一名,因为它“简单与实用”并存,之后很多方法都建立在ResNet50或者ResNet101的基础上完成的,检测,分割,识别等领域里得到广泛的应用。它使用了一种连接方式叫做“shortcutconnection”,顾名思义,shortcut就是“…

    2022年10月7日
    2
  • FindWindowEX的实例

    FindWindowEX的实例 FindWindowEX的实例  [日期:2004-12-24]  [来自:本站原创]函数功能:该函数获得一个窗口的句柄,该窗口的类名和窗口名与给定的字符串相匹配。这个函数查找子窗口,从排在给定的子窗口后面的下一个子窗口开始。在查找时不区分大小写。   函数原型:HWNDFindWindowEx(HWNDhwndParent,HWNDhwndChildAfter,LPCT

    2022年5月29日
    28
  • executorservice线程池建立_线程池 threadlocal

    executorservice线程池建立_线程池 threadlocalExecutorService建立多线程的步骤:1。定义线程类classHandlerimplementsRunnable{}2。建立ExecutorService线程池ExecutorServiceexecutorService=Executors.newCachedThreadPool();或者intc

    2025年10月23日
    2
  • RouterOS(ROS)设置动态域名(DDNS)「建议收藏」

    RouterOS(ROS)设置动态域名(DDNS)「建议收藏」使用DDNS把动态IP地址映射到一个固定的域名解析服务上,用户每次连接网络的时候客户端程序通过信息传递把该主机的动态IP地址传送给服务器程序,服务项目程序提供DNS服务并实现动态域名解析。添加一个Scheduler,system->Scheduler::globalddnsiptemp[/ipaddresget[/ipaddressfindinterface=…

    2022年5月9日
    246
  • jsp填写图片的路径的两种方式

    jsp填写图片的路径的两种方式

    2021年7月18日
    60

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号