资源预览内容
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
亲,该文档总共6页全部预览完了,如果喜欢就下载吧!
资源描述
研 究与开发1 引言随着集成电路的持续发展 ,SoC(system-on-chip)及相关的片上算法已经不能满足有几十亿晶体管的芯片需求 ,出现了一系列的问题 ,如耗费大量的设计时间以及不能将设计映射到某种专用的体系结构上等 ,因此需要一种新的设计平台来满足这种需求 。 20 世纪 90 年代末人们提出了一种全新的互连结构 片上网络 (network on chip,NoC)1。此平台可以实现硬件通信结构 、操作系统及开发工具的可重用 。 它不仅包括体系结构 ,还包括设计方法 ,并且体系结构中的资源可从几十个到几百个乃至上千个 。 NoC 和 SoC都是以 IP 复用为基础的芯片设计方法 。 NoC 的可扩展性 、可测试性与 SoC 相比要更强2。集成电路规模的增大 ,使得芯片中的内核数目急剧增加 ,它的测试代价甚至远远超出了设计和生产代价 。 为了能够使用最少的测试时间完成NoC 的测试 ,需要对其中资源进行并行测试 。 然而 ,并行测试将带来测试功耗的增加和测试资源的冲突 ,因此必须限制并行测试过程中的功耗和避免测试资源冲突 。 传统的逻辑设计思想使得测试生成遇到了难以逾越的障碍 ,面对这一挑战 ,根本的解决方法就是在进行系统设计时就充分考虑到测试的要求 , 即使用故障诊断的理论来指导系统设计 ,这就是可测性设计技术 。 它是以增加电路面积为代价 、以实现较大幅度地降低测试难度为目的的测试思想 。 随着NoC 体系结构和设计方法的提出 ,NoC 的测试问题也逐渐成为研究的热点3。2 片上网络简介2000 年 11 月 , 瑞典皇家技术学院等提出了 NoC 概念 ,把 NoC 定义为在一块芯片上实现的由交换开关互联的计算资源 、存储资源以及 I/O 资源 。 资源节点之间的通信是通过交换开关将自带寻址信息的数据包从源地址传送到目的地址 ,因此 NoC 可以简单理解为在单一芯片上实现的基于网络通信的多处理器系统 。 其核心思想是借鉴并移本文在总结片上网络多播测试方法的基础上 ,针对多播测试方法的缺陷提出了两种改进的片上网络路由器的测试方法 。 实验证明 ,这两种改进的方法较多播测试方法减少了测试时间和测试包数 ,且随着芯片规模的增大 ,这种优势越明显 。 在两种改进的方法中 ,方法 2 比方法 1 所需的测试时间更少 。关键词 片上网络 ;多播 ;测试 ;测试外壳一种片上网络路由器的测试方法*欧阳一鸣 ,齐 芸 ,梁华国(合肥工业大学计算机与信息学院 合肥 230009)摘 要研究与开发* 国家自然科学基金资助项目 (No.60876028、No.60633060),安徽省自然科学基金资助项目 (No.090412034)52电 信科学 2010 年第 3 期植计算机网络中的概念和方法 ,用于多个子系统 (现有规模的 SoC 或者 IP 核 )的集成 。 NoC 采用分组交换技术替代传统的总线通信方式 ,实现了计算与通信的分离 ,彻底解决了片上通信的瓶颈问题 ,并解决了时钟同步问题 。NoC 系统由资源节点 、通信节点 、通道和资源网络接口组成 。 NoC 的拓扑就是指 NoC 中各个节点的连接方式 。NoC 的拓扑通常分为以下两类 。 直接型网络拓扑 。 在直接网络中 ,资源节点直接通过网络彼此连接 。 常见的直接型拓扑包括网状拓扑 、带环网格等 。 间接型网络拓扑 。 在间接网络中 ,节点处理器通过一个或更多的中间通信节点相互连接 。 Fat-Tree 拓扑就是间接型网络拓扑 。本文采用的网络拓扑是最简单的 2D-Mesh 结构 , 图 1所示就是一个 44 的 2D-Mesh 的 NoC。3 相关工作NoC 测试主要包括 NoC 本身的测试 (路由器与通道的测试 )和 IP 核的测试 。目前 NoC 测试的研究内容主要集中在测试外壳的设计 、测试调度算法的设计和测试可靠性的研究 3 个方面 。 其中 ,测试外壳的设计主要是针对 NoC 中路由器和 IP 核的测试 。 它是通过具体的硬件电路设计 ,为要测试的具体部件 (如路由器 )加上这些设计好的硬件电路 , 这些附加的电路被人们形象地称为测试外壳 。 根据ATE 设备 ,对测试外壳中相关的电路进行相应的设计或改进 , 以达到将 ATE 产生的测试向量通过测试外壳送到测试电路内部的目的 。针对 NoC 通信架构本身 (即互联 )的测试主要是指对路由器和通道的测试 。 对路由器测试的设计思路主要有两种 :一种是借助测试外壳的设计来达到测试的目的4,5。 测试外壳设计的目的是为了能将 ATE 设备产生的测试向量通过测试外壳送到测试电路内部 ,并及时 、正确地将测试响应反馈给 ATE 设备 ;另一种是在 NoC 中选取一个6或多个7路由器与 ATE 相连作为 TAS(test access switch,测试访问开关 ), 通过一定的路由方法让测试数据通过 TAS 在NoC 中传输 , 然后依据一定的错误控制机制来报错或纠错 。 路由器的测试主要包括路由逻辑的测试和输入输出缓冲区 (FIFO)的测试 。 由于路由逻辑结构简单 ,测试较容易 ,因此路由器的测试主要是对 FIFO 的测试 。 对 FIFO 的测试主要有传统的 BIST 测试和 Split 测试8两种方法 。对通道的测试的主要思想是将测试向量以多播 /广播的方式传输到链路上 ,并在接收端比较其测试响应 。4 提出的方法4.1 多播方法参考文献 8在给出多播方法之前 ,先给出了两个假设条件 。 首先假设在路由器的测试过程中采用的是描扫测试 ,类似于参考文献 9中的测试设计 ,且其测试响应是可以在内部进行比较的 ,并将比较结果反馈给 ATE 设备 。 然后假设在测试路由器时所有片上与路由器相连的通道均是无故障的 。在图 2 中 ,选择一个路由器与 ATE 设备相连 ,这个路由器被称为 TAS。 参考文献 8提出的多播测试方法是将ATE 产生的测试向量以多播的方式向路由器网络传输 。 如图 2 所示 ,“M”标识的是已经测试的路由器 ,“T”标识的是当前被测路由器 。测试由 TAS 开始 ,待 TAS 测试完毕 ,下一步则测试与 TAS 相邻的路由器 。 这一步的测试数据从ATE 设备经 TAS 向其相邻的路由器转发 。 一直重复这个过程直到全部路由器测试完毕为止 。图 1 44 的 2D-Mesh 拓扑图 2 多播测试53研 究与开发下面计算一下这种方法的测试数据包数和测试时间 。在 mm 的 2D-Mesh 的 NoC 中 ,令 Tp为测试一个单独路由器中的一个测试数据包的时间 ,Np为单个测试数据包经过一个路由器的时间 ,所以第 i 步的测试时间 Ti如下 。Ti=Tp+(i-1)(Np+1) (1)由于当一个路由器测试完毕后 ,只向与其相邻的 X 和Y 两个方向上的路由器发送测试数据包 ,所以可以用二叉树的相关知识计算出总的测试数据包的数目 K。K=22m-1-1-2m-1j = 1Q(m, j)(2m-j-1 )(2)式中 ,Q(x, y)=(x-1+y-1)!(x-1)! (y-1)!。在整个 mm 芯片的测试过程中 ,一共要测试 (2m-1)步 ,所以总的测试时间为 TMesh。TMesh=K(2m-1)Tr+(2m-1)(m-2)(Np+1) (3)这种测试方法虽较单播测试方法减少了一定的测试时间 ,但是随着芯片规模的增大 ,其测试时间与测试功耗将变得很大 ,如图 3 所示 ,甚至达到无法接受的程度 。 另外 ,在这种方法中 ,第 i+1 步的测试 ,总要等第 i 步的所有路由器测试完毕后 ,才将测试向量转发 。 虽然第 i 步路由器的测试是并行的 ,但在等待测试过程中 ,显然我们可以将测试向量向下一步要测试的路由器转发 ,进一步提高测试的并行性 。NoC 中路由器的主要作用是将片上数据进行路由 ,使其到达正确的目的 IP 核 。 我们可以将 NoC 中所有路由器的结构看成是相似的 ,因而当我们对片上路由器进行测试时 ,每个路由器的测试数据是相同的 。 另外 ,NoC 中的数据传输通常采用虫孔机制 ,即数据包是以微片的方式进行传输的 ,所以我们可以对上述多播方法进行改进以提高测试效率 。4.2 改进的方法针对上述多播方法的缺陷 ,我们提出了两种改进的测试方法 。方法 1:由于 NoC 中所有路由器的结构可以看作是相似的 ,因此可以用相同的测试向量对其进行测试 。 如图 4(a)所示 ,每当 TAS 从 ATE 接收一个测试数据包时 ,先将该测试数据包注入本身的待测扫描电路中 ,然后将该测试数据包转发给相邻的待测路由器 ,而不是等待从 TAS 接收完所有的测试数据包并完成测试后 , 再将测试数据包进行转发 。 其他的路由器也与 TAS 的操作相仿 ,也是对每个接收的测试数据包先进行注入 ,再进行转发 。 这样显然减少了整个芯片的测试时间 ,提高了测试效率 。 但是 ,由于其测试包数与原来的多播方法下的测试数据包数相差不多 ,因此这种方法在测试功耗上并无太大的改进 。从图 4(a)中我们可以看到 ,每个路由器都会向自己相邻的节点转发测试数据包 ,所以中间节点会从不同的方向接收数据包 ,对每个数据包都会进行转发 ,这显然造成了测试时间不必要的增加 。 并且 ,由于测试功耗与测试数据包数成正比7,因此功耗将会增加 。 特别是当芯片规模很大时 ,这种冗余数据包的转发不仅会使测试时间和测试功耗增大 ,还极大地增加了测试路径拥塞的可能性 ,因此我们对测试路径进行了改进 。如图 4(b)所示 ,TAS 以及与 TAS 横坐标相同的路由器将测试数据包向 X 与 Y 两个方向的相邻路由器转发 ,其他路由器则只向 X 方向上的路由器进行转发 。这样不但大大减少了冗余数据包的转发 ,减少了测试功耗 ,减小了产生拥塞的可能性 ,而且没有增加测试时间 。对于方法 1,随着待测芯片规模的增大 ,测试数据包的转发路径将变得越来越长 ,测试时间也将增加 。 为了进一步减少测试时间 ,我们提出了另一种改进的测试方法 。图 3 多播测试的测试时间图 4 改进的方法 154电 信科学 2010 年第 3 期方法 2:如图 5 所示 ,在片上选择对角的一对路由器作为 TAS,待两个 TAS 从 ATE 接收测试数据包后 ,再用方法 1的测试方法进行测试 ,即同时从两个对角的方向向片上注入测试数据包 ,这样相当于将整个片上的测试资源分成两半进行并行测试 。这种方法虽然增加了一个与 ATE 相连的测试端口 ,但是能极大地缩短测试路径 ,节约测试时间和测试功耗 。4.3 提出的测试外壳架构为了实现提出的测试方法 ,我们为路由器设计了特定的测试外壳架构 ,如图 6 所示 。 测试外壳的设计与参考文献 6相似 ,主要由外壳控制 (wrapper controller)模块 、数据包控制 (packet controller) 模块和一个比较器 (comparator)组成 。 其中 ,外壳控制模块用来控制路由器的工作模式 ,即根据测试包入口输入的数据包的类型 ,在测试模式和正常模式之间进行切换 。 比较器负责将正确的测试响应与捕获的测试响应按位进行比较 , 将比较结果送到外壳控制模块 。如果发现错误 ,则由外壳控制模块进行报错处理 。 即对比较器的结果进行分析 ,如果结果为 1 则表明出错 ,就将当前路由器的位置发送给 ATE 设备 ;如果为 0,则表明无错 ,不做任何输出 。 数据包控制模块的作用是对每个进入的测试数据包按一定的路由算法进行转发 。5 实验结果5.1 测试数据包数我们的实验是在 mm 的 2D-Mesh 结构的 NoC 中进行的 。 在方法 1 中 ,测试数据包数目很容易计算出来 ,计算公式如下 。K方法=m2-1 (4)在方法 2 中 ,由于是分两部分进行并行测试 ,因此需要对这两部分的测试数据包分别进行计算
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号