全网唯一标准王
(19)国家知识产权局 (12)发明 专利 (10)授权公告 号 (45)授权公告日 (21)申请 号 20221071848 8.6 (22)申请日 2022.06.23 (65)同一申请的已公布的文献号 申请公布号 CN 115098258 A (43)申请公布日 2022.09.23 (73)专利权人 云南大学 地址 650031 云南省昆明市翠湖北路2号 (72)发明人 代红兵 刘自昂 周永录 刘宏杰  刘欢庆  (74)专利代理 机构 北京腾远知识产权代理事务 所(普通合伙) 11608 专利代理师 王清娟 (51)Int.Cl. G06F 9/50(2006.01)(56)对比文件 CN 112416546 A,2021.02.26 CN 10746 3442 A,2017.12.12 CN 10145239 9 A,2009.06.10 CN 107566491 A,2018.01.09 CN 112053066 A,2020.12.08 CN 107391251 A,2017.1 1.24 梅浩.基于Forth虚拟机的嵌入式实时操作 系统多任务管理研究. 《中国优秀硕士学位 论文 全文数据库信息科技 辑》 .2020, 审查员 王铮 (54)发明名称 基于多核堆栈处理器的Forth多任务调度方 法及装置 (57)摘要 本发明提供一种基于多核堆栈处理器的 Forth多任务调度方法及装置, Fort h多任务调度 方法包括Forth任务初始化步骤、 Fort h任务调度 步骤、 多核调度步骤; Fort h多任务调度装置包括 Forth任务初始化模块、 Forth任务调度模块、 多 核调度模块。 在Fort h领域中, 目前单核 堆栈处理 器以及片上多 堆栈处理机相对应的多任务Fort h 系统均不适合运行在多核堆栈处理器硬件平台 上, 缺乏成熟的面向多核堆栈处理器的多任务调 度机制以及多任务Forth系统设计方案。 本发明 提供的基于多核堆栈处理器的Fort h多任务调度 方法是一种适合于多核堆栈处理器硬件平台的 多任务调度方法, 该方法可以提高硬件资源利用 率, 降低能源消耗。 权利要求书2页 说明书6页 附图3页 CN 115098258 B 2022.12.23 CN 115098258 B 1.一种基于多核堆栈处理器的Forth多任务调度方法, 其特征在于, 包括Forth任务初 始化步骤、 For th任务调度步骤、 多 核调度步骤, 其中, 所述Forth任务初始化 步骤在多任务For th系统启动一个新For th任务时执 行; 所述Forth任务调度步骤在一个任务的时间片消耗完时执 行; 所述多核调度步骤在有一个或多个处理器内核等待分配任务时由所述Forth任务调度 步骤启动执 行; 所述Forth任务初始化步骤具体为: 多任务Forth系统为新任务申请必要的运行空间, 根据新Forth任务的信息和必要的运行空间地址初始化新Forth任务TCB, 再将所述新Forth 任务TCB插 入到总任务队列的队尾和相同优先级的任务调度队列队尾; 所述Forth任务调度步骤具体为: 获得所述任务调度队列的访问权限, 保存Forth任务 现场, 将被换下的Forth任务TCB插入到相同优先级的任务调度队列队尾, 释放所述任务调 度队列的访问权限, 判断当前处理器内核对应的任务变量是否已有一个Forth任务TCB, 若 是, 则恢复For th任务现场继续执 行任务变量中的任务; 所述多核调度步骤具体为: 按优先级从高到低的方式查询任务调度队列, 从首个不为 空的任务调度队列中取出队首Forth任务TCB首地址, 存入当前处理器内核对应的任务变量 中, 然后按照该步骤为每个值为0的任务变量对应的处理器内核分配一个Forth任务, 在整 个Forth任务分配过程中, 若遇到所有任务调 度队列均为空的情况时, 则退出所述多核调度 步骤, 若遇到某个处理器内核处于关闭状态且任务调度队列不为空的情况时, 则启动该内 核并分配一个For th任务。 2.根据权利要求1所述的Forth多任务调度方法, 其特征在于, 所述Forth任务TCB存储 的内容包括: 任务调度队列下一个任务地址、 总任务队列下一个任务地址、 任务优先级、 任 务名称地址、 参数堆栈存储空间地址、 参数堆栈指针、 返回堆栈存储空间地址、 返回堆栈指 针、 任务编号、 任务状态、 当前任务执 行地址、 任务自由空间地址、 任务自由空间大小。 3.根据权利要求2所述的Forth多任务调度方法, 其特征在于, 所述任务优先级分为3 级, 1级优先级为最高优先级, 3级优先级为最低优先级, 所述多任务Forth系统中基本IO相 关的任务优先级为1级, 所述多任务Forth系统中的前台任务优先级为2级, 所述多任务 Forth系统中后台任务优 先级为3级; 所述任务调度队列有三个队列, 分别对应1、 2、 3级优 先 级, 用于存储多任务Forth系统中就绪态的任务; 所述总任务队列仅有一个队列, 用于存储 所述多任务For th系统中的所有任务。 4.根据权利要求1所述的Forth多任务调度方法, 其特征在于, 若当前处理器内核对应 的任务变量没有Forth任务TCB, 则转去执行所述多核调度步骤, 执行完所述多核调度步骤 后判断当前 处理器内核对应的任务变量中是否已有一个Forth任务TCB, 若是, 则恢复Forth 任务现场继续执 行任务变量中的任务, 若否, 则立刻关闭该内核。 5.根据权利要求4所述的Forth多任务调度方法, 其特征在于, 所述Forth任务现场保存 和恢复的内容包括程序计数器、 参数堆栈指针、 参数堆栈数据、 返回堆栈指针、 返回堆栈数 据。 6.根据权利要求5所述的Forth多任务调度方法, 其特征在于, 所述处理器内核对应的 任务变量是所述多任务Forth系统中的必要变量, 所述多任务Forth系统为多核堆栈处理器 的每个内核申请一个所述任务变量, 用于存储Forth任务TCB的地址, 所述任务变量按照处权 利 要 求 书 1/2 页 2 CN 115098258 B 2理器内核编号的顺序在所述多任务Forth系统中连续存放, 若所述任务变量的值为0, 则表 示该任务变量对应的内核需要被分配一个任务, 若 所述任务变量的值不为0, 则表示该任务 变量对应的内核已有正在运行的任务, 不需要分配新的任务。 7.一种基于多核堆栈处理器的Forth多任务调度装置, 其特征在于, 包括Forth任务初 始化模块、 For th任务调度模块、 多 核调度模块, 其中, 所述Forth任务初始化模块用于为Forth任务的运行申请必要的内存空间, 初始化 Forth任务TCB并将该TCB插 入任务队列; 所述Forth任务调度模块为运行中的Forth任务保存和恢复现场, 在处理器内核需要任 务时启动多 核调度模块, 在所有任务调度队列都为空时关闭当前处 理器内核; 所述多核调度模块为处理器每个需要被分配任务的内核分配一个任务, 在所述多任务 Forth系统中没有可分配任务时, 直接结束所述多 核调度模块; 所述Forth任务初始化模块具体用于多任务Forth系统为新任务申请必要的运行空间, 根据新Forth任务的信息和必要的运行空间地址初始化新Forth任务TCB, 再将所述新Forth 任务TCB插 入到总任务队列的队尾和相同优先级的任务调度队列队尾; 所述Forth任务调度模块具体用于获得所述任务调度队列的访问权限, 保存Forth任务 现场, 将被换下的Forth任务TCB插入到相同优先级的任务调度队列队尾, 释放所述任务调 度队列的访问权限, 判断当前处理器内核对应的任务变量是否已有一个Forth任务TCB, 若 是, 则恢复For th任务现场继续执 行任务变量中的任务; 所述多核调度模块具体用于按优先级从高到低的方式查询任务调度队列, 从首个不为 空的任务调度队列中取出队首Forth任务TCB首地址, 存入当前处理器内核对应的任务变量 中, 然后按照所述多核调度模块为每个值为0的任务变量对应的处理器内核分配一个Forth 任务, 在整个Forth任务分配过程中, 若遇到所有任务调度队列均为空的情况时, 则退出所 述多核调度模块, 若遇到某个处理器内核处于关闭状态且任务调度队列不为空的情况时, 则启动该内核并分配一个For th任务。权 利 要 求 书 2/2 页 3 CN 115098258 B 3

.PDF文档 专利 基于多核堆栈处理器的Forth多任务调度方法及装置

文档预览
中文文档 12 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共12页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 基于多核堆栈处理器的Forth多任务调度方法及装置 第 1 页 专利 基于多核堆栈处理器的Forth多任务调度方法及装置 第 2 页 专利 基于多核堆栈处理器的Forth多任务调度方法及装置 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 13:31:27上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。