问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

armv8/armv9的简介-学习这一篇就够了

创作时间:
作者:
@小白创作中心

armv8/armv9的简介-学习这一篇就够了

引用
1
来源
1.
https://www.bilibili.com/read/cv33263110/

ARM架构是当今最主流的处理器架构之一,每年有数十亿基于ARM的设备产生。从智能手机到服务器,ARM架构的身影无处不在。本文将带你深入了解ARM架构的基础知识、版本演进以及主要特性,帮助你全面掌握这一重要技术。

第一部分 简介

1、Overview

Arm架构为处理器或核心的设计提供了基础,通常我们可以将处理器或核心称为处理元素(PE)。Arm架构用于一系列技术,集成到系统级芯片(SoC)设备中,例如智能手机、微型计算机、嵌入式设备,甚至服务器。该架构为软件开发人员公开了通用指令集和工作流程,也称为程序员模型。这有助于确保架构不同实现之间的互操作性,以便软件可以在不同的Arm设备上运行。

2、About the Arm architecture

Arm架构是当今比较主流的一类处理器架构,每年有着数十亿级的基于ARM的设备产生。ARM架构又分为3类:A、R、M

这三类允许Arm架构根据不同用例的需求进行定制,同时仍然共享一些基本功能。注:Arm Cortex是用于Arm处理器IP产品的品牌名称。Arm的合作伙伴提供使用Arm架构的其他处理器品牌。

3、架构(architecture)到底是什么意思呢

当我们使用术语架构时,我们指的是功能规范。在Arm架构的情况下,我们指的是处理器的功能规范。架构指定处理器的行为方式,例如它有什么指令以及指令做什么。
您可以将架构视为硬件和软件之间的规则。该架构描述了软件可以依赖硬件提供哪些功能。一些功能是可选的,我们将在稍后的微架构部分讨论。
架构可能会规定:

4、Architecture and micro-architecture

架构(Architecture)不会告诉您处理器是如何构建和工作的。处理器的构建和设计被称为微架构。微架构(micro-architecture)告诉你处理器是如何工作的。
微架构(Micro-architecture)包含:

  • Pipeline length and layout.
  • Number and sizes of caches.
  • Cycle counts for individual instructions.
  • Which optional features are implemented
    例如,Cortex-A53和Cortex-A72都是Armv8-A架构的实现。这意味着它们具有相同的架构,但它们具有非常不同的微架构,如下图所示:

5、Arm architecture的版本

Arm架构是最著名的Arm规范,但它并不是唯一的规范。Arm对构成现代片上系统(SoC)的许多组件具有类似的规范。下图提供了一些示例:

  • Generic Interrupt Controller
  • System Memory Management Unit (SMMU or IOMMU)
  • Generic Timer
  • Server Base System Architecture and Trusted Base System Architecture
  • Advanced Microcontroller Bus Architecture(AMBA)

6、Arm documentation的定义

  • Arm Architecture Reference Manual (Arm ARMs) - 架构类的文档,一般就看这个
  • Arm Cortex processor has a Technical Reference Manual (TRM) - arm core的文档,基本不用看
  • Arm Cortex processor also has a Configuration or Integration Manual (CIM) - 可能是给ASIC看的
    例如你要学习 Cortex-A75 processor,可以去查看以下文档:

7、ARM timeline

(注:以下的time都是自己整理,不一定都正确)

第二部分 armv7/armv8/armv9 架构部分的特性总结

1、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

2、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

3、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架构中。

4、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
AArch32
Armv8.0-A
Armv9.0-A (EL0 only)
Virtualization
Armv8.0-A
Armv9.0-A
TrustZone
Armv8.0-A
Armv9.0-A
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
Neon
Armv8.0-A
Armv9.0-A
Virtualization Host Extension (VHE)
Armv8.1-A
Armv9.0-A
Privilege Access Never (PAN)
Armv8.1-A
Armv9.0-A
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
Nested Virtualization
Armv8.3-A
Armv9.0-A
Memory Tagging Extension (MTE)
Armv8.5-A
Armv9.0-A
Branch Target Identification (BTI)
Armv8.5-A
Armv9.0-A
GEneral Matrix Multiply (GEMM)
Armv8.6-A
Armv9.0-A
BFloat16
Armv8.6-A
Armv9.0-A
High precision timers
Armv8.6-A
Armv9.0-A
64-byte load and stores
Armv8.7-A
Armv9.0-A
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

第三部分 arm core的介绍和总结

TODO

第四部分 ARM 指令集介绍

1、怎样去学习ARM?

  • ➀ 学习指令集
  • ➁ 学习架构
  • ➂ 学习arm core
  • ➃ 学习arm IP
  • ➄ 学习SOC手册
  • ➅ 学习规范,包括FF-A规范
  • ➆➇➈ 根据自己的需求,学习相关软件或OS

2、armv8汇编学习-书籍推荐

学个鸡腿学,其实不用看这样的书。点击此处看这个链接就可以了
ARM Assembly Language, 2nd Edition
ARM 64-Bit Assembly Language

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号