• 正文
  • 相关推荐
申请入驻 产业图谱

Arm的RAS机制

06/23 08:02
207
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

一、前言

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子类型、溢出标志等

ERRADDR(错误地址寄存器,只读)

记录故障发生的物理地址,辅助定位故障位置与影响范围

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特性),释放记录槽位;

恢复:根据故障等级恢复业务运行,或上报运维系统。

Arm

Arm

ARM公司是一家知识产权(IP)供应商,主要为国际上其他的电子公司提供高性能RISC处理器、外设和系统芯片技术授权。目前,ARM公司的处理器内核已经成为便携通讯、手持计算设备、多媒体数字消费品等方案的RISC标准。公司1990年11月由Acorn、Apple和VLSI合并而成。

ARM公司是一家知识产权(IP)供应商,主要为国际上其他的电子公司提供高性能RISC处理器、外设和系统芯片技术授权。目前,ARM公司的处理器内核已经成为便携通讯、手持计算设备、多媒体数字消费品等方案的RISC标准。公司1990年11月由Acorn、Apple和VLSI合并而成。收起

查看更多

相关推荐

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录