Silent Data Corruption (SDC) — 静默误算如何击穿 ISO 26262 的 DC/LFM 假设

功能安全L2别名 Silent Data Corruption · SDC · 静默数据损坏 · Silent Error · Mercurial Core · Corrupt Execution Error · CEE · 潜伏故障 · Latent Fault · SBST · STL · LBIST · in-field test · diagnostic coverage gap · 更新

本质与导读

本质 SDC (Silent Data Corruption) 让硬件算出错误结果却不报错、不进日志、不触发异常,直接打破 ISO 26262 硬件度量的隐含前提——危险失效要么被 SM 检测到、要么是低概率随机事件。Google 称之为 mercurial core,Meta 实测约每 1000 颗器件就有 1 颗静默误算;而 ECC、lockstep、看门狗都对它有盲区,于是 FMEDA 算出的 DC 被系统性高估,纸面过 ASIL D、实物不过。

主线坐标:横轨 · 功能安全(跨站) · ↑ 全景主线

1. 抓硬约束 — SDC 为什么是"静默"的

故障可怕不在于"出错",而在于"出错却不告诉你"。功能安全的全部数学都假设:一个危险失效发生后,要么被某个 SM 在 FTTI (Fault Tolerant Time Interval,故障容忍时间) 内抓到并进安全状态,要么它本身概率低到可忽略。SDC 同时违反这两条——它既不被抓到、概率也不低,于是错误结果直接流向感知/规划/控制,系统全程"自信地算错"。

SDC 与可检测故障的分类,以及三大 SM 的覆盖盲区

1.1 三类故障结局:正确 / 报错停 / 静默错

一个计算单元 (ALU、乘法器、地址生成、datapath) 在故障下有三种结局,区别在于"系统是否知道自己错了"。SDC 是其中最恶的一类,因为它消耗了下游所有"输入可信"的假设。

结局英文系统是否知道对安全的影响典型 SM 能否抓
算对correct
报错停detectable / DUE知道 (异常/中断/log)可进安全状态ECC/parity/trap
静默错SDC / SUE不知道错误结果继续流多数 SM 无效

这里 DUE (Detected Unrecoverable Error,可检测但不可恢复错误) 是"好"的——它至少触发了机器检查异常 (MCE),系统能停或重算;SUE (Silent Unrecoverable Error,静默不可恢复错误) 才是 SDC 的内核:故障落在没有 check logic 的电路部分,所以电路照常输出,只是输出是错的

1.2 数据中心已是工业级痛点,AD 域控同构继承

SDC 不是学术想象。Meta 在 fleet 里用 Fleetscanner/Ripple 两套在线测试扫了上百万机时,得出约每 1000 颗硅器件就有 1 颗带 SDC 缺陷的结论 (远高于宇宙射线软错误的量级);Google 三个月后发表《Cores That Don't Count》,把这种"间歇算错的单个核"命名为 mercurial core,称其错误为 CEE (Corrupt Execution Error)。两家都强调:这些缺陷逃过了出厂测试,在现场运行数月后才显形。

这一点对汽车是直接威胁:AD/ADAS 域控用的就是同一代高算力 SoC(同制程节点、同设计方法学、同测试覆盖逻辑),它继承了数据中心的 SDC 风险,却比数据中心更苛刻——车规要 15 年/温区 、振动、电压瞬态,加速老化;而且数据中心可以"多机投票 + 重算",车上的一帧感知误算可能直接转成错误的刹车/转向决策。

1.3 ISO 26262 的定量门槛与 SDC 的冲突

ISO 26262-5 给 ASIL D 的硬件度量定了硬门槛:。这三个数都依赖一个量——DC (Diagnostic Coverage,诊断覆盖率),即一个 SM 能检测到某失效模式的比例。问题在于:FMEDA 里给计算逻辑标的 DC 值,是按"故障会破坏存储/总线、被 ECC/parity 抓到"的模型估的;SDC 这类"逻辑算错但不破坏存储"的失效,根本不在那个模型里。于是 FMEDA 表上写着 ,真实对 SDC 的覆盖可能接近 0,SPFM/LFM 被系统性高估。


2. 因果分析 — SDC 的物理根因与为何 SM 失效

要修一个故障,先得知道它从哪来、为什么现有手段够不着。SDC 的根因在器件物理层 (marginal 晶体管、老化、Vmin 漂移),它"静默"的原因则在架构层——主流三大 SM (ECC、lockstep、看门狗) 的检测原理各自留了一块 SDC 能钻过去的盲区。

