动态可重构fpga在线2d区域管理和任务放置方法

文档序号:6481007阅读:123来源:国知局
专利名称:动态可重构fpga在线2d区域管理和任务放置方法
技术领域
本发明涉及可重构计算研究技术领域,特别是一种动态可重构FPGA在线2D区域 管理和任务放置方法。
背景技术
现场可编程门阵列(FPGA)以其低功耗、高性能和灵活性好的可重构硬件器件广 泛应用于嵌入式系统设计中。FPGA由一定数量的CLB (Configurable Logic Block,可重构 逻辑块,简称cell)及其之间的内部连线构成。FPGA天生具有并行性,即两个或更多的硬件 任务可以同时的在一块FPGA上执行。局部动态可重构FPGA,例如,Xilinx公司的Virtex 系列,允许对部分的FPGA区域进行配置而剩余部分不被中断并继续执行。也就是说,可以 动态的对硬件任务进行插入和删除。FPGA可以是1D(—维)可重构的,每个任务占用连续 的多个列;也可以是2D (二维)可重构的,每个任务占用一个矩形区域。现今的FGPA,例如, Xilinx Virtex-4,同时支持 1D 和 2D。FGPA上的硬件任务调度与多处理器上软件任务调度有一些相似系统中的所有 处理器具有相同的处理速度,不同的任务例程可以在不同的处理器上执行。但是,由于硬件 任务占用大小不同的区域,而软件任务一般只占用一个CPU,在实时任务调度问题上,带来 子一些新的具有挑战性的问题,如可重构区域管理和任务放置策略等。

