CN104049200B - NoC中基于链路分配的无冲突测试调度方法 - Google Patents
NoC中基于链路分配的无冲突测试调度方法 Download PDFInfo
- Publication number
- CN104049200B CN104049200B CN201410284247.0A CN201410284247A CN104049200B CN 104049200 B CN104049200 B CN 104049200B CN 201410284247 A CN201410284247 A CN 201410284247A CN 104049200 B CN104049200 B CN 104049200B
- Authority
- CN
- China
- Prior art keywords
- node
- link
- core
- square
- rectangular area
- 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
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种NoC中基于链路分配的无冲突测试调度方法,通过改进的装箱算法将网络划分为若干个区域,在链路分配过程中,通过对每个边界节点建立路径树来查找连通路径,综合各个子区域的备选路径集合信息后,分配链路使各个区域并行测试不会发生冲突。本发明解决了片上网络中并行测试的链路冲突问题,可以有效降低芯片的测试时间、保证测试可靠性。
Description
技术领域
本发明涉及集成电路芯片的测试技术领域,尤其涉及一种NoC中基于链路分配的无冲突测试调度方法。
背景技术
随着集成电路特征尺寸的不断减小,在大规模复杂片上系统(system-on-chip,SoC)的设计中,基于包交换传输数据的片上网络(network-on-chip,NoC)架构由于其具有很好的可靠性和可扩展性被广泛研究。在NoC中,数据以数据包的形式在网络中转发,一个节点可以通过网络与任意另外一个节点进行通信,这种特性给NoC的测试带来了便利。
讨论NoC的测试问题时,总是想在测试时间最小的情况下使额外的开销(包括测试引脚数,面积开销等)最小。复用NoC网络架构作为测试访问机制(test access mechanism,TAM)传输测试数据是一种比较好的解决方案,但是如果有多个TAM对网络并行测试时,容易遇到对公用测试资源(路由器和链路等)的竞争问题。为了保证测试的连续性,避免延时抖动和最小化测试时间,如何有效地对网络资源进行统一调度显得尤为重要。
在NoC测试调度算法领域,国内外已经进行了很多研究,具体有以下几种比较经典的调度方法。
1、抢占式调度方法。该方法中对每个核的数据包按照测试时间进行排序并查找测试路径,如果有路径空闲则调度。这种方法调度单位是数据包,灵活性高但是过程复杂,而且因为不同数据包传输路径可能会不同,所以不能保证数据有序无损地传输到待测核。
2、非抢占式调度方法。该方法调度的单位为待测核,一旦分配路径给相关核则永久占用这条路径直到测试结束。这种方法的缺点是没有统一的调度测试资源而且通道的利用率也不高。
3、整数线性规划。本方法通过将问题抽象成一种纯数学上的整数线性规划模型来解决相关测试调度问题。但有文献显示,在TAM个数达到3时,解决整数线性规划模型的实验时间就已经达到了两天甚至更长。所以在TAM数目多的情况下,这种方法就变的不可接受。
4、逐步分配位宽法。该方法首先确定TAM个数,然后逐步分配位宽同时合并区域的方法来解决资源冲突问题。此方法是针对节点进行区域划分,粒度过大,测试资源并不能得到合理利用。
发明内容
本发明目的就是为了弥补已有技术的缺陷,提供一种NoC中基于链路分配的无冲突测试调度方法。
本发明是通过以下技术方案实现的:
一种NoC中基于链路分配的无冲突测试调度方法,操作步骤如下:
第一步:划分区域过程
a、使用分区初始化算法对网络节点进行初始化,将节点看做方块,每个区域都可以映射为一个矩形区域,确定需要装入矩形区域的方块的初始大小;
b、使用改进的装箱算法对初始化后的方块进行调度,选取测试时间最长的核先装入矩形区域,然后对剩下的位宽和已调度的核测试时间所构成的另一个矩形区域,调度剩下的核尽可能将其装满;分配完后,每个节点属于一个区域,各个区域并行测试;
第二步:链路分配过程
c、将属于同一个区域的相邻节点进行合并,完成后每个区域包含若干个不相邻的子区域;
d、对每个子区域的边界节点建立节点路径树和备选路径集合,综合各个节点的备选路径集合,分配网络中的链路资源,连通属于同一个区域的所有子区域,并且不与其他区域的链路发生冲突;如果有区域无法分配到链路使其子区域都连通,转到步骤e;
e、将被孤立的节点或者子区域合并到它的邻居区域,调整网络使各个区域间的测试时间平衡,使并行测试无链路冲突。
步骤b中所述的改进的装箱算法内容包括:给定片上网络一组待测核,将其视为一组长宽不一的方块,其中方块长表示核的测试时间,宽表示给核用的测试位宽,有若干个矩形区域,宽为总的测试位宽,长度不限,调度方块装入矩形区域,使最长的矩形区域的长度最短,此长度便为整个片上网络的测试时间;
首先需要对待测核集进行初始化,根据公式:Ttemp=Ti(Wmax)+p/100*(Ti(1)-Ti(Wmax)计算出Ttemp值,公式中,p值为一个变量,变化p值可得到不同的待测核集进行调度,最后可选取使测试时间最短的p值,Ti(Wmax)表示核i在测试位宽最大的情况下的测试时间,计算出Ttemp后,查找离其最近的测试时间值,这个值和其所对应的位宽即为核i的长和宽;
待测核集初始化后,整个矩形区域都是空白的,将方块按长度排序,选取一个矩形区域后,尽可能的将这个矩形区域的空白区域给装满,首先查找待调度的方块集合,在若干个矩形区域中,选取起始位置最小的矩形区域,初始时每个矩形区域的起始位置都是零,将可装入矩形区域的最大方块调度进去,然后对矩形区域中剩下宽度和最大方块的起始和结束位置所组成的空白区域,调度剩下的方块尽可能装满,对于空白区域,如果在未调度的方块中查找不到可装入空白区域的核,则对剩下的核做变形处理,以调度进去,变形过程为,顺序查找剩下的方块,降低方块的宽度,检测长度是否超出空白区域,如果没超过则调度,如果超过则顺序查找下面的方块,循环此过程,直到所有方块都被调度进去。
步骤d中所述的对每个子区域边界节点建立节点路径树和备选路径集合的内容包括:对待合并部分中每个区域的边界节点,以边界节点为根节点,如果根节点某个方向链路未被占用,则将此链路作为一个分支加入到节点路径树中;接着探索此链路相连的邻接节点是否有空闲链路,如果有,则继续建立分支,直到树的深度达到最大值;如果没有,则结束此方向探索,搜索节点路径树,查找可以将与根节点属于同一区域的子区域连通的路径,加入到根节点的备选路径集合中,重复查找,直到所有路径都遍历完全。
本发明的优点是:本发明通过改进的装箱算法对片上网络进行区域划分,重新定义了分区问题和解决方法,达到片上网络区域间并行测试,降低了整个芯片的测试时间;链路分配算法是基于各个节点的节点路径树和备选路径集合来分配资源。对每个边界节点都建立节点路径树,可以保证所有可连通路径都会被探测到;分配链路时综合各个区域的备选路径集合,可以尽最大努力找到不互相冲突的链路,从而最合理分配网络的测试资源,保证了测试的可靠性。
附图说明
图1为D695电路分区结果图。
图2为链路分配算法流程图。
图3为D695电路合并相邻节点后结果图。
图4为节点5的路径树图。
图5为节点6的路径树图。
图6为链路分配时合并子区域后结果图。
图7为p=5时D695电路初始带宽分配表。
具体实施方式
一种NoC中基于链路分配的无冲突测试调度方法,操作步骤如下:
第一步:划分区域过程
a、使用分区初始化算法对网络节点进行初始化,将节点看做方块,每个区域都可以映射为一个矩形区域,确定需要装入矩形区域的方块的初始大小;
b、使用改进的装箱算法对初始化后的方块进行调度,选取测试时间最长的核先装入矩形区域,然后对剩下的位宽和已调度的核测试时间所构成的另一个矩形区域,调度剩下的核尽可能将其装满;分配完后,每个节点属于一个区域,各个区域并行测试;
第二步:链路分配过程
c、将属于同一个区域的相邻节点进行合并,完成后每个区域包含若干个不相邻的子区域;
d、对每个子区域的边界节点建立节点路径树和备选路径集合,综合各个节点的备选路径集合,分配网络中的链路资源,连通属于同一个区域的所有子区域,并且不与其他区域的链路发生冲突;如果有区域无法分配到链路使其子区域都连通,转到步骤e;
e、将被孤立的节点或者子区域合并到它的邻居区域,调整网络使各个区域间的测试时间平衡,保证并行测试无链路冲突。
改进的装箱算法:
装箱算法最初是基于SoC架构设计而来,本方法将其改进以应用到NoC并行分区测试中。首先将调度问题抽象出来进行描述:给定片上网络一组待测核,将其视为一组长宽不一的方块。其中方块长表示核的测试时间,宽表示给核用的测试位宽。假设有若干个箱子,宽为总的测试位宽,长度不限。调度方块装入箱子,使最长的箱子的长度最短。此长度便为整个片上网络的测试时间。
装箱调度算法分为两个部分,首先需要对待测核集进行初始化。根据公式:Ttemp=Ti(Wmax)+p/100*(Ti(1)-Ti(Wmax)计算出Ttemp值。公式中,p值为一个变量,变化p值可得到不同的待测核集进行调度,最后可选取使测试时间最短的p值。Ti(Wmax)表示核i在测试位宽最大的情况下的测试时间。计算出Ttemp后,查找离其最近的测试时间值,这个值和其所对应的位宽即为核i的长和宽。
待测核集初始化后,将方块按长度排序,对其进行调度装箱操作。我们利用贪心的思想来调度方块,即选取一个箱子后,尽可能的将这个箱子的空白区域给装满(初始时整个箱子都是空白的)。首先查找待调度的方块集合,在若干个箱子中,选取起始位置最小的箱子(初始时每个箱子的起始位置都是零),将可装入箱子的最大方块调度进去。然后对箱子中剩下宽度和最大方块的起始和结束位置所组成的空白区域,调度剩下的方块尽可能装满。对于空白区域,如果在未调度的方块中查找不到可装入空白区域的核,则尝试对剩下的核做变形处理,以调度进去。变形过程为,顺序查找剩下的方块,降低方块的宽度,检测长度是否超出空白区域,如果没超过则调度,如果超过则顺序查找下面的方块。循环此过程,直到所有方块都被调度进去。
以ITC’02标准中的D695电路为例,将网络分为两个区域。假设p值为5,则按初始化算法,每个核的初始位宽以及测试时间如图7所示,其相应分区结果如图1所示。结果共分有两个区,P1{5,8,4,9,3,2,1},P2{6,10,7}。由图1可知,片上网络的测试时间为25125个周期,变动p值,片上网络最终测试时间也会变化,本文选取测试时间最少的调度结果作为最终的分区结果。
如图7所示,p=5时D695电路初始带宽分配表
链路分配算法:
链路分配算法总的流程图如图2所示。首先根据分区算法所得到的结果,检测每个节点的相邻节点是否属于同一个区域。如果是,则合并节点为一个子区域,将共同占有的链路分配给此子区域,如果不是则不处理。此步骤完成后,属于同一个区域的相邻节点合并为一个子区域,每个区域都包含一个子区域集合,同一个区域中的子区域互不相邻。以图3为例,假设分区结果为P1{5,7,4,9,3,2,1},P2{6,10,8},分别合并两个区域中的相邻节点后如图中虚线部分所示。
对待合并部分中每个区域的边界节点,以边界节点作为根节点建立节点路径树。以边界节点为根节点,如果根节点某个方向链路未被占用,则将此链路作为一个分支加入到节点路径树中。接着探索此链路相连的邻接节点是否有空闲链路,如果有,则继续建立分支,直到树的深度达到最大值;如果没有,则结束此方向探索。对节点建立节点路径树后,搜索节点路径树,查找可以将与根节点属于同一区域的子区域连通的路径,将路径加入到根节点的备选路径集合中。
继续以图3进行说明。对P1区域和P2区域中每个边界节点建立节点路径树。节点5和节点6的路径树分别如图4和图5所示,图中节点间标记为连接两个节点的链路。搜索节点5的路径树发现,有三条通路可以使区域P1的两个子区域P11和P12连通,分别为(<5,8>,<8,9>),(<5,6>,<6,9>),(<5,6>,<6,7>,<7,10>,<10,9>),如图4箭头线所示,此三条路径为节点5的备选路径集合。搜索节点6的路径树可以得到两条将子区域6、8、10连通的路径,分别为(<6,5>,<5,8>,<8,9>,<9,10>),(<6,7>,<7,10>,<10,9>,<9,8>),如图5箭头线所示。
分配链路使属于同一个区域的子区域连通。每个区域的每个边界节点都有一个备选路径集合,在这个集合中,包含着从此节点出发可以连通子区域的路径。对一个区域而言,需要从本区域所有边界节点的备选路径集合中找到一条路径,使所有子区域都连通,并且其他区域有不与其冲突的链路即可。查找所有区域,如果都找到路径可以使本区域的所有子区域连通,则分配相应链路;如果有区域没有成功分配链路则需要调整网络。
对图4中节点5的备选路径进行链路冲突检查。不难发现,路径(<5,6>,<6,7>,<7,10>,<10,9>)可以使P1的两个子区域连通,同时P2中节点6有路径(<6,5>,<5,8>,<8,9>,<9,10>)与此路径不冲突。则将路径(<5,6>,<6,7>,<7,10>,<10,9>)分配给区域P1,路径(<6,5>,<5,8>,<8,9>,<9,10>)分配给区域P2,此时两个区域的所有子区域都连通。值得注意的是,例子中搜索节点5和6的路径树就已经可以找到互相不冲突的连通路径,但如果搜索不到的话,会转到下一个边界节点继续搜索,直到找到不冲突路径为止。如图6所示,a为本文方法合并子区域后的结果。图中,外部测试通道无论连接在节点8或节点10,都能够保证有链路通路连接本区域内所有节点,从而保证区域内测试正常进行。
在遍历整个网络合并子区域完成后,如果有区域没有完成合并,则查找孤立子区域的邻接区域,将此子区域分配给测试时间最小的区域。最后针对测试时间最少的区域,尝试从其邻接区域分配节点来使网络的测试时间平衡。
Claims (2)
1.一种NoC中基于链路分配的无冲突测试调度方法,其特征在于:操作步骤如下:
第一步:划分区域过程
a、使用分区初始化算法对网络节点进行初始化,将节点看做方块,每个区域都可以映射为一个矩形区域,确定需要装入矩形区域的方块的初始大小;
b、使用改进的装箱算法对初始化后的方块进行调度,选取测试时间最长的核先装入矩形区域,然后对剩下的位宽和已调度的核测试时间所构成的另一个矩形区域,调度剩下的核尽可能将其装满;分配完后,每个节点属于一个区域,各个区域并行测试;
第二步:链路分配过程
c、将属于同一个区域的相邻节点进行合并,完成后每个区域包含若干个不相邻的子区域;
d、对每个子区域的边界节点建立节点路径树和备选路径集合,综合各个节点的备选路径集合,分配网络中的链路资源,连通属于同一个区域的所有子区域,并且不与其他区域的链路发生冲突;如果有区域无法分配到链路使其子区域都连通,转到步骤e;
e、将被孤立的节点或者子区域合并到它的邻居区域,调整网络使各个区域间的测试时间平衡,使并行测试无链路冲突;
步骤b中所述的改进的装箱算法内容包括:给定片上网络一组待测核,将其视为一组长宽不一的方块,其中方块长表示核的测试时间,宽表示给核用的测试位宽,有若干个矩形区域,宽为总的测试位宽,长度不限,调度方块装入矩形区域,使最长的矩形区域的长度最短,此长度便为整个片上网络的测试时间;
首先需要对待测核集进行初始化,根据公式:
计算出Ttemp值,公式中,p值为一个变量,变化p值可得到不同的待测核集进行调度,最后可选取使测试时间最短的p值,Ti(Wmax)表示核i在测试位宽最大的情况下的测试时间,计算出Ttemp后,查找离其最近的测试时间值,这个值和其所对应的位宽即为核i的长和宽;
待测核集初始化后,整个矩形区域都是空白的,将方块按长度排序,选取一个矩形区域后,尽可能的将这个矩形区域的空白区域给装满,首先查找待调度的方块集合,在若干个矩形区域中,选取起始位置最小的矩形区域,初始时每个矩形区域的起始位置都是零,将可装入矩形区域的最大方块调度进去,然后对矩形区域中剩下宽度和最大方块的起始和结束位置所组成的空白区域,调度剩下的方块尽可能装满,对于空白区域,如果在未调度的方块中查找不到可装入空白区域的核,则对剩下的核做变形处理,以调度进去,变形过程为,顺序查找剩下的方块,降低方块的宽度,检测长度是否超出空白区域,如果没超过则调度,如果超过则顺序查找下面的方块,循环此过程,直到所有方块都被调度进去。
2.根据权利要求1所述的NoC中基于链路分配的无冲突测试调度方法,其特征在于:步骤d中所述的对每个子区域边界节点建立节点路径树和备选路径集合的内容包括:对待合并部分中每个区域的边界节点,以边界节点为根节点,如果根节点某个方向链路未被占用,则将此链路作为一个分支加入到节点路径树中;接着探索此链路相连的邻接节点是否有空闲链路,如果有,则继续建立分支,直到树的深度达到最大值;如果没有,则结束此方向探索,搜索节点路径树,查找可以将与根节点属于同一区域的子区域连通的路径,加入到根节点的备选路径集合中,重复查找,直到所有路径都遍历完全。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410284247.0A CN104049200B (zh) | 2014-06-23 | 2014-06-23 | NoC中基于链路分配的无冲突测试调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410284247.0A CN104049200B (zh) | 2014-06-23 | 2014-06-23 | NoC中基于链路分配的无冲突测试调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104049200A CN104049200A (zh) | 2014-09-17 |
CN104049200B true CN104049200B (zh) | 2016-08-17 |
Family
ID=51502290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410284247.0A Expired - Fee Related CN104049200B (zh) | 2014-06-23 | 2014-06-23 | NoC中基于链路分配的无冲突测试调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104049200B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105183693B (zh) * | 2015-05-26 | 2019-06-14 | 扬州大学 | 一种基于三维片上网络的多播传输方法 |
CN105005638B (zh) * | 2015-06-04 | 2018-06-26 | 广东顺德中山大学卡内基梅隆大学国际联合研究院 | 一种基于线性延时模型的高层次综合调度方法 |
CN107045512B (zh) * | 2016-02-05 | 2020-11-24 | 北京京东尚科信息技术有限公司 | 一种数据交换方法及系统 |
CN107395507B (zh) * | 2017-08-31 | 2019-09-03 | 电子科技大学 | 一种用于片上网络NoC的测试感知映射方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5543894B2 (ja) * | 2010-10-21 | 2014-07-09 | ルネサスエレクトロニクス株式会社 | NoCシステム及び入力切替装置 |
CN101995544A (zh) * | 2010-11-30 | 2011-03-30 | 哈尔滨工业大学 | 一种具有灵活分配测试存取机制的soc测试调度方法 |
US9251116B2 (en) * | 2011-11-30 | 2016-02-02 | International Business Machines Corporation | Direct interthread communication dataport pack/unpack and load/save |
CN103517443B (zh) * | 2013-08-22 | 2016-12-28 | 西安电子科技大学 | 一种基于链路质量指示值的无线传感器网络信道调度方法及装置 |
-
2014
- 2014-06-23 CN CN201410284247.0A patent/CN104049200B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN104049200A (zh) | 2014-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107888425B (zh) | 移动通信系统的网络切片部署方法和装置 | |
JP4734539B2 (ja) | ネットワークに含まれるノード間の最短経路を探索するためのシステムおよび方法 | |
CN104049200B (zh) | NoC中基于链路分配的无冲突测试调度方法 | |
CN100459534C (zh) | 分层网络节点及通过该节点构成的网络、节点和分层网络 | |
US8819611B2 (en) | Asymmetric mesh NoC topologies | |
US8275866B2 (en) | Assigning telecommunications nodes to community of interest clusters | |
CN104683488B (zh) | 流式计算系统及其调度方法和装置 | |
Cong et al. | Technology mapping for FPGAs with embedded memory blocks | |
CN107851043A (zh) | 快捷外围部件互连网络中资源组的动态分配 | |
CN108768736A (zh) | 一种混合型服务功能链嵌入代价的优化方法 | |
CN105677447B (zh) | 分布式云中基于聚类的时延带宽极小化虚拟机部署方法 | |
CN108111410A (zh) | 具有最少数量虚拟缓冲区的无损多维笛卡尔拓扑结构中的无死锁路由 | |
CN114827002B (zh) | 多域网络安全路径计算方法、系统、设备、介质及终端 | |
US20130067113A1 (en) | Method of optimizing routing in a cluster comprising static communication links and computer program implementing that method | |
Agrawal et al. | A dynamic programming solution for optimizing test delivery in multicore SOCs | |
US9985868B2 (en) | Transformation of unstructured network infrastructures into structured virtual topologies suitable for specific routing algorithms | |
CN105515984B (zh) | 一种多路径多通讯手段路由规划方法 | |
CN108737455A (zh) | 网络业务识别装置及方法 | |
CN106681795A (zh) | 一种利用节点局部拓扑属性和可利用资源容量值的虚拟网络映射方法 | |
CN105868431B (zh) | 基于锚点的布线方法 | |
CN103702445B (zh) | 无线传感器网络语义通信中任务组合的本体及推理规则 | |
CN107404437B (zh) | 一种报文的路径确定方法及装置 | |
CN105871606A (zh) | 一种基于分治策略的增强虚拟网络生存性的映射方法 | |
US11362903B2 (en) | High performance and scalable multi-layer topology discovery systems and methods | |
Flocchini et al. | Mapping an unfriendly subway system |
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: 20160817 Termination date: 20210623 |
|
CF01 | Termination of patent right due to non-payment of annual fee |