CN101706739A - 一种实时操作系统uCOS-Ⅱ的任务调度算法的硬件实现方法 - Google Patents
一种实时操作系统uCOS-Ⅱ的任务调度算法的硬件实现方法 Download PDFInfo
- Publication number
- CN101706739A CN101706739A CN200910253698A CN200910253698A CN101706739A CN 101706739 A CN101706739 A CN 101706739A CN 200910253698 A CN200910253698 A CN 200910253698A CN 200910253698 A CN200910253698 A CN 200910253698A CN 101706739 A CN101706739 A CN 101706739A
- Authority
- CN
- China
- Prior art keywords
- task
- hardware
- real
- scheduling algorithm
- interrupt
- 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.)
- Granted
Links
Images
Landscapes
- Semiconductor Integrated Circuits (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种实时操作系统uCOS-Ⅱ的任务调度算法的硬件实现方法,属于任务调度算法硬件实现领域。本发明的技术方案是:(1)硬件保存每个任务的调度相关信息,接收外部时钟TimeTick信号,每次TimeTick信号有效时,任务延时信息自动减1,至0为止,表示延时时间到;(2)根据任务状态、延时信息等判断任务是否就绪;(3)硬件计算就绪任务中的最高优先级任务号;(4)根据就绪最高优先级任务号、当前运行任务优先级号、中断嵌套标志、调度锁标志信息,决定是否发出任务切换中断;(5)软件只需响应中断并执行任务切换。本发明硬件实现uCOS-Ⅱ的任务调度算法与延时处理,显著提高了系统的实时性和可预测性。
Description
技术领域
本发明涉及一种实时操作系统uCOS-II的任务调度算法的硬件实现方法,属于任务调度算法硬件实现领域。
背景技术
嵌入式实时系统领域中,实时操作系统RTOS提供了实时机制与标准的编程模型,部分屏蔽了多任务时序控制的复杂性,降低了实时系统的开发难度,但RTOS软件本身的运行同时引入了任务处理的延时,很大程度上限制了所能完成的实时任务的最高频率。
RTOS要实现的基本功能:任务管理(任务创建、调度等)、时间管理(时钟中断、延时信息域维护等)、事件管理(包括信号量、互斥锁、消息队列、FLAG等)。RTOS一般采用可抢占方式设计,在中断处理函数中需要保存与恢复现场,更新任务延时信息、更新任务状态、执行调度算法、实现任务切换,这些操作需要大量的指令完成,执行这些操作势必会降低系统性能,增大中断响应时间,降低系统可预测性,而这些操作又是维持RTOS本身正常运行而频繁执行的操作,造成的结果就是:虽然系统时钟可能为几十MHz,但能处理的实时任务的最大频率却只能在几百Hz甚至是几十Hz。当有更高频率的实时任务要求时,可以采用提高系统时钟的方法,但此方案有很大的弊端:(1)所选用的CPU或者PCB不能支持更高频率;(2)高时钟频率一般意味着高功耗,这会带来更多的问题;(3)高精度TimeTick中断会使RTOS本身占用CPU的比重增大,文献研究表明,uC/OS-II在PowerPC处理器上测试结果显示,软件实现的uC/OS-II的时钟中断处理时间随系统任务数增加而增长,当TimeTick精度提高到10usec时,RTOS本身占用CPU的时间近乎42%。
随着RTOS系统软件的成熟,其功能、算法日趋稳定,RTOS本身带来的性能损耗已很难再依赖改进软件算法来降低。将RTOS中公用的、性能相关的操作(如任务调度、时间管理、事件处理、中断现场的保护与恢复等)用硬件方式实现,提高整个实时系统的性能,使整个系统具有100%可预测性与确定性,确保系统的硬实时性,已成为嵌入式实时系统领域中前沿课题和研究热点。开展实时操作系统的硬件化加速研究,创建硬件加速嵌入式实时系统平台,可以在较低的时钟频率下满足更高的实时任务要求,在嵌入式实时控制领域有重要的应用前景。
发明内容
一种实时操作系统uCOS-II的任务调度算法的硬件实现方法,其特征在于:
(1)硬件保存每个任务的调度相关信息,接收外部时钟TimeTick信号,每次TimeTick信号有效时,任务延时信息自动减1,至0为止,表示延时时间到,即所有任务的延时信息处理由硬件在1个时钟周期内完成;
(2)根据任务状态、延时信息等判断任务是否就绪;
(3)硬件计算就绪任务中的最高优先级任务号;
(4)根据就绪最高优先级任务号、当前运行任务优先级号、中断嵌套标志、调度锁标志信息,决定是否发出任务切换中断;
(5)软件只需响应中断并执行任务切换。
本发明硬件实现uCOS-II的任务调度算法与延时处理,显著提高了系统的实时性和可预测性。
附图说明
图1是本发明涉及的硬件功能电路框图
图2是采用本发明涉及的方法,设计的wishbone总线接口的uCOS-II实时操作系统硬件加速模块在实际系统中的连接图,本发明涉及的模块是图2中的RTA模块。
具体实施方式
本实现例具体说明如何应用本发明方法,设计wishbone总线接口的uCOS-II实时操作系统硬件加速知识产权模块(IP核)。
(1)硬件保存每个任务的调度相关信息:TaskValid指示本任务是否有效;OSTCBDly保存本任务的延时信息;OSTCBStat指示任务状态;OSTCBStatPend指示任务Pend状态。
(2)外部输入的时钟TimeTickTrig信号,触发每个任务控制块中OSTCBDly减1,直至0为止。
(3)每个任务就绪信号TaskReadyN与TaskValid、OSTCBDLy、OSTCBStat有关,实现逻辑为:TaskReadyN=TaskValidN &(OSTCBStatN==`OS_STAT_RDY)&(OSTCBDlyN==16’h0);
(4)PrioBitmapToBinary模块实现从就绪任务中找出最高优先级任务任务号的功能,输出HighestPrio信号。
(5)中断逻辑模块Interrupt Logic接受当前CPU运行任务SW_Task_Cur、目前就绪的最高优先级任务HighestPrio、本设计模块使能信号RTA_Control、中断嵌套标识OSIntNesting、调度锁信号OSLockNesting,决定是否产生任务切换中断,实现逻辑为:
wb_inta_o=RTA_Control &(HighestPrio !=SW_TASK_Cur)&(OSIntNesting==8’h00)&(OSLockNesting==8’h00);
(6)模块内部寄存器的读写均采用wishbone总线接口
(7)软件与硬件配合:软件在创建新任务、设置任务延时信息、设置中断嵌套标志、设置调度锁时,向硬件相应寄存器写入数值,之后只需响应硬件的任务切换中断信号,在中断服务程序中,无需维护任务延时信息,无需计算当前就绪最高任务号,无需判断是否需要任务切换,直接执行任务切换动作,大大减少了中断响应时间与关中断时间,提高了系统的实时性。
整个实例系统连接关系如图2所示。采用的是开源32位微处理器OR1200,其内部集成中断控制器PIC,时钟模块TimeTick,CPU的except处理模块处理PIC与TimeTick产生的中断指示信号,本发明涉及的模块RTA,外部的TimeTickTrig信号接的是OR1200 TimeTick的输出信号,同时用RTA产生的中断信号替换TimeTick接入except的sig_tick信号,其含义变为任务切换信号sig_task.
Claims (2)
1.一种实时操作系统uCOS-II的任务调度算法的硬件实现方法,其特征在于:
(1)硬件保存每个任务的调度相关信息,接收外部时钟TimeTick信号,每次TimeTick信号有效时,任务延时信息自动减1,至0为止,表示延时时间到;
(2)根据任务状态、延时信息等判断任务是否就绪;
(3)硬件计算就绪任务中的最高优先级任务号;
(4)根据就绪最高优先级任务号、当前运行任务优先级号、中断嵌套标志、调度锁信息,决定是否发出任务切换中断;
(5)软件只需响应中断并执行任务切换。
2.一种根据权利要求1所述方法,设计实时操作系统uCOS-II的任务调度算法硬件实现知识产权模块(IP核)的方法,其特征在于:
(1)核心电路采用权利要求1中(1)、~(4)所述方法
(2)外部接口采用主流片上总线接口(如wishbone,avalon,amba等),实现对核心电路内部寄存器的读写与控制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910253698 CN101706739B (zh) | 2009-12-03 | 2009-12-03 | 一种实时操作系统uCOS-Ⅱ的任务调度算法的硬件实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910253698 CN101706739B (zh) | 2009-12-03 | 2009-12-03 | 一种实时操作系统uCOS-Ⅱ的任务调度算法的硬件实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101706739A true CN101706739A (zh) | 2010-05-12 |
CN101706739B CN101706739B (zh) | 2013-04-10 |
Family
ID=42376965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910253698 Expired - Fee Related CN101706739B (zh) | 2009-12-03 | 2009-12-03 | 一种实时操作系统uCOS-Ⅱ的任务调度算法的硬件实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101706739B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104536345A (zh) * | 2014-12-17 | 2015-04-22 | 万向钱潮股份有限公司 | 一种基于汽车电控控制系统的多任务控制方法 |
CN103744730B (zh) * | 2014-01-27 | 2017-01-11 | 北京京东尚科信息技术有限公司 | 一种任务调度方法和装置 |
CN108230494A (zh) * | 2017-12-21 | 2018-06-29 | 广东汇泰龙科技有限公司 | 嵌入FreeRTOS操作系统的家用智能云锁的配置方法和云锁 |
CN108536531A (zh) * | 2018-04-03 | 2018-09-14 | 中国电子科技集团公司第七研究所 | 一种基于单片机的任务调度和电源管理方法 |
CN109947468A (zh) * | 2017-12-20 | 2019-06-28 | 北京谊安医疗系统股份有限公司 | 一种实现无阻塞无任务切换的事件延时方法 |
CN113467901A (zh) * | 2020-03-31 | 2021-10-01 | 北京华为数字技术有限公司 | 一种任务调度的方法及相关设备 |
-
2009
- 2009-12-03 CN CN 200910253698 patent/CN101706739B/zh not_active Expired - Fee Related
Non-Patent Citations (3)
Title |
---|
PRAMOTE KUACHAROEN,ET AL.: "A Configurable Hardware Scheduler for Real-Time Systems", 《IN PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON ENGINEERING OF RECONFIGURABLE SYSTEM AND ALGORITHMS》 * |
SUSANNA NORDSTROM,ET AL.: "Application Specific Real-Time Microkernel in Hardware", 《REAL TIME CONFERENCE》 * |
刘淼等: "基于uCOS-II的嵌入式数控系统实时性分析", 《计算机工程》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103744730B (zh) * | 2014-01-27 | 2017-01-11 | 北京京东尚科信息技术有限公司 | 一种任务调度方法和装置 |
CN104536345A (zh) * | 2014-12-17 | 2015-04-22 | 万向钱潮股份有限公司 | 一种基于汽车电控控制系统的多任务控制方法 |
CN109947468A (zh) * | 2017-12-20 | 2019-06-28 | 北京谊安医疗系统股份有限公司 | 一种实现无阻塞无任务切换的事件延时方法 |
CN109947468B (zh) * | 2017-12-20 | 2021-07-02 | 北京谊安医疗系统股份有限公司 | 一种实现无阻塞无任务切换的事件延时方法 |
CN108230494A (zh) * | 2017-12-21 | 2018-06-29 | 广东汇泰龙科技有限公司 | 嵌入FreeRTOS操作系统的家用智能云锁的配置方法和云锁 |
CN108536531A (zh) * | 2018-04-03 | 2018-09-14 | 中国电子科技集团公司第七研究所 | 一种基于单片机的任务调度和电源管理方法 |
CN108536531B (zh) * | 2018-04-03 | 2021-08-06 | 广州技象科技有限公司 | 一种基于单片机的任务调度和电源管理方法 |
CN113467901A (zh) * | 2020-03-31 | 2021-10-01 | 北京华为数字技术有限公司 | 一种任务调度的方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN101706739B (zh) | 2013-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101706739B (zh) | 一种实时操作系统uCOS-Ⅱ的任务调度算法的硬件实现方法 | |
CN101872314B (zh) | 用于多处理器的动态调度中断控制器 | |
CN105843362B (zh) | 用于异构多核心系统的动态核心选择 | |
US9304811B2 (en) | Methods and systems to identify and migrate threads among system nodes based on system performance metrics | |
CN102298344B (zh) | 一种基于fpga动态部分可重构技术的局部热点缓和系统 | |
CN103440171A (zh) | 一种构件化硬件实时操作系统的实现方法 | |
US20160321183A1 (en) | Early cache prefetching in preparation for exit from idle mode | |
CN104081315A (zh) | 包括线程合并的用于能效和节能的方法、装置和系统 | |
CN101796487A (zh) | 虚拟队列处理电路以及任务处理器 | |
CN104272256A (zh) | 任务处理装置 | |
CN104156197A (zh) | 微处理器以及微处理器操作方法 | |
CN109690497B (zh) | 用于通过输入参数来区分函数性能的系统和方法 | |
CN105492989A (zh) | 用于时钟门控控制的早唤醒-警告 | |
CN103823706A (zh) | 一种基于RTLinux的被控对象模型模拟仿真实时调度方法 | |
CN103870240A (zh) | 用于超前运行操作的指令分类 | |
US11086631B2 (en) | Illegal instruction exception handling | |
CN101639791B (zh) | 一种改善嵌入式实时操作系统中断延迟的方法 | |
US20140380022A1 (en) | Stack access tracking using dedicated table | |
CN101539869A (zh) | 与调度性能直接相关的内存管理核的硬件化的方法 | |
TWI409701B (zh) | Execute the requirements registration and scheduling method | |
CN101349975B (zh) | 一种在嵌入式操作系统上实现中断底半部机制的方法及装置 | |
JP5833434B2 (ja) | 半導体装置 | |
CN100555229C (zh) | 融合无线传感网络操作系统内核的方法 | |
CN100389411C (zh) | 在嵌入式实时操作系统中实现逻辑中断优先级的方法 | |
Niu et al. | Analysis and implementation of migrating real-time embedded operating system FreeRTOS kernel based on S3C44B0 processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130410 Termination date: 20141203 |
|
EXPY | Termination of patent right or utility model |