JPH08185380A - 並列計算機 - Google Patents

並列計算機

Info

Publication number
JPH08185380A
JPH08185380A JP6326768A JP32676894A JPH08185380A JP H08185380 A JPH08185380 A JP H08185380A JP 6326768 A JP6326768 A JP 6326768A JP 32676894 A JP32676894 A JP 32676894A JP H08185380 A JPH08185380 A JP H08185380A
Authority
JP
Japan
Prior art keywords
message
buffer
processor
circuit
network
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
JP6326768A
Other languages
English (en)
Inventor
Yoshiko Yasuda
淑子 保田
Teruo Tanaka
輝雄 田中
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP6326768A priority Critical patent/JPH08185380A/ja
Priority to US08/580,257 priority patent/US5892923A/en
Publication of JPH08185380A publication Critical patent/JPH08185380A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3081ATM peripheral units, e.g. policing, insertion or extraction
    • H04L49/309Header conversion, routing tables or routing tags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17381Two dimensional, e.g. mesh, torus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3081ATM peripheral units, e.g. policing, insertion or extraction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5619Network Node Interface, e.g. tandem connections, transit switching
    • H04L2012/562Routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5679Arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/568Load balancing, smoothing or shaping

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【目的】ネットワーク中の転送経路の負荷を均一に近付
け、種類の異なるメッセージ間の干渉を緩和し、構造が
簡単なネットワークを有する並列計算機を提供する。 【構成】各プロセッサ(PE)は、送信すべきメッセー
ジの種別により属性設定テーブル305を参照して属性
情報を決定し、メッセージ内に組み込む。例えば、その
メッセージが、送信元のPEが自発的に送信するメッセ
ージであるか、他のメッセージを受信したことを通知す
るメッセージであるかに依存して、属性情報としてルー
トビットRBを0または1とする。各中継スイッチ(E
X)では、経路指示回路400が、受信したメッセージ
内のRBビットによりルート指示テーブル601を参照
して、このメッセージが指定する受信PE番号に依存す
るメッセージ転送先を決める。各EXには、複数の仮想
チャネル回路401−405が設けられ、各々は、メッ
セージ内のRBビットの異なる値に対応して予め割り当
てられた複数のバッファを有し、受信したメッセージを
そのメッセージ内のRBビットの値に対応するバッファ
に格納することにより異なるM間での干渉を減ずる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は複数のプロセッサ間でネ
ットワークを介してメッセージ転送を行なう並列計算機
に関する。
【0002】
【従来の技術】並列計算機用のネットワークに望まれる
性能の一つは、沢山のメッセージを転送できるいわゆる
高いスループットである。
【0003】従来の並列計算機の多くは、ネットワーク
のルーティング方式として固定ルーティングを用いる。
【0004】従来の固定ルーティングでは、すべてのメ
ッセージが例えば1次元方向から2次元方向へと同じ転
送手順で転送される。このことは、異なるメッセージ間
で、ある経路で競合が発生した場合でも同様である。こ
の場合、後から転送されたメッセージは、先に転送され
たメッセージが転送し終わった後に転送される。このル
ーティングを使用すると、ネットワークには、実際には
使用されない転送経路が発生する。そのため、従来の固
定ルーティングでは、このような一部の転送経路が有効
に利用されない。なお、このようなメッセージ間の転送
経路の競合により、一方のメッセージの転送が遅延され
ることを、メッセージ間に干渉が発生したと言う。
【0005】この問題の解決策として、経路を有効に利
用しネットワークのメッセージの転送経路の分散を図る
アダプティブルーティングが、”並列処理シンポジウム
JSPP’94論文集,”PP. 129-136(1994年5月)(以
下、第1の参考文献と呼ぶ)において示されている。こ
こでは、ハイパクロスバネットワークにこのアダプティ
ブルーティングを適用した場合を議論している。
【0006】ここに開示されたアダプティブルーティン
グによれば、前述のごとく異なるメッセージの経路が競
合した場合、後から転送されたメッセージを、その時点
で空いている経路(異なる次元方向)に転送することに
より、この競合を解消している。このように、メッセー
ジを異なる転送経路に分散させる方法では、ネットワー
ク中の全ての転送経路が有効利用されるとともに、各転
送経路の負荷を均一なものに近付けることができる。
【0007】しかしながら、このように同一の目的地に
メッセージを転送するのに複数の転送経路を使用出来る
ネットワークでは、複数のメッセージ間のチャネルの連
鎖に閉ループができてしまい、互いが互いの転送経路を
取ろうとして永久に転送経路が確保できない、いわゆる
デッドロックが発生してしまう。例えば3次元構成のネ
ットワークにおいて、メッセージ1をX→Y→Z、メッ
セージ2をY→Z→Xという経路で転送する場合、メッ
セージ1が経路Zをとろうとし、メッセージ2が経路X
をとろうとすると転送経路間にループが形成され、デッ
ドロックが発生する。そのデッドロックを回避するため
に、仮想チャネルをハイパクロスバネットワークに対し
て利用する技術が前述の第1の参考文献提案されてい
る。仮想チャネルとは、ネットワークの各物理チャネル
にメッセージを格納する複数の独立したバッファ(仮想
チャネル)からなり、複数の仮想チャネルが一つの物理
チャネルを共有する。第1の参考文献では、ハイパクロ
スバネットワークに対して仮想チャネルを利用して、デ
ッドロックを解消できることも示している。その利用の
態様は以下のとおりである。
【0008】ハイパクロスバネットワークはn台のプロ
セッサをn=n1×n2×n3×……×nmと因数分解し、
これらの因数の各々を一辺の格子点数とするm次元格子
空間上にプロセッサを並べ、その各辺をクロスバスイッ
チからなる部分ネットワークで結合してメッセージ転送
経路を構成する。この例では、各クロスバスイッチに次
元数個(m個)のバッファを用意し、一つの物理チャネ
ルをm本の仮想チャネルとして利用する。例えば上述し
た3次元構成のネットワークにおいて、仮想チャネルを
用いたアダプティブルーティングを用いた場合、メッセ
ージ1はX1→Y2→Z3、メッセージ2をY1→Z2→X3
という経路(X、Y、Zの添字 1,2,3 は仮想チャネル
番号を示す。)で転送する。このため、経路に閉ループ
が発生せず、したがってデッドロックを回避できる。こ
こでは、各クロスバスイッチを通過するときに、任意の
次元、ただし過去に通過していない次元を選択すること
ができる。
【0009】なお、仮想チャネルの割り当ては、メッセ
ージがこれまでに通過したクロスバスイッチの数に依存
して行なう。このために、デッドロックを発生させない
ために各メッセージ毎に動的な転送経路の通過情報(各
メッセージが過去にどのスイッチを通過したか等)をメ
ッセージ内に書き込んでいる。
【0010】仮想チャネル自体は、IEEE TRANSACTION O
N PARALLEL AND DISTRIBUTED SYSTEMS, VOL.3, NO.2, p
p.195-205, MARCH 1992(以下、第2の参考文献と呼
ぶ)において先に提案された。この第2の参考文献で
は、固定ルーティングを用いたトーラスネットワークに
おいてデッドロックを回避できることを示している。こ
の参考文献では、仮想チャネルを用いてトーラスネット
ワークにおける転送経路間のループをなくし、デッドロ
ックを回避できることを示している。
【0011】並列計算機用のネットワークに望まれる他
の性能の一つは、異なる種類のメッセージ間の干渉が少
ないことである。すなわち、並列計算機用のネットワー
クに流れるメッセージは、ブロードキャスト用メッセー
ジ、同期用メッセージ、データ転送用メッセージ、緊急
メッセージ等、用途により種類が異なる。これらの異な
る種類のメッセージ間に干渉が発生すれば、例えば、緊
急メッセージの転送が遅延する。
【0012】これら性質用途の異なるメッセージを効率
よく転送するために、メッセージ別のネットワークを装
備した並列計算機もある。例えば、情報処理学会研究報
告ARC, Vol.92, No.64, PP.89-96(以下、第3の参
考文献と呼ぶ)で紹介されている並列計算機は、ブロー
ドキャスト用メッセージ、同期用メッセージ、データ転
送用メッセージのそれぞれを転送するために、互いに独
立した3つのネットワークを有する。
【0013】なお、特開昭63−124162号公開公
報(以下、第4の参考文献と呼ぶ)には、2次元クロス
バスイッチを用いたネットワークにおいて、ネットワー
クに障害が発生したときに、それ以降のメッセージの転
送経路を切り替える技術が開始されている。ここでは、
メッセージの送信元プロセッサがメッセージ内にルーテ
ィングビットを挿入することにより、メッセージの経路
を指定するようになっている。
【0014】
【発明が解決しようとする課題】上記第1の参考文献記
載の、動的なアダプティブルーティングでは、ネットワ
ーク中の全ての転送経路を使用できるので、各転送経路
の負荷を均一に近付けることができるが、各メッセージ
毎に動的な転送経路の通過情報(各メッセージが過去に
どのスイッチを通過したか等)をメッセージ内に書き込
む回路をネットワーク中に多数設ける必要がある。この
ため、ネットワークが複雑になる。
【0015】さらに、上記第3の参考文献記載のネット
ワークでは、メッセージの種類別に複数のネットワーク
を構成しているので、異なるメッセージ間の干渉がな
い。しかし、数千台規模のプロセッサを使用する並列計
算機に対しては、構造が複雑なネットワークを複数必要
とし、このため、ネットワークのコストが高くなる。こ
れに対して、上記第1、第2の参考文献記載のネットワ
ークでは、一つのネットワークを使用して複数の種類の
メッセージを送れるので、ネットワークのコストは低く
出来るが、異なる種類のメッセージ間の干渉は緩和され
ない。
【0016】なお、上記第4の参考文献では、メッセー
ジの経路の切り替えは行うが、その切り替えはネットワ
ークの障害が発生したときとそうでないときにより行っ
ている。したがって、メッセージごとに経路が切り替わ
ることはなく、このため、ネットワークでの負荷の分散
は実現されない。
【0017】本願発明の第1の目的は、ネットワーク中
の転送経路の負荷を均一に近付けることができるが、構
造の簡単なネットワークを用いた並列計算機を提供する
ことにある。
【0018】本願発明の第2の目的は、複数種類のメッ
セージを転送でき、それでいて、種類の異なるメッセー
ジ間の干渉を緩和できる、構造の簡単なネットワークを
用いた並列計算機を提供することにある。
【0019】
【課題を解決するための手段】上記第1の目的を達成す
るために、本願第1の発明では、ネットワークを構成す
る複数のスイッチ回路の、少なくとも一部の複数のスイ
ッチ回路の各々には、そのスイッチ回路により受信した
メッセージの転送先を、そのメッセージ内のアドレス情
報とともに、そのメッセージ内の属性情報とに依存して
制御する制御回路が設けられる。こうして、メッセージ
の転送経路が決定されると、同じ転送先のプロセッサを
指定するアドレス情報を有する複数のメッセージも、そ
れぞれのメッセージの属性に依存して互いに異なる経路
でもって転送できる。その結果、転送経路の負荷の均一
に近付けることは可能になる。しかも、プロセッサが送
信したときにメッセージ内に含まれる情報を使用するの
で、ネットワークとしては第1の参考文献のものより簡
単にできる。
【0020】本願第1の発明の望ましい実施態様では、
プロセッサがネットワークに送信すべきメッセージ内
の、そのメッセージの種別を表わす情報に基づいて、転
送制御情報を生成してそのメッセージに属性情報として
付加する回路をプロセッサ内に設けられる。ネットワー
ク内の各スイッチ回路は、この転送制御情報に応答する
ように構成される。このメッセージの種別の一例として
は、例えば、他のプロセッサに応答を要求する要求メッ
セージと要求メッセージへの応答を行なう応答メッセー
ジとが使用される。
【0021】このメッセージの種別の他の例としては、
例えば、緊急メッセージ、同期用メッセージあるいは通
常のデータ転送メッセージとが使用される。
【0022】本願第1の発明の他の望ましい実施態様で
は、プロセッサがネットワークに送信すべきメッセージ
内の、そのメッセージの種別を表わす情報に基づいて、
そのメッセージのプライオリティを表わす情報を生成し
てそのメッセージに属性情報として付加する回路をプロ
セッサ内に設けられる。ネットワーク内の各スイッチ回
路は、このプライオリティを表わす情報に応答して、メ
ッセージの転送経路を制御するように構成される。
【0023】上記第2の目的を達成するために、本願第
2の発明では、ネットワークを構成する複数のスイッチ
回路の各々に、複数の入力端に対応して設けられた複数
の仮想チャネル回路が設けられ、各仮想チャネル回路に
は、メッセージの少なくとも一部を保持する複数のバッ
ファと、該複数のバッファの内、対応する入力端から入
力されたメッセージ内の、メッセージの種別に依存する
属性情報の値に依存して、そのメッセージを格納すべき
バッファを選択する選択回路が設けられる。この選択回
路により、仮想チャネル回路内の複数のバッファは、そ
れぞれのバッファ毎に決めた特定の種類のメッセージを
保持するのに使用される。したがって、異なる種類のメ
ッセージが仮想チャネル回路内のバッファに使用に関し
て干渉することはなくなる。
【0024】さらに、少なくとも一部の複数のスイッチ
回路の各々には、そのスイッチ回路により仮想チャネル
内のメッセージの転送先をそのメッセージ内のアドレス
情報に従って経路選択回路が選択する際に、そのメッセ
ージの転送先の選択を、そのメッセージ内の上記属性情
報に依存して制御する選択制御回路が設けられる。こう
して、上記一部のスイッチ回路では、メッセージ内のア
ドレス情報とその属性情報の値に依存して、そのメッセ
ージの転送経路が決定される。この結果、異なる種類の
メッセージが転送経路の使用に関して干渉することが軽
減される。しかも、プロセッサが送信したときにメッセ
ージ内に含まれる情報を使用するので、ネットワークと
しては第1の参考文献のものより簡単にできる。
【0025】本願第2の発明の望ましい実施態様では、
プロセッサがネットワークに送信すべきメッセージ内
の、そのメッセージの種別を表わす情報に基づいて、転
送制御情報を生成してそのメッセージに属性情報として
付加する回路をプロセッサ内に設けられる。ネットワー
ク内の各スイッチ回路内の、メッセージを格納するバッ
ファを選択する回路は、この転送制御情報に応答するよ
うに構成され、上記一部の複数のスイッチ回路の各々内
の制御回路は、メッセージ内のこの転送制御情報に応答
して、そのメッセージの転送経路を制御するように構成
される。
【0026】本願第2の発明の他の望ましい実施態様で
は、プロセッサがネットワークに送信すべきメッセージ
内の、そのメッセージの種別を表わす情報に基づいて、
そのメッセージのプライオリティを表わす情報を生成し
てそのメッセージに属性情報として付加する回路をプロ
セッサ内に設けられる。ネットワーク内の各スイッチ回
路内の、メッセージを格納するバッファを選択する回路
は、このプライオリティ情報に応答するように構成さ
れ、上記一部の複数のスイッチ回路の各々内の制御回路
は、メッセージ内のこのプライオリティ情報に応答し
て、そのメッセージの転送経路を制御するように構成さ
れる。
【0027】
【実施例】以下、本発明に係るネットワークを使用した
並列計算機を図面に示したいくつかの実施例を参照して
さらに詳細に説明する。なお、以下においては、同じ参
照番号は同じものもしくは類似のものを表わすものとす
る。
【0028】<実施例1>本実施例では、2次元格子結
合ネットワークを有する並列計算機において、種類の異
なる複数のメッセージ、例えばデータ転送を要求するメ
ッセージとそれに対する応答としてその要求メッセージ
で要求されたデータを返送する場合に、それぞれのメッ
セージの種類毎に、異なるルーティング順序をそれぞれ
独立に設定する。それにより、ネットワーク中内のメッ
セージの負荷をなるべく分散する。さらに、ネットワー
クの各スイッチ内に、それぞれ複数のバッファを有する
複数の仮想チャネル回路1設け、各仮想チャネル回路内
の複数のバッファを、特定の種類のメッセージの少なく
とも一部を保持するのに使用し、もって異なる種類のメ
ッセージ間の干渉の軽減を図る。
【0029】図1に、本実施例による並列計算機の概略
構成を示す。図1において100〜115は並列計算機
を構成するプロセッサ(以下PEと略する)である。1
16〜131は中継スイッチ(以下EXと略する)であ
る。140はホスト計算機またはサービスプロセッサ
(SVP)で、これらは、各PE100〜115へプロ
グラムとデータをロードし、またプログラムの終了後、
各PEで得られた結果のデータを読みだす。
【0030】各PEはメッセージの組み立て、転送、受
信を制御するメッセージコントローラ303を持ち、メ
ッセージコントローラ303には、送信すべきメッセー
ジに付加すべき属性情報を決定するための属性設定テー
ブル305と、メッセージコントローラと、生成された
メッセージを一時的に保持する仮想チャネル回路307
と、ネットワークから受信したメッセージを一時的に保
持する仮想チャネル回路308と、その受信したメッセ
ージの属性情報を変更し、その受信したメッセージに対
する応答メッセージ出使用するRBの値を決める属性変
更テーブル306とを有する。
【0031】各PEは2次元座標空間の1つの格子点の
X座標、Y座標をあらかじめそのPE番号として与えら
れている。各EXは1つのPEに対して設けられる。各
EXには、以下では対応するPEと同じ番号をつける。
ここでは、X方向に4つ並べたPE群をY方向に4つ並
べた並列計算機を例にとったが、実際は様々な台数をと
ることができる。また、2次元構成の並列計算機を例に
とったが、n次元構成でもよい。
【0032】各EXは、対応するPEまたは隣接EXか
ら転送されたメッセージを隣接EXまたはPEに転送す
る回路である。本実施例では、中継スイッチEXは格子
状に結合され、格子結合ネットワークを形成する。EX
には、一時的に、メッセージの少なくとも一部を保持す
る複数の仮想チャネル回路401〜405と、次に転送
すべきEXを決定する経路指示回路400を持つ。経路
指示回路400は、メッセージの属性情報により、ルー
ティング順序を指示するルート指示テーブル601〜6
05を有する。
【0033】150はネットワークに転送されるメッセ
ージのフォーマットである。メッセージには、属性フィ
ールド、アドレスフィールドとデータフィールドとから
なる。属性フィールドには、転送制御情報(ルートビッ
ト(Route Bit))(RB)、応答要否指示情報(AC
K)が保持される。ルートビットRBは、メッセージの
種別に依存して決定される、メッセージの属性であり、
具体的には、中継スイッチによる、メッセージの転送経
路の決定を制御するために使用される。本実施例では、
あるPEが送ろうとするメッセージがそのPEから最初
に送信されるメッセージであるかあるいは他のPEから
受信したメッセージに対する応答として送信するメッセ
ージであるかに依存してRBの値を変えている。すなわ
ち、あるPEが他のPEにメッセージを転送する場合、
属性設定テーブル305に従ってRBを0に設定する。
転送先PEがそこにメッセージが到着したことを転送元
プロセッサに知らせる応答メッセージを送る場合、属性
変更テーブル306に従って、その応答メッセージ内の
RBは1に変更する。応答要否指示情報ACKは、メッ
セージ転送に対して応答が必要か必要ないかを示す。例
えば、応答が必要な場合は1、必要ない場合は0に設定
する。ユーザが、プログラム中の通信命令により応答要
否指示情報ACKを設定してもよいし、OSが設定して
もよい。アドレスフィールドには、送信PE番号(X、
Y)および受信PE番号(X、Y)が保持される。送信
PE番号はメッセージを送り出すPEの番号である。受
信PE番号はメッセージを受け取るPEの番号である。
ここでは説明の都合上、受信PE番号、送信PE番号と
も2次元の座標(X、Y)で表現する。データフィール
ドには、送信すべきデータが保持される。一般にメッセ
ージの最後には情報 Tailが付加されている。この情報
を使用しない場合には、属性フィールドにおいてメッセ
ージ長を設定する。
【0034】本実施例では、PEがメッセージを送信す
るときに、メッセージコントローラ303が、送信する
メッセージが、CPUから送信を要求されたメッセージ
であるか、あるいは他のPEから受信したメッセージに
対する応答メッセージであるかにより、異なる値のルー
トビットを転送すべきメッセージに付してネットワーク
に送信するようになっている点に第1の特徴がある。
【0035】各中継スイッチにはメッセージの転送先
を、このルーティングビットRBの値と、受信PE番号
に基づいて決定される点に第2の特徴がある。これらの
二つの特徴により、同一の受信PEに対するメッセージ
でもそのメッセージの種類により、異なる転送経路を経
て、受信PEに転送され、これにより、ネットワーク内
の各経路の負荷を均一に近いものにする。
【0036】さらに、各EX内の複数の仮想チャネルの
各々に設けられた複数のバッファは、それぞれルーティ
ングビットの値が特定の値であるメッセージを選択的に
保持するように制御される点に第3の特徴がある。この
特徴により、異なる種類のメッセージは、仮想チャネル
回路内のバッファに関して干渉し合うことがなくなる。
【0037】図2に本実施例の簡単な動作を示す。図2
はPE00からPE22にメッセージA(201)を転
送し、その応答(202)をPE00に返す様子を示
す。メッセージ201および202の最初のワードの値
0および1はメッセージの属性情報RBを示す。図2に
おいて、PE00はプログラム1(203)を実行して
いる。通信命令204の数値1は応答が必要であること
を示し、数値22は受信PE番号を示す。PE00のメ
ッセージコントローラ303は、通信命令204の応答
要否指示情報ACK=1であることから、属性設定テー
ブル305からRBを0に設定し、メッセージ1が組み
立てられ、仮想チャネル回路307内部の、このRB=
0に対応する一つのバッファ0(図示せず)に格納され
る。PE00から出力されたメッセージ1は、このメッ
セージを中継するEX、例えば、EX00おいて、メッ
セージ1のRB(=0)により、その内部の仮想チャネ
ル回内のバッファ0を選択し、経路指示回路400で
は、RBからルート指示テーブル400等を参照し、参
照結果と受信PE番号により次に転送すべき経路を決定
する。本実施例では、RBが0の場合、メッセージ1は
先ず図の水平方向(X軸方向)に転送されるようになっ
ている。従って、このメッセージ1は、他のEX01、
EX02まで中継される。EX02では、このメッセー
ジの受信PE番号のX座標が、そのEX02のX座標に
一致したため、メッセージ1を図の垂直方向に転送す
る。こうして、このメッセージはEX12、EX22を
経由して受信PEであるPE22に転送される。
【0038】メッセージ1がPE22に到達すると、こ
のメッセージ1はまず仮想チャネル回路308内部のバ
ッファ0(図示せず)に格納される。属性変更テーブル
306によりRBを0から1に変更して応答メッセージ
1Aを組み立て、仮想チャネル回路内307部のバッフ
ァ1に格納し、送信元PEに宛てて転送する。PE22
から出力されたメッセージ1Aを中継するEX、例え
ば、EX22は、RBが1の場合、図の垂直方向(Y軸
方向)に転送するようになっている。したがって、この
メッセージ1Aは、EX12、EX02を経て、EX0
1、EX00より中継される。これらのEXにおいて
は、メッセージ1AのRB(=1)により、そのEX内
の仮想チャネル回路は、その中のバッファ1(図示せ
ず)を選択し、経路指示回路400では、RBの値によ
りルート指示テーブルを参照し、参照結果と送信PE番
号により次に転送すべき経路を決定する。このように、
メッセージ1とメッセージ1AのRBが異なるため、ル
ーティング順序がそれぞれ図示のように異なる。
【0039】次に、図3を用いてPE20におけるメッ
セージの生成について説明する。いずれのPEもハード
ウェア構成は同じである。PEは、データおよびプログ
ラムを格納するメモリ301と、データを用いてプログ
ラムを実行するCPU302と、CPUまたはEXから
転送されるメッセージを制御するメッセージコントロー
ラ303で構成され、それぞれ独立に動作可能である。
メッセージコントローラ303は、CPUから転送され
る通信命令に従い属性情報RBを設定する属性設定テー
ブル305と、EXから転送されるメッセージに従い属
性情報RBを変更する属性変更テーブル306と、通信
命令、属性情報RB、データからメッセージを組み立て
るメッセージ生成回路304と仮想チャネル回路307
および308を有する。
【0040】属性設定テーブル305は、CPUからの
通信命令をデコードした結果(応答要否指示情報AC
K)によりメッセージの属性情報RBを設定する。例え
ば、本実施例では、通常のデータ通信命令が応答不要の
場合、ACKを0、通常の通信命令が応答必要な場合、
ACKを1とする。応答必要/不要は、図2のようにプ
ログラム中に命令の引き数として記述してもよいし、命
令を別々に設けてもよい。CPUからの命令はすべて、
RB=0に設定する。このテーブルはソフトあるいはハ
ードのいずれによっても設定可能である。
【0041】メッセージ生成回路304は属性設定テー
ブル305あるいは属性変更テーブル306の参照結
果、命令デコード結果およびデータから図1の150に
示すようにメッセージを組み立て、EXに転送する回路
である。メッセージの組み立てはソフトウェアにより行
なってもよいし、専用のハードウェアを用いて行なって
もよい。
【0042】属性変更テーブル306は、ネットワーク
から転送されるメッセージ内のACKとRBにより、R
Bの値を変更してEXに転送するか、そのままCPUに
取り込むかを決定する。例えば、本実施例では、RBが
1の場合と、ACK=0かつRB=0の場合は、この受
信メッセージ内のデータをCPUに転送し、プログラム
で処理させる。一方、RB=0で、ACK=1の場合に
は、受信したデータをメモリ301に書き込み、メモリ
書き込みの確認情報をメモリ301受けてから、メッセ
ージの属性フィールドのRBを1にする。仮想チャネル
回路307および308はメッセージの属性情報により
使用するバッファを決定する回路である。後述のEX内
部にある仮想チャネル回路401〜405(図5)と全
く同じ構成であるため、ここでは説明を省略する。
【0043】次に、図4を用いてEXにおけるメッセー
ジの制御について説明する。いずれのEXもハードウェ
ア構成は同じである。EXは、経路指示回路400と、
仮想チャネル回路401〜405と、スイッチ群406
〜410で構成される。
【0044】仮想チャネル回路401内部の構成を図5
に示す。仮想チャネル回路401は、セレクタ501
と、レジスタ502および503と、バッファ504お
よび505と、状態制御回路507と、セレクタ制御回
路508と、プライオリティ回路506で構成される。
仮想チャネル回路401に接続する信号線401Sには
メッセージが入力される。
【0045】本実施例ではスイッチング方式としてワー
ムホール方式を想定しているためバッファ504および
505の容量は少なく、1つのメッセージを格納できな
いとする。つまり、1つのメッセージが複数のバッファ
にまたがって転送される。もし、転送先のバッファに空
きがなかったり、そのバッファにすでに別のメッセージ
を転送していれば、そのメッセージは経路を確保したま
ま、空きができるまで待たされる。ワームホール方式は
公知であるため、ここでは言及しない。詳細について
は、先に挙げた第2の参考文献を参照のこと。
【0046】レジスタ502および503には、ホスト
計算機またはSVP140により、あらかじめバッファ
を識別するための情報が保持される。例えば、この実施
例では、レジスタ502には0が、レジスタ503には
1が保持されている。このことは、バッファ504、5
05がそれぞれRBが0、1のメッセージ用であること
を示す。したがって、本実施例のバッファ504とバッ
ファ505の容量は同じでなくともよい。例えば、通常
のメッセージはデータを転送するがそれに対する応答メ
ッセージはデータを必要としないため、応答用のバッフ
ァの容量はそれほど必要ない。
【0047】状態制御回路507は、各バッファ50
4、505が空き状態か否かを管理する回路で、各バッ
ファが空き状態にあることを示す信号 Release あるい
は 各バッファが使用状態にあることを示す信号 Wait
をセレクタ制御回路508に送るともに、オアゲート5
09、510を介してこのEXの入力側につながった他
のEXに送る。状態制御回路507は基本的には、いず
れのバッファにメッセージがセレクタ制御回路508に
より格納されたかというセレクタ制御回路508の出力
信号と、後に述べるプライオリティ回路506によりい
ずれのバッファ内のメッセージが転送されたかを示す信
号により、各バッファの状態を管理する。
【0048】セレクタ501は、受信したメッセージを
格納すべきバッファに転送する回路で、セレクタ制御回
路508は、状態制御回路507の出力信号と、レジス
タ502、503内の情報と、さらに、受信したメッセ
ージ内のRBビットにより、受信したメッセージを格納
するバッファを決定し、セレクタ501を制御する。
【0049】結局、本実施例では、メッセージ内のRB
が取り得る異なる値の総数2だけのバッファが設けら
れ、受信したメッセージ内のRBビットの値に対応する
バッファが空き状態のときに、そのメッセージをその対
応するバッファに書き込むようになっている。このよう
に、本実施例では、各バッファに書き込むべき受信メッ
セージを予めRBビットの値により決めているのが特徴
である。
【0050】プライオリティ回路506は複数のバッフ
ァからの出力のうちの一つを選択する。プライオリティ
は、メッセージの優先度で決めてもよいし、ラウンドロ
ビンで時分割で制御してもかまわない。本実施例では、
RBをメッセージの優先度とし、RB=1のメッセージ
は0のメッセージよりも優先される。この回路は、メッ
セージの送信先のEXからの信号 Release と Wait に
応答するようになっている。
【0051】図4のようにスイッチ406〜410は経
路指示回路400からの信号により、送信すべきメッセ
ージを選択し、隣接EXあるいはPEに転送する。
【0052】経路指示回路400は、メッセージの転送
制御情報によりその送信先を決定し、スイッチに信号を
出力する。
【0053】図6に経路指示回路400の内部構成を示
す。経路指示回路400は、ルート指示テーブル601
−605と、アドレスデコーダ606−610と、プラ
イオリティ回路611−615で構成される。従来、ア
ドレスデコーダは、メッセージの受信PE番号によって
のみ転送先を決定していたが、本実施例では、アドレス
デコーダ606−610が送受信PE番号だけでなく、
メッセージの属性情報RBにより決定されるルート指示
テーブル601−605を用いて、転送先を決定するこ
とが新規である。
【0054】信号M(PE)、M(Xe)、M(Xw)、
M(Yn)、M(Ys)はそれぞれのEXが接続されたP
E、隣接EXから入力されたメッセージの信号(受信P
E番号、RBビット)を示す。また、出力信号P−X
e、Xe−Xe、Xw−Xe、Yn−Xe、Ys−Xeはそれぞ
れPE、Xe、Xw、Yn、Ysから入力されたメッセージ
をXeへ送信することを示す。同時にP−Xw、Xe−X
w、Xw−Xw、Yn−Xw、Ys−XwはそれぞれPE、X
e、Xw、Yn、Ysから入力されたメッセージをXwへ送
信することを示す。
【0055】ルート指示テーブル601−605には、
メッセージの属性情報RBの値とルーティング順序の関
係が、ホスト計算機またはSVP140によりあらかじ
め記述される。例えば、本実施例では、このテーブルに
はRB=0のときにX→Yに転送し、RB=1のときに
Y→Xに転送することが記述されている。
【0056】アドレスデコーダ606〜610は、受信
PE番号と、ルート指示テーブル601〜605の参照
結果と、ホスト計算機またはSVP140によりあらか
じめ設定されているEX固有の番号とにより、信号S
P、SXe、SXw、SYn、SYsのいずれかにメッセー
ジを転送する。図7にアドレスデコーダ606−610
内部の信号の入出力関係を示す。
【0057】RB=0である場合、アドレスデコーダは
次のように動作する。
【0058】step1:DX=メッセージの受信PE番号
X座標−EX番号X座標 step2:DX=0:step3へ、DX≠0:step6へ step3:DY=メッセージの受信PE番号Y座標−EX
番号Y座標 step4:DY=0:step5へ、DY≠0:step7 step5:信号SPに1を出力(704) step6:DX>0:信号SXeに1を出力(701) DX<0:信号SXwに1を出力(705) step7:DY>0:信号SYsに1を出力(702) DY<0:信号SYnに1を出力(703) RB=1である場合、アドレスデコーダは次のように動
作する。
【0059】step1:DY=メッセージの送信PE番号
Y座標−EX番号Y座標 step2:DY=0:step3へ、DY≠0:step6へ step3:DX=メッセージの送信PE番号X座標−EX
番号X座標 step4:DX=0:step5へ、DX≠0:step7へ step5:信号SPに1を出力(708) step6:DY>0:信号SYsに1を出力(706) DY<0:信号SYnに1を出力(710) step7:DX>0:信号SXeに1を出力(707) DX<0:信号SXwに1を出力(709) プライオリティ回路611〜615は、入力された5つ
のメッセージのうちのいずれか一つを選択し、信号S
P、SXe、SXw、SYn、SYsのいずれかに1を出力
する。ここでは、優先度をつけてメッセージを選択す
る。RB=1の属性情報を有するメッセージを優先して
選択する。RB=1のメッセージがない場合は到着順に
選択する。
【0060】次に本実施例におけるメッセージ転送の詳
細を説明する。図10は本実施例において、PE00か
らPE22、PE02からPE20、PE22からPE
00、PE20からPE02に対してメッセージ転送が
発生している場合を示す。それぞれメッセージ1、2
A、3、4Aとする。メッセージ1と3は、転送先PE
へのデータ転送のためのメッセージ(応答必要/応答不
要)、メッセージ2Aこれらのメッセージに先だってP
E20からPE02へ転送されたデータ転送用のメッセ
ージ2を受信したことを送信元PE20に通知するため
の応答メッセージを示し、同様に、メッセージ4AはP
E02からPE20へ転送されたデータ転送用のメッセ
ージ4を受信したことを送信元PE02に通知するため
の応答メッセージを示している。504は仮想チャネル
401内部のバッファ0を表し、斜線で示された505
はバッファ1を表す。本実施例では、ワームホール方式
を用いることを想定しているためバッファ0および1の
容量はメッセージよりも小さく、メッセージは複数のバ
ッファにまたがって転送される。転送先のバッファに空
きがない場合は、通過してきたバッファを確保したまま
バッファが空くのを待つ。
【0061】まず、メッセージ1について説明する。図
10の送信元プロセッサPE00内のCPUにおいて通
信命令が発行されると、図3のように通信命令はデコー
ドされ、メッセージコントローラ303に転送される。
メッセージコントローラ303内の属性設定テーブル3
05では、送信するメッセージが、このPEから自発的
に発信するメッセージであるため、属性情報RBは0に
設定され、さらに、応答が必要なメッセージであるため
応答要否指示情報ACKが1になり、。そしてメッセー
ジ生成回路304において応答要否指示情報ACK、属
性情報RB、PEのアドレスおよびデータから図1の1
50に示すフォーマットに従ってメッセージ1が組み立
てられる。組み立てられたメッセージ1は、RB=0で
あるため、仮想チャネル回路307内部のバッファ0に
格納される。そして、EX00に転送される。
【0062】EX00内部の動作を図4、図5および図
6を用いて説明する。PE00から転送されたメッセー
ジ1は、図5中の仮想チャネル回路505に転送され
る。図5に示すように、RB=0、レジスタ502にセ
ットされている値は0であるため、セレクタ501にお
いてバッファ0への入力が選択され、メッセージ1がバ
ッファ0に格納される。このとき、バッファ0の容量は
メッセージ1よりも小さいため、格納できないメッセー
ジ1の後続の部分はPE内部のバッファに残っている。
図5に示す経路指示回路400では、メッセージ1の属
性情報RBが0であるため、ルート指示テーブル601
においてルーティング順序はX方向からY方向への転送
になり、テーブルの参照結果と受信PE番号がアドレス
デコーダ606に入力される。アドレスデコーダ606
では図7のテーブルに従い転送先が決定される。まず、
RB=0であるため、受信PE番号のX座標2と現在の
EXのX座標0を比較し、差DXが+2で比較結果が一
致しないため、信号SXeの出力が1になり(70
1)、プライオリティ回路611から信号SXeに1が
出力される。図4のスイッチ406では、信号SXeに
よりEX01への経路が選択される。EX01に転送さ
れたメッセージ1はEX00と同様に動作し、EX02
へ転送される。EX02では次のように動作する。
【0063】次にEX02内部の動作を図4、図5およ
び図6を用いて説明する。EX02に転送されたメッセ
ージ1は図4中の仮想チャネル402に転送される。図
5に示すようにRB=0であるため、セレクタ501に
おいてバッファ0への入力が選択される。図6に示す経
路指示回路400では、RB=0であるため、ルート指
示テーブル603においてX方向からY方向へのルーテ
ィングになり、テーブルの参照結果と受信PE番号がア
ドレスデコーダ608に入力される。アドレスデコーダ
608は図7のテーブルに従い転送先を決定する。RB
=0であるため、受信PE番号のX座標2と現在のEX
のX座標2を比較し、比較結果が一致するため、受信P
E番号のY座標2と現在のEXのY座標0を比較し、差
DYが+2で比較結果が一致しないため、信号SYsへ
の出力が1になり(702)、プライオリティ回路61
4でこの信号が選択され、信号SYsに1が出力され
る。図4に示すスイッチ409では、信号SYsによ
り、EX12への経路が選択される。EX12に転送さ
れたメッセージはEX02と同様に動作し、EX22へ
転送される。
【0064】次にEX22内部の動作を図4、図5およ
び図6を用いて説明する。EX22に転送されたメッセ
ージ1は図4中の仮想チャネル403に転送される。図
5に示すようにRB=0であるため、セレクタ501に
おいてバッファ0への入力が選択される。図6に示す経
路指示回路400では、RB=0であるため、ルート指
示テーブル604からX方向からY方向へのルーティン
グになり、テーブルの参照結果と受信PE番号がアドレ
スデコーダ609に入力される。アドレスデコーダ60
9は図7に従い転送先を決定する。RB=0であるた
め、受信PE番号のX座標2と現在のEXのX座標2を
比較し、比較結果が一致するため、受信PE番号のY座
標2と現在のEXのY座標2を比較し、比較結果が一致
するため、信号SPへの出力が1になり(703)、プ
ライオリティ回路615でこの信号が選択され、信号S
Pに1が出力される。図4に示すスイッチ410では、
信号SPにより、PE22への経路が選択される。
【0065】メッセージ1がPE22に到達すると、R
B=0であるため、図3に示す仮想チャネル回路308
内部のバッファ0に格納される。データをメモリに書き
込み到着確認情報より、属性変更テーブル306では、
ACK=1、RB=0であるためRBを1に変更しメッ
セージ生成回路でメッセージ1Aを組み立てる。応答の
場合は転送したデータのかわりに到着確認情報をデータ
とする。組み立てられたメッセージ1Aは、仮想チャネ
ル回路308に転送される。図5に示すように仮想チャ
ネル回路308では、RB=1であるため、バッファ1
にメッセージ1Aを格納する。プライオリティ回路50
6では、バッファ1からのメッセージ1Aの優先度が高
いため、バッファ0からのメッセージが転送されている
場合にはそのメッセージの転送を中断し、バッファ1か
らのメッセージ1AをEX22へ転送する。
【0066】EX22内部の動作を図4、図5および図
6を用いて説明する。PE22から出力された応答メッ
セージ1Aは、図4の仮想チャネル回路405に転送さ
れる。図5に示すように、応答メッセージ1AのRBは
1、レジスタ503にセットされている値は1であるた
め、セレクタ501においてバッファ1の入力が選択さ
れ、応答メッセージ1Aが格納される。図4に示す経路
指示回路400では、RBが1であるため、ルート指示
テーブル601から、Y方向からX方向へのルーティン
グを行ない、テーブルの参照結果と送信PE番号がアド
レスデコーダ606に入力される。アドレスデコーダ6
06は図7のテーブルに従い転送先を決定する。まず、
RBが1であるため、送信PE番号のY座標0と、現在
のEXのY座標2を比較し、差DYが−2で比較結果が
一致しないため、信号SYnへの出力が1になり(71
0)、プライオリティ回路613から信号SYnに1が
出力される。図4のスイッチ408では、信号SYnに
よりEX12への経路が選択される。EX12に転送さ
れたメッセージは同様にEX02へ転送される。
【0067】次にEX02内部の動作を図4、図5およ
び図6を用いて説明する。応答メッセージ1Aは図4の
仮想チャネル回路403に転送される。図5に示すよう
に、応答メッセージのRBは1、レジスタ503にセッ
トされている値は1であるため、セレクタ501におい
てバッファ1が選択され、応答メッセージ1Aが格納さ
れる。図6に示す経路指示回路400では、RB=1で
あるため、ルート指示テーブル605から、Y方向から
X方向へのルーティングを行ない、テーブルの参照結果
と送信PE番号がアドレスデコーダ610に入力され
る。アドレスデコーダ610は図7のテーブルに従い転
送先を決定する。まず、RBが1であるため、送信PE
番号のY座標0と、現在のEXのY座標0を比較し、比
較結果が一致するため、次に送信PE番号のX座標0と
現在のEXのX座標2を比較し、差DXが−2で比較結
果が一致しないため、信号SXwへの出力が1になり
(709)、プライオリティ回路712から信号SXw
に1が出力される。図4に示すスイッチ407では、信
号SXwにより、EX01への経路が選択される。EX
01に転送されたメッセージ1Aは同様にEX00へ転
送される。
【0068】次に、EX00内部の動作を図4、図5お
よび図6を用いて説明する。応答メッセージは図4の仮
想チャネル回路402に転送される。図5に示すよう
に、応答メッセージ1AのRBは1、レジスタ503に
セットされている値は1であるため、セレクタ501に
おいてバッファ1への入力が選択され、応答メッセージ
1Aが格納される。図6に示す経路指示回路400で
は、RBが1であるため、ルート指示テーブル602か
ら、Y方向→X方向へのルーティングを行ない、テーブ
ルの参照結果と送信PE番号がアドレスデコーダ607
に入力される。アドレスデコーダ607は図7のテーブ
ルに従い転送先を決定する。まず、RBが1であるた
め、送信PE番号のY座標0と、現在のEXのY座標0
を比較し、比較結果が一致するため、次に、受信PE番
号のX座標0と現在のEXのX座標0を比較し、比較結
果が一致するため、信号SPへの出力が1になり(70
8)、プライオリティ回路615から信号SPに1が出
力される。図4に示すスイッチ410では、出力信号S
Pにより、PE00への経路が選択される。
【0069】PE00において応答メッセージ1Aは、
RB=1であるため仮想チャネル回路308内部のバッ
ファ1に格納される。属性変更テーブル306において
RB=1であるため、メッセージ1AはCPUに転送さ
れる。CPUはメッセージ1Aからデータ転送を確認
し、次の処理に移る。
【0070】以上から、メッセージ1の転送経路は、P
E00(バッファ0)→EX00(バッファ0)→EX
01(バッファ0)→EX02(バッファ0)→EX1
2(バッファ0)→EX22(バッファ0)→PE22
(バッファ0)となる。
【0071】その応答メッセージ1Aの転送経路は、P
E22(バッファ1)→EX22(バッファ1)→EX
21(バッファ1)→EX20(バッファ1)→EX1
0(バッファ1)→EX00(バッファ1)→PE00
(バッファ1)となる。
【0072】メッセージ3はPE22からPE00への
応答不要(ACK=0)のメッセージである。PE22
は、属性設定テーブルを用いてRBを0に設定し、メッ
セージ生成回路304でメッセージ3を組み立てる。組
み立てられたメッセージ3は仮想チャネル回路307に
転送される。図5に示すように仮想チャネル回路307
では、メッセージ3は、RB=0であるため、バッファ
0に格納され、プライオリティ回路506からEX22
に転送される。EX22、EX21、EX20、EX1
0、EX00内部の動作はメッセージ1の場合と同様で
ある。PE00に転送されたメッセージ3は、仮想チャ
ネル回路308に転送される。メッセージ3は、図5に
示すように仮想チャネル回路308において、RB=0
であるため、バッファ0に格納され、プライオリティ回
路506から出力される。属性変更テーブル306では
ACK=0、RB=0であるからCPU302に情報が
伝達され、CPU302は次の処理に移る。よって、メ
ッセージ3の転送経路は、PE22(バッファ0)→E
X22(バッファ0)→EX21(バッファ0)→EX
20(バッファ0)→EX10(バッファ0)→EX0
0(バッファ0)→PE00(バッファ0)となる。
【0073】次に、メッセージ2Aについて説明する。
メッセージ2Aは先行するメッセージ2を受信したこと
を通知するための応答メッセージであるため、PE02
の属性変更テーブル306においてRBが1に変更さ
れ、メッセージ生成回路304でメッセージ2Aが組み
立てられる。組み立てられたメッセージは、仮想チャネ
ル回路308に転送される。メッセージ2Aは、図5に
示す仮想チャネル回路308において、RB=1である
ため、バッファ1に格納される。プライオリティ回路5
06は、バッファ1からのメッセージ2Aの優先度が高
いため、バッファ0からのメッセージが転送されている
場合にはそのメッセージの転送を中断し、バッファ1か
らのメッセージ2Aを先にEX02に転送する。EX0
2、EX12、EX22、EX21、EX20内部の動
作はメッセージ1の場合と同様である。但し、図4の仮
想チャネル回路401内部ではRB=1であるため必ず
バッファ1が選択される。また、EX12の仮想チャネ
ル回路内のバッファ0にメッセージ1が、EX22の仮
想チャネル回路内のバッファ0にメッセージ3が先に転
送されている場合には、プライオリティ回路506にお
いて、RB=1のメッセージ2Aの優先度がRB=0の
メッセージ1および3よりも高いため、メッセージ2A
がバッファ1から先に転送される。つまり、同じ転送経
路を使用する場合にも、ルーティングの異なるメッセー
ジは使用するバッファが異なるため、デッドロックは発
生しない。さて、PE20に転送されたメッセージ2A
は、仮想チャネル回路307に転送される。図5に示す
仮想チャネル回路307では、メッセージ2Aは、RB
=1であるため、バッファ1に格納され、プライオリテ
ィ回路506から出力される。属性変更テーブル306
ではACK=1、RB=1であるからCPU302に情
報が伝達され、CPU302は到着を確認し、次の処理
に移る。よってメッセージ2Aの転送経路は、PE02
(バッファ1)→EX02(バッファ1)→EX12
(バッファ1)→EX22(バッファ1)→EX21
(バッファ1)→EX20(バッファ1)→PE20
(バッファ1)となる。
【0074】メッセージ4Aも同様に先行するメッセー
ジ4に応答でメッセージあるため、PE20の属性変更
テーブル306においてRBが1に変更され、メッセー
ジ生成回路304でこのメッセージ4Aが組み立てられ
る。組み立てられたメッセージ4Aは、仮想チャネル回
路308に転送される。メッセージ4Aは、図5に示す
仮想チャネル回路308において、RB=1であるた
め、バッファ1に格納される。プライオリティ回路50
6は、RB=1のメッセージの優先度が高いため、バッ
ファ0からのメッセージが転送されている場合にはその
メッセージの転送を中断し、バッファ1からのメッセー
ジ4AをEX20転送する。EX20、EX10、EX
00、EX01、EX02内部の動作はメッセージ1の
場合と同様である。但し、図4の仮想チャネル回路40
1内部ではRB=1であるため必ずバッファ1が選択さ
れる。また、EX10の仮想チャネル回路内のバッファ
0にメッセージ3が、EX01の仮想チャネル回路内の
バッファ0にメッセージ1が先に転送されている場合に
は、プライオリティ回路506において、RB=1のメ
ッセージ4Aの優先度がRB=0のメッセージ1および
3よりも高いため、メッセージ4Aがバッファ1から先
に転送される。つまり、同じ転送経路を使用する場合に
も、ルーティングの異なるメッセージは使用するバッフ
ァが異なるため、デッドロックは発生しない。PE02
に転送されたメッセージ4Aは、仮想チャネル回路30
7に転送される。図5に示す仮想チャネル回路307で
は、メッセージ4は、RB=1であるため、バッファ1
に格納され、プライオリティ回路506から出力され
る。属性変更テーブル306ではACK=1、RB=1
であるからCPU302に情報が伝達され、その情報に
よりCPU302はデータの到着を確認し次の処理に移
る。よってメッセージ4Aの転送経路は、PE20(バ
ッファ1)→EX20(バッファ1)→EX10(バッ
ファ1)→EX00(バッファ1)→EX01(バッフ
ァ1)→EX02(バッファ1)→PE02(バッファ
1)となる。
【0075】このように、本実施例ではプロセッサ内部
に通信命令によりメッセージの属性情報を設定あるいは
変更するテーブルを設け、中継スイッチ内部にメッセー
ジの属性情報によりルーティング順序を決定するテーブ
ルを設けることによって、いままで使われなかった経路
を用いた転送が可能になり、これにより、ネットワーク
内の複数の経路を使用してメッセージを転送出来るの
で、ネットワーク内の各転送路の負荷を均一化しやす
い。しかも、種類の異なるメッセージに対して複数の仮
想チャネルを使用するので、これらのメッセージ間の干
渉を緩和できる。また、属性情報対応に複数の仮想チャ
ネル回路を装備し(バッファを多面化し)、属性情報に
より使用する仮想チャネル回路を一意に決定するため、
デッドロックが発生しない。しかも、メッセージが一旦
プロセッサから送出されると、第1の参考文献に記載さ
れたような、メッセージが通過してきた中継スイッチの
情報をメッセージに付加することなく転送先プロセッサ
まで転送できるため、従来アダプティブルーティングを
用いた場合に比べ回路が簡単になる。なお、本実施例で
は、2次元格子結合ネットワークを用いたが、n次元構
成の場合にも同様に適用出来る。
【0076】なお、比較のために、格子結合ネットワー
クにおいて、仮想チャネル回路を複数使用しない場合に
おけるメッセージ転送について説明する。図8はこのよ
うな格子結合ネットワークを示し、PE00からPE2
2、PE02からPE20、PE22からPE00、P
E20からPE02に対してメッセージ1、2、3、4
の転送が発生している場合を示す。このネットワークの
EXは、図9に示すように仮想チャネル回路ではなく一
面のバッファ901〜905を有する。つまり、1つの
入力ポートに対しては1つのバッファしか持っていな
い。図8では、ワームホール方式を用いることを想定し
ているためバッファの容量はメッセージよりも小さく、
メッセージは複数のバッファにまたがって転送される。
転送先のバッファに空きがない場合あるいは、他のメッ
セージを転送中である場合には、通過してきたバッファ
を確保したまま転送先のバッファが空くのを待つ。メッ
セージ1はEX00のバッファ901からEX01、E
X02のバッファ901を確保しながらEX12のバッ
ファを確保しようとしている。メッセージ2は、EX0
2、EX12、EX22のバッファを確保し、次にEX
21のバッファを確保しようとしている。メッセージ3
は、EX22、EX21、EX20のバッファを確保
し、次にEX10のバッファを確保しようとしている。
メッセージ4は、EX20、EX10、EX00のバッ
ファを確保し、次にEX01のバッファを確保しようと
している。図8に示すようにそれぞれのメッセージがす
でに他のメッセージが確保している転送経路(EX1
2、EX21、EX10、EX01)中のバッファを確
保しようとしているため、デッドロックが発生してしま
う。
【0077】<実施例2>実施例2は、実施例1で述べ
た格子結合ネットワークを用いた並列計算機において、
メッセージの属性情報RBによりルーティングを変更す
るのではなく、メッセージの種類ごとに設定されるプラ
イオリティ情報により、ルーティングを決定する。メッ
セージは、緊急メッセージ、通常のデータ転送メッセー
ジ、同期用メッセージ、放送用のメッセージに区分され
る。この実施例では、このような複数種類のメッセージ
に対して、実施例1と同様に、ネットワーク内の複数の
転送経路を使用することが出来、ネットワーク内の転送
経路の負荷の均一化に近付けることが出来る。また種類
の異なるメッセージ間の干渉を緩和することができる。
また、デッドロックを発生せずに、従来のアダプティブ
ルーティングに比べ回路を簡単にして、仮想的にメッセ
ージの種類対応にネットワークを装備して別系ネットワ
ークを装備する場合よりもコストを削減したネットワー
クを実現できる。以下では、実施例1および従来例との
相違点に絞って説明する。
【0078】図11は本実施例における並列計算機の構
成を示したものである。図11は本実施例の実施例1で
用いた格子結合ネットワークの3次元構成図である。1
100はPEの構成を示す。本実施例は、実施例1のP
Eにおける属性設定テーブルおよび属性変更テーブルの
変わりにプライオリティ設定テーブル1101を有する
こととメッセージのフォーマット1102が新規であ
る。プライオリティ設定テーブル1101はCPUから
送られた通信命令コードからプライオリティを設定す
る。メッセージには、通常のデータ転送用のメッセージ
だけでなく、放送や同期処理をおこなうものや、他のプ
ロセッサに緊急に情報を知らせるものがある。本実施例
では、4種類のメッセージを扱うことを考え、それぞれ
のメッセージのプライオリティ情報を次のように設定す
る。通常のメッセージを001、緊急メッセージを01
0、ブロードキャストメッセージを100、同期用メッ
セージを111で表す。数値が大きいほど優先度が高い
とする。メッセージは、RBおよびACKのかわりに1
ビット以上、ここでは3ビットで構成されるプライオリ
ティ情報(PR)を有する。メッセージは実施例1と同
様にメッセージ生成回路304(図3)において組み立
てられる。各メッセージに対するプライオリティ情報
は、属性設定テーブル305(図3)の代わりに、図1
1(b)のプライオリティ設定テーブル1101を使用
して、命令のデコード結果により、命令のプライオリテ
ィを決定する。
【0079】各EXは、実施例1を3次元対応にすれば
よい。つまり、各スイッチの入出力ポートを追加する。
各EXの動作は、実施例2と同じである。相違点は、仮
想チャネル回路1110〜1106とルート指示テーブ
ル1120〜1106の構成である。仮想チャネル回路
およびルート指示テーブルの構成は、メッセージの種類
に依存する。ここでは、3次元構成の並列計算機を例に
とったが、n次元構成でもよい。
【0080】図12に仮想チャネル回路1110を示
す。セレクタ1201で信号を属性情報RBで選択する
代わりにプライオリティ情報により信号を選択すること
と、バッファがメッセージの種類対応にあることが実施
例2と異なる。本実施例では、メッセージが4種類ある
ことを想定しているため、バッファは4つある。
【0081】図13にルート指示テーブル1120を示
す。ルート指示テーブルが属性情報RBではなく、複数
ビットにより構成されるプライオリティ情報によりルー
ティングを設定することが実施例1とは異なる。それゆ
え、メッセージの種類が多いほど、テーブルも大きくな
る。
【0082】本実施例におけるメッセージ転送は、以上
の相違点を考慮に入れれば容易に理解できるために、こ
こでは詳細は述べない。
【0083】図12に示す仮想チャネル回路では、メッ
セージのプライオリティに対応させて使用するバッファ
を決めることで、実施例1に示すデッドロックを回避
し、従来のアダプティブルーティングよりも制御回路を
簡単にし、別系ネットワークを装備することなく仮想的
にメッセージの種類対応にネットワークを持つようにみ
せてネットワークのハードウェアコストを削減できる。
【0084】また、本実施例では、3次元格子結合ネッ
トワークを用いた並列計算機を例にとって説明したが、
n次元格子結合ネットワークを有する並列計算機におい
ても同様に実現可能である。このとき、メッセージの種
類に対応してプライオリティを設定し、プライオリティ
に対応して仮想チャネルを設け、ルート指示テーブルに
プライオリティに対応したルーティング順序を設定すれ
ばよい。また、実施例1で示した属性設定テーブルのR
Bビットを複数ビット対応にし、最下位ビットによりメ
ッセージとそれに対する応答を指定することにより、本
実施例での併用が可能である。
【0085】<実施例3>実施例3は、実施例1の技術
を、ハイパクロスバネットワークを用いた並列計算機に
適用するしたものである。本実施例によれば、実施例1
で採用した格子結合ネットワークに比べて、より高速で
あるハイパクロスバネットワークに対して、実施例1と
同様の特徴を付加することが出来る。以下では、実施例
1と従来例との相違点にしぼって説明する。
【0086】図14は本実施例における並列計算機の構
成を示したものである。図14において1400〜14
08はPEである。1418〜1420はX方向のクロ
スバスイッチ(以下X−XBと略する)、1421〜1
423はY方向のクロスバスイッチ(以下Y−XBと略
する)である。以下では、これらのクロスバスイッチを
区別しない場合は、単にXBと呼ぶことがある。140
9〜1417は各X−XBと各Y−XBの交点に設けら
れた中継スイッチ(以下EXと略する)である。XB、
EXとの組みをまとめてハイパクロスバネットワークと
呼ぶ。
【0087】上記各PE、各EXの番号の付け方は実施
例1と同様である。各X−XBは同一の座標を有するP
Eに対して設けられ、そのY座標iをつけてXi−XB
と呼ぶ。各Y−XBは同一のX座標を有するPEに対し
て設けられ、そのX座標jをつけてYj−XBと呼ぶ。
ここでは、X方向に3つ並べたPE群をY方向に3つ並
べた並列計算機を例にとったが、実際は様々な台数をと
ることができる。
【0088】各PEの構成および動作は実施例1と同じ
である。
【0089】各EXは、対応するPE、X−XBまたは
Y−XBから転送されたメッセージをPE、X−XBま
たはY−XBに転送する回路である。各EXは、実施例
1の中継スイッチ(図4)と同様の構成を有する。すな
わち、図4に示した各EXの構造の内、左EX、上EX
からの入力線およびそれらへの出力線をそれぞれそのE
Xの左側XB、上側XBからの入力線および出力線とみ
なせばよい。従って、本実施例のEXは、図4の仮想チ
ャネル回路402、403、405とスイッチ407、
408、410と経路指示回路400とを有し、仮想チ
ャネル回路401および404と、スイッチ406およ
び409を有しない。経路指示回路400は、図6に示
された実施例1の経路指示回路の内、ルート指示テーブ
ル601、603、604、アドレスデコーダ606、
608、609、プライオリティ回路612、613、
615からなり、ルート指示テーブル602、605、
アドレスデコーダ607、610、プライオリティ回路
611、614を有しない。
【0090】経路指示回路400内の各アドレスデコー
ダの動作の流れを示す。
【0091】RB=0である場合、アドレスデコーダは
次のように動作する。
【0092】step1:DX=メッセージの受信PE番号
X座標−EX番号X座標 step2:DX=0:step3へ、DX≠0:step6へ step3:DY=メッセージの受信PE番号Y座標−EX
番号Y座標 step4:DY=0:step5へ、DY≠0:step7へ step5:信号SPに1を出力 step6:信号SXwに1を出力 step7:信号SYnに1を出力 RB=1である場合、アドレスデコーダは次のように動
作する。
【0093】step1:DY=メッセージの送信PE番号
Y座標−EX番号Y座標 step2:DY=0:step3へ、DY≠0:step6へ step3:DX=メッセージの送信PE番号X座標−EX
番号X座標 step4:DX=0:step5へ、DX≠0:step7へ step5:信号SPに1を出力 step6:信号SYnに1を出力 step7:信号SXwに1を出力 各XBは、いずれかの入力ポ−トから入力されたメッセ
ージをいずれかの出力ポ−トに転送する回路である。図
15に、X方向クロスバスイッチXi−XB(i=0、
1、2または3)の構成を示す。Y方向クロスバスイッ
チも同様である。クロスバスイッチXi−XBは、経路
指示回路1500と、仮想チャネル回路1501〜15
03と、スイッチ1504〜1506で構成される。各
仮想チャネル回路は図5に示されたものと同じである。
経路指示回路1500は、入力されたメッセージをどの
スイッチから転送するかを決定する。スイッチ1504
〜1506は、4つのポ−トのうちの1つを選択する。
図の入出力信号EX0〜EX2は、そのXBに接続され
たEXi0〜EXi2からの信号を示す。例えば、X0
−XBの場合、入出力信号EX0〜EX2はEX00〜
EX02に置き換えられる。また、Y0−XBの場合、
入出力信号EX0〜EX2はEX20〜EX00に置き
換えられる。XBはクロスバスイッチであるため、入力
EX0〜EX2のいずれもが、そのままスイッチ150
4〜1506に接続され、いずれかの入力ポ−トから入
力されたメッセージはそのままスイッチ1504〜15
06に転送される。経路指示回路1500の詳細は、図
6の経路指示回路400に類似であるが、この経路指示
回路1500は、図6と異なり、ルート指示テーブルを
有しない。すなわち。経路指示回路1500は、図16
に示すように、アドレスデコーダ1601〜1603
と、プライオリティ回路1604〜1606で構成され
る。アドレスデコーダ1601〜1602は、メッセー
ジ内の属性情報RBによりメッセージの経路情報をデコ
ードし、送信先を決定する。プライオリティ回路160
4〜1606は、入力された3つのメッセージのうちの
いずれか1つを選択し、信号S0、S1、S2に出力す
る。ここでは到着順にメッセージを選択する。但し、R
B=1のメッセージは、RB=0のメッセージよりも優
先して転送される。
【0094】次に本実施例におけるメッセージ転送につ
いて説明する。
【0095】メッセージは実施例1と同様にワームホー
ル方式を用いて転送される。図17は、PE00からP
E22、PE02からPE20、PE22からPE0
0、PE20からPE02にメッセージ1、2A、3、
4Aを同時に転送する場合を示している。504はバッ
ファ0を表し、斜線で示された505はバッファ1を表
す。
【0096】図17において、送信元プロセッサPE0
0で構成されたメッセージ1に対しては、実施例1と同
様にPE00においてRBが0に設定された後、このメ
ッセージ1は、まずEX00に転送される。EX00
は、実施例1と同様に動作し、メッセージ1はこのPE
00に接続された入力端に設けられた仮想チャネル回路
405内のバッファ0に格納される。経路指示回路40
0も、実施例1と同様に、アドレスデコーダ606では
受信PE番号のX座標2と現在のEXのX座標0を比較
する。本例では比較結果が一致しないため、信号SXw
への出力が1になり、プライオリティ回路613から信
号SXwに1が出力され、メッセージ1はスイッチによ
り、X0−XBに転送される。
【0097】次にX0−XB内の動作を図15および図
16を用いて説明する。図16に示すように経路指示回
路1500では、受信PE番号がアドレスデコーダ16
01によりデコードされ、プライオリティ回路1606
から信号S2に1が出力される。図15に示すように、
メッセージはスイッチ1506において、信号S2によ
り選択され、EX02に転送される。
【0098】EX02は、実施例1と同様に動作し、メ
ッセージ1は、バッファ0に格納される。経路指示回路
400も実施例1と同様に動作し、アドレスデコーダで
は受信PE番号のX座標2と現在のEXのX座標2を比
較し、比較結果が一致するため、次に受信PE番号のY
座標2と現在のEXのY座標0を比較し、比較結果が一
致しないため信号SYnへの出力が1になり、プライオ
リティ回路から信号SYnに1が出力され、メッセージ
はスイッチにより、Y2−XBに転送される。
【0099】次にY2−XB内の動作を図15および図
16を用いて説明する。図16に示すように経路指示回
路1500では、受信PE番号がアドレスデコーダ16
01によりデコードされ、プライオリティ回路1606
から信号S2に1が出力される。図15に示すように、
メッセージ1はスイッチ1506において、信号S2に
より選択され、EX22に転送される。
【0100】EX22は、実施例1と同様に動作し、メ
ッセージ1はバッファ0に保持される。経路指示回路4
00も実施例1と同様に動作し、アドレスデコーダでは
受信PE番号のX座標2と、現在のEXのX座標2を比
較し、比較結果が一致するため、次に受信PE番号のY
座標2と、現在のEXのY座標2を比較し、比較結果が
一致するため、信号SPへの出力が1になり、プライオ
リティ回路から信号SPに1が出力され、メッセージ1
はスイッチにおいて、信号S2によりPE22に転送さ
れる。メッセージ1に対する応答は実施例1と同様に転
送される。メッセージ2、メッセージ3、メッセージ4
もメッセージ1と同様な方法で転送できる。
【0101】まとめると、メッセージ1の転送経路は、
PE00(バッファ0)→EX00(バッファ0)→
0−XB(バッファ0)→EX02(バッファ0)→
2−XB(バッファ0)→EX22(バッファ0)→P
E22(バッファ1)→EX22(バッファ1)→Y2
−XB(バッファ1)→EX02(バッファ1)→X0
−XB(バッファ1)→EX00(バッファ1)→PE
00(バッファ1)になる。メッセージ3の転送経路
は、PE22(バッファ0)→EX22(バッファ0)
X2−XB(バッファ0)→EX20(バッファ0)
Y0−XB(バッファ0)→EX00(バッファ0)
→PE00(バッファ0)になる。メッセージ4Aの転
送経路は、PE20(バッファ1)→EX20(バッフ
ァ1)→Y0−XB(バッファ1)→EX00(バッフ
ァ1)→X0−XB(バッファ1)→EX02(バッフ
ァ1)→PE02(バッファ1)になる。メッセージ2
Aの転送経路は、PE02(バッファ1)→EX02
(バッファ1)→Y2−XB(バッファ1)→EX22
(バッファ1)→X2−XB(バッファ1)→EX20
(バッファ1)→PE20(バッファ1)になる。ルー
ティング順序の異なるメッセージをアンダ−ラインで示
した経路のように物理的には同じであるが仮想的には異
なる経路で(異なるバッファを用いて)転送することが
できる。
【0102】本実施例に示すアダプティブルーティング
では、仮想チャネル回路によりバッファが多面化され、
かつメッセージのルーティング順序によって使用できる
バッファが一意に決定されるため、経路にループが発生
せずデッドロックが発生しないだけでなく、プロセッサ
においてメッセージ毎に使用するバッファを一意に決定
するため、メッセージにスイッチの通過情報を付加し、
動的にルーティングを行なう従来のアダプティブルーテ
ィングにくらべて制御が簡単になる。
【0103】また、本実施例では、2次元ハイパクロス
バネットワークを用いた並列計算機を例にとって説明し
たが、n次元ハイパクロスバネットワークをもった並列
計算機においても同様に実現可能である。
【0104】なお、本実施例では、2次元構成の並列計
算機を例にとったが、n次元構成でもよい。
【0105】<変形例> (1)実施例2に採用した技術を実施例3で使用したハ
イパクロスバネットワークに適用することも容易であ
る。
【0106】(2)実施例1、2、3で採用したワーム
ホール方式のメッセージ転送ではなく、バーチャルカッ
トスルー方式の転送方式も使用できる。この場合、仮想
チャネル回路内部のバッファは1つのメッセージを十分
に保持できる容量をもつ。但し、メッセージは種類によ
って大きさが異なるため、各バッファのサイズは、その
バッファを使用するメッセージにあわせればよい。経路
の競合が発生した場合に、ワームホール方式が転送途中
のバッファを確保したまま、先のバッファが空くのを待
つのに比べ、メッセージを保持しているバッファ以外に
は経路の競合の影響がないため、ワームホール方式を用
いた場合に比べて種類の異なるメッセージ間の干渉が少
ない。一方、各PEおよび各スイッチにメッセージ全体
を確保するためのバッファが必要であるため、例えば長
いメッセージを転送する場合には実現が困難である。
【0107】(3)実施例1、2、3では、2次元およ
び3次元格子結合ネットワーク、2次元ハイパクロスバ
ネットワークを用いたが、これらに代えて多数の中継ス
イッチで構成される、多段結合ネットワークやハイパキ
ューブネットワークを用いることも出来る。
【0108】(4)転送経路にあらかじめループ構造が
存在するトーラスネットワークを用いることも出来る。
その際、仮想チャネルを、メッセージの種類×2個、準
備する必要がある。これはトーラスネットワークの場
合、固定ルーティングで転送しても転送経路にループが
存在し、デッドロックを回避するために1つの入力ポー
トに対して最低2つの仮想チャネルが必要なためであ
る。また、メッセージの種類ごとに使用する仮想チャネ
ルを決めれば、同じルーティング順序で転送してもよ
い。また、ネットワークがn次元構成の場合、最大n!
通りのルーティングが可能である。
【0109】(5)前述の実施例1、2、3では、メッ
セージの属性情報RBあるいはプライオリティ情報を決
定すると、仮想チャネル回路内部のバッファ番号と、ル
ート指示テーブルにおけるルーティング順序が一意に決
定したが、バッファ番号とルーティングをそれぞれ設定
できるように、メッセージフォーマットを変更してもよ
い。例えば、属性情報RBを2ビットにし、上位1ビッ
トをバッファの設定に、下位1ビットをルーティング順
序設定に用いることができる。プライオリティ情報の場
合も同様に実現できる。
【0110】
【発明の効果】本願第1の発明によれば、ネットワーク
中の転送経路の負荷を均一に近付けることができるが、
構造の簡単なネットワークを有する並列計算機が得られ
る。
【0111】本願第2の発明によれば、複数種類のメッ
セージを転送でき、それでいて、種類の異なるメッセー
ジ間の干渉を緩和できる、構造の簡単なネットワークを
有する並列計算機が得られる。
【図面の簡単な説明】
【図1】本発明の実施例1における並列計算機の構成を
示す図である。
【図2】本発明の実施例1におけるメッセージ転送の流
れの概略を示す図である。
【図3】本発明の実施例1におけるプロセッサの構成を
示す図である。
【図4】本発明の実施例1における中継スイッチの構成
を示す図である。
【図5】図4における仮想チャネル回路(401)の内
部構成を示す図である。
【図6】図4における経路指示回路(400)の内部構
成を示す図である。
【図7】図6におけるアドレスデコーダ(606)の出
力を示すテーブルである。
【図8】従来の、仮想チャネルを有しない格子結合ネッ
トワークにおけるメッセージの流れを示す図である。
【図9】従来の、仮想チャネルを有しない格子結合ネッ
トワークにおける中継スイッチの内部構成の例を示す図
である。
【図10】本発明の実施例1におけるメッセージの流れ
を示す図である。
【図11】本発明の実施例2における並列計算機の構成
を示す図である。
【図12】図11における仮想チャネル回路の内部構成
を示す図である。
【図13】図11におけるルート指示テーブルの内部構
成を示す図である。
【図14】本発明の実施例3における並列計算機の構成
を示す図である。
【図15】図14におけるクロスバスイッチの内部構成
を示す図である。
【図16】図14における中継スイッチの構成を示す図
である。
【図17】本発明の実施例3におけるメッセージの流れ
を示す図である。
【符号の説明】
100〜115…プロセッサ、116〜131…中継ス
イッチ(EX)、 140…ホスト計算機またはSVP

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】複数のプロセッサと、 複数のプロセッサの間で複数のメッセージを互いに並列
    に転送するためのメッセージ転送用ネットワークとを有
    し、 各プロセッサは、上記ネットワークに転送すべきメッセ
    ージごとに、そのメッセージの種別に依存する属性情報
    をそのメッセージの一部として生成する回路を有し、 上記ネットワークは、 (a)それぞれ上記複数のプロセッサのいずれか一つか
    ら送信された複数のメッセージを転送するための、相互
    に接続された複数のスイッチ回路からなり、 (b)各スイッチ回路は、 (b1)複数の入力端および複数の出力端と、 (b2)該複数の入力端のいずれか一つに入力されたメ
    ッセージ内に含まれ、そのメッセージの送信先のプロセ
    ッサを表わすアドレス情報に依存して 、該複数の出力
    端の内、そのメッセージを転送すべき一つの出力端を選
    択する経路選択回路とを有し、 (c)上記複数のスイッチ回路の内の少なくとも一部の
    複数のスイッチ回路の各々に含まれた上記経路選択回路
    は、そのスイッチ回路に供給されたメッセージ内に送信
    元プロセッサにより付加され、そのメッセージの種別に
    依存する値を有する属性情報にさらに依存して、該複数
    の出力端の内、そのメッセージを転送すべき一つの出力
    端を選択する経路選択回路からなる並列計算機。
  2. 【請求項2】各メッセージ内の上記属性情報は、各スイ
    ッチ回路が取り得る複数のメッセージ転送動作モードの
    一つを指定する転送制御情報である請求項1記載の並列
    計算機。
  3. 【請求項3】各メッセージ内の上記属性情報は、そのメ
    ッセージの優先度を表わすプライオリティ情報である請
    求項1記載の並列計算機。
  4. 【請求項4】各プロセッサが各メッセージに対して生成
    する上記属性情報は、そのメッセージが、そのプロセッ
    サが自発的に送信先のプロセッサに送信するメッセージ
    であるかあるいは他の送信元のプロセッサから送信され
    たメッセージに応答して、その送信元のプロセッサへ送
    付するメッセージであるかに依存して異なる値を有する
    請求項1載の並列計算機。
  5. 【請求項5】各メッセージの上記属性情報は、そのメッ
    セージが緊急のメッセージであるかあるいは通常のデー
    タ転送メッセージであるかに依存して異なる値を有する
    請求項1記載の並列計算機。
  6. 【請求項6】各メッセージの上記属性情報は、そのメッ
    セージが、プロセッサの同期用のメッセージであるかあ
    るいは放送用のメッセージであるかにさらに依存して異
    なる値を有する請求項5記載の並列計算機。
  7. 【請求項7】複数のプロセッサと、 複数のプロセッサの間で複数のメッセージを互いに並列
    に転送するためのメッセージ転送用ネットワークとを有
    し、 各プロセッサは、上記ネットワークに転送すべきメッセ
    ージごとに、そのメッセージの種別に依存する属性情報
    をそのメッセージの一部として生成する回路を有し、 上記ネットワークは、 (a)上記複数のプロセッサから送信された複数のメッ
    セージを転送するための、相互に接続された複数のスイ
    ッチ回路からなり、 (b)各スイッチ回路は、 (b1)複数の入力端と複数の出力端と、 (b2)それぞれ該複数の入力端の一つに対応して設け
    られた複数の仮想チャネル回路と、 (b3)該複数の仮想チャネル回路より出力されるメッ
    セージ内に含まれたアドレス情報に依存して 、該複数
    の出力端の内、そのメッセージを転送すべき出力端を選
    択する経路選択回路とを有し、 (c)各仮想チャネル回路は、 (c1)メッセージの少なくとも一部を保持する複数の
    バッファと、 (c2)該一つの入力端から入力されたメッセージ内、
    そのメッセージの送信元のプロセッサが指定した属性情
    報の値に依存して、上記複数のバッファの一つを選択す
    る第1の選択回路と、 (c3)該複数のバッファの一つを選択し、そこに保持
    されたメッセージを出力する第2の選択回路とを有し、 制御する選択制御回路をさらに有するもの。(d)上記
    複数のスイッチ回路の内の少なくとも一部の複数のスイ
    ッチ回路の各々に含まれた上記経路選択回路は、そのス
    イッチ回路に供給されたメッセージ内に送信元プロセッ
    サにより付加され、そのメッセージの種別に依存する値
    を有する属性情報にさらに依存して、該複数の出力端の
    内、そのメッセージを転送すべき一つの出力端を選択す
    る経路選択回路からなる並列計算機。
  8. 【請求項8】各メッセージ内の上記属性情報は、各スイ
    ッチ回路が取り得る複数のメッセージ転送動作モードの
    一つを指定する転送制御情報である請求項7記載の並列
    計算機。
  9. 【請求項9】各メッセージ内の上記属性情報は、そのメ
    ッセージの優先度を表わすプライオリティ情報である請
    求項7記載の並列計算機。
  10. 【請求項10】各プロセッサが各メッセージに対して生
    成する上記属性は、そのメッセージが、そのプロセッサ
    が自発的に送信先のプロセッサに送信するメッセージで
    あるかあるいは他の送信元のプロセッサから送信された
    メッセージに応答して、その送信元のプロセッサへ送付
    するメッセージであるかに依存して異なる値を有する請
    求項7載の並列計算機。
  11. 【請求項11】各メッセージの上記属性情報は、そのメ
    ッセージが緊急のメッセージであるかあるいは通常のデ
    ータ転送メッセージであるかに依存して異なる値を有す
    る請求項7記載の並列計算機。
  12. 【請求項12】各メッセージの上記属性情報は、そのメ
    ッセージが、プロセッサの同期用のメッセージであるか
    あるいは放送用のメッセージであるかに依存してさらに
    異なる値を有する請求項11記載の並列計算機。
