随着汽车电子控制系统逐渐向集中化方向发展,软件的复杂度也在不断增加,芯片作为汽车电气化和智能化的核心载体,其重要性日益显著。
对于自动驾驶系统而言,其技术的实现依赖于对大量传感器数据的实时处理,需要采用深度学习,机器学习算法,保证这些数据在极短时间内进行处理和分析,以确保车辆能够做出及时且准确的决策。这不仅要求芯片具有超强的计算能力和高速数据处理能力,同时还需要低延迟和高可靠性,安全性,以确保驾驶安全。
我一直觉得,作为汽车研发工程师,不论从事系统还是软件开发,硬件或芯片的知识储备对于系统和软件的理解至关重要。尤其是当我们抛开表面,深入本质的时候,系统化的知识架构尤为重要。为此,我特别开辟了一个新的汽车芯片系统系列文章,从基础的芯片内容入手,由浅入深地阐述汽车芯片相关的内容。
谈起汽车芯片或者汽车控制单元,很多朋友脑海中可能立刻会浮现出以下概念: CPU (Central Processing Unit)、MCU (Microcontroller Unit)、GPU (Graphics Processing Unit)、SOC (System on Chip),SBC(System Basis Chip)等等。
但它们到底有什么本质区别,各自的功能,架构以及应用场景有什么不同,所以借着芯片系列的开篇文章,今天首先给朋友们针对 CPU,MCU,SBC 这些基本的芯片概念进行阐述,剩余的 GPU, SoC 相关内容我们下篇再聊!
01.CPU:与冯诺依曼架构
谈起 CPU (Central Processing Unit),我们就不得不提起现代计算器设计的鼻祖,冯诺依曼架构(Von Neumann architecture),它是由数学家兼物理学家约翰·冯·诺依曼在 20 世纪 40 年代提出的一种计算机体系结构模型,也是现代计算机设计的基础。
那么冯诺依曼架构和 CPU 有什么关系呢?
冯诺依曼架构的核心思想简言之就是,将程序指令和数据存储在同一内存空间中,并通过一个单一的系统总线进行传输。
这个思想现在看起来感觉理所应当,但是对当时的计算机系统绝对是颠覆性的影响,在最初的计算机中,程序指令和数据是被当作独立的存在,程序指令被固定,作为控制器硬件的一部分,不可重新编程,一台计算机只能执行一个特定的程序,这意味着硬件和程序强绑定,灵活性非常低,而冯诺依曼架构的出现彻底改变了这个现象,直接推动了计算机系统软硬件的分离设计,硬件解耦,纯程序员由此诞生!
根据冯.诺依曼架构,如下图所示,一个计算机结构由 5 大部件构成:
─ 运算器 (Arithmetic/Logic Unit): 完成各种算数运算和逻辑运算,ALU 的主要功能就是在控制信号的作用下,完成加、减、乘、除等算术运算以及与、或、非、异或等逻辑运算以及移位、补位等运算。
─ 控制器 (Control Unit): 指挥运算器有条不紊地工作,包括从内存中取指令、翻译指令、分析指令,然后根据指令的内存向有关部件发送控制命令,控制相关部件执行指令所包含的操作。
─ 存储器 (Memory Unit): 用于存储数据和程序指令的硬件组件,根据所处的位置,以及特性,可以进一步分为内部存储器,外部存储器,随机存取存储器(RAM)和只读存储器(ROM)等等。
─ 输入/输出设备 (Input/Output Device): 用于与外部环境进行交互,如键盘、鼠标、显示器等。
其中,运算器和控制器单元集成在 CPU 中实现,CPU 由此诞生。
由于 CPU 必须具备极高的通用性来处理各种不同的数据类型,同时需要进行逻辑判断,这会引入大量的分支跳转和中断处理,这使得 CPU 的内部结构异常复杂,也正是因为这样,CPU 内部 ALU 单元数量其实非常有限,大部分空间被控制单元和 Cache 占据。为了增加并行计算的可能性,CPU 可以采用多核结构,2 核,4 核,6 核等,但数目不会太多!
在 CPU 内存系统中,有一个重要的概念叫做缓存(cache),它用于减少 CPU 访问 DRAM 所需的时间。缓存是一块较小的内存区域,但访问速度更快,位于更靠近处理器核心的位置,用来存储 DRAM 中的数据副本。缓存通常分为多个级别,通常包括三级缓存:L1、L2 和 L3。缓存离核心越近,其容量越小但速度越快。例如,L1 缓存可能是 64KB,L2 缓存是 256KB,L3 缓存则是 4MB。
其基本的工作流程如下图所示:
此外,为了增加运算效率,CPU 采用 MIMD(Multiple Instruction, Multiple Data)工作机制。简单地来解释,MIMD 就像一家大型公司中的各个部门,每个部门(处理器)独立地处理不同的任务(指令)和数据,通过并行工作提高整体效率。这种机制让系统能够同时处理多种任务,灵活应对不同的需求,但也需要有效的管理来协调资源和任务,确保各项工作顺利进行。
但随着计算速度需求增加,冯·诺依曼架构也逐渐出现了瓶颈:
1. 冯·诺依曼瓶颈:由于指令和数据共享同一个总线,导致 CPU 在每次读取指令和数据时需要通过同一个总线,造成性能瓶颈。
2. 存储器速度限制:CPU 速度不断提升,但存储器速度相对较慢,导致 CPU 等待存储器响应的时间不断地增加。
为了缓解冯·诺依曼瓶颈,尤其是 AI,机器学习的兴起,CPU 大部分时间处于等待数据从内存搬运到计算器中,此过程不仅降低了计算效率,而且非常消耗能源,为此现代计算机技术采取了很多技术手段,例如使用不同级别(例如,L1, L2, L3)的缓存(Cache)或者“近内存”,使内存元素更接近逻辑单元,甚至是存算一体的计算架构等。当然,这也涉及到 GPU 相关的内容,这块内容我们下一篇文字再细聊,朋友们有个概念就行。
02.MCU:车规嵌入式解决之道
MCU(Micro Controller Unit),即微控制单元,又称微控制器或单片机,是一种集成了 CPU、存储器(ROM/RAM)、数据转换器(A/D、D/A)、输入/输出接口(I/O)和计时器等多种功能模块的微型计算机。
相比大众所熟知的 PC 处理器,MCU 在 CPU 规格和频率上进行了适当的缩减,以满足计算控制设备对空间、功耗、实时性,成本或者安全的严格要求,因此,在汽车控制器领域也被称为车规级嵌入式 MCU,主要用作于汽车零部件或者集成域的控制单元,例如,车辆动力,动力电池,车身控制,安全系统(例如,ABS, ESP 等),高级辅助驾驶系统等。
根据需求不同,MCU 芯片可分为 8 位、16 位和 32 位,其中“位”是 MCU 的“位宽”,表示一条指令所能处理的二进制位数。从理论上看,MCU 位数越大,单次处理数据量越大,处理速度越快,性能也越强。目前,8 位 MCU 凭借设计简单和成本优势,32 位 MCU 凭借良好的性能,在市场上占据主导,夹在中间的 16 位 MCU 市场不断被挤压。
目前车规级 MCU 的开发还是主要被国外的供应商垄断,虽然目前国内也出现了一些替代解决方案,但市场份额相对还是较低。
那么嵌入式 MCU 开发究竟难在哪里?
1. 高可靠性和耐用性:车规级 MCU 必须能够在恶劣的环境条件下可靠运行,包括极端温度、湿度、振动和电磁干扰等。它们通常需要通过严格的 AEC-Q100 标准认证,以确保其在实际应用中的稳定性和长寿命。
2. 高性能和低功耗:随着汽车电子功能的增加,MCU 需要处理更多的数据并执行更复杂的计算任务。因此,车规级 MCU 需要具备高性能的计算能力,同时在功耗方面也要有良好的控制,以适应汽车电池供电的需求。
3. 安全性:为了确保驾驶安全,车规级 MCU 必须符合 ISO 26262 等功能安全标准,具备多重安全保护机制,包括硬件安全模块(HSM),支持加密算法和安全启动(Secure Boot)等功能,防止黑客攻击和数据篡改。
4. 实时性:在自动驾驶和高级驾驶辅助系统(ADAS)中,MCU 需要实时响应各种传感器数据并做出决策。因此,车规级 MCU 通常需要具备强大的实时处理能力和低延迟性能。
此外,为了实现汽车控制系统的硬实时,高可靠性和安全性,并且使得在不同 MCU 平台上的软件开发和集成更加高效和可移植,AUTOSAR(Automotive Open System Architecture,汽车开放系统架构)由此诞生,这也是汽车 MCU 特有的产物。
AUTOSAR 引入了硬件抽象层,使得上层软件不依赖于特定的 MCU 硬件,并通过标准化的接口和服务,AUTOSAR 使得应用软件可以在不同的 MCU 平台上运行,只需适配底层驱动即可。但目前也基本上被国外垄断,开发工具链成本极高,虽然目前针对智驾系统,越来越多的非 AUTOSAR 软件架构得以应用,但在传统的硬实时和安全性要求较高的控制系统,AUTOSAR 依然有着不可撼动的地位!
03.SBC:安全监控解决方案
系统基础芯片 (SBC, System Basis Chip)是一种集成了电源管理、通信接口、监控诊断和安全监控等功能的独立芯片。
SBC 的设计初衷是为实现特定功能提供一种高效、低成本的解决方案。它可以为传感器供电、进行数据通信或提供外部独立看门狗服务,时钟等。相比完整的微控制器(MCU),SBC 通过精简设计降低了成本,专注于提供特定的功能,因此本质上可以看作是为特定应用场景优化的简化版 MCU。
以 NXP FS86 基础芯片为例,其结构如下图所示:
其中,FS26 具有多个开关模式稳压器以及 LDO 稳压器,可为微控制器、传感器、外设 IC 和通信接口供电。FS26 为系统提供高精度电压参考,并为 2 个独立的电压跟踪稳压器提供参考电压。此外,还提供各种功能用于系统控制和诊断,例如模拟多路复用器、GPIOS 和可选的 I/O 唤醒事件、长持续时间定时器或 SPI 通信。
FS26 符合 ISO 26262 标准,涵盖 ASIL B 和 ASIL D 安全完整性等级。它具有多个故障安全输出,成为安全导向系统分区的完整组成部分,并具有最新的按需潜在故障监控功能,例如,在启动期间处理错误(例如,逻辑自测试(LBIST)、内存自测试(MBIST)),Software Watchdog Timer (WDT),Memory Protection Unit (MPU)等等。
所以在功能安全监控架构中,包括经典的三层 E-Gas 架构,SBC 芯片经常作为独立的监控芯片,对主 MCU 实施监控,对其提供看门狗,中断等服务,具体如下图所示:
写在最后:
芯片系列,解密汽车处理器 CPU、MCU、SBC 相关的内容我们就聊完了,希望能够给朋友们对其带来更多理解。
END
作者:AUTO GENERATION
来源:汽车MCU软件设计
推荐阅读:
- 特斯拉 Cybertruck之E/E 电子电气架构分析
- 高通、英伟达、Mobileye 等十大汽车芯片厂家 2024 年总结与 2025 展望(下)
- 持续低迷!十大汽车芯片厂家 2024 年总结与 2025 展望(上)
- AI 大模型及汽车应用研究:推理、降本和可解释性
更多汽车电子干货请关注汽车电子与软件专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。