车控多核操作系统任务间数据交互实现方法研究_第1页
车控多核操作系统任务间数据交互实现方法研究_第2页
车控多核操作系统任务间数据交互实现方法研究_第3页
车控多核操作系统任务间数据交互实现方法研究_第4页
车控多核操作系统任务间数据交互实现方法研究_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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 非关联数据交互改进方法针对任务在运行过程中仅需读取一次交互数据的情况,采用与读取普通数据相同的方式,不做特殊处理。针对任务在运行过程中需读取多次交互数据的情况,采用本地缓存机制,操作过程如图5所示。图5 多核任务之间非关联数据交互过程在任务TaskA(Core0上任务)开始处,定义与交互数据VarA同类型的局部变量Local_VarA,将变量VarA的值读取到本地变量Local_VarA中,在Task A之后的运行过程中,基于本地变量Local_VarA 进行操作。5. 总结本文分析了单核操作系统任务间数据交互实现方法在多核微处理器上应用存在的问题,阐述了问题出现时对应的应用场景;通过研究,在现有方法基础上,增加了针对多核微处理器核间任务数据交互的解

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论