SDC 物理根因到 DC/LFM 假设被击穿的因果链

2.1 物理根因:故障在逻辑里,不在存储里

SDC 的源头是计算逻辑/datapath 上的边缘器件 (marginal transistor),而不是经典 EDAC 模型关注的存储位翻转。先进制程把这个问题放大:晶体管越小,工艺涨落越占主导,总有一小撮单元处在"刚好能工作"的边缘,稍有应力就给出错误逻辑值。

  • 制造缺陷逃测:某些缺陷只在特定数据模式 (data-dependent)、特定电压/频率/温度组合下才显形,出厂 ATE 测试无法穷举所有组合,缺陷被放行。
  • 老化/退化超出浴盆曲线:HCI、BTI、电迁移 (electromigration) 让器件随运行时间退化;SDC 器件可能正确运行数月后才开始误算,违反"早期失效后进入低故障率平台"的经典假设。
  • Vmin 漂移与电热边界:动态电压频率调节 (DVFS) 把器件压到电压下限 附近;老化让 上漂,原本有裕度的路径变成关键路径,在热点处偶发算错。

这解释了为什么 SDC 既间歇又数据相关:同一个核,跑某些 bit pattern 错、跑另一些对,换温度/电压又变——这正是它躲过确定性测试的原因。

2.2 为什么 ECC 只护存储、护不到计算

ECC (Error Correcting Code,纠错码) 是车规 SoC 最常被引用的 SM,但它的作用域是存储与传输路径:SRAM、DRAM、cache、总线。它在数据"静止或搬运"时附加冗余位,读出时校验。可是 SDC 的错误发生在计算之后、写回之前的逻辑里——ALU 把 算成了错的值,这个错值连同正确的 ECC 校验位一起被写进存储。ECC 校验的是"存进去的值有没有被翻位",它完全相信计算单元交来的值,于是给一个错值算出"正确"的校验位。结论:ECC 对 datapath SDC 的 DC 近似为 0

2.3 为什么 lockstep 抓部分、但对共因无效

Lockstep (双核锁步) 是 ASIL D MCU 的招牌 SM:两个核跑同一指令流,比较器逐周期比对,不一致就报故障。它确实能抓一大类 SDC——只要两个核的缺陷不同,错的核与对的核结果一比就露馅。但 lockstep 有两个 SDC 盲区,根子都在 共因失效 (CCF):

  • 相同设计 + 相同输入 + 相同缺陷 = 相同错误:两个核是同一版图、同制程、紧邻布局,若缺陷源于设计/工艺共性 (同一 marginal 路径),在相同输入下两核同时算出同一个错值,比较器看到"一致",判为正确。这是 CCF 对 lockstep 的经典攻击面。
  • 共享电压/时钟/温度域:DVFS 把两核压到同一 、同一热点,边缘路径在两核上同步失效。

所以 lockstep 的 SDC 覆盖高但不等于 1,且其残余项正是 CCF 决定的 因子那部分——这必须在 FMEDA/DFA 里显式计入,不能默认 lockstep

2.4 为什么看门狗只抓死机、抓不到"算错但活着"

看门狗 (watchdog) 的检测原理是"喂狗超时即复位",它假设故障会让程序卡死或跑飞,从而停止喂狗。SDC 的致命之处恰恰是 wrong-but-alive (算错但活着):核没死、没跑飞、按时喂狗,只是某次乘法结果错了。窗口看门狗 (windowed/question-answer watchdog) 能抓"喂狗时序异常"或"答错挑战题",对控制流错误有效;但对一次纯数据流误算 (感知特征图某像素算错),狗照样按时被喂,DC 近似为 0。这是看门狗作为 SM 的固有边界。


3. SDC 如何把 FMEDA 的度量算虚高

把 2.2-2.4 的盲区代回 FMEDA 公式,就能看见数字怎么虚高。FMEDA 把危险失效率 按 SM 覆盖拆成被检测的残差与未检测的残余/潜伏项,而 DC 正是这个拆分的系数。SDC 的麻烦是:它让某些失效模式的真实 DC 远低于表上填的值

ISO 26262-5 的 SPFM 定义可写成:

其中残余失效率 。若 FMEDA 给某 datapath 失效模式填 ,而它实际是一个 ECC/看门狗都抓不到的 SDC 模式 (真实 ),那么:

