JPH1097512A - プロセッサ間データ転送方法及び並列計算機 - Google Patents

プロセッサ間データ転送方法及び並列計算機

Info

Publication number
JPH1097512A
JPH1097512A JP8249597A JP24959796A JPH1097512A JP H1097512 A JPH1097512 A JP H1097512A JP 8249597 A JP8249597 A JP 8249597A JP 24959796 A JP24959796 A JP 24959796A JP H1097512 A JPH1097512 A JP H1097512A
Authority
JP
Japan
Prior art keywords
node
data
parallel computer
nodes
reception
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
JP8249597A
Other languages
English (en)
Inventor
Naonobu Sukegawa
直伸 助川
Masanao Ito
昌尚 伊藤
Yoshiko Tamaoki
由子 玉置
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 JP8249597A priority Critical patent/JPH1097512A/ja
Publication of JPH1097512A publication Critical patent/JPH1097512A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 同一ノードに複数のスレッドを割り当てた場
合でも、スレッド間でのブロードキャストを可能にする
ことにある。。 【解決手段】 1ノードに複数のスレッドを割り付けた
場合には、図1のテーブルCIT30にスレッドの受信
領域のリンク情報を登録し、ブロードキャスト転送の時
のみリンク情報に従い、複数の受信領域33、34に受
信データを書き込む。 【効果】 複数のスレッドが1つのノードに割り当てら
れた場合にも、ブロードキャスト機能が利用できる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は並列計算機システム
に関する。さらに詳しくは、並列計算機システムにおけ
る、プロセッサ間のデータ転送方法に関する。
【0002】
【従来の技術】並列計算機においては、プロセッサ間の
データ転送を高速化することが、システム全体の高速化
につながる。プロセッサ間のデータ転送のパタンとして
は、(1)1ノードから1ノードへの転送、(2)1ノードから
複数ノードへの転送、(3)複数ノードから1ノードへの転
送、(4)複数ノードから複数ノードへの転送、の4パタン
が存在する。このうち、(1)が最も基本的で重要な転送
パタンであるが、(2)についても、例えば行列乗算のよ
うな基本的な演算で多発することから、その高速化技術
が必要とされている。なお、(2)の転送パタンに対し
て、ブロードキャストもしくはマルチキャストといった
呼び方があるが、ここではブロードキャストという言葉
で表す。
【0003】ブロードキャストをハードウェアで実現す
ることでその高速化を図った例としては、特開平1−2
67763号公報に開示されているものがある。これ
は、キューブ型のネットワークを前提とし、n台のプロ
セッサをn=n1×n2×…×nnと因数分解し、これら
の因数の各々を一辺の格子点数とするn次元格子空間上
にプロセッサを並べ、その各辺をクロスバスイッチから
なる部分ネットワークで結合して、並列にブロードキャ
スト処理を行うというものである。
【0004】上記特開平1−267763号公報に開示
されているものは、基本的に1ノードから全ノードへブ
ロードキャスト方式であり、この方式では、ブロードキ
ャストするノード群が、ネットワーク上でまとまった形
状をしていないとブロードキャストができない。
【0005】これに対し、特開平5−28122号公報
は、並列システム内の一部のノード群へのブロードキャ
ストを実現する手段を開示している。上記特開平5−2
8122号公報に開示された技術を利用すれば、大規模
な並列計算機システムにおいて、任意のノードを集めて
システムの部分集合を形成し、その部分集合の中でのみ
ブロードキャストを行うことが可能である。この機能に
より、例えば大規模並列計算機でプログラムを実行する
際に、プログラムをいくつかのスレッドに分割しておい
て、そのスレッドを処理量が少ない任意のノードにダイ
ナミックに割り当てるような運用をする場合にも、ブロ
ードキャスト機能が利用できる。
【0006】また、特開平7−262155号公報は、
複数のノードから同時にブロードキャストが発生した場
合にも、ブロードキャストをシリアライズすることで、
ネットワークのデッドロックの発生を防ぐ方式を開示す
る。
【0007】
【発明が解決しようとする課題】前記のように、プログ
ラムをいくつかのスレッドに分割しておいて、そのスレ
ッドを処理量が少ない任意のノードにダイナミックに割
り当てるような運用をする場合、上記特開平5−281
22号公報に開示されている方式のブロードキャストを
利用するには、各スレッドを必ず別なノードに割り当て
なければならない。例えば、あるDOループを128個に等
分割して128個のスレッドを生成した場合には、各スレ
ッドを必ず別なノードに割り当てなければならない。
【0008】この条件は、例えばセンタ運用のような使
用環境で、各ノードの仕事量のばらつきを考慮して、仕
事量の少ないノードに複数スレッドを割り当てたい場合
に制約となる場合がある。
【0009】そこで、本発明が解決しようとする課題
は、同一ノードに複数のスレッドを割り当てた場合で
も、スレッド間でのブロードキャストを可能にすること
にある。
【0010】
【課題を解決するための手段】上記課題は、該放送通信
手段で送られてきたデータの受信に対応して、所定の場
合に上記受信データに対しそのノード内の複数の受信領
域を割り当てることにより達成される。
【0011】
【発明の実施の形態】以下、本発明の1実施例を示す。
最初に本実施例の概要を、図1を用いて説明する。
【0012】[概要] (1)システム構成 図1は複数ノード(ノード1、ノード11など)を、ノ
ード間ネットワーク100で結合したシステムである。
ノードの構成を、ノード1を用いて説明する(他のノー
ドも同様の構成を持つ)。ノード1はCPU2と、ネッ
トワークインタフェースアダプタNIA3と、主記憶制
御回路SC4と、主記憶5とを持つ。NIA3は、ノー
ド間ネットワーク100を通して、ノード間でデータを
転送する機能を持つ。主記憶5には、オペレーティング
システム(OS)により管理される領域6がある。つま
り、領域6は、CPU2が持つアドレス変換機構によ
り、OSのみにアクセスを許可する。
【0013】OSが管理する領域には、NIAのために
2種類のテーブルを用意する。1つはCommunication ID
Table (CIT)20、もう一つはAddress translation Ta
ble(AT)21である。各テーブルの内容については、通
信動作の説明の中で記述する。
【0014】(2)基本的な1対1通信動作(詳細は後述
する) CPU2は、NIA3を起動することで、ノード間デー
タ転送を実行する。この場合、システムコールを利用し
てOS管理領域6に通信制御情報(Control Word)CW2
2を書き込み、さらにSC4を通してNIA3にCW2
2のアドレスを通知する。
【0015】各ノードの主記憶には、送信用/受信用の
領域が複数ある。図1のノード1においては、通信領域
7、8がある。各通信領域には、識別子(以降ID番号
と表現する)が用意される。CPU2がNIA3を起動
する際には、ID番号をCW22中に指定することによ
り、どの通信領域に対する送信要求かを区別する。ま
た、送信するデータを、送り先のノードのどの通信領域
に書き込むかについても、送信側ノードのCW22中で
指定する。
【0016】例として、ノード1のCPU2が、ID番
号0で管理される通信領域内の送信データ23を、ノー
ド11内のID番号3で管理される通信領域内の受信領
域33に書き込みたい場合について簡単に説明する。C
PU2はシステムコールを利用してOS管理領域6内の
CW22中に、以下の情報を記述する。 (a)送信データを含む通信領域7のID番号(=0)
と通信領域7中における送信データ23の相対位置 (b)送信先ノード番号(ノード11のネットワーク上
での識別番号)と受信領域を含む通信領域17のID番
号(=3)と通信領域17における受信領域33の相対
位置 さらにCPU2は、CW22の主記憶上の位置を、SC
4経由でNIA3に通知する。通知されたNIA3は、
通知に従いCW22を読み出す。NIA3はCW22の
情報の内、まず送信データを含む通信領域7のID番号
を用いて、Communication ID Table CIT20を検索
する。CIT20内には、通信領域7のために用意され
たAddress translation Table AT21を指すポインタ
と、通信領域7の仮想アドレス上の位置情報とがある。
NIA3はこの情報に従ってAT21をアクセスするこ
とでアドレス変換情報を入手し、さらに前述した通信領
域7中における送信データ23の相対位置情報を用いる
ことで、送信データ23を読み出し、パケットの形式に
してノード間ネットワーク100に送り出す。パケット
のヘッダ情報としては、送信先ノード番号とともに、受
信領域を含む通信領域17のID番号(=3)と通信領
域17における受信領域33の相対位置との情報を持
つ。
【0017】ネットワーク100は、パケットヘッダの
情報に従い、パケットをノード11のNIA13に送達
する。NIA13はこれを受けると、まずヘッダから受
信領域を含む通信領域17のID番号(=3)の情報を
読み出し、これに従いCIT30を検索する。CIT3
0内には、通信領域17のために用意されたAddresstra
nslation Table AT31を指すポインタと、通信領域
17の仮想アドレス上の位置情報とがある。NIA13
はこの情報に従ってATをアクセスし、さらにパケット
ヘッダ中の情報(通信領域17中における送信データ3
3の相対位置情報)を用いることで、受信領域33を特
定し、受信データを書き込むことができる。
【0018】(3)ブロードキャスト時の通信動作 ブロードキャストの動作を説明するために、ノード1上
の通信領域7上の送信データ23をブロードキャスト
し、ノード1の通信領域8、ノード11の通信領域18
で受ける場合について説明する。CPU2はCW22を
通常と同様に用意するが、その際にブロードキャスト指
定をCW22中にする。この場合、NIA3は、ノード
間ネットワーク100へブロードキャスト要求パケット
を送り出す。本実施例では、ノード間ネットワーク10
0内におけるブロードキャストの実現手段についてはそ
の詳細を記述しないが、特開平7−262155で開示
される方式により逐次化したあと、特開平5−2812
2で開示される方式により任意ノードへとブロードキャ
ストされるものとする。この場合、ノード間ネットワー
クから、ブロードキャストパケットがNIA3とNIA
13とに到着する。
【0019】この場合、ブロードキャストするノード毎
に受信領域のIDを変えることは事実上不可能であるこ
とから、CPU2はCW22に受信領域のID=3のみ
指定する。これにより、送信データ23はノード間ネッ
トワークを通してノード1の受信領域24、ならびにノ
ード11の受信領域34にブロードキャストされる。
【0020】ところで、技術計算のように大きなループ
を持つプログラムは、ループを分割して複数ノードで実
行することで、並列処理が実現できるが、この動作は、
親プロセスがスレッドを複数ノードに投げることで実現
される。この際、親プロセスは全てのノードにスレッド
を均等に投げるのではなく、各ノードの負荷状況を観察
し、なるべく処理負担の少ないノードにスレッドを投げ
るようにした方が効率がよい場合がある。
【0021】このような動作の場合、複数スレッドを同
一のノードに割り付けた方が効率がよいケースが出てく
る。図1では、ノード1上の親プロセスがスレッドを3
つ生成し、各ノードの負荷状況を勘案して投げようとし
た結果、ノード1にスレッド0を、ノード11にスレッ
ド1をとりあえず投げたとする。他のノードの負荷が極
めて重い場合には、さらにスレッド2もノード11に割
り付けるのが最も効率がよいことになる。
【0022】さて、前記の通り、受信側NIA13は、
パケット中のID情報により受信領域を特定するので、
同一のノード11内には、同一のIDを持つ通信領域が
存在してならない。従って、、スレッド1用の通信領域
17(ID=3)とスレッド2用の通信領域18(ID
=5)とは、別IDで管理せざるを得ない。(こうする
ことで、例えばノード1上のスレッド0からノード11
にデータを送信する場合にも、CW22に指定するID
番号を切り替えることでスレッド1/スレッド2への通
信を切り替えることができる。) 従って、上述のような複数のスレッドを同一のノードに
割り付けた場合において、、同一スレッドの通信領域を
1対1通信の場合とブロードキャスト通信の場合とで別I
Dで管理しなければ、前記ブロードキャスト機能を使用
できない。
【0023】この問題は、例えば、図1中のスレッド2
用の通信領域18を1対1通信に対してはID=5で管理
し、ブロードキャスト受信に対してはID=3としてス
レッド0、スレッド1の通信領域と同一IDで管理でき
れば解決される。
【0024】そこで、本実施例では、データを受信する
際に必ずCIT20、30を検索することに着目し、C
IT30のID=3に対するエントリ中にID=5の領
域へのリンク情報を記録しておく。これにより、ID=
3の領域に対するブロードキャスト要求に対しては、I
D=5の領域18へのブロードキャストもNIA13が
自動にできるようになる。
【0025】次に、ブロードキャスト送信動作/受信動
作の詳細について、図1〜13および表1を用いて説明
する。
【0026】まず、通常の1対1通信における動作と、図
1に示すようにスレッドを分割処理する際のブロードキ
ャスト通信における動作を説明する。
【0027】(1)1対1通信 図1に示す送信データ23を受信領域33に送信する場
合の動作を説明する。
【0028】[送信側の動作]プロセス中で送信要求シ
ステムコールが発行されると、CPU2は、信号線n
2、SC4、信号線n6を通して、主記憶5中のOS管
理領域6内にCW22を書き込む。なお、CW22は物
理アドレス上で連続していることが必要となる。つま
り、複数ページにまたがらないようにCW22を作成す
る。
【0029】CW22のフォーマットを図8に示す。B
Cビット150は、CW22がブロードキャスト要求で
あるかどうかを示す。本例は1対1通信であるため、BC
ビット150は0である。送信先ノード番号158に
は、送信先であるノード11のID(ノード間ネットワ
ーク100におけるID)を入れる。送信元ID153
には、送信データ23が入っている領域7のID=0を
入れる。送信先ID154には、受信領域33が存在す
る領域17のID=3を入れる。送信元データオフセッ
ト155、送信データ長156、送信先データオフセッ
ト157については後述する。
【0030】CW22を書き込んだ後、CPU2は、信
号線n2、SC4、信号線n3を通して、CW22の位
置情報をNIA3に通知する。NIA3の内部構成を図
2を用いて説明する。NIA3中には、CWAR50と
CITSR45の2本のレジスタが存在する。これらは
CPU2から見ると、メモリ空間に存在するメモリマッ
プドレジスタとして見える。これらのレジスタは、CP
U2のアドレス変換機構により、OSのみにアクセスを
許可する。
【0031】CW22の位置情報として、CW22の先
頭実アドレスをCWAR50に、SCインタフェース部
40、信号線n22を通してセットする。なお、NIA
3は、送信動作を行っていない場合にのみ、上記のCW
AR50への書き込みを受け付け、送信動作中に書き込
まれた場合についてはその書き込みを無視する。CPU
2は、書き込みが受け付けられたかどうかについては、
信号線n2、SC4、信号線n3、SCインタフェース
部40、信号線n22を通してCWAR50の読み出し
要求を出し、結果を信号線n23、SCインタフェース
部40、信号線n4、SC4、信号線n1を通して得る
ことで確認する。この時、CWAR50への書き込みが
受け付けられた場合には書き込んだ値が読め、無視され
た場合にはエラー値=0が読み出せる。CPU2はCW
AR50を読み出した結果が0であった場合には、再度
CWAR50への書き込みを実行する。なお、CWAR
50への書き込み受け付けの可否については、その要求
を信号線n20を通して認知した送信制御部41が判断
し、結果を信号線n21を通してCWAR50に伝達す
る。つまり、送信制御部41は、現在送信動作中の場合
にCWAR50にデータが書き込まれた場合について
は、その書き込みを信号線n20を通して知ると、信号
線n21を通してCWAR50をリセットする。なお本
実施例については、送信制御部41および受信制御部4
3については、コントローラとマイクロコードによりそ
の動作を実現する。
【0032】送信制御部41は、送信動作中でない時に
CWAR50への書き込みがあったことを信号線n20
を受け付けると、CW22の先頭実アドレス情報を信号
線n20を通して得る。更にその先頭実アドレスからC
W22のサイズだけ(本例では16バイト)の主記憶読
み出し要求を、信号線n24、SCインタフェース部4
0、信号線n4、SC4、信号線n6を通して主記憶5
まで出す。同時に、信号線n25を通してCW情報のバ
ッファCWSB51を登録可能な状態にする。読み出し
要求を受けて、CW22の情報が信号線n5、SC4、
信号線n3を通してSCインタフェース部40に伝わっ
た後、登録可能な状態であるCWSB51に信号線n2
7を通して登録される。
【0033】送信制御部41は、CWSB51への登録
完了を信号線n26を通して認知すると、登録された情
報の内、送信元ID153の情報(ID=0)を、信号
線n25、n26を通して読み出す。読み出した結果に
従い、CIT20をアクセスする。これと同時に、CI
T情報のバッファであるCITSB52を、登録可能な
状態に信号線n28を通してセットする。
【0034】ここでまず、CIT20の構成を図3を用
いて説明する。図3はCIT20の構成を示す。CIT
20は物理連続に用意され、その中身は先頭からID=
0の為のCITエントリ101、ID=1の為のCIT
エントリ102というように、IDの順にエントリが並
んでいる。なお、本実施例では、IDは0から255ま
で付けられ、さらに各エントリ(図4に示す)は16バ
イトであることから、CIT20のサイズは4KBとな
る。CIT20は、各ノードあたり1つだけ存在する。
【0035】CITエントリの内容を、図4に示す。有
効ビット110はそのエントリが有効かどうかを示す
(有効であれば1)。BC元ビット111、リンクビッ
ト112、リンク先ID113については、ブロードキ
ャスト受信側ノードでのみ有効となるため、後述する
(他のケースでは、これらの値は無視される)。通信領
域サイズ114と通信領域開始ポイント117について
は、後述する。ATアドレス115には、本エントリに
対応する通信領域のために用意するアドレス変換情報テ
ーブルAT21の先頭実アドレスを記録する。ページサ
イズ116については、AT21によるアドレス変換の
単位を示す。なお、ページサイズ116にセットする値
と、AT21によるアドレス変換の単位の関係は、表1
に示す通りである。
【0036】
【表1】
【0037】CITSB52への登録動作に説明を戻す
と、送信制御部41は、CWSB51から得た送信元I
D153の情報にCITエントリサイズ(本例では16
バイト)を掛けた値についてアクセス要求を信号線n2
4を通してSCインタフェース部40に出す。SCイン
タフェース部40では、CITアクセス要求を受ける
と、CITの開始アドレスを保持するレジスタCITS
R45の値を足し込み、信号線n4、SC4、信号線n
6を通して、主記憶5中のCITエントリをアクセスす
る。なお、CITSR45は、システム立ち上げ時にC
PU2がセットしておく。
【0038】送信制御部41は、必要とするCITエン
トリ(ID=0に対応するエントリ)が信号線n5、S
C4、信号線n3、SCインタフェース部40、信号線
n30を通してCITSB52まで登録されたことを信
号線n29を通して認知すると、CWSB51およびC
ITSB52中の情報に従い、送信データ23の仮想ア
ドレスを算出し、AT21をアクセスしながら送信デー
タ23を読み出す。以下、このアドレス変換をしながら
データを読み出す動作を説明する。
【0039】まず、CWSB51の情報とCITSB5
2の情報により仮想アドレス上で特定される送信データ
23を、図9を用いて説明する。図9で示す各パラメー
タの内、通信領域開始ポイント117、ページサイズ1
16、通信領域サイズ114は、CITSB52中に登
録された値であり、送信元データオフセット155、送
信データ長156は、CWSB51中に登録された値で
ある。図9に示すとおり、送信データ23の位置を仮想
アドレス中で特定できる。ただし、NIAが送信データ
23を読み出すには、これを実アドレスに変換しなけれ
ばならない。この仮想アドレスから実アドレスへ変換す
る際にAT21を利用する。
【0040】AT21の構成を図5に示す。1つのAT
には、一つの通信領域、例えば通信領域7の実アドレス
データのみが登録される。通信領域7に対するATは、
通信領域7のID(=0)により特定されるCITエン
トリ(図4)中のATアドレス115(実アドレスで指
定)により、先頭実アドレスを指定される。ATエント
リは、通信領域を覆うのに必要十分な数を用意する。例
えば、図9に示されるような場合は、4エントリ用意し
なければならない。なお、図5中の各エントリ130〜
133は、図9中の各ページ170〜173に対応す
る。また、通信領域は仮想アドレス上で連続な領域であ
るから、AT21はハッシュなど使用せずに、ここで示
すように単純な構成の方が効率が良い。
【0041】ATエントリの構成を図6に示す。有効ビ
ット140はそのエントリの有効/無効を示す(1であ
れば有効)。通信領域実アドレス141は、エントリが
対応するページの実アドレスを登録する。
【0042】説明を図2に戻す。送信データ23を送り
出す上で必要なATエントリの位置情報は、以上のよう
にCWSB51、CITSB52に登録された値から判
定できる。この位置情報を元に、送信制御部41は信号
線n24、SCインタフェース部40、信号線n4、S
C4、信号線n6を通して主記憶5上のAT21に対し
て読み出し要求を出し、得られた値を信号線n5、SC
4、信号線n3、SCインタフェース部40、信号線n
33を通してATSB53に登録する。
【0043】送信制御部は、ATエントリ情報のATS
B53への登録を信号線n32を通して認知すると、ま
ずCWSB51に登録された情報に基づき、送信パケッ
トのヘッダ生成を信号線n35を経由して送信部42に
通知する。パケット構成を図13に示す。この内、送信
データ207を除いた部分をパケットヘッダと呼ぶ。B
Cビット200は、ブロードキャスト用のパケットかど
うかを示す。この例は1対1転送であるから、BCビット
は200は0となる。送信先ノード番号210には、ノ
ード間ネットワーク100におけるノード11のIDが
入る。BC要求ビット203には、ブロードキャストを
要求するパケットかどうかが入る(後述する)。送信先
ID204には、送信先の通信領域のID(ここではI
D=3)が入る。送信データ長205は送信するデータ
の長さ、送信先データオフセット206には送信先の書
き込み位置を示すデータが入る(後述する)。以上の部
分がパケットのヘッダである。これらの情報は、全てC
WSB51に登録された情報の同名の情報と同一であ
る。
【0044】次に、送信制御部41はCWSB51、C
ITSB52、ATSB53に登録された情報を元に、
SCインタフェース部40、SC4等を通して主記憶ア
クセスし、送信データを読み出す。読み出したデータは
SCインタフェース部40から信号線n34を通して送
信部42に送られ、図13中の送信データ207を形成
する。なお、送信データ読み出し途中でページ境界を跨
る場合には、一旦送信動作を中断し、ATエントリ情報
をATSB53に登録し直してから、送信動作を再開す
る。
【0045】形成された送信パケットは、ノード間ネッ
トワーク100を通して、ノード11に転送される。
【0046】[受信側の動作]受信側ノード11のNI
A13の動作は、ノード間ネットワーク100からパケ
ットを受信した際に始まる。受信側NIA13の動作を
図2を用いて説明する。受信側のNIA13は、信号線
18を通して受信部44にパケットを受信すると、直ち
にパケットヘッダ情報をHDRB58に登録する。この
登録を受信制御部43が認知すると、送信側と同様にア
ドレス変換を行い、受信領域33の実アドレスを特定す
る。送信側でCWSB51に登録した送信元データオフ
セット157、送信データ長156の情報は、受信側で
はパケットヘッダからHDRB58に登録された情報を
利用する。また、送信側でCITSB52に登録された
通信領域開始ポイント117、通信領域サイズ114、
ページサイズ116の情報は、受信側では受信側のCI
T30の情報をCITRB55に登録して利用する。更
に、送信側でATSB53に登録したATエントリ情報
は、受信側では受信側のAT31(CITRB55に登
録した情報からAT31が特定される)の情報をATR
B54に登録して使用する(仮想アドレス中における受
信領域の特定手法を図10に示す)。以上のように、送
信側と同様に受信領域33の実アドレスが特定し、さら
にその受信領域33にパケット中の送信データ207
を、受信バッファDTRB59、SCインタフェース部
40、SC14を通して書き込む。
【0047】(2)ブロードキャスト通信 図1に示す送信データ23を受信領域24、33、34
にブロードキャストする場合の動作を説明する。
【0048】[送信側の動作]送信側の動作について
は、1対1通信の場合とほとんど変わらない。但し、CP
U2が作るCW22のフォーマットを図7のように変更
する。変更点はBCビット150を1にし、ブロードキ
ャストの際に利用するカラーの情報をカラー151に指
定する。カラー情報を付加することで、カラー毎にブロ
ードキャスト先を設定することができる(特開平5−2
8122で開示される技術を利用する)。また、BC逐
次化EX番号152には、ブロードキャストをシリアラ
イズするネットワーク要素へのIDを指定する(特開平
7−262155で開示される技術を利用する)。ネッ
トワークパケットは、ノード1から出るパケットの形式
が図11のようになる。このパケットは、ノード1から
ブロードキャストをシリアライズするネットワーク要素
までのパケットであり、シリアライズする要素で図12
に示すパケットに変換されて、各ノードにブロードキャ
ストされる(特開平7−262155で開示される技術
を利用する)。
【0049】[受信側の動作」受信側の動作は、スレッ
ドが1つしか割り当てられていないノード1について
は、1対1通信の場合と同様である。スレッドが複数割り
当てられるノード11の動作を説明する。なお、本実施
は、1つのノードに2つまでのスレッドを割り付けられ
る方式を示す(後述するリンク先ID113、ATRB
56、CITRB57を増やすことで、1つのノードに
さらに多くのスレッドを割り付けることは可能であ
る)。
【0050】最初に複数スレッドを割り付ける際の動作
について説明する。前述の通り、対応する通信領域につ
いても、別のIDを付ける必要がある。図1の例では、
スレッド1用通信領域17とスレッド2用の通信領域1
8とは本来であれば同一のIDを付加したいのである
が、別IDを付加せざるを得ない。この場合、スレッド
2用の通信領域18にID=5を付加する際に、CIT
30のID=3に対応するエントリにID=5へのリン
ク情報を付加する。この方法を図4を用いて説明する。
図4中のリンクビット112はリンクの有無を表す(1
ならリンク有り)。リンク先ID113には、リンク先
の番号を表す。この例では、ID=3に対応するエント
リのリンク先ID113に、ID=5を登録しておく。
【0051】次に、複数領域に同時にブロードキャスト
データを受信する動作を説明する。ブロードキャスト情
報を受信した際に、CITRB55に登録されたCIT
30のエントリ情報のリンクビット112を受信制御部
43はチェックし、これが1である場合には、リンク先
ID=5に対応するCIT情報をCITRB57に登録
する。またHDRB58、CITRB57の情報を元
に、ID=5に対応するATのエントリをATRB56
に登録する。
【0052】なお、CITRB55、57に登録するデ
ータの内、通信領域サイズは同一でなければエラーとな
る。CITはOSが設定するので、通常このようなこと
は起こらない。
【0053】受信制御部43は、受信部からDTRB5
9に蓄積されたデータをまずATRB54、CITRB
55で指定される受信領域33に書き込み、次にATR
B56、CITRB57で指定される受信領域34に書
き込む動作を行う。なお、DTRB59に入りきらない
受信データがある場合には、そのデータは受信部44お
よびノード間ネットワーク100、送信側ノード1で待
たせる(ウォームホールルーティング前提)。DTRB
59のデータを受信領域33、34双方に書き込み終え
た後に、後続のデータを受信部44からDTRB59に
登録する。
【0054】なお、既に述べたとおり、1対1通信の場合
には、CITエントリのリンクビット112、リンク先
ID113は無視される。
【0055】
【発明の効果】複数のスレッドが1つのノードに割り当
てられた場合にも、ブロードキャスト機能が利用でき
る。
【図面の簡単な説明】
【図1】本発明のブロードキャスト方式を実装する並列
計算機を表す図。
【図2】本発明のブロードキャスト方式を実装するNIA
(ネットワークインタフェースアダプタ)を表す図。
【図3】本発明におけるCommunication ID Table (CID)
の内容を表す図。
【図4】本発明におけるCommunication ID Tableのエン
トリの内容を表す図。
【図5】本発明におけるAddress translation Table (A
T)の内容を表す図。
【図6】本発明におけるAddress translation Table の
エントリの内容を表す図。
【図7】本発明におけるブロードキャスト用のControl
Word (CW)の内容を表す図。
【図8】本発明における1対1通信用のControl Word (C
W)の内容を表す図。
【図9】本発明における送信用領域の仮想アドレス空間
での位置を表す図。
【図10】本発明における受信用領域の仮想アドレス空
間での位置を表す図。
【図11】本発明のネットワークにおけるシリアライズ
クロスバへのブロードキャスト要求パケットを表す図。
【図12】本発明のネットワークにおけるシリアライズ
クロスバからのブロードキャストパケットを表す図。
【図13】本発明のネットワークにおける1対1通信パケ
ットを表す図。
【符号の説明】
n1〜n58…信号線

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】それぞれがプロセッサと主記憶とを有する
    複数のノードと、1つの該ノードから1つの該ノードへデ
    ータを転送する1対1通信手段と、1つの該ノードから複
    数の該ノードへ同じデータを放送する放送通信手段とを
    有する並列計算機において、 それぞれの該ノードは、該放送通信手段で送られてきた
    データの受信に対応して、所定の場合に上記受信データ
    に対しそのノード内の複数の受信領域を割り当てること
    を特徴とするプロセッサ間データ転送方法。
  2. 【請求項2】それぞれがプロセッサと主記憶とを有する
    複数のノードと、1つの該ノードから1つの該ノードへデ
    ータを転送する1対1通信手段と、1つの該ノードから複
    数の該ノードへ同じデータを放送する放送通信手段とを
    有する並列計算機において、 該ノードは、そのノード内の複数の受信領域をリンクす
    るリンク情報を保持する手段を有することを特徴とする
    並列計算機。
  3. 【請求項3】請求項2に記載の並列計算機において、上
    記リンク情報を保持する手段は、受信領域を特定する情
    報をエントリとするテーブルであることを特徴とする並
    列計算機。
  4. 【請求項4】それぞれがプロセッサと主記憶とを有する
    複数のノードと、1つの該ノードから1つの該ノードへデ
    ータを転送する1対1通信手段と、1つの該ノードから複
    数の該ノードへ同じデータを放送する放送通信手段とを
    有する並列計算機において、 該ノードは、該ノード内の複数の受信領域をそれぞれ別
    な識別子で管理し、各識別子が別な識別子とリンクされ
    ているか否かを示すテーブルを有することを特徴とする
    並列計算機。
  5. 【請求項5】それぞれがプロセッサと主記憶とを有する
    複数のノードと、1つの該ノードから1つの該ノードへデ
    ータを転送する1対1通信手段と、1つの該ノードから複
    数の該ノードへ同じデータを放送する放送通信手段とを
    有する並列計算機において、 該ノード内の複数の受信領域をそれぞれ別な識別子で管
    理する手段と、 それぞれが該複数の受信領域毎に設けられた複数のアド
    レス変換テーブルとを有することを特徴とする並列計算
    機。
  6. 【請求項6】請求項5に記載の並列計算機において、 該ノードは、該識別子と該アドレス変換テーブルとを結
    合する結合テーブル更に有することを特徴とする並列計
    算機。
  7. 【請求項7】請求項6に記載の並列計算機において、 該結合テーブルは、アドレス変換の変換単位の情報を有
    することを特徴とする並列計算機。
  8. 【請求項8】請求項2又は3の何れかに記載の並列計算
    機において、 該放送通信手段で送られてきたデータに対して、上記リ
    ンク情報に応じてそのデータにより指定された受信領域
    とその受信領域にリンクされた受信領域とを割り当て、 該1対1通信手段で送られてきたデータに対して、そのデ
    ータにより指定された受信領域を割り当てることを特徴
    とするプロセッサ間データ転送方法。
  9. 【請求項9】請求項4記載の並列計算機において、 該放送通信手段で送られてきたデータを受信する際に該
    テーブルを検索するステップと、 該受信データが指定する識別子で管理される受信領域と
    別な識別子で管理されている受信領域とがリンクされて
    いるかを判断するステップとを有することを特徴とする
    プロセッサ間データ転送方法。
  10. 【請求項10】請求項5記載の並列計算機において、 データを受信する際に、受信データが指定する該識別子
    を識別するステップと、 該識別された該識別子に応じて該アドレス変換テーブル
    を特定するステップと、 該特定されたアドレス変換テーブルに従いアドレスを変
    換するステップとを有するプロセッサ間データ転送方
    法。
  11. 【請求項11】請求項6に記載の並列計算機において、 データを受信する際に、受信データが指定する該識別子
    から該結合テーブルを利用して該アドレス変換テーブル
    を特定するステップと、 該アドレス変換テーブルに従いアドレスを変換するステ
    ップとを有するプロセッサ間データ転送方法。
  12. 【請求項12】請求項7に記載の並列計算機において、 データを受信する際に、受信データが指定する該識別子
    から該結合テーブルを利用して該アドレス変換テーブル
    を特定するステップと、 該変換単位を用いて該アドレス変換テーブルを検索する
    ステップとを有するプロセッサ間データ転送方法。
JP8249597A 1996-09-20 1996-09-20 プロセッサ間データ転送方法及び並列計算機 Pending JPH1097512A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8249597A JPH1097512A (ja) 1996-09-20 1996-09-20 プロセッサ間データ転送方法及び並列計算機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8249597A JPH1097512A (ja) 1996-09-20 1996-09-20 プロセッサ間データ転送方法及び並列計算機

Publications (1)

Publication Number Publication Date
JPH1097512A true JPH1097512A (ja) 1998-04-14

Family

ID=17195391

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8249597A Pending JPH1097512A (ja) 1996-09-20 1996-09-20 プロセッサ間データ転送方法及び並列計算機

Country Status (1)

Country Link
JP (1) JPH1097512A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008015617A (ja) * 2006-07-03 2008-01-24 Nippon Telegr & Teleph Corp <Ntt> 分散共有メモリを用いた同報通信方法および装置
JP2009301101A (ja) * 2008-06-10 2009-12-24 Nec Corp プロセッサ間通信システム、プロセッサ、プロセッサ間通信方法、および、通信方法
WO2010116399A1 (ja) 2009-03-30 2010-10-14 富士通株式会社 データ転送制御装置、システムおよび方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008015617A (ja) * 2006-07-03 2008-01-24 Nippon Telegr & Teleph Corp <Ntt> 分散共有メモリを用いた同報通信方法および装置
JP2009301101A (ja) * 2008-06-10 2009-12-24 Nec Corp プロセッサ間通信システム、プロセッサ、プロセッサ間通信方法、および、通信方法
WO2010116399A1 (ja) 2009-03-30 2010-10-14 富士通株式会社 データ転送制御装置、システムおよび方法
US8589596B2 (en) 2009-03-30 2013-11-19 Fujitsu Limited Data transfer controlling apparatus, system and method

Similar Documents

Publication Publication Date Title
JP2625385B2 (ja) マルチプロセッサシステム
JP3411300B2 (ja) 情報処理装置
US5991797A (en) Method for directing I/O transactions between an I/O device and a memory
US7533197B2 (en) System and method for remote direct memory access without page locking by the operating system
US7617376B2 (en) Method and apparatus for accessing a memory
JP3959914B2 (ja) 主記憶共有型並列計算機及びそれに用いるノード制御装置
US5907684A (en) Independent channel coupled to be shared by multiple physical processing nodes with each node characterized as having its own memory, CPU and operating system image
CN100430907C (zh) 用于减小高速缓存架构中的延迟和窥探代价的方法
US6901451B1 (en) PCI bridge over network
JPS6118053A (ja) デ−タ処理システム
JPH10171710A (ja) 効果的なブロック・コピー動作を実行するマルチプロセス・システム
JP2002342299A (ja) クラスタシステム、コンピュータ及びプログラム
US6601183B1 (en) Diagnostic system and method for a highly scalable computing system
US7069394B2 (en) Dynamic data routing mechanism for a high speed memory cloner
US20040111576A1 (en) High speed memory cloning facility via a source/destination switching mechanism
JPH10187631A (ja) 拡張された対称マルチプロセッサ・アーキテクチャ
US11836105B2 (en) Communication device, information processing system, and communication method
US20040111584A1 (en) Dynamic software accessibility to a microprocessor system with a high speed memory cloner
JPH1097512A (ja) プロセッサ間データ転送方法及び並列計算機
JP3169624B2 (ja) プロセッサ間通信方法およびそのための並列プロセッサ
US6986011B2 (en) High speed memory cloner within a data processing system
JP2003348184A (ja) 通信制御装置
JP2001236335A (ja) 分散メモリ型並列計算機及びそのデータ転送終了確認方法
JP2780662B2 (ja) マルチプロセッサシステム
JP2830780B2 (ja) マルチプロセッサシステム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040203

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040405

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050111