WO2010137572A1 - Network-on-chip, network routing method, and system - Google Patents
Network-on-chip, network routing method, and system Download PDFInfo
- Publication number
- WO2010137572A1 WO2010137572A1 PCT/JP2010/058780 JP2010058780W WO2010137572A1 WO 2010137572 A1 WO2010137572 A1 WO 2010137572A1 JP 2010058780 W JP2010058780 W JP 2010058780W WO 2010137572 A1 WO2010137572 A1 WO 2010137572A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- router
- routing
- packet
- main
- network
- Prior art date
Links
Images
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
-
- 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/42—Centralised routing
Definitions
- the present invention is based on the priority claim of Japanese patent application: Japanese Patent Application No. 2009-125580 (filed on May 25, 2009), the entire contents of which are incorporated herein by reference. Shall.
- the present invention relates to a semiconductor integrated circuit device and a network routing method, and in particular, a data communication network between IP cores in an LSI integrated circuit (System On a Chip (SoC)) in which a plurality of IP (Intellectual Property) cores are integrated.
- SoC System On a Chip
- IP Intelligent Property
- LSI integrated circuit SoC: System On a Chip
- IP Intelligent Property
- connection between IP cores is performed using a bus.
- AMBA registered trademark of ARM
- AHB Advanced High performance Bus
- Multi-layer AHB Multi-layer AHB
- AXI Advanced eXtensible Interface
- NoC Network on Chip
- NoC Network on Chip
- these basically constitute a network by a router 302 and a communication channel 305.
- a router 302 By sending a packet composed of a plurality of flits as shown in FIG. 16 to these networks, Realize communication.
- each router 302 sends the received packet to an appropriate output port for sending to the destination network interface (NIF).
- NIF network interface
- a routing protocol method for determining a destination for the next hop In the network interface on the sender side, all the routing to the destination is determined, and the source routing method that includes the routing information in the packet, Exists.
- the routing protocol method analyzes a packet that has entered from an input channel, extracts an address and ID, searches a table provided in the router based on this information, and determines which output channel the packet is output to. After that, arbitration is performed for the output channel, and a packet is output.
- FIG. 17 As a technique for reducing the number of steps required for routing, a “Next Routing Computation” method in which routing calculation is performed by the previous router has been proposed.
- FIG. 17 when there is a packet from the router R0 to the router R5 via the router R1, the routing calculation of the router R1 is performed by the router R0 and the routing calculation of the router R5 is performed by R1. is there.
- Non-Patent Document 2 As shown in FIG. 17, the number of pipeline stages required in the relay router is reduced by establishing a virtual channel that bypasses routing calculation and arbitration by several relay routers. When bypassed, it passes through the router in two cycles.
- routers 351 are connected by a bidirectional channel 352.
- the virtual express channel 354 is defined.
- Routers R2, R7, and R11 can omit the routing calculation and switch arbitration of packets arriving on this channel. In this way, the latency from the router R1 to the router R3 and the latency from the router R3 to R15 are shortened.
- Non-Patent Document 3 predicts the output direction of a packet speculatively based on a certain prediction rule in parallel with performing the routing calculation for the arrived packet, and switches the direction of the packet. If the speculation is successful by performing arbitration and passing through the switch, the latency is shortened for the cycle of the routing calculation.
- ⁇ Source routing method> In the source routing method, the output channel information in each router is embedded in a packet in advance at the network interface on the transmission side, and each router can complete the routing simply by extracting this information.
- FIG. 18 shows a flit 0 of the packet in this chip.
- 10 hops of DID (Destination IDs) 361 indicating the output destination for each router are generated by the output side network interface and defined in the packet. According to this, the router determines the output port.
- each router can perform routing only by extracting the DID value.
- the source routing method can simplify the structure of each router.
- the source routing method is supported as an option even in a LAN (Local Area Network) between computers such as TCP / IP (Transport Control Protocol / Internet Protocol).
- LAN Local Area Network
- IP Transmission Control Protocol / Internet Protocol
- ⁇ Strict source routing method> In the strict source routing method, all network points to be hopped are specified in a packet at the network interface on the transmission side, and a packet that reaches a network point not specified is discarded.
- ⁇ Loose source routing method> On the other hand, in the loose source routing method, only a part of the network points are specified in the packet, and the route supplemented by the router is allowed in the meantime, and the routing protocol method is used except for the specified network points. Then, routing is performed at each network point and packet transfer is performed.
- the maximum number of hops of the router that can be specified is 9. These are often used for router testing.
- FIG. 19 shows a packet format in the case of this source routing.
- the option type 381 is a designated option
- the source routing method is used, and source routing for the IP address designated by the option length can be performed.
- the option length 382 is followed by an option pointer 383 and an IP address 384 corresponding to the designated option length. Since n is 9 at the maximum, it is not possible to specify an IP address of 10 or more.
- Patent Document 1 discloses a route repair method capable of repairing a route with a small load in a large-scale ad hoc network having a large number of hops between a transmission source and a transmission destination.
- a route for relaying the nine wireless nodes B, C... J is established between the source node A and the destination node K, and the management nodes A, F, and K are provided for each predetermined number of hops on the route.
- the wireless node I that has detected this transmits an RERR (route invalid notification) with the nearest management node F as the destination in the source direction.
- RERR route invalid notification
- Patent Document 2 discloses an electronic device (system-on-system) having interconnection means (N) for connecting a plurality of modules (IP; AD, M) and enabling communication between the modules (IP; AD, M).
- Chips and communication resources are related to time division multiple access based on time slots that divide and share the available communication band
- the electronic device has at least one of a plurality of modules (IP; AD, M) And at least one network interface coupled to the interconnection means (N), the network interface (NI) being adapted to establish at least one connection to at least one further network interface (NI); At least one connection has at least one channel (ad).
- At least one network interface (NI) has at least one slot table (ST1-ST11) that reserves time slots of at least one channel (a-d).
- ST1-ST11 slot table
- Patent Documents 1 and 2 and Non-Patent Documents 1 to 4 are incorporated herein by reference.
- the analysis according to the invention is given below.
- NoC Network on chip
- each router performs a routing calculation
- the delay and area of each router increase due to the routing calculation.
- a table and arithmetic logic for determining the network output destination from the ID and address are required.
- the increase in the number of pipeline stages causes a problem that the required amount of the buffer for storing packets increases during the routing calculation.
- the router can be simplified and speeded up, but the number of router hops that pass from the sending side to the receiving side is not constant, so the area for storing routing information in the packet Need to be secured with a variable length.
- the amount of computation for calculating the routing at the source network interface first increases, the amount of delay increases, or if there is a situation during the route, specify it first. It is difficult to change the routed routing, and the applicability to dynamic routing is inferior.
- an object of the present invention is to provide a method, apparatus, and system for achieving low latency, low cost, and high reliability of a network-on-chip.
- a plurality of information processing units, storage units, and interface units are integrated on one or a plurality of chips, and a network including a network interface, a communication path, and a network router is integrated between the units.
- Information processing semiconductor element that performs information processing by exchanging information between packets via the network, and the network router is divided into a plurality of groups of a main router group and other router groups, and the number of times it passes through the router If the number of hops that can not reach the destination within the specified number of times, pass through the main router, each time through the main router, reset the number of times through the router, and perform routing to satisfy the specified number of times, A network router is provided.
- FIG. 1 is an overall block diagram of a multi-core SoC using an on-chip network according to an embodiment of the present invention. It is a block diagram of the main router in one Embodiment of this invention. It is a block diagram of a subrouter in one embodiment of the present invention. It is a figure which shows the format of the packet in one Embodiment of this invention. It is a figure which shows the format of flits 0 and 1 at the time of the network interface output of B3 in embodiment of this invention. It is a figure which shows the format of the flit 0 at the time of the main router output of E3 in embodiment of this invention. It is a figure which shows the format of the flit 0 at the time of the main router output of F6 in embodiment of this invention.
- the routers existing in NoC are divided into two types: main routers and sub-routers.
- the source network interface takes the source routing method to the appropriate main router, or when the adjacent network interface is the destination, the routing up to that point is collectively performed.
- Packets that have arrived at the main router are routed to the next main router or the destination network interface in a lump by the source routing method.
- the sub-router performs routing according to the partial routing information performed by the network interface or the main router. As a result, the sub-router is simplified, and the quantity, latency, and power consumption can be reduced.
- the routing calculation for the main router is slightly complicated, but in any case, it is necessary to calculate the route for the output from its own router. Does not occur.
- the main router In the network, prepare a network topology in which the main router is arranged within the specified hop count and reachable to another main router, and the others are arranged as sub-routers, and packets are within the specified hop count.
- a routing method that is controlled so as to pass through a path from the main router to the next main router or to the receiving side network interface.
- routing that does not pass the main router beyond the specified number of hops is not performed.
- the main router collectively performs routing within the specified number of hops to the next main router, and the sub-router processes the packet according to the routing information performed by the main router. Therefore, the sub-router performs routing on the arrived packet based on the routing information performed by the main router. The sub-router does not need to perform routing calculation on its own.
- the routing information for the sub-router performed by the main router is written in a specific flit in the packet.
- the sub-router performs routing by referring to this specific flit. Sub router too. It is possible to modify the routing information of this specific flit as required. The subrouter does not calculate routing.
- the downstream main router is based on the routing information of the upstream main router, similarly to the sub router. , Do the routing. This makes it possible to reduce the routing cost, particularly when the IP connected to the main router is the receiving destination.
- the limitation on the number of hops results from the restriction of the routing information that can be written in the limited data area of a specific flit in the packet.
- the limit on the number of hops is uniquely determined by how many areas of the fixed bit number can be taken.
- the routing information is compressed, the number of reachable hops is increased, and the number of hops to the main router is decreased.
- the number of main routers is increased in the vicinity of the IP where communication is concentrated, or a router arranged as a spare main router is replaced with a sub-router or A mechanism for distributing the load using the main router is provided.
- the on-chip network in the present invention optimizes the entire network by allowing the main router to have a certain autonomous function and the sub-router to operate in a dependent manner.
- the main router grasps the failure status and congestion status of the nearby network and performs routing according to it.
- the subrouter when a subrouter or link failure is detected, the subrouter converts the arrived packet into information in the packet by using an available channel for which no failure is detected. Regardless, it performs routing back to the main router.
- the main router grasps the situation of the failure and performs avoidance routing based on this.
- the reliability of the entire network is maintained by improving the hardware reliability of the main router over that of the sub-router without increasing the redundancy of the entire network.
- flits are added to the packet every time the routing information for the sub-router passes through the main router.
- the packet is returned to the transmission side without performing a new routing calculation based on this routing information at the time of retransmission processing when a failure is detected, data reception confirmation processing, and response processing to the data read request. It becomes possible.
- Such routing can be performed for all packets, or only for some of the packets that are highly necessary.
- the main router when returning a packet to the transmission side, in the present invention, the main router also performs packet transfer without performing autonomous routing like the sub router.
- FIG. 1 shows the overall configuration of a multi-core SoC to which one embodiment of the present invention is applied.
- the multi-core SoC 10 has a plurality of IP (Intellectual Property) cores 1.
- IP Intelligent Property
- Each IP core 1 is connected to a communication channel 5 via a network interface 2.
- the communication channel 5 is used for connection and communication between the network interface 2 and the main router 4 or the subrouter 3.
- the main router 4 and the sub router 3 are arranged on the multi-core SoC 10 at a certain ratio.
- FIG. 2 is a diagram showing a configuration of the main router 4 of FIG.
- the main router includes input latches 21n, 21e, 21s, 21w, 21i that receive input signals from IP (Intelligent Property) directly connected to the four directions of the NESW and the main router itself.
- IP Intelligent Property
- Route calculators 22n, 22e, 22s, 22w, 22i for calculating routes from destinations; Routing flit generation units 23n, 23e, 23s, 23w, 23i for generating a routing flit based on the result of route calculation; Selectors 24n, 24e, 24s, 24w, 24i for selecting one of the results of the routing flit generation units 23n, 23e, 23s, 23w, 23i and direct information from the input latches 21n, 21e, 21s, 21w, 21i, respectively , Input FIFOs (First In First Out Storage) 25n, 25e, 25s, 25w, 25i for storing selection results of the selectors 24n, 24e, 24s, 24w, 24i,
- the output destination of each input signal is arbitrated by the arbiter 27, and the selector 28n, 28e, 28s, 28w, 28i selects the output from the input FIFO 25n, 25e, 25s, 25w, 25i in any direction.
- Output buffers 29n, 29e, 29s, 29w, 29i for latching the selection results by the selectors 28n, 28e, 28s, 28w, 28i of the crossbar switch 26, respectively;
- the latch results in the output buffers 29n, 29e, 29s, 29w, and 29i are output.
- FIG. 3 is a diagram showing the configuration of the sub-router 3 in FIG.
- the sub-router since the sub-router does not have a routing mechanism, it is greatly simplified as compared with the main router 4 of FIG. That is, the input data is stored in the direct input FIFOs 45n, 45e, 45s, 45w, and 45i and then reaches the crossbar switch 46.
- the crossbar switch 46 arbitrates the output destination of each input signal by the arbiter 47, and selects the output from the input FIFO 45 in either direction by each selector 48n, 48e, 48s, 48w, 48i. The selection result is latched by the output buffers 49n, 49e, 49s, 49w, and 49i, and then output.
- FIG. 4 shows an example of a packet format in this embodiment.
- the packet includes flits 0 to 6.
- Each frit includes a sideband 82 and a packet body 86.
- the sideband 82 indicates an attribute of the packet body 86, and includes a valid bit 83, a head bit 84, and a terminal bit 85, and indicates whether the flit data is valid, the head flit of the packet, or the terminal flit.
- the packet body 86 has different data meanings for each frit.
- flit 0 includes a plurality of route information 87 (route information 1 to 4) for source routing and control information 88 related thereto.
- the flit 1 includes a flit length 89 of the entire packet, position information 90 of the target IP, and control information 91 related thereto.
- Flit 2 includes an access attribute 92 and an access address 93 of this packet.
- the route information 87 indicates the direction in which the packet is output when entering the subrouter 5.
- the number of hops of the subrouter passing to the main router or the destination is four at the maximum.
- pointer information indicating which of a plurality of route information 87 should be referred to is stored in the control information 88.
- the access attribute 92 includes attributes such as a read request, a read response, and a write request.
- the network interface 2 connected to the IP on the B3 side performs routing to the main router suitable for routing to the destination within 4 hops on the way.
- the target IP core since the target IP core cannot be reached within 4 hops, it is sent to the main router located at E3 or the main router located at C5. Here, it is assumed that it is sent to E3. In that case, flits 0 and 1 of the packet at the time of output of the network interface 2 of B3 are as shown in FIG.
- route information 1 to 4 (87) in FIG. 4 is stored in 101 to 104, route information 101 to 103 is in the E direction, and route information 104 is not a valid value. It becomes.
- control information 88 of FIG. 4 is 3 at 105, indicating that there are three valid data and that the route information 103 should be referenced next.
- G6 is stored in the position 107 of the target IP, and 8 is stored in the frit length 106.
- this packet is the sub-router 3 of B3 and the control information 105 is 3, it refers to the route information 103 and is output to the E side, that is, the C3 side. At this output time point, the control information 105 is subtracted by 1 by the sub-router 3 of B3 to be 2.
- control information 105 is 2, so the route information 102 is referred to and output to the E side, that is, D3.
- the control information 105 is further subtracted by 1 and becomes 1.
- the route calculation unit 22w decodes that the target position information 90 of the flit 1 is G6 as indicated by 108, and further G6 cannot be reached within 4 hops. Judge.
- the main router output of E3 is E direction, that is, F3.
- packet 0 is replaced as shown in FIG. That is, since the route information 111 to 113 is in the S direction and the route information 114 is not a valid value, it is Invalid.
- control information 88 (see FIG. 4) is 3 at 115, and the route information 113 is indicated as a pointer.
- This flit is generated by the routing flit generator 23w (see FIG. 2).
- the route calculation unit 22n decodes that the target position information 90 (see FIG. 4) of the flit 1 is G6 as indicated by 108, and further, the number of hops is 4 for G6. Judge that it can be reached within.
- the main router output of F6 is the E direction, that is, G6, and packet 0 is replaced as shown in FIG.
- the route information 121 indicates that it is taken into the IP core, and since the route information 122 to 124 is not a valid value, it becomes Invalid.
- control information 88 becomes 1 at 125, and the route information 121 is indicated as a pointer.
- This flit is generated by the routing flit generation unit 23n (see FIG. 2).
- the sub router 3 of G6 can send the packet to the IP core 1 of G6 based on the route information 121 of the fetched packet. It can be seen that data communication from B3 to G6 becomes possible by the above routing.
- Routing is performed with reference to only the route information 87. For this reason, it is possible to simplify the router and shorten the delay through the router.
- the routing calculation in the main router 4 adds an absolute value obtained by subtracting the coordinates of the main router 4 from the target IP position information 90 for each of the X axis and the Y axis. Since this addition result is the shortest number of hops, it is determined whether or not this addition result exceeds a specified value. If the addition result does not exceed the specified value, the routing information of each sub-router up to this receiving destination is written in the route information 87 of flit 0.
- the main router closest to the receiving destination is selected from the reachable main router group, and the routing information of the sub-router to this main router is the route information of flit 0. This is realized by writing to 87.
- routing information of the sub-router is written in the field of the route information 87 of flit 0, but it is also possible to have a specification in which the output direction of the main router is written in the same manner. In this case, routing information from the main router to the next main router or reception destination remains in flit 0 in a complete form.
- the main router 4 reads the control information 88 (see FIG. 4) when the packet arrives and the value is not 0, the routing performed by the main router 4 in the previous stage is not completed. Therefore, the main router 4 determines that autonomous routing is not performed, performs routing based on the route information 87 in the flit 0, and transfers the packet to the adjacent main router 4 or sub-router 3.
- the main router 4 since the main router 4 has the capability of performing autonomous routing, the routing including the main router 4 is performed, and the route information 87 ( It is also possible to discard the packet (see FIG. 4), perform routing again, and send a packet after writing new route information 87.
- FIG. 8 shows an example of frit 0 in which such information is described.
- route information 137 and control information 138 are the same as the route information 87 and control information 88 shown in FIG. 4, and information on which direction is output from the router and which part of routing is currently completed. It shows the pointer of whether or not.
- iteration number information 139 is added.
- the iteration count information 139 indicates how many times each route information 137 is repeated. In each of the information on the number of iterations currently performed, the iteration count information 139 may be updated by the sub-router, or the pointer in the control information 138 may have information including the iteration count.
- IP 9 is connected to the IP on the B3 side when the present invention is applied when a write packet is sent from the IP core 1 located at B3 in FIG. 1 to the IP core 1 located at G6. This shows a flit 0 of a packet output from the network interface 2.
- the network interface 2 of B3 performs routing to the main router 4 located at F6 in FIG. 1, and unlike the example shown above, the main router 4 located at E3 According to the invention, autonomous routing is not performed in the same manner as the sub-router.
- flit 0 is assumed to be 4 hops in the E direction and 3 hops in the S direction after leaving B3 to reach the main router 4 of F6, and a total number of hops of 7 is written in the control information 146. . Since there are two types of traveling directions, 144 and 145 entries of route information 3 and repetition information 3 are respectively Invalid. On the other hand, the route information 2 is first advanced by 4 hops, so that 142 of the route information 2 is E and 143 of the repetition information 2 is 4.
- the routers B3, C3, D3, E3, F3, F4, and F5 transfer the packet to the main router 4 of F6 while subtracting 1 from the control information 146.
- the main router 4 of F6 performs routing, generates flit 0 similar to FIG. 7, and sends the packet in the E direction. As a result, the packet can be transferred to a desired IP. If, for example, a failure or a mixture occurs in the F3 router or channel when passing through the E3 main router 4, the E3 main router 4 performs a new routing calculation and writes the result in flit 0 to create another route. Of course, it is also possible to perform the transfer.
- the number of hops is limited by a unique integer value due to the limitation of the bit information of the route information written to the flit.
- concepts such as the number of iterations are added to the route information in this way, the number of hops is limited at a high number of iterations. Can be relaxed.
- the upper limit of the number of hops can be set to a range within a certain route information field and repetition number field. Even in this case, it is possible to leave the property of avoiding failure and congestion by performing routing through the main router 4 at a certain frequency.
- the route information may be written in a specific frit by a method with a higher compression rate.
- the routing method according to the present invention When the routing method according to the present invention is used, the hardware cost, power, and latency of the sub-router 3 can be reduced. However, in order to perform routing via the main router 4, the main router 4 Tend to concentrate on access.
- the main router 4 and the sub-router 3 can be allocated within the upper limit of the number of hops, and the main router 4 and the sub-router 3 can be freely arranged otherwise. Accordingly, when there is an IP core 1 where traffic is likely to be concentrated, it is possible to reduce the access to a specific main router 4 by centrally arranging the main router 4 around the IP core 1.
- FIG. 10 is a diagram showing the overall multi-core SoC configuration.
- the network shown in FIG. 10 is the same as that shown in FIG. Therefore, loads on the main router 154 such as B2 and E3 in the vicinity may be concentrated.
- spare main routers 156 are arranged at B3, D4, E1, and F2.
- These spare main routers 156 normally operate in the same manner as the sub-routers 153. In other words, since the other main router 154 and the network interface 153 do not generate a packet to which the routing information up to the spare main router 156 is added, autonomous routing is not performed.
- the present invention includes means for grasping the congestion status of nearby links and sub-routers.
- the main router 4 uses the dedicated signal line to the main router 4 closest to each subrouter and the subrouter 3 to display the packet passage rate on the link, the packet contention rate of each output channel of the subrouter 3, and the information when the operation is abnormal. To the main router 4 using control packets.
- the main router 4 grasps the packet congestion status and failure status in the vicinity, and performs routing for arriving packets to avoid congestion.
- the sub-router 3 fails, since it does not have an autonomous routing capability, it cannot be determined where to send a packet from among available channels.
- the sub-router 3 in the present invention selects a route that can reach the nearest main router 4 with the closest number of hops from the available channels, and flits 0.
- the control information 88 is sent as 0.
- the routing is performed again with the target IP location information 90 as it is.
- the route that can reach the nearest main router 4 with the closest hop number is selected from the available channels, and the control information 88 of flit 0 is set to 0. Send out as By repeating this process, the main router 4 is reached, and packet transmission can be resumed with correct routing information.
- the sub-router 3 can improve the reliability of the network with almost no increase in hardware complexity.
- the main router 4 since the main router 4 is required to operate autonomously, as described in the tenth invention, the main router 4 is provided with redundant logic for error or an error correction detection function to In combination with the invention, it is also possible to improve the reliability of the entire on-chip network.
- the route information is generated by the main router 4 or the network interface 2, and the main router 4 deletes the route information to the main router held by the arrived packet from the flit and creates a new one.
- the route information is written in the same flit, in this embodiment, flit 0, and the packet is transferred.
- the packet length that is, the number of flits that one packet has does not change from the transmission source to the reception destination, which is one of the problems of the source routing method.
- the packet length increases. Further, it is possible to solve the problem that the cost of routing on the transmission side increases.
- the IP core that has received the request needs to respond with data toward the IP core of the transmission source.
- the main router 4 or the network interface 2 can omit the routing calculation in the response packet.
- the present invention proposes a method of maintaining all the route information from the transmission source in the packet by adding a flit containing the route information every time the main router 4 performs routing.
- FIG. 11 shows the configuration of the packet 201 when the packet is sent from the IP core 1 located at B3 in FIG. 1 to the IP core 1 located at G6, when the network interface 2 located at B3 is sent.
- the data stored in the route information 207, the control information 208, and the like are the same as those in FIG. 6, and the processing performed by the network interface 2 is equivalent.
- the flit length bit 209 is incremented by 1 and becomes 8.
- the value SEEE is stored.
- the frit 2 is moved to the frit 3
- the frit 0 is moved to the frit 2
- a new frit 0 is added.
- routing that leaves route information in a packet can be performed only for packet transfer with a specific attribute.
- the sub-router can be simplified. Overall, network latency can be shortened, and area costs and power costs can be reduced.
- IP address field 328 data 351 router 352 communication channel 353 used for communication example Communication channel 354 Virtual Express channel 361 DID (Destination IDs) used for communication example 362 Chained Header 381 Option type field 382 Option length field 383 Pointer field 384 IP address field
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Disclosed is a method which lowers latency in a network-on-chip, reduces costs, and increases reliability. Uniform routers of a plurality of routers existing in the system are grouped into two classes: main routers (4) and sub routers (3). Through the plurality of sub routers (3), a main router (4) handles all of the routing calculation up to the next main router or to the destination network interface. As the sub routers (3) do not need to perform routing calculation, logic can be omitted, latency when packets are passing the sub routers can be reduced, and cost can be lowered. Further, the reliability of the main routers (4) can be increased, and the sub routers (3) become able to respond to faults, when generated, by sending packets to the closest main router at the time of the fault, thereby increasing reliability.
Description
[関連出願についての記載]
本発明は、日本国特許出願:特願2009-125580号(2009年 5月25日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、半導体集積回路装置とネットワークルーティング方法に関し、特に、複数のIP(Intellectual Property)コアを集積したLSI集積回路(System On a Chip(SoC))における、IPコア間のデータ交信用ネットワークオンチップ(Network on a Chip: NoC)に適用して好適な装置と方法に関する。 [Description of related applications]
The present invention is based on the priority claim of Japanese patent application: Japanese Patent Application No. 2009-125580 (filed on May 25, 2009), the entire contents of which are incorporated herein by reference. Shall.
The present invention relates to a semiconductor integrated circuit device and a network routing method, and in particular, a data communication network between IP cores in an LSI integrated circuit (System On a Chip (SoC)) in which a plurality of IP (Intellectual Property) cores are integrated. The present invention relates to an apparatus and a method suitable for application to a chip (Network on a Chip: NoC).
本発明は、日本国特許出願:特願2009-125580号(2009年 5月25日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、半導体集積回路装置とネットワークルーティング方法に関し、特に、複数のIP(Intellectual Property)コアを集積したLSI集積回路(System On a Chip(SoC))における、IPコア間のデータ交信用ネットワークオンチップ(Network on a Chip: NoC)に適用して好適な装置と方法に関する。 [Description of related applications]
The present invention is based on the priority claim of Japanese patent application: Japanese Patent Application No. 2009-125580 (filed on May 25, 2009), the entire contents of which are incorporated herein by reference. Shall.
The present invention relates to a semiconductor integrated circuit device and a network routing method, and in particular, a data communication network between IP cores in an LSI integrated circuit (System On a Chip (SoC)) in which a plurality of IP (Intellectual Property) cores are integrated. The present invention relates to an apparatus and a method suitable for application to a chip (Network on a Chip: NoC).
従来、複数のIP(Intellectual Property)コアを集積したLSI集積回路(SoC:System On a Chip)において、IPコア間の接続はバスを用いて行っている。例えば、ARM社が提唱するAMBA(ARM社の登録商標)は、このようなバスの業界標準となっている。このAMBAは、コア数の増加、チップの複雑化に対応し、AHB(Advanced High performance Bus)、マルチレイヤAHB、AXI(Advanced eXtensible Interface)というように進化してきた。
Conventionally, in an LSI integrated circuit (SoC: System On a Chip) in which a plurality of IP (Intellectual Property) cores are integrated, connection between IP cores is performed using a bus. For example, AMBA (registered trademark of ARM) proposed by ARM has become an industry standard for such buses. This AMBA has evolved as AHB (Advanced High performance Bus), Multi-layer AHB, AXI (Advanced eXtensible Interface) in response to the increase in the number of cores and the complexity of chips.
しかしながら、バス構成では、配線長が長くなり周波数の向上に対応しづらくなる。また、複数IPからのアクセス競合に対する調停を集中的に行う必要がある。そのため、IP数の変動に対して、バスを作り直す必要が生じることなどの問題が生じている。
However, in the bus configuration, the wiring length becomes long and it is difficult to cope with the improvement of the frequency. In addition, it is necessary to centralize arbitration against access competition from a plurality of IPs. As a result, problems such as the need to recreate the bus have arisen with respect to fluctuations in the number of IPs.
これらの問題に対して、現状では、バスを階層的に接続することによって、ローカリティを持たせて対処する方法が、高性能なSoCでは積極的に行われてきた。
Currently, a method of dealing with these problems by providing a locality by hierarchically connecting buses has been actively performed in a high-performance SoC.
一方で、データをパケット化して送ることにより、通信のローカリティを有効に活用しつつ、調停を各ルータに分散させることによってスケーラビリティを確保可能なNoC(Network on Chip)は、米国Stanford大学のDally, W.J.等の以下の非特許文献1で提案され、近年積極的に研究されてきた。実際のチップに採用された例として、TILERA社のTILE64、Intel社の80コアチップ、 CEA-LetiのFAUSTチップ、STMicro社のSTNoC等があげられる。
On the other hand, NoC (Network on Chip), which can ensure scalability by distributing arbitration to each router while effectively utilizing the locality of communication by packetizing and sending data, is the University of Stanford University, W. J. et al. The following non-patent document 1 has been proposed and has been actively researched in recent years. Examples of actual chips adopted include TILEERA's TILE64, Intel's 80 core chip, CEA-Let's FAUST chip, STMicro's STNoC, and the like.
これらは、基本的に、図15に示すように、ルータ302と通信チャネル305によってネットワークを構成しており、図16に示すような複数フリットから構成されたパケットをこれらのネットワークに流すことによって、交信を実現する。
As shown in FIG. 15, these basically constitute a network by a router 302 and a communication channel 305. By sending a packet composed of a plurality of flits as shown in FIG. 16 to these networks, Realize communication.
ここで、各ルータ302は、受け取ったパケットを、送信先のネットワークインタフェース(NIF)に送るために適切な出力ポートに送出する。
Here, each router 302 sends the received packet to an appropriate output port for sending to the destination network interface (NIF).
このとき、ルータ302内で送信先のアドレスやIDを見た上で、ある一定規則に基づき、次のホップに向けた送出先を決定するルーティング・プロトコル方式と、
送信側のネットワークインタフェースにおいて、送信先までのルーティングを全て決定してしまい、ルーティング情報をパケットに含めるソースルーティング方式と、
が存在する。 At this time, after looking at the address and ID of the destination in the router 302, based on a certain rule, a routing protocol method for determining a destination for the next hop,
In the network interface on the sender side, all the routing to the destination is determined, and the source routing method that includes the routing information in the packet,
Exists.
送信側のネットワークインタフェースにおいて、送信先までのルーティングを全て決定してしまい、ルーティング情報をパケットに含めるソースルーティング方式と、
が存在する。 At this time, after looking at the address and ID of the destination in the router 302, based on a certain rule, a routing protocol method for determining a destination for the next hop,
In the network interface on the sender side, all the routing to the destination is determined, and the source routing method that includes the routing information in the packet,
Exists.
<ルーティング・プロトコル方式>
ルーティング・プロトコル方式は、入力チャネルから入ってきたパケットを解析し、アドレスやIDを抽出、この情報を基にルータに備えられているテーブルなどサーチし、当該パケットをどの出力チャネルに出力するかを決定し、その後、該出力チャネルに対しての調停を行い、パケットを出力する。 <Routing protocol method>
The routing protocol method analyzes a packet that has entered from an input channel, extracts an address and ID, searches a table provided in the router based on this information, and determines which output channel the packet is output to. After that, arbitration is performed for the output channel, and a packet is output.
ルーティング・プロトコル方式は、入力チャネルから入ってきたパケットを解析し、アドレスやIDを抽出、この情報を基にルータに備えられているテーブルなどサーチし、当該パケットをどの出力チャネルに出力するかを決定し、その後、該出力チャネルに対しての調停を行い、パケットを出力する。 <Routing protocol method>
The routing protocol method analyzes a packet that has entered from an input channel, extracts an address and ID, searches a table provided in the router based on this information, and determines which output channel the packet is output to. After that, arbitration is performed for the output channel, and a packet is output.
従って、出力先の決定に、論理的な動作が数ステップ入ることになる。
Therefore, several steps of logical operations are required to determine the output destination.
また、ルーティングを変更する際には、変更に関わる全てのルータにおいてルーティング規則の更新が必要となる。
Also, when changing the routing, it is necessary to update the routing rules in all routers involved in the change.
ルーティングに必要となるステップ数を削減する技術としては、ルーティング計算を一つ前のルータで行う「Next Routing Computation」手法が提案されている。これは、図17を例にとると、ルータR0からルータR1を介してルータR5に至るパケットがあった場合、ルータR1のルーティング計算をルータR0で、ルータR5のルーティング計算をR1で行う手法である。
As a technique for reducing the number of steps required for routing, a “Next Routing Computation” method in which routing calculation is performed by the previous router has been proposed. Taking FIG. 17 as an example, when there is a packet from the router R0 to the router R5 via the router R1, the routing calculation of the router R1 is performed by the router R0 and the routing calculation of the router R5 is performed by R1. is there.
さらに、仮想的にエクスプレス(Express)チャネルを張る方法や、予測ルーティングを行う方法などが提案されている。例えば、以下のような非特許文献2,3などが、その例である。
Furthermore, a method of virtually setting up an Express channel, a method of performing predictive routing, and the like have been proposed. For example, the following non-patent documents 2 and 3 are examples.
非特許文献2の手法では、図17に示すように、いくつかの中継ルータによるルーティング計算や調停などをバイパスする仮想チャネルを張ることによって、中継ルータで必要なパイプライン段数を削減する。バイパス時には、2サイクルでルータを通過する。
In the method of Non-Patent Document 2, as shown in FIG. 17, the number of pipeline stages required in the relay router is reduced by establishing a virtual channel that bypasses routing calculation and arbitration by several relay routers. When bypassed, it passes through the router in two cycles.
図17において、ルータ351は双方向のチャネル352で接続されている。ここで、ルータR1からルータR15への交信が多数存在する場合、仮想エクスプレスチャネル354を定義する。
In FIG. 17, routers 351 are connected by a bidirectional channel 352. Here, when there are many communications from the router R1 to the router R15, the virtual express channel 354 is defined.
ルータR2、R7、R11では、このチャネルで到着したパケットのルーティング計算、スイッチ調停などを省くことができる。このように、ルータR1からルータR3へのレイテンシとルータR3からR15へのレイテンシを短縮するものである。
Routers R2, R7, and R11 can omit the routing calculation and switch arbitration of packets arriving on this channel. In this way, the latency from the router R1 to the router R3 and the latency from the router R3 to R15 are shortened.
一方、非特許文献3の手法は、到着したパケットに対して、ルーティング計算を行うのと並行して、ある一定の予測ルールに基づき、投機的にパケットの出力方向を予測し、その方向のスイッチ調停、スイッチ通過を行い、出力してしまうことによって、投機が成功した場合には、ルーティング計算のサイクル分のレイテンシ短縮を図るものである。
On the other hand, the method of Non-Patent Document 3 predicts the output direction of a packet speculatively based on a certain prediction rule in parallel with performing the routing calculation for the arrived packet, and switches the direction of the packet. If the speculation is successful by performing arbitration and passing through the switch, the latency is shortened for the cycle of the routing calculation.
ルーティング計算の結果、この予測がはずれた場合には、出力ラッチや投機的に出力した方向のルータ内の入力ラッチ、入力データFIFO(First In First Out)に存在する当該パケットのフリットを取り消し、正しい出力方向に対するスイッチ調停、スイッチ通過を再度行う。
If this prediction is not correct as a result of the routing calculation, the flit of the packet existing in the output latch, the input latch in the router in the direction of speculative output, or the input data FIFO (First In First Out) is canceled and correct. Perform switch arbitration and switch passage for the output direction again.
<ソースルーティング方式>
ソースルーティング方式では、各ルータにおける出力チャネル情報を、送信側のネットワークインタフェースにおいて、あらかじめパケットに埋め込むことにより、各ルータでは、この情報を抽出するだけでルーティングを完了できる。 <Source routing method>
In the source routing method, the output channel information in each router is embedded in a packet in advance at the network interface on the transmission side, and each router can complete the routing simply by extracting this information.
ソースルーティング方式では、各ルータにおける出力チャネル情報を、送信側のネットワークインタフェースにおいて、あらかじめパケットに埋め込むことにより、各ルータでは、この情報を抽出するだけでルーティングを完了できる。 <Source routing method>
In the source routing method, the output channel information in each router is embedded in a packet in advance at the network interface on the transmission side, and each router can complete the routing simply by extracting this information.
例えば、Intel社の80-Tile 1.28TFLOPS Network-on-Chipでは、このソースルーティング方式を採用している(非特許文献4)。図18は、このチップにおけるパケットのフリット0を示している。図18に示すように、このチップでは、出力側ネットワークインタフェースでルータ毎に出力先を示したDID(Destination IDs)361を10ホップ分生成し、パケット内に定義している。これに従って、ルータは出力ポートを決定する。
For example, Intel's 80-Tile 1.28TFLOPS Network-on-Chip adopts this source routing method (Non-patent Document 4). FIG. 18 shows a flit 0 of the packet in this chip. As shown in FIG. 18, in this chip, 10 hops of DID (Destination IDs) 361 indicating the output destination for each router are generated by the output side network interface and defined in the packet. According to this, the router determines the output port.
従って、各ルータは、DIDの値を抽出するだけで、ルーティングが可能である。このように、ソースルーティング方式は、各ルータの構造を簡単化することができる。
Therefore, each router can perform routing only by extracting the DID value. As described above, the source routing method can simplify the structure of each router.
TCP/IP(Transport Control Protocol/Internet Protocol)などのコンピュータ間のLAN(Local Area Network)などでも、ソースルーティング方式はオプションとしてサポートされている。
The source routing method is supported as an option even in a LAN (Local Area Network) between computers such as TCP / IP (Transport Control Protocol / Internet Protocol).
これは、パケットが経由するネットワークの物理的な位置をIPアドレスとしてパケット中に明記しておき、これに従ってパケットをルーティングするものである。これには、ストリクト・ソースルーティング方式とルーズ・ソースルーティング方式の2種類が用意されている。
This specifies the physical location of the network through which the packet passes in the packet as an IP address and routes the packet accordingly. There are two types, a strict source routing method and a loose source routing method.
<ストリクト・ソースルーティング方式>
ストリクト・ソースルーティング方式は、ホップするすべてのネットワーク地点を、送信側のネットワークインタフェースにおいて、パケット中に明記したものであり、明記されていないネットワーク地点に達したパケットは破棄される。 <Strict source routing method>
In the strict source routing method, all network points to be hopped are specified in a packet at the network interface on the transmission side, and a packet that reaches a network point not specified is discarded.
ストリクト・ソースルーティング方式は、ホップするすべてのネットワーク地点を、送信側のネットワークインタフェースにおいて、パケット中に明記したものであり、明記されていないネットワーク地点に達したパケットは破棄される。 <Strict source routing method>
In the strict source routing method, all network points to be hopped are specified in a packet at the network interface on the transmission side, and a packet that reaches a network point not specified is discarded.
<ルーズ・ソースルーティング方式>
一方、ルーズ・ソースルーティング方式は、一部のネットワーク地点のみをパケット中に明記し、その間はルータによって補完したルーティングを許す方式で、明記されたネットワーク地点以外では、ルーティング・プロトコル(routing protocol)方式によって、各ネットワーク地点でルーティングを行い、パケット転送を行う。 <Loose source routing method>
On the other hand, in the loose source routing method, only a part of the network points are specified in the packet, and the route supplemented by the router is allowed in the meantime, and the routing protocol method is used except for the specified network points. Then, routing is performed at each network point and packet transfer is performed.
一方、ルーズ・ソースルーティング方式は、一部のネットワーク地点のみをパケット中に明記し、その間はルータによって補完したルーティングを許す方式で、明記されたネットワーク地点以外では、ルーティング・プロトコル(routing protocol)方式によって、各ネットワーク地点でルーティングを行い、パケット転送を行う。 <Loose source routing method>
On the other hand, in the loose source routing method, only a part of the network points are specified in the packet, and the route supplemented by the router is allowed in the meantime, and the routing protocol method is used except for the specified network points. Then, routing is performed at each network point and packet transfer is performed.
いずれの場合も、指定できるルータの最大ホップ数は9である。これらは、ルータのテストに用いられることが多い。
In any case, the maximum number of hops of the router that can be specified is 9. These are often used for router testing.
図19に、このソースルーティングの場合のパケットフォーマットを示す。図19において、オプションタイプ381が指定のオプションの場合、ソースルーティング方式となり、オプション長で指定されたIPアドレス分のソースルーティングが行える。
FIG. 19 shows a packet format in the case of this source routing. In FIG. 19, when the option type 381 is a designated option, the source routing method is used, and source routing for the IP address designated by the option length can be performed.
オプション長382の後は、オプションポインタ383と指定されたオプション長に相当するIPアドレス384が続く。nは最大9であることから、10以上のIPアドレスを指定することはできない。
The option length 382 is followed by an option pointer 383 and an IP address 384 corresponding to the designated option length. Since n is 9 at the maximum, it is not possible to specify an IP address of 10 or more.
特許文献1には、送信元と送信先との間のホップ数が大きい大規模のアドホックネットワークにおいて、小さな負荷で経路を修復できる経路修復方法が開示されている。送信元ノードAと送信先ノードKとの間に9個の無線ノードB,C…Jを中継する経路が確立されており、経路上では所定のホップ数ごとに管理ノードA,F,Kが配置されている。無線ノードI,J間の経路が消失すると、これを検知した無線ノードIが送信元方向で直近の管理ノードFを宛先としてRERR(経路無効通知)を送信する。このRERRを受信した管理ノードFは、送信先方向で直近の管理ノード(ここでは、送信先ノードK)を宛先とするRepair_REQ(経路修復要求)を送信して局所的な経路修復を実施し、消失した経路をバイパスする新たな経路を2つの管理ノードF,K間に確立する。特許文献2には、複数のモジュール(IP;A-D、M)を接続し、モジュール(IP;A-D、M)間の通信を可能にする相互接続手段(N)を有する電子装置(システム・オン・チップ)が提供され、通信リソースは、利用可能な通信帯域を分割して共有するタイムスロットに基づく時分割多重アクセスに関し、電子装置は、複数のモジュール(IP;A-D、M)のうち少なくとも1つを相互接続手段(N)に結合する少なくとも1つのネットワークインタフェースを更に有し、ネットワークインタフェース(NI)は、少なくとも1つの更なるネットワークインタフェース(NI)に少なくとも1つの接続を確立するように適合され、少なくとも1つの接続は、少なくとも1つのチャネル(a-d)を有する。少なくとも1つのネットワークインタフェース(NI)は、少なくとも1つのチャネル(a-d)のタイムスロットを予約する少なくとも1つのスロットテーブル(ST1-ST11)を有する。タイムスロットは、同じネットワークインタフェース(NI)に関連するチャネル(a-d)間で共有される構成が開示されている。
Patent Document 1 discloses a route repair method capable of repairing a route with a small load in a large-scale ad hoc network having a large number of hops between a transmission source and a transmission destination. A route for relaying the nine wireless nodes B, C... J is established between the source node A and the destination node K, and the management nodes A, F, and K are provided for each predetermined number of hops on the route. Has been placed. When the route between the wireless nodes I and J disappears, the wireless node I that has detected this transmits an RERR (route invalid notification) with the nearest management node F as the destination in the source direction. The management node F that has received this RERR transmits a Repair_REQ (path repair request) destined for the nearest management node (here, the destination node K) in the destination direction to perform local path repair, A new route that bypasses the lost route is established between the two management nodes F and K. Patent Document 2 discloses an electronic device (system-on-system) having interconnection means (N) for connecting a plurality of modules (IP; AD, M) and enabling communication between the modules (IP; AD, M). Chip) and communication resources are related to time division multiple access based on time slots that divide and share the available communication band, and the electronic device has at least one of a plurality of modules (IP; AD, M) And at least one network interface coupled to the interconnection means (N), the network interface (NI) being adapted to establish at least one connection to at least one further network interface (NI); At least one connection has at least one channel (ad). At least one network interface (NI) has at least one slot table (ST1-ST11) that reserves time slots of at least one channel (a-d). A configuration is disclosed in which time slots are shared between channels (a-d) associated with the same network interface (NI).
上記特許文献1、2及び非特許文献1~4の全開示内容はその引用をもって本書に繰込み記載する。
以下に本発明による分析を与える。 The entire disclosures of Patent Documents 1 and 2 and Non-Patent Documents 1 to 4 are incorporated herein by reference.
The analysis according to the invention is given below.
以下に本発明による分析を与える。 The entire disclosures of
The analysis according to the invention is given below.
ネットワークオンチップ(NoC)は、システムバスをネットワーク構成、パケットベース交信に置き換えることによって、効率化と性能向上を図ることを主眼としている。
Network on chip (NoC) aims to improve efficiency and performance by replacing the system bus with network configuration and packet-based communication.
しかしながら、従来の技術における各ルータがルーティング計算を行う方式によるルーティングでは、ルーティング計算によって、各ルータの遅延や面積が増加する。具体的には、IDやアドレスからネットワーク出力先を決定するためのテーブルや演算論理が必要となる。
However, in the routing based on the conventional technique in which each router performs a routing calculation, the delay and area of each router increase due to the routing calculation. Specifically, a table and arithmetic logic for determining the network output destination from the ID and address are required.
IDが増えた場合には、テーブルの物量やテーブル引きの電力、遅延が増加する。
When the ID increases, the amount of the table, the power of the table pull, and the delay increase.
遅延が増加した場合には、ネットワークの周波数を落としてスループットを落とすか、パイプライン段数を増やす必要が生じる。
When the delay increases, it is necessary to decrease the network frequency and decrease the throughput or increase the number of pipeline stages.
パイプライン段数の増加は、ルーティング計算中、パケットを格納するためのバッファの要求量が増すという問題が生じる。
The increase in the number of pipeline stages causes a problem that the required amount of the buffer for storing packets increases during the routing calculation.
また、ルーティングのレイテンシの増加を抑える各種提案も、ルータの複雑度を増加させ、物量が増えるという問題が生じる。
Also, various proposals for suppressing an increase in routing latency also increase the complexity of the router and increase the amount of material.
さらに、これらの方法の場合、障害やネットワーク混雑などの事情でルーティングを変更する場合には、各ルータのテーブル内容、もしくは演算論理を書き換える必要がある。
Furthermore, in the case of these methods, when routing is changed due to a failure or network congestion, it is necessary to rewrite the table contents of each router or the operation logic.
一方、ソースルーティング方式の場合、ルータの簡単化、高速化は可能であるが、送信側から受信側に至るまでに通過するルータのホップ数が一定でないため、パケット内にルーティング情報を格納する領域を可変長で確保する必要が生じる。
On the other hand, in the case of the source routing method, the router can be simplified and speeded up, but the number of router hops that pass from the sending side to the receiving side is not constant, so the area for storing routing information in the packet Need to be secured with a variable length.
もしくは固定長にした場合、小ホップ数の交信では無駄なフィールドが増えることや、このフィールドを制限する場合には、ホップ数が限られ、スケーラビリティを阻害する。
Or, if the fixed length is used, the number of useless fields increases in communication with a small number of hops, and if this field is restricted, the number of hops is limited and scalability is hindered.
また、ホップ数が多くなる場合、最初に送信元ネットワークインタフェースでルーティングを計算する計算量が増加し、遅延物量が増加することや、ルート途中で何からの事情が生じた場合に、最初に指定されたルーティングを変更しづらく、動的なルーティングへの適用力が劣る。
In addition, when the number of hops increases, the amount of computation for calculating the routing at the source network interface first increases, the amount of delay increases, or if there is a situation during the route, specify it first. It is difficult to change the routed routing, and the applicability to dynamic routing is inferior.
したがって、本発明の目的はネットワークオンチップの低レイテンシ化、低コスト化、高信頼化を図る方法、装置、システムを提供することにある。
Therefore, an object of the present invention is to provide a method, apparatus, and system for achieving low latency, low cost, and high reliability of a network-on-chip.
本発明によれば、複数の情報処理ユニット、記憶ユニット、インタフェースユニットが1又は複数チップに集積され、前記ユニット間をネットワークインタフェース、交信路、ネットワークルータから構成されるネットワークをあわせて集積し、ユニット間の情報をパケットで前記ネットワークを介して交信を行い情報処理を行う情報処理半導体素子であって、ネットワークルータは、メインルータ群と他のルータ群の複数のグループに分けられ、ルータを通る回数であるホップ数が規定の回数以内に受信先に到着できない場合には、メインルータを通り、メインルータを通る毎に、ルータを通る回数をリセットし、前記規定回数を満たすようにルーティングを行う、ネットワークルータが提供される。
According to the present invention, a plurality of information processing units, storage units, and interface units are integrated on one or a plurality of chips, and a network including a network interface, a communication path, and a network router is integrated between the units. Information processing semiconductor element that performs information processing by exchanging information between packets via the network, and the network router is divided into a plurality of groups of a main router group and other router groups, and the number of times it passes through the router If the number of hops that can not reach the destination within the specified number of times, pass through the main router, each time through the main router, reset the number of times through the router, and perform routing to satisfy the specified number of times, A network router is provided.
本発明によれば、ネットワークオンチップの低レイテンシ化、低コスト化、高信頼化を図ることができる。
According to the present invention, it is possible to achieve low latency, low cost, and high reliability of the network on chip.
はじめに、本発明の基本原理を説明し、つづいて具体的な実施例に即して説明する。
First, the basic principle of the present invention will be described, followed by a specific example.
本発明においては、NoC中に存在するルータをメインルータとサブルータの2種類に分ける。
In the present invention, the routers existing in NoC are divided into two types: main routers and sub-routers.
ネットワークのパケットは、まず、送信元のネットワークインタフェースにおいて、適切なメインルータまで、又は、近接するネットワークインタフェースが送信先の場合には、それまでのルーティングを、一括して、ソースルーティング方式を取る。
For network packets, first, the source network interface takes the source routing method to the appropriate main router, or when the adjacent network interface is the destination, the routing up to that point is collectively performed.
メインルータに届いたパケットは、当該メインルータにおいて、同様に、次のメインルータ、又は、送信先のネットワークインタフェースまでのルーティングを、一括して、ソースルーティング方式によってルーティングする。これらの一連の動作によって、サブルータでは、ネットワークインタフェース又はメインルータが行った部分的なルーティング情報に従って、ルーティングを行う。これにより、サブルータが簡単化され、物量とレイテンシ、消費電力削減が可能になる。
Packets that have arrived at the main router are routed to the next main router or the destination network interface in a lump by the source routing method. Through these series of operations, the sub-router performs routing according to the partial routing information performed by the network interface or the main router. As a result, the sub-router is simplified, and the quantity, latency, and power consumption can be reduced.
一方、メインルータは、ルーティング計算が若干複雑化するが、どちらにしても自ルータからの出力に関するルート計算を行う必要があるので、計算のケースが増えるのみであり、サブルータの削減分ほどの複雑化は生じない。
On the other hand, the routing calculation for the main router is slightly complicated, but in any case, it is necessary to calculate the route for the output from its own router. Does not occur.
また、サブルータネットワーク中のメインルータの比率を下げることによって、全体のコストを下げることが可能である。
Also, it is possible to reduce the overall cost by reducing the ratio of the main router in the sub-router network.
本発明においては、NoCルーティングの基本を提案する。
In the present invention, the basics of NoC routing are proposed.
ネットワーク中に、規定ホップ数以内でメインルータから別のメインルータへ到達できるような範囲で、メインルータを配置し、それ以外をサブルータとして配したネットワークトポロジを用意し、パケットは、規定ホップ数以内で、メインルータから次のメインルータまで、又は、受信側ネットワークインタフェースに至る経路を通るように制御されるルーティング方法が提供される。
In the network, prepare a network topology in which the main router is arranged within the specified hop count and reachable to another main router, and the others are arranged as sub-routers, and packets are within the specified hop count. Thus, there is provided a routing method that is controlled so as to pass through a path from the main router to the next main router or to the receiving side network interface.
すなわち、規定ホップ数を超えてメインルータを通らないルーティングは行わないことを意味している。
That is, routing that does not pass the main router beyond the specified number of hops is not performed.
本発明の第2の側面において、メインルータは、次のメインルータまでの規定ホップ数以内のルーティングを一括して行い、サブルータは、このメインルータが行ったルーティング情報に従って、パケットを処理する。従って、サブルータは、到着したパケットに対して、メインルータが行ったルーティング情報に基づき、ルーティングを行う。サブルータは、主体的に、ルーティングの計算を行う必要はない。
In the second aspect of the present invention, the main router collectively performs routing within the specified number of hops to the next main router, and the sub-router processes the packet according to the routing information performed by the main router. Therefore, the sub-router performs routing on the arrived packet based on the routing information performed by the main router. The sub-router does not need to perform routing calculation on its own.
本発明の第3の側面においては、メインルータで行ったサブルータ分のルーティング情報をパケット中の特定フリットに書き込む。サブルータは、この特定フリットを参照することによってルーティングを行う。サブルータも。必要に応じて、この特定フリットのルーティング情報を修正することは可能である。サブルータは、ルーティングの計算を行わない。
In the third aspect of the present invention, the routing information for the sub-router performed by the main router is written in a specific flit in the packet. The sub-router performs routing by referring to this specific flit. Sub router too. It is possible to modify the routing information of this specific flit as required. The subrouter does not calculate routing.
本発明の第4の側面においては、後段メインルータのルーティングが、前段のメインルータによってルーティング計算ができる場合には、後段のメインルータは、サブルータと同様に、前段メインルータのルーティング情報を基に、ルーティングを行う。これにより、特にメインルータに接続されるIPが受信先の場合に、ルーティングコストを下げることが可能となる。
In the fourth aspect of the present invention, when the routing of the subsequent main router can be calculated by the upstream main router, the downstream main router is based on the routing information of the upstream main router, similarly to the sub router. , Do the routing. This makes it possible to reduce the routing cost, particularly when the IP connected to the main router is the receiving destination.
本発明において、ホップ数の制限は、パケット中の特定フリットの限定されたデータ領域に書き込めるルーティング情報の制約から生じる。
In the present invention, the limitation on the number of hops results from the restriction of the routing information that can be written in the limited data area of a specific flit in the packet.
各サブルータのルーティング情報を固定されたビット数の領域でそのまま表現した場合には、ホップ数の制限はこの固定されたビット数の領域をいくつとれるかで一意に決定される。しかしながら、特に、メッシュ構成を採ったオンチップネットワークでは、パケットの直進が最も多いルーティングとなると予想される。
When the routing information of each sub-router is expressed as it is in a fixed bit number area, the limit on the number of hops is uniquely determined by how many areas of the fixed bit number can be taken. However, in particular, in an on-chip network that employs a mesh configuration, it is expected that routing with the most straight packets will be performed.
そこで、本発明の第5、第6の側面においては、このルーティング情報に反復回数という概念を加えることにより、ルーティング情報を圧縮し、到達可能なホップ数を増やし、メインルータにホップする回数を減少させる。
Therefore, in the fifth and sixth aspects of the present invention, by adding the concept of the number of iterations to the routing information, the routing information is compressed, the number of reachable hops is increased, and the number of hops to the main router is decreased. Let
このような工夫を加えた場合でも、ホップ回数の規定により、従来ネットワークオンチップと比べ、メインルータにパケットが集中する可能性がある。従って、交信が集中するIP近傍のメインルータでネットワーク混雑により性能が低下する可能性がある。
Even if such a device is added, packets may be concentrated on the main router compared to the conventional network-on-chip due to the hop count specification. Therefore, there is a possibility that the performance may deteriorate due to network congestion in the main router near the IP where communication is concentrated.
そこで、本発明の第7の側面においては、これらの問題に対応するために、交信が集中するIP近傍にメインルータを増やしたり、予備のメインルータとして配置したものを状況に応じて、サブルータやメインルータとして用いて負荷を分散させる仕組みが提供される。
Therefore, in the seventh aspect of the present invention, in order to cope with these problems, the number of main routers is increased in the vicinity of the IP where communication is concentrated, or a router arranged as a spare main router is replaced with a sub-router or A mechanism for distributing the load using the main router is provided.
本発明の第8-第10の側面においては、ネットワークの信頼性の向上を図る。本発明におけるオンチップネットワークは、メインルータに、自律的な一定の機能を持たせ、サブルータは、従属的に動作をさせることによって、ネットワーク全体の最適化を図る。
In the eighth to tenth aspects of the present invention, network reliability is improved. The on-chip network in the present invention optimizes the entire network by allowing the main router to have a certain autonomous function and the sub-router to operate in a dependent manner.
本発明の第8の側面においては、メインルータは、近傍のネットワークの故障状況、混雑状況を把握し、それに応じたルーティングを行う。
In the eighth aspect of the present invention, the main router grasps the failure status and congestion status of the nearby network and performs routing according to it.
また、本発明の第9の側面においては、サブルータ又はリンクの故障を検出した場合には、サブルータは、到着したパケットを、故障検出していない利用可能なチャネルを用いて、パケット内の情報に依らず、メインルータに戻すルーティングを行う。
In the ninth aspect of the present invention, when a subrouter or link failure is detected, the subrouter converts the arrived packet into information in the packet by using an available channel for which no failure is detected. Regardless, it performs routing back to the main router.
本発明の第10の側面においては、メインルータは、故障の状況を把握しており、これに基づき回避ルーティングを行う。
In the tenth aspect of the present invention, the main router grasps the situation of the failure and performs avoidance routing based on this.
また、本発明の第11の側面においては、ネットワーク全体の冗長度を上げることなく、メインルータのハードウェア信頼性をサブルータよりも向上させてネットワーク全体の信頼性を保つ。本発明の第11の側面においては、サブルータに対するルーティング情報を、メインルータを通る毎にパケットにフリットを追加する。これにより、送信側ネットワークインタフェースからパケットが送出される時点では、最初のメインルータに至るまでのルーティング情報のみを保持しているが、受信先ネットワークインタフェースに到達する際には、送信側から受信先までのすべてのルーティング情報を保持することになり、それに応じてパケットのフリット数を増加させるものである。
Also, in the eleventh aspect of the present invention, the reliability of the entire network is maintained by improving the hardware reliability of the main router over that of the sub-router without increasing the redundancy of the entire network. In the eleventh aspect of the present invention, flits are added to the packet every time the routing information for the sub-router passes through the main router. As a result, when the packet is transmitted from the transmission side network interface, only the routing information up to the first main router is retained, but when the packet reaches the reception destination network interface, the transmission side receives the reception destination. All the routing information up to this point is held, and the number of packet flits is increased accordingly.
これにより、故障を検出した場合の再送処理、データ受信の確認処理、データリード要求に対する応答処理の際に、このルーティング情報を基に、送信側にパケットを新たなルーティング計算を行うことなく、戻すことが可能になる。
As a result, the packet is returned to the transmission side without performing a new routing calculation based on this routing information at the time of retransmission processing when a failure is detected, data reception confirmation processing, and response processing to the data read request. It becomes possible.
このようなルーティングは、すべてのパケットに対して行うことも可能であるし、必要性の高い一部のパケットに対してのみ行うことも可能である。
Such routing can be performed for all packets, or only for some of the packets that are highly necessary.
また、送信側にパケットを戻す際には、本発明では、メインルータもサブルータ同様に自律的なルーティングを行わずにパケット転送を行うことになる。
Further, when returning a packet to the transmission side, in the present invention, the main router also performs packet transfer without performing autonomous routing like the sub router.
<実施形態1>
本発明の一実施形態について図面を参照して詳細に説明する。図1は、本発明の一つの実施形態を適用したマルチコアSoC全体の構成を示すである。本実施形態では、2次元メッシュ構造のオンチップネットワーク構成を採っている。図1において、マルチコアSoC10は、複数のIP(Intellectual Property)コア1を持つ。各々のIPコア1は、各々ネットワークインタフェース2を介し、通信チャネル5に接続される。通信チャネル5は、これらのネットワークインタフェース2と、メインルータ4又はサブルータ3との接続、交信を行うためのものである。メインルータ4とサブルータ3はそれぞれ一定の割合でマルチコアSoC10上に配置される。 <Embodiment 1>
An embodiment of the present invention will be described in detail with reference to the drawings. FIG. 1 shows the overall configuration of a multi-core SoC to which one embodiment of the present invention is applied. In this embodiment, an on-chip network configuration having a two-dimensional mesh structure is adopted. In FIG. 1, themulti-core SoC 10 has a plurality of IP (Intellectual Property) cores 1. Each IP core 1 is connected to a communication channel 5 via a network interface 2. The communication channel 5 is used for connection and communication between the network interface 2 and the main router 4 or the subrouter 3. The main router 4 and the sub router 3 are arranged on the multi-core SoC 10 at a certain ratio.
本発明の一実施形態について図面を参照して詳細に説明する。図1は、本発明の一つの実施形態を適用したマルチコアSoC全体の構成を示すである。本実施形態では、2次元メッシュ構造のオンチップネットワーク構成を採っている。図1において、マルチコアSoC10は、複数のIP(Intellectual Property)コア1を持つ。各々のIPコア1は、各々ネットワークインタフェース2を介し、通信チャネル5に接続される。通信チャネル5は、これらのネットワークインタフェース2と、メインルータ4又はサブルータ3との接続、交信を行うためのものである。メインルータ4とサブルータ3はそれぞれ一定の割合でマルチコアSoC10上に配置される。 <
An embodiment of the present invention will be described in detail with reference to the drawings. FIG. 1 shows the overall configuration of a multi-core SoC to which one embodiment of the present invention is applied. In this embodiment, an on-chip network configuration having a two-dimensional mesh structure is adopted. In FIG. 1, the
図2は、図1のメインルータ4の構成を示す図である。図2を参照すると、メインルータは、NESWの4方向とメインルータ自身が直接接続しているIP(Intellectual Property)からの入力信号を受ける入力ラッチ21n、21e、21s、21w、21iと、
送り先からルートを計算するルート計算部22n、22e、22s、22w、22iと、
ルート計算の結果に基づいてルーティング・フリットを生成するルーティングフリット生成部23n、23e、23s、23w、23iと、
ルーティングフリット生成部23n、23e、23s、23w、23iの結果と入力ラッチ21n、21e、21s、21w、21iからの直接の情報との一方をそれぞれ選択するセレクタ24n、24e、24s、24w、24iと、
セレクタ24n、24e、24s、24w、24iでの選択結果をそれぞれ蓄える入力FIFO(First In First OUT:先入れ先出し型記憶装置)25n、25e、25s、25w、25iと、
各入力信号の出力先をアービタ27で調停し、各々のセレクタ28n、28e、28s、28w、28iによって、いずれか方向の入力FIFO25n、25e、25s、25w、25iからの出力を選択するクロスバスイッチ26と、
クロスバスイッチ26のセレクタ28n、28e、28s、28w、28iによる選択結果をそれぞれラッチする出力バッファ29n、29e、29s、29w、29iと、
を備え、出力バッファ29n、29e、29s、29w、29iでのラッチ結果が出力される。 FIG. 2 is a diagram showing a configuration of themain router 4 of FIG. Referring to FIG. 2, the main router includes input latches 21n, 21e, 21s, 21w, 21i that receive input signals from IP (Intelligent Property) directly connected to the four directions of the NESW and the main router itself.
Route calculators 22n, 22e, 22s, 22w, 22i for calculating routes from destinations;
Routing flit generation units 23n, 23e, 23s, 23w, 23i for generating a routing flit based on the result of route calculation;
Selectors 24n, 24e, 24s, 24w, 24i for selecting one of the results of the routing flit generation units 23n, 23e, 23s, 23w, 23i and direct information from the input latches 21n, 21e, 21s, 21w, 21i, respectively ,
Input FIFOs (First In First Out Storage) 25n, 25e, 25s, 25w, 25i for storing selection results of the selectors 24n, 24e, 24s, 24w, 24i,
The output destination of each input signal is arbitrated by thearbiter 27, and the selector 28n, 28e, 28s, 28w, 28i selects the output from the input FIFO 25n, 25e, 25s, 25w, 25i in any direction. When,
Output buffers 29n, 29e, 29s, 29w, 29i for latching the selection results by the selectors 28n, 28e, 28s, 28w, 28i of the crossbar switch 26, respectively;
The latch results in the output buffers 29n, 29e, 29s, 29w, and 29i are output.
送り先からルートを計算するルート計算部22n、22e、22s、22w、22iと、
ルート計算の結果に基づいてルーティング・フリットを生成するルーティングフリット生成部23n、23e、23s、23w、23iと、
ルーティングフリット生成部23n、23e、23s、23w、23iの結果と入力ラッチ21n、21e、21s、21w、21iからの直接の情報との一方をそれぞれ選択するセレクタ24n、24e、24s、24w、24iと、
セレクタ24n、24e、24s、24w、24iでの選択結果をそれぞれ蓄える入力FIFO(First In First OUT:先入れ先出し型記憶装置)25n、25e、25s、25w、25iと、
各入力信号の出力先をアービタ27で調停し、各々のセレクタ28n、28e、28s、28w、28iによって、いずれか方向の入力FIFO25n、25e、25s、25w、25iからの出力を選択するクロスバスイッチ26と、
クロスバスイッチ26のセレクタ28n、28e、28s、28w、28iによる選択結果をそれぞれラッチする出力バッファ29n、29e、29s、29w、29iと、
を備え、出力バッファ29n、29e、29s、29w、29iでのラッチ結果が出力される。 FIG. 2 is a diagram showing a configuration of the
Routing
Input FIFOs (First In First Out Storage) 25n, 25e, 25s, 25w, 25i for storing selection results of the
The output destination of each input signal is arbitrated by the
The latch results in the
図3は、図1のサブルータ3の構成を示す図である。図3を参照すると、サブルータはルーティングを行う機構を保持していないので、図2のメインルータ4に比して大幅に簡単化される。すなわち、入力データは直接入力FIFO45n、45e、45s、45w、45iに格納された上で、クロスバスイッチ46に至る。クロスバスイッチ46は、各入力信号の出力先をアービタ47で調停し、各々のセレクタ48n、48e、48s、48w、48iによって、いずれか方向の入力FIFO45からの出力を選択する。この選択結果を出力バッファ49n、49e、49s、49w、49iによってラッチされ、その後出力される。
FIG. 3 is a diagram showing the configuration of the sub-router 3 in FIG. Referring to FIG. 3, since the sub-router does not have a routing mechanism, it is greatly simplified as compared with the main router 4 of FIG. That is, the input data is stored in the direct input FIFOs 45n, 45e, 45s, 45w, and 45i and then reaches the crossbar switch 46. The crossbar switch 46 arbitrates the output destination of each input signal by the arbiter 47, and selects the output from the input FIFO 45 in either direction by each selector 48n, 48e, 48s, 48w, 48i. The selection result is latched by the output buffers 49n, 49e, 49s, 49w, and 49i, and then output.
図4は、本実施形態におけるパケットのフォーマットの一例を示している。図4を参照すると、パケットは、フリット0からフリット6を含む。各フリットは、サイドバンド82とパケットボディ86を含む。サイドバンド82は、パケットボディ86の属性を示し、有効ビット83、先頭ビット84、終端ビット85を含み、それぞれフリットデータが有効か、パケットの先頭フリットか、終端フリットかを示している。パケットボディ86は、フリット毎に、データの意味が異なっている。
FIG. 4 shows an example of a packet format in this embodiment. Referring to FIG. 4, the packet includes flits 0 to 6. Each frit includes a sideband 82 and a packet body 86. The sideband 82 indicates an attribute of the packet body 86, and includes a valid bit 83, a head bit 84, and a terminal bit 85, and indicates whether the flit data is valid, the head flit of the packet, or the terminal flit. The packet body 86 has different data meanings for each frit.
本実施形態では、フリット0は、ソースルーティングのための複数のルート情報87(ルート情報1~4)とそれに関わる制御情報88を含む。
In this embodiment, flit 0 includes a plurality of route information 87 (route information 1 to 4) for source routing and control information 88 related thereto.
フリット1は、パケット全体のフリット長89、ターゲットIPの位置情報90、それらに関わる制御情報91を含む。
The flit 1 includes a flit length 89 of the entire packet, position information 90 of the target IP, and control information 91 related thereto.
フリット2は、このパケットのアクセス属性92とアクセスアドレス93を含む。
Flit 2 includes an access attribute 92 and an access address 93 of this packet.
フリット3からフリット6は、データ94が格納されている。
In the frit 3 to the frit 6, data 94 is stored.
ルート情報87は、それぞれ、サブルータ5に入ったときに、当該パケットをどの方向に出力するかを指示したものである。
The route information 87 indicates the direction in which the packet is output when entering the subrouter 5.
本実施例では、ルート情報1からルート情報4までの4個の情報を格納できることから、メインルータ又は目的地までに通るサブルータのホップ数は最大4となる。
In this embodiment, since four pieces of information from route information 1 to route information 4 can be stored, the number of hops of the subrouter passing to the main router or the destination is four at the maximum.
また、複数のルート情報87のうち、どれを参照すべきかのポインタ情報が制御情報88に格納されている。
In addition, pointer information indicating which of a plurality of route information 87 should be referred to is stored in the control information 88.
アクセス属性92は、リード要求、リード応答、ライト要求等の属性があげられる。
The access attribute 92 includes attributes such as a read request, a read response, and a write request.
以下、パケットの例を時間順に示して、本実施形態の動作を説明する。ここでは、図1のB3に位置するIPコア1から、G6に位置するIPコア1へパケットを送る場合について説明する。
Hereinafter, the operation of this embodiment will be described by showing an example of packets in time order. Here, a case will be described in which a packet is sent from IP core 1 located at B3 in FIG. 1 to IP core 1 located at G6.
最初に、B3側のIPに接続されているネットワークインタフェース2は、途中のホップ数4以内で目的地へのルーティング上ふさわしいメインルータまでのルーティングを行う。
First, the network interface 2 connected to the IP on the B3 side performs routing to the main router suitable for routing to the destination within 4 hops on the way.
本実施例では、4ホップ以内で目的のIPコアに到達できないことから、E3に位置するメインルータ、又は、C5に位置するメインルータに送ることとなる。ここでは、E3に送るものとする。その場合、B3のネットワークインタフェース2出力時点におけるパケットのフリット0、フリット1は、図5に示したようになる。
In this embodiment, since the target IP core cannot be reached within 4 hops, it is sent to the main router located at E3 or the main router located at C5. Here, it is assumed that it is sent to E3. In that case, flits 0 and 1 of the packet at the time of output of the network interface 2 of B3 are as shown in FIG.
すなわち、図5において、図4のルート情報1~4(87)は、それぞれ101~104に格納され、ルート情報101~103がE方向、ルート情報104は有効な値でないため、Invalid(無効)となる。
That is, in FIG. 5, route information 1 to 4 (87) in FIG. 4 is stored in 101 to 104, route information 101 to 103 is in the E direction, and route information 104 is not a valid value. It becomes.
また、図4の制御情報88は、105で3となり、有効なデータが3個入っており、次にルート情報103を参照すべきであるということを示している。
Also, the control information 88 of FIG. 4 is 3 at 105, indicating that there are three valid data and that the route information 103 should be referenced next.
また、ターゲットIPの位置が107に「G6」が格納され、フリット長106に8が格納されている。
Also, “G6” is stored in the position 107 of the target IP, and 8 is stored in the frit length 106.
このパケットは、B3のサブルータ3で、制御情報105が3であるため、ルート情報103を参照し、E側、すなわちC3側に出力される。この出力時点で、制御情報105は、B3のサブルータ3で1減算され、2とする。
Since this packet is the sub-router 3 of B3 and the control information 105 is 3, it refers to the route information 103 and is output to the E side, that is, the C3 side. At this output time point, the control information 105 is subtracted by 1 by the sub-router 3 of B3 to be 2.
C3のサブルータでは、同様に制御情報105が2であるため、ルート情報102を参照、E側すなわちD3に出力され、制御情報105はさらに1減算され1となる。
In the C3 sub-router, similarly, the control information 105 is 2, so the route information 102 is referred to and output to the E side, that is, D3. The control information 105 is further subtracted by 1 and becomes 1.
D3でも同様で、制御情報は0となった上で、E3に位置するメインルータ4に本パケットは到着する。
The same applies to D3, and the control information becomes 0, and the packet arrives at the main router 4 located at E3.
E3に位置するメインルータ4において、ルート計算部22wは、フリット1のターゲット位置情報90が108に示されるように、G6であることをデコードし、さらにG6には、ホップ数4以内で到達できないと判断する。
In the main router 4 located at E3, the route calculation unit 22w decodes that the target position information 90 of the flit 1 is G6 as indicated by 108, and further G6 cannot be reached within 4 hops. Judge.
従って、最も近いF6のメインルータまでのルーティングを行う。
Therefore, routing to the nearest F6 main router is performed.
この場合、E3のメインルータ出力はE方向、すなわちF3となり、その後は。S方向に3ホップ進むため、パケット0は、図6に示されたように置き換えられる。すなわち、ルート情報111~113がS方向、ルート情報114は有効な値でないため、Invalidとなる。
In this case, the main router output of E3 is E direction, that is, F3. To advance 3 hops in the S direction, packet 0 is replaced as shown in FIG. That is, since the route information 111 to 113 is in the S direction and the route information 114 is not a valid value, it is Invalid.
また、制御情報88(図4参照)は、115で3となり、ルート情報113をポインタとして示している。このフリットは、ルーティングフリット生成部23w(図2参照)で生成される。
Further, the control information 88 (see FIG. 4) is 3 at 115, and the route information 113 is indicated as a pointer. This flit is generated by the routing flit generator 23w (see FIG. 2).
これにより、先ほどの動作と同じように、F3、F4、F5のサブルータ3を経由して、F6のメインルータに至る。
This leads to the main router of F6 via the sub-routers 3 of F3, F4 and F5 as in the previous operation.
F6に位置するメインルータ4において、ルート計算部22nは、フリット1のターゲット位置情報90(図4参照)が108に示されるようにG6であることをデコードし、さらに、G6にはホップ数4以内で到達できると判断する。
In the main router 4 located at F6, the route calculation unit 22n decodes that the target position information 90 (see FIG. 4) of the flit 1 is G6 as indicated by 108, and further, the number of hops is 4 for G6. Judge that it can be reached within.
従って、ターゲット位置G6までのルーティングを行い、この場合、F6のメインルータ出力はE方向、すなわちG6となり、パケット0は、図7のように置き換えられる。
Therefore, routing to the target position G6 is performed. In this case, the main router output of F6 is the E direction, that is, G6, and packet 0 is replaced as shown in FIG.
すなわち、ルート情報121には、IPコアへの取り込みということが示され、ルート情報122~124は有効な値でないため、Invalidとなる。
That is, the route information 121 indicates that it is taken into the IP core, and since the route information 122 to 124 is not a valid value, it becomes Invalid.
また、制御情報88(図4参照)は、125で1となり、ルート情報121をポインタとして示している。このフリットは、ルーティングフリット生成部23n(図2参照)で生成される。
Further, the control information 88 (see FIG. 4) becomes 1 at 125, and the route information 121 is indicated as a pointer. This flit is generated by the routing flit generation unit 23n (see FIG. 2).
これにより、G6のサブルータ3は取り込んだパケットのルート情報121を基に、当該パケットをG6のIPコア1に送ることができる。以上のようなルーティングによって、B3からG6へのデータの交信が可能になることがわかる。
Thereby, the sub router 3 of G6 can send the packet to the IP core 1 of G6 based on the route information 121 of the fetched packet. It can be seen that data communication from B3 to G6 becomes possible by the above routing.
このとき、実際のルーティング計算を行ったのは、B3のネットワークインタフェースとE3、F6のメインルータ4だけであり、B3、C3、D3、F3、F4、F5、G6のサブルータ3では、フリット0のルート情報87のみを参照して、ルーティングを行っている。このため、ルータの簡単化とルータを通過する遅延の短縮が可能である。
At this time, only the network interface of B3 and the main router 4 of E3 and F6 performed the actual routing calculation, and the sub-router 3 of B3, C3, D3, F3, F4, F5, and G6 has flit 0. Routing is performed with reference to only the route information 87. For this reason, it is possible to simplify the router and shorten the delay through the router.
メインルータ4におけるルーティング計算は、ターゲットIP位置情報90からメインルータ4の座標をX軸、Y軸それぞれ減算した絶対値を加算する。この加算結果が最短のホップ数となるので、この加算結果が規定値を超えていないかどうかを判断する。該加算結果が規定値を超えていない場合には、この受信先までの各サブルータのルーティング情報をフリット0のルート情報87に書き込む。
The routing calculation in the main router 4 adds an absolute value obtained by subtracting the coordinates of the main router 4 from the target IP position information 90 for each of the X axis and the Y axis. Since this addition result is the shortest number of hops, it is determined whether or not this addition result exceeds a specified value. If the addition result does not exceed the specified value, the routing information of each sub-router up to this receiving destination is written in the route information 87 of flit 0.
該加算結果が規定値を超えている場合には、最もその受信先に近いメインルータを到達可能なメインルータ群から一つ選択し、このメインルータまでのサブルータのルーティング情報をフリット0のルート情報87に書き込むことによって実現される。
When the addition result exceeds the specified value, the main router closest to the receiving destination is selected from the reachable main router group, and the routing information of the sub-router to this main router is the route information of flit 0. This is realized by writing to 87.
図5から図7の例では、サブルータのルーティング情報のみを、フリット0のルート情報87のフィールドに書き込んでいるが、メインルータの出力方向も同様に書き込む仕様とすることも可能である。この場合、メインルータから次のメインルータ又は受信先までのルーティング情報が、完全な形でフリット0に残ることになる。
In the examples of FIGS. 5 to 7, only the routing information of the sub-router is written in the field of the route information 87 of flit 0, but it is also possible to have a specification in which the output direction of the main router is written in the same manner. In this case, routing information from the main router to the next main router or reception destination remains in flit 0 in a complete form.
また、メインルータ4において、パケットが到着した際に、制御情報88(図4参照)を読み取り、0の値となっていない場合には、前段のメインルータ4で行ったルーティングが終わっていないことを判断できるため、当該メインルータ4において自律的なルーティングを行わないと判断し、フリット0中のルート情報87を基に、ルーティングを行い、隣接するメインルータ4又はサブルータ3にパケットを転送する。
Further, when the main router 4 reads the control information 88 (see FIG. 4) when the packet arrives and the value is not 0, the routing performed by the main router 4 in the previous stage is not completed. Therefore, the main router 4 determines that autonomous routing is not performed, performs routing based on the route information 87 in the flit 0, and transfers the packet to the adjacent main router 4 or sub-router 3.
この判断論理を加えることにより、オンチップネットワーク中のすべてのメインルータ4で自律的なルーティング計算を行う必要がなくなるため、メインルータ4の負荷を軽減することが可能である。
By adding this determination logic, it is not necessary to perform autonomous routing calculation in all the main routers 4 in the on-chip network, so that the load on the main router 4 can be reduced.
しかしながら、メインルータ4は自律的なルーティングを行う能力を備えているため、当該メインルータ4を含んだルーティングが行われており、自律的なルーティングを行う必要がない場合においても、ルート情報87(図4参照)を破棄し、再度ルーティングを行い、あらたなルート情報87を書き込んだ上でパケットを送出することも可能である。
However, since the main router 4 has the capability of performing autonomous routing, the routing including the main router 4 is performed, and the route information 87 ( It is also possible to discard the packet (see FIG. 4), perform routing again, and send a packet after writing new route information 87.
一方で、2次元メッシュやそれに準じたネットワークトポロジを採ったオンチップネットワークでは、パケットは直進する確率が高くなる。このため、その特性を活かして、同一方向への転送回数を反復数としてルート情報に加えることにより、よりホップ数の多いルーティング情報を限られたフリットの領域に記すことが可能である。請求項5、6はこのような考え方に基づいたものである。
On the other hand, in an on-chip network adopting a two-dimensional mesh or a network topology based on the two-dimensional mesh, the probability that the packet goes straight increases. For this reason, it is possible to write routing information with a larger number of hops in a limited frit area by adding the number of transfers in the same direction as the number of repetitions to the route information by taking advantage of this characteristic. Claims 5 and 6 are based on this concept.
図8に、このような情報を記したフリット0の例を示す。図8において、ルート情報137と制御情報138は、図4で示したルート情報87と制御情報88と同様であり、それぞれルータからどの方向へ出力するかという情報と、現在どの部分のルーティングまで完了しているかのポインタを示すものである。ここに、反復回数情報139を加える。
FIG. 8 shows an example of frit 0 in which such information is described. In FIG. 8, route information 137 and control information 138 are the same as the route information 87 and control information 88 shown in FIG. 4, and information on which direction is output from the router and which part of routing is currently completed. It shows the pointer of whether or not. Here, iteration number information 139 is added.
反復回数情報139は、それぞれのルート情報137が何回繰り返されるかを示したものである。それぞれ、現在、何回反復したかの情報は、反復回数情報139をサブルータで更新してもよいし、制御情報138中のポインタに反復回数を含めた情報を持たせることも可能である。
The iteration count information 139 indicates how many times each route information 137 is repeated. In each of the information on the number of iterations currently performed, the iteration count information 139 may be updated by the sub-router, or the pointer in the control information 138 may have information including the iteration count.
図9は、図1のB3に位置するIPコア1から、G6に位置するIPコア1への書き込みのパケットを送る場合に、本発明を適用した場合の、B3側のIPに接続されているネットワークインタフェース2が出力するパケットのフリット0を示したものである。
9 is connected to the IP on the B3 side when the present invention is applied when a write packet is sent from the IP core 1 located at B3 in FIG. 1 to the IP core 1 located at G6. This shows a flit 0 of a packet output from the network interface 2.
本実施例では、図1における、F6に位置するメインルータ4までのルーティングをB3のネットワークインタフェース2が行っており、先に示した例と異なり、E3に位置するメインルータ4は、請求項4の発明に従ってサブルータと同様で自律的なルーティングを行わないものとしている。
In the present embodiment, the network interface 2 of B3 performs routing to the main router 4 located at F6 in FIG. 1, and unlike the example shown above, the main router 4 located at E3 According to the invention, autonomous routing is not performed in the same manner as the sub-router.
図9において、フリット0は、B3を出た後E方向に4ホップ、S方向に3ホップ進んでF6のメインルータ4に至るとしており、ホップ数の合計7が制御情報146に書き込まれている。進む方向はこの2種であるため、ルート情報3、反復情報3の144、145エントリはそれぞれInvalidとされる。一方、まず、E方向へ4ホップ進むので、ルート情報2の142はE、反復情報2の143は4とされる。
In FIG. 9, flit 0 is assumed to be 4 hops in the E direction and 3 hops in the S direction after leaving B3 to reach the main router 4 of F6, and a total number of hops of 7 is written in the control information 146. . Since there are two types of traveling directions, 144 and 145 entries of route information 3 and repetition information 3 are respectively Invalid. On the other hand, the route information 2 is first advanced by 4 hops, so that 142 of the route information 2 is E and 143 of the repetition information 2 is 4.
これにより、B3、C3、D3、E3、F3、F4、F5の各ルータは、制御情報146を1減算しながら、当該パケットをF6のメインルータ4に転送する。
Thus, the routers B3, C3, D3, E3, F3, F4, and F5 transfer the packet to the main router 4 of F6 while subtracting 1 from the control information 146.
F6のメインルータ4は、到着したパケットの制御情報146が0であるため、ルーティングを行い、図7と同様のフリット0を生成し、E方向へパケットを送出する。これによって、パケットを所望のIPへ転送することができる。
E3のメインルータ4通過時に、例えばF3のルータやチャネルに故障や混在が生じている場合には、E3のメインルータ4は新たなルーティング計算を行い、その結果をフリット0に書き込んで別のルートで転送を行っても良いことは勿論である。 Since the control information 146 of the arrived packet is 0, themain router 4 of F6 performs routing, generates flit 0 similar to FIG. 7, and sends the packet in the E direction. As a result, the packet can be transferred to a desired IP.
If, for example, a failure or a mixture occurs in the F3 router or channel when passing through the E3main router 4, the E3 main router 4 performs a new routing calculation and writes the result in flit 0 to create another route. Of course, it is also possible to perform the transfer.
E3のメインルータ4通過時に、例えばF3のルータやチャネルに故障や混在が生じている場合には、E3のメインルータ4は新たなルーティング計算を行い、その結果をフリット0に書き込んで別のルートで転送を行っても良いことは勿論である。 Since the control information 146 of the arrived packet is 0, the
If, for example, a failure or a mixture occurs in the F3 router or channel when passing through the E3
フリットに書き込むルート情報のビットフィールドの制限から、整数の一意の値でホップ数を制限していたが、このようにルート情報に反復回数などの概念を加えると、高い反復回数ではホップ数の制限を緩和することが可能になる。このため、ホップ数の上限を、ある一定のルート情報フィールドおよび反復回数フィールドに入る範囲という状態することもできる。それによっても、ある程度の頻度でメインルータ4を通るルーティングをすることによって、故障、混雑を回避できる性質を残すことができる。
The number of hops is limited by a unique integer value due to the limitation of the bit information of the route information written to the flit. However, if concepts such as the number of iterations are added to the route information in this way, the number of hops is limited at a high number of iterations. Can be relaxed. For this reason, the upper limit of the number of hops can be set to a range within a certain route information field and repetition number field. Even in this case, it is possible to leave the property of avoiding failure and congestion by performing routing through the main router 4 at a certain frequency.
ここでは、反復数とルート情報フィールドとを明確に分離したが、さらに圧縮率を高めた方法でルート情報を特定フリットに書き込んでもよい。
Here, the number of iterations and the route information field are clearly separated, but the route information may be written in a specific frit by a method with a higher compression rate.
本発明における、ルーティング手法を用いた場合には、サブルータ3のハードウェアコストや電力、レイテンシを短縮することが可能になるが、メインルータ4を経由するようなルーティングを行うために、メインルータ4にアクセスが集中しやすくなる傾向が生じる。
When the routing method according to the present invention is used, the hardware cost, power, and latency of the sub-router 3 can be reduced. However, in order to perform routing via the main router 4, the main router 4 Tend to concentrate on access.
本発明においては、メインルータ4とサブルータ3の配置分けは、ホップ数の上限以内に必ずメインルータ4を配置し、それ以外は、自由に、メインルータ4とサブルータ3を配置できる。従って、トラフィックが集中しそうなIPコア1が存在する場合、IPコア1の周辺にメインルータ4を集中的に配置して、特定のメインルータ4へのアクセスを緩和することも可能である。
In the present invention, the main router 4 and the sub-router 3 can be allocated within the upper limit of the number of hops, and the main router 4 and the sub-router 3 can be freely arranged otherwise. Accordingly, when there is an IP core 1 where traffic is likely to be concentrated, it is possible to reduce the access to a specific main router 4 by centrally arranging the main router 4 around the IP core 1.
図10は、マルチコアSoC全体構成を示す図である。図10のネットワークは、図1と同様であるが、トラフィックの混雑するIPコア151がD2の位置に存在する。そのため、近傍のB2、E3などのメインルータ154への負荷が集中する可能性がある。それを回避するために、予備のメインルータ156を、B3、D4、E1、F2に配置している。
FIG. 10 is a diagram showing the overall multi-core SoC configuration. The network shown in FIG. 10 is the same as that shown in FIG. Therefore, loads on the main router 154 such as B2 and E3 in the vicinity may be concentrated. In order to avoid this, spare main routers 156 are arranged at B3, D4, E1, and F2.
これらの予備のメインルータ156は、通常は、サブルータ153と同様に動作する。すわなち、予備のメインルータ156までのルーティング情報を付加したパケットを、他のメインルータ154やネットワークインタフェース153は生成しないため、自律的なルーティングを行わないものである。
These spare main routers 156 normally operate in the same manner as the sub-routers 153. In other words, since the other main router 154 and the network interface 153 do not generate a packet to which the routing information up to the spare main router 156 is added, autonomous routing is not performed.
しかしながら、D2に位置するIPコア151へのアクセスが集中し、B2、E3に位置するメインルータ154へのチャネル155が混雑した場合には、その情報がB3、D4、E1、F2に配置している予備のメインルータ156に伝えられる。この場合、これらの予備のメインルータ156は、通過するパケットを、予備のメインルータ156内で再ルーティングして、B2、E3に位置するメインルータ4を通らずに、D2へ至るようにパケットを再ルーティングする。これにより、B2、E3のメインルータ4の負荷を軽減することが可能になる。
However, when access to the IP core 151 located in D2 is concentrated and the channel 155 to the main router 154 located in B2 and E3 is congested, the information is arranged in B3, D4, E1, and F2. To the spare main router 156. In this case, these spare main routers 156 reroute the passing packets within the spare main router 156, and route the packets to D2 without passing through the main router 4 located at B2 and E3. Reroute. As a result, it is possible to reduce the load on the main router 4 of B2 and E3.
このような負荷分散や故障回避の仕組みのために、本発明(請求項8)では、近傍のリンク、サブルータの混雑状況を把握する手段を備える。例えば、メインルータ4はリンクにおけるパケットの通過率、サブルータ3の各出力チャネルのパケット競合率、動作異常時にはその情報などを、各サブルータに最も近いメインルータ4との間の専用信号線やサブルータ3からメインルータ4への制御用パケットを用いて収集する。
For such a load distribution and failure avoidance mechanism, the present invention (Claim 8) includes means for grasping the congestion status of nearby links and sub-routers. For example, the main router 4 uses the dedicated signal line to the main router 4 closest to each subrouter and the subrouter 3 to display the packet passage rate on the link, the packet contention rate of each output channel of the subrouter 3, and the information when the operation is abnormal. To the main router 4 using control packets.
これらの情報を基にメインルータ4は、近傍のパケット混雑状況や故障状況を把握し、混雑を避けるルーティングを、到着したパケットに対して行う。
Based on these pieces of information, the main router 4 grasps the packet congestion status and failure status in the vicinity, and performs routing for arriving packets to avoid congestion.
また、本発明(請求項4)によって、自律的にルーティングする必要のないパケットがメインルータ4又は予備のメインルータ6に到着した場合でも、このような状況の場合には、ルート情報87を破棄し、再度故障や混雑を回避したルーティングを行い、あらたなルート情報87を書き込んだ上でパケットを送出することも可能である。
Further, according to the present invention (Claim 4), even when a packet that does not need to be routed autonomously arrives at the main router 4 or the spare main router 6, in such a situation, the route information 87 is discarded. It is also possible to perform routing avoiding a failure or congestion again and send a packet after writing new route information 87.
また、サブルータ3が故障した場合、自律的なルーティング能力を具備していないため、利用可能なチャネルの中からどこにパケットを送出すればよいかを判断することができない。
Also, when the sub-router 3 fails, since it does not have an autonomous routing capability, it cannot be determined where to send a packet from among available channels.
従って、本発明(請求項9)におけるサブルータ3は、故障を検出した際には、利用可能なチャネルの中から、近傍のメインルータ4に最もホップ数が近く到達できるルートを選択し、フリット0の制御情報88を0として送出する。
Therefore, when detecting a failure, the sub-router 3 in the present invention (Claim 9) selects a route that can reach the nearest main router 4 with the closest number of hops from the available channels, and flits 0. The control information 88 is sent as 0.
このようなパケットを受け取るルータがメインルータ4の場合には、そのままターゲットIP位置情報90で再度ルーティングを行う。
When the router that receives such a packet is the main router 4, the routing is performed again with the target IP location information 90 as it is.
一方、サブルータ3の場合には、前段のサブルータと同様に、利用可能なチャネルの中から、近傍のメインルータ4に最もホップ数が近く到達できるルートを選択し、フリット0の制御情報88を0として送出する。この処理を繰り返すことによりメインルータ4に到達し、再度正しいルーティング情報によりパケットの伝送を再開可能である。
On the other hand, in the case of the sub-router 3, as in the previous sub-router, the route that can reach the nearest main router 4 with the closest hop number is selected from the available channels, and the control information 88 of flit 0 is set to 0. Send out as By repeating this process, the main router 4 is reached, and packet transmission can be resumed with correct routing information.
これにより、サブルータ3はほとんどハードウェア複雑度を上昇することなく、ネットワークの信頼性を向上させることができる。
Thereby, the sub-router 3 can improve the reliability of the network with almost no increase in hardware complexity.
一方で、メインルータ4は自律的な動作を求められるので、第10発明で記したように、メインルータ4には、エラーに備えた冗長論理、又はエラー訂正検出機能を備えることにより、第9発明と組み合わせて、オンチップネットワーク全体の信頼性を向上させることも可能である。
On the other hand, since the main router 4 is required to operate autonomously, as described in the tenth invention, the main router 4 is provided with redundant logic for error or an error correction detection function to In combination with the invention, it is also possible to improve the reliability of the entire on-chip network.
最後に本発明(請求項11)を説明する。今まで説明してきた発明では、ルート情報は、メインルータ4又はネットワークインタフェース2が生成し、メインルータ4は、到着したパケットが保持する、当該メインルータまでのルート情報をフリットから削除し、新たなルート情報を同一のフリット、本実施の形態では、フリット0に書き込んで、パケットの転送を行っていた。
Finally, the present invention (claim 11) will be described. In the invention described so far, the route information is generated by the main router 4 or the network interface 2, and the main router 4 deletes the route information to the main router held by the arrived packet from the flit and creates a new one. The route information is written in the same flit, in this embodiment, flit 0, and the packet is transferred.
この方法では、パケット長、すなわち1パケットが持つフリット数が送信元から受信先まで変化せず、ソースルーティング方式の問題の一つであった、ルーティングのホップ数が増加するとパケット長が増えて、また送信側がルーティングを行うコストが大きくなるという問題を解決可能である。
In this method, the packet length, that is, the number of flits that one packet has does not change from the transmission source to the reception destination, which is one of the problems of the source routing method. When the number of routing hops increases, the packet length increases. Further, it is possible to solve the problem that the cost of routing on the transmission side increases.
しかしながら、例えば、リード要求のようなパケットは、送信元のIPコアに向けて、要求を受け取ったIPコアが、データを応答する必要がある。
However, for example, for a packet such as a read request, the IP core that has received the request needs to respond with data toward the IP core of the transmission source.
また、それ以外にも受領通知や、エラー発生時に送信元のIPコアに向けて応答パケットを送り返す必要が生じることがある。ルート情報を送信元からすべて保持しておけば、応答パケットでは、メインルータ4又はネットワークインタフェース2はルーティング計算を省くことが可能となる。
In addition, there are cases where it is necessary to send a response packet back to the IP core of the transmission source in the event of an acknowledgment or an error. If all the route information is stored from the transmission source, the main router 4 or the network interface 2 can omit the routing calculation in the response packet.
本発明(請求項11)では、メインルータ4でルーティングを行うたびにルート情報が入ったフリットを追加してゆくことにより、送信元からのルート情報をすべてパケット内に維持する方法を提案する。
The present invention (Claim 11) proposes a method of maintaining all the route information from the transmission source in the packet by adding a flit containing the route information every time the main router 4 performs routing.
図11は、図1のB3に位置するIPコア1から、G6に位置するIPコア1へパケットを送る場合の、B3に位置するネットワークインタフェース2の送出時点でのパケット201の構成を示している。ここでは、ルート情報207、制御情報208などに格納されているデータは、図6と同様である、ネットワークインタフェース2の行う処理は同等である。
FIG. 11 shows the configuration of the packet 201 when the packet is sent from the IP core 1 located at B3 in FIG. 1 to the IP core 1 located at G6, when the network interface 2 located at B3 is sent. . Here, the data stored in the route information 207, the control information 208, and the like are the same as those in FIG. 6, and the processing performed by the network interface 2 is equivalent.
当該パケット201が、E3に位置するメインルータ4に到着した際、同様にルーティングを行うが、図12に示したように、図11の時点のフリット0がフリット2に移され、制御情報212は図12に示したように過去のルーティングのログである旨のフラグがセットされる。
When the packet 201 arrives at the main router 4 located at E3, routing is performed in the same manner, but as shown in FIG. 12, flit 0 at the time of FIG. 11 is moved to flit 2, and the control information 212 is As shown in FIG. 12, a flag indicating that the log is a past routing log is set.
また、パケット201のフリット長がのびるため、フリット長ビット209は1加算され、8となる。また、新たに追加されるフリット0では、ルート情報に207に本メインルータ4からの出力チャネルも書き加えられるため、SEEEという値が格納される。
Also, since the flit length of the packet 201 is extended, the flit length bit 209 is incremented by 1 and becomes 8. In addition, in the newly added flit 0, since the output channel from the main router 4 is also added to the route information 207, the value SEEE is stored.
同様に、F6に位置するメインルータ4では、図13に示すように、フリット2がフリット3に、フリット0がフリット2にそれぞれ移動され、新たなフリット0を加える、フリット長209はさらに1加算され9となる。
Similarly, in the main router 4 located at F6, as shown in FIG. 13, the frit 2 is moved to the frit 3, the frit 0 is moved to the frit 2, and a new frit 0 is added. 9
これにより、当該パケットがG6に到達した時点では、B3までのすべてのルーティング情報がフリットに記載されていることになる。
Thus, when the packet reaches G6, all routing information up to B3 is described in the flit.
その後、G6からB3へ応答パケットを送る場合には、図14に示したように、受け取ったルーティング情報の方向と順序を逆にして制御情報フィールド212をルーティング予告として、折り返す。これにより、応答パケットはルーティング計算を行うことなく、パケットをB3に位置するIPコア1まで送り返すことが可能になる。
Thereafter, when a response packet is sent from G6 to B3, the direction and order of the received routing information are reversed as shown in FIG. As a result, the response packet can be sent back to the IP core 1 located at B3 without performing routing calculation.
もちろん、このような、ルート情報をパケットに残すルーティングは特定属性のパケット転送のみに行うことも可能である。
Of course, such routing that leaves route information in a packet can be performed only for packet transfer with a specific attribute.
以下に本実施形態の作用効果を説明する。
Hereinafter, the function and effect of this embodiment will be described.
メインルータによって、複数ルータのルーティング計算を一括して行い、他のサブルータはそれに従ってパケット転送を行うことになるので、サブルータの簡単化を図ることができる。全体として、ネットワークレイテンシの短縮と面積コスト、電力コストの削減が可能になる。
Since the main router performs the routing calculation of a plurality of routers in a lump and the other sub-routers perform packet transfer accordingly, the sub-router can be simplified. Overall, network latency can be shortened, and area costs and power costs can be reduced.
また、ソースルーティング方式の欠点であったスケーラビリティの問題と、ローカルに生じた不具合、混雑への対応が容易にできるようになり、ネットワークの高信頼化を図ることができる。
なお、上記の特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。 In addition, it is possible to easily cope with scalability problems, which are the disadvantages of the source routing system, and local problems and congestions, so that high reliability of the network can be achieved.
It should be noted that the disclosures of the above patent documents are incorporated herein by reference. Within the scope of the entire disclosure (including claims) of the present invention, the embodiments and examples can be changed and adjusted based on the basic technical concept. Various combinations and selections of various disclosed elements are possible within the scope of the claims of the present invention. That is, the present invention of course includes various variations and modifications that could be made by those skilled in the art according to the entire disclosure including the claims and the technical idea.
なお、上記の特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。 In addition, it is possible to easily cope with scalability problems, which are the disadvantages of the source routing system, and local problems and congestions, so that high reliability of the network can be achieved.
It should be noted that the disclosures of the above patent documents are incorporated herein by reference. Within the scope of the entire disclosure (including claims) of the present invention, the embodiments and examples can be changed and adjusted based on the basic technical concept. Various combinations and selections of various disclosed elements are possible within the scope of the claims of the present invention. That is, the present invention of course includes various variations and modifications that could be made by those skilled in the art according to the entire disclosure including the claims and the technical idea.
1 IPコア
2 ネットワークインタフェース
3 サブルータ
4 メインルータ
5 チャネル
10 マルチコアSoC(System on a Chip)
21 入力ラッチ
22 ルート計算部
23 ルーティングフリット生成部
24 セレクタ
25 入力FIFO(First In First Out)バッファ
26 クロスバスイッチ
27 アービタ
28 セレクタ
29 出力バッファ
45 入力FIFO(First In First Out)バッファ
46 クロスバスイッチ
47 アービタ
48 セレクタ
49 出力バッファ
81 パケット
82 サイドバンド属性信号
83 有効ビット
84 先頭ビット
85 終端ビット
86 パケットボディ
87 ルート情報フィールド
88 制御情報フィールド
89 フリット長フィールド
90 ターゲットIP位置情報フィールド
91 制御情報フィールド
92 アクセス属性フィールド
93 アクセスアドレスフィールド
94 データフィールド
101 ルート情報フィールド1
102 ルート情報フィールド2
103 ルート情報フィールド3
104 ルート情報フィールド4
105 制御情報フィールド
106 フリット長フィールド
107 ターゲットIP位置情報フィールド
108 制御情報フィールド
111 ルート情報フィールド1
112 ルート情報フィールド2
113 ルート情報フィールド3
114 ルート情報フィールド4
115 制御情報フィールド
121 ルート情報フィールド1
122 ルート情報フィールド2
123 ルート情報フィールド3
124 ルート情報フィールド4
125 制御情報フィールド
137 ルート情報フィールド
138 制御情報フィールド
139 反復回数フィールド
140 ルート情報フィールド
141 反復回数フィールド
142 ルート情報フィールド
143 反復回数フィールド
144 ルート情報フィールド
145 反復回数フィールド
146 制御情報フィールド
151 IPコア
152 ネットワークインタフェース
153 サブルータ
154 メインルータ
155 チャネル
156 予備のメインルータ
160 マルチコアSoC(System on a Chip)
201 パケット
202 サイドバンド属性信号
203 有効ビット
204 先頭ビット
205 終端ビット
206 パケットボディ
207 ルート情報フィールド
208 制御情報フィールド
209 フリット長フィールド
210 ターゲットIP位置情報フィールド
211 制御情報フィールド
212 制御情報フィールド
301 マルチコアSoC(System on a Chip)
302 ルータ
303 IPコア
304 ネットワークインタフェース
305 チャネル
321 パケットボディ信号
322 サイドバンド属性信号
323 ターゲットIP位置情報
324 フリット長
325 制御情報
326 アクセスアドレス
327 アクセス属性など
328 データ
351 ルータ
352 通信チャネル
353 交信例に用いられる通信チャネル
354 交信例に用いられる仮想Expressチャネル
361 DID(Destination IDs)
362 Chained Header
381 オプションタイプフィールド
382 オプション長フィールド
383 ポインタフィールド
384 IPアドレスフィールド 1IP core 2 network interface 3 subrouter 4 main router 5 channel 10 multicore SoC (System on a Chip)
DESCRIPTION OF SYMBOLS 21 Input latch 22 Route calculation part 23 Routing flit production | generation part 24 Selector 25 Input FIFO (First In First Out)buffer 26 Crossbar switch 27 Arbiter 28 Selector 29 Output buffer 45 Input FIFO (First In First Out) buffer 46 Crossbar switch 47 Arbiter 48 Selector 49 Output buffer 81 Packet 82 Sideband attribute signal 83 Valid bit 84 First bit 85 End bit 86 Packet body 87 Route information field 88 Control information field 89 Flit length field 90 Target IP position information field
91Control information field 92 Access attribute field 93 Access address field 94 Data field 101 Route information field 1
102Route information field 2
103Route information field 3
104Route information field 4
105Control information field 106 Flit length field 107 Target IP location information field 108 Control information field 111 Route information field 1
112Route information field 2
113Route information field 3
114Route information field 4
115Control information field 121 Route information field 1
122Route information field 2
123Route information field 3
124Route information field 4
125control information field 137 route information field 138 control information field 139 iteration number field 140 route information field 141 iteration number field 142 route information field 143 iteration number field 144 route information field 145 iteration number field 146 control information field 151 IP core 152 network interface 153 Sub-router 154 Main router 155 Channel 156 Spare main router 160 Multi-core SoC (System on a Chip)
201packet 202 sideband attribute signal 203 valid bit 204 first bit 205 end bit 206 packet body 207 route information field 208 control information field 209 flit length field 210 target IP location information field
211Control information field 212 Control information field 301 Multi-core SoC (System on a Chip)
302router 303 IP core 304 network interface 305 channel 321 packet body signal 322 sideband attribute signal 323 target IP location information 324 flit length 325 control information 326 access address 327 access attribute etc. 328 data 351 router 352 communication channel 353 used for communication example Communication channel 354 Virtual Express channel 361 DID (Destination IDs) used for communication example
362 Chained Header
381Option type field 382 Option length field 383 Pointer field 384 IP address field
2 ネットワークインタフェース
3 サブルータ
4 メインルータ
5 チャネル
10 マルチコアSoC(System on a Chip)
21 入力ラッチ
22 ルート計算部
23 ルーティングフリット生成部
24 セレクタ
25 入力FIFO(First In First Out)バッファ
26 クロスバスイッチ
27 アービタ
28 セレクタ
29 出力バッファ
45 入力FIFO(First In First Out)バッファ
46 クロスバスイッチ
47 アービタ
48 セレクタ
49 出力バッファ
81 パケット
82 サイドバンド属性信号
83 有効ビット
84 先頭ビット
85 終端ビット
86 パケットボディ
87 ルート情報フィールド
88 制御情報フィールド
89 フリット長フィールド
90 ターゲットIP位置情報フィールド
91 制御情報フィールド
92 アクセス属性フィールド
93 アクセスアドレスフィールド
94 データフィールド
101 ルート情報フィールド1
102 ルート情報フィールド2
103 ルート情報フィールド3
104 ルート情報フィールド4
105 制御情報フィールド
106 フリット長フィールド
107 ターゲットIP位置情報フィールド
108 制御情報フィールド
111 ルート情報フィールド1
112 ルート情報フィールド2
113 ルート情報フィールド3
114 ルート情報フィールド4
115 制御情報フィールド
121 ルート情報フィールド1
122 ルート情報フィールド2
123 ルート情報フィールド3
124 ルート情報フィールド4
125 制御情報フィールド
137 ルート情報フィールド
138 制御情報フィールド
139 反復回数フィールド
140 ルート情報フィールド
141 反復回数フィールド
142 ルート情報フィールド
143 反復回数フィールド
144 ルート情報フィールド
145 反復回数フィールド
146 制御情報フィールド
151 IPコア
152 ネットワークインタフェース
153 サブルータ
154 メインルータ
155 チャネル
156 予備のメインルータ
160 マルチコアSoC(System on a Chip)
201 パケット
202 サイドバンド属性信号
203 有効ビット
204 先頭ビット
205 終端ビット
206 パケットボディ
207 ルート情報フィールド
208 制御情報フィールド
209 フリット長フィールド
210 ターゲットIP位置情報フィールド
211 制御情報フィールド
212 制御情報フィールド
301 マルチコアSoC(System on a Chip)
302 ルータ
303 IPコア
304 ネットワークインタフェース
305 チャネル
321 パケットボディ信号
322 サイドバンド属性信号
323 ターゲットIP位置情報
324 フリット長
325 制御情報
326 アクセスアドレス
327 アクセス属性など
328 データ
351 ルータ
352 通信チャネル
353 交信例に用いられる通信チャネル
354 交信例に用いられる仮想Expressチャネル
361 DID(Destination IDs)
362 Chained Header
381 オプションタイプフィールド
382 オプション長フィールド
383 ポインタフィールド
384 IPアドレスフィールド 1
DESCRIPTION OF SYMBOLS 21 Input latch 22 Route calculation part 23 Routing flit production | generation part 24 Selector 25 Input FIFO (First In First Out)
91
102
103
104
105
112
113
114
115
122
123
124
125
201
211
302
362 Chained Header
381
Claims (36)
- 複数の情報処理ユニット又は記憶ユニット、インタフェースユニットが1又は複数チップに集積され、前記ユニット間を接続するネットワークであって、ネットワークインタフェース、交信路、ネットワークルータから構成されるネットワークをあわせて1又は複数チップに集積し、
前記ユニット間の情報をパケットにて前記ネットワークを介して交信し情報処理を行う半導体装置において、
ネットワークルータを、メインルータ群と他のルータ群の複数のグループに分け、
前記ルータを通る回数であるホップ数が規定の回数以内に受信先に到着できない場合には、前記メインルータを通り、前記メインルータを通る毎に、ルータを通る回数をリセットし、前記規定回数を満たすようにルーティングを行う、半導体装置。 A network in which a plurality of information processing units or storage units and interface units are integrated on one or a plurality of chips, and the units are connected to each other, and includes one or more networks including a network interface, a communication path, and a network router. Integrated on the chip,
In a semiconductor device that performs information processing by communicating information between the units in the packet via the network,
Divide network routers into multiple groups of main routers and other routers,
If the number of hops that pass through the router cannot reach the receiver within the specified number of times, the number of times that the router passes through the main router is reset every time the main router passes through the main router. A semiconductor device that performs routing so as to satisfy. - 前記メインルータは、ルーティングを計算する手段を備え、
前記メインルータと、前記メインルータ又は前記ネットワークインタフェースがルーティングした情報に従ってルーティングを行うサブルータと、
を備えている、請求項1記載の半導体装置。 The main router comprises means for calculating routing;
The main router and a sub-router that performs routing according to information routed by the main router or the network interface;
The semiconductor device according to claim 1, comprising: - 前記メインルータは、
パケットから、データの受信先を示すID又はアドレスから、パケットの前記メインルータからの出力先のルーティングと、前記規定回数以内のサブルータのルーティングを行う手段を備え、
前記サブルータ分のルーティング情報を、パケット中の前記メインルータに到達するためのルート情報を記したフリットを更新して書き込み、対応するルータに対して、パケットを送出し、
前記パケットを受信したサブルータは、前記ルーティング情報に従って、ルーティングを行い、前記ルーティング情報を更新する、請求項1記載の半導体装置。 The main router is
From the packet, from the ID or address indicating the data receiving destination, the routing of the output destination from the main router of the packet, and means for routing the sub-router within the specified number of times,
The routing information for the sub-router is updated by writing a flit that describes the route information for reaching the main router in the packet, and the packet is sent to the corresponding router.
The semiconductor device according to claim 1, wherein the sub-router that has received the packet performs routing according to the routing information and updates the routing information. - 前記メインルータは、
規定回数以内の前段に通った別のメインルータ、又は、送信側のネットワークインタフェースによってルーティングを決定されていた場合、自律的にルーティングを行わず、前段のメインルータが指定したルーティングに従ってパケットをルーティングする、請求項1記載の半導体装置。 The main router is
If routing is determined by another main router that has passed through the previous stage within the specified number of times or the network interface on the sending side, routing is not performed autonomously, but the packet is routed according to the routing specified by the main router at the previous stage. The semiconductor device according to claim 1. - 前記メインルータは、
前記サブルータのルーティングを行う手段を備え、
サブルーティング情報をフリットに圧縮エンコードして格納し、
前記サブルータは圧縮エンコードした前記情報を伸張して得た情報に従ってルーティングを行う、請求項2記載の半導体装置。 The main router is
Means for routing the sub-router;
Sub-routing information is compressed and encoded in a frit and stored.
The semiconductor device according to claim 2, wherein the sub-router performs routing according to information obtained by decompressing the compression-encoded information. - 規定のフリットに圧縮して格納できるルーティング情報によって決定されるホップ数までサブルータで連続してホップすることが許容され、
ルーティング到達場所へ至るルーティングに対する圧縮率によって規定ホップ回数が異なる、請求項5記載の半導体装置。 Sub-routers are allowed to hop consecutively up to the number of hops determined by routing information that can be compressed and stored in a specified flit,
The semiconductor device according to claim 5, wherein the specified number of hops varies depending on a compression ratio for routing to a routing destination. - あらかじめネットワークの混雑が予想されるIPに接続されるルータおよびその近傍に、前記メインルータを、他のネットワークルータの前記メインルータの割合よりも多く配置する、ことを特徴とする請求項1記載の半導体装置。 2. The router according to claim 1, wherein the main router is disposed in a vicinity of a router connected to an IP where network congestion is expected in advance and in the vicinity thereof, more than the ratio of the main router to other network routers. Semiconductor device.
- 前記メインルータは、周囲のリンク、前記サブルータの混雑および故障を把握する手段を備え、混雑ないし故障を回避するように前記サブルータのルーティングを行う、請求項2記載の半導体装置。 3. The semiconductor device according to claim 2, wherein the main router includes means for grasping congestion and failure of surrounding links and the sub-router, and performs routing of the sub-router so as to avoid congestion or failure.
- 故障が生じた前記サブルータは、前記ルータ内の利用可能なリソースを使用し、到着したパケットを近傍のメインルータに戻す制御を行う請求項2記載の半導体装置。 The semiconductor device according to claim 2, wherein the sub-router in which the failure has occurred performs control to return an arriving packet to a nearby main router using an available resource in the router.
- 前記メインルータには、冗長論理、エラー検出訂正機能を備え、
リンク又は前記サブルータで発生した故障に対して、パケットが前記メインルータに到着した時点で訂正を行うと共に、メインルータが故障した場合に、前記冗長論理によって回復する、請求項2記載の半導体装置。 The main router has redundant logic, error detection correction function,
3. The semiconductor device according to claim 2, wherein a failure occurring in the link or the sub-router is corrected when a packet arrives at the main router, and is recovered by the redundancy logic when the main router fails. - 前記メインルータが行ったルーティング情報を、パケット中の前記メインルータに到達するためのルート上に記したフリットを更新して書き込むと共に、前記書き換え前のフリット情報を、パケットの別の位置に移動、追記することにより、前記パケットの送信元からのルート情報を、パケット中に保持する、請求項1記載の半導体装置。 The routing information performed by the main router is updated by writing the flit written on the route for reaching the main router in the packet, and the flit information before rewriting is moved to another position of the packet. The semiconductor device according to claim 1, wherein the route information from the transmission source of the packet is held in the packet by appending.
- 請求項1乃至11のいずれか1項に記載の半導体装置をオンチップで備えたネットワークオンチップ装置。 A network-on-chip device comprising the semiconductor device according to any one of claims 1 to 11 on-chip.
- 複数の情報処理ユニット又は記憶ユニット、インタフェースユニットが1又は複数チップに集積され、前記ユニット間を接続するネットワークであって、ネットワークインタフェース、交信路、ネットワークルータから構成されるネットワークをあわせて集積し、
ユニット間の情報をパケットにて前記ネットワークを介して交信し情報処理を行い、
ネットワークルータは、メインルータ群と他のルータ群の複数のグループに分けられ、
ルータを通る回数であるホップ数が規定の回数以内に受信先に到着できない場合には、前記メインルータを通り、
前記メインルータを通る毎に、ルータを通る回数をリセットし、前記規定回数を満たすようにルーティングを行う、ネットワークルーティング方法。 A plurality of information processing units or storage units, interface units are integrated on one or a plurality of chips, a network connecting the units, and a network composed of a network interface, a communication path, and a network router are integrated together,
Inter-unit information is communicated in packets via the network for information processing,
Network routers are divided into groups of main routers and other routers,
If the number of hops that pass through the router cannot reach the receiver within the specified number of times, go through the main router,
A network routing method for performing routing so as to satisfy the specified number of times by resetting the number of times of passing through the router every time the main router is passed. - 前記メインルータは、ルーティングを計算し、
前記メインルータ又は前記ネットワークインタフェースがルーティングした情報に従って、ルーティングを行うサブルータと、
を備えている、請求項13記載のネットワークルーティング方法。 The main router calculates the routing,
A sub-router that performs routing according to information routed by the main router or the network interface;
The network routing method according to claim 13, comprising: - 前記メインルータは、
パケットから、データの受信先を示すID又はアドレスから、パケットの前記メインルータからの出力先のルーティングと、前記規定回数以内のサブルータのルーティングを行い、
前記サブルータ分のルーティング情報を、パケット中の前記メインルータに到達するためのルート情報を記したフリットを更新して書き込み、対応するルータに対して、パケットを送出し、
前記パケットを受信したサブルータは、前記ルーティング情報に従って、ルーティングを行い、前記ルーティング情報を更新する、請求項13記載のネットワークルーティング方法。 The main router is
From the packet, from the ID or address indicating the data reception destination, the routing of the output destination from the main router of the packet, and the routing of the sub-router within the specified number of times,
The routing information for the sub-router is updated by writing a flit describing the route information for reaching the main router in the packet, and the packet is sent to the corresponding router.
The network routing method according to claim 13, wherein the sub-router that receives the packet performs routing according to the routing information and updates the routing information. - 前記メインルータは、
規定回数以内の前段に通った別のメインルータ、又は、送信側のネットワークインタフェースによってルーティングを決定されていた場合、自律的にルーティングを行わず、前段のメインルータが指定したルーティングに従ってパケットをルーティングする、請求項13記載のネットワークルーティング方法。 The main router is
If routing is determined by another main router that has passed through the previous stage within the specified number of times or the network interface on the sending side, routing is not performed autonomously, but the packet is routed according to the routing specified by the main router in the previous stage. The network routing method according to claim 13. - 前記メインルータは、
前記サブルータのルーティングを行い、
サブルーティング情報をフリットに圧縮エンコードして格納し、
前記サブルータは圧縮エンコードした前記情報を伸張して得た情報に従ってルーティングを行う、請求項14記載のネットワークルーティング方法。 The main router is
Route the sub-router,
Sub-routing information is compressed and encoded in a frit and stored.
The network routing method according to claim 14, wherein the sub-router performs routing according to information obtained by decompressing the compression-encoded information. - 規定のフリットに圧縮して格納できるルーティング情報によって決定されるホップ数まで前記サブルータで連続してホップすることが許容され、
ルーティング到達場所へ至るルーティングに対する圧縮率によって規定ホップ回数が異なる、請求項17記載のネットワークルーティング方法。 It is allowed to hop continuously in the sub-router up to the number of hops determined by routing information that can be compressed and stored in a specified flit,
The network routing method according to claim 17, wherein the specified number of hops varies depending on a compression ratio for routing to a routing destination. - あらかじめネットワークの混雑が予想されるIPに接続されるルータおよびその近傍に、前記メインルータを、他のネットワークルータの前記メインルータの割合よりも多く配置する、ことを特徴とする請求項13記載のネットワークルーティング方法。 14. The router according to claim 13, wherein a larger number of the main routers are arranged in a vicinity of a router connected to an IP where network congestion is expected in advance and in the vicinity thereof than other main routers. Network routing method.
- 前記メインルータは、周囲のリンク、前記サブルータの混雑および故障を把握し、混雑ないし故障を回避するように前記サブルータのルーティングを行う、請求項14記載のネットワークルーティング方法。 15. The network routing method according to claim 14, wherein the main router grasps the congestion and failure of surrounding links and the sub-router, and performs routing of the sub-router so as to avoid congestion or failure.
- 故障が生じた前記サブルータは、前記ルータ内の利用可能なリソースを使用し、到着したパケットを近傍の前記メインルータに戻す制御を行う請求項14記載のネットワークルーティング方法。 The network routing method according to claim 14, wherein the sub-router in which a failure has occurred performs control to return an arrived packet to the neighboring main router using resources available in the router.
- 前記メインルータには、冗長論理、エラー検出訂正機能を備え、
リンク又は前記サブルータで発生した故障に対して、パケットが前記メインルータに到着した時点で訂正を行うと共に、前記メインルータが故障した場合に、前記冗長論理によって回復する、請求項14記載のネットワークルーティング方法。 The main router has redundant logic, error detection correction function,
The network routing according to claim 14, wherein a failure occurring in a link or the sub-router is corrected when a packet arrives at the main router, and is recovered by the redundancy logic when the main router fails. Method. - 前記メインルータが行ったルーティング情報を、パケット中の前記メインルータに到達するためのルート情報を記したフリットを更新して書き込むと共に、前記書き換え前のフリット情報を、パケットの別の位置に移動、追記することにより、前記パケットの送信元からのルート情報を、パケット中に保持する、請求項13記載のネットワークルーティング方法。 The routing information performed by the main router is updated by writing a flit describing the route information for reaching the main router in the packet, and the flit information before rewriting is moved to another position in the packet. The network routing method according to claim 13, wherein the route information from the transmission source of the packet is held in the packet by additionally writing.
- 複数の情報処理ユニット又は記憶ユニット、インタフェースユニットのユニット間を接続するネットワークであって、ネットワークインタフェース、交信路、ネットワークルータから構成されるネットワークを備え、前記ユニット間の情報をパケットにて前記ネットワークを介して交信し情報処理を行うネットワークシステムであって、
ネットワークルータを、メインルータ群と他のルータ群の複数のグループに分け、
前記ルータを通る回数であるホップ数が規定の回数以内に受信先に到着できない場合には、前記メインルータを通り、前記メインルータを通る毎に、ルータを通る回数をリセットし、前記規定回数を満たすようにルーティングを行う、ネットワークシステム。 A network connecting a plurality of information processing units or storage units and interface units, comprising a network composed of a network interface, a communication path, and a network router, and the information between the units in a packet A network system that communicates and processes information via
Divide network routers into multiple groups of main routers and other routers,
If the number of hops that pass through the router cannot reach the receiver within the specified number of times, the number of times that the router passes through the main router is reset every time the main router passes through the main router. A network system that performs routing to meet the requirements. - 前記メインルータは、ルーティングを計算する手段を備え、
前記メインルータと、前記メインルータ又は前記ネットワークインタフェースがルーティングした情報に従ってルーティングを行うサブルータと、
を備えている、請求項24記載のネットワークシステム。 The main router comprises means for calculating routing;
The main router and a sub-router that performs routing according to information routed by the main router or the network interface;
The network system according to claim 24, comprising: - 前記メインルータは、
パケットから、データの受信先を示すID又はアドレスから、パケットの前記メインルータからの出力先のルーティングと、前記規定回数以内のサブルータのルーティングを行う手段を備え、
前記サブルータ分のルーティング情報を、パケット中の前記メインルータに到達するためのルート情報を記したフリットを更新して書き込み、対応するルータに対して、パケットを送出し、
前記パケットを受信したサブルータは、前記ルーティング情報に従って、ルーティングを行い、前記ルーティング情報を更新する、請求項24記載のネットワークシステム。 The main router is
From the packet, from the ID or address indicating the data receiving destination, the routing of the output destination from the main router of the packet, and means for routing the sub-router within the specified number of times,
The routing information for the sub-router is updated by writing a flit that describes the route information for reaching the main router in the packet, and the packet is sent to the corresponding router.
The network system according to claim 24, wherein the sub-router that has received the packet performs routing according to the routing information and updates the routing information. - 前記メインルータは、
規定回数以内の前段に通った別のメインルータ、又は、送信側のネットワークインタフェースによってルーティングを決定されていた場合、自律的にルーティングを行わず、前段のメインルータが指定したルーティングに従ってパケットをルーティングする、請求項24記載のネットワークシステム。 The main router is
If routing is determined by another main router that has passed through the previous stage within the specified number of times or the network interface on the sending side, routing is not performed autonomously, but the packet is routed according to the routing specified by the main router in the previous stage. The network system according to claim 24. - 前記メインルータは、
前記サブルータのルーティングを行う手段を備え、
サブルーティング情報をフリットに圧縮エンコードして格納し、
前記サブルータは圧縮エンコードした前記情報を伸張して得た情報に従ってルーティングを行う、請求項25記載のネットワークシステム。 The main router is
Means for routing the sub-router;
Sub-routing information is compressed and encoded in a frit and stored.
26. The network system according to claim 25, wherein the sub-router performs routing according to information obtained by decompressing the compressed and encoded information. - 規定のフリットに圧縮して格納できるルーティング情報によって決定されるホップ数までサブルータで連続してホップすることが許容され、
ルーティング到達場所へ至るルーティングに対する圧縮率によって規定ホップ回数が異なる、請求項25記載のネットワークシステム。 It is allowed to hop continuously in the sub-router up to the number of hops determined by the routing information that can be compressed and stored in the specified flit,
26. The network system according to claim 25, wherein the specified number of hops varies depending on a compression ratio for routing to a routing destination. - あらかじめネットワークの混雑が予想されるIPに接続されるルータおよびその近傍に、前記メインルータを、他のネットワークルータの前記メインルータの割合よりも多く配置する、ことを特徴とする請求項24記載のネットワークシステム。 25. The router according to claim 24, wherein the main router is disposed more in the vicinity of the router connected to the IP that is expected to be congested in the network than the main router in the other network routers. Network system.
- 前記メインルータは、周囲のリンク、前記サブルータの混雑および故障を把握する手段を備え、混雑ないし故障を回避するように前記サブルータのルーティングを行う、請求項25記載のネットワークシステム。 26. The network system according to claim 25, wherein the main router includes means for grasping a congestion and a failure of a surrounding link and the sub router, and performs routing of the sub router so as to avoid the congestion or the failure.
- 故障が生じた前記サブルータは、前記ルータ内の利用可能なリソースを使用し、到着したパケットを近傍のメインルータに戻す制御を行う請求項25記載のネットワークシステム。 26. The network system according to claim 25, wherein the sub-router in which a failure has occurred performs control to return an arrived packet to a nearby main router using an available resource in the router.
- 前記メインルータには、冗長論理、エラー検出訂正機能を備え、
リンク又は前記サブルータで発生した故障に対して、パケットが前記メインルータに到着した時点で訂正を行うと共に、メインルータが故障した場合に、前記冗長論理によって回復する、請求項25記載のネットワークシステム。 The main router has redundant logic, error detection correction function,
26. The network system according to claim 25, wherein a failure occurring in a link or the sub-router is corrected when a packet arrives at the main router, and is recovered by the redundancy logic when the main router fails. - 前記メインルータが行ったルーティング情報を、パケット中の前記メインルータに到達するためのルート上に記したフリットを更新して書き込むと共に、前記書き換え前のフリット情報を、パケットの別の位置に移動、追記することにより、前記パケットの送信元からのルート情報を、パケット中に保持する、請求項24記載のネットワークシステム。 The routing information performed by the main router is updated by writing the flit written on the route for reaching the main router in the packet, and the flit information before rewriting is moved to another position of the packet. 25. The network system according to claim 24, wherein route information from the transmission source of the packet is held in the packet by additionally writing.
- 前記メインルータは、
入力信号を受ける入力ラッチと、
送り先からルートを計算するルート計算部と、
前記ルート計算部でのルート計算の結果に基づいてルーティング・フリットを生成するルーティングフリット生成部と、
前記ルーティングフリット生成部で生成されたルーティング・フリットと前記入力ラッチからの情報との一方を選択するセレクタと、
前記セレクタでの選択結果をそれぞれ蓄える入力FIFO(First In First Out)と、
クロスバスイッチによる選択結果をそれぞれラッチする出力バッファと、
を含む組を、
各方路と前記メインルータ自身が直接接続しているIP(Intellectual Property)に対応して備え、
入力信号の出力先を調整するアービタと、いずれか方向の前記入力FIFOからの出力を選択するセレクタを備えたクロスバスイッチを各方路及びIPに対応した複数の前記入力FIFOと複数の前記出力バッファとの間に備えている、請求項24又は25記載のネットワークシステム。 The main router is
An input latch for receiving an input signal;
A route calculator that calculates the route from the destination,
A routing frit generation unit that generates a routing frit based on a route calculation result in the route calculation unit;
A selector for selecting one of the routing flit generated by the routing flit generation unit and the information from the input latch;
An input FIFO (First In First Out) for storing the selection results of the selectors;
An output buffer for latching the selection result by the crossbar switch, and
A pair containing
Corresponding to IP (Intellectual Property) directly connected to each route and the main router itself,
A crossbar switch having an arbiter for adjusting an output destination of an input signal and a selector for selecting an output from the input FIFO in any direction, a plurality of the input FIFOs corresponding to each path and IP, and a plurality of the output buffers The network system according to claim 24 or 25, wherein the network system is provided in between. - 前記サブルータは、
入力信号を入力する入力FIFO(First In First Out)と、
クロスバスイッチによる選択結果をそれぞれラッチする出力バッファと、
を含む組を、
各方路と前記サブルータ自身が直接接続しているIP(Intellectual Property)に対応して備え、
入力信号の出力先を調整するアービタと、いずれか方向の前記入力FIFOからの出力を選択するセレクタと、を備えたクロスバスイッチを、各方路及びIPに対応した複数の前記入力FIFOと複数の前記出力バッファとの間に備えている、請求項25記載のネットワークシステム。 The sub-router
An input FIFO (First In First Out) for inputting an input signal;
An output buffer for latching the selection result by the crossbar switch, and
A pair containing
Corresponding to IP (Intellectual Property) directly connected to each route and the sub-router itself,
A crossbar switch including an arbiter that adjusts an output destination of an input signal and a selector that selects an output from the input FIFO in any direction, includes a plurality of input FIFOs corresponding to each path and IP, and a plurality of input FIFOs. 26. The network system according to claim 25, provided between said output buffer.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011516016A JP5083464B2 (en) | 2009-05-25 | 2010-05-25 | Network-on-chip and network routing methods and systems |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009125580 | 2009-05-25 | ||
JP2009-125580 | 2009-05-25 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2010137572A1 true WO2010137572A1 (en) | 2010-12-02 |
Family
ID=43222680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2010/058780 WO2010137572A1 (en) | 2009-05-25 | 2010-05-25 | Network-on-chip, network routing method, and system |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP5083464B2 (en) |
WO (1) | WO2010137572A1 (en) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012090129A (en) * | 2010-10-21 | 2012-05-10 | Renesas Electronics Corp | NoC SYSTEM AND INPUT SWITCHING DEVICE |
JP2013201552A (en) * | 2012-03-23 | 2013-10-03 | Toshiba Corp | On-chip router and multicore system using the same |
KR101373778B1 (en) | 2012-02-13 | 2014-03-14 | 한양대학교 산학협력단 | Network on chip and data transmission method for inter communication of system on chip, and recording medium storing program for executing method of the same in computer |
JP2014209764A (en) * | 2014-06-17 | 2014-11-06 | 株式会社東芝 | On-chip router and multicore system using the same |
JP2015109679A (en) * | 2011-09-29 | 2015-06-11 | インテル コーポレイション | Sending packets with expanded headers |
US9270576B2 (en) | 2011-09-29 | 2016-02-23 | Intel Corporation | Aggregating completion messages in a sideband interface |
US9448870B2 (en) | 2011-09-29 | 2016-09-20 | Intel Corporation | Providing error handling support to legacy devices |
US9489329B2 (en) | 2011-09-29 | 2016-11-08 | Intel Corporation | Supporting multiple channels of a single interface |
US9658978B2 (en) | 2011-09-29 | 2017-05-23 | Intel Corporation | Providing multiple decode options for a system-on-chip (SoC) fabric |
JP2017208736A (en) * | 2016-05-19 | 2017-11-24 | 公立大学法人会津大学 | Defect tolerance router for network on-chip |
US10846126B2 (en) | 2016-12-28 | 2020-11-24 | Intel Corporation | Method, apparatus and system for handling non-posted memory write transactions in a fabric |
US10911261B2 (en) | 2016-12-19 | 2021-02-02 | Intel Corporation | Method, apparatus and system for hierarchical network on chip routing |
CN112805970A (en) * | 2018-11-21 | 2021-05-14 | 深圳市柔宇科技股份有限公司 | Bluetooth connection control method and router |
JP2021519464A (en) * | 2018-03-30 | 2021-08-10 | プロビーノ・テクノロジーズ・インコーポレーテッドProvino Technologies,Inc. | Arbitration of the part of the transaction over the virtual channel associated with the interconnect |
CN113839878A (en) * | 2021-09-26 | 2021-12-24 | 南京宁麒智能计算芯片研究院有限公司 | Data-intensive application-oriented network-on-chip approximate communication system |
US20220400073A1 (en) * | 2021-06-15 | 2022-12-15 | Applied Materials, Inc. | Router architecture for multi-dimensional topologies in on-chip and on-package networks |
US11914440B2 (en) | 2018-03-30 | 2024-02-27 | Google Llc | Protocol level control for system on a chip (SoC) agent reset and power management |
-
2010
- 2010-05-25 JP JP2011516016A patent/JP5083464B2/en not_active Expired - Fee Related
- 2010-05-25 WO PCT/JP2010/058780 patent/WO2010137572A1/en active Application Filing
Non-Patent Citations (3)
Title |
---|
KEN'ICHIRO ANJO ET AL.: "Evaluation of Local Labeling Scheme on Network-on-Chip", THE TRANSACTIONS OF THE INSTITUTE OF ELECTRONICS, INFORMATION AND COMMUNICATION ENGINEERS, no. 6, 1 June 2005 (2005-06-01), pages 1076 - 1090 * |
WILLIAM J. DALLY ET AL.: "Route Packets, Not Wires: On-Chip Interconnection Networks", PROCEEDINGS OF THE 38TH ANNUAL DESIGN AUTOMATION CONFERENCE, ACM, 2001, pages 684 - 689, XP010552473 * |
YOUNG BOK KIM ET AL.: "Fault Tolerant Source Routing for Network-on-chip", PROCEEDINGS OF THE 22ND IEEE INTERNATIONAL SYMPOSIUM ON DEFECT AND FAULT-TOLERANCE IN VLSI SYSTEMS, IEEE COMPUTER SOCIETY, 2007, pages 12 - 20 * |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012090129A (en) * | 2010-10-21 | 2012-05-10 | Renesas Electronics Corp | NoC SYSTEM AND INPUT SWITCHING DEVICE |
US9753875B2 (en) | 2011-09-29 | 2017-09-05 | Intel Corporation | Systems and an apparatus with a sideband interface interconnecting agents with at least one router |
JP2015109679A (en) * | 2011-09-29 | 2015-06-11 | インテル コーポレイション | Sending packets with expanded headers |
US9270576B2 (en) | 2011-09-29 | 2016-02-23 | Intel Corporation | Aggregating completion messages in a sideband interface |
US9448870B2 (en) | 2011-09-29 | 2016-09-20 | Intel Corporation | Providing error handling support to legacy devices |
US9489329B2 (en) | 2011-09-29 | 2016-11-08 | Intel Corporation | Supporting multiple channels of a single interface |
US9658978B2 (en) | 2011-09-29 | 2017-05-23 | Intel Corporation | Providing multiple decode options for a system-on-chip (SoC) fabric |
US10164880B2 (en) | 2011-09-29 | 2018-12-25 | Intel Corporation | Sending packets with expanded headers |
KR101373778B1 (en) | 2012-02-13 | 2014-03-14 | 한양대학교 산학협력단 | Network on chip and data transmission method for inter communication of system on chip, and recording medium storing program for executing method of the same in computer |
JP2013201552A (en) * | 2012-03-23 | 2013-10-03 | Toshiba Corp | On-chip router and multicore system using the same |
JP2014209764A (en) * | 2014-06-17 | 2014-11-06 | 株式会社東芝 | On-chip router and multicore system using the same |
JP2017208736A (en) * | 2016-05-19 | 2017-11-24 | 公立大学法人会津大学 | Defect tolerance router for network on-chip |
US10911261B2 (en) | 2016-12-19 | 2021-02-02 | Intel Corporation | Method, apparatus and system for hierarchical network on chip routing |
US10846126B2 (en) | 2016-12-28 | 2020-11-24 | Intel Corporation | Method, apparatus and system for handling non-posted memory write transactions in a fabric |
US11372674B2 (en) | 2016-12-28 | 2022-06-28 | Intel Corporation | Method, apparatus and system for handling non-posted memory write transactions in a fabric |
JP2021519464A (en) * | 2018-03-30 | 2021-08-10 | プロビーノ・テクノロジーズ・インコーポレーテッドProvino Technologies,Inc. | Arbitration of the part of the transaction over the virtual channel associated with the interconnect |
US11640362B2 (en) | 2018-03-30 | 2023-05-02 | Google Llc | Procedures for improving efficiency of an interconnect fabric on a system on chip |
US11914440B2 (en) | 2018-03-30 | 2024-02-27 | Google Llc | Protocol level control for system on a chip (SoC) agent reset and power management |
JP7457654B2 (en) | 2018-03-30 | 2024-03-28 | グーグル エルエルシー | Steps for implementing source-based routing within an interconnect fabric on a system-on-chip |
CN112805970A (en) * | 2018-11-21 | 2021-05-14 | 深圳市柔宇科技股份有限公司 | Bluetooth connection control method and router |
US20220400073A1 (en) * | 2021-06-15 | 2022-12-15 | Applied Materials, Inc. | Router architecture for multi-dimensional topologies in on-chip and on-package networks |
US12095653B2 (en) * | 2021-06-15 | 2024-09-17 | Applied Materials, Inc. | Router architecture for multi-dimensional topologies in on-chip and on-package networks |
CN113839878A (en) * | 2021-09-26 | 2021-12-24 | 南京宁麒智能计算芯片研究院有限公司 | Data-intensive application-oriented network-on-chip approximate communication system |
CN113839878B (en) * | 2021-09-26 | 2023-05-23 | 南京宁麒智能计算芯片研究院有限公司 | Network-on-chip approximate communication system for data intensive application |
Also Published As
Publication number | Publication date |
---|---|
JPWO2010137572A1 (en) | 2012-11-15 |
JP5083464B2 (en) | 2012-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5083464B2 (en) | Network-on-chip and network routing methods and systems | |
US20220224656A1 (en) | Programmable logic device with integrated network-on-chip | |
US8819616B2 (en) | Asymmetric mesh NoC topologies | |
KR101809396B1 (en) | Method to route packets in a distributed direct interconnect network | |
Bartic et al. | Topology adaptive network-on-chip design and implementation | |
JP6093867B2 (en) | Non-uniform channel capacity in the interconnect | |
JP5276220B2 (en) | Bus control device and control device for outputting instructions to bus control device | |
JP2012090129A (en) | NoC SYSTEM AND INPUT SWITCHING DEVICE | |
CN105075199A (en) | Direct network having plural distributed connections to each resource | |
Liu et al. | An encapsulated packet-selection routing for network on chip | |
Erickson et al. | An optimal single-path routing algorithm in the datacenter network DPillar | |
Cota et al. | NoC basics | |
Bourduas et al. | Latency reduction of global traffic in wormhole-routed meshes using hierarchical rings for global routing | |
Qasem et al. | Square-octagon interconnection architecture for network-on-chips | |
Ramani et al. | A case study on NoC router architecture for optimizing the latency | |
Satish et al. | Comparative performance analysis of routing topology for noc architecture | |
Moadeli et al. | Quarc: A novel network-on-chip architecture | |
Sllame et al. | Designing Torus and HyperCube Network-on-Chip Systems Based on MPLS Networking Technique | |
Yang et al. | RIPNoC: A distributed routing scheme for balancing on-chip network load | |
Prasad et al. | Efasbran: error free adaptive shared buffer router architecture for network on chip | |
Lee et al. | BusMesh NoC: A novel NoC architecture comprised of bus-based connection and global mesh routers | |
Veeraprathap et al. | Network on chip design and implementation on FPGA with advanced hardware and networking functionalities | |
Rangaiah | Performance Evaluation of a Network on Chip Based on Ghz Throughput and Low Power for Streaming Data Transmission on FPGA | |
Sllame et al. | A comparative study between fat tree and mesh network-on-chip interconnection architectures | |
Sekhar | Network on chip design on FPGA with advanced Hardware and Networking Functionalities. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 10780527 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2011516016 Country of ref document: JP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 10780527 Country of ref document: EP Kind code of ref document: A1 |