下面这个图非常形象的展示了汽车行业从单核MCU到多核MCU所增加的难度。
为什么早已在其它领域成熟应用的多核处理器,在汽车领域却显得那么难呢?
一种解释是:
其它领域的多核处理器大多都是MPU,而不是MCU,在其上面运行的大多为Linux、Windows等基于进程/线程进行调度的中大型操作系统,而不是OSEK或AUTOSAR OS所定义的Task。本质上,这种基于Thread的任务组织形式属于“应用并行”的模式,即运行在OS之上的各个Application之间彼此相对独立,应用开发时不需要考虑多核间任务分配的问题,多核之间的资源调度与协调由底层的OS负责,对应用几乎透明。
而汽车ECU内的应用功能大多按照单核环境进行设计,实现各项功能的函数(如Runnable)难以转换为并行执行。
对此,大家怎么看?
德国嵌入式时序专家Gliwa给出的建议见:汽车电子领域中多核MCU应用指南