[发明专利]基于PowerPC处理器结构的分级任务切换方法无效

专利信息
申请号: 03157389.4 申请日: 2003-09-19
公开(公告)号: CN1490722A 公开(公告)日: 2004-04-21
发明(设计)人: 孙晓民;蔡云鹏 申请(专利权)人: 清华大学
主分类号: G06F9/48 分类号: G06F9/48
代理公司: 暂无信息 代理人: 暂无信息
地址: 100084北*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要: 基于PowerPC处理器结构的分级任务切换方法,属于嵌入式实时操作系统领域,其特征在于:它针对PowerPC处理器结构的特殊性,把用户任务上下文划分为基本、扩展和可选三部分,在中断处理中,根据系统配置和任务调度情况,采用只有基本部分入栈、基本和扩展部分入栈和全部上下文入栈三种方式;中断处理程序首先执行基本部分入栈,执行中断处理后判断任务调度性质,选择执行下一级入栈操作、调用调度器,或者恢复现场返回用户任务。减少了不必要的堆栈操作。作为清华大学汽车电子开放式系统的一部分,在MPC555平台上实施。测试表明,它提高了任务切换的效率,加快了系统运行速度。
搜索关键词: 基于 powerpc 处理器 结构 分级 任务 切换 方法
【主权项】:
1.基于PowerPC处理器结构的分级任务切换方法,以操作系统代码的形式实现任务的切换,其特征在于:它除了实现由用户任务来执行激活新任务或申请调度的操作外,主要针对以操作系统代码的形式来执行由中断程序激活任务而产生任务切换的情况;所述的操作系统代码含有以下部分:系统启动代码:放在MPC555微控制器地址0x100处,在系统上电复位时自动执行,依次含有硬件初始化、初始化堆栈、初始化就绪任务列表以及开始调度的操作;系统内核操作代码:包括供系统启动代码、用户任务代码、或中断处理程序调用的激活任务、终止任务和按照规定策略从就绪任务列表中选取一个用户任务再跳转到该任务执行的这样一种调度器操作;系统内核操作代码支持抢占式调度,即当用户任务代码或者中断处理程序调用系统内核操作激活一个高优先级的用户任务的时候,激活任务操作可以调用调度器选择新激活的任务,强制打断正在运行的优先级较低的用户任务,而转到激活的任务去执行;用户任务代码:任务由用户自定义;该用户任务可以调用系统内核操作,激活其他任务、申请调度或者终止自身的执行;就绪任务列表:记录当前可以执行的用户任务信息,包括任务优先级、用户程序入口地址和用户堆栈指针这三个数值;中断处理程序操作代码:它依次含有中断处理程序入口、用户中断服务程序和中断处理程序结束三个部分;其中,外部中断处理程序放在MPC555微控制器的入口地址0x500处,计数器中断处理程序放在入口地址0x900处,该中断处理的优先级高于用户任务优先级,由用户中断服务程序激活了的新任务,只能等中断处理程序结束后再通过调度器来执行;所述的中断处理程序,其框架依次包含保存现场、堆栈切换、调用用户服务程序、中断恢复处理四个步骤,现分述如下:(1)保存现场:在批量预留堆栈空间的条件下,分级入栈式的保存被打断任务的执行现场,即MPC555中CPU的各种寄存器的值;PowerPC处理器结构下的寄存器遵循统一的PowerPC-EABI(基于PowerPC结构的嵌入式系统代码接口)规范;首先,把用户任务上下文即寄存器按内容划分为以下三个部分:基本部分:包括链接寄存器(LR)、机器状态寄存器(MSR)、保存中断结束后返回地址的机器状态保存/恢复寄存器(SRR0)、保存中断发生时MSR状态的机器状态保存/恢复寄存器(SRR1)、条件寄存器(CR)、整数异常寄存器(XER)、计数寄存器(CTR)及通用寄存器r0、r3~r12;在调用高级语言函数时应当保存;扩展部分:包括通用寄存器r14~r31,只在任务调度时需要保存;可选部分:浮点寄存器f0~f31和浮点状态寄存器FPSCR,只用于浮点计算情况下;其次,在执行任务过程中产生中断时,或者在执行另一个中断处理程序过程中产生中断即中断嵌套时,在根据PowerPC处理器指令体系所定义的堆栈操作指令批量预留了保存完整上下文即全部寄存器内容的条件下,只先执行第一级入栈操作即只先执行保留基本部分的操作;在中断处理程序结束后若要进行任务调度时,再进行第二级入栈操作保存扩展部分或第二级和第三级保存可选部分的入栈操作,激活调度器,否则恢复现场返回用户任务;(2)堆栈切换:使用户堆栈只保留用户任务上下文,系统堆栈保留中断服务程序上下文,根据中断层数或中断处理结束后任务调度的情况使堆栈指针在用户堆栈和系统堆栈之间进行堆栈切换;(3)调用用户中断服务程序:中断处理程序通过一个包括中断索引地址和对应的用户中断服务程序入口地址两项的中断查找表跳转到用户编写的中断服务程序;再通过系统定义的一个全局性的调度标志来通知中断处理程序是否需要进行任务切换,该调度标准设在系统内核操作代码中,在第一层中断处理程序进行堆栈切换的同时置为0,当用户中断服务程序要激活新任务时,把调度标志置为1,通知中断服务程序需要进行任务切换,它根据系统配置情况进行第二级或第二、第三级入栈操作,把相应寄存器的值写入第一级入栈操作时预留的用户堆栈空间里;(4)中断恢复处理:若用户中断服务程序完成后,判断不需要进行任务切换,则中断处理程序直接执行恢复现场操作,返回被中断的用户任务。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/03157389.4/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top