WO2010110289A1 - Router apparatus, semiconductor integrated circuit device, routing method, and program - Google Patents

Router apparatus, semiconductor integrated circuit device, routing method, and program Download PDF

Info

Publication number
WO2010110289A1
WO2010110289A1 PCT/JP2010/055032 JP2010055032W WO2010110289A1 WO 2010110289 A1 WO2010110289 A1 WO 2010110289A1 JP 2010055032 W JP2010055032 W JP 2010055032W WO 2010110289 A1 WO2010110289 A1 WO 2010110289A1
Authority
WO
WIPO (PCT)
Prior art keywords
packet
routing
arbitration
router
router device
Prior art date
Application number
PCT/JP2010/055032
Other languages
French (fr)
Japanese (ja)
Inventor
淳 鳥居
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2011506070A priority Critical patent/JP5488589B2/en
Publication of WO2010110289A1 publication Critical patent/WO2010110289A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/109Integrated on microchip, e.g. switch-on-chip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/112Switch control, e.g. arbitration

Definitions

  • the present invention is based on the priority claim of Japanese patent application: Japanese Patent Application No. 2009-072507 (filed on Mar. 24, 2009), the entire contents of which are incorporated herein by reference. Shall.
  • the present invention relates to a router device, a semiconductor integrated circuit device, a routing method, and a program, and in particular, a router device for communication between IP cores provided in a semiconductor integrated circuit device, a semiconductor integrated circuit device having the router device, and a routing
  • the present invention relates to a method and a program.
  • SoC System On a Chip
  • IP Intelligent Property
  • AMBA Advanced Microcontroller Bus Architecture
  • ARM Inc. is a standard for buses between IP cores.
  • AHB Advanced High- performance Bus
  • AXI Advanced eXtensible Interface
  • the wiring length becomes long and it is difficult to cope with the improvement of the frequency.
  • a method of securing communication locality (locality) by hierarchically connecting buses is used.
  • Non-Patent Document 1 describes NoC (Network on Chip) that ensures scalability by distributing arbitration to each router while effectively utilizing communication locality by sending data in packets. Yes.
  • Examples of chips adopting NoC include TILE64 manufactured by Tilera, 80 core chip manufactured by Intel, FAUST chip manufactured by CEA-LETI, and STNoC manufactured by STMicroelectronics.
  • FIG. 3 is a block diagram showing the configuration of the SoC that employs NoC.
  • FIG. 5 is a diagram illustrating a flit configuration of a normal packet. Referring to FIG. 5, a normal packet is composed of a plurality of flits. Referring to FIGS. 3 and 5, in SoC 21, a network is configured by router devices R0 to R15 and communication channel 25. Communication between the IP cores IP0 to IP15 is realized by flowing the normal packet shown in FIG. 5 through this network.
  • the number of cycles that is, delay time (latency)
  • the number of cycles for delivering data from the data transmission IP core to the reception IP core is longer than the delay time in the bus configuration.
  • the bus configuration is adopted, a channel from the transmission IP core to the reception IP core is established when arbitration is completed, so that the data transfer speed and latency satisfy the bus operating frequency and the frequency. Therefore, it is determined by the number of stages of pipeline registers inserted every fixed wiring length.
  • the NoC configuration when the NoC configuration is adopted, after the first flit of the packet arrives, calculation of the destination of the packet, arbitration of the output switch and channel based on the destination, and latch to the output buffer are performed in a plurality of cycles. It is necessary to do it. Although depending on the distance between IP cores that perform communication, when a plurality of router devices are used, the NoC configuration may cause a large delay compared to the bus configuration.
  • NRC Next Routing Computation
  • Non-Patent Document 2 describes EVC (Express Virtual Channel).
  • FIG. 12 is a diagram for explaining the EVC described in Non-Patent Document 2. Referring to FIG. 12, the number of pipeline stages required in a relay router device is reduced by providing an EVC 204 that bypasses routing and arbitration by several relay router devices. During bypass, the packet passes through the router device in two cycles.
  • router devices R0 to R15 are connected by a bidirectional communication channel 202.
  • the EVC 204 is defined.
  • the router devices R2, R7, and R11 omit the routing and switch arbitration of packets that arrive at the EVC 204. Accordingly, the delay time from the router device R1 to the router device R3 and the delay time from the router device R3 to R15 are shortened.
  • Non-Patent Document 3 describes predictive routing. That is, in parallel with the routing for the arrived packet, the output direction of the packet is speculatively predicted based on a predetermined prediction rule, and the packet is output by performing switch arbitration and switch passage in that direction. If the speculation is successful, the delay time is shortened according to the routing cycle. If the speculation fails as a result of the routing calculation, the output latch and the flit of the packet stored in the input latch and input data FIFO in the router device in the speculative output direction are canceled and the correct output direction Redo switch arbitration and switch passage for.
  • Non-Patent Documents 1 to 3 are incorporated herein by reference. The following analysis was made by the present inventors. According to the above NRC, it is necessary to transmit the result of the routing calculation together with the packet to the next router device, so that the amount of wiring increases. In addition, each router device needs to route a plurality of router devices connected to itself, which complicates the routing.
  • Non-Patent Document 2 the delay between adjacent nodes cannot be reduced, and arbitration and flow control between channels connecting a plurality of relay router apparatuses to be bypassed, and each relay router Arbitration for securing channels in the apparatus is required, and the effect of reducing the delay time is poor.
  • it is necessary to increase the number of buffers of the router device.
  • Non-Patent Document 3 requires a recovery process when the speculation is lost. Therefore, it is necessary to hold the packet in the buffer from the top data until speculation is confirmed. In addition, when speculation fails, extra power is consumed.
  • An object of the present invention is to provide a router device, a semiconductor integrated circuit device, a routing method, and a program for solving such a problem.
  • a router device includes a receiving unit that receives a first packet and receives a second packet including a destination address and arrival timing of the first packet, and the second packet includes A routing unit that performs routing of the first packet with reference to a destination address of the first packet, and a destination address and arrival timing of the first packet included in the second packet with respect to the first packet.
  • An arbiter unit that performs arbitration, and a transfer unit that transfers the first packet in accordance with routing by the routing unit and arbitration by the arbiter unit.
  • a semiconductor integrated circuit device includes a plurality of IP cores and the router device that transfers packets between the plurality of IP cores.
  • the router device receives the second packet including the destination address and arrival timing of the first packet before receiving the first packet; A step of routing the first packet with reference to the destination address of the first packet included in the first packet, and a first address with reference to the destination address and arrival timing of the first packet included in the second packet. Performing an arbitration on the packet and forwarding the first packet according to the routing and the arbitration.
  • a program for receiving a second packet including a destination address and arrival timing of the first packet before receiving the first packet; A process of routing the first packet with reference to a destination address of the included first packet, and a destination address and arrival timing of the first packet included in the second packet A computer executes a process of performing arbitration on the first packet and a process of transferring the first packet according to the routing and the arbitration.
  • the program may be a configuration file for a reconfigurable device.
  • the router device can transfer a packet with a short delay time.
  • the router device according to the first development form is preferably the router device according to the first aspect.
  • the router device of the second development form includes the number of preceding cycles that is the number of cycles from when the second packet is received as the arrival timing until the first packet is received. It is preferable that the arbiter unit performs the arbitration based on the number of preceding cycles and the flit length.
  • the transfer unit updates the number of preceding cycles included in the second packet, and transfers the second packet to the subsequent router device according to the routing by the routing unit. preferable.
  • the second packet includes the priority of the first packet, and the arbiter unit performs the arbitration according to the priority.
  • the arbiter unit when the arbiter unit performs arbitration according to the priority and cancels the preceding arbitration, it notifies the subsequent router to which the second packet has been transferred. It is preferable to do.
  • the semiconductor integrated circuit device according to the sixth development is preferably the semiconductor integrated circuit device according to the second aspect.
  • a semiconductor integrated circuit device is the same as the semiconductor integrated circuit device according to the fourth development form, in which a first communication channel that connects a plurality of IP cores and transfers a first packet, and a plurality of IP It is preferable to further include a second communication channel for connecting the cores and transferring the second packet.
  • the routing method according to the eighth development form is preferably the routing method according to the third aspect.
  • the routing method of the ninth development form includes the number of preceding cycles that is the number of cycles from when the second packet is received as the arrival timing until the first packet is received.
  • the router apparatus preferably performs arbitration based on the number of preceding cycles and the flit length.
  • the second packet includes the priority of the first packet, and the router device performs arbitration according to the priority.
  • the router device 30 includes a receiving unit 31, a routing unit 32, an arbiter unit 33, and a transfer unit 34.
  • the receiving unit 31 receives the first packet and receives the second packet including the destination address and arrival time of the first packet.
  • the routing unit 32 refers to the destination address of the first packet included in the second packet and routes the first packet.
  • the arbiter unit 33 performs arbitration for the first packet with reference to the destination address and arrival time of the first packet included in the second packet.
  • the transfer unit 34 transfers the first packet according to the routing by the routing unit 32 and the arbitration by the arbiter unit 33.
  • the router device 30 since the router device 30 does not need to perform routing and arbitration for the first packet after receiving the first packet, it can transfer the first packet with a short delay time.
  • FIG. 2 is a block diagram illustrating a configuration of the router device 20 according to the present embodiment.
  • Each component in FIG. 2 performs the same operation on a packet input from the input channel 1 of the N direction, S direction, E direction, W direction, and IP core.
  • n suffixed with n, e, s, w, and i, respectively.
  • subscripts are omitted for convenience.
  • the router device 20 includes an input channel 1, an input FIFO buffer 2, a through line 3, an input FIFO buffer output channel 4, a selector 6, 12, an output latch 7, an output channel 8, an arbiter unit 9, and an input latch. 10, a routing unit 11, and a reservation packet generation unit 13.
  • FIG. 3 is a block diagram showing a configuration of a system on chip (semiconductor integrated circuit device) using a network on chip (NoC).
  • the semiconductor integrated circuit device 21 includes IP cores IP0 to IP15, a network interface NIF, routers R0 to R15, and a communication channel 25.
  • the IP cores IP0 to IP15 are each connected to the communication channel 25 via the network interface NIF.
  • the routers R0 to R15 route the packet passing through the communication channel 25, and the packet is transmitted to the communication channel 25 in a desired direction.
  • the router device 20 shown in FIG. 2 is provided.
  • the output channel 2 receives a packet from the input channel 1 in five directions of N direction, E direction, S direction, W direction and I direction.
  • the input latch 10 once latches the received packet.
  • the routing unit 11 calculates (routes) the packet transfer destination.
  • the routing unit 11 makes a reservation request to the arbiter unit 9 when making a reservation for packet transmission.
  • the input FIFO buffer 2 stores flit data after the reservation request.
  • the input FIFO buffer output channel 4 is connected to the crossbar 5.
  • the through line 3 outputs the reserved packet to the crossbar 5 with a short delay time without going through the input FIFO buffer 2.
  • the selector 12 delivers flit data from the through line 3 to the input FIFO buffer 2.
  • the selector 6 receives eight input signals in the same direction as the output out of the ten inputs, and outputs one of the received input signals as an output signal in accordance with an instruction from the arbiter unit 9.
  • the output signal that has been output is output to the output channel 8 via the output latch 7 that aligns the timing of data output from the router device 20.
  • the reservation request packet generator 13 generates a reservation request packet.
  • the reservation request packet generation unit 13 receives information from the arbiter unit 9 as to whether or not a reservation has been made in the router device 20, and when a reservation is made, the next request packet is sent at a timing when no other packet is transmitted. A reservation request packet is transmitted to the stage router.
  • the selector 14 is a selector provided for this purpose.
  • FIG. 4 is a block diagram showing a configuration of the arbiter unit 9 in the present embodiment.
  • the arbiter unit 9 includes a selector arbiter 51, a reservation arbiter 52, a reservation table 53, and a remaining counter 56.
  • the selector arbiter 51 receives the normal packet arbitration request 61 from the input FIFO buffer 2 and the reservation information 62 from the reservation table 53, and arbitrates so that the reservation information 62 can be preferentially selected and the signal of the selector 6 can be selected.
  • the arbitration result signal 63 is output to the selector 6.
  • the reservation arbiter 52 receives the reservation request 64 included in the reservation request packet from the routing unit 11, refers to the attribute entry 54 of the reservation table 53, and determines whether or not the router device 20 is free at the arrival timing of the normal packet. Determine. When the router device 20 is free, the reservation arbiter 52 sets (sets) the attribute entry 54 effectively and writes the input channel 1 that receives the normal packet to the input channel entry 55.
  • the reservation arbiter 52 writes an appropriate value to the remaining number register 58 of the remaining counter 56 when the entry of the reservation table 53 overflows.
  • the reservation arbiter 52 transmits a reservation result notification signal 66 notifying that the reservation has been made to the reservation request packet generator 13.
  • the reservation request packet generator 13 receives the reservation result notification signal 66, the reservation request packet generator 13 transmits a reservation request packet to the router device at the next stage.
  • FIG. 5 and 6 are diagrams showing a format (frit configuration) of a packet transferred by the router device 20 according to the present embodiment.
  • FIG. 5 shows a normal packet flit configuration.
  • FIG. 6 shows a flit configuration of the reservation request packet.
  • the normal packet or the reservation request packet includes a packet body signal 81 or 91 and a sideband signal 82 or 92.
  • the sideband signal 82 or 92 indicates an attribute of the packet body signal 81 or 91, and is encoded by the following format as an example.
  • Attribute Packet body meaning 0b000 Invalid state 0b001 Reservation request packet 0b010 Reservation cancellation packet 0b011 Undefined 0b100 Normal packet control information head 0b101 Normal packet address 0b110 Normal packet data end 0b111 Normal packet data middle
  • a normal packet is composed of a plurality of flits 0 to n and is transferred over a plurality of cycles.
  • the flit whose sideband signal 82 is 0b100 is the head flit of a normal packet, and includes a destination address 83, a flit length 84, and control information 85.
  • a flit whose sideband signal 82 is 0b101 includes an access address 86 and an access attribute 87.
  • the packet includes data 88.
  • the flit whose sideband signal 82 is 0b110 includes data at the end of the packet.
  • the sideband signal 92 of the flit corresponding to the reservation request packet is 0b001, and the flit includes a destination address 93, a flit length 94, and a preceding cycle number 95.
  • the preceding cycle number 95 indicates the number of cycles between the arrival of the reservation request packet and the arrival of the normal packet.
  • FIG. 7 shows a packet routing operation of the router device 20 when there is no reservation request.
  • FIG. 8 shows a packet routing operation of the router device 20 when a reservation request is made.
  • the operation of the router device 20 shown in FIG. 7 is the same as the operation of the conventional router device.
  • the head flit arrives at the input channel 1 in the T1 cycle.
  • the input latch 10 latches the flit, and the routing unit 11 performs routing based on the destination address 83 of the head flit to determine in which direction the packet should be transferred. .
  • the head flit is stored in the input FIFO buffer 2 in the T3 cycle.
  • the arbiter unit 9 determines whether or not the output channel 8 to which this packet is to be output is free, and if it is free, assigns the selector 6 corresponding to the output destination.
  • the head frit actually passes through the selector 6 and is latched in the output latch 7. Furthermore, the head flit is output in the T5 cycle. Subsequent flits are input, routed, and output at the same timing as the leading flits. Referring to FIG. 7, a delay of 4 cycles occurs because the packet passes through the router device 20.
  • packet routing of the router device 20 when a reservation request by a reservation request packet is made will be described.
  • a reservation request packet arrives.
  • the reservation request packet is latched by the input latch 10 in the T2 cycle in the same manner as when the leading flit of the normal packet arrives.
  • the routing unit 11 performs routing with reference to the destination address 93 of the head flit (that is, the reservation request packet), and determines in which direction the packet should be transferred.
  • the reservation arbiter 52 refers to the number of preceding cycles 95 and the flit length 94 included in the reservation request packet, and the reservation table 53, and at the timing when the normal packet arrives, the output channel 8 is free. It is determined whether or not there is. If there is a vacancy, the reservation arbiter 52 changes the attribute entry 54 of the cycle from the vacant state 00 to the reserved states 01 (first), 11 (intermediate), 10 (end), and inputs to the input channel entry 55 Fill in channel 1. When the reservation is made, the reservation arbiter 52 transmits a reservation result notification signal 66 indicating that the reservation has been made and an arbitration result notification signal 65 indicating the current selector arbiter state to the reservation request packet generator 13. . The reservation request packet generator 13 generates a reservation request packet for the next router based on the reservation result notification signal 66. The generated reservation request packet is latched by the output latch 7 via the selector 14.
  • the reservation request packet is transmitted to the router at the next stage.
  • the leading flit of the normal packet arrives. Since the reservation for the router device 20 is established, the head flit passes directly through the selector 6 without going through the input latch 10 and the input FIFO buffer 2. Therefore, the head flit is latched in the output latch 7 in the T6 cycle and is output to the output channel 8 in the T7 cycle.
  • the delay time can be shortened by two cycles compared to the case where the reservation is not made.
  • the interval between the reservation request packet and the normal packet before passing through the router device 20 is 3 cycles, and the interval after passing through the router device 20 is 2 cycles.
  • the number of cycles to be shortened is determined when a reservation is made in the T3 cycle. Therefore, the number of preceding cycles 95 included in the reservation request packet transmitted to the next router in the T4 cycle is reduced by 1 and transmitted as 2 cycles.
  • the preceding cycle number 95 becomes 1 cycle or less, the reservation request packet is not transmitted to the subsequent router. This is because a normal packet arrives at the subsequent router before reservation is made based on the reservation request packet.
  • the router device 20 performs one of the following processes based on the priority of the packet.
  • the router device 20 invalidates the newly arrived reservation request packet, and performs normal scheduling for the normal packet corresponding to the newly arrived reservation request packet (first process). At this time, the router device 20 does not issue a reservation request packet to the next-stage router device.
  • the router device 20 invalidates the schedule that has already been reserved, treats the normal packet that has already been reserved as a normal packet, and makes a new reservation based on the newly arrived reservation request packet (second processing) ). At this time, the router device 20 issues a reservation request packet to the next-stage router.
  • the next-stage router device performs the same process.
  • the destination address target IP core
  • the route of the packet that has been reserved earlier and the packet that has been reserved later The route is different from the middle.
  • the router device 20 provided at a location where the route for these packets branches from the same route to a different route indicates that the reservation for the same reservation cycle and the same input channel 1 has already been made.
  • a reservation cancellation packet is issued as necessary to the output channel 8 that has been recognized by reference and has been previously reserved.
  • a reservation request packet for communication from the IP core IP0 to the IP core IP9 is issued, and a reservation request for communication from the IP core IP4 to the IP core IP13.
  • a packet is also issued and a regular packet reservation conflicts.
  • IP core IP0 to IP core IP9 passes through a route of IP core IP0 ⁇ router R0 ⁇ router R4 ⁇ router R8 ⁇ router R9 ⁇ IP core IP9.
  • IP core IP4 to the IP core IP13 passes through a route of IP core IP4 ⁇ router R4 ⁇ router R8 ⁇ router R12 ⁇ router R13 ⁇ IP core IP13.
  • packet reservation may compete between the routers R4 and R8.
  • FIG. 9 is a diagram for explaining the operation of the reservation table 53 of the router apparatus R4.
  • FIG. 9 shows the operation of the reservation table 53 when the previous reservation is canceled in the router apparatus R4.
  • the reservation request packet from the IP core IP0 arrives at the router R4 via the router R0.
  • the reservation arbiter 52 of the router apparatus R4 refers to the entry of the reservation table 53 at that timing.
  • the reservation arbiter 52 determines that the reservation is possible, and in the T2 cycle that is one cycle after the T1 cycle, validates the attribute entry 101 corresponding to +6 to +11 cycles, and at the same time, makes a reservation request from the router apparatus R0. Therefore, the input channel entry 102 is set to N. At the same time, the router device R4 issues a reservation request packet to the next-stage router device R8.
  • the T3 cycle one cycle is advanced, and the range reserved for input from the input channel 1n in the N direction shifts to +5 to +10 cycles.
  • the reservation request packet from the IP core IP4 arrives at the router device R4.
  • the router apparatus R4 tries to reserve a normal packet in the +9 to +14 cycles from the T3 cycle, it competes with the reservation for the input channel 1n in the N direction previously reserved in the T3 cycle +9 and the 10th cycle.
  • the router apparatus R4 receives the input from the N direction in T3 + 5 to +10 cycles. The reservation is canceled and a new reservation is made from the IP core IP4.
  • the input from the input channel 1i in the I direction is newly reserved for the T4 + 8 to +13 cycles.
  • the priority may be held in the reservation request packet or the reservation table 53, or the priority of IP4 may always be set higher in the router device.
  • FIG. 10 is a diagram for explaining the operation of the reservation table 53 of the router apparatus R8.
  • FIG. 10 is a diagram for explaining a reservation canceling operation in another direction accompanying cancellation of a previous reservation in the router apparatus R8.
  • the reservation request packet from the IP core IP0 arrives at the router device R8, and in the T5 cycle, the reservation for the reservation table 53 in the E direction (R9 direction) of the router device R8 is established.
  • the router apparatus R8 since the reservation request packets from the IP core IP4 arrive at the router apparatus R8 in the T6 cycle, these reservation request packets compete in the T6 + 7 and +8 cycles, and the router apparatus R8 receives the request from the IP core IP0. Recognize that it was canceled. Therefore, in the T7 cycle, the reservation from the IP core IP0 output in the E direction is cancelled. At the same time, the router apparatus R8 sends a reservation cancellation packet in the E direction (R9 direction). As a result, the reservation in the router apparatus R9 is also cancelled.
  • FIG. 4 shows, as an example, a case where the same packet continues for four cycles exceeding the upper limit (+16) of the number of entries.
  • the reservation arbiter 52 sets 4 to the remaining number register 58 and sets the same input channel (S) as the input channel entry 55 of the maximum upper limit entry + 16 to the input channel entry 59.
  • the remaining counter 56 is counted down and the contents of the reservation table 53 are shifted.
  • the value of the input channel entry 59 is set for the maximum upper limit entry +16 together with the attribute generated by the attribute generation unit 57.
  • routing reservation exceeding the upper limit of the number of entries can be made.
  • the semiconductor integrated circuit device 21 there is only one network. That is, not only a normal packet but also a reservation request packet and a reservation cancellation packet are transmitted / received through this one system network.
  • the packet transfer efficiency is lowered due to the competition between the reservation request packet and the normal packet. Therefore, the reservation request packet may be transmitted / received via a network different from the normal packet.
  • FIG. 11 is a diagram showing a configuration of the semiconductor integrated circuit device 121 according to the present embodiment.
  • the semiconductor integrated circuit device 121 is a system on chip (SoC) in which a network on chip (NoC) is duplicated.
  • SoC system on chip
  • NoC network on chip
  • a normal network and a control network are separated.
  • the semiconductor integrated circuit device 121 includes IP cores IP0 to IP15, a network interface NIF, main router devices MR0 to MR15, control router devices CR0 to CR15, a main communication channel 125, and a control communication channel 127. .
  • the IP cores IP0 to IP15 are connected to the main communication channel 125 via the network interface NIF.
  • the main router devices MR0 to MR15 route packets passing through the main communication channel 125, and send the packets to the main communication channel 125 in a desired direction.
  • the network interface NIF and the control router devices CR0 to CR15 are connected via a control communication channel 127.
  • the main router devices MR0 to MR15 are connected to the control router devices CR0 to CR15, respectively.
  • the control router devices CR0 to CR15 perform routing of packets passing through the control communication channel 127. By sending a reservation request packet and a reservation cancellation packet to the control network, the packet scheduling of the main router devices MR0 to MR15 is reserved or canceled.
  • control network Since the control network does not need to flow packets with a long flit length, the number of entries in the input FIFO buffer (not shown) can be reduced. Also, by reducing the bit width for the control communication channel 127 compared to the bit width for the main communication channel 125, the control communication channel 127 can be realized at a lower cost than a normal network. Further, network traffic can be optimized by sending an access request packet such as a read request to a memory without a data flit to the control network.
  • the IP core is connected to an external memory or an internal memory (for example, SDRAM), a period of several cycles may be required until data is output after an access request is made to these devices.
  • the network interface NIF connected to these devices preferably issues a memory access request and simultaneously issues a reservation request packet to the network. This is because network routing and switch reservation can be completed before data is available. At this time, the delay time of the network can be concealed.
  • a receiving unit that receives the first packet and receives the second packet including the destination address and arrival timing of the first packet;
  • a routing unit for routing the first packet with reference to a destination address of the first packet included in the second packet;
  • An arbiter unit that performs arbitration for the first packet with reference to a destination address and arrival timing of the first packet included in the second packet;
  • a transfer unit that transfers the first packet in accordance with routing by the routing unit and arbitration by the arbiter unit.
  • the second packet includes a preceding cycle number that is a cycle number from the reception of the second packet to the reception of the first packet as the arrival timing, and the first packet Including the flit length of the packet,
  • the router apparatus according to appendix 1, wherein the arbiter unit performs the arbitration based on the number of preceding cycles and the flit length.
  • the transfer unit updates the number of preceding cycles included in the second packet, and transfers the second packet to a subsequent router device according to the routing by the routing unit.
  • the router device according to attachment 2.
  • the second packet includes the priority of the first packet, The router device according to any one of appendices 1 to 3, wherein the arbiter unit performs arbitration according to the priority.
  • Appendix 6 A plurality of IP cores;
  • a semiconductor integrated circuit device comprising: the router device according to any one of appendices 1 to 5 that transfers packets between the plurality of IP cores.
  • the router device receives a second packet including a destination address and arrival timing of the first packet before receiving the first packet; Routing the first packet with reference to a destination address of the first packet included in the second packet; Performing arbitration on the first packet with reference to a destination address and arrival timing of the first packet included in the second packet; Forwarding the first packet according to the routing and the arbitration.
  • the second packet includes a preceding cycle number which is a cycle number from the reception of the second packet to the reception of the first packet as the arrival timing, and the first packet Including the flit length of the packet, 9.
  • the routing method according to appendix 8 wherein the router device performs the arbitration based on the number of preceding cycles and the flit length.
  • the second packet includes the priority of the first packet, 10.
  • the second packet includes a preceding cycle number which is a cycle number from the reception of the second packet to the reception of the first packet as the arrival timing, and the first packet Including the flit length of the packet,
  • the second packet includes the priority of the first packet,
  • the program according to appendix 11 or 12 which causes a computer to execute a process of performing the arbitration according to the priority.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