残余项被低估约 100 倍,SPFM 被高估,纸面过 ASIL D、实物不过。LFM (Latent Fault Metric,潜伏故障度量) 更隐蔽:LFM 度量"潜伏失效中有多少能被二次检测/周期自检抓到"。SDC 的本质就是潜伏 (latent)——它静默存在,直到某次刚好被它污染的计算决定了一个安全相关动作。如果系统没有针对 SDC 的周期性在线自检,这些 SDC 模式在 LFM 里应记为"未覆盖",而很多 FMEDA 默默把它们算成被 lockstep/ECC 覆盖了,于是 LFM 也虚高。

结论:SDC 不是给 FMEDA 加一行,而是要求重审每一个声称覆盖计算逻辑的 DC 值——问一句"这个 SM 真的能抓到 wrong-but-alive 吗?",不能就把对应 DC 打到接近 0,缺口用第 4 节的专门手段补。


4. 解决方案 — 多维度防御栈

既然单个 SM 都有 SDC 盲区,正确做法不是找一个银弹,而是叠加多种正交手段,让每一类 SDC 失效模式至少被其中一种以非平凡 DC 覆盖。下图把 5 类手段对 4 类 SDC 失效模式的覆盖排成矩阵,关键在于看哪一列没有任何一行打勾——那就是残余风险

SDC 多维度防御栈对失效模式的覆盖矩阵

4.1 空间冗余 — 异构双算 + 比较

最直接的手段是冗余计算后比对,但关键是"异构":用不同微架构/不同核/不同实现算同一安全函数,再比较。它针对的正是 lockstep 的共因盲区——异构让"相同输入触发相同错误"的概率大幅下降。代价是面积/功耗/算力翻倍,且比较器本身要做 DFA 证明独立。AD 域控常见做法:主 SoC 跑感知,旁路一个异构安全 MCU/小核对关键输出做合理性 (plausibility) 校验,而非逐位比对全帧。

4.2 时间冗余 + 软件多样性

当空间冗余太贵时,可在同一硬件上重算:同一函数算两遍 (可加扰动/不同编译) 再比对。它能抓间歇性、数据相关的 SDC——因为 SDC 常对特定瞬时状态敏感,两次执行的微状态不同,错误未必复现。软件多样性 (N-version、加随机化数据布局) 进一步降低两次同错的概率。代价是吞吐减半与时延翻倍,对有 FTTI 预算的实时感知链不总放得下。

4.3 周期性在线自检 — SBST / STL 与 LBIST

要专门攻 latent 的 SDC,得在运行间隙主动测硬件,这正是 LFM 要求的二次检测。两种主力:

  • SBST / STL (Software-Based Self-Test / Software Test Library,软件自测库):厂商提供一套测试程序,在上电与运行间隙周期性跑,用确定的激励-期望对去逼出 CPU/datapath 的潜伏缺陷。它是车规 MCU 满足 LFM 的核心机制之一。
  • LBIST (Logic Built-In Self-Test,逻辑内建自测):硬件用 LFSR 生成伪随机激励、MISR 压缩响应签名,对组合/时序逻辑做高覆盖结构测试,ISO 26262 推荐用于覆盖潜伏故障。

核心约束是时序:FDTI(检测)+ FRTI(反应/进安全态)必须 FTTI(即 FHTI FTTI)——在线自检只占 FDTI 这一段,故障反应时间(FRTI)另需预留,必须在故障酿成危害前完成检测 + 进安全态。SBST/LBIST 不能连续占满 CPU,只能分片在任务间隙跑,所以覆盖与检测时延要权衡。它们抓的是"测得到的潜伏缺陷",对运行时刚好被特定数据触发的瞬时 SDC 仍非全覆盖,需与冗余互补。

4.4 Fault Injection 验证 DC + Fleet 级监测

前三类是"防",这一类是"验与守"。故障注入 (fault injection) 是唯一能把 FMEDA 表上那个 DC 数字从"假设"变成"实测"的手段:往 RTL/门级/硅上注入故障,看 SM 是否在 FTTI 内报出,统计真实 DC——这是把 §3 的虚高问题钉死的方法。Fleet 级监测借鉴数据中心:车队规模收集异常签名、用影子计算/交叉校验统计 SDC 触发率,反哺哪些器件/批次/工况高发,做主动替换或降级。它不在单车 FTTI 闭环内,但能管理批次性、老化性 SDC 的系统性风险

4.5 给 AD 域控的 ASIL 分解策略

