基于虚拟分区的可重构系统的任务调度方法
【专利摘要】本发明公布了一种基于虚拟分区的可重构系统的任务调度方法,所述方法根据任务重复出现的次数来定义任务重要性参数,对可重构资源进行虚拟分区,对不同重要性的任务进行分区管理。当任务重要性值增加时,一些任务从一个区域移动到另一个区域。当任务完成后,其配置并不立即从可重构资源上移除,而是尽可能地保留,当相同任务再次出现时可以直接运行计算,进而减少配置次数,降低重构开销。尽管在可重构资源上保留完成任务的配置可以增加任务重用的概率,但同时也会减少可重构资源的空闲资源。当新任务到达时,若没有足够的空闲资源,则按照一定的条件修改分区大小,若还不满足,则在放置最小重要性任务的区域中选择保留的一个或多个任务,并用新任务替换。
【专利说明】基于虚拟分区的可重构系统的任务调度方法
【技术领域】
[0001]本发明涉及可重构计算领域,具体是一种动态可重构任务调度方法。
【背景技术】
[0002]可重构计算是指使用集成了可编程硬件的系统进行计算,并且可编程硬件的功能可由一系列定时变化的物理可控点来定义,其计算硬件结构可以改变(可重构)。可重构计算既保持了传统的基于硬件的执行效率,又保持了可变的体系结构,可以适应实际应用中的多元需求,它打破了软硬件之间的界线,有着介于微处理器和专用集成电路之间的性能,从而有着更强的计算能力,目前已经广泛应用在科学计算、国防军事、航空航天等诸多领域,用于实现如目标匹配、大数值运算、数据挖掘、模型仿真等功能,都取得了非常好的效果。目前可重构计算技术的应用也在逐渐向民用领域扩展,在汽车电子、网络设备等领域已经有产品出现。
[0003]现代的可重构器件如可编程门阵列(Field Programmable Gate Array, FPGA)有一个很大的优点,即它能进行动态部分可重构,对部分资源进行动态配置。这个特征给可重构计算系统带来极大的灵活性,同时也带来很大的挑战。其中一个关键就是在运行时可重构操作系统对可重构资源的管理。硬件任务是指内部综合,宽度、高度固定,具备特定的功能且不可旋转的逻辑模块,需要配置后才能在硬件资源上执行。一个成功的任务调度意味着任务能在规定的时间内分配到可重构资源上进行配置运行,并且和其它任务不发生冲突。通常而言,任务的配置过程常伴有延迟,同时配置过程也带来大量的数据访问,这给FPGA带来很大的能耗。因此,合理的资源管理可以避免任务大量配置时发生冲突,同时也可以提高可重构资源的利用率,减少配置次数,提高任务调度效率。
【发明内容】
[0004]本发明针对现有技术的缺陷提出了一种基于虚拟分区的可重构系统的任务调度方法。
[0005]本发明基于虚拟分区的可重构系统的任务调度方法包括如下步骤:
[0006](1)首先进行可重构资源的虚拟分区,采用虚拟分区模块将可重构资源分割成三块虚拟区域S1, S2, S3 ;
[0007](2)初始化硬件任务,任务依次进入运行;
[0008](3)当一个新任务到达所述可重构系统时,首先判断任务的任务重要性TS值,TS表示任务重复出现的次数,所以TS > I ;
[0009](4)当新任务重要性TS = 1,则新任务进入S1E ^S1区有足够的空闲资源,那么直接放置新任务;当S1区没有足够的空闲资源,那么采用修改分区模块修改S1区;
[0010](5)当修改S1区后仍没有足够的资源放置新任务,那么在可重构资源中的保留资源区域采用任务替换模块替换新任务;如果替换不成功,那么新任务将被拒绝;
[0011](6)当新任务重要性TS > 1,则任务进入S2或S3区:首先判断新任务是否有可以重用的配置,当拥有相同配置的任务已经运行完成,那么直接利用已经运行完成的拥有相同配置的任务配置运行;当拥有相同配置的任务正在运行,那么计算拥有相同配置的任务的运行结束时间fi =任务开始时刻Si+任务执行时间ei和新任务的最迟开始时间LSTi =任务截止时刻Cl1-任务执行时间^ ;
[0012](7)当& > LSTi,那么新任务被放置在空闲虚拟区域,当没有足够的空闲虚拟区域则修改分区模块S2或S3区,当修改虚拟区域后还是没有足够的资源来放置新任务则采用任务替换模块替换新任务;当替换不成功,那么新任务将被拒绝;当fi < LSTi,那么新任务在任务完成后重用资源;
[0013](8)返回步骤(3)依次循环,至所有任务完成。
[0014]所述新任务用六元组Iwi, hi; ai; e,, Cli, sj进行描述,Wi,比表示任务占用可重构资源的宽和高,Bi表示任务的到达时间,e,表示任务的执行时间,Cli表示任务截止时间,Si表示任务类型。
[0015]所述修改分区模块修改虚拟区域满足如下条件:
[0016]Sk为Si的相邻虚拟区域,且PUk <0.6,i和k取值为I~3并且不相同,PUk为区域Sk的区域利用率。
[0017]所述每个分区的分区利用率如下:
【权利要求】
1.一种基于虚拟分区的可重构系统的任务调度方法,其特征在于包括如下步骤: (1)首先进行可重构资源的虚拟分区,采用虚拟分区模块将可重构资源分割成三块虚拟区域S1, S2, S3 ; (2)初始化硬件任务,任务依次进入运行; (3)当一个新任务到达所述可重构系统时,首先判断任务的任务重要性TS值; (4)当新任务重要性TS= 1,则新任务进入S1E:当S1区有足够的空闲资源,那么直接放置新任务;当S1区没有足够的空闲资源,那么采用修改分区模块修改S1区; (5)当修改S1区后仍没有足够的资源放置新任务,那么在可重构资源中的保留资源区域采用任务替换模块替换新任务;如果替换不成功,那么新任务将被拒绝; (6)当新任务重要性TS> 1,则任务进入S2或S3区:首先判断新任务是否有可以重用的配置,当拥有相同配置的任务已经运行完成,那么直接利用已经运行完成的拥有相同配置的任务配置运行;当拥有相同配置的任务正在运行,那么计算拥有相同配置的任务的运行结束时间A =任务开始时刻Si+任务执行时间ei和新任务的最迟开始时间LSTi =任务截止时刻Cl1-任务执行时间ei ; (7)当&> LSTi,那么新任务被放置在空闲虚拟区域,当没有足够的空闲虚拟区域则采用修改分区模块修改S2或S3区,当修改虚拟区域后还是没有足够的资源来放置新任务则采用任务替换模块替换新任务;当替换不成功,那么新任务将被拒绝;当fi < LSTi,那么新任务在任务完成后重用资源; (8)返回步骤(3)依次循环,至所有任务完成。
2.根据权利要求1所述的基于虚拟分区的可重构系统的任务调度方法,其特征在于所述新任务用六元组{w” hi; ai; e,, Cli, sj进行描述,Wi,Iii表示任务占用可重构资源的宽和高,Bi表示任务的到达时间,e,表示任务的执行时间,d,表示任务截止时间,Si表示任务类型。
3.根据权利要求1所述的基于虚拟分区的可重构系统的任务调度方法,其特征在于所述修改分区模块修改虚拟区域满足如下条件: Sk为Si的相邻虚拟区域,且PUk < 0.6,i和k取值为I~3并且不相同,PUk为区域Sk的区域利用率。
4.根据权利要求3所述的基于虚拟分区的可重构系统的任务调度方法,其特征在于所述每个分区的分区利用率定义如下:
w
PJJ _ occupied
1— W Woccupied是Si已占用的宽度和,W是该区域资源的总宽度。
【文档编号】G06F9/46GK104008006SQ201410211118
【公开日】2014年8月27日 申请日期:2014年5月19日 优先权日:2014年5月19日
【发明者】朱志宇, 沈舒, 吴将, 王彪, 王逊, 陈迅, 李阳, 薛文涛, 黄巧亮 申请人:江苏科技大学