JPH07191947A - 並列計算機 - Google Patents

並列計算機

Info

Publication number
JPH07191947A
JPH07191947A JP5333759A JP33375993A JPH07191947A JP H07191947 A JPH07191947 A JP H07191947A JP 5333759 A JP5333759 A JP 5333759A JP 33375993 A JP33375993 A JP 33375993A JP H07191947 A JPH07191947 A JP H07191947A
Authority
JP
Japan
Prior art keywords
chip
processor
processors
adjacent
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.)
Pending
Application number
JP5333759A
Other languages
English (en)
Inventor
Hiroyuki Takano
裕之 高野
Hisatomo Satou
寿倫 佐藤
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP5333759A priority Critical patent/JPH07191947A/ja
Publication of JPH07191947A publication Critical patent/JPH07191947A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Communication Control (AREA)

Abstract

(57)【要約】 【目的】 複数の要素プロセッサを含むチップがトーラ
ス状に結合された並列計算機において、チップ内要素プ
ロセッサ集積数を、並列計算機の直径に強く依存する問
題で発生する通信命令の数・速度に対し、活かすことを
目的とする。 【構成】 各要素プロセッサが、隣接要素プロセッサと
の通常の結合方法以外に、各チップ内でn(=1,2,
…)個先の要素プロセッサとトーラス状に結合する方法
及び、チップ内の各列の内のどれかが、隣接するチップ
に接続された入出力ポートに結合する方法及び、これら
の選択を行う制御手段をチップ内に有する。 【効果】 本発明を適切なアルゴリズムを使用すること
により、チップ内要素プロセッサ集積数に応じ通信命令
数を減少せしむ。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は並列計算機に関する。
【0002】
【従来の技術】図11は従来のトーラス結合型並列計算
機を構成する、複数の要素プロセッサを含んだLSIチ
ップの例である。
【0003】各要素プロセッサの通信用入出力ポートは
チップ内の隣接する要素プロセッサの入出力ポートまた
は、隣接するチップ内の要素プロセッサに接続されてい
るチップ用入出力ポートへ接続されている。
【0004】各要素プロセッサは、通信令名の実行にと
もなって、各要素プロセッサに属する通信命令で指定さ
れたレジスタの内容を、入出力ポートを通して入出力す
る。
【0005】このように従来の並列計算機の構成例で
は、隣接要素プロセッサ間の通信時間に関して、チップ
用入出力ポートを経由した場合のほうが、経由してない
場合すなわちチップ内に送受信用の信号線が存在する場
合に比べ大幅に大きく、結果、送受信をプログラム中で
命令として実行した場合、そのレイテンシは、チップ用
入出力ポートを経由した場合のレイテンシで決定されて
しまう。
【0006】よって、チップ内部に複数の要素プロセッ
サを集積しているにも関わらず、それによって生まれ
た、チップ内の信号線を通してデータをやりとりしてい
る場合の高速な通信速度を無駄にしている結果を生じて
いる。その結果、通信命令時間に大きく依存する問題の
内の典型である並列計算機の直径が直接効いてくる類の
問題に対し、上記高速な通信速度を用いればチップ内要
素プロセッサ集積数に応じた時間で問題を処理できるの
に、用いていないために無駄な時間を消費という問題が
生じている。
【0007】また、第2の発明に関連した 、通信ネッ
トワークを介して相互結合された複数のプロセサからな
る従来の並列計算機では、各プロセサは通信ネットワー
クを介して相互に通信を行う。通信ネットワークはこれ
らのプロセサを相互に結合するが、プロセサの数は非常
に多いので、任意のプロセサから他の全てのプロセサに
結合するための通信経路を備えるのは、物理的にも経済
的にも現実的ではない。そこで、相互に隣接するプロセ
サ間の通信チャネルだけを供えさせ、隣接せずに直接に
結合されていないプロセサ間では、一つ以上の中継プロ
セサを介して通信を行う方法がある。
【0008】このようなプロセサ間通信方式として、ワ
ームホール・ルーティングという方法がある。ワームホ
ール・ルーティングでは、メッセージをフリットと呼ば
れる最小通信単位、例えば数バイトのデータに分割し、
このフリットのみが中継プロセサのバッファに蓄えられ
る。メッセージのヘッダが入力チャンネルから出力チャ
ネルへ中継ルートを作りながら、メッセージが送り出さ
れていく。あるプロセサがメッセージの先頭フリットを
受信すると、そのフリットに示されている宛先にしたが
って中継ルートとなるチャネルを選択する。後続のフリ
ットは先頭フリットが選択したルートと同じチャネルに
通信されていく。メッセージは送信側プロセサと受信側
プロセサとの間の中継ルートを占有する。メッセージの
最後のフリットが送信側プロセサから出力される前に、
先頭フリットがほかのメッセージによってブロックされ
ると、後続する全てのフリットの通信は停止し、そのメ
ッセージが占有しているチャネルを必要とする他のメッ
セージもブロックされることになる。このように、ワー
ムホール・ルーティングでは、一つのメッセージが通信
されている間、そのメッセージが使用しているチャネル
を占有するので、デッドロックの発生とスループットが
低いという問題か発生している。
【0009】図20を用いてデッドロックを説明する。
図20は1次元トーラス構造の単方向ネットワークであ
り、プロセサ3200〜3203が通信チャネル430
0〜4303で接続されている。このネットワークにお
いて、全てのプロセサが同時に2つ先のプロセサにメッ
シセージを送信する場合を考える。まず第1サイクルで
は、プロセサ3203からのメッセージの先頭フリット
はチャネル4303,プロセサ3202からのメッセー
ジの先頭フリットはチャネル4302,プロセサ320
1からのメッセージの先頭フリットはチャネル430
1,プロセサ3200からのメッセージの先頭フリット
はチャネル4300を用いて通信される。第2サイクル
では、各プロセサでメッセージの第2フリットを同じチ
ャネルを用いて通信しようとする。しかし、ここで、例
えばプロセサ3203からのメッセージの先頭フリット
は、すでにチャネル4302がプロセサ3202からの
メッセージの先頭フリットの通信に用いられているた
め、ブロックされてしまう。同様に、プロセサ3202
からの先頭フリットも、チャネル4301を使用できず
にブロックされる。プロセサ3201,プロセサ320
0からのメッセージの先頭フリットも同様にブロックさ
れ、どのメッセージも送信できない、デッドロックな状
態に陥る。
【0010】つづいて、スループットの低下を説明す
る。あるメッセージの先頭フリットがほかのメッセージ
によってブロックされると、後続する全てのフリットの
通信は停止され、そのメッセージによって占有されてい
るチャネルを必要とする他のメッセージもブロックされ
ることになる。したがってスループットが低下するわけ
である。
【0011】デッドロック発生の問題を解決するために
は、W.J.Dally 他の“Deadlock-Free Message Routing
in Multiprocessor Interconnection Networks”(IEEE
Trans. Comput., vol.C 6, No.5, May 1987)に開示さ
れているように、物理チャネルを論理的に2重化してル
ーティングを行えばよい。以下では、2重化したチャネ
ルをa/bで区別することにする。宛先が現在先頭フリ
ットが存在するプロセサの番地よりも大きな時はaを選
択し、小さいときはbを選択するようにルーティングす
ると、デッドロックフリーとなる。図21を用いて、前
述したデッドロックが回避される様子を説明する。図2
1はやはり1次元トーラス構造をしたネットワークであ
り、プロセサ3300〜3303が通信チャネル440
0a/b〜4403a/bで接続されている。1320
a/b〜1323a/bはフリットを蓄えるバッファで
ある。2200〜2203は演算処理部である。各プロ
セサからのメッセージは、 のように通信できる。このようにチャネルを2重化する
ことにより、デッドロックを回避できる。
【0012】この方法をN次元トーラス・ネットワーク
に用いる場合は、以下のようなルーティング方法が採ら
れる。
【0013】[1] 第1の次元の宛先に到達するま
で、第1の次元のルーティングを行う。第1の次元の宛
先に到達した場合は、[2]へ進む。
【0014】[2] 第1の次元の宛先に到達するま
で、第2の次元のルーティングを行う。第2の次元の宛
先に到達した場合は、[3]へ進む。
【0015】という操作を繰り返し、 [N] 第Nの次元の宛先に到達するまで、第Nの次元
のルーティングを行う。第Nの次元の宛先に到達した場
合は、演算処理部に転送する。
【0016】すなわちこの方法では、通信経路が固定さ
れるという問題点がある。例えば図22に示す2次元ト
ーラス・ネットワークの場合、プロセサ3400からプ
ロセサ3401への通信経路は、図22に示す1つのみ
しか選択できない。
【0017】このような多次元ネットワークでのスルー
プットを向上するためには、通信路の選択の自由度を増
すことが考えられる。たとえばi,jを1以上N以下の
任意の整数として、第iの次元のチャネルはブロックさ
れているが第jの次元のチャネルがブロックされていな
ければ、第jの次元に出力するようなルーティングを考
えることができる。すなわち、複数の次元のルーティン
グを同時に行うことで、スループットの向上を図ること
ができる。
【0018】しかし、上記の“Deadlock-Free Message
Routing in Multiprocessor Interconnection Network
s”に開示されている方法は上述したような固定的なル
ーティングを仮定しているため、このように通信経路の
選択の自由度を増すと、デッドロック・フリーは保証さ
れない。
【0019】
【発明が解決しようとする課題】第1の発明は、複数の
要素プロセッサを含むチップがトーラス状に結合された
並列計算機において、従来の並列計算機が、複数の要素
プロセッサが1チップ内に含まれているという利点を活
用していないが為に、データ収集・総和・最大値・最小
値など並列計算機の直径に依存する問題で、直径オーダ
ーの、隣接するチップ間通信速度で律速された、隣接要
素プロセッサ間通信を発生させざるを得ず、チップ内要
素プロセッサ集積数に応じた能力が発揮できず、他のハ
イパーキューブ型計算機や木型計算機で同様の問題を計
算した場合の、要素プロセッサ数の対数スケールで計算
でき場合に比べ極めて実行速度が遅いという問題を解決
する。
【0020】上記のように第2の発明の従来例では、通
信経路が固定され、通信チャネルを有効に利用できない
ため、スループットが低いという問題点があった。一
方、通信経路の選択の自由度を増すとデッドロックを発
生するという問題点があった。第2の発明は、上記の問
題を除去し、デッドロック・フリーを保証しつつ通信経
路の選択の自由度を増し、スループットを向上させるこ
とを目的とする。
【0021】
【課題を解決するための手段】第1の発明は、複数の要
素プロセッサを含むLSIチップをトーラス状に結合し
た並列計算機において、各要素プロセッサが、当該要素
プロセッサを含む当該チップが結合している任意の方向
に対して、その方向上で隣接する要素プロセッサが当該
チップ内に存在する場合には当該隣接要素プロセッサと
結合し、存在しない場合にはその方向上の隣接チップへ
接続されている当該チップ内の入出力ポートへ結合する
隣接結合手段と、その方向が表す次元上に存する当該チ
ップ内の要素プロセッサのうちのどれかが、そのどれか
を示すパラメータ1によりその方向及びその逆方向に存
する当該チップ内の入出力ポート結合するチップ外結合
手段と、その方向上に存する当該チップ内の要素プロセ
ッサのうちのn(n=1,2,…,N−1)個先の要素
プロセッサのどれかと、そのどれかを示すパラメータ
2、及びチップ内の各要素プロセッサの位置・チップ内
の各次元方向の要素プロセッサ数Nからトーラス状に結
合するチップ内トーラス状結合手段と、前記隣接結合手
段と前記チップ外結合手段と前記チップ内トーラス状結
合手段のどの結合手段をとるかを与える制御手段と、を
当該チップ内に有することにより、並列計算機の直径に
依存するの問題に対し、本発明の有効に活かす適切なア
ルゴリズムを用いることで、問題を解く際に必要な通信
命令数をチップ内要素プロセッサ集積数に応じて減少せ
しめることができ、且つ、チップ間入出力ポート数を従
来に比して増やさず、また隣接プロセッサ間通信時間の
増加を無視できる程度に押し止められるので、結果、チ
ップ内要素プロセッサ集積数に応じた速度向上を与える
ことができる。
【0022】例えば、2次元のトーラス結合並列計算機
では本発明は第1図のような構成を有する複数のLSI
チップから構成される。
【0023】第2の発明は、上記課題を解決するため
に、各次元でのプロセサ間の最大距離をDn (1≦n≦
N)とするとき、N次元トーラス・ネットワークで相互
接続される各要素プロセサに、各次元方向の各チャネル
に対して(ΣDn +N)個、プロセサ全体では(N×
(ΣDn +N)+1)個のバッファを用意する。
【0024】
【作用】上記のような並列計算機の直径に依存する問題
があった場合、チップ外とのデータのやりとりをチップ
の各方向について各チップに所属する入出力ポート数に
見合った数以下の要素プロセッサのみのやりとりで代表
させるような、適切なアルゴリズムを、第1の発明上で
用いれば、チップ外とのデータのやりとりが発生した場
合には前記チップ外結合手段を用いることによって、チ
ップ外とのデータのやりとりで発生する通信命令数を、
チップ内要素プロセッサ集積数の逆数倍だけに減少せし
めることができ、しかも、新たに必要とされる前記チッ
プ外結合手段などの結合手段及び前記制御手段によって
増加する通信時間の増分は、それらがチップ内に存する
ので、隣接要素プロセッサ間通信時間の大部分を占めて
いて且つ前記増分に比べ大幅に大きい隣接チップ間通信
時間に比べ無視できるものにできるで、通信命令数の減
少がそのままプログラムの実行速度の向上につながるこ
とになる。
【0025】例えば、並列計算機の直径に依存する典型
的な問題として、データ収集・総和・最大値・最小値の
ような問題があった場合、通信命令数については、以下
のような適切なアルゴリズムを本発明上で用いれば効果
的に減少せしめることができる。
【0026】まず、要素プロセッサ内で計算を終えた
後、チップ内に存する要素プロセッサ間でカスケード演
算を行う。即ち、チップ内の1つの次元に2n 個数要素
プロセッサが存する場合、先ず各要素プロセッサはその
次元20 個離れた要素プロセッサとトーラス状に結合で
きるよう上記パラメータ群をセットしデータ授受、次に
その次元で21 個離れた要素プロセッサとトーラス状に
結合できるよう上記パラメータ群をセットしデータ授
受、・・・、最後にその次元で2n-1 個離れた要素プロ
セッサとトーラス状に結合できるよう上記パラメータ群
をセットしデータ授受、というかたちで行う。その後他
の次元についても全く同様に行う。ある次元について2
j (j=0,…,n−1)個離れた要素プロセッサとト
ーラス状に結合しているとき他の次元についても同じj
の2j 個離れた要素プロセッサとトーラス状に結合して
いる形で当該チップが実現されている場合には、j=一
定のときに全ての次元についてデータを授受する処理を
j=0からn−1まで行う方法でもよい。
【0027】次に、選ばれた要素プロセッサ群がチップ
内のどの次元方向とも平行にならないように、例えば対
角部分にある要素プロセッサを上記入出力ポートに結合
できるよう上記パラメータ群をセットし、隣接プロセッ
サ間通信によってデータを授受、演算を進める。
【0028】上記パラメータ群により選ばれた要素プロ
セッサで問題の答えが得られた後、最後に、上記パラメ
ータ群により選ばれた要素プロセッサから、前記チップ
内カスケード演算方式を用いて、適当な一次元方向のみ
にデータを流す。
【0029】上記アルゴリズムに必要な通信命令数は、
例えば2次元トーラス結合並列計算機の場合、全要素プ
ロセッサN×N、一チップ内に集積された要素プロセッ
サ数M×Mとすると、 3log2 N+2(k−1)−3log2 k (但し
k=N/M) であり、従来の2次元トーラス結合並列計算機で必要な
通信命令数、 2(N−1) に比べ、一チップ内要素プロセッサ集積数が増加すれば
するほどハイパーキューブ型や木型の並列計算機で実行
した場合に得られる要素プロセッサ数の対数スケール、 O(log2 N) により近くなる。
【0030】第2の発明においては,ルータの出力チャ
ネルCOに用意されるバッファに番号を付け、それをレ
ーンLO=LO(CO)と呼ぶことにする。
【0031】ルーティングの際には、チャネルの混雑度
を考慮して、出力チャネルCOを選択する。
【0032】入力チャネルCI,入力レーンをLI=L
I(CI)とするとき出力レーンLOを以下の規則にし
たがって決定する。
【0033】[1] CI≠COの場合は、出力レーン
LO=LI+1とする。そうでなければ、LO=LIと
する。
【0034】[2] MをM≦ADn (1≦n≦N)で
ある任意の定数として、出力チャネルCOの次元のプロ
セサ番号ADD(CO)=Mの場合には、出力レーンL
Oをさらに+1だけ増す。
【0035】上記の規則で決定されるレーンを選択して
ルーティングを行うと、通信経路に閉路が存在しないの
で、デッドロック・フリーを保証しつつ、通信経路の選
択の自由度を増すことができる。
【0036】
【実施例】以下の説明では、同一記号は同一部品を示
し、説明の重複は省略する。
【0037】図2は、第1の発明を構成するLSIチッ
プの構成の一実施例である。
【0038】本実施例では、LSIチップ100は4×
4の要素プロセッサ200、東西方向4・南北方向4の
結合方法スイッチ回路300、及びチップ外とのデータ
のやりとりに用いる各方向4の32bit幅のチップ用
入出力ポート400からなり、このうち要素プロセッサ
200は図3のように、要素プロセッサ外とのデータの
やりとりに用いる各方向1の32bit幅の要素プロセ
ッサ用入出力ポート210、及び東西・南北方向用結合
方法スイッチ回路300への結合モード信号を与える制
御信号用ポート220からなる。
【0039】要素プロセッサ200は、モード信号出力
回路201を有する。
【0040】モード信号出力回路201は、図4のよう
に、要素プロセッサ200上で命令‘mode’が実行
された場合、そのmode命令のビットパターンから第
1引き数の2進表現のLSBを抽出しこれを3ビットの
モード信号レジスタ202のMSBへ格納するととも
に、第2引き数の2進表現のLSBから2ビット分を抽
出しこれを前記モード信号レジスタ202のLSBから
2ビット分に格納する機能を有する。モード信号レジス
タ202に格納されている3ビットは東西・南北両方向
用の制御信号用ポート220へ出力されている。
【0041】モード信号レジスタ202は、次にmod
e命令がプログラム中で実行されるまで現在格納してい
るデータを保持する。また、モード信号レジスタ202
はプログラム起動時に各ビット0に初期化されるものと
する。
【0042】mode命令は、図5に示す、第1引き数
・第2引き数の組み合わせの意味に基づいて使用され
る。また、mode命令の引き数がレジスタ番号だった
場合には、そのレジスタに格納されている値が、引き数
として渡されるものとする。
【0043】本実施例では、本特許の請求項で述べられ
ている各要素路プロセッサの「制御手段」は、上記モー
ド信号出力回路201と後に詳細に述べる結合方法スイ
ッチ300の一部であるテーブル作成回路310によっ
て実現されている。また、本特許の請求項で述べられて
いる各要素プロセッサの「隣接結合手段」・「チップ外
結合手段」・「チップ内トーラス状結合手段」は、後に
詳細に述べる結合方法スイッチ回路300の一部である
接続変更回路320によって実現されている。
【0044】東西用の結合スイッチ回路300EWは、
図6のように、テーブル作成回路310と接続変更回路
320とからなる。
【0045】テーブル作成回路310は、例えば図6の
ような東西用の結合スイッチいろ用では、チップ内の各
次元奉公の要素プロセッサ数4と各要素プロセッサの回
路上の入出力位置から決定され予め実装されている図7
で表されるテーブルを、その結合スイッチ回路に接続さ
れている最小番号位置の要素プロセッサから出力される
前記モード信号レジスタからの3ビットデータにより参
照して、各要素プロセッサ用入出力ポート210間及び
要素プロセッサ用入出力ポート210−チチップ用入出
力ポート400間の接続関係が上記テーブルに従うよ
う、接続変更回路320の状態を変更する制御信号を出
力する。
【0046】接続変更回路320は、例えばクロスバス
イッチにより実現され、テーブル作成回路310から出
力された制御信号に基づいて、各要素プロセッサ用入出
力ポート210間及び要素プロセッサ用入出力ポート2
10−チップ用入出力ポート400間の接続を変更す
る。
【0047】図6の東西を南北に、そして、4j,4j
+1,4j+2,4j+3をj,j+4,j+8,j+
12に置き換えれば、南北用の結合スイッチ回路300
SNが実現される。
【0048】以上の構成でmode命令を必要に応じて
使用することにより、チップ内の要素プロセッサの結合
方法を変更することが可能となる。結果、並列計算機の
直径に依存する問題に対して、これに対応するマクロ
を、mode命令を「作用」の項で述べた意味において
適切に使用して作成しておくことにより、効率化が可能
となる。
【0049】「作用」の項で述べた例、例えば、「総
和」の場合を本実施例に当てはめてみると各要素プロセ
ッサ200内で実行されるプログラムのアルゴリズムは
図8のようになる。
【0050】ここでは、各要素プロセッサ200にそれ
ぞれA個の数値データが割り当てられていて、図2と同
様にしてM×Mの要素プロセッサ構成を持つLSIチッ
プ100がk×kだけトーラス状に接続されている場合
に、計N2 A個の全数値データの総和を全要素プロセッ
サ200には要素プロセッサ番号が0〜M2 の番号で割
り当てられているものとする。
【0051】プログラム起動時において、モード信号レ
ジスタ202の全ビットは0となり、‘mode0,
0’が実行された状態となる。
【0052】総和を求める部分では、「作用」の項で述
べたとおり、先ず各要素プロセッサ毎にA個の数値デー
タの和S(A,N2 )を求める。(「各要素プロセッサ
内データの総和」のステージ) 記号S(A,N2 )の括弧内の第1引き数は既に和が取
られた数値データの個数、第2の引き数はその値Sが求
められ終えた要素プロセッサ200の個数である。
【0053】次に、各チップ内のデータの総和をカスケ
ード演算の手法を用いて求める。(「各チップ内全デー
タの総和」のステージ) カスケード演算は、先ず20 個東にトーラス状に数値デ
ータを送れるような結合手段を、‘mode 0,
0 ’により実行して、S(A,N2 )が格納されれて
いる。レジスタ1を当該要素プロセッサの東入出力ポー
ト400Eへ出力し、西入出力ポート400Wから入力
した数値データをレジスタ2へ格納し、そのレジスタ2
に格納されている数値データをレジスタ1に格納されて
いる数値データに加え、南北方向も同様に行う。その後
も2j (j=0,1,…)の値がチップ内要素プロセッ
サ数より小さい限り、『‘mode 1,2j ’の実行
→東西データの授受→南北データの授受』という処理を
順次繰り返せば、最終的にチップ内全要素プロセッサに
割り当てられた数値データの総和S(M2 A,N2 )が
得られる。
【0054】より具体的に図2のようなM=4の場合の
チップの場合について、実行される命令列を書き下した
例が第9図である。
【0055】次に、チップ100内の対角線上にある要
素プロセッサのみ各チップ用入出力ポート400と接続
して、当該チップ外にあるチップ上の数値データをカス
ケード演算方式により取り込んで全要素プロセッサのN
2 A個の数値データの総和を算出する。(各チップ対角
線上の要素プロセッサのみ全データの総和算出」のステ
ージ) 先ず、東西方向に関し、対角線上の要素プロセッサのみ
チップ用入出力ポート400に接続された状態を実現す
るために、1を第1引き数に、 (要素プロセッサ番号)/M (整数除算) の値を第2引き数にしたmode命令を実行する。その
状態で各要素プロセッサ200は先ず20 だけ東のチッ
プ上の要素プロセッサに現在までの総和デーを送り、西
から送られて来た数値データを現在までの総和データに
加算する。続いて順次2j の値がkを超えない限り、同
様の『データ授受→加算』の処理を繰り返せば、チップ
用入出力ポート400と接続されている要素プロセッサ
に関してはと東西方向の総和が算出される。但し、各チ
ップ100は隣接チップとのみ接続されているので、2
j だけ東のチップ上の要素プロセッサに数値データを送
るためには、2j 回データ送信・受信の処理を繰り返す
必要がある。
【0056】南北方向に関しては、mode命令につい
て上記で行った命令の代わりに第2引き数として、 (要素プロセッサ番号)%M (剰余除算) の値を用いる他は、上記と同様に行えばよい。その結
果、チップ用入出力ポート400に接続されている要素
プロセッサに関しては、全数値データの総和S(N
2 A,K2 )が得られることになる。
【0057】対角線上の要素プロセッサに関し東西方向
の総和を求める命令列を、図2の構成のチップ100が
2×2だけ結合されている場合(M=4、k=2)につ
いて書き下した例が図10である。
【0058】この値S(N2 A,K2 )を、各チップ内
で、既に求められている要素プロセッサから、まだ求め
られていない要素プロセッサへ放送すれば、全要素プロ
セッサで求める総和S(N2 A,N2 )が得られること
になる。(「対角線上の要素プロセッサから東西方向に
データ分配」のステージ) 上記放送については、前記「各要素プロセッサ内のデー
タの総和」のステージで行ったステップを、例えば東西
方向のみに関し、逆に行うことで実現できる。
【0059】第2の発明を用いた(D1 +1)×(D2
+1)の2次元トーラス上で単方向のみの通信を行う並
列プロセサ装置の実施例を図面にしたがって説明する。
単方向のみの通信であるので、各次元でのプロセサ間の
最大距離は、それぞれD1、D2となる。
【0060】図12は本発明を用いたプロセサの実施例
のルータ部である。隣接するプロセサ及び演算処理部か
らの入力を受け付ける2×(D1 +D2 +2)+1個の
出力先決定回路11000 〜1100(D1+D2+1) ,11
010 〜1101(D1+D2+1),1102,(2×(D1
+D2 )−1)入力(2×(D1 +D2 )+1)主力の
クロスバスイッチ1200,フリットを蓄える2(D1
+D2 +2)+1個のバッファ13000 〜1300
(D1+D2+1) ,13010 〜1301(D1+D2+1) ,130
2,2個の(D1 +D2 +2)入力のマルチプレクサ1
400,1401,演算処理部へのインターフェイス1
500,2つのプロセサ番号ADD(1),ADD
(2)を記憶するプロセサ番号レジスタ1600から構
成される。ただし、プロセサ番号ADD(1),ADD
(2)は、各次元に対して0から順に各プロセサに固有
につけられたプロセサ番号である。チャネル4100,
4100,4110,4111で隣接するプロセサと、
チャネル4102,4112で演算処理部と接続され
る。
【0061】図12のルータ部1000と演算処理部2
000から図13に示す実施例のプロセスが構成され
る。このプロセスを用いて、図3に示すような2次元ト
ーラス構造をした並列プロセサ装置が構築される。各プ
ロセサ3000は、互いに通信チャネル4000で接続
される。
【0062】図15で本実施例で通信されるメッセージ
のフォーマットの一例である。一つのメッセージは複数
のフリットに分割される。先頭のフリットは図15
(a)のフォーマットをしており、図中DEST1 ,D
EST2 で表される2つの次元の通信距離が書かれてい
る。続くフリットからメッセージの本体となる。そのフ
ォーマットは、図15(b)および(c)に示す通りで
ある。フリットは図中DATAで表されるメッセージの
格納されている部分と、END_BITで表されるメッ
セージの継続および終了を表す終了ビットからなる。メ
ッセージが継続する場合は図15(b)のフォーマット
のようにEND_BITは0であり、メッセージが終了
する場合は図15(c)のフォーマットの用にEND_
BITは1となる。
【0063】図16は出力先決定回路1100の構成例
である。内部状態保存部1110,宛先比較部112
0,出力先決定部1130とデクリメンタ1140とで
構成される。
【0064】宛先比較部1120は、フリットのDES
T1 ,DEST2 に相当するフィールドを調べ、出力先
チャネルCOおよび出力先レーンLOを決定する。出力
先チャネルCOおよび出力先レーンLOは図17のよう
に決定される。DEST1 =0かつDEST2 =0であ
れば、出力先チャネルCOは演算処理部である。出力先
レーンは一つなので特に操作は行わない。それ以外の場
合は、まず出力先チャネルCOを決定し、つづいて出力
先レーンLOを決定する。DEST1 =0であれば出力
先チャネルCO=2であり、DEST2 =0であれば出
力先チャネルCO=1である。どちらでもない場合、す
なわちDEST1 ≠0,DEST2 ≠0の場合は、チャ
ネルの混雑度を考慮して、出力チャネルCOを選択す
る。チャネルの混雑度は、バッファの使用状況を表す信
号線BUFによる。バッファ13000 〜1300
(D1+D2+1) に蓄えられているフリットの数が、バッファ
13010 〜1301(D1+D2+1) に蓄えられているフリ
ットの数よりも少なければ、CO=1とする。そうでな
い場合は、CO=2である。
【0065】出力先チャネルCOが決定されると、出力
先レーンLOを選択する。入力元チャネルCI≠COの
場合は、LO=LI+1とする。そうでない場合は、L
O=LIとする。ただしMを任意の定数として、出力チ
ャネルの次元のプロセサ番号ADD(CO)=Mの場合
は、出力先レーンLOをさらに+1増す。こうして決定
された出力先チャネルCOと出力先レーンLOを、比較
決定信号COMPとして出力先決定部1130に出力す
る。
【0066】内部状態保存部1110に記憶されている
現在の状態STATEで、先頭フリットか否かが判定さ
れる。先頭フリットの場合、出力先決定部1130は、
比較結果信号COMPを出力先制御信号SELECTと
して出力し、これを内部状態保存部1110のSLCT
に記憶する。先頭フリットでない場合、出力先決定部1
130は、内部状態保存部1110に記憶されているS
LCTを出力先制御信号SELECTとして出力する。
【0067】出力先決定部1130はまた、デクリメン
タ1140への制御信号REMOVE,DEC1 ,DE
C2 も発生する。REMOVEはメッセージから先頭の
フリットを取り除くための制御信号で、DEC1 ,DE
C2 はそれぞれ第1の次元、第2の次元における宛先ま
での距離DEST1 ,DEST2 を1減ずるための信号
である。デクリメンタ1140は、これらの制御信号に
したがって、宛先が自プロセサの場合は先頭のフリット
を取り除き、そうでないときは先頭のフリットに書かれ
た出力先の宛先までの距離DEST1 あるいはDEST
2 を1減ずる。先頭フリットでない場合は、何も操作は
行わないでフリットを通過させる。
【0068】出力先決定部1130は、内部状態保存部
1110に記憶されている現在の状態STATEの状態
遷移の様子を表している。初期状態S0にいる時にフリ
ットを受け取った場合には、このフリットは先頭であ
る。宛先プロセサまでの距離DEST1 ,DEST2 が
ともに0のときには、デクリメンタ1140に制御信号
REMOVEを発生して状態S1に遷移する。それ以外
の場合には、出力先のチャネルに応じてデクリメンタ1
140に制御信号DEC1 あるいはDEC2 を発生して
状態S1に遷移する。同時に、出力先制御信号SELE
CTが、内部状態保存部1110のSLCTに記憶され
る。状態S1では、END_BITが0の間は状態S1
にとどまり、END_BITが1になると初期状態S0
に戻る。
【0069】本発明のチャネルおよびレーン決定方法に
よるルーティング方法で、各プロセサにおいて複数の次
元を出力先チャネルとして選べるのは明らかである。上
記のルーティング方法でデッドロックが発生しないこと
を説明する。
【0070】上記の“Deadlock-Free Message Routing
in Multiprocessor Interconnection Networks”によれ
ば、ルーティング経路に閉路が形成されなければ、デッ
ドロックは発生しない。すなわち、任意のプロセサPを
始点かつ終点とするルーティング経過が閉路を形成しな
ければ、デッドロックフリーである。本発明でデッドロ
ックフリーとなることを説明する。
【0071】図19に4×4トーラスすなわちD1=D
2=3の場合を示す。プロセサ31000 〜15がチャネ
ル43000 〜15,43010 〜15で2次元トーラス状
態に接続されている。プロセサ31000 〜15は演算処
理部22000 〜15とルータ部から構成される。ルータ
部は、バッファ13100 〜15,13110 〜15のみ示
す。図19に示されているように、ルーティング経路に
は閉路は存在しない。したがってデッドロックフリーで
ある。
【0072】実施例は2次元トーラスの場合であるが、
容易に多次元に拡張できることは明らかである。経路を
形成する次元の数をRとする。
【0073】R=1のとき、第1の次元の全てのプロセ
サを通過しなければ、ルーティング経路の始点と終点は
同じプロセサPとはなり得ない。したがって、ルーティ
ング経路には必ずADD(1)=Mとなるプロセサが存
在する。すなわちプロセサPにおいてはLO≠LIとな
る。したがって閉路は形成させず、デッドロックフリー
である。
【0074】R=rのときデットロックフリーであると
する。R=r+1のとき、R=rのネットワーク上に形
成される任意の経路と、その終点から始点に至る第(r
+1)の次元上の経路によって、ルーティング経路の始
点と終点を同じプロセサPとすることを考える。R=r
のネットワーク上に形成される経路から、第(r=1)
の次元に移る際にはレーンは少なくとも+1増加する。
すなわちプロセサPにおいてはLO≠LIとなる。した
がって閉路は形成されず、デッドロックフリーである。
【0075】以上から本発明はデッドロックフリーであ
る。
【0076】各次元の最大の距離は、それぞれDn であ
るから、ルーティング方向を変更する回数は高々ΣDn
−1である。したがってルーティングを開始するレーン
を合わせて、(ΣDn −1)+1=ΣDn のレーンがあ
ればよい。さらに、1次元のみでのルーティングで閉路
が発生するのを防ぐためには、各次元に対してレーンを
1つずつ用意すれば良い。あわせて、各チャネルに(Σ
Dn +N)レーンがあればデッドロックフリーとなる。
1つのレーンには1つのバッファが必要なので、各出力
チャネルに(ΣDn +N)個のバッファを用意すれば良
い。全ての通信チャネルに(ΣDn +N)個、演算処理
部へのチャネルに1個のバッファが必要であるので、プ
ロセサ全体では、(N×(ΣDn +N)+1)個のバッ
ファとなる。
【0077】以上のように、(N×(ΣDn +N)+
1)個のバッファを用意すれば、デッドロックフリーを
保証しつつ、複数の次元でルーティングを行うことがで
きる。
【0078】第2の発明は、実施例に示した以外のあら
ゆるチャネルの選択方法にも、適用可能である。
【0079】また、実施例は単方向通信を行う装置を示
したが、両方向を行う装置に対しても本発明を適応でき
ることは明らかである。
【0080】さらに、第2の発明は、ワームホール・ル
ーティングに限らず、ヴァーチャル・カット・スルー・
ルーティングにも適応可能である。
【0081】
【発明の効果】第1の発明により、直径が直接効いてく
る類の問題に対し、本発明を有効に活かす適切なアルゴ
リズムを用いることで、問題を解く際に必要な通信命令
数をチップ内要素プロセッサ集積数に応じて減少せしめ
ることができ、かつ、チップ間入出力ポート数を従来に
比して殖やさず、また隣接プロセッサ間通信時間の増加
を無視できる程度に押し止められ、チップ内要素プロセ
ッサ集積数に応じた速度向上を与えることができる。
【0082】第2の発明によれば、デッドロック・フリ
ーを保証しつつ通信経路の選択の自由度が増え、スルー
プットの向上とレイテンシの改善を図ることができる。
【図面の簡単な説明】
【図1】第1の発明を構成するLSIチップの例の基本
的な構成を示す構成図。
【図2】第1の発明の一実施例の構成図。
【図3】第2図にある要素プロセッサ200の構成を示
す説明図。
【図4】第3図の要素プロセッサ200内にあるモード
信号出力信号回路201の説明図。
【図5】mode命令の引き数に割り当てられた意味の
説明図。
【図6】第2図にある結合スイッチ回路300の構成を
示す説明図。
【図7】第6図にあるテーブル作成回路の機能を示す説
明図。
【図8】第1の発明を用いて実行するアルゴリズム例の
説明図。
【図9】第8図の「各チップ内データの総和」部分の命
令列を書き下した例を示す説明図。
【図10】第8図の「各チップ対角線上の要素プロセッ
サのみ全データの総和算出」部分の東西方向に関する命
令列を書き下した例を示す説明図。
【図11】従来の並列計算機を構成するLSIチップの
構成例の構成図。
【図12】第2の発明の実施例のルータを表す図。
【図13】上記実施例のプロセサを表す図。
【図14】二次元トーラス構造の装置を表す図。
【図15】メッセージのフォーマットを表す図。
【図16】実施例の出力先決定回路の内部構造を表す
図。
【図17】実施例の比較決定信号の決定法を表す図。
【図18】実施例の出力先決定回路の状態遷移を表す
図。
【図19】実施例によるルーティング経路を表す図。
【図20】従来例の並列プロセサを表す図。
【図21】従来例によるルーティング経路を表す図。
【図22】従来例によるルーティング経路を表す図。
【符号の説明】
001 LSIチップ 002−1 隣接結合手段 002−2 チップ外結合手段 002−3 チップ内トーラス状結合手段 003 制御手段1 1000 ルータ部 1300 0〜(D1+D2+1) ,1301 0〜(D1+D2+1) ,1
302,1310,1311,1320a/b〜132
3a/b バッファ 1110 内部状態保存部 1120 出力先選択部 1130 出力先決定部 2000,2100,2200〜203 演算処理部 3000,3100,3200〜3203,3300〜
3303,3400,3401 プロセサ 4000,4100〜4200,4110〜4112,
4200,4201,4300〜4303,4400a
/b〜4403a/b 通信チャンネル

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 複数の要素プロセッサを含むLSIチッ
    プをトーラス状に結合した並列計算機において、 各プロセッサが、 当該要素プロセッサを含む当該チップが結合している任
    意の方向に対して、 その方向上で隣接する要素プロセッサが当該チップ内に
    存在する場合には当該隣接要素プロセッサと結合し、存
    在しない場合にはその方向上の隣接チップへ接続されて
    いる当該チップ内の入出力ポートと結合する隣接結合手
    段と、 その方向が表す次元上に存する当該チップ内の要素プロ
    セッサのうちのどれかが、そのどれかを示すパラメータ
    1によりその方向及びその逆方向に存する当該チップ内
    の入出力ポートと結合するチップ外結合手段と、 前記隣接結合手段と前記チップ外結合手段のどの結合手
    段をとるかを与える制御手段と、を当該チップ内に有す
    ることを特徴とする並列計算機。
  2. 【請求項2】 Nが2以上のN次元トーラス・ネットワ
    ークでプロセサが相互接続される並列プロセサ装置であ
    って、各次元でのプロセサ間の最大距離をそれぞれDn
    (≦n≦N)とするとき、各プロセサは、 演算処理部と、 隣接するプロセサと接続される通信チャンネル及び制御
    信号線と、 隣接するプロセサからメッセージを受信する機構と、 受信したメッセージの出力先を決定するルータ部と、 メッセージを隣接するプロセサに出力する機構と、 (N×(ΣDn +N)+1)個の出力先の決定したメッ
    セージを一時的に蓄える機構とを持つことを特徴とする
    並列計算機。
