[core]-ARMV7-A、ARMV8-A、ARMV9-A 架构简介

267 篇文章 378 订阅

引流关键词: 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的特性对比请看下表:

FeatureArchitecture
versions
Description
AArch64Armv8.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 位执行环境。
AArch32Armv8.0-A
Armv9.0-A(EL0 only)
Arm 架构的 32 位执行环境。 提供与 Armv7-A 及更早版本的兼容性。
VirtualizationArmv8.0-A
Armv9.0-A
支持hypervisors 和virtualization
TrustZoneArmv8.0-A
Armv9.0-A
TrustZone 通过内置于 CPU 中的硬件强制隔离提供了一种高效的、系统范围的安全方法。
Realm Management Extension (RME)Armv9.0-ARealm Management Extension (RME) 建立在 TrustZone 之上,具有以下功能:
(1)、两个额外的安全状态
(2)、两个额外的物理地址空间
(3)、在安全状态之间动态移动资源的能力
这些功能支持 Arm 机密计算架构 (Arm CCA) 和动态 TrustZone。
Hardware-accelerated cryptographyArmv8.0-A
Armv9.0-A
ARM cryptography extension
NeonArmv8.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-ASVE 为具有可变矢量长度的 SIMD 提供支持。 SVE 支持向量长度不可知的编码风格,其中代码不需要重新编写或重新编译,因为它动态地适应实现的向量长度。 SVE 架构允许实现向量长度高达 2048 位,其中向量长度必须是 128 位的倍数。 SVE 还支持为固定向量长度编写的代码。
Pointer authenticationArmv8.3-A
Armv9.0-A
计算机攻击正变得越来越复杂。 这方面的示例是利用机制,例如在Return-Orientated Programming(ROP) 和Jump-Orientated Programming(JOP) 中使用gadgets 。 为了缓解此类漏洞,Armv8.3-A 引入了一项功能,可在将寄存器的内容用作间接分支或数据引用的地址之前对其进行身份验证。 对于地址验证,该功能使用 64 位地址值中的高位,通常与地址空间的签名扩展相关联。 这允许在值的高位中引入Pointer Authentication Code (PAC) 作为新字段。
Nested VirtualizationArmv8.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 指令以加速矩阵运算,大大减少所需的内存访问次数。
BFloat16Armv8.6-A
Armv9.0-A
支持 BFloat16 数据类型的高级 SIMD (Neon) 和 SVE。 BF16 最近成为一种专门为神经网络的高性能处理量身定制的格式。
High precision timersArmv8.6-A
Armv9.0-A
通用定时器频率增加到 1GHz 的新标准。
64-byte load and storesArmv8.7-A
Armv9.0-A
企业系统的一个增长趋势是引入可以使用 64 字节原子加载或存储访问的加速器。 这些用于向队列添加项目,并且在某些情况下可以表示入队操作的成功或失败。
Scalable Vector Extension v2 (SVE2)Armv9.0-ASVE2 是 Armv8-A SVE 的超集,具有扩展的功能。 SVE2 指令集增加了全面的定点算术支持。
Transactional Memory Extension (TME)Armv9.0-A事务内存扩展为 Arm 架构带来了硬件事务内存 (HTM) 支持。 事务内存用于解决编写高并发、多线程程序的困难,通过减少由于锁争用导致的序列化,粗粒度、线程级并行的数量可以随着 CPU 的数量更好地扩展。
Branch Record Buffer Extensions (BRBE)Armv9.2-A

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
# 学习对象在全民造车、造芯的大时代,在努力去解决卡脖子的时代,ASIC硬件、SOC底层软件、Linux Kernel等操作系统软件(内核/驱动)、软硬件方面的系统架构师等的岗位需求也越来越明显,社会一直都是非常缺人的,缺的是核心的那一小撮、领头的那一小撮,社会所缺的更是能够软硬件融合的那一小撮人……总之,要想在这个时代,站稳自己的脚跟,能够在大公司或行业上拥有一席之地,就必需深入学习底层技术原理,核心技术才是您的看家本领。本课程设计之初,主要针对SOC底层软件开发的者、系统开发者,或者励志成为这样的人。既适合资深/高级工程师来查缺补漏,又适合初级工程师入门。(理论上该课程和ASIC硬件电路设计无关,该课程偏软件,但事实购买该课程的做ASIC的同学已然超过了15%)适用人群1、芯片开发者(包括底层软件、或做ASIC硬件的)。不限行业,例如车、云、物联网、移动端等领域;2、汽车行业开发者(主机厂、tier1、SOC厂家、各级供应商);3、嵌入式开发者、kernel开发者、驱动、软件工程师;4、学生。既适合学生从入门到精通,也适合资深工程师查缺补漏;您的收益:1、全体系的掌握ARMv8/ARMv9的核心知识点(ARM基础、异常中断GIC、MMU/Cache、architecture...);2、掌握ARM架构、掌握SOC架构、掌握常规IP(gic、smmu、timer、AXI/ACE/CHI、TZC400...);3、快速熟悉常规系统软件(bootrom、spl、ATF、TEE、bootloader、kernel...), Secureboot安全启动...4、技术水平提升N个level, 掌握快速的学习方法;# 学习什么在ARM蓬勃发展的年代,不仅仅涉及到物联网IOT、移动领域(如手机)、汽车电子领域,现在还涉及到PC、服务器的,简直就是各行各业。ARMv8出来已经有10年了,ARMv9也2年时间了。在技术不断更新迭代的背景下,此时再去学习十五年前的ARMv7、二十年前的ARMv5/v6显然不是明智的选择。本课程主要基于当前最新的架构ARMv8的aarch64和ARMv9,如涉及具体的ARM Core IP主要还是以最新的ARM Core IP为主,软件架构也是以当前最主流的/未来所趋势的架构来讲解。以下也给大家列举初了一个ARM产品的timeline的总结(在本课程中有着大量的这种总结),从这张图中,您是可以清晰的看到本课程拥有独具一格的风格、拥有全网最新(且唯一)的资料总结或学习路线。# 本课程大纲和规划(课程持续更新中,课程总量统计:2022/10/02  当前是 61节课, 22小时)第一章:主要是快速学习: ARM简介、指令集、寄存器总结等。第二章:本系列视频的一大亮点,系统全面地讲解了arm异常中断gic等相关的软硬件知识,本人一直在倡导“学arm安全其实就是学arm架构,学arm架构其实就是学习arm的异常和中断”,异常中断是领着你进入架构的入门,是让你变成系统软硬件架构师的必走之路。第三章:安全专题,这也是本视频最核心的东西。因为你无论买书还是看博客等,你都很难找到讲解安全的教程,这里就是有和无的区别。本人系统的整理的安全的知识,带领你快速入门。第四章:mmu专题,透过事务看本质的讲解,白话式的演讲。在所有模块中,mmu也算是相对较简单模块。相信人人听得懂,人人学得会。第五章:cache专题,一切追求实事求是,不人云亦云,一切知识点都有迹可循,推翻了网络的很多观念。在众多模块中,cache算是一个比较难的模块。了解了cache后,才能算真正了解系统的软硬件架构。第六章:虚拟化,本人不擅长,会啥就随便讲点啥。(以后学会了再来补)第七章:architecture,就是零散和零碎的系统架构知识,如exclusive、arch timer、reset、系统启动、SOC设计、AMBA/AXI/ACE、DSU、WFE/WFI这样的。第八章: 新增的ARMv9 CCA/RME安全架构专题第九章:主要放置一些直播课。# 课程收益1、知道我学习什么,我要怎么去学习,从此之后有了一个明确的学习路线。2、认识一些共同目标的人,相互讨论问题,共同进步。勤学、共学、助学。3、ARM不再神秘,SOC不在神秘,让您短期内就能cover住全局4、熟悉ARM Architecture架构知识5、熟悉SOC架构知识6、熟悉主流的系统软件框架7、熟悉各项硬件原理和机制,如异常中断、MMU、cache、TLB、VMSA、Trustzone6、深入了解当前的系统架构、软硬件架构,能够看懂这些大家,将来也能够自己设计。7、熟悉系统的启动流程、Secureboot等8、熟悉各类标准和规范9、能够进入芯片厂商干活、能够在非芯片产生成为技术担当。10、学习资料的获取方法,会看11500多页的ARM手册,会看数以百计的ARM各项参考手册。 本课程会持续更新。也希望通过本课程的学习,能够让大家的ARMv8/ARMv9开发技术能有质的飞越,能找到自己心仪的工作。在购买之前,也建议大家看一看第一章第一节的课程介绍。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Arm精选

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值