把上面手段落到架构上,AD 域控的务实组合是分解 (decomposition) + 异构监督:高算力主 SoC 承担 QM/低 ASIL 的感知重计算,一个独立异构安全岛 (safety island / 安全 MCU) 承担 ASIL D 的合理性校验、看门狗、安全状态触发,主 SoC 内部再叠 SBST/LBIST 跑潜伏自检,出厂前用 fault injection 实测每条链的 DC,量产后用 fleet 监测管老化。这套组合的逻辑是:没有任何单点声称自己覆盖全部 SDC,而是让每一类失效模式都落在至少一个有实测 DC 的手段下,缺口在 FMEDA 里诚实记为残余风险,而非用虚高 DC 抹平。


5. 端到端 Worked Design — TC397 AURIX 安全岛 SDC 量化(ASIL D)

本设计以 L2 LKAS 安全岛为例,展示如何在 FMEDA 里正确建模 CCF/SDC 盲区,以及如何调度 SBST 使 FDTI 满足 170ms 窗口。全部参数与跨页 SSOT 一致(β/λD/LBIST 覆盖率/FTTI)。

5.1 系统基线

系统组成:TC397 AURIX 双核锁步安全岛 MCU,承担 L2 LKAS ASIL D 安全函数(合理性校验 + 安全态触发)。

参数来源
安全岛 MCUTC397 AURIX 双核锁步
功能 ASILD(B(D)+B(D) 分解)ISO 26262-5 §9
λD(CPU 锁步单元)100 FITSSOT tick-36
β(锁步间 CCF)2%SSOT tick-36
LBIST 结构覆盖率97.1%SSOT tick-22
FTTI(LKAS)200msSSOT tick-35
FRTI30msSSOT tick-35
FDTI_max170msFTTI − FRTI

5.2 CCF/SDC 盲区量化:锁步对共因失效 DC = 0

两核来自相同版图 + 相同工艺,共因缺陷导致两核在相同输入下同时 SDC,比较器输出"一致"判为正确——DC_lockstep(CCF) = 0。

原始 FMEDA 声明 DC_lockstep = 99%(误用于 CCF 片段),修正后 CCF 唯一有效 SM 是 LBIST(DC_LBIST = 97.1%):

原始声明 λRF_CCF = 2 × (1 − 0.99) = 0.02 FIT;残余率被低估 0.058 / 0.02 = 2.9×。在 DFA 里若将此 CCF 片段标注为"被锁步覆盖",等效 β 残余被高估同倍,ASIL D DFA 不合规。

5.3 SBST 周期调度 → FDTI = 120ms < 170ms

运行间隙 SBST(Software-Based Self-Test / STL)是拦截 latent CCF SDC 的二级防线,每完成一轮即刷新 FDTI 时钟。

  • AURIX TC3xx STL 分段数:Nseg = 120(Infineon 典型;覆盖 ALU/GPR/流水线/地址生成)
  • 每段执行模式:占 1ms 任务周期内 0.4ms(CPU 占用 40%,不阻塞实时调度)
  • 完整一轮 FDTI_SBST = Nseg × 任务周期 = 120 × 1ms = 120ms
  • 核验:120ms ≤ FDTI_max 170ms ✓(余量 50ms,6.25 帧 @ 8ms/帧)
  • DC_SBST(CPU datapath 功能级) ≈ 95%(Infineon AURIX STL 典型;含 ALU/FPU/整数执行单元;不含存储路径)
  • 联合:LBIST 97.1%(冷启结构扫描)+ SBST 95%(运行周期功能扫描)→ 两层正交,绝大多数 latent SDC 被双重拦截

5.4 FMEDA 改写要点

三条是 SDC 盲区不重演的最小纪律:① 锁步 DC 声明拆出 CCF 片段——β=2% 对应 2 FIT 单独列 CCF 行,DC_CCF = 0,进 DFA 而非 FMEDA 单点行;② DFA 里声明 CCF 专用 SM = LBIST + SBST,并给出实测/基准 DC 值(DC_LBIST = 97.1%,DC_SBST ≈ 95%);③ SBST 调度时序纳入 timing analysis 验证(FDTI = 120ms ≤ 170ms),不能仅凭文字声明。


6. Gotcha — 7 条工程陷阱

SDC 领域最常见的错误集中在"把正确的 SM 用到错误的失效模式"和"把设计阶段假设当作运行期实测"。以下 7 条陷阱在汽车项目安全分析审查中频率最高。

Gotcha-1:SDC 率套用随机失效率泊松模型。 SDC 是制造/老化缺陷的系统性批次问题,同批次多台车共享相同版图缺陷——Meta 实测约每 1000 颗器件中有 1 颗批次聚集触发,不服从 IEC 61508 PMHF 的独立随机 Poisson 假设。若把 SDC 率直接代入 PMHF 公式,结论在物理上无效;正确做法是通过 DFA(批次 CCF 分析)和 fleet 监测管理批次风险。

