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

一文看懂CPU的RAS上报机制

2025/07/21
6289
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

1. RAS基本介绍

RAS的全称是Reliability、Availability、Serviceability,也就是可靠性、可用性和可维护性。具体定义如下:

Reliability(可靠性):系统在给定的时间 内产生正确输出的概率,系统可以通过规避、检测、修复等手段增强其可靠性。可靠性可以用平均故障间隔时间(MTBF,Mean Time between Failures)来描述,指系统在两次相邻故障间内正确工作的平均时间,也称平均无故障工作时间。

Availability(可用性):系统在给定时间内可运行的概率,即设备实际运行的时间占其应该运行的总时间的百分比。高可用性的系统可以用每年停机时间的分钟或小时数来明确其可用性。可用性通常是以系统预期可用时间的百分比给出的。

Serviceability(可维护性):是指系统可以被修理或维护的简单性和速度。可维护性一般要求软件能提供一些错误信息和通知手段,并尽可能提供各类预警信息,避免系统宕机,尽早发现并修复错误。

2. RAS的类型

RAS涉及的硬件包括CPU core、总线、Memory、IO、PCIe、硬盘和其他外设等。

RAS的硬件错误一般分为CE(correctable error)、UE(uncorrectable error)、Fatal Error、Non-fatal Error、DE(deferred error)等。

以PCIe为例,PCIe错误通常分为两种:可校正的错误(CE)和不可校正的错误(UE)。UE又分为致命的(Fatal)和非致命的(Non-fatal)。Correctable Error可以自动地被硬件识别并被自动的校正或恢复。Uncorrectable error发生后,影响设备功能,硬件不能自动恢复。

3. RAS上报机制

RAS的处理机制一般包括三个阶段:错误检测,错误上报和错误处理。

RAS的通知方式有多种:包括interrupt、Exception、Poll、NMI、SEA、SDEI、GPIO等方式。

此外,RAS的上报模式通常有两种:内核优先和固件优先。也可以支持混合使用这两种模式。

内核优先(kernel first):硬件错误上报给操作系统OS,OS软件来处理硬件错误。优点是可以多核处理,并且快速分配给对应驱动做处理。缺点是错误收集只能在带内做,不能报给带外。

固件优先(firmware first):硬件错误统一先上报到Firmware,Firmware先进行处理,然后可以再上报给OS或者带外。优点是可以带外处理,缺点是有些错误在固件处理不了,需要再报给OS,增加了上报的路径;还有就是固件不支持多任务,只能一个核来处理。

RAS上报的基本流程如上图所示。CPU或PCIe设备等发生错误后,通过硬件RAS能力触发中断或异常,然后通知到Firmware或者OS。软件收到错误上报后进行相应的处理。

firmware first模式的处理流程如下图所示。

硬件检测到RAS错误。

Firmware通过中断接收到RAS错误事件。

RAS错误事件转发到MM驱动。

MM驱动从故障记录寄存器中读取RAS故障并生成CPER(Common Platform Error Record)故障记录,返回EL3。

EL3通过SDEI接口通知OS。

OS读CPER并处理RAS故障。

其中,SDEI全称是Software Delegated Exception Interface,即软件委托异常接口。典型的应用场景是利用APEI( ACPI Platform Error Interface)用作firmware first的RAS故障处理的通知机制。SDEI是在ACPI 6.2版本引入的一种新的通知机制(firmware to OS),可以不受中断屏蔽的影响。

参考:

RAS(一)介绍https://blog.csdn.net/jingr1/article/details/126216896

相关推荐