1. Cortex-A720AE错误记录寄存器架构解析
在Arm Cortex-A720AE处理器中,错误记录寄存器组构成了RAS(可靠性、可用性、可服务性)架构的核心硬件机制。这套寄存器系统采用分层设计,主要包含三类功能单元:
-
状态寄存器(如ERR0STATUS):记录错误类型和严重程度,包含关键状态位:
- CE[1:0]:纠正错误类型(00=无错误,01=瞬时错误,10=非特定错误,11=持续错误)
- DE:延迟错误标志
- OF:计数器溢出标志
- MV/AV:杂项/地址有效性标志
-
地址寄存器(ERR0ADDR):采用64位物理地址存储,关键字段包括:
- NS位(bit63):安全状态标识(0=安全空间,1=非安全空间)
- PADDR[47:0]:物理地址位,覆盖48位地址空间
- 保留位[62:48]:为未来地址扩展预留
-
杂项寄存器组(ERR0MISC0-3):提供错误精确定位信息,典型应用场景包括:
- L1/L2缓存错误定位(WAY/BANK/INDEX字段)
- ECC错误位定位(SBE_BITPOS字段)
- 错误计数器(CECR/CECO)
关键设计原则:当检测到错误时,硬件自动锁存错误信息到对应寄存器,同时置位状态寄存器中的有效标志。这种机制确保即使在连续发生多个错误的情况下,第一个错误的关键信息也不会被覆盖。
2. ERR0ADDR地址寄存器深度剖析
2.1 寄存器物理布局
ERR0ADDR采用64位宽设计,其位域分配如下:
code复制63 62-48 47-40 39-0
┌─────┬────────────┬────────────┬──────────────────────┐
│ NS │ RES0 │ PADDR_47_40│ PADDR[39:0] │
└─────┴────────────┴────────────┴──────────────────────┘
2.2 关键字段详解
NS(Non-Secure)位:
- 作用:标识错误发生的安全域
- 硬件行为:当检测到内存访问错误时,自动捕获当前安全状态
- 典型应用场景:
- 安全监控软件可通过该位判断错误是否发生在安全世界
- 调试时快速区分安全/非安全世界的错误源
物理地址字段:
- PADDR_47_40[47:40]:物理地址高位扩展
- PADDR[39:0]:标准物理地址位
- 地址捕获规则:
- 对缓存错误,记录触发错误的缓存行地址
- 对总线错误,记录故障访问的目标地址
- 对ECC错误,记录出错数据的存储地址
2.3 访问控制逻辑
ERR0ADDR的访问权限动态变化,其状态机如下:
plaintext复制 +-----------------------+
| Common Fault Injection|
| Extension Implemented?|
+-----------+-----------+
