ARM64基础0:ARM64架构简介

如题,一些ARM64通用的架构知识

1.ARMv8特色:

(1) 超大的物理地址空间(Large Physical Address),提供超过4GB物理内存的访问;
(2) 64位宽的虚拟地址空间(64-bit Virtual Addresing);
(3) 提供31个64位宽的通用寄存器,可以减少对栈的访问,从而提高性能;
(4) 提供16KB和64KB的页面,有助于降低TLB的未命中率(miss rate);
(5) 全新的异常处理模型,有助于降低操作系统和虚拟化的实现复杂度;
(6)全新的加载-获取,存储-释放指令(Load-Acquire, Store-Release Instructions)。专门为C++11,C11以及Java内存模型设计;

2 执行状态

AArch64: 64位的执行状态:

(1) 提供31个64位通用寄存器;
(2) 提供64位的程序计数器寄存器PC、栈指针寄存器SP以及异常链接寄存器;
(3) 提供A64指令集;
(4)定义ARMv8异常模型,支持4个异常等级,EL0~EL3;
(5)提供64位的内存模型;
(6)定义一组处理器状态(PSTATE)用来保存PE的状态;

AArch32: 32位的执行状态:

(1) 提供13个632位通用寄存器, 32位的程序计数寄存器PC、栈指针寄存器SP、链接寄存器;
(2) 提供A32,T32指令集;
(3)定义ARMv7异常模型,基于PE模式并映射到ARMv8的异常模型中;
(4)提供32位虚拟内存访问机制;
(5)定义一组处理器状态(PSTATE)用来保存PE的状态;

3. ARMv8包含的寄存器

3.1 ARMv8包含31个通用寄存器

AArch64运行状态支持31个通用寄存器X0~X30,AArch32状态支持16个32位通用寄存器;
X0~X30:通用寄存器;
SP: 栈指针寄存器;
PC:程序计数寄存器;

3.2 系统寄存器

系统寄存器提供控制和状态,在AArch64状态下,很多系统寄存器根据不同的异常等级提供不同的变种寄存器:
<reg_name>_ELx, x is 0,1,2, or 3
比如SP_EL0表示在EL0下的栈指针寄存器;

3.3 SIMD/FP寄存器:

支持128bit寄存器

3.4 特殊寄存器

XZE

4.数据类型

Byte: 8bit
Halfword: 16bit
Word: 32bit
Doubleworld: 64bit
Quadword: 128bit

5.异常模型

Exception Levels确定了处理器当前运行的特权级别,类似ARMv7架构中的特权等级
EL0: 用户特权,用于运行普通应用程序;
EL1: 系统特权,通常用于运行操作系统;
EL2: 运行虚拟化扩展的虚拟监控程序(Hypervisor);
EL3: 运行安全世界中的安全监控器(Secure Monitor);

异常级别应用场景安全世界
EL0APPSecure OS
EL1Guest OSsECURE OS
EL2HypervisorSecure Hypervisor
EL3Secure—>–>monitor

6.A64汇编指令介绍:

1.A64指令集只能运行在aarch64环境中;
2.所有的A64汇编指令都是32bit宽;
3.A64支持全部大写或小写书写方式;
4.寄存器命名,

NamesizeEncodingDescriptio
Wn32bits0~30General-purpose register0~30
Xn64bit0~30General-purpose register0~30
WZR32bits31Zero register
XZR64bit31Zero register
WSP32bits31Current stack pointer
SP64bit31Current stack pointer

7.A64指令分类

内存加载和存储指令:
多字节内存加载和存储:
算术和移位指令:
位操作指令:
条件操作:
跳转指令:
独占访存指令:
内存屏障指令:
异常处理指令:
系统寄存器访问指令:

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值