发明内容
针对现有技术中的上述不足之处,本发明要解决的技术问题是提供一种可快速得 到极大空矩形的完备集合、降低FPGA区域的碎片度,进而降低任务拒绝率的高效的动态可 重构FPGA在线2D区域管理和任务放置方法。为解决上述技术问题,本发明采用的技术方案是本发明一种动态可重构FPGA在线2D区域管理和任务放置方法,其特征在于包括 以下步骤在2D可重构区域中搜索极大空矩形;根据任务的概率分布及极大空矩形计算各极大空矩形区域的碎片度,并根据该碎 片度进行任务放置。所述搜索极大空矩形包括以下步骤输入FPGA区域矩阵M和最新删除或插入的任务;更新区域矩阵M;找出更新区间[L,R],即硬件任务添加或者删除时,需要重新执行扫描的扫描线 所在列的范围;判断在[L,R]中是否存在未处理的扫描线?如果存在未处理的扫描线i,则使用改进的扫描线算法生成关于扫描线i的极大 空矩形,返回判断在[L,R]中是否存在未处理的扫描线步骤。
如果不存在未处理的扫描线,则输出由于任务插入或删除而删除或增加的极大空 矩形。所述改进的扫描线算法包括以下步骤输入FPGA区域矩阵M,并输入扫描线i ;存储扫描线i上所有最大关键元素于数组Keys []中;令变量w和K-等于数组Keys[]中最大值;判断w彡1是否成立?如果成立,则判断在数组Keys []中MKE(i,j)对应的值M[i][j]彡w是否成立?如果成立,则分别向上移动长度为w的水平线段top和向下移动长度为w的水平 线段bottom,直到卡住,即top或bottom撞到已被占用的cell而不能再继续移动;判断top和bottom是否变化?或者w = M[i] [j]是否成立?如果成立,则记录极大空矩形;判断是否存在MKE的top和bottom交叠;如果存在交叠,则在数组Keys []中只保存其中一个最大关键元素;w = w-1,转至判断w彡1是否成立步骤。如果不存在交叠,则转至w = w-1步骤。如果top和bottom变化或者w = M[i] [j]成立,则转至判断是否存在MKE的top 和bottom交叠步骤。如果MKE(i,j)对应的值M[i] [j]彡w不成立,则转至w = wl步骤。如果w彡1不成立,则输出扫描线i上所有最大关键元素生成的极大空矩形。所述根据该碎片度进行任务放置包括以下步骤判断是否有任务到达?如有任务到达,则在时间区间[t,t+Ej内计算所有可以容纳任务凡的极大空矩形 的区域平均碎片度TAAF,其中Ei为任务的执行时间;在t时刻选择最大区域平均碎片度TAAF的极大空矩形放置任务凡;判断是否使用移动平均法?如果使用,则更新下一个到来任务的宽度和高度的概率Pw和PH ;判断是否有任务插入或删除?如果有任务插入或删除,则更新碎片矩阵;接续在2D可重构区域中搜索极大空矩形步骤。如果没有任务插入或删除,则转至判断是否有任务到达步骤。如果没有任务到达,或者没有使用移动平均法,则转至判断是否有任务插入或 删除步骤。本发明具有以下有益效果及优点1.高效搜索极大空矩形,适合在线使用;根据任务的概率分布来来计算区域的碎 片度,更符合实际系统。


图1为本发明方法中搜索极大空矩形主流程图;图2为本发明中扫描线算法流程图3为本发明方法中任务放置流程图;图4(a)为FPGA可重配置区域示意图;图4 (b)为图4 (a)对应的M矩阵;图5为空白区域中的极大空矩形;图6为扫描线和其上的段落;图7(a) 7(c)为通过最大关键元素构造的MER集合示意图(1) (3);图8(a)为更新的扫描线所在列示意图;图8(b)为更新区间示意图;图9为t时刻的FPGA区域示意图;图10(a)为单元数据结构的动态更新过程图示(一);图10(b)为单元数据结构的动态更新过程图示(二);图10(c)为单元数据结构的动态更新过程图示(三)。本发明一种动态可重构FPGA在线2D区域管理和任务放置方法由两部分组成在 2D可重构区域中搜索极大空矩形(MER);根据任务的概率分布及极大空矩形计算各极大空 矩形区域的碎片度,并根据该碎片度进行任务放置。即本发明方法提供了一个高效的搜索 全部极大空矩形的方法和一个高效的在线软实时任务放置方法。目的是快速得到极大空 矩形的完备集合;降低FPGA区域的碎片度,进而降低任务拒绝率。
具体实施例方式1.搜索极大空矩形包括以下步骤(如图1、2所示)输入FPGA区域矩阵M和最新删除或插入的任务;更新区域矩阵M;找出更新区间[L,R],即硬件任务添加或者删除时,需要重新执行扫描的扫描线所 在列的范围;判断在[L,R]中是否存在未处理的扫描线?如果存在未处理的扫描线i,则使用改进的扫描线算法生成关于扫描线i的极大 空矩形,返回判断在[L,R]中是否存在未处理的扫描线步骤。如果不存在未处理的扫描线,则输出由于任务插入或删除而删除或增加的极大空 矩形。所述改进的扫描线算法包括以下步骤输入FPGA区域矩阵M,并输入扫描线i ;存储扫描线i上所有最大关键元素(MKE)于数组Keys[]中;令变量w和Kmax等于数组Keys []中最大值;判断w彡1是否成立?如果成立,则判断在数组Keys []中MKE(i,j)对应的值M[i] [j]彡w是否成立?如果成立,则分别向上移动长度为w的水平线段top和向下移动长度为w的水平 线段bottom,直到卡住,即top或bottom撞到已被占用的cell而不能再继续移动;判断top和bottom是否变化?或者w = M[i] [j]是否成立?如果成立,则记录极大空矩形;判断是否存在MKE的top和bottom交叠;
如果存在交叠,则在数组Keys []中只保存其中一个最大关键元素;w = w-1,转至判断w≥1是否成立步骤;如果不存在交叠,则转至w = w-1步骤;如果top和bottom变化或者w = M[i] [j]成立,则转至判断是否存在MKE的top 和bottom交叠步骤;如果MKE(i,j)对应的值M[i] [j]≥w不成立,则转至w = w-1步骤;如果w≥1不成立,则输出扫描线i上所有最大关键元素生成的极大空矩形。1. 1基本定义在可重配置区域中,被任务占据的CLB称为已占据CLB(0ccupiedCLB),未被任务 占据的CLB称为空白CLB (Empty CLB)。整个M矩阵的值由如下定义,如图4(a)、4(b)所示
权利要求
一种动态可重构FPGA在线2D区域管理和任务放置方法,其特征在于包括以下步骤在2D可重构区域中搜索极大空矩形;根据任务的概率分布及极大空矩形计算各极大空矩形区域的碎片度,并根据该碎片度进行任务放置。
2.按权利要求1所述的动态可重构FPGA在线2D区域管理和任务放置方法,其特征在 于所述搜索极大空矩形包括以下步骤输入FPGA区域矩阵M和最新删除或插入的任务; 更新区域矩阵M ;找出更新区间[L,R],即硬件任务添加或者删除时,需要重新执行扫描的扫描线所在列 的范围;判断在[L,R]中是否存在未处理的扫描线?如果存在未处理的扫描线i,则使用改进的扫描线算法生成关于扫描线i的极大空矩 形,返回判断在[L,R]中是否存在未处理的扫描线步骤。
3.按权利要求2所述的动态可重构FPGA在线2D区域管理和任务放置方法,其特征在 于如果不存在未处理的扫描线,则输出由于任务插入或删除而删除或增加的极大空矩形。
4.按权利要求2所述的动态可重构FPGA在线2D区域管理和任务放置方法,其特征在 于所述改进的扫描线算法包括以下步骤输入FPGA区域矩阵M,并输入扫描线i ; 存储扫描线i上所有最大关键元素于数组Keys []中; 令变量w和Kmax等于数组Keys []中最大值; 判断w彡1是否成立?如果成立,则判断在数组Keys []中MKE(i,j)对应的值M[i][j]彡w是否成立? 如果成立,则分别向上移动长度为w的水平线段top和向下移动长度为w的水平线段 bottom,直到卡住,即top或bottom撞到已被占用的cell而不能再继续移动; 判断top和bottom是否变化?或者w = M[i] [j]是否成立? 如果成立,则记录极大空矩形; 判断是否存在MKE的top和bottom交叠; 如果存在交叠,则在数组Keys []中只保存其中一个最大关键元素; w = w-1,转至判断w≥1是否成立步骤。
5.按权利要求4所述的动态可重构FPGA在线2D区域管理和任务放置方法,其特征在 于如果不存在交叠,则转至w = w-1步骤。
6.按权利要求4所述的动态可重构FPGA在线2D区域管理和任务放置方法,其特征 在于如果top和bottom变化或者w = M[i] [j]成立,则转至判断是否存在MKE的top和 bottom交叠步骤。
7.按权利要求4所述的动态可重构FPGA在线2D区域管理和任务放置方法,其特征在 于如果MKE (i,j)对应的值M[i] [j]≥w不成立,则转至w = w-1步骤。
8.按权利要求4所述的动态可重构FPGA在线2D区域管理和任务放置方法,其特征在 于如果w彡1不成立,则输出扫描线i上所有最大关键元素生成的极大空矩形。
9.按权利要求1所述的动态可重构FPGA在线2D区域管理和任务放置方法,其特征在 于所述根据该碎片度进行任务放置包括以下步骤判断是否有任务Ti到达?如有任务到达,则在时间区间[t,t+Ej内计算所有可以容纳任务Ti的极大空矩形的区 域平均碎片度TAAF,其中Ei为任务Ti的执行时间;在t时刻选择最大区域平均碎片度TAAF的极大空矩形放置任务Ti ; 判断是否使用移动平均法?如果使用,则更新下一个到来任务的宽度和高度的概率Pw和Ph ;判断是否有任务插入或删除?如果有任务插入或删除,则更新碎片矩阵;接续在2D可重构区域中搜索极大空矩形步骤。
10.按权利要求9所述的动态可重构FPGA在线2D区域管理和任务放置方法,其特征在于如果没有任务插入或删除,则转至判断是否有任务Ti到达步骤;如果有任务Ti到达,或者没有使用移动平均法,则转至判断是否有任务插入或删除步
全文摘要
本发明公开一种动态可重构FPGA在线2D区域管理和任务放置方法,包括以下步骤在2D可重构区域中搜索极大空矩形;根据任务的概率分布及极大空矩形计算各极大空矩形区域的碎片度,并根据该碎片度进行任务放置;所述搜索极大空矩形包括输入FPGA区域矩阵M和最新删除或插入的任务;更新区域矩阵M;找出更新区间[L,R],即硬件任务添加或者删除时,需要重新执行扫描的扫描线所在列的范围;判断在[L,R]中是否存在未处理的扫描线。如果存在未处理的扫描线i,则使用改进的扫描线算法生成关于扫描线i的极大空矩形,返回判断在[L,R]中是否存在未处理的扫描线步骤。本发明方法高效搜索极大空矩形,根据任务的概率分布来计算区域的碎片度,更符合实际系统。
文档编号G06F9/50GK101996092SQ200910011830
公开日2011年3月30日 申请日期2009年6月3日 优先权日2009年6月3日
发明者刘志丹, 孔繁鑫, 宁宝锋, 崔进, 邓庆绪, 金曦 申请人:东北大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1