A router apparatus which forwards packets with a short delay time. The router apparatus comprises: a reception unit which receives a first packet as well as receives a second packet which includes the destination address and arrival timing of the first packet; a routing unit which routes the first packet, referring to the destination address of the first packet included in the second packet; an arbiter unit which performs arbitration with respect to the first packet, referring to the destination address and arrival timing of the first packet included in the second packet; and a forwarding unit which forwards the first packet in accordance with the routing by the routing unit and arbitration by the arbiter unit.

Description

ルータ装置、半導体集積回路装置、ルーティング方法及びプログラムRouter device, semiconductor integrated circuit device, routing method and program
 [関連出願についての記載]
 本発明は、日本国特許出願:特願2009-072507号(2009年 3月24日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
 本発明は、ルータ装置、半導体集積回路装置、ルーティング方法及びプログラムに関し、特に、半導体集積回路装置に設けられたIPコア間の通信のためのルータ装置、そのルータ装置を有する半導体集積回路装置、ルーティング方法及びプログラムに関する。
[Description of related applications]
The present invention is based on the priority claim of Japanese patent application: Japanese Patent Application No. 2009-072507 (filed on Mar. 24, 2009), the entire contents of which are incorporated herein by reference. Shall.
The present invention relates to a router device, a semiconductor integrated circuit device, a routing method, and a program, and in particular, a router device for communication between IP cores provided in a semiconductor integrated circuit device, a semiconductor integrated circuit device having the router device, and a routing The present invention relates to a method and a program.
 SoC(System On a Chip)とは、複数のIP(Intellectual Property)コアを集積した半導体集積回路装置をいう。従来、SoCに搭載されたIPコア間の通信は、バスを介して行われてきた。例えば、ARM社によって提唱されたAMBA(Advanced Microcontroller Bus Architecture)は、IPコア間のバスの標準であり、IPコアの個数の増加、及び、SoCの複雑化に対応して、AHB(Advanced High-performance Bus)、マルチレイヤAHB、AXI(Advanced eXtensible Interface)のように進化してきた。 SoC (System On a Chip) refers to a semiconductor integrated circuit device in which a plurality of IP (Intellectual Property) cores are integrated. Conventionally, communication between IP cores mounted on the SoC has been performed via a bus. For example, AMBA (Advanced Microcontroller Bus Architecture) proposed by ARM Inc. is a standard for buses between IP cores. In response to the increase in the number of IP cores and the complexity of SoC, AHB (Advanced High- performance Bus), multi-layer AHB, AXI (Advanced eXtensible Interface).
 しかし、バス構成によると、配線長が長くなり周波数の向上に対応することが困難である。また、バス構成によると、複数のIPコアからのアクセス競合に対する調停を集中的に行う必要があるため、IPコアの個数の増加に伴ってバスを作り直す必要が生じている。現状では、この問題に対して、バスを階層的に接続することによって、通信のローカリティ(局所性)を確保する方法が用いられている。 However, according to the bus configuration, the wiring length becomes long and it is difficult to cope with the improvement of the frequency. In addition, according to the bus configuration, it is necessary to concentrate on arbitration for access competition from a plurality of IP cores, so that it is necessary to recreate the bus as the number of IP cores increases. At present, for this problem, a method of securing communication locality (locality) by hierarchically connecting buses is used.
 一方、非特許文献1において、データをパケット化して送ることにより、通信のローカリティを有効に活用しつつ、調停を各ルータに分散させることによってスケーラビリティを確保したNoC(Network on Chip)が記載されている。 On the other hand, Non-Patent Document 1 describes NoC (Network on Chip) that ensures scalability by distributing arbitration to each router while effectively utilizing communication locality by sending data in packets. Yes.
 NoCを採用したチップとして、例えば、Tilera社のTILE64、Intel社の80コアチップ、CEA-LETI社のFAUSTチップ、STMicroelectronics社のSTNoCが挙げられる。 Examples of chips adopting NoC include TILE64 manufactured by Tilera, 80 core chip manufactured by Intel, FAUST chip manufactured by CEA-LETI, and STNoC manufactured by STMicroelectronics.
 図3は、NoCを採用したSoCの構成を示すブロック図である。図5は、通常パケットのフリット構成を示す図である。図5を参照すると、通常パケットは、複数のフリットから構成される。図3及び図5を参照すると、SoC21においては、ルータ装置R0~R15と通信チャネル25によってネットワークが構成される。IPコアIP0~IP15間の通信は、図5に示した通常パケットを、このネットワークに流すことによって実現される。 FIG. 3 is a block diagram showing the configuration of the SoC that employs NoC. FIG. 5 is a diagram illustrating a flit configuration of a normal packet. Referring to FIG. 5, a normal packet is composed of a plurality of flits. Referring to FIGS. 3 and 5, in SoC 21, a network is configured by router devices R0 to R15 and communication channel 25. Communication between the IP cores IP0 to IP15 is realized by flowing the normal packet shown in FIG. 5 through this network.
 しかし、NoC構成を採用した場合には、データの送信IPコアから受信IPコアまでデータを届けるためのサイクル数(すなわち、遅延時間(レイテンシ))が、バス構成における遅延時間と比較して長くなる。バス構成を採用した場合には、アービトレーション(調停)が完了すれば送信IPコアから受信IPコアまでのチャネルが確立するため、データ転送の速度とレイテンシは、バスの動作周波数と、その周波数を満たすために一定配線長毎に挿入されたパイプラインレジスタの段数によって決定される。 However, when the NoC configuration is adopted, the number of cycles (that is, delay time (latency)) for delivering data from the data transmission IP core to the reception IP core is longer than the delay time in the bus configuration. . When the bus configuration is adopted, a channel from the transmission IP core to the reception IP core is established when arbitration is completed, so that the data transfer speed and latency satisfy the bus operating frequency and the frequency. Therefore, it is determined by the number of stages of pipeline registers inserted every fixed wiring length.
 一方、NoC構成を採用した場合には、パケットの先頭フリットが到着した後、そのパケットの行き先の計算、行き先に基づいた出力スイッチ及びチャネルの調停、並びに、出力バッファへのラッチを複数のサイクルを要して行う必要がある。通信を行うIPコア間の距離にも依存するものの、複数のルータ装置を経由する場合には、NoC構成によると、バス構成と比較して大きい遅延が生じうる。 On the other hand, when the NoC configuration is adopted, after the first flit of the packet arrives, calculation of the destination of the packet, arbitration of the output switch and channel based on the destination, and latch to the output buffer are performed in a plurality of cycles. It is necessary to do it. Although depending on the distance between IP cores that perform communication, when a plurality of router devices are used, the NoC configuration may cause a large delay compared to the bus configuration.
 この問題に対して、ルーティングを一つ手前のルータ装置で行うNRC(Next Routing Computation)が提案されている。図3を参照すると、NRCにおいては、ルータ装置R0からルータ装置R1を経由してルータ装置R5に至るパケットを送信する場合、ルータ装置R0はルータ装置R1のルーティングを行い、ルータ装置R1はルータ装置R5のルーティングを行なう。 In response to this problem, NRC (Next Routing Computation) has been proposed in which routing is performed by a router device immediately before. Referring to FIG. 3, in NRC, when transmitting a packet from router device R0 to router device R5 via router device R1, router device R0 performs routing of router device R1, and router device R1 is a router device. R5 routing is performed.
 非特許文献2において、EVC(Express Virtual Channel)が記載されている。図12は、非特許文献2に記載されたEVCについて説明するための図である。図12を参照すると、いくつかの中継ルータ装置によるルーティング及び調停をバイパスするEVC204を張ることによって、中継ルータ装置において必要とされるパイプラインの段数を削減する。バイパス時には、パケットは2サイクルでルータ装置を通過する。 Non-Patent Document 2 describes EVC (Express Virtual Channel). FIG. 12 is a diagram for explaining the EVC described in Non-Patent Document 2. Referring to FIG. 12, the number of pipeline stages required in a relay router device is reduced by providing an EVC 204 that bypasses routing and arbitration by several relay router devices. During bypass, the packet passes through the router device in two cycles.
 図12を参照すると、ルータ装置R0~R15は、双方向の通信チャネル202で接続されている。ルータ装置R1からルータ装置R15への通信が多数存在する場合には、EVC204を定義する。ルータ装置R2、R7、及びR11は、EVC204で到着したパケットのルーティング及びスイッチ調停を省略する。したがって、ルータ装置R1からルータ装置R3への遅延時間、及びルータ装置R3からR15への遅延時間は短くなる。 Referring to FIG. 12, router devices R0 to R15 are connected by a bidirectional communication channel 202. When there are many communications from the router apparatus R1 to the router apparatus R15, the EVC 204 is defined. The router devices R2, R7, and R11 omit the routing and switch arbitration of packets that arrive at the EVC 204. Accordingly, the delay time from the router device R1 to the router device R3 and the delay time from the router device R3 to R15 are shortened.
 非特許文献3において、予測ルーティングが記載されている。すなわち、到着したパケットに対するルーティングと並行して、所定の予測ルールに基づいて、投機的にパケットの出力方向を予測し、その方向のスイッチ調停及びスイッチ通過を行い、パケットを出力してしまう。投機が成功した場合には、ルーティングのサイクルに応じて遅延時間が短縮される。ルーティング計算の結果、投機が失敗した場合には、出力ラッチ、並びに、投機的に出力した方向のルータ装置内の入力ラッチ及び入力データFIFOに格納された当該パケットのフリットを取り消すとともに、正しい出力方向に対するスイッチ調停及びスイッチ通過をやり直す。 Non-Patent Document 3 describes predictive routing. That is, in parallel with the routing for the arrived packet, the output direction of the packet is speculatively predicted based on a predetermined prediction rule, and the packet is output by performing switch arbitration and switch passage in that direction. If the speculation is successful, the delay time is shortened according to the routing cycle. If the speculation fails as a result of the routing calculation, the output latch and the flit of the packet stored in the input latch and input data FIFO in the router device in the speculative output direction are canceled and the correct output direction Redo switch arbitration and switch passage for.
 上記非特許文献1~3の全開示内容はその引用をもって本書に繰込み記載する。
 以下の分析は、本発明者によってなされたものである。上記のNRCによると、パケットとともにルーティング計算の結果を次のルータ装置へ送信する必要が生じるため、配線量が増加する。また、各ルータ装置は自身に接続された複数のルータ装置のルーティングを行う必要があり、ルーティングが複雑化する。
The entire disclosures of Non-Patent Documents 1 to 3 are incorporated herein by reference.
The following analysis was made by the present inventors. According to the above NRC, it is necessary to transmit the result of the routing calculation together with the packet to the next router device, so that the amount of wiring increases. In addition, each router device needs to route a plurality of router devices connected to itself, which complicates the routing.
 また、非特許文献2に記載されたEVCによると、近接ノード間の遅延を削減することができず、バイパスする複数の中継ルータ装置を結ぶチャネル間にまたがる調停及びフロー制御、並びに、各中継ルータ装置内におけるチャネル確保のための調停が必要となり、遅延時間を短縮する効果は乏しい。また、EVCを実現するには、ルータ装置のバッファ数を増やす必要がある。 Further, according to the EVC described in Non-Patent Document 2, the delay between adjacent nodes cannot be reduced, and arbitration and flow control between channels connecting a plurality of relay router apparatuses to be bypassed, and each relay router Arbitration for securing channels in the apparatus is required, and the effect of reducing the delay time is poor. In order to realize EVC, it is necessary to increase the number of buffers of the router device.
 さらに、非特許文献3に記載された予測ルータにおいては、投機がはずれた場合には回復処理が必要となる。したがって、投機が確定するまで、パケットを先頭データからバッファに保持しておく必要がある。また、投機が失敗した場合には、余分な電力を消費する。 Furthermore, the prediction router described in Non-Patent Document 3 requires a recovery process when the speculation is lost. Therefore, it is necessary to hold the packet in the buffer from the top data until speculation is confirmed. In addition, when speculation fails, extra power is consumed.
 また、これらの方式では、ルーティングの遅延時間を短縮できるものの、スイッチ調停時間の短縮はできないため、構成が複雑化する割には、短縮することができる遅延時間は限られている。 Further, although these systems can reduce the routing delay time, the switch arbitration time cannot be shortened. Therefore, the delay time that can be shortened is limited although the configuration is complicated.
 そこで、ルータ装置において短い遅延時間でパケットを転送することが課題となる。本発明の目的は、かかる課題を解決するルータ装置、半導体集積回路装置、ルーティング方法及びプログラムを提供することにある。 Therefore, it becomes a problem to transfer packets with a short delay time in the router device. An object of the present invention is to provide a router device, a semiconductor integrated circuit device, a routing method, and a program for solving such a problem.
 本発明の第1の視点に係るルータ装置は、第1のパケットを受信するとともに第1のパケットの宛先アドレス及び到着タイミングを含む第2のパケットを受信する受信部と、第2のパケットに含まれる第1のパケットの宛先アドレスを参照して第1のパケットのルーティングを行うルーティング部と、第2のパケットに含まれる第1のパケットの宛先アドレス及び到着タイミングを参照して第1のパケットに対するアービトレーションを行うアービタ部と、ルーティング部によるルーティング及びアービタ部によるアービトレーションにしたがって第1のパケットを転送する転送部と、を有する。 A router device according to a first aspect of the present invention includes a receiving unit that receives a first packet and receives a second packet including a destination address and arrival timing of the first packet, and the second packet includes A routing unit that performs routing of the first packet with reference to a destination address of the first packet, and a destination address and arrival timing of the first packet included in the second packet with respect to the first packet. An arbiter unit that performs arbitration, and a transfer unit that transfers the first packet in accordance with routing by the routing unit and arbitration by the arbiter unit.
 本発明の第2の視点に係る半導体集積回路装置は、複数のIPコアと、当該複数のIPコア間のパケットを転送する上記のルータ装置と、を備えている。 A semiconductor integrated circuit device according to a second aspect of the present invention includes a plurality of IP cores and the router device that transfers packets between the plurality of IP cores.
 本発明の第3の視点に係るルーティング方法は、ルータ装置が、第1のパケットを受信する前に第1のパケットの宛先アドレス及び到着タイミングを含む第2のパケットを受信する工程と、第2のパケットに含まれる第1のパケットの宛先アドレスを参照して第1のパケットのルーティングを行う工程と、第2のパケットに含まれる第1のパケットの宛先アドレス及び到着タイミングを参照して第1のパケットに対するアービトレーションを行う工程と、当該ルーティング及び当該アービトレーションにしたがって第1のパケットを転送する工程と、を含む。 In the routing method according to the third aspect of the present invention, the router device receives the second packet including the destination address and arrival timing of the first packet before receiving the first packet; A step of routing the first packet with reference to the destination address of the first packet included in the first packet, and a first address with reference to the destination address and arrival timing of the first packet included in the second packet. Performing an arbitration on the packet and forwarding the first packet according to the routing and the arbitration.
 本発明の第4の視点に係るプログラムは、第1のパケットを受信する前に該第1のパケットの宛先アドレス及び到着タイミングを含む第2のパケットを受信する処理と、前記第2のパケットに含まれる前記第1のパケットの宛先アドレスを参照して前記第1のパケットのルーティングを行う処理と、前記第2のパケットに含まれる前記第1のパケットの宛先アドレス及び到着タイミングを参照して前記第1のパケットに対するアービトレーションを行う処理と、前記ルーティング及び前記アービトレーションにしたがって前記第1のパケットを転送する処理と、をコンピュータに実行させる。なお、プログラムは、再構成可能デバイスに対するコンフィギュレーションファイルであってもよい。 According to a fourth aspect of the present invention, there is provided a program for receiving a second packet including a destination address and arrival timing of the first packet before receiving the first packet; A process of routing the first packet with reference to a destination address of the included first packet, and a destination address and arrival timing of the first packet included in the second packet A computer executes a process of performing arbitration on the first packet and a process of transferring the first packet according to the routing and the arbitration. Note that the program may be a configuration file for a reconfigurable device.
 本発明に係るルータ装置、半導体集積回路、ルーティング方法及びプログラムによると、ルータ装置において短い遅延時間でパケットを転送することができる。 According to the router device, the semiconductor integrated circuit, the routing method, and the program according to the present invention, the router device can transfer a packet with a short delay time.
本発明の第1の実施形態に係るルータ装置の構成を示すブロック図である。It is a block diagram which shows the structure of the router apparatus which concerns on the 1st Embodiment of this invention. 本発明の第2の実施形態に係るルータ装置の構成を示すブロック図である。It is a block diagram which shows the structure of the router apparatus which concerns on the 2nd Embodiment of this invention. 本発明の第2の実施形態に係る半導体集積回路装置の構成を示すブロック図である。It is a block diagram which shows the structure of the semiconductor integrated circuit device which concerns on the 2nd Embodiment of this invention. 本発明の第2の実施形態におけるアービタ部の構成を示すブロック図である。It is a block diagram which shows the structure of the arbiter part in the 2nd Embodiment of this invention. 本発明の第2の実施形態に係るルータ装置によって転送される通常パケットのフリット構成を示す図である。It is a figure which shows the flit structure of the normal packet transferred by the router apparatus which concerns on the 2nd Embodiment of this invention. 本発明の第2の実施形態に係るルータ装置によって転送される予約要求パケットのフリット構成を示す図である。It is a figure which shows the flit structure of the reservation request packet transferred by the router apparatus which concerns on the 2nd Embodiment of this invention. 本発明の第2の実施形態に係るルータ装置の動作を示すタイミングチャートである。It is a timing chart which shows operation | movement of the router apparatus which concerns on the 2nd Embodiment of this invention. 本発明の第2の実施形態に係るルータ装置の動作を示すタイミングチャートである。It is a timing chart which shows operation | movement of the router apparatus which concerns on the 2nd Embodiment of this invention. 本発明の第2の実施形態における予約テーブルの動作について説明するための図である。It is a figure for demonstrating operation | movement of the reservation table in the 2nd Embodiment of this invention. 本発明の第2の実施形態における予約テーブルの動作について説明するための図である。It is a figure for demonstrating operation | movement of the reservation table in the 2nd Embodiment of this invention. 本発明の第3の実施形態に係る半導体集積回路装置の構成を示す図である。It is a figure which shows the structure of the semiconductor integrated circuit device which concerns on the 3rd Embodiment of this invention. 非特許文献2に記載されたEVCについて説明するための図である。It is a figure for demonstrating EVC described in the nonpatent literature 2. FIG.
 第1の展開形態のルータ装置は、上記第1の視点に係るルータ装置であることが好ましい。 The router device according to the first development form is preferably the router device according to the first aspect.
 第2の展開形態のルータ装置は、第2のパケットが、到着タイミングとして第2のパケットを受信してから第1のパケットを受信するまでのサイクル数である先行サイクル数を含むとともに、第1のパケットのフリット長を含み、アービタ部が、先行サイクル数及びフリット長に基づいて上記アービトレーションを行うことが好ましい。 The router device of the second development form includes the number of preceding cycles that is the number of cycles from when the second packet is received as the arrival timing until the first packet is received. It is preferable that the arbiter unit performs the arbitration based on the number of preceding cycles and the flit length.
 第3の展開形態のルータ装置は、転送部が、第2のパケットに含まれる先行サイクル数を更新するとともに、ルーティング部によるルーティングにしたがって当該第2のパケットを後段のルータ装置へ転送することが好ましい。 In the router device according to the third development form, the transfer unit updates the number of preceding cycles included in the second packet, and transfers the second packet to the subsequent router device according to the routing by the routing unit. preferable.
 第4の展開形態のルータ装置は、第2のパケットが、第1のパケットの優先度を含み、アービタ部が、優先度に応じて上記アービトレーションを行うことが好ましい。 In the router device of the fourth expansion form, it is preferable that the second packet includes the priority of the first packet, and the arbiter unit performs the arbitration according to the priority.
 第5の展開形態のルータ装置は、アービタ部が、優先度に応じてアービトレーションを行った場合において、先行するアービトレーションを取り消したときには、第2のパケットが転送された後段のルータへその旨を通知することが好ましい。 In the router device of the fifth form of deployment, when the arbiter unit performs arbitration according to the priority and cancels the preceding arbitration, it notifies the subsequent router to which the second packet has been transferred. It is preferable to do.
 第6の展開形態の半導体集積回路装置は、上記第2の視点に係る半導体集積回路装置であることが好ましい。 The semiconductor integrated circuit device according to the sixth development is preferably the semiconductor integrated circuit device according to the second aspect.
 第7の展開形態の半導体集積回路装置は、第4の展開形態の半導体集積回路装置において、複数のIPコア間を接続するとともに第1のパケットを転送する第1の通信チャネルと、複数のIPコア間を接続するとともに第2のパケットを転送する第2の通信チャネルと、をさらに備えていることが好ましい。 A semiconductor integrated circuit device according to a seventh development form is the same as the semiconductor integrated circuit device according to the fourth development form, in which a first communication channel that connects a plurality of IP cores and transfers a first packet, and a plurality of IP It is preferable to further include a second communication channel for connecting the cores and transferring the second packet.
 第8の展開形態のルーティング方法は、上記第3の視点に係るルーティング方法であることが好ましい。 The routing method according to the eighth development form is preferably the routing method according to the third aspect.
 第9の展開形態のルーティング方法は、第2のパケットが、到着タイミングとして第2のパケットを受信してから第1のパケットを受信するまでのサイクル数である先行サイクル数を含むとともに、第1のパケットのフリット長を含み、ルータ装置は、先行サイクル数及びフリット長に基づいて、アービトレーションを行うことが好ましい。 The routing method of the ninth development form includes the number of preceding cycles that is the number of cycles from when the second packet is received as the arrival timing until the first packet is received. The router apparatus preferably performs arbitration based on the number of preceding cycles and the flit length.
 第10の展開形態のルーティング方法は、第2のパケットが、第1のパケットの優先度を含み、ルータ装置は、優先度に応じてアービトレーションを行うことが好ましい。 In the routing method of the tenth development form, it is preferable that the second packet includes the priority of the first packet, and the router device performs arbitration according to the priority.
 (実施形態1)
 本発明の第1の実施形態に係るルータ装置について、図面を参照して説明する。図1を参照すると、ルータ装置30は、受信部31、ルーティング部32、アービタ部33、及び転送部34を有する。
(Embodiment 1)
A router device according to a first embodiment of the present invention will be described with reference to the drawings. Referring to FIG. 1, the router device 30 includes a receiving unit 31, a routing unit 32, an arbiter unit 33, and a transfer unit 34.
 受信部31は、第1のパケットを受信するとともに第1のパケットの宛先アドレス及び到着時刻を含む第2のパケットを受信する。 The receiving unit 31 receives the first packet and receives the second packet including the destination address and arrival time of the first packet.
 ルーティング部32は、第2のパケットに含まれる第1のパケットの宛先アドレスを参照して第1のパケットのルーティングを行う。 The routing unit 32 refers to the destination address of the first packet included in the second packet and routes the first packet.
 アービタ部33は、第2のパケットに含まれる第1のパケットの宛先アドレス及び到着時刻を参照して第1のパケットに対するアービトレーションを行う。 The arbiter unit 33 performs arbitration for the first packet with reference to the destination address and arrival time of the first packet included in the second packet.
 転送部34は、ルーティング部32によるルーティング及びアービタ部33によるアービトレーションにしたがって第1のパケットを転送する。 The transfer unit 34 transfers the first packet according to the routing by the routing unit 32 and the arbitration by the arbiter unit 33.
 このとき、ルータ装置30は、第1のパケットを受信した後に第1のパケットに対するルーティング及びアービトレーションを行う必要がないため、短い遅延時間で第1のパケットを転送することができる。 At this time, since the router device 30 does not need to perform routing and arbitration for the first packet after receiving the first packet, it can transfer the first packet with a short delay time.
 (実施形態2)
 本発明の第2の実施形態について図面を参照して詳細に説明する。図2は、本実施形態に係るルータ装置20の構成を示すブロック図である。図2の各構成要素は、N方向、S方向、E方向、W方向、及びIPコアの入力チャネル1から入力されたパケットに対して同様の動作を行うことから、これらの各構成要素の符号には、それぞれ添字(サフィックス)n、e、s、w、及びiを付した。以下の説明においては、便宜のため、添え字を省略する。
(Embodiment 2)
A second embodiment of the present invention will be described in detail with reference to the drawings. FIG. 2 is a block diagram illustrating a configuration of the router device 20 according to the present embodiment. Each component in FIG. 2 performs the same operation on a packet input from the input channel 1 of the N direction, S direction, E direction, W direction, and IP core. Are suffixed with n, e, s, w, and i, respectively. In the following description, subscripts are omitted for convenience.
 図2を参照すると、ルータ装置20は、入力チャネル1、入力FIFOバッファ2、スルーライン3、入力FIFOバッファ出力チャネル4、セレクタ6、12、出力ラッチ7、出力チャネル8、アービタ部9、入力ラッチ10、ルーティング部11、及び、予約パケット生成部13を有する。 Referring to FIG. 2, the router device 20 includes an input channel 1, an input FIFO buffer 2, a through line 3, an input FIFO buffer output channel 4, a selector 6, 12, an output latch 7, an output channel 8, an arbiter unit 9, and an input latch. 10, a routing unit 11, and a reservation packet generation unit 13.
 図3は、ネットワークオンチップ(NoC)を利用したシステムオンチップ(半導体集積回路装置)の構成を示すブロック図である。図3を参照すると、半導体集積回路装置21は、IPコアIP0~IP15、ネットワークインタフェースNIF、ルータR0~R15、及び、通信チャネル25を有する。 FIG. 3 is a block diagram showing a configuration of a system on chip (semiconductor integrated circuit device) using a network on chip (NoC). Referring to FIG. 3, the semiconductor integrated circuit device 21 includes IP cores IP0 to IP15, a network interface NIF, routers R0 to R15, and a communication channel 25.
 IPコアIP0~IP15は、それぞれネットワークインタフェースNIFを介して通信チャネル25に接続される。ルータR0~R15は、通信チャネル25を通るパケットのルーティングを行い、パケットは所望の方向の通信チャネル25に送信される。ルータ装置R0~R15として、図2に示したルータ装置20が設けられる。 The IP cores IP0 to IP15 are each connected to the communication channel 25 via the network interface NIF. The routers R0 to R15 route the packet passing through the communication channel 25, and the packet is transmitted to the communication channel 25 in a desired direction. As the router devices R0 to R15, the router device 20 shown in FIG. 2 is provided.
 図2のルータ装置は、N方向、E方向、S方向、W方向及びI方向の5つ方向の入力チャネル1からパケットを受信する。入力ラッチ10は、受信したパケットを一旦ラッチする。ルーティング部11は、パケットの転送先の計算(ルーティング)を行う。ルーティング部11は、パケット送信の予約を行う場合には、アービタ部9に対して、予約要求を行う。入力FIFOバッファ2は、予約要求の後のフリットデータを蓄積する。入力FIFOバッファ出力チャネル4は、クロスバー5へ接続される。スルーライン3は、予約されたパケットを、入力FIFOバッファ2を経由することなく、短い遅延時間でクロスバー5へ出力する。セレクタ12は、スルーライン3から入力FIFOバッファ2へフリットデータを受け渡す。 2 receives a packet from the input channel 1 in five directions of N direction, E direction, S direction, W direction and I direction. The input latch 10 once latches the received packet. The routing unit 11 calculates (routes) the packet transfer destination. The routing unit 11 makes a reservation request to the arbiter unit 9 when making a reservation for packet transmission. The input FIFO buffer 2 stores flit data after the reservation request. The input FIFO buffer output channel 4 is connected to the crossbar 5. The through line 3 outputs the reserved packet to the crossbar 5 with a short delay time without going through the input FIFO buffer 2. The selector 12 delivers flit data from the through line 3 to the input FIFO buffer 2.
 セレクタ6は、10本の入力のうち出力と同一方向以外の8本の入力信号を受信し、アービタ部9による指示にしたがって、受信した入力信号の1つを出力信号として出力する。出力された出力信号は、ルータ装置20からのデータ出力のタイミングをそろえる出力ラッチ7を介して出力チャネル8へ出力される。 The selector 6 receives eight input signals in the same direction as the output out of the ten inputs, and outputs one of the received input signals as an output signal in accordance with an instruction from the arbiter unit 9. The output signal that has been output is output to the output channel 8 via the output latch 7 that aligns the timing of data output from the router device 20.
 予約要求パケット生成部13は、予約要求パケットを生成する。予約要求パケット生成部13は、ルータ装置20において予約が取れたか否かの情報をアービタ部9から受信して、予約が取れた場合には、他のパケット送出が行われていないタイミングにおいて、次段のルータへ予約要求パケットを送信する。セレクタ14は、このために設けられたセレクタである。 The reservation request packet generator 13 generates a reservation request packet. The reservation request packet generation unit 13 receives information from the arbiter unit 9 as to whether or not a reservation has been made in the router device 20, and when a reservation is made, the next request packet is sent at a timing when no other packet is transmitted. A reservation request packet is transmitted to the stage router. The selector 14 is a selector provided for this purpose.
 図4は、本実施形態におけるアービタ部9の構成を示すブロック図である。図4を参照すると、アービタ部9は、セレクタアービタ51、予約アービタ52、予約テーブル53、及び残カウンタ56を有する。 FIG. 4 is a block diagram showing a configuration of the arbiter unit 9 in the present embodiment. Referring to FIG. 4, the arbiter unit 9 includes a selector arbiter 51, a reservation arbiter 52, a reservation table 53, and a remaining counter 56.
 セレクタアービタ51は、入力FIFOバッファ2からの通常のパケット調停要求61、及び予約テーブル53からの予約情報62を受け取り、予約情報62を優先してセレクタ6の信号を選択することができるような調停を行い、調停結果信号63をセレクタ6へ出力する。 The selector arbiter 51 receives the normal packet arbitration request 61 from the input FIFO buffer 2 and the reservation information 62 from the reservation table 53, and arbitrates so that the reservation information 62 can be preferentially selected and the signal of the selector 6 can be selected. The arbitration result signal 63 is output to the selector 6.
 予約アービタ52は、予約要求パケットに含まれる予約要求64をルーティング部11から受信し、予約テーブル53の属性エントリ54を参照して、通常パケットの到着のタイミングにおいてルータ装置20が空いているか否かを判定する。ルータ装置20が空いている場合には、予約アービタ52は、属性エントリ54を有効にセット(設定)し、通常パケットを受信する入力チャネル1を入力チャネルエントリ55へ書き込む。 The reservation arbiter 52 receives the reservation request 64 included in the reservation request packet from the routing unit 11, refers to the attribute entry 54 of the reservation table 53, and determines whether or not the router device 20 is free at the arrival timing of the normal packet. Determine. When the router device 20 is free, the reservation arbiter 52 sets (sets) the attribute entry 54 effectively and writes the input channel 1 that receives the normal packet to the input channel entry 55.
 予約アービタ52は、予約テーブル53のエントリがあふれた場合には、残カウンタ56の残数レジスタ58へ適当な値を書き込む。予約が取れた場合には、予約アービタ52は、予約が取れたことを通知する予約結果通知信号66を予約要求パケット生成部13へ送信する。予約要求パケット生成部13は、予約結果通知信号66を受信した場合には、次段のルータ装置に対して予約要求パケットを送信する。 The reservation arbiter 52 writes an appropriate value to the remaining number register 58 of the remaining counter 56 when the entry of the reservation table 53 overflows. When the reservation is made, the reservation arbiter 52 transmits a reservation result notification signal 66 notifying that the reservation has been made to the reservation request packet generator 13. When the reservation request packet generator 13 receives the reservation result notification signal 66, the reservation request packet generator 13 transmits a reservation request packet to the router device at the next stage.
 図5及び図6は、本実施形態に係るルータ装置20によって転送されるパケットのフォーマット(フリット構成)を示す図である。図5は、通常のパケットのフリット構成を示す。一方、図6は、予約要求パケットのフリット構成を示す。図5又は図6を参照すると、通常パケット又は予約要求パケットは、パケットボディ信号81又は91及びサイドバンド信号82又は92を含む。サイドバンド信号82又は92は、パケットボディ信号81又は91の属性を示し、一例として、次のフォーマットによってエンコードされる。 5 and 6 are diagrams showing a format (frit configuration) of a packet transferred by the router device 20 according to the present embodiment. FIG. 5 shows a normal packet flit configuration. On the other hand, FIG. 6 shows a flit configuration of the reservation request packet. Referring to FIG. 5 or FIG. 6, the normal packet or the reservation request packet includes a packet body signal 81 or 91 and a sideband signal 82 or 92. The sideband signal 82 or 92 indicates an attribute of the packet body signal 81 or 91, and is encoded by the following format as an example.
属性    パケットボディの意味
0b000 無効状態
0b001 予約要求パケット
0b010 予約取り消しパケット
0b011 未定義
0b100 通常パケット制御情報先頭
0b101 通常パケットアドレス
0b110 通常パケットデータ末尾
0b111 通常パケットデータ中間
Attribute Packet body meaning 0b000 Invalid state 0b001 Reservation request packet 0b010 Reservation cancellation packet 0b011 Undefined 0b100 Normal packet control information head 0b101 Normal packet address 0b110 Normal packet data end 0b111 Normal packet data middle
 図6を参照すると、通常パケットは、複数のフリット0~nから構成され、複数のサイクルにわたって転送される。サイドバンド信号82が0b100であるフリットは、通常パケットの先頭のフリットであり、宛先アドレス83、フリット長84、及び制御情報85を含む。サイドバンド信号82が0b101であるフリットは、アクセスアドレス86及びアクセス属性87を含む。サイドバンド信号82が0b110又は0b111であるフリットは、パケットはデータ88を含む。サイドバンド信号82が0b110であるフリットは、パケットの末尾のデータを含む。 Referring to FIG. 6, a normal packet is composed of a plurality of flits 0 to n and is transferred over a plurality of cycles. The flit whose sideband signal 82 is 0b100 is the head flit of a normal packet, and includes a destination address 83, a flit length 84, and control information 85. A flit whose sideband signal 82 is 0b101 includes an access address 86 and an access attribute 87. In the flit in which the sideband signal 82 is 0b110 or 0b111, the packet includes data 88. The flit whose sideband signal 82 is 0b110 includes data at the end of the packet.
 図6を参照すると、予約要求パケットに相当するフリットのサイドバンド信号92は0b001であり、フリットは、宛先アドレス93、フリット長94、及び先行サイクル数95を含む。先行サイクル数95は、予約要求パケットの到着から通常パケットの到着までの間のサイクル数を示す。 Referring to FIG. 6, the sideband signal 92 of the flit corresponding to the reservation request packet is 0b001, and the flit includes a destination address 93, a flit length 94, and a preceding cycle number 95. The preceding cycle number 95 indicates the number of cycles between the arrival of the reservation request packet and the arrival of the normal packet.
 次に、タイミングチャートを参照して、本実施形態に係るルータ装置20の動作について説明する。図7は、予約要求がない場合におけるルータ装置20のパケットルーティング動作を示す。一方、図8は、予約要求が行われた場合におけるルータ装置20のパケットルーティング動作を示す。 Next, the operation of the router device 20 according to the present embodiment will be described with reference to a timing chart. FIG. 7 shows a packet routing operation of the router device 20 when there is no reservation request. On the other hand, FIG. 8 shows a packet routing operation of the router device 20 when a reservation request is made.
 図7に示したルータ装置20の動作は、従来のルータ装置の動作と同様である。まず、T1サイクルにおいて、先頭フリットが入力チャネル1に到着する。次に、T2サイクルにおいて、入力ラッチ10は、このフリットをラッチし、ルーティング部11は、この先頭フリットの宛先アドレス83に基づいてルーティングを行い、このパケットをいずれの方向へ転送すべきかを決定する。 The operation of the router device 20 shown in FIG. 7 is the same as the operation of the conventional router device. First, the head flit arrives at the input channel 1 in the T1 cycle. Next, in the T2 cycle, the input latch 10 latches the flit, and the routing unit 11 performs routing based on the destination address 83 of the head flit to determine in which direction the packet should be transferred. .
 次に、T3サイクルにおいて、先頭フリットは入力FIFOバッファ2に格納される。ここで、アービタ部9は、このパケットを出力すべき出力チャネル8が空いているか否かを判定し、空いている場合には、出力先に相当するセレクタ6を割り付ける。 Next, the head flit is stored in the input FIFO buffer 2 in the T3 cycle. Here, the arbiter unit 9 determines whether or not the output channel 8 to which this packet is to be output is free, and if it is free, assigns the selector 6 corresponding to the output destination.
 次に、T4サイクルにおいて、先頭フリットは実際にセレクタ6を通過し、出力ラッチ7にラッチされる。さらに、T5サイクルにおいて、先頭フリットは出力される。後続のフリットは、先頭フリットとタイミングを合わせて、入力され、ルーティングがされ、出力される。図7を参照すると、パケットがルータ装置20を通過するために、4サイクルの遅延が生じる。 Next, in the T4 cycle, the head frit actually passes through the selector 6 and is latched in the output latch 7. Furthermore, the head flit is output in the T5 cycle. Subsequent flits are input, routed, and output at the same timing as the leading flits. Referring to FIG. 7, a delay of 4 cycles occurs because the packet passes through the router device 20.
 次に、図8を参照して、予約要求パケットによる予約要求が行われた場合におけるルータ装置20のパケットルーティングについて説明する。T1サイクルにおいて、予約要求パケットが到着する。予約要求パケットは通常パケットの先頭フリットが到着したときと同様に、T2サイクルにおいて、入力ラッチ10によってラッチされる。ルーティング部11は、この先頭フリット(すなわち、予約要求パケット)の宛先アドレス93を参照してルーティングを行い、このパケットをいずれの方向へ転送すべきかを決定する。 Next, with reference to FIG. 8, packet routing of the router device 20 when a reservation request by a reservation request packet is made will be described. In the T1 cycle, a reservation request packet arrives. The reservation request packet is latched by the input latch 10 in the T2 cycle in the same manner as when the leading flit of the normal packet arrives. The routing unit 11 performs routing with reference to the destination address 93 of the head flit (that is, the reservation request packet), and determines in which direction the packet should be transferred.
 次に、T3サイクルにおいて、予約アービタ52は、予約要求パケットに含まれる先行サイクル数95及びフリット長94、並びに予約テーブル53を参照して、通常パケットが到着するタイミングにおいて、出力チャネル8に空きがあるか否かを判定する。空きがある場合には、予約アービタ52は、当該サイクルの属性エントリ54を空き状態00から予約状態01(先頭)、11(中間)、10(末尾)へ変更するとともに、入力チャネルエントリ55へ入力チャネル1を記入する。予約が取れた場合には、予約アービタ52は、予約が取れたことを示す予約結果通知信号66と現在のセレクタアービタの状態を示す調停結果通知信号65とを予約要求パケット生成部13に送信する。予約要求パケット生成部13は、予約結果通知信号66に基づいて、次段のルータに対する予約要求パケットを生成する。生成された予約要求パケットは、セレクタ14を経由して、出力ラッチ7によってラッチされる。 Next, in the T3 cycle, the reservation arbiter 52 refers to the number of preceding cycles 95 and the flit length 94 included in the reservation request packet, and the reservation table 53, and at the timing when the normal packet arrives, the output channel 8 is free. It is determined whether or not there is. If there is a vacancy, the reservation arbiter 52 changes the attribute entry 54 of the cycle from the vacant state 00 to the reserved states 01 (first), 11 (intermediate), 10 (end), and inputs to the input channel entry 55 Fill in channel 1. When the reservation is made, the reservation arbiter 52 transmits a reservation result notification signal 66 indicating that the reservation has been made and an arbitration result notification signal 65 indicating the current selector arbiter state to the reservation request packet generator 13. . The reservation request packet generator 13 generates a reservation request packet for the next router based on the reservation result notification signal 66. The generated reservation request packet is latched by the output latch 7 via the selector 14.
 次に、T4サイクルにおいて、予約要求パケットは、次段のルータへ送信される。 Next, in the T4 cycle, the reservation request packet is transmitted to the router at the next stage.
 次に、T5サイクルにおいて、通常パケットの先頭フリットが到着する。ルータ装置20に対する予約が成立していることから、先頭フリットは、入力ラッチ10及び入力FIFOバッファ2を経由することなく、直接セレクタ6を経由する。したがって、先頭フリットは、T6サイクルにおいて出力ラッチ7にラッチされるとともに、T7サイクルにおいて出力チャネル8へ出力される。 Next, in the T5 cycle, the leading flit of the normal packet arrives. Since the reservation for the router device 20 is established, the head flit passes directly through the selector 6 without going through the input latch 10 and the input FIFO buffer 2. Therefore, the head flit is latched in the output latch 7 in the T6 cycle and is output to the output channel 8 in the T7 cycle.
 図8を参照すると、通常パケットがルータ装置20を通過する場合には、2サイクルの遅延が生じる。したがって、本実施形態のルータ装置20によると、予約を行った場合には、予約を行わない場合と比較して2サイクル分遅延時間を短縮することができる。図8に示した例においては、ルータ装置20を通過する前の予約要求パケットと通常パケットとの間隔は3サイクルであり、ルータ装置20を通過した後の間隔は2サイクルである。短縮されるサイクル数は、T3サイクルにおいて予約が取れた時点において判明する。したがって、T4サイクルにおいて次段のルータへ送信される予約要求パケットに含まれる先行サイクル数95を1減らして2サイクルとして送信する。先行サイクル数95が1サイクル以下になった場合には、予約要求パケットを後段のルータに対して送信しないようにする。なぜなら、後段のルータにおいては、予約要求パケットに基づいて予約が行われる以前に通常パケットが到着するからである。 Referring to FIG. 8, when a normal packet passes through the router device 20, a two-cycle delay occurs. Therefore, according to the router device 20 of the present embodiment, when the reservation is made, the delay time can be shortened by two cycles compared to the case where the reservation is not made. In the example shown in FIG. 8, the interval between the reservation request packet and the normal packet before passing through the router device 20 is 3 cycles, and the interval after passing through the router device 20 is 2 cycles. The number of cycles to be shortened is determined when a reservation is made in the T3 cycle. Therefore, the number of preceding cycles 95 included in the reservation request packet transmitted to the next router in the T4 cycle is reduced by 1 and transmitted as 2 cycles. When the preceding cycle number 95 becomes 1 cycle or less, the reservation request packet is not transmitted to the subsequent router. This is because a normal packet arrives at the subsequent router before reservation is made based on the reservation request packet.
 また、T3サイクルにおいて、ルータ装置20に対して他の通常パケットの転送がすでに予約されている場合には、ルータ装置20は、パケットの優先度に基づいて次のいずれかの処理を行う。 In the T3 cycle, when another normal packet transfer has already been reserved for the router device 20, the router device 20 performs one of the following processes based on the priority of the packet.
 ルータ装置20は、新たに到着した予約要求パケットを無効とし、新たに到着した予約要求パケットに対応する通常パケットについては通常のスケジューリングを行う(第1の処理)。このとき、ルータ装置20は、次段のルータ装置に対して予約要求パケットを発行しない。 The router device 20 invalidates the newly arrived reservation request packet, and performs normal scheduling for the normal packet corresponding to the newly arrived reservation request packet (first process). At this time, the router device 20 does not issue a reservation request packet to the next-stage router device.
 ルータ装置20は、すでに予約されていたスケジュールを無効とし、すでに予約を行っていた通常パケットを通常パケットとして扱うとともに、新たに到着した予約要求パケットに基づいて新たな予約を行う(第2の処理)。このとき、ルータ装置20は、次段のルータに対して予約要求パケットを発行する。 The router device 20 invalidates the schedule that has already been reserved, treats the normal packet that has already been reserved as a normal packet, and makes a new reservation based on the newly arrived reservation request packet (second processing) ). At this time, the router device 20 issues a reservation request packet to the next-stage router.
 ルータ装置20が第2の処理を行なった場合には、次段のルータ装置も同様の処理を行う。また、先に予約を行ったパケットと後に予約を行ったパケットとの間で宛先アドレス(ターゲットIPコア)が異なる場合には、先に予約を行ったパケットのルートと後に予約を行ったパケットのルートは途中から異なるルートとなる。これらのパケットに対するルートが同一のルートから異なるルートへと分岐する箇所に設けられたルータ装置20は、同一の予約サイクルかつ同一の入力チャネル1に対する予約がすでにされていたことを、予約テーブル53を参照することによって認識し、先の予約がなされていた出力チャネル8に対して、必要に応じて予約取り消しパケットを発行する。 When the router device 20 performs the second process, the next-stage router device performs the same process. In addition, when the destination address (target IP core) is different between the packet that has been reserved earlier and the packet that has been reserved later, the route of the packet that has been reserved earlier and the packet that has been reserved later The route is different from the middle. The router device 20 provided at a location where the route for these packets branches from the same route to a different route indicates that the reservation for the same reservation cycle and the same input channel 1 has already been made. A reservation cancellation packet is issued as necessary to the output channel 8 that has been recognized by reference and has been previously reserved.
 次に、本実施形態に係るルータ装置20の動作について、具体例に基づいて説明する。ここでは、一例として、図3に示す半導体集積回路装置21において、IPコアIP0からIPコアIP9への通信に対する予約要求パケットが発行されるとともに、IPコアIP4からIPコアIP13への通信に対する予約要求パケットも発行され、通常パケットの予約が競合する場合について考える。 Next, the operation of the router device 20 according to the present embodiment will be described based on a specific example. Here, as an example, in the semiconductor integrated circuit device 21 shown in FIG. 3, a reservation request packet for communication from the IP core IP0 to the IP core IP9 is issued, and a reservation request for communication from the IP core IP4 to the IP core IP13. Consider a case where a packet is also issued and a regular packet reservation conflicts.
 IPコアIP0からIPコアIP9へのパケットは、IPコアIP0→ルータR0→ルータR4→ルータR8→ルータR9→IPコアIP9というルートを経由するものとする。一方、IPコアIP4からIPコアIP13へのパケットは、IPコアIP4→ルータR4→ルータR8→ルータR12→ルータR13→IPコアIP13というルートを経由するものとする。このとき、ルータR4とルータR8との間においてパケットの予約が競合しうる。 It is assumed that a packet from IP core IP0 to IP core IP9 passes through a route of IP core IP0 → router R0 → router R4 → router R8 → router R9 → IP core IP9. On the other hand, a packet from the IP core IP4 to the IP core IP13 passes through a route of IP core IP4 → router R4 → router R8 → router R12 → router R13 → IP core IP13. At this time, packet reservation may compete between the routers R4 and R8.
 図9は、ルータ装置R4の予約テーブル53の動作について説明するための図である図9は、ルータ装置R4において、先の予約が取り消される場合における予約テーブル53の動作を示す。 FIG. 9 is a diagram for explaining the operation of the reservation table 53 of the router apparatus R4. FIG. 9 shows the operation of the reservation table 53 when the previous reservation is canceled in the router apparatus R4.
 T1サイクルにおいて、IPコアIP0からの予約要求パケットがルータR0を経由してルータR4に到着する。T1+7サイクルにおいてフリット長6の通常パケットが到着する旨の情報が予約パケットに含まれている場合には、ルータ装置R4の予約アービタ52は、そのタイミングにおける予約テーブル53のエントリを参照する。 In the T1 cycle, the reservation request packet from the IP core IP0 arrives at the router R4 via the router R0. When information indicating that a normal packet having a flit length of 6 arrives in the T1 + 7 cycle is included in the reservation packet, the reservation arbiter 52 of the router apparatus R4 refers to the entry of the reservation table 53 at that timing.
 予約アービタ52は、予約が可能であると判定し、T1サイクルの1サイクル後のT2サイクルにおいて、+6~+11サイクルに対応する属性エントリ101を有効とすると同時に、ルータ装置R0からの予約要求であるため、入力チャネルエントリ102をNにセットする。同時に、ルータ装置R4は、次段のルータ装置R8に向けて予約要求パケットを発行する。 The reservation arbiter 52 determines that the reservation is possible, and in the T2 cycle that is one cycle after the T1 cycle, validates the attribute entry 101 corresponding to +6 to +11 cycles, and at the same time, makes a reservation request from the router apparatus R0. Therefore, the input channel entry 102 is set to N. At the same time, the router device R4 issues a reservation request packet to the next-stage router device R8.
 次に、T3サイクルにおいては、1サイクル進んだだめ、N方向の入力チャネル1nから入力を予約していた範囲は、+5~+10サイクルへシフトする。この時点で、IPコアIP4からの予約要求パケットがルータ装置R4に到着する。ルータ装置R4がT3サイクルから+9~+14サイクルにおいて通常パケットの予約を行おうとした場合には、T3サイクル+9、10サイクルにおいて先に予約されたN方向の入力チャネル1nに対する予約と競合する。 Next, in the T3 cycle, one cycle is advanced, and the range reserved for input from the input channel 1n in the N direction shifts to +5 to +10 cycles. At this point, the reservation request packet from the IP core IP4 arrives at the router device R4. When the router apparatus R4 tries to reserve a normal packet in the +9 to +14 cycles from the T3 cycle, it competes with the reservation for the input channel 1n in the N direction previously reserved in the T3 cycle +9 and the 10th cycle.
 ここで、IPコアIP4によって発行された後の予約要求の優先度の方が先の予約要求の優先度よりも高い場合には、ルータ装置R4は、T3+5~+10サイクルにおけるN方向からの入力の予約を取り消して、新たにIPコアIP4からの予約を行う。 Here, when the priority of the reservation request issued by the IP core IP4 is higher than the priority of the previous reservation request, the router apparatus R4 receives the input from the N direction in T3 + 5 to +10 cycles. The reservation is canceled and a new reservation is made from the IP core IP4.
 T4サイクルにおいては、T4+8~+13サイクルに対してI方向の入力チャネル1iからの入力が新たに予約される。なお、優先度は、例えば、予約要求パケット又は予約テーブル53に保持するようにしてもよく、又は、ルータ装置においてIP4の優先度をつねに高く設定するようにしてもよい。 In the T4 cycle, the input from the input channel 1i in the I direction is newly reserved for the T4 + 8 to +13 cycles. For example, the priority may be held in the reservation request packet or the reservation table 53, or the priority of IP4 may always be set higher in the router device.
 図10は、ルータ装置R8の予約テーブル53の動作について説明するための図である。図10は、ルータ装置R8における先の予約の取り消しに伴う、他の方向に対する予約取消動作を説明するための図である。 FIG. 10 is a diagram for explaining the operation of the reservation table 53 of the router apparatus R8. FIG. 10 is a diagram for explaining a reservation canceling operation in another direction accompanying cancellation of a previous reservation in the router apparatus R8.
 図10を参照すると、T4サイクルにおいて、ルータ装置R8へIPコアIP0からの予約要求パケットが到着し、T5サイクルにおいて、ルータ装置R8のE方向(R9方向)の予約テーブル53に対する予約が成立する。 Referring to FIG. 10, in the T4 cycle, the reservation request packet from the IP core IP0 arrives at the router device R8, and in the T5 cycle, the reservation for the reservation table 53 in the E direction (R9 direction) of the router device R8 is established.
 しかし、T6サイクルにおいて、ルータ装置R8へIPコアIP4からの予約要求パケットが到着することから、これらの予約要求パケットは、T6+7、+8サイクルにおいて競合し、ルータ装置R8はIPコアIP0からの要求がキャンセルされたことを認識する。したがって、T7サイクルにおいては、E方向へ出力されるIPコアIP0からの予約はキャンセルされる。ルータ装置R8は、これと同時に、E方向(R9方向)へ予約取消パケットを送出する。これによって、ルータ装置R9における予約も取り消される。 However, since the reservation request packets from the IP core IP4 arrive at the router apparatus R8 in the T6 cycle, these reservation request packets compete in the T6 + 7 and +8 cycles, and the router apparatus R8 receives the request from the IP core IP0. Recognize that it was canceled. Therefore, in the T7 cycle, the reservation from the IP core IP0 output in the E direction is cancelled. At the same time, the router apparatus R8 sends a reservation cancellation packet in the E direction (R9 direction). As a result, the reservation in the router apparatus R9 is also cancelled.
 上記の動作により、IPコアIP0からの通常パケットは、予約を伴わないシーケンスに従ってネットワークを流れる。通常パケットを構成する複数のフリット間に、他のパケットを構成するフリットが挿入されることが許されない場合には、IPコアIP0からのパケットは、IPコアIP4によって予約された通常パケットの通過が完了するまで、ルータ装置R4の入力FIFOバッファ2に留まる。 Through the above operation, normal packets from the IP core IP0 flow through the network according to a sequence not accompanied by a reservation. When it is not permitted to insert flits constituting other packets between a plurality of flits constituting a normal packet, the packet from the IP core IP0 does not pass the normal packet reserved by the IP core IP4. It remains in the input FIFO buffer 2 of the router device R4 until completion.
 なお、予約テーブル53のエントリ数には限りがあるため、図4に示したように、残カウンタ56を設けることが好ましい。エントリ数の上限を超えて予約を行う場合には、残カウンタ56の残数レジスタ58に、エントリ数の上限を超えた数を記録する。図4は、一例として、エントリ数の上限(+16)を超えて4サイクルにわたって同一のパケットが続く場合を示す。このとき、予約アービタ52は、残数レジスタ58へ4をセットするとともに、最上限エントリ+16の入力チャネルエントリ55と同一の入力チャネル(S)を入力チャネルエントリ59へセットする。1サイクルごとに、残カウンタ56はカウントダウンされ、予約テーブル53の内容はシフトする。このとき、最上限エントリ+16に対し、属性生成部57によって生成された属性とともに、入力チャネルエントリ59の値がセットされる。これによって、エントリ数の上限を超えたルーティングの予約が可能となる。 Since the number of entries in the reservation table 53 is limited, it is preferable to provide a remaining counter 56 as shown in FIG. When making a reservation exceeding the upper limit of the number of entries, the number exceeding the upper limit of the number of entries is recorded in the remaining number register 58 of the remaining counter 56. FIG. 4 shows, as an example, a case where the same packet continues for four cycles exceeding the upper limit (+16) of the number of entries. At this time, the reservation arbiter 52 sets 4 to the remaining number register 58 and sets the same input channel (S) as the input channel entry 55 of the maximum upper limit entry + 16 to the input channel entry 59. For each cycle, the remaining counter 56 is counted down and the contents of the reservation table 53 are shifted. At this time, the value of the input channel entry 59 is set for the maximum upper limit entry +16 together with the attribute generated by the attribute generation unit 57. As a result, routing reservation exceeding the upper limit of the number of entries can be made.
 (第3の実施形態)
 本発明の第3の実施形態に係る半導体集積回路装置について、図面を参照して説明する。
