基于多核处理器和fpga的软硬件混合实时任务调度方法

文档序号:6514344阅读:364来源:国知局
基于多核处理器和fpga的软硬件混合实时任务调度方法
【专利摘要】本发明公开了一种基于多核处理器和FPGA异构平台的软/硬件混合实时任务调度方法,该方法把实时任务的软件部分和硬件部分划分为强实时任务和弱实时任务,软件部分必须在截止期限内完成,给出尚可接受的计算结果,而硬件部分对软件部分的计算结果进一步优化,给出更加令人满意的计算结果。该调度方法包含如下步骤:(1)根据处理器核心数m,把实时任务分成m组;(2)判定每组实时任务的可调度性;(3)动态设置实时任务软件部分的优先级;(4)调度实时任务软件部分;(5)调度实时任务硬件部分。本发明将实时任务分为强实时和弱实时两部分,该方法不仅能使实时任务满足时间限制条件,而且还能提供更加满意的计算结果。
【专利说明】基于多核处理器和FPGA的软硬件混合实时任务调度方法
【技术领域】
[0001]本发明涉及一种实时任务调度方法,特别是一种基于多核处理器和FPGA的周期性软/硬件混合实时周期任务调度方法。
技术背景
[0002]由于FPGA具有可多次重新配置逻辑单元的功能和互连的特性,使系统兼具灵活性、高性能、高可靠、低能耗、低成本、易于升级等多种优良特性,因此基于通用处理器和FPGA的可重构计算填补了软硬件之间的鸿沟,它不仅保持了硬件的高性能,同时还具有接近于软件的灵活性。如何在基于多核处理器和FPGA的异构平台上调度软/硬件混合实时任务已成为一个研究热点,也是一个噬待解决的问题。
[0003]文献〈〈Online scheduling and placement of real-time tasks to partiallyreconfigurable devices))提出了一种硬件实时任务的调度和放置方法,但是它是针对硬件任务单一任务类型提出的,文献《采用预配置策略的可重构混合任务调度算法》提出了软/硬件混合任务调度算法,算法采用预配置策略,降低了配置时间对任务执行的影响,但没有考虑任务的实时性。
[0004]殷进勇在其博士论文《可重构系统中实时任务调度算法研究》和《一种面向部分可重构FPGA的混合实时任务调度算法》中对软/硬件混合实时的调度进行了探讨,文中用一个有向无环图表示软件任务和硬件任务之间的约束关系,软件任务和硬件任务均为强实时任务,没有考虑硬件任务的配置时间对实时任务的影响,仅在理论上给出了软/硬件混合实时任务可调度性判定方法和任务调度算法。
【发明内容】

