车控多核操作系统任务间数据交互实现方法研究

上传人:夏** 文档编号:499360397 上传时间:2024-02-26 格式:DOCX 页数:6 大小:188.36KB
返回 下载 相关 举报
车控多核操作系统任务间数据交互实现方法研究_第1页
第1页 / 共6页
车控多核操作系统任务间数据交互实现方法研究_第2页
第2页 / 共6页
车控多核操作系统任务间数据交互实现方法研究_第3页
第3页 / 共6页
车控多核操作系统任务间数据交互实现方法研究_第4页
第4页 / 共6页
车控多核操作系统任务间数据交互实现方法研究_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《车控多核操作系统任务间数据交互实现方法研究》由会员分享,可在线阅读,更多相关《车控多核操作系统任务间数据交互实现方法研究(6页珍藏版)》请在金锄头文库上搜索。

1、车控多核操作系统任务间数据交互实现方法研究 孙忠刚1 张晓谦1 刘超1 李岩11,中国第一汽车股份有限公司技术中心,汽车电子部,吉林省长春市创业大街1063号,130011【摘要】在汽车电控系统中,微处理器正逐步由单核过渡到多核。单核操作系统任务间数据交互实现方法不能解决多核微处理器核间任务交互数据的数据一致性问题。针对此问题,本文提出了一种适用于多核微处理器的改进方法。该方法利用汽车电子开放式架构(Automotive Open System Architecture, AOTUSAR) OS提供的自旋锁机制1及内存缓存方法,保证交互数据在被访问过程中,数据一致性不被破坏,有效解决了多核微处

2、理器上任务间数据交互问题。此方法容易实现,且原有软件由单核过渡到多核,软件改动量小,现已应用于一汽发动机控制器项目中。【关键词】 多核微处理器软件,AUTOSAR OS,任务间数据交互,数据一致性Research on the implementation of data interaction between tasks in multi-core Operation System in vehicle control systemSun Zhonggang1, Zhang Xiaoqian1, Liu Chao1, Li Yan11. FAW Corporation limited R&D

3、 center, ChinaABSTRACT In the electronic control system for automotive vehicle, the microcontroller is transforming from single core to multi-core. The implementation of data interaction between tasks in single core operating system can not resolve the data consistency problem when the tasks on the

4、different cores do the data interaction. To solve this problem, An improved implementation was put forward. The AUTOSAR OS SpinLock mechanism and memory cache method was used in this implementation, which can ensure that the data consistency is not destroyed when the data is being accessed. The impl

5、ementation was easily to be realized and the software change is very small, has been verified in FAW engine electronic control system.KEYWORDS Multi-Core software, AUTOSAR OS, Data interaction between tasks, Data consistency 1. 引言随着汽车排放法规要求日趋严格,用户需求不断增多,发动机控制功能越来越复杂,汽车电控系统软件规模越来越大,单核微处理器资源及处理速度逐渐逼近上

6、限。汽车半导体厂商纷纷推出了针对动力总成控制的多核微处理器。发动机控制器主芯片由单核微处理器变为多核微处理器是一种必然趋势。 微处理器由单核过渡到多核,单核操作系统任务间数据交互实现方法不能解决多核微处理器核间任务交互数据的数据一致性问题。本文以AUTOSAR1操作系统为基础,介绍了汽车电控系统中任务间的数据交互类型、分析了原有单核操作系统任务间数据交互实现方法在多核微处理器上应用存在的问题,提出了适用于多核微处理器的改进方法。2. 任务间数据交互类型介绍在汽车电控系统中,任务间交互的数据有两种类型。一种是交互的数据之间存在关联关系,另一种是交互的数据之间不存在关联关系。如图1所示,操作系统中

7、有两个任务TaskA(高优先级)和TaskB(低优先级),在运行过程中, TaskB需要对数据VarA和VarB写访问,TaskA需要对这两个数据读访问。图1 任务间数据交互图数据间存在关联关系是指,TaskA在使用数据VarA和VarB时,VarA和VarB的对应关系必须存在。即在任务TaskA中,参与计算的变量VarA和VarB或者是TaskB 更新之前的数值0和80,或者是TaskB 更新之后的数值80和100。若对应关系被破坏,Task A 将会得到错误的运行结果。数据间不存在关联关系是指,数据VarA与数据VarB在任务TaskA中独立参与运算,数据值的更新时机不对TaskA结果正确