(Third embodiment)
A semiconductor integrated circuit device according to a third embodiment of the present invention will be described with reference to the drawings.
 上記の第2の実施形態に係る半導体集積回路装置21においては、ネットワークは1系統のみであった。すなわち、通常パケットのみならず、予約要求パケット及び予約取消パケットもこの1系統のネットワーク介して送受信される。しかし、かかる構成によると、予約要求パケットと通常パケットとが競合することによって、パケットの転送効率が低下することが考えられる。そこで、予約要求パケットを通常パケットとは別のネットワークを介して送受信するようにしてもよい。 In the semiconductor integrated circuit device 21 according to the second embodiment, there is only one network. That is, not only a normal packet but also a reservation request packet and a reservation cancellation packet are transmitted / received through this one system network. However, according to such a configuration, it is conceivable that the packet transfer efficiency is lowered due to the competition between the reservation request packet and the normal packet. Therefore, the reservation request packet may be transmitted / received via a network different from the normal packet.
 図11は、本実施形態に係る半導体集積回路装置121の構成を示す図である。半導体集積回路装置121は、ネットワークオンチップ(NoC)を2重化したシステムオンチップ(SoC)である。半導体集積回路装置121においては、通常のネットワークと制御用ネットワークとが分離されている。 FIG. 11 is a diagram showing a configuration of the semiconductor integrated circuit device 121 according to the present embodiment. The semiconductor integrated circuit device 121 is a system on chip (SoC) in which a network on chip (NoC) is duplicated. In the semiconductor integrated circuit device 121, a normal network and a control network are separated.
 図11を参照すると、半導体集積回路装置121は、IPコアIP0~IP15、ネットワークインタフェースNIF、メインルータ装置MR0~MR15、制御ルータ装置CR0~CR15、メイン通信チャネル125、及び、制御通信チャネル127を有する。 Referring to FIG. 11, the semiconductor integrated circuit device 121 includes IP cores IP0 to IP15, a network interface NIF, main router devices MR0 to MR15, control router devices CR0 to CR15, a main communication channel 125, and a control communication channel 127. .
 IPコアIP0~IP15は、それぞれネットワークインタフェースNIFを介して、メイン通信チャネル125に接続されている。メインルータ装置MR0~MR15は、メイン通信チャネル125を通るパケットのルーティングを行い、パケットを所望の方向のメイン通信チャネル125へ送出する。 The IP cores IP0 to IP15 are connected to the main communication channel 125 via the network interface NIF. The main router devices MR0 to MR15 route packets passing through the main communication channel 125, and send the packets to the main communication channel 125 in a desired direction.
 ネットワークインタフェースNIF及び制御ルータ装置CR0~CR15は、制御通信チャネル127を介して接続されている。メインルータ装置MR0~MR15は、それぞれ、制御ルータ装置CR0~CR15に接続されている。制御ルータ装置CR0~CR15は、制御通信チャネル127を通るパケットのルーティングを行う。制御用のネットワークに対して、予約要求パケット及び予約取消パケットを流すことによって、メインルータ装置MR0~MR15のパケットスケジューリングを予約し、又は取り消す。 The network interface NIF and the control router devices CR0 to CR15 are connected via a control communication channel 127. The main router devices MR0 to MR15 are connected to the control router devices CR0 to CR15, respectively. The control router devices CR0 to CR15 perform routing of packets passing through the control communication channel 127. By sending a reservation request packet and a reservation cancellation packet to the control network, the packet scheduling of the main router devices MR0 to MR15 is reserved or canceled.
 制御用のネットワークは、フリット長の長いパケットを流す必要がないため、入力FIFOバッファ(非図示)のエントリ数を少なくすることができる。また、制御通信チャネル127に対するビット幅をメイン通信チャネル125に対するビット幅と比較して削減することによって、制御通信チャネル127は、通常のネットワークよりも低コストに実現しうる。また、データフリットを伴わない、メモリに対するリード要求のようなアクセス要求パケットも、制御用のネットワークに流すことによって、ネットワークのトラフィックを好適化することができる。 Since the control network does not need to flow packets with a long flit length, the number of entries in the input FIFO buffer (not shown) can be reduced. Also, by reducing the bit width for the control communication channel 127 compared to the bit width for the main communication channel 125, the control communication channel 127 can be realized at a lower cost than a normal network. Further, network traffic can be optimized by sending an access request packet such as a read request to a memory without a data flit to the control network.
 なお、上記の実施形態においては、データを格納した通常パケットを発行する前に、予約要求パケットを発行する必要がある。しかし、IPコアが外部メモリ又は内部メモリ(例えば、SDRAM)に接続されている場合には、これらのデバイスへアクセス要求を行ってからデータが出力されるまでに数サイクルの期間を要する場合がある。これらのデバイスと接続されたネットワークインタフェースNIFは、メモリアクセス要求を行うと同時に、予約要求パケットをネットワークに発行することが好ましい。データが得られる前に、ネットワークのルーティング及びスイッチの予約が完了することができるからである。このとき、ネットワークの遅延時間を隠蔽することができる。 In the above embodiment, it is necessary to issue a reservation request packet before issuing a normal packet storing data. However, when the IP core is connected to an external memory or an internal memory (for example, SDRAM), a period of several cycles may be required until data is output after an access request is made to these devices. . The network interface NIF connected to these devices preferably issues a memory access request and simultaneously issues a reservation request packet to the network. This is because network routing and switch reservation can be completed before data is available. At this time, the delay time of the network can be concealed.
 以上の記載は実施形態に基づいて行ったが、本発明は、上記実施形態に限定されるものではない。
 なお、上記の特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
