CN107046500A - A Two-Stage Split Router and Its Routing Algorithm for Hierarchical On-Chip Networks - Google Patents
A Two-Stage Split Router and Its Routing Algorithm for Hierarchical On-Chip Networks Download PDFInfo
- Publication number
- CN107046500A CN107046500A CN201710359177.4A CN201710359177A CN107046500A CN 107046500 A CN107046500 A CN 107046500A CN 201710359177 A CN201710359177 A CN 201710359177A CN 107046500 A CN107046500 A CN 107046500A
- Authority
- CN
- China
- Prior art keywords
- transmission direction
- current
- data packet
- header
- transmission
- 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.)
- Granted
Links
- 238000004364 calculation method Methods 0.000 claims abstract description 61
- 230000005540 biological transmission Effects 0.000 claims description 238
- 238000012546 transfer Methods 0.000 claims description 18
- 238000000034 method Methods 0.000 abstract description 5
- 238000004891 communication Methods 0.000 description 6
- 238000002474 experimental method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
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和输出端口寄存单元。本发明能对混合多播路由算法作一定的优化改善,对多播数据包中的数据通过两级拆分的方法进行有选择的拆分传输,以期降低多播数据包的延迟,同时优化上层网络的拥塞状况。
The invention discloses a two-stage split router and its routing algorithm applied to a hierarchical on-chip network. The calculation module includes a classification decoding unit YM, a unicast data packet routing calculation unit SR, a multicast uplink data packet routing calculation unit UR, a multicast downlink data packet routing calculation unit DR and an output port register unit. The invention can optimize and improve the hybrid multicast routing algorithm, and selectively split and transmit the data in the multicast data packet through a two-level split method, so as to reduce the delay of the multicast data packet and optimize the upper layer at the same time The congestion status of the network.
Description
技术领域technical field
本发明属于集成电路片上网络的通信技术领域,尤其涉及一种应用于层次化片上网络的两级拆分路由器及其路由算法。The invention belongs to the communication technical field of integrated circuit on-chip networks, and in particular relates to a two-level split router and routing algorithm applied to hierarchical on-chip networks.
背景技术Background technique
随着片上网络上核数的不断增加,多核之间的并行通信使得片上网络通信关系变得相当复杂。传统的片上网络设计只考虑一个源节点向一个目的节点的单播通信模式。在片上网络上实现单个源节点向多个目的节点的多播通信成为一项越来越重要的通信需求。With the continuous increase of the number of cores on the network on chip, the parallel communication between multiple cores makes the communication relationship of the network on chip quite complicated. The traditional network-on-chip design only considers the unicast communication mode from one source node to one destination node. It has become an increasingly important communication requirement to implement multicast communication from a single source node to multiple destination nodes on a network-on-chip.
目前有很多种多播路由算法,其中,基于层次化网络结构的混合多播路由算法,算法采用两层网络结构,将底层网络分成不同的区域。上层网络的每个路由器相当于底层区域中间路由器的桥接路由器。单播数据包只在底层网络传输。多播数据包先传输到上层网络,从上层网络再传播到各个目的节点所在的不同区域,然后到达目的节点。Currently, there are many multicast routing algorithms, among which, the hybrid multicast routing algorithm based on hierarchical network structure adopts a two-layer network structure and divides the underlying network into different areas. Each router in the upper layer network is equivalent to a bridge router for the intermediate routers in the lower layer area. Unicast packets are only transmitted on the underlying network. The multicast data packet is first transmitted to the upper layer network, then propagates from the upper layer network to different areas where each destination node is located, and then reaches the destination node.
但是该算法为了避免一份死锁情况,规定一个区域内的所有多播数据包都必须从上层路由器进入该区域,即使是一个源节点对自身区域的其他节点或相邻的节点进行多播传输也必须通过该区域的上层路由器进入该区域,这会大大增加数据包的延迟。However, in order to avoid a deadlock situation, the algorithm stipulates that all multicast data packets in an area must enter the area from the upper router, even if a source node performs multicast transmission to other nodes or adjacent nodes in its own area. It must also enter the area through the upper layer router in the area, which will greatly increase the delay of the packet.
发明内容Contents of the invention
本发明为了解决上述现有技术存在的不足之处,提出一种应用于层次化片上网络的两级拆分路由器及其路由算法,以期能将数据包直接传输到位于向上传输路径上的目的节点或者向上传输路径的相邻位置的目的节点,从而能有效提高传输效率,并降低延迟。In order to solve the shortcomings of the above-mentioned prior art, the present invention proposes a two-level split router and its routing algorithm applied to a hierarchical network on chip, in order to directly transmit data packets to the destination node on the upward transmission path Or the destination node adjacent to the upstream transmission path can effectively improve the transmission efficiency and reduce the delay.
本发明为达到上述目的所采用的技术方案是:The technical scheme that the present invention adopts for achieving the above object is:
本发明一种应用于层次化片上网络的两级拆分路由器,所述层次化片上网络是由N×M的底层二维网络和L×S的上层网络构成;1≤L<N,1≤S<M;所述底层二维网络分为L×S个区;每个区内包含一个中间路由器和若干个普通路由器;所述普通路由器包含五个传输方向;所述中间路由器包含五个传输方向和一个向上传输方向;所述上层网络均为传输路由器;所述传输路由器包含五个传输方向和一个向下传输方向;所述中间路由器与所述传输路由器互相连接;其特点是,The present invention is a two-stage split router applied to a hierarchical network-on-chip, wherein the hierarchical network-on-chip is composed of an N×M bottom layer two-dimensional network and an L×S upper layer network; 1≤L<N, 1≤ S<M; the underlying two-dimensional network is divided into L×S areas; each area contains an intermediate router and several ordinary routers; the ordinary router includes five transmission directions; the intermediate router includes five transmission directions direction and one upward transmission direction; the upper layer network is a transmission router; the transmission router includes five transmission directions and one downward transmission direction; the intermediate router and the transmission router are connected to each other; it is characterized in that,
将所述中间路由器和若干个普通路由器中的译码模块设置为多播路由计算模块;所述多播路由计算模块包括分类译码单元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]用于存储所有头微片的传输方向;The decoding module in the intermediate router and several ordinary routers is set as a multicast routing calculation module; the multicast routing calculation module includes a classification decoding unit YM, a unicast packet routing calculation unit SR, a multicast uplink data The packet routing calculation unit UR, the multicast downlink data packet routing calculation unit DR and the output port register unit; the multicast uplink data packet routing calculation unit UR includes: a two-stage split unit TS and an ordinary uplink routing calculation unit RC; the output port The register unit includes: m-bit transmission direction register port_1[m-1:0] and m-bit omnidirectional register port_2[m-1:0]; m is the number of transmission directions; the transmission direction register port_1[m- 1:0] is used to store the transmission direction of the current head flits; the omnidirectional register port_2[m-1:0] is used to store the transmission directions of all the head flits;
任意一个区内的中间路由器或普通路由器作为当前路由节点并通过自身的输入模块接收到数据包时,当前路由节点的输入模块向自身的多播路由计算模块发送所述数据包中的微片;When an intermediate router or common router in any zone is used as a current routing node and receives a data packet through its own input module, the input module of the current routing node sends the microchip in the data packet to its own multicast routing calculation module;
当前路由节点的分类译码单元YM对所接收到的当前微片进行判断,若所接收到的当前微片为头微片,则分类译码单元YM对所述头微片再进行判断;The classification decoding unit YM of the current routing node judges the received current flit, if the received current flit is the header flit, the classification decoding unit YM judges the header flit again;
若所述头微片为多播数据包的头微片;则对所述多播数据包的头微片的传输方向进行判断,若为向上传输方向,则将所述多播数据包的头微片发送至多播上行数据包路由计算单元UR用于计算传输方向;若为向下传输方向,则将所述多播数据包的头微片发送至多播下行数据包路由计算单元DR用于计算传输方向;If the header flake is the header flake of the multicast data packet; then the transmission direction of the header flake of the multicast data packet is judged, if it is the upward transmission direction, then the header of the multicast data packet is The microchip is sent to the multicast uplink data packet routing calculation unit UR for calculating the transmission direction; if it is the downward transmission direction, the header microchip of the multicast data packet is sent to the multicast downlink data packet routing calculation unit DR for calculation transmission direction;
若所述头微片为单播数据包的头微片;则将单播数据包的头微片发送至单播数据包路由计算单元SR用于计算传输方向;If the header flake is the header flake of the unicast data packet; then the header flake of the unicast data packet is sent to the unicast data packet routing calculation unit SR for calculating the transmission direction;
若所接收到的当前微片为体微片,则所述输出端口寄存单元将所有头微片的传输方向从全方向寄存器port_2[m-1:0]复制到传输方向寄存器port_1[m-1:0]中,当前路由节点的输入模块根据输出端口寄存单元中传输方向寄存器port_1[m-1:0]的传输方向将体微片传输至下游路由节点;If the received current flit is a body flit, then the output port register unit copies the transfer directions of all header flits from the omnidirectional register port_2[m-1:0] to the transfer direction register port_1[m-1 :0], the input module of the current routing node transmits the microchip to the downstream routing node according to the transmission direction of the transmission direction register port_1[m-1:0] in the output port register unit;
若所接收到的当前微片为尾微片,则所述输出端口寄存单元将所有头微片的传输方向从全方向寄存器port_2[m-1:0]复制到传输方向寄存器port_1[m-1:0]中,当前路由节点的输入模块根据输出端口寄存单元中传输方向寄存器port_1[m-1:0]的传输方向将尾微片传输至下游路由节点;然后,当前路由节点的分类译码单元YM向所述输出端口寄存单元发送数据包传输结束信号;所述输出端口寄存单元根据所接收到的数据包传输结束信号,将当前路由节点的输出端口寄存单元清零;If the received current flit is a tail flit, the output port register unit copies the transfer directions of all head flits from the omnidirectional register port_2[m-1:0] to the transfer direction register port_1[m-1 :0], the input module of the current routing node transmits the tail chip to the downstream routing node according to the transmission direction of the transmission direction register port_1[m-1:0] in the output port register unit; then, the classification decoding of the current routing node The unit YM sends a data packet transmission end signal to the output port registration unit; the output port registration unit clears the output port registration unit of the current routing node according to the received data packet transmission end signal;
所述多播上行数据包路由计算单元UR的两级拆分单元TS根据所接收到的多播数据包的头微片,将所述当前路由节点的自身坐标与目的节点的坐标进行比较,The two-level splitting unit TS of the multicast uplink data packet routing calculation unit UR compares the current routing node's own coordinates with the destination node's coordinates according to the header flake of the received multicast data packet,
若两个坐标相同,则表示当前路由节点即为目的节点,得到传输方向为本地方向并保存至所述输出端口寄存单元中;If the two coordinates are the same, it means that the current routing node is the destination node, and the obtained transmission direction is the local direction and stored in the output port storage unit;
若两个坐标相邻,则表示当前路由节点与目的节点为相邻节点,得到传输方向为相邻方向,所述两级拆分单元TS再判断当前路由节点的输出端口是否空闲,若空闲,则将相邻方向保存至所述输出端口寄存单元中;若不空闲,则不保存相邻方向,并将所述多播数据包的头微片传输至普通上行路由计算单元RC;If the two coordinates are adjacent, it means that the current routing node and the destination node are adjacent nodes, and the transmission direction is obtained as an adjacent direction, and the two-stage splitting unit TS judges whether the output port of the current routing node is idle, if idle, Then store the adjacent direction in the output port register unit; if it is not idle, then do not store the adjacent direction, and transmit the header flake of the multicast data packet to the common uplink routing calculation unit RC;
若两个坐标不相邻也不相同,则直接将所述多播数据包的头微片传输至普通上行路由计算单元RC;所述普通上行路由计算单元RC根据当前路由节点所在区的中间路由器坐标,计算出多播数据包头微片下游的传输方向,并保存至当前路由节点的输出端口寄存单元;If the two coordinates are neither adjacent nor the same, then directly transmit the header flake of the multicast data packet to the common uplink routing calculation unit RC; Coordinates, calculate the transmission direction downstream of the multicast packet header chip, and save it to the output port storage unit of the current routing node;
所述多播下行数据包路由计算单元DR根据所接收到的多播数据包的头微片,利用XY路由算法计算出多播数据包头微片下游的传输方向,并保存至当前路由节点的输出端口寄存单元;The multicast downlink data packet routing calculation unit DR uses the XY routing algorithm to calculate the downstream transmission direction of the multicast data packet header flake according to the received multicast data packet header flake, and saves it to the output of the current routing node Port register unit;
单播数据包路由计算单元SR根据所接收到的单播数据包的头微片,利用XY路由算法计算出单播数据包头微片下游的传输方向,并保存至当前路由节点的输出端口寄存单元;The unicast data packet routing calculation unit SR uses the XY routing algorithm to calculate the downstream transmission direction of the unicast data packet header microchip according to the received unicast data packet header microchip, and saves it to the output port storage unit of the current routing node ;
所述全方向寄存器port_2[m-1:0]接收到当前微片的输入方向时,判断当前微片的传输方向是否已经存在,若已经存在,则当前路由节点的多播路由计算模块将重仲裁请求信号发送至自身的仲裁模块,用于打开交叉开关模块相应的输出端口,否则,直接存储当前微片的输入方向。When the omnidirectional register port_2[m-1:0] receives the input direction of the current microchip, it is judged whether the transmission direction of the current microchip already exists, if it already exists, the multicast routing calculation module of the current routing node will re- The arbitration request signal is sent to its own arbitration module, which is used to open the corresponding output port of the crossbar module, otherwise, directly store the input direction of the current microchip.
本发明一种应用于层次化片上网络的两级拆分路由器的路由算法,所述层次化片上网络是由N×M的底层二维网络和L×S的上层网络构成;1≤L<N,1≤S<M;所述底层二维网络分为L×S个区;每个区内包含一个中间路由器和若干个普通路由器;所述普通路由器包含五个传输方向;所述中间路由器包含五个传输方向和一个向上传输方向;所述上层网络均为传输路由器;所述传输路由器包含五个传输方向和一个向下传输方向;所述中间路由器与所述传输路由器互相连接;其特点是,以任意一个区内的中间路由器或普通路由器作为当前路由节点并通过自身的输入模块接收到数据包时,所述路由算法是按如下步骤进行:The present invention is a routing algorithm for a two-level split router applied to a hierarchical network-on-chip, wherein the hierarchical network-on-chip is composed of an N×M bottom-layer two-dimensional network and an L×S upper-layer network; 1≤L<N , 1≤S<M; the underlying two-dimensional network is divided into L×S areas; each area contains an intermediate router and several ordinary routers; the ordinary router includes five transmission directions; the intermediate router includes Five transmission directions and one upward transmission direction; the upper network is a transmission router; the transmission router includes five transmission directions and one downward transmission direction; the intermediate router and the transmission router are connected to each other; its characteristics are , when using an intermediate router or common router in any zone as the current routing node and receiving data packets through its own input module, the routing algorithm is performed as follows:
步骤1、设置所述中间路由器和若干个普通路由器均包括:m位的传输方向寄存器port_1[m-1:0]和m位全方向寄存器port_2[m-1:0];m为传输方向的个数;所述传输方向寄存器port_1[m-1:0]用于存储当前头微片的传输方向;所述全方向寄存器port_2[m-1:0]用于存储所有头微片的传输方向;Step 1, setting described intermediate router and several ordinary routers all comprise: m-bit transmission direction register port_1[m-1:0] and m-bit omnidirectional register port_2[m-1:0]; m is the transmission direction register port_2[m-1:0]; number; the transfer direction register port_1[m-1:0] is used to store the transfer direction of the current head flits; the omnidirectional register port_2[m-1:0] is used to store the transfer directions of all head flits ;
步骤2、当前路由节点对所接收到的数据包中的当前微片进行判断,若所接收到的当前微片为头微片,则执行步骤3;若所接收到的当前微片为体微片,则执行步骤8;若所接收到的当前微片为尾微片,则执行步骤9;Step 2, the current routing node judges the current flit in the received data packet, if the received current flit is the header flit, then perform step 3; if the received current flit is the body flit slice, execute step 8; if the received current flit is the tail flit, execute step 9;
步骤3、当前路由节点对所述头微片再进行判断;若所述头微片为多播数据包的头微片;则执行步骤4;若所述头微片为单播数据包的头微片;则直接利用XY路由算法计算出单播数据包头微片下游的传输方向并保存至传输方向寄存器port_1[m-1:0]和全方向寄存器port_2[m-1:0]中;再执行步骤10;Step 3, the current routing node judges the header flake again; if the header flake is the header flake of a multicast data packet; then perform step 4; if the header flake is the header of a unicast packet Microchip; then directly use the XY routing algorithm to calculate the transmission direction downstream of the unicast packet header microchip and save it in the transmission direction register port_1[m-1:0] and the omnidirectional register port_2[m-1:0]; then Execute step 10;
步骤4、当前路由节点对所述多播数据包的头微片的传输方向进行判断,若为向上传输方向,则执行步骤5;若为向下传输方向,则执行步骤7;Step 4, the current routing node judges the transmission direction of the header flake of the multicast data packet, if it is the upward transmission direction, then perform step 5; if it is the downward transmission direction, then perform step 7;
步骤5、当前路由节点根据所接收到的多播数据包的头微片,将所述当前路由节点的自身坐标与目的节点的坐标进行比较,若两个坐标相同,则表示当前路由节点即为目的节点,得到传输方向为本地方向并保存至传输方向寄存器port_1[m-1:0]和全方向寄存器port_2[m-1:0]中;再执行步骤10;Step 5, the current routing node compares the self coordinates of the current routing node with the coordinates of the destination node according to the header chip of the received multicast data packet, if the two coordinates are the same, it means that the current routing node is The destination node obtains the transmission direction as the local direction and saves it in the transmission direction register port_1[m-1:0] and the omnidirectional register port_2[m-1:0]; then execute step 10;
若两个坐标相邻,则表示当前路由节点与目的节点为相邻节点,得到传输方向为相邻方向,并判断当前路由节点的输出端口是否空闲,若空闲,则保存相邻方向至传输方向寄存器port_1[m-1:0]和全方向寄存器port_2[m-1:0]中,再执行步骤10;否则执行步骤6;若两个坐标不相邻也不相同,则直接执行步骤6;If the two coordinates are adjacent, it means that the current routing node and the destination node are adjacent nodes, and the transmission direction is obtained as the adjacent direction, and judge whether the output port of the current routing node is free. If it is free, save the adjacent direction to the transmission direction In register port_1[m-1:0] and omnidirectional register port_2[m-1:0], go to step 10; otherwise go to step 6; if the two coordinates are neither adjacent nor the same, go to step 6 directly;
步骤6、当前路由节点根据自身所在区的中间路由器坐标,计算出多播数据包头微片下游的传输方向并保存至传输方向寄存器port_1[m-1:0]和全方向寄存器port_2[m-1:0]中;再执行步骤10;Step 6. The current routing node calculates the transmission direction downstream of the multicast packet header chip according to the coordinates of the intermediate router in its own area and saves it in the transmission direction register port_1[m-1:0] and the omnidirectional register port_2[m-1 :0]; then execute step 10;
步骤7、当前路由节点根据所接收到的多播数据包的头微片,利用XY路由算法计算出多播数据包头微片下游的传输方向并保存至传输方向寄存器port_1[m-1:0]和全方向寄存器port_2[m-1:0]中;再执行步骤10;Step 7. The current routing node uses the XY routing algorithm to calculate the downstream transmission direction of the multicast packet header flake according to the received multicast packet header flake and saves it in the transmission direction register port_1[m-1:0] and in the omnidirectional register port_2[m-1:0]; then perform step 10;
步骤8、当前路由节点将所有头微片的传输方向从全方向寄存器复制到传输方向寄存器port_1[m-1:0]中,从而根据传输方向寄存器port_1[m-1:0]中的传输方向将体微片传输至下游路由节点;再返回步骤2;Step 8. The current routing node copies the transmission direction of all header flits from the omnidirectional register to the transmission direction register port_1[m-1:0], thereby according to the transmission direction in the transmission direction register port_1[m-1:0] Transmit volume microchips to downstream routing nodes; return to step 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;Step 9. The current routing node copies the transmission direction of all header flits from the omnidirectional register port_2[m-1:0] to the transmission direction register port_1[m-1:0], thereby according to the transmission direction register port_1[m-1:0] 1:0] in the transmission direction will transmit the tail microchip to the downstream routing node; when the transmission of the tail microchip is completed, the current routing node will transmit the direction register port_1[m-1:0] and the omnidirectional register port_2[m-1 :0] to zero, and then return to step 2;
步骤10、所述全方向寄存器port_2[m-1:0]接收到当前微片的输入方向时,判断当前微片的传输方向是否已经存在,若已经存在,则当前路由节点的将重仲裁请求信号发送至自身的仲裁模块,用于打开交叉开关模块相应的输出端口,否则,直接存储当前微片的输入方向;Step 10, when the omnidirectional register port_2[m-1:0] receives the input direction of the current microchip, it is judged whether the transmission direction of the current microchip already exists, if it already exists, the arbitration request of the current routing node will be re-arbitrated The signal is sent to its own arbitration module to open the corresponding output port of the crossbar switch module, otherwise, directly store the input direction of the current microchip;
步骤11、返回步骤2。Step 11, return to step 2.
与现有技术相比,本发明的有益技术效果体现在:Compared with the prior art, the beneficial technical effect of the present invention is reflected in:
1、本发明通过将底层路由网络分区,每一个区域都有一个中间路由器与上层的传输路由器相连接,通过传输路由器连接每个区域,从而实现区域与区域的传输;通过改变普通路由器译码模块为多播路由计算模块,根据头微片信息将数据包传输分成了单播数据包传输,多播上行数据包传输和多播下行数据包传输;单播数据包传输,多播下行数据包传输都是通过XY路由算法直接进行传输,而将多播上行数据包传输根据目的节点是否是当前节点,当前节点相邻节点,以及两者都不符合的节点进行分类,从而将多播上行数据包传输分成三种情况;对于目的节点是当前节点的情况进行直接拆分,因为这种方式不会产生死锁问题,所以即使输出通道被占用也可以等待输出通道空闲在进行传输,这就大大提高了传输效率,而且也不会影响数据包向其他方向的传输;当目的节点为当前节点相邻节点,为了避免死锁问题,如果输出通道被占用,则直接向中间路由传输,如有输出通道空闲,则可以直接传输至相邻节点,由于没有增加新的死锁问题,这就不会增加算法硬件实现的复杂度,而且也不会产生拥塞问题;当目的节点不满足以上两种情况,则将数据包传输至中间路由器,通过上层传输路由器传输至目的节点所在区域,通过多播下行数据包传输算法传输至目的节点;从而解决了混合多播路由算法中必须经由上层传输路由器才能传输至目的节点的问题,通过两级拆分路由算法实现了数据包可以向目的节点在当前节点及其相邻节点位置上进行传输;进而大大提高了传输效率,降低了拥塞和延迟。1. The present invention divides the underlying routing network, and each area has an intermediate router connected with the transmission router of the upper layer, and connects each area through the transmission router, thereby realizing the transmission between areas; by changing the ordinary router decoding module It is a multicast routing calculation module, which divides data packet transmission into unicast data packet transmission, multicast uplink data packet transmission and multicast downlink data packet transmission according to header chip information; unicast data packet transmission, multicast downlink data packet transmission They are all directly transmitted through the XY routing algorithm, and the multicast uplink data packet transmission is classified according to whether the destination node is the current node, the adjacent node of the current node, and the nodes that do not match the two, so that the multicast uplink data packet The transmission is divided into three cases; for the case where the destination node is the current node, it is directly split, because this method will not cause deadlock problems, so even if the output channel is occupied, it can wait for the output channel to be idle for transmission, which greatly improves In order to improve the transmission efficiency, and it will not affect the transmission of data packets to other directions; when the destination node is the adjacent node of the current node, in order to avoid the deadlock problem, if the output channel is occupied, it will be directly transmitted to the intermediate route, if there is an output channel If it is idle, it can be directly transmitted to the adjacent node. Since there is no new deadlock problem, this will not increase the complexity of the algorithm hardware implementation, and will not cause congestion problems; when the destination node does not meet the above two conditions, Then the data packet is transmitted to the intermediate router, transmitted to the area where the destination node is located through the upper layer transmission router, and then transmitted to the destination node through the multicast downlink data packet transmission algorithm; thus solving the problem that the hybrid multicast routing algorithm must pass through the upper layer transmission router to transmit to the destination node. For the problem of the destination node, the data packet can be transmitted to the destination node at the position of the current node and its adjacent nodes through the two-level split routing algorithm; thereby greatly improving the transmission efficiency and reducing congestion and delay.
2、本发明为了能够将多播方向信息能够全部采集,通过两种寄存器进行保存,一种传输方向寄存器来保存当前微片传输方向;而为了保存多个头微片方向信息,采用全方向寄存器,同时传输体微片和尾微片时将方向信息传输至传输方向寄存器;这就将当前传输方向与多播所有传输方向区别开来;同时为了避免相同传输方向的多次仲裁,通过设置重仲裁请求信号直接打开交叉开关,从而了降低仲裁时间和复杂度,也减少了仲裁器工作时间,降低了延时,同时降低了路由器功耗。2. In order to be able to collect all the multicast direction information in the present invention, two kinds of registers are used to store it, and a transmission direction register is used to store the current microchip transmission direction; and in order to preserve the direction information of multiple header microchips, an omnidirectional register is used. When transmitting the body microchip and tail microchip at the same time, the direction information is transmitted to the transmission direction register; this distinguishes the current transmission direction from all multicast transmission directions; at the same time, in order to avoid multiple arbitrations in the same transmission direction, by setting re-arbitration The request signal directly turns on the crossbar switch, thereby reducing the arbitration time and complexity, and also reducing the working time of the arbitrator, reducing the delay, and reducing the power consumption of the router at the same time.
3、本发明通过两级拆分路由算法对多播上行数据包进行再底层网络有选择的传输,通过对当前多播数据包的目的节点是否是当前节点,当前节点相邻节点,以及两者都不符合的节点进行分类,从而增加了数据包在底层网络传输至目的节点的过程,大大减少了数据包向上层的传输路由器的过程,大大降低了上层网络的拥塞情况,降低延迟。3. The present invention selectively transmits the multicast uplink data packet to the underlying network through a two-stage split routing algorithm, and checks whether the destination node of the current multicast data packet is the current node, the adjacent nodes of the current node, and both The nodes that do not match are classified, thereby increasing the process of transmitting data packets to the destination node in the underlying network, greatly reducing the process of transmitting data packets to the upper-layer transmission router, greatly reducing the congestion of the upper-layer network and reducing delay.
4、本发明为了不增加新的死锁问题,将二级拆分模块判断目的节点在当前节点相邻位置时,根据输出通道是否空闲决定数据包是否拆分至相邻节点,而且避免了网络拥塞情况,降低了延时。4. In order not to add a new deadlock problem, the present invention determines whether the data packet is split to the adjacent node according to whether the output channel is idle when the second-level splitting module judges that the destination node is in the adjacent position of the current node, and avoids the network Congestion reduces latency.
5、本发明通过判断向上传输方向的数据包目的节点的位置,将数据包传输分成三种情况,分别为当前节点是目的节点的情况,以及当前节点相邻节点是目的节点的情况,和其他情况;改变了基于层次化网络结构的混合多播路由算法只能从上层传输路由传输到目的节点的局限性,从而大大提升了传输效率,降低了延时。5. The present invention divides the data packet transmission into three situations by judging the position of the destination node of the data packet in the upward transmission direction, respectively being the situation that the current node is the destination node, and the situation that the adjacent node of the current node is the destination node, and other Situation; the limitation that the hybrid multicast routing algorithm based on hierarchical network structure can only be transmitted from the upper layer to the destination node has been changed, thus greatly improving the transmission efficiency and reducing the delay.
附图说明Description of drawings
图1为现有技术中底层6×6,上层2×2规模的层次化网络结构图;Figure 1 is a hierarchical network structure diagram of the prior art with a bottom layer of 6×6 and an upper layer of 2×2 scale;
图2为本发明多播路由计算模块电路结构图;Fig. 2 is a circuit structure diagram of the multicast routing calculation module of the present invention;
图3为本发明两个目的节点在其上行路径上;Fig. 3 is two purpose nodes of the present invention on its uplink path;
图4为本发明一个目的节点在其上行路径的相邻节点;Fig. 4 is the adjacent node of a destination node of the present invention on its uplink path;
图5为本发明两个目的节点在其上行路径的相邻节点;Fig. 5 is the adjacent node of two destination nodes of the present invention on its uplink path;
图6为本发明三个目的节点在其上行路径的相邻节点;Fig. 6 is the adjacent nodes of the uplink paths of three destination nodes in the present invention;
图7为本发明四个目的节点在其上行路径的相邻节点;Fig. 7 is the adjacent nodes of four destination nodes in the present invention on its uplink path;
图8为本发明上行路径上不同目的节点数的延迟对比图;Fig. 8 is a delay comparison diagram of different destination node numbers on the uplink path of the present invention;
图9为本发明不同可拆分相邻目的节点数的延迟对比图。FIG. 9 is a delay comparison diagram of different numbers of detachable adjacent destination nodes according to the present invention.
具体实施方式detailed description
本实施例中,数据包的格式如表1所示,每个多播数据包头微片包含虚通道号标志、微片类型标志、数据包类型标志、目的节点编号、源节点编号、数据包当前传输路径、目的节点所在区域的上层节点编号、上层网络传输方向;In this embodiment, the format of the data packet is as shown in Table 1. Each multicast data packet header microchip includes a virtual channel number flag, a microchip type flag, a data packet type flag, a destination node number, a source node number, a data packet current Transmission path, upper layer node number in the area where the destination node is located, upper layer network transmission direction;
表1网络数据包格式Table 1 Network packet format
采用的层次化片上网络结构是由6×6的底层二维网络和2×2的上层网络所构成的双层片上网络,如图1所示;底层二维网络分为4个区;每个区内包含一个中间路由器和若干个普通路由器;普通路由器包含五个传输方向;中间路由器包含五个传输方向和一个向上传输方向;上层网络均为传输路由器;传输路由器包含五个传输方向和一个向下传输方向;中间路由器与传输路由器互相连接。The hierarchical on-chip network structure adopted is a double-layer on-chip network composed of a 6×6 bottom two-dimensional network and a 2×2 upper layer network, as shown in Figure 1; the bottom two-dimensional network is divided into four areas; each The area contains an intermediate router and several ordinary routers; ordinary routers include five transmission directions; intermediate routers include five transmission directions and one upward transmission direction; upper-layer networks are all transmission routers; Downward transport direction; intermediate routers and transit routers are connected to each other.
本实施例中,将中间路由器和若干个普通路由器中的译码模块设置为多播路由计算模块;如图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中一位代表一个传输方向;In this embodiment, the decoding modules in the intermediate router and several common routers are set as multicast routing calculation modules; as shown in Figure 2, the multicast routing calculation module includes classification decoding unit YM, unicast packet routing calculation module Unit SR, multicast uplink data packet routing calculation unit UR, multicast downlink data packet routing calculation unit DR and output port storage unit; multicast uplink data packet routing calculation unit UR includes: two-stage split unit TS and common uplink routing calculation unit Unit RC; the common router output port registration unit includes: 5-bit transmission direction register port_1[4:0] and 5-bit omnidirectional register port_2[4:0]; the intermediate router output port registration unit includes: 6-bit transmission direction register port_1[5:0] and 6-bit omnidirectional register port_2[5:0]; the transmission direction registers of ordinary routers and intermediate routers are uniformly represented as transmission direction register port_1, and the omnidirectional registers are uniformly represented as omnidirectional register port_2; transmission direction registers port_1 is used to store the transmission direction of the current header microchip; the omnidirectional register port_2 is used to store the transmission direction of all the header microchips, and one bit in the omnidirectional register port_2 represents a transmission direction;
任意一个区内的中间路由器或普通路由器作为当前路由节点并通过自身的输入模块接收到数据包时,当前路由节点的输入模块向自身的多播路由计算模块发送数据包中的微片data_in[38:0];When an intermediate router or a common router in any area acts as the current routing node and receives data packets through its own input module, the input module of the current routing node sends the microchip data_in[38] in the data packet to its own multicast routing calculation module :0];
当前路由节点的分类译码单元YM对所接收到的当前微片data_in[38:0]进行判断,判断微片data_in[36:35]微片类型标志是否为2’b01,若是,则当前微片为头微片,若是2’b11,则当前微片为体微片,若是2’b10,则当前微片为尾微片;若所接收到的当前微片为头微片,则分类译码单元YM对头微片再进行判断,判断头微片data_in[34]数据包类型标志是否为1’b1,若是,则头微片为多播数据包头微片,若不是,则是单播数据包头微片。The classification decoding unit YM of the current routing node judges the received current microchip data_in[38:0], and judges whether the microchip data_in[36:35] microchip type flag is 2'b01, and if so, the current microchip If the slice is the head slice, if it is 2'b11, then the current slice is the body slice, if it is 2'b10, then the current slice is the tail slice; if the received current slice is the head slice, then classification translation The code unit YM judges the header flake again, and judges whether the data packet type flag of the header flake data_in[34] is 1'b1, if so, the header flit is a multicast data packet header flake, if not, it is unicast data Baotou microchips.
若头微片为多播数据包的头微片,则对多播数据包的头微片的传输方向进行判断,判断头微片data_in[32]数据包当前传输路径是否为向上传输路径1’b1,若是,当前传输路径为向上传输路径,若不是,当前传输路径为向下传输路径;若为向上传输方向,则将多播数据包的头微片发送至多播上行数据包路由计算单元UR用于计算传输方向;若为向下传输方向,则将多播数据包的头微片发送至多播下行数据包路由计算单元DR用于计算传输方向;If the header flake is the header flake of the multicast data packet, then the transmission direction of the header flake of the multicast packet is judged, and whether the current transmission path of the header flake data_in[32] data packet is an upward transmission path 1' b1, if yes, the current transmission path is the upward transmission path, if not, the current transmission path is the downward transmission path; if it is the upward transmission direction, then send the header flake of the multicast data packet to the multicast upstream data packet routing calculation unit UR It is used to calculate the transmission direction; if it is the downward transmission direction, the header flake of the multicast data packet is sent to the multicast downlink data packet routing calculation unit DR for calculation of the transmission direction;
若头微片为单播数据包的头微片;则将单播数据包的头微片发送至单播数据包路由计算单元SR用于计算传输方向;If the header flake is the header flake of the unicast data packet; then the header flake of the unicast data packet is sent to the unicast data packet routing calculation unit SR for calculating the transmission direction;
若所接收到的当前微片为体微片,则输出端口寄存单元将所有头微片的传输方向从全方向寄存器port_2复制到传输方向寄存器port_1中,当前路由节点的输入模块根据输出端口寄存单元中传输方向寄存器port_1的传输方向将体微片传输至下游路由节点;If the received current flit is a body flit, the output port register unit copies the transmission direction of all header flits from the omnidirectional register port_2 to the transmit direction register port_1, and the input module of the current routing node is based on the output port register unit The transmission direction of the medium transmission direction register port_1 transmits the microchip to the downstream routing node;
若所接收到的当前微片为尾微片,则输出端口寄存单元将所有头微片的传输方向从全方向寄存器port_2复制到传输方向寄存器port_1中,当前路由节点的输入模块根据输出端口寄存单元中传输方向寄存器port_1的传输方向将尾微片传输至下游路由节点;然后,当前路由节点的分类译码单元YM向输出端口寄存单元发送数据包传输结束信号;输出端口寄存单元根据所接收到的数据包传输结束信号,将当前路由节点的输出端口寄存单元清零;If the current flit received is the tail flit, the output port register unit will copy the transmission direction of all the head flits from the omnidirectional register port_2 to the transmit direction register port_1, and the input module of the current routing node is based on the output port register unit The transmission direction of the middle transmission direction register port_1 transmits the tail microchip to the downstream routing node; then, the classification decoding unit YM of the current routing node sends a data packet transmission end signal to the output port registration unit; the output port registration unit according to the received The data packet transmission end signal clears the output port register unit of the current routing node;
多播上行数据包路由计算单元UR的两级拆分单元TS根据所接收到的多播数据包的头微片,将当前路由节点的自身坐标与目的节点的坐标data_in[23:8]进行比较,The two-level split unit TS of the multicast uplink data packet routing calculation unit UR compares the current routing node's own coordinates with the destination node's coordinates data_in[23:8] according to the received multicast data packet header slice ,
若两个坐标相同,则表示当前路由节点即为目的节点,得到传输方向为本地方向并保存至输出端口寄存单元中;If the two coordinates are the same, it means that the current routing node is the destination node, and the obtained transmission direction is the local direction and stored in the output port storage unit;
若两个坐标相邻,则表示当前路由节点与目的节点为相邻节点,得到传输方向为相邻方向,两级拆分单元TS再判断当前路由节点的输出端口是否空闲,若空闲,则将相邻方向保存至输出端口寄存单元中;若不空闲,则不保存相邻方向,并将多播数据包的头微片传输至普通上行路由计算单元RC;If the two coordinates are adjacent, it means that the current routing node and the destination node are adjacent nodes, and the transmission direction is obtained as the adjacent direction. The two-level splitting unit TS then judges whether the output port of the current routing node is free. The adjacent direction is stored in the output port register unit; if it is not idle, the adjacent direction is not saved, and the header flake of the multicast data packet is transmitted to the common uplink routing calculation unit RC;
若两个坐标不相邻也不相同,则直接将多播数据包的头微片传输至普通上行路由计算单元RC;普通上行路由计算单元RC根据当前路由节点所在区的中间路由器坐标,计算出多播数据包头微片下游的传输方向,并保存至当前路由节点的输出端口寄存单元;If the two coordinates are neither adjacent nor the same, the header flake of the multicast data packet is directly transmitted to the ordinary uplink routing calculation unit RC; the ordinary uplink routing calculation unit RC calculates The downstream transmission direction of the multicast packet header microchip, and save it to the output port storage unit of the current routing node;
多播下行数据包路由计算单元DR根据所接收到的多播数据包的头微片,利用XY路由算法计算出多播数据包头微片下游的传输方向,并保存至当前路由节点的输出端口寄存单元;The multicast downlink data packet routing calculation unit DR uses the XY routing algorithm to calculate the downstream transmission direction of the multicast data packet header microchip according to the received multicast data packet header microchip, and saves it to the output port of the current routing node for storage unit;
单播数据包路由计算单元SR根据所接收到的单播数据包的头微片,利用XY路由算法计算出单播数据包头微片下游的传输方向,并保存至当前路由节点的输出端口寄存单元;The unicast data packet routing calculation unit SR uses the XY routing algorithm to calculate the downstream transmission direction of the unicast data packet header microchip according to the received unicast data packet header microchip, and saves it to the output port storage unit of the current routing node ;
全方向寄存器port_2接收到当前微片的输入方向时,判断当前微片的传输方向是否已经存在,若已经存在,则当前路由节点的多播路由计算模块将重仲裁请求信号发送至自身的仲裁模块,用于打开交叉开关模块相应的输出端口,否则,直接存储当前微片的输入方向。When the omnidirectional register port_2 receives the input direction of the current flit, it judges whether the transmission direction of the current flit already exists, and if it already exists, the multicast routing calculation module of the current routing node sends the re-arbitration request signal to its own arbitration module , used to open the corresponding output port of the crossbar module, otherwise, directly store the input direction of the current microchip.
本实施例中,一种应用于层次化片上网络的两级拆分路由器的路由算法,层次化片上网络是由6×6的底层二维网络和2×2的上层网络构成;底层二维网络分为4个区;每个区内包含一个中间路由器和若干个普通路由器;普通路由器包含五个传输方向;中间路由器包含五个传输方向和一个向上传输方向;上层网络均为传输路由器;传输路由器包含五个传输方向和一个向下传输方向;中间路由器与传输路由器互相连接;以任意一个区内的中间路由器或普通路由器作为当前路由节点并通过自身的输入模块接收到数据包时,路由算法是按如下步骤进行:In this embodiment, a routing algorithm for a two-stage split router applied to a hierarchical network-on-chip, where the hierarchical network-on-chip is composed of a 6×6 bottom two-dimensional network and a 2×2 upper layer network; the bottom two-dimensional network It is divided into 4 areas; each area contains an intermediate router and several ordinary routers; ordinary routers include five transmission directions; intermediate routers include five transmission directions and one upward transmission direction; the upper network is a transmission router; the transmission router Contains five transmission directions and one downward transmission direction; the intermediate router and the transmission router are connected to each other; when the intermediate router or ordinary router in any area is used as the current routing node and receives the data packet through its own input module, the routing algorithm is Proceed as follows:
步骤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中一位代表一个传输方向;Step 1, setting the intermediate router and several ordinary routers all include: 5-bit transmission direction register port_1[4:0] and 5-bit omnidirectional register port_2[4:0]; the intermediate router output port register unit includes: 6-bit The transmission direction register port_1[5:0] and the 6-bit omnidirectional register port_2[5:0]; the transmission direction registers of ordinary routers and intermediate routers are uniformly represented as transmission direction register port_1, and the omnidirectional registers are uniformly represented as omnidirectional register port_2; The transmission direction register port_1 is used to store the transmission direction of the current head microchip; the omnidirectional register port_2 is used to store the transmission directions of all the head microchips, and one bit in the omnidirectional register port_2 represents a transmission direction;
步骤2、当前路由节点对所接收到的数据包中的当前微片进行判断,若所接收到的当前微片为头微片,则执行步骤3;若所接收到的当前微片为体微片,则执行步骤8;若所接收到的当前微片为尾微片,则执行步骤9;Step 2, the current routing node judges the current flit in the received data packet, if the received current flit is the header flit, then perform step 3; if the received current flit is the body flit slice, execute step 8; if the received current flit is the tail flit, execute step 9;
步骤3、当前路由节点对头微片再进行判断;若头微片为多播数据包的头微片;则执行步骤4;若头微片为单播数据包的头微片;则直接利用XY路由算法计算出单播数据包头微片下游的传输方向并保存至传输方向寄存器port_1和全方向寄存器port_2中;再执行步骤10;Step 3, the current routing node judges the header flake again; if the header flit is the header flit of the multicast data packet; then perform step 4; if the header flit is the header flake of the unicast data packet; then directly use XY The routing algorithm calculates the transmission direction downstream of the unicast packet header chip and saves it in the transmission direction register port_1 and the omnidirectional register port_2; then execute step 10;
步骤4、当前路由节点对多播数据包的头微片的传输方向进行判断,若为向上传输方向,则执行步骤5;若为向下传输方向,则执行步骤7;Step 4, the current routing node judges the transmission direction of the header flake of the multicast data packet, if it is the upward transmission direction, then perform step 5; if it is the downward transmission direction, then perform step 7;
步骤5、当前路由节点根据所接收到的多播数据包的头微片,将当前路由节点的自身坐标与目的节点的坐标进行比较,若两个坐标相同,则表示当前路由节点即为目的节点,得到传输方向为本地方向并保存至传输方向寄存器port_1和全方向寄存器port_2中;再执行步骤10;Step 5, the current routing node compares the current routing node's own coordinates with the coordinates of the destination node according to the header chip of the received multicast data packet, if the two coordinates are the same, it means that the current routing node is the destination node , get the transmission direction as the local direction and save it in the transmission direction register port_1 and the omnidirectional register port_2; then execute step 10;
若两个坐标相邻,则表示当前路由节点与目的节点为相邻节点,得到传输方向为相邻方向,并判断当前路由节点的输出端口是否空闲,若空闲,则保存相邻方向至传输方向寄存器port_1和全方向寄存器port_2中,再执行步骤10;否则执行步骤6;若两个坐标不相邻也不相同,则直接执行步骤6;If the two coordinates are adjacent, it means that the current routing node and the destination node are adjacent nodes, and the transmission direction is obtained as the adjacent direction, and judge whether the output port of the current routing node is free. If it is free, save the adjacent direction to the transmission direction In the register port_1 and the omnidirectional register port_2, go to step 10; otherwise go to step 6; if the two coordinates are neither adjacent nor the same, go to step 6 directly;
步骤6、当前路由节点根据自身所在区的中间路由器坐标,计算出多播数据包头微片下游的传输方向并保存至传输方向寄存器port_1和全方向寄存器port_2中;再执行步骤10;Step 6, the current routing node calculates the transmission direction downstream of the multicast packet header microchip according to the coordinates of the intermediate router in its own area and saves it in the transmission direction register port_1 and the omnidirectional register port_2; then execute step 10;
步骤7、当前路由节点根据所接收到的多播数据包的头微片,利用XY路由算法计算出多播数据包头微片下游的传输方向并保存至传输方向寄存器port_1和全方向寄存器port_2中;再执行步骤10;Step 7, the current routing node uses the XY routing algorithm to calculate the downstream transmission direction of the multicast packet header flake according to the received multicast packet header flake and saves it in the transmission direction register port_1 and the omnidirectional register port_2; Execute step 10 again;
步骤8、当前路由节点将所有头微片的传输方向从全方向寄存器port_2复制到传输方向寄存器port_1中,从而根据传输方向寄存器port_1中的传输方向将体微片传输至下游路由节点;再返回步骤2;Step 8. The current routing node copies the transmission direction of all header flits from the omnidirectional register port_2 to the transfer direction register port_1, so as to transmit the body flakes to the downstream routing node according to the transfer direction in the transfer direction register port_1; then return to the step 2;
步骤9、当前路由节点将所有头微片的传输方向从全方向寄存器port_2复制到传输方向寄存器port_1中,从而根据传输方向寄存器port_1中的传输方向将尾微片传输至下游路由节点;当尾微片传输结束时,当前路由节点将传输方向寄存器port_1和全方向寄存器port_2清零,再返回步骤2;Step 9, the current routing node copies the transmission direction of all head microchips from the omnidirectional register port_2 to the transmission direction register port_1, thereby transmitting the tail microchip to the downstream routing node according to the transmission direction in the transmission direction register port_1; when the tail microchip At the end of slice transmission, the current routing node clears the transmission direction register port_1 and the omnidirectional register port_2, and then returns to step 2;
步骤10、port_2全方向寄存器接收到当前微片的输入方向时,判断当前微片的传输方向是否已经存在,若已经存在,则当前路由节点的将重仲裁请求信号发送至自身的仲裁模块,用于打开交叉开关模块相应的输出端口,否则,直接存储当前微片的输入方向;Step 10: When the port_2 omnidirectional register receives the input direction of the current microchip, it is judged whether the transmission direction of the current microchip already exists. If it already exists, the current routing node sends the re-arbitration request signal to its own arbitration module, and uses To open the corresponding output port of the crossbar module, otherwise, directly store the input direction of the current microchip;
步骤11、返回步骤2。Step 11, return to step 2.
具体实施中,改变多播上行路径上可拆分的目的节点数。对于底层6×6的网络,按照每3×3分成一个区域那么多播数据包在上行路径上最多有两个可拆分的目的节点。实验以(1,1)为源节点,目的节点分别是(2,1)、(2,2)和(2,4),如图3所示。数据包由三个头微片、三个体微片和一个尾微片组成,从源节点向目的节点发送一个数据包。不同情况下数据包的延迟结果如图8所示。In a specific implementation, the number of detachable destination nodes on the multicast uplink path is changed. For the underlying 6×6 network, if each 3×3 is divided into an area, the multicast data packet has at most two splittable destination nodes on the uplink path. The experiment takes (1,1) as the source node, and the destination nodes are (2,1), (2,2) and (2,4) respectively, as shown in Figure 3. The data packet is composed of three head flits, three body flits and one tail flits, and a data packet is sent from the source node to the destination node. The delay results of packets under different conditions are shown in Figure 8.
当可拆分节点只有一个时,数据包的平均延迟降低了15.9%;当可拆分节点有两个时,数据包的平均延迟降低了22%。由此可以看出,路径上拆分传输的目的节点越多,相比于不拆分传输,数据包的到达延迟降低的越多。When there is only one splittable node, the average packet delay is reduced by 15.9%; when there are two splittable nodes, the average packet delay is reduced by 22%. It can be seen from this that the more destination nodes on the path that split the transmission, the more the arrival delay of the data packet is reduced compared to the non-split transmission.
在相同的网络条件下,可拆分的路径相邻目的节点数分别设为1、2、3、4。Under the same network conditions, the number of adjacent destination nodes of splittable paths is set to 1, 2, 3, 4 respectively.
相邻可拆分节点数为1:实验设定源节点为(3,4),目的节点为(2,2),(3,3),(2,6)和(2,1),一个数据包含有四个头微片、三个体微片和一个尾微片,如图4所示。The number of adjacent splittable nodes is 1: the experiment sets the source node as (3,4), the destination node as (2,2), (3,3), (2,6) and (2,1), one The data contains four head micro-slices, three body micro-slices and one tail micro-slice, as shown in Figure 4.
相邻可拆分节点数为2:实验设定源节点为(3,4),目的节点为(2,2),(3,3),(4,4)和(2,1),一个数据包含有四个头微片、三个体微片和一个尾微片,如图5所示。The number of adjacent splittable nodes is 2: the experiment sets the source node as (3,4), the destination node as (2,2), (3,3), (4,4) and (2,1), one The data contains four head micro-slices, three body micro-slices and one tail micro-slice, as shown in Figure 5.
相邻可拆分节点数为3:实验设定源节点为(3,4),目的节点为(2,2),(3,3),(4,4)和(3,5),一个数据包含有四个头微片、三个体微片和一个尾微片,如图6所示。The number of adjacent splittable nodes is 3: the experiment sets the source node as (3,4), the destination node as (2,2), (3,3), (4,4) and (3,5), one The data contains four head micro-slices, three body micro-slices and one tail micro-slice, as shown in Figure 6.
相邻可拆分节点数为4:实验设定源节点为(3,4),目的节点为(2,3),(3,3),(4,4)和(3,5),一个数据包含有四个头微片、三个体微片和一个尾微片,如图7所示。The number of adjacent splittable nodes is 4: the experiment sets the source node as (3,4), the destination node as (2,3), (3,3), (4,4) and (3,5), one The data contains four head micro-slices, three body micro-slices and one tail micro-slice, as shown in Figure 7.
基于上述设定的实验条件,得出的延迟结果如图9所示。可拆分的相邻节点数从1个增加到4个所对应的延迟降低结果分别是22.7%、31.5%、41.4%和50.3%。可以得出,可拆分的相邻节点数越多,数据包的平均延迟优化越大。Based on the experimental conditions set above, the obtained delay results are shown in Fig. 9 . The delay reduction results corresponding to the increase of the number of splittable adjacent nodes from 1 to 4 are 22.7%, 31.5%, 41.4% and 50.3%, respectively. It can be concluded that the more the number of adjacent nodes that can be split, the greater the average delay optimization of data packets.
Claims (2)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710359177.4A CN107046500B (en) | 2017-05-19 | 2017-05-19 | A Two-Stage Split Router and Its Routing Algorithm for Hierarchical On-Chip Networks |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710359177.4A CN107046500B (en) | 2017-05-19 | 2017-05-19 | A Two-Stage Split Router and Its Routing Algorithm for Hierarchical On-Chip Networks |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107046500A true CN107046500A (en) | 2017-08-15 |
CN107046500B CN107046500B (en) | 2019-08-30 |
Family
ID=59547119
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710359177.4A Active CN107046500B (en) | 2017-05-19 | 2017-05-19 | A Two-Stage Split Router and Its Routing Algorithm for Hierarchical On-Chip Networks |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107046500B (en) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109039902A (en) * | 2018-07-24 | 2018-12-18 | 新华三技术有限公司 | A kind of retransmission method and device of multicast message |
CN109150731A (en) * | 2018-09-19 | 2019-01-04 | 合肥工业大学 | Multicast packet connection circuit and its method for routing based on convolutional neural networks |
CN110351192A (en) * | 2019-08-15 | 2019-10-18 | 电子科技大学 | A kind of multi-level optional compound route control method of dynamic towards network-on-chip |
CN114363245A (en) * | 2020-09-30 | 2022-04-15 | 北京灵汐科技有限公司 | Many-core network-on-chip data transmission method, device, equipment and medium |
CN114844757A (en) * | 2022-02-24 | 2022-08-02 | 电子科技大学长三角研究院(湖州) | Network-on-chip design method for distributed parallel operation algorithm |
CN115665041A (en) * | 2022-11-18 | 2023-01-31 | 北京红山微电子技术有限公司 | Network-on-chip structure, data transmission method, electronic device, and storage medium |
CN119376962A (en) * | 2024-12-31 | 2025-01-28 | 北京开源芯片研究院 | Data transmission method, device, electronic device and storage medium of network on chip |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103618673A (en) * | 2013-11-15 | 2014-03-05 | 中国航空无线电电子研究所 | NoC routing method guaranteeing service quality |
CN104092615A (en) * | 2014-06-10 | 2014-10-08 | 西安电子科技大学 | Network on Chip with Network Coding Function and Its Network Topology and Routing Algorithm |
CN104158738A (en) * | 2014-08-29 | 2014-11-19 | 中国航空无线电电子研究所 | Network-on-chip router with low buffer area and routing method |
CN105871742A (en) * | 2016-03-24 | 2016-08-17 | 合肥工业大学 | Adaptive router in NoC (network-on-chip) on basis of virtual output queue mechanism |
CN105893162A (en) * | 2016-03-29 | 2016-08-24 | 浙江大学 | Integration method of multiple medical information systems on the basis of automatic routing of message |
-
2017
- 2017-05-19 CN CN201710359177.4A patent/CN107046500B/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103618673A (en) * | 2013-11-15 | 2014-03-05 | 中国航空无线电电子研究所 | NoC routing method guaranteeing service quality |
CN104092615A (en) * | 2014-06-10 | 2014-10-08 | 西安电子科技大学 | Network on Chip with Network Coding Function and Its Network Topology and Routing Algorithm |
CN104158738A (en) * | 2014-08-29 | 2014-11-19 | 中国航空无线电电子研究所 | Network-on-chip router with low buffer area and routing method |
CN105871742A (en) * | 2016-03-24 | 2016-08-17 | 合肥工业大学 | Adaptive router in NoC (network-on-chip) on basis of virtual output queue mechanism |
CN105893162A (en) * | 2016-03-29 | 2016-08-24 | 浙江大学 | Integration method of multiple medical information systems on the basis of automatic routing of message |
Non-Patent Citations (2)
Title |
---|
杜高明等: ""基于多路径路由片上网络的低功耗联合编码电路设计"", 《微电子学与计算机》 * |
欧阳一鸣等: ""针对路径故障与局部拥塞的 NoC 容错路由算法"", 《电子学报》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109039902A (en) * | 2018-07-24 | 2018-12-18 | 新华三技术有限公司 | A kind of retransmission method and device of multicast message |
CN109150731A (en) * | 2018-09-19 | 2019-01-04 | 合肥工业大学 | Multicast packet connection circuit and its method for routing based on convolutional neural networks |
CN109150731B (en) * | 2018-09-19 | 2020-09-18 | 合肥工业大学 | Multicast packet connection circuit based on convolutional neural network and routing method thereof |
CN110351192A (en) * | 2019-08-15 | 2019-10-18 | 电子科技大学 | A kind of multi-level optional compound route control method of dynamic towards network-on-chip |
CN114363245A (en) * | 2020-09-30 | 2022-04-15 | 北京灵汐科技有限公司 | Many-core network-on-chip data transmission method, device, equipment and medium |
CN114363245B (en) * | 2020-09-30 | 2024-04-26 | 北京灵汐科技有限公司 | Multi-core network-on-chip data transmission method, device, equipment and medium |
CN114844757A (en) * | 2022-02-24 | 2022-08-02 | 电子科技大学长三角研究院(湖州) | Network-on-chip design method for distributed parallel operation algorithm |
CN114844757B (en) * | 2022-02-24 | 2023-11-24 | 电子科技大学长三角研究院(湖州) | Network-on-chip design method for distributed parallel operation algorithm |
CN115665041A (en) * | 2022-11-18 | 2023-01-31 | 北京红山微电子技术有限公司 | Network-on-chip structure, data transmission method, electronic device, and storage medium |
CN115665041B (en) * | 2022-11-18 | 2023-03-28 | 北京红山微电子技术有限公司 | Network-on-chip structure, data transmission method, electronic device, and storage medium |
CN119376962A (en) * | 2024-12-31 | 2025-01-28 | 北京开源芯片研究院 | Data transmission method, device, electronic device and storage medium of network on chip |
Also Published As
Publication number | Publication date |
---|---|
CN107046500B (en) | 2019-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107046500A (en) | A Two-Stage Split Router and Its Routing Algorithm for Hierarchical On-Chip Networks | |
Zhang et al. | Comparison research between xy and odd-even routing algorithm of a 2-dimension 3x3 mesh topology network-on-chip | |
CN105007226B (en) | A kind of multicast router and its working method based on bag circuit-switched technology | |
CN107454003B (en) | A network-on-chip router and method capable of dynamically switching working modes | |
CN101834789B (en) | Packet-circuit exchanging on-chip router oriented rollback steering routing algorithm and router used thereby | |
CN104158738A (en) | Network-on-chip router with low buffer area and routing method | |
CN101841420B (en) | Low Latency Router Architecture for Network-on-Chip | |
CN101808032B (en) | Static XY routing algorithm-oriented two-dimensional grid NoC router optimization design method | |
CN104780122B (en) | Control method based on the stratification network-on-chip router that caching is reallocated | |
CN109873771B (en) | On-chip network system and communication method thereof | |
CN105871742A (en) | Adaptive router in NoC (network-on-chip) on basis of virtual output queue mechanism | |
US7555001B2 (en) | On-chip packet-switched communication system | |
CN102685017A (en) | On-chip network router based on field programmable gate array (FPGA) | |
CN105871730A (en) | Novel compact, efficient and fast on-chip network router based on network coding | |
CN109039949B (en) | Dynamic wireless medium access control method based on priority in wireless network on chip | |
CN102035723A (en) | On-chip network router and realization method | |
CN107959643A (en) | A kind of exchange system and its routing algorithm built by exchange chip | |
CN109150731B (en) | Multicast packet connection circuit based on convolutional neural network and routing method thereof | |
CN101488923B (en) | Implementing method for network-on-chip data packet encoding optimization | |
CN107276920B (en) | A distributed flow control system and method for hybrid three-dimensional network-on-chip | |
CN105871761A (en) | High order matrix switch, network on chip and communication method | |
Sadawarte et al. | Comparative study of switching techniques for network-on-chip architecture | |
CN102693213A (en) | System-level transmission delay model building method applied to network on chip | |
CN106209518A (en) | A kind of dynamic steering routing algorithm based on " bag circuit " switching technology | |
CN114448870B (en) | Router delay model, construction method and network-on-chip routing algorithm based on router delay model |
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 |