多核架构的基本概念

目录

1.为什么使用多核

2.多核分类

[2.1 同构和异构](#2.1 同构和异构)

[2.2 SMP和AMP](#2.2 SMP和AMP)

[3 小结](#3 小结)


1.为什么使用多核

这个问题个人认为可以从两个方面来看:

  • 性能问题

随着汽车ECU对集成化的要求越来越高,把多个ECU功能集中到一个多核MCU的需求也越来越明显。

以汽车制动相关的One-Box为例,在设计上集成ESC功能,机械上和制动相关的eBooster共用一套液压系统,相比传统的真空助力器,两者协调工作,能够精准高效地支持驾驶员或智能驾驶系统的制动请求。

以往单核MCU在主频、存储等资源上捉襟见肘,例如在电机控制上高频中断(50us-100us)是常见应用,如果只是单核处理,系统负载上到90%非常正常;因此如果能有一个核单独运行处理这些,另一个核做常规应用和底层软件,就能更好地提升系统性能。

  • ECU不同工作负载对芯片的不同需求

这个最常见就是智驾域和座舱域,需要兼顾高性能和高实时性,高性能主要负责大数据运算,高实时性主要用于控制。

以座舱域为例,目前多基于SoC+MCU的组合,如下图:

左侧MCU作为车内通讯接口,负责CAN数据的解析和转发、电源管理、诊断故障处理、功能安全管理等,常见芯片如RH850-F1KM、TC377;

右侧SoC主要负责高性能计算,例如IVI各种娱乐应用、视频、摄像头数据处理,芯片例如高通6155、8155、8195等等;

同样的,随着电子电气架构的不断演进变革,计算硬件单元更加集中,ECU 芯片的数量也会大幅减少,软件不再基于特定的 ECU 来开发,因此需要使用支持不同工作负载的计算芯片(System on Chip)和标准化的编程接口。

2.多核分类

所谓多核(Multicore),其实就是在同一Die上面有多个CPU,这些CPU通过芯片内部总线互联起来,因此多核可以以不同视角来进行分类。

2.1 同构和异构

从硬件视角来看,多核架构可以分为同构多核和异构多核。

同构多核(Homogenous):具备相同微架构的core集成到一颗芯片;

异构多核(Heterogeneous):不同微架构的Core集成到一颗芯片;

从目前常用的车规MCU趋势来看,在一颗芯片上可能会同时看到同构和异构多核,我们以英飞凌TC37x为例,它包含内核有TriCore、Cortex-M3(HSM)、MCS(GTM)、XC800(SCR)等,如下图所示(蓝色箭头表示异构,绿色方框表示同构):

在上图中我们可以看到,除了同构和异构,在TriCore里还有一个Checker Core,这就是我们看过但是基本不怎么在意的锁步多核(LockStep Multicore)。

为啥会有锁步多核这个东西呢?这还得从功能安全角度来看,在这个视角里,有一类故障会让软件感到非常痛苦,那就是瞬态故障(Transient Fault):非永久存在但会偶发的故障。一般这个故障由辐射引起,极端情况下辐射会造车内核寄存器、存储器上的值发生变化,虽然这时候软件或者硬件都无故障,但仍旧出现了偏离预定行为的现象。这类错误无法预见,Debug也可能无法复现,基于此,锁步多核出现了,这一对锁步核的两个core会执行同一份代码,一般情况在输入时CheckCore会延迟几个时钟周期执行,在输出时主Core会相应延迟相同周期,由硬件比较输出是否一致,不一致则出现lockstep错误。

锁步核的出现,能够在极大减少软件开销的情况下时系统达到高功能安全等级(例如ASIL D)。

2.2 SMP和AMP

那么从软件角度来看,多核系统又可以分为SMP和AMP。

SMP(Symmetric Multi-Processing,对称处理):所有核运行同一套程序;

AMP(Asymmetric Multi-Processing,非对称处理):不同核运行不同程序;

需要注意的是,SMP只能在同构多核的硬件架构下实现,因为内核指令集、寄存器等均相同,在软件实现就不太需要考虑平台兼容的问题,但需要通过Core ID来调度当前任务执行,如TC3xx的iLLD代码:

AMP表示不同核运行不同程序,不管在同构还是异构多核硬件下都可以实现,但是由于指令集、操作系统的不同,对于公共资源的访问会存在竞争,为了避免资源冲突,AMP设计上还需要提供访问共享硬件组件的标准化接口。

举个例子,TriCore执行正常的应用任务,但HSM运行的是加解密服务任务,二者交互通过IPC、Mailbox,如果共享资源(RAM)没有做好权限划分就很容易出现问题。

3 小结

需要注意的是,AMP&SMP、同构&异构是在不同视角下对于多核架构的定义,同构多核的硬件架构既可以支持SMP,还可以支持AMP的软件设计,但是异构多核的硬件架构只能支持AMP软件设计,如下图:

相关推荐
哔哥哔特商务网8 小时前
一文探究48V新型电气架构下的汽车连接器
架构·汽车
电子科技圈9 小时前
IAR与鸿轩科技共同推进汽车未来
科技·嵌入式硬件·mcu·汽车
电子科技圈15 小时前
XMOS携手合作伙伴晓龙国际联合推出集成了ASRC等功能的多通道音频板
科技·嵌入式硬件·mcu·物联网·音视频·iot
7yewh17 小时前
嵌入式硬件杂谈(四)-高速板PCB设计 高速信号全面讲解 蛇形线 等长线 差分对 阻抗对
驱动开发·嵌入式硬件·mcu·物联网·硬件工程·pcb工艺·精益工程
思尔芯S2C18 小时前
面向未来的智能视觉参考设计与汽车架构,思尔芯提供基于Arm技术的创新方案
arm开发·架构·汽车·iot·fpga原型验证·prototyping·智慧视觉
IT生活课堂19 小时前
Android智能座舱,视频播放场景,通过多指滑屏退回桌面,闪屏问题的另一种解法
android·智能手机·汽车
linux_carlos1 天前
#lwIP 的 Raw API 使用指南
stm32·单片机·mcu·物联网·rtdbs
EasyCVR1 天前
ISUP协议视频平台EasyCVR私有化视频平台新能源汽车充电停车管理方案的创新与实践
大数据·网络·汽车·音视频·h.265·h.264
liu_endong1 天前
杰发科技AC7840——EEP中RAM的配置
mcu·杰发科技·autochips·车规芯片
King~30+1 天前
STM32--中断使用(超详细!)
stm32·单片机·嵌入式硬件·mcu