Although the above description has been made based on the embodiment, the present invention is not limited to the above embodiment.
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, although a part or all of the said embodiment can be described as the following additional remarks, it is not limited to these.
 (付記1)第1のパケットを受信するとともに該第1のパケットの宛先アドレス及び到着タイミングを含む第2のパケットを受信する受信部と、
 前記第2のパケットに含まれる前記第1のパケットの宛先アドレスを参照して前記第1のパケットのルーティングを行うルーティング部と、
 前記第2のパケットに含まれる前記第1のパケットの宛先アドレス及び到着タイミングを参照して前記第1のパケットに対するアービトレーションを行うアービタ部と、
 前記ルーティング部によるルーティング及び前記アービタ部によるアービトレーションにしたがって前記第1のパケットを転送する転送部と、を備えていることを特徴とするルータ装置。
(Supplementary Note 1) A receiving unit that receives the first packet and receives the second packet including the destination address and arrival timing of the first packet;
A routing unit for routing the first packet with reference to a destination address of the first packet included in the second packet;
An arbiter unit that performs arbitration for the first packet with reference to a destination address and arrival timing of the first packet included in the second packet;
And a transfer unit that transfers the first packet in accordance with routing by the routing unit and arbitration by the arbiter unit.
 (付記2)前記第2のパケットは、前記到着タイミングとして前記第2のパケットを受信してから前記第1のパケットを受信するまでのサイクル数である先行サイクル数を含むとともに、前記第1のパケットのフリット長を含み、
 前記アービタ部は、前記先行サイクル数及び前記フリット長に基づいて前記アービトレーションを行うことを特徴とする、付記1に記載のルータ装置。
