一种大规模片上芯片互联方法及实现互联结构的路由算法
【专利摘要】本发明涉及一种芯片互联结构实现方法。一种跨域直连大规模片上芯片互联方法,针对目前片上网络结构,1)在对等节点位置,实例化一个本地子网,加上连接到本地子网的本地计算节点作为一个本地计算域;2)在相邻位置的本地计算域之间,通过本地子网的路由节点直接连接,构建片上网络结构的主网。所述跨域直连大规模片上芯片互联结构的路由算法,对于片上芯片互联结构中的每一个本地计算域资源,当数据包从源地址发送出来时首先判断它的目的地址是否在本子网内,如是则采用适合于子网的路由算法传递数据包;如果不在子网内,则首先要将数据包发送到与外部网络相连的路由器,而后在路由器中读取目的地址中的主网地址,根据主网的路由算法,将数据包发送到目的地址所对应的子网中;然后根据数据包中子网的目的地址,通过子网的路由算法将数据包发送到目的地址。
【专利说明】一种大规模片上芯片互联方法及实现互联结构的路由算法
【技术领域】
[0001]本发明涉及一种芯片互联结构,特别是涉及一种基于跨域直连思想的大规模片上芯片互联结构及实现所述结构的路由算法。
【背景技术】
[0002]典型的片上系统设计常常采用片上总线和片上网络两种通信策略。片上总线主要优点是高灵活性,可延展,设计花销小,一般在带宽要求较低时时延也较短;缺点是过长的通信线路带来一定能耗,且限制系统时钟速率。当通信结构中含有两个以上的模块时,可伸缩性减弱。
[0003]片上网络技术主要优点是能支持硬件模块之间的并发通信,可伸缩性更强,可用于支持更大带宽。元件的模块化更有利于IP重用,从而提供更高的时钟频率和低功耗。但是,目前片上网络结构中各节点基本上是对等连接在一起,无法适应节点本地化计算、数据本地化存储的实际需求。
【发明内容】
[0004]本发明针对现有技术不足,将计算机网络中的主网和子网的概念以及芯片互联的概念引入到片上网络的研究中,提出一种跨域直连大规模片上芯片互联方法及实现所述片上芯片互联结构的路由算法。
[0005]本发明所采用的技术方案:
一种跨域直连大规模片上芯片互联方法,在具有网络互连结构的芯片片上网络结构设计中,针对目前片上网络结构中各节点对等连接在一起,无法适应节点本地化计算、数据本地化存储的实际需求的问题,采取如下步骤:
1)在对等节点位置,实例化一个本地子网,加上连接到本地子网的本地计算节点(IP),作为一个本地计算域;
2)同时,在相邻位置的本地计算域之间,通过本地子网的路由节点直接连接,构建片上网络结构的主网,以加快不同的本地计算域之间的通信效率。
[0006]所述的跨域直连大规模片上芯片互联方法,对等节点位置的每一个本地子网包含一个本地计算域资源(P)和与其相邻的路由器(R),每个本地计算域资源通过一个网络接口连接着一个主干路由器,这里的本地计算域资源为处理器核、存储器或者用户自定义的硬件模块,所述主干路由器与主网的相邻路由器(R)直接相连,同时与本地子网的四个子网路由器(router)相连。
[0007]所述的跨域直连大规模片上芯片互联方法,相邻位置的本地子网之间,通过本地子网的路由节点(router )直接连接,把相邻的不同计算域资源内的本地计算节点(IP)之间连接起来。
[0008]一种实现所述跨域直连大规模片上芯片互联结构的路由算法,由于在这种网络拓扑结构中,主网和子网的拓扑结构可以根据需要进行变化,因此,在这种网络拓扑结构中,传输的数据包在单一芯片内传输的数据包基础上增加了主网地址,对于片上芯片互联结构中的每一个本地计算域资源(P),当数据包从源地址发送出来时首先要判断它的目的地址是否在本芯片内,即是否在本子网内,如果是,则采用适合于子网的路由算法传递数据包;如果不在子网内,则首先要将数据包发送到与外部网络相连的路由器,而后在路由器中读取目的地址中的主网地址,根据主网的路由算法,将数据包发送到目的地址所对应的子网中;然后根据数据包中子网的目的地址,通过子网的路由算法将数据包发送到目的地址;
主网的路由算法沿用X-Y路由算法,子网路由算法使用添加了主网选路的X-Y路由算法。
[0009]所述的跨域直连大规模片上芯片互联结构的路由算法,子网中使用添加了主网选路的X-Y路由算法,把与外部路由器相连的路由器的坐标设为(0,0),并以此为中心节点对它周围的路由器的地址进行标注,当数据包进行传递时首先应判断目的地址的主网号是否与当前所在子网的主网号一致,如果一致,则使用不加修改的X-Y路由算法进行数据包的传递;如果不一致,则按照X-Y路由的方式选择最短路径到达(0,0)节点。
[0010]本发明的有益效果:
本发明跨域直连大规模片上芯片互联结构,针对目前片上网络结构中各节点对等连接在一起,不能适应节点本地化计算、数据本地化存储的实际需求的缺点,采取在对等节点位置,实例化一个本地子网,加上连接其上的本地计算节点IP,作为一个本地计算域;同时,相邻位置的本地计算域之间,通过本地子网的路由节点直接连接,加快了不同计算域之间的通信效率。
【专利附图】
【附图说明】
[0011]图1:本发明跨域直连大规模片上芯片互联结构主网互联结构图;
图2:本发明跨域直连大规模片上芯片互联结构子网网络结构图;
图3:片上芯片互联结构子网路由结构示意图;
图4:片上芯片互联结构主网路由结构示意图。
【具体实施方式】
[0012]实施例一:参见图1,本发明跨域直连大规模片上芯片互联方法,在具有网络互连结构的芯片片上网络结构设计中,针对目前片上网络结构中各节点对等连接在一起,无法适应节点本地化计算、数据本地化存储的实际需求的问题,
I)在对等节点位置,实例化一个本地子网,加上连接到本地子网的本地计算节点(IP),作为一个本地计算域;
2)同时,在相邻位置的本地计算域之间,通过本地子网的路由节点直接连接,构建片上网络结构的主网,以加快不同的本地计算域之间的通信效率。
[0013]实施例二:参见图1、图2,本实施例的跨域直连大规模片上芯片互联方法,与实施例相比,进一步的,对等节点位置的每一个本地子网包含一个本地计算域资源(P)和与其相邻的路由器(R),每个本地计算域资源通过一个网络接口连接着一个主干路由器,这里的本地计算域资源为处理器核、存储器或者用户自定义的硬件模块,所述主干路由器与主网的相邻路由器(R)直接相连,同时与本地子网的四个子网路由器(router)相连。
[0014]实施例三:本实施例以最简单的网络拓扑结构4*4的mesh网络为例,阐述本发明跨域直连大规模片上芯片互联结构的设计思想。网络中的每一个节点连接着一个资源和与其相邻的路由器。这里与其它片上网络结构不同的是每个资源不是通过一个网络接口(NI)连接着相应的路由器,这个路由器是直接嵌入在资源当中的,与资源中的内部路由器相连接的,这里我们为了方便观察将它画到外面来。这里所谓的资源,是具有网络互联结构的芯片。路由器与路由器之间是由一对输入和输出的通道连接。通道是由两条单向的点对点总线组成。
[0015]主网中的资源内部结构我们同样选用直接网络中最简单的网络拓扑结构4*4的mesh网络。芯片中每一个节点连接着一个资源和与其相邻的路由器,每个资源通过一个网络接口(NI)连接着一个路由器。这里的资源可以是一个处理器核,内存,一个用户自定义硬件模块或其它与NI接口匹配的IP核。与普通的4*4的mesh网络拓扑结构相比主要是多了一个中间路由器,这个路由器就是图1所示的主干路由器。它除了与片外的相邻路由器直接相连外,还与芯片内部中心的四个路由器相连。同样,路由器与路由器之间是由一对输入和输出的通道连接。通道是由两条单向的点对点总线组成。
[0016]本发明跨域直连大规模片上芯片互联方法,主网和子网的拓扑结构可以根据需要进行变化。相邻位置的本地子网之间,通过本地子网的路由节点(router)直接连接,把相邻的不同计算域资源内的本地计算节点(IP)之间连接起来。
[0017]实施例四:本实施例公开了一种实现前述跨域直连大规模片上芯片互联结构的路由算法,由于在这种网络拓扑结构中,主网和子网的拓扑结构可以根据需要进行变化,因此,在这种网络拓扑结构中,传输的数据包在单一芯片内传输的数据包基础上增加了主网地址,所述的路由算法是:
对于片上芯片互联结构中的每一个本地计算域资源(P),当数据包从源地址发送出来时首先要判断它的目的地址是否在本芯片内,即是否在本子网内,如果是,则采用适合于子网的路由算法传递数据包;
如果不在子网内,则首先将数据包发送到与外部网络相连的路由器,而后在路由器中读取目的地址中的主网地址,根据主网的路由算法,将数据包发送到目的地址所对应的子网中;然后根据数据包中子网的目的地址,通过子网的路由算法将数据包发送到目的地址;
主网的路由算法沿用X-Y路由算法,子网的路由算法使用添加了主网选路的X-Y路由算法。
[0018]实施例五:参见图3、图4。本实施例实现跨域直连大规模片上芯片互联结构的路由算法,在实施例四的基础上,进一步详细给出了对应的主网路由算和子网路由算法。
[0019]在子网中我们使用添加了主网选路的X-Y路由算法,且路由器的XY坐标如图3所示。我们把与外部路由器相连的路由器的坐标设为(0,0),并以此为中心节点对它周围的路由器的地址进行标注。当数据包进行传递时首先应判断目的地址的主网号是否与当前所在子网的主网号一致。如果一致,则使用不加修改的X-Y路由算法进行数据包的传递。如果不一致,则按照X-Y路由的方式选择最短路径到达(0,O)节点。
[0020]具体举例来说,发送的数据包的源地址为{(1,0), (-2,1)},目的地址为{ (3,3),(2,-2)},其中(1,0)和(3,3)是主网地址,(_2,1)和(2,_2)是子网地址。首先根据目的主网号(3,3)可知目的地址不在当前的子网(1,0)中,所以要通过子网路由算法将数据包传输到连接主网的路由器,如图3所示:在子网中的路由为(_2,1) —> (-1,1) —> (-1,O) —> (0,0)o (0,0)为连接主网的路由器,它在主网的地址为(1,0)。
[0021]将数据包传输到主网中后,根据主网的X-Y路由算法将包送到主网目的地(3,3),如图4所示。
[0022]在主网中的路由为(1,0)—> (2,0) —> (3,0) —> (3,1) —> (3,2) —> (3,
3)。(3,3)对应的路由器在子网中的地址为(0,0)。
[0023]当数据包进入到目的主网(3,3)中后,按照主网的路由算法将数据包传输到目的地址(2,-2)中。
[0024]如图3 所不(O,O) —〉(I, -1) —〉(2, -1) —〉(2, _2),这样就完成了一次数据包从源地址为{(1,0), (-2,I)}到目的地址为{ (3,3),(2,-2)}的传递。
【权利要求】
1.一种跨域直连大规模片上芯片互联方法,在具有网络互连结构的芯片片上网络结构设计中,针对目前片上网络结构中各节点对等连接在一起,无法适应节点本地化计算、数据本地化存储的实际需求的问题,采取如下步骤: 1)在对等节点位置,实例化一个本地子网,加上连接到本地子网的本地计算节点,作为一个本地计算域; 2)同时,在相邻位置的本地计算域之间,通过本地子网的路由节点直接连接,构建片上网络结构的主网,以加快不同的本地计算域之间的通信效率。
2.根据权利要求1所述的跨域直连大规模片上芯片互联方法,其特征是:对等节点位置的每一个本地子网包含一个本地计算域资源和与其相邻的路由器,每个本地计算域资源通过一个网络接口连接着一个主干路由器,这里的本地计算域资源为处理器核、存储器或者用户自定义的硬件模块,所述主干路由器与主网的相邻路由器直接相连,同时与本地子网的四个子网路由器相连。
3.根据权利要求2所述的跨域直连大规模片上芯片互联方法,其特征是:相邻位置的本地子网之间,通过本地子网的路由节点直接连接,把相邻的不同计算域资源内的本地计算节点之间连接起来。
4.一种实现权利要求1所述跨域直连大规模片上芯片互联结构的路由算法,由于在这种网络拓扑结构中,主网和子网的拓扑结构可以根据需要进行变化,因此,在这种网络拓扑结构中,传输的数据包在单一芯片内传输的数据包基础上增加了主网地址,所述的路由算法,其特征是: 对于片上芯片互联结构中的每一个本地计算域资源,当数据包从源地址发送出来时首先要判断它的目的地址是否在本芯片内,即是否在本子网内,如果是,则采用适合于子网的路由算法传递数据包; 如果不在子网内,则首先要将数据包发送到与外部网络相连的路由器,而后在路由器中读取目的地址中的主网地址,根据主网的路由算法,将数据包发送到目的地址所对应的子网中;然后根据数据包中子网的目的地址,通过子网的路由算法将数据包发送到目的地址; 主网的路由算法沿用X-Y路由算法,子网的路由算法使用添加了主网选路的X-Y路由算法。
5.根据权利要求4所述的跨域直连大规模片上芯片互联结构的路由算法,其特征是:子网中使用添加了主网选路的X-Y路由算法,把与外部路由器相连的路由器的坐标设为(0,0),并以此为中心节点对它周围的路由器的地址进行标注,当数据包进行传递时首先应判断目的地址的主网号是否与当前所在子网的主网号一致,如果一致,则使用不加修改的X-Y路由算法进行数据包的传递;如果不一致,则按照X-Y路由的方式选择最短路径到达(0,0)节点。
【文档编号】H04L12/931GK104052663SQ201310080008
【公开日】2014年9月17日 申请日期:2013年3月14日 优先权日:2013年3月14日
【发明者】韩国栋, 张兴明, 张效军, 刘勤让, 张帆, 贺涛, 沈剑良, 曾威, 朱珂 申请人:中国人民解放军信息工程大学