当前位置: 首页 > 专利查询>上海大学专利>正文

一种基于条件抢占的FPGA任务调度方法技术

技术编号:7758919 阅读:189 留言:0更新日期:2012-09-14 00:32
本发明专利技术涉及一种基于条件抢占的FPGA任务调度方法,该方法具体步骤如下:1)建立一个等待队列,等待队列用来放置的是等待进入FPGA的任务;2)将等待队列队首任务最早进入FPGA的时刻设为最早预约时刻;3)依次获取非队首任务,获取它们的执行时间;4)判断它们是否满足抢占条件:当前时刻+任务执行时间≤队首任务的最早预约时刻。若满足跳转至5),不满足跳转至7);5)判断此刻FPGA中是否有足够大的空闲空间允许该任务放入,有则跳至6),否则跳至7);6)将该任务先于队首任务,放入FPGA执行;7)该任务继续等待。该调度方法调整了等待队列中任务进入FPGA执行的顺序,使后到任务可以先于先到任务放入FPGA执行,从而减少了任务的等待时间,有效提高任务集执行效率。

【技术实现步骤摘要】

本专利技术涉及一种基于条件抢占的FPGA任务调度方法
技术介绍
FPGA内部可重构空间与任务均为二维矩形。任务对FPGA内位置选择没有严格限制,只要FPGA内部存在一块空白块面积大于该任务所需逻辑块面积,该任务就可放在FPGA内运行。假设一批任务之间无数据相关性的任务队列,按顺序依次到达可重构部件FPGA,这时需要根据FPGA的资源占用情况,调整任务进入FPGA的顺序,同时设计算法在二维空间内合理地摆放任务。通过比较任务集合执行所花费的总时间、任务到达FPGA后是否能及时进A FPGA被执行的概率、以及任务等待的时间等评测指标,来比较不同方法对于FPGA的资源 利用情况。对于任务调度问题,国内外有以下研究成果。J. Tabero等人与J. Cui等人提出了 one-level look-ahead算法。该算法的基本思想是如果在下一个有任务退出FPGA的时刻放入新到的任务可以得到更高的FPGA资源利用率,则将该任务延迟到下一个有任务退出FPGA的时刻放入。该方法的缺点是只提出了算法思想,没有定量的分析算法效果,如用何种方式比较FPGA的资源利用率,任务最多延迟多久放入多少合适等。许新达等人提出了一种“亚可抢占”的任务序列调整方式。该算法的基本思想是当有一个以上的等待任务时,延迟第一个等待任务的进入时间,与第二个等待任务在下一个FPGA内的任务退出时刻统一放置。该算法缺点是它不是通过定量衡量FPGA的资源利用率来决定是否延迟任务进入FPGA的时刻,而是通过比较是否能减少多个等待任务的等待时间来决定是否延迟任务进入FPGA的时刻。周学功等人提出了一种紧凑预约算法。通过任务执行时间信息的充分利用,该算法为等待任务统一离线放置,预约放置位置,减少了任务等待时间。该方法缺点是需要利用矩阵表示FPGA使用情况,并用矩阵元素记录任务的离开时间等信息,并且在每一时刻必须更新所有矩阵元素信息,复杂度较高。本专利技术方法是基于以上三种算法,旨在定量分析放入时间以充分利用FPGA的同时又能减小复杂度。
技术实现思路
针对现有技术存在的缺陷,本专利技术的目的是提供一种基于条件抢占的FPGA任务调度方法。本方法是一种基于条件抢占的,调整等待队列中非队首任务进入FPGA的顺序的调度方法。针对“先到先进入”的调度方式的不足,该方法会调整等待进入FPGA的任务序列顺序,减少任务的等待时间。本专利技术的基本思想是只有当等待的任务超过两个时,在不改变先到达FPGA的任务的预计进入时间的情况下,可以允许后到达FPGA的任务先提前进入FPGA执行。为达到上述目的,本专利技术采用如下技术方案一种基于条件抢占的FPGA任务调度方法,该方法的步骤如下 1)建立一个等待队列,等待队列用来放置的是等待进入FPGA的任务; 2)将等待队列队首任务最早进入FPGA的时刻设为最早预约时刻; 3)依次获取非队首任务,获取它们的执行时间; 4)判断它们是否满足抢占条件,即当前时刻+任务执行时间<队首任务的最早预约时刻;若满足跳转至5),若不满足跳转至7); 5)判断此刻FPGA中是否有足够大的空闲空间允许该任务放入,若有则跳至6),否则跳至7); 6)将该任务先于队首任务,放入FPGA执行; 7)该任务继续等待。与现有技术相比,本专利技术的优点在于 本专利技术针对传统的“先到先进入执行“的调度 方式的不足,调整了等待进入FPGA的任务序列顺序,减少了任务的等待时间。通过建立执行队列与等待队列,该方法能有效管理任务序列的调度过程,及时判断等待任务是否满足抢占条件。与传统的调度方式相比,该方法的突出优点是能够充分利用FPGA资源且产生较低的调度复杂度。附图说明 图I是任务条件抢占流程图。图2是实例中任务的抢占过程。具体实施例方式如图I所示,本专利技术的方法的具体实施步骤如下 1)建立一个等待队列,等待队列用来放置的是等待进入FPGA的任务; 2)将等待队列队首任务最早进入FPGA的时刻设为最早预约时刻; 3)依次获取非队首任务,获取它们的执行时间; 4)判断它们是否满足抢占条件当前时刻+任务执行时间<队首任务的最早预约时亥IJ。若满足跳转至5),不满足跳转至7); 5)判断此刻FPGA中是否有足够大的空闲空间允许该任务放入,有则跳至6),否则跳至7); 6)将该任务先于队首任务,放入FPGA执行; 7)该任务继续等待。如图2所示,一个基于条件抢占的FPGA任务调度方法的实例如下 假设当前时刻为0,此刻有三个任务a、b、c在等待。队首任务a的最早可以进入FPGA的时刻为8。假设此刻FPGA有足够的空闲块供任务b、c放入。b任务的执行时间为5,c任务的执行时间为10。任务抢占过程如下 SI.首先建立一个等待队列,将a、b、c放入等待队列。S2.首先获取队首任务a最早预约时刻为8.S3.先获取b,看它是否满足抢占条件。因为当前时刻+b的执行时间=5,5小于最早预约时刻,即满足抢占条件。S4.又因为此时FPGA中有足够大的空闲块容纳任务b。S5.故将先将任务b放入FPGA执行。S6.继续获取C,当前时刻+c的执行时间=10,10大于最早预约时刻。S7.任务c继续等待。权利要求1. 一种基于条件抢占的FPGA任务调度方法,其特征在于,该方法的步骤如下 1)建立ー个等待队列,等待队列用来放置的是等待进入FPGA的任务; 2)将等待队列队首任务最早进入FPGA的时刻设为最早预约时刻; 3)依次获取非队首任务,获取它们的执行时间; 4)判断它们是否满足抢占条件,即当前时刻+任务执行时间<队首任务的最早预约时刻;若满足跳转至步骤5),若不满足跳转至步骤7); 5)判断此刻FPGA中是否有足够大的空闲空间允许该任务放入,若有则跳至步骤6),否则跳至步骤7); 6)将该任务先于队首任务,放入FPGA执行; 7)该任务继续等待。全文摘要本专利技术涉及一种基于条件抢占的FPGA任务调度方法,该方法具体步骤如下1)建立一个等待队列,等待队列用来放置的是等待进入FPGA的任务;2)将等待队列队首任务最早进入FPGA的时刻设为最早预约时刻;3)依次获取非队首任务,获取它们的执行时间;4)判断它们是否满足抢占条件当前时刻+任务执行时间≤队首任务的最早预约时刻。若满足跳转至5),不满足跳转至7);5)判断此刻FPGA中是否有足够大的空闲空间允许该任务放入,有则跳至6),否则跳至7);6)将该任务先于队首任务,放入FPGA执行;7)该任务继续等待。该调度方法调整了等待队列中任务进入FPGA执行的顺序,使后到任务可以先于先到任务放入FPGA执行,从而减少了任务的等待时间,有效提高任务集执行效率。文档编号G06F9/46GK102662744SQ20121011510公开日2012年9月12日 申请日期2012年4月19日 优先权日2012年4月19日专利技术者张隽丰, 陈雪, 高英虎 申请人:上海大学本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:陈雪张隽丰高英虎
申请(专利权)人:上海大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1