[缩略语大全]之[ARM CPU]篇

ARM CPU 寄存器体系与缩略语大全

ARM 处理器的寄存器体系是理解指令执行、异常处理、上下文切换以及用户态与内核态切换的基础。无论是在 Linux 内核、RTOS(如 Zephyr)、Bootloader,还是在裸机系统中,寄存器都是连接软件与硬件的关键接口。

本文以 ARMv7 与 ARMv8-A 架构为主,对 ARM CPU 寄存器进行系统梳理,并整理一份寄存器相关缩略语大全,便于工程实践查阅。


ARM 寄存器总体分类

ARM CPU 寄存器从功能角度可分为以下几类:

通用寄存器

程序状态寄存器

异常与模式相关寄存器

系统控制寄存器

协处理器与系统寄存器

调试与性能监控寄存器

浮点与 SIMD 寄存器


通用寄存器(General Purpose Registers)

ARMv7(AArch32)

ARMv7 架构提供 16 个可见通用寄存器:

|---------|----|---------|
| 寄存器 | 别名 | 说明 |
| R0--R12 | - | 通用寄存器 |
| R13 | SP | 栈指针 |
| R14 | LR | 返回地址寄存器 |
| R15 | PC | 程序计数器 |

在常见的 ABI 约定中:

R0--R3 用于函数参数和返回值

R4--R11 为被调用者保存寄存器

R12 用作过程内临时寄存器

SP、LR、PC 在异常和上下文切换中具有特殊意义


ARMv8-A(AArch64)

ARMv8-A 使用 64 位通用寄存器:

|---------|----------------|
| 寄存器 | 说明 |
| X0--X30 | 64 位通用寄存器 |
| W0--W30 | X 寄存器的低 32 位 |
| X31 | SP 或 ZR(依指令语义) |
| PC | 程序计数器 |

AAPCS64 调用约定中:

X0--X7 用于参数和返回值

X19--X28 为被调用者保存寄存器

X29 为帧指针

X30 为链接寄存器


程序状态寄存器

CPSR(ARMv7)

CPSR 保存当前处理器状态:

|----|----------|
| 位域 | 含义 |
| N | 负数标志 |
| Z | 零标志 |
| C | 进位标志 |
| V | 溢出标志 |
| I | IRQ 屏蔽 |
| F | FIQ 屏蔽 |
| T | Thumb 状态 |
| M | CPU 模式 |


SPSR

SPSR 用于在异常发生时保存 CPSR 的值。每种异常模式都有独立的 SPSR,用于异常返回时恢复处理器状态。


ARMv8 的 PSTATE

ARMv8 将 CPSR 拆分为多个独立的系统寄存器,例如:

|-----------|--------|
| 寄存器 | 作用 |
| NZCV | 条件码标志 |
| DAIF | 中断屏蔽位 |
| CurrentEL | 当前异常级 |
| SPSR_ELx | 异常返回状态 |


异常级与异常寄存器

ARMv8 定义了四个异常级:

|-----|--------|
| 异常级 | 用途 |
| EL0 | 用户态 |
| EL1 | 操作系统内核 |
| EL2 | 虚拟化管理器 |
| EL3 | 安全监控 |

每个异常级都有对应的关键寄存器,包括 SP_ELx、ELR_ELx 和 SPSR_ELx。


系统控制寄存器

SCTLR

SCTLR 控制处理器的核心行为:

|---|--------|
| 位 | 含义 |
| M | MMU 使能 |
| C | 数据缓存 |
| I | 指令缓存 |
| A | 对齐检查 |


地址转换相关寄存器

|-------|-----------|
| 寄存器 | 说明 |
| TTBR0 | 用户空间页表基址 |
| TTBR1 | 内核空间页表基址 |
| TCR | 地址转换与页表控制 |

这些寄存器是 MMU 与虚拟内存机制的核心。


协处理器与系统寄存器

在 ARMv7 中,系统寄存器通过 CP15 访问,例如系统控制、页表和异常向量配置等。

ARMv8 使用专用的系统寄存器和 MRS/MSR 指令进行访问,逻辑更清晰,也更利于虚拟化支持。


中断相关寄存器

在使用 GIC 的系统中,CPU 接口寄存器包括:

|------|-------|
| 寄存器 | 说明 |
| IAR | 中断确认 |
| EOIR | 中断结束 |
| PMR | 优先级屏蔽 |
| CTLR | 接口控制 |


浮点与 SIMD 寄存器

ARM 提供独立的浮点与向量寄存器体系:

|------------|-----------------|
| 类型 | 寄存器 |
| VFP | S0--S31,D0--D31 |
| NEON | Q0--Q15 |
| ARMv8 SIMD | V0--V31 |

配套寄存器还包括 FPSR 与 FPCR,用于控制和记录浮点运算状态。


调试与性能监控寄存器

ARM 提供丰富的调试与性能分析寄存器:

|-------|--------------|
| 模块 | 代表寄存器 |
| PMU | PMCR,PMCCNTR |
| Debug | BVR,BCR,WVR |

这些寄存器常用于性能分析、断点调试和系统追踪。


ARM CPU 寄存器缩略语大全

通用与状态相关

GPR:General Purpose Register

SP:Stack Pointer

LR:Link Register

PC:Program Counter

CPSR:Current Program Status Register

SPSR:Saved Program Status Register

PSTATE:Processor State

内存管理相关

MMU:Memory Management Unit

TTBR:Translation Table Base Register

TCR:Translation Control Register

ASID:Address Space Identifier

TLB:Translation Lookaside Buffer

异常与中断相关

EL:Exception Level

VBAR:Vector Base Address Register

GIC:Generic Interrupt Controller

EOI:End Of Interrupt

浮点与 SIMD

VFP:Vector Floating Point

NEON:Advanced SIMD

SVE:Scalable Vector Extension

FPSR:Floating-point Status Register

FPCR:Floating-point Control Register

调试与性能

PMU:Performance Monitor Unit

ETM:Embedded Trace Macrocell

DWT:Data Watchpoint and Trace

相关推荐
ArrebolJiuZhou17 小时前
00 arm开发环境的搭建
linux·arm开发·单片机·嵌入式硬件
迪三达20 小时前
智能体开发-2-MCP
arm开发
黑猫学长呀1 天前
【嵌入式系统科普】第2篇:什么是uboot/kernel/根文件系统/BootLoader/操作系统/bios/设备树
linux·arm开发·单片机·嵌入式硬件·arm
风之子npu1 天前
AXI 原子访问
arm开发·笔记·学习
番茄灭世神2 天前
使用VScode开发ARM核芯片通用配置
arm开发·vscode·mcu·cmake·clangd·llvm·ninja
ArrebolJiuZhou2 天前
arm指令集(一)
linux·运维·arm开发
切糕师学AI2 天前
ARM 汇编指令:UBFX
汇编·arm开发
ShiMetaPi2 天前
GM-3568JHF丨ARM+FPGA异构开发板系列教程:外设教程 07 音频
arm开发·fpga开发·音视频·fpga·rk3568
切糕师学AI2 天前
ARM 汇编指令:STP\LDP
汇编·arm开发