一文帮你梳理ARM基础概念

267 篇文章 367 订阅

在这里插入图片描述

(关注"Arm精选"公众号,备注进ARM交流讨论区。)

1、PE - processing element

ARM体系结构定义了抽象机器的行为,称为处理元素(processing element),通常缩写为PE。与ARM体系结构兼容的实现必须符合处理元素所描述的行为。

2、RISC架构

ARM架构是一个精简指令集计算机(RISC)架构,具有以下RISC架构特征:

  • 一个大的统一寄存器文件。
  • 一种加载/存储架构,其中数据处理操作只对寄存器内容进行操作,而不是直接对内存内容进行操作。
    简单的寻址模式,所有的加载/存储地址仅由寄存器内容和指令字段决定。

3、AArch64和AArch32概念

ARMv8体系结构的一个重要特性是向后兼容,并且可以在各种标准和更专门的用例中自由地进行优化实现。ARMv8架构支持:

  • A 64-bit Execution state, AArch64.
  • A 32-bit Execution state, AArch32, 这与以前版本的ARM架构兼容

通用名AArch64和AArch32描述64位和32位执行状态:

  • AArch64是64位执行状态,这意味着地址保存在64位寄存器中,基本指令集中的指令可以使用64位寄存器进行处理。AArch64状态支持A64指令集。
  • AArch32是32位执行状态,这意味着地址保存在32位寄存器中,基本指令集中的指令使用32位寄存器进行处理。AArch32状态支持T32和A32指令集。

4、ARM的A/R/M系列

ARM定义了三个架构概要:

  • A:Application架构,支持基于内存管理的虚拟内存系统体系结构(VMSA),支持A64、A32和T32指令集
  • R:Real-time架构,支持基于内存保护的受保护内存系统架构(PMSA),支持A32和T32指令集。
  • M:Microcontroller架构,支持T32指令集的变体

5、AArch64特点

AArch64,64位执行状态:

  • 提供31个64位通用寄存器,其中X30用作过程链接寄存器。
  • 提供64位程序计数器(PC)、堆栈指针(SPs)和异常链接寄存器(ELRs)。
  • 为SIMD向量和标量浮点支持提供32个128位寄存器。
  • 提供单个指令集A64
  • 定义了ARMv8异常模型,有四个异常级别,EL0 - EL3,提供了一个执行特权层次结构,
  • 提供对64位虚拟寻址的支持。
  • 定义许多包含PE状态的进程状态(PSTATE)元素。A64指令集包括直接操作各种PSTATE元素的指令
  • 使用表示可以访问寄存器的最低异常级别的后缀来命名每个系统寄存器。

6、AArch32特点

AArch32,32位执行状态:

  • 提供13个32位通用寄存器,以及一个32位PC、SP和link寄存器(LR)。LR同时用作ELR和过程链接寄存器。其中一些寄存器具有多个存储实例,用于不同的PE模式。
  • 为从Hyp模式返回的异常提供一个ELR。
  • 为高级SIMD向量和标量浮点支持提供32个64位寄存器。
  • 提供两个指令集,A32和T32。
  • 支持基于PE模式的ARMv7-A异常模型,并将其映射到基于异常级别的ARMv8异常模型。
  • 提供对32位虚拟寻址的支持。
  • 定义许多包含PE状态的进程状态(PSTATE)元素。A32和T32指令集包括直接操作各种PSTATE元素的指令,以及使用应用程序状态寄存器(APSR)或当前程序状态寄存器(CPSR)访问PSTATE的指令。

7、AArch32和AArch64的切换

在AArch64和AArch32执行状态之间转移控制称为互处理(interprocessing)。PE只能在异常级别发生变化时在执行状态之间移动,并且必须遵守文中给出的规则。这意味着不同的软件层,例如应用程序、操作系统内核和管理程序,在不同的异常级别执行,可以在不同的执行状态中执行。

8、A64/A32/T32

在ARMv8中,可能的指令集取决于执行状态:

  • AArch64状态只支持一个名为A64的指令集。这是一个使用32位指令编码的固定长度指令集。
  • AArch32状态支持以下指令集:
    A32,这是一个使用32位指令编码的固定长度指令集。
    T32,这是一个可变长度的指令集,同时使用16位和32位指令编码。在以前的文档中,这些指令集被称为ARM和Thumb指令集。ARMv8扩展了这些指令集。在AArch32状态中,指令集状态决定PE执行的指令集。

