[发明专利]一种基于多处理器的分布式实时多任务调度方法在审
申请号: | 202010571560.8 | 申请日: | 2020-06-22 |
公开(公告)号: | CN111767141A | 公开(公告)日: | 2020-10-13 |
发明(设计)人: | 汤俊;王浩男;翟冠 | 申请(专利权)人: | 北京紫玉伟业电子科技有限公司;清华大学 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F9/54 |
代理公司: | 北京众合诚成知识产权代理有限公司 11246 | 代理人: | 张文宝 |
地址: | 100080 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 处理器 分布式 实时 任务 调度 方法 | ||
1.一种基于多处理器的分布式多任务调度方法,采用非抢占调度策略作为调度内核,支持任意多个处理任务,改善了系统实时性;其特征在于,所述分布式多任务调度方法是在多处理器平台运行,处理器数量包括一个或多个,每个处理器对内部建立的多个处理模块进行实时调度的分布式实时多任务调度;具体包括存储管理单元、任务调度模块及处理任务模块;其中,包含等待态队列、就绪态队列和输出态队列的任务调度单元分别连接通信传输单元与处理任务模块,并传输任务数据通信信息;处理任务模块连接存储管理单元;并传输内存访问信息;具体包括:
(1)存储管理单元,包括内存池管理模块和内存池参数数据结构;DSP内部的若干内存块,以及外部存储区域,均可通过内存池参数数据结构信息被内存池管理模块动态分配管理,从而存储处理任务的输入数据、输出数据,以及执行该任务过程中产生的缓存数据;内存池管理模块,用以动态记录和维护每个内存块使用情况;
(2)通信传输单元,包括任务消息通信模块和任务数据传输模块,任务消息通信模块,实现任务间、片间或板间的消息传递任务、消息以数据帧的方式传递;帧长度单位为字,帧内容包括发送任务的处理器编号、发送任务编号、发送任务数据编号、接收任务的处理器编号、接收任务编号、接收任务数据编号、数据长度和任务模式码;
任务数据传输模块,实现任务间数据传递,包含通信任务双方在同一DSP片,在不同DSP片或不同板卡上的所有情形;任务数据以数据包的方式传输,包长度单位为字,包内容为需要传输的数据;
(3)任务调度单元,包括调度执行模块、等待态任务队列、就绪态任务队列和输出态任务队列;其中调度执行模块负责所有队列的调度管理。
2.根据权利要求1所述一种基于多处理器的分布式多任务调度方法;其特征在于,所述步骤(1)存储管理单元模块按以下步骤进行管理:
第一步:各存储块初始化;
第二步:判断是否接收到内存使用申请;若不存在,则返回第一步;若存在,则查找内存池参数数据结构,判断是否存在满足申请大小的存储块;若不存在,则返回第一步;若存在,则获取内存起始地址,返回给申请发起任务方;
第三步:根据当前内存使用信息,更新内存池参数数据结构,返回第一步;所述内存使用申请,是指任务通过存储管理单元的接口函数发起的存储空间占用请求。
3.根据权利要求1所述一种基于多处理器的分布式多任务调度方法;其特征在于,所述步骤(2)通信传输单元,包括任务消息通信模块和任务数据传输模块;所述任务消息通信模块负责收发双向任务,按以下步骤进行消息通信:
步骤211:发送任务通信单元装订任务信息帧;
步骤212:发送任务通信单元等待传输通路空闲;
步骤213:发送任务通信单元发送任务信息帧;
步骤214:接收任务通信单元接受任务信息帧;
步骤215:接收任务通信单元配置下一次接收;
所述任务数据传输模块,按以下步骤进行数据传输:
步骤221:按所述任务消息通信模块进行消息通信的步骤,发送方调用任务消息通信模块,向接收方发送数据包传输请求数据帧
步骤222:按所述任务消息通信模块进行消息通信的步骤,接收方收到数据传输请求数据帧,判断自身是否具备立即接收数据的条件;若不具备,则等待;若具备,则按所述任务消息通信模块进行消息通信的步骤,向发送方馈回数据包传输允许数据帧,表示同意接收数据包;
步骤223:发送任务通信单元等待传输通路空闲;
步骤224:发送任务通信单元发送任务数据包;
步骤225:接收任务通信单元接受任务数据包,并缓存在内存的特定区域;
步骤226:接收任务通信单元将收到的数据包转储到所述数据包传输请求数据帧中所包含的缓存区域中;
步骤227:接收任务通信单元配置下一次接收。
4.根据权利要求1所述一种基于多处理器的分布式多任务调度方法;其特征在于,所述步骤(3)任务调度单元,按以下步骤进行任务调度执行:
第一步:初始状态下,所述调度执行模块把从所述任务通信单元接收到的所有任务置于等待态任务队列单元;
第二步:调度执行模块扫描等待态任务队列,判断是否存在准备就绪的任务;若有准备就绪的任务,则把准备就绪任务置于就绪态任务队列;若没有,则返回第一步;
第三步:所述调度执行模块扫描所述就绪态任务队列,判断是否存在已处理就绪的任务;若存在则把所述已处理就绪的任务置于输出态任务队列中;若没有,返回第二步;
第四步:调度执行单元扫描输出态任务队列单元,判断是否存在等待输出的任务;若有,则把所述等待输出的任务发送给通信传输单元,用以向其他任务节点发送任务数据;若没有,则返回第三步;
第五步:循环第二步到第四步,一直到全部处理并输出所有已接收的任务后,返回第一步。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京紫玉伟业电子科技有限公司;清华大学,未经北京紫玉伟业电子科技有限公司;清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010571560.8/1.html,转载请声明来源钻瓜专利网。