多核架构的基本概念

目录

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

相关推荐
盟接之桥3 小时前
跨越数字鸿沟,重塑全球信任:盟接之桥EDI如何以长期主义赋能中国制造出海
网络·人工智能·安全·汽车·制造
苏州邦恩精密9 小时前
蔡司3D扫描仪采购要点及厂家服务能力分析
人工智能·科技·3d·自动化·汽车
2501_948106919 小时前
计算机毕业设计之jsp-智慧旅游分享平台
java·开发语言·spark·汽车·课程设计·旅游
天天爱吃肉821810 小时前
# 商用车多体动力学整车仿真学习笔记(开篇总览)
人工智能·笔记·python·功能测试·学习·汽车
GeekArch13 小时前
第8讲:裸机单片机项目——Vibe快速迭代的最优边界
c语言·stm32·单片机·嵌入式硬件·mcu·物联网·ai编程
制冷技术咨询与服务1 天前
汽车内接线介绍
汽车·汽车内接线介绍
GeekArch2 天前
第5讲:嵌入式场景二范式决策树:什么情况快写、什么情况严写
人工智能·stm32·单片机·mcu·物联网·决策树·机器学习
开目软件2 天前
2026年汽车及零部件PLM系统选型指南:智造升级加速度!
大数据·汽车·制造·工业软件·plm·开目软件·开目plm
博图光电2 天前
博图汽车零配件视觉检测与测量解决方案
人工智能·汽车·视觉检测
诸葛说抛光2 天前
国内大型汽车改装展览会定展 佛山改装 佛山汽车赛事
python·汽车