Gotcha-2:锁步 DC=99% 混入 CCF 片段。 锁步 DC 99% 仅对单点失效有效;CCF(共因缺陷导致两核同时 SDC)DC = 0。若 FMEDA 把 β=2% 的 CCF 部分也标 DC=99%,λRF_CCF 被低估约 2.9×(本页 §5.2 量化)。修法:β 比例单独列 CCF 行 → 进 DFA,不进 SPFM 分子。

Gotcha-3:LBIST 冷启一次 ≠ 运行期周期自检。 LBIST 是上电时跑一次的结构扫描;它覆盖的是启动瞬间的潜伏故障,运行中新出现/触发的 latent SDC 未覆盖。满足 LFM 的 FDTI 要求必须靠 SBST 周期调度(本例 FDTI_SBST = 120ms),而非仅声明"有 LBIST"。

Gotcha-4:软件多样性当作异构硬件。 同源代码用不同编译器/优化选项生成的指令仍跑在同一 datapath 微架构,共因 datapath 缺陷不因编译多样性下降。真正异构是不同微架构(如主 SoC 感知 + 安全 MCU 合理性校验)——两者 datapath 设计不同,CCF β 显著下降。

Gotcha-5:Fleet 监测用于替代单车 FTTI 闭环。 Fleet SDC 检测延迟数周至数月(需积累足够故障样本统计);单车 FTTI 是实时 200ms 闭环。两者时间尺度相差 5–6 个量级,不可互换。Fleet 监测仅适用于批次 LFM 管理(发现高发批次后 OTA 降级或替换),不能作为 SPFM 的检测 SM。

Gotcha-6:Wrong-but-alive 误归类为 DUE。 DUE(Detected Unrecoverable Error)= 触发 MCE 或异常、系统知道自己出错;SDC = 系统不知道。若 FMEDA 分析员把 SDC 失效模式归到"可检测"列并填 DC=99%,该行在报表里消失——SDC 盲区被掩盖。审查时应专门问:"这条失效模式的检测 SM 是什么,它在 FTTI 内怎么感知到 wrong-but-alive?"——答不出来即是 SDC,不应归 DUE。

Gotcha-7:SBST 分片未与任务调度协同。 AURIX OSEK 任务调度器的最短任务周期限制了 STL 分片插缝频率;若 STL 分片执行时间超过任务周期 40% 或被高优先级任务抢占中断,实际 FDTI 会超出设计值 120ms 甚至漂移到 300ms+。应在任务设计阶段用调度分析工具(如 Lauterbach AUTOSAR OS trace)验证 STL 分片时序,确认 FDTI 留在 170ms 窗口内。


7. Corner — 3 个极限场景

典型工况下的 SDC 防御栈看似充分,极限场景才是真正的设计脆弱点。以下 3 个场景在标准功能测试中通常不会被触发,却在现场运行中最先暴露。

Corner-1 — 低温 −40°C 冷启:LBIST 延迟 + Vmin 窗口重叠。 低温下逻辑速度降低,AURIX LBIST 冷启时间延长约 30–50%,可能超过整车允许的 ECU 初始化窗口;同时 DVFS 低频工作态对 Vmin 的需求更高,边缘晶体管在低温 + 低压角同步劣化——恰恰是最需要 LBIST 保护的时段,LBIST 时间窗口却最紧张。缓解策略:把 LBIST 拆分为"关键路径子集优先完成"与"完整扫描延后完成",整车协议在关键子集通过后才允许安全功能上线;冷启测试必须在 最低工作电压角覆盖 LBIST 完成时序。

Corner-2 — EOL 老化:BTI/HCI 使 Vmin 上漂 100–300mV。 SOL(Start of Life)时 LBIST 通过 ≠ EOL 时仍通过:BTI/HCI 老化推高临界路径的最低工作电压,若定期 LBIST 跑在额定电压(而非 Vmin 下限),老化后的边缘路径在测试态通过但在实际高温/满载角发生 SDC。正确做法:LBIST 覆盖 Corner 测试须涵盖最低工作电压(含 DVFS 最低档),或实施定期现场 re-LBIST(年检/OTA 窗口),以在 EOL 阶段持续发现退化路径。