(Supplementary Note 2) The second packet includes a preceding cycle number that is a cycle number from the reception of the second packet to the reception of the first packet as the arrival timing, and the first packet Including the flit length of the packet,
The router apparatus according to appendix 1, wherein the arbiter unit performs the arbitration based on the number of preceding cycles and the flit length.
 (付記3)前記転送部は、前記第2のパケットに含まれる先行サイクル数を更新するとともに、前記ルーティング部によるルーティングにしたがって前記第2のパケットを後段のルータ装置へ転送することを特徴とする、付記2に記載のルータ装置。 (Supplementary Note 3) The transfer unit updates the number of preceding cycles included in the second packet, and transfers the second packet to a subsequent router device according to the routing by the routing unit. The router device according to attachment 2.
 (付記4)前記第2のパケットは、前記第1のパケットの優先度を含み、
 前記アービタ部は、前記優先度に応じてアービトレーションを行うことを特徴とする、付記1乃至3のいずれか一に記載のルータ装置。
(Supplementary Note 4) The second packet includes the priority of the first packet,
The router device according to any one of appendices 1 to 3, wherein the arbiter unit performs arbitration according to the priority.
 (付記5)前記アービタ部は、前記優先度に応じてアービトレーションを行った場合において、先行するアービトレーションを取り消したときには、前記第2のパケットが転送された後段のルータへその旨を通知することを特徴とする、付記4に記載のルータ装置。 (Supplementary Note 5) When the arbitration unit performs arbitration according to the priority, and cancels the preceding arbitration, the arbiter unit notifies the subsequent router to which the second packet has been transferred. The router device according to attachment 4, wherein the router device is characterized.
 (付記6)複数のIPコアと、
 前記複数のIPコア間のパケットを転送する付記1乃至5のいずれか一に記載のルータ装置と、を備えていることを特徴とする半導体集積回路装置。
