2. NVIDIA DRIVE硬件架构与安全机制
NVIDIA DRIVE AGX 系列(包括 Xavier、Orin 以及新一代 Thor)是面向 L2 至 L4 自动驾驶的计算平台。其功能安全能力并非来自单一模块,而是由 SoC 内部多个硬件安全机制协同构成。理解这些机制的位置、作用范围与相互关系,是后续做安全分析(如 FMEA、DFA)和验证设计的基础。本节从 SoC 架构出发,逐层解析安全岛、锁步核、ECC、内存保护与看门狗,并说明它们如何支撑 ISO 26262 中的安全需求。
一、SoC 架构与安全分区
以 DRIVE Orin 为例,其 SoC 内部大致可分为三类区域:通用计算域(CPU 集群、GPU、DLA、PVA 等 AI 与通用算力单元)、安全域(安全岛、锁步核、安全 MCU)、以及外设与接口域(CAN、以太网、PCIe、摄像头输入等)。通用计算域承担感知、规划等高性能任务,但其硬件本身并不天然满足高 ASIL 要求;安全域则以较小的面积和功耗代价,提供可达到 ASIL-D 的诊断与监控能力。二者通过片上互连(如 NoC)连接,安全域对通用域的关键输出进行校验、监控与仲裁。
这种分区的核心思想是:把“高算力”和“高可信”解耦。高算力单元负责功能实现,高可信单元负责监控与安全决策。当通用域出现异常时,安全域可以接管或触发降级,使系统进入安全状态。
二、安全岛与锁步核
安全岛(Safety Island)是 SoC 内独立供电、独立时钟、独立复位的一组安全相关模块集合,通常包含安全 MCU、锁步 CPU 核、看门狗、安全存储与安全通信接口。它的关键特性是“隔离”:即使主计算域崩溃或掉电,安全岛仍能维持运行,执行故障检测、状态监控和安全响应。
锁步核(Lockstep Core)是安全岛内最典型的冗余机制。两个相同的 CPU 核接收相同输入、执行相同指令,由硬件比较器逐周期比对输出。若结果不一致,比较器立即报错,触发中断或复位。锁步核覆盖的是 CPU 内部的瞬态故障与永久故障,例如位翻转、指令译码错误。需要强调的是,锁步核只能检测“核内”故障,对内存、总线、外设的故障需要 ECC 和内存保护来补充。
三、ECC 与内存保护
ECC(Error Correcting Code)用于检测和纠正存储单元中的位错误。DRIVE 平台在 L2/L3 缓存、片上 SRAM、DRAM 控制器以及关键总线路径上部署 ECC。典型配置为 SECDED(单错纠正、双错检测):单比特错误被自动纠正并记录,双比特错误触发不可纠正错误(UE)上报。ECC 的价值在于把“静默数据损坏”转化为可观测的故障信号,使安全机制能够及时响应。
内存保护通过 MPU(内存保护单元)或 MMU(内存管理单元)实现。MPU 为不同任务划分地址区间并设定读/写/执行权限,防止一个任务越界访问另一个任务的数据或代码。在安全设计中,安全岛的关键数据区通常被设为仅安全核可写,通用域只能读取,从而避免通用域故障污染安全决策。MMU 则进一步提供虚拟地址到物理地址的映射,支持更细粒度的隔离。
四、看门狗与复位机制
看门狗(Watchdog Timer)是检测“程序跑飞或任务超时”的经典机制。DRIVE 平台通常包含多级看门狗:CPU 内部看门狗、安全岛独立看门狗、以及外部看门狗芯片。软件需在设定窗口内“喂狗”,若超时未喂,看门狗触发中断或直接复位。安全设计中,看门狗窗口时间需根据任务周期计算,例如某监控任务周期为 10 ms,则窗口可设为 15~20 ms,既容忍正常抖动,又能及时捕获卡死。
复位机制与看门狗配合:一旦检测到不可恢复故障,安全岛可对通用域执行局部复位,或对整芯片执行全局复位,并记录复位原因供事后分析。复位后系统进入预设的安全状态,例如降级到最小风险状态(MRC)。
五、机制如何支撑功能安全需求
从 ISO 26262 视角看,上述机制分别对应不同的安全需求类型:锁步核与 ECC 主要覆盖硬件随机失效,看门狗与内存保护覆盖系统性失效与软件异常,安全岛则提供故障容忍时间间隔(FTTI)内的独立监控与响应。它们共同把单点故障度量(SPFM)和潜伏故障度量(LFM)提升到目标 ASIL 等级要求。
需要特别注意的是,硬件机制本身并不等于功能安全。它们必须被正确配置、被软件正确使用、并被验证其诊断覆盖率。例如 ECC 若未使能中断上报,则只能纠错而不能触发安全响应;看门狗若喂狗逻辑与监控任务在同一线程,则无法检测该线程卡死。因此,在 DRIVE 平台开发中,安全机制的配置与验证是功能安全活动的核心工作之一。