可重构计算平台上的静态软硬件任务划分与调度方法

文档序号:6605705阅读:192来源:国知局
专利名称:可重构计算平台上的静态软硬件任务划分与调度方法
技术领域
本发明涉及一种任务划分与调度方法,特别涉及一种基于可重构计算平台上的静态软硬件任务划分与调度方法。
背景技术
可重构计算是权衡传统的通用处理器与专用集成电路的有效计算手段。对于很多任务,较之在通用处理器上使用软件实现,使用可重构逻辑器件的硬件实现可以获得很高 的加速比。与专用集成电路的硬件实现方式相比,随着动态可重构技术的普及,使用可重构 逻辑器件的实现具有更高的灵活性。在对于给定的任务集合,为了能够使其在可重构计算平台上高效的完成,发挥可 重构计算平台中各个器件的能力,首先需要对任务进行合理的划分,划分出在GPP上运行 的软件任务和布局在可重构逻辑单元上的硬件任务;同时还要决定任务与GPP和可重构逻 辑单元的动态映射关系。软硬件任务划分和任务调度是保证任务集合在可重构计算平台上 高效运行的重要技术。目前应用于可重构计算平台上的软硬件任务划分和调度方法单独考虑软硬件任 务划分的方法,难以综合考虑任务间的依赖关系以及计算资源间的并发关系,使得获得很 高加速的硬件任务可能会受限于低速任务的执行,难以保证整个任务集合的执行效率。单 独考虑软硬件任务划分难以顾及到任务间的依赖关系,也难以顾全计算资源间的并发关 系,获得很高加速的硬件任务可能会受限于低速任务的执行,使得任务集的执行速度难以 有效的提高,影响任务划分的效果。

