NoC中基于链路分配的无冲突测试调度方法

文档序号:6231696阅读:176来源:国知局
NoC中基于链路分配的无冲突测试调度方法
【专利摘要】本发明公开了一种NoC中基于链路分配的无冲突测试调度方法,通过改进的装箱算法将网络划分为若干个区域,在链路分配过程中,通过对每个边界节点建立路径树来查找连通路径,综合各个子区域的备选路径集合信息后,分配链路使各个区域并行测试不会发生冲突。本发明解决了片上网络中并行测试的链路冲突问题,可以有效降低芯片的测试时间、保证测试可靠性。
【专利说明】NoC中基于链路分配的无冲突测试调度方法

【技术领域】
[0001] 本发明涉及集成电路芯片的测试【技术领域】,尤其涉及一种NoC中基于链路分配的 无冲突测试调度方法。

【背景技术】
[0002] 随着集成电路特征尺寸的不断减小,在大规模复杂片上系 统(system-on-chip, SoC)的设计中,基于包交换传输数据的片上网络 (network-on-chip, NoC)架构由于其具有很好的可靠性和可扩展性被广泛研究。在NoC中, 数据以数据包的形式在网络中转发,一个节点可以通过网络与任意另外一个节点进行通 信,这种特性给NoC的测试带来了便利。
[0003] 讨论NoC的测试问题时,总是想在测试时间最小的情况下使额外的开销(包括 测试引脚数,面积开销等)最小。复用NoC网络架构作为测试访问机制(test access mechanism, ΤΑΜ)传输测试数据是一种比较好的解决方案,但是如果有多个ΤΑΜ对网络并行 测试时,容易遇到对公用测试资源(路由器和链路等)的竞争问题。为了保证测试的连续 性,避免延时抖动和最小化测试时间,如何有效地对网络资源进行统一调度显得尤为重要。
[0004] 在NoC测试调度算法领域,国内外已经进行了很多研究,具体有以下几种比较经 典的调度方法。
[0005] 1、抢占式调度方法法。该方法中对每个核的数据包按照测试时间进行排序并查找 测试路径,如果有路径空闲则调度。这种方法调度单位是数据包,灵活性高但是过程复杂, 而且因为不同数据包传输路径可能会不同,所以不能保证数据有序无损地传输到待测核。
[0006] 2、非抢占式调度方法。该方法调度的单位为待测核,一旦分配路径给相关核则永 久占用这条路径直到测试结束。这种方法的缺点是没有统一的调度测试资源而且通道的利 用率也不高。
[0007] 3、整数线性规划。本方法通过将问题抽象成一种纯数学上的整数线性规划模型来 解决相关测试调度问题。但有文献显示,在ΤΑΜ个数达到3时,解决整数线性规划模型的实 验时间就已经达到了两天甚至更长。所以在ΤΑΜ数目多的情况下,这种方法就变的不可接 受。
[0008] 4、逐步分配位宽法。该方法首先确定ΤΑΜ个数,然后逐步分配位宽同时合并区域 的方法来解决资源冲突问题。此方法是针对节点进行区域划分,粒度过大,测试资源并不能 得到合理利用。


【发明内容】

[0009] 本发明目的就是为了弥补已有技术的缺陷,提供一种NoC中基于链路分配的无冲 突测试调度方法。
[0010] 本发明是通过以下技术方案实现的:
[0011] 一种NoC中基于链路分配的无冲突测试调度方法,操作步骤如下:
[0012] 第一步:划分区域过程
[0013] a、使用分区初始化算法对网络节点进行初始化,将节点看做方块,每个区域都可 以映射为一个矩形区域,确定需要装入矩形区域的方块的初始大小;
[0014] b、使用改进的装箱算法对初始化后的方块进行调度,选取测试时间最长的核先装 入矩形区域,然后对剩下的位宽和已调度的核测试时间所构成的另一个矩形区域,调度剩 下的核尽可能将其装满;分配完后,每个节点属于一个区域,各个区域并行测试;
[0015] 第二步:链路分配过程
[0016] c、将属于同一个区域的相邻节点进行合并,完成后每个区域包含若干个不相邻的 子区域;
[0017] d、对每个子区域的边界节点建立路径树和备选路径集合,综合各个节点的备选路 径集合,分配网络中的链路资源,连通属于同一个区域的所有子区域,并且不与其他区域的 链路发生冲突;如果有区域无法分配到链路使其子区域都连通,转到步骤e ;
[0018] e、将被孤立的节点或者子区域合并到它的邻居区域,调整网络使各个区域间的测 试时间平衡,使并行测试无链路冲突。
[0019] 步骤b中所述的改进的装箱算法内容包括:给定片上网络一组待测核,将其视为 一组长宽不一的方块,其中方块长表示核的测试时间,宽表示给核用的测试位宽,有若干个 矩形区域,宽为总的测试位宽,长度不限,调度方块装入矩形区域,使最长的矩形区域的长 度最短,此长度便为整个片上网络的测试时间;
[0020] 首先需要对待测核集进行初始化,根据公式:Tt"p = Ti (wmax) +P/100* (Ti (1) -Ti (Wmax)计算出Ttemp值,公式中,p值为一个变量,变化p值可得到不 同的待测核集进行调度,最后可选取使测试时间最短的P值,?\(ι μχ)表示核i在测试位宽 最大的情况下的测试时间,计算出1\_后,查找离其最近的测试时间值,这个值和其所对应 的位宽即为核i的长和宽;
[0021] 待测核集初始化后,整个矩形区域都是空白的,将方块按长度排序,选取一个矩形 区域后,尽可能的将这个矩形区域的空白区域给装满,首先查找待调度的方块集合,在若干 个矩形区域中,选取起始位置最小的矩形区域,初始时每个矩形区域的起始位置都是零,将 可装入矩形区域的最大方块调度进去,然后对矩形区域中剩下宽度和最大方块的起始和结 束位置所组成的空白区域,调度剩下的方块尽可能装满,对于空白区域,如果在未调度的方 块中查找不到可装入空白区域的核,则对剩下的核做变形处理,以调度进去,变形过程为, 顺序查找剩下的方块,降低方块的宽度,检测长度是否超出空白区域,如果没超过则调度, 如果超过则顺序查找下面的方块,循环此过程,直到所有方块都被调度进去。
[0022] 步骤d中所述的的对每个子区域边界节点建立节点路径树和备选路径集合的内 容包括:对待合并部分中每个区域的边界节点,以边界节点为根节点,如果根节点某个方向 链路未被占用,则将此链路作为一个分支加入到路径树中;接着探索此链路相连的邻接节 点是否有空闲链路,如果有,则继续建立分支,直到树的深度达到最大值;如果没有,则结束 此方向探索,搜索路径树,查找可以将与根节点属于同一区域的子区域连通的路径,加入到 根节点的备选路径集合中,重复查找,直到所有路径都遍历完全。
[0023] 本发明的优点是:本发明通过改进的装箱算法对片上网络进行区域划分,重新定 义了分区问题和解决方法,达到片上网络区域间并行测试,降低了整个芯片的测试时间;链 路分配算法是基于各个节点的路径树和备选路径集合来分配资源。对每个边界节点都建立 路径树,可以保证所有可连通路径都会被探测到;分配链路时综合各个区域的备选路径集 合,可以尽最大努力找到不互相冲突的链路,从而最合理分配网络的测试资源,保证了测试 的可靠性。

【专利附图】

【附图说明】
[0024] 图1为D695电路分区结果图。
[0025] 图2为链路分配算法流程图。
[0026] 图3为D695电路合并相邻节点后结果图。
[0027] 图4为节点5的路径树图。
[0028] 图5为节点6的路径树图。
[0029] 图6为链路分配时合并子区域后结果图。
[0030] 图7为p = 5时D695电路初始带宽分配表。

