阅读之前强烈建议参考之前系列文章:
01 | 芯片: 解密汽车嵌入式芯片 CPU、MCU、SBC
02 | 芯片: GPU 怎么就成了科技界的“新宠”?
在上篇文章,我们从通用的冯诺依曼架构聊到 CPU 组成架构,再到汽车嵌入式控制单元 MCU,以及多用于安全监控的基础芯片 SBC,以及智能汽车必不可缺的 GPU,这部分内容也是传统汽车控制单元基本的组成内容,算是旧识吧。
今天我们接着以上的话题,进一步来聊聊 SoC 和安全岛相关内容,这无疑是的 j 当前汽车行业最炙热的内容之一!
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 标准,主要旨在确保汽车系统和软件的安全性,以防止潜在的信息安全漏洞和攻击,保护车辆用户的隐私和安全。
例如,信息安全岛负责执行安全启动过程,验证固件的完整性和真实性,防止恶意软件注入,以及自动驾驶系统需要与外部环境进行大量数据交换,如车联网(V2X)通信,需要确保数据传输的完整性和保密性,防止数据篡改和攻击等等。
信息安全岛和功能安全岛一般独立存在,但二者之间设有专门的安全通信通道,以保证二者协同工作。
那么安全岛应该怎么设计呢?
功能安全岛(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 和自动驾驶系统。
5. 地平线征程 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 处理和增强系统可靠性方面发挥关键作用,推动自动驾驶技术的进一步成熟和普及。
写在最后:
芯片系列,解密汽车处理器 SoC 和安全岛相关的内容我们就聊完了,希望能够给朋友们对其带来更多理解。
END
文章来源:汽车MCU软件设计
推荐阅读
更多物联网安全,PSA 等技术干货请关注平台安全架构(PSA)专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入PSA 技术交流群,请备注研究方向。