WO2011070913A1 - On-chip parallel processing system and communication method - Google Patents

On-chip parallel processing system and communication method Download PDF

Info

Publication number
WO2011070913A1
WO2011070913A1 PCT/JP2010/070957 JP2010070957W WO2011070913A1 WO 2011070913 A1 WO2011070913 A1 WO 2011070913A1 JP 2010070957 W JP2010070957 W JP 2010070957W WO 2011070913 A1 WO2011070913 A1 WO 2011070913A1
Authority
WO
WIPO (PCT)
Prior art keywords
packet
nodes
node
data
communication
Prior art date
Application number
PCT/JP2010/070957
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 JP2011545164A priority Critical patent/JP5673554B2/en
Publication of WO2011070913A1 publication Critical patent/WO2011070913A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17381Two dimensional, e.g. mesh, torus

Definitions

  • the present invention relates to an on-chip parallel processing system and a communication method for processing a plurality of applications in parallel.
  • An on-chip parallel processing system is a system in which several tens or more processors are arranged on one chip.
  • SoC system-on-chip
  • the bus method is used as a connection method on a chip in SoC.
  • the processor is connected to a memory, a peripheral device interface, and the like by a bus.
  • the amount of data flowing on the chip is expected to increase by the increased number.
  • the bus method In the bus method, data is transmitted and received after a communication path is established between the communication transmission side and the reception side. Therefore, the processing time overhead is large. That is, the bus method is not suitable as a connection method in an on-chip parallel processing system in which a large amount of data flows on a chip.
  • NoC network-on-chip
  • the communication transmission side can continuously transmit data without waiting for the establishment of a communication path with the communication reception side. Therefore, NoC is suitable as a connection method in an on-chip parallel processing system in which a large amount of data flows on a chip.
  • a chip is composed of a plurality of nodes, a plurality of routers, and a link connecting them. That is, in NoC, communication is performed via a network, and this network terminates at a node via a router and a link.
  • Each of the plurality of nodes includes one or more processors, memories, peripheral device interfaces, and the like.
  • Each of the plurality of nodes includes a network interface for performing communication with a router in the network.
  • the network interface packetizes data transmitted from each of a plurality of nodes and transmits it to the network. In addition, it receives a packet transmitted from another node, extracts data contained in the received packet, and outputs it to a block (processor, memory, peripheral device interface, etc.) in the node.
  • a block processor, memory, peripheral device interface, etc.
  • SoC SoC
  • a plurality of applications are already mounted on one chip, and parallel processing of the plurality of applications is realized.
  • each partition includes one or more nodes and a network connecting them.
  • one application can be executed across a plurality of partitions, and a plurality of applications can be executed in one partition.
  • partitions can be changed dynamically. This provides a degree of freedom in designing a device using the SoC and a cost reduction effect.
  • partition boundary can be changed dynamically means that the partition boundary can be determined regardless of the physical arrangement of the processor, memory, etc. on the chip.
  • Patent Document 1 discloses an on-chip parallel processing system capable of realizing such a partition.
  • the on-chip parallel processing system disclosed in Patent Document 1 is a system in which a plurality of nodes are connected on-chip by NoC.
  • the network is divided into a plurality of partitions, and one or more applications are executed on the one or more partitions.
  • Patent Document 1 describes that in defining a partition, it is sufficient that exclusive access to a unique physical memory address space is allocated to routers and IP blocks in the partition.
  • Patent Document 1 describes the following.
  • Each router along the partition boundary checks the source address and destination address of the communication packet received by the router. It then drops the addressed packet to a network location within that partition that occurred outside that partition. It also drops packets addressed to network locations outside that partition that occurred within that partition.
  • a virtual channel is set.
  • This virtual channel is realized by a network interface controller and a router.
  • the communication type is recorded in one field in the network packet format by the network interface controller, and then transmitted to the router.
  • the router includes a routing logic, a virtual channel control logic, and a virtual channel buffer.
  • the communication type assigned to the packet received by each router is examined.
  • the received packet is placed in an outgoing virtual channel buffer that is a buffer for transmitting a packet of the communication type.
  • a communication command is exemplified as a communication type.
  • the communication command includes an IP inter-block network address base message, a request message, a request response message, an invalidation message directed to the cache, a memory load message, a memory store message, a pair Memory load response message.
  • the buffer in the router may become full, and it may not be possible to store more packets in the buffer. In this case, data transfer between routers is delayed.
  • NoC if the former of the above two measures is taken, an increase in processing overhead for retransmission of discarded packets tends to be a problem.
  • An increase in overhead is, for example, an increase in chip size or an increase in processing time. Therefore, in NoC, the latter treatment is easily taken.
  • Patent Document 1 In the technique disclosed in Patent Document 1, the latter measure is taken. At this time, Patent Document 1 describes that the above virtual channel is used to prevent data transfer in other communications from being delayed.
  • the partition boundary is a reference for the boundary between a plurality of applications. Therefore, in order to maintain the above independence, it is necessary to suppress interference between a plurality of partitions.
  • Patent Document 1 describes a method of introducing a virtual channel. However, as long as communication between nodes belonging to the same partition and communication between nodes belonging to different partitions are not distinguished in the router, they are still likely to influence each other.
  • one communication tends to affect the other communication. Thereby, depending on the communication status of one communication, the communication speed of the other communication may be reduced.
  • the transfer function of the router is occupied due to unnecessary packets.
  • hardware resources in the router on the path until the packet is discarded are continuously used. That is, the hardware resource cannot be used for other communications, and the communication speed may be reduced.
  • unauthorized communication occurs in an application executed in one partition, the data of the application executed in another partition may be leaked or altered by the unauthorized communication.
  • Examples of unauthorized communication include those that occur due to application defects and those that are intentionally generated by a malicious person.
  • Patent Document 1 when the technique disclosed in Patent Document 1 is used, there is a possibility of a decrease in communication speed, data leakage, and alteration. Accordingly, in the on-chip parallel processing system, there is a problem that each of the plurality of applications cannot operate while stably satisfying a predetermined performance.
  • An object of the present invention is to provide an on-chip parallel processing system and a communication method that allow each of a plurality of applications to operate while stably satisfying a predetermined performance.
  • the on-chip parallel processing system of the present invention provides: A plurality of routers and a plurality of nodes are arranged on a chip, each of the plurality of nodes belongs to one of a plurality of partitions obtained by dividing the chip into a plurality of regions, and each of the plurality of nodes is the plurality of the plurality of nodes.
  • Each of the plurality of routers is connected to a router adjacent to the router via a communication medium, and the plurality of routers includes data transmitted and received by communication between the plurality of nodes.
  • An on-chip parallel processing system that relays packets, First and second communication channels are set in the communication medium, In the communication between nodes belonging to the same partition, each of the plurality of routers and each of the plurality of nodes transmits / receives a packet through the first communication channel, and communicates between nodes belonging to the partitions different from each other. Then, packets are transmitted and received through the second communication channel.
  • the communication method of the present invention comprises: A plurality of routers and a plurality of nodes are arranged on a chip, each of the plurality of nodes belongs to one of a plurality of partitions obtained by dividing the chip into a plurality of regions, and each of the plurality of nodes is the plurality of the plurality of nodes.
  • Each of the plurality of routers is connected to a router adjacent to the router via a communication medium, and the plurality of routers includes data transmitted and received by communication between the plurality of nodes.
  • a communication method in an on-chip parallel processing system that relays packets, In communication between nodes belonging to the same partition, each of the plurality of routers and each of the plurality of nodes, the first communication among the first and second communication channels set in the communication medium. In communication between nodes that belong to the partitions that are different from each other by transmitting and receiving packets on the channel, the communication has a transmission and reception process for transmitting and receiving packets on the second communication channel.
  • packets are transmitted and received on the first communication channel, and in communication between nodes belonging to different partitions, packets are transmitted and received on the second communication channel.
  • each of a plurality of applications can operate while stably satisfying a predetermined performance.
  • FIG. 2 is a block diagram illustrating an example of a configuration of a node illustrated in FIG. 1.
  • FIG. 4 is a block diagram illustrating an example of a configuration of a network interface unit illustrated in FIG. 3.
  • 5 is a flowchart for explaining an operation when the configuration register shown in FIG. 4 stores partition definition information.
  • 5 is a flowchart for explaining an operation when a node transmits a packet including data in the on-chip parallel processing system shown in FIGS.
  • FIGS. 5 is a flowchart for explaining an operation when a node receives a packet in the on-chip parallel processing system shown in FIGS. 5 is a flowchart for explaining an operation when a router receives a packet containing data in the on-chip parallel processing system shown in FIGS.
  • FIG. 1 is a block diagram showing a configuration of an embodiment of an on-chip parallel processing system of the present invention.
  • the on-chip parallel processing system 101 of the present embodiment includes a plurality of routers 102 and a plurality of nodes 103 as shown in FIG.
  • the plurality of routers 102 and the plurality of nodes 103 are arranged on one chip.
  • each of the plurality of nodes 103 is connected to one of the plurality of routers 102 by a link 104 which is a communication medium.
  • Each of the plurality of routers 102 is connected to the router 102 adjacent to the router 102 by a link 104.
  • Each of the plurality of routers 102 relays a packet including data transmitted / received by communication between the plurality of nodes 103.
  • connection router the router 102 to which each of the plurality of nodes 103 is connected is referred to as a connection router, and the node 103 connected to each of the plurality of routers 102 is referred to as a connection node.
  • a router 102 adjacent to each of the plurality of routers 102 is referred to as an adjacent router.
  • a plurality of partitions 10 are set by dividing the chip into a plurality of areas.
  • Each of the plurality of nodes 103 belongs to one of the plurality of partitions 10.
  • the link 104 two communication channels, a local channel that is a first communication channel and a global channel that is a second communication channel, are set.
  • the local channel and the global channel are logical virtual channels.
  • the number of communication channels set for the link 104 is two here, the number of communication channels set for the link 104 is not limited to two.
  • the local channel is used for relaying a packet including data transmitted / received by communication between nodes 103 belonging to the same partition 10.
  • the global channel is used for relaying packets including data transmitted and received by communication between nodes 103 belonging to different partitions 10.
  • FIG. 2 is a block diagram showing an example of the configuration of the router 102 shown in FIG.
  • the router 102 shown in FIG. 1 has a local buffer 201-1 as a first buffer, a global buffer 201-2 as a second buffer, a local buffer 201-1 and A packet input unit 204 connected to the global buffer 201-2, a packet output switch 202, and a routing control unit 203 are provided.
  • the local channel and the global channel, set for the link 104 since there are two communication channels, the local channel and the global channel, set for the link 104, two buffers, a local buffer 201-1 and a global buffer 201-2 are provided. Yes. However, as many buffers as the number of communication channels set in the link 104 are provided.
  • a plurality of packet input units 204, local buffers 201-1 and global buffers 201-2 are provided in a total number of adjacent routers and connection nodes. Note that FIG. 2 shows a case where the total number of adjacent routers and connection nodes is five as an example.
  • the packet input unit 204 receives a packet transmitted from the adjacent router or connection node via the link 104. Then, it is determined whether the received packet is a packet transmitted on the local channel or a packet transmitted on the global channel. As a result of the determination, if the received packet is a packet transmitted through the local channel, the packet input unit 204 outputs the received packet to the local buffer 201-1. On the other hand, if the result of determination is that the received packet is a packet transmitted on the global channel, the packet input unit 204 outputs the received packet to the global buffer 201-2.
  • the local buffer 201-1 accepts the packet output from the packet input unit 204, and temporarily stores the accepted packet.
  • the global buffer 201-2 receives the packet output from the packet input unit 204, and temporarily stores the received packet.
  • the routing control unit 203 outputs a packet transmission instruction for transmitting a packet to the packet output switch 202 based on a predetermined timing and a switching pattern.
  • the packet output switch 202 includes a plurality of output units (not shown) corresponding to the total number of adjacent routers and connection nodes. Then, according to the packet transmission instruction output from the routing control unit 203, the packet output switch 202 changes the packet temporarily stored in the local buffer 201-1 and the global buffer 201-2 according to the packet destination. Send to neighboring router or connecting node. At this time, the packet output switch 202 specifically transmits the packet from the output unit corresponding to the destination of the packet. At this time, the packet temporarily stored in the local buffer 201-1 is transmitted through the local channel, and the packet temporarily stored in the global buffer 201-2 is transmitted through the global channel.
  • each of the plurality of nodes 103 becomes a communication start point or end point, and communicates with a node 103 other than its own node. At that time, each of the plurality of nodes 103 transmits and receives a packet including data to and from the connection router.
  • FIG. 3 is a block diagram showing an example of the configuration of the node 103 shown in FIG.
  • the node 103 shown in FIG. 1 includes a network interface unit 301, processors 302-1 to 302-n as block units, a local memory 303, and a peripheral device interface 304. Note that these components are not necessarily common to the plurality of nodes 103. For example, a node 103 that does not include the peripheral device interface 304 and a node 103 that does not include the local memory 303 may exist.
  • the network interface unit 301, the processors 302-1 to 302-n, the local memory 303, and the peripheral device interface 304 are connected via a shared bus 305.
  • the processors 302-1 to 302-n, the local memory 303, and the peripheral device interface 304 generate data, and output the generated data to the network interface unit 301 via the shared bus 305. Further, the processors 302-1 to 302-n, the local memory 303, and the peripheral device interface 304 receive data output from the network interface unit 301 via the shared bus 305.
  • the network interface unit 301 receives data output from the processors 302-1 to 302-n constituting the block unit via the shared bus 305. Then, a packet including the received data is generated and transmitted to the connecting router. Further, the network interface unit 301 receives a packet transmitted from the connection router and extracts data included in the received packet. Then, the extracted data is output to the processors 302-1 to 302-n via the shared bus 305 according to the destination of the extracted data.
  • FIG. 4 is a block diagram showing an example of the configuration of the network interface unit 301 shown in FIG.
  • the network interface unit 301 shown in FIG. 3 includes a partition identification unit 401, a configuration register 402, a local packet generation unit 403, a global packet generation unit 404, a global packet analysis unit 405, A local packet analysis unit 406, switches 407 and 408, a data input / output unit 409, and a packet input / output unit 410 are provided.
  • the configuration register 402 receives partition definition information transmitted from a predetermined processor among the plurality of processors 302-1 to 302-n included in the predetermined node 103. Then, the received partition definition information is stored.
  • a processor that transmits partition definition information is referred to as a main processor.
  • partition definition information includes information for generating partition setting information, transmission permission information, and reception permission information, which will be described later.
  • FIG. 5 is a flowchart for explaining the operation when the configuration register 402 shown in FIG. 4 stores partition definition information. The operation shown in the flowchart of FIG. 5 is executed when the on-chip parallel processing system shown in FIGS. 1 to 4 is started.
  • the main processor executes the activation code of the system (step S1).
  • the main processor changes the bit value for permitting reading from the configuration register 402 and writing to the configuration register 402 by transmitting a signal to each of the plurality of nodes 103.
  • reading from the configuration register 402 and writing to the configuration register 402 from other than the main processor are prohibited (step S2).
  • the main processor transmits partition definition information set for each of the plurality of nodes 103 and stored in advance in a nonvolatile memory or the like to the configuration registers 402 of the plurality of nodes 103.
  • the configuration register 402 that has received the partition definition information transmitted from the main processor stores the received partition definition information (step S3).
  • step S4 the main processor returns the bit value changed in step S2 to the original value by transmitting a signal to each of the plurality of nodes 103.
  • the prohibition of reading from the configuration register 402 from other than the main processor and writing to the configuration register 402 is released (step S4).
  • the partition definition information is stored in the configuration register 402 by the operation as described above. As a result, even if the program executed in each of the plurality of nodes 103 is illegal, it is possible to avoid rewriting the partition definition information with incorrect contents.
  • a method for recognizing the main processor for example, a method in which a predetermined authentication code indicating that the packet is transmitted from the main processor is included in the header of a packet transmitted from the main processor.
  • the partition definition information when the partition definition information is changed during the operation of the on-chip parallel processing system 101, the partition definition information can be rewritten by performing the operations in steps S2 to S4 described above. That is, the partition definition information stored in the configuration register 402 can be changed even when the on-chip parallel processing system 101 is operating.
  • the time required for changing the partition definition information is made shorter than the time during which the operation of the on-chip parallel processing system 101 can be interrupted.
  • a method for realizing this for example, there is a method for allowing two partition definition information to be stored in the configuration register 402. In this method, it is possible to change the partition information in a very short time by acquiring the changed partition information while using one partition definition information.
  • the partition identification unit 401 generates partition setting information, transmission permission information, and reception permission information based on the partition definition information stored in the configuration register 402. Then, the partition identifying unit 401 outputs the generated partition setting information to the switch 407. Further, the partition identification unit 401 outputs the generated transmission permission information to the global packet generation unit 404. In addition, the partition identification unit 401 outputs the generated reception permission information to the global packet analysis unit 405.
  • the partition setting information is information indicating a node in the partition which is the node 103 belonging to the same partition as the own node.
  • the transmission permission information is information indicating a transmission permission node that is the node 103 that is permitted to transmit data from the own node.
  • the reception permission information is information indicating a reception permitted node that is the node 103 permitted as a transmission source of data received by the own node.
  • the data input / output unit 409 receives data output from the processors 302-1 to 302-n constituting the block unit via the shared bus 305, and outputs the received data to the switch 407.
  • the switch 407 receives data output from the data input / output unit 409. Then, the switch 407 includes the destination data 103 included in the received data, the destination information indicating the destination node 103 of the data, and the partition setting information output from the partition identification unit 401. It is determined whether it is an inner node. If the destination node 103 of the received data is an intra-partition node as a result of the determination, the switch 407 outputs the received data to the local packet generation unit 403. On the other hand, as a result of the determination, when the destination node 103 of the received data is not an intra-partition node, the switch 407 outputs the received data to the global packet generation unit 404.
  • the local packet generator 403 receives data output from the switch 407 and generates a packet including the received data. Then, the generated packet is transmitted from the packet input / output unit 410 to the connected router through the local channel.
  • the global packet generation unit 404 receives the data output from the switch 407. Then, the global packet generation unit 404 determines whether the destination node 103 of the received data is a transmission-permitted node from the destination information included in the received data and the transmission permission information output from the partition identification unit 401. judge. If the destination node 103 of the received data is a transmission-permitted node as a result of the determination, the global packet generation unit 404 generates a packet including the received data. Then, the generated packet is transmitted from the packet input / output unit 410 to the connection router through the global channel. On the other hand, if it is determined that the destination node 103 of the received data is not a transmission-permitted node, the global packet generation unit 404 discards the received data.
  • the packet input / output unit 410 receives a packet transmitted from the connected router via the link 104. Then, it is determined whether the received packet transmitted on the local channel is a packet transmitted on the global channel. As a result of the determination, if the received packet is a packet transmitted through the local channel, the packet input / output unit 410 outputs the received packet to the local packet analysis unit 406. On the other hand, as a result of the determination, if the received packet is a packet transmitted through the global channel, the received packet is output to the global packet analysis unit 405.
  • the local packet analysis unit 406 receives the packet output from the packet input / output unit 410. Then, the data included in the received packet is extracted, and the extracted data is output to the switch 408. As a result, the extracted data is output to the processors 302-1 to 302-n constituting the block unit.
  • the global packet analysis unit 405 receives the packet output from the packet input / output unit 410. Then, the global packet analysis unit 405 includes the transmission source information indicating the node 103 of the data transmission source included in the received packet and the reception permission information output from the partition identification unit 401, and It is determined whether the node 103 is a reception permitted node. As a result of the determination, if the node 103 that is the transmission source of the data is a reception-permitted node, the global packet analysis unit 405 extracts data included in the received packet. Then, the extracted data is output to the switch 408. As a result, the extracted data is output to the processors 302-1 to 302-n constituting the block unit. On the other hand, as a result of the determination, if the node 103 that is the transmission source of the data is not a reception permitted node, the global packet analysis unit 405 discards the data.
  • the partition definition information may include information for determining whether data can be transmitted / received for each of the processors 302-1 to 302-n included in the node 103. Good.
  • information for determining whether data can be transmitted / received for each task in the processors 302-1 to 302-n may be included in the partition definition information.
  • Information for determining whether data can be transmitted / received for each task is provided, for example, to an operation system (hereinafter referred to as an OS) in which the task is executed, so that transmission / reception is rejected by the OS. Is also possible.
  • an OS operation system
  • FIG. 6 is a flowchart for explaining an operation when the node 103 transmits a packet including data in the on-chip parallel processing system 101 shown in FIGS.
  • the processors 302-1 to 302-n constituting the block unit generate data to be transmitted to the other nodes 103 (step S21).
  • the processors 302-1 to 302-n and the like that generated the data output the generated data to the network interface unit 301 via the shared bus 305.
  • the data input / output unit 409 of the network interface unit 301 that has received the data output from the processors 302-1 to 302-n or the like via the shared bus 305 outputs the received data to the switch 407.
  • the switch 407 receives data output from the data input / output unit 409. Then, based on the destination information included in the received data and the partition setting information output from the partition identification unit 401, it is determined whether the destination node 103 of the received data is an intra-partition node (step S22).
  • step S22 if the destination node 103 of the received data is an intra-partition node, the switch 407 outputs the received data to the local packet generation unit 403.
  • the local packet generator 403 that has received the data output from the switch 407 generates a packet including the received data (step S23).
  • the local packet generation unit 403 transmits the generated packet from the packet input / output unit 410 to the connection router through the local channel (step S24).
  • step S22 if the destination node 103 of the received data is not an intra-partition node, the switch 407 outputs the received data to the global packet generation unit 404.
  • the global packet generation unit 404 receives the data output from the switch 407. Then, the global packet generation unit 404 determines whether the destination node 103 of the received data is a transmission-permitted node from the destination information included in the received data and the transmission permission information output from the partition identification unit 401. Determination is made (step S25).
  • step S25 if the destination node 103 of the received data is a transmission-permitted node, the global packet generation unit 404 generates a packet including the received data (step S26).
  • the global packet generation unit 404 transmits the generated packet from the packet input / output unit 410 to the connection router through the global channel (step S27).
  • step S25 if the destination node 103 of the received data is not a transmission-permitted node, the global packet generation unit 404 discards the received data (step S28).
  • the global packet generation unit 404 notifies the discard information indicating that the received data is discarded to a predetermined node among the plurality of nodes 103 (step S29).
  • the predetermined node is a node having a processor that manages data discard information in the entire on-chip parallel processing system 101. This processor may be the same as or different from the main processor described above.
  • a processor that manages the discard information is determined among the processors 302-1 to 302-n, and the discard information is managed for each of the plurality of nodes 103. Also good.
  • FIG. 7 is a flowchart for explaining the operation when the node 103 receives a packet in the on-chip parallel processing system 101 shown in FIGS.
  • the packet input / output unit 410 of the network interface unit 301 receives a packet transmitted from the connected router (step S41).
  • the packet input / output unit 410 determines whether the received packet transmitted on the local channel is a packet transmitted on the global channel (step S42).
  • step S42 when the received packet is a packet transmitted through the local channel, the packet input / output unit 410 outputs the received packet to the local packet analysis unit 406.
  • the local packet analysis unit 406 that has received the packet output from the packet input / output unit 410 extracts data included in the received packet (step S43).
  • the local packet analysis unit 406 outputs the extracted data to the switch 408.
  • the extracted data is output to the processors 302-1 to 302-n constituting the block unit (step S44).
  • step S42 when the received packet is transmitted through the global channel, the packet input / output unit 410 outputs the received packet to the global packet analysis unit 405.
  • the global packet analysis unit 405 receives the packet output from the packet input / output unit 410. Then, based on the transmission source information of the data included in the received packet and the reception permission information output from the partition identification unit 401, it is determined whether the node 103 that is the transmission source of the data included in the received packet is a reception permitted node. To do. (Step S45).
  • step S45 If the result of determination in step S45 is that the node 103 that is the transmission source of data contained in the received packet is a reception-permitted node, the global packet analysis unit 405 extracts data from the received packet (step S46).
  • the global packet analysis unit 405 outputs the extracted data to the switch 408. Thereby, the extracted data is output to the processors 302-1 to 302-n constituting the block unit (step S47).
  • step S45 if the node 103 that is the transmission source of the data included in the received packet is not a reception permitted node, the global packet analysis unit 405 discards the received packet (step S48).
  • the global packet analysis unit 405 notifies discard information indicating that the data included in the received packet is discarded to a predetermined node among the plurality of nodes 103 (step S49).
  • a processor that manages the discard information is determined among the processors 302-1 to 302-n, and the discard information is managed for each of the plurality of nodes 103. It may be.
  • FIG. 8 is a flowchart for explaining the operation when the router 102 receives a packet containing data in the on-chip parallel processing system 101 shown in FIGS.
  • the packet input unit 204 of the router 102 receives a packet transmitted from the adjacent router or connection node via the link 104 (step S61).
  • the packet input unit 204 determines whether the received bucket has been transmitted through the local channel or the global channel (step S62).
  • step S62 If the result of determination in step S62 is that the received packet is a packet transmitted on the local channel, the packet input unit 204 outputs the received packet to the local buffer 201-1.
  • the local buffer 201-1 that has received the packet output from the packet input unit 204 temporarily stores the received packet (step S63).
  • step S62 if the result of the determination in step S62 is that the received packet is a packet transmitted on the global channel, the packet input unit 204 outputs the received packet to the global buffer 201-2.
  • the global buffer 201-2 that has received the packet output from the packet input unit 204 temporarily stores the received packet (step S64).
  • the packet output switch 202 changes the packet temporarily stored in the local buffer 201-1 and the global buffer 201-2 according to the packet destination. From the output unit to the adjacent router or connection node.
  • the packet output switch 202 transmits the packet temporarily stored in the local buffer 201-1 through the local channel (step S65).
  • the packet output switch 202 transmits the packet temporarily stored in the global buffer 201-2 through the global channel (step S66).
  • packets are transmitted / received on the local channel, and in communication between nodes belonging to different partitions 10, packets are transmitted / received on the global channel.
  • each of a plurality of applications can operate while stably satisfying a predetermined performance.
  • each of the plurality of nodes 103 discards the data without transmitting it when the destination of the data is not a transmission-permitted node. Thereby, unnecessary packets are not relayed by the plurality of routers 102, and a decrease in the communication speed of the on-chip parallel processing system 101 can be suppressed. Thereby, the stable operation
  • the on-chip parallel processing system of the present invention can be applied to a semiconductor chip that mainly controls the entire system in applications such as a mobile phone and a portable multimedia playback device.
  • a semiconductor chip that performs main control in applications such as a personal computer and a server, and it can also be applied as an accelerator that executes partial processing in a subordinate position.
  • the main semiconductor chip and the subordinate semiconductor chip do not need to be physically separated, and the on-chip parallel processing system of the present invention can be constituted by a part on the semiconductor chip.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)

Abstract

Disclosed is an on-chip parallel processing system in which a plurality of routers and a plurality of nodes are arranged on a chip, each of the plurality of nodes belongs to any of a plurality of partitions that divide the chip into a plurality of regions, each of the plurality of nodes is connected to any one of the plurality of routers by way of a communication medium and each of the plurality of routers is connected to an adjacent router by way of the communication medium, and the plurality of routers relay packets including data that is transmitted and received in communication between the plurality of nodes. First and second communication channels are set in the communication medium. Each of the plurality of routers and each of the plurality of nodes transmit and receive packets in a first communication channel in communication between nodes belonging to the same partition, and transmit and receive packets in a second communication channel in communication between nodes belonging to mutually different partitions.

Description

オンチップ並列処理システム及び通信方法On-chip parallel processing system and communication method
 本発明は、複数のアプリケーションを並列処理するオンチップ並列処理システム及び通信方法に関する。 The present invention relates to an on-chip parallel processing system and a communication method for processing a plurality of applications in parallel.
 電子機器の処理能力の更なる向上への要求と、半導体製造プロセスの微細化に対する努力とにより、システムオンチップ上で動作するオンチップ並列処理システムの製品化が実現するのもそう遠くはない。オンチップ並列処理システムとは、数十個またはそれ以上の個数のプロセッサが1つのチップに配置されたものである。 It is not far from the realization of an on-chip parallel processing system that operates on a system-on-chip due to demands for further improvement in the processing capacity of electronic devices and efforts to miniaturize the semiconductor manufacturing process. An on-chip parallel processing system is a system in which several tens or more processors are arranged on one chip.
 これが実現されれば、電子機器の処理能力を向上させることができる。さらに、プロセッサの動作周波数を下げることによって動作電圧を下げることができれば、消費電力の低減にもつながる。なお、以降、システムオンチップのことをSoCと表記する。 If this is realized, the processing capability of the electronic device can be improved. Furthermore, if the operating voltage can be lowered by lowering the operating frequency of the processor, the power consumption can be reduced. Hereinafter, system-on-chip is referred to as SoC.
 現在、SoCではチップ上の接続方式としてバス方式が用いられている。SoCにおいてプロセッサは、メモリや周辺デバイスインターフェース等とバスによって接続されている。 Currently, the bus method is used as a connection method on a chip in SoC. In the SoC, the processor is connected to a memory, a peripheral device interface, and the like by a bus.
 ここで、オンチップ並列処理システムにおけるプロセッサの個数が増加すれば、増加した個数の分だけ、チップ上を流れるデータ量は増加することが予想される。 Here, if the number of processors in the on-chip parallel processing system increases, the amount of data flowing on the chip is expected to increase by the increased number.
 バス方式では、通信の送信側と受信側との間の通信経路が確立された後に、データが送受信される。そのため、処理時間のオーバーヘッドが大きい。つまり、バス方式は、チップ上に大量のデータが流れるオンチップ並列処理システムにおける接続方式としては適していない。 In the bus method, data is transmitted and received after a communication path is established between the communication transmission side and the reception side. Therefore, the processing time overhead is large. That is, the bus method is not suitable as a connection method in an on-chip parallel processing system in which a large amount of data flows on a chip.
 このバス方式に対して、次世代向けの接続方式として考えられているのがネットワーク・オン・チップ(以降、NoCと表記する)である。NoCのアーキテクチャでは、通信の送信側は、通信の受信側との間の通信経路の確立を待たずに、連続してデータを送信することができる。そのため、NoCは、チップ上に大量のデータが流れるオンチップ並列処理システムにおける接続方式として適している。 In contrast to this bus method, a network-on-chip (hereinafter referred to as NoC) is considered as a connection method for the next generation. In the NoC architecture, the communication transmission side can continuously transmit data without waiting for the establishment of a communication path with the communication reception side. Therefore, NoC is suitable as a connection method in an on-chip parallel processing system in which a large amount of data flows on a chip.
 NoCのアーキテクチャにおいてチップは、複数のノードと複数のルータとそれらを接続するリンクとから構成される。つまり、NoCにおいては、ネットワークを介して通信が行われ、このネットワークはルータ及びリンクを介してノードで終端する。 In the NoC architecture, a chip is composed of a plurality of nodes, a plurality of routers, and a link connecting them. That is, in NoC, communication is performed via a network, and this network terminates at a node via a router and a link.
 また、複数のノードのそれぞれは、プロセッサ、メモリ、周辺デバイスインターフェース等を1つ以上備えている。また、複数のノードのそれぞれは、ネットワーク内のルータとの間で通信を行うためのネットワークインターフェースを備えている。 Each of the plurality of nodes includes one or more processors, memories, peripheral device interfaces, and the like. Each of the plurality of nodes includes a network interface for performing communication with a router in the network.
 ネットワークインターフェースは、複数のノードのそれぞれから送信されるデータをパケット化してネットワークへ送信する。また、他のノードから送信されたパケットを受信し、受信したパケットに含まれるデータを抽出してノード内のブロック(プロセッサ、メモリ、周辺デバイスインターフェース等)へ出力する。 The network interface packetizes data transmitted from each of a plurality of nodes and transmits it to the network. In addition, it receives a packet transmitted from another node, extracts data contained in the received packet, and outputs it to a block (processor, memory, peripheral device interface, etc.) in the node.
 SoCでは既に、1つのチップ上に複数のアプリケーションが搭載され、それら複数のアプリケーションの並列処理が実現されている。 In SoC, a plurality of applications are already mounted on one chip, and parallel processing of the plurality of applications is realized.
 複数のアプリケーションの並列処理を実現するためには、複数のアプリケーション間の干渉を抑制する必要がある。具体的には、1つのチップ上に搭載される複数のアプリケーションの組合せによらずに、複数のアプリケーションそれぞれが所定の性能を安定的に満足しながら動作することが必要である。これは、チップを用いた製品の品質を維持するために必要な特性である。例えば、アプリケーションの不具合や悪意を持った者の行為により、あるアプリケーションが不正な動作を行った場合でも、その影響が他のアプリケーションに極力及ばないことが望ましい。 In order to realize parallel processing of multiple applications, it is necessary to suppress interference between multiple applications. Specifically, it is necessary for each of a plurality of applications to operate while stably satisfying a predetermined performance, regardless of a combination of a plurality of applications mounted on one chip. This is a characteristic necessary for maintaining the quality of a product using a chip. For example, even if an application performs an illegal operation due to an application defect or an act of a malicious person, it is desirable that the influence does not reach other applications as much as possible.
 複数のアプリケーション間の干渉を抑えるための方法としては、チップを複数の領域に分割した複数のパーティションを設けることが有効である。 It is effective to provide a plurality of partitions obtained by dividing a chip into a plurality of areas as a method for suppressing interference between a plurality of applications.
 NoCによるオンチップ並列処理システムにおいては、それぞれのパーティションには1つ以上のノードとそれらを接続するネットワークとが含まれる。このとき、1つのアプリケーションが複数のパーティションに跨って実行されることも可能であり、また、複数のアプリケーションが1つのパーティション内で実行されることも可能である。 In the on-chip parallel processing system by NoC, each partition includes one or more nodes and a network connecting them. At this time, one application can be executed across a plurality of partitions, and a plurality of applications can be executed in one partition.
 さらに、パーティションに求められる要件として、パーティションの境界を動的に変更可能であることが挙げられる。これは、SoCを用いたデバイスの設計に自由度をもたらすとともに、コストダウン効果をもたらす。 Furthermore, a requirement for partitions is that the boundaries of partitions can be changed dynamically. This provides a degree of freedom in designing a device using the SoC and a cost reduction effect.
 パーティションの境界を動的に変更可能であるということは、チップ上におけるプロセッサやメモリ等の物理的な配置とは関係なく、パーティションの境界を定めることができるということである。 The fact that the partition boundary can be changed dynamically means that the partition boundary can be determined regardless of the physical arrangement of the processor, memory, etc. on the chip.
 これにより、アプリケーションの設計中に、仕様変更や必要なハードウェアリソースの配分に変更が生じても、それらに対応することが可能となる。また、これを応用すれば同一のチップを複数の異なる製品に流用することも可能となる。 This makes it possible to cope with changes in specifications and changes in the allocation of necessary hardware resources during application design. If this is applied, the same chip can be used for a plurality of different products.
 このようなパーティションを実現できるオンチップ並列処理システムが例えば、特許文献1に開示されている。 For example, Patent Document 1 discloses an on-chip parallel processing system capable of realizing such a partition.
 特許文献1に開示されているオンチップ並列処理システムは、複数のノードがNoCによってオンチップで接続されたシステムである。ネットワークは、複数のパーティションに分割され、1つ以上のアプリケーションが1つ以上のパーティションで実行される。 The on-chip parallel processing system disclosed in Patent Document 1 is a system in which a plurality of nodes are connected on-chip by NoC. The network is divided into a plurality of partitions, and one or more applications are executed on the one or more partitions.
 特許文献1には、パーティションの画定にあたっては、独自の物理メモリ・アドレス空間への排他的アクセスがパーティション内のルータ及びIPブロックに割り当てられるだけで十分であると記載されている。 Patent Document 1 describes that in defining a partition, it is sufficient that exclusive access to a unique physical memory address space is allocated to routers and IP blocks in the partition.
 また、特許文献1には、以下のことが記載されている。 Patent Document 1 describes the following.
 パーティションの境界に沿っている各ルータは、そのルータで受信された通信パケットの発アドレスと宛先アドレスとを調べる。そして、そのパーティションの外側で生じたそのパーティション内のネットワーク位置へアドレス指定されているパケットを落とす。また、そのパーティション内で生じたそのパーティションの外側のネットワーク位置へアドレス指定されているパケットを落とす。 Each router along the partition boundary checks the source address and destination address of the communication packet received by the router. It then drops the addressed packet to a network location within that partition that occurred outside that partition. It also drops packets addressed to network locations outside that partition that occurred within that partition.
 また、特許文献1に開示されている技術では、仮想チャネルが設定されている。この仮想チャネルは、ネットワークインターフェースコントローラとルータとによって実現される。ネットワークインターフェースコントローラにより、ネットワークパケットフォーマット中の1フィールドに通信タイプが記録され、その後、ルータへ送信される。 Further, in the technique disclosed in Patent Document 1, a virtual channel is set. This virtual channel is realized by a network interface controller and a router. The communication type is recorded in one field in the network packet format by the network interface controller, and then transmitted to the router.
 また、特許文献1に開示されている技術では、ルータは、ルーティングロジックと仮想チャネル制御ロジックと仮想チャネル・バッファとを含んでいる。仮想チャネル制御ロジックでは、各ルータが受信したパケットに割り当てられた通信タイプを調べる。そして、そのルータに隣接するルータへ受信したパケットを送信するために、受信したパケットは、その通信タイプのパケットを送信するためのバッファである発信仮想チャネル・バッファに置かれる。 In the technique disclosed in Patent Document 1, the router includes a routing logic, a virtual channel control logic, and a virtual channel buffer. In the virtual channel control logic, the communication type assigned to the packet received by each router is examined. In order to transmit a received packet to a router adjacent to the router, the received packet is placed in an outgoing virtual channel buffer that is a buffer for transmitting a packet of the communication type.
 特許文献1において、通信タイプとして例示されているのは通信命令である。通信命令は具体的には、IPブロック間ネットワーク・アドレス・ベース・メッセージ、リクエスト・メッセージ、対リクエスト応答メッセージ、キャッシュに向けられた無効化メッセージ、メモリ・ロード・メッセージ、メモリ・ストア・メッセージ、対メモリ・ロード応答メッセージ等とされている。 In Patent Document 1, a communication command is exemplified as a communication type. Specifically, the communication command includes an IP inter-block network address base message, a request message, a request response message, an invalidation message directed to the cache, a memory load message, a memory store message, a pair Memory load response message.
 ここで、ルータが短時間に多数のパケットを受信した場合、ルータ内のバッファが一杯になり、それ以上のパケットをバッファに記憶させておくことができなくなる可能性がある。この場合、ルータ間におけるデータの転送が滞ってしまう。 Here, if the router receives a large number of packets in a short time, the buffer in the router may become full, and it may not be possible to store more packets in the buffer. In this case, data transfer between routers is delayed.
 このルータ間におけるデータの転送が滞った状態において、ルータに次のパケットが到着した場合、その滞ったパケットを破棄する処置か、パケットを破棄せずにルータ間におけるデータの転送のみを停止する処置のいずれかがとられるのが一般的である。 When the next packet arrives at the router in a state where the data transfer between the routers is delayed, either a measure to discard the delayed packet or a measure to stop only the data transfer between routers without discarding the packet One of the following is generally taken.
 NoCにおいては、上述した2つの処置のうち前者の処置をとってしまうと、破棄されたパケットの再送にかかる処理のオーバーヘッドの増加が問題となりやすい。オーバーヘッドの増加とは例えば、チップサイズの増加や処理時間の増加である。従って、NoCにおいては、後者の処置がとられやすい。 In NoC, if the former of the above two measures is taken, an increase in processing overhead for retransmission of discarded packets tends to be a problem. An increase in overhead is, for example, an increase in chip size or an increase in processing time. Therefore, in NoC, the latter treatment is easily taken.
 特許文献1に開示されている技術においても、後者の処置がとられている。このとき、他の通信におけるデータの転送が滞らないようにするため、上記の仮想チャネルが用いられると特許文献1には記載されている。 In the technique disclosed in Patent Document 1, the latter measure is taken. At this time, Patent Document 1 describes that the above virtual channel is used to prevent data transfer in other communications from being delayed.
特開2009-129447号公報JP 2009-129447 A
 上述したように、複数のアプリケーション間の干渉を抑制するためには、チップを複数のパーティションに分割することが有効である。但し、チップをパーティションに分割した場合、そのことに起因して、複数のアプリケーションそれぞれが所定の性能を安定的に満足しながら動作できなくなってしまうことを回避しなければならない。 As described above, in order to suppress interference between multiple applications, it is effective to divide the chip into multiple partitions. However, when the chip is divided into partitions, it must be avoided that a plurality of applications cannot operate while stably satisfying a predetermined performance.
 そのためには、複数のアプリケーションそれぞれの設計と、複数のアプリケーション間の設計とにおいて独立性を保つ必要がある。 For this purpose, it is necessary to maintain independence in the design of each of a plurality of applications and the design between the plurality of applications.
 ここで、パーティションの境界は、複数のアプリケーション間の境界の基準となるものである。従って、上記の独立性を保つためには、複数のパーティション間の干渉が抑制されている必要がある。 Here, the partition boundary is a reference for the boundary between a plurality of applications. Therefore, in order to maintain the above independence, it is necessary to suppress interference between a plurality of partitions.
 すなわち、同一のパーティションに属するノード間の通信と、相互に異なるパーティションに属するノード間の通信とにおいて、一方の通信がもう一方の通信に影響を及ぼしにくいことが望ましい。 In other words, it is desirable that one communication hardly affects the other communication in communication between nodes belonging to the same partition and communication between nodes belonging to different partitions.
 上述した特許文献1に開示されている技術では、同一のパーティションに属するノード間の通信か、相互に異なるパーティションに属するノード間の通信かにかかわらず、ルータ内において同一のリソースが使用される。そのため、ルータ内において、それらの通信間でのリソースの競合が生じやすい。 In the technique disclosed in Patent Document 1 described above, the same resource is used in the router regardless of communication between nodes belonging to the same partition or communication between nodes belonging to different partitions. For this reason, resource contention between these communications is likely to occur in the router.
 これを回避する手段として特許文献1には、仮想チャネルを導入する方法が記載されてはいる。しかし、同一のパーティションに属するノード間の通信と、相互に異なるパーティションに属するノード間の通信とがルータ内において区別されていない以上、依然として相互に影響を及ぼしやすいことに変わりはない。 As a means for avoiding this, Patent Document 1 describes a method of introducing a virtual channel. However, as long as communication between nodes belonging to the same partition and communication between nodes belonging to different partitions are not distinguished in the router, they are still likely to influence each other.
 一例として、2つの仮想チャネルをサポートするNoCを考えてみる。このとき、相互に異なるパーティションに属するノード間の通信のデータによってバッファが一杯になり、一方の仮想チャネルでのパケットの転送が一時的に不能となったとする。この場合でも、同じパーティションに属するノード間の通信は、もう一方の仮想チャネルで継続することが可能ではある。しかし、そのもう一方の仮想チャネルも、相互に異なるパーティションに属するノード間の通信のデータによって占有されていないという保証はない。 As an example, consider a NoC that supports two virtual channels. At this time, it is assumed that the buffer is filled with communication data between nodes belonging to different partitions, and packet transfer on one virtual channel is temporarily disabled. Even in this case, communication between nodes belonging to the same partition can be continued on the other virtual channel. However, there is no guarantee that the other virtual channel is not occupied by communication data between nodes belonging to different partitions.
 つまり、同一のパーティションに属するノード間の通信と、相互に異なるパーティションに属するノード間の通信とにおいて、一方の通信がもう一方の通信に影響を及ぼしやすい。これにより、一方の通信の通信状況により、もう一方の通信の通信速度が低下してしまう可能性がある。 That is, in communication between nodes belonging to the same partition and communication between nodes belonging to different partitions, one communication tends to affect the other communication. Thereby, depending on the communication status of one communication, the communication speed of the other communication may be reduced.
 また、上述した特許文献1に開示されている技術においては、不正なアドレスを指定されたパケットがあるノードから送信された場合、そのパケットは、幾つかのルータによって中継され、パーティションの境界のルータにたどり着くまで破棄されない。 In the technique disclosed in Patent Document 1 described above, when a packet with an invalid address is transmitted from a node, the packet is relayed by several routers, and the router at the partition boundary. It will not be destroyed until you get to.
 そのため、結果的に不要であるパケットのために、ルータの転送機能が占有されてしまう。特に、不正なアドレスを指定されたパケットが連続的に、あるノードから送信され続けた場合、そのパケットが破棄されるまでの経路上にあるルータ内のハードウェアリソースが連続して使用され続ける。つまり、そのハードウェアリソースを他の通信では使用できないこととなり、通信速度が低下してしまう可能性がある。 As a result, the transfer function of the router is occupied due to unnecessary packets. In particular, when a packet with an invalid address is continuously transmitted from a certain node, hardware resources in the router on the path until the packet is discarded are continuously used. That is, the hardware resource cannot be used for other communications, and the communication speed may be reduced.
 また、1つのパーティション内で実行されるアプリケーションにおいて不正な通信が発生した場合、その不正な通信により、他のパーティション内で実行されるアプリケーションのデータが漏洩したり、改ざんされたりする可能性がある。なお、不正な通信とは例えば、アプリケーションの不具合によって発生するものや、悪意を持った者が故意に発生させるものが考えられる。 In addition, if an unauthorized communication occurs in an application executed in one partition, the data of the application executed in another partition may be leaked or altered by the unauthorized communication. . Examples of unauthorized communication include those that occur due to application defects and those that are intentionally generated by a malicious person.
 このように、特許文献1に開示されている技術を用いた場合、通信速度の低下や、データの漏洩や改ざんの可能性がある。従って、オンチップ並列処理システムにおいて、複数のアプリケーションそれぞれが所定の性能を安定的に満足しながら動作することができないという問題点がある。 As described above, when the technique disclosed in Patent Document 1 is used, there is a possibility of a decrease in communication speed, data leakage, and alteration. Accordingly, in the on-chip parallel processing system, there is a problem that each of the plurality of applications cannot operate while stably satisfying a predetermined performance.
 本発明は、複数のアプリケーションそれぞれが所定の性能を安定的に満足しながら動作することを可能にするオンチップ並列処理システム及び通信方法を提供することを目的とする。 An object of the present invention is to provide an on-chip parallel processing system and a communication method that allow each of a plurality of applications to operate while stably satisfying a predetermined performance.
 上記目的を達成するために本発明のオンチップ並列処理システムは、
 複数のルータと複数のノードとがチップ上に配置され、前記複数のノードのそれぞれが、前記チップを複数の領域に分割した複数のパーティションのいずれかに属し、前記複数のノードのそれぞれが前記複数のルータのいずれかと、また、前記複数のルータのそれぞれが当該ルータに隣接するルータと通信媒体を介して接続され、前記複数のルータが、前記複数のノード間における通信で送受信されるデータを含むパケットを中継するオンチップ並列処理システムであって、
 前記通信媒体には、第1及び第2の通信チャネルが設定され、
 前記複数のルータのそれぞれ及び前記複数のノードのそれぞれは、同一の前記パーティションに属するノード間における通信では、前記第1の通信チャネルでパケットを送受信し、相互に異なる前記パーティションに属するノード間の通信では、前記第2の通信チャネルでパケットを送受信する。
In order to achieve the above object, the on-chip parallel processing system of the present invention provides:
A plurality of routers and a plurality of nodes are arranged on a chip, each of the plurality of nodes belongs to one of a plurality of partitions obtained by dividing the chip into a plurality of regions, and each of the plurality of nodes is the plurality of the plurality of nodes. Each of the plurality of routers is connected to a router adjacent to the router via a communication medium, and the plurality of routers includes data transmitted and received by communication between the plurality of nodes. An on-chip parallel processing system that relays packets,
First and second communication channels are set in the communication medium,
In the communication between nodes belonging to the same partition, each of the plurality of routers and each of the plurality of nodes transmits / receives a packet through the first communication channel, and communicates between nodes belonging to the partitions different from each other. Then, packets are transmitted and received through the second communication channel.
 上記目的を達成するために本発明の通信方法は、
 複数のルータと複数のノードとがチップ上に配置され、前記複数のノードのそれぞれが、前記チップを複数の領域に分割した複数のパーティションのいずれかに属し、前記複数のノードのそれぞれが前記複数のルータのいずれかと、また、前記複数のルータのそれぞれが当該ルータに隣接するルータと通信媒体を介して接続され、前記複数のルータが、前記複数のノード間における通信で送受信されるデータを含むパケットを中継するオンチップ並列処理システムにおける通信方法であって、
 前記複数のルータのそれぞれ及び前記複数のノードのそれぞれが、同一の前記パーティションに属するノード間における通信では、前記通信媒体に設定された第1及び第2の通信チャネルのうち、前記第1の通信チャネルでパケットを送受信し、相互に異なる前記パーティションに属するノード間の通信では、前記第2の通信チャネルでパケットを送受信する送受信処理を有する。
In order to achieve the above object, the communication method of the present invention comprises:
A plurality of routers and a plurality of nodes are arranged on a chip, each of the plurality of nodes belongs to one of a plurality of partitions obtained by dividing the chip into a plurality of regions, and each of the plurality of nodes is the plurality of the plurality of nodes. Each of the plurality of routers is connected to a router adjacent to the router via a communication medium, and the plurality of routers includes data transmitted and received by communication between the plurality of nodes. A communication method in an on-chip parallel processing system that relays packets,
In communication between nodes belonging to the same partition, each of the plurality of routers and each of the plurality of nodes, the first communication among the first and second communication channels set in the communication medium. In communication between nodes that belong to the partitions that are different from each other by transmitting and receiving packets on the channel, the communication has a transmission and reception process for transmitting and receiving packets on the second communication channel.
 本発明によれば、同一のパーティションに属するノード間における通信では、第1の通信チャネルでパケットが送受信され、相互に異なるパーティションに属するノード間における通信では、第2の通信チャネルでパケットが送受信される。 According to the present invention, in communication between nodes belonging to the same partition, packets are transmitted and received on the first communication channel, and in communication between nodes belonging to different partitions, packets are transmitted and received on the second communication channel. The
 これにより、通信速度の低下や、データの漏洩及び改ざんを抑制することができる。従って、オンチップ並列処理システムにおいて、複数のアプリケーションそれぞれが所定の性能を安定的に満足しながら動作することが可能となる。 This makes it possible to suppress a decrease in communication speed and data leakage and falsification. Therefore, in the on-chip parallel processing system, each of a plurality of applications can operate while stably satisfying a predetermined performance.
本発明のオンチップ並列処理システムの実施の一形態の構成を示すブロック図である。It is a block diagram which shows the structure of one Embodiment of the on-chip parallel processing system of this invention. 図1に示したルータの構成の一例を示すブロック図である。It is a block diagram which shows an example of a structure of the router shown in FIG. 図1に示したノードの構成の一例を示すブロック図である。FIG. 2 is a block diagram illustrating an example of a configuration of a node illustrated in FIG. 1. 図3に示したネットワークインターフェース部の構成の一例を示すブロック図である。FIG. 4 is a block diagram illustrating an example of a configuration of a network interface unit illustrated in FIG. 3. 図4に示したコンフィグレーションレジスタがパーティション定義情報を記憶するときの動作を説明するためのフローチャートである。5 is a flowchart for explaining an operation when the configuration register shown in FIG. 4 stores partition definition information. 図1~図4に示したオンチップ並列処理システムにおいて、ノードがデータを含むパケットを送信するときの動作を説明するためのフローチャートである。5 is a flowchart for explaining an operation when a node transmits a packet including data in the on-chip parallel processing system shown in FIGS. 図1~図4に示したオンチップ並列処理システムにおいて、ノードがパケットを受信したときの動作を説明するためのフローチャートである。5 is a flowchart for explaining an operation when a node receives a packet in the on-chip parallel processing system shown in FIGS. 図1~図4に示したオンチップ並列処理システムにおいて、ルータがデータを含むパケットを受信したときの動作を説明するためのフローチャートである。5 is a flowchart for explaining an operation when a router receives a packet containing data in the on-chip parallel processing system shown in FIGS.
 以下に、本発明の実施の形態について図面を参照して説明する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings.
 図1は、本発明のオンチップ並列処理システムの実施の一形態の構成を示すブロック図である。 FIG. 1 is a block diagram showing a configuration of an embodiment of an on-chip parallel processing system of the present invention.
 本実施形態のオンチップ並列処理システム101は図1に示すように、複数のルータ102と、複数のノード103とを備えている。そして、複数のルータ102と複数のノード103とは1つのチップ上に配置されている。 The on-chip parallel processing system 101 of the present embodiment includes a plurality of routers 102 and a plurality of nodes 103 as shown in FIG. The plurality of routers 102 and the plurality of nodes 103 are arranged on one chip.
 また、図1に示すように複数のノード103のそれぞれは、複数のルータ102のいずれかと通信媒体であるリンク104によって接続されている。また、複数のルータ102のそれぞれは、そのルータ102に隣接するルータ102とリンク104によって接続されている。そして、複数のルータ102のそれぞれは、複数のノード103間における通信で送受信されるデータを含むパケットを中継する。 Further, as shown in FIG. 1, each of the plurality of nodes 103 is connected to one of the plurality of routers 102 by a link 104 which is a communication medium. Each of the plurality of routers 102 is connected to the router 102 adjacent to the router 102 by a link 104. Each of the plurality of routers 102 relays a packet including data transmitted / received by communication between the plurality of nodes 103.
 以降、複数のノード103のそれぞれが接続されているルータ102のことを接続ルータといい、複数のルータ102のそれぞれに接続されているノード103のことを接続ノードという。また、複数のルータ102のそれぞれに隣接するルータ102のことを隣接ルータという。 Hereinafter, the router 102 to which each of the plurality of nodes 103 is connected is referred to as a connection router, and the node 103 connected to each of the plurality of routers 102 is referred to as a connection node. A router 102 adjacent to each of the plurality of routers 102 is referred to as an adjacent router.
 また、本実施形態のオンチップ並列処理システム101においては図1に示すように、チップを複数の領域に分割した複数のパーティション10が設定されている。そして、複数のノード103のそれぞれは、複数のパーティション10のいずれかに属している。 Further, in the on-chip parallel processing system 101 of the present embodiment, as shown in FIG. 1, a plurality of partitions 10 are set by dividing the chip into a plurality of areas. Each of the plurality of nodes 103 belongs to one of the plurality of partitions 10.
 リンク104には、第1の通信チャネルであるローカルチャネルと、第2の通信チャネルであるグローバルチャネルとの2つの通信チャネルが設定されている。なお、ローカルチャネル及びグローバルチャネルは、論理的な仮想チャネルである。また、ここでは、リンク104に設定される通信チャネルの数を2つとしているが、リンク104に設定される通信チャネルの数は2つに限定されるものではない。 In the link 104, two communication channels, a local channel that is a first communication channel and a global channel that is a second communication channel, are set. The local channel and the global channel are logical virtual channels. Although the number of communication channels set for the link 104 is two here, the number of communication channels set for the link 104 is not limited to two.
 ローカルチャネルは、同じパーティション10に属するノード103間における通信で送受信されるデータを含むパケットの中継に用いられる。一方、グローバルチャネルは、相互に異なるパーティション10に属するノード103間における通信で送受信されるデータを含むパケットの中継に用いられる。 The local channel is used for relaying a packet including data transmitted / received by communication between nodes 103 belonging to the same partition 10. On the other hand, the global channel is used for relaying packets including data transmitted and received by communication between nodes 103 belonging to different partitions 10.
 図2は、図1に示したルータ102の構成の一例を示すブロック図である。 FIG. 2 is a block diagram showing an example of the configuration of the router 102 shown in FIG.
 図1に示したルータ102は図2に示すように、第1のバッファであるローカル用バッファ201-1と、第2のバッファであるグローバル用バッファ201-2と、ローカル用バッファ201-1及びグローバル用バッファ201-2と接続されたパケット入力部204と、パケット出力スイッチ202と、ルーティング制御部203とを備えている。 As shown in FIG. 2, the router 102 shown in FIG. 1 has a local buffer 201-1 as a first buffer, a global buffer 201-2 as a second buffer, a local buffer 201-1 and A packet input unit 204 connected to the global buffer 201-2, a packet output switch 202, and a routing control unit 203 are provided.
 なお、ここでは、リンク104に設定されている通信チャネルがローカルチャネルとグローバルチャネルとの2つであるため、ローカル用バッファ201-1とグローバル用バッファ201-2との2つのバッファが設けられている。但し、バッファは、少なくともリンク104に設定された通信チャネルの数の分だけ設けられる。 Here, since there are two communication channels, the local channel and the global channel, set for the link 104, two buffers, a local buffer 201-1 and a global buffer 201-2 are provided. Yes. However, as many buffers as the number of communication channels set in the link 104 are provided.
 また、パケット入力部204、ローカル用バッファ201-1及びグローバル用バッファ201-2は、隣接ルータと接続ノードとを合計した数だけ複数設けられている。なお、図2では一例として、隣接ルータと接続ノードとの合計数が5つである場合を示している。 Further, a plurality of packet input units 204, local buffers 201-1 and global buffers 201-2 are provided in a total number of adjacent routers and connection nodes. Note that FIG. 2 shows a case where the total number of adjacent routers and connection nodes is five as an example.
 パケット入力部204は、隣接ルータまたは接続ノードからリンク104を介して送信されてきたパケットを受信する。そして、受信したパケットがローカルチャネルで送信されてきたパケットか、グローバルチャネルで送信されてきたパケットかを判定する。判定の結果、受信したパケットがローカルチャネルで送信されてきたパケットである場合、パケット入力部204は、受信したパケットをローカル用バッファ201-1へ出力する。一方、判定の結果、受信したパケットがグローバルチャネルで送信されてきたパケットである場合には、パケット入力部204は、受信したパケットをグローバル用バッファ201-2へ出力する。 The packet input unit 204 receives a packet transmitted from the adjacent router or connection node via the link 104. Then, it is determined whether the received packet is a packet transmitted on the local channel or a packet transmitted on the global channel. As a result of the determination, if the received packet is a packet transmitted through the local channel, the packet input unit 204 outputs the received packet to the local buffer 201-1. On the other hand, if the result of determination is that the received packet is a packet transmitted on the global channel, the packet input unit 204 outputs the received packet to the global buffer 201-2.
 ローカル用バッファ201-1は、パケット入力部204から出力されたパケットを受け付け、受け付けたパケットを一時的に記憶する。 The local buffer 201-1 accepts the packet output from the packet input unit 204, and temporarily stores the accepted packet.
 グローバル用バッファ201-2は、パケット入力部204から出力されたパケットを受け付け、受け付けたパケットを一時的に記憶する。 The global buffer 201-2 receives the packet output from the packet input unit 204, and temporarily stores the received packet.
 ルーティング制御部203は、予め決められたタイミングと切り替えパターンとに基づき、パケットを送信するためのパケット送信指示をパケット出力スイッチ202へ出力する。 The routing control unit 203 outputs a packet transmission instruction for transmitting a packet to the packet output switch 202 based on a predetermined timing and a switching pattern.
 パケット出力スイッチ202は、隣接ルータと接続ノードとの合計した数だけの複数の出力部(不図示)を備えている。そして、パケット出力スイッチ202は、ルーティング制御部203から出力されたパケット送信指示に従い、ローカル用バッファ201-1及びグローバル用バッファ201-2に一時的に記憶されたパケットを、パケットの宛先に応じて隣接ルータまたは接続ノードへ送信する。このとき、パケット出力スイッチ202は具体的には、パケットの宛先に応じた出力部からパケットを送信する。また、このとき、ローカル用バッファ201-1に一時的に記憶されたパケットは、ローカルチャネルで送信され、グローバル用バッファ201-2に一時的に記憶されたパケットは、グローバルチャネルで送信される。 The packet output switch 202 includes a plurality of output units (not shown) corresponding to the total number of adjacent routers and connection nodes. Then, according to the packet transmission instruction output from the routing control unit 203, the packet output switch 202 changes the packet temporarily stored in the local buffer 201-1 and the global buffer 201-2 according to the packet destination. Send to neighboring router or connecting node. At this time, the packet output switch 202 specifically transmits the packet from the output unit corresponding to the destination of the packet. At this time, the packet temporarily stored in the local buffer 201-1 is transmitted through the local channel, and the packet temporarily stored in the global buffer 201-2 is transmitted through the global channel.
 再度、図1を参照すると、複数のノード103のそれぞれは、通信の始点または終点となり、自ノード以外のノード103と通信を行う。その際、複数のノード103のそれぞれは、接続ルータとの間でデータを含むパケットの送受信を行う。 Referring to FIG. 1 again, each of the plurality of nodes 103 becomes a communication start point or end point, and communicates with a node 103 other than its own node. At that time, each of the plurality of nodes 103 transmits and receives a packet including data to and from the connection router.
 図3は、図1に示したノード103の構成の一例を示すブロック図である。 FIG. 3 is a block diagram showing an example of the configuration of the node 103 shown in FIG.
 図1に示したノード103は図3に示すように、ネットワークインターフェース部301と、ブロック部であるプロセッサ302-1~302-n、ローカルメモリ303及び周辺デバイスインターフェース304とを備えている。なお、これらの構成要素は、複数のノード103において必ずしも共通でなくてもよい。例えば、周辺デバイスインターフェース304を備えていないノード103や、ローカルメモリ303を備えていないノード103が存在していてもよい。 As shown in FIG. 3, the node 103 shown in FIG. 1 includes a network interface unit 301, processors 302-1 to 302-n as block units, a local memory 303, and a peripheral device interface 304. Note that these components are not necessarily common to the plurality of nodes 103. For example, a node 103 that does not include the peripheral device interface 304 and a node 103 that does not include the local memory 303 may exist.
 また、ネットワークインターフェース部301と、プロセッサ302-1~302-nと、ローカルメモリ303と、周辺デバイスインターフェース304とは、共有バス305を介して接続されている。 In addition, the network interface unit 301, the processors 302-1 to 302-n, the local memory 303, and the peripheral device interface 304 are connected via a shared bus 305.
 プロセッサ302-1~302-n、ローカルメモリ303及び周辺デバイスインターフェース304は、データを生成し、生成されたデータを共有バス305を介してネットワークインターフェース部301へ出力する。また、プロセッサ302-1~302-n、ローカルメモリ303及び周辺デバイスインターフェース304は、ネットワークインターフェース部301から出力されたデータを共有バス305を介して受け付ける。 The processors 302-1 to 302-n, the local memory 303, and the peripheral device interface 304 generate data, and output the generated data to the network interface unit 301 via the shared bus 305. Further, the processors 302-1 to 302-n, the local memory 303, and the peripheral device interface 304 receive data output from the network interface unit 301 via the shared bus 305.
 ネットワークインターフェース部301は、ブロック部を構成するプロセッサ302-1~302-n等から出力されたデータを共有バス305を介して受け付ける。そして、受け付けたデータを含むパケットを生成し、接続ルータへ送信する。また、ネットワークインターフェース部301は、接続ルータから送信されたパケットを受信し、受信したパケットに含まれるデータを抽出する。そして、抽出したデータの宛先に応じ、プロセッサ302-1~302-n等へ抽出したデータを共有バス305を介して出力する。 The network interface unit 301 receives data output from the processors 302-1 to 302-n constituting the block unit via the shared bus 305. Then, a packet including the received data is generated and transmitted to the connecting router. Further, the network interface unit 301 receives a packet transmitted from the connection router and extracts data included in the received packet. Then, the extracted data is output to the processors 302-1 to 302-n via the shared bus 305 according to the destination of the extracted data.
 図4は、図3に示したネットワークインターフェース部301の構成の一例を示すブロック図である。 FIG. 4 is a block diagram showing an example of the configuration of the network interface unit 301 shown in FIG.
 図3に示したネットワークインターフェース部301は図4に示すように、パーティション識別部401と、コンフィグレーションレジスタ402と、ローカルパケット生成部403と、グローバルパケット生成部404と、グローバルパケット解析部405と、ローカルパケット解析部406と、スイッチ407,408と、データ入出力部409と、パケット入出力部410とを備えている。 As shown in FIG. 4, the network interface unit 301 shown in FIG. 3 includes a partition identification unit 401, a configuration register 402, a local packet generation unit 403, a global packet generation unit 404, a global packet analysis unit 405, A local packet analysis unit 406, switches 407 and 408, a data input / output unit 409, and a packet input / output unit 410 are provided.
 コンフィグレーションレジスタ402は、予め決められたノード103が有する複数のプロセッサ302-1~302-nのうち、予め決められたプロセッサから送信されたパーティション定義情報を受信する。そして、受信したパーティション定義情報を記憶する。以降、パーティション定義情報を送信するプロセッサのことをメインプロセッサという。 The configuration register 402 receives partition definition information transmitted from a predetermined processor among the plurality of processors 302-1 to 302-n included in the predetermined node 103. Then, the received partition definition information is stored. Hereinafter, a processor that transmits partition definition information is referred to as a main processor.
 なお、パーティション定義情報には、後述するパーティション設定情報、送信許可情報及び受信許可情報を生成するための情報が含まれている。 Note that the partition definition information includes information for generating partition setting information, transmission permission information, and reception permission information, which will be described later.
 ここで、図4に示したコンフィグレーションレジスタ402がパーティション定義情報を記憶するときの動作について説明する。 Here, the operation when the configuration register 402 shown in FIG. 4 stores partition definition information will be described.
 図5は、図4に示したコンフィグレーションレジスタ402がパーティション定義情報を記憶するときの動作を説明するためのフローチャートである。なお、図5のフローチャートに示す動作は、図1~図4に示したオンチップ並列処理システムが起動されたときに実行される。 FIG. 5 is a flowchart for explaining the operation when the configuration register 402 shown in FIG. 4 stores partition definition information. The operation shown in the flowchart of FIG. 5 is executed when the on-chip parallel processing system shown in FIGS. 1 to 4 is started.
 図1~図4に示したオンチップ並列処理システムが起動されると、まず、メインプロセッサは、システムの起動コードを実行する(ステップS1)。 When the on-chip parallel processing system shown in FIGS. 1 to 4 is activated, first, the main processor executes the activation code of the system (step S1).
 次に、メインプロセッサは、複数のノード103のそれぞれへ信号を送信することにより、コンフィグレーションレジスタ402からの読み出しとコンフィグレーションレジスタ402への書き込みとを許可するためのビット値を変更する。これにより、メインプロセッサ以外からのコンフィグレーションレジスタ402から読み出しと、コンフィグレーションレジスタ402への書き込みとが禁止される(ステップS2)。 Next, the main processor changes the bit value for permitting reading from the configuration register 402 and writing to the configuration register 402 by transmitting a signal to each of the plurality of nodes 103. As a result, reading from the configuration register 402 and writing to the configuration register 402 from other than the main processor are prohibited (step S2).
 次に、メインプロセッサは、複数のノード103毎に設定され、不揮発メモリ等に予め記憶されているパーティション定義情報を、複数のノード103のそれぞれのコンフィグレーションレジスタ402へ送信する。 Next, the main processor transmits partition definition information set for each of the plurality of nodes 103 and stored in advance in a nonvolatile memory or the like to the configuration registers 402 of the plurality of nodes 103.
 メインプロセッサから送信されたパーティション定義情報を受信したコンフィグレーションレジスタ402は、受信したパーティション定義情報を記憶する(ステップS3)。 The configuration register 402 that has received the partition definition information transmitted from the main processor stores the received partition definition information (step S3).
 そして、メインプロセッサは、複数のノード103のそれぞれへ信号を送信することにより、ステップS2にて変更したビット値を元の値に戻す。これにより、メインプロセッサ以外からのコンフィグレーションレジスタ402からの読み出しと、コンフィグレーションレジスタ402への書き込みとの禁止が解除される(ステップS4)。 Then, the main processor returns the bit value changed in step S2 to the original value by transmitting a signal to each of the plurality of nodes 103. As a result, the prohibition of reading from the configuration register 402 from other than the main processor and writing to the configuration register 402 is released (step S4).
 上述したような動作によってコンフィグレーションレジスタ402にパーティション定義情報を記憶させる。これにより、複数のノード103のそれぞれにおいて実行されるプログラムに不正があったとしても、パーティション定義情報が誤った内容に書き換えられることを回避することができる。なお、メインプロセッサを認識する方法としては例えば、メインプロセッサから送信されるパケットのヘッダに、メインプロセッサから送信されたことを示す所定の認証コードを含めておくというような方法が考えられる。 The partition definition information is stored in the configuration register 402 by the operation as described above. As a result, even if the program executed in each of the plurality of nodes 103 is illegal, it is possible to avoid rewriting the partition definition information with incorrect contents. As a method for recognizing the main processor, for example, a method in which a predetermined authentication code indicating that the packet is transmitted from the main processor is included in the header of a packet transmitted from the main processor.
 また、オンチップ並列処理システム101の動作中に、パーティション定義情報が変更された場合には、上述したステップS2~S4の動作を行うことにより、パーティション定義情報を書き換えることが可能である。つまり、オンチップ並列処理システム101が動作している際にも、コンフィグレーションレジスタ402に記憶されたパーティション定義情報を変更することが可能である。 Further, when the partition definition information is changed during the operation of the on-chip parallel processing system 101, the partition definition information can be rewritten by performing the operations in steps S2 to S4 described above. That is, the partition definition information stored in the configuration register 402 can be changed even when the on-chip parallel processing system 101 is operating.
 このとき、パーティション定義情報の変更に要する時間が、オンチップ並列処理システム101の動作を中断できる時間よりも短くなるようにする。これを実現するための方法としては例えば、2つのパーティション定義情報をコンフィグレーションレジスタ402に記憶することができるようにする方法がある。この方法では、1つのパーティション定義情報を使用している間に、変更後のパーティション情報を取得しておくことにより、非常に短い時間でパーティション情報の変更を行うことが可能となる。 At this time, the time required for changing the partition definition information is made shorter than the time during which the operation of the on-chip parallel processing system 101 can be interrupted. As a method for realizing this, for example, there is a method for allowing two partition definition information to be stored in the configuration register 402. In this method, it is possible to change the partition information in a very short time by acquiring the changed partition information while using one partition definition information.
 再度、図4を参照すると、パーティション識別部401は、コンフィグレーションレジスタ402に記憶されたパーティション定義情報に基づき、パーティション設定情報、送信許可情報及び受信許可情報を生成する。そして、パーティション識別部401は、生成したパーティション設定情報をスイッチ407へ出力する。また、パーティション識別部401は、生成した送信許可情報をグローバルパケット生成部404へ出力する。また、パーティション識別部401は、生成した受信許可情報をグローバルパケット解析部405へ出力する。 Referring to FIG. 4 again, the partition identification unit 401 generates partition setting information, transmission permission information, and reception permission information based on the partition definition information stored in the configuration register 402. Then, the partition identifying unit 401 outputs the generated partition setting information to the switch 407. Further, the partition identification unit 401 outputs the generated transmission permission information to the global packet generation unit 404. In addition, the partition identification unit 401 outputs the generated reception permission information to the global packet analysis unit 405.
 ここで、パーティション設定情報とは、自ノードと同じパーティションに属するノード103であるパーティション内ノードを示す情報である。また、送信許可情報とは、自ノードからのデータの送信が許可されたノード103である送信許可ノードを示す情報である。また、受信許可情報とは、自ノードが受信するデータの送信元として許可されたノード103である受信許可ノードを示す情報である。 Here, the partition setting information is information indicating a node in the partition which is the node 103 belonging to the same partition as the own node. The transmission permission information is information indicating a transmission permission node that is the node 103 that is permitted to transmit data from the own node. The reception permission information is information indicating a reception permitted node that is the node 103 permitted as a transmission source of data received by the own node.
 データ入出力部409は、ブロック部を構成するプロセッサ302-1~302-n等から出力されたデータを共有バス305を介して受け付け、受け付けたデータをスイッチ407へ出力する。 The data input / output unit 409 receives data output from the processors 302-1 to 302-n constituting the block unit via the shared bus 305, and outputs the received data to the switch 407.
 スイッチ407は、データ入出力部409から出力されたデータを受け付ける。そして、スイッチ407は、受け付けたデータに含まれ、そのデータの宛先のノード103を示す宛先情報と、パーティション識別部401から出力されたパーティション設定情報とから、受け付けたデータの宛先のノード103がパーティション内ノードであるかどうかを判定する。そして、判定の結果、受け付けたデータの宛先のノード103がパーティション内ノードである場合、スイッチ407は、受け付けたデータをローカルパケット生成部403へ出力する。一方、判定の結果、受け付けたデータの宛先のノード103がパーティション内ノードでない場合には、スイッチ407は、受け付けたデータをグローバルパケット生成部404へ出力する。 The switch 407 receives data output from the data input / output unit 409. Then, the switch 407 includes the destination data 103 included in the received data, the destination information indicating the destination node 103 of the data, and the partition setting information output from the partition identification unit 401. It is determined whether it is an inner node. If the destination node 103 of the received data is an intra-partition node as a result of the determination, the switch 407 outputs the received data to the local packet generation unit 403. On the other hand, as a result of the determination, when the destination node 103 of the received data is not an intra-partition node, the switch 407 outputs the received data to the global packet generation unit 404.
 ローカルパケット生成部403は、スイッチ407から出力されたデータを受け付け、受け付けたデータを含むパケットを生成する。そして、生成されたパケットを、パケット入出力部410からローカルチャネルで接続ルータへ送信する。 The local packet generator 403 receives data output from the switch 407 and generates a packet including the received data. Then, the generated packet is transmitted from the packet input / output unit 410 to the connected router through the local channel.
 グローバルパケット生成部404は、スイッチ407から出力されたデータを受け付ける。そして、グローバルパケット生成部404は、受け付けたデータに含まれる宛先情報と、パーティション識別部401から出力された送信許可情報とから、受け付けたデータの宛先のノード103が送信許可ノードであるかどうかを判定する。そして、判定の結果、受け付けたデータの宛先のノード103が送信許可ノードである場合、グローバルパケット生成部404は、受け付けたデータを含むパケットを生成する。そして、生成されたパケットを、パケット入出力部410からグローバルチャネルで接続ルータへ送信する。一方、判定の結果、受け付けたデータの宛先のノード103が送信許可ノードでない場合には、グローバルパケット生成部404は、受け付けたデータを破棄する。 The global packet generation unit 404 receives the data output from the switch 407. Then, the global packet generation unit 404 determines whether the destination node 103 of the received data is a transmission-permitted node from the destination information included in the received data and the transmission permission information output from the partition identification unit 401. judge. If the destination node 103 of the received data is a transmission-permitted node as a result of the determination, the global packet generation unit 404 generates a packet including the received data. Then, the generated packet is transmitted from the packet input / output unit 410 to the connection router through the global channel. On the other hand, if it is determined that the destination node 103 of the received data is not a transmission-permitted node, the global packet generation unit 404 discards the received data.
 パケット入出力部410は、接続ルータからリンク104を介して送信されてきたパケットを受信する。そして、受信したパケットがローカルチャネルで送信されてきたパケットが、グローバルチャネルで送信されてきたパケットかを判定する。判定の結果、受信したパケットがローカルチャネルで送信されてきたパケットである場合、パケット入出力部410は、受信したパケットをローカルパケット解析部406へ出力する。一方、判定の結果、受信したパケットがグローバルチャネルで送信されてきたパケットである場合には、受信したパケットをグローバルパケット解析部405へ出力する。 The packet input / output unit 410 receives a packet transmitted from the connected router via the link 104. Then, it is determined whether the received packet transmitted on the local channel is a packet transmitted on the global channel. As a result of the determination, if the received packet is a packet transmitted through the local channel, the packet input / output unit 410 outputs the received packet to the local packet analysis unit 406. On the other hand, as a result of the determination, if the received packet is a packet transmitted through the global channel, the received packet is output to the global packet analysis unit 405.
 ローカルパケット解析部406は、パケット入出力部410から出力されたパケットを受け付ける。そして、受け付けたパケットに含まれるデータを抽出し、抽出されたデータをスイッチ408へ出力する。これにより、抽出されたデータは、ブロック部を構成するプロセッサ302-1~302-n等へ出力される。 The local packet analysis unit 406 receives the packet output from the packet input / output unit 410. Then, the data included in the received packet is extracted, and the extracted data is output to the switch 408. As a result, the extracted data is output to the processors 302-1 to 302-n constituting the block unit.
 グローバルパケット解析部405は、パケット入出力部410から出力されたパケットを受け付ける。そして、グローバルパケット解析部405は、受け付けたパケットに含まれ、データの送信元のノード103を示す送信元情報と、パーティション識別部401から出力された受信許可情報とから、そのデータの送信元のノード103が受信許可ノードであるかどうかを判定する。そして、判定の結果、そのデータの送信元のノード103が受信許可ノードである場合、グローバルパケット解析部405は、受け付けたパケットに含まれるデータを抽出する。そして、抽出されたデータをスイッチ408へ出力する。これにより、抽出されたデータは、ブロック部を構成するプロセッサ302-1~302-n等へ出力される。一方、判定の結果、そのデータの送信元のノード103が受信許可ノードでない場合には、グローバルパケット解析部405は、そのデータを破棄する。 The global packet analysis unit 405 receives the packet output from the packet input / output unit 410. Then, the global packet analysis unit 405 includes the transmission source information indicating the node 103 of the data transmission source included in the received packet and the reception permission information output from the partition identification unit 401, and It is determined whether the node 103 is a reception permitted node. As a result of the determination, if the node 103 that is the transmission source of the data is a reception-permitted node, the global packet analysis unit 405 extracts data included in the received packet. Then, the extracted data is output to the switch 408. As a result, the extracted data is output to the processors 302-1 to 302-n constituting the block unit. On the other hand, as a result of the determination, if the node 103 that is the transmission source of the data is not a reception permitted node, the global packet analysis unit 405 discards the data.
 なお、データの送受信の許可についてさらに詳細な制御が必要な場合、ノード103が有するプロセッサ302-1~302-n毎にデータの送受信の可否を判定するための情報をパーティション定義情報に含めてもよい。 If more detailed control is required for permission of data transmission / reception, the partition definition information may include information for determining whether data can be transmitted / received for each of the processors 302-1 to 302-n included in the node 103. Good.
 また、プロセッサ302-1~302-n内のタスク毎にデータの送受信の可否を判定するための情報をパーティション定義情報に含めてもよい。なお、このタスク毎にデータの送受信の可否を判定するための情報は例えば、当該タスクが実行されているオペレーションシステム(以降、OSという)に提供され、OSによって送受信が拒否されるようにすることも可能である。 In addition, information for determining whether data can be transmitted / received for each task in the processors 302-1 to 302-n may be included in the partition definition information. Information for determining whether data can be transmitted / received for each task is provided, for example, to an operation system (hereinafter referred to as an OS) in which the task is executed, so that transmission / reception is rejected by the OS. Is also possible.
 以下に、上記のように構成されたオンチップ並列処理システム101の動作について説明する。 The operation of the on-chip parallel processing system 101 configured as described above will be described below.
 まず、図1~図4に示したオンチップ並列処理システム101において、ノード103がデータを含むパケットを送信するときの動作について説明する。 First, an operation when the node 103 transmits a packet including data in the on-chip parallel processing system 101 shown in FIGS. 1 to 4 will be described.
 図6は、図1~図4に示したオンチップ並列処理システム101において、ノード103がデータを含むパケットを送信するときの動作を説明するためのフローチャートである。 FIG. 6 is a flowchart for explaining an operation when the node 103 transmits a packet including data in the on-chip parallel processing system 101 shown in FIGS.
 まず、ブロック部を構成するプロセッサ302-1~302-n等は、他のノード103へ送信するデータを生成する(ステップS21)。 First, the processors 302-1 to 302-n constituting the block unit generate data to be transmitted to the other nodes 103 (step S21).
 次に、データを生成したプロセッサ302-1~302-n等は、生成したデータを共有バス305を介してネットワークインターフェース部301へ出力する。 Next, the processors 302-1 to 302-n and the like that generated the data output the generated data to the network interface unit 301 via the shared bus 305.
 プロセッサ302-1~302-n等から出力されたデータを共有バス305を介して受け付けたネットワークインターフェース部301のデータ入出力部409は、受け付けたデータをスイッチ407へ出力する。 The data input / output unit 409 of the network interface unit 301 that has received the data output from the processors 302-1 to 302-n or the like via the shared bus 305 outputs the received data to the switch 407.
 スイッチ407は、データ入出力部409から出力されたデータを受け付ける。そして、受け付けたデータに含まれる宛先情報と、パーティション識別部401から出力されたパーティション設定情報とから、受け付けたデータの宛先のノード103がパーティション内ノードかどうかを判定する(ステップS22)。 The switch 407 receives data output from the data input / output unit 409. Then, based on the destination information included in the received data and the partition setting information output from the partition identification unit 401, it is determined whether the destination node 103 of the received data is an intra-partition node (step S22).
 ステップS22における判定の結果、受け付けたデータの宛先のノード103がパーティション内ノードである場合、スイッチ407は、受け付けたデータをローカルパケット生成部403へ出力する。 As a result of the determination in step S22, if the destination node 103 of the received data is an intra-partition node, the switch 407 outputs the received data to the local packet generation unit 403.
 スイッチ407から出力されたデータを受け付けたローカルパケット生成部403は、受け付けたデータを含むパケットを生成する(ステップS23)。 The local packet generator 403 that has received the data output from the switch 407 generates a packet including the received data (step S23).
 そして、ローカルパケット生成部403は、生成されたパケットを、パケット入出力部410からローカルチャネルで接続ルータへ送信する(ステップS24)。 Then, the local packet generation unit 403 transmits the generated packet from the packet input / output unit 410 to the connection router through the local channel (step S24).
 一方、ステップS22における判定の結果、受け付けたデータの宛先のノード103がパーティション内ノードでない場合には、スイッチ407は、受け付けたデータをグローバルパケット生成部404へ出力する。 On the other hand, as a result of the determination in step S22, if the destination node 103 of the received data is not an intra-partition node, the switch 407 outputs the received data to the global packet generation unit 404.
 グローバルパケット生成部404は、スイッチ407から出力されたデータを受け付ける。そして、グローバルパケット生成部404は、受け付けたデータに含まれる宛先情報と、パーティション識別部401から出力された送信許可情報とから、受け付けたデータの宛先のノード103が送信許可ノードであるかどうかを判定する(ステップS25)。 The global packet generation unit 404 receives the data output from the switch 407. Then, the global packet generation unit 404 determines whether the destination node 103 of the received data is a transmission-permitted node from the destination information included in the received data and the transmission permission information output from the partition identification unit 401. Determination is made (step S25).
 ステップS25における判定の結果、受け付けたデータの宛先のノード103が送信許可ノードである場合、グローバルパケット生成部404は、受け付けたデータを含むパケットを生成する(ステップS26)。 As a result of the determination in step S25, if the destination node 103 of the received data is a transmission-permitted node, the global packet generation unit 404 generates a packet including the received data (step S26).
 そして、グローバルパケット生成部404は、生成されたパケットを、パケット入出力部410からグローバルチャネルで接続ルータへ送信する(ステップS27)。 Then, the global packet generation unit 404 transmits the generated packet from the packet input / output unit 410 to the connection router through the global channel (step S27).
 一方、ステップS25における判定の結果、受け付けたデータの宛先のノード103が送信許可ノードでない場合には、グローバルパケット生成部404は、受け付けたデータを破棄する(ステップS28)。 On the other hand, as a result of the determination in step S25, if the destination node 103 of the received data is not a transmission-permitted node, the global packet generation unit 404 discards the received data (step S28).
 そして、グローバルパケット生成部404は、受け付けたデータを破棄したことを示す破棄情報を、複数のノード103のうち予め決められたノードへ通知する(ステップS29)。ここで、予め決められたノードとは、オンチップ並列処理システム101全体におけるデータの破棄情報を管理するプロセッサを有するノードである。このプロセッサは、上述したメインプロセッサと同じでもよいし、異なっていてもよい。また、別の形態として、複数のノード103のそれぞれにおいて、プロセッサ302-1~302-nのうち破棄情報を管理するプロセッサを決めておき、複数のノード103毎に破棄情報を管理するようにしてもよい。 Then, the global packet generation unit 404 notifies the discard information indicating that the received data is discarded to a predetermined node among the plurality of nodes 103 (step S29). Here, the predetermined node is a node having a processor that manages data discard information in the entire on-chip parallel processing system 101. This processor may be the same as or different from the main processor described above. As another form, in each of the plurality of nodes 103, a processor that manages the discard information is determined among the processors 302-1 to 302-n, and the discard information is managed for each of the plurality of nodes 103. Also good.
 次に、図1~図4に示したオンチップ並列処理システムにおいて、ノード103がパケットを受信したときの動作について説明する。 Next, the operation when the node 103 receives a packet in the on-chip parallel processing system shown in FIGS. 1 to 4 will be described.
 図7は、図1~図4に示したオンチップ並列処理システム101において、ノード103がパケットを受信したときの動作を説明するためのフローチャートである。 FIG. 7 is a flowchart for explaining the operation when the node 103 receives a packet in the on-chip parallel processing system 101 shown in FIGS.
 まず、ネットワークインターフェース部301のパケット入出力部410は、接続ルータから送信されたパケットを受信する(ステップS41)。 First, the packet input / output unit 410 of the network interface unit 301 receives a packet transmitted from the connected router (step S41).
 そして、パケット入出力部410は、受信したパケットがローカルチャネルで送信されてきたパケットが、グローバルチャネルで送信されてきたパケットかを判定する(ステップS42)。 Then, the packet input / output unit 410 determines whether the received packet transmitted on the local channel is a packet transmitted on the global channel (step S42).
 ステップS42における判定の結果、受信したパケットがローカルチャネルで送信されてきたパケットである場合、パケット入出力部410は、受信したパケットをローカルパケット解析部406へ出力する。 As a result of the determination in step S42, when the received packet is a packet transmitted through the local channel, the packet input / output unit 410 outputs the received packet to the local packet analysis unit 406.
 パケット入出力部410から出力されたパケットを受け付けたローカルパケット解析部406は、受け付けたパケットに含まれるデータを抽出する(ステップS43)。 The local packet analysis unit 406 that has received the packet output from the packet input / output unit 410 extracts data included in the received packet (step S43).
 そして、ローカルパケット解析部406は、抽出されたデータをスイッチ408へ出力する。これにより、抽出されたデータは、ブロック部を構成するプロセッサ302-1~302-n等へ出力される(ステップS44)。 Then, the local packet analysis unit 406 outputs the extracted data to the switch 408. As a result, the extracted data is output to the processors 302-1 to 302-n constituting the block unit (step S44).
 一方、ステップS42における判定の結果、受信したパケットがグローバルチャネルで送信されてきた場合には、パケット入出力部410は、受信したパケットをグローバルパケット解析部405へ出力する。 On the other hand, as a result of the determination in step S42, when the received packet is transmitted through the global channel, the packet input / output unit 410 outputs the received packet to the global packet analysis unit 405.
 グローバルパケット解析部405は、パケット入出力部410から出力されたパケットを受け付ける。そして、受け付けたパケットに含まれるデータの送信元情報と、パーティション識別部401から出力された受信許可情報とから、受け付けたパケットに含まれるデータの送信元のノード103が受信許可ノードかどうかを判定する。(ステップS45)。 The global packet analysis unit 405 receives the packet output from the packet input / output unit 410. Then, based on the transmission source information of the data included in the received packet and the reception permission information output from the partition identification unit 401, it is determined whether the node 103 that is the transmission source of the data included in the received packet is a reception permitted node. To do. (Step S45).
 ステップS45における判定の結果、受け付けたパケットに含まれるデータの送信元のノード103が受信許可ノードである場合、グローバルパケット解析部405は、受け付けたパケットからデータを抽出する(ステップS46)。 If the result of determination in step S45 is that the node 103 that is the transmission source of data contained in the received packet is a reception-permitted node, the global packet analysis unit 405 extracts data from the received packet (step S46).
 そして、グローバルパケット解析部405は、抽出されたデータをスイッチ408へ出力する。これにより、抽出されたデータは、ブロック部を構成するプロセッサ302-1~302-n等へ出力される(ステップS47)。 Then, the global packet analysis unit 405 outputs the extracted data to the switch 408. Thereby, the extracted data is output to the processors 302-1 to 302-n constituting the block unit (step S47).
 一方、ステップS45における判定の結果、受け付けたパケットに含まれるデータの送信元のノード103が受信許可ノードでない場合には、グローバルパケット解析部405は、受け付けたパケットを破棄する(ステップS48)。 On the other hand, as a result of the determination in step S45, if the node 103 that is the transmission source of the data included in the received packet is not a reception permitted node, the global packet analysis unit 405 discards the received packet (step S48).
 そして、グローバルパケット解析部405は、受け付けたパケットに含まれるデータを破棄したことを示す破棄情報を、複数のノード103のうち予め決められたノードへ通知する(ステップS49)。この場合も、別の形態として、複数のノード103のそれぞれにおいて、プロセッサ302-1~302-nのうち破棄情報を管理するプロセッサを決めておき、複数のノード103毎に破棄情報を管理するようにしてもよい。 Then, the global packet analysis unit 405 notifies discard information indicating that the data included in the received packet is discarded to a predetermined node among the plurality of nodes 103 (step S49). In this case, as another form, in each of the plurality of nodes 103, a processor that manages the discard information is determined among the processors 302-1 to 302-n, and the discard information is managed for each of the plurality of nodes 103. It may be.
 次に、図1~図4に示したオンチップ並列処理システム101において、ルータ102がデータを含むパケットを受信したときの動作を説明する。 Next, the operation when the router 102 receives a packet containing data in the on-chip parallel processing system 101 shown in FIGS. 1 to 4 will be described.
 図8は、図1~図4に示したオンチップ並列処理システム101において、ルータ102がデータを含むパケットを受信したときの動作を説明するためのフローチャートである。 FIG. 8 is a flowchart for explaining the operation when the router 102 receives a packet containing data in the on-chip parallel processing system 101 shown in FIGS.
 まず、ルータ102のパケット入力部204は、隣接ルータまたは接続ノードからリンク104を介して送信されてきたパケットを受信する(ステップS61)。 First, the packet input unit 204 of the router 102 receives a packet transmitted from the adjacent router or connection node via the link 104 (step S61).
 そして、パケット入力部204は、受信したバケットがローカルチャネルで送信されてきたか、グローバルチャネルで送信されてきたかを判定する(ステップS62)。 Then, the packet input unit 204 determines whether the received bucket has been transmitted through the local channel or the global channel (step S62).
 ステップS62の判定の結果、受信したパケットがローカルチャネルで送信されてきたパケットである場合、パケット入力部204は、受信したパケットをローカル用バッファ201-1へ出力する。 If the result of determination in step S62 is that the received packet is a packet transmitted on the local channel, the packet input unit 204 outputs the received packet to the local buffer 201-1.
 パケット入力部204から出力されたパケットを受け付けたローカル用バッファ201-1は、受け付けたパケットを一時的に記憶する(ステップS63)。 The local buffer 201-1 that has received the packet output from the packet input unit 204 temporarily stores the received packet (step S63).
 一方、ステップS62の判定の結果、受信したパケットがグローバルチャネルで送信されてきたパケットである場合には、パケット入力部204は、受信したパケットをグローバル用バッファ201-2へ出力する。 On the other hand, if the result of the determination in step S62 is that the received packet is a packet transmitted on the global channel, the packet input unit 204 outputs the received packet to the global buffer 201-2.
 パケット入力部204から出力されたパケットを受け付けたグローバル用バッファ201-2は、受け付けたパケットを一時的に記憶する(ステップS64)。 The global buffer 201-2 that has received the packet output from the packet input unit 204 temporarily stores the received packet (step S64).
 次に、パケット出力スイッチ202は、ルーティング制御部203から出力されたパケット送信指示に従い、ローカル用バッファ201-1及びグローバル用バッファ201-2に一時的に記憶されたパケットを、パケットの宛先に応じた出力部から隣接ルータまたは接続ノードへ送信する。 Next, in accordance with the packet transmission instruction output from the routing control unit 203, the packet output switch 202 changes the packet temporarily stored in the local buffer 201-1 and the global buffer 201-2 according to the packet destination. From the output unit to the adjacent router or connection node.
 このとき、パケット出力スイッチ202は、ローカル用バッファ201-1に一時的に記憶されたパケットをローカルチャネルで送信する(ステップS65)。 At this time, the packet output switch 202 transmits the packet temporarily stored in the local buffer 201-1 through the local channel (step S65).
 また、パケット出力スイッチ202は、グローバル用バッファ201-2に一時的に記憶されたパケットをグローバルチャネルで送信する(ステップS66)。 Further, the packet output switch 202 transmits the packet temporarily stored in the global buffer 201-2 through the global channel (step S66).
 このように本実施形態においては、同一のパーティション10に属するノード間における通信では、ローカルチャネルでパケットが送受信され、相互に異なるパーティション10に属するノード間における通信においては、グローバルチャネルでパケットが送受信される。 As described above, in the present embodiment, in communication between nodes belonging to the same partition 10, packets are transmitted / received on the local channel, and in communication between nodes belonging to different partitions 10, packets are transmitted / received on the global channel. The
 これにより、通信速度の低下や、データの漏洩及び改ざんを抑制することができる。従って、オンチップ並列処理システム101において、複数のアプリケーションそれぞれが所定の性能を安定的に満足しながら動作することが可能となる。 This makes it possible to suppress a decrease in communication speed and data leakage and falsification. Therefore, in the on-chip parallel processing system 101, each of a plurality of applications can operate while stably satisfying a predetermined performance.
 また、複数のノード103のそれぞれは、データの宛先が送信許可ノードでない場合、そのデータを送信せずに破棄する。これにより、不要なパケットが複数のルータ102によって中継されることがなくなり、オンチップ並列処理システム101の通信速度の低下を抑制することができる。これにより、アプリケーションの安定的な動作をさらに確実なものとすることができる。 Also, each of the plurality of nodes 103 discards the data without transmitting it when the destination of the data is not a transmission-permitted node. Thereby, unnecessary packets are not relayed by the plurality of routers 102, and a decrease in the communication speed of the on-chip parallel processing system 101 can be suppressed. Thereby, the stable operation | movement of an application can be made still more reliable.
 なお、本発明のオンチップ並列処理システムは、携帯電話機や携帯マルチメディア再生装置といった用途においてシステム全体を主となって制御する半導体チップに適用できる。また、パーソナルコンピュータやサーバといった用途において主たる制御を行う半導体チップが別に存在し、それに対する従の立場で部分的な処理を実行するアクセラレーターとして適用することもできる。もちろん、この主たる半導体チップと従たる半導体チップとは物理的に分断されている必要はなく、本発明のオンチップ並列処理システムが半導体チップ上の一部分で構成されることも可能である。 Note that the on-chip parallel processing system of the present invention can be applied to a semiconductor chip that mainly controls the entire system in applications such as a mobile phone and a portable multimedia playback device. In addition, there is another semiconductor chip that performs main control in applications such as a personal computer and a server, and it can also be applied as an accelerator that executes partial processing in a subordinate position. Of course, the main semiconductor chip and the subordinate semiconductor chip do not need to be physically separated, and the on-chip parallel processing system of the present invention can be constituted by a part on the semiconductor chip.
 以上、実施例を参照して本願発明を説明したが、本願発明は上記実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。 Although the present invention has been described with reference to the embodiments, the present invention is not limited to the above embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.
 この出願は、2009年12月7日に出願された日本出願特願2009-277406を基礎とする優先権を主張し、その開示の全てをここに取り込む。 This application claims priority based on Japanese Patent Application No. 2009-277406 filed on Dec. 7, 2009, the entire disclosure of which is incorporated herein.

Claims (8)

  1.  複数のルータと複数のノードとがチップ上に配置され、前記複数のノードのそれぞれが、前記チップを複数の領域に分割した複数のパーティションのいずれかに属し、前記複数のノードのそれぞれが前記複数のルータのいずれかと、また、前記複数のルータのそれぞれが当該ルータに隣接するルータと通信媒体を介して接続され、前記複数のルータが、前記複数のノード間における通信で送受信されるデータを含むパケットを中継するオンチップ並列処理システムであって、
     前記通信媒体には、第1及び第2の通信チャネルが設定され、
     前記複数のルータのそれぞれ及び前記複数のノードのそれぞれは、同一の前記パーティションに属するノード間における通信では、前記第1の通信チャネルでパケットを送受信し、相互に異なる前記パーティションに属するノード間の通信では、前記第2の通信チャネルでパケットを送受信するオンチップ並列処理システム。
    A plurality of routers and a plurality of nodes are arranged on a chip, each of the plurality of nodes belongs to one of a plurality of partitions obtained by dividing the chip into a plurality of regions, and each of the plurality of nodes is the plurality of the plurality of nodes. Each of the plurality of routers is connected to a router adjacent to the router via a communication medium, and the plurality of routers includes data transmitted and received by communication between the plurality of nodes. An on-chip parallel processing system that relays packets,
    First and second communication channels are set in the communication medium,
    In the communication between nodes belonging to the same partition, each of the plurality of routers and each of the plurality of nodes transmits / receives a packet through the first communication channel, and communicates between nodes belonging to the partitions different from each other. Then, the on-chip parallel processing system which transmits / receives a packet by the said 2nd communication channel.
  2.  請求項1に記載のオンチップ並列処理システムにおいて、
     前記複数のノードのそれぞれは、
     データを生成し、該生成したデータを出力するブロック部と、
     前記ブロック部から出力されたデータを受け付け、該受け付けたデータの宛先が、当該ノードと同一の前記パーティションに属するパーティション内ノードであるかどうかを判定する第1の判定を行い、該第1の判定の結果、当該データの宛先が前記パーティション内ノードである場合、当該データを含むパケットを、当該ノードと接続された前記ルータへ前記第1の通信チャネルで送信し、前記第1の判定の結果、当該データの宛先が前記パーティション内ノードでない場合、当該データの宛先が、当該ノードからのデータの送信が許可された送信許可ノードであるかどうかを判定する第2の判定を行い、該第2の判定の結果、当該データの宛先が前記送信許可ノードである場合、当該データを含むパケットを、当該ノードと接続された前記ルータへ前記第2の通信チャネルで送信するネットワークインターフェース部と、を有し、
     前記複数のルータのそれぞれは、
     当該ルータと接続された前記ルータまたは前記ノードから送信されたパケットを受信するパケット入力部と、
     前記パケット入力部にて受信されたパケットのうち、前記第1の通信チャネルで送信されてきたパケットを記憶する第1のバッファと、
     前記パケット入力部にて受信されたパケットのうち、前記第2の通信チャネルで送信されてきたパケットを記憶する第2のバッファと、
     前記第1のバッファに記憶されたパケットを、該パケットの宛先に応じ、当該ルータと接続された前記ルータまたは前記ノードへ前記第1の通信チャネルで送信し、前記第2のバッファに記憶されたパケットを、該パケットの宛先に応じ、当該ルータに接続された前記ルータまたは前記ノードへ前記第2の通信チャネルで送信するパケット出力スイッチと、を有するオンチップ並列処理システム。
    The on-chip parallel processing system according to claim 1,
    Each of the plurality of nodes is
    A block unit for generating data and outputting the generated data;
    Receiving the data output from the block unit, performing a first determination to determine whether the destination of the received data is an intra-partition node belonging to the same partition as the node, and the first determination As a result, when the destination of the data is the node in the partition, the packet including the data is transmitted to the router connected to the node through the first communication channel, and the result of the first determination is If the destination of the data is not the intra-partition node, a second determination is made to determine whether the destination of the data is a transmission-permitted node that is permitted to transmit data from the node, and the second As a result of the determination, if the destination of the data is the transmission-permitted node, a packet including the data is transmitted before the connection It has a network interface unit for transmitting in the second communication channel to the router, and
    Each of the plurality of routers is
    A packet input unit for receiving a packet transmitted from the router or the node connected to the router;
    A first buffer for storing a packet transmitted on the first communication channel among packets received by the packet input unit;
    A second buffer for storing a packet transmitted by the second communication channel among the packets received by the packet input unit;
    The packet stored in the first buffer is transmitted on the first communication channel to the router or the node connected to the router according to the destination of the packet, and stored in the second buffer. A packet output switch that transmits a packet to the router or the node connected to the router through the second communication channel according to a destination of the packet;
  3.  請求項2に記載のオンチップ並列処理システムにおいて、
     前記ネットワークインターフェース部は、前記第2の判定の結果、当該データの宛先が前記送信許可ノードでない場合、当該データを破棄するオンチップ並列処理システム。
    The on-chip parallel processing system according to claim 2,
    The network interface unit discards the data if the destination of the data is not the transmission-permitted node as a result of the second determination.
  4.  請求項3に記載のオンチップ並列処理システムにおいて、
     前記ネットワークインターフェース部は、当該データを破棄した場合、前記複数のノードのうち予め決められたノードへその旨を通知するオンチップ並列処理システム。
    The on-chip parallel processing system according to claim 3,
    The network interface unit is an on-chip parallel processing system that notifies a predetermined node of the plurality of nodes when the data is discarded.
  5.  請求項2乃至4のいずれか1項に記載のオンチップ並列処理システムにおいて、
     前記ネットワークインターフェース部は、前記複数のノードのうち予め決められたノードから送信され、前記第1及び第2の判定を行うための情報を含むパーティション定義情報を受信し、該受信したパーティション定義情報に基づいて前記第1及び第2の判定を行うオンチップ並列処理システム。
    The on-chip parallel processing system according to any one of claims 2 to 4,
    The network interface unit receives partition definition information that is transmitted from a predetermined node of the plurality of nodes and includes information for performing the first and second determinations, and includes the received partition definition information in the received partition definition information. An on-chip parallel processing system that performs the first and second determinations based on the first and second determinations.
  6.  請求項1乃至5のいずれか1項に記載のオンチップ並列処理システムにおいて、
     前記第1及び第2の通信チャネルは、論理的な仮想チャネルであるオンチップ並列処理システム。
    The on-chip parallel processing system according to any one of claims 1 to 5,
    The on-chip parallel processing system, wherein the first and second communication channels are logical virtual channels.
  7.  複数のルータと複数のノードとがチップ上に配置され、前記複数のノードのそれぞれが、前記チップを複数の領域に分割した複数のパーティションのいずれかに属し、前記複数のノードのそれぞれが前記複数のルータのいずれかと、また、前記複数のルータのそれぞれが当該ルータに隣接するルータと通信媒体を介して接続され、前記複数のルータが、前記複数のノード間における通信で送受信されるデータを含むパケットを中継するオンチップ並列処理システムにおける通信方法であって、
     前記複数のルータのそれぞれ及び前記複数のノードのそれぞれが、同一の前記パーティションに属するノード間における通信では、前記通信媒体に設定された第1及び第2の通信チャネルのうち、前記第1の通信チャネルでパケットを送受信し、相互に異なる前記パーティションに属するノード間の通信では、前記第2の通信チャネルでパケットを送受信する送受信処理を有する通信方法。
    A plurality of routers and a plurality of nodes are arranged on a chip, each of the plurality of nodes belongs to one of a plurality of partitions obtained by dividing the chip into a plurality of regions, and each of the plurality of nodes is the plurality of the plurality of nodes. Each of the plurality of routers is connected to a router adjacent to the router via a communication medium, and the plurality of routers includes data transmitted and received by communication between the plurality of nodes. A communication method in an on-chip parallel processing system that relays packets,
    In communication between nodes belonging to the same partition, each of the plurality of routers and each of the plurality of nodes, the first communication among the first and second communication channels set in the communication medium. A communication method including a transmission / reception process for transmitting and receiving a packet on the second communication channel in communication between nodes belonging to different partitions from each other by transmitting and receiving a packet on a channel.
  8.  請求項7に記載の通信方法において、
     前記送受信処理は、
     前記複数のノードのそれぞれが、データを生成する処理と、
     前記複数のノードのそれぞれが、前記生成されたデータの宛先が、当該ノードと同一の前記パーティションに属するパーティション内ノードであるかどうかを判定する第1の判定処理と、
     前記複数のノードのそれぞれが、前記第1の判定処理の結果、当該データの宛先が前記パーティション内ノードである場合、当該データを含むパケットを、当該ノードと接続された前記ルータへ前記第1の通信チャネルで送信する処理と、
     前記複数のノードのそれぞれが、前記第1の判定処理の結果、当該データの宛先が前記パーティション内ノードでない場合、当該データの宛先が、当該ノードからのデータの送信が許可された送信許可ノードであるかどうかを判定する第2の判定処理と、
     前記複数のノードのそれぞれが、前記第2の判定処理の結果、当該データの宛先が前記送信許可ノードである場合、当該データを含むパケットを、当該ノードと接続された前記ルータへ前記第2の通信チャネルで送信する処理と、
     前記複数のルータのそれぞれが、当該ルータと接続された前記ルータまたは前記ノードから送信されたパケットを受信する処理と、
     前記複数のルータのそれぞれが、前記受信されたパケットのうち前記第1の通信チャネルで送信されてきたパケットを、当該ルータに備えられた第1及び第2のバッファのうち前記第1のバッファにて記憶する処理と、
     前記複数のルータのそれぞれが、前記受信されたパケットのうち前記第2の通信チャネルで送信されてきたパケットを前記第2のバッファにて記憶する処理と、
     前記複数のルータのそれぞれが、前記第1のバッファに記憶されたパケットを、該パケットの宛先に応じ、当該ルータと接続された前記ルータまたは前記ノードへ前記第1の通信チャネルで送信する処理と、
     前記複数のルータのそれぞれが、前記第2のバッファに記憶されたパケットを、該パケットの宛先に応じ、当該ルータに接続された前記ルータまたは前記ノードへ前記第2の通信チャネルで送信する処理と、を含む通信方法。
    The communication method according to claim 7,
    The transmission / reception process includes
    A process in which each of the plurality of nodes generates data;
    A first determination process in which each of the plurality of nodes determines whether a destination of the generated data is an intra-partition node belonging to the same partition as the node;
    As a result of the first determination process, when each of the plurality of nodes is a node in the partition, a packet including the data is transmitted to the router connected to the node. Processing to send on the communication channel;
    When each of the plurality of nodes is determined as a result of the first determination processing that the destination of the data is not the intra-partition node, the destination of the data is a transmission-permitted node that is permitted to transmit data from the node. A second determination process for determining whether there is,
    As a result of the second determination process, when the destination of the data is the transmission-permitted node, each of the plurality of nodes transmits the packet including the data to the router connected to the node. Processing to send on the communication channel;
    Each of the plurality of routers receives a packet transmitted from the router or the node connected to the router;
    Each of the plurality of routers sends a packet transmitted on the first communication channel among the received packets to the first buffer among the first and second buffers provided in the router. Process to remember,
    Each of the plurality of routers stores, in the second buffer, a packet transmitted on the second communication channel among the received packets.
    A process in which each of the plurality of routers transmits the packet stored in the first buffer to the router or the node connected to the router via the first communication channel according to a destination of the packet; ,
    A process in which each of the plurality of routers transmits the packet stored in the second buffer to the router or the node connected to the router through the second communication channel according to the destination of the packet; , Including a communication method.
PCT/JP2010/070957 2009-12-07 2010-11-25 On-chip parallel processing system and communication method WO2011070913A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011545164A JP5673554B2 (en) 2009-12-07 2010-11-25 On-chip parallel processing system and communication method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009277406 2009-12-07
JP2009-277406 2009-12-07

Publications (1)

Publication Number Publication Date
WO2011070913A1 true WO2011070913A1 (en) 2011-06-16

Family

ID=44145460

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/070957 WO2011070913A1 (en) 2009-12-07 2010-11-25 On-chip parallel processing system and communication method

Country Status (2)

Country Link
JP (1) JP5673554B2 (en)
WO (1) WO2011070913A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101373778B1 (en) 2012-02-13 2014-03-14 한양대학교 산학협력단 Network on chip and data transmission method for inter communication of system on chip, and recording medium storing program for executing method of the same in computer

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0887480A (en) * 1994-09-17 1996-04-02 Toshiba Corp Routing system among processors
JPH08185380A (en) * 1994-12-28 1996-07-16 Hitachi Ltd Parallel computer
JPH1021208A (en) * 1996-06-28 1998-01-23 Fujitsu Ltd Channel deciding method
JPH1049507A (en) * 1996-07-31 1998-02-20 Fujitsu Ltd Parallel computer
JP2009116872A (en) * 2007-11-08 2009-05-28 Internatl Business Mach Corp <Ibm> Method, program and device for software pipelining on network on chip
JP2009129447A (en) * 2007-11-27 2009-06-11 Internatl Business Mach Corp <Ibm> Design structure, data processing method in network on chip ('noc'), network on chip, and computer program (design structure for network on chip with partition) for data processing by network on chip

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0887480A (en) * 1994-09-17 1996-04-02 Toshiba Corp Routing system among processors
JPH08185380A (en) * 1994-12-28 1996-07-16 Hitachi Ltd Parallel computer
JPH1021208A (en) * 1996-06-28 1998-01-23 Fujitsu Ltd Channel deciding method
JPH1049507A (en) * 1996-07-31 1998-02-20 Fujitsu Ltd Parallel computer
JP2009116872A (en) * 2007-11-08 2009-05-28 Internatl Business Mach Corp <Ibm> Method, program and device for software pipelining on network on chip
JP2009129447A (en) * 2007-11-27 2009-06-11 Internatl Business Mach Corp <Ibm> Design structure, data processing method in network on chip ('noc'), network on chip, and computer program (design structure for network on chip with partition) for data processing by network on chip

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101373778B1 (en) 2012-02-13 2014-03-14 한양대학교 산학협력단 Network on chip and data transmission method for inter communication of system on chip, and recording medium storing program for executing method of the same in computer

Also Published As

Publication number Publication date
JP5673554B2 (en) 2015-02-18
JPWO2011070913A1 (en) 2013-04-22

Similar Documents

Publication Publication Date Title
EP1552669B1 (en) Integrated circuit and method for establishing transactions
JP3990565B2 (en) Security communication packet processing apparatus and method
EP2613479B1 (en) Relay device
US8848703B2 (en) On-chip router and multi-core system using the same
US20070133415A1 (en) Method and apparatus for flow control initialization
US10862800B2 (en) Method and system for managing network communications
US20080043757A1 (en) Integrated Circuit And Method For Packet Switching Control
US7978693B2 (en) Integrated circuit and method for packet switching control
JP5260791B2 (en) Control device in network, network, and message routing method in network
JP5673554B2 (en) On-chip parallel processing system and communication method
US8412867B2 (en) Semiconductor integrated circuit and filter and informational delivery method using same
JP4040045B2 (en) Data transfer device
US10841221B2 (en) Stage one cache lookup for network node of mesh network
CN110337828B (en) Wireless communication device, wireless communication method, and computer-readable storage medium
Han et al. Distributed memory access architecture and control for fully disaggregated datacenter network
KR100903130B1 (en) Switch of mesh type on-chip network and swithing method using thereof
JP2020005017A (en) Dynamic variable capacity memory device and storage capacity dynamic variable method
JP7464144B2 (en) Network card and buffer control method
Bauer Flow delegation: Flow table capacity bottleneck mitigation for software-defined networks
CN111903097B (en) Transmission device, transmission method, and computer-readable storage medium
JP7283191B2 (en) Information processing system
JP2018007105A (en) Radio equipment, and method and program for time slot allocation control
JP2017212487A (en) Ip fragmenting device, ip de-fragmenting device, ip fragment packet communication system, ip fragment packet transmission method, ip fragment packet de-fragmenting method, ip fragment packet communication method, and program
JP2004120642A (en) Router apparatus and transfer control method
JP2007067885A (en) Data frame processor and method therefor

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2011545164

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

Country of ref document: EP

Kind code of ref document: A1