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