芯片功能安全:锁步共因与看门狗时基
两个处理核输出一致,并不证明结果一定正确;看门狗按时被喂,也不证明主时钟没有整体变慢。芯片功能安全需要分别削弱锁步通道的共同原因故障,并保证监督时基足够独立,才能形成真实诊断覆盖。
双核锁步让两个核执行相同指令并比较关键状态,随机单点硬件故障通常会造成分歧并被检测。但两核若共享电源、时钟、复位、编译器和输入数据,同一瞬态或系统性设计错误可能让它们以相同方式出错,比较器仍看到一致。锁步提高了差异检测能力,却不能自动覆盖共同原因。
延迟锁步让第二个核晚若干周期执行,可降低同一瞬态同时击中相同逻辑状态的概率,但电源跌落持续时间若长于延迟,两个通道仍会受影响。空间隔离、独立电源滤波和不同物理放置能进一步去相关,却增加布线、面积与时序成本。安全论证应按故障持续时间和耦合路径量化收益。
系统性故障需要不同手段。关键算法可用范围检查、控制流监控或异构计算结果交叉验证;比较器自身也要通过故障注入证明能够拉起安全反应。若两个核使用同一错误需求或同一工具缺陷,硬件复制无法发现。多样性不一定要求完全不同架构,但必须明确哪些共同资源仍是单点。
故障注入应覆盖核内寄存器、比较路径、共享缓存、电源和时钟,观察检测时间是否小于系统允许反应时间。只翻转两个核中的单个比特会高估覆盖率。还要验证比较不一致后输出是否被及时隔离,若错误控制量已经送到执行器,再晚到的告警无法恢复安全边界。
诊断覆盖率必须和故障反应时间一起统计。某个故障最终被软件测试发现,但检测晚于过程安全时间,不能计作有效覆盖;频繁误报又会降低可用性并诱发人工旁路。安全机制应记录首次异常、确认时刻和进入安全状态的时刻,故障注入报告按路径给出未检、迟检与误检,而不是只汇总一个百分比。对共享资源注入还要确认两个通道是否同步受损,这类结果不能归入普通单点覆盖。
看门狗提供时间监督,但它的价值取决于时基独立性。若看门狗与被监督CPU使用同一PLL,主时钟整体变慢时,软件执行和看门狗计数会一起变慢,喂狗相对周期仍正常,外部真实截止期却已错过。独立RC振荡器或外部时钟可降低这种共因,但自身频率随电压、温度和工艺变化。
窗口看门狗同时限制最早和最晚喂狗,能够发现程序卡死以及失控循环过快喂狗。窗口必须用独立时基的最慢和最快角计算:过窄会在正常调度抖动下误复位,过宽又无法满足故障反应时间。喂狗动作应位于经过关键任务健康检查的受控路径,不能由一个与业务无关的高优先级中断固定执行。
时钟监控可比较主时钟与独立参考,但参考漂移、同步误差和测量窗口都会影响门限。短窗口响应快却量化误差大,长窗口精确却延迟告警。验证要扫描两套时钟的独立偏移、停振、毛刺和渐变漂移,并检查复位源本身失效时系统是否仍能进入安全状态。
所以,锁步比较只对不一致敏感,看门狗也只对相对时间敏感。把共享故障路径显式拆开,并用独立时基约束真实截止期,芯片安全架构才能把冗余数量转化为可论证的诊断能力。