(Appendix 6) A plurality of IP cores;
A semiconductor integrated circuit device comprising: the router device according to any one of appendices 1 to 5 that transfers packets between the plurality of IP cores.
 (付記7)前記複数のIPコア間を接続するとともに前記第1のパケットを転送する第1の通信チャネルと、
 前記複数のIPコア間を接続するとともに第2のパケットを転送する第2の通信チャネルと、をさらに備えていることを特徴とする、付記6に記載の半導体集積回路装置。
(Supplementary note 7) a first communication channel for connecting the plurality of IP cores and transferring the first packet;
The semiconductor integrated circuit device according to appendix 6, further comprising a second communication channel for connecting the plurality of IP cores and transferring a second packet.
 (付記8)ルータ装置が、第1のパケットを受信する前に該第1のパケットの宛先アドレス及び到着タイミングを含む第2のパケットを受信する工程と、
 前記第2のパケットに含まれる前記第1のパケットの宛先アドレスを参照して前記第1のパケットのルーティングを行う工程と、
 前記第2のパケットに含まれる前記第1のパケットの宛先アドレス及び到着タイミングを参照して前記第1のパケットに対するアービトレーションを行う工程と、
 前記ルーティング及び前記アービトレーションにしたがって前記第1のパケットを転送する工程と、を含むことを特徴とするルーティング方法。
