首页> 中国专利> NoC中基于链路分配的无冲突测试调度方法

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

摘要

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

著录项

  • 公开/公告号CN104049200A

    专利类型发明专利

  • 公开/公告日2014-09-17

    原文格式PDF

  • 申请/专利权人 合肥工业大学;

    申请/专利号CN201410284247.0

  • 申请日2014-06-23

  • 分类号G01R31/28(20060101);

  • 代理机构34112 安徽合肥华信知识产权代理有限公司;

  • 代理人余成俊

  • 地址 230009 安徽省合肥市屯溪路193号

  • 入库时间 2023-12-17 01:05:13

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-06-03

    未缴年费专利权终止 IPC(主分类):G01R31/28 专利号:ZL2014102842470 申请日:20140623 授权公告日:20160817

    专利权的终止

  • 2016-08-17

    授权

    授权

  • 2014-10-22

    实质审查的生效 IPC(主分类):G01R31/28 申请日:20140623

    实质审查的生效

  • 2014-09-17

    公开

    公开

说明书

技术领域

本发明涉及集成电路芯片的测试技术领域,尤其涉及一种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, 则按初始化算法,每个核的初始位宽以及测试时间如表1所示,其相应分区结果 如图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,都能够保证有链路通路连接本区域内所 有节点,从而保证区域内测试正常进行。

在遍历整个网络合并子区域完成后,如果有区域没有完成合并,则查找孤立 子区域的邻接区域,将此子区域分配给测试时间最小的区域。最后针对测试时间 最少的区域,尝试从其邻接区域分配节点来使网络的测试时间平衡。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号