CN101441679B - 基于扫描线方法的查找fpga芯片空白区域的方法 - Google Patents

基于扫描线方法的查找fpga芯片空白区域的方法 Download PDF

Info

Publication number
CN101441679B
CN101441679B CN2008102322146A CN200810232214A CN101441679B CN 101441679 B CN101441679 B CN 101441679B CN 2008102322146 A CN2008102322146 A CN 2008102322146A CN 200810232214 A CN200810232214 A CN 200810232214A CN 101441679 B CN101441679 B CN 101441679B
Authority
CN
China
Prior art keywords
carry out
search width
unit
effective search
collection
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.)
Expired - Fee Related
Application number
CN2008102322146A
Other languages
English (en)
Other versions
CN101441679A (zh
Inventor
段振华
肖艳
聂鹏程
范全润
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xidian University
Original Assignee
Xidian University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xidian University filed Critical Xidian University
Priority to CN2008102322146A priority Critical patent/CN101441679B/zh
Publication of CN101441679A publication Critical patent/CN101441679A/zh
Application granted granted Critical
Publication of CN101441679B publication Critical patent/CN101441679B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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的可重构系统实现有效的资源共享、协同和保障性能的关键。当前,应用较广的基于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 (2)

1.一种基于扫描线方法的查找FPGA芯片空白区域的方法,包括如下步骤:
(1)将当前向上查找的纵坐标top和当前向下查找的纵坐标bottom初始化为给定最大关键元素MKE(i,j)的纵坐标j,并将最大空白矩形区域集SMER初始化为空集;
(2)调用确定有效查找宽度集的方法,并将返回的结果赋给有效查找宽度集SVSW;
(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)。 
2.根据权利要求1所述的查找FPGA芯片空白区域的方法,其中步骤(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)。 
CN2008102322146A 2008-11-10 2008-11-10 基于扫描线方法的查找fpga芯片空白区域的方法 Expired - Fee Related CN101441679B (zh)

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 CN101441679A (zh) 2009-05-27
CN101441679B true 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)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101996092A (zh) * 2009-06-03 2011-03-30 东北大学 动态可重构fpga在线2d区域管理和任务放置方法
CN107256281B (zh) * 2017-05-05 2020-07-28 西安交通大学 一种基于裁剪法的fpga可重构资源非矩形布局方法

Also Published As

Publication number Publication date
CN101441679A (zh) 2009-05-27

Similar Documents

Publication Publication Date Title
CN1102770C (zh) 微处理器的功率估算方法
CN103116493B (zh) 一种应用于粗粒度可重构阵列的自动映射方法
US20120079498A1 (en) Method and apparatus for dynamic resource allocation of processing units
CN106055563A (zh) 一种基于网格划分的并行空间查询方法及其系统
CN103164190B (zh) 一种全分布式流域生态水文模型的快速并行化方法
CN102681901B (zh) 一种分区域的可重构硬件任务放置方法
CN102193779A (zh) 一种面向MPSoC的多线程调度方法
CN106339351A (zh) 一种sgd算法优化系统及方法
CN106842901A (zh) 为列车自动驾驶系统生成速度控制命令的方法
CN105184208A (zh) 一种二维码初步定位方法及系统
CN101441679B (zh) 基于扫描线方法的查找fpga芯片空白区域的方法
CN106021480A (zh) 一种基于网格划分的并行空间划分方法及其系统
CN112070412A (zh) 一种立体库多提升机的配置方案及任务调度方法
CN103092207A (zh) 一种机器人迷宫搜索方法
CN106584860A (zh) 一种3d打印中带岛层片区域的快速路径规划方法
CN101533525B (zh) 一种用于地理信息系统中的点面叠加分析方法
CN104281636A (zh) 海量报表数据并发分布式处理方法
CN110110849B (zh) 基于图分割的行固定数据流映射方法
CN103645948B (zh) 一种面向数据密集型及依赖关系的并行计算方法
Salvetti et al. Two-oracle optimal path planning on grid maps
Daoud et al. Faster processor allocation algorithms for mesh-connected cmps
CN105653243B (zh) 一种通用图形处理器多任务并发执行的任务派发方法
CN101833639B (zh) 一种支持多程序并行处理的条码解码装置
Marconi et al. A novel fast online placement algorithm on 2D partially reconfigurable devices
Zhou et al. Fast on-line task placement and scheduling on reconfigurable devices

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