一种实时操作系统uCOS-Ⅱ的任务调度算法的硬件实现方法技术方案

技术编号:4286801 阅读:489 留言:0更新日期:2012-04-11 18:40
一种实时操作系统uCOS-Ⅱ的任务调度算法的硬件实现方法,属于任务调度算法硬件实现领域。本发明专利技术的技术方案是:(1)硬件保存每个任务的调度相关信息,接收外部时钟TimeTick信号,每次TimeTick信号有效时,任务延时信息自动减1,至0为止,表示延时时间到;(2)根据任务状态、延时信息等判断任务是否就绪;(3)硬件计算就绪任务中的最高优先级任务号;(4)根据就绪最高优先级任务号、当前运行任务优先级号、中断嵌套标志、调度锁标志信息,决定是否发出任务切换中断;(5)软件只需响应中断并执行任务切换。本发明专利技术硬件实现uCOS-Ⅱ的任务调度算法与延时处理,显著提高了系统的实时性和可预测性。

【技术实现步骤摘要】

本专利技术涉及一种实时操作系统uCOS-II的任务调度算法的硬件实现方法,属于任务调度算法硬件实现领域。
技术介绍
嵌入式实时系统领域中,实时操作系统RTOS提供了实时机制与标准的编程模型, 部分屏蔽了多任务时序控制的复杂性,降低了实时系统的开发难度,但RTOS软件本身的运 行同时引入了任务处理的延时,很大程度上限制了所能完成的实时任务的最高频率。 RTOS要实现的基本功能任务管理(任务创建、调度等)、时间管理(时钟中断、延 时信息域维护等)、事件管理(包括信号量、互斥锁、消息队列、FLAG等)。RT0S —般采用 可抢占方式设计,在中断处理函数中需要保存与恢复现场,更新任务延时信息、更新任务状 态、执行调度算法、实现任务切换,这些操作需要大量的指令完成,执行这些操作势必会降 低系统性能,增大中断响应时间,降低系统可预测性,而这些操作又是维持RT0S本身正常 运行而频繁执行的操作,造成的结果就是虽然系统时钟可能为几十MHz,但能处理的实时 任务的最大频率却只能在几百Hz甚至是几十Hz。当有更高频率的实时任务要求时,可以采 用提高系统时钟的方法,但此方案有很大的弊端(l)所选用的CPU或者PCB不能支持更高 频率;(2)高时钟频率一般意味着高功耗,这会带来更多的问题;(3)高精度TimeTick中断 会使RT0S本身占用CPU的比重增大,文献研究表明,uC/0S-I1在PowerPC处理器上测试结 果显示,软件实现的uC/OS-II的时钟中断处理时间随系统任务数增加而增长,当TimeTick 精度提高到10usec时,RTOS本身占用CPU的时间近乎42%。 随着RTOS系统软件的成熟,其功能、算法日趋稳定,RTOS本身带来的性能损耗已 很难再依赖改进软件算法来降低。将RT0S中公用的、性能相关的操作(如任务调度、时间 管理、事件处理、中断现场的保护与恢复等)用硬件方式实现,提高整个实时系统的性能, 使整个系统具有100%可预测性与确定性,确保系统的硬实时性,已成为嵌入式实时系统领 域中前沿课题和研究热点。开展实时操作系统的硬件化加速研究,创建硬件加速嵌入式实 时系统平台,可以在较低的时钟频率下满足更高的实时任务要求,在嵌入式实时控制领域 有重要的应用前景。
技术实现思路
—种实时操作系统uCOS-II的任务调度算法的硬件实现方法,其特征在于 (1)硬件保存每个任务的调度相关信息,接收外部时钟TimeTick信号,每次TimeTick信号有效时,任务延时信息自动减l,至O为止,表示延时时间到,即所有任务的延时信息处理由硬件在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, 直至O为止。 (3)每个任务就绪信号TaskReadyN与TaskValid、 0STCBDLy、 OSTCBStat有关,实 现逻辑为TaskReadyN = TaskValidN &(0STCBStatN == — 0S_STAT_RDY)&(0STCBDlyN = =16, h0); (4)PrioBitm即ToBinary模块实现从就绪任务中找出最高优先级任务任务号的功 能,输出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位微处理器0R1200,其内 部集成中断控制器PIC,时钟模块TimeTick, CPU的exc印t处理模块处理PIC与TimeTick 产生的中断指示信号,本专利技术涉及的模块RTA,外部的TimeTickTrig信号接的是0R1200 TimeTick的输出信号,同时用RTA产生的中断信号替换TimeTick接入exc印t的sig_tick4信号,其含义变为任务切换信号Sig_task。权利要求一种实时操作系统uCOS-II的任务调度算法的硬件实现方法,其特征在于(1)硬件保存每个任务的调度相关信息,接收外部时钟TimeTick信号,每次TimeTick信号有效时,任务延时信息自动减1,至0为止,表示延时时间到;(2)根据任务状态、延时信息等判断任务是否就绪;(3)硬件计算就绪任务中的最高优先级任务号;(4)根据就绪最高优先级任务号、当前运行任务优先级号、中断嵌套标志、调度锁信息,决定是否发出任务切换中断;(5)软件只需响应中断并执行任务切换。2. —种根据权利要求1所述方法,设计实时操作系统uCOS-II的任务调度算法硬件实 现知识产权模块(IP核)的方法,其特征在于(1) 核心电路采用权利要求1中(1)、 (4)所述方法(2) 外部接口采用主流片上总线接口 (如wishbone, avalon,amba等),实现对核心电 路内部寄存器的读写与控制。全文摘要,属于任务调度算法硬件实现领域。本专利技术的技术方案是(1)硬件保存每个任务的调度相关信息,接收外部时钟TimeTick信号,每次TimeTick信号有效时,任务延时信息自动减1,至0为止,表示延时时间到;(2)根据任务状态、延时信息等判断任务是否就绪;本文档来自技高网
...

【技术保护点】
一种实时操作系统uCOS-Ⅱ的任务调度算法的硬件实现方法,其特征在于:    (1)硬件保存每个任务的调度相关信息,接收外部时钟TimeTick信号,每次TimeTick信号有效时,任务延时信息自动减1,至0为止,表示延时时间到;    (2)根据任务状态、延时信息等判断任务是否就绪;    (3)硬件计算就绪任务中的最高优先级任务号;    (4)根据就绪最高优先级任务号、当前运行任务优先级号、中断嵌套标志、调度锁信息,决定是否发出任务切换中断;    (5)软件只需响应中断并执行任务切换。

【技术特征摘要】

【专利技术属性】
技术研发人员:张德学陈新华桑圣峰沈国新于国苹焦汉明
申请(专利权)人:山东科技大学
类型:发明
国别省市:95[中国|青岛]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1