芯片: 长文详解智能汽车的心脏SoC与安全岛(Safety Island)设计
在上篇文章,我们从通用的冯诺依曼架构聊到CPU组成架构,再到汽车嵌入式控制单元MCU,以及多用于安全监控的基础芯片SBC,以及智能汽车必不可缺的GPU,这部分内容也是传统汽车控制单元基本的组成内容,算是旧识吧。
今天我们接着以上的话题,进一步来聊聊SoC和安全岛相关联的内容,这无疑是的j当前汽车行业最炙热的内容之一!
随着汽车从传统的机械工具向智能移动终端转型,车载电子系统的复杂性和功能性呈现爆炸性增长。过去分布式电子电气架构下,车辆的控制管理系统由多个ECU(电子控制单元)组成,每个ECU负责特定的功能。
: 传统架构需要为每个新增功能引入新的ECU,导致车辆内的ECU数量激增,增加了系统的复杂性和线束成本。
: 多个ECU之间的通信带宽和实时性难以满足无人驾驶等高级功能的要求。
传统的MCU已不再能够很好的满足汽车智能化的发展需求,例如,除CPU外,ADAS和无人驾驶系统要强大的计算单元GPU、AI加速器和专用硬件模块来处理大量传感器数据、执行实时决策和控制车辆行为,支持先进的无人驾驶功能
控制器,它将计算、存储、通信和传感器接口集成在一个芯片上,提供更强的解决能力、更高的集成度和更好的能效表现,从而支持汽车的智能化发展,
SoC(System on Chip)无非就是一种将计算机系统的所有主要组件(如处理器(CPU, GPU等)、内存、输入/输出接口和其他外围设备)集成到单一芯片上的设计方法和系统
汽车SoC控制器是一个高度集成的芯片,属于相对定制化的解决方案,内含多个关键组件,每个组件都在整体架构中扮演着重要角色,针对不同的应用领域和需求,所集成的组件也不完全一样。对于汽车智驾系统来讲,SoC芯片的组成部分主要包括:
SoC通常集成了多个CPU核,包括高性能的Cortex-A系列处理器,用于执行复杂的计算任务(如无人驾驶算法),以及Cortex-R系列或Cortex-M系列处理器,用于实时性要求更高的任务(如控制和安全处理)。
为了支持高级图像处理和AI推理,SoC控制器集成了强大的GPU和NPU,这些单元负责图形渲染、视觉识别和深度学习算法的执行,非常适合于无人驾驶和智能座舱应用。
SoC还包括大容量的高速存储器(如DDR和SRAM)和各种高速接口(如PCIe、Ethernet、CAN、LIN),用于数据的高速读写和不同模块间的通信。
集成传感器数据处理单元,支持多传感器数据的同步与融合,如摄像头、雷达、激光雷达等,提供更精确的环境感知能力。
为确保系统的功能安全和信息安全,SoC内部设计了独立的安全岛(如Cortex-R52处理器),用于处理安全相关的计算任务,并集成硬件安全模块(HSM),用于加密、身份验证和安全启动等功能
CPU,GPU,内存等相关联的内容,朋友们都已经比较熟悉,朋友们可以直接看前面几篇文章,在此就不再赘述了,这里特别提一下安全岛(Safety Island)这个概念。
关注功能安全系列文章的朋友们都知道,汽车智驾系统,尤其是高级或者无人驾驶系统,
安全三座大山,即功能安全(ISO 26262),预期功能安全(ISO 21448),信息安全(ISO 21434)
需要对系统各个模块提供实时监控、故障检验测试、安全通信,为安全策略的执行提供可能性。
但一般集成在SoC中,用于实现功能软件的CPU以及GPU等硬件单元,不管是从硬件设计的基本要求还是底层操作系统,软件开发来看,都不足以满足安全标准的要求,或者说如果全部以相应的ASIL等级开发的话,硬件实现的成本以及额外的软件开发要求成本都会过高。
安全岛的概念由此诞生!为实现较高的安全性,安全岛必须和SoC其余硬件部分隔离开,形成单独的一个区域,这就好像大海中间一个独立的岛屿,所以安全岛的名称由此而来。
功能安全岛主要是针对ISO 26262标准设计,旨在解决E/E系统系统性失效和随机硬件失效问题。
功能安全岛无非就是将一个具体安全可靠性的,实时性强,独立的控制单元直接集成或者外接到SoC中。本质上就是一颗车规级嵌入式高安全级别要求的MCU(例如,ASIL D)。这样做的好处在于,在保证系统安全的同时,也降低了其他模块安全设计的需求,其本质和E-Gas分层监控层设计的理念是一致的。
信息安全岛主要很对ISO 21434标准,主要旨在确保汽车系统和软件的安全性,以防止潜在的信息安全漏洞和攻击,保护车辆用户的隐私和安全。
例如,信息安全岛负责执行安全启动过程,验证固件的完整性和真实性,防止恶意软件注入,以及无人驾驶系统要与外部环境进行大量数据交换,如车联网(V2X)通信,需要确保数据传输的完整性和保密性,防止数据篡改和攻击等等。
功能安全岛,本质上是一颗满足高ASIL级别的MCU芯片,以外接形式或者直接嵌入SoC之中而已,以下图TDA4VM为例,其中直接集成了一颗MCU Island,采取了双核锁步的芯片架构 Arm Cortex R5F,独立的时钟,看门狗模块,内存等。
FSI用于实时监控和检测系统的运作时的状态,识别硬件和软件的故障,并隔离故障部分以防止其影响整个系统。
为了避免共因失效,级联失效等有关问题,安全岛一定要具有独立性,也就是它必须拥有独立的高安全等级的处理器、内存和I/O接口,操作系统,及相应的安全机制等等,这就直接决定了其架构设计一定要满足以下要求:
FSI应与系统的别的部分物理和逻辑隔离,拥有独立的供电,时钟,控制单元,内存等等,以防止外部故障影响其正常运行,这是FSI设计的首要条件。
满足相应的ASIL等级所对应的失效率要求,确保FSI在各种各样的环境条件下依然能够稳定运行。
FSI控制单元一定要采用使用实时操作系统,具备带有优先级的中断机制等,以确保FSI能够及时响应和处理安全相关事件,例如AUTOSAR CP。
FSI一定要保证自身的安全,所以必须定期执行自检程序BIST,验证自身的健康状态和功能完整性。
一般情况下,FSI控制单元一定要通过冗余设计(如双核心、双通道架构),确保系统在一个部分出现故障时,另一个部分能够接管并维持系统的正常运行。
FSI需要集成故障检测机制,如冗余校验、看门狗定时器(Watchdog Timer)、内存保护单元(MPU)等。它们能够实时监测系统故障,并在检测到故障时采取隔离措施,防止故障扩散到系统的别的部分。具体需要采用的安全机制绝大部分取决于要实现的ASIL等级,ASIL等级越高,需要采用的高诊断覆盖率的安全机制就越多。
FSI可以包含多个冗余CPU或者Dual-Core-Lockstep,以进行交叉检查和故障检测。
所下图所示,Lockstep(锁步)架构是一种通过冗余来提高系统可靠性的硬件容错技术。在该架构中,两个或多个相同的处理器并行执行相同的指令,并通过比较逻辑实时比较它们的输出结果。一经发现不一致,则认为系统发生了故障,并采取对应的措施,如报警、系统重启等。
下图是高ASIL级别安全MCU所包含的相关的安全机制,以及外部SBC,用于对安全MCU自身的监控。
## 信息安全岛(Information Security Island, ISI)###
ISI负责处理系统中的敏感数据,通过硬件加速的加密和解密功能,保护数据的机密性和完整性。
确保系统在启动过程中加载和执行的固件是经过验证的,防止没有经过授权的代码运行。
ISI必须与系统的别的部分隔离,以防止潜在的安全漏洞影响系统整体安全。
在设计汽车SoC芯片时,功能安全岛和信息安全岛应紧密集成,以实现协同工作。FSI和ISI之间通过专用的安全通信通道进行交互,确保安全有关信息的实时传递和处理。
NVIDIA的Orin-X系列芯片中的功能安全岛(Functional Safety Island, FSI)是一个集成在SoC中的高集成度的模块,
专为实现功能安全和信息安全而设计,所以虽然官方名称是FSI,但其实包含了功能安全岛和信息安全岛
这一模块包括多个专用处理器、I/O控制器、存储器和其他辅助硬件,确保功能安全和信息安全功能在极高的隔离度下独立运行,FSI 模块的关键组成部分主要包括:
处理器架构: Cortex-R52是一个基于ARM架构的处理器,专为实时和安全应用而设计。它包括4个物理内核,每个内核可在双核锁步(Dual-Core Lockstep, DCLS)模式下运行,总共有8个物理内核。DCLS模式用于检测和纠正内核的计算错误,确保高可靠性。
任务执行: Cortex-R52处理器运行经典的AUTOSAR操作系统,支持关键安全功能的执行,如错误处理和系统故障管理。这个处理器集群可以同时处理别的客户指定的工作负载,综合性能大约为10KDMIPs(Dhrystone Million Instructions Per Second)。
处理器架构: Cortex-R5F也是基于ARM架构的实时处理器,专注于加密和信息安全任务。它通常用于处理安全协议和加密算法,确保车载通信的安全性。
: 该处理器负责运行加密和安全相关的用例,例如确保车载通信安全(SecOC, Secure Onboard Communication)。它提供加密运算支持,并确保数据传输的机密性和完整性。
FSI模块中集成的I/O控制器和时间处理器用于管理外部信号的输入输出,并协调时间敏感任务的执行,确保安全相关任务的时间一致性和同步。
独立电压轨与振荡器/PLL: FSI模块具有独立的电压轨和振荡器,确保其操作不依赖于SOC的别的部分,从而避免因电源或时钟问题影响安全功能的执行。
SRAM: 独立的SRAM存储器用于存储关键数据,确保数据的安全性和完整性。
HSM通过与其他安全模块的协作,确保SoC在发生故障时能够及时响应并采取适当的功能安全措施。HSM的主要职责是监控SoC内部的硬件状态,检测并管理可能影响系统安全性的各种故障,它作为系统的硬件错误管理者,承担着错误检测、错误处理和错误报告的关键任务,具体包括:
HSM持续监测SoC内部的各个模块,检测硬件层面也许会出现的故障。这些故障包括但不限于处理器故障、内存错误、电源波动、时钟异常等。
HSM通过SoC内部的各种传感器和监测机制,实时收集系统运作时的状态信息,并识别潜在的故障。
一旦SOC_ERROR引脚触发中断,HSM将立即启动故障处理流程。HSM负责分析故障的来源和类型,并决定采取哪种应对措施。
根据故障的严重程度,HSM可以执行多种操作,如触发系统重置、激活安全模式、或记录故障信息以供后续分析。
HSM通过软件通知外部安全MCU监视器,报告系统内检测到的错误。安全MCU通常负责更高级别的系统监控和控制,能够执行功能安全策略,如系统停机、紧急刹车或激活冗余系统。
这种合作伙伴关系确保SoC内部的硬件错误不会被忽视,而是通过外部系统的监控进一步保障总系统的安全性。
在接收到来自HSM的错误通知后,外部安全MCU监视器能够准确的通过预定义的功能安全策略执行相应的措施。这些措施可能包括系统降级、切换到备用系统、或执行特定的安全程序,确保在故障情况下系统仍能安全运行。
HSM在无人驾驶和高级辅助驾驶中,很重要,在无人驾驶系统中,任何硬件故障都可能会引起严重的安全风险。HSM通过实时监控和处理硬件错误,帮助系统在传感器或处理器发生故障时,迅速切换到安全模式,确保在故障发生时系统能够迅速做出一定的反应,避免事故发生。
:征程5系列SoC集成了多核CPU、GPU、双核ISP(图像信号处理器)和双核DSP,AI加速器。
:高性能计算、多核架构、专用AI加速器、高带宽存储接口、灵活I/O接口、双核锁步MCU(功能安全等级达 ASIL-B(D))。
SoC芯片在无人驾驶技术中扮演着至关重要的角色。通过集成多种功能模块,如CPU、GPU、DSP、AI加速器和各种I/O接口,SoC为无人驾驶系统提供了高性能、低功耗和小尺寸的解决方案。
随着技术的持续不断的发展,无人驾驶SoC将继续在提升计算能力、优化AI处理和增强系统可靠性方面发挥关键作用,推动无人驾驶技术的进一步成熟和普及。