CN101441679A - 基于扫描线方法的查找fpga芯片空白区域的方法 - Google Patents
基于扫描线方法的查找fpga芯片空白区域的方法 Download PDFInfo
- Publication number
- CN101441679A CN101441679A CNA2008102322146A CN200810232214A CN101441679A CN 101441679 A CN101441679 A CN 101441679A CN A2008102322146 A CNA2008102322146 A CN A2008102322146A CN 200810232214 A CN200810232214 A CN 200810232214A CN 101441679 A CN101441679 A CN 101441679A
- Authority
- CN
- China
- Prior art keywords
- effective search
- mke
- search width
- fpga
- width
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了一种基于扫描线方法的查找FPGA芯片空白区域的方法,其查找步骤为:从给定MKE向左查找,将所得到的连续空白单元数作为有效查找宽度w加入到有效查找宽度集合SVSW中;从该MKE的依次向上和向下找出连续空白单元数的递减序列添加到有效查找宽度集合当中,直到在FPGA中遇见边界或是已经被使用的单元为止;从SVSW中逐次选取没有查找过的w进行下述查找:检查给定的MKE是否被在同一扫描线中的其它MER用w进行查找过,如果是则停止,否则,以该MKE所在位置为右垂直边界,分别向上和向下寻找宽w的连续空白区域,并将查找所遍历的扫描线上的单元标记为以w查找过。本发明具有查找FPGA空白区域耗时少,效率高的优点,可用于基于FPGA的可重构系统中查找FPGA空白区域。
Description
技术领域
本发明属于计算机技术领域,特别是一种查找可重构设备FPGA空白区域的方法,可用于在基于FPGA的可重构系统中查找FPGA的连续矩形区域。
背景技术
近几年来,随着可重构设备的进步与发展,基于可重构设备FPGA的计算机系统结构逐渐成为计算机中最流行的系统结构之一。FPGA可重构设备是由许多逻辑单元组成的门阵列,正确高效地分配该设备的区域供硬件任务进行配置是基于FPGA的可重构系统实现有效的资源共享、协同和保障性能的关键。当前,应用较广的基于FPGA的可重构系统大多采用一下两种:
1、楼梯查找方法SA。该算法是由Handa等人提出的,他们将最大空白矩形区域MER定义为不包含在其他它空白矩形区域的最大矩形区域。首先找到所有的最大楼梯,在这些楼梯中每个楼梯至少包含一个最大空白矩形区域MER;然后从这些楼梯中抽取出所有的最大空白矩形区域MER,组织成一系列的最大空白矩形区域MER,这样方法最大缺陷就是存在重复查找问题。
2、扫描线查找方法SLA。这种算法是一种将空白区域组织成一系列MER的算法,不同于楼梯查找算法的是它并没有查找楼梯的中间过程。
在SLA中每个硬件任务占据一个矩形区域,由四元组(x,y,w,h)表示。(x,y)是该矩形区域左下角单元的坐标,而(w,h)是该矩形用单元数来计算的宽度和高度。使用一个二维矩阵M[W+1][H]来表示该FPGA区域,如图1。如果二维矩阵的第i行第j列的元素M[i][j]所对应的单元CLB没有被使用,则M[i][j]为从该单元起向左所查找到的连续空白单元数,否则M[i][j]为0。关键单元KE是指这样的空白单元CLB:右边的单元CLB已被使用,或者是处于FPGA右边界上。一条扫描线SL包含1个或多个KE,因此有1个或多个被使用的单元CLB在其右侧。在SL上如果有一个单元CLB,它的上一单元的M值要大于它的M值并且其下单元的M值在一定区间内也是递增的,那么该CLB被称之为谷点VP。如果在该扫描线上有n个谷点,则在垂直方向上可以将其分成n+1个段。在每个段上M值最大的关键单元KE是一个最大关键单元MKE,如在图1中,第5列是一个扫描线SL,单元(5,9)和(5,6)是谷点,扫描线上的单元(5,7)和(5,3)是最大关键元素MKE。
对于每个最大关键元素MKE,以其M值到1分别作为查找宽度w,首先在该最大关键元素MKE正上方向左查找宽w的连续空白区域,如果能找到这样的区域,则继续直到找不到这样的空白区域或到达FPGA中的上界为止。并用top记录当前查找的垂直坐标。然后在该最大关键元素MKE正下方向左查找宽w的连续空白区域,如果能找到这样的区域,则继续直到找不到这样的空白区域或到达FPGA中的下界为止。并用bottom记录当前查找的垂直坐标。这样在top和bottom之间的宽w的空白区域被称为一个最大空白矩形区域MER,该最大空白矩形区域MER可以用四元组表示为(i-w+1,bottom,w,top-bottom+1)。然而,当以w-1作为查找宽度后进行查找得到的空白区域的top值和bottom值都与上一次查找相同时,则该查找所得的空白区域并不是一个最大空白矩形区域MER。图2展示了在最大关键元素MKE(5,3)处的查找过程。以w=4作为查找宽度可得top=4,bottom=3,空白区域(2,3,4,2),该区域不为任何矩形空白区域所覆盖所以它是一个最大空白矩形区域MER。而以w=3作为查找宽度可得top=4,bottom=3,空白区域(3,3,3,2),该区域为上一次查找所得的最大空白矩形区域MER所包含,所以不是一个最大空白矩形区域MER。这就是一次不必要的查找,也就是扫描线方法SLA中的冗余现象。图3展示了在最大关键元素MKE(5,7)处的查找过程。以w=2作为查找宽度可得top=8,bottom=3,空白区域(4,3,2,6),该区域不为任何矩形空白区域所覆盖,所以它是一个最大空白矩形区域MER。在图2中看到,在MKE(5,3)处以w=2作为查找宽度同样可得最大空白矩形区域MER(4,3,2,6),这就是SLA中的重复现象。可见,这种扫描线方法SLA虽然查找简单,灵活,容易实现。但是仍然存在冗余和重复查找的问题,因此使得整个查找过程的效率较低,进而影响基于FPGA可重构系统整体的性能。
发明内容
本发明的目的在于克服上述已有技术的不足,提供一种可重构系统中查找空白区域的方法,以避免查找空白区域的重复和冗余,提高可重构系统中查找空白区域的准确性。
实现本发明目的的技术方案是吸取扫描线方法SLA方法的优点,在查找中只选取能产生最大空白矩形区域MER的查找宽度,避免了冗余;而对某个最大关键元素MKE在以w为查找宽度查找时先检查该最大关键元素MKE是否被在同一扫描线SL上的其他MKE以w扫描过,如果是则停止扫描,避免重复。具体步骤如下:
A.确定有效查找宽度集合步骤:
(A1)给定FPGA最大关键元素MKE(i,j),并从该最大关键元素向左查找,将所得到的连续空白单元数作为有效查找宽度w,加入到有效查找宽度集合中;
(A2)在所给定的最大关键元素MKE(i,j)的上方单元中,依次向上找出一个连续空白单元数的递减序列添加到有效查找宽度集合当中,直到在FPGA中遇见上界或是已经被使用的单元为止;
(A3)在所给定的最大关键元素MKE(i,j)的下方单元中,依次向下找出一个连续空白单元数的递减序列添加到有效查找宽度集合当中,直到在FPGA中遇见下界或是已经被使用的单元;
B.查找空白区域步骤:
(B1)从有效查找宽度集合中选取一个没有查找过的有效查找宽度w进行查找;
(B2)检查给定的最大关键元素MKE(i,j)是否被在同一扫描线SL中的其它最大空白矩形区域MER用有效查找宽度w进行查找过,如果是则停止查找,否则,以该最大关键元素MKE(i,j)所在位置为右垂直边界,分别向上和向下寻找有效查找宽度为w的连续空白区域,并将查找所遍历的扫描线上的单元标记为以有效查找宽度w查找过;
(B3)重复步骤(B1)和(B2)直至有效查找宽度集合中的有效查找宽度w都被查找过为止。
本发明由于对有效查找宽带进行了选取,所以查找过程中目的性强,没有冗余的查找;同时由于在查找空白区域前,对被查找的元素检查是否被某个最大空白矩形区域MER以某个查找宽度w查找过,对已经查找过的宽度不再进行查找,因而避免了重复查找。
仿真结果表明,采用本发明在可重构系统中查找FPGA空白区域,其效果明显优于现有的扫描线查找方法SLA。
附图说明
图1是FPGA的配置示意图;
图2是在MKE(5,3)单元运用现有SLA方法查找FPGA最大空白矩形区域的实例图;
图3是在MKE(5,7)单元运用现有SLA方法查找FPGA最大空白矩形区域的实例图;
图4是在最大关键元素MKE(i,j)运用本发明查找FPGA最大空白矩形区域的流程图;
图5是在最大关键元素MKE(i,j)运用本发明确定有效查找宽度集的流程图;
图6是本发明与已有的SLA方法查找FPGA最大空白矩形区域的仿真结果曲线图。
具体实施方式
参照图5,本发明的查找步骤如下:
(1)将当前向上查找的纵坐标top和当前向下查找的纵坐标bottom初始化为给定最大关键元素MKE(i,j)的纵坐标j,并将最大空白矩形区域集SMER初始化为空集;
(2)调用确定有效查找宽度集的方法,并将返回的结果赋给有效查找宽度集SVSW,见图6;
(3)判断有效查找宽度集SVSW是否为非空集,如果有效查找宽度集SVSW不为空,则执行(4),否则,返回最大空白矩形区域集SMER,并结束执行;
(4)从有效查找宽度集SVSW中选取一个有效查找宽度w;
(5)通过检查查找标记SWEAP[w][top+1]的值是否为1判断最大关键元素MKE(i,j)是否被同一扫描线SL的其它最大空白矩形区域MER以查找宽度w查找过,如果是,则执行(11),否则,执行(6);
(6)判断top所在行是否已经到达FPGA中的上界,如果到达上界,则执行(8),否则判断是否能在单元(i-w+1,top)与单元(i,top)之间找到宽度为w的空白区域,如果能找到,则执行(7),否则,执行(8);
(7)更新当前向上查找的纵坐标top为top+1,并通过将查找标记SWEAP[w][top+1]设定为1标记单元(i,top+1)已被某最大空白矩形区域MER以查找宽度w扫描过,返回执行(6);
(8)判断bottom所在行是否已经到达FPGA中的下界,如果到达下界,则执行(10),否则判断是否能在单元(i-w+1,bottom)与单元(i,bottom)之间找到宽度为w的空白区域,如果能找到,则执行(9),否则,执行(10);
(9)更新当前向下查找的纵坐标bottom为bottom-1,并通过将查找标记SWEAP[w][bottom-1]设定为1标记单元(i,bottom-1)已被某最大空白矩形区域MER以查找宽度w扫描过,返回执行(8);
(10)将最大空白矩形区域MER(i-w+1,bottom,w,top-bottom+1)添加到最大空白矩形区域集SMER中;
(11)将本次查找所使用的有效查找宽度w从有效宽度集SVSW中去掉,再返回执行(3)。
参照图6,本发明(2)确定有效查找宽度集SVSW的方法的步骤如下:
1)将当前向上查找的纵坐标top和当前向下查找的纵坐标bottom初始化为给定单元(i,j)的纵坐标j,并将有效查找宽度集SVSW初始化为空集;
2)给定FPGA单元(i,j),并从该单元向左查找,将所得到的连续空白单元数M[i][j]作为有效查找宽度w,加入到有效查找宽度集SVSW中;
3)将向上查找到的当前有效查找宽度topw和向下查找到的当前有效查找宽度botw初始化为从给定单元(i,j)起向左所查找到的连续空白单元数M[i][j];
4)判断当前向上查找的纵坐标top所在行是否已经到达上界,如果是,则执行9),否则,执行5);
5)判断从单元(i,top+1)起向左查找到的连续空白单元数M[i][top+1]是否比向上查找到的当前有效查找宽度topw小,如果是,则执行6),否则,执行8);
6)判断单元(i,top+1)是不是已经被使用,如果是,则执行9),否则执行7);
7)将从单元(i,top+1)起向左查找到的连续空白单元数M[i][top+1]添加到有效查找宽度集SV SW中,并更新向上查找到的当前有效查找宽度topw为M[i][top+1];
8)更新当前向上查找的纵坐标top为top+1,返回执行4);
9)判断当前向下查找的纵坐标bottom所在行是否已经到达下界,如果是,返回有效查找宽度集SVSW,并结束执行,否则,执行10);
10)判断从单元(i,bottom-1)起向左查找到的连续空白单元数M[i][bottom-1]是否比向下查找到的当前有效查找宽度botw小,如果是,则执行11),否则,执行13);
11)判断单元(i,bottom-1)是不是已经被使用,如果是,则返回有效查找宽度集SVSW,并结束执行,否则,执行12);
12)将从单元(i,bottom-1)起向左查找到的连续空白单元数M[i][bottom-1]添加到有效查找宽度集SV SW中,并更新向下查找到的当前有效查找宽度botw为M[i][bottom-1];
13)更新当前向下查找的纵坐标bottom为bottom-1,返回执行9)。
本发明的效果可以通过以下的仿真进一步的说明。
1.仿真条件
任务调度采用FIFO策略,即先到先服务的策略;
FPGA空白区域的分配采用First-Fit策略,即最先适合策略选取一个足够大的最大空白矩形区域MER来配置任务,并将该任务配置在被分配区域的左下角;
本次模拟所采用的FPGA规格是50×40;
每个任务的执行时间2至10个时间单元,所占用的FPGA单元是2至8个;
每次试验重复20次,实验结果为平均值。
2.仿真结果
图4给出了随任务数的增加本发明ESLA和扫描线方法SLA所花费的有效消耗时间的仿真变化结果。
从图4可以看出,本发明ESLA所花费的有效消耗时间明显要小于现有扫描线方法SLA所消耗的时间,避免了重复和冗余查找,提高了查找FPGA空白区域的效率。
Claims (4)
1.一种基于扫描线方法的查找FPGA芯片空白区域的方法,包括如下步骤:
A.确定有效查找宽度集合步骤:
(A1)给定FPGA最大关键元素MKE(i,j),并从该最大关键元素向左查找,将所得到的连续空白单元数作为有效查找宽度w,加入到有效查找宽度集合中;
(A2)在所给定的最大关键元素MKE(i,j)的上方单元中,依次向上找出一个连续空白单元数的递减序列添加到有效查找宽度集合当中,直到在FPGA中遇见上界或是已经被使用的单元为止;
(A3)在所给定的最大关键元素MKE(i,j)的下方单元中,依次向下找出一个连续空白单元数的递减序列添加到有效查找宽度集合当中,直到在FPGA中遇见下界或是已经被使用的单元;
B.查找空白区域步骤:
(B1)从有效查找宽度集合中选取一个没有查找过的有效查找宽度w进行查找;
(B2)检查给定的最大关键元素MKE(i,j)是否被在同一扫描线SL中的其它最大空白矩形区域MER用有效查找宽度w进行查找过,如果是则停止查找,否则,以该最大关键元素MKE(i,j)所在位置为右垂直边界,分别向上和向下寻找有效查找宽度为w的连续空白区域,并将查找所遍历的扫描线上的单元标记为以有效查找宽度w查找过;
(B3)重复步骤(B1)和(B2)直至有效查找宽度集合中的有效查找宽度w都被查找过为止。
2.根据权利要求书1所述的查找FPGA芯片空白区域的方法,其中步骤(A2)按如下过程进行:
(A21)将当前查找坐标top初始化为给定MKE(i,j)的纵坐标j,并将当前有效查找宽度topw初始化为从给定最大关键元素MKE(i,j)起向左所查找到的连续空白单元数M[i][j];
(A22)从单元(i,top+1)向左查找,判断所得到的连续空白单元数M[i][j]是否小于当前有效查找宽度topw,如果是,则M[i][j]是一个有效查找宽度,将M[i][j]作有效查找宽度添加到有效查找宽度集合中,并更新当前有效查找宽度topw为M[i][j],更新当前查找坐标top为top+1;
(A23)重复步骤(A22)直到在FPGA中遇见上界或是已经被使用的单元为止。
3.根据权利要求书1所述的查找FPGA芯片空白区域的方法,其中步骤(A3)按如下过程进行:
(A31)将当前查找坐标bottom初始化为给定MKE(i,j)的纵坐标j,并将当前有效查找宽度botw初始化为从给定MKE(i,j)起向左所查找到的连续空白单元数M[i][j];
(A32)从单元(i,bottom-1)向左查找,判断所得到的连续空白单元数M[i][j]是否小于当前有效查找宽度botw,如果是,则M[i][j]是一个有效查找宽度,将M[i][j]作为有效查找宽度添加到有效查找宽度集合中,并更新当前有效查找宽度botw为M[i][j],更新当前查找坐标bottom为bottom-1;
(A33)重复步骤(A32)直到在FPGA中遇见下界或是已经被使用的单元为止。
4.根据权利要求书1所述的查找FPGA芯片空白区域的方法,其中步骤(B2)所述的检查给定的MKE(i,j)是否被在同一扫描线SL中的其他MER用有效查找宽度w查找过,按如下过程进行:
(B21)采用一个二维数组SWEAP[w][H]作为查找标记,通过该标记记录扫描线SL上的第j个元素是否被某个最大空白矩形区域MER以w为查找宽度查找过,如果查找过,则将SWEAP[w][j]记录为1,否则记为0;
(B22)对于给定最大关键元素MKE(i,j),检查SWEAP[w][j]的值是否为1,如果是,则该MKE(i,j)被某个最大空白矩形区域MER以有效查找宽度w进行查找过,否则没有。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102322146A CN101441679B (zh) | 2008-11-10 | 2008-11-10 | 基于扫描线方法的查找fpga芯片空白区域的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102322146A CN101441679B (zh) | 2008-11-10 | 2008-11-10 | 基于扫描线方法的查找fpga芯片空白区域的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101441679A true CN101441679A (zh) | 2009-05-27 |
CN101441679B CN101441679B (zh) | 2011-06-01 |
Family
ID=40726113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102322146A Expired - Fee Related CN101441679B (zh) | 2008-11-10 | 2008-11-10 | 基于扫描线方法的查找fpga芯片空白区域的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101441679B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101996092A (zh) * | 2009-06-03 | 2011-03-30 | 东北大学 | 动态可重构fpga在线2d区域管理和任务放置方法 |
CN107256281A (zh) * | 2017-05-05 | 2017-10-17 | 西安交通大学 | 一种基于裁剪法的fpga可重构资源非矩形布局方法 |
-
2008
- 2008-11-10 CN CN2008102322146A patent/CN101441679B/zh not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101996092A (zh) * | 2009-06-03 | 2011-03-30 | 东北大学 | 动态可重构fpga在线2d区域管理和任务放置方法 |
CN107256281A (zh) * | 2017-05-05 | 2017-10-17 | 西安交通大学 | 一种基于裁剪法的fpga可重构资源非矩形布局方法 |
CN107256281B (zh) * | 2017-05-05 | 2020-07-28 | 西安交通大学 | 一种基于裁剪法的fpga可重构资源非矩形布局方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101441679B (zh) | 2011-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103116493B (zh) | 一种应用于粗粒度可重构阵列的自动映射方法 | |
CN105354648A (zh) | Agv调度管理的建模及其优化方法 | |
CN106339351B (zh) | 一种sgd算法优化系统及方法 | |
CN106055563A (zh) | 一种基于网格划分的并行空间查询方法及其系统 | |
CN101527000B (zh) | 一种基于取样的快速移动对象轨迹聚类方法 | |
CN103164190B (zh) | 一种全分布式流域生态水文模型的快速并行化方法 | |
CN102360313B (zh) | 片上异构多核计算平台的性能加速方法 | |
CN103065314A (zh) | 一种基于线描述子的图像连通域快速标记方法 | |
CN105184208A (zh) | 一种二维码初步定位方法及系统 | |
CN106021480A (zh) | 一种基于网格划分的并行空间划分方法及其系统 | |
CN101174278A (zh) | 交互版图工具中的最短路径实时查找算法 | |
CN102831349A (zh) | 一种硬件木马检测的特征值处理方法 | |
CN103092207A (zh) | 一种机器人迷宫搜索方法 | |
CN101441679B (zh) | 基于扫描线方法的查找fpga芯片空白区域的方法 | |
CN102681901A (zh) | 一种分区域的可重构硬件任务放置方法 | |
CN106584860A (zh) | 一种3d打印中带岛层片区域的快速路径规划方法 | |
CN110110849B (zh) | 基于图分割的行固定数据流映射方法 | |
CN103116593B (zh) | 一种基于多核架构的计算凸壳的并行方法 | |
CN103645948A (zh) | 一种面向数据密集型及依赖关系的并行计算方法 | |
CN101533525A (zh) | 一种点面叠加分析方法 | |
Chakraborty et al. | Routing performance optimization for homogeneous droplets on MEDA-based digital microfluidic biochips | |
CN113158132A (zh) | 一种基于非结构化稀疏的卷积神经网络加速系统 | |
Salvetti et al. | Two-oracle optimal path planning on grid maps | |
Daoud et al. | Faster processor allocation algorithms for mesh-connected cmps | |
CN101833639B (zh) | 一种支持多程序并行处理的条码解码装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110601 Termination date: 20181110 |
|
CF01 | Termination of patent right due to non-payment of annual fee |