ARM architecture
PE(processing element):采取ARM架构的处理器
RISC(reduced instruction set computer):精简指令集
- 架构:
AArch64:64位架构,地址和指令都是64位寄存器
- 提供31个64位通用寄存器,X30用作过程链接寄存器
- 提供1个64位程序计数器PC(program counter),栈指针SPs(stack pointers),异常链接寄存器ELRs(exception link registers)
- 提供32个128位寄存器以支持SIMD(single instruction multiple data)和大规模浮点运算
- 提供单一指令集A64
- 定义ARMv8异常模型,最多四个异常等级EL0-EL3,提供执行权限层次结构
- 支持64位虚拟地址
- 定义许多保持PE状态的进程状态PSTATE(process state)。A64指令集包括直接操作各种PSTATE的指令
- 每个系统寄存器的后缀表示可以访问该寄存器的最低异常级别。
AArch32:32位架构,地址和指令都是32位寄存器
- 提供13个32位通用寄存器和一个32位PC、SP和LR寄存器。LR既用作ELR,又用作过程链接寄存器
- 提供单个ELR,用于从Hyp模式返回异常
- 提供32个64位寄存器以支持SIMD和大规模浮点运算
- 提供两个指令集A32,T32
- 支持基于PE模式的Armv7-A 异常模型,并将其映射到基于EL0-EL3的Armv8异常模型
- 支持32位虚拟地址
- 定义许多保持PE状态的进程状态(PSTATE)。A32和T32指令集包括直接操作各种PSTATE的指令,以及通过使用应用程序状态寄存器APSR(application program status register)或当前程序状态寄存器CPSR(current program status register)访问PSTATE的指令
- 分类:
A(application):支持VMSA(virtual memory system architecture)基于MMU(memory management unit),支持A64,A32,T32指令集。常见的手机芯片就是A系列。
R(real-time):支持PMSA(protected memory system architecture)基于MPU(memory protection unit),支持A32,T32指令集。
M(microcontroller):支持PMSA的变体,支持T32指令集。常说的单片机一般是M系列。
GIC(generic interrupt controller)
VAs(virtual addresses)
PAs(physical addresses)
浮点数存储的格式(0.12+0.88==1?)
ARMv8新增了crypto指令集