8、性产生影响。当一个交互数据的长度大于机器字(word)时,数据值的更新需要多条指令完成,则该数据交互的实现方案应按照关联数据类型来处理。3. 单核操作系统任务间数据交互实现方法在多核微处理器上应用存在的问题3.1 关联数据交互实现方法及存在的问题在汽车电控系统中,任务间交互数据的关联性是通过在任务访问交互数据过程中禁止任务切换保证的。具体实现方法有两种:一是在访问交互数据之前关闭中断,在访问交互数据之后开中断,避免在访问交互数据过程中触发任务调度;二是在访问交互数据之前申请调度器资源1,在访问交互数据之后,释放调度器资源,保证在访问交互数据过程中,不发生任务抢占。在多核微处理器中,若参与数据交

9、互的两个任务在同一个核上,上述解决方法仍然有效。但是当参与数据交互的两个任务在不同的核上时,两个任务是完全并行的,上述实现方法,在某些情况下,数据的关联性会被破坏。图2演示了数据关联性被破坏的情况。图2 核间任务数据交互图如图2所示,在Task A(Core0 上任务) 运行过程中,需要读取数据VarA和VarB,且两个变量存在关联关系。但在Task A 读取变量过程中,Task B(Core1上任务)更新了VarB的值,VarA与VarB的对应关系被破坏,从而导致Task A会执行错误的控制行为。综上所述,在多核微处理器中,单核操作系统任务间关联数据交互实现方法是不可用的。3.2非关联数据交

10、互实现方法及存在的问题任务间非关联数据交互有两种类型,一种是在任务运行期间,任务只读取数据一次,另一种是在任务运行期间,任务需要读取数据多次。在单核微处理器中,针对第一种数据交互类型,参与数据交互的任务在读取数据时不需要特殊处理,与读取普通数据相同;针对第二种数据交互类型,数据的稳定性是通过避免在多次数据读取过程中产生任务切换来保证的,具体实现方式与任务间关联数据交互实现方法相同,在此不再赘述。在多核微处理器中,针对第一种任务间非关联数据交互类型,现有数据交互实现方法可以直接应用。针对第二种数据交互类型,不同核上参与数据交互两个任务是完全并行的,某些情况下,交互数据的稳定性会被破坏。图3演示了

11、数据稳定性被破坏的情况。图3 核间任务数据交互如图3所示,Task A(Core0上任务)运行过程中,需要读取变量VarA两次,在对VarA两次读取之间,Task B(Core1上任务)更新了VarA的值,VarA的稳定性被破坏,从而导致TaskA执行错误的控制行为。综上,任务一次运行过程中,需多次读取非关联数据的情况,单核操作系统中的实现方法,应用在多核微处理器上是不可行的。4. 适用于多核微处理器任务间数据交互的改进方法4.1关联数据交互改进方法在多核微处理器中,针对同一个核上任务间关联数据交互,采用现有方法;针对不同核上任务间关联数据交互,本文提出采用原子访问与本地缓存相结合的方法。方法

12、具体流程如图4。如图4所示,针对参与核间数据交互的任务,首先在任务起始处定义与交互数据同类型、等数量的局部变量,然后申请自旋锁1(自旋锁是AUTOSAR OS提供的一种锁机制,它用于实现资源互斥访问。),将交互数据的值拷贝到局部变量中。若任务不需要将更新后的数据写回到交互数据中,则直接释放自旋锁1;否则基于局部变量进行数值更新操作,然后将更新后的值写回到全局交互数据,释放自旋锁1。图4 任务核间数据交互流程图4.2 非关联数据交互改进方法针对任务在运行过程中仅需读取一次交互数据的情况,采用与读取普通数据相同的方式,不做特殊处理。针对任务在运行过程中需读取多次交互数据的情况,采用本地缓存机制,操

13、作过程如图5所示。图5 多核任务之间非关联数据交互过程在任务TaskA(Core0上任务)开始处,定义与交互数据VarA同类型的局部变量Local_VarA,将变量VarA的值读取到本地变量Local_VarA中,在Task A之后的运行过程中,基于本地变量Local_VarA 进行操作。5. 总结本文分析了单核操作系统任务间数据交互实现方法在多核微处理器上应用存在的问题,阐述了问题出现时对应的应用场景;通过研究,在现有方法基础上,增加了针对多核微处理器核间任务数据交互的解决方法,解决了多核微处理器上操作系统任务间数据交互问题。本文研究的多核操作系统任务间数据交互实现方法已经在一汽发动机控制器项目中应用。该方法容易实现,且原有的软件由单核过渡到多核时,软件改动量小。目前在国内,多核微处理器在汽车电控领域中应用还处于起步阶段,本文研究成果具有一定的参考意义。参考文献1 AUTOSAR. Specification of Operation System DK . 2015

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 国内外标准规范

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号