JP6326768A 1994-12-28 1994-12-28 並列計算機 Pending JPH08185380A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP6326768A JPH08185380A (ja) 1994-12-28 1994-12-28 並列計算機
US08/580,257 US5892923A (en) 1994-12-28 1995-12-28 Parallel computer system using properties of messages to route them through an interconnect network and to select virtual channel circuits therewithin

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6326768A JPH08185380A (ja) 1994-12-28 1994-12-28 並列計算機

Publications (1)

Publication Number Publication Date
JPH08185380A true JPH08185380A (ja) 1996-07-16

Family

ID=18191483

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6326768A Pending JPH08185380A (ja) 1994-12-28 1994-12-28 並列計算機

Country Status (2)

Country Link
US (1) US5892923A (ja)
JP (1) JPH08185380A (ja)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003510686A (ja) * 1999-09-17 2003-03-18 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド デッドロックのないコンピュータシステム動作のためのバーチャルチャネルおよび対応するバッファ割当て
JP2004506986A (ja) * 2000-08-17 2004-03-04 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド マルチプロセッサコンピュータシステムにおいて、ポストされたリクエストのための別個のバーチャルチャネルを実現するためのシステムおよび方法
JP2007328813A (ja) * 1998-05-08 2007-12-20 Fujitsu Ltd ネットワーク通信におけるデッドロックを回避するためのコンピュータアーキテクチャ
JP2009110512A (ja) * 2007-10-29 2009-05-21 Internatl Business Mach Corp <Ibm> ネットワークオンチップ、およびネットワークオンチップで以ってデータを処理する方法
JP2009116872A (ja) * 2007-11-08 2009-05-28 Internatl Business Mach Corp <Ibm> ネットワーク・オン・チップ(noc)上のソフトウェア・パイプライン化の方法、プログラムおよび装置
JP2009129447A (ja) * 2007-11-27 2009-06-11 Internatl Business Mach Corp <Ibm> デザイン構造、ネットワーク・オン・チップ(‘noc’)でのデータ処理方法、ネットワーク・オン・チップ、およびネットワーク・オン・チップでのデータ処理のためのコンピュータ・プログラム(パーティションを有するネットワーク・オン・チップのためのデザイン構造)
JP2010521731A (ja) * 2007-03-14 2010-06-24 エックスモス リミテッド メッセージルーティング構造
WO2010087002A1 (ja) 2009-01-30 2010-08-05 富士通株式会社 情報処理システム、情報処理装置、情報処理装置の制御方法、情報処理装置の制御プログラム及びコンピュータ読み取り可能な記録媒体
JP2010218364A (ja) * 2009-03-18 2010-09-30 Fujitsu Ltd 情報処理システム、通信制御装置および方法
WO2011070913A1 (ja) * 2009-12-07 2011-06-16 日本電気株式会社 オンチップ並列処理システム及び通信方法
JP4820095B2 (ja) * 2002-12-19 2011-11-24 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド マルチプロセッサシステムにおけるハイパートランスポートルーティングテーブルをプログラミングするための方法及びシステム
US8726295B2 (en) 2008-06-09 2014-05-13 International Business Machines Corporation Network on chip with an I/O accelerator
US8843706B2 (en) 2008-05-01 2014-09-23 International Business Machines Corporation Memory management among levels of cache in a memory hierarchy
JP2016162176A (ja) * 2015-03-02 2016-09-05 株式会社東芝 ストレージシステム
JP2020517030A (ja) * 2017-04-17 2020-06-11 セレブラス システムズ インク. ディープラーニング加速化のためのデータ構造記述子

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6289021B1 (en) 1997-01-24 2001-09-11 Interactic Holdings, Llc Scaleable low-latency switch for usage in an interconnect structure
US6160813A (en) 1997-03-21 2000-12-12 Brocade Communications Systems, Inc. Fibre channel switching system and method
US6031835A (en) * 1997-04-04 2000-02-29 International Business Machines Corporation Method for deadlock free and and reliable routing in a packet switched network
US6160811A (en) * 1997-09-12 2000-12-12 Gte Internetworking Incorporated Data packet router
US6061735A (en) * 1997-10-23 2000-05-09 Mci Communications Corporation Network restoration plan regeneration responsive to network topology changes
US6950438B1 (en) * 1999-09-17 2005-09-27 Advanced Micro Devices, Inc. System and method for implementing a separate virtual channel for posted requests in a multiprocessor computer system
US6888843B2 (en) 1999-09-17 2005-05-03 Advanced Micro Devices, Inc. Response virtual channel for handling all responses
US6983330B1 (en) * 1999-12-29 2006-01-03 Emc Corporation Method and apparatus for using multiple paths for processing out of band commands
JP3709322B2 (ja) * 2000-03-10 2005-10-26 株式会社日立製作所 多次元クロスバーネットワークおよび並列計算機システム
US6982976B2 (en) 2000-08-11 2006-01-03 Texas Instruments Incorporated Datapipe routing bridge
US7002975B2 (en) * 2000-08-11 2006-02-21 Texas Instruments Incorporated Multiprocessor network node failure detection and recovery
IL157515A0 (en) * 2001-02-24 2004-03-28 Ibm Optimized scalable network switich
US20030210685A1 (en) * 2001-04-27 2003-11-13 Foster Michael S. Method and system for interswitch deadlock avoidance in a communications network
US20020159468A1 (en) * 2001-04-27 2002-10-31 Foster Michael S. Method and system for administrative ports in a routing device
EP1271331B1 (en) 2001-06-28 2008-10-15 Nokia Corporation Method for enabling a communication between processes and processing system using the same method
US20030163595A1 (en) * 2002-02-26 2003-08-28 John Ta Task manager - method of forwarding messages among task blocks
US7379424B1 (en) * 2003-08-18 2008-05-27 Cray Inc. Systems and methods for routing packets in multiprocessor computer systems
US7363431B1 (en) * 2003-09-19 2008-04-22 Emc Corporation Message-based distributed synchronization in a storage system
FR2865290A1 (fr) * 2004-01-21 2005-07-22 Thomson Licensing Sa Procede de gestion de donnees dans un processeur matriciel et processeur matriciel mettant en oeuvre ce procede
US8244913B1 (en) * 2004-10-13 2012-08-14 Progress Software Corporation Replication horizon determination with an independent distributed database system
US8018844B2 (en) * 2005-08-24 2011-09-13 International Business Machines Corporation Reliable message transfer over an unreliable network
EP1858227A1 (en) * 2006-05-16 2007-11-21 THOMSON Licensing Network storage device with separated control and storage data interfaces
US20080022079A1 (en) * 2006-07-24 2008-01-24 Archer Charles J Executing an allgather operation with an alltoallv operation in a parallel computer
US8161480B2 (en) 2007-05-29 2012-04-17 International Business Machines Corporation Performing an allreduce operation using shared memory
US8140826B2 (en) * 2007-05-29 2012-03-20 International Business Machines Corporation Executing a gather operation on a parallel computer
US8924512B2 (en) 2007-06-15 2014-12-30 Microsoft Corporation Extensible remote display infrastructure with dynamic virtual channels
US20090006663A1 (en) * 2007-06-27 2009-01-01 Archer Charles J Direct Memory Access ('DMA') Engine Assisted Local Reduction
US7827385B2 (en) * 2007-08-02 2010-11-02 International Business Machines Corporation Effecting a broadcast with an allreduce operation on a parallel computer
US7734706B2 (en) * 2007-08-22 2010-06-08 International Business Machines Corporation Line-plane broadcasting in a data communications network of a parallel computer
US7840779B2 (en) * 2007-08-22 2010-11-23 International Business Machines Corporation Line-plane broadcasting in a data communications network of a parallel computer
US8085659B2 (en) * 2007-08-28 2011-12-27 Universidad Politecnica De Valencia Method and switch for routing data packets in interconnection networks
US8526422B2 (en) 2007-11-27 2013-09-03 International Business Machines Corporation Network on chip with partitions
US8122228B2 (en) * 2008-03-24 2012-02-21 International Business Machines Corporation Broadcasting collective operation contributions throughout a parallel computer
US7991857B2 (en) * 2008-03-24 2011-08-02 International Business Machines Corporation Broadcasting a message in a parallel computer
US8422402B2 (en) 2008-04-01 2013-04-16 International Business Machines Corporation Broadcasting a message in a parallel computer
US8375197B2 (en) * 2008-05-21 2013-02-12 International Business Machines Corporation Performing an allreduce operation on a plurality of compute nodes of a parallel computer
US8484440B2 (en) 2008-05-21 2013-07-09 International Business Machines Corporation Performing an allreduce operation on a plurality of compute nodes of a parallel computer
US8161268B2 (en) * 2008-05-21 2012-04-17 International Business Machines Corporation Performing an allreduce operation on a plurality of compute nodes of a parallel computer
US7958341B1 (en) 2008-07-07 2011-06-07 Ovics Processing stream instruction in IC of mesh connected matrix of processors containing pipeline coupled switch transferring messages over consecutive cycles from one link to another link or memory
US8131975B1 (en) 2008-07-07 2012-03-06 Ovics Matrix processor initialization systems and methods
US8145880B1 (en) 2008-07-07 2012-03-27 Ovics Matrix processor data switch routing systems and methods
US8327114B1 (en) * 2008-07-07 2012-12-04 Ovics Matrix processor proxy systems and methods
US8281053B2 (en) * 2008-07-21 2012-10-02 International Business Machines Corporation Performing an all-to-all data exchange on a plurality of data buffers by performing swap operations
US8473455B2 (en) * 2008-09-03 2013-06-25 Microsoft Corporation Query-oriented message characterization
US8099498B2 (en) * 2008-09-03 2012-01-17 Microsoft Corporation Probabilistic mesh routing
US8270316B1 (en) * 2009-01-30 2012-09-18 The Regents Of The University Of California On-chip radio frequency (RF) interconnects for network-on-chip designs
US8565089B2 (en) * 2010-03-29 2013-10-22 International Business Machines Corporation Performing a scatterv operation on a hierarchical tree network optimized for collective operations
US8332460B2 (en) 2010-04-14 2012-12-11 International Business Machines Corporation Performing a local reduction operation on a parallel computer
US9424087B2 (en) 2010-04-29 2016-08-23 International Business Machines Corporation Optimizing collective operations
US8346883B2 (en) 2010-05-19 2013-01-01 International Business Machines Corporation Effecting hardware acceleration of broadcast operations in a parallel computer
US8489859B2 (en) 2010-05-28 2013-07-16 International Business Machines Corporation Performing a deterministic reduction operation in a compute node organized into a branched tree topology
US8949577B2 (en) 2010-05-28 2015-02-03 International Business Machines Corporation Performing a deterministic reduction operation in a parallel computer
US8776081B2 (en) 2010-09-14 2014-07-08 International Business Machines Corporation Send-side matching of data communications messages
US8566841B2 (en) 2010-11-10 2013-10-22 International Business Machines Corporation Processing communications events in parallel active messaging interface by awakening thread from wait state
US8893083B2 (en) 2011-08-09 2014-11-18 International Business Machines Coporation Collective operation protocol selection in a parallel computer
US8667501B2 (en) 2011-08-10 2014-03-04 International Business Machines Corporation Performing a local barrier operation
US8910178B2 (en) 2011-08-10 2014-12-09 International Business Machines Corporation Performing a global barrier operation in a parallel computer
US9495135B2 (en) 2012-02-09 2016-11-15 International Business Machines Corporation Developing collective operations for a parallel computer
US9324126B2 (en) * 2012-03-20 2016-04-26 Massively Parallel Technologies, Inc. Automated latency management and cross-communication exchange conversion
US9244880B2 (en) * 2012-08-30 2016-01-26 Netspeed Systems Automatic construction of deadlock free interconnects
US9229688B2 (en) 2013-03-14 2016-01-05 Massively Parallel Technologies, Inc. Automated latency management and cross-communication exchange conversion

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2635031B2 (ja) * 1986-11-14 1997-07-30 株式会社日立製作所 並列計算機の相互結合方式
US5222085A (en) * 1987-10-15 1993-06-22 Peter Newman Self-routing switching element and fast packet switch
US5583990A (en) * 1993-12-10 1996-12-10 Cray Research, Inc. System for allocating messages between virtual channels to avoid deadlock and to optimize the amount of message traffic on each type of virtual channel

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007328813A (ja) * 1998-05-08 2007-12-20 Fujitsu Ltd ネットワーク通信におけるデッドロックを回避するためのコンピュータアーキテクチャ
JP2003510686A (ja) * 1999-09-17 2003-03-18 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド デッドロックのないコンピュータシステム動作のためのバーチャルチャネルおよび対応するバッファ割当て
JP2004506986A (ja) * 2000-08-17 2004-03-04 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド マルチプロセッサコンピュータシステムにおいて、ポストされたリクエストのための別個のバーチャルチャネルを実現するためのシステムおよび方法
JP4820095B2 (ja) * 2002-12-19 2011-11-24 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド マルチプロセッサシステムにおけるハイパートランスポートルーティングテーブルをプログラミングするための方法及びシステム
JP2010521731A (ja) * 2007-03-14 2010-06-24 エックスモス リミテッド メッセージルーティング構造
JP2009110512A (ja) * 2007-10-29 2009-05-21 Internatl Business Mach Corp <Ibm> ネットワークオンチップ、およびネットワークオンチップで以ってデータを処理する方法
JP2009116872A (ja) * 2007-11-08 2009-05-28 Internatl Business Mach Corp <Ibm> ネットワーク・オン・チップ(noc)上のソフトウェア・パイプライン化の方法、プログラムおよび装置
JP2009129447A (ja) * 2007-11-27 2009-06-11 Internatl Business Mach Corp <Ibm> デザイン構造、ネットワーク・オン・チップ(‘noc’)でのデータ処理方法、ネットワーク・オン・チップ、およびネットワーク・オン・チップでのデータ処理のためのコンピュータ・プログラム(パーティションを有するネットワーク・オン・チップのためのデザイン構造)
US8843706B2 (en) 2008-05-01 2014-09-23 International Business Machines Corporation Memory management among levels of cache in a memory hierarchy
US8726295B2 (en) 2008-06-09 2014-05-13 International Business Machines Corporation Network on chip with an I/O accelerator
WO2010087002A1 (ja) 2009-01-30 2010-08-05 富士通株式会社 情報処理システム、情報処理装置、情報処理装置の制御方法、情報処理装置の制御プログラム及びコンピュータ読み取り可能な記録媒体
US8090895B2 (en) 2009-01-30 2012-01-03 Fujitsu Limited Information processing system, information processing device, control method for information processing device, and computer-readable recording medium
JP2010218364A (ja) * 2009-03-18 2010-09-30 Fujitsu Ltd 情報処理システム、通信制御装置および方法
WO2011070913A1 (ja) * 2009-12-07 2011-06-16 日本電気株式会社 オンチップ並列処理システム及び通信方法
JP5673554B2 (ja) * 2009-12-07 2015-02-18 日本電気株式会社 オンチップ並列処理システム及び通信方法
JP2016162176A (ja) * 2015-03-02 2016-09-05 株式会社東芝 ストレージシステム
US10037165B2 (en) 2015-03-02 2018-07-31 Toshiba Memory Corporation Storage system and control method thereof
US10346083B2 (en) 2015-03-02 2019-07-09 Toshiba Memory Corporation Storage system and control method thereof
JP2020517030A (ja) * 2017-04-17 2020-06-11 セレブラス システムズ インク. ディープラーニング加速化のためのデータ構造記述子
JP2020205067A (ja) * 2017-04-17 2020-12-24 セレブラス システムズ インク. 加速化ディープラーニングのニューロンスメアリング

Also Published As

Publication number Publication date
US5892923A (en) 1999-04-06

Similar Documents

Publication Publication Date Title
JPH08185380A (ja) 並列計算機
US11640362B2 (en) Procedures for improving efficiency of an interconnect fabric on a system on chip
US5175733A (en) Adaptive message routing for multi-dimensional networks
US5822605A (en) Parallel processor system with a broadcast message serializing circuit provided within a network
US6393026B1 (en) Data packet processing system and method for a router
US5675736A (en) Multi-node network with internode switching performed within processor nodes, each node separately processing data and control messages
JP3679813B2 (ja) 並列計算機
US5218676A (en) Dynamic routing system for a multinode communications network
JP4818920B2 (ja) 複数のプログラム可能なプロセッサを有する集積データ処理回路
CN101841471B (zh) 具有连接成多维矩阵的节点的***及其控制方法以及设备
USRE38650E1 (en) System for performing deadlock free message transfer in cyclic multi-hop digital computer network using a number of buffers based on predetermined diameter
US7773616B2 (en) System and method for communicating on a richly connected multi-processor computer system using a pool of buffers for dynamic association with a virtual channel
JPH0581216A (ja) 並列プロセツサ
US5293377A (en) Network control information without reserved bandwidth
JPH05241947A (ja) 分散クロスバー・スイッチ・アーキテクチャにおける交換接続の配列。
JP4391819B2 (ja) コンピュータ・システムの入出力ノード
JPS63501663A (ja) マルチプロセッサ通信装置
US5825773A (en) Switching system for transferring broadcast packet held in broadcast buffer received from input port to output ports according to the state of each output port
US20100172366A1 (en) Semiconductor integrated circuit and filter control method
KR20130066401A (ko) 칩 멀티 프로세서, 및 칩 멀티 프로세서를 위한 라우터
JPH06266684A (ja) プロセッサ間ルーティング方式
JPH07239835A (ja) 並列計算機のネットワーク内データ転送制御方式
JPH07262155A (ja) 並列計算機およびメッセージ放送方法
JP2020178180A (ja) 通信制御プログラム、通信制御方法および情報処理装置
JP3609908B2 (ja) 計算機接続装置