一“芯”多用——基于多核处理器的汽车软件开发应用

原标题:一“芯”多用——基于多核处理器的汽车软件开发应用

联合电子

汽车电子控制单元作为分布在车身内部的一个个“汽车大脑”,承载着对汽车实时数据分析,计算,处理,执行和发送等一系列功能。在汽车上有着广泛且多变的应用场景。随着汽车电子控制单元集成度的提升,以及AUTOSAR等新型软件架构的逐渐普及,电子控制单元的软件复杂度也随之成指数倍数的提高。数据显示每7-10年软件升级所带来的算力开销就需要翻一倍,且这个过程呈逐渐加速的态势。那么,提升汽车电子控制单元的计算能力也就成了必须要突破的技术要点。

从技术角度出发,满足日益增长的软件算力需求的方法有两种:

  • 提高单个处理器运行的速度
  • 在单个处理器运行速度一定的情况下,增加处理器数量(多核并发处理)

对于传统的单核控制器产品,联合电子早期的平台都是通过提高单核控制器的运行速度来满足软件对算力的需求,而对于单核的产品来说,软件指令总是顺序的被单个核执行,系统的运行速度越高就意味着单位时间内,能够处理的软件指令越多。同时,由于单核控制器在同一时刻只会执行一条指令,整个系统在数据存取,任务抢占等问题上都会基于所有的指令都是顺序执行的这个前提,可以通过理论分析预估出整个系统的动态运行过程。如今,因为硬件物理极限的逼近,通过提高单核运行速度来满足算力增长需求的方式已经越来越困难了。那么,在单个处理器运行速度一定的情况下,通过增加处理器数量来满足算力需求的方法就呼之欲出了。通过增加处理器的数量,在同一时刻,就可以有多个处理器同时工作,即便所有处理器运行速度都与以前保持一致,整个控制器可以同时执行软件指令也变多了,即控制器的算力提高了。但同时,由于引入了多处理器的机制(多核机制),从前的单核顺序执行软件指令的前提被打破了,在同一时刻,可能有多个处理器在同时工作,分别执行着各自的软件指令。那么,多处理器之间软件任务如何分配,如何协同,如何验证软件在多核系统上的一致性和可靠性都变成了需要解决的新问题。

目前,联合电子新一代的发动机控制器UD8,UP8整车控制器VCU车身控制器BCM等平台采用了多核技术并为应对新能源汽车多样化的软件需求准备了充足的算力资源。对于一个多核系统来说,软件需要考量如何将原本全部分配在一个核上执行的完整功能,拆分成若干个子系统,分别分配到多个不同的处理器上,并且保证这些子系统之间相互可以协同工作。例如,联合电子在某混动车项目上,将整车控制功能和变速箱控制功能集成到了同一个控制器平台中,并利用多核处理器的特性将原本需要两个单核控制器来处理的任务,集成到了同一个控制器里。目前,联合电子使用平台多为多核芯片,在软件设计上分别给其定义了各自的执行内容,其软件使用场景布置如下(图1):

  • 外设核(Peripheral Core):在该处理器上主要运行整个控制器内部或外部的通讯相关任务。对于通讯来说,通常需要快速的响应,且发生的时刻没有固定的规律,因此,软件上使用了各种软件中断资源,去快速的响应各类通讯请求。
  • 锁步核(Locked Core):在该处理器上主要运行周期任务及功能安全相关任务。其包括了整个控制器主体的服务功能,例如输入输出信号处理,故障检查等等软件逻辑。锁步核上主要构造类似单核处理器的工作环境,方便移植单核处理器的功能。
  • 性能核(Performance Core):在该处理器上主要运行复杂驱动相关任务,控制一些特殊的执行器或处理复杂的信号等。

图1

该技术具有以下优势:

  • 提高软件运行效率

在单位时间内,3个处理器可以并发的同时处理各自的任务,不会互相干扰,等于提高了单位时间内的运算量。

  • 更稳定的运行环境

由于发生时刻不固定的中断任务与发生时刻相对规律的周期任务分配到了两个不同的处理器上,相较于单核的处理器,可以减少由于中断引入的周期任务运行波动,以获得更稳定的运行状态。例如,对于传统的单核控制器,所有喷油点火和发动机的同步任务都得在同一个处理器上完成,当系统负荷过高时,会导致控制器崩溃无法工作的后果。联合电子在新一代发动机控制器UD8中,依靠多核的机制实现了软件性能的优化,将原本软件负荷波动剧烈的任务作出了合理的划分,使控制器的运行更为可靠。

  • 更好的可移植性

由于所有的周期任务都布置在了同一个核上,从单核的老平台移植功能时,也相对减少了影响,便于功能的移植。

面向未来技术发展,联合电子在多核技术的探索与实践中不断积累技术经验,对多处理器的协同工作,并发任务设计以及处理器之间数据同步等方面都有极为深入的理解,同时,为客户提供更多样化的产品选择以及优质的技术服务。返回搜狐,查看更多

责任编辑:

声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
免费获取
今日搜狐热点
今日推荐