ARM处理器RAS规范
发表于 2025/06/30
0
作者:徐妙杰,崔玉杰
1 基础知识
1.1 RAS基本概念及相关指标
RAS是衡量一个系统可靠性的三个方面:
• Realiability:可靠性,产品在规定的条件下和规定的时间内完成规定功能的能力。
• FIT(Failure in Time):每billion小时发生的失败次数。
• MTBF(Mean Time Between Failure):平均故障间隔时间,亦称平均寿命。
• Availability:可用性,系统能够在给定的时间内确保可以运行的能力,即使系统出现一些小的问题也不会影响整个系统的正常运行,在某些情况下甚至可以进行Hot Plug的操作,替换有问题的组件,从而严格确保系统的宕机时间在一定范围内。
• 可用度:A=MTBF/(MTBF+MTTR),其中MTTR(Mean Time To Recover)指平均故障修复时间,衡量系统实际运行时间的百分比。
例如:平均故障间隔时间MTBF =100000小时,平均故障修复时间MTTR=1小时,可用度为1000/(1000+0.5)=99.999%.
• 宕机时间(Down Time):DT=(1-A)*8760*60,意为一年之中产品业务或功能中断的分钟数。
• Serviceability:可服务性,指系统能够进行修改与修复的能力。
• 系统应当能够提供便利的诊断功能,如系统日志、动态检测等手段,方便管理人员进行系统诊断和维护操作,从而及早发现和修复错误,是支撑可维修性(Maintainability)达成的重要手段。
可维修性可用2个参数量化评估:1)MTTR;2)修复率:m=1/MTTR.
1.2 RAS技术的意义
随着信息化技术的广泛应用,大型的数据中心、网络中心,如股票证券交易所,电信机房,银行的数据库中心等应用环境对IT的依赖程度日益加深。针对上述情况,如何确保整个系统尽可能长期可靠的正常运行而不下线,并且具备足够强大的容错机制,已经变得越来越重要,RAS机制已成为不可或缺的一部分。
对于关键业务服务器来说,其核心要求就是系统具备提供不中断的持续服务的能力,其原因就在于在不同的应用中,服务器宕机导致业务中断带来的损失不完全相同,业务越关键,宕机所带来的损失越大。随着IT影响的不断快速深入,企业对IT系统的依赖程度日益加深,宕机成本正在变得越来越高。
RAS技术的意义是减少计划外的系统中断,原因包括:
• 瞬时错误可在引发应用或系统故障之前被检测并纠正;
• 可以识别并替换正在失效的组件;
• 可以提前预测故障,从而在计划维护期间进行更换。
1.3 如何实现RAS
下层负责故障检测、故障纠正&抑制、故障记录&报告,上层负责实现故障收集、故障分析、故障处理&恢复。
1.4 RAS框架设计需遵循ARM RAS规范
ARM RAS规范对RAS的实现做了详细定义,涵盖错误分类、错误记录、错误上报和异常处理。
规范链接:https://developer.arm.com/documentation/ddi0587/dd
RAS错误分类
当前鲲鹏各模块采用的错误分类方式有两种:
• 一种是符合ARM设计规范的模块,按照ARM错误分类的规范进行错误分类。分为CE、DE、UC、UEU、UEO、UER,是根据数据错误对处理器运行影响程度来划分的。
• 另一种是华为自研模块,按照自定义方式进行错误分类,分为CE、Non-fatal和Fatal.
以下对于ARM错误分类规范展开解释:
• 可纠正错误(CE,Corrected)
该错误被检测到且被纠正,不再影响当前节点的状态,也不会被悄悄地传递到后续环节,当前节点继续正常操作。
• 可延迟错误(DE,Deferred)
该错误被检测到且未被纠正,并延迟到一个从节点(或从设备),它也不再影响当前节点的状态,也不会被悄悄地传递到后续环节。它也许会在延迟错误的消费节点潜伏,但当前节点继续正常操作。
• 不可纠正错误(UE,Uncorrected)
该错误被检测到且未被纠正或延迟,错误在系统中潜伏,又可划分为以下类型:
• 潜伏错误或可继续执行错误(UEO,Latent/Restartable)
对于生产型节点(产生数据的节点),它是潜伏错误,没有被传递,检测到并未被消费;对于消费型节点(使用数据的节点),它是Restartable错误,没有被悄悄地传递,当前节点由于要消费该错误暂停了正常操作,继续执行操作并不依赖被污染的数据从而在未修复该错误的情况下仍然可以进行。
• 带标记错误或可恢复错误(UER,Signaled/Recoverable)
对于生产型节点,通常它并不知道消费者是否已经消费了一个错误, 所以除了它非常明确地知道没有被传递给其他消费者而标记为潜伏错误外,其他的情形都标记为带标记错误(UER),该错误没有被悄悄地传递,但是可能被消费了;对于消费型节点,可恢复错误(UER)也没有被悄悄地传递,当前节点会暂停操作,继续执行依赖被污染的数据,软件可以定位并修复该错误,暂停的操作可以继续。
• 不可恢复错误(UEU,Unrecoverable)
该错误没有被悄悄地传递,但是当前节点(无论生产型还是消费型)都无法从暂停状态退出而继续执行操作。
• 不可遏制错误(UC,Uncontainable)
该错误可能被悄悄地传递,如果该错误不能被隔离,系统必须关机才能避免更加严重的失效。