[0005]本发明的目的在于提供一种基于多核处理器和FPGA的软硬件混合实时任务调度方法。
[0006]实现本发明目的的技术方案为:一种基于多核处理器和FPGA的软硬件混合实时任务调度方法,包括以下步骤:
[0007]步骤1、根据处理器核心数m,把实时任务集T=IT1J2,…,TJ分成m组,使得每组
的任务负载〃=Σ? +pCi趋于平衡,其中cS和Pi分别表示任务Ti的软件任务执行
时间,硬件任务执行时间和相对截止期限;把实时任务集T=IT1, T2,…,TJ分成m组,m为处理器核心数,具体包括以下步骤:
[0008]步骤1-1、把任务集T=IT1, T2,…,TJ的实时任务按照硬件任务的最大宽度从大到小的顺序排列;
[0009]步骤1-2、用 G1;G2, ---,Gm 表示 m 个任务分组,初始值 G1=G2=…=Gm=(J),用 UnU2,...,Um表示任务分组G1, G2,..., Gm已分配的任务负载,初始值U1=UfH=Um=O ;
[0010]步骤1-3、从任务集T中取出硬件任务宽度最大的实时任务Ti分配给负载Ui最小的任务分组Gi,修改变量
【权利要求】
1.一种基于多核处理器和FPGA的软硬件混合实时任务调度方法,其特征在于,包括以下步骤: 步骤1、根据处理器核心数m,把实时任务集T= IT1, T2,…,TJ分成m组,使得每组的任务负载pC;趋于平衡,其中rS和Pi分别表示任务Ti的软件任务执行时间,硬件任务执行时间和相对截止期限; 步骤2、判定步骤I中划分的每组实时任务的可调度性,如果每组实时任务均可调度,则任务集T可调度,否则不可调度; 步骤3、根据实时任务相对截止期限以及执行时所在的处理器核心是否是分配的处理器核心,动态地设置任务的优先级; 步骤4、按照动态设置的任务优先级调度实时任务软件部分; 步骤5、按照非抢占式DM算法调度实时任务硬件部分; 步骤6、按照硬件任务预配置序列预配置硬件任务。
2.根据权利要求1所述的基于多核处理器和FPGA的软硬件混合实时任务调度方法,其特征在于,步骤I把实时任务集T=IT1, T2,…,TJ分成m组,m为处理器核心数,具体包括以下步骤: 步骤1-1、把任务集T=IT 1, T2,…,TJ的实时任务按照硬件任务的最大宽度从大到小的顺序排列; 步骤1-2、用G1;G2,.",Gm表示m个任务分组,初始值G1=G2=…=Gm=<K用UnU2, ---,Um表示任务分组G1, G2,..., Gm已分配的任务负载,初始值U1=UfH=Um=O ; 步骤1-3、从任务集T中取出硬件任务宽度最大的实时任务Ti分配给负载U1最小的任务分组 Gi,修改变量 T=T-1TJ,Gi=GfITJ,U,=Ui+( Cf+Cfm,其中 Cf和 Pi 分别表示实时任务L的硬件部分执行时间、软件部分执行时间和周期; 步骤1-4、判断实时任务是否分配完毕,如果实时任务集分配没有分配完毕,即T古Φ,则转返回步骤1-3,否则任务分组结束。
3.根据权利要求1所述的基于多核处理器和FPGA的软硬件混合实时任务调度方法,其特征在于,步骤2判定每组实时任务的可调度性,具体方法为:将每组实时任务按照截止期限从小到大的顺序排列,如果每组都满足以下不等式,则实时任务集T可调度:maxmiir 夺 cL+Σ ir (cf+cj) ^-1
\<l<n 0<t<Dk I^f 其中I表示分组中的实时任务个数,Cl、=tmix丨C,.|/>/€丨表示相对截止期限大于等于任务Tk的实时任务的硬件任务最长执行时间,Cf和C/分别表示实时任务L的硬件部分执行时间和软件部分执行时间,t表示时间。
4.根据权利要求1所述的基于多核处理器和FPGA的软硬件混合实时任务调度方法,其特征在于,步骤3动态地设置任务的优先级具体为:任务的优先级与任务的截止期限、处理器核心编号相关,用符号CoreID表不处理器核心编号,用Corei表不任务Ti分配的处理器核心编号,用Corej表不任务Tj分配的处理器核心编号,设置方法如下: 如果Corei=CoreID并且Corej Φ CoreID,则任务Ti的优先级高于任务Tj的优先级高级; 如果Corei Φ CoreID并且Corej=CoreID,则任务Ti的优先级低于任务Tj的优先级高级; 如果 Corei=CoreID 并且 Corej=CoreID 或 Corei 幸 CoreID 并且 Corej 幸 CoreID,则比较任务Ti的与任务L的相对截止期限,如果任务Ti的相对截止期限小于/等于/大于任务L的相对截止期限;则任务Ti的优先级高于/等于/低于任务L的优先级高级。
5.根据权利要求1所述的基于多核处理器和FPGA的软硬件混合实时任务调度方法,其特征在于,步骤4按照动态设置的任务优先级调度实时任务软件部分具体为:将每个实时任务按照任务优先级同时插入到m个就绪队列中,在每个就绪队列上按照DM算法调度实时任务的软件部分。
6.根据权利要求1所述的基于多核处理器和FPGA的软硬件混合实时任务调度方法,其特征在于,步骤6按照硬件任务预配置序列预配置硬件任务具体为:在一个公共周期内静态地确定每组硬件任务的执行顺序,按照硬件任务的执行顺序配置下一个将要执行的硬件任务,当两个相邻的任务是同一`个硬件任务时则缓存该任务的配置。
【文档编号】G06F9/46GK103488531SQ201310460364
【公开日】2014年1月1日 申请日期:2013年9月26日 优先权日:2013年9月26日
【发明者】殷进勇, 袁丽, 曾玮妮, 宋汉广, 吴亮, 徐振朋 申请人:中国船舶重工集团公司第七一六研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1