[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
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Linux之常用命令

    Linux之常用命令2.常用命令2.1命令格式的说明命令格式:命令\[-选项][参数]参数eg:ls-la/usr说明:大部分命令遵从该格式多个选项时,可以一起写eg:ls–l–als–la简化选项与完整选项(注:并非所有选项都可使用完整选项)eg:ls–allls–a帮助命令:(相当于命令说明书)2.2帮助命令2.2.1man英文:…

  • 2002-2007年最新免费空间

    2002-2007年最新免费空间赛腾网2006/11/06免费自助建站,150M存储空间,需要下载一个将近167M的软件来使用,但功能确实很强大,无广告。此免费空间的『演示』【推广】Fizwig2007/09/215G免费空间,每月10G流量,3个MySql数据库,ftp、web方式上传管理文件,有流量统计功能,可绑定域名(此服务未经测试),支持php,有广告。此免费空间的『演示』

  • linux中的sleep函数和delay函数

    linux中的sleep函数和delay函数对于做过单片机程序的朋友来说,delay是很常见的函数,通常就是while或者for循环,进行空指令的执行,由于单片机的晶振固定,一个机器周期的时间是固定的,执行多少个空指令,就可以完成多少个机器周期时长的延时。其实在linux中的delay函数,道理是一样的,都是通过cpu执行空指令来达到延时的目的,但是对于操作系统这种多线程进行的方式来说,在需要延时的时候,可以通过将进程挂起的方式来实现延时。这就是sleep函数。sleep和delay的区别最明显也最重要的区别就是,在执行delay的时候,是执行

  • python模拟键盘输入_python控制鼠标键盘

    python模拟键盘输入_python控制鼠标键盘win32api.keybd_event该函数原型:keybd_event(bVk,bScan,dwFlags,dwExtraInfo)第一个参数:虚拟键码(键盘键码对照表见附录);第二个参数:硬件扫描码,一般设置为0即可;第三个参数:函数操作的一个标志位,如果值为KEYEVENTF_EXTENDEDKEY则该键被按下,也可设置为0即可,如果值为KEYEVENTF_KEYUP则该按键被释放;…

    2022年10月11日
  • 普林斯顿结构和哈佛结构的区别_普林斯顿和清华哪个比较好

    普林斯顿结构和哈佛结构的区别_普林斯顿和清华哪个比较好普林斯顿结构      普林斯顿结构,也称冯·诺伊曼结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同,如英特尔公司的8086中央处理器的程序指令和数据都是16位宽。  目前使用冯·诺伊曼结构的中央处理器和微控制器有很多。除了上面提到的英特尔公司的8086,英特尔公司的其他中央处理

  • sql查询序列是否存在_oracle if判断是否为空

    sql查询序列是否存在_oracle if判断是否为空sql如下:selectsequence_namefromuser_sequenceswheresequence_name=’参数’需要注意的是oraclesequence参数必须转换成大写。例子:(这是使用simple框架实现)//判断oraclesequence是否已经存在publicstaticbooleanisSequenceExi…

    2022年10月10日

发表回复

您的电子邮箱地址不会被公开。

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