三维片上网络架构方法

文档序号:7686350阅读:156来源:国知局
专利名称:三维片上网络架构方法
技术领域
本发明属于集成电路芯片中的各处理单元之间的网络连接方法,特别是三维片上网络的 连接以及相关的数据传输过程。
背景技术
近年来,随着技术的发展,出现了一种新的封装形式——三维封装,即把多个裸片垂直 的叠加起来并且封装成一个芯片。三维封装得到的芯片被称为三维IC,和传统的二维IC相 比,它具有容量大、密度大等众多优点。
因为三维NoC (Network on Chip,片上网络)的架构对网络的吞吐率、可靠性、应用 层的任务映射以及芯片的面积和功耗影响很大,所以三维NoC的架构方案是实现三维NoC 最基本、最重要的一个环节。三维NoC的架构一般由网络的拓扑结构、网络节点的结构、 以及路由算法三方面组成,网络架构中的基本单元是网络节点,网络节点是由一般由处理数 据的处理单元和传输数据的路由单元构成,多个网络节点的连接方式形成网络拓扑结构,各 节点之间信息交流的途径是由路由算法直接决定的。网络拓扑结构决定了路由算法的难易和 复杂度程度,合理的路由算法可以提高系统的吞吐率、减小网络的平均延时、提高系统的可 靠性并且降低芯片的功耗和面积。
通过查新和广泛收集文献资料,我们发现已经公开的三维NoC方法有如下几类
参考文献PartHa Pratim Pande, Amlan Ganguly, Brett Feero, et. al, Applicability of Energy Efficient Coding Methodology to Address Signal Integrity in 3D NoC Fabrics, 13th IEEE International On-Line Testing Symposium,2007.Page(s):161 - 166禾口参考文献Brett Feero, PartHa Pratim Pande, Performance Evaluation for Three-Dimensional Networks-On-Chip, IEEE Computer Society Annual Symposium on VLSI,2007.Page(s):305 — 310给出了采用三维Mesh结 构的单一拓扑方法,这类结构将三维的网络作为一个整体,采用Mesh网络进行连接,每个 节点都与六个方向的节点连接。这种结构中,网络地址是三维坐标(x, y, z)构成。采用维序 路由算法,数据包依次在x轴、y轴和z轴上传递到目的坐标。因为Mesh结构具有拓扑简 单的优点,所以这种架构的优点是网络结构与路由算法简单,但是由于Mesh结构的网络直 径大,以及路由算法没有容错性, 一旦网络拥塞,数据包无法重新选择一条新的路径,只能 阻塞等待,因此数据包在这类架构中传递时平均跳数较多,网络延时较大,吞吐率较低。
Hiroki Matsutani, Michihiro Koibuchi, HideHaru Amano, Tightly-Coupled Multi-Layer Topologies for 3-D NoCs, 2007 International Conference on Parallel Processing. Page(s):75 - 75
给出了在水平面网络方向采用Mesh结构与在垂直方向采用柱状结构相结合的分级拓扑作为 三维NoC的架构,该架构中网络节点分为两类, 一类(甲类)由处理单元和路由单元构成, 但处理单元与路由单元之间没有连接,只是它们的地址是相同的,另一类(乙类)由只有交 换单元,平面网络采用Mesh结构作为拓扑,垂直网络采用柱状结构进行连接,每个柱状结 构有且只有一个乙类节点。每个甲类节点的路由单元除与其所在平面的四个方向上相临的4 个甲节点连接外,只与该节点所在柱状结构的乙类节点连接,甲节点地址用水平面网络的编 号和垂直方向的坐标点构成二维地址,同一个柱状结构里的节点的甲类节点的水平面网络编号是相同的。由于甲类节点的处理单元和路由单元之间没有连接,数据传输的路由只能是是 数据包首先在源节点所在的柱状结构里传递,然后在水平的Mesh网络中传递到目标节点的 所在的柱状结构的节点上,再在目标节点的所在的柱状结构传递到目标节点的处理单元里。 由于这种架构也是以Mesh结构为基础的,所以具有数据包平均跳数较多、网络延时较大、 无法自适应容错等缺点,还节点的处理单元和路由单元没有直接相连,因此数据传递环节较 多,但由于柱状结构使得垂直方向的跳数变少,因此它有较高的吞吐率。
参考文献Horiguchi, S.; Ooki, T.; Hierarchical 3D-Torus Interconnection Network, International Symposium on Parallel Architectures, Algorithms and "Networks, 2000. Page(s):50 -56三维Toms结构的构造方法,即由多个三维Mesh网络以Toms结构的方式构成的层次化的三 维Torus结构。因为Torus结构只是对Mesh结构进行了简单的扩展,仍然具有Mesh结构的特 性,网络节点结构与路由算法也是对Mesh结构算法进行了继承与简单改进,所以也具有网 络延时较大、吞吐量较低的缺点。
几乎现有三维NoC架构都是基于Mesh结构的,而De Bmijn图结构具有网络直径小、 节点度固定、路径灵活等优点,因此可以利用这些优点来设计更好的路由算法和数据传输方 式以提高数据传输效率和吞吐率,但DeBruijn图作为网络结构目前只在二维NoC上实现并 应用,参考文献MoHammad Hosseinababy, MoHammad Reza Kakoee, Jimson Mathew, et. al, Reliable Network-on-Chip Based on Generalized de Bruijn Graph, IEEE International High Level Design Validation and Test Workshop,2007.Page(s):3 - 10就是介绍的用De Bruijn图作为二维 NoC的架构方法。
在De Bruijn图拓扑结构中,如果两个节点相邻,则它们的地址编号i和j必须满足下 列任一公式
/ = (c *_/ + r)mod w, r = 0,1,...,6 —1
_/ = (fi */ + 。mod w, r = 0,l,...,c —1 其中,n为节点数,d为地址编号的进制。上式表明任一节点的二进制地址左移或右移,再 补充一个比特r,则得到相邻节点的地址。例如,De Bruijn图的节点数为16,地址编号的进 制为2时,节点2 (0010b)与节点9 (1001b)是相邻的,此时〖=2,〗=9,1=0。

发明内容
本发明针对现有架构方式的网络延时大、吞吐率低等问题,提供了一种基于De Bruijn 图网络结构,且打破传统的水平面网络和垂直面分解的三维网络,提出了水平面网络和虚平 面组成三维网络连接的片上网络架构方法。通过虚平面的灵活连接方式,提高容错特性、减 小网络延时从而提高网络的吞吐率以及高可靠性的特性。
为了便于描述,首先对一些术语进行定义
水平编号、虚平面编号首先假设一个用X、 Y、 Z表示三个坐标轴的三维坐标,其中 X和Y所组成的平面为水平面,,而虛平面由X、 Y、 Z三个方向的点连接而成的网络,而同 一个水平面上的节点是用一维编号来区分的,该编号就是水平编号。同一个虚平面的节点也 用一维编号来区分,该编号就是虚平面编号。
源节点发出数据包起始节点。
目标节点数据包最终到达的节点。
为了达到上述性能要求,本发明主要提出了以下几个方面的技术解决方案 网络拓扑结构首先用水平面网络结构和灵活的虛平面网络结构构成三维NOC网络,
且水平面网络是沿X和Y方向伸展的平面,其网络拓扑结构采用De Bmijn图(如图1所示),而虚平面网络是沿X 、 Y和Z三个方向伸展的曲面,其网络可以按照解决某种问题(比如 降低布线的复杂度或提高容错特性)的需要由每一层水平面网络上的某些节点连接而成,也 就是说这些节点不一定在一个垂直平面上。
网络节点的结构每个节点由路由单元和处理单元组成,且路由单元与处理单元之间有 数据线连接,每个网络节点的地址是用其所在的水平面网络上的编号和所在虚平面上的编号 组成的二维地址,所述的水平面网络上的编号是完全按照De Bruijn图的地址编号要求进行 的,而在虚平面上的编号是根据虚平面的构成方法决定的。
其数据包传递过程为数据包先在水平面网络(NoT, Network on Tier)上传递,然后再 在虛平面网络上传递,即数据包从源节点开始先在水平面网络上传递到中转节点,所述的中 转节点是既在源节点所在的水平面网络上又在目标节点所在的虚平面上的节点,再从中转节 点开始在虚平面网络上传递到目标节点;数据包在路由节点间的传递中要排除拥塞或不可靠 链路并重新计算路由,即由源节点计算数据包从源节点到传递到目标节点的路由路径,在传 递过程中每个节点都要检测它到当前路由中的下一个节点的链路是否是拥塞或不可靠,如果 检査到到下一个节点的链路拥塞或不可靠,则当前的检测节点将根据容错要求以某种路由算 法重新计算出一条从当前的检测节点到目标节点的路径。
实质与效果
由于De Bruijn图是一种性能优异的网络拓扑结构,具有网络直径小、节点度固定、通 过移位方法就可以计算路由等优点,同时采用X、 Y和Z三个方向的节点连接的虚平面方法, 可以利用灵活的节点连接方式,提高容错特性(例如用双环状拓扑结构,实施例二给出), 减少延时(例如用De Bruijn图,实施例一给出),且该网络构造允许在数据传输过程中回避 拥塞链路而提高了可靠性,因此本发明的三维NoC架构能同时满足网络延时小、吞吐率高、 可靠性强的要求,同时,因为路由算法中先在水平面网络上传递然后再在虚平面上传递,所 以路由算法实现简单、可靠。


图l是DeBruijn拓扑结构图2是本发明的实施例一的以每个水平面网络有16个节点为例的虚平面的划分图; 图3是本发明的实施例二 16个节点的双环划分示意图4是本发明的实施例二中当水平面网络的层数为偶数时的双环连接网络结构示意图5是本发明的实施例二中当水平面网络的层数为奇数时的双环连接网络结构示意图
图6是本发明的实施例一的路由算法所采用的数据包的包头格式;
图7是本发明的实施例二的路由算法所采用的数据包的包头格式。
其中,1是节点,2是节点的水平编号数据,3是实施例一中水平面网络上包含4个节点的 哈密尔顿路,4是实施例二中包含8个节点的哈密尔顿路,5是实施例二中第一层水平面网 络上的哈密尔顿路HA的起点,6是各层水平面网络上HA路的起点,7是第一层水平面网 络的HA路的终点,8是第二层水平面网络的HA路的终点,9是第二层HA路的第二个节 点,IO是第三层HA路的第二个节点;
11是实施例一中目标节点的水平编号,12是实施例一中目标节点的虚平面编号,13是实施例一中源节点的水平编号,14是实施例一源节点的虚平面编号,15是实施例一中代表数据 包的传递方向的值,16是实施例一中数据包在水平面剩余跳数,17表示水平面地址的移位 方向的序列(为0表示左移,为1表示右移),18是水平面错误l未找到引用源。填充序列, 19是实施例一中数据包在虚平面剩余跳数,20是虚平面地址移位方向序列,21是虚平面上 填充序列;22是实施例二中目标节点的水平编号,23是实施例二中目标节点的Z坐标,24 是实施例二中源节点的水平编号,25是实施例二中源节点的Z坐标,26是实施例二中代表 数据包的传递方向的值(为0表示在^C平面网络上传递,为l表示在环上传递),27是实施 例二是水平面网络上的剩余跳数,28表示地址的移位方向(为0表示左移,为1表示右移), 29错误!未找到引用源。是错误!未找到引用源。填充序列。
具体实施例方式
下面介绍两种实施例。第一种是用DeBruijn图作为虚平面的构架方法,第二种是用环 状拓扑结构作为虚平面的构架方法。
实施例一
网络的拓扑结构本发明的实施例一中的三维NoC的架构方式如下它的水平面网络 和虛平面网络都是DeBruijn图结构,每个水平面网络上的节点的数量是相等的,每个虚平 面上的节点数也是相等的,每个节点的水平编号和虚平面编号都是按照De Bruijn图构造方 法编排的,为了降低芯片中布局布线的复杂度,构成每个虚平面的节点的划分应能够尽量利 用水平面网络上已有的连接。以4层水平面网络,每个平面上有16个节点为例,按照以下 方式划分将每层水平面网络上的De Bmijn图分成四条各包含4个节点哈密尔顿路,分别 记为HA、 HB、 HC禾卩HD,其中一种划分结果可以如图2所示节点0、 8、 9、 12属于HA, 节点5、 11、 7、 3属于HB,节点l、 2、 4、 IO属于HC,节点6、 13、 14、 15属于HD,每 水平层划分方式相同,把每水平层中的HA路的4个节点共16个节点连接成De Bruijn图, 构成第一个虚平面,用同样的方式将每水平层HB、 HC或HD的节点连接成另外三个虚平 面,每个节点又都在所在的虚平面上按照De Bruijn图构造方法编排其虚平面编号。
节点结构每个节点由一个路由单元和一个处理单元组成,且路由单元与处理单元之间 由数据线连接,每个节点既与同水平面网络的节点相连也与其它水平面网络上的节点连接, 节点的地址就是由该节点所在的水平面网络上的水平编号和所在的虚平面上的虚平面编号 合成的二维地址。
数据包的传递方法
步骤I:源节点判断源节点与目标节点是否在同一虚平面,如果在同一虚平面,则进入 步骤III,否则先进入步骤II;
步骤II:以既在目标节点所在的虚平面上又在源节点所在的水平面网络上的所有节点分 别作为中转节点,采用某种路由算法(例如釆用简短移位路径算法或最短移 位路径算法,简短移位路径算法或最短移位路径算法均由本发明提出的,在后 面有描述)分别计算出源地址到每个中转节点的最短路由,然后再在计算出的 所有最短路径中选取最短的一条作为水平面网络传输的路由路径,数据包通过 该路由路径传递到其对应的中转节点上,然后将该中转节点转换成新的源节点;
步骤III:采用某种路由算法(例如采用简短移位路径算法或最短移位路径算法)计 算出从源节点或步骤II中的新的源节点到目标节点的路由路径,数据包再通 过该路由从源节点或新的源节点传递到目标节点。
9在第II步和/或第III步中的数据包在路由中的各节点传递过程中,要排除不可靠链路, 其方法如下每个接收到数据包的节点都要检测本节点到下一个节点的链路是否拥塞或不可 靠,如果某节点检测出到下一个节点的链路拥塞了或不可靠,且下一个节点不是中转节点(步 骤II)或目标节点(步骤III),则进入步骤a,如果所述的某节点检测出到下一个节点的链 路拥塞了或不可靠,且下一个节点是中转节点(步骤II)或目标节点(步骤III),则进入步 骤b
步骤a:则将所述的某节点作为新的源节点,再由新的源节点按照容错要求用某种路由
算法重新计算(例如采用简短循环路径算法或最短循环路径方法计算)从新的源节点到每
个中转节点的路由(步骤II)或目标节点的路由(步骤in),转入步骤c;
步骤b:则将所述的某节点作为新的源节点,再由新的源节点按照容错要求用某种路由 算法(例如采用简短移位路由算法或最短移位路由算法)重新计算从新的源节点到除有拥 塞或不可靠链路的中转节点外的其它所有中转节点的路由(步骤II)或目标节点的路由(步
骤III);
步骤c:在步骤a或步骤b中所计算出的所有路径中选取其中最短的一条作为水平面(步
骤II)或虚平面(步骤III)网络传输的路由,数据包通过该路由路径传递到其对应的中转
节点(步骤ii)或目标节点(步骤ni)。
所述的最短移位路径算法和所述的简短移位路径算法是基于最简移位路径算法的,因此 在描述最短移位路径算法和简短移位路径算法之前,先描述最简移位路径算法。
所述的最简移位路径算法分为左最简移位路径算法和右最简移位路径算法。
左最简移位路径算法的具体步骤如下
1、 将节点的水平编号或虚平面编号用m位比特的二进制数代替,设一个水平面网络(或 虚平面)的节点数为N (N的取值是2的幂次方),则m-logN;命源节点的编号为新编号, H=m-1, F=m;
2、 将新编号的低H位与目标节点的编号的高H位进行比较,如果不相同且H〉-2,则 将H-H-l,然后重复本步,否则命F-H+1,并进入3;
.3、将新编号的二进制数从低向高移动一位,并将原来的最高位丢弃,移动后的编号的 最低位由目标节点的编号中的第F高位补充得到新编号,记录该次的编号,F=F+1;
4、 重复3所述过程m-H-l次;
5、 将3和4步所记录的所有编号按照记录的前后顺序构成了从源节点到目标节点的左 路径。
右最简移位路径算法具体步骤如下
6、 将水平编号或虚平面编号用m位比特的二进制数代替,设一个水平面网络或虚平面 的节点数为N (N的取值是2的幂次方),则m-logN;命源节点的编号为新编号,H=m-1, F=H+h
7、 将源节点的水平编号或虚平面编号的高H位与目标节点的水平编号或虚平面编号的 低H位进行比较,如果不相同且^1>=2,则取H-H-l,然后重复本步,否则命F-H+1,进入 8;8、 从源节点的水平面网络的二进制编号从高向低移动一位,并将原来的最低位丢弃, 移动后的编号的最高位由目标节点的水平编号或虚平面编号中的第F低位补充得到新编号, 记录该次的编号,取F-F+1:
9、 重复8所述过程m-H-l次;
10、 将8和9所记录的所有编号按照记录的前后顺序构成从源节点到目标节点的右路径。 所述的简短移位路径计算法如下
a、 根据所述的左最简移位路径算法计算出左路径和根据所述的右最简移位路径算法算 出右路径;
b、 选择右路径和左路径中较短(节点数较少)的路径为路由。
所述的最短移位路径算法具体步骤如下
1) 、根据所述的最简移位路径算法计分别算出源节点到目标节点之间的左路径和右路
径,如果左路径或右路径的跳数小于或等于2,转入5),否则,将n-2, k=l,进 入2);
2) 、分别将n条路径中的第k跳的终点作为新的源节点,再采用最简移位路径算法计
算出n条左路径和n条右路径,在每条路径前面分别加上各自新的源节点到源节 点之间的路径部分,即成为从源节点开始到目标节点的2n条路由路径,如2n条 路径中的某条路由的跳数为小于或等于k+2,则转入5),否则转入3);
3) 、判断k是否小于m,如果k小于m,转入4,否则转入5);
4) 、将n-2n, k=k+l;转入2);
5) 、选择所有路由中(共2n条)跳数最少的路径作为数据传输路由路径。
其中m是地址的二进制数的长度(比特数)。
数据包在传递过程中配合路由算法,对包头做如下调整当数据包传递到某个节点后, 路由单元根据传递方向值15判断数据包的传递方向,如果为传递方向值15为0,表示在水 平面上传递,此时路由单元根据水平面地址移位方向的序列17的最高位和填充序列18的最 高位选择输出端口,转发数据包后将水平面地址移位方向的序列17的最高位和填充序列18 的最高位丢弃,并且水平面剩余跳数16的值减1;如果为传递方向的值15为1,表示在虚 平面上传递,路由单元根据虚平面地址移位方向的序列20的最高位和虚平面上填充序列21 的最高位的值选择输出端口,转发数据包后将虚平面地址移位方向的序列20的最高位和虚 平面上填充序列21的最高位丢弃,并且将虚平面剩余跳数19的值减1。
实施例二
本实施例中虚平面的划分方法是将网络中所有节点划分为两个虚平面,每个虚平面上采用 环状拓扑结构。因为有两个虚平面,所以所有节点被连接成两个环,即形成双环,双环的划 分按照以下方法进行
首先,将每层水平面网络中的所有节点平均划分为两个哈密尔顿路,分别记为HA和HB, HA和HB两路的起点和终点必须分别相邻;设每层中的HA和HB路中的节点数各为N个, 图3示出了一种每个平面上含有16个节点的双环划分方式,节点O、 1、 4、 8、 9、 10、 12 和13属于环1,其余节点属于环2。
然后,将各层的HA连成一个环,HB连成另一个环,每个环就是一个虚平面。每个环的构成方法如下所述
当水平面网络的层数为偶数时,其连接方法为如图4所示,从最上一层的HA起点5开 始沿垂直方向将每一层的中HA路的起点6相连,假设从最上至下从1开始顺序编号,第一 层的HA路的终点7与第二层的HA的终点8连接,第二层的HA路的第二个节点9与第三 层的HA路的第二个节点10连接,第三层的HA路的终点与第四层的终点连接,以此类推 将各层的HA的节点连接起来,直到倒数第二层的HA路起点与最下层HA路的起点连接;
当水平面网络的层数为奇数时其连接方法为如图5所示,与层数为偶数时所不同的是 第一层的HA路的终点7与第二层的HA路的第二个起点9连接,从第二层开始,完全按照 层数为偶数时连接方法连接。
用HB连成的环的方法与上述HA连成环的方法一样。
网络节点结构
网络节点是由处理单元和路由单元组成,且处理单元与路由单元直接相连的,有的节点 是只与同一个水平面网络的节点相连接,有的节点是既与同水平面网络的节点相连也与非同 一水平面网络的节点相连。
数据包的传递方法
数据包的传递过程为首先从源节点开始在水平面网络上传递到目标节点所在的环上, 然后在目标环上按照预定的方向传递到目标节点,具体步骤如下
步骤A:源节点判断目标节点是否与其在同一个环上,如果在同一个环上,就直接进入 步骤B,否则,根据路由算法(例如釆用实施例一中所述的简短移位路径算法 或最短移位路径算法)计算出的路由,先将数据包在源节点所在的水平面网络 上传递到目标节点所在环上的,所述的中转节点可以是即在目标环上又在源平 面上的任意节点,但在实现时是确定),并将所述中转节点作为新的源节点, 再进入步骤B;
步骤B:在源节点或步骤A中所述新的源节点所在的环上按照结构允许的方向将数据 包传递到目的路由单元,在传递过程中,每个节点的路由单元将包头所带的目 标节点地址编号和本节点地址编号进行比较,如果相同则将数据包传递给本路 由单元对应的处理单元,否则就继续向下一个节点传递。
在步骤A的数据包在路由中的各节点传递过程中和步骤B的环路传递过程,要排除不 可靠或拥塞链路
在步骤A中数据包在路由中的各节点传递过程中排除不可靠链路的方法如下每个节 点都要检测到下一个节点的链路是否拥塞或不可靠,如果某节点检测出到下一个节点的链路 拥塞了或不可靠,且下一个节点不是中转节点,则进入步骤e,如果所述的某节点检测出到 下一个节点的链路拥塞了或不可靠,且下一个节点是中转节点,则进入步骤f
步骤e:则将所述的某节点作为新的源节点,再由新的源节点按照容错要求用某种路由
算法(例如采用简短移位路由算法或最短移位路由算法)重新计算从新的源节点到每个中
转节点的路由,转入步骤g;
步骤f:则将所述的某节点作为新的源节点,再由新的源节点按照容错要求用某种路由 算法(例如采用简短移位路由算法或最短移位路由算法)重新计算从新的源节点到除有拥塞或不可靠链路的中转节点外的其它所有中转节点的路由;
步骤g:在步骤a或步骤b中所计算出的所有路径中选取其中最短的一条作为水平面网 络传输的新路由,数据包通过该新路由路径传递到其对应的中转节点;
在步骤A中数据包在路由中的各节点传递过程中排除不可靠链路的方法如下除目标 节点外的每个接收到数据包的节点要检测到该节点到下一节点的链路是否拥塞了 ,如果没有 拥塞,就将数据包送给下一节点,如果拥塞,则按下面步骤进行
步骤一、判断拥塞的链路是否属于水平面网络,如果属于水平面网络,则进入步骤二, 如果不属于水平面网络,则进入步骤三;
步骤二、将所述的该节点变成新的源节点,判断新的源节点与目标节点否在同一水平 面网络上,若在同一水平面网络,就按照容错要求釆用某种路由算法(例如本实施例中所 述的简短移位路径算法或最短移位路径算法)重新计算新的源节点到目标节点的路由,同时 重新设置路径之后数据包头里的路径信息,并按新的路由路径传输;若不在同一水平面网络 就先按照容错要求采用某种路由算法(例如本实施例中所述的简短移位路径算法或最短移 位路径算法)重新计算新的源节点到目标节点所在环上在本平面的终点的路由路径,数据包 传输到该终点后,再从该终点开始继续在环上的传递直到目标节点,完毕。
步骤三、先将数据包通过本水平面网络传递到另一个环中具有与其它水平面网络相连接 的节点上,同时重新设置路径之后数据包头里的路径信息,然后数据包再通过虚平面传递到 下一层水平面网络,再通过下一个平面传回到原路由在该层的具有与其它水平面网络相连接 的节点,继续按照原路由传递。
数据包在传递过程中配合路由算法,对包头做如下调整当数据包传递到某个节点后, 路由单元根据传递方向值26判断数据包的传递方向,如果为传递方向值26为0,表示在水 平面上传递,此时路由单元根据水平面地址移位方向的序列28的最高位和填充序列29的最 高位选择输出端口,转发数据包后将水平面地址移位方向的序列28的最高位和填充序列29 的最高位丢弃,并且水平面剩余跳数27的值减1;如果为传递方向值26为1,表示在环上 传递,在环上传递时包头不会发生变化,但包头的虚平面编号在传递过程中将被用于与各节 点编号进行比较,以确定是否到达目的地。
1权利要求
1、三维片上网络架构方法,包括网络结构、网络节点的组成和数据传递过程,其特点在于首先用水平面网络结构和灵活的虚平面网络结构构成三维NoC,且水平面网络是沿X和Y方向伸展的平面,其网络拓扑结构采用De Bruijn图,每个水平面网络的节点数书相等的,而虚平面网络是沿X、Y和Z三个方向伸展的曲面,其网络由每层水平面网络上的某些节点连接而成,网络节点的结构为每个节点由路由单元和处理单元组成,且路由单元与处理单元之间有数据线连接,每个网络节点的地址是用其所在的水平面网络上的编号和所在虚平面上的编号组成的二维地址,所述节点地址中的水平编号是完全按照DeBruijn图的地址编号要求进行的,而在虚平面上的编号是根据虚平面的构成方法决定的;其数据包传递过程为数据包先在水平面网络上传递,然后再在虚平面网络上传递,即数据包从源节点开始先在水平面网络上传递到中转节点,所述的中转节点是既在源节点所在的水平面网络上又在目标节点所在的虚平面上的节点,再从中转节点开始在虚平面网络上传递到目标节点,其在水平面网络传递或虚平面传递的路由是由某种路由算法计算得到的;数据包在路由节点间的传递中要排除拥塞或不可靠路链路并重新计算路由,即由源节点计算数据包从源节点传递到目标节点的路由路径,在传递过程中每个节点都要检测它到当前路由中的下一个节点的链路是否是拥塞或不可靠,如果检查出到下一个节点的链路拥塞或不可靠,则当前的检测节点将根据容错要求以某种路由算法重新计算出一条从当前的检测节点到目标节点的路径。
2、 点据权利要求1所述的三维片上网络架构方法,其特征在于,所述的虚平面也是De Bruijn图结构,且每个虚平面网络上的节点数也是相等的,划分虚平面之后,虚平面中节点之间的连接应尽量能够利用水平面网络上已有的连接,每个节点既与同水平面网络的节点相连也与其它水平面网络上的节点连接,组成节点地址中的虚平面编号都也是按照De Bruijn图构造方法编排的;数据包的传递方法为-步骤I:源节点判断源节点与目标节点是否在同一虚平面,如果在同一虚平面,则进入步骤III,否则先进入步骤II;步骤II:以既在目标节点所在的虚平面上又在源节点所在的水平面网络上的所有节点分别作为中转节点,由某种路由算法分别计算出源地址到每个中转节点的路由,然后再在计算出的所有路由中选取最短的一条作为水平面网络传输的路由路径,数据包通过该路由路径传递到其对应的中转节点上,然后将该中转节点转换成新的源节点;步骤III:由路由算法计算出从源节点或步骤II中的新的源节点到目标节点的路由路径,数据包再通过该路由从源节点或新的源节点传递到目标节点。
3、 根据权利要求2所述的三维片上网络架輪方法,其特征在于在第n步和/或第m步中,数据包在路由中的各节点传递过程中,要排除不可靠链路,其方法如下每个接收到数据包的节点都要检测本节点到下一个节点的链路是否拥塞或不可靠,如果某节点检测到下一个节点出现了链路拥塞或不可靠,且下一个节点不是中转节点,则进入步骤a,如果所述的某节点检测出到下一个节点的链路拥塞了或不可靠,且下一个节点是中转节点,则进入步骤b;步骤a:将所述的某节点作为新的源节点,再由新的源节点按照容错要求重新计算从新的源节点到每个中转节点的路由或目标节点的路由,转入步骤c;步骤b:将所述的某节点作为新的源节点,再由新的源节点按照容错要求用某种路由算法重新计算从新的源节点到除有拥塞或不可靠链路的中转节点外的其它所有中转节点的路 由或目标节点的路由,进入步骤C;步骤c:在步骤a或步骤b中所计算出的所有路径中,选取其中最短的一条作为水平面网络传输的路由,或选取除只有一跳的路径之外的最短的一条作为虚平面网络传输的路由,数据 包通过该路由路径传递到其对应的中转节点或目标节点,完毕。
4、根据权利要求1所述的三维片上网络架构方法,其特征在于将网络中所有节点划分为 两个虚平面,每个虚平面上采用环状拓扑结构,即形成双环;双环的划分按照以下方法进行首先,将每层水平面网络中的所有节点平均划分为两个哈密尔顿路,分别记为HA和HB, HA和HB两路的起点和终点必须分别相邻;设每层中的HA和HB路中的节点数各为N个,然后,将各层的HA连成一个环,HB连成另一个环,每个环就是一个虚平面,每个环的构 成方法如下所述当水平面网络的层数为偶数时,从最上一层的HA或HB起点开始沿垂直方向将每一层 的中HA或HB路的起点相连,假设从上至下从开始顺序编号,第一层的HA或HB路的终 点与第二层的HA或HB的终点连接,第二层的HA路或HB的第二个节点与第三层的HA 或HB路的第二个节点连接,第三层的HA或HB路的终点与第四层的终点连接,以此类推 将各层的HA的节点连接起来,直到倒数第二层的HA或HB路起点与最下层HA或HB路 的起点连接;当水平面网络的层数为奇数时,与层数为偶数时所不同的是第一层的HA或 HB路的终点与第二层的HA或HB路的第二个起点连接,从第二层开始,完全按照层数为 偶数时连接方法连接;数据包的传递过程为首先从源节点'开始在水平面网络上传递到目标节点所在的环上, 然后在目标环上按照预定的方向传递到目标节点,具体步骤如下步骤A:源节点判断目标节点是否与其在同一个环上,如果在同一个环上,就直接进入-步骤B,否则,根据路由算法计算出的路由,先将数据包在源节点所在的水平面网络上传递到目标节点所在环上的,所述的中转节点可以是即在目标环上又 在源平面上的任意节点,但在实现时是确定,并将所述中转节点作为新的源节点,再进入步骤B;步骤B:在源节点或步骤A中所述新的源节点所在的环上按照结构允许的方向将数据包传递到目的路由单元,在传递过程中,每个节点的路由单元将包头所带的目 标节点地址编号和本节点地址编号进行比较,如果相同则将数据包传递给本路 由单元对应的处理单元,否则就继续向下一个节点传递。
5、根据权利要求4所述的三维片上网络架构方法,其特征在于在步骤A和/或步骤B的 数据包在路由上传递过程中,各节点要排餘不可靠或拥塞链路,在步骤A中排除不可靠或拥塞链路方法如下-每个节点都要检测到下一个节点的链路是否拥塞或不可靠,如果某节点检测出到下一个节点的链路拥塞了或不可靠,且下一个节点不是中转节点,则进入步骤e,如果所述的某节 点检测出到下一个节点的链路拥塞了或不可靠,且下一个节点是中转节点,则进入步骤f;步骤e:将所述的某节点作为新的源节点,再由新的源节点按照容错要求用某种路由算 法重新计算从新的源节点到每个中转节点的路由,转入步骤g;步骤f:则将所述的某节点作为新的源节点,再由新的源节点按照容错要求用某种路由算法(例如采用简短移位路由算法歳最'短移位路由算法)重新计算从新的源节点到除有拥塞或不可靠链路的中转节点外的其它所有中转节点的路由;步骤g:在步骤a或步骤b中所计算出的所有路径中选取其中最短的一条作为水平面网络传输的路由,数据包通过该路由路径传递到其对应的中转节点;在步骤B中排除不可靠链路的方法如下除目标节点外的每个接收到数据包的节点要检测到该节点到下一节点的链路是否拥塞了,如果没有拥塞,就将数据包送给下一节点,如果拥塞,则按下面步骤进行-步骤一、判断拥塞的链路是否属于水平面网络,如果属于水平面网络,则进入步骤二,如果不属于水平面网络,则进入步骤三;步骤二、将所述的该节点变成新的源节点,判断新的源节点与目标节点否在同一水平面网络上,若在同一水平面网络,就按照容错要求采用某种路由算法重新计算新的源节点到目标节点在水平面网络上的路由,同时重新设置路径之后数据包头里的路径信息,并按新的路由路径传输;若不在同一水平面网络,就先按照容错要求采用某种路由算法重新计算新的源节点到目标节点所在环上在本平面的二类节点的路由路径,数据包传输到该二类节点后,再从该二类节点开始继续在环上的传递直到目标节点,完毕;步骤三、先将数据包通过本水平面网络传递到另一个环中与所述该节点直接相连的二类节点上,同时重新设置路径之后数据包头里的路径信息,然后数据包通过虚平面传递到下一层水平面网络,再通过下一个平面传回到原路由在该层的二类节点,继续按照原路由传递。
6、根据权利要求l、 2、 3、 4或5所述的三维片上网络架构方法,其特征在于所述的某种路由算法可以是简短移位路由算法;简短移位路由算法过程为先分别利用左最简循环路径算法和右最简循环路径算法计算出左路径和右路径,然后在左路径和右路径选择最短的路径就是最终计算所得到的路径;所述的左最简移位路径算法为(1) 、将源节点的水平编号或虚平面编号用m位比特的二进制数代替,设一个水平面网络或虚平面的节点数为N,则m-logN, H=m-1, F=m;(2) 、将源节点的水平编号或虚平面编号的低H位与目标节点的水平编号或虚平面编号的高H位进行比较,如果不相同且H^2y则将H-H-l,然后重复本步,否则命源节点的水平编号或虚平面编号为新编号,取F-H+1,并进入(3);(3) 、将新编号从低向高移动一位,并将原来的最高位丢弃,移动后的编号的最低位由目标节点的水平编号或虚平面编号中的第F高位补充得到新编号,记录该次的编号,取F=F+1:(4) 、重复(3)所述过程m-H-l次;(5) 、将(3)和(4)步所记录的所有编号按照记录的前后顺序构成了从源节点到目标节点的左路径所述的右最简移位路径算法具体步骤如下.;(6)、将水平编号或虚平面编号用m位比特的二进制数代替,设一个水平面网络或虚平面的节点数为N,则m-logN,取H-m-l, F=H+1;(7)、将源节点的水平编号或虚平面编号的高H位与目标节点的水平编号或虚平面编号的低H位进行比较,如果不相同且11>=2,则取H-H-l,然后重复本步,否则,命源节点的水平编号或虚平面编号为新编号,取F-H+1,进入(8);;.(8)、将新编号从高向低移动一位,并将原来的最低位丢弃,移动后的编号的最高位由目垛节点的水平编号或虚平面编号中的第F低位补充得到新编号,记录该次的编号,取F=F+1;(9) 、重复(8)所述过程m-H-l次; '(10) 、将(8)和(9)所记录的所有编号按照记录的前后顺序构成从源节点到目标节点的右路径。
7、根据权利要求l、 2、 3、 4和/或5所述的三维片上网络架构方法,其特征在于所述的某种路由算法可以是最短移位路由算法,最短移位路由算法过程为1) 、采用权利要求5中所述的左最简循环路径算法和右最简循环路径算法分别算出源节点到目标节点之间左路径和右路径,如果左路径或右路径的跳数小于等于2,转入5),否贝!j,将n-2, k=l,进入2);2) 、分别将n条路径中的第k跳的终点为新的源节点,再采用最简移位法计算出n条左路径和n条右路径,在每条路径前面分别加上各自新的源节点到源节点之间的路径部分,即成为从源节点开始到目标节点的2n条路由,如2n条路径中的某条路由的跳数为小于等于k+2,则转入5),否则转入3);3) 、判断k是否小于m,如果k小于.m,转入4,否则转入5);4) 、将n-2n, k=k+l;转入2);'5) 、选择所有路由中最短的路径作为数据传输路由;其中m是地址的二进制数的长度。
全文摘要
本发明提出了一种三维片上网络架构方法,用水平面网络结构和灵活的虚平面网络结构构成三维NoC网络,且水平面网络是沿X和Y方向伸展的平面,其网络拓扑结构采用DeBruijn图,而虚平面网络是沿X、Y和Z三个方向伸展的曲面,其网络可以按照以解决某种问题(比如降低布线的复杂度或提高容错特性)的需要由每一层水平面网络上的某些节点连接而成,也就是说这些节点不一定在一个垂直平面上。本发明还提出了两种虚平面构造方法,一种是De Bruijn图结构,另一种是双环结构,第一种方法充分利用了De Bruijn图允许设计更短的路由的算法,使数据传输的平均跳数少,网络延时小,且具有较好的容错特性,第二种方法利用环状结构布线的复杂度低和数据传输速率高的特点再结合水平面网络部分利用De Bruijn图网络直径小的优势,提高了输效率。
文档编号H04L12/58GK101483614SQ20081004631
公开日2009年7月15日 申请日期2008年10月20日 优先权日2008年10月20日
发明者翔 凌, 符初生, 胡剑浩, 陈亦欧 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1