JP3072646B2 - 並列計算機間通信制御方式 - Google Patents

並列計算機間通信制御方式

Info

Publication number
JP3072646B2
JP3072646B2 JP1068514A JP6851489A JP3072646B2 JP 3072646 B2 JP3072646 B2 JP 3072646B2 JP 1068514 A JP1068514 A JP 1068514A JP 6851489 A JP6851489 A JP 6851489A JP 3072646 B2 JP3072646 B2 JP 3072646B2
Authority
JP
Japan
Prior art keywords
node
data
class
buffer
output
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.)
Expired - Fee Related
Application number
JP1068514A
Other languages
English (en)
Other versions
JPH02245962A (ja
Inventor
健志 堀江
守夫 池坂
宏明 石畑
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP1068514A priority Critical patent/JP3072646B2/ja
Priority to US07/495,987 priority patent/US5157692A/en
Priority to DE69029003T priority patent/DE69029003T2/de
Priority to EP90302986A priority patent/EP0389246B1/en
Priority to AU52020/90A priority patent/AU628143B2/en
Publication of JPH02245962A publication Critical patent/JPH02245962A/ja
Application granted granted Critical
Publication of JP3072646B2 publication Critical patent/JP3072646B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

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

Landscapes

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

Description

【発明の詳細な説明】 〔概要〕 計算機ノードが2次元格子状に配置され、ノード間が
双方向チャネルによって接続されているネットワークに
おける並列計算機間通信制御方式に関し、 ワームホールルーティングを用いた並列計算機間の通
信において、全てのメッセージの転送がブロックされた
デッドロック状態を回避し、かつ転送性能の低下を起こ
さない通信を実現することを目的とし、 複数の計算機ノードをチャネルにより相互に接続した
ネットワーク内で、複数の転送最小単位データに分割さ
れたメッセージを前記チャネル上で連続的に転送するワ
ームホールルーティングを用いた並列計算機間通信制御
方式において、前記複数の計算機ノードの各ノード内
に、前記ネットワーク内で自ノードから最も遠いノード
への中継チャネル数nに1を加えた個数の前記転送最小
単位データを記憶するデータ記憶手段を備え、ワームホ
ールルーティングを用いた通信におけるデッドロックを
回避し、高速通信を実現するように構成する。
〔産業上の利用分野〕
本発明は、複数の計算機ノードがチャネルにより相互
に接続された並列計算機間の通信制御方式に係り、さら
に詳しくは計算機ノードが2次元格子状に配置され、ノ
ード間が双方向チャネルによって接続されているネット
ワークにおける並列計算機間通信制御方式に関する。
〔従来の技術〕
並列計算機間の通信方式として従来用いられているも
のの1つとしてパケット方式がある。このパケット方式
ではノードAからノードBを経由してノードCへメッセ
ージを送信するときには、ノードBがノードAから送ら
れたパケットをストアした後に、次のノードCにそのパ
ケットを送信することによりメッセージの中継を行う。
この方式はストアアンドフォワードルーティングと呼ば
れ、一旦パケットをノードBにストアするためにノード
Cへの送信の遅延が大きい。
並列計算機間の他の通信方式としてワームホールルー
ティングと呼ばれる方法がある。ワームホールルーティ
ングでは、メッセージがフリットと呼ばれる最小転送単
位、例えば数バイトのデータに分割される。そしてメッ
セージの最初のフリット、すなわちヘッダフリットが送
信ノードと受信ノードの間の中継ルートを作りながらネ
ットワーク内で転送されていく。すなわちあるノードが
メッセージのヘッダを受信すると、そのヘッダが示す転
送相手先ノードによって中継ルートとなるチャネル(通
信路)を選択し、ヘッダフリットおよび後続のデータフ
リットをそのチャネルを介して受信ノード側へ転送す
る。メッセージは送信ノードと受信ノードの間の中継ル
ートをずっと占有した形式、すなわちチャネル上で数珠
つなぎの形式で転送される。メッセージの最後のフリッ
トが送信ノードから出力される前にヘッダフリットが受
信セルに到着することもある。
ヘッダ以外のフリットはルーティングの情報を持って
いないが、メッセージのフリットはネットワーク内の連
続したチャネル上で転送されるために他のメッセージの
フリットによってインタリーブされることはない。メッ
セージのヘッダフリットがブロックさせると、そのメッ
セージの全てのフリットの転送は停止され、そのメッセ
ージ転送に使用されているチャネルを必要とする他のメ
ッセージの転送もブロックされる。
複数のノードがトーラス(円環)状に接続されたネッ
トワークにおいてこのワームホールルーティングを用い
る場合には、全てのメッセージの転送がブロックされる
デッドロック状態を回避する必要がある。第26図はトー
ラス状に接続されたネットワークにおけるデッドロック
の説明図である。同図において、ネットワークは4つの
ノード、、、および、それらを接続する単一方
向のチャネル(a)、(b)、(c)、および(d)に
よって構成されている。
26図において、ネットワークを構成する4つのノード
全てが同時にワームホールルーティング方式で右廻りに
データ転送を開始したとすると、ノードからのメッセ
ージはチャネル(a)、からのメッセージはチャネル
(b)、からのメッセージはチャネル(c)、から
のメッセージはチャネル(d)を用いて転送される。し
かしながら次のクロックにおいてメッセージの次のフリ
ットを送信しようとすると、例えばノードからのメッ
セージは、すでにチャネル(b)がノードからのメッ
セージの送信に用いられているために、チャネル(b)
を使用できずにブロックされる。またノードから送信
されるメッセージの次のフリットも、同様にチャネル
(c)を使用できずにブロックされる。ノード、およ
びノードから送信されるメッセージも全く同様にブロ
ックされ、全てのメッセージがブロックされたッデッド
ロック状態になる。
このようなデッドロック状態を回避するアルゴリズム
として、バーチャルチャネルと呼ばれる方法がある。バ
ーチャルチャネルを使用した通信制御方式を第27図を用
いて説明する。同図においてノード間を接続するチャネ
ルは単一方向であるが、全て仮想的に2重化されてい
る。すなわち、例えばノードとを接続するチャネル
はからへの単一方向であるが、(a)と(a)との
2重チャネルとされている。この2重チャネルは本来仮
想的なものであり、ハードウエア的には1つのチャネル
であるが、ハードウエアとして2つのチャネルを設けて
もよいことは当然である。仮想的に2重化された各チャ
ネルはそれぞれメッセージのフリットをストアすること
ができ、例えばチャネル(a)と(a)にストアされた
フリットのどちらかがノードからへ転送される。ど
ちらのチャネルのフリットを転送するかはフリットごと
に決定される。
各ノードからメッセージを送信するときの2重化され
たチャネルの使用方法は、例えば −(a)−−(b)−−(c)− −(b)−−(c)−−(d)− −(c)−−(d)−−(a)− −(d)−−(a)−−(b)− とされる。このようにチャネルを2重化することによ
り、全てのメッセージがブロックされたデッドロック状
態を回避することができる。
〔発明が解決しようとする課題〕
しかしながら、バーチャルチャネルを用いた方法にお
いても、第26図におけると同様に、全てのノードが同時
に右廻りにメッセージを転送しようとするときには転送
性能が低下するという問題点がある。最初のクロックに
おいてノードから送信されるメッセージはチャネル
(a)、からのメッセージはチャネル(b)、から
のメッセージはチャネル(c)、からのメッセージは
チャネル(d)を使用して転送され、4つのチャネルが
全て使用されるが、次のクロック以降においては実際に
メッセージ転送が行われるチャネルは2個になる。
すなわちノードから送信されたメッセージはチャネ
ル(b)を使用してノードに転送されるが、ノード
から送信されるメッセージは、ノードからノードへ
のメッセージの転送が終了した時点で初めてチャネル
(a)を使用してノードへ転送される。またノード
から送信されるメッセージは、ノードからノードへ
のメッセージ転送が終了した時点で、チャネル(d)を
使用してノードに転送される。さらにノードから送
信されるメッセージは、ノードからノードへのメッ
セージ転送が終了した時点で、チャネル(c)を使用し
てノードに転送される。
以上のようにして全てのメッセージの転送が行われる
が、各クロックにおいて実際にメッセージの転送が行わ
れているチャネル数は転送開始クロック以外は常に2個
になっており、これが転送性能低下の原因となってい
る。
本発明は、ワームホールルーティングを用いた並列計
算機間の通信において、全てのメッセージの転送がブロ
ックされたデッドロック状態を回避し、かつ転送性能の
低下を起こさない通信を実現することを目的とする。
〔課題を解決するための手段及び作用〕
第1図(a)は第1の発明の原理ブロックである。図
において複数の計算機ノード1a,1b,…がそれぞれチャネ
ル2a,2b,…により相互に接続されて並列計算機間の通信
ネットワークが構成されている。このネットワークで
は、計算機ノード間で、メッセージが複数の転送最小単
位、例えば数バイトのフリットに分割される。
データ記憶手段3a,3b,…は、ネットワーク内で自ノー
ドから最も遠いノードへの中継チャネル数nに1を加え
た個数のフリットを格納するものである。
第1図(b)にその原理例を示す第2の発明において
は、データ記憶手段3a,3b,…のそれぞれが複数の領域に
分割される。この領域は、前述の転送最小単位データ、
すなわちフリットを1個だけ格納できるもので、自ノー
ドから転送を開始するフリット用には0、それぞれ1,2,
…,n個の中継チャネルを介してメッセージ転送元ノード
から自ノードに入力されるフリット用には1,2,…,nのク
ラス番号が付加される。そしてネットワーク内でのデー
タ転送に際しては、ネットワーク内の各ノードが自ノー
ド内のデータ記憶手段3a,3b,…内にある複数のフリット
のうち、最高クラス番号領域内のフリットを隣接ノード
に出力するという方法で通信が行われる。
第1図(b)は4つのノードで構成されるネットワー
クにおける第2の発明の原理例である。同図において、
簡単のため、データ記憶手段3a,3b,…としてのバッファ
が0から3の4つのクラス番号の領域に分割された様子
のみが示されている。このバッファは、ノードから
へのメッセージを送信するときにはノードのクラス0
→ノードのクラス1、ノードからへ送信するとき
にはノードのクラス0→ノードのクラス1→ノード
のクラス2、さらにノードからへ送信するときに
はノードのクラス0→ノードのクラス1→ノード
のクラス2→ノードのクラス3というように、中継チ
ャネル数が増えるたびにクラス番号が増加する形式で使
用される。他のノードからデータ転送が開始される場合
にも全く同様にクラス0→クラス1→クラス2→クラス
3の順序でバッファが使用される。データ、すなわちフ
リットの転送時には、どのクラスにフリットが格納され
るかを示すために、データそのものに加えて、データの
クラスも同様に転送される。
第1図(b)で、従来例の第26図におけると同様に全
てのノードが同時に右廻りにデータ転送を行なう場合に
は、最初のクロックで、まずノード、、、および
からのメッセージの最初のフリットがそれぞれノード
、、、およびのバッファ内のクラス1に転送さ
れる。
次のクロックにおいては、ノード、、、および
からの最初のフリットがそれぞれノード、、、
およびのバッファ内のクラス2に転送される。
さらに次のクロックでは、各メッセージの最初のフリ
ットは各ノードのバッファ内のクラス3に転送される。
このように、本発明では全てのクロックにおいて、全て
のチャネルを用いた転送が行われることになる。
第1図(b)では、簡単のためにネットワークが1次
元のトーラス状で、しかもチャネルが単一方向の場合の
原理例を説明したが、本発明をチャネルが双方向で、2
次元のネットワークに適用することも可能であり、これ
については実施例で詳細に説明する。
〔実施例〕
第2図に本発明における並列計算機ノード間の通信ネ
ットワークシステムの全体構成図を示す。同図におい
て、各ノードは隣接ノードとチャネルによって接続さ
れ、そのチャネルは双方向のものとする。またこのネッ
トワークは最大横方向(東西方向)32個、縦方向(南北
方向)32個のノードから構成されるものとする。
第3図が各ノードの構成を示す全体ブロック図であ
る。同図においてノード1は、通信ネットワーク内でメ
ッセージの転送方向を制御するルーティングユニット4
とCPU5から成る。そしてノード1は東、西、南、および
北方向のチャネルによってそれぞれ隣接ノードと接続さ
れている。
第2図のネットワーク内において、あるノードから通
信相手先ノードへのデータ伝送は入力メッセージの最初
のフリットであるヘッダフリットによって制御される。
第4図にヘッダフリットの実施例を示す。第2図におい
て、メッセージのルーティングはまず最初に右または左
(東または西)方向、次に下または上(南または北)方
向に行われるものとする。メッセージの各フリットが0
から31の32ビットで構成されるものとすると、ヘッダフ
リットは第4図のように31ビット目にメッセージの転送
方向(X方向)が東または西のいずれであるかを示すx
s、24ビットから30ビット目に東または西方向のメッセ
ージの転送距離、すなわち中継チャネル数を示すxrci
d、23ビット目にメッセージの転送方向(Y方向)が南
または北のいずれかであるかを示すys、および16ビット
から22ビット目に南または北方向の転送距離、すなわち
中継チャネルの数を示すyrcidから成っている。
第4図においてxsが0のとき東方向、1のとき西方向
にメッセージが転送されるものとし、またysが0のとき
南方向、1のとき北方向に転送されるものとする。する
と第2図においてあるノードから東方向、すなわち右方
向に3個、南方向すなわち下方向に2個離れたノードへ
メッセージを転送する場合には、そのメッセージのヘッ
ダフリットにおいてxs=0、xrcid=3、ys=0、yrcid
=2となり、メッセージはまず東方向に3個離れたノー
ドへ、次に南方向へ2個離れたノードに転送されること
によって、通信相手先ノードに送信される。
この場合、ネットワーク内でのメッセージのルーティ
ングにおいて送信元ノードからみた相手先ノードのノー
ド番号は(+3、+2)と表される。東方向、すなわち
X方向へメッセージが1ノード進むたびに相対ノード番
号のXがデクリメントされ、送信元ノードから東方向に
3個離れたノードへヘッダフリットが到達したときに
は、相対ノード番号は(0、+2)となってX方向への
ルーティングは終了し、次に南北方向、すなわちY方向
へのルーティングが行われ、相対ノード番号が(0、
0)になったときにルーティングは終了する。
第5図に本発明における隣接ノード間でのデータ転送
基本方式を示す。本発明では、第1図(b)に示したよ
うに、自ノード内のデータ記憶手段、例えばバッファ内
で最高クラス番号領域のデータを隣接ノードに送信す
る。送信ノード側の送信処理はフェーズ〜までの3
つフェーズに分かれている。フェーズにおいては、自
ノード内のバッファにある最も高いクラスのデータを転
送クラスデータとして決定する。その次のクロックでフ
ェーズの処理、すなわち送信するデータのクラスの番
号が送信される。そしてさらに次のクロックでフェーズ
の処理、すなわちデータフリットの送信が行われる。
一方受信ノード側では、送信ノード側のフェーズの
処理が行われているクロックにおいて、送信側のフェー
ズで送られるクラスの番号が受信される。そして、次
のクロックで送信ノードからのデータフリットが受信さ
れる。すなわち1つのデータフリットの送受信は4クロ
ックの期間で行われる。なお送信ノード側でフェーズ
において決定される転送クラスは、受信ノード側でバッ
ファがフルになっていないクラス、すなわち受信ノード
側からの送信要求があったクラスのうちで最も高いクラ
スであるという条件を満たすものとする。
第6図は1つのノードからの連続するデータフリット
の出力方式を示す。同図において、3つのデータフリッ
トの出力はパイプライン方式で行われる。第1のデータ
フリットの送信フェーズと、第2のデータフリットの
送信フェーズは同じクロックで処理される。なお、第
1のデータフリットの送信フェーズと第2のデータフ
リットのフェーズ、第1のフリットのフェーズと第
2のデータフリットのフェーズとを、それぞれ同じク
ロックにおいて処理することも可能である。
本発明において、隣接ノードから送信されたデータが
自ノードにあてたものでなく、さらに次の隣接ノードへ
転送する場合、すなわち受信ノードが中継ノードになる
場合には、転送の高速化のために、そのデータをなるべ
くバッファに格納することなく、直ちに隣接ノードへ転
送することになる。そのような場合のデータ中継方式の
実施例を第7図に示す。同図においてデータ中継ノード
では、クロック3の受信フェーズで受信したデータの
クラスからそのデータの中継の有無を知ることができる
ものとし、同じクロックにおける送信フェーズでその
クラスが転送データのクラスとして選択されたときに
は、クロック4の受信フェーズで受信したデータをク
ロック5の送信フェーズでそのまま次のノードに送信
する。
第7図の中継方式において、中継すべきデータの送信
先ノードのバッファがフル状態のとき、あるいはそのク
ラス以外のクラスが転送データとして選択されその中継
データのクラスが送信されないときには、そのデータは
一旦自ノード内のバッファに格納される。そして、自ノ
ード内のバッファがフルになる可能性があることを、中
継データを送信してきた送信元隣接ノードに通知する。
その通知方式を第8図に示す。
同図において、ノードAからノードBにデータを転送
するものとし、ノードBはノードA側から送られたデー
タを受信フェーズでバッファに格納する。ノードAに
対しては、クロック3の受信フェーズで受信したクラ
スが送信されないとき、バッファがフルになる可能性が
あることをクロック4で送信し、ノードAはクロック5
でノードB内のバッファがフルになることを知ることが
できる。第6図に示したようにデータフリットの転送は
パイプライン方式で行われるために、ノードAがクロッ
ク5でバッファがフルになることを知ってもすでに次の
データを送信しているので、ノードB内のバッファは2
つのデータフリットを格納できることが必要である。ノ
ードB内のバッファのデータが送信されバッファが空に
なると、空になったことがノードAに通知される。本発
明では後述するように送信フェーズのクロックにおい
て、送信するデータのクラスとともに、バッファが空に
なったクラスの情報が隣接ノードに通知される。
第9図はネットワーク内でルーティングされるデータ
と、第5図に示したように、各データフリットに付随し
て送信されるクラス情報のフォーマットである。同図
(a)はデータフリットのフォーマットであり、データ
そのもの、すなわち第4図のヘッダフリットと同様の32
ビットのデータにエンドビットが付加されて、計33ビッ
トの形式となる。エンドビットに1が立っている場合
に、そのデータフリットがメッセージの最後のデータで
あることが示される。
第9図(b)のクラス情報は、隣接ノード間でデータ
フリットの転送の制御に用いられるものである。この情
報は東西、あるいは南北方向のルーティングの最終位置
ノードまでの中継チャネル数から、‘1'を減じた距離デ
ータdis、送信される信号のバッファ内クラスを示すク
ラス情報clss、送信クラス情報のイネーブルを示す送信
クラスイネーブル信号ce、クラス情報の転送相手先から
の受信データを格納するための自ノード内バッファの空
クラスを示す空クラス情報eclss、およびその空クラス
の情報のイネーブルを示す信号eceから成っている。
ここで、第2図に説明したようにネットワークは東
西、および南北方向の最大32個のノードから構成され、
しかもノード間を接続するチャネルは双方向であるため
に、東西、あるいは南北方向へのメッセージの転送の最
大距離は16となり、各ノード内のバッファのクラス番号
も最高16となるために、距離データdis、受信クラス情
報clss、および空クラス情報eclssは全て4ビットのデ
ータとなる。またクラス情報を転送する際に自ノード内
バッファの空クラス情報を同時に転送するのは、チャネ
ルが双方向で、相手先ノードからもデータを受信するこ
とになるためである。
第10図は、第3図におけるノード1内のルーティング
ユニット4の全体構成図である。同図において、ルーテ
ィングユニットPSRUは東西方向の送受信制御モジュール
MSRD6、南北方向の送受信制御モジュールMSRD7、CPU側
とのプロセッサインタフェースモジュールMAD8、自ノー
ドのプロセッサからのデータが入力する先入先出方式の
入力バッファMIFIFO9、プロセッサへのデータを出力す
る先入先出方式の出力バッファMOFIFO10、東西方向と南
北方向のMSRD6と7との間の入出力バッファMIO11、入力
バッファMIFIFO9からMSRD6へのデータ、およびMIO11か
らMSRD7へのデータの入力をそれぞれ制御する2つの入
力制御モジュールMIN12および13、MSRD6からMIO11へ、
およびMSRD7からMOFIFO10へのデータ出力をそれぞれ制
御する2つの出力制御モジュールMOUT14および15から成
る。
第11図は、ルーティングユニットPSRU内で隣接ノード
との間で相互にデータ送受信を制御する送受信制御モジ
ュールMSRDの構成ブロック図である。同図は東西方向の
MSRD6の構成を示している。同図においてメモリ16、17
はそれぞれ東方向、西方向へのデータを格納するための
2ポートのバッファメモリである。前述のようにデータ
フリットは33ビットであり、最大クラス数は16、しかも
1クラスに2つのデータフリットを格納する必要がある
ため、メモリ容量は2×16×33ビットとなる。
送受信クラス制御モジュールSR_PSRU18、19はそれぞ
れ東方向、西方向へ出力するデータのクラスを管理する
ものである。マルチプレクサ20、21はそれぞれ東方向、
西方向へ出力するデータを切換えるものである。また、
マルチプレクサ22は、第10図における入出力バッファMI
O11への出力データを切換えるものであり、南北方向のM
SRD7の場合にはこのマルチプレクサの出力はMOFIFO10に
入力される。
バス方向切換モジュールMSRP23、24はそれぞれ東方
向、西方向の隣接ノードとのインタフェースであり、隣
接ノードとのチャネル、すなわちバスを自ノードが所有
しているときには隣接ノードへクラス情報とデータフリ
ットを交互に送信する。バスを所有していない時には隣
接ノードからのデータとクラス情報を受信する。
バス方向制御モジュールMARB25、26はそれぞれ東方
向、西方向の隣接ノードとの間のチャネル、すなわちバ
スの方向を制御する。1つのチャネルは双方向に使用さ
れるので、第5図に示した1つのデータの転送に要する
4クロックを単位とし、4クロックに1回送信方向の切
換えが行われる。ある時刻においては隣接ノードのいず
れかがバスを所有しており、バスを所有しているノード
は相手ノードからのバス要求に応じて、必ずバスを解放
するものとする。バスを所有していないノードは出力す
るデータがあるとき、またバッファ内で空になったクラ
スがあるときには送信要求を相手ノードに出力し、バス
を所有することができる。レジスタ27、28はそれぞれ東
方向、西方向へのデータを一時格納し、そのデータをバ
ッファ16、17に出力する。従ってバッファ16、17へのデ
ータの格納は1クロック遅れることになる。
次に第11図の送受信制御モジュールMSRD内におけるデ
ータの流れについて説明する。まず自ノードのプロセッ
サからの入力データ、すなわち第10図におけるMIFIO9か
らMSRD6への入力信号は、第11図の入力データバスdataw
_i29から3つのマルチプレクサ20、21および22に入力さ
れる。そしてそのデータが東方向の隣接ノードへ向かう
ものであれば、マルチプレクサ20から東側ノードへの出
力データバスdatas_d_e30、MSRP23を経由して東側ノー
ド間データバスbuf_e31に出力される。また、南または
北方向の隣接ノードへのデータである場合には、マルチ
プレクサ22から第10図における入出力バッファMIO11へ
出力される。
次に西側隣接ノードからのデータは西側ノード間デー
タバスbuf_w32からMSRP24に入力される。そして西側ノ
ードからの入力データバスdatarw_e33を通ってマルチプ
レクサ22、レジスタ27、マルチプレクサ20、および送受
信クラス制御モジュールSR_PSRU18に入力される。前述
のように各データフリットにはそのデータのクラス番号
を表すクラス情報が付随しており、まずクラス情報、次
にデータフリットの順でネットワーク内を転送される
が、クラス情報はSR_PSRU18へ入力され、データフリッ
トはマルチプレクサ22、レジスタ27、およびマルチプレ
クサ20に入力される。
そして、入力データをバッファメモリに格納すること
なく、ただちに東側ノードへ転送する、すなわちデータ
を中継する場合には、そのデータはマルチプレクサ20を
介してMSRP23から東側隣接ノードへ出力される。またバ
ッファメモリに格納した後に出力する必要のある場合に
は、レジスタ27を経由してバッファメモリ16にデータが
格納され、東側ノードのバッファメモリが空になった時
点でマルチプレクサ20から出力される。さらに西側ノー
ドからの入力データが自ノードのプロセッサ宛である場
合には、マルチプレクサ22からそのデータが出力され、
第10図のMIO11、MSRD7、MOFIFO10、およびMAD8を介して
自ノードのプロセッサへデータが転送される。このとき
自プロセッサへデータを転送する場合を除いて、隣接ノ
ードへデータを出力する場合には、そのデータフリット
に付随するクラス情報がSR_PSRU18から東側ノードへの
出力クラス情報バスdatas_c_e34を経由して、MSRP23か
らデータフリットと交互に東側ノード間データバスbuf_
e31に出力される。
送受信クラス制御モジュールSR_PSRU18は、前述のよ
うに次に東側ノードに送信するデータのクラスを制御す
るものであり、送信相手先、すなわち東側ノード内のバ
ッファの状態を知る必要がある。このため東側ノードか
らバッファフル入力信号fulli_e35が入力する。また自
ノード内のバッファがフルになったことを示す信号バッ
ファフル出力fullo_w36を西側ノードへ出力する。
東側ノード間データバスbuf_e31をどちらのノードが
所有するかを制御するために、MARB25は隣接ノードの対
応するモジュールとの間でバス要求出力buso_e、および
バス要求入力busi_e37を送受信する。
東側ノードから、データバスbuf_e31を介して入力さ
れるデータは、前述の西側ノードからのデータと同様に
処理され、MSRP24から西側ノードへ出力されるか、また
はマルチプレクサ22から入出力バッファMIO11へ出力さ
れる。その制御方法は前述と全く同様である。
ここでマルチプレクサ20および22の切換制御信号と、
それぞれのマルチプレクサの出力との関係を第12図に示
す。これらの制御信号のうち、信号dir_moは第10図のMO
UT14から出力され、また他の信号は後述するように送受
信クラス制御モジュールSR_PSRU18内のメモリ制御モジ
ュールMCTRLから出力される。またマルチプレクサ21の
制御信号はマルチプレクサ20に対する信号と同様であ
る。
第13図はバス方向切換モジュールMSRPの構成ブロック
図である。同図は第11図の東側ノード間データバスbuf_
e31の方向を切換えるMSRP23の構成を示し、マルチプレ
クサ38、2つのレジスタ39、40およびスリーステートバ
ッファ41から成る。そして第11図の東側ノードへの出力
データバスdatas_d_e30、および東側ノードへの出力ク
ラス情報バスdatas_c_e34からの信号を、クロック信号c
lk2のクロックごとに交互に切換えてレジスタ39、およ
びスリーステートバッファ41を介して東側ノード間デー
タバスbuf_e31に出力する。ここで信号b_eはバスの所有
権を持っているときに‘H'となり、pb_eはb_eより1ク
ロック遅れた信号である。さらにレジスタ40は、東側ノ
ードからバスbuf_e31を介して入力されるデータを一時
格納するためのものである。
第14図が送受信クラス制御モジュールSR_PSRUの全体
構成ブロックである。このモジュールは隣接ノードから
のクラス情報、入力制御モジュールMIN12からのデータ
出力要求などを受信して、隣接ノード、あるいは入出力
バッファMIO11へ送信するクラス情報を作成する。同図
は第11図におけるSR_PSRU18に対応し、西側ノードから
の入力データバスdatarw_e33が接続される受信制御モジ
ュールMRECV40、計17個のクラス制御モジュールPRIM_MC
OMM43、441,…、4416、メモリ制御モジュールMCTRL45、
および東側ノードへの出力クラス情報バスdatas_c_e34
に接続される送信制御モジュールMSEND46から構成され
る。
同図においてクラス制御モジュールは自ノード内のバ
ッファメモリの各クラスに対応するデータの管理を行
う。このうち0クラス制御モジュールPRIM_MCOMM_F43は
自ノードのプロセッサからのデータのクラスを管理す
る。また計16個のクラス制御モジュールPRIM_MCOMM441
〜4416は、自ノード内のバッファの各クラスに対応する
データを管理する。前述のように、第2図の全体構成に
おいて、ノード間の最大距離に対応する16個のクラスの
それぞれに対してクラス制御モジュール441〜4416が設
けられる。
受信制御モジュールMRECV42は隣接ノードからのクラ
ス情報をデコードし、対応するクラスのクラス制御モジ
ュールPRIM_MCOMMにデータの受信を知らせる。
送信制御モジュールMSEND46はクラス制御モジュール4
3、441、…のデータ送信要求のうちから最も高いクラス
を選択し、これを第9図の(b)内の送信クラス番号cl
ssとする。また東側ノードから自ノードが受信する受信
データの格納バッファメモリのうちで、空になったクラ
スを東側ノードに通知するために、第11図において東側
ノードからのクラス情報を受信するSR_PSRU19から、自
ノード内の西方向データ用バッファメモリ、ここでは17
の空になったクラスを示す信号を受け取り、その中から
最も高いクラスを選択し、クラス情報の空クラス番号ec
lssとする。これによって東側ノードへのクラス情報が
作成されることになる。
なお第14図において0クラス制御モジュールPRIM_MCO
MM_F43は、第10図において自ノードのプロセッサから入
力バッファMIFIFO9を介して入力されるデータに対する
制御情報を、入力制御モジュールMIN12との間で送受す
る。またメモリ制御モジュールMCTRL45は、第11図にお
いてバッファメモリ16、およびマルチプレクサ20、22に
切換制御信号を出力する。さらに各クラス制御モジュー
ル、およびメモリ制御モジュールと第10図の出力制御モ
ジュールMOUT14の間でも制御信号が送受される。
第15図は送受信クラス制御モジュールSR_PSRUに対す
る信号の入出力状態を示す図である。同図においてクラ
ス制御モジュールPRIM_MCOMMは、計17個からのうち1個
のみが示されている。同図において受信制御モジュール
MRECV42はデクレメンタDECR47、比較モジュールCMP48、
2つのデコーダDECODE49、50から成る。
前述のように、受信制御モジュールMRECV42には西側
ノードから、入力データバスbatarw_e33を介してデータ
が入力される。このデータは第9図に示したように33ビ
ットから成るが、そのうちエンドビットのみが直接クラ
ス制御モジュールに入力される。入力クラス情報のうち
で東西方向(または南北方向)の宛先ノードまでの中継
チャネル数−1を示す距離データdisは、デクレメンタ4
7と比較モジュール48に入力される。
自ノードにデータが到達したことにより宛先ノードま
での距離は1減少するので、デクレメンタ47の出力が新
しい距離データdisとして、各クラス制御モジュールに
入力される。また比較モジュール48は距離データが0で
あるか否かを検出するもので、これが0でないときには
東方向イネーブル信号rva_eを、また0のときには自プ
ロセッサ方向、または東方向から南北方向への方向変換
を示す自プロセッサ方向イネーブル信号rvb_eを各クラ
ス制御モジュールに出力する。
デコーダ49は第9図(b)の送信クラス番号clss、お
よび送信クラスイネーブル信号ceを用いて、どのクラス
のデータを受信したかを示す信号をデコードし、これを
受信イネーブル信号rve_eとして各クラス制御モジュー
ルに出力する。さらにデコーダ50は西側ノードから送ら
れた空クラス番号eclss、および空クラスイネーブル信
号eceを用いて、西側ノード内のバッファのどのクラス
が空になったかを示す信号erve_wを作成し、これを自ノ
ード内で西側ノードへのデータ出力クラスを制御する送
受信クラス制御モジュール、すなわち第11図のSR_PSRU1
9に出力する。また同時に、SR_PSRU19からは、東側ノー
ドから送信された東側ノード内バッファの空クラスを示
す信号erve_eが各クラス制御モジュールに入力する。
次に送信制御モジュールMSEND46は、2つの優先度付
エンコーダPROIRITY_ENCODE51、52から成っている。優
先度付エンコーダ51は、各クラス制御モジュールからの
隣接ノードへのデータ送信要求信号DA_eを受信して、そ
れらの中から最も高いクラスの送信要求信号を選び出
す。そしてそのクラスを第9図(b)の送信クラス番号
clssとするとともに、その最高クラスを示す信号を東側
ノードへの送信アクノリッジ信号sde_eとして、各クラ
ス制御モジュールへ返送する。
優先度付エンコーダ52は、自ノード内で東側ノードか
ら送信されるデータを格納するためのメモリ、すなわち
第11図のバッファ17の空状態によってSR_PSRU19が作成
した空クラス送信要求信号em_wを用いて、最も高いクラ
スを選択し、第9図(b)の空クラス番号eclssを作成
するとともに、そのクラスを東側ノードへの空クラス送
信アクノリッジ信号esde_wとしてSR_PSRU19に出力す
る。同時に各クラス制御モジュールPRIM_MCOMM43、44は
SR_PSRU19へ西側ノードへの空クラス送信要求信号em_e
を出力し、それに対してSR_PSRU19から西側ノードへの
空クラス送信アクノリッジ信号esde_eを受け取る。
さらに各クラス制御モジュール43、44から第10図の入
出力バッファMIO11(すなわち自プロセッサ側または南
北方向)へのデータ出力を制御する出力制御モジュール
MOUT14へ、MIO11側へのデータ送信要求が信号DB_eとし
て出力される。そしてMOUT14からは、その中での最高ク
ラスとして選択されたクラスを示す送信アクノリッジ信
号psde_eが、各クラス制御モジュールへ返送される。ま
た各クラス制御モジュール43、44へは東側ノードのバッ
ファのフル状態を示す信号fu11i_eが入力する。
送信制御モジュールMSEND46からは、受信制御モジュ
ールMRECV42内のデクレメンタ47によってデクレメント
された距離データdis_eと、送信クラス番号、および空
クラス番号等がクラス情報として、東側ノードへの出力
クラス情報バスdatas_c_e34を介して東側ノードへ出力
される。
第16図はクラス制御モジュールPRIM_MCOMM44aの構成
ブロック図である。ただし、この図は0クラス制御モジ
ュールPRIM_MCOMM_F以外のクラス制御モジュールを示
す。同図において、クラス制御モジュールは4つのカウ
ンタ53、54、55、56、レジスタ57、およびロジック回路
58から成る。
受信制御モジュールMRECV42からの東方向イネーブル
信号rve_eと、自プロセッサ(MIO)方向イネーブル信号
rvb_eとが入力するカウンタ53は対応するクラスのバッ
ファ内のデータの方向を示す。またカウンタ53にはどの
クラスへのデータであるかを示す受信イネーブル信号rv
e_eが入力する。MRECV42からエンドビット信号および受
信イネーブル信号rve_eが入力するカウンタ54は、例え
ばあるメッセージの最後のデータフリットを示すエンド
ビットを判別し、次のメッセージの最初のフリット、す
なわちヘッダフリットを検出する。
MRECV42からの受信イネーブル信号rve_e、SR_PSRU19
内の送信制御モジュールMSENDからの、西側ノードへ送
信される空クラス番号を示す送信アクノリッジ信号esde
_e、および東側ノードへ出力されるデータのクラスを示
す送信アクノリッジ信号sde_e、出力制御モジュールMOU
T14からの、自プロセッサ(MIO11)宛に出力されるデー
タのクラスを示す送信アクノリッジ信号psde_eが入力さ
れるカウンタ55は対応するクラスのバッファ内にあるデ
ータ数を管理する。ここで各バッファには、前述のよう
に2つまでデータが格納可能である。
第11図のSR PSRU19内のMRECVからの東側ノード内の
バッファ空クラスを示す空クラス受信信号erve e、お
よび東側ノードからのバッファフル信号fulli eが入
力するカウンタ56は、東側ノードの対応するバッファが
フルであるか否かを示す。レジスタ57は、MRECV42内の
デクレメンタ47によってデクレメントされた距離データ
dis eを記憶し、それを送信制御モジュール46へ出力
する。
前述のようにクラス情報フォーマット内のdisがデク
レメントされながらネットワーク内でデータがルーティ
ングされるが、このdisはヘッダフリットに対してのみ
意味を持つ。例えば西側ノードからクラスAに対応する
ヘッダフリットを受信したノードは、disが0でなけれ
ばそのフリットをさらに東側ノードへルーティングす
る。またdisが0であれば、そのフリットは東側ノード
へルーティングされることはなく、南/北方向のノー
ド、あるいはそのノード自身へルーティングされる。
そして、このノードのバッファ内のクラスAに対応す
るメッセージの方向はメッセージの最後、すなわちエン
ドビットを検出するまで同じとされる。従ってクラスA
の後続のデータフリットの転送方向は、クラスAの転送
方向情報としての、レジスタ57内に保持されているdis
の値によって決定され、このレジスタの内容はヘッダフ
リットを受信したときにのみ更新される。なおこのノー
ドのバッファ内のクラスAと異なるクラスに対応するメ
ッセージの方向はそのクラスに対応するdisの値によっ
て全く別に制御されることは当然である。
第16図のロジック回路58は、カウンタ53、54、55、56
からの入力を用いて送信制御モジュールMSEND46へ東側
ノードへの送信要求信号DA_e、出力制御モジュールMOUT
14に対して入出力バッファMIO11へのデータ送信要求信
号DB_eを出力する。またロジック回路58は、メモリ制御
モジュールMCTRL45に書込み要求wr_e、読込み要求rd_e
を出力し、さらにそれぞれデータをライト、リードする
バッファの下位1ビットのアドレスであるoes_e、oer_e
を出力する。さらにロジック回路58は、SR_PSRU(西
側)19の内部の送信制御モジュールMSENDに対して西側
ノードへの空クラス送信要求信号em_eを出力する。
クラス制御モジュールPRIM_MCOMM_441〜4416のうち
で、クラス1から15を管理する441から4415は全く同じ
作用をするが、クラス16を管理する4416は、クラス16に
対応するデータが自ノード宛のものであるため、送信制
御モジュールMSND46へのデータ送信要求を行わない点だ
けが他のモジュールと異なる。
第17図は0クラス制御モジュールPRIM_MCOMM_F43の構
成ブロック図である。その作用はクラス1からクラス16
を管理するクラス制御モジュール44とほぼ同様である
が、前述のように自ノードのプロセッサとの間でのデー
タを管理するものであり、バッファの管理をしない点が
異なる。カウンタ59は第16図のカウンタ56と同様に、東
側ノードのバッファがフルであるか否かを示す。
ロジック回路60には入力制御モジュールMIN12からそ
れぞれ隣接ノード、入出力バッファMIO11へのデータ送
信要求を示す信号DA_i_e、DB_i_eが入力する。また送信
制御モジュールMSEND46内の優先度付エンコーダ51から
の、東側ノードへの送信アクノリッジ信号sde_e、およ
び出力制御モジュールMOUT14から入力する、入出力バッ
ファMIO11へのデータの送信アクノリッジ信号psde_eが
入力する。そしてロジック回路60から送信制御モジュー
ルMSEND46へ東側ノードへの送信要求信号DA_e、出力制
御モジュールMOUT14へMIO11側への送信要求信号DB_eが
出力される。
第18図はクラス制御モジュールPRIM_MCOMM内のカウン
タの状態遷移と信号の関係を示す。ここで信号de、da、
db、fst、およびfullはすべてこのモジュール内部の信
号である。同図(a)のSM1はバッファ内のデータ数を
管理するカウンタ55の状態を示す。はバッファ内のデ
ータの数が0であることを示し、この状態は受信イネー
ブル信号rve_eが1、かつ東側ノードへと、入出力バッ
ファMIO11に出力するクラスに対する送信アクノリッジ
信号、すなわちsde_eとpsde_eがともに0のとき状態
、すなちバッファ内のデータの数が1である状態に遷
移する。
状態において前述と全く同様の条件が成立すると、
状態、すなわちバッファ内データ数が2の状態に遷移
する。状態は東側ノード、または入出力バッファMIO1
1に出力するクラスに対する送信アクノリッジ信号sde_e
またpsde_eのどちらかが1にたった時点で状態に遷移
する。
また全く同じ条件によって、状態は状態、すなわ
ちバッファが空になった状態に遷移する。状態は西側
ノードへの空クラス送信アクノリッジ信号esde_eが1と
なったとき状態に遷移する。これらの4つの状態に対
応する信号は状態、に対してはde=1、状態に対
しては西側ノードへの空クラス送信要求信号がem_e=1
となる。
第18図(b)のSM2はバッファ内のデータの方向、す
なわちカウンタ53の状態を示す。バッファ内にある2デ
ータの方向が異なる可能性があるため、その状態は〜
の4つであり、状態がとのとき隣接ノード方向を
示すda=1、とのとき入出力バッファMIO11方向を
示すdb=1の信号が出力される。後述するようにSM3
0によってデータがヘッダであることが示され、かつそ
のデータが入出力バッファMIO11側へのものである(rvb
_e=1)とき状態はに遷移する。
状態からへの遷移条件はSM1≠2である。これは
バッファ内のデータが2でないと、すなわちデータ数が
1または0であることを示す。SM1=2のときはバッフ
ァ内の2個のデータの方向が異なる可能性がある。例え
ば以前に受信したバッファ内データがa方向、すなわち
東側ノード方向である(このときSM2の状態はでda=
1の信号が出る)とし、その後b方向、すなわち自プロ
セッサ(MIO11)方向のデータを受信すると、そのデー
タはバッファに格納され、SM2はとなる。ところが先
のデータがバッファ内にあるときはSM1はであり、信
号daは1、dbは0のままに保たれることになる。先に受
信したデータがバッファから出力された時点でSM1
となり、SM2はへ遷移し、db=1の信号が出る。この
ようにして先に受信したデータが必ず先に出力される。
状態は、再びSM3=0によってデータがヘッダであ
ることが示され、かつそのデータが東側ノードへのもの
である(rva_e=1)ときに状態に遷移する。状態
からへの遷移条件は、からへの遷移条件と同じく
SM1≠2である。
第18図(c)はデータがヘッダデータであるかどうか
を表すカウンタ54の状態SM3の遷移図である。状態は
データがヘッダデータであることを表し、受信イネーブ
ル信号rve_eが1となることによって状態、すなちヘ
ッダデータでない状態に遷移する。そしてエンドビット
が1であることが検出された時点で、状態は状態に
遷移する。状態に対応する信号はfst=1、に対応
する信号はfst=0である。
第18図(d)は隣接ノード内のバッファがフルである
か否かを示すカウンタ56の状態SM4の遷移図である。状
態はフルでないことを示し、バッファフル入力fulli_
eの入力によって状態、すなわち隣接ノード内のバッ
ファがフルの状態に遷移する。そして空クラス受信信号
erve_eの入力により、状態に遷移する。状態とに
対応する信号は、それぞれfull=0と1である。
第18図(e)は東側ノードへのデータ送信要求信号DA
_eと、入出力バッファMOI11へのデータ送信要求信号DB_
eの出力回路である。信号DA_eは上述の諸信号と東側方
向イネーブル信号rva_eとを用いて出力される。また信
号DB_eは前述の信号と自プロセッサ方向イネーブル信号
rvb_eとを用いて出力される。
第19図はメモリ制御モジュールMCTRL45の構成ブロッ
ク図であり、ロジック回路61とレジスタ62から成る。ロ
ジック回路61には送信制御モジュールMSEND46からの東
側ノードへの送信アクノリッジ信号sde_e、出力制御モ
ジュールMOUT14からの、MOI11へのデータのクラスを示
す送信アクノリッジ信号psde_eが入力し、またクラス制
御モジュールPRIM_MCOMMから書込み、および読込み要求
信号wr_e、rd_eおよびバッファの下位1ビット(全5ビ
ット)のアドレスoes_e、oer_eが入力する。ロジック回
路61は西側ノードへバッファフル出力fullo_wを出力す
る。この信号は自ノード内バッファへのデータ書込み信
号が発生したときに‘1'となる。さらにロジック回路61
は、第11図のマルチプレクサ20と22に対してdir_mo以外
の制御信号を出力する。
そしてレジスタ62からはリードアドレスとリードイネ
ーブル信号が2組、ライトアドレスとライトイネーブル
が1組バッファメモリに出力される。ここで、リードア
ドレスとリードイネーブル信号が2組出力されるのは、
メモリからのリードが1クロック内に2回行われるため
である。その1つは東側ノードへのデータのリードであ
り、他の1つは入出力バッファMIO11へのデータのリー
ドである。なおこのメモリからのリードは第5図におけ
る送信フェーズで、メモリへのライトは第8図におけ
るノードBの受信フェーズで行われる。
第20図は入力制御モジュールMINの構成ブロック図で
ある。入力制御モジュールMIN12は、自ノードのプロセ
ッサから入力されるデータの送信方向を決定するモジュ
ールである。送信方向は第10図のMSRD6からの出力方向
であり東側ノード、西側ノード、あるいは入出力レジス
タMIO11のいずれかの方向である。送信方向は第4図に
示したようにヘッダフリットに示されており、その方向
はメッセージの先頭、すなわちヘッダフリットからエン
ドビット検出まで同じである。
入力制御モジュールMIN12はデコーダ63、カウンタ6
4、およびデクレメンタ65から成る。テコーダ63、およ
びデクレメンタ65には第10図の入力バッファMIFIFO9か
らのデータが入力データバスdataw_i29から入力し、カ
ウンタ64には同じくMIFIFO9からデータがあることを示
す信号rvew_iが入力する。
デコーダ63はヘッダフリットの内容からデータの方向
を決定し、カウンタ64にデータの送信方向が東側ノー
ド、西側ノード、および入出力バッファMIO11側にそれ
ぞれ対応するイネーブル信号rva_e、rva_w、およびrvb_
eのいずれかを出力する。そしてカウンタ64はMSRD6に対
してそれぞれ東側、西側、および入出力バッファMIO11
側へのデータ送信要求を示す信号DA_i_e、DA_i_w、およ
びDB_i_eのいずれかを出力する。図においてDB_i_wは常
に0である。これに対してMSRD6からカウンタ64に、デ
ータが送信されたことを示すアクノリッジ信号sde_iが
入力する。
カウンタ64はエンドビットを判別することによってヘ
ッダフリットを検出し、その内容に従ってデータの送信
方向を保持する。またデクレメンタ65は、ヘッダフリッ
ト内の宛先ノードを示す情報、すなわち宛先ノードまで
の相対距離を示すIDをデクレメントし、これをMSRD6に
距離データdis_e(またはdis_w)として出力する。ここ
で自ノードのプロセッサからのデータを隣接ノードへ出
力する前に距離をデクレメントするのはこの距離を表す
ビット数を少なくするためであり、これによって第9図
(b)のdisは4ビットでよいことになる。
第21図は出力制御モジュールMOUT14の構成ブロック図
である。このモジュールは、前述のようにMSRD6から入
出力バッファMIO11へのデータ出力を制御するものであ
り、MSRD6から出力要求のあったクラスのうちで最も高
いクラスのデータを入出力バッファMIO11に出力させ
る。出力データのクラスはヘッダフリットからメッセー
ジの最後のフリットまで、すなわちエンドビットを検出
するまで同じである。あるメッセージの出力中に、より
高いクラスのデータが自ノードに入力されても、その高
いクラスのデータ出力が直ちに行われることはなく、出
力中メッセージのエンドビット検出後に、入力されたよ
り高いクラスのデータ出力が行われる。ただし、これは
MSRD6からMIO11へのデータ出力時の制御法であり、MSRD
6から隣接ノードへのデータ出力時には、1フリット毎
に異なるクラス(より高いクラス)のデータ出力が行わ
れる。
出力制御モジュールMOUT14は、優先度付(プライオリ
ティ)エンコーダ66とカウンタ67から構成される。プラ
イオリティエンコーダ66には、MSRD6内のSR_PSRU(東)
18とSR_PSRU(西)19とからの送信要求信号DB_eおよびD
B wが入力する。これらの入力と、入出力バッファMIO
11からのバッファのフルを示す信号or_full、MSRD6から
のメッセージの最後のデータフリットであることを示す
エンドビット、およびプライオリティエンコーダ66の出
力がカウンタ67に入力される。
プライオリティエンコーダ66は、データ送信要求信号
DB_eまたはDB_wのうちで最も高いクラスを選択し、それ
をカウンタ67に出力する。カウンタ67はヘッダフリット
を検出して、MSRD6から出力されるデータのクラスを示
す状態を保持するものである。カウンタ67は入出力バッ
ファMIO11に対してデータ出力を示す信号datae_moを出
力すると同時に、MSRD6に対して、MOUT14が選択した、M
IO11に送信されるデータのクラスを表す送信アクノリッ
ジ信号psde_e、またはpsde_wを出力する。ここでこの2
つの信号はそれぞれ東側、西側のSR_PSRU18、19からの
送信要求に対応するものである。さらにカウンタ67は第
11図のマルチプレクサ22に制御信号dir_moを出力する。
第22図は、自ノードのプロセッサから入力されるデー
タを格納する先入先出方式のバッファMIFIFO9の構成ブ
ロック図であり、カウンタ68とバッファ69から構成され
ている。バッファ69は、プロセッサ側からインタフェー
スMAD8を介してデータバスdbus上で入力されるデータを
一時格納し、MSRD6への入力データバスdataw_i29に出力
するものである。
_MSRD6からの送信アクノリッジ信号sde_iと、プロセッ
サ側からの書込み信号writeが入力するカウンタ68は、
バッファ内にあるデータの数を表すカウンタ、データの
出力アドレスを示すレジスタ、および次にデータが入力
される入力アドレスを示すレジスタから構成される。信
号writeが‘H'となりデータが入力されると、カウンタ
値および入力アドレスがインクレメントされ、データが
出力されると出力アドレスはインクレメント、カウンタ
値はデクレメントされる。
カウンタ68からは、入力制御モジュールMIN12へバッ
ファ内にデータがあることを示す信号rvew_iが出力さ
れ、またプロセッサ側にバッファがフルであることを示
す信号ir_fu11、およびバッファが空でないことを示す
信号ir nemptyが出力される。
第23図は、プロセッサへの出力側の先入先出方式のバ
ッファであるMOFIFO10の構成ブロック図である。第22図
のMIFIFOと同様に、カウンタ70とバッファ71から構成さ
れる。バッファ71はバッファ69と同様に、MSRD(南/
北)7からのデータを一時的に格納し、プロセッサ側へ
のデータバスに出力するものである。
カウンタ70はMIFIFO9のカウンタ68と同様の作用をす
るもので、MOUT15から出力される、MSRD7からのデータ
出力を示す信号datae_mo、およびプロセッサからのリー
ド信号が入力され、出力制御モジュールMOUT15に対して
はバッファがフルであることを示す信号or_fullを、ま
たプロセッサ側にはこのフル信号とバッファが空でない
ことを示す信号or_nemptyとを出力する。
第24図は、2つのMSRD6と7との間に挿入されるデー
タバッファである入出力バッファMIO11の構成ブロック
図である。このバッファは一般のFIFOであり、データイ
ネーブルを表す1ビットのカウンタ71とバッファ73によ
って構成される。バッファ73は入力側のデータバスから
入力されるデータを一時記憶し、MSRD(南/北)7に出
力するものである。カウンタ72には出力制御モジュール
MOUT14からのデータ出力示す信号datae_mo、およびMSRD
6からの送信アクノリッジ信号sde_iが入力する。そして
MOUT14にはバッファフルを示す信号or_fullを、入力制
御モジュールMIN13にはMIO内にデータがあることを示す
信号rvew_iが出力される。
第25図は、第11図におけるバス方向制御モジュールMA
RBのブロック図である。MARB25内にはカウンタ74があ
り、カウンタ74には第15図の送信制御モジュールMSEND4
6からチャネル獲得要求信号buso_eが入力する。ここで
チャネル獲得要求は自ノードから送信したいデータがあ
るとき、または東側ノードから送信されるデータを格納
するバッファが空になったことを東側ノードに通知する
ときに出されるものであり、MSEND46に入力する東側ノ
ードへの送信要求信号DA_eとSR_PSRU(西)19から入力
する東側ノードへの空クラス送信要求em_wとのオア信号
がチャネル獲得要求buso_eとなる。
またカウンタ74には東側ノードからのチャネル獲得要
求busi_eが入力する。カウンタ74からは東側ノードに対
してチャネル獲得要求buso_eが出力されるとともに、チ
ャネルを獲得していることを示す信号b_eが第13図のバ
ス方向切換モジュールMSRP23内のレジスタ39に、またSR
_PSRUを制御するために第15図の受信制御モジュールMRE
CV42、および送信制御モジュールMSEND46にも出力され
る。
以上詳細に説明したように、多数の計算機ノードが双
方向チャネルによって相互に2次元的に接続されたネッ
トワークにおいて、各ノードから隣接ノードへのデータ
出力時に、自ノードから出力できるデータのうち最も高
いクラスのデータを出力することによりチャネルの有効
利用をはかることができる。すなわち、前述のように、
送受信制御モジュールMSRDから隣接ノードへのデータ出
力時には、データフリット毎に出力するデータのクラス
を変えることができる。そこで例えば自ノードから東側
ノードへのチャネルがあるメッセージ転送に使用されて
いるときに何らかの原因でそのメッセージ転送がブロッ
クされても、そのチャネルを他のメッセージ転送に用い
ることが可能となる。
〔発明の効果〕
以上のように本発明によれば、ワームホールルーティ
ングを用いた並列計算機間通信において、デッドロック
を回避し、かつ転送性能の低下を防止することができ、
通信高速化に寄与するところが大きい。
【図面の簡単な説明】
第1図(a)は第1の発明の原理ブロック図、 第1図(b)は第2の発明の原理例を示す図、 第2図は本発明における並列計算機ノード間の通信ネッ
トワークシステムの全体構成を示す図、 第3図は各ノードの全体構成を示すブロック図、 第4図はメッセージの最初のヘッダフリットのフォーマ
ットの一実施例を示す図、 第5図は隣接ノード間でのデータ転送の基本方式の一実
施例を示す図、 第6図は1つのノードからの連続するデータフリットの
出力方式の一実施例を示す図、 第7図はデータ中継方式の一実施例示す図、 第8図は送信元隣接ノードへの自ノード内バッファフル
可能性通知方式の一実施例を示す図、 第9図はネットワーク内でルーティングされるデータ
と、各データフリットに付随して送信されるクラス情報
とのフォーマットの一実施例を示す図、 第10図はルーティングユニットPSRUの実施例の全体構成
を示すブロック図、 第11図は送受信制御モジュールMSRDの構成を示すブロッ
ク図、 第12図は送受信制御モジュールMSRD内のマルチプレクサ
(MUX)の出力と切換制御信号との関係を示す図、 第13図はバス方向切換モジュールMSRPの構成を示すブロ
ック図、 第14図は送受信クラス制御モジュールSR_PSRUの全体構
成を示すブロック図、 第15図は送受信クラス制御モジュールSR_PSRUに対する
信号の入出力状態を示す図、 第16図はクラス制御モジュールPRIM_MCOMMの構成を示す
ブロック図、 第17図は0クラス制御モジュールPRIM_MCOMM_Fの構成を
示すブロック図、 第18図(a)〜(e)はクラス制御モジュールPRIM_MCO
MM内のカウンタの状態遷移と信号との関係を示す図、 第19図はメモリ制御モジュールMCTRLの構成を示すブロ
ック図、 第20図は入力制御モジュールMINの構成を示すブロック
図、 第21図は出力制御モジュールMOUTの構成を示すブロック
図、 第22図は入力バッファMIFIFOの構成を示すブロック図、 第23図は出力バッファMOFIFOの構成を示すブロック図、 第24図は入出力バッファMIOの構成を示すブロック図、 第25図はバス方向制御モジュールMARBのブロック図、 第26図は複数の計算機ノードがトーラス状に接続された
ネットワークを示す図、 第27図バーチャルチャネルを用いた通信制御方式の従来
例を示す図である。 1a、1b、1c……計算機ノード、 2a、2b……チャネル、 3a、3b、3c……データ記憶手段、 4……ルーティングユニット(PSRU)、 5……CPU、 6、7……送受信制御モジュール(MSRD)、 9……入力バッファ(MIFIFO)、 10……出力バッファ(MOFIFO)、 11……入出力バッファ(MIO)、 12、13……入力制御モジュール(MIN)、 14、15……出力制御モジュール(MOUT)、 16、17……バッファメモリ、 18、19……送受信クラス制御モジュール(SR_PSRU)、 20〜22……マルチプレクサ(MUX)、 42……受信制御モジュール(MRECV)、 43……0クラス制御モジュール(PRIM_MCOMM_F)、 441〜4416……クラス制御モジュール(PRIM_MCOMM)、 45……メモリ制御モジュール(MCTRL)、 46……送信制御モジュール(MSEND)
───────────────────────────────────────────────────── フロントページの続き (72)発明者 石畑 宏明 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (56)参考文献 IEEE TRAS,ON COM P,VOL.C−36,NO.5(1987) P.547−553 IEEE TRAS,ON COM P,VOL.COM−28,NO.3 (1980)P.345−354

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】複数の計算機ノードをチャネルにより相互
    に接続したネットワーク内で、複数の転送最小単位デー
    タに分割されたメッセージを前記チャネル上で連続的に
    転送するワームホールルーティングを用いた並列計算機
    間通信方式において、 前記複数の計算機ノードの各ノードに、 (イ)前記ネットワーク内で自ノードから最も遠いノー
    ドへの中継チャネル数nに1を加えた個数の前記転送最
    小単位データを記憶するデータ記憶手段であって、自ノ
    ードから転送を開始する前記転送最小単位データを格納
    するクラス番号0の領域と、それぞれ1、2、・・・、
    n個の中継チャネルを経由してメッセージ転送元ノード
    から自ノードに入力された該転送最小単位データを格納
    する、それぞれクラス番号1、2、・・・、nの領域に
    分割されたデータ記憶手段と、 (ロ)隣接するデータ転送ノードからクラス情報と共に
    受信したデータを、該隣接するデータ転送ノードにおけ
    るクラス番号から1を増加したクラス番号の領域に格納
    する制御手段と、 (ハ)複数のクラス番号領域内に隣接ノードに転送すべ
    きデータがあり、かつ隣接ノードの転送先クラス番号領
    域が空いている時に、該複数のクラス番号中の最高クラ
    ス番号領域内のデータを、当該データのクラス情報と共
    に、該隣接ノードに出力する制御手段とを備え、 ワームホールルーティングにおいて、転送最小単位デー
    タのクラス間に生じるインタリーブを許容することによ
    りデッロックを回避しつつ、並列計算機間の通信をおこ
    なうことを特徴とする並列計算機間通信制御方式。
JP1068514A 1989-03-20 1989-03-20 並列計算機間通信制御方式 Expired - Fee Related JP3072646B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP1068514A JP3072646B2 (ja) 1989-03-20 1989-03-20 並列計算機間通信制御方式
US07/495,987 US5157692A (en) 1989-03-20 1990-03-20 System for controlling communication between parallel computers
DE69029003T DE69029003T2 (de) 1989-03-20 1990-03-20 System für Übertragungssteuerung zwischen Parallelrechnern
EP90302986A EP0389246B1 (en) 1989-03-20 1990-03-20 A system for controlling communication between parallel computers
AU52020/90A AU628143B2 (en) 1989-03-20 1990-03-20 A system for controlling communication between parallel computers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1068514A JP3072646B2 (ja) 1989-03-20 1989-03-20 並列計算機間通信制御方式

Publications (2)

Publication Number Publication Date
JPH02245962A JPH02245962A (ja) 1990-10-01
JP3072646B2 true JP3072646B2 (ja) 2000-07-31

Family

ID=13375903

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1068514A Expired - Fee Related JP3072646B2 (ja) 1989-03-20 1989-03-20 並列計算機間通信制御方式

Country Status (5)

Country Link
US (1) US5157692A (ja)
EP (1) EP0389246B1 (ja)
JP (1) JP3072646B2 (ja)
AU (1) AU628143B2 (ja)
DE (1) DE69029003T2 (ja)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5181017A (en) * 1989-07-27 1993-01-19 Ibm Corporation Adaptive routing in a parallel computing system
DE69029239T2 (de) * 1989-09-18 1997-03-27 Fujitsu Ltd Übertragungsteuerungssystem zwischen Parallelrechnern
US5471623A (en) * 1991-02-26 1995-11-28 Napolitano, Jr.; Leonard M. Lambda network having 2m-1 nodes in each of m stages with each node coupled to four other nodes for bidirectional routing of data packets between nodes
JP2601591B2 (ja) * 1991-11-26 1997-04-16 富士通株式会社 並列計算機およびその全対全通信方法
US5444701A (en) * 1992-10-29 1995-08-22 International Business Machines Corporation Method of packet routing in torus networks with two buffers per edge
US5533198A (en) * 1992-11-30 1996-07-02 Cray Research, Inc. Direction order priority routing of packets between nodes in a networked system
JPH06266684A (ja) * 1993-03-15 1994-09-22 Toshiba Corp プロセッサ間ルーティング方式
JP3251723B2 (ja) * 1993-07-15 2002-01-28 富士通株式会社 放送通信方法
US5685012A (en) 1993-11-09 1997-11-04 Micron Electronics, Inc. System for employing high speed data transfer between host and peripheral via host interface circuitry utilizing an IOread signal driven by the peripheral or the host
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
US5581705A (en) * 1993-12-13 1996-12-03 Cray Research, Inc. Messaging facility with hardware tail pointer and software implemented head pointer message queue for distributed memory massively parallel processing system
JP3639319B2 (ja) * 1994-01-25 2005-04-20 富士通株式会社 並列計算機システム,データ転送制御方法および送受信制御装置
US5453978A (en) * 1994-04-04 1995-09-26 International Business Machines Corporation Technique for accomplishing deadlock free routing through a multi-stage cross-point packet switch
US5659796A (en) * 1995-04-13 1997-08-19 Cray Research, Inc. System for randomly modifying virtual channel allocation and accepting the random modification based on the cost function
US5701416A (en) * 1995-04-13 1997-12-23 Cray Research, Inc. Adaptive routing mechanism for torus interconnection network
US5664140A (en) * 1995-05-19 1997-09-02 Micron Electronics, Inc. Processor to memory interface logic for use in a computer system using a multiplexed memory address
US5721921A (en) * 1995-05-25 1998-02-24 Cray Research, Inc. Barrier and eureka synchronization architecture for multiprocessors
US6055618A (en) * 1995-10-31 2000-04-25 Cray Research, Inc. Virtual maintenance network in multiprocessing system having a non-flow controlled virtual maintenance channel
US5864738A (en) * 1996-03-13 1999-01-26 Cray Research, Inc. Massively parallel processing system using two data paths: one connecting router circuit to the interconnect network and the other connecting router circuit to I/O controller
US5841973A (en) * 1996-03-13 1998-11-24 Cray Research, Inc. Messaging in distributed memory multiprocessing system having shell circuitry for atomic control of message storage queue's tail pointer structure in local memory
US5835925A (en) * 1996-03-13 1998-11-10 Cray Research, Inc. Using external registers to extend memory reference capabilities of a microprocessor
JPH10336248A (ja) * 1997-04-01 1998-12-18 Canon Inc 通信システム及び通信システムに接続可能な通信装置と、通信システムの制御方法及び通信システムに接続可能な通信装置の制御方法
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
US5970232A (en) * 1997-11-17 1999-10-19 Cray Research, Inc. Router table lookup mechanism
US6230252B1 (en) 1997-11-17 2001-05-08 Silicon Graphics, Inc. Hybrid hypercube/torus architecture
US6101181A (en) * 1997-11-17 2000-08-08 Cray Research Inc. Virtual channel assignment in large torus systems
US6085303A (en) * 1997-11-17 2000-07-04 Cray Research, Inc. Seralized race-free virtual barrier network
US6717942B1 (en) * 1998-06-25 2004-04-06 Avici Systems, Inc. Space-efficient source routing
US6216174B1 (en) 1998-09-29 2001-04-10 Silicon Graphics, Inc. System and method for fast barrier synchronization
US6389488B1 (en) * 1999-01-28 2002-05-14 Advanced Micro Devices, Inc. Read ahead buffer for read accesses to system memory by input/output devices with buffer valid indication
JP2000330952A (ja) * 1999-05-20 2000-11-30 Nec Corp 多段接続スイッチシステムのフロー制御装置および方法
US6674720B1 (en) 1999-09-29 2004-01-06 Silicon Graphics, Inc. Age-based network arbitration system and method
US6751698B1 (en) 1999-09-29 2004-06-15 Silicon Graphics, Inc. Multiprocessor node controller circuit and method
JP2001237874A (ja) * 1999-12-13 2001-08-31 Do It Inc 電子メール転送方法、転送システム及び転送装置
US7111163B1 (en) 2000-07-10 2006-09-19 Alterwan, Inc. Wide area network using internet with quality of service
AU2001296628A1 (en) * 2000-09-27 2002-04-08 Hrl Laboratories, Llc Method and apparatus for providing directed communications through a networked array of nodes
US7421565B1 (en) 2003-08-18 2008-09-02 Cray Inc. Method and apparatus for indirectly addressed vector load-add -store across multi-processors
US7334110B1 (en) 2003-08-18 2008-02-19 Cray Inc. Decoupled scalar/vector computer architecture system and method
US7437521B1 (en) 2003-08-18 2008-10-14 Cray Inc. Multistream processing memory-and barrier-synchronization method and apparatus
US7503048B1 (en) 2003-08-18 2009-03-10 Cray Incorporated Scheduling synchronization of programs running as streams on multiple processors
US7366873B1 (en) 2003-08-18 2008-04-29 Cray, Inc. Indirectly addressed vector load-operate-store method and apparatus
US8307194B1 (en) 2003-08-18 2012-11-06 Cray Inc. Relaxed memory consistency model
US7543133B1 (en) 2003-08-18 2009-06-02 Cray Inc. Latency tolerant distributed shared memory multiprocessor computer
US7379424B1 (en) 2003-08-18 2008-05-27 Cray Inc. Systems and methods for routing packets in multiprocessor computer systems
US7519771B1 (en) 2003-08-18 2009-04-14 Cray Inc. System and method for processing memory instructions using a forced order queue
US7735088B1 (en) 2003-08-18 2010-06-08 Cray Inc. Scheduling synchronization of programs running as streams on multiple processors
US7478769B1 (en) 2005-03-09 2009-01-20 Cray Inc. Method and apparatus for cooling electronic components
US7965725B2 (en) * 2005-05-31 2011-06-21 Stmicroelectronics, Inc. Hyper-ring-on-chip (HyRoC) architecture
US7773617B2 (en) * 2006-11-08 2010-08-10 Sicortex, Inc. System and method for arbitration for virtual channels to prevent livelock in a richly-connected multi-processor computer system
US8549092B2 (en) * 2009-02-19 2013-10-01 Micron Technology, Inc. Memory network methods, apparatus, and systems

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2458970A1 (fr) * 1979-06-12 1981-01-02 Materiel Telephonique Reseau de commutation a structure repartie pour centre de telecommunications
US4797882A (en) * 1985-10-02 1989-01-10 American Telephone And Telegraph Company, At&T Bell Laboratories Mesh-based switching network
GB8528892D0 (en) * 1985-11-23 1986-01-02 Int Computers Ltd Multi-node data processing system
US4933933A (en) * 1986-12-19 1990-06-12 The California Institute Of Technology Torus routing chip
US4984235A (en) * 1987-04-27 1991-01-08 Thinking Machines Corporation Method and apparatus for routing message packets and recording the roofing sequence
US5008882A (en) * 1987-08-17 1991-04-16 California Institute Of Technology Method and apparatus for eliminating unsuccessful tries in a search tree
JP2509947B2 (ja) * 1987-08-19 1996-06-26 富士通株式会社 ネットワ−ク制御方式

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
IEEE TRAS,ON COMP,VOL.C−36,NO.5(1987)P.547−553
IEEE TRAS,ON COMP,VOL.COM−28,NO.3(1980)P.345−354

Also Published As

Publication number Publication date
JPH02245962A (ja) 1990-10-01
EP0389246B1 (en) 1996-10-30
EP0389246A3 (en) 1992-05-13
AU628143B2 (en) 1992-09-10
EP0389246A2 (en) 1990-09-26
DE69029003D1 (de) 1996-12-05
US5157692A (en) 1992-10-20
AU5202090A (en) 1990-09-20
DE69029003T2 (de) 1997-03-13

Similar Documents

Publication Publication Date Title
JP3072646B2 (ja) 並列計算機間通信制御方式
US5754789A (en) Apparatus and method for controlling point-to-point interconnect communications between nodes
Tamir et al. Dynamically-allocated multi-queue buffers for VLSI communication switches
US5333279A (en) Self-timed mesh routing chip with data broadcasting
US7889725B2 (en) Computer cluster
Jesshope et al. High performance communications in processor networks
EP0195589B1 (en) Switching system for transmission of data
US5136582A (en) Memory management system and method for network controller
USRE34528E (en) Delta network of a cross-point switch
US5175733A (en) Adaptive message routing for multi-dimensional networks
US5398317A (en) Synchronous message routing using a retransmitted clock signal in a multiprocessor computer system
EP0433520B1 (en) Elastic configurable buffer for buffering asynchronous data
US20040124877A1 (en) Integrated circuit and related improvements
JP2003178039A (ja) 分散共有仮想メモリーとその構成方法
JP2553260B2 (ja) ネットワーク情報転送方法及び装置
JPH0844675A (ja) 処理エレメント間の制御メッセージ分散のための装置及び方法
US5594866A (en) Message routing in a multi-processor computer system with alternate edge strobe regeneration
US4276611A (en) Device for the control of data flows
JP2507230B2 (ja) インタ―フェ―ス装置および方法並びに通信アダプタ
US6546451B1 (en) Method and apparatus for decoupling processor speed from memory subsystem speed in a node controller
US5473755A (en) System for controlling data stream by changing fall through FIFO last cell state of first component whenever data read out of second component last latch
KR100250465B1 (ko) 고속병렬컴퓨터의 메시지 전송 방법
JP3115801B2 (ja) 並列計算機システム
JP2842108B2 (ja) データ転送装置と並列処理システム
Kanoh et al. Message passing communication in a parallel computer Cenju-4

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees