基于多核处理器的实时任务调度方法

文档序号:6428699阅读:428来源:国知局
专利名称:基于多核处理器的实时任务调度方法
技术领域
本发明涉及计算机实时任务调度方法,特别涉及一种基于多核处理器的实时任务调度方法。
背景技术
在嵌入式系统中使用多核技术,是近年来单片机技术发展的一大亮点。在嵌入式应用领域,特别是控制领域,多核技术具有明显的优势,能显著提高系统的可靠性。同时,随着集成电路工艺及片上系统(System On Chip)的发展,带有双核技术的单片机逐渐走向低成本及高可靠性,这使其在工业控制,仪器仪表和家用电器等领域等得到了广泛的应用。能够正确运行并且同时满足特定的逻辑和时间关系的系统被称为实时系统。目前嵌入式领域的解决方案是使用实时多任务操作系统(Real-Time multi-task Operating System)来保证任务的实时性。实时内核通常分为协作式内核和占线式内核。但不管是何种内核,都有一个特定的时钟节拍(Time Tick),时钟节拍是一个周期性的中断,系统在每个时钟节拍到来时,对各个任务的延时做出裁决。时钟节拍越快,任务的定时精度越高,但系统的额外开销就越大,一般来说会给CPU核心带来2% 10%的额外负荷。实时内核提供的基本服务是任务切换,其中每个任务都被赋予一定的优先级,有着自己的一套CPU寄存器和自己的栈空间,这种数据结构会增加系统的RAM用量,内核本身的代码也增加了系统的ROM用量。另外,稳定的实时操作系统大都是商业内核,其价值不菲。综上所述,如需设计一个所有实时任务均为循环调度的周期性任务,且对任务时间精度要求高,能对外来事件在限定时间内能做出相应反应的实时嵌入式系统。上述的基于实时操作系统的调度方法就有着不可避免的CPU负荷高,资源占用多,性价比低及开发门槛高的弊端。

发明内容
本发明的目的是提供一种基于多核处理器的实时任务调度方法,以解决现有的基于实时操作系统的任务调度方法CPU负荷高,资源占用多,性价比低及开发门槛高的问题。本发明提出一种基于多核处理器的实时任务调度方法,包括以下步骤(1)分配实时周期任务的对应中断源给主处理器。(2)分配时钟节拍中断源给辅助处理器。(3)定义每个实时周期任务对应的中断优先级。(4)辅助处理器的时钟节拍按既定周期依次触发主处理器中各实时周期任务的对应中断源。(5)主处理器根据各实时周期任务对应中断源的优先级,切换对应的任务。进一步的,所述实时周期任务的任务代码存放在中断源的中断服务函数中。进一步的,辅助处理器的时钟节拍按既定周期依次触发主处理器中各实时周期任务的对应中断源时包括以下步骤(1)时钟节拍中断时,辅助处理器判断是否有实时周期任务进入就绪状态。(2)若无,则中断返回。(3)若有,则触发主处理器对应的中断源。
进一步的,主处理器切换任务时包括以下步骤(1)主处理器接收辅助处理器发送来的中断触发信号源。(2)主处理器保存当前工作信息。(3)主处理器进行任务切换。 (4)主处理器读取工作信息,并恢复中断前的工作状态。相对于现有技术,本发明的有益效果是本发明采用辅助处理器处理时钟节拍中断,并用中断服务来代替实时操作系统,以达到周期性实时执行,且无须使用实时操作系统,降低了系统成本的同时,也降低了开发门槛。相比以往的实时内核方案,本发明的方法可以节省系统的R0M,RAM存储空间,资源占用量少。同时,由于繁重的时钟中断交由辅助处理器响应,大大减轻了主处理器的负荷,使得主处理器的执行时间为固定值,保证了任务的实时运行,提升了系统的实时性,同时,高频率的时钟节拍也提高了任务的计时精度。


