3. EyeQ硬件安全架构解析

EyeQ系列SoC要在车载环境中承担前视感知、目标识别与部分决策输出,其功能安全目标通常落在ASIL B至ASIL D区间。硬件层面能否支撑这些目标,取决于四类机制是否协同工作:锁步核负责检测CPU内部的瞬态与永久故障,ECC负责保护存储与总线上的数据完整性,安全岛负责在异常时接管并输出安全状态,监控电路负责对时钟、电压、温度、程序流等运行条件持续监督。理解EyeQ的安全架构,关键不是记住模块名称,而是看清“故障在哪里被捕获、由谁处理、最终如何影响输出”。

锁步核:把CPU故障暴露在比较器上

EyeQ的多核架构中,部分CPU核以锁步对(Lockstep Pair)形式工作:主核与影子核接收相同输入、执行相同指令流,由硬件比较器逐周期比对关键输出信号(地址、数据、控制)。一旦出现不一致,比较器立即置位错误标志,触发安全岛或复位逻辑。锁步核覆盖的是CPU内部逻辑的瞬态故障(如SEU翻转)和部分永久故障,但它不覆盖两个核共因失效的场景,例如共享时钟毛刺、共享电源跌落、共享总线错误。因此锁步必须与时钟监控、电压监控、总线ECC配合使用,才能形成完整覆盖。

工程上需要关注锁步的“延迟”与“比较窗口”。比较器不是逐比特实时比对,而是按流水线节拍在特定阶段采样。若故障发生在两次采样之间且被后续逻辑掩盖,就可能漏检。因此EyeQ的锁步诊断覆盖率(DC)指标通常由FMEDA分析给出,而不是简单认为“锁步=100%覆盖”。在安全分析中,锁步核的残余失效率要计入共因失效(CCF)贡献。

ECC:从SRAM到总线的数据完整性防线

EyeQ在片内SRAM、Cache、总线互连以及部分寄存器文件上部署ECC。常见配置为SECDED(单纠错双检错):对64位数据加8位校验位,可纠正1位错误、检测2位错误。ECC的工作过程是:写入时计算校验码一并存储;读取时重新计算并与存储的校验码比较,若为单比特错误则自动纠正并记录,若为双比特错误则上报不可纠正错误(UE),由安全岛决定是否进入降级或复位。

需要区分两类ECC事件:可纠正错误(CE)通常只做计数与阈值告警,用于早期发现退化;不可纠正错误(UE)则直接威胁功能安全目标,必须触发安全响应。EyeQ的安全机制中,CE计数超过阈值会升级为故障,这是“故障累积”思想的体现。此外,地址总线与数据总线也需保护,否则ECC只能保护存储阵列,无法覆盖传输路径上的翻转。

安全岛:异常发生后的“最后一道执行者”

安全岛(Safety Island)是EyeQ中独立于主计算域的子系统,通常包含一个较小的安全核、独立时钟、独立电源域、专用SRAM与通信接口。它的职责不是做感知计算,而是在主域异常时接管安全相关输出:例如关闭执行器使能、输出安全状态信号、记录故障码、请求复位或进入跛行模式。

安全岛自身也必须满足高诊断覆盖率,因此它通常采用锁步核、ECC存储、独立看门狗与端到端保护。安全岛与主域之间通过受保护的消息通道交互,消息本身带CRC或ECC,防止通信过程中的数据损坏。若安全岛与主域共享时钟源或电源,则需在FMEDA中作为共因失效处理,必要时增加独立参考时钟与独立稳压器。

监控电路:让“运行条件”也进入安全视野

监控电路覆盖的是CPU与存储之外的运行环境,主要包括:

  • 时钟监控:检测时钟丢失、频率漂移、占空比异常。EyeQ通常用独立RC振荡器作为参考,与PLL输出比较,偏差超限即告警。
  • 电压监控:通过ADC或比较器监测核心电压与IO电压,欠压或过压时触发复位或降级。
  • 温度监控:片上温度传感器监测结温,超温时降频或关闭部分功能。
  • 程序流监控:用窗口看门狗或签名校验检查程序是否按预期路径执行,防止跳飞。
  • 总线与互连监控:检测非法访问、超时、协议错误,防止主设备挂死导致系统失去响应。