发明内容
为克服现有技术中的不足,本发明的目的在于提供一种可重构计算平台上的静态 软硬件任务划分与调度方法,本发明将软硬件任务划分与任务调度相结合,同时给出软硬 件任务的划分方案和调度方案,可以有效的加速任务集的执行。为解决上述技术问题,实现上述技术目的,本发明通过以下技术方案来实现—种可重构计算平台上的静态软硬件任务划分与调度方法,其包括以下步骤步骤①,输入任务平台信息参数;所述平台信息参数包括1)目标平台信息P= (N,M)式中P表示目标平台信息,N为系统中通用处理器核心的数量,M为可重构计算单 元的数量;2)使用任务图建模的任务集合G = (V, E,Tw, Tc)式中G表示任务图建模的任务集合,V为顶点的集合,E为边集合。其中的每个顶 点t表示一个任务,代表一段不可抢占的指令执行序列,也就是过程的实例。每个任务t e V 都含有计算开销Tw。任务间的依赖关系,即前序约束,由有向弧表示。每条有向弧(tl,t2)的权值为Tc。3)任务图中每个任务实现为硬件任务时的任务加速比Accl。步骤②,计算任务静态优先级并初始化就绪任务队列;取任务的底端距离Tb为任务优先级,如果Tb越大,则其优先级越高。优选的,静态优先级确定后,在运行中不会改变。计算任务的静态优先级需要遍历整个任务图。在计算完静态优先级后,将所有的入口任务加入到就绪队列中。步骤③,选择就绪任务t ;在每个调度步中,从就绪任务队列中选取当前最高优先级的任务。步骤④,选择最优计算单元P,在每个调度步中,从计算单元集合中选取与当前被 选中任务最匹配的计算单元;选取的原则为使当前被选中的任务最早启动。步骤⑤,将就绪任务t和最优计算单元P记入任务调度序列;步骤⑥,判断最优计算单元P是否为可重构逻辑单元,如果是,将就绪任务t加入 硬件任务集合,如果不是,将就绪任务t加入软件任务集合;步骤⑦,处理后续任务,在每个调度步中调度完一项任务后,遍历所述任务的后继 节点,若其后继节点成为新的入口节点,则将其加入就绪任务队列;步骤⑧,判断就绪队列是否为空,如果不为空则重复自步骤③以后的步骤,步骤⑨,如果就绪队列为空,输出处理后的信息,其包括,任务调度序列、硬件任务 集合和软件任务集合。进一步的,所述步骤④中任务选取原则为当任务t e V就绪时,其全部前序任务都已经被调度,获得了一个部分调度。在部分调度中,处理器ρ的就绪时间定义为该计算单元上最近一个任务的完成时 间。Tr (p) = max (Tf (t, Pt(t)))t e V(1)给定一个部分调度,定义最早空闲计算单元pr为具有最小Tr(P)时间的计算单兀。Tr (pr) = min (Tr (p))pep(2)如果有多个具有相同Tr时间的计算单元,pr则从中随机选取。一个就绪任务t的最近消息到达时间定义为Tm(t) = max(Tf(t,)+Tc(t,,t))(t,,t)eE(3)一个就绪任务t的启动计算单元用pe(t)表示,指最后到达消息的来源计算单元。 当有多个Tm相同时,pe(t)随机选取。消息是由计算单元发送给自身时通信开销定义为0, 定义有效消息到达时间如下Te(t,p) = max(Tf(t,)+Tc(t,,t))(t,,t) e E,Pt (t)乒 ρ (4)就绪任务t调度到一个计算单元ρ上执行必须同时满足三个条件1)计算单元P 空闲;2)所有前序任务的消息已经到达;3)如果ρ为可重构计算单元,则该计算单元必须 完成局部重构。记最早空闲的通用处理器核心为prs,最早空闲的可重构计算单元为prh。记通用处理器核心的就绪时间为Trs(P),记可重构计算单元的就绪时间为Trh(P)。记重构开销为 Tro0则通用处理器核心ρ上的任务最早启动时间为Tss (t,p) = max (Te (t,ρ),Trs(p))(5)可重构计算单元ρ上任务最早启动时间为Tsh (t, p) = max (Te (t, ρ) +Tro, Trh (ρ) +Tro)(6)所以任务的启动时间为Ts (t, p) =min(Ts s (t, ρ), Tsh (t, ρ))(7)对(5),为使得Tss (t,ρ)取得最小值,则必须使Te (t,ρ)最小或者Trs (ρ)最小。 当且仅当P = pe(t)且P是通用处理器核心时Te(t,P)取得最小值;当且仅当P = prs时 Trs(P)取得最小值所以,最优的通用处理器核心必定为prs或pe(t)(如果存在)。对(6),为使得Tsh(t,ρ)取得最小值,则必须使Te (t,ρ)最小或者Trh(p)最小。 当且仅当ρ = pe (t)且ρ是可重构计算单元时Te (t,ρ)取得最小值;当且仅当ρ = prh时 Trh(p)取得最小值。所以,最优的可重构计算单元必定为prh或pe(t)(如果存在)。由(7),为使Ts (t,ρ)取得最小值,最优的计算单元必定为prS,prh,pe(t)之一。 由此可以定义任务的完成时间。本发明技术方案的优点主要体现在综合了软硬件任务静态划分与任务的静态调 度,同时在给出解决方案时参考了任务间的依赖关系和计算资源间的并发关系,当任务图 的规模增大时,本发明中提出的算法获得的加速比随之增长,同时算法的时间复杂度也比 较低。上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段, 并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。 本发明的具体实施方式
由以下实施例及其附图详细给出。