【具体实施方式】
[0031] 一种NoC中基于链路分配的无冲突测试调度方法,操作步骤如下:
[0032] 第一步:划分区域过程
[0033] a、使用分区初始化算法对网络节点进行初始化,将节点看做方块,每个区域都可 以映射为一个矩形区域,确定需要装入矩形区域的方块的初始大小;
[0034] b、使用改进的装箱算法对初始化后的方块进行调度,选取测试时间最长的核先装 入矩形区域,然后对剩下的位宽和已调度的核测试时间所构成的另一个矩形区域,调度剩 下的核尽可能将其装满;分配完后,每个节点属于一个区域,各个区域并行测试;
[0035] 第二步:链路分配过程
[0036] c、将属于同一个区域的相邻节点进行合并,完成后每个区域包含若干个不相邻的 子区域;
[0037] d、对每个子区域的边界节点建立路径树和备选路径集合,综合各个节点的备选路 径集合,分配网络中的链路资源,连通属于同一个区域的所有子区域,并且不与其他区域的 链路发生冲突;如果有区域无法分配到链路使其子区域都连通,转到步骤e ;
[0038] e、将被孤立的节点或者子区域合并到它的邻居区域,调整网络使各个区域间的测 试时间平衡,保证并行测试无链路冲突。
[0039] 改进的装箱算法:
[0040] 装箱算法最初是基于SoC架构设计而来,本方法将其改进以应用到NoC并行分区 测试中。首先将调度问题抽象出来进行描述:给定片上网络一组待测核,将其视为一组长宽 不一的方块。其中方块长表示核的测试时间,宽表示给核用的测试位宽。假设有若干个箱 子,宽为总的测试位宽,长度不限。调度方块装入箱子,使最长的箱子的长度最短。此长度 便为整个片上网络的测试时间。
[0041] 装箱调度算法分为两个部分,首先需要对待测核集进行初始化。根据公式:TtMp = Ti (wmax) +P/100* (Ti⑴-Ti (Wmax)计算出Ttemp值。公式中,P值为一个变量,变化P值可得到 不同的待测核集进行调度,最后可选取使测试时间最短的P值。TJW^)表示核i在测试位 宽最大的情况下的测试时间。计算出TtMP后,查找离其最近的测试时间值,这个值和其所对 应的位宽即为核i的长和宽。
[0042] 待测核集初始化后,将方块按长度排序,对其进行调度装箱操作。我们利用贪心的 思想来调度方块,即选取一个箱子后,尽可能的将这个箱子的空白区域给装满(初始时整 个箱子都是空白的)。首先查找待调度的方块集合,在若干个箱子中,选取起始位置最小的 箱子(初始时每个箱子的起始位置都是零),将可装入箱子的最大方块调度进去。然后对箱 子中剩下宽度和最大方块的起始和结束位置所组成的空白区域,调度剩下的方块尽可能装 满。对于空白区域,如果在未调度的方块中查找不到可装入空白区域的核,则尝试对剩下的 核做变形处理,以调度进去。变形过程为,顺序查找剩下的方块,降低方块的宽度,检测长度 是否超出空白区域,如果没超过则调度,如果超过则顺序查找下面的方块。循环此过程,直 到所有方块都被调度进去。
[0043] 以ITC'02标准中的D695电路为例,将网络分为两个区域。假设p值为5,则按初 始化算法,每个核的初始位宽以及测试时间如表1所示,其相应分区结果如图1所示。结 果共分有两个区,P1 {5, 8, 4, 9, 3, 2, 1},P2{6, 10, 7}。由图1可知,片上网络的测试时间为 25125个周期,变动p值,片上网络最终测试时间也会变化,本文选取测试时间最少的调度 结果作为最终的分区结果。
[0044] 如图7所示,p = 5时D695电路初始带宽分配表
[0045] 链路分配算法:
[0046] 链路分配算法总的流程图如图2所示。首先根据分区算法所得到的结果,检测每 个节点的相邻节点是否属于同一个区域。如果是,则合并节点为一个子区域,将共同占有的 链路分配给此子区域,如果不是则不处理。此步骤完成后,属于同一个区域的相邻节点合并 为一个子区域,每个区域都包含一个子区域集合,同一个区域中的子区域互不相邻。以图3 为例,假设分区结果为P1 {5, 7, 4, 9, 3, 2, 1},P2 {6, 10, 8},分别合并两个区域中的相邻节点 后如图中虚线部分所示。
[0047] 对待合并部分中每个区域的边界节点,以边界节点作为根节点建立路径树。以边 界节点为根节点,如果根节点某个方向链路未被占用,则将此链路作为一个分支加入到路 径树中。接着探索此链路相连的邻接节点是否有空闲链路,如果有,则继续建立分支,直到 树的深度达到最大值;如果没有,则结束此方向探索。对节点建立路径树后,搜索路径树,查 找可以将与根节点属于同一区域的子区域连通的路径,将路径加入到根节点的备选路径集 合中。
[0048] 继续以图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 箭头线所示。
[0049] 分配链路使属于同一个区域的子区域连通。每个区域的每个边界节点都有一个备 选路径集合,在这个集合中,包含着从此节点出发可以连通子区域的路径。对一个区域而 言,需要从本区域所有边界节点的备选路径集合中找到一条路径,使所有子区域都连通,并 且其他区域有不与其冲突的链路即可。查找所有区域,如果都找到路径可以使本区域的所 有子区域连通,则分配相应链路;如果有区域没有成功分配链路则需要调整网络。
[0050] 对图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,都能够保证有链路通路连接本区域内所有节点,从而保证区域内测试正常 进行。
[0051] 在遍历整个网络合并子区域完成后,如果有区域没有完成合并,则查找孤立子区 域的邻接区域,将此子区域分配给测试时间最小的区域。最后针对测试时间最少的区域,尝 试从其邻接区域分配节点来使网络的测试时间平衡。
【权利要求】
1. 一种NoC中基于链路分配的无冲突测试调度方法,其特征在于:操作步骤如下: 第一步:划分区域过程 a、 使用分区初始化算法对网络节点进行初始化,将节点看做方块,每个区域都可以映 射为一个矩形区域,确定需要装入矩形区域的方块的初始大小; b、 使用改进的装箱算法对初始化后的方块进行调度,选取测试时间最长的核先装入矩 形区域,然后对剩下的位宽和已调度的核测试时间所构成的另一个矩形区域,调度剩下的 核尽可能将其装满;分配完后,每个节点属于一个区域,各个区域并行测试; 第二步:链路分配过程 c、 将属于同一个区域的相邻节点进行合并,完成后每个区域包含若干个不相邻的子区 域; d、 对每个子区域的边界节点建立路径树和备选路径集合,综合各个节点的备选路径集 合,分配网络中的链路资源,连通属于同一个区域的所有子区域,并且不与其他区域的链路 发生冲突;如果有区域无法分配到链路使其子区域都连通,转到步骤e ; e、 将被孤立的节点或者子区域合并到它的邻居区域,调整网络使各个区域间的测试时 间平衡,使并行测试无链路冲突。
2. 根据权利要求1所述的NoC中基于链路分配的无冲突测试调度方法,其特征在于: 步骤b中所述的改进的装箱算法内容包括:给定片上网络一组待测核,将其视为一组长宽 不一的方块,其中方块长表不核的测试时间,宽表不给核用的测试位宽,有若干个矩形区 域,宽为总的测试位宽,长度不限,调度方块装入矩形区域,使最长的矩形区域的长度最短, 此长度便为整个片上网络的测试时间; 首先需要对待测核集进行初始化,根据公式:TtMP = TiU+p/iocMT^D-TiU计 算出TtMP值,公式中,p值为一个变量,变化p值可得到不同的待测核集进行调度,最后可选 取使测试时间最短的P值,TJW^)表示核i在测试位宽最大的情况下的测试时间,计算出 TtMP后,查找离其最近的测试时间值,这个值和其所对应的位宽即为核i的长和宽; 待测核集初始化后,整个矩形区域都是空白的,将方块按长度排序,选取一个矩形区域 后,尽可能的将这个矩形区域的空白区域给装满,首先查找待调度的方块集合,在若干个矩 形区域中,选取起始位置最小的矩形区域,初始时每个矩形区域的起始位置都是零,将可装 入矩形区域的最大方块调度进去,然后对矩形区域中剩下宽度和最大方块的起始和结束位 置所组成的空白区域,调度剩下的方块尽可能装满,对于空白区域,如果在未调度的方块中 查找不到可装入空白区域的核,则对剩下的核做变形处理,以调度进去,变形过程为,顺序 查找剩下的方块,降低方块的宽度,检测长度是否超出空白区域,如果没超过则调度,如果 超过则顺序查找下面的方块,循环此过程,直到所有方块都被调度进去。
3. 根据权利要求1所述的NoC中基于链路分配的无冲突测试调度方法,其特征在于: 步骤d中所述的的对每个子区域边界节点建立节点路径树和备选路径集合的内容包括:对 待合并部分中每个区域的边界节点,以边界节点为根节点,如果根节点某个方向链路未被 占用,则将此链路作为一个分支加入到路径树中;接着探索此链路相连的邻接节点是否有 空闲链路,如果有,则继续建立分支,直到树的深度达到最大值;如果没有,则结束此方向探 索,搜索路径树,查找可以将与根节点属于同一区域的子区域连通的路径,加入到根节点的 备选路径集合中,重复查找,直到所有路径都遍历完全。
【文档编号】G01R31/28GK104049200SQ201410284247
【公开日】2014年9月17日 申请日期:2014年6月23日 优先权日:2014年6月23日
【发明者】欧阳一鸣, 杨鑫, 易茂祥, 梁华国, 黄正峰, 詹文发, 常郝 申请人:合肥工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1