图1为本发明基于多核处理器的实时任务调度方法的一种实施例流程图。
具体实施例方式本发明的方法特别适用于嵌入式系统,其通过中断服务实现了周期性实时任务的调度,并利用多核处理器的性能优势,将繁重的时钟节拍中断交给辅助处理器来响应,大大减轻了主处理器的负荷,从而也保证任务的实时运行。本发明的方法适用于双核处理器或多核处理器的任务调度,以下结合附图具体说明本发明。请参见图1,其为本发明基于多核处理器的实时任务调度方法的一种实施例流程图,其包括以下步骤S101,分配实时周期任务的对应中断源给主处理器。按实时周期任务数目定义多个空闲的中断源,并将这些中断源交给主处理器响应,每个中断对应一个周期性的实时任务,任务代码放在中断服务函数中。这样,主处理器的中断响应就能驱动对应的任务线程。S102,分配时钟节拍中断源给辅助处理器。将时钟节拍中断源交给辅助处理器响应。这样,繁重的时钟节拍中断就不会增加主处理器的负荷,让主处理器专注于任务级处理,同时还能保证实时任务拥有很高的定时精度。S103,定义每个实时周期任务对应的中断优先级。为每个实时任务对应的中断分配自己的优先级,任务越重要,对应中断源的优先级就越高。同时把最高优先级分配给时钟节拍中断源。S104,辅助处理器的时钟节拍按既定周期依次触发主处理器中各实时周期任务的对应中断源。所述的既定周期是指分配给主处理器的各个实时任务的周期,在辅助处理器响应时钟节拍中断时,会进行周期计数。即在时钟节拍中断时,辅助处理器会判断是否有实时周期任务进入就绪状态,若无,则中断返回;若有,则向主处理器发出中断触发新号。例如,假设一个时钟节拍是3 μ S,一个实时任务的周期是12 μ S,则辅助处理器分别会在4个、8个、 12个等4的整数倍个时钟节拍时,向主处理器发送中断触发信号,以触发主处理器对应的中断源,让主处理器决定是要运行该任务还是要切换其它任务。
S105,主处理器根据各实时周期任务对应中断源的优先级,切换对应的任务。主处理器中每个实时任务对应一个中断源,当主处理器收到中断触发信号后,会判断当前中断是否是优先级最高的中断。若当前中断的优先级是最高优先级,则运行当前中断服务函数中的任务代码,并驱动当前的实时周期任务线程;若有更高优先级的任务就绪,则切换到最高优先级的中断,并运行最高优先级中断服务函数中的任务代码,从而实现任务切换。因此,调度方案是基于优先级的抢占式调度,当前正在运行的中断必须随时让位给优先级更高的中断。其中,在发生中断后,主处理器会保护现场,执行任务代码后恢复现场,然后中断返回。这里所述的保护现场是指主处理器保存当前的工作信息,即当出现中断时,主处理器会将中断的入口地址保存在寄存器中,随后进行优先级判断和代码执行,当任务代码执行结束后,从寄存器中取出地址继续执行,从而保证中断前一时刻的工作状态不被破坏。值得注意的是,本发明的方法不仅适用于双核处理器的任务调度,同样也适用于多个主处理器和一个辅助处理器情况下的多核任务调度。当有多个主处理器时,分别为各个主处理器的实时周期任务分配中断源,并在某个中断源相应的任务就绪时,该辅助处理器会将中断触发信号发送给对应的主处理器,从而实现任务的运行和切换。为了进一步说明本发明的优势,在本发明实施的嵌入式系统上,移植了目前较为主流的实时操作系统μ C/0S-II,以IOM的时钟频率,5个任务为例,与本发明方案进行比较,请参见表1。
权利要求
1.一种基于多核处理器的实时任务调度方法,其特征在于,包括一个以上主处理器和一个辅助处理器,其包括以下步骤分配实时周期任务的对应中断源给主处理器; 分配时钟节拍中断源给辅助处理器; 定义每个实时周期任务对应的中断优先级;辅助处理器的时钟节拍按既定周期依次触发主处理器中各实时周期任务的对应中断源;主处理器根据各实时周期任务对应中断源的优先级,切换对应的任务。
2.如权利要求1所述的基于多核处理器的实时任务调度方法,其特征在于,所述实时周期任务的任务代码存放在中断源的中断服务函数中。
3.如权利要求1所述的基于多核处理器的实时任务调度方法,其特征在于,辅助处理器的时钟节拍按既定周期依次触发主处理器中各实时周期任务的对应中断源时包括以下步骤时钟节拍中断时,辅助处理器判断是否有实时周期任务进入就绪状态;若无,则中断返回;若有,则触发主处理器对应的中断源。
4.如权利要求1所述的基于多核处理器的实时任务调度方法,其特征在于,主处理器切换任务时包括以下步骤主处理器接收辅助处理器发送来的中断触发信号源; 主处理器保存当前工作信息; 主处理器进行任务切换;主处理器读取工作信息,并恢复中断前的工作状态。
全文摘要
本发明提出一种基于多核处理器的实时任务调度方法,包括以下步骤(1)分配实时周期任务的对应中断源给主处理器;(2)分配时钟节拍中断源给辅助处理器;(3)定义每个实时周期任务对应的中断优先级;(4)辅助处理器的时钟节拍按既定周期依次触发主处理器中各实时周期任务的对应中断源;(5)主处理器根据各实时周期任务对应中断源的优先级,切换对应的任务。本发明的方法可以降低主处理器的负荷,且具有资源占用少、性价比高及开发门槛低的优点。
文档编号G06F9/48GK102222022SQ20111019975
公开日2011年10月19日 申请日期2011年7月15日 优先权日2011年7月15日
发明者刘庆, 李甫, 高峰 申请人:范示德汽车技术(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1