ARMv8-AArch64简述

本文简述了ARMv8架构的重要变革,特别是引入了64位的AArch64执行模式,以及与32位AArch32的兼容性。AArch64拥有新的A64指令集,支持64位地址和SIMD/FPU功能,并优化了异常处理和MMU支持。此外,它通过异常切换在AArch32和AArch64间进行模式转换,允许不同权限级别的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ARMv8是ARM版本升级以来最大的一次改变,ARMv8的架构继承以往ARMv7与之前处理器技术的基础,除了现有的16/32bit的Thumb2指令支持外,也向前兼容现有的A32(ARM 32bit)指令集,扩充了基于64bit的AArch64架构,除了新增A64(ARM 64bit)指令集外,也扩充了现有的A32(ARM 32bit)和T32(Thumb2 32bit)指令集;

这里写图片描述

ARMv8拥有两种执行模式(two execution modes):
AArch64 :64-bit registers and memory accesses, new instruction set;
AArch32 : backwards compatible with ARMv7-A;



(一)A64新的指令和寄存器


  1. 固定大小32位操作码,清除基于5位寄存器说明符的解码表;
  2. 可以拥有32位或者64位参数;
  3. 地址设定为64位,主要针对LP64和LLP64数据模型;
  4. 比AArch32拥有更少的条件指令,条件指令有:分支,比较,选择;
  5. 没有LDM/STM(用于批量从内存中读取或者写入数据)指令,添加LDP/STP指令来操作以降低复杂性及功耗;
  6. 支持先进的SIMD(Single-Instruction,Multiple-Data:单指令多数据)和(FP浮点);
  7. 支持加密技术;
  8. 可随时访问31个通用的64位寄存器 (X0-X30),没有banked(banked是指一个寄存器不同模式下会对应不同的物理地址)的通用寄存器,堆栈指针(SP),PC不是通用寄存器,附加专用的零寄存器(Xzr);
  9. AArch32状态是使用CPSR来存储当前process执行状态,AArch64定义了一组PSTATE寄存器用以保存PE(Processing Element)状态;

AArch64 – Unbanked Registers:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值