JP3609908B2 - 計算機接続装置 - Google Patents
計算機接続装置 Download PDFInfo
- Publication number
- JP3609908B2 JP3609908B2 JP25793596A JP25793596A JP3609908B2 JP 3609908 B2 JP3609908 B2 JP 3609908B2 JP 25793596 A JP25793596 A JP 25793596A JP 25793596 A JP25793596 A JP 25793596A JP 3609908 B2 JP3609908 B2 JP 3609908B2
- Authority
- JP
- Japan
- Prior art keywords
- crossbar
- input
- data
- output
- processor
- 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
Links
Images
Landscapes
- Multi Processors (AREA)
Description
【発明の属する技術分野】
本発明は大規模並列計算機接続装置に係り、特に送信先アドレスが異なる場合における競合状態が発生しないネットワークを小さい物量で構成した計算機接続装置に関するものである。
【0002】
【従来の技術】
図8(A)に示す如く、多数のプロセッサPE0〜PEN−1を一次元クロスバネットワークXBで接続して、宛先の異なる通信を競合しないように構成する場合、このクロスバネットワークXBを、図8(B)に示す如く、入力側ラインがN本、出力側のラインがN本であり、各入力側ラインと出力側ラインの交点にスイッチング素子(図示省略)が設けられたネットワークで構成することが必要である。
【0003】
このためプロセッサの数の2乗に比例するネットワーク物量でこのクロスバネットワークを構成することが必要となり、プロセッサの数が増えればその2乗に応じた大容量のネットワークが必要となる。そのため接続できるプロセッサ数に制限があり、大規模並列計算機用のスイッチングネットワークとしては問題があった。
【0004】
これを改善するため、図9に示す如く、2次元クロスバネットワークが構成されている。これは、例えば256個のプロセッサ間でネットワークを構成するとき、これを例えば1グループあたり64個のプロセッサで構成するPE000〜PE063、PE100〜PE163、PE200〜PE263、PE300〜PE363の4つのグループで区分けし、各プロセッサに3ヶの入出力端子を有するスイッチSWにより、プロセッサPE000〜PE063をクロスバスイッチXXB0に接続し、プロセッサPE100〜PE163をクロスバスイッチXXB1に接続し、プロセッサPE200〜PE263をクロスバスイッチXXB2に接続し、プロセッサPE300〜PE363をクロスバスイッチXXB3に接続する。
【0005】
そしてプロセッサPE000、PE100、PE200、PE300をクロスバスイッチYXB0に接続し、プロセッサPE001、PE101、PE201、PE301をクロスバスイッチYXB1に接続し、同様にプロセッサPE063、PE163、PE263、PE363をクロスバスイッチXB63に接続する。
【0006】
このようにして64個の入出力ポートを持つ4個のクロスバスイッチXXB0、XXB1、XXB2、XXB3と4個の入出力ポートを持つ64個のクロスバスイッチYXB0、YXB1・・・YXB63により、256個のプロセッサを並列接続するネットワークを構成することができる。
【0007】
【発明が解決しようとする課題】
図9に示す2次元のクロスバネットワークは、図8に示す1次元のクロスバネットワークに比較すれば、ネットワークのハード量を大幅に節約することができるが、各プロセッサのデータ転送宛先の組み合わせにより通信待ちが発生し易い。
【0008】
図9において、Y方向からデータ転送するアルゴリズムで動作させるとき、プロセッサPE000→PE201の通信と、プロセッサPE200→PE263の通信は競合する。即ち、プロセッサPE000→PE201の通信の場合、次のルートで通信が行われる。
【0009】
PE000(SW)→YXB0→PE200(SW)→XXB2→PE201(SW)
またプロセッサPE200→PE263の通信の場合、次のルートで通信が行われる。
【0010】
PE200(SW)→XXB2→PE263(SW)
従って、これらの場合、クロスバスイッチXXB2上において競合することになる。
【0011】
もし競合しないようにするためには、X方向、Y方向のいずれの方向を先に転送すべきか動的に選択する手法もあるが、複数の並列プログラムが同時にシステム内で走行するような場合には、デッドロック回避などの困難な問題がある。従って一般的には転送する方向の順序は固定であり、前記の如く競合が発生する。
【0012】
いまプロセッサのアドレスをX、Yの2次元の座標で表現したとき、以下のプロセッサPE0とPE1との間の通信及びプロセッサPE2とPE3との間の通信は、
PE0(X0、Y0)→PE1(X1、Y1)
PE2(X2、Y2)→PE3(X3、Y3)
(発信元) (送信先)
Y0 =Y2 、 X0 ≠X2 =X1 =X3 であればX1 ≠X3 でも競合する。
【0013】
従って、本発明の目的は、ハード量の少ないネットワークにより、しかも競合の少ないプロセッサ間の通信を可能としたプロセッサ間の接続装置を提供するものである。
【0014】
【課題を解決するための手段】
前記目的を達成するために、本発明では、図1に示す如く、行クロスバXXB0、XXB1、XXB2、XXB3と、列クロスバYXB0、YXB1・・・YXB63を設ける。行クロスバXXB0には128入力、64出力のクロスバスイッチX0が設けられ、クロスバスイッチX0の128入力端子のうち64端子はこのクロスバスイッチX0に接続されているプロセッサPE00〜PE63からの出力がその宛先に応じて入力バッファ回路I0〜I63を介して入力され、他の64端子は列クロスバYXB0、YXB1・・・YXB63からの出力が入力される。
【0015】
そしてクロスバスイッチX0の出力はプロセッサPE00〜PE63に入力される。行クロスバXXB0の出力は、プロセッサPE00〜PE63に入力される。またプロセッサPE00〜PE63からの出力は、その宛先に応じて入力バッファ回路I0〜I63を介して列クロスバYXB0〜YXB63に入力される。
【0016】
行クロスバXXB1にも、クロスバスイッチX0と同様に構成されたクロスバスイッチX1が設けられ、クロスバスイッチX1の64個の入力端子にはプロセッサPE100〜PE163からの出力がその宛先に応じて入力バッファ回路I100〜I163を介して入力され、他の64個の入力端子には列クロスバYXB0、YXB1・・・YXB63からの出力が入力される。そしてクロスバスイッチX1の出力はプロセッサPE100〜PE163に入力される。
【0017】
行クロスバXXB1の出力は、プロセッサPE100〜PE163に入力される。またプロセッサPE100〜PE163からの出力は、その宛先に応じて入力バッファ回路I100〜I163を介してクロスバYXB0〜YXB63に入力される。
【0018】
行クロスバXXB2、行クロスバXXB3もそれぞれ行クロスバXXB0と同様に構成され、それぞれプロセッサPE200〜PE263、PE300〜PE363が接続されている。
【0019】
また列クロスバYXB00は4入力4出力のクロスバスイッチで構成され、行クロスバXXB0〜XXB3から出力されたデータをその宛先に応じて行クロスバXXB0〜XXB3に送出するものである。列クロスバYXB1〜YXB63は、列クロスバYXB00と同様に4入力4出力のクロスバスイッチで構成され、行クロスバXXB0〜XXB3から出力されたデータをその宛先に応じて行クロスバXXB0〜XXB3に送出するものである。
【0020】
いま、前記図9と同様にプロセッサPE00からプロセッサPE201にデータ転送し、プロセッサPE200からプロセッサPE263にデータ転送する場合について説明する。
【0021】
プロセッサPE00からプロセッサPE201宛に送出されたデータは行クロスバXXB0における入力バッファ回路I0でその宛先が判断されて列クロスバYXB0に送出される。そして列クロスバYXB0で、その宛先が判断されて行クロスバXXB2に送出される。行クロスバXXB2ではクロスバX2によりこれをプロセッサPE201に出力する。
【0022】
また、プロセッサPE200からプロセッサPE263宛に送出されたデータは、入力バッファ回路I200でその宛先が判断されてクロスバX2に送出され、クロスバX2によりプロセッサPE263に送出される。
【0023】
このようにして、図9においては競合してデータ転送が遅れる場合でもこの発明では競合しないように構成できるので、データ転送をすみやかに行うことができる。
【0024】
【発明の実施の形態】
本発明の第1の実施の形態を図2〜図6に基づき、図1を参照して説明する。図2はプロセッサの構成、プロセッサを構成するデータ転送処理部の説明、プロセッサネットワーク間のインターフェース例を示し、図3は行クロスバの構成図を示し、図4は行クロスバの入力バッファ回路の構成図を示し、図5は行クロスバのスイッチ回路の構成図を示し、図6は列クロスバの構成図を示す。
【0025】
図中1は命令処理部、2は転送処理部、3は主記憶装置、4−0、4−1は送信バッファ、5−0、5−1は受信バッファ、6は送信制御部、7は受信制御部、8は主記憶アクセス制御部、10−0〜10−63及び11−0〜11−63は入力バッファ回路、20−0〜20−255は32入力1出力のスイッチ回路、21−0〜21−63は4入力1出力のスイッチ回路、22−0〜22−63は出力バッファ、40は入力レジスタ、41は転送用バッファ、42はバッファ読み出しレジスタ、43は制御回路、44は宛先選択回路、45−1〜45−64は出力レジスタ、50はセレクタ、51は優先制御回路、52−1〜52−32は入力要求フラグ保持部、53は選択制御回路、54−1〜54−32は入力転送フラグ保持部である。
【0026】
図2(A)に示す如く、プロセッサPEは、命令処理部1、転送処理部2、主記憶装置3を具備する。
命令処理部1は、主記憶装置3に格納されている命令語(プログラム)を読み出して、その指令に従って処理を行う。そして転送処理部2に対してプログラムの指令によりデータ転送の指示を行う。この指示には、宛先プロセッサ番号、転送データの転送元主記憶アドレス、データ長、宛先プロセッサ上の転送先主記憶アドレス等が含まれる。
【0027】
転送処理部2はネットワークへデータを送信する送信部とネットワークからデータを受信する受信部を有する。送信部は命令処理部1の指示に従ってネットワークへデータを送信するものであり、ネットワーク等へ送出するデータは、宛先プロセッサ番号、宛先プロセッサ内でデータを格納すべきアドレス、データ長などを含む制御情報であるヘッダ部と、主記憶装置3から読み出したデータ本体であるボディ部からなるパケットである。また受信部はネットワークから受信したパケットを、パケットのヘッダ部に指定された主記憶内アドレスに格納する。
【0028】
主記憶装置3は、プロセッサPE内の命令処理部1が実行すべきプログラムや演算処理に使用するデータなどを格納するものである。
前記転送処理部2は、図2(B)に示す如き、ブロック構成を有する。すなわち1対の送信バッファ4−0、4−1と、1対の受信バッファ5−0、5−1と、送信制御部6と受信制御部7と、主記憶アクセス制御部8等を具備する。
【0029】
送信バッファ4−0、4−1は送信すべきパケットのデータを交互に格納する。送信バッファ4−0に格納されたデータを送信している間に送信バッファ4−1には送信すべきデータが格納され、送信バッファ4−1に格納されたデータを送信している間に送信バッファ4−0には送信すべきデータが格納される。ネットワークへ送出されるデータにはヘッダ部として制御情報が作成されて送出される。このあと命令処理部1の指示に従って主記憶装置3からとり出したデータをネットワークに送出するまでこの送信バッファ4−0、4−1に交互に一時保持する。
【0030】
受信バッファ5−0、5−1はネットワークから受信したデータを交互に格納する。受信バッファ5−0に格納されたデータが主記憶装置3に送出されているとき受信バッファ5−1に受信データが格納され、受信バッファ5−1に格納されたデータが主記憶装置3に送出されているとき受信バッファ5−0に受信データが格納される。ネットワークから受信したヘッダ部から、データ本体(ボディ部)を格納すべきアドレス情報を取り出す。そしてこれに基づき、ネットワークから受信したボディデータを一時受信バッファに格納したあと主記憶装置の所定のアドレスに格納してゆく。
【0031】
送信制御部6はネットワークへのデータ送出を制御するものであって、ネットワークから送られてくるネットワーク装置側の受信バッファの状態を示す信号(バッファフル信号)や、主記憶アクセス制御部8より送られてくるバッファにデータが格納されたことを示す信号により、現在バッファ中に未送出データが何個あるかを管理し、これらをネットワークに送出可能であればバッファ部に送出の指示を行う。
【0032】
受信制御部7はネットワークからのデータ受信を制御するものであって、受信バッファが一杯になったら、ネットワークにバッファ状態を示す信号を送出する。また現在バッファ中に未送出データが何個あるかを管理し、これらを順次主記憶装置に送出するように処理する。
【0033】
主記憶アクセス制御部8は、ネットワークへ送出するデータの主記憶装置からの読み出しの制御及びネットワークから受信したデータの主記憶への書き込みの制御を行うものである。命令処理部1からの送信の指示またはネットワークから受信したパケット内のヘッダ部に指示されたデータ本体(ボディ部)の先頭アドレス及びデータ長から、アクセスすべき主記憶アドレスを順次発生し、主記憶アクセス制御部8にアクセスリクエストを発行するものである。この主記憶アクセス制御部8のアドレス等のメモリ制御信号に基づき送信バッファ4−0、4−1にデータを送出したり、受信バッファ5−0、5−1からデータを格納するものである。
【0034】
図2(C)によりプロセッサとネットワーク間のインターフェースについて説明する。図2(C)において、Dataは送信するデータ本体であり、複数ビットの信号線群からなる。データエラーチェックのためのパリティビットを含むこともある。Data−Validは、この信号がオンのとき、送信データが有効であることを示すものである。Data−Endは、パケットの最終データの送信時にオンとなるものである。Buffer−Fullは受信バッファが一杯となったためにデータの送信停止を要求する信号である。この信号の代わりにData−Req信号を使用することも可能である。
【0035】
次に図1に示す行クロスバXXBについて、図3により説明する。行クロスバXXBは図3(A)に行クロスバXXB0について代表的に示す如く、128入力64出力のクロスバスイッチX0と入力バッファ回路10−0〜10−63及び入力バッファ回路11−0〜11−63を有する。
【0036】
入力バッファ回路10−0〜10−63は1入力65出力であり、入力バッファ回路11−0〜11−63は1入力64出力である。この入力バッファ回路については図4に基づき後述する。
【0037】
クロスバスイッチX0は、図3(B)に示す32入力1出力の第1のスイッチ回路20−0〜20−255と、4入力1出力の第2のスイッチ回路21−0〜21−63と、出力バッファ22−0〜22−63を有する。
【0038】
入力バッファ回路10−0は、プロセッサPE00から伝達されたデータがこのクロスバスイッチX0に接続されたプロセッサのどれかに送出されるものかそれとも列クロスバYXB0に送出されるものか判断されてそれに応じて出力されるので65本の出力を有する。
【0039】
第1のスイッチ回路20−0の出力はプロセッサPE0への出力を送出する第2のスイッチ回路21−0に入力される。この第1のスイッチ回路20−0には入力バッファ回路10−0〜10−31からのプロセッサPE0あてのデータが入力される。
【0040】
第1のスイッチ回路20−1の出力はプロセッサPE1への出力を送出する第2のスイッチ回路21−1に入力される。この第1のスイッチ回路20−1には入力バッファ回路10−0〜10−31からのプロセッサPE1あてのデータが入力される。
【0041】
第1のスイッチ回路20−2(図示省略)の出力はプロセッサPE2への出力を送出する第2のスイッチ回路21−2に入力される。この第1のスイッチ回路20−2には入力バッファ回路10−0〜10−31からのプロセッサPE2あてのデータが入力される。
【0042】
第1のスイッチ回路20−3〜第1のスイッチ回路20−63も、同様に構成され、それぞれの出力は、プロセッサPE3〜PE63あての出力を送出する第2のスイッチ回路21−3〜21−63にそれぞれ入力される。そしてこの第1のスイッチ回路20−3〜20−63には入力バッファ回路10−0〜10−31からのプロセッサPE3〜PE63あてのデータが送出される。
【0043】
このように第1のスイッチ回路20−0〜20−63には、入力バッファ回路10−0〜10−31からのそれぞれプロセッサPE0〜PE63あての32の入力が印加されるように構成され、それぞれ第2のスイッチ回路21−0〜21−63に出力される。
【0044】
また第1のスイッチ回路20−64の出力はプロセッサPE0への出力を送出する第2のスイッチ回路21−0に入力される。この第1のスイッチ回路20−64には入力バッファ回路10−32(図示省略)〜10−63からのプロセッサPE0あてのデータが入力される。
【0045】
第1のスイッチ回路20−65の出力はプロセッサPE1への出力を送出する第2のスイッチ回路21−1に入力される。この第1のスイッチ回路20−65には入力バッファ回路10−32〜10−63からのプロセッサPE1あてのデータが入力される。
【0046】
第1のスイッチ回路20−66の出力はプロセッサPE2への出力を送出する第2のスイッチ回路21−2に入力される。この第1のスイッチ回路20−66には入力バッファ10−32〜10−63からのプロセッサPE2あてのデータが入力される。
【0047】
また第1のスイッチ回路20−127の出力はプロセッサPE63への出力を送出する第2のスイッチ回路21−63に入力される。この第1のスイッチ回路20−127には入力バッファ10−32〜10−63からのプロセッサPE63あてのデータが入力される。
【0048】
このように、第1のスイッチ回路20−64〜20−127には、入力バッファ回路10−32(図示省略)〜10−63からのそれぞれプロセッサPE0〜PE63あての32の入力が印加されるように構成され、それぞれ第2のスイッチ回路21−0〜21−63に出力される。
【0049】
第1のスイッチ回路20−128の出力はプロセッサPE0への出力を送出する第2のスイッチ回路21−0に入力される。この第1のスイッチ回路20−128には、入力バッファ回路11−0〜11−31(図示省略)からのプロセッサPE0あてのデータが入力される。
【0050】
第1のスイッチ回路20−129(図示省略)の出力はプロセッサPE1への出力を送出する第2のスイッチ回路21−1に入力される。この第1のスイッチ回路20−129には、入力バッファ回路11−0〜11−31からのプロセッサPE1あてのデータが入力される。
【0051】
このように、第1のスイッチ回路20−128〜20−191(図示省略)には、入力バッファ回路11−0〜11−31からのそれぞれプロセッサPE0〜PE63あての32の入力が印加されるように構成され、それぞれ第2のスイッチ回路21−0〜21−63に出力される。
【0052】
第1のスイッチ回路20−192の出力はプロセッサPE0への出力を送出する第2のスイッチ回路21−0に入力される。この第1のスイッチ回路20−192には、入力バッファ回路11−32(図示省略)〜11−63からのプロセッサPE0あてのデータが入力される。
【0053】
第1のスイッチ回路20−193(図示省略)の出力はプロセッサPE1への出力を送出する第2のスイッチ回路21−1に入力される。この第1のスイッチ回路193には、入力バッファ回路11−32〜11−63からのプロセッサPE1あての信号が入力される。
【0054】
このように、第1のスイッチ回路20−192〜20−255には、入力バッファ回路11−32〜11−63からのそれぞれプロセッサPE0〜PE63あての32の入力が印加されるように構成され、それぞれ第2のスイッチ回路21−0〜21−63に出力される。
【0055】
第2のスイッチ回路21−0には第1のスイッチ回路20−0、20−64、20−128、20−192からの4つのデータが入力される。また第2のスイッチ回路21−1には第1のスイッチ回路20−1、20−65、20−129(図示省略)、20−193(図示省略)からの4つのデータが入力される。第2のスイッチ回路21−2〜21−63も、同様に4つのデータが入力される。
【0056】
そして第2のスイッチ回路21−0の出力は、出力バッファ22−0を経由してプロセッサPE0に送出され、第2のスイッチ回路21−1の出力は、出力バッファ22−1を経由してプロセッサPE1に送出される。第2のスイッチ21−2〜21−63の出力も、同様に出力バッファ22−2〜22−63を経由してプロセッサPE2〜PE63に送出される。
【0057】
なお入力バッファ回路10−0には、その入力データの宛先が行クロスバXXB0に接続されたプロセッサPE0〜PE63以外のデータを列クロスバYXB00に送出するための出力端子が設けられる。同様に入力バッファ回路10−1〜10−63にも、その入力データの宛先が行クロスバXXB0に接続されたプロセッサPE0〜PE63以外のデータを列クロスバYXB1〜YXB63に送出するための出力端子が設けられる。
【0058】
次に図4により入力バッファ回路の構成を説明する。各入力バッファ回路はほぼ同一構成であるので、入力バッファ回路10−0について代表的に説明する。図4(A)は入力バッファ回路10−0の構成図であり、同(B)はその制御回路の構成図である。
【0059】
入力バッファ回路10−0は、図4(A)に示す如く、入力レジスタ40、転送用バッファ41、バッファ読み出しレジスタ42、制御回路43、宛先選択回路44、出力レジスタ45−1、45−2、45−3、45−4・・・45−64を具備している。
【0060】
入力レジスタ40はプロセッサの転送処理部2からの転送データを受信するものである。転送用バッファ41は入力レジスタ40が受信したこのプロセッサからの転送データが格納されるものである。
【0061】
バッファ読み出しレジスタ42は、転送用バッファ41からデータを読み出すものであり、制御回路43及び宛先選択回路44に送るものである。
制御回路43は、転送するパケットの先頭に含まれている宛先情報を読み取り、この宛先情報に応じて宛先選択回路44を制御するものであり、宛先デコーダ43−0と宛先レジスタ43−1を備えている。宛先デコーダ43−0では、転送するパケットの先頭に含まれている宛先情報を読み、宛先レジスタ43−1に保持する。そしてその宛先に応じた出力レジスタ45に転送パケットを送出するように宛先選択回路44を制御する。即ちバッファ読み出しレジスタ42から出力レジスタ45に対する宛先選択回路44内の経路、即ちバッファ読み出しレジスタ42からどのスイッチSW(図3)を開くかの選択を行ってその選択された経路を有効とし、その転送要求信号(SWへのデータ転送信号線に含まれる)を有効にする。スイッチSWから送出許可信号(SWへのデータ転送信号線に含まれる)を受信すると、転送バッファから順次データを読み出して、バッファ読み出しレジスタ42、宛先選択回路44を経由して、そのスイッチSWに送るように制御し、そのスイッチに接続される出力レジスタ45に選択的にデータ転送を行う。
【0062】
例えば前記宛先情報によりプロセッサPE0に送出すべきものと判断されたときは宛先選択回路44から出力レジスタ45−0に送出し、プロセッサPE1に送出すべきものと判断されたときは出力レジスタ45−1に送出される。そして列クロスバYXBに送出すべきものと判断されたときは出力レジスタ45−64に送出される。
【0063】
ところで図3(B)に示す入力バッファ回路11−0〜11−63も、図4に示す入力バッファ回路とほぼ同様に構成されるが、宛先選択回路44の出力が列スクロバYXBに対する出力がない。即ち宛先選択回路44の出力は、プロセッサPE0〜PE63あてのデータがそれぞれ入力される出力レジスタ45−0〜45−63に送出され、列クロスバYXBには出力されない。
【0064】
次に図5により行クロスバのスイッチ回路について説明する。
このスイッチ回路は32入力1出力のスイッチ回路であり、いずれも同一構成であるので、スイッチ回路20−0により代表的に説明する。図5(A)に示す如く、スイッチ回路20−0はセレクタ50と優先制御回路51を有するものである。セレクタ50は、入力バッファ回路10−0、10−1・・・10−31(図示省略)から送出されたデータが入力され、優先制御回路51から伝達される経路選択信号にもとづき、どれか1つの入力と出力との間のパスを有効にし、これによりその1つが選択されて後段のスイッチ回路21−0に送出する。
【0065】
優先制御回路51は、図5(B)に示す如く、データの入力に応じてセットされる入力要求フラグ52−1、52−2・・・52−32と、セレクタ50に入力された複数のデータを、例えばラウンドロビンの論理に従って選択出力制御する選択制御回路53と、その選択結果によりセットされる転送フラグ54−1、54−2・・・54−32を具備している。
【0066】
従って、セレクタ50に複数の入力が伝達されると、それに応じて入力要求フラグ52−1〜52−32の1部が選択的にオンになるので、選択制御回路53は、例えばラウンドロビン方式に基づきその1つを選択してこれに応じ転送フラグ54−1〜54−32の1つをオンにして、これによりセレクタ選択信号つまり経路選択信号を作成してセレクタ50に出力する。セレクタ50はこれに応じて選択された入力データを後段のスイッチ回路21に送出する。
【0067】
スイッチ回路21は、図5に示すスイッチ回路20と同様に構成されるが、4入力1出力で構成されることで相違しているのみであり、詳細な説明は省略する。なおセレクタは前段スイッチ回路からのデータが入力され、出力バッファ回路に出力する。スイッチ回路21において要求フラグは前段のスイッチ回路からの転送要求によりセットされる。
【0068】
図6により列クロスバのスイッチ回路について説明する。列クロスバのスイッチ回路は、入力バッファ回路60−0〜60−3、スイッチ回路61−0〜61−3、出力バッファ62−0〜62−3を具備している。
【0069】
入力バッファ回路60−0は、入力バッファ回路10と同様に構成されるが出力が4回路であることで相違する。入力バッファ回路60−0は行クロスバXXB0から送出されたデータが入力され、そのデータの宛先に応じてスイッチ回路61−0〜61−3に選択出力される。入力バッファ回路60−1は行クロスバXXB1から送出されたデータが入力され、そのデータの宛先に応じてスイッチ回路61−0〜61−3に選択出力される。入力バッファ回路60−2、60−3も、同様に構成され、行クロスバXXB2、XXB3から送出されたデータが入力されそのデータの宛先に応じてスイッチ回路61−0〜61−3に選択出力される。
【0070】
スイッチ回路61−0は、スイッチ回路21−0と同様に4入力1出力スイッチ回路に構成されるものであって、入力バッファ回路60−0〜60−3から伝達されたデータをその宛先に応じて例えばラウンドロビン方式で出力バッファ62−0に出力し、行クロスバXXB0あてに送出するものである。
【0071】
スイッチ回路61−1〜61−3も、同様に4入力1出力スイッチ回路で構成されるものであって、入力バッファ回路60−0〜60−3から伝達されたデータを、その宛先に応じて例えばラウンドロビン方式で出力バッファ62−1〜62−3に出力し、行クロスバXXB1〜XXB3に送出するものである。
【0072】
本発明の動作を図1における▲1▼プロセッサPP00→PE201にデータを送出する、▲2▼プロセッサPE200→PE263にデータを送出するケースが同時に行われる場合について説明する。
【0073】
▲1▼プロセッサPE00→PE201にデータを送出する場合は、まずプロセッサPE00から行クロスバXXB0に対してPE201宛のデータを出力する。このプロセッサPE00からのデータは、図3(B)に示す入力バッファ回路10−0に入力され、図4(A)に示す制御回路43においてその宛先が解読されて宛先選択回路44から出力レジスタ45−64に送出され、列クロスバYXB0に送出される。列クロスバYXB0では、入力バッファ回路60−0がこれを受けてその宛先からこれを行クロスバXXB2に送出すべきものと判別しスイッチ回路61−2にこの受信したデータを送出する。スイッチ回路61−2ではこれを出力バッファ62−2を経由して行クロスバXXB2に送出する。
【0074】
行クロスバXXB2では、列クロスバYXB0よりこのデータを受けたとき、入力バッファ回路(図3の11−0に対応)がこれを受信して、その宛先を解読してプロセッサPE201に送出すべきものであることを判別し、このプロセッサPE201へのデータを送出するスイッチ回路20−129(図示省略)に送出する。スイッチ回路20−129ではこれをプロセッサPE201へのデータを送出する出力バッファ(図3の22−1に対応)に接続されたスイッチ回路(21−1に対応)に送出し、プロセッサPE201にデータが送出される。このようにしてプロセッサPE00よりプロセッサPE201へのデータ送出が行われる。
【0075】
▲2▼プロセッサPE200→PE263にデータを送出する場合は、まずプロセッサPE200から行クロスバXXB2にPE263宛のデータを出力する。このプロセッサPE263宛のデータは図3(B)に示すバッファ回路(10−0に対応)に入力されたその宛先が解読され、プロセッサPE263に送出すべきものと判断され、このプロセッサPE263にデータを送出すべきスイッチ回路(図示省略した20−63に対応)に送出される。そしてこのスイッチ回路からスイッチ回路(21−63に対応)にデータが送出され、出力バッファ(22−63に対応)を経由してプロセッサPE263にデータが送出される。このようにしてプロセッサPE200からPE263にデータを送出する場合は、プロセッサPE200が接続される行クロスバXXB2のみでデータ送出される。
【0076】
従ってこれら▲1▼、▲2▼の場合は、競合が生じないので、前記図9の場合の如き待ち状態にはならない。
次に図7に基づき、多数のプロセッサを3次元構成のクロスバにより接続配置した例に基づき説明する。図7の場合は、1グループ256個のプロセッサを4グループで1024個接続した場合を示す。
【0077】
第1グループ100は、プロセッサPE0−63が接続される第1クロスバXXB0と、プロセッサPE64〜127が接続される第1クロスバXXB1と、プロセッサPE128〜191が接続される第1クロスバXXB2と、プロセッサPE192〜255が接続される第1クロスバXXB3と、第2クロスバ200〜263を具備する。
【0078】
第1クロスバXXB0は、前記図1に示すクロスバXXB0と同様に構成され、128入力64出力のクロスバスイッチと、入力バッファ回路等を有する。第1クロスバXXB1〜XXB3も同様に構成されている。
【0079】
第2クロスバ200は、第1クロスバXXB0からの入力を8入力4出力のクロスバスイッチ300−0に送出するのか後述する第3クロスバ400を構成するクロスバZXB0に送出するのかを選択する宛先制御機能を有する入力バッファ回路200−0と、第1クロスバXXB1からの入力を8入力4出力のクロスバスイッチ300−0に送出するのか第3クロスバ400を構成するクロスバZXB1に送出するのかを選択する入力バッファ回路200−1と、第1クロスバXXB2からの入力を8入力4出力のクロスバスイッチ300−0に送出するのか第3クロスバ400を構成するクロスバZXB2(図示省略)に送出するのかを選択する入力バッファ回路200−2と、第1クロスバXXB3からの入力を8入力4出力のクロスバスイッチ300−0に送出するのか第3クロスバ400を構成するクロスバZXB3(図示省略)に送出するのかを選択する入力バッファ回路200−3と、8入力4出力のクロスバスイッチ300−0を有するものである。
【0080】
なお8入力4出力クロスバスイッチ300−0は、前記第1クロスバXXB0、XXB1、XXB2、XXB3から入力されるデータの外に、クロスバZXB0、ZXB1、ZXB2(図示省略)、ZXB3(図示省略)から入力されるデータがそれぞれ入力され、第1クロスバXXB0〜XXB3に選択出力される。第2クロスバ200−1〜200−63も前記第2クロスバ200−0と同様に構成されている。
【0081】
第2グループ101は、第1グループ100と同様に構成されるものであって、プロセッサPE256〜511がそれぞれ64個ずつ接続された128入力64出力の4個の第1クロスバと、8入力4出力のクロスバスイッチと入力バッファ回路を有する64個の第2クロスバを有する。
【0082】
第3グループ102は、同様に第1グループ100と同様に構成されるものであって、プロセッサPE512〜767がそれぞれ64個ずつ接続された128入力64出力の4個の第1クロスバと、8入力4出力のクロスバスイッチと入力バッファ回路を有する64個の第2クロスバを有する。
【0083】
そして第4グループ103も、第1グループ100と同様に構成されるものであって、プロセッサPE768〜1023がそれぞれ64個ずつ接続された128入力64出力の4個の第1クロスバと、8入力4出力のクロスバスイッチと入力バッファ回路を有する64個の第2クロスバを有する。
【0084】
第3クロスバ400は、それぞれ4入力4出力のクロスバスイッチを有する256個のクロスバZXB0〜ZXB255により構成される。そしてこれらクロスバZXB0〜ZXB255は、下記の如く、第2クロスバと接続される。
【0085】
即ち、第2クロスバ200から出力される4本の出力線は、それぞれクロスバZXB0(図7の出力線の表示ではZXを省略してB0と表示している)、ZXB1、ZXB2、ZXB3に出力される。また第2クロスバ201から出力される4本の出力線はそれぞれクロスバB4、B5、B6、B7に出力される。そして第2クロスバ201から出力される4本の出力線はそれぞれクロスバZXB4(図7の出力線の表示ではZXは省略してB4と表示している)、ZXB5、ZXB6、ZXB7に出力される。他の第2クロスバ202〜262(図示省略)も同様である。そして第2クロスバ263から出力される4本の出力線はそれぞれクロスバZXB252〜255にそれぞれ出力される。
【0086】
また第2クロスバ200に対してデータを入力する入力線は、クロスバZXB0(図7では、同様にB0と表示)、ZXB1、ZXB2、ZXB3から入力される。そして第2クロスバ201に対してデータを入力する入力線はクロスバZXB4〜7から入力される。そして第2クロスバ263に対してデータを入力する入力線はクロスバZXB252〜255から入力される。
【0087】
第2グループ101、102、103も前記第2グループ100と同様にクロスバZXB0、ZXB1〜ZXB255とそれぞれ接続される。
図7において、例えばプロセッサPE0からプロセッサPE1023にデータを送信するとき、プロセッサPE0から出力されたデータは第1クロスバXXB0に入力され、そこで宛先判断されて第2クロスバ200に送出する。
【0088】
第2クロスバ200では入力バッファ回路200−0がこれを受けてその宛先より第3クロスバ400を構成するクロスバZXB0にこれを送出する。クロスバZXB0ではその宛先より第2グループ103に送出すべきものと判断してこれを第2グループ103のクロスバZXB0と接続されている第2クロスバ(図7の200に相当するもの)に送る。これにより第2グループ103の第2クロスバに存在する8入力4出力クロスバスイッチがその宛先を判断してプロセッサ1023が接続されているクロスバ(図7のXXB3に相当するもの)に送り、これによりプロセッサPE1023にプロセッサPE0からのデータが受信される。
【0089】
なお、図1では2次元のクロスバネットワークについて説明し、図7では3次元のクロスバネットワークについて説明したが本発明は勿論これらに限定されるものではなく、更に多次元のものを構成することができる。
【0090】
また本発明は2次元のクロスバネットワークにおいて、行クロスバに接続されるプロセッサの数や、行クロスバを構成するクロスバスイッチの容量はこれらの実施例に限定されるものではない。勿論列クロスバを構成するクロスバスイッチの容量もこれに限定されるものではない。
【0091】
更に本発明は3次元のクロスバネットワークにおいても、同様にこの実施例に限定されるものではない。
前記説明より明らかな如く、本発明ではクロスバを階層構造にすることにより宛先の異なるプロセッサにデータを送信する場合、通信待ちの発生を非常に小さくすることができる。
本発明では、nをクロスバに接続される下位クロスバ又はプロセッサの数としたとき、最上位階層を除くクロスバの構成を2×n入力n出力とする。これによりプロセッサのアドレスを座標で表現した場合に、2通信
PE(X0、Y0、Z0、W0・・・)→PE(X1、Y1、Z1、W1・・・)
PE(X2、Y2、Z2、W2・・・)→PE(X3、Y3、Z3、W3・・・)
が、Z1=Z3、Z1≠Z3、Z1≠Z3であっても、Y1≠Y3ならば競合することはない。
【0092】
本発明の実施例によれば、多数のプロセッサを2次元構成のクロスバネットワークで接続したので、従来では通信待ちが発生していた転送宛先の組み合せでもその発生を大きく解消することができる。
【0093】
本発明の実施例によれば、多数のプロセッサを3次元構成のクロスバネットワークで接続したので、図1に示す場合よりも非常に多数のプロセッサが接続されたネットワークにおいても通信待ちの発生を大きく改善することができる。
【0094】
本発明の実施例によれば、このスイッチ手段を設けることにより3次元以上の構成のクロスバネットワークを構成することができるので、非常に多数のプロセッサが接続されたネットワークでも通信待ちの発生を大きく改善することができる。
【0095】
【発明の効果】
請求項1に記載された本発明によれば、各次元のクロスバネットワークの入力ごとに他次元へ迂回するポートおよび他次元から迂回してきたものの入力ポートを設けたので、小さい物量のクロスバネットワークにより競合の発生を削減することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態図である。
【図2】プロセッサ、データ転送処理部の構成及びプロセッサネットワーク間のインタフェース例である。
【図3】行クロスバXXBの構成図である。
【図4】行クロスバの入力バッファ回路の構成図である。
【図5】行クロスバのスイッチ回路の構成図である。
【図6】列クロスバYXBの構成図である。
【図7】本発明の第2の実施の形態図である。
【図8】従来例説明図(その1)である。
【図9】従来例説明図(その2)である。
【符号の説明】
1 命令処理部
2 転送処理部
3 主記憶装置
4−0、4−1 送信バッファ
5−0、5−1 受信バッファ
6 送信制御部
7 受信制御部
8 主記憶アクセス制御部
PE プロセッサ
XXB 行クロスバ
YXB 列クロスバ
Claims (1)
- それぞれn1台のプロセッサが接続されており、前記n1台のプロセッサとの入出力データ転送路を有する、n2台の第1のクロスバスイッチ(n1、n2はそれぞれ正の整数)と、
それぞれ前記n2台の第1のクロスバスイッチが接続されており、前記n2台の第1のクロスバスイッチ間におけるデータ転送路を有する、n1台の第2のクロスバスイッチとを有し、
自プロセッサが、自プロセッサが接続された第1のクロスバスイッチに接続された他プロセッサに入出力データ転送を行う場合は、当該第1のクロスバスイッチの入出力データ転送路を経由することにより入出力データ転送を行い、
自プロセッサが、自プロセッサが接続されている当該第1のクロスバスイッチに接続された他プロセッサ以外の他プロセッサに入出力データ転送を行うときは、前記自プロセッサが接続されている当該第1のクロスバスイッチ、前記自プロセッサが接続されている当該第1のクロスバスイッチ及び前記他プロセッサが接続されている第1のクロスバスイッチが接続されている第2のクロスバスイッチ、前記他プロセッサが接続されている第1のクロスバスイッチそれぞれの入出力データ転送路を経由して入出力データ転送を行い、
前記第1のクロスバスイッチはそれぞれ、前記n1台のプロセッサの出力ポート及び前記n1台の第2のクロスバスイッチの出力ポートに接続される2×n1の入力ポートと、 前記n1台の第2のクロスバスイッチの入力ポートに接続されるn1の出力ポートとを有することを特徴とする計算機接続装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25793596A JP3609908B2 (ja) | 1996-09-30 | 1996-09-30 | 計算機接続装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25793596A JP3609908B2 (ja) | 1996-09-30 | 1996-09-30 | 計算機接続装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10105530A JPH10105530A (ja) | 1998-04-24 |
JP3609908B2 true JP3609908B2 (ja) | 2005-01-12 |
Family
ID=17313252
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP25793596A Expired - Fee Related JP3609908B2 (ja) | 1996-09-30 | 1996-09-30 | 計算機接続装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3609908B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3709322B2 (ja) * | 2000-03-10 | 2005-10-26 | 株式会社日立製作所 | 多次元クロスバーネットワークおよび並列計算機システム |
-
1996
- 1996-09-30 JP JP25793596A patent/JP3609908B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH10105530A (ja) | 1998-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0198010B1 (en) | Packet switched multiport memory nxm switch node and processing method | |
US10282338B1 (en) | Configuring routing in mesh networks | |
US5583990A (en) | System for allocating messages between virtual channels to avoid deadlock and to optimize the amount of message traffic on each type of virtual channel | |
EP0334954B1 (en) | Layered network | |
US7287255B2 (en) | System and method for dynamic ordering in a network processor | |
US8050256B1 (en) | Configuring routing in mesh networks | |
US8151088B1 (en) | Configuring routing in mesh networks | |
JPH08185380A (ja) | 並列計算機 | |
JPS61214694A (ja) | データ伝送のスイッチング装置 | |
JPH05242019A (ja) | 先読み優先調停システム及び方法 | |
JPH05241947A (ja) | 分散クロスバー・スイッチ・アーキテクチャにおける交換接続の配列。 | |
JP2731742B2 (ja) | クラスタ構成の並列計算機 | |
US7688815B2 (en) | Method and system for a multi-stage interconnect switch | |
CA2117506C (en) | Return address adding mechanism for use in parallel processing system | |
JP3609908B2 (ja) | 計算機接続装置 | |
JP2853652B2 (ja) | プロセッサ間通信におけるパケット送信方法およびその装置 | |
JP3982077B2 (ja) | マルチプロセッサシステム | |
JP2976700B2 (ja) | プロセッサ間同期制御方式 | |
JP3686795B2 (ja) | アドレス生成装置、データ転送処理装置、ベクトル処理装置、ベクトル計算機、情報処理装置 | |
JP3704367B2 (ja) | スイッチ回路 | |
JP2878160B2 (ja) | 競合調停装置 | |
JP2731743B2 (ja) | 通信レジスタ付並列計算機 | |
JPH07110798A (ja) | 並列処理システム | |
JP2000181883A (ja) | クロスバ装置、多段クロスバ装置及び情報処理装置 | |
JPH0934736A (ja) | 動作切替えコントローラ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040113 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040315 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20041012 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041015 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071022 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081022 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081022 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091022 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091022 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101022 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101022 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111022 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111022 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121022 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121022 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131022 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |