CN107046500B - 一种应用于层次化片上网络的两级拆分路由器及其路由算法 - Google Patents
一种应用于层次化片上网络的两级拆分路由器及其路由算法 Download PDFInfo
- Publication number
- CN107046500B CN107046500B CN201710359177.4A CN201710359177A CN107046500B CN 107046500 B CN107046500 B CN 107046500B CN 201710359177 A CN201710359177 A CN 201710359177A CN 107046500 B CN107046500 B CN 107046500B
- Authority
- CN
- China
- Prior art keywords
- microplate
- transmission direction
- current
- routing node
- port
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/04—Interdomain routing, e.g. hierarchical routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/16—Multipoint routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种应用于层次化片上网络的两级拆分路由器及其路由算法,其特征是,两级拆分路由器是将路由器的译码模块设置为多播路由计算模块;多播路由计算模块包括分类译码单元YM、单播数据包路由计算单元SR、多播上行数据包路由计算单元UR、多播下行数据包路由计算单元DR和输出端口寄存单元。本发明能对混合多播路由算法作一定的优化改善,对多播数据包中的数据通过两级拆分的方法进行有选择的拆分传输,以期降低多播数据包的延迟,同时优化上层网络的拥塞状况。
Description
技术领域
本发明属于集成电路片上网络的通信技术领域,尤其涉及一种应用于层次化片上网络的两级拆分路由器及其路由算法。
背景技术
随着片上网络上核数的不断增加,多核之间的并行通信使得片上网络通信关系变得相当复杂。传统的片上网络设计只考虑一个源节点向一个目的节点的单播通信模式。在片上网络上实现单个源节点向多个目的节点的多播通信成为一项越来越重要的通信需求。
目前有很多种多播路由算法,其中,基于层次化网络结构的混合多播路由算法,算法采用两层网络结构,将底层网络分成不同的区域。上层网络的每个路由器相当于底层区域中间路由器的桥接路由器。单播数据包只在底层网络传输。多播数据包先传输到上层网络,从上层网络再传播到各个目的节点所在的不同区域,然后到达目的节点。
但是该算法为了避免一份死锁情况,规定一个区域内的所有多播数据包都必须从上层路由器进入该区域,即使是一个源节点对自身区域的其他节点或相邻的节点进行多播传输也必须通过该区域的上层路由器进入该区域,这会大大增加数据包的延迟。
发明内容
本发明为了解决上述现有技术存在的不足之处,提出一种应用于层次化片上网络的两级拆分路由器及其路由算法,以期能将数据包直接传输到位于向上传输路径上的目的节点或者向上传输路径的相邻位置的目的节点,从而能有效提高传输效率,并降低延迟。
本发明为达到上述目的所采用的技术方案是:
本发明一种应用于层次化片上网络的两级拆分路由器,所述层次化片上网络是由N×M的底层二维网络和L×S的上层网络构成;1≤L<N,1≤S<M;所述底层二维网络分为L×S个区;每个区内包含一个中间路由器和若干个普通路由器;所述普通路由器包含五个传输方向;所述中间路由器包含五个传输方向和一个向上传输方向;所述上层网络均为传输路由器;所述传输路由器包含五个传输方向和一个向下传输方向;所述中间路由器与所述传输路由器互相连接;其特点是,
将所述中间路由器和若干个普通路由器中的译码模块设置为多播路由计算模块;所述多播路由计算模块包括分类译码单元YM、单播数据包路由计算单元SR、多播上行数据包路由计算单元UR、多播下行数据包路由计算单元DR和输出端口寄存单元;多播上行数据包路由计算单元UR包括:两级拆分单元TS和普通上行路由计算单元RC;所述输出端口寄存单元包括:m位的传输方向寄存器port_1[m-1:0]和m位全方向寄存器port_2[m-1:0];m为传输方向的个数;所述传输方向寄存器port_1[m-1:0]用于存储当前头微片的传输方向;所述全方向寄存器port_2[m-1:0]用于存储所有头微片的传输方向;
任意一个区内的中间路由器或普通路由器作为当前路由节点并通过自身的输入模块接收到数据包时,当前路由节点的输入模块向自身的多播路由计算模块发送所述数据包中的微片;
当前路由节点的分类译码单元YM对所接收到的当前微片进行判断,若所接收到的当前微片为头微片,则分类译码单元YM对所述头微片再进行判断;
若所述头微片为多播数据包的头微片;则对所述多播数据包的头微片的传输方向进行判断,若为向上传输方向,则将所述多播数据包的头微片发送至多播上行数据包路由计算单元UR用于计算传输方向;若为向下传输方向,则将所述多播数据包的头微片发送至多播下行数据包路由计算单元DR用于计算传输方向;
若所述头微片为单播数据包的头微片;则将单播数据包的头微片发送至单播数据包路由计算单元SR用于计算传输方向;
若所接收到的当前微片为体微片,则所述输出端口寄存单元将所有头微片的传输方向从全方向寄存器port_2[m-1:0]复制到传输方向寄存器port_1[m-1:0]中,当前路由节点的输入模块根据输出端口寄存单元中传输方向寄存器port_1[m-1:0]的传输方向将体微片传输至下游路由节点;
若所接收到的当前微片为尾微片,则所述输出端口寄存单元将所有头微片的传输方向从全方向寄存器port_2[m-1:0]复制到传输方向寄存器port_1[m-1:0]中,当前路由节点的输入模块根据输出端口寄存单元中传输方向寄存器port_1[m-1:0]的传输方向将尾微片传输至下游路由节点;然后,当前路由节点的分类译码单元YM向所述输出端口寄存单元发送数据包传输结束信号;所述输出端口寄存单元根据所接收到的数据包传输结束信号,将当前路由节点的输出端口寄存单元清零;
所述多播上行数据包路由计算单元UR的两级拆分单元TS根据所接收到的多播数据包的头微片,将所述当前路由节点的自身坐标与目的节点的坐标进行比较,
若两个坐标相同,则表示当前路由节点即为目的节点,得到传输方向为本地方向并保存至所述输出端口寄存单元中;
若两个坐标相邻,则表示当前路由节点与目的节点为相邻节点,得到传输方向为相邻方向,所述两级拆分单元TS再判断当前路由节点的输出端口是否空闲,若空闲,则将相邻方向保存至所述输出端口寄存单元中;若不空闲,则不保存相邻方向,并将所述多播数据包的头微片传输至普通上行路由计算单元RC;
若两个坐标不相邻也不相同,则直接将所述多播数据包的头微片传输至普通上行路由计算单元RC;所述普通上行路由计算单元RC根据当前路由节点所在区的中间路由器坐标,计算出多播数据包头微片下游的传输方向,并保存至当前路由节点的输出端口寄存单元;
所述多播下行数据包路由计算单元DR根据所接收到的多播数据包的头微片,利用XY路由算法计算出多播数据包头微片下游的传输方向,并保存至当前路由节点的输出端口寄存单元;
单播数据包路由计算单元SR根据所接收到的单播数据包的头微片,利用XY路由算法计算出单播数据包头微片下游的传输方向,并保存至当前路由节点的输出端口寄存单元;
所述全方向寄存器port_2[m-1:0]接收到当前微片的输入方向时,判断当前微片的传输方向是否已经存在,若已经存在,则当前路由节点的多播路由计算模块将重仲裁请求信号发送至自身的仲裁模块,用于打开交叉开关模块相应的输出端口,否则,直接存储当前微片的输入方向。
本发明一种应用于层次化片上网络的两级拆分路由器的路由算法,所述层次化片上网络是由N×M的底层二维网络和L×S的上层网络构成;1≤L<N,1≤S<M;所述底层二维网络分为L×S个区;每个区内包含一个中间路由器和若干个普通路由器;所述普通路由器包含五个传输方向;所述中间路由器包含五个传输方向和一个向上传输方向;所述上层网络均为传输路由器;所述传输路由器包含五个传输方向和一个向下传输方向;所述中间路由器与所述传输路由器互相连接;其特点是,以任意一个区内的中间路由器或普通路由器作为当前路由节点并通过自身的输入模块接收到数据包时,所述路由算法是按如下步骤进行:
步骤1、设置所述中间路由器和若干个普通路由器均包括:m位的传输方向寄存器port_1[m-1:0]和m位全方向寄存器port_2[m-1:0];m为传输方向的个数;所述传输方向寄存器port_1[m-1:0]用于存储当前头微片的传输方向;所述全方向寄存器port_2[m-1:0]用于存储所有头微片的传输方向;
步骤2、当前路由节点对所接收到的数据包中的当前微片进行判断,若所接收到的当前微片为头微片,则执行步骤3;若所接收到的当前微片为体微片,则执行步骤8;若所接收到的当前微片为尾微片,则执行步骤9;
步骤3、当前路由节点对所述头微片再进行判断;若所述头微片为多播数据包的头微片;则执行步骤4;若所述头微片为单播数据包的头微片;则直接利用XY路由算法计算出单播数据包头微片下游的传输方向并保存至传输方向寄存器port_1[m-1:0]和全方向寄存器port_2[m-1:0]中;再执行步骤10;
步骤4、当前路由节点对所述多播数据包的头微片的传输方向进行判断,若为向上传输方向,则执行步骤5;若为向下传输方向,则执行步骤7;
步骤5、当前路由节点根据所接收到的多播数据包的头微片,将所述当前路由节点的自身坐标与目的节点的坐标进行比较,若两个坐标相同,则表示当前路由节点即为目的节点,得到传输方向为本地方向并保存至传输方向寄存器port_1[m-1:0]和全方向寄存器port_2[m-1:0]中;再执行步骤10;
若两个坐标相邻,则表示当前路由节点与目的节点为相邻节点,得到传输方向为相邻方向,并判断当前路由节点的输出端口是否空闲,若空闲,则保存相邻方向至传输方向寄存器port_1[m-1:0]和全方向寄存器port_2[m-1:0]中,再执行步骤10;否则执行步骤6;若两个坐标不相邻也不相同,则直接执行步骤6;
步骤6、当前路由节点根据自身所在区的中间路由器坐标,计算出多播数据包头微片下游的传输方向并保存至传输方向寄存器port_1[m-1:0]和全方向寄存器port_2[m-1:0]中;再执行步骤10;
步骤7、当前路由节点根据所接收到的多播数据包的头微片,利用XY路由算法计算出多播数据包头微片下游的传输方向并保存至传输方向寄存器port_1[m-1:0]和全方向寄存器port_2[m-1:0]中;再执行步骤10;
步骤8、当前路由节点将所有头微片的传输方向从全方向寄存器复制到传输方向寄存器port_1[m-1:0]中,从而根据传输方向寄存器port_1[m-1:0]中的传输方向将体微片传输至下游路由节点;再返回步骤2;
步骤9、当前路由节点将所有头微片的传输方向从全方向寄存器port_2[m-1:0]复制到传输方向寄存器port_1[m-1:0]中,从而根据传输方向寄存器port_1[m-1:0]中的传输方向将尾微片传输至下游路由节点;当尾微片传输结束时,当前路由节点将传输方向寄存器port_1[m-1:0]和全方向寄存器port_2[m-1:0]清零,再返回步骤2;
步骤10、所述全方向寄存器port_2[m-1:0]接收到当前微片的输入方向时,判断当前微片的传输方向是否已经存在,若已经存在,则当前路由节点的将重仲裁请求信号发送至自身的仲裁模块,用于打开交叉开关模块相应的输出端口,否则,直接存储当前微片的输入方向;
步骤11、返回步骤2。
与现有技术相比,本发明的有益技术效果体现在:
1、本发明通过将底层路由网络分区,每一个区域都有一个中间路由器与上层的传输路由器相连接,通过传输路由器连接每个区域,从而实现区域与区域的传输;通过改变普通路由器译码模块为多播路由计算模块,根据头微片信息将数据包传输分成了单播数据包传输,多播上行数据包传输和多播下行数据包传输;单播数据包传输,多播下行数据包传输都是通过XY路由算法直接进行传输,而将多播上行数据包传输根据目的节点是否是当前节点,当前节点相邻节点,以及两者都不符合的节点进行分类,从而将多播上行数据包传输分成三种情况;对于目的节点是当前节点的情况进行直接拆分,因为这种方式不会产生死锁问题,所以即使输出通道被占用也可以等待输出通道空闲在进行传输,这就大大提高了传输效率,而且也不会影响数据包向其他方向的传输;当目的节点为当前节点相邻节点,为了避免死锁问题,如果输出通道被占用,则直接向中间路由传输,如有输出通道空闲,则可以直接传输至相邻节点,由于没有增加新的死锁问题,这就不会增加算法硬件实现的复杂度,而且也不会产生拥塞问题;当目的节点不满足以上两种情况,则将数据包传输至中间路由器,通过上层传输路由器传输至目的节点所在区域,通过多播下行数据包传输算法传输至目的节点;从而解决了混合多播路由算法中必须经由上层传输路由器才能传输至目的节点的问题,通过两级拆分路由算法实现了数据包可以向目的节点在当前节点及其相邻节点位置上进行传输;进而大大提高了传输效率,降低了拥塞和延迟。
2、本发明为了能够将多播方向信息能够全部采集,通过两种寄存器进行保存,一种传输方向寄存器来保存当前微片传输方向;而为了保存多个头微片方向信息,采用全方向寄存器,同时传输体微片和尾微片时将方向信息传输至传输方向寄存器;这就将当前传输方向与多播所有传输方向区别开来;同时为了避免相同传输方向的多次仲裁,通过设置重仲裁请求信号直接打开交叉开关,从而了降低仲裁时间和复杂度,也减少了仲裁器工作时间,降低了延时,同时降低了路由器功耗。
3、本发明通过两级拆分路由算法对多播上行数据包进行再底层网络有选择的传输,通过对当前多播数据包的目的节点是否是当前节点,当前节点相邻节点,以及两者都不符合的节点进行分类,从而增加了数据包在底层网络传输至目的节点的过程,大大减少了数据包向上层的传输路由器的过程,大大降低了上层网络的拥塞情况,降低延迟。
4、本发明为了不增加新的死锁问题,将二级拆分模块判断目的节点在当前节点相邻位置时,根据输出通道是否空闲决定数据包是否拆分至相邻节点,而且避免了网络拥塞情况,降低了延时。
5、本发明通过判断向上传输方向的数据包目的节点的位置,将数据包传输分成三种情况,分别为当前节点是目的节点的情况,以及当前节点相邻节点是目的节点的情况,和其他情况;改变了基于层次化网络结构的混合多播路由算法只能从上层传输路由传输到目的节点的局限性,从而大大提升了传输效率,降低了延时。
附图说明
图1为现有技术中底层6×6,上层2×2规模的层次化网络结构图;
图2为本发明多播路由计算模块电路结构图;
图3为本发明两个目的节点在其上行路径上;
图4为本发明一个目的节点在其上行路径的相邻节点;
图5为本发明两个目的节点在其上行路径的相邻节点;
图6为本发明三个目的节点在其上行路径的相邻节点;
图7为本发明四个目的节点在其上行路径的相邻节点;
图8为本发明上行路径上不同目的节点数的延迟对比图;
图9为本发明不同可拆分相邻目的节点数的延迟对比图。
具体实施方式
本实施例中,数据包的格式如表1所示,每个多播数据包头微片包含虚通道号标志、微片类型标志、数据包类型标志、目的节点编号、源节点编号、数据包当前传输路径、目的节点所在区域的上层节点编号、上层网络传输方向;
表1网络数据包格式
采用的层次化片上网络结构是由6×6的底层二维网络和2×2的上层网络所构成的双层片上网络,如图1所示;底层二维网络分为4个区;每个区内包含一个中间路由器和若干个普通路由器;普通路由器包含五个传输方向;中间路由器包含五个传输方向和一个向上传输方向;上层网络均为传输路由器;传输路由器包含五个传输方向和一个向下传输方向;中间路由器与传输路由器互相连接。
本实施例中,将中间路由器和若干个普通路由器中的译码模块设置为多播路由计算模块;如图2所示,多播路由计算模块包括分类译码单元YM、单播数据包路由计算单元SR、多播上行数据包路由计算单元UR、多播下行数据包路由计算单元DR和输出端口寄存单元;多播上行数据包路由计算单元UR包括:两级拆分单元TS和普通上行路由计算单元RC;普通路由器输出端口寄存单元包括:5位的传输方向寄存器port_1[4:0]和5位全方向寄存器port_2[4:0];中间路由器输出端口寄存单元包括:6位的传输方向寄存器port_1[5:0]和6位全方向寄存器port_2[5:0];普通路由器与中间路由器的传输方向寄存器统一表示为传输方向寄存器port_1,全方向寄存器统一表示为全方向寄存器port_2;传输方向寄存器port_1用于存储当前头微片的传输方向;全方向寄存器port_2用于存储所有头微片的传输方向,全方向寄存器port_2中一位代表一个传输方向;
任意一个区内的中间路由器或普通路由器作为当前路由节点并通过自身的输入模块接收到数据包时,当前路由节点的输入模块向自身的多播路由计算模块发送数据包中的微片data_in[38:0];
当前路由节点的分类译码单元YM对所接收到的当前微片data_in[38:0]进行判断,判断微片data_in[36:35]微片类型标志是否为2’b01,若是,则当前微片为头微片,若是2’b11,则当前微片为体微片,若是2’b10,则当前微片为尾微片;若所接收到的当前微片为头微片,则分类译码单元YM对头微片再进行判断,判断头微片data_in[34]数据包类型标志是否为1’b1,若是,则头微片为多播数据包头微片,若不是,则是单播数据包头微片。
若头微片为多播数据包的头微片,则对多播数据包的头微片的传输方向进行判断,判断头微片data_in[32]数据包当前传输路径是否为向上传输路径1’b1,若是,当前传输路径为向上传输路径,若不是,当前传输路径为向下传输路径;若为向上传输方向,则将多播数据包的头微片发送至多播上行数据包路由计算单元UR用于计算传输方向;若为向下传输方向,则将多播数据包的头微片发送至多播下行数据包路由计算单元DR用于计算传输方向;
若头微片为单播数据包的头微片;则将单播数据包的头微片发送至单播数据包路由计算单元SR用于计算传输方向;
若所接收到的当前微片为体微片,则输出端口寄存单元将所有头微片的传输方向从全方向寄存器port_2复制到传输方向寄存器port_1中,当前路由节点的输入模块根据输出端口寄存单元中传输方向寄存器port_1的传输方向将体微片传输至下游路由节点;
若所接收到的当前微片为尾微片,则输出端口寄存单元将所有头微片的传输方向从全方向寄存器port_2复制到传输方向寄存器port_1中,当前路由节点的输入模块根据输出端口寄存单元中传输方向寄存器port_1的传输方向将尾微片传输至下游路由节点;然后,当前路由节点的分类译码单元YM向输出端口寄存单元发送数据包传输结束信号;输出端口寄存单元根据所接收到的数据包传输结束信号,将当前路由节点的输出端口寄存单元清零;
多播上行数据包路由计算单元UR的两级拆分单元TS根据所接收到的多播数据包的头微片,将当前路由节点的自身坐标与目的节点的坐标data_in[23:8]进行比较,
若两个坐标相同,则表示当前路由节点即为目的节点,得到传输方向为本地方向并保存至输出端口寄存单元中;
若两个坐标相邻,则表示当前路由节点与目的节点为相邻节点,得到传输方向为相邻方向,两级拆分单元TS再判断当前路由节点的输出端口是否空闲,若空闲,则将相邻方向保存至输出端口寄存单元中;若不空闲,则不保存相邻方向,并将多播数据包的头微片传输至普通上行路由计算单元RC;
若两个坐标不相邻也不相同,则直接将多播数据包的头微片传输至普通上行路由计算单元RC;普通上行路由计算单元RC根据当前路由节点所在区的中间路由器坐标,计算出多播数据包头微片下游的传输方向,并保存至当前路由节点的输出端口寄存单元;
多播下行数据包路由计算单元DR根据所接收到的多播数据包的头微片,利用XY路由算法计算出多播数据包头微片下游的传输方向,并保存至当前路由节点的输出端口寄存单元;
单播数据包路由计算单元SR根据所接收到的单播数据包的头微片,利用XY路由算法计算出单播数据包头微片下游的传输方向,并保存至当前路由节点的输出端口寄存单元;
全方向寄存器port_2接收到当前微片的输入方向时,判断当前微片的传输方向是否已经存在,若已经存在,则当前路由节点的多播路由计算模块将重仲裁请求信号发送至自身的仲裁模块,用于打开交叉开关模块相应的输出端口,否则,直接存储当前微片的输入方向。
本实施例中,一种应用于层次化片上网络的两级拆分路由器的路由算法,层次化片上网络是由6×6的底层二维网络和2×2的上层网络构成;底层二维网络分为4个区;每个区内包含一个中间路由器和若干个普通路由器;普通路由器包含五个传输方向;中间路由器包含五个传输方向和一个向上传输方向;上层网络均为传输路由器;传输路由器包含五个传输方向和一个向下传输方向;中间路由器与传输路由器互相连接;以任意一个区内的中间路由器或普通路由器作为当前路由节点并通过自身的输入模块接收到数据包时,路由算法是按如下步骤进行:
步骤1、设置中间路由器和若干个普通路由器均包括:5位的传输方向寄存器port_1[4:0]和5位全方向寄存器port_2[4:0];中间路由器输出端口寄存单元包括:6位的传输方向寄存器port_1[5:0]和6位全方向寄存器port_2[5:0];普通路由器与中间路由器的传输方向寄存器统一表示为传输方向寄存器port_1,全方向寄存器统一表示为全方向寄存器port_2;传输方向寄存器port_1用于存储当前头微片的传输方向;全方向寄存器port_2用于存储所有头微片的传输方向,全方向寄存器port_2中一位代表一个传输方向;
步骤2、当前路由节点对所接收到的数据包中的当前微片进行判断,若所接收到的当前微片为头微片,则执行步骤3;若所接收到的当前微片为体微片,则执行步骤8;若所接收到的当前微片为尾微片,则执行步骤9;
步骤3、当前路由节点对头微片再进行判断;若头微片为多播数据包的头微片;则执行步骤4;若头微片为单播数据包的头微片;则直接利用XY路由算法计算出单播数据包头微片下游的传输方向并保存至传输方向寄存器port_1和全方向寄存器port_2中;再执行步骤10;
步骤4、当前路由节点对多播数据包的头微片的传输方向进行判断,若为向上传输方向,则执行步骤5;若为向下传输方向,则执行步骤7;
步骤5、当前路由节点根据所接收到的多播数据包的头微片,将当前路由节点的自身坐标与目的节点的坐标进行比较,若两个坐标相同,则表示当前路由节点即为目的节点,得到传输方向为本地方向并保存至传输方向寄存器port_1和全方向寄存器port_2中;再执行步骤10;
若两个坐标相邻,则表示当前路由节点与目的节点为相邻节点,得到传输方向为相邻方向,并判断当前路由节点的输出端口是否空闲,若空闲,则保存相邻方向至传输方向寄存器port_1和全方向寄存器port_2中,再执行步骤10;否则执行步骤6;若两个坐标不相邻也不相同,则直接执行步骤6;
步骤6、当前路由节点根据自身所在区的中间路由器坐标,计算出多播数据包头微片下游的传输方向并保存至传输方向寄存器port_1和全方向寄存器port_2中;再执行步骤10;
步骤7、当前路由节点根据所接收到的多播数据包的头微片,利用XY路由算法计算出多播数据包头微片下游的传输方向并保存至传输方向寄存器port_1和全方向寄存器port_2中;再执行步骤10;
步骤8、当前路由节点将所有头微片的传输方向从全方向寄存器port_2复制到传输方向寄存器port_1中,从而根据传输方向寄存器port_1中的传输方向将体微片传输至下游路由节点;再返回步骤2;
步骤9、当前路由节点将所有头微片的传输方向从全方向寄存器port_2复制到传输方向寄存器port_1中,从而根据传输方向寄存器port_1中的传输方向将尾微片传输至下游路由节点;当尾微片传输结束时,当前路由节点将传输方向寄存器port_1和全方向寄存器port_2清零,再返回步骤2;
步骤10、port_2全方向寄存器接收到当前微片的输入方向时,判断当前微片的传输方向是否已经存在,若已经存在,则当前路由节点的将重仲裁请求信号发送至自身的仲裁模块,用于打开交叉开关模块相应的输出端口,否则,直接存储当前微片的输入方向;
步骤11、返回步骤2。
具体实施中,改变多播上行路径上可拆分的目的节点数。对于底层6×6的网络,按照每3×3分成一个区域那么多播数据包在上行路径上最多有两个可拆分的目的节点。实验以(1,1)为源节点,目的节点分别是(2,1)、(2,2)和(2,4),如图3所示。数据包由三个头微片、三个体微片和一个尾微片组成,从源节点向目的节点发送一个数据包。不同情况下数据包的延迟结果如图8所示。
当可拆分节点只有一个时,数据包的平均延迟降低了15.9%;当可拆分节点有两个时,数据包的平均延迟降低了22%。由此可以看出,路径上拆分传输的目的节点越多,相比于不拆分传输,数据包的到达延迟降低的越多。
在相同的网络条件下,可拆分的路径相邻目的节点数分别设为1、2、3、4。
相邻可拆分节点数为1:实验设定源节点为(3,4),目的节点为(2,2),(3,3),(2,6)和(2,1),一个数据包含有四个头微片、三个体微片和一个尾微片,如图4所示。
相邻可拆分节点数为2:实验设定源节点为(3,4),目的节点为(2,2),(3,3),(4,4)和(2,1),一个数据包含有四个头微片、三个体微片和一个尾微片,如图5所示。
相邻可拆分节点数为3:实验设定源节点为(3,4),目的节点为(2,2),(3,3),(4,4)和(3,5),一个数据包含有四个头微片、三个体微片和一个尾微片,如图6所示。
相邻可拆分节点数为4:实验设定源节点为(3,4),目的节点为(2,3),(3,3),(4,4)和(3,5),一个数据包含有四个头微片、三个体微片和一个尾微片,如图7所示。
基于上述设定的实验条件,得出的延迟结果如图9所示。可拆分的相邻节点数从1个增加到4个所对应的延迟降低结果分别是22.7%、31.5%、41.4%和50.3%。可以得出,可拆分的相邻节点数越多,数据包的平均延迟优化越大。
Claims (2)
1.一种应用于层次化片上网络的两级拆分路由器,所述层次化片上网络是由N×M的底层二维网络和L×S的上层网络构成;1≤L<N,1≤S<M;所述底层二维网络分为L×S个区;每个区内包含一个中间路由器和若干个普通路由器;所述普通路由器包含五个传输方向;所述中间路由器包含五个传输方向和一个向上传输方向;所述上层网络均为传输路由器;所述传输路由器包含五个传输方向和一个向下传输方向;所述中间路由器与所述传输路由器互相连接;其特征是,
将所述中间路由器和若干个普通路由器中的译码模块设置为多播路由计算模块;所述多播路由计算模块包括分类译码单元YM、单播数据包路由计算单元SR、多播上行数据包路由计算单元UR、多播下行数据包路由计算单元DR和输出端口寄存单元;多播上行数据包路由计算单元UR包括:两级拆分单元TS和普通上行路由计算单元RC;所述输出端口寄存单元包括:m位的传输方向寄存器port_1[m-1:0]和m位全方向寄存器port_2[m-1:0];m为传输方向的个数;所述传输方向寄存器port_1[m-1:0]用于存储当前头微片的传输方向;所述全方向寄存器port_2[m-1:0]用于存储所有头微片的传输方向;
任意一个区内的中间路由器或普通路由器作为当前路由节点并通过自身的输入模块接收到数据包时,当前路由节点的输入模块向自身的多播路由计算模块发送所述数据包中的微片;
当前路由节点的分类译码单元YM对所接收到的当前微片进行判断,若所接收到的当前微片为头微片,则分类译码单元YM对所述头微片再进行判断;
若所述头微片为多播数据包的头微片;则对所述多播数据包的头微片的传输方向进行判断,若为向上传输方向,则将所述多播数据包的头微片发送至多播上行数据包路由计算单元UR用于计算传输方向;若为向下传输方向,则将所述多播数据包的头微片发送至多播下行数据包路由计算单元DR用于计算传输方向;
若所述头微片为单播数据包的头微片;则将单播数据包的头微片发送至单播数据包路由计算单元SR用于计算传输方向;
若所接收到的当前微片为体微片,则所述输出端口寄存单元将所有头微片的传输方向从全方向寄存器port_2[m-1:0]复制到传输方向寄存器port_1[m-1:0]中,当前路由节点的输入模块根据输出端口寄存单元中传输方向寄存器port_1[m-1:0]的传输方向将体微片传输至下游路由节点;
若所接收到的当前微片为尾微片,则所述输出端口寄存单元将所有头微片的传输方向从全方向寄存器port_2[m-1:0]复制到传输方向寄存器port_1[m-1:0]中,当前路由节点的输入模块根据输出端口寄存单元中传输方向寄存器port_1[m-1:0]的传输方向将尾微片传输至下游路由节点;然后,当前路由节点的分类译码单元YM向所述输出端口寄存单元发送数据包传输结束信号;所述输出端口寄存单元根据所接收到的数据包传输结束信号,将当前路由节点的输出端口寄存单元清零;
所述多播上行数据包路由计算单元UR的两级拆分单元TS根据所接收到的多播数据包的头微片,将所述当前路由节点的自身坐标与目的节点的坐标进行比较,
若两个坐标相同,则表示当前路由节点即为目的节点,得到传输方向为本地方向并保存至所述输出端口寄存单元中;
若两个坐标相邻,则表示当前路由节点与目的节点为相邻节点,得到传输方向为相邻方向,所述两级拆分单元TS再判断当前路由节点的输出端口是否空闲,若空闲,则将相邻方向保存至所述输出端口寄存单元中;若不空闲,则不保存相邻方向,并将所述多播数据包的头微片传输至普通上行路由计算单元RC;
若两个坐标不相邻也不相同,则直接将所述多播数据包的头微片传输至普通上行路由计算单元RC;所述普通上行路由计算单元RC根据当前路由节点所在区的中间路由器坐标,计算出多播数据包头微片下游的传输方向,并保存至当前路由节点的输出端口寄存单元;
所述多播下行数据包路由计算单元DR根据所接收到的多播数据包的头微片,利用XY路由算法计算出多播数据包头微片下游的传输方向,并保存至当前路由节点的输出端口寄存单元;
单播数据包路由计算单元SR根据所接收到的单播数据包的头微片,利用XY路由算法计算出单播数据包头微片下游的传输方向,并保存至当前路由节点的输出端口寄存单元;
所述全方向寄存器port_2[m-1:0]接收到当前微片的输入方向时,判断当前微片的传输方向是否已经存在,若已经存在,则当前路由节点的多播路由计算模块将重仲裁请求信号发送至自身的仲裁模块,用于打开交叉开关模块相应的输出端口,否则,直接存储当前微片的输入方向。
2.一种应用于层次化片上网络的两级拆分路由器的路由方法,所述层次化片上网络是由N×M的底层二维网络和L×S的上层网络构成;1≤L<N,1≤S<M;所述底层二维网络分为L×S个区;每个区内包含一个中间路由器和若干个普通路由器;所述普通路由器包含五个传输方向;所述中间路由器包含五个传输方向和一个向上传输方向;所述上层网络均为传输路由器;所述传输路由器包含五个传输方向和一个向下传输方向;所述中间路由器与所述传输路由器互相连接;其特征是,以任意一个区内的中间路由器或普通路由器作为当前路由节点并通过自身的输入模块接收到数据包时,所述路由方法是按如下步骤进行:
步骤1、设置所述中间路由器和若干个普通路由器均包括:m位的传输方向寄存器port_1[m-1:0]和m位全方向寄存器port_2[m-1:0];m为传输方向的个数;所述传输方向寄存器port_1[m-1:0]用于存储当前头微片的传输方向;所述全方向寄存器port_2[m-1:0]用于存储所有头微片的传输方向;
步骤2、当前路由节点对所接收到的数据包中的当前微片进行判断,若所接收到的当前微片为头微片,则执行步骤3;若所接收到的当前微片为体微片,则执行步骤8;若所接收到的当前微片为尾微片,则执行步骤9;
步骤3、当前路由节点对所述头微片再进行判断;若所述头微片为多播数据包的头微片;则执行步骤4;若所述头微片为单播数据包的头微片;则直接利用XY路由算法计算出单播数据包头微片下游的传输方向并保存至传输方向寄存器port_1[m-1:0]和全方向寄存器port_2[m-1:0]中;再执行步骤10;
步骤4、当前路由节点对所述多播数据包的头微片的传输方向进行判断,若为向上传输方向,则执行步骤5;若为向下传输方向,则执行步骤7;
步骤5、当前路由节点根据所接收到的多播数据包的头微片,将所述当前路由节点的自身坐标与目的节点的坐标进行比较,若两个坐标相同,则表示当前路由节点即为目的节点,得到传输方向为本地方向并保存至传输方向寄存器port_1[m-1:0]和全方向寄存器port_2[m-1:0]中;再执行步骤10;
若两个坐标相邻,则表示当前路由节点与目的节点为相邻节点,得到传输方向为相邻方向,并判断当前路由节点的输出端口是否空闲,若空闲,则保存相邻方向至传输方向寄存器port_1[m-1:0]和全方向寄存器port_2[m-1:0]中,再执行步骤10;否则执行步骤6;若两个坐标不相邻也不相同,则直接执行步骤6;
步骤6、当前路由节点根据自身所在区的中间路由器坐标,计算出多播数据包头微片下游的传输方向并保存至传输方向寄存器port_1[m-1:0]和全方向寄存器port_2[m-1:0]中;再执行步骤10;
步骤7、当前路由节点根据所接收到的多播数据包的头微片,利用XY路由算法计算出多播数据包头微片下游的传输方向并保存至传输方向寄存器port_1[m-1:0]和全方向寄存器port_2[m-1:0]中;再执行步骤10;
步骤8、当前路由节点将所有头微片的传输方向从全方向寄存器复制到传输方向寄存器port_1[m-1:0]中,从而根据传输方向寄存器port_1[m-1:0]中的传输方向将体微片传输至下游路由节点;再返回步骤2;
步骤9、当前路由节点将所有头微片的传输方向从全方向寄存器port_2[m-1:0]复制到传输方向寄存器port_1[m-1:0]中,从而根据传输方向寄存器port_1[m-1:0]中的传输方向将尾微片传输至下游路由节点;当尾微片传输结束时,当前路由节点将传输方向寄存器port_1[m-1:0]和全方向寄存器port_2[m-1:0]清零,再返回步骤2;
步骤10、所述全方向寄存器port_2[m-1:0]接收到当前微片的输入方向时,判断当前微片的传输方向是否已经存在,若已经存在,则当前路由节点的将重仲裁请求信号发送至自身的仲裁模块,用于打开交叉开关模块相应的输出端口,否则,直接存储当前微片的输入方向;
步骤11、返回步骤2。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710359177.4A CN107046500B (zh) | 2017-05-19 | 2017-05-19 | 一种应用于层次化片上网络的两级拆分路由器及其路由算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710359177.4A CN107046500B (zh) | 2017-05-19 | 2017-05-19 | 一种应用于层次化片上网络的两级拆分路由器及其路由算法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107046500A CN107046500A (zh) | 2017-08-15 |
CN107046500B true CN107046500B (zh) | 2019-08-30 |
Family
ID=59547119
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710359177.4A Active CN107046500B (zh) | 2017-05-19 | 2017-05-19 | 一种应用于层次化片上网络的两级拆分路由器及其路由算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107046500B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109039902B (zh) * | 2018-07-24 | 2021-02-26 | 新华三技术有限公司 | 一种组播报文的转发方法及装置 |
CN109150731B (zh) * | 2018-09-19 | 2020-09-18 | 合肥工业大学 | 基于卷积神经网络的多播包连接电路及其路由方法 |
CN110351192B (zh) * | 2019-08-15 | 2021-05-07 | 电子科技大学 | 一种面向片上网络的多层次动态可选复合型路由控制方法 |
CN114363245B (zh) * | 2020-09-30 | 2024-04-26 | 北京灵汐科技有限公司 | 众核的片上网络数据传输方法、装置、设备及介质 |
CN114844757B (zh) * | 2022-02-24 | 2023-11-24 | 电子科技大学长三角研究院(湖州) | 一种面向分布式并行运算类算法的片上网络设计方法 |
CN115665041B (zh) * | 2022-11-18 | 2023-03-28 | 北京红山微电子技术有限公司 | 片上网络结构、数据传输方法、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103618673A (zh) * | 2013-11-15 | 2014-03-05 | 中国航空无线电电子研究所 | 一种保障服务质量的片上网络路由方法 |
CN104092615A (zh) * | 2014-06-10 | 2014-10-08 | 西安电子科技大学 | 具有网络编码功能的片上网络及其网络拓扑和路由算法 |
CN104158738A (zh) * | 2014-08-29 | 2014-11-19 | 中国航空无线电电子研究所 | 一种低缓冲区片上网络路由器及路由方法 |
CN105871742A (zh) * | 2016-03-24 | 2016-08-17 | 合肥工业大学 | 一种片上网络中基于虚拟输出队列机制的自适应路由器 |
CN105893162A (zh) * | 2016-03-29 | 2016-08-24 | 浙江大学 | 一种基于消息自动路由的多医疗信息***集成方法 |
-
2017
- 2017-05-19 CN CN201710359177.4A patent/CN107046500B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103618673A (zh) * | 2013-11-15 | 2014-03-05 | 中国航空无线电电子研究所 | 一种保障服务质量的片上网络路由方法 |
CN104092615A (zh) * | 2014-06-10 | 2014-10-08 | 西安电子科技大学 | 具有网络编码功能的片上网络及其网络拓扑和路由算法 |
CN104158738A (zh) * | 2014-08-29 | 2014-11-19 | 中国航空无线电电子研究所 | 一种低缓冲区片上网络路由器及路由方法 |
CN105871742A (zh) * | 2016-03-24 | 2016-08-17 | 合肥工业大学 | 一种片上网络中基于虚拟输出队列机制的自适应路由器 |
CN105893162A (zh) * | 2016-03-29 | 2016-08-24 | 浙江大学 | 一种基于消息自动路由的多医疗信息***集成方法 |
Non-Patent Citations (2)
Title |
---|
"基于多路径路由片上网络的低功耗联合编码电路设计";杜高明等;《微电子学与计算机》;20170331;第34卷(第3期);全文 |
"针对路径故障与局部拥塞的 NoC 容错路由算法";欧阳一鸣等;《电子学报》;20160430;第44卷(第4期);全文 |
Also Published As
Publication number | Publication date |
---|---|
CN107046500A (zh) | 2017-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107046500B (zh) | 一种应用于层次化片上网络的两级拆分路由器及其路由算法 | |
Zhang et al. | Comparison research between xy and odd-even routing algorithm of a 2-dimension 3x3 mesh topology network-on-chip | |
CN105450555B (zh) | 一种片上网络***,及片上网络通信链路的建立方法 | |
Wu et al. | Improving routing efficiency for network-on-chip through contention-aware input selection | |
CN101834789B (zh) | 面向包-电路交换片上路由器的回退转向路由算法及所用路由器 | |
CN105871742A (zh) | 一种片上网络中基于虚拟输出队列机制的自适应路由器 | |
CN104158738A (zh) | 一种低缓冲区片上网络路由器及路由方法 | |
US20120201171A1 (en) | Asymmetric ring topology for reduced latency in on-chip ring networks | |
CN102546417B (zh) | 基于网络信息的片上网络路由器调度方法 | |
CN105007226A (zh) | 一种基于包电路交换技术的多播路由器及其工作方式 | |
CN109561034A (zh) | 三维网络拓扑结构及其路由算法 | |
CN105871730A (zh) | 基于网络编码的新型紧凑、高效、快速的片上网络路由器 | |
CN104683242A (zh) | 一种二维片上网络的拓扑结构以及路由方法 | |
Effiong et al. | Scalable and power-efficient implementation of an asynchronous router with buffer sharing | |
Parandkar et al. | Performance comparison of XY, OE and DY Ad routing algorithm by load variation analysis of 2-dimensional mesh topology based network-on-chip | |
CN109150731A (zh) | 基于卷积神经网络的多播包连接电路及其路由方法 | |
Chen et al. | Star-type architecture with low transmission latency for a 2D mesh NOC | |
CN106209518A (zh) | 一种基于“包‑电路”交换技术的动态转向路由算法 | |
Kumar et al. | A survey for silicon on chip communication | |
Lin et al. | Power and latency efficient mechanism: a seamless bridge between buffered and bufferless routing in on-chip network | |
Nosrati et al. | Regional selection mechanism for traffic-balanced adaptive routing algorithms in mesh-based NoC architectures | |
Mondal et al. | Broadcast mechanism based on hybrid wireless/wired noc for efficient barrier synchronization in parallel computing | |
Sun et al. | Design and implementation of the wormhole virtual channel NoC router | |
Zhang et al. | A cellular NoC architecture based on butterfly network coding (CBNoC) | |
Somasundaram | Design of a Virtual Channel Router Architecture for Low Power on Mesh-of-Grid Topology for Network on Chip |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |