一、前言
Arm RAS(Reliability, Availability, and Serviceability)是一套面向服务器、车规、工业等高可靠场景的标准化硬件可靠性架构,为全 SoC 的硬件故障检测、上报、处置、诊断定义了统一的软硬件接口与行为规范,核心目标是从硬件架构层面保障系统的可靠性、服务连续性与可维护性。
二、核心目标与适用范围
三大核心定义目标
可靠性(Reliability):通过硬件内置纠错机制(ECC、奇偶校验、冗余逻辑)容忍瞬时硬件故障,降低功能失效概率;
可用性(Availability):分级故障响应机制,支持在线修复、局部隔离,最小化系统停机时间;
可服务性(Serviceability):标准化错误日志与诊断接口,支持故障溯源、器件老化预警与预测性维护。
架构适用范围
覆盖 Arm 全架构场景,统一定义处理器内核(PE)、缓存、TLB、片上互联、内存控制器、高速外设等所有 SoC 组件的 RAS 接口,打破不同芯片厂商的定制化差异,让通用操作系统、固件、诊断工具可以统一适配。
三、RAS Error的分类
RAS规范严格界定了故障从发生到失效的三层逻辑:
Fault(故障):硬件物理层面的原生异常事件(如 SRAM 单比特翻转、总线电气干扰、器件永久损坏),它是错误的根源,按持续特性分为瞬态故障、间歇故障、永久故障三类。
Error(错误):Fault 被硬件检测逻辑捕获后,产生的可观测状态与结构化记录,是 Fault 的表现形式,具备明确的类型、地址与严重等级。
Failure(失效):Error 未被及时处置并持续扩散,最终导致系统功能无法正常交付服务,是故障恶化的最终结果。
根据error是否发生静默扩散(Silenty propagated)、系统全局架构状态是否可信,可以将detected error划分为Contained Error (CI)和Uncontained error (UC)。
Uncontained error (UC) 不可隔离错误
错误可能已发生静默传播,无法确认污染范围,系统全局架构状态不可信,是最严重的等级。
Contained Error (CI) 隔离错误
错误被硬件逻辑隔离在局部模块内,不会扩散到其他 IP,系统主体可继续运行, 硬件自动隔离故障区域。
Contained Error可以继续分为:
Correctable Error (CE) 可纠正错误:硬件可自动修复(如 ECC 单比特纠错),无数据损坏、不影响指令流执行;自动纠错,仅记录状态,不中断业务;
Deferred Error (DE) 延迟错误:不可纠正,但通过数据Poison标记被限制在存储单元内;未被读取时不会进入执行流,无静默扩散,属于潜伏可控状态;标记poison状态,暂不阻塞运行;
Uncorrectable Error (UE) 不可纠正错误:硬件无法修复,存在数据损坏风险;触发紧急异常或最高优先级中断。通过 UET(UE Type)再细分 3 个子等级:
Unrecoverable error (UEU):错误未发生静默传播,但已造成局部硬件 / 状态不可逆损坏,软件无法通过常规手段恢复功能,必须执行模块级 / 核心级复位;
Recoverable error (UER):故障范围严格局限在单条指令 / 单个进程上下文内;软件可通过重建上下文、重启进程、刷新缓存完成修复,不污染全局系统状态;
Restartable/Latent error (UEO):存储介质数据已损坏,但尚未被 CPU / 外设访问消费,错误处于潜伏状态;提前处置可无损恢复,无全局污染;
要注意Uncorrectable和Unrecoverable的区别:
Uncorrectable Error(UE):描述的是硬件层面的纠错能力—— 硬件修不了,就是不可纠正。它不关心软件能不能恢复、会不会扩散,只是一个基础属性判定。
Unrecoverable Error(UEU):描述的是软件层面的恢复能力—— 不仅硬件修不了,软件也没法通过上下文重建、进程重启等方式挽回,必须靠硬件复位才能解决。它是 UE 的子集,严重程度更高
四、RAS Error的上报
当支持error上报的RAS节点(node)检测到error时,需要将error信息记录在Error Record registers中,并生成一个RAS interrupt。Error Record registers是RAS机制的核心基石,所有RAS节点(内核、缓存、外设等)都必须遵循统一的寄存器布局,实现软硬件接口标准化。
Error Record registers有:
ERRDEVID(设备识别寄存器,只读)
标识节点硬件类型、厂商、版本、安全域属性,用于软件快速定位故障所属模块
ERRFRn(特性寄存器,只读)
声明节点支持的错误类型、地址记录能力、中断能力、错误记录深度等硬件能力,软件初始化时读取以适配功能边界
ERRCTRLn(控制寄存器,读写)
错误行为总开关,可配置错误检测使能、中断路由、同步异常使能、错误溢出覆盖策略等
ERRSTATUSn(状态寄存器,W1C写 1 清零)
错误日志核心载体,记录错误有效位、错误类型(CE/DE/CI/UE)、UET子类型、溢出标志等
记录故障发生的物理地址,辅助定位故障位置与影响范围
ERRMISCn(附加信息寄存器)
存放厂商自定义的故障辅助诊断信息
ERRGSRn(全局状态寄存器,只读)
汇总多个错误记录单元的有效状态,支持软件快速批量巡检,无需逐个遍历节点
LAR(锁寄存器)
CoreSight标准写保护机制,写入密钥 0xC5ACCE55 才可改写配置寄存器,防止误操作
RFSR(RAS 故障状态寄存器)
Armv8.1-M为嵌入式轻量化场景设计的简化顶层寄存器,挂载在内核SCB 模块下
全芯片RAS 故障总状态汇总——只要任意一个RAS 错误记录单元存在未清除的有效错误,RFSR对应标志位就会置位
RAS Error的上报形式有两大类:
同步错误路径
bus error in response
即时响应、精准关联故障指令,对应 “PE 访存触发总线错误”场景
异步错误路径
error recovery interrupt
对应CE级错误,硬件已自动修复,仅用于统计与老化预警
fault handling interrupt
对应DE/CI级错误,需软件介入执行隔离、重试、刷新等操作
critical error interrupt
对应UE级不可控错误,最高优先级,需软件紧急保存现场、执行复位或功能降级
RAS 节点会按层级分布式部署,形成全 SoC 覆盖:
PE 级节点:处理器内核内部,覆盖 L1 缓存、TLB、寄存器文件、执行单元的故障检测;
系统级节点:片上互联、L2/L3 缓存、内存控制器、高速接口(PCIe、CCI)等 SoC 组件;
全局汇总单元:汇总全芯片错误状态,产生全局 RAS 中断,作为系统级故障入口。
五、Error处理流程
RAS定义了通用的故障处置流程,所有符合规范的硬件均遵循该流程:
检测:硬件ECC、奇偶校验、冗余逻辑实时检测物理Fault;
记录:硬件自动填充错误记录寄存器、置位有效位,全程不依赖软件干预;
上报:根据ERRCTLR 配置,触发同步异常或对应等级的异步中断;
处置:软件读取错误记录,按等级执行对应操作:
清除:软件向ERRSTATUS 对应位写1 清零(W1C特性),释放记录槽位;
恢复:根据故障等级恢复业务运行,或上报运维系统。
207