JP5333759A 1993-12-27 1993-12-27 並列計算機 Pending JPH07191947A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5333759A JPH07191947A (ja) 1993-12-27 1993-12-27 並列計算機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5333759A JPH07191947A (ja) 1993-12-27 1993-12-27 並列計算機

Publications (1)

Publication Number Publication Date
JPH07191947A true JPH07191947A (ja) 1995-07-28

Family

ID=18269646

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5333759A Pending JPH07191947A (ja) 1993-12-27 1993-12-27 並列計算機

Country Status (1)

Country Link
JP (1) JPH07191947A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008097528A (ja) * 2006-10-16 2008-04-24 Fujitsu Ltd 計算機クラスタ
WO2010087002A1 (ja) 2009-01-30 2010-08-05 富士通株式会社 情報処理システム、情報処理装置、情報処理装置の制御方法、情報処理装置の制御プログラム及びコンピュータ読み取り可能な記録媒体

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008097528A (ja) * 2006-10-16 2008-04-24 Fujitsu Ltd 計算機クラスタ
US7889725B2 (en) 2006-10-16 2011-02-15 Fujitsu Limited Computer cluster
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

Similar Documents

Publication Publication Date Title
CN1322452C (zh) 环形和树形网络中的算术函数
US5175733A (en) Adaptive message routing for multi-dimensional networks
EP3776231B1 (en) Procedures for implementing source based routing within an interconnect fabric on a system on chip
US5333279A (en) Self-timed mesh routing chip with data broadcasting
US4933933A (en) Torus routing chip
US7668970B2 (en) Optimized scalable network switch
JP4478390B2 (ja) クラス・ネットワーク経路指定
EP0018755B1 (en) Digital communication networks employing speed independent switches
US5105424A (en) Inter-computer message routing system with each computer having separate routinng automata for each dimension of the network
KR100259276B1 (ko) 대역폭확장이 가능한 상호연결망
Li et al. Efficient collective communications in dual-cube
US20050286543A1 (en) On-chip packet-switched communication system
JPH04139566A (ja) 多重プロセッシング・システム
JPH02228762A (ja) 並列処理コンピュータシステム
US8106683B2 (en) One phase logic
US4307378A (en) Four-wire speed independent selector switch for digital communication networks
US6823443B2 (en) Data driven type apparatus and method with router operating at a different transfer rate than system to attain higher throughput
CN116915708A (zh) 路由数据包的方法、处理器及可读存储介质
JPH07191947A (ja) 並列計算機
JPH0344468B2 (ja)
Ni et al. A VLSI router design for hypercube multiprocessors
JP3683211B2 (ja) ノード間データ転送方法及びノード間データ転送装置
JP3389610B2 (ja) 並列処理システムとデータ転送方法
JP2778520B2 (ja) マルチキャスト方法及び交換スイッチ
JP3408444B2 (ja) 並列計算機、多段結合網並びに交換スイッチ