这些监控信号最终汇聚到安全岛的故障处理逻辑,形成“检测—上报—决策—执行”的闭环。监控电路的价值在于:它把那些不会立刻导致计算错误的隐患(如时钟抖动、电压跌落)提前暴露,避免其演化为不可控故障。

四类机制如何共同支撑功能安全目标

把四类机制放在一起看,它们覆盖了不同的故障模式和不同的安全目标:锁步核覆盖CPU内部逻辑故障,ECC覆盖存储与总线数据故障,安全岛提供故障后的安全状态执行能力,监控电路覆盖运行条件与程序流异常。它们之间不是简单叠加,而是需要做共因失效分析:如果锁步核与安全岛共用时钟,时钟故障可能同时影响两者;如果ECC与安全岛共用电源,电源跌落可能同时削弱两者。因此EyeQ的安全架构中,独立时钟、独立电源域、独立参考源是常见设计。

下面这张图把四类机制在EyeQ中的位置、覆盖对象与故障响应路径放在同一张关系图中,便于对照理解。

EyeQ 硬件安全机制与故障响应关系 主计算域(感知 / 决策) 锁步核 Lockstep 主核 + 影子核 逐周期比较器比对 ECC 保护 SRAM / Cache / 总线 SECDED:纠1检2 监控电路 时钟丢失/漂移 · 电压欠压/过压 · 结温超限 程序流签名 · 总线超时/非法访问 安全岛 Safety Island 独立安全核(锁步) 独立时钟 / 独立电源域 故障处理与决策 降级 / 复位 / 跛行模式 安全输出接口 锁步失配 UE 监控告警 安全状态输出 执行器 / 整车接口 关闭使能 · 输出安全信号 · 记录DTC 共因失效(CCF)关注点 • 锁步核与安全岛共用时钟 → 时钟故障可能同时影响两者 • ECC与安全岛共用电源 → 电压跌落可能同时削弱保护能力 • 独立参考时钟、独立稳压器、独立复位源是常见缓解手段 故障覆盖对照 锁步核 CPU内部逻辑故障 ECC 存储/总线数据故障 监控电路 运行条件/程序流异常 安全岛 故障后安全状态执行

从架构到验证:安全机制如何被证明有效

硬件安全机制存在,不等于功能安全目标自动达成。验证时需要回答三个问题:诊断覆盖率是多少、故障注入后系统是否按预期响应、共因失效是否被充分识别。对锁步核,常用故障注入在RTL或FPGA原型上翻转寄存器位,观察比较器是否在约定周期内报错;对ECC,注入单比特与双比特错误,确认CE计数与UE上报路径正确;对安全岛,注入主域挂死、时钟丢失、电压跌落,确认安全输出在FTTI内到达执行器;对监控电路,注入频率偏移、温度越限、程序跳飞,确认告警链路完整。

这些验证活动与FMEDA分析相互印证:FMEDA给出理论诊断覆盖率,故障注入给出实际响应证据。两者不一致时,需要回到架构或诊断实现中找原因,而不是直接采信理论值。EyeQ的安全手册中会给出各机制的假设条件与使用限制,系统集成时必须逐条核对,例如锁步核要求两个核的时钟偏差在指定范围内,ECC要求初始化时完成校验位写入,安全岛要求独立供电域在复位后先于主域就绪。

理解EyeQ硬件安全架构的一个实用视角:把每个安全机制看作“故障检测器+故障响应器”的组合。锁步核检测CPU逻辑故障,ECC检测数据故障,监控电路检测环境与程序流异常,安全岛统一执行响应。四者缺一,安全目标就会出现覆盖空洞。

最后需要强调,EyeQ的安全架构是面向系统的。锁步核、ECC、安全岛、监控电路各自有明确的覆盖边界,边界之外的部分必须由系统级措施补足,例如外部看门狗、独立电源监控芯片、传感器冗余与端到端保护。只有把芯片内机制与芯片外措施放在同一张安全论证中,才能说明EyeQ在目标ASIL等级下的功能安全目标确实被支撑。