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中的位置、覆盖对象与故障响应路径放在同一张关系图中,便于对照理解。
从架构到验证:安全机制如何被证明有效
硬件安全机制存在,不等于功能安全目标自动达成。验证时需要回答三个问题:诊断覆盖率是多少、故障注入后系统是否按预期响应、共因失效是否被充分识别。对锁步核,常用故障注入在RTL或FPGA原型上翻转寄存器位,观察比较器是否在约定周期内报错;对ECC,注入单比特与双比特错误,确认CE计数与UE上报路径正确;对安全岛,注入主域挂死、时钟丢失、电压跌落,确认安全输出在FTTI内到达执行器;对监控电路,注入频率偏移、温度越限、程序跳飞,确认告警链路完整。
这些验证活动与FMEDA分析相互印证:FMEDA给出理论诊断覆盖率,故障注入给出实际响应证据。两者不一致时,需要回到架构或诊断实现中找原因,而不是直接采信理论值。EyeQ的安全手册中会给出各机制的假设条件与使用限制,系统集成时必须逐条核对,例如锁步核要求两个核的时钟偏差在指定范围内,ECC要求初始化时完成校验位写入,安全岛要求独立供电域在复位后先于主域就绪。
最后需要强调,EyeQ的安全架构是面向系统的。锁步核、ECC、安全岛、监控电路各自有明确的覆盖边界,边界之外的部分必须由系统级措施补足,例如外部看门狗、独立电源监控芯片、传感器冗余与端到端保护。只有把芯片内机制与芯片外措施放在同一张安全论证中,才能说明EyeQ在目标ASIL等级下的功能安全目标确实被支撑。