图1是本发明的任务划分和调度方法流程的示意图。
具体实施例方式参见图1所示一种可重构计算台上的静态软硬件任务划分与调度方法,包括以下 步骤步骤①,输入任务平台信息参数1 ;步骤②,计算任务静态优先级并初始化就绪任务队列2 ;步骤③,选择就绪任务t3 ;步骤④,选择最优计算单元P,在每个调度步中,从计算单元集合中选取与当前被 选中任务最匹配的计算单元4 ;步骤⑤,将就绪任务t和最优计算单元P记入任务调度序列5 ;步骤⑥,判断最优计算单元P是否为可重构逻辑单元,如果是,将就绪任务t加入 硬件任务集合,如果不是,将就绪任务t加入软件任务集合6 ;步骤⑦,处理后续任务,在每个调度步中调度完一项任务后,遍历所述任务的后继节点,若其后继节点成为新的入口节点,则将其加入就绪任务队列7 ;步骤⑧,判断就绪队列是否为空,如果不为空则重复自步骤③以后的步骤8;步骤⑨,如果就绪队列为空,输出处理后的信息,其包括,任务调度序列、硬件任务集合和软件任务集合9。下面通过一个访问控制的过程来说明平台无关的访问框架上具体流程。在本实施例中设定通用处理器核心数量N为2,可重构计算单元的数量M为2。即 PO和Pl为通用处理器核心,P2和P3为可重构计算单元,即同时最多有两个任务在通用处 理器上执行,也同时最多有两个任务在可重构计算单元上执行。可重构开销设定为10000。 故可得目标平台信息为P= (2,2)。在每个任务中,包含任务的执行时间,依赖关系和加速比三个参数,在本实施例 中,以TO为例,执行的时间为11096,加速比为24%,即用硬件实现的时间为在通用处理器 上用软件实现的24%。按照本发明对优先级的定义,取任务的底端距离Tb为任务优先级,如果Tb越大, 则其优先级越高,可得优先级排序为0,2,1,5,6,4,3,9,7,8。入口任务仅有TO。且0号任 务的优先级最高,获得最先调度权,又由于可重构的开销较大,故该任务将被调度为软件任 务,在PO号通用处理器上运行。0号处理器运行完毕之后,2,1,5,6号任务进入就绪队列。之后选择2号任务进行 调度,将2号任务调度到PO上执行。按照此方法,最终调度的结果是
权利要求
1.可重构计算平台上的静态软硬件任务划分与调度方法,其特征在于,包括如下步骤步骤①,输入任务平台信息参数; 步骤②,计算任务静态优先级并初始化就绪任务队列;步骤③,选择就绪任务t,在每个调度步中,从所述就绪任务队列中选取当前最高优先 级的任务;步骤④,选择最优计算单元P,在每个调度步中,从计算单元集合中选取与当前被选中 任务最匹配的计算单元,选取的原则为使当前被选中的任务最早启动; 步骤⑤,将就绪任务t和最优计算单元P记入任务调度序列; 步骤⑥,判断最优计算单元P是否为可重构逻辑单元,如果是,将就绪任务t加入硬件 任务集合,如果不是,将就绪任务t加入软件任务集合;步骤⑦,处理后续任务,在每个调度步中调度完一项任务后,遍历所述任务的后继节 点,若其后继节点成为新的入口节点,则将其加入就绪任务队列;步骤⑧,判断就绪队列是否为空,如果不为空则重复自步骤③以后的步骤, 步骤⑨,如果就绪队列为空,输出处理后的信息,其包括,任务调度序列、硬件任务集合 和软件任务集合。
2.根据权利要求1所述的可重构计算平台上的静态软硬件任务划分与调度方法,其特 征在于步骤①中所述任务平台信息参数包括,目标平台信息、任务图信息以及任务的加速 t匕fe胃、。
3.根据权利要求1所述的可重构计算平台上的静态软硬件任务划分与调度方法,其特 征在于在步骤②计算任务静态优先级和初始化任务队列之后,首先进入步骤⑧,查看就绪 队列是否为空,若为空,则程序执行完毕,输出任务调度序列、硬件任务集合和软件任务集 合;若不为空,则直接开始步骤③。
全文摘要
本发明公开了一种可重构计算平台上的静态软硬件任务划分与调度方法。该机制以任务平台信息和任务集合为输入,计算任务的静态优先级并初始化就绪任务队列,然后针对每个计算任务选择最优的计算单元,最终获得任务的调度队列。此方案在参考任务间的依赖关系和计算资源间的并发关系的前提下给出解决方案,有效解决了传统方法中任务静态划分与任务的静态调度不能有效相结合的问题。当任务图的规模增大时,本发明中提出的算法获得的加速比随之增长,同时算法的时间复杂度也比较低。
文档编号G06F9/50GK101996105SQ20101022372
公开日2011年3月30日 申请日期2010年7月9日 优先权日2010年7月9日
发明者周学海, 张惠臻, 李曦, 王超, 马宏星, 高妍妍 申请人:中国科学技术大学苏州研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1