CN102222022A - 基于多核处理器的实时任务调度方法 - Google Patents
基于多核处理器的实时任务调度方法 Download PDFInfo
- Publication number
- CN102222022A CN102222022A CN201110199756XA CN201110199756A CN102222022A CN 102222022 A CN102222022 A CN 102222022A CN 201110199756X A CN201110199756X A CN 201110199756XA CN 201110199756 A CN201110199756 A CN 201110199756A CN 102222022 A CN102222022 A CN 102222022A
- Authority
- CN
- China
- Prior art keywords
- real
- task
- processor
- time
- primary processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提出一种基于多核处理器的实时任务调度方法,包括以下步骤:(1)分配实时周期任务的对应中断源给主处理器;(2)分配时钟节拍中断源给辅助处理器;(3)定义每个实时周期任务对应的中断优先级;(4)辅助处理器的时钟节拍按既定周期依次触发主处理器中各实时周期任务的对应中断源;(5)主处理器根据各实时周期任务对应中断源的优先级,切换对应的任务。本发明的方法可以降低主处理器的负荷,且具有资源占用少、性价比高及开发门槛低的优点。
Description
技术领域
本发明涉及计算机实时任务调度方法,特别涉及一种基于多核处理器的实时任务调度方法。
背景技术
在嵌入式系统中使用多核技术,是近年来单片机技术发展的一大亮点。在嵌入式应用领域,特别是控制领域,多核技术具有明显的优势,能显著提高系统的可靠性。同时,随着集成电路工艺及片上系统(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)主处理器读取工作信息,并恢复中断前的工作状态。
相对于现有技术,本发明的有益效果是:本发明采用辅助处理器处理时钟节拍中断,并用中断服务来代替实时操作系统,以达到周期性实时执行,且无须使用实时操作系统,降低了系统成本的同时,也降低了开发门槛。相比以往的实时内核方案,本发明的方法可以节省系统的ROM,RAM存储空间,资源占用量少。同时,由于繁重的时钟中断交由辅助处理器响应,大大减轻了主处理器的负荷,使得主处理器的执行时间为固定值,保证了任务的实时运行,提升了系统的实时性,同时,高频率的时钟节拍也提高了任务的计时精度。
附图说明
图1为本发明基于多核处理器的实时任务调度方法的一种实施例流程图。
具体实施方式
本发明的方法特别适用于嵌入式系统,其通过中断服务实现了周期性实时任务的调度,并利用多核处理器的性能优势,将繁重的时钟节拍中断交给辅助处理器来响应,大大减轻了主处理器的负荷,从而也保证任务的实时运行。
本发明的方法适用于双核处理器或多核处理器的任务调度,以下结合附图具体说明本发明。请参见图1,其为本发明基于多核处理器的实时任务调度方法的一种实施例流程图,其包括以下步骤:
S101,分配实时周期任务的对应中断源给主处理器。
按实时周期任务数目定义多个空闲的中断源,并将这些中断源交给主处理器响应,每个中断对应一个周期性的实时任务,任务代码放在中断服务函数中。这样,主处理器的中断响应就能驱动对应的任务线程。
S102,分配时钟节拍中断源给辅助处理器。
将时钟节拍中断源交给辅助处理器响应。这样,繁重的时钟节拍中断就不会增加主处理器的负荷,让主处理器专注于任务级处理,同时还能保证实时任务拥有很高的定时精度。
S103,定义每个实时周期任务对应的中断优先级。
为每个实时任务对应的中断分配自己的优先级,任务越重要,对应中断源的优先级就越高。同时把最高优先级分配给时钟节拍中断源。
S104,辅助处理器的时钟节拍按既定周期依次触发主处理器中各实时周期任务的对应中断源。
所述的既定周期是指分配给主处理器的各个实时任务的周期,在辅助处理器响应时钟节拍中断时,会进行周期计数。即在时钟节拍中断时,辅助处理器会判断是否有实时周期任务进入就绪状态,若无,则中断返回;若有,则向主处理器发出中断触发新号。例如,假设一个时钟节拍是3μs,一个实时任务的周期是12μs,则辅助处理器分别会在4个、8个、12个等4的整数倍个时钟节拍时,向主处理器发送中断触发信号,以触发主处理器对应的中断源,让主处理器决定是要运行该任务还是要切换其它任务。
S105,主处理器根据各实时周期任务对应中断源的优先级,切换对应的任务。
主处理器中每个实时任务对应一个中断源,当主处理器收到中断触发信号后,会判断当前中断是否是优先级最高的中断。若当前中断的优先级是最高优先级,则运行当前中断服务函数中的任务代码,并驱动当前的实时周期任务线程;若有更高优先级的任务就绪,则切换到最高优先级的中断,并运行最高优先级中断服务函数中的任务代码,从而实现任务切换。因此,调度方案是基于优先级的抢占式调度,当前正在运行的中断必须随时让位给优先级更高的中断。
其中,在发生中断后,主处理器会保护现场,执行任务代码后恢复现场,然后中断返回。这里所述的保护现场是指主处理器保存当前的工作信息,即当出现中断时,主处理器会将中断的入口地址保存在寄存器中,随后进行优先级判断和代码执行,当任务代码执行结束后,从寄存器中取出地址继续执行,从而保证中断前一时刻的工作状态不被破坏。
值得注意的是,本发明的方法不仅适用于双核处理器的任务调度,同样也适用于多个主处理器和一个辅助处理器情况下的多核任务调度。当有多个主处理器时,分别为各个主处理器的实时周期任务分配中断源,并在某个中断源相应的任务就绪时,该辅助处理器会将中断触发信号发送给对应的主处理器,从而实现任务的运行和切换。
为了进一步说明本发明的优势,在本发明实施的嵌入式系统上,移植了目前较为主流的实时操作系统μC/OS-II,以10M的时钟频率,5个任务为例,与本发明方案进行比较,请参见表1。
方案 | ROM用量 | RAM用量 | 中断响应时间 | 任务响应时间 |
μC/OS-II | 6KB | 2KB | 3μs | 12μs |
本发明 | 100B | 200B | 3μs | 4μs |
表1
由上表可以看到,本发明方法相对于基于实时操作系统的任务调度方法,减少了ROM用量和RAM用量,缩短了任务响应时间。
本发明采用辅助处理器处理时钟节拍中断,并用中断服务来代替实时操作系统,以达到周期性实时执行。相比以往的实时内核方案,本发明的方法可以节省系统的ROM,RAM存储空间,资源占用量少。同时,由于繁重的时钟中断交由辅助处理器响应,大大减轻了主处理器的负荷,使得主处理器的执行时间为固定值,保证了任务的实时运行,提升了系统的实时性,同时,高频率的时钟节拍也提高了任务的计时精度。
以上公开的仅为本发明的几个具体实施例,但本发明并非局限于此,任何本领域的技术人员能思之的变化,只要不超出所附权利要求书所述范围,都应落在本发明的保护范围内。
Claims (4)
1.一种基于多核处理器的实时任务调度方法,其特征在于,包括一个以上主处理器和一个辅助处理器,其包括以下步骤:
分配实时周期任务的对应中断源给主处理器;
分配时钟节拍中断源给辅助处理器;
定义每个实时周期任务对应的中断优先级;
辅助处理器的时钟节拍按既定周期依次触发主处理器中各实时周期任务的对应中断源;
主处理器根据各实时周期任务对应中断源的优先级,切换对应的任务。
2.如权利要求1所述的基于多核处理器的实时任务调度方法,其特征在于,所述实时周期任务的任务代码存放在中断源的中断服务函数中。
3.如权利要求1所述的基于多核处理器的实时任务调度方法,其特征在于,辅助处理器的时钟节拍按既定周期依次触发主处理器中各实时周期任务的对应中断源时包括以下步骤:
时钟节拍中断时,辅助处理器判断是否有实时周期任务进入就绪状态;
若无,则中断返回;
若有,则触发主处理器对应的中断源。
4.如权利要求1所述的基于多核处理器的实时任务调度方法,其特征在于,主处理器切换任务时包括以下步骤:
主处理器接收辅助处理器发送来的中断触发信号源;
主处理器保存当前工作信息;
主处理器进行任务切换;
主处理器读取工作信息,并恢复中断前的工作状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110199756XA CN102222022A (zh) | 2011-07-15 | 2011-07-15 | 基于多核处理器的实时任务调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110199756XA CN102222022A (zh) | 2011-07-15 | 2011-07-15 | 基于多核处理器的实时任务调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102222022A true CN102222022A (zh) | 2011-10-19 |
Family
ID=44778579
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110199756XA Pending CN102222022A (zh) | 2011-07-15 | 2011-07-15 | 基于多核处理器的实时任务调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102222022A (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521045A (zh) * | 2011-12-31 | 2012-06-27 | 南京航空航天大学 | 非实时多任务调度内核实现方法 |
CN102831011A (zh) * | 2012-08-10 | 2012-12-19 | 上海交通大学 | 一种基于众核系统的任务调度方法及装置 |
CN102866917A (zh) * | 2012-09-27 | 2013-01-09 | 深圳市金宏威技术股份有限公司 | 一种基于Linux平台的冷火实时处理方法及系统 |
CN103197959A (zh) * | 2013-04-08 | 2013-07-10 | 合肥联宝信息技术有限公司 | 一种多核cpu的切换方法 |
CN103885826A (zh) * | 2014-03-11 | 2014-06-25 | 武汉科技大学 | 一种多核嵌入式系统实时任务调度实现方法 |
CN103942101A (zh) * | 2013-01-21 | 2014-07-23 | 中国科学院声学研究所 | 一种基于多核网络处理器的实时任务调度方法及系统 |
CN104008005A (zh) * | 2013-02-20 | 2014-08-27 | 罗伯特·博世有限公司 | 用于控制处理器的装置、方法和系统 |
CN104598426A (zh) * | 2013-10-30 | 2015-05-06 | 联发科技股份有限公司 | 用于异构多核处理器系统的任务调度方法 |
CN104699533A (zh) * | 2013-12-09 | 2015-06-10 | 中国航空工业集团公司第六三一研究所 | 一种多个周期任务的调度方法 |
WO2016177138A1 (zh) * | 2015-08-27 | 2016-11-10 | 中兴通讯股份有限公司 | 一种调度任务的方法、装置及系统 |
CN103729480B (zh) * | 2014-01-29 | 2017-02-01 | 重庆邮电大学 | 一种多核实时操作系统多个就绪任务快速查找及调度方法 |
CN107291946A (zh) * | 2017-07-13 | 2017-10-24 | 深圳乐信软件技术有限公司 | 大数据etl任务调度方法及装置 |
CN107391245A (zh) * | 2017-07-18 | 2017-11-24 | 致象尔微电子科技(上海)有限公司 | 一种多核芯片的软件系统 |
CN110515719A (zh) * | 2019-08-30 | 2019-11-29 | 苏州浪潮智能科技有限公司 | 一种任务调度方法及相关装置 |
CN112530056A (zh) * | 2020-11-18 | 2021-03-19 | 深圳Tcl新技术有限公司 | 降低智能门锁功耗的方法、智能门锁和存储介质 |
-
2011
- 2011-07-15 CN CN201110199756XA patent/CN102222022A/zh active Pending
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521045A (zh) * | 2011-12-31 | 2012-06-27 | 南京航空航天大学 | 非实时多任务调度内核实现方法 |
CN102831011A (zh) * | 2012-08-10 | 2012-12-19 | 上海交通大学 | 一种基于众核系统的任务调度方法及装置 |
CN102831011B (zh) * | 2012-08-10 | 2015-11-18 | 上海交通大学 | 一种基于众核系统的任务调度方法及装置 |
CN102866917A (zh) * | 2012-09-27 | 2013-01-09 | 深圳市金宏威技术股份有限公司 | 一种基于Linux平台的冷火实时处理方法及系统 |
CN102866917B (zh) * | 2012-09-27 | 2015-08-19 | 深圳市金宏威技术股份有限公司 | 一种基于Linux平台的冷火实时处理方法及系统 |
CN103942101A (zh) * | 2013-01-21 | 2014-07-23 | 中国科学院声学研究所 | 一种基于多核网络处理器的实时任务调度方法及系统 |
CN104008005A (zh) * | 2013-02-20 | 2014-08-27 | 罗伯特·博世有限公司 | 用于控制处理器的装置、方法和系统 |
CN103197959A (zh) * | 2013-04-08 | 2013-07-10 | 合肥联宝信息技术有限公司 | 一种多核cpu的切换方法 |
CN103197959B (zh) * | 2013-04-08 | 2017-03-08 | 合肥联宝信息技术有限公司 | 一种多核cpu的切换方法 |
US9858115B2 (en) | 2013-10-30 | 2018-01-02 | Mediatek Inc. | Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core processor system and related non-transitory computer readable medium |
CN104598426A (zh) * | 2013-10-30 | 2015-05-06 | 联发科技股份有限公司 | 用于异构多核处理器系统的任务调度方法 |
CN104598426B (zh) * | 2013-10-30 | 2018-02-09 | 联发科技股份有限公司 | 用于异构多核处理器系统的任务调度方法 |
CN104699533A (zh) * | 2013-12-09 | 2015-06-10 | 中国航空工业集团公司第六三一研究所 | 一种多个周期任务的调度方法 |
CN104699533B (zh) * | 2013-12-09 | 2017-11-28 | 中国航空工业集团公司第六三一研究所 | 一种多个周期任务的调度方法 |
CN103729480B (zh) * | 2014-01-29 | 2017-02-01 | 重庆邮电大学 | 一种多核实时操作系统多个就绪任务快速查找及调度方法 |
CN103885826A (zh) * | 2014-03-11 | 2014-06-25 | 武汉科技大学 | 一种多核嵌入式系统实时任务调度实现方法 |
CN103885826B (zh) * | 2014-03-11 | 2017-04-12 | 武汉科技大学 | 一种多核嵌入式系统实时任务调度实现方法 |
WO2016177138A1 (zh) * | 2015-08-27 | 2016-11-10 | 中兴通讯股份有限公司 | 一种调度任务的方法、装置及系统 |
CN107291946A (zh) * | 2017-07-13 | 2017-10-24 | 深圳乐信软件技术有限公司 | 大数据etl任务调度方法及装置 |
CN107291946B (zh) * | 2017-07-13 | 2020-03-17 | 深圳乐信软件技术有限公司 | 大数据etl任务调度方法及装置 |
CN107391245A (zh) * | 2017-07-18 | 2017-11-24 | 致象尔微电子科技(上海)有限公司 | 一种多核芯片的软件系统 |
CN110515719A (zh) * | 2019-08-30 | 2019-11-29 | 苏州浪潮智能科技有限公司 | 一种任务调度方法及相关装置 |
CN112530056A (zh) * | 2020-11-18 | 2021-03-19 | 深圳Tcl新技术有限公司 | 降低智能门锁功耗的方法、智能门锁和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102222022A (zh) | 基于多核处理器的实时任务调度方法 | |
CN101529383B (zh) | 任务处理装置 | |
CN101751289B (zh) | 一种嵌入式实时操作系统的混合调度方法 | |
US9772879B2 (en) | System and method for isolating I/O execution via compiler and OS support | |
US8719834B2 (en) | Information processing system, method, program and integrated circuit for maintaining balance of processing loads with respect to real-time tasks | |
CN104915256B (zh) | 一种任务的实时调度实现方法及其系统 | |
CN101366004A (zh) | 用于带有专用线程管理的多核处理的方法和设备 | |
CN101013388A (zh) | 面向异构多核体系的进程调度方法 | |
CN105204938B (zh) | 一种内存访问的数据密集型进程调度方法 | |
CN105183698B (zh) | 一种基于多核dsp的控制处理系统和方法 | |
CN102707996A (zh) | 一种异构多核处理器上的任务调度方法 | |
US20070198759A1 (en) | Advanced interrupt processor in embedded systems | |
EP2573673B1 (en) | Multithreaded processor and instruction fetch control method of multithreaded processor | |
CN102576318A (zh) | 集成电路、计算机系统、控制方法 | |
CN103810035A (zh) | 智能上下文管理 | |
WO2008021435A1 (en) | A multi-thread processor with multiple program counters | |
CN106030559A (zh) | 用于降低功耗的中断处理的同步 | |
CN101986263B (zh) | 支持单指令流与多指令流动态切换执行的方法及微处理器 | |
CN102081555A (zh) | 调整时钟中断周期的方法和装置 | |
CN103366386A (zh) | 基于多进程和多线程的并行图像解压缩系统 | |
CN102436393A (zh) | 任务处理装置 | |
CN100440153C (zh) | 处理器 | |
CN100365580C (zh) | 基于中断的实时任务调度方法 | |
CN104375883A (zh) | 一种cfs调度器 | |
CN101349975B (zh) | 一种在嵌入式操作系统上实现中断底半部机制的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20111019 |