Corner-3 — 安全岛自身 SDC:监督者也可能 wrong-but-alive。 TC397 安全岛在架构上监督主 SoC 的感知输出,但若安全岛自身发生 CCF SDC(同源双核共因缺陷),其合理性判断结论本身是错的——"一个静默误算的裁判宣判一切正常"。此场景不能靠安全岛的 SBST 自救(SBST 本身依赖安全岛 CPU 执行)。需配置三层独立防线:① SBC(TLF35584)硬件看门狗对安全岛心跳超时触发独立复位;② 主 SoC 对安全岛输出实施有限度反向合理性校验(防单向盲信);③ SBC 独立于两者运行,提供与 SDC 失效模式正交的物理层监督(SBC 本身为 AEC-Q100 BCD 工艺,与 TC397 CMOS FinFET 制程不同,CCF β 极低)。


缩写表

缩写全称通俗解释
SDCSilent Data Corruption硬件算错却不报错的故障
SUESilent Unrecoverable ErrorSDC 的内核:静默且不可恢复
DUEDetected Unrecoverable Error检测到但不可恢复 (会报错停)
CEECorrupt Execution ErrorGoogle 对 mercurial core 误算的叫法
MCEMachine Check ExceptionCPU 报硬件错的异常机制
DCDiagnostic CoverageSM 对某失效模式的检测比例
SPFMSingle-Point Fault Metric单点故障度量 (ASIL D )
LFMLatent Fault Metric潜伏故障度量 (ASIL D )
PMHFProbabilistic Metric for random HW Failures随机硬件失效概率度量
FITFailure In Time 小时失效数
FTTIFault Tolerant Time Interval故障到危害的容忍时间
FDTIFault Detection Time Interval故障到被检测的时间
FRTIFault Reaction Time Interval检测到进安全态的反应时间(FDTI + FRTI ≤ FTTI)
ECCError Correcting Code纠错码 (护存储/总线)
SMSafety Mechanism安全机制
SBST/STLSoftware-Based Self-Test / Software Test Library软件自测库
LBISTLogic Built-In Self-Test逻辑内建自测
DVFSDynamic Voltage Frequency Scaling动态电压频率调节
CCFCommon Cause Failure共因失效
DFADependent Failure Analysis相关失效分析

核心要点

  • SDC = 计算硬件算错但不报错、不进日志、不触发异常;关键词是 wrong-but-alive。
  • 既不被抓、概率也不低 (Meta 实测约 1/1000 器件),同时违反 ISO 26262 度量的两个隐含前提。
  • 物理根因在计算逻辑/datapath 的 marginal 器件 + 老化 + Vmin 漂移,不在存储——所以护存储的 ECC 对它近乎无效。
  • 三大 SM 各有 SDC 盲区:ECC 只护存储;lockstep 抓不到共因同错;看门狗只抓死机抓不到数据误算。
  • 后果:FMEDA 给计算逻辑填的 DC 被系统性高估,SPFM/LFM 虚高,纸面过 ASIL D 实物不过
  • 解药是多维度叠加:异构空间冗余 + 时间冗余/软件多样性 + SBST/LBIST 周期自检 (FDTI + FRTI FTTI) + fault injection 实测 DC + fleet 监测管老化。
  • 务实架构 = 异构安全岛做合理性校验 + 主 SoC 内 SBST,每类失效模式都落在至少一个有实测 DC 的手段下

Engineering Objects

  • sdc_failure_mode(一条 wrong-but-alive 的计算逻辑失效模式;属性:触发数据模式、电压/温度敏感性、所属 datapath 单元)
  • sm_dc_claim(FMEDA 中某 SM 对某失效模式的 DC 声明;必带 verification_method: assumed / fault_injection_measured)
  • infield_test_schedule(SBST/LBIST 调度;属性:覆盖率、FDTI、占用率,约束 FDTI + FRTI FTTI)
  • heterogeneous_monitor(异构监督通道;属性:与主通道的 因子、校验粒度 plausibility/bitwise)
  • fleet_sdc_telemetry(车队 SDC 触发率遥测;属性:批次、里程/老化、工况 bin)

Cross-references

来源:Dixit et al. Detecting Silent Data Corruptions in the Wild (Meta, arXiv:2203.08989);Hochschild et al. Cores That Don't Count (Google, HotOS 2021);Meta Engineering SDC 博文 (2021/2025);semiengineering.com SDC / Logic BiST / BIST-for-FuSa 系列;ISO 26262-5:2018 §6-9 与 26262-11:2018;ScienceDirect 车规 STL / in-field test 论文。综合整理,非单一来源逐句转述。