CN101483614B - 三维片上网络架构方法 - Google Patents
三维片上网络架构方法 Download PDFInfo
- Publication number
- CN101483614B CN101483614B CN2008100463169A CN200810046316A CN101483614B CN 101483614 B CN101483614 B CN 101483614B CN 2008100463169 A CN2008100463169 A CN 2008100463169A CN 200810046316 A CN200810046316 A CN 200810046316A CN 101483614 B CN101483614 B CN 101483614B
- Authority
- CN
- China
- Prior art keywords
- node
- network
- horizontal plane
- numbering
- source node
- 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
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提出了一种三维片上网络架构方法,用水平面网络结构和灵活的虚平面网络结构构成三维NoC网络,且水平面网络是沿X和Y方向伸展的平面,其网络拓扑结构采用DeBruijn图,而虚平面网络是沿X、Y和Z三个方向伸展的曲面,其网络可以按照以解决某种问题(比如:降低布线的复杂度或提高容错特性)的需要由每一层水平面网络上的某些节点连接而成,也就是说这些节点不一定在一个垂直平面上。本发明还提出了两种虚平面构造方法,一种是DeBruijn图结构,另一种是双环结构,第一种方法充分利用了De Bruijn图允许设计更短的路由的算法,使数据传输的平均跳数少,网络延时小,且具有较好的容错特性,第二种方法利用环状结构布线的复杂度低和数据传输速率高的特点再结合水平面网络部分利用De Bruijn图网络直径小的优势,提高了传输效率。
Description
技术领域
本发明属于集成电路芯片中的各处理单元之间的网络连接方法,特别是三维片上网络的连接以及相关的数据传输过程。
背景技术
近年来,随着技术的发展,出现了一种新的封装形式——三维封装,即把多个裸片垂直的叠加起来并且封装成一个芯片。三维封装得到的芯片被称为三维IC,和传统的二维IC相比,它具有容量大、密度大等众多优点。
因为三维NoC(Network on Chip,片上网络)的架构对网络的吞吐率、可靠性、应用层的任务映射以及芯片的面积和功耗影响很大,所以三维NoC的架构方案是实现三维NoC最基本、最重要的一个环节。三维NoC的架构一般由网络的拓扑结构、网络节点的结构、以及路由算法三方面组成,网络架构中的基本单元是网络节点,网络节点是由一般由处理数据的处理单元和传输数据的路由单元构成,多个网络节点的连接方式形成网络拓扑结构,各节点之间信息交流的途径是由路由算法直接决定的。网络拓扑结构决定了路由算法的难易和复杂度程度,合理的路由算法可以提高系统的吞吐率、减小网络的平均延时、提高系统的可靠性并且降低芯片的功耗和面积。
通过查新和广泛收集文献资料,我们发现已经公开的三维NoC方法有如下几类:
参考文献PartHa Pratim Pande,Amlan Ganguly,Brett Feero,et.al,Applicabilityof EnergyEfficient Coding Methodology to Address Signal Integrity in 3D NoC Fabrics,13th IEEEInternational On-Line Testing Symposium,2007.Page(s):161-166和参考文献Brett Feero,PartHa Pratim Pande,Performance Evaluation for Three-Dimensional Networks-On-Chip,IEEEComputer SocietyAnnual 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-LayerTopologies 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三维Torus结构的构造方法,即由多个三维Mesh网络以Torus结构的方式构成的层次化的三维Torus结构。因为Torus结构只是对Mesh结构进行了简单的扩展,仍然具有Mesh结构的特性,网络节点结构与路由算法也是对Mesh结构算法进行了继承与简单改进,所以也具有网络延时较大、吞吐量较低的缺点。
几乎现有三维NoC架构都是基于Mesh结构的,而De Bruijn图结构具有网络直径小、节点度固定、路径灵活等优点,因此可以利用这些优点来设计更好的路由算法和数据传输方式以提高数据传输效率和吞吐率,但De Bruijn图作为网络结构目前只在二维NoC上实现并应用,参考文献MoHammad Hosseinababy,MoHammad Reza Kakoee,Jimson Mathew,et.al,Reliable Network-on-Chip Based on Generalized de Bruijn Graph,IEEE International High LevelDesign Validation and Test Workshop,2007.Page(s):3-10就是介绍的用De Bruijn图作为二维NoC的架构方法。
在De Bruijn图拓扑结构中,如果两个节点相邻,则它们的地址编号i和j必须满足下列任一公式:
i=(d*j+r)modn,r=0,1,...,d-1
j=(d*i+r)modn,r=0,1,...,d-1
其中,n为节点数,d为地址编号的进制。上式表明任一节点的二进制地址左移或右移,再补充一个比特r,则得到相邻节点的地址。例如,De Bruijn图的节点数为16,地址编号的进制为2时,节点2(0010b)与节点9(1001b)是相邻的,此时i=2,j=9,r=0。
发明内容
本发明针对现有架构方式的网络延时大、吞吐率低等问题,提供了一种基于De Bruijn图网络结构,且打破传统的水平面网络和垂直面分解的三维网络,提出了水平面网络和虚平面组成三维网络连接的片上网络架构方法。通过虚平面的灵活连接方式,提高容错特性、减小网络延时从而提高网络的吞吐率以及高可靠性的特性。
为了便于描述,首先对一些术语进行定义:
水平编号、虚平面编号:首先假设一个用X、Y、Z表示三个坐标轴的三维坐标,其中X和Y所组成的平面为水平面,,而虚平面由X、Y、Z三个方向的点连接而成的网络,而同一个水平面上的节点是用一维编号来区分的,该编号就是水平编号。同一个虚平面的节点也用一维编号来区分,该编号就是虚平面编号。
源节点:发出数据包起始节点。
目标节点:数据包最终到达的节点。
为了达到上述性能要求,本发明主要提出了以下几个方面的技术解决方案:
网络拓扑结构:首先用水平面网络结构和灵活的虚平面网络结构构成三维NoC网络,且水平面网络是沿X和Y方向伸展的平面,其网络拓扑结构采用De Bruijn图(如图1所示),而虚平面网络是沿X、Y和Z三个方向伸展的曲面,其网络可以按照解决某种问题(比如:降低布线的复杂度或提高容错特性)的需要由每一层水平面网络上的某些节点连接而成,也就是说这些节点不一定在一个垂直平面上。
网络节点的结构:每个节点由路由单元和处理单元组成,且路由单元与处理单元之间有数据线连接,每个网络节点的地址是用其所在的水平面网络上的编号和所在虚平面上的编号组成的二维地址,所述的水平面网络上的编号是完全按照De Bruijn图的地址编号要求进行的,而在虚平面上的编号是根据虚平面的构成方法决定的。
其数据包传递过程为:数据包先在水平面网络(NoT,Network on Tier)上传递,然后再在虚平面网络上传递,即数据包从源节点开始先在水平面网络上传递到中转节点,所述的中转节点是既在源节点所在的水平面网络上又在目标节点所在的虚平面上的节点,再从中转节点开始在虚平面网络上传递到目标节点;数据包在路由节点间的传递中要排除拥塞或不可靠链路并重新计算路由,即由源节点计算数据包从源节点到传递到目标节点的路由路径,在传递过程中每个节点都要检测它到当前路由中的下一个节点的链路是否是拥塞或不可靠,如果检查到到下一个节点的链路拥塞或不可靠,则当前的检测节点将根据容错要求以某种路由算法重新计算出一条从当前的检测节点到目标节点的路径。
实质与效果:
由于De Bruijn图是一种性能优异的网络拓扑结构,具有网络直径小、节点度固定、通过移位方法就可以计算路由等优点,同时采用X、Y和Z三个方向的节点连接的虚平面方法,可以利用灵活的节点连接方式,提高容错特性(例如用双环状拓扑结构,实施例二给出),减少延时(例如用De Bruijn图,实施例一给出),且该网络构造允许在数据传输过程中回避拥塞链路而提高了可靠性,因此本发明的三维NoC架构能同时满足网络延时小、吞吐率高、可靠性强的要求,同时,因为路由算法中先在水平面网络上传递然后再在虚平面上传递,所以路由算法实现简单、可靠。
附图说明
图1是De Bruijn拓扑结构图;
图2是本发明的实施例一的以每个水平面网络有16个节点为例的虚平面的划分图;
图3是本发明的实施例二16个节点的双环划分示意图;
图4是本发明的实施例二中当水平面网络的层数为偶数时的双环连接网络结构示意图;
图5是本发明的实施例二中当水平面网络的层数为奇数时的双环连接网络结构示意图;
图6是本发明的实施例一的路由算法所采用的数据包的包头格式;
图7是本发明的实施例二的路由算法所采用的数据包的包头格式。
其中,1是节点,2是节点的水平编号数据,3是实施例一中水平面网络上包含4个节点的哈密尔顿路,4是实施例二中包含8个节点的哈密尔顿路,5是实施例二中第一层水平面网络上的哈密尔顿路HA的起点,6是各层水平面网络上HA路的起点,7是第一层水平面网络的HA路的终点,8是第二层水平面网络的HA路的终点,9是第二层HA路的第二个节点,10是第三层HA路的第二个节点;
11是实施例一中目标节点的水平编号,12是实施例一中目标节点的虚平面编号,13是实施例一中源节点的水平编号,14是实施例一源节点的虚平面编号,15是实施例一中代表数据包的传递方向的值,16是实施例一中数据包在水平面剩余跳数,17表示水平面地址的移位方向的序列(为0表示左移,为1表示右移),18是水平面错误!未找到引用源。填充序列,19是实施例一中数据包在虚平面剩余跳数,20是虚平面地址移位方向序列,21是虚平面上填充序列;22是实施例二中目标节点的水平编号,23是实施例二中目标节点的Z坐标,24是实施例二中源节点的水平编号,25是实施例二中源节点的Z坐标,26是实施例二中代表数据包的传递方向的值(为0表示在水平面网络上传递,为1表示在环上传递),27是实施例二是水平面网络上的剩余跳数,28表示地址的移位方向(为0表示左移,为1表示右移),29错误!未找到引用源。是错误!未找到引用源。填充序列。
具体实施方式
下面介绍两种实施例。第一种是用De Bruijn图作为虚平面的构架方法,第二种是用环状拓扑结构作为虚平面的构架方法。
实施例一:
网络的拓扑结构:本发明的实施例一中的三维NoC的架构方式如下:它的水平面网络和虚平面网络都是De Bruijn图结构,每个水平面网络上的节点的数量是相等的,每个虚平面上的节点数也是相等的,每个节点的水平编号和虚平面编号都是按照De Bruijn图构造方法编排的,为了降低芯片中布局布线的复杂度,构成每个虚平面的节点的划分应能够尽量利用水平面网络上已有的连接。以4层水平面网络,每个平面上有16个节点为例,按照以下方式划分:将每层水平面网络上的De Bruijn图分成四条各包含4个节点哈密尔顿路,分别记为HA、HB、HC和HD,其中一种划分结果可以如图2所示:节点0、8、9、12属于HA,节点5、11、7、3属于HB,节点1、2、4、10属于HC,节点6、13、14、15属于HD,每水平层划分方式相同,把每水平层中的HA路的4个节点共16个节点连接成De Bruijn图,构成第一个虚平面,用同样的方式将每水平层HB、HC或HD的节点连接成另外三个虚平面,每个节点又都在所在的虚平面上按照De Bruijn图构造方法编排其虚平面编号。
节点结构:每个节点由一个路由单元和一个处理单元组成,且路由单元与处理单元之间由数据线连接,每个节点既与同水平面网络的节点相连也与其它水平面网络上的节点连接,节点的地址就是由该节点所在的水平面网络上的水平编号和所在的虚平面上的虚平面编号合成的二维地址。
数据包的传递方法:
步骤I:源节点判断源节点与目标节点是否在同一虚平面,如果在同一虚平面,则进入步骤III,否则先进入步骤II;
步骤II:以既在目标节点所在的虚平面上又在源节点所在的水平面网络上的所有节点分别作为中转节点,采用某种路由算法(例如:采用简短移位路径算法或最短移位路径算法,简短移位路径算法或最短移位路径算法均由本发明提出的,在后面有描述)分别计算出源地址到每个中转节点的最短路由,然后再在计算出的所有最短路径中选取最短的一条作为水平面网络传输的路由路径,数据包通过该路由路径传递到其对应的中转节点上,然后将该中转节点转换成新的源节点;
步骤III:采用某种路由算法(例如:采用简短移位路径算法或最短移位路径算法)计算出从源节点或步骤II中的新的源节点到目标节点的路由路径,数据包再通过该路由从源节点或新的源节点传递到目标节点。
在第II步和/或第III步中的数据包在路由中的各节点传递过程中,要排除不可靠链路,其方法如下:每个接收到数据包的节点都要检测本节点到下一个节点的链路是否拥塞或不可靠,如果某节点检测出到下一个节点的链路拥塞了或不可靠,且下一个节点不是中转节点(步骤II)或目标节点(步骤III),则进入步骤a,如果所述的某节点检测出到下一个节点的链路拥塞了或不可靠,且下一个节点是中转节点(步骤II)或目标节点(步骤III),则进入步骤b
步骤a:则将所述的某节点作为新的源节点,再由新的源节点按照容错要求用某种路由算法重新计算(例如:采用简短循环路径算法或最短循环路径方法计算)从新的源节点到每个中转节点的路由(步骤II)或目标节点的路由(步骤III),转入步骤c;
步骤b:则将所述的某节点作为新的源节点,再由新的源节点按照容错要求用某种路由算法(例如:采用简短移位路由算法或最短移位路由算法)重新计算从新的源节点到除有拥塞或不可靠链路的中转节点外的其它所有中转节点的路由(步骤II)或目标节点的路由(步骤III);
步骤c:在步骤a或步骤b中所计算出的所有路径中选取其中最短的一条作为水平面(步骤II)或虚平面(步骤III)网络传输的路由,数据包通过该路由路径传递到其对应的中转节点(步骤II)或目标节点(步骤III)。
所述的最短移位路径算法和所述的简短移位路径算法是基于最简移位路径算法的,因此在描述最短移位路径算法和简短移位路径算法之前,先描述最简移位路径算法。
所述的最简移位路径算法分为左最简移位路径算法和右最简移位路径算法。
左最简移位路径算法的具体步骤如下:
1、将节点的水平编号或虚平面编号用m位比特的二进制数代替,设一个水平面网络(或虚平面)的节点数为N(N的取值是2的幂次方),则m=logN;命源节点的编号为新编号,H=m-1,F=m
2、将新编号的低H位与目标节点的编号的高H位进行比较,如果不相同且H>=2,则将H=H-1,然后重复本步,否则命F=H+1,并进入3;
3、将新编号的二进制数从低向高移动一位,并将原来的最高位丢弃,移动后的编号的最低位由目标节点的编号中的第F高位补充得到新编号,记录该次的编号,F=F+1;
4、重复3所述过程m-H-1次;
5、将3和4步所记录的所有编号按照记录的前后顺序构成了从源节点到目标节点的左路径。
右最简移位路径算法具体步骤如下:
6、将水平编号或虚平面编号用m位比特的二进制数代替,设一个水平面网络或虚平面的节点数为N(N的取值是2的幂次方),则m=logN;命源节点的编号为新编号,H=m-1,F=H+1;
7、将源节点的水平编号或虚平面编号的高H位与目标节点的水平编号或虚平面编号的低H位进行比较,如果不相同且H>=2,则取H=H-1,然后重复本步,否则命F=H+1,进入8;
8、从源节点的水平面网络的二进制编号从高向低移动一位,并将原来的最低位丢弃,移动后的编号的最高位由目标节点的水平编号或虚平面编号中的第F低位补充得到新编号,记录该次的编号,取F=F+1;
9、重复8所述过程m-H-1次;
10、将8和9所记录的所有编号按照记录的前后顺序构成从源节点到目标节点的右路径。
所述的简短移位路径计算法如下:
a、根据所述的左最简移位路径算法计算出左路径和根据所述的右最简移位路径算法算出右路径;
b、选择右路径和左路径中较短(节点数较少)的路径为路由。
所述的最短移位路径算法具体步骤如下:
1)、根据所述的最简移位路径算法计分别算出源节点到目标节点之间的左路径和右路径,如果左路径或右路径的跳数小于或等于2,转入5),否则,将n=2,k=1,进入2);
2)、分别将n条路径中的第k跳的终点作为新的源节点,再采用最简移位路径算法计算出n条左路径和n条右路径,在每条路径前面分别加上各自新的源节点到源节点之间的路径部分,即成为从源节点开始到目标节点的2n条路由路径,如2n条路径中的某条路由的跳数为小于或等于k+2,则转入5),否则转入3);
3)、判断k是否小于m,如果k小于m,转入4,否则转入5);
4)、将n=2n,k=k+1;转入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个节点的双环划分方式,节点0、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,表示在环上传递,在环上传递时包头不会发生变化,但包头的虚平面编号在传递过程中将被用于与各节点编号进行比较,以确定是否到达目的地。
Claims (5)
1.三维片上网络架构方法,包括网络结构、网络节点的组成和数据传递过程,其特点在于:首先用水平面网络结构和灵活的虚平面网络结构构成三维NoC,且水平面网络是沿X和Y方向伸展的平面,其网络拓扑结构采用De Bruijn图,每个水平面网络的节点数相等的,而虚平面网络是沿X、Y和Z三个方向伸展的曲面,其网络由每层水平面网络上的某些节点连接而成,网络节点的结构为:每个节点由路由单元和处理单元组成,且路由单元与处理单元之间有数据线连接,每个网络节点的地址是用其所在的水平面网络上的编号和所在虚平面上的编号组成的二维地址,所述节点地址中的水平编号是完全按照De Bruijn图的地址编号要求进行的,而在虚平面上的编号是根据虚平面的构成方法决定的;其数据包传递过程为:数据包先在水平面网络上传递,然后再在虚平面网络上传递,即数据包从源节点开始先在水平面网络上传递到中转节点,所述的中转节点是既在源节点所在的水平面网络上又在目标节点所在的虚平面上的节点,再从中转节点开始在虚平面网络上传递到目标节点,其在水平面网络传递或虚平面传递的路由是由简短移位路由算法或最短移位路由算法计算得到的;数据包在路由节点间的传递中要排除拥塞或不可靠链路并重新计算路由,即由源节点计算数据包从源节点传递到目标节点的路由路径,在传递过程中每个节点都要检测它到当前路由中的下一个节点的链路是否是拥塞或不可靠,如果检查出到下一个节点的链路拥塞或不可靠,则当前的检测节点将根据容错要求以简短移位路由算法或最短移位路由算法重新计算出一条从当前的检测节点到目标节点的路径;
所述的简短移位路由算法的算法过程为:先分别利用左最简移位路径算法和右最简移位路径算法分别计算出左路径和右路径,然后在左路径和右路径之间选择最短的路径就是最终计算所得到的路径;
所述的最短移位路由算法的算法过程为:
1)、采用左最简移位路径算法和右最简移位路径算法分别算出源节点到目标节点之间左路径和右路径,如果左路径或右路径的跳数小于等于2,转入5),否则,将n=2,k=1,进入2);
2)、分别将n条路径中的第k跳的终点为新的源节点,再采用左最简移位路径算法和右最简移位路径算法计算出n条左路径和n条右路径,在每条路径前面分别加上各自新的源节点到源节点之间的路径部分,即成为从源节点开始到目标节点的2n条路由,如2n条路径中的某条路由的跳数为小于等于k+2,则转入5),否则转入3);
3)、判断k是否小于m,如果k小于m,转入4,否则转入5);
4)、将n=2n,k=k+1;转入2);
5)、选择所有路由中最短的路径作为数据传输路由;
其中:m是地址的二进制数的长度,
所述的左最简移位路径算法为:
(1)、将源节点的水平编号或虚平面编号用m位比特的二进制数代替,设一个水平面网络或虚平面的节点数为N,则m=log2 N,H=m-1,F=m;
(2)、将源节点的水平编号或虚平面编号的低H位与目标节点的水平编号或虚平面编号的高H位进行比较,如果不相同且H>=2,则将H=H-1,然后重复本步,否则命源节点的水平编号或虚平面编号为新编号,取F=H+1,并进入(3);
(3)、将新编号从低向高移动一位,并将原来的最高位丢弃,移动后的编号的最低位由目标节点的水平编号或虚平面编号中的第F高位补充得到新编号,记录该次的编号,取F=F+1;
(4)、重复(3)所述过程m-H-1次;
(5)、将(3)和(4)步所记录的所有编号按照记录的前后顺序构成了从源节点到目标节点的左路径;
所述的右最简移位路径算法具体步骤如下:
(6)、将水平编号或虚平面编号用m位比特的二进制数代替,设一个水平面网络或虚平面的节点数为N,则m=log2 N,取H=m-1,F=H+1;
(7)、将源节点的水平编号或虚平面编号的高H位与目标节点的水平编号或虚平面编号的低H位进行比较,如果不相同且H>=2,则取H=H-1,然后重复本步,否则,命源节点的水平编号或虚平面编号为新编号,取F=H+1,进入(8);
(8)、将新编号从高向低移动一位,并将原来的最低位丢弃,移动后的编号的最高位由目标节点的水平编号或虚平面编号中的第F低位补充得到新编号,记录该次的编号,取F=F+1;
(9)、重复(8)所述过程m-H-1次;
(10)、将(8)和(9)所记录的所有编号按照记录的前后顺序构成从源节点到目标节点的右路径。
2.根据权利要求1所述的三维片上网络架构方法,其特征在于,所述的虚平面也是De Bruijn图结构,且每个虚平面网络上的节点数也是相等的,划分虚平面之后,虚平面中节点之间的连接应尽量能够利用水平面网络上已有的连接,每个节点既与同水平面网络的节点相连也与其它水平面网络上的节点连接,组成节点地址中的虚平面编号都也是按照De Bruijn图构造方法编排的;数据包的传递方法为:
步骤I:源节点判断源节点与目标节点是否在同一虚平面,如果在同一虚平面,则进入步骤III,否则先进入步骤II;
步骤II:以既在目标节点所在的虚平面上又在源节点所在的水平面网络上的所有节点分别作为中转节点,由简短移位路由算法或最短移位路由算法分别计算出源地址到每个中转节点的路由,然后再在计算出的所有路由中选取最短的一条作为水平面网络传输的路由路径,数据包通过该路由路径传递到其对应的中转节点上,然后将该中转节点转换成新的源节点;
步骤III:由路由算法计算出从源节点或步骤II中的新的源节点到目标节点的路由路径,数据包再通过该路由从源节点或新的源节点传递到目标节点。
3.根据权利要求2所述的三维片上网络架构方法,其特征在于:在第II步和/或第III步中,数据包在路由中的各节点传递过程中,要排除不可靠链路,其方法如下:
每个接收到数据包的节点都要检测本节点到下一个节点的链路是否拥塞或不可靠,如果某节点检测到下一个节点出现了链路拥塞或不可靠,且下一个节点不是中转节点,则进入步骤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:在步骤e或步骤f中所计算出的所有路径中选取其中最短的一条作为水平面网络传输的路由,数据包通过该路由路径传递到该路径上的中转节点;
在步骤B中排除不可靠链路的方法如下:
除目标节点外的每个接收到数据包的节点要检测到该节点到下一节点的链路是否拥塞了,如果没有拥塞,就将数据包送给下一节点,如果拥塞,则按下面步骤进行:
步骤一、判断拥塞的链路是否属于水平面网络,如果属于水平面网络,则进入步骤二,如果不属于水平面网络,则进入步骤三;
步骤二、将所述的该节点变成新的源节点,判断新的源节点与目标节点是否在同一水平面网络上,若在同一水平面网络,就按照容错要求采用简短移位路由算法或最短移位路由算法重新计算新的源节点到目标节点在水平面网络上的路由,同时重新设置数据包头里的路径信息,并按新的路由路径传输;若不在同一水平面网络,就先按照容错要求采用简短移位路由算法或最短移位路由算法重新计算新的源节点到目标节点所在环上在本平面的二类节点的路由路径,数据包传输到该二类节点后,再从该二类节点开始继续在环上的传递直到目标节点,完毕;
步骤三、先将数据包通过本水平面网络传递到另一个环中与所述该节点直接相连的二类节点上,同时重新设置数据包头里的路径信息,然后数据包通过虚平面传递到下一层水平面网络,再通过下一个平面传回到原路由在该层的二类节点,继续按照原路由传递。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100463169A CN101483614B (zh) | 2008-10-20 | 2008-10-20 | 三维片上网络架构方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100463169A CN101483614B (zh) | 2008-10-20 | 2008-10-20 | 三维片上网络架构方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101483614A CN101483614A (zh) | 2009-07-15 |
CN101483614B true CN101483614B (zh) | 2011-07-27 |
Family
ID=40880551
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100463169A Expired - Fee Related CN101483614B (zh) | 2008-10-20 | 2008-10-20 | 三维片上网络架构方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101483614B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102333038B (zh) * | 2011-10-21 | 2013-11-13 | 上海交通大学 | 一种基于片上网络的无死锁路由方法 |
CN103916262B (zh) * | 2013-12-17 | 2017-09-01 | 哈尔滨安天科技股份有限公司 | 一种基于三维空间的网络拓扑布局方法及系统 |
CN104079480B (zh) * | 2014-05-30 | 2018-03-30 | 中国科学院计算技术研究所 | 一种三维集成电路片上网络的路由方法及其系统 |
CN104092617B (zh) * | 2014-05-30 | 2017-10-27 | 中国科学院计算技术研究所 | 一种三维集成电路片上网络路由方法及其系统 |
CN105594168B (zh) * | 2014-09-05 | 2019-05-24 | 华为技术有限公司 | 基于Mesh结构的点对多点通信方法及通信节点 |
CN104394072A (zh) * | 2014-10-10 | 2015-03-04 | 南京大学 | 一种用于三维片上网络的双泵垂直通道 |
CN104539533B (zh) * | 2014-12-22 | 2017-12-01 | 合肥工业大学 | 依据3D NoC中每一层TSV连接状况建立通道表的方法及其应用 |
CN105991378B (zh) * | 2015-02-15 | 2019-11-29 | 华为技术有限公司 | 一种基于3D-mesh网络的点对多点通信方法及通信节点 |
CN105183693B (zh) * | 2015-05-26 | 2019-06-14 | 扬州大学 | 一种基于三维片上网络的多播传输方法 |
CN105224501B (zh) * | 2015-09-01 | 2018-10-02 | 华为技术有限公司 | 改进圆环面网络及其确定数据包传输路径的方法和装置 |
CN106503333B (zh) * | 2016-10-20 | 2019-01-25 | 桂林电子科技大学 | 一种三维片上网络测试规划方法 |
CN106953800B (zh) * | 2017-04-21 | 2019-12-17 | 中国人民解放军国防科学技术大学 | 一种基于片上网络的自适应垂直路由方法及路由单元 |
CN114598569B (zh) * | 2022-02-25 | 2023-10-03 | 中铁第四勘察设计院集团有限公司 | 一种网络架构 |
CN114615208B (zh) * | 2022-03-09 | 2024-02-23 | 新华三半导体技术有限公司 | 一种反压信息传递、请求发送方法、装置及网络芯片 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101145147A (zh) * | 2007-10-10 | 2008-03-19 | 山东大学 | 三维多处理器系统芯片 |
CN101252515A (zh) * | 2008-03-21 | 2008-08-27 | 北京大学深圳研究生院 | 一种片上网络芯片 |
-
2008
- 2008-10-20 CN CN2008100463169A patent/CN101483614B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101145147A (zh) * | 2007-10-10 | 2008-03-19 | 山东大学 | 三维多处理器系统芯片 |
CN101252515A (zh) * | 2008-03-21 | 2008-08-27 | 北京大学深圳研究生院 | 一种片上网络芯片 |
Non-Patent Citations (2)
Title |
---|
李忠琦等.片上网络系统网络层设计与研究.《中国集成电路》.2008,(第112期), * |
陈亦欧等.三维片上网络拓扑研究.《电信科学》.2009,(第4期), * |
Also Published As
Publication number | Publication date |
---|---|
CN101483614A (zh) | 2009-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101483614B (zh) | 三维片上网络架构方法 | |
CN101388834B (zh) | 三维片上网络架构方法 | |
US9137098B2 (en) | T-Star interconnection network topology | |
Li et al. | Dual-cubes: a new interconnection network for high-performance computer clusters | |
Chalasani et al. | Communication in multicomputers with nonconvex faults | |
CN104539547B (zh) | 一种用于三维集成电路片上网络的路由器及路由方法 | |
CN107612746A (zh) | 一种构建Torus网络的方法、Torus网络和路由算法 | |
US20120269191A1 (en) | System and method for implementing a multistage network using a two-dimensional array of tiles | |
KR20160033695A (ko) | 네트워크 온 칩에서의 시스템 레벨 시뮬레이션 | |
CN105138493B (zh) | 适用并行运算的无交换器网络建构系统及方法 | |
Adhikari et al. | The folded crossed cube: A new interconnection network for parallel systems | |
CN102780628B (zh) | 面向多核微处理器的片上互连网络路由方法 | |
KR20140139032A (ko) | 패킷플로우 상호연결 패브릭 | |
Weldezion et al. | Scalability of network-on-chip communication architecture for 3-D meshes | |
CN105577539B (zh) | 一种面向非规则三维集成电路片上网络的路由方法及系统 | |
CN109561034A (zh) | 三维网络拓扑结构及其路由算法 | |
CN104662525A (zh) | 并行计算机、节点装置以及并行计算机的控制方法 | |
CN102761475A (zh) | 一种基于通道依赖关系图的片上互联网络容错路由方法 | |
Xiang | Deadlock-free adaptive routing in meshes with fault-tolerance ability based on channel overlapping | |
Hosseinabady et al. | Low latency and energy efficient scalable architecture for massive NoCs using generalized de Bruijn graph | |
Hosseinabady et al. | Reliable network-on-chip based on generalized de Bruijn graph | |
Rahman et al. | Symmetric and folded tori connected torus network | |
Taheri et al. | Advertiser elevator: A fault tolerant routing algorithm for partially connected 3D Network-on-Chips | |
Jahanshahi et al. | Crossbar-based interconnection networks | |
Tyagi et al. | Exploring 3d network-on-chip architectures and challenges |
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: 20110727 Termination date: 20161020 |
|
CF01 | Termination of patent right due to non-payment of annual fee |