(Supplementary Note 8) The router device receives a second packet including a destination address and arrival timing of the first packet before receiving the first packet;
Routing the first packet with reference to a destination address of the first packet included in the second packet;
Performing arbitration on the first packet with reference to a destination address and arrival timing of the first packet included in the second packet;
Forwarding the first packet according to the routing and the arbitration.
 (付記9)前記第2のパケットは、前記到着タイミングとして前記第2のパケットを受信してから前記第1のパケットを受信するまでのサイクル数である先行サイクル数を含むとともに、前記第1のパケットのフリット長を含み、
 前記ルータ装置は、前記先行サイクル数及び前記フリット長に基づいて、前記アービトレーションを行うことを特徴とする、付記8に記載のルーティング方法。
(Supplementary Note 9) The second packet includes a preceding cycle number which is a cycle number from the reception of the second packet to the reception of the first packet as the arrival timing, and the first packet Including the flit length of the packet,
9. The routing method according to appendix 8, wherein the router device performs the arbitration based on the number of preceding cycles and the flit length.
 (付記10)前記第2のパケットは、前記第1のパケットの優先度を含み、
 前記ルータ装置は、前記優先度に応じて前記アービトレーションを行うことを特徴とする、付記8又は9に記載のルーティング方法。
(Supplementary Note 10) The second packet includes the priority of the first packet,
10. The routing method according to appendix 8 or 9, wherein the router device performs the arbitration according to the priority.
 (付記11)第1のパケットを受信する前に該第1のパケットの宛先アドレス及び到着タイミングを含む第2のパケットを受信する処理と、
 前記第2のパケットに含まれる前記第1のパケットの宛先アドレスを参照して前記第1のパケットのルーティングを行う処理と、
 前記第2のパケットに含まれる前記第1のパケットの宛先アドレス及び到着タイミングを参照して前記第1のパケットに対するアービトレーションを行う処理と、
 前記ルーティング及び前記アービトレーションにしたがって前記第1のパケットを転送する処理と、をコンピュータに実行させることを特徴とするプログラム。
(Supplementary Note 11) A process of receiving a second packet including a destination address and arrival timing of the first packet before receiving the first packet;
A process of routing the first packet with reference to a destination address of the first packet included in the second packet;
A process of performing arbitration on the first packet with reference to a destination address and arrival timing of the first packet included in the second packet;
A program for causing a computer to execute the process of transferring the first packet according to the routing and the arbitration.
 (付記12)前記第2のパケットは、前記到着タイミングとして前記第2のパケットを受信してから前記第1のパケットを受信するまでのサイクル数である先行サイクル数を含むとともに、前記第1のパケットのフリット長を含み、
 前記先行サイクル数及び前記フリット長に基づいて、前記アービトレーションを行う処理をコンピュータに実行させることを特徴とする、付記11に記載のプログラム。
(Supplementary Note 12) The second packet includes a preceding cycle number which is a cycle number from the reception of the second packet to the reception of the first packet as the arrival timing, and the first packet Including the flit length of the packet,
The program according to appendix 11, wherein the computer executes the process of performing the arbitration based on the preceding cycle number and the flit length.
 (付記13)前記第2のパケットは、前記第1のパケットの優先度を含み、
 前記優先度に応じて前記アービトレーションを行う処理をコンピュータに実行させることを特徴とする、付記11又は12に記載のプログラム。
(Supplementary note 13) The second packet includes the priority of the first packet,
The program according to appendix 11 or 12, which causes a computer to execute a process of performing the arbitration according to the priority.
 (付記14)付記11乃至13のいずれか一に記載のプログラムが記録されていることを特徴とする、コンピュータ読み取り可能な記録媒体。 (Supplementary note 14) A computer-readable recording medium on which the program according to any one of supplementary notes 11 to 13 is recorded.
1、1n、1e、1s、1w、1i 入力チャネル
2、2n、2e、2s、2w、2i 入力FIFOバッファ
3、3n、3e、3s、3w、3i スルーライン
4、4n、4e、4s、4w、4i 入力FIFOバッファ出力チャネル
5 クロスバー
6、6n、6e、6s、6w、6i、12、12n、12e、12s、12w、12i、14 セレクタ
7、7n、7e、7s、7w、7i 出力ラッチ
8、8n、8e、8s、8w、8i 出力チャネル
9、9n、9e、9s、9w、9i、33、50 アービタ部
10、10n、10e、10s、10w、10i 入力ラッチ
11、11n、11e、11s、11w、11i、32 ルーティング部
13、13n、13e、13s、13w、13i 予約要求パケット生成部
20、30、R0~R15 ルータ装置
21、121 半導体集積回路装置
25、202 通信チャネル
31 受信部
34 転送部
51 セレクタアービタ
52 予約アービタ
53 予約テーブル
54、101 属性エントリ
55、59、102 入力チャネルエントリ
56 残カウンタ
57 属性生成部
58 残数レジスタ
60 減算ユニット
61 入力FIFOバッファからの調停要求
62 予約情報
63 調停結果信号
64 予約要求
65 調停結果通知信号
66 予約結果通知信号
81、91 パケットボディ信号
82、92 サイドバンド信号
83、93 宛先アドレス
84、94 フリット長
85 制御情報
86 アクセスアドレス
87 アクセス属性
88 データ
89 ライトバッファ
95 先行サイクル数
125 メイン通信チャネル
127 制御通信チャネル
204 EVC(Express Virtual Channel)
CR0~CR15 制御ルータ装置
IP0~IP15 IP(Intellectual Property)コア
MR0~MR15 メインルータ装置
NIF ネットワークインタフェース
1, 1n, 1e, 1s, 1w, 1i input channel 2, 2n, 2e, 2s, 2w, 2i input FIFO buffer 3, 3n, 3e, 3s, 3w, 3i through line 4, 4n, 4e, 4s, 4w, 4i input FIFO buffer output channel 5 crossbar 6, 6n, 6e, 6s, 6w, 6i, 12, 12n, 12e, 12s, 12w, 12i, 14 selector 7, 7n, 7e, 7s, 7w, 7i output latch 8, 8n, 8e, 8s, 8w, 8i Output channels 9, 9n, 9e, 9s, 9w, 9i, 33, 50 Arbiter units 10, 10n, 10e, 10s, 10w, 10i Input latches 11, 11n, 11e, 11s, 11w , 11i, 32 Routing units 13, 13n, 13e, 13s, 13w, 13i Reservation request packet generators 20, 30, R0 to R15 Data device 21, 121 Semiconductor integrated circuit device 25, 202 Communication channel 31 Receiving unit 34 Transfer unit 51 Selector arbiter 52 Reservation arbiter 53 Reservation table 54, 101 Attribute entry 55, 59, 102 Input channel entry 56 Remaining counter 57 Attribute generation unit 58 Remaining number register 60 Subtraction unit 61 Arbitration request 62 from input FIFO buffer Reservation information 63 Arbitration result signal 64 Reservation request 65 Arbitration result notification signal 66 Reservation result notification signal 81, 91 Packet body signals 82, 92 Sideband signals 83, 93 Destination address 84, 94 Flit length 85 Control information 86 Access address 87 Access attribute 88 Data 89 Write buffer 95 Number of preceding cycles 125 Main communication channel 127 Control communication channel 204 EVC (Express Vir ual Channel)
CR0 to CR15 Control router IP0 to IP15 IP (Intellectual Property) core MR0 to MR15 Main router NIF network interface