9、 System registers

系统寄存器提供了体系结构特性的控制和状态信息, The System registers 包含:

  • General system control registers.
  • Debug registers.
  • Generic Timer registers.
  • Optionally, Performance Monitor registers.
  • Optionally, the Activity Monitors registers.
  • 可选地,在其他ARM架构规范中定义的一组或多组寄存器:
    跟踪系统寄存器,如嵌入式跟踪宏单元体系结构规范中定义的,ETMv4。
    可伸缩向量扩展系统寄存器(Scalable Vector Extension System registers),定义在ARM®架构参考手册补充,可伸缩向量扩展(SVE),用于ARMv8-A。
    统计分析扩展系统寄存器,定义在ARM®架构参考手册的补充,统计分析的扩展,为ARMv8-A。
    通用中断控制器(GIC)系统寄存器,
  • RAS扩展系统寄存器,在ARM®可靠性(Reliability)、可用性(Availability)和可服务性(Serviceability)(RAS)中定义ARMv8规范,用于ARMv8- a架构配置文件。RAS扩展是对ARMv8.2体系结构的强制扩展,也是对ARMv8.0和ARMv8.1体系结构的可选扩展。

10、ARMv8 architecture extensions

ARMv8 architecture extensions

  • ARMv8加密扩展

  • 可靠性、可用性和可服务性(RAS)扩展

  • 事件监视器

  • IVIPT扩展

  • 基于PC示例的概要分析扩展。

  • 统计分析扩展(SPE) SPE是ARMv8.2的一个可选扩展。也就是说,SPE需要实现ARMv8.2。

  • 可伸缩向量扩展(SVE) SVE是ARMv8.2的可选扩展。也就是说,SVE需要实现ARMv8.2。

  • 活动监视器扩展(AMU) AMU是ARMv8.4的可选扩展。也就是说,AMU需要实施ARMv8.4。

  • 内存分区和监视扩展(MPAM) MPAM是ARMv8.2的一个可选扩展。也就是说,MPAM需要实现ARMv8.2。

11、ARM的crypto扩展

ARMv8加密扩展

  • 包括AESD和AESE指令的ARMv8.0-AES。
  • 包括SHA1和SHA256指令。

在这里插入图片描述


推荐

  • 22
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
无监督对比学习是一种用于训练深度神经网络的自监督学习方法,它在没有标签的大规模未标记数据上进行训练。该方法通过使模型学习将相似样本聚集在一起,将不相似样本分开来,从而学习到有用的特征表示。 以下是几种常见的无监督对比学习方法: 1. MoCo(Momentum Contrast):MoCo是一种基于对比学习的方法,它使用了动量更新策略来增强对比学习的性能。它通过构建一个动态的字典来扩展正样本的数量,并使用动量更新策略来提高特征的一致性。 2. SimCLR(Simple Contrastive Learning):SimCLR是一种简单而有效的对比学习方法,它通过最大化正样本间的相似性并最小化负样本间的相似性来进行训练。SimCLR使用了数据增强和大批量训练等技术来提高性能。 3. SwAV(Swapping Assignments between Views):SwAV是一种基于视图交换的对比学习方法,它通过交换不同视图下的样本分配来增强对比学习过程。SwAV还使用了聚类损失来进一步优化特征表示。 4. BYOL(Bootstrap Your Own Latent):BYOL是一种基于自举的对比学习方法,它通过预测一个网络的自我编码器输出来进行训练。BYOL使用了移动平均权重和在线网络更新等技术来提高性能。 5. SimSiam(Simplified Siamese):SimSiam是一种简化的孪生网络对比学习方法,它通过最大化网络预测的一致性来进行训练。相比于传统的对比学习方法,SimSiam省略了负样本的构造过程,简化了训练过程。 这些无监督对比学习方法在图像和自然语言处理等领域都取得了很好的效果,并且被广泛应用于预训练模型的训练中。每种方法都有其独特的特点和优势,可以根据具体任务和数据集选择适合的方法进行使用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

代码改变世界ctw

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

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

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

打赏作者

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

抵扣说明:

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

余额充值