[发明专利]一种在VxWorks SMP启动过程中使用原子操作的方法有效
申请号: | 202011520754.1 | 申请日: | 2020-12-21 |
公开(公告)号: | CN112596796B | 公开(公告)日: | 2022-09-20 |
发明(设计)人: | 刘鹏飞;张锋;朱建平;陈天 | 申请(专利权)人: | 苏州长风航空电子有限公司 |
主分类号: | G06F9/4401 | 分类号: | G06F9/4401 |
代理公司: | 北京清大紫荆知识产权代理有限公司 11718 | 代理人: | 李思琼;张卓 |
地址: | 215151 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 vxworks smp 启动 过程 使用 原子 操作 方法 | ||
本发明提供了一种在VxWorks SMP启动过程中使用原子操作的方法,包括:步骤a、设备上电,VxWorks通过引导程序进入在RAM中执行的第一个函数sysInit;步骤b、建立MMU页表;步骤c、开启数据D‑cache、指令I‑cache及使能MMU;步骤d、workQInit函数被调用,VxWorks SMP系统中可以使用原子操作指令ldrex和strex;步骤e、kernelInit函数初始化并启动内核,完成后续的初始化过程,之后VxWorks SMP系统进入待工作状态。本发明实现了在VxWorks SMP启动过程中workQInit函数处对临界资源数据进行原子操作,相对于纯软件实现的原子操作,本发明执行效率高,成本低。
技术领域
本公开涉及原子操作技术领域,尤其涉及一种在VxWorks SMP启动过程中使用原子操作的方法。
背景技术
从1970开始处理器性能增加是由时钟频率的提高来推动的,从过去的1MHz到当今的几GHz,晶体管的几何尺寸不断缩小,而允许处理器中的晶体管数量从最初的2300增加到10亿个以上,与此同时处理器的电源电压也在降低,芯片级功耗随着性能的提升而增加。但是今天,由于功耗的限制,处理器性能很难再由时钟频率来驱动了,采用双核或多核处理器,能够在不大幅提高系统功耗的情况下显著提升处理性能。
目前而言,主要有两种模式支持多核嵌入式操作系统:同构多核(SymmetricMulti-Processing,SMP)模式和异构多核(Asymmetric Multi-Processing,AMP)模式。VxWorks SMP是风河公司为VxWorks设计的symmetric multiprocessing(SMP)系统。它与风河公司的uniporcessor(UP)系统一样,具备实时操作系统的特性。VxWorks SMP是同构多核技术,VxWorks SMP所有CPU只跑一个操作系统副本,由操作系统来给各个APP应用程序分配CPU核。VxWorks SMP系统实现了各处理器对设备以及存储器的共享,各个CPU核之间需要在操作系统层实现协作,以防止对资源的并行存取从而发生的竞争。由于CPU核之间的协作关系的程度不同,VxWorks SMP系统通常被称作“紧耦合多处理”系统。
原子操作是为了保证临界资源数据的原子性,防止多核对该数据的竞争,这在SMP多核操作系统中至关重要。对于VxWorks SMP多核平台,在VxWorks SMP启动时workQInit函数处存在临界资源数据,因此必须使用原子操作命令以保证数据的原子性。
自从ARM V6架构开始支持SMP多核技术,通过ldrex与strex指令来保证临界资源数据操作的原子性,比如自旋锁的上锁操作、原子变量操作等。事实上,在ARM平台下,实现原子操作指令ldrex及strex需要local monitor和globalmonitor的支持,local monitor硬件厂商都会实现,而对于global monitor,VxWorks SMP操作系统默认芯片在硬件层设计了总线监听,即实现了global monitor的功能,在workQInit函数处可以直接使用原子操作指令ldrex与strex指令来保证临界资源数据操作的原子性。对于硬件上未实现总线监听的设备,可以采用纯软件算法来实现原子操作,如Lamport面包店算法等,但使用此类方法,设计复杂,执行开销大,效率低。
因此如何更好的在VxWorks SMP启动过程中workQInit函数处对临界资源数据进行原子操作,这对于操作系统软件开发人员提出了挑战。
发明内容
本发明的目的是解决上述现有技术存在的问题,针对ARM平台下VxWorks SMP启动过程中在workQInit函数处开始需要使用原子操作的问题,提出一种在VxWorks SMP启动过程中使用原子操作的方法。
为了达到上述目的,本发明所采用的技术方案为:
一种在VxWorks SMP启动过程中使用原子操作的方法,包括如下步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州长风航空电子有限公司,未经苏州长风航空电子有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011520754.1/2.html,转载请声明来源钻瓜专利网。