Claims (13)

  1.  第1のパケットを受信するとともに該第1のパケットの宛先アドレス及び到着タイミングを含む第2のパケットを受信する受信部と、
     前記第2のパケットに含まれる前記第1のパケットの宛先アドレスを参照して前記第1のパケットのルーティングを行うルーティング部と、
     前記第2のパケットに含まれる前記第1のパケットの宛先アドレス及び到着タイミングを参照して前記第1のパケットに対するアービトレーションを行うアービタ部と、
     前記ルーティング部によるルーティング及び前記アービタ部によるアービトレーションにしたがって前記第1のパケットを転送する転送部と、を備えていることを特徴とするルータ装置。
    A receiving unit that receives the first packet and receives the second packet including the destination address and arrival timing of the first packet;
    A routing unit for routing the first packet with reference to a destination address of the first packet included in the second packet;
    An arbiter unit that performs arbitration for the first packet with reference to a destination address and arrival timing of the first packet included in the second packet;
    And a transfer unit that transfers the first packet in accordance with routing by the routing unit and arbitration by the arbiter unit.
  2.  前記第2のパケットは、前記到着タイミングとして前記第2のパケットを受信してから前記第1のパケットを受信するまでのサイクル数である先行サイクル数を含むとともに、前記第1のパケットのフリット長を含み、
     前記アービタ部は、前記先行サイクル数及び前記フリット長に基づいて前記アービトレーションを行うことを特徴とする、請求項1に記載のルータ装置。
    The second packet includes, as the arrival timing, a preceding cycle number that is a cycle number from the reception of the second packet to the reception of the first packet, and the flit length of the first packet. Including
    The router apparatus according to claim 1, wherein the arbiter unit performs the arbitration based on the number of preceding cycles and the flit length.
  3.  前記転送部は、前記第2のパケットに含まれる先行サイクル数を更新するとともに、前記ルーティング部によるルーティングにしたがって前記第2のパケットを後段のルータ装置へ転送することを特徴とする、請求項2に記載のルータ装置。 The transfer unit updates the number of preceding cycles included in the second packet, and transfers the second packet to a subsequent router device according to the routing by the routing unit. The router device described in 1.
  4.  前記第2のパケットは、前記第1のパケットの優先度を含み、
     前記アービタ部は、前記優先度に応じてアービトレーションを行うことを特徴とする、請求項1乃至3のいずれか1項に記載のルータ装置。
    The second packet includes the priority of the first packet;
    The router device according to claim 1, wherein the arbiter unit performs arbitration according to the priority.
  5.  前記アービタ部は、前記優先度に応じてアービトレーションを行った場合において、先行するアービトレーションを取り消したときには、前記第2のパケットが転送された後段のルータへその旨を通知することを特徴とする、請求項4に記載のルータ装置。 In the case where arbitration is performed according to the priority, the arbiter unit notifies the subsequent router to which the second packet has been transferred when canceling the preceding arbitration, The router device according to claim 4.
  6.  複数のIPコアと、
     前記複数のIPコア間のパケットを転送する請求項1乃至5のいずれか1項に記載のルータ装置と、を備えていることを特徴とする半導体集積回路装置。
    Multiple IP cores;
    6. A semiconductor integrated circuit device comprising: the router device according to claim 1 that transfers packets between the plurality of IP cores.
  7.  前記複数のIPコア間を接続するとともに前記第1のパケットを転送する第1の通信チャネルと、
     前記複数のIPコア間を接続するとともに第2のパケットを転送する第2の通信チャネルと、をさらに備えていることを特徴とする、請求項6に記載の半導体集積回路装置。
    A first communication channel for connecting the plurality of IP cores and transferring the first packet;
    The semiconductor integrated circuit device according to claim 6, further comprising a second communication channel for connecting the plurality of IP cores and transferring a second packet.
  8.  ルータ装置が、第1のパケットを受信する前に該第1のパケットの宛先アドレス及び到着タイミングを含む第2のパケットを受信する工程と、
     前記第2のパケットに含まれる前記第1のパケットの宛先アドレスを参照して前記第1のパケットのルーティングを行う工程と、
     前記第2のパケットに含まれる前記第1のパケットの宛先アドレス及び到着タイミングを参照して前記第1のパケットに対するアービトレーションを行う工程と、
     前記ルーティング及び前記アービトレーションにしたがって前記第1のパケットを転送する工程と、を含むことを特徴とするルーティング方法。
    The router device receiving a second packet including a destination address and arrival timing of the first packet before receiving the first packet;
    Routing the first packet with reference to a destination address of the first packet included in the second packet;
    Performing arbitration on the first packet with reference to a destination address and arrival timing of the first packet included in the second packet;
    Forwarding the first packet according to the routing and the arbitration.
  9.  前記第2のパケットは、前記到着タイミングとして前記第2のパケットを受信してから前記第1のパケットを受信するまでのサイクル数である先行サイクル数を含むとともに、前記第1のパケットのフリット長を含み、
     前記ルータ装置は、前記先行サイクル数及び前記フリット長に基づいて、前記アービトレーションを行うことを特徴とする、請求項8に記載のルーティング方法。
    The second packet includes, as the arrival timing, a preceding cycle number that is a cycle number from the reception of the second packet to the reception of the first packet, and the flit length of the first packet. Including
    The routing method according to claim 8, wherein the router device performs the arbitration based on the number of preceding cycles and the flit length.
  10.  前記第2のパケットは、前記第1のパケットの優先度を含み、
     前記ルータ装置は、前記優先度に応じて前記アービトレーションを行うことを特徴とする、請求項8又は9に記載のルーティング方法。
    The second packet includes the priority of the first packet;
    The routing method according to claim 8 or 9, wherein the router device performs the arbitration according to the priority.
  11.  第1のパケットを受信する前に該第1のパケットの宛先アドレス及び到着タイミングを含む第2のパケットを受信する処理と、
     前記第2のパケットに含まれる前記第1のパケットの宛先アドレスを参照して前記第1のパケットのルーティングを行う処理と、
     前記第2のパケットに含まれる前記第1のパケットの宛先アドレス及び到着タイミングを参照して前記第1のパケットに対するアービトレーションを行う処理と、
     前記ルーティング及び前記アービトレーションにしたがって前記第1のパケットを転送する処理と、をコンピュータに実行させることを特徴とするプログラム。
    Processing to receive a second packet including a destination address and arrival timing of the first packet before receiving the first packet;
    A process of routing the first packet with reference to a destination address of the first packet included in the second packet;
    A process of performing arbitration on the first packet with reference to a destination address and arrival timing of the first packet included in the second packet;
    A program for causing a computer to execute the process of transferring the first packet according to the routing and the arbitration.
  12.  前記第2のパケットは、前記到着タイミングとして前記第2のパケットを受信してから前記第1のパケットを受信するまでのサイクル数である先行サイクル数を含むとともに、前記第1のパケットのフリット長を含み、
     前記先行サイクル数及び前記フリット長に基づいて、前記アービトレーションを行う処理をコンピュータに実行させることを特徴とする、請求項11に記載のプログラム。
    The second packet includes, as the arrival timing, a preceding cycle number that is a cycle number from the reception of the second packet to the reception of the first packet, and the flit length of the first packet. Including
    The program according to claim 11, wherein the computer executes the process of performing the arbitration based on the number of preceding cycles and the flit length.
  13.  前記第2のパケットは、前記第1のパケットの優先度を含み、
     前記優先度に応じて前記アービトレーションを行う処理をコンピュータに実行させることを特徴とする、請求項11又は12に記載のプログラム。
    The second packet includes the priority of the first packet;
    The program according to claim 11 or 12, wherein the program executes a process of performing the arbitration according to the priority.
PCT/JP2010/055032 2009-03-24 2010-03-24 Router apparatus, semiconductor integrated circuit device, routing method, and program WO2010110289A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011506070A JP5488589B2 (en) 2009-03-24 2010-03-24 Router device, semiconductor integrated circuit device, routing method and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009-072507 2009-03-24
JP2009072507 2009-03-24

Publications (1)

Publication Number Publication Date
WO2010110289A1 true WO2010110289A1 (en) 2010-09-30

Family

ID=42780983

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/055032 WO2010110289A1 (en) 2009-03-24 2010-03-24 Router apparatus, semiconductor integrated circuit device, routing method, and program

Country Status (2)

Country Link
JP (1) JP5488589B2 (en)
WO (1) WO2010110289A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012253434A (en) * 2011-05-31 2012-12-20 Fujitsu Ltd Communication control method and relay device
JP2016503594A (en) * 2012-10-09 2016-02-04 ネットスピード システムズ Non-uniform channel capacity in the interconnect
JP2021513241A (en) * 2018-02-01 2021-05-20 ザイリンクス インコーポレイテッドXilinx Incorporated End-to-end quality of service on a network-on-chip

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5943115B1 (en) 2015-03-27 2016-06-29 日本電気株式会社 Integrated circuit, semiconductor device, card, and data transfer method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003152774A (en) * 2001-11-19 2003-05-23 Matsushita Electric Ind Co Ltd Variable-length packet exchanger
JP2005032225A (en) * 2003-05-07 2005-02-03 Agilent Technol Inc Method and system which control data communication between two or more interconnection devices
JP2007013412A (en) * 2005-06-29 2007-01-18 Mitsubishi Electric Corp Packet reading controller
JP2007110706A (en) * 2005-10-12 2007-04-26 Samsung Electronics Co Ltd Noc system employing axi protocol

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003152774A (en) * 2001-11-19 2003-05-23 Matsushita Electric Ind Co Ltd Variable-length packet exchanger
JP2005032225A (en) * 2003-05-07 2005-02-03 Agilent Technol Inc Method and system which control data communication between two or more interconnection devices
JP2007013412A (en) * 2005-06-29 2007-01-18 Mitsubishi Electric Corp Packet reading controller
JP2007110706A (en) * 2005-10-12 2007-04-26 Samsung Electronics Co Ltd Noc system employing axi protocol

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Proceedings, Sixth International Symposium on High-Performance Computer Architecture", 12 January 2000, article LI-SHIUAN PEH ET AL.: "Flit- Reservation Flow Control", pages: 73 - 84 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012253434A (en) * 2011-05-31 2012-12-20 Fujitsu Ltd Communication control method and relay device
JP2016503594A (en) * 2012-10-09 2016-02-04 ネットスピード システムズ Non-uniform channel capacity in the interconnect
JP2021513241A (en) * 2018-02-01 2021-05-20 ザイリンクス インコーポレイテッドXilinx Incorporated End-to-end quality of service on a network-on-chip
JP7356988B2 (en) 2018-02-01 2023-10-05 ザイリンクス インコーポレイテッド End-to-end quality of service in network-on-chip

Also Published As

Publication number Publication date
JP5488589B2 (en) 2014-05-14
JPWO2010110289A1 (en) 2012-09-27

Similar Documents

Publication Publication Date Title
EP2280513B1 (en) Router, information processing device having said router, and packet routing method
Agarwal et al. Survey of network on chip (noc) architectures & contributions
US10027433B2 (en) Multiple clock domains in NoC
US20070180310A1 (en) Multi-core architecture with hardware messaging
CN104158738A (en) Network-on-chip router with low buffer area and routing method
Chen et al. Reducing wire and energy overheads of the SMART NoC using a setup request network
JP5488589B2 (en) Router device, semiconductor integrated circuit device, routing method and program
CN113114593B (en) Dual-channel router in network on chip and routing method thereof
JP4509175B2 (en) Integrated circuit and packet switching control method
CN114679415A (en) Non-blocking banyan network meeting AXI5-Lite protocol standard
Nambinina et al. Extension of the lisnoc (network-on-chip) with an axi-based network interface
CN113704169B (en) Embedded configurable many-core processor
KR102497804B1 (en) On-chip network device capable of networking in dual swithching network modes and operation method thereof
JP2009194510A (en) Priority arbitration system and priority arbitration method
Choudhary Bursty Communication Performance Analysis of Network-on-Chip with Diverse Traffic Permutations
Salcic et al. A time predictable heterogeneous multicore processor for hard real-time GALS programs
WO2020087248A1 (en) Multi-core chip data bus wiring structure and method for transmitting data
Salah et al. Design of a 2d mesh-torus router for network on chip
WO2006048826A1 (en) Integrated circuit and method for data transfer in a network on chip environment
Rekha et al. Analysis and Design of Novel Secured NoC for High Speed Communications
Naqvi A'ARAF: An asynchronous router architecture using four-phase bundled handshake protocol
Jung et al. Sona: An on-chip network for scalable interconnection of amba-based ips
Daniel et al. A router architecture for flexible routing and switching in multihop point-to-point networks
Sayankar et al. Overview of network on chip architecture
Veena et al. Design and Implementation of Five Port Label Switched NoC Router Using FPGA

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: 10756085

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2011506070

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: 10756085

Country of ref document: EP

Kind code of ref document: A1