3. 故障与容错基本术语

在星载计算机的容错设计中,术语的精确性直接决定了需求描述、测试用例和故障判据是否一致。工程上最常见的混乱,是把“故障”“错误”“失效”当成同义词使用,结果导致测试记录里写“单粒子翻转导致系统失效”,而实际上系统只是发生了可纠正的数据错误,并未丧失规定功能。本节围绕这组核心术语,建立一条从“原因”到“表现”再到“后果”的因果链,并给出单粒子效应、永久故障、瞬态故障和容错覆盖率在验证工作中的具体含义与量化方式。

故障、错误、失效:一条因果链上的三个层次

按IEEE与航天工程惯例,三者定义如下:

  • 故障(Fault):系统内部潜在的、可能引发错误的缺陷或异常状态。它是“原因”,例如某存储单元被高能粒子击中后电荷状态改变、某焊点存在虚焊、某寄存器缺少三模冗余保护。
  • 错误(Error):故障在系统状态或数据上的具体表现,是“现象”。例如某位由0变为1、某变量取值越界、某校验和不匹配。错误不一定立即影响对外功能。
  • 失效(Failure):系统或部件无法完成规定功能,是“后果”。例如姿态控制输出错误导致卫星失稳、遥测数据持续错误。

这条链的关键在于:故障可能潜伏,错误可能被屏蔽,只有失效才是对外可观测的功能丧失。容错设计的目标,就是在故障演化为失效之前,通过冗余、校验、恢复等手段把错误检测出来并纠正或隔离。验证工作则要分别构造“故障注入”“错误观测”“失效判定”三类判据,不能混为一谈。

记忆要点:故障是“病根”,错误是“症状”,失效是“功能丧失”。一个故障可以引发多个错误,一个错误也可能被容错机制屏蔽而不产生失效。

单粒子效应:星载环境中最典型的瞬态故障源

单粒子效应(SEE)是空间高能粒子(质子、重离子等)穿过半导体器件时,在敏感节点沉积电荷,导致器件状态异常的一类现象。它与永久故障的最大区别是:器件本身没有物理损坏,异常状态可通过复位、重写或纠错恢复。常见类型包括:

  • SEU(单粒子翻转):存储单元或触发器逻辑状态翻转,是最常见的软错误。
  • SET(单粒子瞬态):组合逻辑中产生窄脉冲,可能被下游时序单元捕获而变成SEU。
  • SEFI(单粒子功能中断):器件控制逻辑被打乱,需复位才能恢复。
  • SEL(单粒子锁定):CMOS结构形成可控硅通路,电流骤增,必须断电重启,处理不当会转为永久故障。

在验证中,单粒子效应通常用截面(cross-section,单位cm²/bit或cm²/device)和错误率(如bit-flip率,单位upsets/bit/day)来量化。例如某SRAM器件在轨翻转率约为1×10⁻⁷ upsets/bit/day,若某关键寄存器组有4096 bit且无保护,则平均每天约4.1×10⁻⁴次翻转,即约6.7年一次;若采用SEC-DED纠错,则需两级翻转才可能产生不可纠正错误,等效MTBF显著延长。这些数值属于示例性估算,实际应以器件手册和在轨数据为准。

永久故障与瞬态故障:按持续时间分类

按故障持续时间,可分为永久故障、瞬态故障和间歇故障:

类型持续时间典型来源验证关注点
永久故障持续存在,不可自恢复器件击穿、焊点开裂、辐照累积损伤冗余切换、降级运行、故障隔离
瞬态故障短暂,可自恢复或经复位恢复SEU、SET、电源毛刺检错纠错、重试、刷新
间歇故障反复出现,时有时无接触不良、参数漂移、温度敏感边界测试、老化筛选、趋势监控

永久故障的验证重点是“故障后系统是否仍能完成规定功能”,例如双机热备中主机永久失效后备机能否在限定时间内接管;瞬态故障的验证重点是“错误是否被及时检测并纠正,且不产生累积效应”。两者在故障注入方式上完全不同:永久故障常用强制置位、断开信号或修改配置模拟;瞬态故障常用单粒子模拟、脉冲注入或位翻转注入。

容错覆盖率:把“容错能力”变成可测量的指标

容错覆盖率(Fault Tolerance Coverage)是衡量容错机制有效性的核心指标,定义为:在给定故障集合中,被容错机制成功检测、纠正或屏蔽,且未导致系统失效的故障比例。其基本计算式为:

容错覆盖率 = (被成功处理的故障数 / 注入故障总数) × 100%

其中“成功处理”需同时满足:
1) 故障被检测到(或虽未检测但被屏蔽);
2) 系统未发生规定功能失效;
3) 处理时间在允许的恢复窗口内。

例如,对某星载计算机的EDAC模块注入1000个单比特翻转故障,其中960个被纠正、30个被检测并触发重试后恢复、10个导致不可纠正错误但被系统降级处理未失效,则容错覆盖率为100%;若其中5个导致输出错误数据且未被发现,则覆盖率为99.5%。工程上通常要求关键功能容错覆盖率达到99%以上,并区分“检测覆盖率”和“恢复覆盖率”分别统计。

需要特别注意的是,覆盖率必须与故障模型绑定。同一套容错机制,对单比特翻转覆盖率可能很高,但对多比特翻转或永久故障覆盖率可能很低。因此验证报告中必须写明:在何种故障模型、何种注入位置、何种工作模式下,覆盖率是多少,否则数字没有意义。

故障—错误—失效因果链与容错处理路径 故障 Fault 原因:缺陷/异常状态 SEU、虚焊、击穿 错误 Error 现象:数据/状态异常 位翻转、校验和不匹配 失效 Failure 后果:功能丧失 姿态失控、遥测中断 容错屏障:检测 / 纠正 / 屏蔽 / 隔离 EDAC、TMR、看门狗、重试、降级 拦截 成功容错 错误被纠正/屏蔽 系统功能正常 容错失败 错误未被处理 演化为失效 容错覆盖率 = 成功处理故障数 / 注入故障总数 × 100% 成功处理 = 检测到 + 纠正/屏蔽 + 未失效 + 在恢复窗口内 原因 潜伏 容错 介入 结果

把上述术语串起来看:一个高能粒子击中SRAM某位,造成单粒子翻转(瞬态故障);该位属于关键遥测参数,产生数据错误;若EDAC未覆盖该位且系统未检测到,错误数据被发送,导致地面误判,构成失效。验证时,我们注入该位翻转,观察EDAC是否纠正、系统是否在恢复窗口内恢复正常,并据此统计容错覆盖率。只有把故障模型、错误观测点和失效判据三者对齐,容错验证的结论才可信。