【汽车芯片功能安全分析与故障注入实践 07】Endpoint FIT Contribution:如何找到最值得保护的节点?
作者Darren H. Chen方向汽车芯片功能安全分析与故障注入实践DemoD07_ep_contribution标签汽车芯片功能安全FIT ContributionEndpoint安全机制选择风险排序Demo 说明D07_ep_contribution的目标是基于第 6 篇提取出的 SP/EP/Cone 结构进一步计算每个 Endpoint 对整体 FIT/DC 风险的贡献度。对应的通用工具名称为safeic-epcont这个 Demo 的作用是回答一个非常工程化的问题设计里有很多寄存器输入、输出端口和黑盒边界应该优先保护哪些 endpoint如果没有贡献度排序安全机制选择很容易变成平均用力所有寄存器都想保护 所有模块都想加 checker 所有 memory 都想加 ECC 所有路径都想做 duplication这会导致面积、功耗、时序和验证成本迅速失控。Endpoint FIT Contribution 的作用就是先找到最值得保护的地方。1. 为什么不能平均保护所有节点汽车芯片中安全机制不是免费的。任何安全机制都会带来成本面积增加 功耗增加 时序压力增加 验证复杂度增加 故障注入 campaign 规模增加 软件诊断配合成本增加例如安全机制成本特点parity成本较低但覆盖范围有限ECC对 memory 有效但编码/解码逻辑有代价duplication覆盖更强但面积接近翻倍lockstep覆盖很强但系统代价高end-to-end protection跨模块保护有效但协议设计复杂因此功能安全设计的目标不是“把所有地方都保护起来”而是用有限的安全机制覆盖最大风险贡献点这就需要 Endpoint Contribution。2. Endpoint 为什么适合作为贡献度分析对象在结构分析中Endpoint 是故障传播的关键收敛点。它可能是寄存器 D 端 latch 输入 memory 输入 blackbox 输入 顶层输出Endpoint 的重要性来自三个方面它可能捕获错误 它可能影响后续状态 它可能直接影响安全相关输出一个 endpoint 的贡献度通常与下面因素有关endpoint 自身结构规模 连接到它的 cone 规模 上游 startpoint 数量 fan-in/fan-out 关系 是否位于 safety-related path 是否连接 alarm/checker 或 safety output因此Endpoint FIT Contribution 可以理解为某个 endpoint 对整体随机硬件失效风险的相对贡献。3. 一个简单例子假设有两个 endpointEP_A一个局部控制寄存器输入 EP_B一个 bus fabric 仲裁状态寄存器输入它们的基本信息如下Endpoint上游 SP 数量Cone gate 数量下游影响范围安全相关EP_A18单个局部状态是EP_B6120多个 master/slave 通路是虽然 EP_A 和 EP_B 都是寄存器输入但 EP_B 显然更值得优先分析。因为 EP_B 的故障可能影响总线授权 访问顺序 数据返回路径 错误响应 多个外设访问这类 endpoint 的贡献度通常更高。4. Contribution 的基本计算思路第一版 Demo 不需要追求完整标准模型可以先建立可解释的工程评分模型。一种简化计算方式EP_Contribution EP_Weight Cone_Weight Fanin_Weight Fanout_Weight Safety_Weight每个部分含义如下权重含义EP_Weightendpoint 自身寄存器、输出、memory bit 权重Cone_Weight上游组合逻辑规模Fanin_Weight影响该 EP 的 startpoint 数量Fanout_Weight该 EP 后续影响范围Safety_Weight是否属于安全相关功能路径实际工具中可以把它拆成可配置参数weights:ep_base:1.0cone_gate:0.02fanin_sp:0.5fanout_ep:0.5safety_related_bonus:2.0这样不同项目可以根据场景调整策略。5. 从结构数据到贡献度报告safeic-epcont的输入来自第 6 篇的结构分析输出sp.csv ep.csv cone.csv structure_graph.json工具内部流程可以设计为Read SP/EP/ConeBuild Connectivity IndexCompute EP Base WeightCompute Cone WeightCompute Fanin/Fanout WeightMerge ScoresRank EndpointsGenerate Contribution Reports输出核心文件ep_contribution.csv top_ep.md contribution_summary.json6. 输出文件示例ep_contribution.csv可以设计为ep_id,node,module,ep_type,cone_count,total_cone_gates,fanin_sp_count,fanout_count,safety_related,score,rank EP_0001,top.u_bus.arb_state.D,top.u_bus,reg_d,4,120,6,8,true,18.40,1 EP_0002,top.u_cpu.ctrl_state.D,top.u_cpu,reg_d,2,70,3,5,true,11.90,2 EP_0003,top.u_timer.cnt_en.D,top.u_timer,reg_d,1,18,1,1,true,4.20,3top_ep.md可以输出人能读懂的解释# Top Endpoint Contribution ## Rank 1: top.u_bus.arb_state.D Reason: - Connected to 6 upstream startpoints - Accumulates 120 cone gates - Affects 8 downstream endpoints - Marked as safety-related Suggested safety mechanism candidates: - arbitration state parity - duplicated grant checker - protocol consistency monitor这样的报告比单纯的数字更有工程价值。7. Contribution 与安全机制选择的关系Endpoint Contribution 的直接用途是指导 Safety Mechanism Selection。例如Endpoint 特征推荐安全机制方向控制状态寄存器贡献高parity、control-flow monitor、illegal state checker数据路径 cone 贡献高duplication、data path checker、end-to-end protectionmemory endpoint 贡献高ECC、parity、scrubbingbus fabric endpoint 贡献高protocol checker、response monitor、timeout monitorsafety output endpoint 贡献高output compare、range check、redundant output这背后的方法论是先找到高贡献 endpoint 再分析其结构类型和功能语义 最后选择合适的 safety mechanism而不是先随意选择一个安全机制再去证明它有效。8. Contribution 与 Fault List 的关系Endpoint Contribution 还可以用来指导 fault list 生成。完整芯片 fault 数量可能非常大如果盲目生成所有 fault会导致 fault campaign 过重。更实际的方式是优先对 high-contribution endpoint 相关节点生成 fault 对低贡献节点采用抽样 对非安全相关节点做降权或排除例如Top 10% endpoint完整 stuck-at transient fault Middle 40% endpointstuck-at fault Low contribution endpointsampling fault Non-safety-related endpoint可排除或单独统计这能显著降低后续故障注入压力。9. D07 Demo 的目录建议D07_ep_contribution/ README.md run_demo.csh run_demo.sh inputs/ sp.csv ep.csv cone.csv structure_graph.json contribution_weights.yaml outputs/ ep_contribution.csv top_ep.md contribution_summary.json scripts/ safeic_epcont.py运行命令示例python3 scripts/safeic_epcont.py\--spinputs/sp.csv\--epinputs/ep.csv\--coneinputs/cone.csv\--weightsinputs/contribution_weights.yaml\--outoutputscsh 版本python3 scripts/safeic_epcont.py \ --sp inputs/sp.csv \ --ep inputs/ep.csv \ --cone inputs/cone.csv \ --weights inputs/contribution_weights.yaml \ --out outputs10. 方法论总结Endpoint FIT Contribution 的核心价值是排序。它帮助我们回答哪些 endpoint 最值得保护 哪些模块贡献最大 哪些 cone 可能造成风险集中 哪些安全机制应该优先投入 后续 fault campaign 应该优先覆盖哪些节点功能安全工程不是单纯“多加保护”而是“基于结构贡献度做保护优先级决策”。D07_ep_contribution的意义就在于把这种决策过程数据化、报告化、可复现化。