1. Armv8-R AArch32架构概览
Armv8-R AArch32是Arm公司专为实时系统设计的处理器架构变体,属于Armv8架构的R(Real-time)系列。与通用计算导向的Armv8-A系列不同,Armv8-R系列在保持高性能的同时,通过精简设计确保确定性响应,特别适合汽车电子控制单元(ECU)、工业控制器等对时序有严格要求的场景。
1.1 架构定位与核心特性
Armv8-R AArch32作为Armv7-R架构的演进版本,主要强化了以下能力:
- 确定性执行:通过简化流水线设计和内存访问机制,确保最坏情况执行时间(WCET)可预测
- 硬件级隔离:采用PMSAv8-32(Protected Memory System Architecture)实现空间隔离
- 混合临界性支持:通过EL2异常级别实现不同安全等级任务的共存
- 精简虚拟化:为实时操作系统(RTOS)提供轻量级虚拟化支持
与Armv8-A系列相比,Armv8-R AArch32的主要差异体现在:
| 特性 | Armv8-A AArch32 | Armv8-R AArch32 |
|---|---|---|
| 内存管理 | MMU-based VMSA | MPU-based PMSAv8-32 |
| 异常级别 | EL0-EL3 | EL0-EL2 |
| 安全状态 | Secure/Non-secure | 仅Non-secure |
| 地址空间 | 40位物理地址 | 32位统一地址空间 |
| 最小保护粒度 | 4KB页面 | 64字节区域 |
| 虚拟化支持 | 完整虚拟化 | 精简虚拟化 |
1.2 执行状态与指令集支持
Armv8-R AArch32仅支持单一执行状态——AArch32状态,这与支持AArch64/AArch32双状态的Armv8-A不同。其指令集兼容性表现为:
- 基础指令集:完整支持A32(ARM)和T32(Thumb)指令集
- 浮点扩展:可选支持VFPv4浮点单元,包括:
- 单精度浮点运算(SP)
- 可选双精度浮点(DP)
- 支持D16配置(16个64位寄存器)
- SIMD扩展:可选支持NEON Advanced SIMD
- 虚拟化指令:新增HLT、DC
