WO2010104033A1 - プロセッサ間通信システム及び通信方法、ネットワークスイッチ、及び並列計算システム - Google Patents

プロセッサ間通信システム及び通信方法、ネットワークスイッチ、及び並列計算システム Download PDF

Info

Publication number
WO2010104033A1
WO2010104033A1 PCT/JP2010/053785 JP2010053785W WO2010104033A1 WO 2010104033 A1 WO2010104033 A1 WO 2010104033A1 JP 2010053785 W JP2010053785 W JP 2010053785W WO 2010104033 A1 WO2010104033 A1 WO 2010104033A1
Authority
WO
WIPO (PCT)
Prior art keywords
output
input
slot
port
data
Prior art date
Application number
PCT/JP2010/053785
Other languages
English (en)
French (fr)
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 US13/255,466 priority Critical patent/US8964760B2/en
Priority to JP2011503807A priority patent/JPWO2010104033A1/ja
Publication of WO2010104033A1 publication Critical patent/WO2010104033A1/ja

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/101Packet switching elements characterised by the switching fabric construction using crossbar or matrix
    • 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

Definitions

  • the present invention relates to an inter-processor communication system and communication method, a network switch, and a parallel computing system, which are communication methods between functional nodes in a parallel processing (parallel computing) system composed of a plurality of processing (function) nodes, and more particularly to functional nodes.
  • the present invention relates to a communication system and a communication method for guaranteeing a communication bandwidth between them.
  • FIG. 2 is a configuration example of a parallel computing system 1000 having a two-dimensional mesh configuration.
  • the parallel computing system 1000 includes a plurality of functional nodes 200 and a plurality of network switches 100 that connect the functional nodes 200. Communication between the functional nodes 200 is performed via the network switch 100.
  • Non-Patent Document 1 A typical network switch (on-chip router) for on-chip network is described in Non-Patent Document 1 (FIG. 13). Since the conventional network switch dynamically determines the route based on the destination node address stored in the packet header, the transfer may wait for an indefinite time depending on the congestion degree of the transferred packet. Depending on the routing algorithm, deadlock may occur, but by introducing a virtual channel, deadlock can be avoided and packet retention can be reduced.
  • FIG. 13 shows an example of the network switch 100 having two virtual channels.
  • the network switch 100 includes five input ports 110, five output ports 120, a 5 ⁇ 5 crossbar switch, an arbiter unit, and five FIFO (First-In). First-Out) buffer.
  • data transfer from each input port 110 to each output port 120 is performed via a crossbar switch.
  • the transfer time is indeterminate, and it is difficult to transfer a packet with a guaranteed communication bandwidth in communication between functional nodes.
  • the performance of the network switch 100 is designed to be larger than necessary compared to the required communication bandwidth.
  • FIG. 14 shows a time division multiplexing switch disclosed in Patent Document 1 and Non-Patent Document 2.
  • the network switch 100 constituting this time division multiplex switch includes five input ports 110, five output ports 120, a 5 ⁇ 5 crossbar switch, a slot table 700, and five FIFO buffers.
  • data transfer from the input port 110 to the output port 120 is performed via a crossbar switch.
  • the crossbar switch is controlled by dividing a unit time called a frame into smaller times called slots. This crossbar switch is controlled based on connection information stored in the slot table 700 in advance. By allocating slots according to the data transfer communication bandwidth necessary for data transfer from a certain input port 110 to the output port 120, communication with a guaranteed communication bandwidth is possible.
  • An object of the present invention is to provide a communication system and a communication method between functional nodes that guarantee a communication bandwidth between a plurality of functional nodes and are low in power.
  • the inter-processor communication system has a plurality of network switches.
  • the network switch includes a plurality of input means for inputting data transferred between nodes, a plurality of output means for outputting the data, and data transferred between the plurality of input means and the plurality of output means.
  • a plurality of buffer means that intervene, an input port control unit setting means for setting control information for controlling the plurality of input means, and an output port control for setting control information for controlling the plurality of output means
  • a unit setting means, and the data transferred between the nodes via the plurality of input means, the plurality of output means, and the plurality of buffer means is divided into a plurality of slots divided in unit time. Allocate and transfer by time division multiplexing.
  • the input means includes an input port for inputting the data transferred in the slot, and an input port control unit.
  • the input port control unit selects the buffer unit according to an input slot into which the data is input and transfers the data input from the input port to the buffer unit, and the selection unit includes the selection unit An input slot correspondence management table for storing the correspondence between the input slot and the buffer means for selecting the buffer means according to the input slot; and input port management information for controlling the communication bandwidth of the input port; .
  • the output means includes an output port for outputting the data transferred in the slot, and an output port control unit.
  • the output port control unit selects the buffer means according to an output slot from which the data is output, and transfers the data output to the output port from the selected buffer means to the output port.
  • Output port management information for control.
  • the inter-processor communication method according to the present invention is a communication method using a plurality of network switches.
  • the network switch assigns data transferred between nodes via a plurality of input means, a plurality of buffer means, and a plurality of output means to a slot obtained by dividing a unit time into a plurality of sections, and performs time division multiplexing. Forward.
  • the plurality of input means store a correspondence relationship between the input slot and the buffer means for selecting the buffer means in accordance with an input slot into which the data is input in an input slot correspondence management table, and input port management information To control the communication bandwidth of the input port, input the data transferred in the slot from the input port, and according to the input slot to which the data is input based on the input slot correspondence management table
  • the buffer means is selected to transfer the data input from the input port to the buffer means.
  • the plurality of output means store a correspondence relationship between the output slot and the buffer means for selecting the buffer means in accordance with an output slot from which the data is output in an output slot correspondence management table, and output port management information To control the communication bandwidth of the output port, and select the buffer means to select the data to be output to the output port according to the output slot to which the data is output based on the output slot correspondence management table
  • the data is transferred from the buffer means to the output port, and the data transferred in the slot is output from the output port.
  • data transferred between nodes is assigned to a slot obtained by dividing a unit time into a plurality of sections and transferred by time division multiplexing, and data transfer to an input port and an output port of a network switch is performed by: This is performed based on information set in advance as an input slot correspondence management table and an output slot correspondence management table. For this reason, transfer between the input port and the output port can be reliably performed in a fixed time, and communication with a guaranteed communication bandwidth is possible.
  • each input port and output port of the network switch can individually set a communication bandwidth by input port management information and output port management information, and is required according to the requested communication bandwidth. Low power communication is possible by setting a minimum communication bandwidth.
  • FIG. 4 is a block diagram illustrating an example of mapping when the process of FIG. 3 is mapped to the parallel computing system of FIG. 2.
  • (A)-(c) is explanatory drawing of the example of allocation of the communication bandwidth to the input / output port of a network switch.
  • 6 is a timing chart for explaining data transfer according to an example of assignment of input port slots and output port slots in FIG. 5.
  • FIG. 10 is a block diagram illustrating a configuration example of a time division multiplex switch disclosed in Patent Document 1.
  • FIG. 1 is a block diagram showing a configuration of a network switch 100 using an interprocessor communication system according to an embodiment of the present invention.
  • the network switch 100 shown in FIG. 1 includes a plurality (five in FIG. 1) of input ports 110, a plurality (five in FIG. 1) of output ports 120, and an input port control unit 130 corresponding to each input port 110.
  • the output port control unit 140 corresponding to each output port 120 and a plurality of buffers BUF 150 that mediate transfer of data from each input port 110 to each output port 120 are provided.
  • the plurality of input ports 110 and the input port control unit 130 are a plurality of input units
  • the plurality of output ports 120 and the output port control unit 140 are a plurality of output units
  • the plurality of buffer BUFs 150 are a plurality of units. Each corresponds to a buffer means.
  • the input port control unit 130 selects which output port side buffer BUF 150 the data of the input port 110 is transferred to, and which output port side buffer BUF 150 the data of the input port 110 is transferred to. It has an input slot correspondence management table 132 that manages information, and input port management information 133 for controlling the communication bandwidth of the input port 110.
  • the output port control unit 140 selects which input port side buffer BUF 150 data is transferred to the output port 120, manages the multiplexing unit MUX 141 that multiplexes and outputs the information, and how to multiplex the information
  • the output slot correspondence management table 142, and output port management information 143 for controlling the communication bandwidth of the output port 120.
  • each input port control unit 130 can be changed by an input port control unit setting signal 160.
  • the operation of each output port control unit 140 can be changed by an output port control unit setting signal 170.
  • the configuration of 5 inputs and 5 outputs is shown, but the present invention is not limited to this, and other configurations of N inputs and M outputs can be easily accommodated. .
  • FIG. 2 is a configuration example of a parallel computing system 1000 having a two-dimensional mesh configuration using the network switch 100.
  • a parallel computing system 1000 illustrated in FIG. 2 includes a plurality of functional nodes 200 and a plurality of network switches 100.
  • the network switch 100 forms a communication path on a two-dimensional lattice.
  • each functional node 200 exists.
  • the network switch 100 includes five input ports, five input ports in order to transfer data between the other four adjacent network switches 100 in the figure, and one adjacent functional node 200. Has an output port.
  • the function node 200 is a component of processing having functions such as an arithmetic function, a storage function, and an IO function.
  • the function node 200 is not limited to one type, and a plurality of function nodes having different functions may be mixed.
  • the parallel computing system 1000 shown in FIG. 2 is an example of a two-dimensional mesh configuration, but the present invention is not limited to this, and a configuration employing another topology may be used.
  • FIG. 3 is a configuration example of a process 300 including a plurality of functional nodes 200.
  • the process 300 is a series of processes having a certain purpose, and includes functions such as data input, calculation, and output.
  • two IO nodes n1, n6) for input / output
  • four operation nodes n2, n3, n4, n5
  • storage nodes for storing data such as intermediate results of processing
  • An example of a process 300 consisting of n7, n8, n9 is shown.
  • Each functional node 200 constituting the process has a communication path (lnk1, lnk2,..., Lnk19) 400 for transferring data to each other.
  • lnk1, lnk2,..., Lnk19 communication path
  • FIG. 4 is an example in which the process 300 in FIG. 3 is mapped to the parallel computing system 1000 in FIG.
  • the parallel computing system 1000 of FIG. 4 includes eight operation nodes 200a, four storage nodes 200b, and four IO nodes 200c. Each functional node of the process 300 is assigned to these functional nodes.
  • a communication path 400 between functional nodes is configured using a plurality of network switches 100. In order for the mapped process 300 to achieve a predetermined performance, each functional node 200 proceeds with a predetermined performance, and each communication path 400 guarantees a predetermined communication bandwidth and transfers data. There is a need.
  • FIG. 5 explains the allocation of communication bandwidth required for the network switch 100.
  • FIG. 5A shows a plurality of communication paths 400 that pass through the network switch 100.
  • the network switch 100 includes X-, X +, Y-, Y + sides respectively corresponding to the other four network switch 100 sides adjacent to each other along the XY direction orthogonal to each other in a two-dimensional mesh configuration, and one adjacent function.
  • the core (core) side corresponding to the node 200 side has an input port 110 and an output port 120, respectively.
  • data enters the network switch 100 from the Core side input port 110 and exits from the X + side output port 120.
  • the X-side input port 110 is shared by the two communication paths L2 and L3, and the X + side output port 120 is shared by the three communication paths L1, L3, and L4.
  • FIG. 5B is an example of the communication bandwidth required by each communication path 400.
  • the number of the bandwidth is a transfer capacity per unit time, and is expressed in units of the minimum value (w) that can be realized.
  • FIG. 5C shows communication bandwidths to be allocated to the input ports 110 and the output ports 120 of the network switch 100 when the communication path 400 requests the communication bandwidth of FIG. 4B. It is.
  • the communication bandwidth is allocated to any integral multiple of the minimum communication bandwidth (w) in the range from 1 (1w) of the minimum communication bandwidth w to the maximum communication bandwidth (Nw). It can be set.
  • the communication bandwidth of the input port 110 and the output port 120 can also be set as the operating frequency of the input port 110 and the output port 120. For example, if the operating frequency for realizing the minimum communication bandwidth w is f, by setting a frequency that is an integral multiple of 1f, 2f, 3f,..., Nf, it is possible to set the frequency from 1 to N times the minimum communication bandwidth w. Arbitrary communication bandwidth can be realized.
  • the operating frequency of the input port 110 can be set by the input port management information 133 of each input port control unit 130. Further, the operating frequency of the output port 120 can be set by the output port management information 143 of each output port control unit 140.
  • FIG. 5 shows an example in which the minimum communication bandwidth is set to 2 ⁇ , 4 ⁇ , 8 ⁇ , and 2 for simplification of description, but the following description is an arbitrary integer. It is applicable even when setting by double.
  • the input port 100 at the X-side port position is shared by the two communication paths L2 and L3, and the total of the communication bandwidths 2w and 4w required by the two communication paths L2 and L3 is 6w or more. It is necessary to allocate the communication bandwidth. In this case, assuming that the maximum communication bandwidth is 8w, the maximum communication bandwidth 8w is allocated to the input port 100 at the X-side port position. Since the X + side output port 120 is shared by the three communication paths L1, L3, and L4, and the total of the requested communication bandwidths 1w, 4w, and 3w is 8w, an 8w communication bandwidth is allocated. Since there is no communication path 400 via the Y + and X + side input ports 110, no communication bandwidth is allocated. Similarly, since there is no communication path 400 via the Core, Y-, and X-side output ports 120, no communication bandwidth is allocated.
  • FIG. 6 shows how the data transfer designated by each communication path 400 is performed in the network switch 100 described in FIG.
  • data transferred between nodes is assigned to a slot obtained by dividing a unit time into a plurality of sections and transferred by time division multiplexing.
  • the unit time is called a frame 500.
  • a frame 500 at a certain time is Fj
  • consecutive frames 500 are represented as Fj + 1.
  • the time interval of the frame 500 is divided into 1 division, 2 divisions,..., N divisions corresponding to the minimum communication bandwidth w to the maximum communication bandwidth Nw.
  • the divided frame 500 is called a slot 600.
  • the slot 600 is distinguished as S0, S1,..., Sk ⁇ 1 in order of time when the number of divisions is k.
  • the slot 600 is classified as S0, S1,.
  • FIG. 6 shows the division of the frame 500 of each input port 110 and each output port 120 in accordance with the allocation of the communication bandwidth to each input port 110 and each output port 120 described in FIG. .
  • I / O ports to which no communication bandwidth is assigned are omitted.
  • the Core-side input port 110 is routed through only the communication path L1, and is assigned a minimum communication bandwidth w. Therefore, the frame 500 of the core-side input port 110 is composed of only one slot S0 in one division.
  • the communication path L2 is assigned to the Y + side output port 120. Since the communication path L2 requires a communication bandwidth of 2w, the Y + side output port 120 is assigned a communication bandwidth of 2w.
  • the communication bandwidth of 1w + 4w + 3w 8w is allocated. .
  • the four communication paths L1, L2, L3, and L4 are assigned to the slot 600 of the input port 110 on the Core side, the X-side, and the Y-side, respectively, and are input to the network switch 100.
  • the communication path L1 is in the slot S0 of the Core side input port 110
  • the communication path L2 is in the slots S0 and S1 of the X-side input port 110
  • the communication path L3 is in the slots S2, S3, In S4 and S5
  • the communication path L4 is assigned to the slots S0, S1 and S2 of the Y-side input port 110.
  • the four communication paths L1, L2, L3, and L4 are assigned to the slot 600 of the output port 120 on the Y + side and the X + side, respectively, and are output from the network switch 100.
  • the communication path L1 is in slot S1 of the X + side output port 120
  • the communication path L2 is in slots S1 and S0 in the Y + side output port 120
  • the communication path L3 is in slots S3, S5, S7, In S0
  • the communication path L4 is assigned to the slots S2, S4, and S6 of the X + side output port 120.
  • the slot 600 of the input port 110 is SI and the slot 600 of the output port 120 is SO
  • the temporal relationship between the input port slot SI and the output port slot SO is assigned so as to satisfy the following condition.
  • End time of input port slot SI ⁇ start time of output port slot SO (Formula 1)
  • the slot 600 of the output port 120 that satisfies the condition of Expression 1 and is not associated with the slot 600 of the other input port 110 is in the time interval of the frame Fj. If not, the output port slot SO is associated with the slot 600 of the output port 120 of the frame Fj + 1 which is the next time interval of the frame Fj.
  • the slot S0 of the input port 110 on the Core side of the communication path L1 is associated with the slot S1 of the output port 120 on the X + side of the next frame 500.
  • the slot S5 of the input port 110 on the X ⁇ side of the communication path L3 is associated with the slot S0 of the output port 120 on the X + side of the next frame 500.
  • the association between the slot 600 of the input port 110 and the slot 600 of the output port 120 is realized by two types of management tables: an input slot correspondence management table 132 and an output slot correspondence management table 142.
  • Each input port control unit 130 of the network switch 100 manages, as an input slot correspondence management table 132, the correspondence to which output port 120 each slot 600 of the corresponding input port 110 is transferred.
  • FIG. 7 is a configuration example of the input slot correspondence management table 132.
  • the input slot correspondence management table 132 is one-dimensional having k entries corresponding to the input slots S0, S1,. It can be realized as a table. Each entry stores identification information of the output port 120 to be transferred.
  • Each output port control unit 140 of the network switch 100 manages, as an output slot correspondence management table 142, correspondence of which input port 110 transfers data to each slot 600 of the corresponding output port 120.
  • FIG. 8 is a configuration example of the output slot correspondence management table 142.
  • the output slot correspondence management table 142 is one-dimensional having k entries corresponding to the output slots S0, S1,. It can be realized as a table. Each entry stores identification information of the input port 110 to be transferred to each output slot 600.
  • the input port control unit 130 of the network switch 100 transfers the data in the slot 600 of the input port 110 to the designated buffer BUF 150 on the output port 110 side based on the information in the input slot correspondence management table 132.
  • the input slot correspondence management table 132 is configured as shown in FIG. 7, the data of the slot 600 that arrives at the input port 110 in the order of S0, S1,.
  • the selection unit SEL131 selects a transfer destination so as to transfer to the buffer BUF150 designated by the information.
  • the output port control unit 140 of the network switch 100 determines which input side BUF 150 to transfer to the slot 600 of the output port 120 based on the information of the output slot correspondence management table 142, and multiplexes it to the slot 600 of the output port 120. Output.
  • the output slot correspondence management table 142 is configured as shown in FIG. 8, the data to be output in the order of the slots S0, S1,.
  • the data is taken out from the BUF 150 specified by the information, multiplexed by the multiplexing unit MUX 141, and output from the output port 120.
  • each input port 110 and each output port 120 of the network switch 100 can operate at a minimum speed capable of realizing the requested communication bandwidth.
  • the communication path 400 assigned to each slot 600 of the input port 110 can be determined as follows.
  • the assignment of the communication path 400 to the slot 600 of each input port 110 of the network switch 100 is determined by the output port control unit 140 of the output port 120 of the preceding network switch 100 that outputs data to the input port 110. Further going back, it is determined by the output port 120 of the functional node 200 constituting the parallel computing system 1000. The number of slots necessary for the communication bandwidth of the communication path 400 via the output port 120 is allocated to the output port 120 of the functional node 200.
  • the association between the assigned slot 600 and the communication path 400 may be arbitrary.
  • the slot 600 of the input port 110 is determined from the input slot correspondence management table 132 and the output slot correspondence management table 142. It can be seen which slot 600 of the output port 120 is associated with. That is, it can be seen which communication path 400 is associated with which slot 600 of the output port 120.
  • the above procedure is repeated for all the network switches 100 that reach the network switch 100 from the function node 200 that is the source of the communication path 400.
  • a communication path 400 associated with each slot 600 of the port 110 is known.
  • the output port 120 to which the data of the communication path 400 input from the input port 110 should be transferred is calculated in advance by a path search algorithm. Therefore, the entries of the slots S0, S1,..., Sk ⁇ 1 of the input slot correspondence management table 132 of the input port 110 may store the identifier of the output port 120 to which the data of the corresponding communication path 400 should be transferred. .
  • a method of creating the output slot correspondence management table 142 of the output port control unit 140 of the network switch 110 will be described with reference to FIG. Assume that the input slot correspondence management table 132 of each input port 110 of the network switch 110 is given.
  • step S101 steps S102 to S106 are repeated for each input port 110 of the network switch 100.
  • the selected input port 110 is identified by the input port identifier Pin.
  • step S102 steps S103 to S106 are repeated for each non-empty entry [Sin, Pout] in the input slot correspondence management table 132 indicated by the input port identifier Pin.
  • Sin is an input slot number
  • Pout is an output port identifier of the output port 120 to which Sin data is to be transferred.
  • step S103 the output slot correspondence management table 142 of the output port identifier Pout is set as OSTout.
  • step S104 it is determined whether there is a slot start time that is the same as or later than the slot Sin end time among the empty slots Sout of OSTout. If there is, in step S105, the input port identifier Pin is associated with the empty slot Sout of OSTout. If there is no empty slot Sout that matches the condition of step 104 in OSTout, the input-side slot Sin cannot be associated with the output-side slot in the same frame 500. Therefore, the slot Sin on the input side is associated with the slot on the output side in the slot of the frame 500 next to the current frame 500 (step S106).
  • FIG. 10 is a setting example of the input slot correspondence management table 132 and the output slot correspondence management table 142 corresponding to the slot allocation example described in FIG.
  • FIG. 11 is a flowchart of the operation of the input port control unit 132.
  • the total number of slots 600 of the input port 110 of the network switch 100 is Nin, and the current slot number of the input port 110 is Sin (step S201).
  • the input port control unit 132 repeats steps S202 to S204.
  • step S202 the output slot identifier Pout corresponding to the current slot number Sin is searched from the input slot correspondence management table 132.
  • step S203 the data of the input port 110 is transferred to the buffer BUF 150 indicated by the output port identifier Pout. As described above, the data of the input port 110 is transferred to the predetermined output port 120.
  • step S204 the current slot number Sin of the input port 110 is updated.
  • the input port control unit 130 performs data transfer in step S203 in synchronization with the start and end of the slot 600 of the input port 110.
  • Information necessary for synchronization includes the time interval of the slot 600 and the total number of slots. These pieces of information are stored in the input port management information 133.
  • the input port control unit 130 can also set the operating frequency according to the communication bandwidth requested for the input port 110. An operating frequency can be set in the input port management information 133.
  • FIG. 12 is a flowchart of the operation of the output port control unit 142.
  • the total number of slots 600 of the output port 120 of the network switch 100 is Nout, and the current slot number of the output port 120 is Sout (step S301).
  • the output port control unit 142 repeats steps S302 to S304.
  • step S302 the input port identifier Pin corresponding to the current slot number Sout is searched from the output slot correspondence management table 142.
  • step S303 the data in the buffer BUF 150 indicated by the input port identifier Pin is transferred to the output port 120.
  • step S304 the current slot number Sout of the output port 120 is updated.
  • the output port control unit 140 performs data transfer in step S303 in synchronization with the start and end of the slot 600 of the output port 120.
  • Information necessary for synchronization includes the time interval of the slot 600 and the total number of slots. These pieces of information are stored in the output port management information 143.
  • the output port control unit 140 can also set the operating frequency according to the communication bandwidth requested for the output port 120. An operating frequency can be set in the output port management information 143.
  • each input port control unit 130 and each output port control unit 140 of the network switch 100 can operate at different operating frequencies. For this reason, the input and output of the buffer BUF 150 are configured to be operable at different frequencies.
  • the data transferred between the functional nodes 200 is assigned to the slot 600 obtained by dividing the frame 500 as a unit time into a plurality of sections, and is transferred by time division multiplexing.
  • data transfer to the input port 110 and the output port 120 of the network switch 100 is performed based on information set in advance as the input slot correspondence management table 132 and the output slot correspondence management table 142. For this reason, transfer between the input port 110 and the output port 120 can be reliably performed in a fixed time, and communication with a guaranteed communication bandwidth is possible.
  • each input port 110 and output port 120 of the network switch 100 can individually set a communication bandwidth by the input port management information 133 and the output port management information 143, respectively, and the minimum required according to the requested communication bandwidth. By setting a limited communication bandwidth, low-power communication is possible.
  • the network switch 100 corresponds to a plurality of input ports 110, a plurality of output ports 120, an input port control unit 130 corresponding to each input port 110, and each output port 120.
  • Output port control unit 140, and a plurality of buffers BUF 150 that mediate transfer of data from each input port 110 to each output port 120.
  • the input port 110 independently transfers the data of the input slot to the buffer 150 based on the input slot correspondence management table 132.
  • the output port 120 independently transfers data from the buffer 150 to the output slot based on the output slot correspondence management table 142.
  • a communication system having a plurality of network switches, wherein the network switch includes a plurality of input means for inputting data transferred between nodes, a plurality of output means for outputting the data, and the plurality A plurality of buffer means for interposing data transferred between the input means and the plurality of output means, an input port control section setting means for setting control information for controlling the plurality of input means, and a plurality of Output port control unit setting means for setting control information for controlling the output means, and transfer between the nodes via the plurality of input means, the plurality of output means, and the plurality of buffer means Data is assigned to a slot divided into a plurality of sections and transferred by time division multiplexing, and the input means is transferred before the slot is transferred.
  • An inter-processor communication system comprising: an output slot correspondence management table for storing the correspondence relationship between the output ports, and output port management information for controlling a communication bandwidth of the output port.
  • the input slot correspondence management table has an entry of the number of slots of the input port, and the entry of the slot of the input port to which data of the slot of the input port is to be transferred is an entry of the input slot correspondence management table
  • the output slot correspondence management table has an entry for the number of slots of the output port, and the entry of the output slot correspondence management table has the input port identification information for transferring data to the slot of the output port.
  • the input means operates at the operating frequency set in the input port management information
  • the output means operates at the operating frequency set in the output port management information
  • the input means The data to the means is transferred in synchronization with the operating frequency set in the input port management information, and the data from the buffer means to the output means is synchronized with the operating frequency set in the output port management information. 4.
  • the inter-processor communication system according to any one of appendices 1 to 3, wherein the inter-processor communication is performed.
  • a communication method using a plurality of network switches in which the network switch is configured to transfer data transferred between nodes via a plurality of input means, a plurality of buffer means, and a plurality of output means.
  • Time is allocated to a slot divided into a plurality of sections, transferred by time division multiplexing, and the plurality of input means and the input slot for selecting the buffer means according to the input slot into which the data is input;
  • the correspondence relationship of the buffer means is stored in the input slot correspondence management table, the communication bandwidth of the input port is controlled by input port management information, the data transferred in the slot is input from the input port, Based on the input slot correspondence management table, the buffer means is selected according to the input slot into which the data is input, and the input port is selected.
  • the data input from the output port is transferred to the buffer means, and the plurality of output means correspond to the output slot and the buffer means for selecting the buffer means according to the output slot from which the data is output.
  • And the data output to the output port is transferred from the selected buffer means to the output port, and the data transferred in the slot is output from the output port. Communication method.
  • the input slot correspondence management table has an entry of the number of slots of the input port, and the entry of the slot of the input port to which the data of the slot of the input port should be transferred is an entry of the input slot correspondence management table
  • the output slot correspondence management table has an entry for the number of slots of the output port, and the entry of the output slot correspondence management table has the input port identification information for transferring data to the slot of the output port.
  • the input means operates at the operating frequency set in the input port management information
  • the output means operates at the operating frequency set in the output port management information
  • the input means The data to the means is transferred in synchronization with the operating frequency set in the input port management information, and the data from the buffer means to the output means is synchronized with the operating frequency set in the output port management information.
  • a plurality of input means for inputting data transferred between nodes, a plurality of output means for outputting the data, and data transferred between the plurality of input means and the plurality of output means A plurality of intervening buffer means, an input port control section setting means for setting control information for controlling the plurality of input means, and an output port control section for setting control information for controlling the plurality of output means Assigning data transferred between the nodes via the plurality of input means, the plurality of output means, and the plurality of buffer means to slots obtained by dividing a unit time into a plurality of sections.
  • the input means includes an input port for inputting the data transferred in the slot, and an input port control unit, the input port control unit Selection means for selecting the buffer means in accordance with an input slot into which the data is input and transferring the data input from the input port to the buffer means; and the selection means in accordance with the input slot
  • An input slot correspondence management table for storing a correspondence relationship between the input slot for selecting a buffer and the buffer means; and input port management information for controlling a communication bandwidth of the input port.
  • a multiplexing method for transferring the data output to the output port from the selected buffer means to the output port.
  • an output slot correspondence management table for storing a correspondence relationship between the output slot and the buffer means for the multiplexing means to select the buffer means according to the output slot, and to control a communication bandwidth of the output port.
  • Output port management information for performing
  • the input slot correspondence management table has an entry of the number of slots of the input port, and the entry of the slot of the input port to which the data of the slot of the input port is to be transferred is an entry of the input slot correspondence management table
  • the output slot correspondence management table has an entry for the number of slots of the output port, and the entry of the output slot correspondence management table has the input port identification information for transferring data to the slot of the output port.
  • the input means operates at the operating frequency set in the input port management information
  • the output means operates at the operating frequency set in the output port management information
  • the input means The data to the means is transferred in synchronization with the operating frequency set in the input port management information, and the data from the buffer means to the output means is synchronized with the operating frequency set in the output port management information.
  • the network switch according to any one of appendices 9 to 11, wherein the network switch is transferred.
  • the present invention can be applied to applications such as embedded control in which real-time performance and low power performance are important in a multi-core system composed of a plurality of functional nodes.
  • the present invention can also be applied to a case where a plurality of processes are optimized for a plurality of cores for each process by an automatic parallelizing compiler and executed without interfering with each other on one parallel computing system. It is.

Abstract

 ネットワークスイッチは、ノード間で転送されるデータを、単位時間を複数の区間に分割したスロットに割り当てて時分割多重で転送する。入力手段は、入力スロットに応じてバッファ手段を選択して入力ポートから入力されるデータをバッファ手段へ転送する選択手段と、入力スロットとバッファ手段の対応関係を格納する入力スロット対応管理表と、入力ポートの通信帯域幅を制御する入力ポート管理情報とを備える。出力手段は、出力スロットに応じてバッファ手段を選択して出力ポートへ出力されるデータを選択されたバッファ手段から出力ポートへ転送する多重化手段と、出力スロットとバッファ手段の対応関係を格納する出力スロット対応管理表と、出力ポートの通信帯域幅を制御する出力ポート管理情報とを備える。

Description

プロセッサ間通信システム及び通信方法、ネットワークスイッチ、及び並列計算システム
 本発明は、複数の処理(機能)ノードから構成される並列処理(並列計算)システムにおける機能ノード間通信方式であるプロセッサ間通信システム及び通信方法、ネットワークスイッチ、及び並列計算システムに関し、特に機能ノード間の通信帯域幅を保証するための通信システム及び通信方法に関する。
 システムLSIの高機能化、大規模化によりLSIの中に多数の機能ノード(演算、記憶、IO(入出力)等の機能を要する処理の構成要素)が搭載されるようになってきている。これら複数の機能ノードは協調して1つの処理を行う並列計算システムということができる。複数の機能ノード間でデータの転送を行う必要がある。機能ノード数が少ない場合は、機能ノード間のデータの転送はバスという1つの通信路を時分割で共有し通信を行うことが一般的であったが、機能ノード数が多くなると、同時に大量のデータを転送するとバスが性能のボトルネックとなる。そのため、近年、多数の機能ノードを搭載するシステムLSIにおいては、機能ノード間の通信にネットワークを使うことが考えられるようになっている。システムLSI内の機能ノードをネットワークで接続する手法は、NoC(Network On Chip)として知られている。
 図2は、2次元メッシュ構成の並列計算システム1000の構成例である。この並列計算システム1000は、複数の機能ノード200と、機能ノード200間を接続する複数のネットワークスイッチ100とから構成される。機能ノード200間の通信は、このネットワークスイッチ100を介して行われる。
 典型的なオンチップネットワーク用のネットワークスイッチ(オンチップルータ)が、非特許文献1に記載されている(図13)。従来のネットワークスイッチは、パケットヘッダに格納された送信先のノードアドレスに基づき動的に経路を決めるため、転送されるパケットの混雑度に応じて不確定な時間、転送が待たされることがある。ルーティングアルゴリズムによってはデッドロックを生じる場合もあるが、仮想チャネルを導入することによりデッドロックを回避し、またパケットの滞留も緩和することができる。
 図13は、2チャネルの仮想チャネルを持つネットワークスイッチ100の例である。このネットワークスイッチ100は、5つの入力ポート110と、5つの出力ポート120と、5×5のクロスバスイッチと、アービターユニットと、5つのFIFO(First-In
 First-Out)バッファとを備える。この場合、各入力ポート110から各出力ポート120へのデータ転送は、クロスバスイッチを介して行われる。しかし、この場合も転送時間は不確定であり、機能ノード間の通信において通信帯域幅を保証したパケットの転送を行うことは困難であった。この場合、ノード間の通信帯域幅を保証するためには、ネットワークスイッチ100の性能を要求通信帯域幅に比べて必要以上の大きく設計する等で対応していた。
 図14は、特許文献1および非特許文献2で開示されている、時分割多重スイッチである。この時分割多重スイッチを構成するネットワークスイッチ100は、5つの入力ポート110と、5つの出力ポート120と、5×5のクロスバスイッチと、スロットテーブル700と、5つのFIFOバッファとを備える。この場合、入力ポート110から出力ポート120へのデータ転送は、クロスバスイッチを介して行われる。図14に示す時分割多重スイッチにおいては、フレームという単位時間をスロットというより小さな時間に分割してクロスバスイッチの制御を行う。このクロスバスイッチは、あらかじめスロットテーブル700に格納しておいた接続情報に基づいて制御される。ある入力ポート110から出力ポート120へのデータ転送に必要なデータ転送の通信帯域幅に応じてスロットを割り当てることにより、通信帯域幅を保証した通信が可能である。
特表2007-500985号公報(カラム18~21、図1)
Matsutani H, Koibuchi M, Wang D, Amano H著. 2008年. Adding Slow-Silent Virtual Channels for Low-Power On-Chip Networks. Proceedings of the International Symposium on Networks-on-Chip (NOCS'08). :pp. 23-32. Leijten, J.A.J.; van Meerbergen, J.L.; Timmer, A.H.; Jess, J.A.G.著. 23-26 Feb. 1998年2月23日~26日、Stream communication between real-time tasks in a high-performance multiprocessor、Design, Automation and Test in Europe, 1998年., Proceedings、pp.125-131(図5、図7)
 しかしながら、この特許文献1に開示された時分割多重スイッチには、以下のような問題がある。
 すなわち、この時分割多重スイッチでは、通信の状況によって、各入出力ポートが要求する通信帯域幅が均等でない場合は、無駄な電力を消費するということである。この問題が発生する原因は、各入力ポート、各出力ポートに要求される通信帯域幅は一般的には異なるが、全部の入出力ポートが、全入出力ポートのうち最大の通信帯域幅を必要とする入出力ポートと同じ通信帯域幅で動作するためである。
 本発明の目的は、複数の機能ノード間の通信帯域幅を保証し、かつ低電力な機能ノード間通信システム及び通信方法を提供することにある。
 本発明に係るプロセッサ間通信システムは、複数のネットワークスイッチを有する。
 前記ネットワークスイッチは、ノード間で転送されるデータを入力する複数の入力手段と、前記データを出力する複数の出力手段と、前記複数の入力手段と前記複数の出力手段の間で転送されるデータを介在する複数のバッファ手段と、複数の前記入力手段を制御するための制御情報を設定する入力ポート制御部設定手段と、複数の前記出力手段を制御するための制御情報を設定する出力ポート制御部設定手段と、を備え、前記複数の入力手段、前記複数の出力手段、前記複数のバッファ手段を介して、前記ノード間で転送されるデータを、単位時間を複数の区間に分割したスロットに割り当てて時分割多重で転送する。
 前記入力手段は、前記スロットで転送される前記データを入力するための入力ポートと、入力ポート制御部とを備える。前記入力ポート制御部は、前記データが入力される入力スロットに応じて前記バッファ手段を選択して前記入力ポートから入力される前記データを前記バッファ手段へ転送する選択手段と、前記選択手段が前記入力スロットに応じて前記バッファ手段を選択するための前記入力スロットと前記バッファ手段の対応関係を格納する入力スロット対応管理表と、前記入力ポートの通信帯域幅を制御するための入力ポート管理情報と、を備える。
 前記出力手段は、前記スロットで転送される前記データを出力するための出力ポートと、出力ポート制御部とを備える。前記出力ポート制御部は、前記データが出力される出力スロットに応じて前記バッファ手段を選択して前記出力ポートへ出力される前記データを選択された前記バッファ手段から前記出力ポートへ転送する多重化手段と、前記多重化手段が前記出力スロットに応じて前記バッファ手段を選択するための前記出力スロットと前記バッファ手段の対応関係を格納する出力スロット対応管理表と、前記出力ポートの通信帯域幅を制御するための出力ポート管理情報と、を備える。
 本発明に係るプロセッサ間通信方法は、複数のネットワークスイッチを用いた通信方法である。
 前記ネットワークスイッチは、複数の入力手段、複数のバッファ手段、複数の出力手段を介して、ノード間で転送されるデータを、単位時間を複数の区間に分割したスロットに割り当てて、時分割多重で転送する。
 前記複数の入力手段は、前記データが入力される入力スロットに応じて前記バッファ手段を選択するための前記入力スロットと前記バッファ手段の対応関係を入力スロット対応管理表に格納し、入力ポート管理情報により前記入力ポートの通信帯域幅を制御し、前記入力ポートから、前記スロットで転送される前記データを入力し、前記入力スロット対応管理表に基づいて前記データが入力される入力スロットに応じて前記バッファ手段を選択して前記入力ポートから入力される前記データを前記バッファ手段へ転送する。
 前記複数の出力手段は、前記データが出力される出力スロットに応じて前記バッファ手段を選択するための前記出力スロットと前記バッファ手段の対応関係を出力スロット対応管理表に格納し、出力ポート管理情報により前記出力ポートの通信帯域幅を制御し、前記出力スロット対応管理表に基づいて前記データが出力される出力スロットに応じて前記バッファ手段を選択して前記出力ポートへ出力される前記データを選択された前記バッファ手段から前記出力ポートへ転送し、前記出力ポートから、前記スロットで転送される前記データを出力する。
 本発明によれば、ノード間で転送されるデータは単位時間を複数の区間に分割したスロットに割り当てられて時分割多重で転送され、ネットワークスイッチの入力ポート、出力ポートへのデータの転送は、入力スロット対応管理表、出力スロット対応管理表としてあらかじめ設定された情報に基づき行われる。このため、入力ポート、出力ポート間の転送は一定時間で確実に行うことが可能で、通信帯域幅を保証した通信が可能である。
 また、本発明によれば、ネットワークスイッチの各入力ポート、出力ポートは、それぞれ入力ポート管理情報、出力ポート管理情報により個別に通信帯域幅を設定可能で、要求された通信帯域幅に応じて必要最低限の通信帯域幅を設定することで、低電力な通信が可能である。
本発明の実施形態に係るネットワークスイッチの構成を示すブロック図である。 図1のネットワークスイッチを用いた2次元メッシュ構成の並列計算システムの構成例を示すブロック図である。 図2の複数の機能ノードで構成されるプロセスの構成例である。 図3のプロセスを図2の並列計算システムへマッピングした場合のマッピング例を説明するブロック図である。 (a)~(c)は、ネットワークスイッチの入出力ポートへの通信帯域幅の割り当て例の説明図である。 図5の入力ポートのスロットと出力ポートのスロットの割り当て例に従うデータ転送を説明するタイミングチャートである。 図1の入力スロット対応管理表の構成例を示す図である。 図1の出力スロット対応管理表の構成例を示す図である。 図1の出力スロット対応管理表の作成アルゴリズムを示すフローチャートである。 図1の入出力スロット対応管理表の設定例を示すブロック図である。 図1の入力ポート制御部の動作を説明するフローチャートである。 図1の出力ポート制御部の動作を説明するフローチャートである。 非特許文献1に記載されているオンチップネットワーク用ネットワークスイッチの構成例を示すブロック図である。 特許文献1で開示されている、時分割多重スイッチの構成例を示すブロック図である。
 次に、本発明の実施の形態について図面を参照して詳細に説明する。
 図1は、本発明の実施形態によるプロセッサ間通信システムを用いたネットワークスイッチ100の構成を示すブロック図である。図1に示すネットワークスイッチ100は、複数(図1では5つ)の入力ポート110と、複数(図1では5つ)の出力ポート120と、各入力ポート110に対応する入力ポート制御部130と、各出力ポート120に対応する出力ポート制御部140と、各入力ポート110から各出力ポート120へのデータの転送を仲介する複数のバッファBUF150とを有する。このうち、複数の入力ポート110及び入力ポート制御部130は、複数の入力手段に、複数の出力ポート120及び出力ポート制御部140とは、複数の出力手段に、複数のバッファBUF150は、複数のバッファ手段に、それぞれ対応する。
 入力ポート制御部130は、入力ポート110のデータをどの出力ポート側のバッファBUF150に転送するかを選択する選択部SEL131と、入力ポート110のデータをどの出力ポート側のバッファBUF150に転送するかの情報を管理している入力スロット対応管理表132と、入力ポート110の通信帯域幅を制御するための入力ポート管理情報133とを有する。
 出力ポート制御部140は、どの入力ポート側のバッファBUF150のデータを出力ポート120へ転送するかを選択し、多重化して出力する多重化部MUX141と、どのように多重化するかの情報を管理している出力スロット対応管理表142と、出力ポート120の通信帯域幅を制御するための出力ポート管理情報143とを有する。
 各入力ポート制御部130の動作は、入力ポート制御部設定信号160によって変更可能である。また、各出力ポート制御部140の動作は、出力ポート制御部設定信号170によって変更可能である。
 図1に示すネットワークスイッチ100では、5入力5出力の構成を示してあるが、本発明はこれに限定されるものではなく、これ以外のN入力M出力の構成へは容易に対応可能である。
 図2は、ネットワークスイッチ100を用いた2次元メッシュ構成の並列計算システム1000の構成例である。図2に示す並列計算システム1000は、複数の機能ノード200と、複数のネットワークスイッチ100とから構成される。
 ネットワークスイッチ100は、2次元の格子上の通信路を形成している。各ネットワークスイッチ100に対応して各機能ノード200が存在する。このため、ネットワークスイッチ100は、図中の上下左右の隣接する他の4つのネットワークスイッチ100と、隣接する1つの機能ノード200との間でテータを転送するために5つの入力ポートと、5つの出力ポートを持つ。
 機能ノード200は、演算機能、記憶機能、IO機能等の機能を有する処理の構成要素である。機能ノード200は、1種類ではなく、複数の異なる機能を有する機能ノードが混在していても良い。
 図2に示す並列計算システム1000は、2次元メッシュ構成の例であるが、本発明はこれに限定されるものではなく、他のトポロジーを採用した構成であっても良い。
 図3は、複数の機能ノード200で構成されるプロセス300の構成例である。プロセス300は、ある目的を持った一連の処理で、データの入力、演算、出力等の機能から構成される。図3では、入出力用に2つのIOノード(n1、n6)、演算用に4つの演算ノード(n2、n3、n4、n5)、処理の中間結果等のデータを格納するための記憶ノード(n7、n8、n9)から構成されるプロセス300の例を示している。プロセスを構成する各機能ノード200は、お互いにデータを転送するために通信経路(lnk1、lnk2、…、lnk19)400を持つ。プロセス300が全体として処理を効率的に行うためには、通信経路400において十分な通信帯域幅でデータの転送を行う必要がある。
 図4は、図3のプロセス300を図2の並列計算システム1000にマッピングした例である。図4の並列計算システム1000は、8つの演算ノード200a、4つの記憶ノード200b、4つのIOノード200cから構成される。これら機能ノードにプロセス300の各機能ノードを割り当てる。機能ノード間の通信経路400は、複数のネットワークスイッチ100を用いて構成する。マッピングされたプロセス300が所定の性能を達成するためには、それぞれの機能ノード200が所定の性能で処理を進めるとともに、それぞれの通信経路400が所定の通信帯域幅を保証してデータを転送する必要がある。
 図5は、ネットワークスイッチ100に要求される通信帯域幅の割り当てを説明したものである。
 図5(a)は、ネットワークスイッチ100を経由する複数の通信経路400を示したものである。ここでは、L1、L2、L3、L4の4つの通信経路(リンク)400が1つのネットワークスイッチ100を経由している。ネットワークスイッチ100には、2次元メッシュ構成の互いに直交するXY方向に沿って隣接する他の4つのネットワークスイッチ100側にそれぞれ対応するX-、X+、Y-、Y+側と、隣接する1つの機能ノード200側に対応するCore(コア)側とにそれぞれ入力ポート110と出力ポート120を持つ。通信経路L1によるテータ転送では、データはCore側の入力ポート110からネットワークスイッチ100に入り、X+側の出力ポート120から出てゆく。X-側の入力ポート110は、2つの通信経路L2、L3で共有しており、X+側の出力ポート120は、3つの通信経路L1、L3、L4で共有している。
 図5(b)は、それぞれの通信経路400が要求する通信帯域幅の例である。帯域幅の数字は単位時間あたりの転送容量で、実現可能な通信帯域幅の最小値(wとする)を単位としてあらわしている。
 図5(c)は、通信経路400が図4(b)の通信帯域幅を要求したときに、ネットワークスイッチ100の各入力ポート110、各出力ポート120にそれぞれ割り当てるべき通信帯域幅を示したものである。
 本実施形態によれば、通信帯域幅の割り当ては、最小通信帯域幅wの1倍(1w)から最大通信帯域幅(Nw)の範囲で、最小通信帯域幅(w)の任意の整数倍に設定可能である。入力ポート110、出力ポート120の通信帯域幅は、入力ポート110、出力ポート120の動作周波数として設定することも可能である。例えば、最小通信帯域幅wを実現する動作周波数をfとすると、1f、2f、3f、…、Nfと整数倍の周波数を設定することで、最低通信帯域幅wの1倍からN倍までの任意の通信帯域幅を実現できる。
 本実施形態のネットワークスイッチ100では、各入力ポート制御部130の入力ポート管理情報133によって、入力ポート110の動作周波数を設定することができる。また、各出力ポート制御部140の出力ポート管理情報143によって、出力ポート120の動作周波数を設定することができる。図5では、説明の簡単化のために最小通信帯域幅に対して2倍、4倍、8倍と2の冪で設定する場合の例を示しているが、以下の説明は、任意の整数倍で設定する場合でも適用可能である。
 図5では、X-側のポート位置にある入力ポート100は、2つの通信経路L2、L3で共有しており、2つの通信経路L2、L3の要求する通信帯域幅2w、4wの合計6w以上の通信帯域幅を割り当てる必要がある。この場合、最大通信帯域幅を8wとすると、X-側のポート位置にある入力ポート100には、最大通信帯域幅8wを割り当てる。X+側出力ポート120は、3つの通信経路L1、L3、L4で共有されており、要求通信帯域幅1w、4w、3wの合計は8wなので、8wの通信帯域幅を割り当てる。Y+、X+側入力ポート110を経由する通信経路400は存在しないので、通信帯域幅は割り当てない。同様に、Core、Y-、X-側出力ポート120を経由する通信経路400は存在しないので、通信帯域幅は割り当てない。
 図6は、図5で説明したネットワークスイッチ100において各通信経路400で指定されたデータ転送がどのように行われるかを示したものである。
 本実施形態では、ノード間で転送されるデータは単位時間を複数の区間に分割したスロットに割り当てられ時分割多重で転送される。単位時間をフレーム500と呼ぶ。ある時刻のフレーム500をFjとすると、連続するフレーム500は、Fj+1とあらわす。フレーム500の時間区間は、最小通信帯域幅wから最大通信帯域幅Nwに対応して、1分割、2分割、…、N分割される。分割されたフレーム500は、スロット600と呼ぶ。スロット600は、分割数をkとした場合、時間の順にS0、S1、…、Sk-1として区別される。図5では、最大通信帯域幅Nwは8w(N=8)のため、分割数はk=8となり、スロット600はS0、S1、…、S7として区分される。
 図6は、図5(c)で説明した各入力ポート110、各出力ポート120への通信帯域幅の割り当てに応じて、各入力ポート110、各出力ポート120のフレーム500の分割を表している。通信帯域幅の割り当てられていない入出力ポートは、省略している。
 Core側入力ポート110は、通信経路L1だけが経由しており、最小通信帯域幅wが割り当てられている。したがって、Core側入力ポート110のフレーム500は、1分割で1スロットS0だけから構成される。
 X-側入力ポート110は、2つの通信経路L2、L3が共有しており、それぞれ2w、4wの通信帯域幅を要求しているので、2w+4w=6w以上の8wの通信帯域幅を割り当てている。そのため、X-側入力ポート110のフレーム500は、8分割され、8つのスロット600で構成される。フレーム500の分割によらず、各スロット600は、最小通信帯域幅wの通信帯域幅を持つ必要がある。このため、X-側入力ポート110は、最小通信帯域幅wの8倍の通信帯域幅を実現できるよう高速で動作させる。X-側入力ポート110の8つのスロット600のうち、S0、S1は、通信経路L2に割り当てられ、S2、S3、S4、S5は、通信経路L3に割り当てられている。
 Y+側出力ポート120には、通信経路L2が割り当てられている。通信経路L2は、2wの通信帯域幅を要求しているので、Y+側出力ポート120には、2wの通信帯域幅を割り当てている。
 X+側出力ポート120は、3つの通信経路L1、L3、L4が共有しており、それぞれ1w、4w、3wの通信帯域幅を要求しているので、1w+4w+3w=8wの通信帯域幅を割り当てている。
 4つの通信経路L1、L2、L3、L4は、それぞれ、Core側、X-側、Y-側の入力ポート110のスロット600に割り当てられて、ネットワークスイッチ100に入力される。通信経路L1は、Core側入力ポート110のスロットS0に、通信経路L2は、X-側入力ポート110のスロットS0、S1に、通信経路L3は、X-側入力ポート110のスロットS2、S3、S4、S5に、通信経路L4は、Y-側入力ポート110のスロットS0、S1、S2に割り当てられている。
 同様に、4つの通信経路L1、L2、L3、L4は、それぞれ、Y+側、X+側の出力ポート120のスロット600に割り当てられて、ネットワークスイッチ100から出力される。通信経路L1は、X+側出力ポート120のスロットS1に、通信経路L2は、Y+側出力ポート120のスロットS1、S0に、通信経路L3は、X+側出力ポート120のスロットS3、S5、S7、S0に、通信経路L4は、X+側出力ポート120のスロットS2、S4、S6に割り当てられている。
 図6では、各通信経路の入力ポート110のスロット600と出力ポート120のスロット600の対応を矢印で示している。通信経路L3を例に、この対応付けを説明する。
 入力ポート110のスロット600をSIとし、出力ポート120のスロット600をSOとすると、入力ポートスロットSIと出力ポートスロットSOの時間的関係は、次の条件を満たすように割り当てる。
 入力ポートスロットSIの終了時刻≦出力ポートスロットSOの開始時刻 (式1)
 入力ポートスロットSIが属しているフレーム500をFjとした場合、式1の条件を満たし、他の入力ポート110のスロット600と対応付けされていない出力ポート120のスロット600がフレームFjの時間区間に存在しない場合は、フレームFjの次の時間区間であるフレームFj+1の出力ポート120のスロット600に出力ポートスロットSOを対応付ける。
 例えば、図6では、通信経路L1のCore側の入力ポート110のスロットS0が、次のフレーム500のX+側の出力ポート120のスロットS1に対応付けられている。また、通信経路L3のX-側の入力ポート110のスロットS5が、次のフレーム500のX+側の出力ポート120のスロットS0に対応付けられている。
 各入力ポート110、各出力ポート120に割り当てられている通信帯域幅が、各入力ポート110、各出力ポート120を通る通信経路400が要求している通信帯域幅の合計と同じか、大きい場合は、必ず式1の条件を満たすような入力ポート110のスロット600と出力ポート120のスロット600の対応付けが可能である。
 本実施形態では、入力ポート110のスロット600と出力ポート120のスロット600の対応付けは、入力スロット対応管理表132、出力スロット対応管理表142という2種類の管理表で実現する。ネットワークスイッチ100の各入力ポート制御部130は、対応する入力ポート110の各スロット600をどの出力ポート120に転送するかの対応付けを入力スロット対応管理表132として管理する。
 図7は、入力スロット対応管理表132の構成例である。入力ポート110のフレーム500がk個のスロット600に分割されている場合は、入力スロット対応管理表132は入力スロットS0、S1、…、Sk-1に対応してk個のエントリをもつ1次元の表として実現できる。各エントリには、転送すべき出力ポート120の識別情報を格納する。ネットワークスイッチ100の各出力ポート制御部140は、対応する出力ポート120の各スロット600へどの入力ポート110からデータを転送するかの対応付けを出力スロット対応管理表142として管理する。
 図8は、出力スロット対応管理表142の構成例である。出力ポート120のフレーム500がk個のスロット600に分割されている場合は、出力スロット対応管理表142は出力スロットS0、S1、…、Sk-1に対応してk個のエントリを持つ1次元の表として実現できる。各エントリには、各出力スロット600に転送すべき入力ポート110の識別情報を格納する。
 ネットワークスイッチ100の入力ポート制御部130は、入力スロット対応管理表132の情報に基づき、入力ポート110のスロット600のデータを指定された出力ポート110側のバッファBUF150へ転送する。入スロット対応管理表132が図7のように構成される場合は、入力ポート110にS0、S1、…、Sk-1の順に到着するスロット600のデータを入力スロット対応管理表132の出力ポート識別情報で指定されるバッファBUF150に転送するように選択部SEL131で転送先を選択する。
 ネットワークスイッチ100の出力ポート制御部140は、出力スロット対応管理表142の情報に基づき、どの入力側BUF150から出力ポート120のスロット600へ転送するかを決定し、出力ポート120のスロット600へ多重化して出力する。出力スロット対応管理表142が図8のように構成される場合は、出力ポート120のスロットS0、S1、…、Sk-1の順に出力すべきデータを、出力スロット対応管理表142の入力ポート識別情報で指定されるBUF150からとりだし、多重化部MUX141で多重化して出力ポート120から出力する。
 以上により、各通信経路400が要求する通信帯域幅を保証した通信が可能となる。また、ネットワークスイッチ100の各入力ポート110、各出力ポート120は要求された通信帯域幅を実現可能な最低限の速度で動作することができる。
 次に、入力スロット対応管理表132、出力スロット対応管理表142の作成アルゴリズムについて説明する。
 図4で説明した、並列計算システム1000へのプロセスのマッピングは完了しているものとする。機能ノード200間を接続する、通信経路400が具体的にどのネットワークスイッチ100を経由するかの決定は、経路探索問題として知られている問題で、多くのアルゴリズムが提案されている。したがって、各ネットワークスイッチ100を通る通信経路400がどの入力ポート110から入力され、どの出力ポート120から出力されるかは、図5(a)で示したように与えられているものとする。
 入力ポート110の各スロット600にどの通信経路400が割り当てられているかは、次のようにして決定できる。
 ネットワークスイッチ100の各入力ポート110のスロット600への通信経路400の割り当ては、この入力ポート110にデータを出力する前段のネットワークスイッチ100の出力ポート120の出力ポート制御部140によって決定される。さらにさかのぼれば、並列計算システム1000を構成する機能ノード200の出力ポート120によって決定される。機能ノード200の出力ポート120には、その出力ポート120を介する通信経路400の通信帯域幅に必要なスロット数が割り当てられる。割り当てられたスロット600と通信経路400の対応付けは任意でよい。
 ネットワークスイッチ100の入力ポート110の各スロット600と通信経路400の対応付けが既知であれば、入力スロット対応管理表132と、出力スロット対応管理表142とから、入力ポート110のスロット600が、どの出力ポート120のどのスロット600と対応付けられているかがわかる。すなわち、出力ポート120のどのスロット600にどの通信経路400が対応付けられているかわかる。
 ネットワークスイッチ100を経由するすべての通信経路400に関して、通信経路400の送信元の機能ノード200から、当該ネットワークスイッチ100に至る全ネットワークスイッチ100に関して、上記手続きを繰り返すことにより、当該ネットワークスイッチ100の入力ポート110の各スロット600と対応付けられている通信経路400がわかる。入力ポート110から入力された通信経路400のデータは、どの出力ポート120へ転送すべきかは、経路探索アルゴリズムによってあらかじめ計算されている。したがって、入力ポート110の入力スロット対応管理表132の各スロットS0、S1、…、Sk-1のエントリには、対応する通信経路400のデータを転送すべき出力ポート120の識別子を格納すればよい。
 図9を用いて、ネットワークスイッチ110の出力ポート制御部140の出力スロット対応管理表142の作成方法を説明する。当該ネットワークスイッチ110の各入力ポート110の入力スロット対応管理表132は、与えられているものとする。
 ステップS101で、当該ネットワークスイッチ100の各入力ポート110に関してステップS102~S106を繰り返す。ステップS102~S106の繰り返しの間は、選択されている入力ポート110を入力ポート識別子Pinで識別する。
 ステップS102で、入力ポート識別子Pinで指示される入力スロット対応管理表132の空でない各エントリ[Sin、Pout]について、ステップS103~S106を繰り返す。ここで、Sinは入力スロット番号、PoutはSinのデータを転送すべき出力ポート120の出力ポート識別子である。
 ステップS103で、出力ポート識別子Poutの出力スロット対応管理表142をOSToutとする。
 ステップS104の条件判断では、OSToutの空きスロットSoutのうち、スロット開始時刻がスロットSinの終了時刻と同じか、遅いものがあるかどうかを判定する。もしあれば、ステップS105で、OSToutの空きスロットSoutに入力ポート識別子Pinを対応付ける。もしステップ104の条件に合致する空きスロットSoutがOSToutに存在しない場合、入力側のスロットSinは同じフレーム500内の出力側のスロットに対応付けることができないということである。したがって、入力側のスロットSinは、現在のフレーム500の次のフレーム500のスロットで出力側のスロットに対応付ける(ステップS106)。
 ネットワークスイッチ100の各入力ポート110、各出力ポート120に対する通信帯域の割り当てが、図5(c)で説明したように割り当てられている場合、以上により、ネットワークスイッチ100の各入力ポート110のスロット600に対し、式1の条件を満たすような対応付けを必ず行うことができる。
 入力スロット対応管理表132、出力スロット対応管理表142の作成アルゴリズムはここで説明した以外にも多様なアルゴリズムが考えられるが、式1の条件を満たすことができれば、任意の対応付けで、本実施形態のネットワークスイッチ100は正しく動作する。
 次に、ネットワークスイッチ100の各入力ポート110の入力ポート制御部130、各出力ポート120の出力ポート制御部140の動作を、フローチャートを用いて説明する。
 図10は、図6で説明したスロット割り当て例に対応する、入力スロット対応管理表132、出力スロット対応管理表142の設定例である。
 図11は、入力ポート制御部132の動作のフローチャートである。ネットワークスイッチ100の入力ポート110のスロット600の総数をNin、入力ポート110の現在のスロット番号をSinとする(ステップS201)。入力ポート制御部132は、ステップS202~S204を繰り返す。
 ステップS202で、入力スロット対応管理表132から現在スロット番号Sinに対応する出力ポート識別子Poutを検索する。ステップS203で、入力ポート110のデータを出力ポート識別子Poutで指示されるバッファBUF150に転送する。以上で、所定の出力ポート120へ入力ポート110のデータが転送される。ステップS204で、入力ポート110の現在のスロット番号Sinを更新する。
 入力ポート制御部130は、入力ポート110のスロット600の開始と終了に同期してステップS203のデータ転送を行う。同期のために必要な情報としては、スロット600の時間間隔、総スロット数がある。これらの情報は、入力ポート管理情報133に格納される。入力ポート制御部130は、入力ポート110に要求されている通信帯域幅に応じて動作周波数を設定することも可能である。入力ポート管理情報133には、動作周波数を設定することも可能である。
 図12は、出力ポート制御部142の動作のフローチャートである。ネットワークスイッチ100の出力ポート120のスロット600の総数をNout、出力ポート120の現在のスロット番号をSoutとする(ステップS301)。出力ポート制御部142は、ステップS302~304を繰り返す。
 ステップS302で、出力スロット対応管理表142から現在スロット番号Soutに対応する入力ポート識別子Pinを検索する。ステップS303で、入力ポート識別子Pinで指示されるバッファBUF150のデータを出力ポート120に転送する。ステップS304で、出力ポート120の現在のスロット番号Soutを更新する。
 出力ポート制御部140は、出力ポート120のスロット600の開始と終了に同期して、ステップS303のデータ転送を行う。同期のために必要な情報としては、スロット600の時間間隔、総スロット数がある。これらの情報は、出力ポート管理情報143に格納される。出力ポート制御部140は、出力ポート120に要求されている通信帯域幅に応じて動作周波数を設定することも可能である。出力ポート管理情報143には、動作周波数を設定することも可能である。
 本実施形態では、ネットワークスイッチ100の各入力ポート制御部130、各出力ポート制御部140は異なる動作周波数で動作することができる。このため、バッファBUF150の入力と出力は異なる周波数で動作可能なように構成する。
 以上により、機能ノード200間で転送されるデータは、単位時間であるフレーム500を複数の区間に分割したスロット600に割り当てられ、時分割多重で転送される。このとき、ネットワークスイッチ100の入力ポート110、出力ポート120へのデータの転送は、入力スロット対応管理表132、出力スロット対応管理表142としてあらかじめ設定された情報に基づき行われる。このため、入力ポート110、出力ポート120間の転送は、一定時間で確実に行うことが可能で、通信帯域幅を保証した通信が可能となる。また、ネットワークスイッチ100の各入力ポート110、出力ポート120は、それぞれ入力ポート管理情報133、出力ポート管理情報143により個別に通信帯域幅を設定可能で、要求された通信帯域幅に応じて必要最低限の通信帯域幅を設定することで、低電力な通信が可能となる。
 以上説明したように、本実施形態では、ネットワークスイッチ100は、複数の入力ポート110と、複数の出力ポート120と、各入力ポート110に対応する入力ポート制御部130と、各出力ポート120に対応する出力ポート制御部140と、各入力ポート110から各出力ポート120へのデータの転送を仲介する複数のバッファBUF150とを有する。入力ポート110は、入力スロット対応管理表132に基づき独立に入力スロットのデータをバッファ150に転送する。出力ポート120は、出力スロット対応管理表142に基づき独立にバッファ150から出力スロットにデータを転送する。
 これにより、本実施形態によれば、通信帯域幅を保証して通信を行うための時分割多重スイッチにおいて、通信の状況によって、各入出力ポートが要求する通信帯域幅が均等でない場合も、各入出力ポートが独立に必要最低限の通信帯域幅を保証して動作可能で、かつ無駄な電力を消費することのないプロセッサ間通信システム及び通信方法を提供することができる。
 上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限定されない。
 (付記1)複数のネットワークスイッチを有する通信システムであって、前記ネットワークスイッチは、ノード間で転送されるデータを入力する複数の入力手段と、前記データを出力する複数の出力手段と、前記複数の入力手段と前記複数の出力手段の間で転送されるデータを介在する複数のバッファ手段と、複数の前記入力手段を制御するための制御情報を設定する入力ポート制御部設定手段と、複数の前記出力手段を制御するための制御情報を設定する出力ポート制御部設定手段と、を備え、前記複数の入力手段、前記複数の出力手段、前記複数のバッファ手段を介して、前記ノード間で転送されるデータを、単位時間を複数の区間に分割したスロットに割り当てて時分割多重で転送し、前記入力手段は、前記スロットで転送される前記データを入力するための入力ポートと、入力ポート制御部とを備え、前記入力ポート制御部は、前記データが入力される入力スロットに応じて前記バッファ手段を選択して前記入力ポートから入力される前記データを前記バッファ手段へ転送する選択手段と、前記選択手段が前記入力スロットに応じて前記バッファを選択するための前記入力スロットと前記バッファ手段の対応関係を格納する入力スロット対応管理表と、前記入力ポートの通信帯域幅を制御するための入力ポート管理情報と、を備え、前記出力手段は、前記スロットで転送される前記データを出力するための出力ポートと、出力ポート制御部とを備え、前記出力ポート制御部は、前記データが出力される出力スロットに応じて前記バッファ手段を選択して前記出力ポートへ出力される前記データを選択された前記バッファ手段から前記出力ポートへ転送する多重化手段と、前記多重化手段が前記出力スロットに応じて前記バッファ手段を選択するための前記出力スロットと前記バッファ手段の対応関係を格納する出力スロット対応管理表と、前記出力ポートの通信帯域幅を制御するための出力ポート管理情報と、を備えることを特徴とするプロセッサ間通信システム。
 (付記2)複数の前記入力ポートのそれぞれのスロット数を前記入力ポート管理情報として個別に設定し、複数の前記出力ポートのそれぞれのスロット数を前記出力ポート管理情報として個別に設定し、複数の前記入力ポートと複数の前記出力ポートが互いに異なるスロット数を持つことを特徴とする付記1に記載のプロセッサ間通信システム。
 (付記3)前記入力スロット対応管理表は、前記入力ポートのスロット数のエントリをもち、前記入力スロット対応管理表のエントリには、前記入力ポートのスロットのデータを転送すべき前記出力ポート識別情報を格納し、前記出力スロット対応管理表は、前記出力ポートのスロット数のエントリをもち、前記出力スロット対応管理表のエントリには、前記出力ポートのスロットへデータを転送すべき前記入力ポート識別情報を格納することを特徴とする、付記1又は2に記載のプロセッサ間通信システム。
 (付記4)前記入力手段は、前記入力ポート管理情報に設定された動作周波数で動作し、前記出力手段は、前記出力ポート管理情報に設定された動作周波数で動作し、前記入力手段から前記バッファ手段へのデータは、前記入力ポート管理情報に設定された動作周波数に同期して転送し、前記バッファ手段から前記出力手段へのデータは、前記出力ポート管理情報に設定された動作周波数に同期して転送することを特徴とする、付記1から3のいずれか1項に記載のプロセッサ間通信システム。
 (付記5)複数のネットワークスイッチを用いた通信方法であって、前記ネットワークスイッチが、複数の入力手段、複数のバッファ手段、複数の出力手段を介して、ノード間で転送されるデータを、単位時間を複数の区間に分割したスロットに割り当てて、時分割多重で転送し、前記複数の入力手段が、前記データが入力される入力スロットに応じて前記バッファ手段を選択するための前記入力スロットと前記バッファ手段の対応関係を入力スロット対応管理表に格納し、入力ポート管理情報により前記入力ポートの通信帯域幅を制御し、前記入力ポートから、前記スロットで転送される前記データを入力し、前記入力スロット対応管理表に基づいて前記データが入力される入力スロットに応じて前記バッファ手段を選択して前記入力ポートから入力される前記データを前記バッファ手段へ転送し、前記複数の出力手段が、前記データが出力される出力スロットに応じて前記バッファ手段を選択するための前記出力スロットと前記バッファ手段の対応関係を出力スロット対応管理表に格納し、出力ポート管理情報により前記出力ポートの通信帯域幅を制御し、前記出力スロット対応管理表に基づいて前記データが出力される出力スロットに応じて前記バッファ手段を選択して前記出力ポートへ出力される前記データを選択された前記バッファ手段から前記出力ポートへ転送し、前記出力ポートから、前記スロットで転送される前記データを出力することを特徴とするプロセッサ間通信方法。
 (付記6)複数の前記入力ポートのそれぞれのスロット数を前記入力ポート管理情報として個別に設定し、複数の前記出力ポートのそれぞれのスロット数を前記出力ポート管理情報として個別に設定し、複数の前記入力ポートと複数の前記出力ポートが互いに異なるスロット数を持つことを特徴とする付記5に記載のプロセッサ間通信方法。
 (付記7)前記入力スロット対応管理表は、前記入力ポートのスロット数のエントリをもち、前記入力スロット対応管理表のエントリには、前記入力ポートのスロットのデータを転送すべき前記出力ポート識別情報を格納し、前記出力スロット対応管理表は、前記出力ポートのスロット数のエントリをもち、前記出力スロット対応管理表のエントリには、前記出力ポートのスロットへデータを転送すべき前記入力ポート識別情報を格納することを特徴とする、付記5又は6に記載のプロセッサ間通信方法。
 (付記8)前記入力手段は、前記入力ポート管理情報に設定された動作周波数で動作し、前記出力手段は、前記出力ポート管理情報に設定された動作周波数で動作し、前記入力手段から前記バッファ手段へのデータは、前記入力ポート管理情報に設定された動作周波数に同期して転送し、前記バッファ手段から前記出力手段へのデータは、前記出力ポート管理情報に設定された動作周波数に同期して転送することを特徴とする、請求項5から7のいずれか1項に記載のプロセッサ間通信方法。
 (付記9)ノード間で転送されるデータを入力する複数の入力手段と、前記データを出力する複数の出力手段と、前記複数の入力手段と前記複数の出力手段の間で転送されるデータを介在する複数のバッファ手段と、複数の前記入力手段を制御するための制御情報を設定する入力ポート制御部設定手段と、複数の前記出力手段を制御するための制御情報を設定する出力ポート制御部設定手段と、を備え、前記複数の入力手段、前記複数の出力手段、前記複数のバッファ手段を介して、前記ノード間で転送されるデータを、単位時間を複数の区間に分割したスロットに割り当てて時分割多重で転送し、前記入力手段は、前記スロットで転送される前記データを入力するための入力ポートと、入力ポート制御部とを備え、前記入力ポート制御部は、前記データが入力される入力スロットに応じて前記バッファ手段を選択して前記入力ポートから入力される前記データを前記バッファ手段へ転送する選択手段と、前記選択手段が前記入力スロットに応じて前記バッファを選択するための前記入力スロットと前記バッファ手段の対応関係を格納する入力スロット対応管理表と、前記入力ポートの通信帯域幅を制御するための入力ポート管理情報と、を備え、前記出力手段は、前記スロットで転送される前記データを出力するための出力ポートと、出力ポート制御部とを備え、前記出力ポート制御部は、前記データが出力される出力スロットに応じて前記バッファ手段を選択して前記出力ポートへ出力される前記データを選択された前記バッファ手段から前記出力ポートへ転送する多重化手段と、前記多重化手段が前記出力スロットに応じて前記バッファ手段を選択するための前記出力スロットと前記バッファ手段の対応関係を格納する出力スロット対応管理表と、前記出力ポートの通信帯域幅を制御するための出力ポート管理情報と、を備えることを特徴とするネットワークスイッチ。
 (付記10)複数の前記入力ポートのそれぞれのスロット数を前記入力ポート管理情報として個別に設定し、複数の前記出力ポートのそれぞれのスロット数を前記出力ポート管理情報として個別に設定し、複数の前記入力ポートと複数の前記出力ポートが互いに異なるスロット数を持つことを特徴とする付記9に記載のプロセッサ間通信ネットワークスイッチ。
 (付記11)前記入力スロット対応管理表は、前記入力ポートのスロット数のエントリをもち、前記入力スロット対応管理表のエントリには、前記入力ポートのスロットのデータを転送すべき前記出力ポート識別情報を格納し、前記出力スロット対応管理表は、前記出力ポートのスロット数のエントリをもち、前記出力スロット対応管理表のエントリには、前記出力ポートのスロットへデータを転送すべき前記入力ポート識別情報を格納することを特徴とする、付記9又は10に記載のネットワークスイッチ。
 (付記12)前記入力手段は、前記入力ポート管理情報に設定された動作周波数で動作し、前記出力手段は、前記出力ポート管理情報に設定された動作周波数で動作し、前記入力手段から前記バッファ手段へのデータは、前記入力ポート管理情報に設定された動作周波数に同期して転送し、前記バッファ手段から前記出力手段へのデータは、前記出力ポート管理情報に設定された動作周波数に同期して転送することを特徴とする、付記9から11のいずれか1項に記載のネットワークスイッチ。
 (付記13)付記9から12のいずれか1項に記載のネットワークスイッチを備えたことを特徴とする並列計算システム。
 以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 この出願は、2009年3月9日に出願された日本出願特願2009-055030号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 本発明は、複数の機能ノードから構成されるマルチコアシステムをリアルタイム性、低電力性が重要な組込み制御といった用途に適用できる。また、本発明は、複数のプロセスをそれぞれ自動並列化コンパイラでそれぞれのプロセスごとに複数コア用に最適化して1つの並列計算システム上でお互いに干渉することなく実行する、といった用途にも適用可能である。
100 ネットワークスイッチ
110 入力ポート
120 出力ポート
130 入力ポート制御部
131 選択部
132 入力スロット対応管理表
133 入力ポート管理情報
140 出力ポート制御部
141 多重化部
142 出力スロット対応管理表
143 出力ポート管理情報
150 バッファ
160 入力ポート制御部設定信号
170 出力ポート制御部設定信号
200 機能ノード
200a 演算ノード
200b 記憶ノード
200c IOノード
300 プロセス
400 通信経路
500 フレーム
600 スロット
700 スロットテーブル
1000 並列計算システム

Claims (13)

  1.  複数のネットワークスイッチを有する通信システムであって、
     前記ネットワークスイッチは、
     ノード間で転送されるデータを入力する複数の入力手段と、
     前記データを出力する複数の出力手段と、
     前記複数の入力手段と前記複数の出力手段の間で転送されるデータを介在する複数のバッファ手段と、
     複数の前記入力手段を制御するための制御情報を設定する入力ポート制御部設定手段と、
     複数の前記出力手段を制御するための制御情報を設定する出力ポート制御部設定手段と、を備え、
     前記複数の入力手段、前記複数の出力手段、前記複数のバッファ手段を介して、前記ノード間で転送されるデータを、単位時間を複数の区間に分割したスロットに割り当てて時分割多重で転送し、
     前記入力手段は、
     前記スロットで転送される前記データを入力するための入力ポートと、
     入力ポート制御部とを備え、
     前記入力ポート制御部は、
     前記データが入力される入力スロットに応じて前記バッファ手段を選択して前記入力ポートから入力される前記データを前記バッファ手段へ転送する選択手段と、
     前記選択手段が前記入力スロットに応じて前記バッファを選択するための前記入力スロットと前記バッファ手段の対応関係を格納する入力スロット対応管理表と、
     前記入力ポートの通信帯域幅を制御するための入力ポート管理情報と、を備え、
     前記出力手段は、
     前記スロットで転送される前記データを出力するための出力ポートと、
     出力ポート制御部とを備え、
     前記出力ポート制御部は、
     前記データが出力される出力スロットに応じて前記バッファ手段を選択して前記出力ポートへ出力される前記データを選択された前記バッファ手段から前記出力ポートへ転送する多重化手段と、
     前記多重化手段が前記出力スロットに応じて前記バッファ手段を選択するための前記出力スロットと前記バッファ手段の対応関係を格納する出力スロット対応管理表と、
     前記出力ポートの通信帯域幅を制御するための出力ポート管理情報と、を備えることを特徴とするプロセッサ間通信システム。
  2.  複数の前記入力ポートのそれぞれのスロット数を前記入力ポート管理情報として個別に設定し、
     複数の前記出力ポートのそれぞれのスロット数を前記出力ポート管理情報として個別に設定し、
     複数の前記入力ポートと複数の前記出力ポートが互いに異なるスロット数を持つことを特徴とする請求項1に記載のプロセッサ間通信システム。
  3.  前記入力スロット対応管理表は、前記入力ポートのスロット数のエントリをもち、前記入力スロット対応管理表のエントリには、前記入力ポートのスロットのデータを転送すべき前記出力ポート識別情報を格納し、
     前記出力スロット対応管理表は、前記出力ポートのスロット数のエントリをもち、前記出力スロット対応管理表のエントリには、前記出力ポートのスロットへデータを転送すべき前記入力ポート識別情報を格納することを特徴とする、請求項1又は2に記載のプロセッサ間通信システム。
  4.  前記入力手段は、前記入力ポート管理情報に設定された動作周波数で動作し、
     前記出力手段は、前記出力ポート管理情報に設定された動作周波数で動作し、
     前記入力手段から前記バッファ手段へのデータは、前記入力ポート管理情報に設定された動作周波数に同期して転送し、
     前記バッファ手段から前記出力手段へのデータは、前記出力ポート管理情報に設定された動作周波数に同期して転送することを特徴とする、請求項1から3のいずれか1項に記載のプロセッサ間通信システム。
  5.  複数のネットワークスイッチを用いた通信方法であって、
     前記ネットワークスイッチが、複数の入力手段、複数のバッファ手段、複数の出力手段を介して、ノード間で転送されるデータを、単位時間を複数の区間に分割したスロットに割り当てて、時分割多重で転送し、
     前記複数の入力手段が、
     前記データが入力される入力スロットに応じて前記バッファ手段を選択するための前記入力スロットと前記バッファ手段の対応関係を入力スロット対応管理表に格納し、
     入力ポート管理情報により前記入力ポートの通信帯域幅を制御し、
     前記入力ポートから、前記スロットで転送される前記データを入力し、
     前記入力スロット対応管理表に基づいて前記データが入力される入力スロットに応じて前記バッファ手段を選択して前記入力ポートから入力される前記データを前記バッファ手段へ転送し、
     前記複数の出力手段が、
     前記データが出力される出力スロットに応じて前記バッファ手段を選択するための前記出力スロットと前記バッファ手段の対応関係を出力スロット対応管理表に格納し、
     出力ポート管理情報により前記出力ポートの通信帯域幅を制御し、
     前記出力スロット対応管理表に基づいて前記データが出力される出力スロットに応じて前記バッファ手段を選択して前記出力ポートへ出力される前記データを選択された前記バッファ手段から前記出力ポートへ転送し、
     前記出力ポートから、前記スロットで転送される前記データを出力することを特徴とするプロセッサ間通信方法。
  6.  複数の前記入力ポートのそれぞれのスロット数を前記入力ポート管理情報として個別に設定し、
     複数の前記出力ポートのそれぞれのスロット数を前記出力ポート管理情報として個別に設定し、
     複数の前記入力ポートと複数の前記出力ポートが互いに異なるスロット数を持つことを特徴とする請求項5に記載のプロセッサ間通信方法。
  7.  前記入力スロット対応管理表は、前記入力ポートのスロット数のエントリをもち、前記入力スロット対応管理表のエントリには、前記入力ポートのスロットのデータを転送すべき前記出力ポート識別情報を格納し、
     前記出力スロット対応管理表は、前記出力ポートのスロット数のエントリをもち、前記出力スロット対応管理表のエントリには、前記出力ポートのスロットへデータを転送すべき前記入力ポート識別情報を格納することを特徴とする、請求項5又は6に記載のプロセッサ間通信方法。
  8.  前記入力手段は、前記入力ポート管理情報に設定された動作周波数で動作し、
     前記出力手段は、前記出力ポート管理情報に設定された動作周波数で動作し、
     前記入力手段から前記バッファ手段へのデータは、前記入力ポート管理情報に設定された動作周波数に同期して転送し、
     前記バッファ手段から前記出力手段へのデータは、前記出力ポート管理情報に設定された動作周波数に同期して転送することを特徴とする、請求項5から7のいずれか1項に記載のプロセッサ間通信方法。
  9.  ノード間で転送されるデータを入力する複数の入力手段と、
     前記データを出力する複数の出力手段と、
     前記複数の入力手段と前記複数の出力手段の間で転送されるデータを介在する複数のバッファ手段と、
     複数の前記入力手段を制御するための制御情報を設定する入力ポート制御部設定手段と、
     複数の前記出力手段を制御するための制御情報を設定する出力ポート制御部設定手段と、を備え、
     前記複数の入力手段、前記複数の出力手段、前記複数のバッファ手段を介して、前記ノード間で転送されるデータを、単位時間を複数の区間に分割したスロットに割り当てて時分割多重で転送し、
     前記入力手段は、
     前記スロットで転送される前記データを入力するための入力ポートと、
     入力ポート制御部とを備え、
     前記入力ポート制御部は、
     前記データが入力される入力スロットに応じて前記バッファ手段を選択して前記入力ポートから入力される前記データを前記バッファ手段へ転送する選択手段と、
     前記選択手段が前記入力スロットに応じて前記バッファを選択するための前記入力スロットと前記バッファ手段の対応関係を格納する入力スロット対応管理表と、
     前記入力ポートの通信帯域幅を制御するための入力ポート管理情報と、を備え、
     前記出力手段は、
     前記スロットで転送される前記データを出力するための出力ポートと、
     出力ポート制御部とを備え、
     前記出力ポート制御部は、
     前記データが出力される出力スロットに応じて前記バッファ手段を選択して前記出力ポートへ出力される前記データを選択された前記バッファ手段から前記出力ポートへ転送する多重化手段と、
     前記多重化手段が前記出力スロットに応じて前記バッファ手段を選択するための前記出力スロットと前記バッファ手段の対応関係を格納する出力スロット対応管理表と、
     前記出力ポートの通信帯域幅を制御するための出力ポート管理情報と、を備えることを特徴とするネットワークスイッチ。
  10.  複数の前記入力ポートのそれぞれのスロット数を前記入力ポート管理情報として個別に設定し、
     複数の前記出力ポートのそれぞれのスロット数を前記出力ポート管理情報として個別に設定し、
     複数の前記入力ポートと複数の前記出力ポートが互いに異なるスロット数を持つことを特徴とする請求項9に記載のプロセッサ間通信ネットワークスイッチ。
  11.  前記入力スロット対応管理表は、前記入力ポートのスロット数のエントリをもち、前記入力スロット対応管理表のエントリには、前記入力ポートのスロットのデータを転送すべき前記出力ポート識別情報を格納し、
     前記出力スロット対応管理表は、前記出力ポートのスロット数のエントリをもち、前記出力スロット対応管理表のエントリには、前記出力ポートのスロットへデータを転送すべき前記入力ポート識別情報を格納することを特徴とする、請求項9又は10に記載のネットワークスイッチ。
  12.  前記入力手段は、前記入力ポート管理情報に設定された動作周波数で動作し、
     前記出力手段は、前記出力ポート管理情報に設定された動作周波数で動作し、
     前記入力手段から前記バッファ手段へのデータは、前記入力ポート管理情報に設定された動作周波数に同期して転送し、
     前記バッファ手段から前記出力手段へのデータは、前記出力ポート管理情報に設定された動作周波数に同期して転送することを特徴とする、請求項9から11のいずれか1項に記載のネットワークスイッチ。
  13.  請求項9から12のいずれか1項に記載のネットワークスイッチを備えたことを特徴とする並列計算システム。
PCT/JP2010/053785 2009-03-09 2010-03-08 プロセッサ間通信システム及び通信方法、ネットワークスイッチ、及び並列計算システム WO2010104033A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US13/255,466 US8964760B2 (en) 2009-03-09 2010-03-08 Interprocessor communication system and communication method, network switch, and parallel calculation system
JP2011503807A JPWO2010104033A1 (ja) 2009-03-09 2010-03-08 プロセッサ間通信システム及び通信方法、ネットワークスイッチ、及び並列計算システム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009-055030 2009-03-09
JP2009055030 2009-03-09

Publications (1)

Publication Number Publication Date
WO2010104033A1 true WO2010104033A1 (ja) 2010-09-16

Family

ID=42728322

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/053785 WO2010104033A1 (ja) 2009-03-09 2010-03-08 プロセッサ間通信システム及び通信方法、ネットワークスイッチ、及び並列計算システム

Country Status (3)

Country Link
US (1) US8964760B2 (ja)
JP (1) JPWO2010104033A1 (ja)
WO (1) WO2010104033A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017537404A (ja) * 2014-11-28 2017-12-14 華為技術有限公司Huawei Technologies Co.,Ltd. メモリアクセス方法、スイッチ、およびマルチプロセッサシステム

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012146201A (ja) 2011-01-13 2012-08-02 Toshiba Corp オンチップルータ及びそれを用いたマルチコアシステム
ITTO20111180A1 (it) * 2011-12-21 2013-06-22 St Microelectronics Grenoble 2 Dispositivo di controllo, ad esempio per system-on-chip, e corrispondente procedimento
JP5624579B2 (ja) * 2012-03-23 2014-11-12 株式会社東芝 オンチップルータ
US10331569B2 (en) 2016-01-05 2019-06-25 Friday Harbor Llc Packet router buffer management
US9942146B2 (en) * 2016-01-05 2018-04-10 Knuedge Incorporated Router path selection and creation in a single clock cycle
US10883687B2 (en) * 2016-12-16 2021-01-05 Lumileds Llc Light conversion device with angular and wavelength selective coating
CN112003787B (zh) * 2020-08-14 2022-09-09 北京灵汐科技有限公司 一种路由路径确定方法、装置、控制设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11239159A (ja) * 1994-07-21 1999-08-31 Fujitsu Ltd Atm交換機
JP2006522563A (ja) * 2003-03-03 2006-09-28 ザイリンクス インコーポレイテッド 混合された相互接続リソースを備えたfpgaアーキテクチャ
JP2007329936A (ja) * 1997-01-29 2007-12-20 Elixent Ltd フィールドプログラマブルプロセッサアレイ

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5345441A (en) 1992-10-20 1994-09-06 At&T Bell Laboratories Hierarchical path hunt for multirate connections
CN1127280C (zh) * 1997-11-06 2003-11-05 耐特因塞特公司 在时分多路复用网络的位流之间交换数据的方法和设备
JP3097681B2 (ja) 1998-12-25 2000-10-10 日本電気株式会社 パケット交換機及びその制御方法
JP3597113B2 (ja) 2000-05-11 2004-12-02 日本電気株式会社 パケット交換装置
US20030035371A1 (en) * 2001-07-31 2003-02-20 Coke Reed Means and apparatus for a scaleable congestion free switching system with intelligent control
US7082132B1 (en) * 2001-12-26 2006-07-25 Nortel Networks Limited Universal edge node
EP1625757B1 (en) 2003-05-14 2007-04-18 Koninklijke Philips Electronics N.V. Time-division multiplexing circuit-switching router
JP2005123770A (ja) 2003-10-15 2005-05-12 Mitsubishi Electric Corp 時分割処理装置および通信装置
US7760625B2 (en) 2004-10-14 2010-07-20 Tokyo Denki University Exchange node and exchange node control method
JP2007074234A (ja) 2005-09-06 2007-03-22 Hitachi Communication Technologies Ltd 伝送装置
JP4639175B2 (ja) 2006-10-12 2011-02-23 株式会社日立製作所 伝送装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11239159A (ja) * 1994-07-21 1999-08-31 Fujitsu Ltd Atm交換機
JP2007329936A (ja) * 1997-01-29 2007-12-20 Elixent Ltd フィールドプログラマブルプロセッサアレイ
JP2006522563A (ja) * 2003-03-03 2006-09-28 ザイリンクス インコーポレイテッド 混合された相互接続リソースを備えたfpgaアーキテクチャ

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017537404A (ja) * 2014-11-28 2017-12-14 華為技術有限公司Huawei Technologies Co.,Ltd. メモリアクセス方法、スイッチ、およびマルチプロセッサシステム
US10282293B2 (en) 2014-11-28 2019-05-07 Huawei Technologies Co., Ltd. Method, switch, and multiprocessor system using computations and local memory operations

Also Published As

Publication number Publication date
US8964760B2 (en) 2015-02-24
JPWO2010104033A1 (ja) 2012-09-13
US20110317691A1 (en) 2011-12-29

Similar Documents

Publication Publication Date Title
WO2010104033A1 (ja) プロセッサ間通信システム及び通信方法、ネットワークスイッチ、及び並列計算システム
EP2613479B1 (en) Relay device
JP5603481B2 (ja) 中継装置
EP1625757B1 (en) Time-division multiplexing circuit-switching router
JP2016503594A (ja) インターコネクトにおける不均一なチャネル容量
JP5834178B2 (ja) 半導体回路のバスシステム
US8391178B2 (en) Route allocation apparatus and method
JP2014506092A (ja) 通信層を処理する複数のプロセッサを含むネットワーク通信ノードおよび関連ノード
US8665755B2 (en) Communication device, communication system, and route allocation method
Lusala et al. A SDM-TDM based circuit-switched router for on-chip networks
US8040821B2 (en) Switching device, switching method, and switch control program
KR100527341B1 (ko) 크로스바 방식의 방송스위치
US20120210018A1 (en) System And Method for Lock-Less Multi-Core IP Forwarding
Ding et al. Bandwidth-based application-aware multipath routing for NoCs
JP2007288280A (ja) 同期光パケット交換ネットワークにおける波長割当最適化計算法及び波長割当制御による衝突回避方法
Ross et al. Adaptive batch scheduling for packet switching with delays
Musumeci et al. Dynamic routing and resource allocation in time-driven-switched optical networks
Yuan et al. HyperOXN: Topology and Scheduling for Efficient Large-Scale Networks
Fan et al. Efficient many-to-many real-time communication using an intelligent Ethernet switch
Saberi et al. Fair matching algorithm: An optimal scheduling algorithm for the AAPN network
Chi et al. An Efficient Scheduler for Circuit-Switched Network-on-Chip Architectures
Parik et al. Buffer allocation approaches for virtual channel flow control
Chen THE HENRY EDWIN SEVER GRADUATE SCHOOL DEPARTMENT OF ELECTRICAL ENGINEERING
Zhu et al. Scalable switching fabric for Internet routers
Bergenhem et al. A pipelined fiber-ribbon ring network with heterogeneous real-time support

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2011503807

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 13255466

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10750786

Country of ref document: EP

Kind code of ref document: A1