-
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新的指令和寄存器
-
固定大小32位操作码,清除基于5位寄存器说明符的解码表;
-
可以拥有32位或者64位参数;
-
地址设定为64位,主要针对LP64和LLP64数据模型;
-
比AArch32拥有更少的条件指令,条件指令有:分支,比较,选择;
-
没有LDM/STM(用于批量从内存中读取或者写入数据)指令,添加LDP/STP指令来操作以降低复杂性及功耗;
-
支持先进的SIMD(Single-Instruction,Multiple-Data:单指令多数据)和(FP浮点);
-
支持加密技术;
-
可随时访问31个通用的64位寄存器 (X0-X30),没有banked(banked是指一个寄存器不同模式下会对应不同的物理地址)的通用寄存器,堆栈指针(SP),PC不是通用寄存器