多核架构的基本概念

目录

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软件设计,如下图:

相关推荐
委员17 小时前
基于NodeMCU的物联网空调控制系统设计
单片机·mcu·物联网·智能家居
samLi06202 天前
中国新能源汽车&公共充电桩数据合集(2002-2023年)
汽车
怿星科技2 天前
怿星科技联合赛力斯举办workshop活动,进一步推动双方合作
汽车
TSINGSEE2 天前
新能源汽车充电需求攀升,智慧移动充电服务有哪些实际应用场景?
汽车
CASAIM2 天前
模具制造之三维扫描和逆向建模
目标检测·3d·汽车·制造
百感水佩2 天前
NOTEBOOK_11 汽车电子设备分享(工作经验)
汽车
开源网安2 天前
安徽移动携手开源网安亮相2024中国国际车联网技术大会,共筑车联网安全新壁垒
物联网·安全·汽车·车联网
Q_19284999063 天前
基于Spring Boot的新能源汽车个性化推荐系统
spring boot·后端·汽车
高工智能汽车3 天前
踩准智能汽车+机器人两大风口,速腾聚创AI+机器人应用双线爆发
人工智能·机器人·汽车
奇文怪式3 天前
在【Arduino IDE】中在线下载和离线下载【ESP系列开发板的SDK】
c++·ide·单片机·mcu