解密汽车嵌入式芯片:CPU、MCU与SBC的差异与应用
解密汽车嵌入式芯片:CPU、MCU与SBC的差异与应用
随着汽车电子控制系统逐渐向集中化方向发展,软件的复杂度也在不断增加,芯片作为汽车电气化和智能化的核心载体,其重要性日益显著。对于自动驾驶系统而言,其技术的实现依赖于对大量传感器数据的实时处理,需要采用深度学习,机器学习算法,保证这些数据在极短时间内进行处理和分析,以确保车辆能够做出及时且准确的决策。这不仅要求芯片具有超强的计算能力和高速数据处理能力,同时还需要低延迟和高可靠性,安全性,以确保驾驶安全。
谈起汽车芯片或者汽车控制单元,很多朋友脑海中可能立刻会浮现出以下概念: CPU (Central Processing Unit)、MCU (Microcontroller Unit)、GPU (Graphics Processing Unit)、SOC (System on Chip),SBC(System Basis Chip)等等。但它们到底有什么本质区别,各自的功能,架构以及应用场景有什么不同,借着芯片系列的开篇文章,今天首先针对CPU,MCU,SBC这些基本的芯片概念进行阐述,剩余的GPU, SoC相关内容我们下篇再聊!
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相关的内容,这块内容我们下一篇文字再细聊,朋友们有个概念就行。
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依然有着不可撼动的地位!
SBC:安全监控解决方案
系统基础芯片 (SBC,System Basis Chip)是一种集成了电源管理、通信接口、监控诊断和安全监控等功能的独立芯片。
SBC的设计初衷是为实现特定功能提供一种高效、低成本的解决方案。它可以为传感器供电、进行数据通信或提供外部独立看门狗服务,时钟等。相比完整的微控制器(MCU),SBC通过精简设计降低了成本,专注于提供特定的功能,因此本质上可以看作是为特定应用场景优化的简化版MCU。
以NXPFS86基础芯片为例,其结构如下图所示:
其中,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实施监控,对其提供看门狗,中断等服务,具体如下图所示: