JP2007148753A - Multiprocessor system - Google Patents

Multiprocessor system Download PDF

Info

Publication number
JP2007148753A
JP2007148753A JP2005341949A JP2005341949A JP2007148753A JP 2007148753 A JP2007148753 A JP 2007148753A JP 2005341949 A JP2005341949 A JP 2005341949A JP 2005341949 A JP2005341949 A JP 2005341949A JP 2007148753 A JP2007148753 A JP 2007148753A
Authority
JP
Japan
Prior art keywords
node
packet
transmitted
request
transmission
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005341949A
Other languages
Japanese (ja)
Inventor
Shuji Otsuka
修司 大▲塚▼
Keiji So
慶治 荘
Takeya Akiyama
健也 秋山
Kazumasa Obikawa
一誠 帯川
Yoshikuni Shimazawa
嘉邦 島沢
Osamu Shibata
理 芝田
Yoshiki Tanaka
美喜 田中
Ryuichi Tsuji
龍一 辻
Fumitaka Sugimoto
文孝 杉本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2005341949A priority Critical patent/JP2007148753A/en
Publication of JP2007148753A publication Critical patent/JP2007148753A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)
  • Small-Scale Networks (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To match the transmitting order of request packets with the starting order of execution of request packets in a multiprocessor system in which at least two nodes of a plurality of nodes connected by a loop-shaped communication path are configured of processors, and data communication between nodes can be performed by transmitting a packet onto the communication path from a transmitting source node toward a transmitting destination node. <P>SOLUTION: Each node stores, when a request packet showing a certain processing request is transmitted to a transmitting destination node, information showing the transmitting destination node, and prohibits transmission of a new request packet to the transmitting destination node until a response packet showing the response to the processing request is received from the transmitting destination node. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は、ループ状の通信経路により接続された複数ノードのうち、少なくとも2以上のノードがプロセッサで構成されており、送信元のノードから送信先のノードに向けて前記通信経路上にパケットを送出することにより、ノード間のデータ通信を行うことが可能なマルチプロセッサシステムに関する。   In the present invention, at least two or more nodes among a plurality of nodes connected by a loop communication path are configured by a processor, and a packet is transmitted from the transmission source node to the transmission destination node on the communication path. The present invention relates to a multiprocessor system capable of performing data communication between nodes by sending it out.

マルチプロセッサシステムには、複数のプロセッサ間におけるデータ通信を行うための通信経路として、ノードとしての各プロセッサをループ状に接続する通信経路(「ループバス」あるいは「リングバス」とも呼ぶ)を用いているものがある(例えば、特許文献1,2参照)。   A multiprocessor system uses a communication path (also referred to as a “loop bus” or “ring bus”) that connects each processor as a node in a loop as a communication path for performing data communication between a plurality of processors. (For example, refer to Patent Documents 1 and 2).

特開平9−91262号公報Japanese Patent Laid-Open No. 9-91262 特開2001−125875号公報JP 2001-125875 A

しかしながら、ループバスを用いた場合のノード間のデータ通信には、以下で説明する問題がある。   However, there is a problem described below in data communication between nodes when a loop bus is used.

図12および図13は、ループバスを用いた場合におけるノード間のデータ通信の問題点について示す説明図である。   12 and 13 are explanatory diagrams showing problems in data communication between nodes when a loop bus is used.

図12および図13は、説明を容易にするため、ノード1〜ノード3の3つのノードがループバスを介して接続されている場合を示している。   FIG. 12 and FIG. 13 show a case where three nodes of node 1 to node 3 are connected via a loop bus for easy explanation.

そして、ノード1からノード2に、連続して3つのリクエストを示すパケット(以下、「リクエストパケット」と呼ぶ)を送信する場合を例に説明することとする。   An example will be described in which a packet indicating three requests in succession (hereinafter referred to as “request packet”) is transmitted from the node 1 to the node 2 as an example.

ここで、本明細書および図面においては、送信するリクエストパケットを、[RD−Req#1:12]のように記述することとし、これに対して応答されるレスポンスを示すパケット(以下、「レスポンスパケット」と呼ぶ)を、[RD−Rsp#1:21]のように記述することとする。「−」の前の「RD」はリクエストの種類を示し、リードリクエストは「RD」、ライトリクエストは「WR」と記述される。「−」の後の「Req#1:12」はノード1からノード2への1番目のリクエストであることを示している。また、同様に、「Rsp#1:21」はノード2からノード1への1番目のレスポンスであることを示している。なお、「Req#1:12」のうち、「:12」は送信元がノード1で送信先がノード2であることを示し、「Req#1」はノード1から送信する1番目のリクエストであることを示している。同様に、「Rsp#1:21」のうち、「:21」は送信元がノード2で送信先がノード1であることを示し、「Rsp#1」はノード2から送信する1番目のレスポンスであることを示している。   Here, in the present specification and drawings, a request packet to be transmitted is described as [RD-Req # 1: 12], and a packet indicating a response to the response (hereinafter referred to as “response”). Packet)) is described as [RD-Rsp # 1: 21]. “RD” before “−” indicates the type of request, “RD” for a read request, and “WR” for a write request. “Req # 1: 12” after “−” indicates the first request from the node 1 to the node 2. Similarly, “Rsp # 1: 21” indicates the first response from the node 2 to the node 1. Of “Req # 1: 12”, “: 12” indicates that the transmission source is the node 1 and the transmission destination is the node 2, and “Req # 1” is the first request transmitted from the node 1. It shows that there is. Similarly, of “Rsp # 1: 21”, “: 21” indicates that the transmission source is the node 2 and the transmission destination is the node 1, and “Rsp # 1” is the first response transmitted from the node 2. It is shown that.

図12および図13では、具体的には、ノード1はノード2に対して、3つのリクエストパケットとして、1番目にはリードリクエスト[RD−Req#1:12]を送信し、2番目のリクエストパケットとしてライトリクエスト[WR−Req#2:12]を送信し、3番目のリクエストパケットとしてリードリクエスト[RD−Req#3:12]を送信することとする。   In FIG. 12 and FIG. 13, specifically, the node 1 transmits a read request [RD-Req # 1: 12] to the node 2 as three request packets, and sends the second request. A write request [WR-Req # 2: 12] is transmitted as a packet, and a read request [RD-Req # 3: 12] is transmitted as a third request packet.

なお、図12および図13には、8段階の動作状態が示されているが、各動作状態は、各ノードに、パケットが到着した状態を示している。   FIGS. 12 and 13 show eight stages of operation states. Each operation state indicates a state where a packet has arrived at each node.

まず、動作状態1では、ノード1には、3つのリクエストパケットが発生しており、1番目のリクエストパケット[RD−Req#1:12]が送信待ち状態となっている。   First, in the operation state 1, three request packets are generated in the node 1, and the first request packet [RD-Req # 1: 12] is in a transmission waiting state.

次に、動作状態2では、ノード1からノード2に向けて1番目のリクエストパケット[RD−Req#1:12]が送出され、ノード2にはノード1から送出された1番目のリクエストパケット[RD−Req#1:12]が到着する。そして、ノード1では、2番目のリクエストパケット[WR−Req#2:12]が送信待ち状態となる。また、ノード2では、到着した1番目のリクエストパケット[RD−Req#1:12]が受信されて、対応する処理が実行される。   Next, in the operation state 2, the first request packet [RD-Req # 1: 12] is transmitted from the node 1 to the node 2, and the first request packet transmitted from the node 1 [ RD-Req # 1: 12] arrives. Then, in the node 1, the second request packet [WR-Req # 2: 12] enters a transmission waiting state. Also, the node 2 receives the first request packet [RD-Req # 1: 12] that has arrived, and executes the corresponding processing.

そして、動作状態3では、ノード1からノード2に向けて2番目のリクエストパケット[WR−Req#2:12]が送出され、ノード2にはノード1から送出された2番目のリクエストパケット[WR−Req#2:12]が到着する。そして、ノード1では、3番目のリクエストパケット[RD−Req#3:12]が送信待ち状態となる。   In the operation state 3, the second request packet [WR-Req # 2: 12] is sent from the node 1 to the node 2, and the second request packet [WR] sent from the node 1 is sent to the node 2. -Req # 2: 12] arrives. In the node 1, the third request packet [RD-Req # 3: 12] is in a transmission waiting state.

しかしながら、このとき、ノード2では、1番目のリクエストパケット[RD−Req#1:12]に対応する処理が実行中であり、2番目のリクエストパケット[WR−Req#2:12]を受信して、対応する処理を実行することができない。   However, at this time, the process corresponding to the first request packet [RD-Req # 1: 12] is being executed in the node 2, and the second request packet [WR-Req # 2: 12] is received. Therefore, the corresponding process cannot be executed.

そこで、次の動作状態4において、ノード2では、2番目のリクエストパケット[WR−Req#2:12]がそのままノード3に向けて送出され、ノード3にはノード2から送出された2番目のリクエストパケット[WR−Req#2:12]が到着する。   Therefore, in the next operation state 4, in the node 2, the second request packet [WR-Req # 2: 12] is sent to the node 3 as it is, and the second request packet sent from the node 2 is sent to the node 3. A request packet [WR-Req # 2: 12] arrives.

また、動作状態4では、ノード1からノード2に向けて3番目のリクエストパケット[RD−Req#3:12]が送出され、ノード2にはノード1から送出された3番目のリクエストパケット[RD−Req#3:12]が到着する。   In the operation state 4, the third request packet [RD-Req # 3: 12] is sent from the node 1 to the node 2, and the third request packet [RD-RD] sent from the node 1 is sent to the node 2. -Req # 3: 12] arrives.

このとき、動作状態3で実行中であった1番目のリクエストパケット[RD−Req#1:12]は終了しており、1番目のリクエストパケットに対する応答を示すレスポンスパケット[RD−Rsp#1:21]が発生して送信待ち状態となっているので、ノード2では、到着した3番目のリクエストパケット[RD−Req#3:12]が受信されて、対応する処理が実行される。   At this time, the first request packet [RD-Req # 1: 12] being executed in the operation state 3 has ended, and a response packet [RD-Rsp # 1: indicating a response to the first request packet]. 21] is generated and the transmission wait state occurs, the node 2 receives the arrived third request packet [RD-Req # 3: 12] and executes the corresponding processing.

次に、動作状態5では、ノード2からノード3に向けて、1番目のレスポンスパケット[RD−Rsp#1:21]が送出され、ノード3にはノード2から送出された1番目のレスポンスパケット[RD−Rsp#1:21]が到着する。また、ノード3からノード1に向けて、動作状態4において到着した2番目のリクエストパケット[WR−Req#2:12]が送出され、ノード1にはノード3から送出された2番目のリクエストパケット[WR−Req#2:12]が到着する。   Next, in the operation state 5, the first response packet [RD-Rsp # 1: 21] is transmitted from the node 2 to the node 3, and the first response packet transmitted from the node 2 is transmitted to the node 3. [RD-Rsp # 1: 21] arrives. Further, the second request packet [WR-Req # 2: 12] arriving in the operation state 4 is transmitted from the node 3 to the node 1, and the second request packet transmitted from the node 3 is transmitted to the node 1. [WR-Req # 2: 12] arrives.

そして、動作状態6では、ノード1からノード2に向けて、動作状態5において到着した2番目のリクエストパケット[WR−Req#2:12]が送出され、ノード2には、ノード1から送出された2番目のリクエストパケット[WR−Req#2:12]が到着する。   In the operation state 6, the second request packet [WR-Req # 2: 12] that arrived in the operation state 5 is sent from the node 1 to the node 2, and is sent to the node 2 from the node 1. The second request packet [WR-Req # 2: 12] arrives.

また、ノード2からノード3に向けて、送信待ち状態であった3番目のリクエストパケットに対するレスポンスパケット[RD−Rsp#3:21]が送出され、ノード3には、ノード2から送出された3番目のレスポンスパケット[RD−Rsp#3:21]が到着する。そして、ノード2では、到着した2番目のリクエストパケット[WR−Req#2:12]が受信されて、対応する処理が実行されるとともに、2番目のリクエストパケットに対するレスポンスパケット[WR−Rsp#2:21]が発生して送信待ち状態となる。   Also, a response packet [RD-Rsp # 3: 21] corresponding to the third request packet waiting for transmission is sent from node 2 to node 3, and 3 sent from node 2 to node 3. The second response packet [RD-Rsp # 3: 21] arrives. Then, the node 2 receives the arrived second request packet [WR-Req # 2: 12], executes a corresponding process, and responds to the second request packet [WR-Rsp # 2]. : 21] occurs, and the transmission is awaited.

また、ノード3からノード1に向けて、動作状態5において到着した1番目のレスポンスパケット[RD−Rsp#1:21]が送出され、ノード1にはノード3から送出された1番目のレスポンスパケット[RD−Rsp#1:21]が到着する。   In addition, the first response packet [RD-Rsp # 1: 21] that arrives in the operation state 5 is sent from the node 3 to the node 1, and the first response packet sent from the node 3 is sent to the node 1. [RD-Rsp # 1: 21] arrives.

そして、動作状態7では、ノード2からノード3に向けて、2番目のレスポンスパケット[WR−Rsp#2:21]が送出され、ノード3にはノード2から送出された2番目のレスポンスパケット[WR−Rsp#2:21]が到着する。   Then, in the operation state 7, the second response packet [WR-Rsp # 2: 21] is sent from the node 2 to the node 3, and the second response packet sent from the node 2 to the node 3 [ WR-Rsp # 2: 21] arrives.

また、ノード3からノード1に向けて、動作状態6において到着した3番目のレスポンスパケット[RD−Rsp#3:21]が送出され、ノード1には、ノード3から送出された3番目のレスポンスパケット[RD−Rsp#3:21]が到着する。   Also, the third response packet [RD-Rsp # 3: 21] that arrived in the operation state 6 is sent from the node 3 to the node 1, and the third response sent from the node 3 is sent to the node 1. The packet [RD-Rsp # 3: 21] arrives.

動作状態8では、ノード3からノード1に向けて、動作状態7において到着した2番目のレスポンスパケット[WR−Rsp#2:21]が送出され、ノード1には、ノード3から送出された2番目のレスポンスパケット[WR−Rsp#2:21]が到着する。   In the operation state 8, the second response packet [WR-Rsp # 2: 21] that arrived in the operation state 7 is sent from the node 3 to the node 1, and 2 sent from the node 3 to the node 1. The second response packet [WR-Rsp # 2: 21] arrives.

以上説明した動作説明からわかるように、ノード2で受信されて実行されるリクエストパケットは、1番目のリクエストパケット[RD−Req#1:12]、3番目のリクエストパケット[WR−Req#3:12]、2番目のリクエストパケット[RD−Req#3:12]の順となって、送信された順番と異なる場合がある。   As can be seen from the operation description described above, the request packet received and executed by the node 2 is the first request packet [RD-Req # 1: 12], the third request packet [WR-Req # 3: 12] The order of the second request packet [RD-Req # 3: 12] may be different from the order of transmission.

上記のように、リクエストパケットの送出順と、リクエストパケットの実行の開始順が異なると、例えば、動作の順番を守る必要がある処理が順に実行されるような場合に問題が発生する可能性がある。このため、上記のように、リクエストパケットの送出順と、リクエストパケットの実行の開始順が異なることがないようにすることが望ましい。   As described above, if the order in which request packets are sent out and the order in which request packets are executed are different, problems may occur when, for example, processes that must follow the order of operations are executed in order. is there. For this reason, as described above, it is desirable that the transmission order of request packets and the start order of execution of request packets do not differ.

また、1つのノードから複数の別のノードにリクエストパケットを順番に送出した場合にも、ノードに関係なく、リクエストパケットの送出順と、リクエストパケットの実行の開始順と、が一致することが望ましい。   Also, even when request packets are sent in order from one node to a plurality of other nodes, it is desirable that the order in which request packets are sent and the order in which request packets are executed match, regardless of the node. .

本発明は、上述の課題を解決するためになされたものであり、ループ状の通信経路により接続された複数ノードのうち、少なくとも2以上のノードがプロセッサで構成されており、送信元のノードから送信先のノードに向けて前記通信経路上にパケットを送出することにより、ノード間のデータ通信を行うことが可能なマルチプロセッサシステムにおいて、リクエストパケットの送出順とリクエストパケットの実行の開始順を一致させる技術を提供することを目的とする。   The present invention has been made to solve the above-described problem, and at least two or more nodes among a plurality of nodes connected by a loop communication path are configured by a processor. In a multiprocessor system capable of data communication between nodes by sending packets to the destination node on the communication path, the order in which request packets are sent and the order in which request packets are started are matched. The purpose is to provide technology.

上述の課題の少なくとも一部を解決するために、本発明は、
ループ状の通信経路により接続された複数ノードのうち、少なくとも2以上のノードがプロセッサで構成されており、送信元のノードから送信先のノードに向けて前記通信経路上にパケットを送出することにより、ノード間のデータ通信を行うことが可能なマルチプロセッサシステムであって、
各ノードは、前記送信先のノードに向けて、ある処理の要求を示すリクエストパケットを送信したときに、前記送信先のノードを示す情報を記憶しておき、前記送信先のノードから前記処理の要求に対する応答を示すレスポンスパケットを受信するまで、前記送信先のノードに対して新たなリクエストパケットを送信することを禁止する、
ことを特徴とする。
In order to solve at least a part of the above problems, the present invention provides:
Among the plurality of nodes connected by a loop communication path, at least two or more nodes are configured by a processor, and by sending a packet on the communication path from the transmission source node to the transmission destination node A multiprocessor system capable of performing data communication between nodes,
When each node transmits a request packet indicating a request for a process to the destination node, each node stores information indicating the destination node, and the process from the destination node Prohibit sending a new request packet to the destination node until receiving a response packet indicating a response to the request;
It is characterized by that.

上記構成によれば、リクエストパケットの送出順とリクエストパケットの実行の開始順を一致させることができる。   According to the above configuration, the request packet transmission order and the request packet execution start order can be matched.

なお、前記各ノードは、
前記送信先のノードを示す情報を記憶するために、(全ノード数−1)よりも少ない数の複数の記憶部を備えることが好ましい。
Each of the nodes is
In order to store the information indicating the destination node, it is preferable to include a plurality of storage units smaller than (total number of nodes −1).

上記のようにしても、(全ノード数―1)の記憶部を備える場合と同等の処理性能を維持することが可能である。   Even with the above configuration, it is possible to maintain the same processing performance as when the storage units (total number of nodes−1) are provided.

また、前記送信先のノードを示す情報は、送信したリクエストパケットと、前記送信したリクエストパケットが送信済みであることを示すフラグと、で構成されるようにしてもよい。   Further, the information indicating the destination node may be composed of a transmitted request packet and a flag indicating that the transmitted request packet has been transmitted.

上記の場合、例えば、送信待ちのリクエストパケットを記憶しておく送信バッファを利用して、送信した後も、対応するレスポンスパケットを受信するまで、送信したリクエストパケットを送信バッファで記憶するようにしておけば、送信済みフラグをセットしておくための容量の小さな記憶部を用意することにより、容易に実現することが可能である。   In the above case, for example, by using a transmission buffer for storing request packets waiting to be transmitted, the transmitted request packets are stored in the transmission buffer until the corresponding response packet is received after transmission. In this case, it can be easily realized by preparing a storage unit with a small capacity for setting the transmitted flag.

なお、前記マルチプロセッサシステムは、1つの半導体基板上に集積化することが可能である。   The multiprocessor system can be integrated on a single semiconductor substrate.

本発明は、上記マルチプロセッサシステムとしての構成の他、上記マルチプロセッサシステムを備える種々の画像処理装置として構成することもできる。また、これら装置発明の態様に限ることなく、データ通信方法といった方法発明の態様で実現することも可能である。なお、本法発明の態様においても、先に示した種々の付加的要素を適用することが可能である。   The present invention can be configured as various image processing apparatuses including the multiprocessor system in addition to the configuration as the multiprocessor system. In addition, the present invention is not limited to the above-described aspects of the device invention, and can also be realized by a method invention aspect such as a data communication method. It should be noted that the various additional elements described above can also be applied in the embodiment of the present invention.

以下、本発明の実施の形態について、実施例に基づき以下の順序で説明する。
A.実施例:
A1.マルチプロセッサシステムの構成:
A2.通信制御部の構成および動作:
A3.送受信制御部の動作:
A4.通信動作の具体例:
A4.1.具体例1:
A4.2.具体例2:
A5.実施例の効果:
B.変形例:
Hereinafter, embodiments of the present invention will be described in the following order based on examples.
A. Example:
A1. Multiprocessor system configuration:
A2. Configuration and operation of communication controller:
A3. Operation of the transmission / reception controller:
A4. Specific example of communication operation:
A4.1. Example 1:
A4.2. Example 2:
A5. Effects of the embodiment:
B. Variation:

A.実施例:
A1.マルチプロセッサシステムの構成:
図1は、本発明のマルチプロセッサシステムの一実施例としての概要構成を示す説明図である。このマルチプロセッサシステムMPSは、通信経路10を介して接続される第1〜第5の5つのノード(図中、「ノード1」〜「ノード5」と表記)として、3つのプロセッサ20A〜20C、メモリコントローラ20D、および、I/Oインタフェース20Eを備えている。また、マルチプロセッサシステムMPSは、各構成要素を1つの半導体基板上に集積化したマイクロプロセッサである。
A. Example:
A1. Multiprocessor system configuration:
FIG. 1 is an explanatory diagram showing a schematic configuration as an embodiment of the multiprocessor system of the present invention. The multiprocessor system MPS includes three processors 20A to 20C as first to fifth nodes (indicated as “node 1” to “node 5” in the figure) connected via the communication path 10. A memory controller 20D and an I / O interface 20E are provided. The multiprocessor system MPS is a microprocessor in which each component is integrated on one semiconductor substrate.

第1〜第3のノードとしてのプロセッサ20A〜20Cは、それぞれCPUの他、キャッシュメモリ、ROM、RAM、通信制御部等の周辺回路を含むユニットを意味している。また、第4のノードとしてのメモリコントローラ20Dおよび第5のノードとしてのI/Oインタフェースも、同様に、通信制御部等の周辺回路を含むユニットを意味している。   The processors 20A to 20C as first to third nodes mean units including peripheral circuits such as a cache memory, a ROM, a RAM, and a communication control unit in addition to the CPU. Similarly, the memory controller 20D as the fourth node and the I / O interface as the fifth node mean units including peripheral circuits such as a communication control unit.

なお、以下の説明において、第1〜第3のノードとしてのプロセッサ20A〜20C、第4のノードとしてのメモリコントローラ20Dおよび第5のノードとしてのI/Oインタフェースを、それぞれループ状の通信経路10に接続されるノードとして説明する場合には、第1〜第5のノードの符号を、20A〜20Eとして説明することとする。   In the following description, the processors 20A to 20C as the first to third nodes, the memory controller 20D as the fourth node, and the I / O interface as the fifth node are respectively connected to the loop communication path 10. In the following description, the reference numerals of the first to fifth nodes are 20A to 20E.

通信経路10は、第1〜第5のノード20A〜20Eのそれぞれが備える通信制御部(図中、「RBC」と表記)22A〜22Eの入力と出力とを、順番に接続することにより、ループ状に形成されている。そして、各ノード20A〜20Eの間では、それぞれループ状の通信経路10に接続されている通信制御部22A〜22Eを介して、所定の通信内容を示すデータを通信制御部の入力から受信するとともに、通信制御部の出力から送信して、1方向にのみ伝達することにより、互いの通信が実行される。   The communication path 10 is a loop by sequentially connecting the inputs and outputs of the communication control units (indicated as “RBC” in the drawing) 22A to 22E included in each of the first to fifth nodes 20A to 20E. It is formed in a shape. And between each node 20A-20E, while receiving the data which show predetermined | prescribed communication content from the input of a communication control part via the communication control part 22A-22E connected to the loop-shaped communication path 10, respectively. By transmitting from the output of the communication control unit and transmitting only in one direction, mutual communication is executed.

所定の通信内容としては、送信先のノードにデータを書き込むためのライトリクエストメッセージや、送信先のデバイスからデータを読み出すためのリードリクエストメッセージ、これらのリクエストメッセージに対するレスポンスメッセージ等がある。そして、各ノード間で送受信されるデータは、いわゆるパケットとして構成されている。   The predetermined communication content includes a write request message for writing data to a destination node, a read request message for reading data from a destination device, a response message for these request messages, and the like. And the data transmitted / received between each node are comprised as what is called a packet.

図2は、各ノード間で送受信されるパケットのデータ構造について示す説明図である。   FIG. 2 is an explanatory diagram showing a data structure of a packet transmitted / received between the nodes.

図2に示すように、通信経路10を介して伝送されるパケットは、64ビットの固定長を有しており、大きく分けて前半32ビットのヘッダ部と、後半32ビットのペイロード部と、で構成される。   As shown in FIG. 2, a packet transmitted via the communication path 10 has a fixed length of 64 bits, and is roughly divided into a header part of the first half 32 bits and a payload part of the second half 32 bits. Composed.

ヘッダ部は、さらに、前半16ビットの制御情報部分と、後半16ビットのアドレス部で構成される。制御情報部分は、先頭から順に、通信内容の種類(リードリクエストメッセージやライトリクエストメッセージ等)を示すフィールド((図中、「TYPE」と表記)、データサイズを示すフィールド(図中、「Dsize」と表記)、送信先(あて先)IDを示すフィールド(図中、「DID」と表記)、送信元IDを示すフィールド(図中には、「SID」と表記)で構成されている。アドレス部は、送信先のデバイスに書き込むデータや、送信先のデバイスから読み出されるデータを書き込むためのメモリ(図示省略)に確保されている通信用メモリ領域のアドレスを示すフィールドで構成されている。   The header part further comprises a control information part of the first 16 bits and an address part of the second 16 bits. The control information part includes, in order from the top, a field indicating the type of communication content (read request message, write request message, etc.) (indicated as “TYPE” in the figure), and a field indicating data size (in the figure, “Dsize”). ), A field indicating the transmission destination (destination) ID (denoted as “DID” in the figure), and a field indicating the transmission source ID (denoted as “SID” in the figure). Is composed of a field indicating the address of a communication memory area secured in a memory (not shown) for writing data to be written to the destination device and data to be read from the destination device.

ペイロード部は、32ビット全てが、送受信される通信データを格納するためのフィールドである。   The payload part is a field for storing communication data to be transmitted and received in all 32 bits.

ここで、通信経路10は、上記パケットを伝送するための32本の通信配線と、32本の通信配線によりパラレル転送されるデータの状態を示す2ビットの状態制御データを伝送するための2本の通信配線の、計34本の通信配線で構成されている。   Here, the communication path 10 includes two communication lines for transmitting the packet and two lines for transmitting 2-bit state control data indicating the state of data transferred in parallel by the 32 communication lines. The communication wiring is composed of a total of 34 communication wirings.

従って、各ノード20A〜20Eの通信制御部22A〜22Eは、システムクロック1サイクルで、2ビットの状態制御データと、1つのパケットを構成する64ビットのデータのうち、32ビットのデータと、をパラレル転送することができる。つまり、あるノードの通信制御部から見ると、前段のノードの通信制御部から、64ビットのパケットの32ビットのヘッダ部と32ビットのペイロード部とが、1サイクルごとに交互に送信されてくることになる。なお、以下では、2ビットの状態制御データに対応するビットを「状態制御ビット」と呼び、32ビットのデータに対応するビットを「パケットビット」と呼ぶこととする。   Accordingly, the communication control units 22A to 22E of the nodes 20A to 20E receive the 2-bit status control data and the 32-bit data among the 64-bit data constituting one packet in one cycle of the system clock. Parallel transfer is possible. That is, when viewed from the communication control unit of a certain node, the 32-bit header portion and 32-bit payload portion of the 64-bit packet are alternately transmitted from the communication control portion of the preceding node every cycle. It will be. In the following description, a bit corresponding to 2-bit status control data is referred to as a “status control bit”, and a bit corresponding to 32-bit data is referred to as a “packet bit”.

ここで、2ビットの状態制御ビットのうち、一方の1ビットは、同じサイクルにおける32ビットのパケットビットのデータがヘッダ部を表すデータであるかペイロード部を表すデータであるかを示すビット(Hビット)である。   Here, one of the two status control bits is a bit (H) indicating whether the data of the 32-bit packet bits in the same cycle is data representing the header portion or data representing the payload portion. Bit).

具体的には、例えば、Hビットが「1」である場合には、同じサイクルのパケットビットのデータはヘッダ部を表すデータであることを示し、Hビットが「0」である場合には、同じサイクルのパケットビットのデータはヘッダ部を表すデータではないこと、すなわち、ペイロード部を表すデータであることを示す。   Specifically, for example, when the H bit is “1”, it indicates that the packet bit data in the same cycle is data representing the header portion, and when the H bit is “0”, It indicates that the packet bit data in the same cycle is not data representing the header portion, that is, data representing the payload portion.

従って、あるノードの通信制御部から見ると、前段のノードの通信制御部から、システムクロック1サイクルごとに、Hビットとして「1」と「0」とが交互に送信されてくることになる。   Therefore, when viewed from the communication control unit of a certain node, “1” and “0” are alternately transmitted as the H bit every cycle of the system clock from the communication control unit of the preceding node.

また、2ビットの状態制御ビットのうち、他方の1ビットは、同じサイクルにおける32ビットのパケットビットのデータが空パケットを構成するデータであるか否かを示すビット(Vビット)である。   The other 1 bit of the 2 state control bits is a bit (V bit) indicating whether or not the data of the 32-bit packet bit in the same cycle is data constituting an empty packet.

具体的には、例えば、Vビットが「0」である場合には、同じサイクルにおける32ビットのパケットビットのデータが空パケットを構成するデータであることを示し、Vビットが「1」の場合には、同じサイクルにおける32ビットのパケットビットのデータが空パケットを構成するデータではなく、通常のパケットを構成するデータであることを示す。なお、通常のパケットとは、ヘッダ部に送信先ID等の制御情報を格納し、ペイロード部に通信内容に応じた通信データを格納したパケットを意味している。   Specifically, for example, when the V bit is “0”, it indicates that the 32-bit packet bit data in the same cycle is data constituting an empty packet, and the V bit is “1”. Indicates that the data of 32-bit packet bits in the same cycle is not data constituting an empty packet but data constituting a normal packet. Note that the normal packet means a packet in which control information such as a transmission destination ID is stored in the header portion and communication data corresponding to communication contents is stored in the payload portion.

なお、本実施例では、マルチプロセッサを構成するプロセッサ、メモリコントローラ、および、I/Oインタフェース等の各機能ブロックをノードとして説明しているが、各ブロックに備えられる通信制御部をノードとみることも可能である。   In this embodiment, each functional block such as a processor, a memory controller, and an I / O interface constituting a multiprocessor is described as a node. However, a communication control unit provided in each block is regarded as a node. Is also possible.

A2.通信制御部の構成および動作:
図3は、ノードに備えられる通信制御部の一構成例を示す説明図である。なお、図3では、各ノードの通信制御部22A〜22Eを代表して、第1のノード20Aの通信制御部22Aの構成例を示しているが、他のノードの通信制御部22B〜22Eも基本的に同じ構成である。
A2. Configuration and operation of communication controller:
FIG. 3 is an explanatory diagram illustrating a configuration example of the communication control unit provided in the node. In FIG. 3, a configuration example of the communication control unit 22A of the first node 20A is shown on behalf of the communication control units 22A to 22E of each node, but the communication control units 22B to 22E of other nodes are also illustrated. Basically the same configuration.

通信制御部22Aは、入力レジスタ221と、出力レジスタ222と、送受信制御部223と、送信済みフラグ部224と、送信バッファ225と、受信データバッファ226と、プロセッサI/F制御部227と、を備えている。   The communication control unit 22A includes an input register 221, an output register 222, a transmission / reception control unit 223, a transmitted flag unit 224, a transmission buffer 225, a reception data buffer 226, and a processor I / F control unit 227. I have.

送信バッファ225は、後述するように、プロセッサI/FからプロセッサI/F制御部227を介して送信要求されたパケットを格納する複数の送信レジスタを備えている。この送信レジスタの数は、具体的には、通信経路10に接続される全ノード数から自分の数を引いた値「4」よりも小さい「3」とされており、3つのレジスタ225A〜225Cを備えている。   As will be described later, the transmission buffer 225 includes a plurality of transmission registers that store packets requested to be transmitted from the processor I / F via the processor I / F control unit 227. Specifically, the number of transmission registers is set to “3”, which is smaller than a value “4” obtained by subtracting the number of nodes from the total number of nodes connected to the communication path 10, and the three registers 225A to 225C. It has.

受信バッファ226は、後述するように、入力レジスタ221から送受信制御部223を介して入力されるパケットを格納する1つの受信レジスタ226Aを備えている。ただし、複数の受信レジスタを備えるようにしてもよい。   As will be described later, the reception buffer 226 includes one reception register 226A that stores packets input from the input register 221 via the transmission / reception control unit 223. However, a plurality of reception registers may be provided.

プロセッサI/F制御部227は、図示しないプロセッサI/Fとの間で実行される、通信経路10を介して送信するべきパケット、および、通信経路10を介して受信したパケット、の受け渡しを制御する。例えば、図示しないプロセッサI/Fから送信要求されたパケット(例えば、ライトリクエストパケット、リードリクエストパケット等)を示すデータを、送信バッファ225に用意されている3つの送信レジスタ225A〜225Cのうち、空いているレジスタに書き込みを行い、空いているレジスタが無い場合には、空いているレジスタが発生するまで待って、そのレジスタに書き込みを行う。また、受信バッファ226に用意されている受信レジスタ226Aに新しいデータが書き込まれた場合には、そのデータをプロセッサI/Fへ受け渡す。   The processor I / F control unit 227 controls delivery of a packet to be transmitted via the communication path 10 and a packet received via the communication path 10, which is executed with a processor I / F (not shown). To do. For example, data indicating a packet requested to be transmitted from a processor I / F (not shown) (for example, a write request packet, a read request packet, etc.) is empty among the three transmission registers 225A to 225C prepared in the transmission buffer 225. If there is no free register, the program waits until a free register is generated and then writes to that register. When new data is written in the reception register 226A prepared in the reception buffer 226, the data is transferred to the processor I / F.

なお、本例の通信制御部22Aは、プロセッサとしてのノード20Aに備える通信制御部であるので、プロセッサI/Fとの間でのデータの受け渡しを制御するプロセッサI/F制御部227を備えているが、メモリコントローラとしてのノード20DやI/Oインタフェースとしてのノード20Eの場合には、適宜対応するI/Fとの間でのデータの受け渡しを制御するI/F制御部を備えることとなる。   Note that the communication control unit 22A in this example is a communication control unit provided in the node 20A as a processor, and thus includes a processor I / F control unit 227 that controls data exchange with the processor I / F. However, in the case of the node 20D as a memory controller and the node 20E as an I / O interface, an I / F control unit that appropriately controls data exchange with the corresponding I / F is provided. .

入力レジスタ221は、通信制御部の入力側に接続される通信経路10の34ビットの配線幅に等しいビット数の記憶領域を有するレジスタである。同様に、出力レジスタ222は、通信制御部の出力側に接続される通信経路10の34ビットの配線幅に等しいビット数の記憶領域を有するレジスタである。   The input register 221 is a register having a storage area with the number of bits equal to the 34-bit wiring width of the communication path 10 connected to the input side of the communication control unit. Similarly, the output register 222 is a register having a storage area with the number of bits equal to the 34-bit wiring width of the communication path 10 connected to the output side of the communication control unit.

入力レジスタ221は、入力側の通信経路10を介して前段のノードから送信されてくる34ビットのデータを、システムクロックSCKの各サイクルの書き込みタイミングで書き込む。同様に、出力レジスタ222は、送受信制御部223から出力されてくる34ビットのデータを、入力レジスタ221と同じ、システムクロックSCKの各サイクルの書き込みタイミングで書き込む。   The input register 221 writes 34-bit data transmitted from the previous node via the communication path 10 on the input side at the write timing of each cycle of the system clock SCK. Similarly, the output register 222 writes 34-bit data output from the transmission / reception control unit 223 at the same writing timing of each cycle of the system clock SCK as the input register 221.

従って、通信制御部22Aは、2サイクルのシステムクロックごとに1つのパケットを受信するとともに、送信することになる。具体的には、入力レジスタ221では、パケットのヘッダ部が書き込まれる第1サイクルと、パケットのペイロード部が書き込まれる第2サイクルとで、1つのパケットの受信が行われる。また、出力レジスタ222では、入力レジスタ221における第1および第2サイクルを基準に説明すると、入力レジスタ221に対して1サイクル遅れてパケットのヘッダ部が書き込まれる第2サイクルと、パケットのペイロード部が書き込まれる第1サイクルとで、1つのパケットの送信が行われる。なお、以下の説明においても、入力レジスタ221にパケットのヘッダ部が書き込まれるサイクルを第1サイクル、パケットのペイロード部が書き込まれる第2サイクルとして、説明することとする。   Therefore, the communication control unit 22A receives and transmits one packet for every two cycles of the system clock. Specifically, in the input register 221, one packet is received in the first cycle in which the packet header portion is written and in the second cycle in which the packet payload portion is written. The output register 222 will be described based on the first and second cycles in the input register 221. The second cycle in which the header portion of the packet is written with a delay of one cycle with respect to the input register 221, and the payload portion of the packet is One packet is transmitted in the first cycle to be written. In the following description, the cycle in which the packet header portion is written in the input register 221 will be described as the first cycle, and the second cycle in which the packet payload portion is written.

送受信制御部223は、後で詳述するように動作して、自分宛のパケットの受信、自分宛でないパケットの転送、および、未送信パケットの送信を制御する。   The transmission / reception control unit 223 operates as described in detail later to control reception of packets addressed to itself, transfer of packets not addressed to itself, and transmission of untransmitted packets.

具体的には、送受信制御部223は、第1サイクルで入力レジスタ221に書き込まれたヘッダ部に記載のあて先に基づいて、自分宛のパケットであるか否か判断して、自分宛のパケットでない場合には、第1サイクルおよび第2サイクルの2サイクルで入力レジスタ221に書き込まれた64ビットのパケットを、そのまま出力レジスタ222に向けて出力して、1サイクルずれた第2サイクルおよび第1サイクルで出力レジスタ222に書き込ませる。   Specifically, the transmission / reception control unit 223 determines whether the packet is addressed to itself based on the destination described in the header part written in the input register 221 in the first cycle, and is not a packet addressed to itself. In this case, the 64-bit packet written to the input register 221 in the first cycle and the second cycle is output to the output register 222 as it is, and the second cycle and the first cycle shifted by one cycle are output. To write to the output register 222.

一方、自分宛のパケットである場合には、第1サイクルおよび第2サイクルで入力レジスタ221に書き込まれた64ビットのパケットを、受信バッファ226に向けて出力して、1サイクルずれた第2サイクルおよび第1サイクルで受信バッファ226の受信レジスタ226Aに書き込ませる。   On the other hand, if the packet is addressed to itself, the 64-bit packet written in the input register 221 in the first cycle and the second cycle is output to the reception buffer 226, and the second cycle is shifted by one cycle. In the first cycle, the data is written in the reception register 226A of the reception buffer 226.

また、送受信制御部223は、入力レジスタ221に書き込まれたパケットが自分宛のパケットおよび空パケットの場合には、送信バッファ225の3つの送信レジスタ225A〜225Cに書き込まれている未送信のパケットのうち、最も古いパケットを、1サイクルずれた第2サイクルおよび第1サイクルで出力レジスタ222に書き込ませる。なお、送信済みフラグ部224に用意されている3つの送信済みフラグ224A〜224Cは、3つの送信レジスタ225A〜225Cに対応して設けられており、例えば、それぞれ対応するレジスタに書き込まれているパケットが送信済みの場合には、「1」にセットされており、未送信の場合には「0」にリセットされる。従って、未送信のパケットの有無は、この送信済みフラグの状態を調べることにより判断可能である。   In addition, when the packet written in the input register 221 is a packet addressed to itself or an empty packet, the transmission / reception control unit 223 determines whether an untransmitted packet written in the three transmission registers 225A to 225C of the transmission buffer 225 is received. Of these, the oldest packet is written to the output register 222 in the second cycle and the first cycle shifted by one cycle. Note that the three transmitted flags 224A to 224C prepared in the transmitted flag section 224 are provided corresponding to the three transmission registers 225A to 225C, for example, packets written in the corresponding registers, respectively. Is set to “1” when it has been transmitted, and is reset to “0” when it has not been transmitted. Therefore, the presence / absence of an untransmitted packet can be determined by examining the state of the transmitted flag.

A3.送受信制御部の動作:
送受信制御部223は、以下で説明するように、自分宛のパケットの受信、自分宛でないパケットの転送、および、未送信パケットの送信を制御する。
A3. Operation of the transmission / reception controller:
As will be described below, the transmission / reception control unit 223 controls reception of packets addressed to itself, transfer of packets not addressed to itself, and transmission of untransmitted packets.

図4および図5は、送受信制御部で実行される送受信制御の手順について示す説明図である。   4 and 5 are explanatory diagrams showing a procedure of transmission / reception control executed by the transmission / reception control unit.

送受信制御部223は動作を開始すると、まず、送信バッファ225の送信レジスタ225A〜225C、受信バッファ226の受信レジスタ226A、および、フラグ部224の送信済みフラグ224A〜224Cをクリア(初期化)する(ステップS102)。   When the transmission / reception control unit 223 starts operation, first, the transmission registers 225A to 225C of the transmission buffer 225, the reception register 226A of the reception buffer 226, and the transmitted flags 224A to 224C of the flag unit 224 are cleared (initialized) ( Step S102).

そして、パケットの到着監視を開始する(ステップS104)。パケットの到着は、第1サイクルで、入力レジスタ221に書き込まれた状態制御ビットのうち、Hビットの状態を監視することにより判断することができる。例えば、第1サイクルのHビットは、同じサイクルのパケットビットのデータがヘッダ部を表すデータであることを示す「1」となっており、第2サイクルのHビットは「0」となっているので、Hビットが「1」であるか「0」であるかを判断することにより、パケットの到着を監視することができる。   Then, packet arrival monitoring is started (step S104). The arrival of the packet can be determined by monitoring the state of the H bit among the state control bits written in the input register 221 in the first cycle. For example, the H bit in the first cycle is “1” indicating that the packet bit data in the same cycle is data representing the header portion, and the H bit in the second cycle is “0”. Therefore, the arrival of the packet can be monitored by determining whether the H bit is “1” or “0”.

パケットが到着した場合には(ステップS104:YES)、到着したパケットが空パケットであるか否か判断する(ステップS106)。空パケットは、第1サイクルで、入力レジスタ221に書き込まれた、状態制御ビットのうち、Vビットの状態を監視することにより判断することができる。例えば、Vビットは、同じサイクルのパケットビットのデータが空パケットを構成するデータであることを示す場合には「0」となっており、同じサイクルのパケットビットのデータが通常のパケットを構成するデータであることを示す場合には「1」となっているので、Vビットが「0」であるか「1」であるかを監視することにより、空パケットを監視することができる。   If the packet has arrived (step S104: YES), it is determined whether the arrived packet is an empty packet (step S106). An empty packet can be determined by monitoring the state of the V bit among the state control bits written to the input register 221 in the first cycle. For example, the V bit is “0” when the packet bit data in the same cycle indicates data constituting an empty packet, and the packet bit data in the same cycle constitutes a normal packet. Since it is “1” when indicating that it is data, it is possible to monitor an empty packet by monitoring whether the V bit is “0” or “1”.

到着したパケットが空パケットでない場合には(ステップS106:NO)、後述するように、ステップS130以降の処理を実行する。   If the arrived packet is not an empty packet (step S106: NO), the processing after step S130 is executed as described later.

一方、到着したパケットが空パケットである場合には(ステップS106:YES)、未送信データがあるか否か判断する(ステップS110)。未送信データの有無は、送信済みフラグ部224の送信済みフラグ224A〜224Cの状態を調べることにより判断可能である。例えば、送信済みフラグ224A〜224Cは、それぞれ対応する送信レジスタ225A〜225Cに書き込まれているデータが、送信済みの場合には「1」にセットされ、未送信の場合には「0」にクリアされているので、送信済みフラグ224A〜224Cが「1」であるか「0」であるかを調べることにより、判断することができる。   On the other hand, if the arrived packet is an empty packet (step S106: YES), it is determined whether there is untransmitted data (step S110). The presence / absence of untransmitted data can be determined by examining the states of the transmitted flags 224A to 224C of the transmitted flag section 224. For example, the transmitted flags 224A to 224C are set to “1” when the data written in the corresponding transmission registers 225A to 225C have been transmitted, and cleared to “0” when the data has not been transmitted. Therefore, it can be determined by checking whether the transmitted flags 224A to 224C are “1” or “0”.

未送信データが無い場合には(ステップS110:NO)、空パケットを表すデータを出力レジスタ222に向けて出力して、出力レジスタ222に書き込ませることにより、空パケットを送信させる(ステップS112)。そして、ステップS104に戻って、次のパケットの到着を監視する。   If there is no untransmitted data (step S110: NO), data representing an empty packet is output to the output register 222 and written to the output register 222, thereby transmitting the empty packet (step S112). Then, returning to step S104, the arrival of the next packet is monitored.

一方、未送信データがある場合には(ステップS110:YES)、送信可能データがあるか否か判断する(ステップS114)。送信可能データがあるか否かは、未送信データのあて先が、送信済みデータのあて先と同じであるか否か調べることにより、判断可能である。具体的には、送信済みデータと同じあて先の場合には。送信不可と判断し、異なるあて先の場合には送信可と判断する。   On the other hand, if there is untransmitted data (step S110: YES), it is determined whether there is data that can be transmitted (step S114). Whether there is data that can be transmitted can be determined by checking whether the destination of the untransmitted data is the same as the destination of the transmitted data. Specifically, when the destination is the same as the transmitted data. It is determined that transmission is not possible, and if the destination is different, it is determined that transmission is possible.

送信可能データが無い場合には(ステップS114:NO)、ステップS112に戻って、空パケットを他のノードへ送信させた後、ステップS104に戻って、次のパケットの到着を監視する。   If there is no data that can be transmitted (step S114: NO), the process returns to step S112 to transmit an empty packet to another node, and then returns to step S104 to monitor the arrival of the next packet.

一方、送信可能データがある場合には(ステップS114:YES)、未送信データのうち、送信レジスタへの書き込みの最も古いものを選び出す(ステップS116)。この選び出しは、例えば、3つの送信レジスタ225A〜225Cへの書き込みの順番を記憶しておくことにより、容易に可能である。あるいは、FIFO形式のレジスタを利用することにより、容易に可能である。   On the other hand, if there is data that can be transmitted (step S114: YES), the oldest data that has been written to the transmission register is selected from the untransmitted data (step S116). This selection can be easily performed by storing the order of writing to the three transmission registers 225A to 225C, for example. Alternatively, it is easily possible by using a FIFO-type register.

そして、選び出した未送信データを出力レジスタ222に向けて出力して、出力レジスタ222に書き込ませることにより、そのデータの表すパケットを、ヘッダ部に記載のあて先へ送信させる(ステップS118)。   Then, the selected untransmitted data is output to the output register 222 and written to the output register 222, so that the packet represented by the data is transmitted to the destination described in the header part (step S118).

また、送信したデータの表すパケットが送信先から送られたリクエストパケットに対するレスポンスパケットであるか否か判断する(ステップS120)。レスポンスパケットであるか否かは、ヘッダ部の通信内容を示すフィールド(TYP)の記載を調べることにより判断可能である。   Further, it is determined whether or not the packet represented by the transmitted data is a response packet to the request packet transmitted from the transmission destination (step S120). Whether or not it is a response packet can be determined by examining the description of the field (TYP) indicating the communication content of the header part.

送信したデータの表すパケットがレスポンスパケットである場合には(ステップS124:YES)、送信したデータが格納されて(書き込まれて)いた送信レジスタを開放する(ステップS124)。そして、ステップS104に戻って、次のパケットの到着を監視する。   If the packet representing the transmitted data is a response packet (step S124: YES), the transmission register in which the transmitted data is stored (written) is released (step S124). Then, returning to step S104, the arrival of the next packet is monitored.

一方、送信したデータの表すパケットがレスポンスパケットでない場合には(ステップS124:NO)、送信したデータの格納されていた送信レジスタに対応する送信済みフラグを「1」にセットする(ステップS126)。そして、ステップS104に戻って、次のパケットの到着を監視する。   On the other hand, if the packet representing the transmitted data is not a response packet (step S124: NO), the transmitted flag corresponding to the transmission register in which the transmitted data is stored is set to “1” (step S126). Then, returning to step S104, the arrival of the next packet is monitored.

ところで、到着したパケットが空パケットでない場合には(ステップS106:NO)、さらに、パケットのあて先が自分宛か否かを判断する(ステップS130)。あて先の判断は、到着したパケットを構成するヘッダ部の送信先IDを示すフィールド(DID)の記載が、自分宛であるか否かを調べることにより可能である。   By the way, when the arrived packet is not an empty packet (step S106: NO), it is further determined whether or not the destination of the packet is addressed to itself (step S130). The destination can be determined by checking whether or not the description of the field (DID) indicating the transmission destination ID of the header part constituting the arrived packet is addressed to itself.

そして、到着したパケットが自分宛でない場合には(ステップS130:NO)、第1サイクルで入力レジスタ221に書き込まれたパケットビットのデータ、および、1サイクル後の第2サイクルで入力レジスタ221に書き込まれるパケットビットのデータを、出力レジスタ222に向けて出力して、出力レジスタ222に書き込ませることにより、入力レジスタ221に書き込まれたパケットを他のノードへ転送させる(ステップS132)。そして、ステップS104に戻って、次のパケットの到着を監視する。   If the arrived packet is not addressed to itself (step S130: NO), the packet bit data written in the input register 221 in the first cycle and the input register 221 in the second cycle after one cycle are written. The packet bit data to be output is output to the output register 222 and written to the output register 222, whereby the packet written to the input register 221 is transferred to another node (step S132). Then, returning to step S104, the arrival of the next packet is monitored.

一方、到着したパケットが自分宛のパケットである場合には(ステップS130:YES)、そのパケットがライトレスポンス(WRレスポンス)パケットであるか否か判断する(ステップS134)。ライトレスポンスパケットか否かの判断は、ヘッダ部の通信内容を示すフィールド(TYP)の記載を調べることにより可能である。   On the other hand, when the arrived packet is a packet addressed to itself (step S130: YES), it is determined whether or not the packet is a write response (WR response) packet (step S134). Whether or not the packet is a write response packet can be determined by examining the description of the field (TYP) indicating the communication content of the header portion.

到着したパケットがライトレスポンスパケットである場合には(ステップS134:YES)、送信バッファ225の3つの送信レジスタ225A〜225Cのうち、対応するライトリクエストパケットが格納されている送信レジスタを開放するとともに、送信済みフラグ部224の3つの送信済みフラグ224A〜224Cのうち、その送信レジスタに対応してセットされている送信済みフラグをクリアする(ステップS136)。そして、ステップS110に戻って、ステップS110〜S126の処理を実行する。   When the arrived packet is a write response packet (step S134: YES), among the three transmission registers 225A to 225C of the transmission buffer 225, the transmission register storing the corresponding write request packet is released, Of the three transmitted flags 224A to 224C of the transmitted flag section 224, the transmitted flag set corresponding to the transmission register is cleared (step S136). And it returns to step S110 and performs the process of step S110-S126.

一方、到着したパケットがライトレスポンスパケットでない場合には(ステップS134:NO)、受信バッファ226の受信レジスタ226Aが開放されており、受信することが可能であるか否か判断する(ステップS138)。   On the other hand, if the arrived packet is not a write response packet (step S134: NO), it is determined whether the reception register 226A of the reception buffer 226 is open and can be received (step S138).

受信レジスタ226Aが開放されておらず、受信することが不可である場合には(ステップS138:NO)、ステップS132に戻って、入力レジスタ221に書き込まれたパケットを他のノードへ転送させた後、ステップS104に戻って、次のパケットの到着を監視する。   If the reception register 226A is not open and cannot be received (step S138: NO), the process returns to step S132, and after the packet written in the input register 221 is transferred to another node Returning to step S104, the arrival of the next packet is monitored.

一方、受信レジスタ226Aが開放されており、受信可能である場合には(ステップS138:YES)、第1サイクルで入力レジスタ221に書き込まれたパケットビットのデータ、および、1サイクル後の第2サイクルで入力レジスタ221に書き込まれるパケットビットのデータを、受信バッファ226に向けて出力して、受信レジスタ226Aを更新させるとともに、プロセッサI/F制御部227を介して、プロセッサI/Fに対してパケット受信を通知させる(ステップS140)。   On the other hand, when the reception register 226A is opened and reception is possible (step S138: YES), the packet bit data written to the input register 221 in the first cycle and the second cycle after one cycle. The packet bit data written to the input register 221 is output to the reception buffer 226 to update the reception register 226A and to the processor I / F via the processor I / F control unit 227. The reception is notified (step S140).

そして、受信したパケットがライトリクエスト(WRリクエスト)パケットであるか否か判断する(ステップS142)。ライトリクエストパケットか否かの判断は、ヘッダ部の通信内容を示すフィールド(TYP)の記載を調べることにより可能である。   Then, it is determined whether or not the received packet is a write request (WR request) packet (step S142). It is possible to determine whether the packet is a write request packet by checking the description of the field (TYP) indicating the communication content of the header part.

受信したパケットがライトリクエストパケットである場合には(ステップS142:YES)、ライトレスポンスパケットを表すデータを出力レジスタ222に向けて出力して、出力レジスタ222に書き込ませることにより、ライトレスポンスパケットをライトリクエストパケットの送信元に向けて送信させる(ステップS144)。そして、ステップS104に戻って、次のパケットの到着を監視する。   If the received packet is a write request packet (step S142: YES), data representing the write response packet is output to the output register 222 and written to the output register 222, thereby writing the write response packet. Transmission is performed toward the transmission source of the request packet (step S144). Then, returning to step S104, the arrival of the next packet is monitored.

一方、受信したパケットがライトリクエストパケットでない場合には(ステップS142:NO)、さらに、受信したパケットがリードレスポンス(RDレスポンス)パケットであるか否か判断する(ステップS146)。リードレスポンスパケットか否かの判断は、ヘッダ部の通信内容を示すフィールド(TYP)の記載を調べることにより可能である。   On the other hand, if the received packet is not a write request packet (step S142: NO), it is further determined whether or not the received packet is a read response (RD response) packet (step S146). Whether or not the packet is a read response packet can be determined by examining the description of the field (TYP) indicating the communication content in the header part.

受信したパケットがリードレスポンスパケットである場合には(ステップS146:YES)、送信バッファ225の3つの送信レジスタ225A〜225Cのうち、対応するリードリクエストパケットが格納されている送信レジスタを開放するとともに、送信済みフラグ部224の3つの送信済みフラグ224A〜224Cのうち、その送信レジスタに対応してセットされている送信済みフラグをクリアする(ステップS148)。そして、ステップS110に戻って、ステップS110〜S126の処理を実行する。   When the received packet is a read response packet (step S146: YES), among the three transmission registers 225A to 225C of the transmission buffer 225, the transmission register storing the corresponding read request packet is released, Of the three transmitted flags 224A to 224C of the transmitted flag section 224, the transmitted flag set corresponding to the transmission register is cleared (step S148). And it returns to step S110 and performs the process of step S110-S126.

一方、到着したパケットがリードレスポンスパケットでない場合には(ステップS146:NO)、ステップS110に戻って、ステップS110〜S126の処理を実行する。   On the other hand, when the arrived packet is not a read response packet (step S146: NO), the process returns to step S110, and the processes of steps S110 to S126 are executed.

以上のようにして、送受信制御部223は、自分宛のパケットの受信、自分宛でないパケットの転送、および、未送信パケットの送信を制御する。   As described above, the transmission / reception control unit 223 controls reception of packets addressed to itself, transfer of packets not addressed to itself, and transmission of untransmitted packets.

A4.通信動作の具体例:
以下では、通信経路10を介して各ノード20A〜20Eの間で実行される通信動作について、具体例を用いて説明する。なお、説明を容易にするため、図1に示した構成を省略して、5つのノードのうち、ノード1〜ノード3の3つのノードのみを示す構成として説明する。
A4. Specific example of communication operation:
Below, the communication operation performed between each node 20A-20E via the communication path 10 is demonstrated using a specific example. For ease of explanation, the configuration shown in FIG. 1 is omitted, and a description will be given assuming that only three nodes, node 1 to node 3, out of the five nodes are shown.

また、「発明が解決しようとする課題」において説明した図12および図13と同様に、送信するリクエストパケットを、[RD−Req#1:12]のように記述することとし、これに対して応答されるレスポンスパケットを、[RD−Rsp#1:21]のように記述することとする。   Similarly to FIG. 12 and FIG. 13 described in “Problems to be Solved by the Invention”, a request packet to be transmitted is described as [RD-Req # 1: 12]. A response packet to be responded is described as [RD-Rsp # 1: 21].

そして、具体例1は、図6〜図9を用いて、ノード1からノード2に対して3つのリクエストパケットを送信する場合を例に説明する。また、具体例2は、図10および図11を用いて、ノード1からノード2に対して2つのリクエストパケットを送信し、ノード1からノード3に対して1つのリクエストパケットを送信する場合を例に説明する。   Specific example 1 will be described using an example in which three request packets are transmitted from node 1 to node 2 with reference to FIGS. Specific example 2 is an example in which two request packets are transmitted from node 1 to node 2 and one request packet is transmitted from node 1 to node 3 with reference to FIGS. 10 and 11. Explained.

なお、図6〜図9には10段階の動作状態が示されており、図10および図11には6段階の動作状態が示されているが、上述したように、各ノードでは、システムクロック2サイクルごとに1つのパケットが送受信されるので、各動作状態は、先頭の動作状態(状態1)から順に、2サイクルのシステムクロック単位で変化した状態であり、各ノードにパケットが到着した状態を示すこととする。   6 to 9 show ten stages of operating states, and FIGS. 10 and 11 show six stages of operating states. As described above, each node has a system clock. Since one packet is transmitted and received every two cycles, each operation state is a state that changes in units of a system clock of two cycles in order from the first operation state (state 1), and a packet arrives at each node Will be shown.

また、ライトリクエストパケット、リードリクエストパケット、ライトレスポンスパケット、リードレスポンスパケット等の通信内容の違いを区別する必要が無い場合には、これらを単に「リクエストパケット」あるいは「レスポンスパケット」と呼ぶ場合もある。   In addition, when there is no need to distinguish between communication contents such as a write request packet, a read request packet, a write response packet, and a read response packet, these may be simply referred to as “request packet” or “response packet”. .

A4.1.具体例1:
図6〜図9は、各ノード間で実行される通信動作の具体例1を示す説明図である。
A4.1. Example 1:
6 to 9 are explanatory diagrams showing a specific example 1 of the communication operation executed between the nodes.

まず、先頭の動作状態1において、ノード1の送信レジスタ225A〜225Cには、パケット[RD−Req#1:12],[WR−Req#2:12],[RD−Req#3:12]の3つのリクエストパケットが順に格納されている。そして、これら3つのリクエストパケットは未送信のパケットであるので、それぞれの送信レジスタ225A〜225Cに対応する送信済みフラグ224A〜224Cは、全てクリア状態となっている。   First, in the first operation state 1, packets [RD-Req # 1: 12], [WR-Req # 2: 12], [RD-Req # 3: 12] are stored in the transmission registers 225A to 225C of the node 1. The three request packets are stored in order. Since these three request packets are untransmitted packets, all the transmitted flags 224A to 224C corresponding to the respective transmission registers 225A to 225C are in a clear state.

そして、図示は省略するが、各ノードでは、次のノードに空パケットを送出し、次のノードには空パケットが到着している。なお、具体例1および具体例2の説明において、空パケットの送出および到着については、特に必要としない限り図示および説明を省略することとする。   Although not shown, each node transmits an empty packet to the next node, and the empty packet arrives at the next node. In the description of Specific Example 1 and Specific Example 2, the illustration and description of empty packet transmission and arrival are omitted unless particularly required.

また、図中において、送信レジスタと送信済みフラグとの対応関係を、送信レジスタを示す矩形図形と、送信済みフラグを示す矩形図形との間を線で結ぶことにより示している。また、送信済みフラグのクリア状態を、矩形図形の図柄を空白とすることで示し、送信済みフラグのセット状態を、矩形図形の図柄をハッチングとすることで示している。   In the figure, the correspondence between the transmission register and the transmitted flag is shown by connecting the rectangular figure indicating the transmission register and the rectangular figure indicating the transmitted flag with a line. In addition, the clear state of the transmitted flag is indicated by making the symbol of the rectangular figure blank, and the set state of the transmitted flag is indicated by hatching the symbol of the rectangular figure.

そして、動作状態2において、ノード1では、1番目の送信レジスタ225Aに格納されたリクエストパケット[RD−Req#1:12]がノード2に向けて送出され、対応する送信済みフラグ224Aがセットされる。このとき、ノード2には、ノード1から送信された1番目のリクエストパケット[RD−Req#1:12]が到着する。ノード2に到着したパケットは、自分宛のパケットであるので受信されて、図示しない受信バッファに格納される。そして、対応する処理が実行される。   Then, in the operation state 2, in the node 1, the request packet [RD-Req # 1: 12] stored in the first transmission register 225A is transmitted to the node 2, and the corresponding transmitted flag 224A is set. The At this time, the first request packet [RD-Req # 1: 12] transmitted from the node 1 arrives at the node 2. The packet arriving at the node 2 is received because it is addressed to itself, and stored in a reception buffer (not shown). Then, the corresponding process is executed.

次に、動作状態3において、ノード1では、1番目のリクエストパケット[RD−Req#1:12]に対するレスポンスがまだ返ってきていないので、2番目のリクエストパケット[WR−Req#2:12]および3番目のリクエストパケット[RD−Req#3:12]をノード2に対して送信することができない。すなわち、送信可能なデータが存在していない。このため、図示しない空パケットがノード2に向けて送出される。なお、ノード2では、受信した1番目のリクエストパケット[RD―Req#1:12]に対応する処理が実行中であり、処理が終了すると1番目のリクエストパケット[RD−Req#1:12]に対するレスポンスパケット[RD−Rsp#1:21]が発生し、図示しない送信レジスタに格納される。   Next, in the operation state 3, since the node 1 has not yet returned a response to the first request packet [RD-Req # 1: 12], the second request packet [WR-Req # 2: 12] The third request packet [RD-Req # 3: 12] cannot be transmitted to the node 2. That is, there is no data that can be transmitted. For this reason, an empty packet (not shown) is transmitted to the node 2. The node 2 is executing a process corresponding to the received first request packet [RD-Req # 1: 12]. When the process is completed, the first request packet [RD-Req # 1: 12] is executed. Response packet [RD-Rsp # 1: 21] is generated and stored in a transmission register (not shown).

そして、動作状態4において、ノード1では、動作状態3と同様に、1番目のリクエストパケット[RD−Req#1:12]に対するレスポンスがまだ返ってきていないので、2番目のリクエストパケット[WR−Req#2:12]および3番目のリクエストパケット[RD−Req#3:12]をノード2に対して送信することができない。このため、図示しない空パケットがノード2に向けて送出される。   In the operation state 4, since the node 1 has not yet returned a response to the first request packet [RD-Req # 1: 12], as in the operation state 3, the second request packet [WR- Req # 2: 12] and the third request packet [RD-Req # 3: 12] cannot be transmitted to the node 2. For this reason, an empty packet (not shown) is transmitted to the node 2.

また、ノード2では、終了した1番目のリクエストパケット[RD−Req#1:12]に対するレスポンスパケット[RD−Rsp#1:21]が、ノード3に向けて送出される。このとき、ノード3には、ノード2から送信された1番目のレスポンスパケット[RD−Rsp#1:21]が到着する。ノード3に到着したパケットは、自分宛のパケットではないので、ノード1に転送される。   Further, the node 2 sends a response packet [RD-Rsp # 1: 21] to the completed first request packet [RD-Req # 1: 12] toward the node 3. At this time, the first response packet [RD-Rsp # 1: 21] transmitted from the node 2 arrives at the node 3. The packet arriving at node 3 is not addressed to itself and is transferred to node 1.

次に、動作状態5において、ノード3では、上述したように、動作状態4で到着したレスポンスパケット[RD−Rsp#1:21]が自分宛のパケットではないので、そのままノード1に向けて送出される。このとき、ノード1には、1番目のリクエストパケット[RD−Req#1:12]に対するレスポンスパケット[RD−Rsp#1:21]が到着する。ノード1に到着したパケットは、自分宛のパケットであるので受信されて、図示しない受信バッファに格納される。そして、対応する処理が実行される。   Next, in the operation state 5, the node 3 sends the response packet [RD-Rsp # 1: 21] arriving in the operation state 4 to the node 1 as it is because it is not a packet addressed to itself. Is done. At this time, the response packet [RD-Rsp # 1: 21] for the first request packet [RD-Req # 1: 12] arrives at the node 1. The packet arriving at the node 1 is received because it is addressed to itself, and stored in a reception buffer (not shown). Then, the corresponding process is executed.

ノード1では、1番目のレスポンスパケット[RD−Rsp#1:21]が受信されると、1番目のリクエストパケット[RD−Req#1:12]が格納されていた1番目の送信レジスタ225Aは開放され、対応する送信済みフラグ224Aもクリアされる。これにより、ノード2に対するリクエストパケットの送信が可能となる。   In the node 1, when the first response packet [RD-Rsp # 1: 21] is received, the first transmission register 225A storing the first request packet [RD-Req # 1: 12] It is released and the corresponding transmitted flag 224A is cleared. As a result, the request packet can be transmitted to the node 2.

そこで、ノード1では、2番目の送信レジスタ225Bに格納されている2番目のリクエストパケット[WR−Req#2:12]がノード2に向けて送出され、対応する送信済みフラグ224Bがセットされる。このとき、ノード2には、ノード1から送信された2番目のリクエストパケット[WR−Req#2:12]が到着する。ノード2に到着したパケットは、自分宛のパケットであるので受信されて、図示しない受信バッファに格納される。そして、対応する処理が実行される。なお、2番目のリクエストパケットは、ライトリクエストであるので、受信バッファに格納されると、これに応じて、図示しない送信レジスタには、2番目のリクエストパケット[WR−Req#2:12]に対するレスポンスパケット[WR−Rsp#2:21]が発生し、図示しない出力レジスタに書き込まれる。   Therefore, in the node 1, the second request packet [WR-Req # 2: 12] stored in the second transmission register 225B is transmitted to the node 2, and the corresponding transmitted flag 224B is set. . At this time, the second request packet [WR-Req # 2: 12] transmitted from the node 1 arrives at the node 2. The packet arriving at the node 2 is received because it is addressed to itself, and stored in a reception buffer (not shown). Then, the corresponding process is executed. Since the second request packet is a write request, when it is stored in the reception buffer, the second request packet [WR-Req # 2: 12] is sent to the transmission register (not shown) accordingly. A response packet [WR-Rsp # 2: 21] is generated and written to an output register (not shown).

次に、動作状態6において、ノード2では、動作状態5で受信した2番目のリクエストパケット[WR―Req#2:12]に対するレスポンスパケット[WR−Rsp#2:21]が、ノード3に向けて送出される。このとき、ノード3には、ノード2から送信された2番目のレスポンスパケット[WR−Rsp#2:21]が到着する。ノード3に到着したパケットは、自分宛のパケットでないので、ノード1に転送される。   Next, in the operation state 6, in the node 2, the response packet [WR-Rsp # 2: 21] to the second request packet [WR-Req # 2: 12] received in the operation state 5 is sent to the node 3. Are sent out. At this time, the second response packet [WR-Rsp # 2: 21] transmitted from the node 2 arrives at the node 3. The packet arriving at node 3 is not addressed to itself and is transferred to node 1.

ノード1では、動作状態3と同様に、2番目のリクエストパケット[WR−Req#2:12]に対するレスポンスがまだ返ってきていないので、3番目のリクエストパケット[RD−Req#3:12]をノード2に対して送信することができない。また、動作状態5で開放された送信レジスタ225Aは空である。すなわち、送信可能なデータが送信レジスタに存在していない。このため、図示しない空パケットがノード2に向けて送出される。   In the node 1, since the response to the second request packet [WR-Req # 2: 12] has not yet been returned as in the operation state 3, the third request packet [RD-Req # 3: 12] is not returned. Cannot be sent to node 2. Further, the transmission register 225A released in the operation state 5 is empty. That is, no transmittable data exists in the transmission register. For this reason, an empty packet (not shown) is transmitted to the node 2.

次に、動作状態7において、ノード3では、上述したように、動作状態6で到着したレスポンスパケット[WR−Rsp#2:21]が自分宛のパケットではないので、そのままノード1に向けて送出される。このとき、ノード1には、2番目のリクエストパケット[WR−Req#2:12]に対するレスポンスパケット[WR−Rsp#2:21]が到着する。ノード1に到着したパケットは、自分宛のパケットであるので受信されて、図示しない受信バッファに格納される。そして、対応する処理が実行される。   Next, in the operation state 7, the node 3 sends the response packet [WR-Rsp # 2: 21] arriving in the operation state 6 to the node 1 as it is because it is not a packet addressed to itself as described above. Is done. At this time, the response packet [WR-Rsp # 2: 21] for the second request packet [WR-Req # 2: 12] arrives at the node 1. The packet arriving at node 1 is received because it is addressed to itself, and is stored in a reception buffer (not shown). Then, the corresponding process is executed.

ノード1では、2番目のレスポンスパケット[WR−Rsp#2:21]が受信されると、2番目のリクエストパケット[WR−Req#2:12]が格納されていた2番目の送信レジスタ225Bは開放され、対応する送信済みフラグ224Bもクリアされる。これにより、ノード2に対するリクエストパケットの送信が可能となる。   In the node 1, when the second response packet [WR-Rsp # 2: 21] is received, the second transmission register 225B storing the second request packet [WR-Req # 2: 12] It is released and the corresponding transmitted flag 224B is cleared. As a result, the request packet can be transmitted to the node 2.

そこで、ノード1では、3番目の送信レジスタ225Cに格納されている3番目のリクエストパケット[RD−Req#3:12]がノード2に向けて送出され、対応する送信済みフラグ224Cがセットされる。このとき、ノード2には、ノード1から送信された3番目のリクエストパケット[RD−Req#3:12]が到着する。ノード2に到着したパケットは、自分宛のパケットであるので受信されて、図示しない受信バッファに格納される。そして、対応する処理が実行される。   Therefore, in the node 1, the third request packet [RD-Req # 3: 12] stored in the third transmission register 225C is transmitted to the node 2, and the corresponding transmitted flag 224C is set. . At this time, the third request packet [RD-Req # 3: 12] transmitted from the node 1 arrives at the node 2. The packet arriving at the node 2 is received because it is addressed to itself, and stored in a reception buffer (not shown). Then, the corresponding process is executed.

次に、動作状態8において、動作状態6と同様に、ノード1では、3番目のリクエストパケット[RD−Req#3:12]に対するレスポンスがまだ返ってきていないので、他のリクエストパケットをノード2に対して送信することができない。また、動作状態5および7で開放された送信レジスタ225A,225Bは空である。すなわち、送信可能なデータが送信レジスタに存在していない。このため、図示しない空パケットがノード2に向けて送出される。なお、ノード2では、受信した3番目のリクエストパケット[RD―Req#3:12]に対応する処理が実行中であり、処理が終了すると3番目のリクエストパケット[RD−Req#1:12]に対するレスポンスパケット[RD−Rsp#3:21]が発生し、図示しない送信レジスタに格納される。   Next, in the operation state 8, as in the operation state 6, the node 1 has not yet returned a response to the third request packet [RD-Req # 3: 12]. Cannot be sent to. Further, the transmission registers 225A and 225B opened in the operation states 5 and 7 are empty. That is, no transmittable data exists in the transmission register. For this reason, an empty packet (not shown) is transmitted to the node 2. The node 2 is executing a process corresponding to the received third request packet [RD-Req # 3: 12]. When the process is completed, the third request packet [RD-Req # 1: 12] is executed. Response packet [RD-Rsp # 3: 21] is generated and stored in a transmission register (not shown).

そして、動作状態9において、ノード1では、動作状態8と同様に、3番目のリクエストパケット[RD−Req#3:12]に対するレスポンスがまだ返ってきていないので、他のリクエストパケットをノード2に対して送信することができない。また、動作状態5および7で開放された送信レジスタ225A,225Bは空である。このため、図示しない空パケットがノード2に向けて送出される。   Then, in the operation state 9, since the node 1 has not yet returned a response to the third request packet [RD-Req # 3: 12] as in the operation state 8, another request packet is sent to the node 2. Cannot be sent to. Further, the transmission registers 225A and 225B opened in the operation states 5 and 7 are empty. For this reason, an empty packet (not shown) is transmitted to the node 2.

また、ノード2では、終了した3番目のリクエストパケット[RD―Req#3:12]に対するレスポンスパケット[RD−Rsp#3:21]が、ノード3に向けて送出される。このとき、ノード3には、ノード2から送信された3番目のレスポンスパケット[RD−Rsp#3:21]が到着する。ノード3に到着したパケットは、自分宛のパケットではないので、ノード1に転送される。   Further, the node 2 sends a response packet [RD-Rsp # 3: 21] to the completed third request packet [RD-Req # 3: 12] toward the node 3. At this time, the third response packet [RD-Rsp # 3: 21] transmitted from the node 2 arrives at the node 3. The packet arriving at node 3 is not addressed to itself and is transferred to node 1.

次に、動作状態10において、ノード3では、上述したように、動作状態9で到着したレスポンスパケット[RD−Rsp#3:21]が自分宛のパケットではないので、そのままノード1に向けて送出される。このとき、ノード1には、3番目のリクエストパケット[RD−Req#3:12]に対するレスポンスパケット[RD−Rsp#1:21]が到着する。ノード1に到着したパケットは、自分宛のパケットであるので受信されて、図示しない受信バッファに格納される。そして、対応する処理が実行される。   Next, in the operation state 10, the node 3 sends the response packet [RD-Rsp # 3: 21] arriving in the operation state 9 to the node 1 as it is because it is not a packet addressed to itself, as described above. Is done. At this time, the response packet [RD-Rsp # 1: 21] for the third request packet [RD-Req # 3: 12] arrives at the node 1. The packet arriving at node 1 is received because it is addressed to itself, and is stored in a reception buffer (not shown). Then, the corresponding process is executed.

ノード1では、3番目のレスポンスパケット[RD−Rsp#3:21]が受信されると、3番目のリクエストパケット[RD−Req#3:12]が格納されていた3番目の送信レジスタ225Cは開放され、対応する送信済みフラグ224Cもクリアされる。これにより、ノード2に対するリクエストパケットの送信が可能となる。   In the node 1, when the third response packet [RD-Rsp # 3: 21] is received, the third transmission register 225C storing the third request packet [RD-Req # 3: 12] It is released and the corresponding transmitted flag 224C is cleared. As a result, the request packet can be transmitted to the node 2.

以上のようにして、ノード1からノード2に対して、送信レジスタ225A〜225Cに格納されていた3つのリクエストパケット[RD−Req#1:12],[WR−Req#2:12],[RD−Req#3:12]が順番に送信され、ノード2においては、送信されたリクエストパケットの順番通りに受信されて、対応するそれぞれの処理が順番通りに実行される。   As described above, the three request packets [RD-Req # 1: 12], [WR-Req # 2: 12], [WR] stored in the transmission registers 225A to 225C are transmitted from the node 1 to the node 2. RD-Req # 3: 12] are transmitted in order, and the node 2 receives them in the order of the transmitted request packets, and executes the corresponding processes in order.

A4.2.具体例2:
図10および図11は、各ノード間で実行される通信動作の具体例2を示す説明図である。
A4.2. Example 2:
10 and 11 are explanatory diagrams showing a specific example 2 of the communication operation executed between the nodes.

まず、先頭の動作状態1において、ノード1の送信レジスタ225A〜225Cには、パケット[WR−Req#1:12],[WR−Req#2:13],[WR−Req#3:12]の3つのリクエストパケットが順に格納されている。そして、これら3つのリクエストパケットは未送信のパケットであるので、それぞれの送信レジスタ225A〜225Cに対応する送信済みフラグ224A〜224Cは、全てクリア状態となっている。   First, in the first operation state 1, packets [WR-Req # 1: 12], [WR-Req # 2: 13], [WR-Req # 3: 12] are stored in the transmission registers 225A to 225C of the node 1. The three request packets are stored in order. Since these three request packets are untransmitted packets, all the transmitted flags 224A to 224C corresponding to the respective transmission registers 225A to 225C are in a clear state.

そして、動作状態2において、ノード1では、1番目の送信レジスタ225Aに格納されたリクエストパケット[WR−Req#1:12]がノード2に向けて送出され、対応する送信済みフラグ224Aがセットされる。このとき、ノード2には、ノード1から送信された1番目のリクエストパケット[WR−Req#1:12]が到着する。ノード2に到着したパケットは、自分宛のパケットであるので受信されて、図示しない受信バッファに格納される。そして、対応する処理が実行される。なお、1番目のリクエストパケットは、ライトリクエストであるので、受信バッファに格納されると、これに応じて、図示しない送信レジスタには、2番目のリクエストパケット[WR−Req#2:12]に対するレスポンスパケット[WR−Rsp#2:21]が発生し、図示しない出力レジスタに書き込まれる。   Then, in the operation state 2, in the node 1, the request packet [WR-Req # 1: 12] stored in the first transmission register 225A is transmitted to the node 2, and the corresponding transmitted flag 224A is set. The At this time, the first request packet [WR-Req # 1: 12] transmitted from the node 1 arrives at the node 2. The packet arriving at the node 2 is received because it is addressed to itself, and stored in a reception buffer (not shown). Then, the corresponding process is executed. Since the first request packet is a write request, when it is stored in the reception buffer, a transmission register (not shown) responds to the second request packet [WR-Req # 2: 12] accordingly. A response packet [WR-Rsp # 2: 21] is generated and written to an output register (not shown).

次に、動作状態3において、ノード2では、動作状態2で受信した1番目のリクエストパケット[WR−Req#1:12]に対するレスポンスパケット[WR−Rsp#1:21]が、ノード3に向けて送出される。このとき、ノード3には、ノード2から送信された1番目のレスポンスパケット[WR−Rsp#1:21]が到着する。ノード3に到着したパケットは、自分宛のパケットではないので、ノード1に転送される。   Next, in the operation state 3, the node 2 sends a response packet [WR-Rsp # 1: 21] to the first request packet [WR-Req # 1: 12] received in the operation state 2 to the node 3. Sent out. At this time, the first response packet [WR-Rsp # 1: 21] transmitted from the node 2 arrives at the node 3. The packet arriving at node 3 is not addressed to itself and is transferred to node 1.

ここで、2番目の送信レジスタ225Bに格納されている2番目のリクエストパケット[WR−Req#2:13]のあて先はノード3であり、対応する送信済みフラグ224Aが既にセットされている1番目のリクエストパケット[WR−Req#1:12]の送信先であるノード2とは異なっている。従って、2番目のリクエストパケット[WR−Req#2:13]は送信可能とされる。   Here, the destination of the second request packet [WR-Req # 2: 13] stored in the second transmission register 225B is the node 3, and the first transmission packet 224A is already set. Is different from the node 2 which is the transmission destination of the request packet [WR-Req # 1: 12]. Therefore, the second request packet [WR-Req # 2: 13] can be transmitted.

そこで、ノード1では、2番目の送信レジスタ225Bに格納されたリクエストパケット[WR−Req#2:12]がノード2に向けて送出され、対応する送信済みフラグ224Bがセットされる。このとき、ノード2には、ノード1から送信された2番目のリクエストパケット[WR−Req#2:13]が到着する。ノード2に到着したパケットは、自分宛のパケットではないので、ノード3に転送される。   Therefore, in the node 1, the request packet [WR-Req # 2: 12] stored in the second transmission register 225B is transmitted to the node 2, and the corresponding transmitted flag 224B is set. At this time, the second request packet [WR-Req # 2: 13] transmitted from the node 1 arrives at the node 2. The packet arriving at node 2 is not addressed to itself and is transferred to node 3.

そして、動作状態4において、ノード2では、上述したように、動作状態3で到着した2番目のリクエストパケット[WR−Req#2:13]が自分宛のパケットではないので、そのままノード3に向けて送出される。このとき、ノード3には、2番目のリクエストパケット[WR−Req#2:13]が到着する。ノード3に到着したパケットは、自分宛のパケットであるので受信して、図示しない受信バッファに格納される。そして、対応する処理が実行される。なお、2番目のリクエストパケットも、ライトリクエストであるので、受信バッファに格納されると、これに応じて、図示しない送信レジスタには、2番目のリクエストパケット[WR−Req#2:13]に対するレスポンスパケット[WR−Rsp#2:31]が発生し、図示しない出力レジスタに書き込まれる。   Then, in the operation state 4, in the node 2, as described above, the second request packet [WR-Req # 2: 13] arriving in the operation state 3 is not a packet addressed to itself, so Sent out. At this time, the second request packet [WR-Req # 2: 13] arrives at the node 3. The packet arriving at the node 3 is received because it is addressed to itself, and is stored in a reception buffer (not shown). Then, the corresponding process is executed. Since the second request packet is also a write request, when it is stored in the reception buffer, a transmission register (not shown) responds to the second request packet [WR-Req # 2: 13] accordingly. A response packet [WR-Rsp # 2: 31] is generated and written to an output register (not shown).

また、ノード3では、上述したように、動作状態3で到着したレスポンスパケット[WR−Rsp#1:21]が自分宛のパケットではないので、そのままノード1に向けて送出される。このとき、ノード1には、1番目のリクエストパケット[WR−Req#1:12]に対するレスポンスパケット[WR−Rsp#1:21]が到着する。ノード1に到着したパケットは、自分宛のパケットであるので受信され、図示しない受信バッファに格納される。そして、対応する処理が実行される。   Further, as described above, since the response packet [WR-Rsp # 1: 21] that arrived in the operation state 3 is not a packet addressed to itself, the node 3 transmits the response packet to the node 1 as it is. At this time, the response packet [WR-Rsp # 1: 21] for the first request packet [WR-Req # 1: 12] arrives at the node 1. The packet arriving at the node 1 is received because it is a packet addressed to itself, and is stored in a reception buffer (not shown). Then, the corresponding process is executed.

ノード1では、1番目のレスポンスパケット[WR−Rsp#1:21]が受信されると、1番目のリクエストパケット[WR−Req#1:12]の格納されていた1番目の送信レジスタ225Aが開放され、対応する送信済みフラグ224Aもクリアされる。これにより、ノード2に対するリクエストパケットの送信が可能となる。   In the node 1, when the first response packet [WR-Rsp # 1: 21] is received, the first transmission register 225A in which the first request packet [WR-Req # 1: 12] is stored is stored. It is released and the corresponding transmitted flag 224A is cleared. As a result, the request packet can be transmitted to the node 2.

そこで、ノード1では、3番目の送信レジスタ225Cに格納されている3番目のリクエストパケット[WR−Req#3:12]がノード2に向けて送出され、対応する送信済みフラグ224Cがセットされる。このとき、ノード2には、ノード1から送信された3番目のリクエストパケット[WR−Req#3:12]が到着する。ノード2に到着したパケットは自分宛のパケットであるので、図示しない受信バッファに格納される。そして、対応する処理が実行される。なお、3番目のリクエストパケットも、ライトリクエストであるので、受信バッファに格納されると、これに応じて、図示しない送信レジスタには、3番目のリクエストパケット[WR−Req#3:12]に対するレスポンスパケット[WR−Rsp#3:21]が発生し、図示しない出力レジスタに書き込まれる。   Therefore, in the node 1, the third request packet [WR-Req # 3: 12] stored in the third transmission register 225C is transmitted to the node 2, and the corresponding transmitted flag 224C is set. . At this time, the third request packet [WR-Req # 3: 12] transmitted from the node 1 arrives at the node 2. Since the packet arriving at the node 2 is a packet addressed to itself, it is stored in a reception buffer (not shown). Then, the corresponding process is executed. Since the third request packet is also a write request, when it is stored in the reception buffer, the transmission register (not shown) responds to the third request packet [WR-Req # 3: 12] accordingly. A response packet [WR-Rsp # 3: 21] is generated and written to an output register (not shown).

次に、動作状態5において、ノード2では、動作状態4で受信した3番目のリクエストパケット[WR−Req#3:12]に対するレスポンスパケット[WR−Rsp#3:21]が、ノード3に向けて送出される。このとき、ノード3には、ノード2から送信された3番目のレスポンスパケット[WR−Rsp#3:21]が到着する。ノード3に到着したパケットは、自分宛のパケットではないので、ノード1に転送される。   Next, in the operation state 5, the node 2 sends a response packet [WR-Rsp # 3: 21] to the third request packet [WR-Req # 3: 12] received in the operation state 4 toward the node 3. Are sent out. At this time, the third response packet [WR-Rsp # 3: 21] transmitted from the node 2 arrives at the node 3. The packet arriving at node 3 is not addressed to itself and is transferred to node 1.

また、ノード3では、動作状態4で受信した2番のリクエストパケット[WR−Req#2:13]に対するレスポンスパケット[WR−Rsp#2:31]が、ノード1に向けて送出される。このとき、ノード1には、ノード3から送信された2番目のレスポンスパケット[WR−Rsp#2:31]が到着する。ノード1に到着したパケットは、自分宛のパケットであるので受信されて、図示しない受信バッファに格納される。そして、対応する処理が実行される。   In addition, the node 3 sends a response packet [WR-Rsp # 2: 31] to the second request packet [WR-Req # 2: 13] received in the operation state 4 toward the node 1. At this time, the second response packet [WR-Rsp # 2: 31] transmitted from the node 3 arrives at the node 1. The packet arriving at node 1 is received because it is addressed to itself, and is stored in a reception buffer (not shown). Then, the corresponding process is executed.

ノード1では、2番目のレスポンスパケット[WR−Rsp#2:31]が受信されると、2番目のリクエストパケット[WR−Req#2:13]が格納されていた2番目の送信レジスタ225Bは開放され、対応する送信済みフラグ224Bもクリアされる。これにより、ノード3に対するリクエストパケットの送信が可能となる。   In the node 1, when the second response packet [WR-Rsp # 2: 31] is received, the second transmission register 225B storing the second request packet [WR-Req # 2: 13] It is released and the corresponding transmitted flag 224B is cleared. Thereby, the request packet can be transmitted to the node 3.

そして、動作状態6において、ノード3では、動作状態5で到着したレスポンスパケット[WR−Rsp#3:21]が自分宛のパケットではないので、そのままノード1に向けて送出される。このとき、ノード1には、3番目のリクエストパケット[WR−Req#3:12]に対するレスポンスパケット[WR−Rsp#3:21]が到着する。ノード1に到着したパケットは、自分宛のパケットであるので受信されて、図示しない受信バッファに格納される。そして、対応する処理が実行される。   Then, in the operation state 6, in the node 3, the response packet [WR-Rsp # 3: 21] arriving in the operation state 5 is not addressed to itself, and thus is sent to the node 1 as it is. At this time, the response packet [WR-Rsp # 3: 21] for the third request packet [WR-Req # 3: 12] arrives at the node 1. The packet arriving at node 1 is received because it is addressed to itself, and is stored in a reception buffer (not shown). Then, the corresponding process is executed.

ノード1では、3番目のレスポンスパケット[WR−Rsp#3:21]が受信されると、3番目のリクエストパケット[WR−Req#3:12]の格納されていた3番目の送信レジスタ225Cが開放され、対応する送信済みフラグ224Cもクリアされる。これにより、ノード2に対するリクエストパケットの送信が可能となる。   In the node 1, when the third response packet [WR-Rsp # 3: 21] is received, the third transmission register 225C in which the third request packet [WR-Req # 3: 12] is stored is stored. It is released and the corresponding transmitted flag 224C is cleared. As a result, the request packet can be transmitted to the node 2.

以上のようにして、ノード1からノード2およびノード1からノード3に対して、送信レジスタに格納されていた3つのリクエストパケット[WR−Req#1:12],[WR−Req#2:13],[WR−Req#3:12]が順番に送信され、送信されたリクエストパケットの順番通りに、それぞれのノードで受信されて、対応するそれぞれの処理が順番通りに実行される。   As described above, the three request packets [WR-Req # 1: 12] and [WR-Req # 2: 13] stored in the transmission register are transmitted from the node 1 to the node 2 and from the node 1 to the node 3. ], [WR-Req # 3: 12] are transmitted in order, received at the respective nodes in the order of the transmitted request packets, and the corresponding processes are executed in order.

A5.実施例の効果:
具体例1で説明したように、本実施例では、ある送信元のノードからある送信先のノードに対して複数のリクエストパケットを順番に送信した場合に、その送信先のノードにおいて、送信元のノードから送信された順番通りに、リクエストパケットを受信して、対応する処理を実行させることができる。
A5. Effects of the embodiment:
As described in the first specific example, in the present embodiment, when a plurality of request packets are sequentially transmitted from a certain transmission source node to a certain transmission destination node, the transmission source node Request packets can be received in the order transmitted from the nodes, and the corresponding processing can be executed.

また、具体例2で説明したように、本実施例では、あるノードから複数の異なったノードに対してリクエストパケットが順番に送信された場合にも、送信先のノードに関係なく送信した順番通りに対応する処理を実行させることが可能である。   Further, as described in the specific example 2, in this embodiment, even when request packets are sequentially transmitted from a certain node to a plurality of different nodes, the transmission order is the same regardless of the destination node. It is possible to execute processing corresponding to the above.

なお、1つのノードから送信される複数のリクエストパケットに対して、1つの送信済みフラグを設けることによっても、実施例と同様に、複数の異なったノードに対してリクエストパケットを順番に送信し、送信先のノードに関係なく送信した順番通りに対応する処理を実行させることは可能である。   In addition, by providing one transmitted flag for a plurality of request packets transmitted from one node, the request packets are sequentially transmitted to a plurality of different nodes as in the embodiment, It is possible to execute corresponding processing in the order of transmission regardless of the destination node.

しかしながら、この場合には、いずれかのノードに対して1つのリクエストパケットを送信すると、これに対するレスポンスが返ってくるまで、送信済みフラグがセットされることになるので、他のノードに対してもリクエストパケットを送信することができないことになる。このため、この場合には、本実施例の場合に比べて、複数のリクエストパケットに対する処理の実行効率が悪くなる。   However, in this case, if one request packet is sent to any node, the sent flag will be set until a response to this is returned. The request packet cannot be transmitted. For this reason, in this case, the execution efficiency of processing for a plurality of request packets is worse than in the case of the present embodiment.

言い換えれば、本実施例は、複数のリクエストパケットに対する処理を高速に実行することができる。   In other words, this embodiment can execute processing for a plurality of request packets at high speed.

なお、上記具体例の説明では、説明を容易にするため、図1に示した構成を省略して、5つのノードのうち、ノード1〜ノード3の3つのノードのみを示す構成として説明したが、図1に示した5つのノードにおいて同様である。   In the description of the above specific example, the configuration illustrated in FIG. 1 is omitted and the configuration illustrated in FIG. 1 is illustrated as only a configuration in which only three nodes 1 to 3 are included in the five nodes. The same applies to the five nodes shown in FIG.

B.変形例:
以上、本発明の実施の形態について説明したが、本発明はこのような実施の形態になんら限定されるものではなく、その要旨を逸脱しない範囲において種々の態様にて実施することが可能である。例えば、以下のような変形が可能である。
B. Variation:
As mentioned above, although embodiment of this invention was described, this invention is not limited to such embodiment at all, In the range which does not deviate from the summary, it is possible to implement in various aspects. . For example, the following modifications are possible.

B1.変形例1:
上記実施例のマルチプロセッサシステムでは、5つのノードを備える場合を例に示しているが、これに限定されるものではなく、複数のノードを備える場合に本発明を適用することが可能である。
B1. Modification 1:
In the multiprocessor system of the above-described embodiment, the case where five nodes are provided is shown as an example. However, the present invention is not limited to this, and the present invention can be applied to a case where a plurality of nodes are provided.

B2.変形例2:
上記実施例のマルチプロセッサシステムでは、5つのノードに対して、各送信バッファ225に備える送信レジスタの数を3とするとともに、これに対応して送信済みフラグ部224に備える送信済みフラグの数を3とした場合を例に示している。しかしながら、これに限定されるものではなく、送信レジスタの数および送信済みフラグの数は、2以上で、かつ、通信経路に接続される全ノード数から自分を引いた数以下であればよい。
B2. Modification 2:
In the multiprocessor system of the above-described embodiment, the number of transmission registers included in each transmission buffer 225 is set to 3 for five nodes, and the number of transmitted flags included in the transmitted flag unit 224 corresponding to this is set. The case of 3 is shown as an example. However, the present invention is not limited to this, and the number of transmission registers and the number of transmitted flags may be two or more, and may be equal to or less than the number obtained by subtracting itself from the total number of nodes connected to the communication path.

接続されている全ノード数から自分を引いた数の送信レジスタおよび送信済みフラグの数を備えるようにすれば、あるノードから別のあるノードに対して、別のあるノード以外の他のノードに対してリクエストが送信済みであるか否かに関係なく、リクエストを送信することができる。ただし、全ノードに対して連続してリクエストが送信されるような状況が発生する可能性を考えると、ノード数と処理の実行する処理の内容にもよるが、その可能性は非常に小さいと考えられる。従って、全ノード数から自分を引いた数の送信レジスタおよび送信済みフラグを備える構成とする必要性は低く、全ノード数から自分を引いた数よりも小さい数とするほうが、システムを構成する上で効率的である。   By providing the number of transmission registers and the number of transmitted flags minus the number of all connected nodes, it is possible to transfer from one node to another node to another node other than another node. The request can be transmitted regardless of whether the request has already been transmitted. However, considering the possibility of a situation where requests are continuously sent to all nodes, it depends on the number of nodes and the contents of the process executed, but the possibility is very small. Conceivable. Therefore, it is less necessary to have a configuration including the number of transmission registers and the number of transmitted flags obtained by subtracting the number of nodes from the total number of nodes. And efficient.

B3.変形例3:
上記実施例では、あるノードに対して送信したリクエストパケットに対するレスポンスパケットが返ってくるまで、送信したリクエストパケットを送信レジスタに格納しておくとともに、あるノードに対してリクエストパケットを送信したことを示す送信済みフラグをセットしておく場合を例に示したが、これに限定されるものではない。送信済みフラグは、送信レジスタに格納されているデータのうち、送信先IDの示すノードに対して、リクエストパケットが送信済みであることを示しているものである。従って、少なくとも、送信先のノードを示す情報、実施例では送信先ID、を記憶しておき、その送信先のノードからのレスポンスパケットを受信するまで、そのノードへのリクエストパケットの送信を禁止する構成とすることも可能である。
B3. Modification 3:
In the above embodiment, until the response packet for the request packet transmitted to a certain node is returned, the transmitted request packet is stored in the transmission register, and the request packet is transmitted to the certain node. The case where the transmitted flag is set is shown as an example, but the present invention is not limited to this. The transmitted flag indicates that the request packet has been transmitted to the node indicated by the transmission destination ID among the data stored in the transmission register. Accordingly, at least information indicating a destination node, in the embodiment, a destination ID is stored, and transmission of a request packet to that node is prohibited until a response packet is received from the destination node. A configuration is also possible.

本発明のマルチプロセッサシステムの一実施例としての概要構成を示す説明図である。It is explanatory drawing which shows the general | schematic structure as one Example of the multiprocessor system of this invention. 各ノード間で送受信されるパケットのデータ構造について示す説明図である。It is explanatory drawing which shows the data structure of the packet transmitted / received between each node. ノードに備えられる通信制御部の一構成例を示す説明図である。It is explanatory drawing which shows the example of 1 structure of the communication control part with which a node is equipped. 送受信制御部で実行される送受信制御の手順について示す説明図である。It is explanatory drawing shown about the procedure of the transmission / reception control performed in a transmission / reception control part. 送受信制御部で実行される送受信制御の手順について示す説明図である。It is explanatory drawing shown about the procedure of the transmission / reception control performed in a transmission / reception control part. 各ノード間で実行される通信動作の具体例1を示す説明図である。It is explanatory drawing which shows the specific example 1 of the communication operation performed between each node. 各ノード間で実行される通信動作の具体例1を示す説明図である。It is explanatory drawing which shows the specific example 1 of the communication operation performed between each node. 各ノード間で実行される通信動作の具体例1を示す説明図である。It is explanatory drawing which shows the specific example 1 of the communication operation performed between each node. 各ノード間で実行される通信動作の具体例1を示す説明図である。It is explanatory drawing which shows the specific example 1 of the communication operation performed between each node. 各ノード間で実行される通信動作の具体例2を示す説明図である。It is explanatory drawing which shows the specific example 2 of the communication operation performed between each node. 各ノード間で実行される通信動作の具体例2を示す説明図である。It is explanatory drawing which shows the specific example 2 of the communication operation performed between each node. ループバスを用いた場合におけるノード間のデータ通信の問題点について示す説明図である。It is explanatory drawing shown about the problem of the data communication between nodes in the case of using a loop bus. ループバスを用いた場合におけるノード間のデータ通信の問題点について示す説明図である。It is explanatory drawing shown about the problem of the data communication between nodes in the case of using a loop bus.

符号の説明Explanation of symbols

10...通信経路
20A...プロセッサ(ノード)
20B...プロセッサ(ノード)
20C...プロセッサ(ノード)
20D...メモリコントローラ(ノード)
20D...I/Oインタフェース(ノード)
22A〜22E...通信制御部
221...入力レジスタ
222...出力レジスタ
223...送受信制御部
224...送信済みフラグ部
224A〜224C...送信済みフラグ
225...送信バッファ
225A〜225C...送信レジスタ
226...受信データバッファ
226A...受信レジスタ
227...プロセッサI/F制御部
SCK...システムクロック
MPS...マルチプロセッサシステム
10 ... Communication path 20A ... Processor (node)
20B ... Processor (node)
20C ... Processor (node)
20D ... Memory controller (node)
20D ... I / O interface (node)
22A to 22E ... Communication control unit 221 ... Input register 222 ... Output register 223 ... Transmission / reception control unit 224 ... Transmitted flag unit 224A-224C ... Transmitted flag 225 ... Transmission Buffers 225A to 225C ... Transmission register 226 ... Reception data buffer 226A ... Reception register 227 ... Processor I / F control unit SCK ... System clock MPS ... Multiprocessor system

Claims (5)

ループ状の通信経路により接続された複数ノードのうち、少なくとも2以上のノードがプロセッサで構成されており、送信元のノードから送信先のノードに向けて前記通信経路上にパケットを送出することにより、ノード間のデータ通信を行うことが可能なマルチプロセッサシステムであって、
各ノードは、前記送信先のノードに向けて、ある処理の要求を示すリクエストパケットを送信したときに、前記送信先のノードを示す情報を記憶しておき、前記送信先のノードから前記処理の要求に対する応答を示すレスポンスパケットを受信するまで、前記送信先のノードに対して新たなリクエストパケットを送信することを禁止する、
ことを特徴とするマルチプロセッサシステム。
Among the plurality of nodes connected by a loop communication path, at least two or more nodes are configured by a processor, and by sending a packet from the transmission source node to the transmission destination node on the communication path A multiprocessor system capable of data communication between nodes,
When each node transmits a request packet indicating a request for a process to the destination node, each node stores information indicating the destination node, and the process from the destination node Prohibit sending a new request packet to the destination node until receiving a response packet indicating a response to the request;
A multiprocessor system characterized by that.
請求項1記載のマルチプロセッサシステムであって、
前記各ノードは、
前記送信先のノードを示す情報を記憶するために、(全ノード数−1)よりも少ない数の複数の記憶部を備える、
ことを特徴とするマルチプロセッサシステム。
A multiprocessor system according to claim 1, wherein
Each of the nodes
In order to store information indicating the destination node, a plurality of storage units smaller than (total number of nodes −1) are provided.
A multiprocessor system characterized by that.
請求項1または請求項2記載のマルチプロセッサシステムであって、
前記送信先のノードを示す情報は、送信したリクエストパケットと、前記送信したリクエストパケットが送信済みであることを示すフラグと、で構成される、
ことを特徴とするマルチプロセッサシステム。
A multiprocessor system according to claim 1 or 2, wherein
The information indicating the destination node includes a transmitted request packet and a flag indicating that the transmitted request packet has been transmitted.
A multiprocessor system characterized by that.
請求項1ないし請求項3のいずれかに記載のマルチプロセッサシステムであって、
前記マルチプロセッサシステムは、1つの半導体基板上に集積化されている
ことを特徴とするデバイスシステム。
A multiprocessor system according to any one of claims 1 to 3,
The device system according to claim 1, wherein the multiprocessor system is integrated on a single semiconductor substrate.
ループ状の通信経路により接続された複数ノードのうち、少なくとも2以上のノードがプロセッサで構成されるマルチプロセッサシステムにおいて、送信元のノードから送信先のノードに向けて前記通信経路上にパケットを送出することにより、ノード間のデータ通信を行うためのデータ通信方法であって、
各ノードにおいて、
前記送信先のノードに向けて、ある処理の要求を示すリクエストパケットを送信する工程と、
前記リクエストパケットを送信したときに、前記送信先のノードを示す情報を記憶する工程と、
前記送信先のノードから前記処理の要求に対する応答を示すレスポンスパケットを受信するまで、前記送信先のノードに対して新たなリクエストパケットを送信することを禁止する工程と、
を備えることを特徴とするデータ通信方法。
In a multiprocessor system in which at least two nodes among a plurality of nodes connected by a loop communication path are constituted by processors, packets are transmitted from the transmission source node to the transmission destination node on the communication path. A data communication method for performing data communication between nodes,
At each node
Sending a request packet indicating a request for processing to the destination node;
Storing information indicating the destination node when the request packet is transmitted;
Prohibiting transmission of a new request packet to the destination node until a response packet indicating a response to the processing request is received from the destination node;
A data communication method comprising:
JP2005341949A 2005-11-28 2005-11-28 Multiprocessor system Pending JP2007148753A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005341949A JP2007148753A (en) 2005-11-28 2005-11-28 Multiprocessor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005341949A JP2007148753A (en) 2005-11-28 2005-11-28 Multiprocessor system

Publications (1)

Publication Number Publication Date
JP2007148753A true JP2007148753A (en) 2007-06-14

Family

ID=38210106

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005341949A Pending JP2007148753A (en) 2005-11-28 2005-11-28 Multiprocessor system

Country Status (1)

Country Link
JP (1) JP2007148753A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010262439A (en) * 2009-05-01 2010-11-18 Canon Inc Information processing apparatus, information processing method, and program
JPWO2012093475A1 (en) * 2011-01-05 2014-06-09 富士通株式会社 Information transfer device and information transfer method of information transfer device
JP2018156267A (en) * 2017-03-16 2018-10-04 富士通株式会社 Arithmetic processing device, information processing device, and method for controlling arithmetic processing device
JP2019016054A (en) * 2017-07-04 2019-01-31 富士通株式会社 Information processing system, information processing apparatus, and method for controlling information processing system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010262439A (en) * 2009-05-01 2010-11-18 Canon Inc Information processing apparatus, information processing method, and program
JPWO2012093475A1 (en) * 2011-01-05 2014-06-09 富士通株式会社 Information transfer device and information transfer method of information transfer device
JP2018156267A (en) * 2017-03-16 2018-10-04 富士通株式会社 Arithmetic processing device, information processing device, and method for controlling arithmetic processing device
JP2019016054A (en) * 2017-07-04 2019-01-31 富士通株式会社 Information processing system, information processing apparatus, and method for controlling information processing system

Similar Documents

Publication Publication Date Title
JP4044523B2 (en) Communication transaction type between agents in a computer system using a packet header having an extension type / extension length field
EP1750202A1 (en) Combining packets for a packetized bus
US20080240111A1 (en) Method and apparatus for writing network packets into computer memory
US20060230210A1 (en) Method and apparatus for memory interface
US7315542B2 (en) Handling and discarding packets in a switching subnetwork
JP2007517286A (en) TCP / IP offload device with reduced sequential processing
US20110145469A1 (en) Apparatus for processing peripheral component interconnect express protocol
JP2007172575A (en) Network interface controlling lock operation, packet data communication on-chip interconnect system including the network interface, and method of operating the network interface
EP3722963A1 (en) System, apparatus and method for bulk register accesses in a processor
US7564860B2 (en) Apparatus and method for workflow-based routing in a distributed architecture router
JP2006293969A (en) Data transfer device
JP2007148753A (en) Multiprocessor system
US6856619B1 (en) Computer network controller
TW200415474A (en) Method and apparatus for intermediate buffer segmentation and reassembly
JP2007027951A (en) Dma controller and communication processing apparatus
US20040230717A1 (en) Processing device
JP4104939B2 (en) Multiprocessor system
US20020078118A1 (en) Network interface application specific integrated circuit to allow direct attachment for an appliance,such as a printer device
JP5729938B2 (en) COMMUNICATION DEVICE AND ITS CONTROL METHOD
JP4708901B2 (en) Data processing module and method for preparing message transmission
JP2009116561A (en) Data transfer system
JP5587530B2 (en) Engine / processor linkage system and linkage method
EP3229145A1 (en) Parallel processing apparatus and communication control method
JP2007272694A (en) Communication interface device and communication method
KR20010095103A (en) An intelligent bus interconnect unit