JP3169624B2 - プロセッサ間通信方法およびそのための並列プロセッサ - Google Patents

プロセッサ間通信方法およびそのための並列プロセッサ

Info

Publication number
JP3169624B2
JP3169624B2 JP05646991A JP5646991A JP3169624B2 JP 3169624 B2 JP3169624 B2 JP 3169624B2 JP 05646991 A JP05646991 A JP 05646991A JP 5646991 A JP5646991 A JP 5646991A JP 3169624 B2 JP3169624 B2 JP 3169624B2
Authority
JP
Japan
Prior art keywords
address
instruction
data
circuit
cluster
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
JP05646991A
Other languages
English (en)
Other versions
JPH04291660A (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.)
Hitachi Ltd
Hitachi Solutions Technology Ltd
Original Assignee
Hitachi Ltd
Hitachi ULSI Systems Co 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, Hitachi ULSI Systems Co Ltd filed Critical Hitachi Ltd
Priority to JP05646991A priority Critical patent/JP3169624B2/ja
Priority to US07/853,427 priority patent/US5386566A/en
Priority to DE4208924A priority patent/DE4208924B4/de
Publication of JPH04291660A publication Critical patent/JPH04291660A/ja
Application granted granted Critical
Publication of JP3169624B2 publication Critical patent/JP3169624B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、計算の高速化を目的と
する並列プロセッサ、特にMIMD型で分散したメモリ
を持つ並列プロセッサのプロセッサ間データ転送に係
る。
【0002】
【従来の技術】従来、複数のプロセッサを用いて計算を
高速化する技術には、大別して次の2種類があった。
【0003】第1の種類の技術は、数10台以上のプロ
セッサを用い、1台のプロセッサに比べて著しい性能向
上をねらう並列プロセッサを構成するための技術であ
る。この種の技術においては、多数のプロセッサを用い
ることが前提になるため、1台のプロセッサを小型にす
ることが重要であり、それゆえ各プロセッサの機能は汎
用大型計算機などに比べて限られていた。例えば、仮想
記憶を実現するためのアドレス変換機構の省略等がこれ
にあたる。特開昭62−274451に記載された装置
のように、複数のプロセスを1台のプロセッサで実行で
きるプロセッサを多数用いる並列プロセッサ技術はあっ
たが、仮想記憶を実現する機能は備えていない。
【0004】第2の種類の技術は、数台の汎用計算機を
ローカルエリアネットワーク等で結合する、いわゆる分
散処理技術である。例えば、AT&T社が開発したun
ixオペレーティングシステム(以下OS)を搭載する
ワークステーションにおける分散処理技術が該当する。
この種の技術においては、汎用計算機を用いることが前
提であるため、各プロセッサは汎用計算機として構成さ
れており、汎用計算機に通信用のアダプタを追加する形
式をとる。各プロセッサは汎用のOSを搭載しており、
通信用のアダプタはディスク入出力装置と同等にOSが
管理する資源として扱われている。そのため、プロセッ
サ間通信はシステムコールを経由して実行する形式をと
る。すなわち、ユーザが作成したプログラムを実行する
プロセスが、他のプロセスにデータを送信するときに
は、OSのプログラムを呼び出し、これを実行する必要
がある。
【0005】図14は、第2の種類の従来技術によるデ
ータ転送の動作を示している。まずデータを送信するプ
ロセスが、送信のためのシステムコールを実行する。す
るとこのシステムコールを受けたOSは、送信先プロセ
スに関連するパラメータとともに、送信すべきデータを
OS内部にあるバッファにコピーする。続いてパラメー
タをチェックし、OS内部にあるバッファ領域から送信
回路へパラメータとデータを設定し、送信回路にデータ
送信を指令する。
【0006】送信回路がデータを送信し、受信するプロ
セッサの受信回路に到着すると、パラメータおよびデー
タを受信回路内部のバッファへストアし、受信するプロ
セッサにあるOSに通知する。これを受けたOSは、受
信回路内のバッファからパラメータおよびデータをOS
内部のバッファにコピーし、パラメータおよびデータを
検査し、検査の結果問題がなければ、送信元のプロセッ
サへACK(Acknowledge信号)を送る。A
CKを送られたプロセッサは、OS内部にあり、ACK
を送る原因になったパラメータおよびデータの転送を依
頼されたときに確保したバッファ領域を開放する。
【0007】データを受信するプロセスが受信のための
システムコールを実行したときに、これを受けたOS必
要なデータが到着しているか否かを検査し、すでに到着
していれば、データを格納しているOS内部の領域から
システムコールを実行したプロセスの内部の領域へデー
タをコピーする。まだ到着していなければ、到着を待っ
て以上の受信の動作を実行する。
【0008】
【発明が解決しようとする課題】上記の第1の従来技術
においては、各プロセッサの機能は限られており、ユー
ザは限られた機能の中で、各プロセッサの持つメモリ容
量などのハードウェア諸元を十分に意識してプログラム
を作成する必要がある。さらに、この従来技術において
は、各プロセッサをメモリ共有型マルチプロセッサに
し、一層の高速化を図るために必要な方法も提示されて
いない。
【0009】上記の第2の従来技術においては、各プロ
セッサには豊富な機能が備えられているが、データを送
信するたびにOSを呼び、さらに呼び出されたOSが送
信すべきデータのコピーを繰り返すため、データ送信の
オーバヘッドが極めて大きく、多数のプロセッサを用い
て計算を高速に実行しようとしても、プロセッサ数を多
くすればするほどいわゆる粒度が低下し、従ってデータ
送信のためのオーバヘッドが顕在化するため、計算は高
速にならない。
【0010】本発明の目的は、各プロセッサが共有メモ
リ型マルチプロセッサ構成を持ち、これを多数結合す
る、いわゆるマルチクラスタ型並列プロセッサにおい
て、各プロセッサの機能を汎用計算機と同等に保ちなが
ら、高速のデータ転送を提供することにある。
【0011】
【課題を解決するための手段】本発明の目的を達成する
ためには、独立に動作可能な1台以上のプロセッサとこ
の1台以上のプロセッサに共有されるメモリとからなる
クラスタを複数用いて構成され、複数のクラスタを接続
するネットワークを有し、複数のクラスタのそれぞれに
おいて少なくとも1つの仮想空間が割り当てられ、仮想
空間において少なくとも1つのプロセスがOSの制御下
で実行される並列プロセッサにおいて、あるクラスタで
実行中のプロセスからの、データ送信を要求する命令に
応答して、まず、この命令で指定され、データの送信先
プロセスを識別するための送信先プロセス識別記号か
ら、送信先プロセスの存在するクラスタの識別記号およ
び送信先プロセスを一意に識別するための一意識別記号
を求め、次に、この命令で指定され、この命令を実行し
たプロセスが実行されている仮想空間内の送信元仮想ア
ドレスにあるデータをメモリから直接読みだして、送信
先クラスタの識別記号と、上記の一意識別記号と、命令
で指定され、送信先プロセスが実行される仮想空間内の
送信先仮想アドレスとともに該ネットワークに送信する
一連の動作を、この命令を実行したプロセスの存在する
クラスタにあるOSを用いることなく実行するととも
に、あるクラスタが、クラスタ内で実行されているプロ
セスを一意に識別する一意識別記号と、この一意識別記
号で識別されるプロセスが実行される仮想空間内の仮想
アドレスとデータのネットワークからの到着に対応し
て、一意識別記号と仮想アドレスからこの仮想アドレス
に対応する実アドレスを求め、この実アドレスで示され
るメモリ上の領域に到着したデータを直接格納する動作
を、OSを用いることなく実行することにより達成され
る。
【0012】
【作用】本発明に係る並列プロセッサにおいては、上述
の動作にあるように、あるプロセスが他のクラスタにあ
るプロセスにデータを転送するための命令を実行するこ
とによってOSを介在することなく、また、OS内部の
バッファ領域へのコピーすることなく、データを送信す
るプロセスの仮想空間内からデータをネットワークに直
接送出できる。
【0013】また、ネットワークからデータが到着した
場合にも、やはりOSを介在することなく、また、OS
内部のバッファを利用することなくデータの宛先である
プロセスの仮想空間内の領域にネットワークからデータ
を直接書き込むことができる。
【0014】
【実施例】(第1の実施例) 本発明の第1の実施例を図によって説明する。図1は、
本発明の第1の実施例に係る並列プロセッサの構成を示
す図である。図1において、1、2、3および4はプロ
セッサであり、すべて同一の構成を取る。5はプロセッ
サ1と2に共有されるメモリ、6はプロセッサ3と4に
共有されるメモリである。プロセッサ1と2およびメモ
リ5が第1のクラスタを構成する。プロセッサ3と4お
よびメモリ6が第2のクラスタを構成する。7は第1の
クラスタに接続される送信回路である。8は第2のクラ
スタに接続される受信回路である。第1のクラスタには
第2のクラスタの受信回路8と同様の受信回路がある
が、簡単のため図1では省略してある。同様に第2クラ
スタには第1のクラスタの送信回路と同様の送信回路が
あるが省略してある。9は、第1のクラスタと第2のク
ラスタを結合するネットワークである。ネットワーク9
は、クラスタの送信回路7から指定された宛先に、メッ
セージを転送する。
【0015】本実施例では簡単のため、クラスタを構成
するプロセッサを2台、クラスタの台数を2台にしてあ
るが、本発明に係る技術はクラスタを構成するプロセッ
サの台数が3台以上有ることを妨げない。また、クラス
タの台数が3台以上であることを妨げない。
【0016】続いてプロセッサ1ないし4の構成を説明
する。プロセッサ1ないし4は、後述の新設命令を持つ
ことを除き、従来技術によるマイクロプロセッサ、例え
ば(株)日立製作所のマイクロプロセッサH32と同様
な構成であってよい。図では簡単のためプロセッサ1に
ついてのみ内部の構成を示している。図中、10は実行
制御回路であり、プロセッサ1の命令実行シーケンスを
制御する。11はPSW(プログラム状態語)である。
11−1はPSW11の中にあリ、1ビットの幅を持つ
特権状態表示フィールドである。11−1が1の時には
プロセッサ1は特権状態にあり、11−1が0の時に非
特権状態にある。11−2はPC(プログラムカウン
タ)であり、実行中の命令のアドレスを格納している。
12は命令レジスタであり、実行中の命令を格納してい
る。13は命令デコーダである。14は後述のPATH
テーブルのあるメモリアドレスを格納するPATHテー
ブルベースレジスタである。15はPATHテーブル長
レジスタである。16は加算器、17は比較器である。
18はアドレス変換機構であり、命令で指定された仮想
アドレスを実アドレスに変換する。アドレス変換機構1
8は、従来技術により容易に構成することができる。1
9は条件コードレジスタであり、命令の実行結果によ
り、命令仕様で定義された値を格納する。20および2
1はメモリ5を読出すための読み出し回路である。22
は特権命令実行判定回路、23は不当アクセス判定回路
である。24および25はAND回路である。
【0017】メモリ5には以下がある。28はオペレー
ティングシステム(以下OS)領域アクセス許可回路で
ある。29はOS領域である。OS領域29にアクセス
するためには、OS領域アクセス許可回路28に信号を
入力する必要がある。他のエリアへのアクセスはOS領
域アクセス許可回路に信号を入力しなくてもアクセスで
きる。30は後述するPATHテーブルである。PAT
Hテーブル30のエントリは図2に示されている形式を
持つ。31はプロセッサ1で実行中のプロセスのコンテ
クストである。32はプロセッサ1で実行中のプロセス
に対応する仮想空間である。図1では簡単のためプロセ
ッサ1が実行中のプロセスに対応する仮想空間のみを示
しているが、本発明は他の仮想空間があることを妨げな
い。仮想空間は従来技術により容易に構成できる。33
は仮想空間中の転送すべきデータを示す。
【0018】送信回路7はプロセッサ1あるいはプロセ
ッサ2の指令のもとに、データをネットワーク9に送信
する機能を持つ。34は送信レジスタであり、ネットワ
ークに送信すべきメッセージを格納する。26は送信制
御回路であり、線L7を介してネットワーク9より送信
中断信号が入力されないかぎり、送信レジスタ34の内
容を線L6を介してネットワークに送出する。
【0019】受信回路8は、以下の要素から構成され
る。35は受信レジスタであり、ネットワーク9から到
着したメッセージを線L18、受信制御回路27を介し
て格納する。36はアドレス変換回路であり、受信レジ
スタ35に含まれているPTO(ページテーブルオリジ
ン)とVA(仮想アドレス)から実アドレスを得ること
ができるか否かを判定し、可能ならば得られた実アドレ
スをL10に出力する。不可能ならば、L11に信号を
出力する。37はアドレス生成回路である。38および
39は、メモリ6にデータを書き込むための書き込み回
路である。
【0020】メモリ6には以下がある。48はOS領域
アクセス許可回路である。49はOS領域である。メモ
リ5と同様に、OS領域49にアクセスするためには、
OS領域アクセス許可回路48に信号を入力する必要が
ある。50はページテーブルである。51は本実施例で
説明するデータ転送においてデータを書き込むべき仮想
空間である。52は仮想空間51中のデータ格納領域を
示す。53は受信代行バッファである。54は受信代行
バッファの中にあるデータ格納領域である。
【0021】続いて本発明に係る並列プロセッサの動作
を説明する。本発明に係る並列プロセッサでは、第1の
クラスタおよび第2のクラスタはそれぞれ密結合型マル
チプロセッサであり、電源投入後には従来技術による密
結合型マルチプロセッサと同様にしてイニシャルプログ
ラムロードを実行しOSがそれぞれのクラスタにて独立
に起動する。このときメモリ5、6のそれぞれに、OS
領域29、49を確保する。起動に必要な装置、例えば
磁気ディスク装置は簡単のため図から省略してある。
【0022】OSの起動後に、いずれかのクラスタにユ
ーザプログラムの起動指示が入力されると、そのクラス
タのOSは仮想空間を生成し、さらにその中にユーザプ
ログラムの実行に必要なプロセスを生成する。このよう
にして生成されたユーザプロセスが、ユーザプログラム
の実行に必要なプロセスを自クラスタおよび他クラスタ
に順次生成する。このようにして、ひとつの起動指示に
よって直接的に、あるいは間接的に生成されたユーザプ
ロセス群をジョブと呼ぶ。ジョブにはジョブ識別記号が
OSによって与えられる。各ユーザプロセスには、その
生成に際してジョブ内で一意であるようにユーザによっ
て名前が与えられている。ユーザプログラムの誤りなど
によってジョブ内で名前の重複するプロセスを生成しよ
うしたときには、OSがこれを検出して当該ジョブを異
常終了させる。ユーザプロセスの生成に際しては、ひと
つのクラスタに複数のプロセスを生成しても良い。生成
の方法は、従来技術、例えばローカルエリアネットワー
クにより結合された分散処理システムにおいて用いられ
ている方法と同様であってよい。上記の手段によって生
成されたプロセスは、互いにデータを送信しながらプロ
グラムによって指示された計算を実行する。
【0023】すでに述べたように、プロセッサ1ないし
4は、従来技術により構成することができるマイクロプ
ロセッサに、本発明に係る命令実行回路を追加した構成
を持つ。そのため、各プロセッサが実行するプロセスの
命令列のうち、演算命令などの当該プロセッサの内部で
実行できる命令については従来技術によるマイクロプロ
セッサと同様にして処理される。
【0024】本発明に係る並列プロセッサを構成する各
プロセッサは、従来技術によるマイクロプロセッサと同
様なアドレス変換機構を有し、仮想空間をサポートす
る。各プロセスはひとつの仮想空間に一意に対応してお
り、その仮想空間の中でプログラムを実行する。従っ
て、各クラスタの中では仮想空間を指定することと、プ
ロセスを指定することは等価である。
【0025】続いて、図1を用いてプロセス生成の動作
を説明する。本発明に係る並列プロセッサにおいては、
OSがユーザプロセスを生成するときに、生成するプロ
セスに対応するPATHテーブルをOS領域29内の実
記憶上に生成する(OSは特権状態で実行されるため、
特権状態表示フィールド11−1の値1が、信号として
OS領域アクセス許可回路28に入力されており、それ
ゆえPATHテーブルをOS領域29に生成することが
可能である。非特権状態の場合にはOS領域29内部に
あるPATHテーブルを書き替えることはできない)。
図1の中で、第1のクラスタには仮想空間32の中で実
行されるユーザプロセスに対応してPATHテーブル3
0が生成される。このとき、PATHテーブル30の全
エントリのVフィールドを1に初期化する。PATHテ
ーブルは、その先頭アドレスであるBASEと、その長
さであるLENによって管理される。BASEおよびL
ENはそのプロセスのコンテクストの一部として扱われ
る。図3はプロセスのコンテクストの内容を示す。図
中、103にはPSWの内容が、104にはレジスタの
内容が、105にはその他の制御情報が格納されている
が、これらは従来技術によるOSが管理するコンテクス
トと同様である。コンテクストの中で、106および1
07はそれぞれ上述のBASEおよびLENを格納する
フィールドであり、本発明により新たに導入される。
【0026】第1のクラスタのOSは、仮想空間32に
対応するプロセスをプロセッサ1にスケジュールする場
合に、コンテクスト31の内容をプロセッサ1の中にあ
るレジスタに格納する。本発明に係る並列プロセッサで
は、コンテクストの一部として新たに導入した上述のB
ASEおよびLENを格納するための専用のレジスタと
して、それぞれPATHテーブルベースレジスタ14と
PATHテーブル長レジスタ15をプロセッサ1に設け
ている。さらに、これらのレジスタに値を格納するため
の命令として、BASE設定命令とLEN設定命令を持
つ。いずれの命令も特権命令であり、非特権状態でこれ
らの命令を実行しようとするとプロセッサ1に割込みが
発生する。プロセッサ1にて実行中のプロセスがなんら
かの理由でプロセススイッチし、プロセッサ1を解放す
る場合には、上記とは逆に、プロセッサ1のレジスタの
値がコンテクスト31に格納される。
【0027】続いて、プロセッサ1における命令実行の
概略を説明する。まず実行制御回路10の中にあるPS
W11のフィールド11−2に従って命令をメモリ5か
ら読み出し、命令が命令レジスタ12に格納される。命
令レジスタ12のフィールドOPに格納されたオペレー
ションコードは、特権命令実行判定回路22に入力され
る。特権命令実行判定回路22には、特権状態表示フィ
ールド11−1も入力されている。この回路は、入力し
たオペレーションコードが特権命令を示し、かつ特権状
態表示フィールド11−1が非特権状態を示している場
合にのみ、実行制御回路10に信号を出力する。これに
より、プロセッサ1に割込みが発生する。これ以外の場
合には、オペレーションコードを命令デコーダ13がデ
コードし、デコードされた命令の動作に必要な信号を生
成することにより命令が実行される。 図4に上述のB
ASE設定命令のフォーマットを示す。図において、1
08はこの命令のオペレーションコード、第1オペラン
ド109はPATHテーブルベースレジスタ14に設定
する値を格納する。110および111に格納されてい
る値は使用されない。プロセッサ1において本命令は以
下の順序で実行される。
【0028】まず、上述のようにして命令デコーダ13
が本命令をデコードし、その結果読み出した命令がBA
SE設定命令であることがわかると、線L1に信号が出
力される。本命令は特権命令なので、11−1が1でな
い場合には実行されない。11−1が1のときには、A
ND回路24から信号が出力される。この信号によっ
て、命令レジスタ12のOP1フィールドに格納されて
いる値がPATHテーブルベースレジスタ14にセット
される。
【0029】図5に上述のLEN設定命令のフォーマッ
トを示す。図において、112はこの命令のオペレーシ
ョンコード、第1オペランド113はPATHテーブル
ベースレジスタ14に設定する値を格納する。114お
よび115に格納されている値は使用されない。プロセ
ッサ1において本命令は以下の順序で実行される。
【0030】まず、上述のようにして命令デコーダ13
が本命令をデコードし、その結果読み出した命令がBA
SE設定命令であることがわかると、線L2に信号が出
力される。本命令は特権命令なので、11−1が1でな
い場合には実行されない。11−1が1のときには、A
ND回路25から信号が出力される。この信号によっ
て、命令レジスタ12のOP1フィールドに格納されて
いる値がPATHテーブル長レジスタ15にセットされ
る。
【0031】上述のBASE設定命令、LEN設定命令
などの実行によってコンテクストをレジスタにロードさ
れ、プロセッサ1にスケジュールされたプロセスは、同
一ジョブ内の他のプロセスへのデータ転送に先立って転
送のためのPATHを設定する。
【0032】まず、プロセスがPATH設定のためのシ
ステムコールを実行する。このシステムコールの仕様は
以下のとおりである。
【0033】path=openpath(nam
e); name:相手プロセスの名前(ジョブ内で一意) path:OSが返すPATHの値 PATHの設定は以下の順序で実行される。
【0034】まず、システムコールを実行したプロセス
と同一のジョブに属するプロセスを持つクラスタのOS
に、指定された名前を持つプロセスがあるか否かを問い
合わせる。指定された名前のプロセスが存在するクラス
タのOSは、クラスタの番号と、指定されたプロセスに
一意に対応する仮想空間を構成するためのページテーブ
ルオリジンを問い合わせ元のクラスタに知らせる。それ
以外の場合には、指定された名前のプロセスが存在しな
いことを問い合わせ元のクラスタに知らせる。その結
果、指定された名前を持つプロセスが発見できない場合
には、本システムコールは、発見できないことを示す特
別の値をユーザプロセスに返す。
【0035】指定された名前を持つクラスタが発見でき
た場合には、当該システムコールを実行したユーザプロ
セスに対応するPATHテーブル30の中からVフィー
ルドが1であるエントリを任意にひとつ選択し、そのV
フィールドに0を、CLフィールドに発見されたプロセ
スが存在するクラスタの番号を、PTOフィールドに発
見されたプロセスに対応する仮想空間のページテーブル
オリジンを書き込んだ後、当該エントリの番号をユーザ
プロセスに返す。すなわち、PATHテーブル30のエ
ントリの番号が、PATHの値になる。
【0036】以上の準備が完了すると、プロセスは他の
プロセスにデータを転送できるようになる。続いてデー
タを転送するためのリモートストア命令の仕様を説明す
る。リモートストア命令は非特権命令であり、図6に示
すフォーマットを持つ。図中、116はオペレーション
コード、117は転送するPATHの値、118は本命
令を実行するプロセスの仮想空間の中にある転送すべき
データの仮想アドレス、119は転送すべきデータを格
納するための、相手プロセスに対応する仮想空間内の仮
想アドレスである。本命令は以下のように実行される。
本命例の動作概要を図7に示す。
【0037】・ユーザプロセスによるリモートストア命
令の実行(図7の150)まず実行制御回路10の中に
あるPSW11のフィールド11−2に従って命令をメ
モリ5から読み出し、命令が命令レジスタ12に格納さ
れる。本命令は非特権命令であるため、特権命令実行判
定回路22は信号を出力しない。命令デコーダ13は命
令レジスタ12のフィールドOPに格納されたオペレー
ションコードをデコードし、その結果読み出した命令が
リモートストア命令であることがわかると、線L3に信
号が出力され、以下の一連の動作が開始される。
【0038】・第1の検査(図7の151)第1オペラ
ンド(図6の117)に格納されたPATHの値と、P
ATHテーブルベースレジスタ14に格納されている値
を加算器16で加算することにより、PATHテーブル
30の中の当該PATHに対応するエントリアドレスを
計算し、読みだし回路20に出力する。読みだし回路2
0は、線L3から信号を受けて、加算器16が出力した
エントリアドレスによってメモリ5を参照し(このメモ
リ参照はOS領域29へのアクセスであるが、線L3よ
りOS領域許可回路28に信号が入力されるので、特権
状態でない場合であっても読みだし回路20による読み
だしは可能)、当該エントリのVフィールドの値が1の
ときには線L4に信号を出力する。
【0039】また、第1オペランドに格納されたPAT
Hの値と、PATHテーブル長レジスタ15の内容を比
較器17で比較する。比較の結果、PATHの値がPA
THテーブル長レジスタ15の内容より大きい場合に、
線L12に信号を出力する。不当アクセス判定回路23
は、線L3、L4、L12の信号により、本命令で指定
されたPATHの値が正当なデータ転送であるか不当で
あるかを判定し、不当な場合には信号を実行制御回路1
0に出力する。ここで不当な場合とは、本命令を実行
し、それにより線L4あるいは線L12の少なくとも一
方に信号が出力された場合のことである。
【0040】以上が第1の検査であり、その結果として
不当アクセス判定回路23から信号を受けると、実行制
御回路10は本命令の実行を抑止し、プロセッサ1に割
込みを発生する。
【0041】・第2の検査(図7の152)線L3から
の信号により、送信制御回路26の状態を調べる。
【0042】この第2の検査により、以前に実行したリ
モートストア命令によって送信レジスタ34にセットさ
れた値のネットワーク9への送信が終了していないこと
が判明した場合には、線L13により条件コードレジス
タ19に条件コード1を設定し本命令の実行を終了す
る。以前に実行したリモートストア命令によって、送信
レジスタ34にセットされていた値のネットワーク9へ
の送信が終了している場合には以下の動作を実施する。
【0043】・CL、PTOフィールド設定(図7の1
53)まず、第1の検査の場合と同様にして読み出し回
路20が、加算器16の出力したエントリアドレスによ
ってメモリ5を参照し、当該エントリのCLフィールド
およびPTOフィールドの内容を、線L5に出力する。
送信レジスタ34は線L3の信号により、線L5に出力
された値をCLフィールドおよびPTOフィールドに設
定する。
【0044】・VAフィールド設定(図7の154)次
に、線L3の信号により、第3オペランド(図6の11
9)に格納された仮想アドレスが、そのまま送信レジス
タ34のVAフィールドに設定される。
【0045】・データフィールドの設定(図7の15
5)続いて、アドレス変換回路18が、第2オペランド
(図6の118)に格納された仮想アドレスを実アドレ
スに変換し、読みだし回路21に出力する。読みだし回
路21は線L3の信号により、この実アドレスによりメ
モリ5を読みだし、送信すべきデータを送信レジスタ3
4のデータフィールドに向けて出力する。送信レジスタ
34は、線L3の信号により上記の送信すべきデータを
データフィールドに設定する。
【0046】・データの送出(図7の156)以上のよ
うにして送信レジスタ34への設定が終了すると、線L
13により条件コードレジスタ19に条件コード0を設
定し、本命令の実行を終了する。線L3の信号を受けた
送信制御回路26は、送信レジスタ34の内容のネット
ワーク9への送出を開始する。
【0047】以上でリモートストア命令の動作が終了す
るため、プロセッサ1は次命令を実行する(図7の15
7)。
【0048】ネットワークへの送出に成功したか否か
は、条件コードの値を反映する条件分岐命令により調べ
ることができる。条件コードの値により、送出に成功し
なかったことが判明した場合には、再度本命令を実行す
ればよい。
【0049】ネットワーク9はメッセージをメッセージ
の中で指定されたクラスタの受信回路、例えば受信回路
8に送信する。その結果、送信レジスタ34のPTOフ
ィールド、VAフィールド、データフィールドが、受信
制御回路27を経由してそれぞれ受信レジスタ35のP
TOフィールド、VAフィールド、データフィールドに
セットされる。
【0050】・アドレス変換可能性の検査(図7の16
0)メッセージが到着すると、受信回路8は受信レジス
タ35のPTOフィールドとVAフィールドの内容をア
ドレス変換回路36に送る。これを受けたアドレス変換
回路36は、PTOフィールドの中に格納されているペ
ージテーブルオリジンと、これに対応する仮想空間51
の仮想アドレス(VAフィールドの内容)により、アド
レス変換回路36は線L19を介してOS領域アクセス
許可回路48に信号を出力し、OS領域の参照を可能に
した上で、線L20を介してページテーブル50を参照
し、メモリ6の実アドレスを求められるか否か確認す
る。
【0051】・アドレス変換(図7の161)仮想アド
レスに対応する実メモリ領域が存在し、アドレス変換が
可能な場合には、上と同様にOS領域の参照を可能にし
た上で、OS領域49にあり、受信レジスタ35のPT
Oフィールドに対応する仮想空間51に対応するページ
テーブル50を線L20を介して参照することにより、
受信レジスタ35のVAフィールドにある仮想アドレス
から実アドレスを求めるためのアドレス変換を行ない、
変換の結果得られた実アドレスと書き込み要求信号とを
線L10に出力する。
【0052】・データの書き込み(図7の162)これ
を受けた書き込み回路39は、L10から入力されたア
ドレスをL14に、受信レジスタ35のデータフィール
ドの内容を線L15に出力することにより、仮想空間5
1のデータ格納領域52にレジスタ35のデータフィー
ルドの内容を書き込み、動作を終了する。
【0053】・アドレス生成(図7の170)上記でア
ドレス変換が不可の場合、すなわちページアウトにより
実アドレスが求められない場合には、アドレス変換回路
36が線L11に信号を出力する。これによりアドレス
生成回路37が、受信代行バッファ53の内部にあり、
受信レジスタ35の内容を格納することができる領域の
アドレスを生成する。
【0054】なお、受信代行バッファ53は、当該クラ
スタのOSによってあらかじめメモリ6のOS領域49
の内部に確保されている。
【0055】・受信レジスタの退避(図7の171)ア
ドレス生成回路37の生成したアドレスが線L17を介
して書き込み回路38に伝えられると、書き込み回路3
8は線L18を介してOS領域アクセス許可回路48に
信号を出力することでOS領域49への書き込みを可能
にしておいた上で、上記アドレスを線L30でメモリに
出力し、受信レジスタ35の各フィールドの内容を線L
31を介して書き込む。
【0056】・割込みによるOS呼び出し(図7の17
2)続いて、アドレス生成回路37は、線L21にてプ
ロセッサ3あるいは4のいずれかに割込みを発生する。
【0057】・ページイン処理(図7の180)割込み
が発生したプロセッサにおいては、OSがページイン処
理によって、割込みの原因になった仮想アドレスに実ア
ドレス領域を割当てる。
【0058】・受信回路のシミュレート(図7の18
1)受信代行バッファ53からメッセージを取り出し、
本来ならば受信回路8が実行するデータの格納の処理を
OSがシミュレート実行する。
【0059】以上のようにしてデータ転送が完了する。
【0060】なお、上記のアドレス生成(図7の17
0)において、受信代行バッファ53に余裕がないため
に、アドレスを生成することができない場合には、アド
レス生成回路37は線L16を介して受信制御回路27
に信号を送る。信号を送られた受信制御回路27は、線
L9によりネットワーク9に対して受信中断の信号を送
り、ネットワーク9による線L8を介したメッセージの
送りこみを中断させる。さらに、アドレス生成回路37
は線L21を経由してプロセッサ3または4に割込みを
発生することでOSを呼び出し、受信代行バッファ53
の拡大を依頼する。拡大が終了するとOSは線L21に
より、アドレス生成回路37にその旨を通知する。これ
を受けたアドレス生成回路37は線L16にて受信制御
回路27に、受信再開を指示する。受信制御回路27は
これを受けて線L9によりネットワーク9に受信再開を
通知する。
【0061】必要なデータ転送がすべて終了すると、プ
ロセスはPATH解放のためのシステムコールを実行す
る。このシステムコールの仕様は以下のとおりである。
【0062】closepath(path); path:PATHの値 PATHの解放のためには、システムコールを実行した
プロセスに対応するPATHテーブル30の中の、引数
pathで指定されるエントリのVフィールドを1にす
る。
【0063】(第2の実施例)本発明の第2の実施例を
図によって説明する。第2の実施例は、第1の実施例の
変形であるため、相違点を中心に説明する。図8は第2
の実施例に係る並列プロセッサの構成を示す。図8にお
いて、図1と同一の番号を持つ要素の構成は、第1の実
施例の要素と同一である。
【0064】図8において、1a、2a、3a、4aは
プロセッサであり、同一の構成になっている。5、6は
メモリである。7aは送信回路、8は受信回路である。
9はネットワークである。
【0065】プロセッサ1aにおいて、12aは命令レ
ジスタである。第1の実施例の命令レジスタ12は、3
つのオペランドを格納できるが、12aは2つのオペラ
ンドを格納する点が異なる。プロセッサ1aの他の構成
要素は、図1のプロセッサ1の中にあり、同一の番号の
構成要素と同一である。
【0066】送信回路7aにおいて、34a−1、34
a−2は送信レジスタである。第1の実施例の送信レジ
スタ34を図のように2つに分けたレジスタである。
【0067】本実施例では、第1の実施例におけるリモ
ートストア命令を削除し、リモートストア準備命令とリ
モートストア実行命令の2命令を新たに追加する。追加
する2命令はいずれも非特権命令である。
【0068】図9はリモートストア準備命令のフォーマ
ットを示す。図において、200はこの命令のオペレー
ションコード、第1オペランド201はPATHの値で
ある。202に格納されている値は使用されない。
【0069】図10はリモートストア実行命令のフォー
マットを示す。図において、204はこの命令のオペレ
ーションコード、第1オペランド205は転送すべきデ
ータを格納するための、相手プロセスに対応する仮想空
間内の仮想アドレスである。第3オペランド206は、
本命令を実行するプロセスに対応する仮想空間の中にあ
る転送すべきデータの仮想アドレスである。
【0070】続いて、本実施例に係る並列プロセッサの
動作を説明する。本実施例に係る並列プロセッサの動作
は、第1の実施例から削除したリモートストア命令の動
作を、追加したリモートストア準備命令とリモートスト
ア実行命令の2命令で実行する点以外は同一であるた
め、上記2命令の動作を図8および図11を用いながら
説明する。
【0071】まずリモートストア準備命令の動作を説明
する。本命令の実行は以下のようにして行なわれる。
【0072】・ユーザプロセスによるリモートストア準
備命令の実行(図11の182)まず実行制御回路10
の中にあるPSW11のフィールド11−2に従って命
令をメモリ5から読みだし、命令が命令レジスタ12a
に格納される。本命令は非特権命令であるため、特権命
令実行判定回路22は信号を出力しない。命令デコーダ
13は命令レジスタ12aのフィールドOPに格納され
たオペレーションコードをデコードし、その結果読みだ
された命令がリモートストア準備命令であることがわか
ると、線L3に信号が出力され、以下の一連の動作が開
始される。・第1の検査(図11の151) 第1オペランド(図9の201)に格納されたPATH
の値と、PATHテーブルベースレジスタ14に格納さ
れている値を加算器16で加算することにより、PAT
Hテーブル30の中の当該PATHに対応するエントリ
アドレスを計算し、読みだし回路20に出力する。読み
だし回路20は、線L3から信号を受けて、加算器16
が出力したエントリアドレスによってメモリ5を参照し
(このメモリ参照はOS領域29へのアクセスである
が、線L3よりOS領域許可回路28に信号が入力され
るので、特権状態でない場合であっても読みだし回路2
0による読みだしは可能)、当該エントリのVフィール
ドの値が1のときには線L4に信号を出力する。
【0073】また、第1オペランドに格納されたPAT
Hの値と、PATHテーブル長レジスタ15の内容を比
較器17で比較する。比較の結果、PATHの値がPA
THテーブル長レジスタ15の内容より大きい場合に、
線L12に信号を出力する。不当アクセス判定回路23
は、線L3、L4、L12の信号により、本命令で指定
されたPATHの値が正当なデータ転送であるか不当で
あるかを判定し、不当な場合には信号を実行制御回路1
0に出力する。ここで不当な場合とは、本命令を実行
し、それにより線L4あるいは線L12の少なくとも一
方に信号が出力された場合のことである。
【0074】以上が第1の検査であり、その結果として
不当アクセス判定回路23から信号を受けると、実行制
御回路10は本命令の実行を抑止し、プロセッサ1aに
割込みを発生する。
【0075】・第2の検査(図11の152)線L3か
らの信号により、送信制御回路26の状態を調べる。
【0076】この第2の検査により、以前に実行したリ
モートストア実行命令によって送信レジスタ34a−1
および34a−2にセットされた値のネットワーク9へ
の送信が終了していないことが判明した場合には、線L
13により条件コードレジスタ19に条件コード1を設
定し本命令の実行を終了する。以前に実行したリモート
ストア実行命令によって、送信レジスタ34a−1およ
び34a−2にセットされていた値のネットワーク9へ
の送信が終了している場合には以下の動作を実施する。
【0077】・CL、PTOフィールド設定(図11の
153)まず、第1の検査の場合と同様にして読み出し
回路20が、加算器16の出力したエントリアドレスに
よってメモリ5を参照し、当該エントリのCLフィール
ドおよびPTOフィールドの内容を、線L5に出力す
る。送信レジスタ34a−1は線L3の信号により、線
L5に出力された値をCLフィールドおよびPTOフィ
ールドに設定する。
【0078】以上がリモートストア準備命令の動作であ
る。
【0079】続いて、リモートストア実行命令の動作を
説明する。本命令は以下のように実行される。
【0080】・ユーザプロセスによるリモートストア実
行命令の実行(図11の183)まず実行制御回路10
の中にあるPSW11のフィールド11−2に従って命
令をメモリ5から読みだし、命令が命令レジスタ12a
に格納される。本命令は非特権命令であるため、特権命
令実行判定回路22は信号を出力しない。命令デコーダ
13は命令レジスタ12aのフィールドOPに格納され
たオペレーションコードをデコードし、その結果読みだ
された命令がリモートストア実行命令であることがわか
ると、線L99に信号が出力され以下の一連の動作が開
始される。・VAフィールド設定(図11の154) 次に、線L99の信号により、第1オペランド(図10
の205)に格納された仮想アドレスが、そのまま送信
レジスタ34a−2のVAフィールドに設定される。
【0081】・データフィールドの設定(図11の15
5)続いて、アドレス変換回路18が、第2オペランド
(図10の206)に格納された仮想アドレスを実アド
レスに変換し、読みだし回路21に出力する。読みだし
回路21は線L99の信号により、この実アドレスによ
りメモリ5を読みだし、送信すべきデータを送信レジス
タ34a−2のデータフィールドに出力する。送信レジ
スタ34a−2は、線L99の信号により上記の送信す
べきデータをデータフィールドに設定する。
【0082】・データの送出(図11の156)以上の
ようにして送信レジスタ34a−1および34a−2へ
の設定が終了すると、線L13により条件コードレジス
タ19に条件コード0を設定し、本命令の実行を終了す
る。線L99の信号を受けた送信制御回路26は送信レ
ジスタ34a−1および34a−2の内容をネットワー
ク9への送出を開始する。
【0083】以上でリモートストア実行命令の動作が終
了する。
【0084】以上の説明からわかるように、リモートス
トア準備命令実行することによって送信レジスタ34a
−1に値を設定し、その後にリモートストア実行命令を
実行すれば、第1の実施例におけるリモートストア命令
を実行したのと同じ効果がえられる。従って、データを
受信するプロセッサの動作は、第1の実施例の場合と全
く同一である。
【0085】以上が本発明の第2の実施例の説明であ
る。
【0086】本実施例によれば、同一のプロセスに繰返
しデータを転送する場合には、第1の実施例では繰返し
リモートストア命令を実行することになるが、リモート
ストア準備命令を1回だけ実行し、あとはリモートスト
ア実行命令を必要回数だけ実行すればよい。すると、第
1の実施例のリモートストア命令を、より処理の簡単な
リモートストア実行命令に置き換えることができるの
で、データ転送に必要なオーバヘッドをさらに削減する
効果がある。
【0087】(第3の実施例)本発明の第3の実施例を
図によって説明する。第3の実施例は、第1の実施例の
変形であり、第1の実施例の利用方法に制約をつけるこ
とにより、より簡単な構成で本発明を実施する。
【0088】第3の実施例において、新たに追加する制
約を説明する。第1の実施例では、リモートストア命令
のよって転送されるデータを受信するプロセスの仮想空
間中の仮想ページがOSによってページアウトされるこ
とを許容する実施例であった。本実施例においては、
「リモートストア命令によって転送されるデータを受信
するプロセスの仮想空間中の仮想ページが、必ず実記憶
に割り当てられている」という制約を付す。
【0089】仮想ページが必ず実記憶に割り当てられて
おり、ページアウトされないようにすること、すなわ
ち、いわゆるページフィックスの処理は、従来の技術に
より容易である。
【0090】本実施例に係る並列プロセッサの構成は、
第1の実施例から構成を要素の一部を除去するだけです
む。図12に本実施例に係る並列プロセッサの構成を示
す。図12は、図1の並列プロセッサから、アドレス生
成回路37、書き込み回路38、受信代行バッファ53
およびその中のデータ格納領域54とこれらの要素に接
続された線を除去した構成になっている。
【0091】本実施例に係る並列プロセッサの動作は、
第1の実施例の並列プロセッサとほぼ同じであるため、
相違点のみを説明する。
【0092】第1の相違点は、リモートストア命令によ
って転送されるデータを受信するプロセスの初期化にあ
る。本実施例では、プロセスを生成するために仮想空間
を生成するOSの処理において、空間を生成した後に、
プロセスのコード領域やデータ領域に必要な仮想ページ
と同一容量の実記憶領域を確保し、これを仮想ページに
もれなく割り当て、さらにすべての仮想ページにたいし
てページフィクスの処理を実行する。
【0093】第2の相違点は、リモートストア命令によ
り転送されたデータを受信する側のプロセスにおける受
信の動作にある。前述のように、このプロセスの仮想ペ
ージには必ず実記憶が割り当てられていることになるた
め、第1の実施例の動作を示す図7において、アドレス
変換可能性検査160の処理が不要になる。また、17
0からの一連の動作も必要ない。従って、図7におい
て、データの送出156によって送られたデータを受け
取るプロセってでは、まずアドレス変換161を実施
し、続いてデータのストア162を実行すればよい。
【0094】以上が本発明に係る第3の実施例の説明で
ある。
【0095】第3の実施例によれば、受信代行バッファ
が不要になるため、受信代行バッファのために必要な実
記憶領域とその管理が不要になる。そのため、データを
受信する側のプロセッサでのオーバヘッドが削減される
効果がある。
【0096】(第4の実施例)本発明の第4の実施例を
図によって説明する。本発明の第4の実施例は、第3の
実施例の変形であるため共通点が多い。それゆえ、相違
点を中心に説明する。図13は第4の実施例に係る並列
プロセッサの構成を示す。図13において、図1と同一
の番号を持つ要素の構成は、第1の実施例の要素と同一
である。
【0097】図13において、1c、2c、3c、4c
はプロセッサであり、同一の構成になっている。5、6
はメモリである。7cは送信回路、8cは受信回路であ
る。9はネットワークである。
【0098】プロセッサ1cにおいて、999は本実施
例のために新たに導入した構成要素であるアドレス変換
回路である。プロセッサ1cの他の構成要素は、図1の
プロセッサ1の中にあり、同一の番号の構成要素と同一
である。
【0099】メモリ5において、30cはPATHテー
ブルである。30cの各エントリはフィールドVと、フ
ィールドCLからなる。30cは、第1の実施例のPA
THテーブル30から、PTOフィールドを除いたテー
ブルである。
【0100】送信回路7cにおいて、34cは送信レジ
スタである。34cはCL、RA、データの3つのフィ
ールドから構成される。
【0101】受信回路8cにおいて、35cは受信レジ
スタである。
【0102】本実施例は、第3の実施例の動作におい
て、リモートストア命令によってデータを書き込まれる
仮想空間に関するアドレス変換の動作を送信側のプロセ
ッサで実行するようにした変形例である。第3の実施例
との相違点は、第3の実施例におけるシステムコールで
あるopenpathの動作とリモートストア命令の動
作にのみあるので、これを中心に説明する。ちなみに、
第3の実施例におけるopenpathは第1の実施例
と同じである。
【0103】初めに、openpathの動作を説明す
る。openpathの仕様は第3の実施例と同じであ
る。このシステムコールは以下のように実行される。
【0104】まず、システムコールを実行したプロセス
と同一のジョブに属するプロセスを持つクラスタのOS
に、指定された名前を持つプロセスがあるか否かを問い
合わせる。指定された名前のプロセスが存在するクラス
タのOSは、クラスタの番号と、指定されたプロセスに
一意に対応する仮想空間の仮想アドレスから実アドレス
を求めるための情報を問い合わせ元のクラスタに知らせ
る。それ以外の場合には、指定された名前のプロセスが
存在しないことを問い合わせ元のクラスタに知らせる。
【0105】その結果、指定された名前を持つプロセス
が発見できない場合には、本システムコールは、発見で
きないことを示す特別の値をユーザプロセスに返す。
【0106】指定された名前を持つクラスタが発見でき
た場合には、当該システムコールを実行したユーザプロ
セスに対応するPATHテーブル30の中からVフィー
ルドが1であるエントリを任意にひとつ選択し、そのV
フィールドに0を、CLフィールドに発見されたプロセ
スが存在するクラスタの番号を書き込む。さらに、指定
されたプロセスに一意に対応する仮想空間の仮想アドレ
スから実アドレスを求めるための情報と、PATHテー
ブルのエントリの番号対にしてをアドレス変換回路99
9に設定した後、当該エントリの番号をユーザプロセス
に返す。すなわち、PATHテーブル30のエントリの
番号が、PATHの値になる。
【0107】その結果、アドレス変換回路999は、P
ATHの値と、それに対応する仮想空間の仮想アドレス
から、その仮想アドレスに対応する実アドレスを求める
ことができるようになる。このようなアドレス変換回路
999は従来技術によって構成することができる。
【0108】続いて、リモートストア命令の動作を説明
する。
【0109】・ユーザプロセスによるリモートストア命
令の実行 まず実行制御回路10の中にあるPSW11のフィール
ド11−2に従って命令をメモリ5から読み出し、命令
が命令レジスタ12に格納される。本命令は非特権命令
であるため、特権命令実行判定回路22は信号を出力し
ない。命令デコーダ13は命令レジスタ12のフィール
ドOPに格納されたオペレーションコードをデコード
し、その結果読み出した命令がリモートストア命令であ
ることがわかると、線L3に信号が出力され、以下の一
連の動作が開始される。
【0110】・第1の検査 第1オペランドに格納されたPATHの値と、PATH
テーブルベースレジスタ14に格納されている値を加算
器16で加算することにより、PATHテーブル30の
中の当該PATHに対応するエントリアドレスを計算
し、読みだし回路20に出力する。読みだし回路20
は、線L3から信号を受けて加算器16が出力したエン
トリアドレスによってメモリ5を参照し、当該エントリ
のVフィールドの値が1のときには線L4に信号を出力
する。
【0111】また、第1オペランドに格納されたPAT
Hの値と、PATHテーブル長レジスタ15の内容を比
較器17で比較する。比較の結果、PATHの値がPA
THテーブル長レジスタ15の内容より大きい場合に、
線L12に信号を出力する。不当アクセス判定回路23
は、線L3、L4、L12の信号により、本命令で指定
されたPATHの値が正当なデータ転送であるか不当で
あるかを判定し、不当な場合には信号を実行制御回路1
0に出力する。ここで不当な場合とは、本命令を実行
し、それにより線L4あるいは線L12の少なくとも一
方に信号が出力された場合のことである。
【0112】以上が第1の検査であり、その結果として
不当アクセス判定回路23から信号を受けると、実行制
御回路10は本命令の実行を抑止し、プロセッサ1に割
込みを発生する。
【0113】・第2の検査 線L3からの信号により、送信制御回路26の状態を調
べる。
【0114】この第2の検査により、以前に実行したリ
モートストア命令によって送信レジスタ34にセットさ
れた値のネットワーク9への送信が終了していないこと
が判明した場合には、線L13により条件コードレジス
タ19に条件コード1を設定し本命令の実行を終了す
る。以前に実行したリモートストア命令によって、送信
レジスタ34にセットされていた値のネットワーク9へ
の送信が終了している場合には以下の動作を実施する。
【0115】・CLフィールド設定 まず、第1の検査の場合と同様にして読み出し回路20
が、加算器16の出力したエントリアドレスによってメ
モリ5を参照し、当該エントリのCLフィールドの内容
を、線L5に出力する。送信レジスタ34cは線L3の
信号により、線L5に出力された値をCLフィールドに
設定する。
【0116】・RAフィールド設定 次に、第1オペランドに格納されたPATHの値と、第
3オペランドに格納された仮想アドレスとをアドレス変
換回路999に入力することにより、アドレス変換回路
999はデータの送信先の実アドレスを出力する。送信
レジスタ34cは線L3の信号により、アドレス変換回
路の出力した値をRAフィールドに設定する。
【0117】・データフィールドの設定 続いて、アドレス変換回路18が、第2オペランドに格
納された仮想アドレスを実アドレスに変換し、読みだし
回路21に出力する。読みだし回路21は線L3の信号
により、この実アドレスによりメモリ5を読みだし、送
信すべきデータを送信レジスタ34cのデータフィール
ドに出力する。送信レジスタ34cは、線L3の信号に
より上記の送信すべきデータをデータフィールドに設定
する。
【0118】・データの送出 以上のようにして送信レジスタ34cへの設定が終了す
ると、線L13により条件コードレジスタ19に条件コ
ード0を設定し、本命令の実行を終了する。線L3の信
号を受けた送信制御回路26は、送信レジスタ34cの
内容をネットワーク9への送出を開始する。
【0119】ネットワークへの送出に成功したか否か
は、条件コードの値を反映する条件分岐命令により調べ
ることができる。条件コードの値により、送出に成功し
なかったことが判明した場合には、再度本命令を実行す
ればよい。
【0120】ネットワーク9はメッセージをメッセージ
の中で指定されたクラスタの受信回路、例えば受信回路
8cに送信する。その結果、送信レジスタ34cのRA
フィールド、データフィールドが、受信制御回路27を
経由してそれぞれ受信レジスタ35cのRAフィール
ド、データフィールドにセットされる。
【0121】続いて以下の動作が行なわれる。
【0122】・データの書き込み 書き込み回路39は、L14に受信レジスタのRAフィ
ールドの内容を、受信レジスタ35cのデータフィール
ドの内容を線L15に出力することにより、仮想空間5
1のデータ格納領域52にレジスタ35cのデータフィ
ールドの内容を書き込み、動作を終了する。
【0123】以上のようにしてデータ転送が完了する。
【0124】本実施例によれば、データを受信するプロ
セスが存在するクラスタの受信回路の動作が簡略化され
るので、第3の実施例に比べ、ひとつのクラスタに多数
のプロセスからのデータ転送が集中する場合にデータを
取りこみメモリに格納する動作がさらに高速になるため
通信のオーバヘッドをさらに低減することができる。 (第5の実施例)本発明の第5の実施例を説明する。第
5の実施例は、プロセッサが外部機器、例えば入出力機
器にデータを要求する場合に関係する。
【0125】従来の技術では、プロセッサが外部機器に
データを要求する場合、OSがまず外部機器がデータを
書き込むためのメモリ領域を用意し、さらにこのメモリ
領域がページアウトされないようにする。このために
は、例えばメモリ領域を実記憶に確保する方法や、メモ
リ領域をページフィックスした仮想記憶領域に確保する
方法がある。これに続いて外部機器にそのアドレスを含
むコマンドを送信する。コマンドを受けた外部機器が、
メモリ領域に書き込むデータを用意し終えると、上述の
ページアウトされない領域に書き込む。
【0126】上述の従来の技術では、外部機器の動作速
度がプロセッサの動作速度に比べて遅い場合に、外部機
器のレスポンスタイムの間は、外部機器のために用意さ
れたメモリ領域をプロセッサのプログラム実行のために
利用することはできない。
【0127】そこで、本実施例では、外部機器がデータ
を書き込むためのメモリ領域がページアウトされても構
わない方法を示す。
【0128】上記目的を達成するためには、本発明の第
1の実施例で説明した受信代行バッファを用いればよ
い。すなわち、外部機器とプロセッサの間に、第1の実
施例で示した受信回路8と、受信代行バッファ53を設
ける。
【0129】プロセッサが外部機器にデータの書き込み
を要求する場合に、書き込みのための領域を通常の仮想
記憶領域上に確保し、この仮想アドレスとこの領域を含
む仮想空間に対応するPTO(ページテーブルオリジ
ン)をコマンドを外部機器に伝える。外部機器が、例え
ばディスク装置を読みだすような動作をし、書き込むべ
きデータを用意すると、データを要求したプロセッサに
接続されている受信回路に、PTOと仮想アドレスとデ
ータを送信する。すると、受信回路は、第1の実施例と
同様にして、アドレス変換機構によりデータを書き込む
べき仮想記憶領域に対応する実記憶領域が割り当てられ
ているか否かを判定する。割り当てられているならば、
そこにデータを書き込む。ページアウトにより割り当て
られていないならば、受信回路8の中にあるアドレス生
成回路37と同様にして、受信代行バッファの中の利用
可能な領域を割り当て、そこにPTO、仮想アドレスお
よびデータを書き込み、プロセッサに割込みを発生す
る。これによりプロセッサは、受信代行バッファに格納
されたPTO、仮想アドレスよりページアウトされた領
域をページインし、その後その領域にデータを書き込
む。
【0130】本実施例によれば、外部機器がデータを書
き込むべき領域を通常のページングの対象にすることが
できる。そのため、外部機器の動作速度がプロセッサの
動作速度に比べて遅い場合であっても、外部機器のレス
ポンスタイムの間、外部機器のために用意されたメモリ
領域を外部機器が占有することはなく、プロセッサのプ
ログラム実行のために利用することができる。
【0131】
【発明の効果】本発明によれば、プロセス間のデータ転
送において、初期化のフェーズにのみオペレーティング
システムが介入するものの、実際の転送においては非特
権状態のままで転送が可能でありオペレーティングシス
テムが介入する必要がない。また、データの送信におい
て仮想空間にあるユーザプロセスのデータ領域からデー
タを直接読みだしてネットワークに送信するため、OS
内部のバッファへデータをコピーする必要がない。さら
に、データをネットワークから受信する場合に、ネット
ワークから受信したデータを仮想空間にあるユーザプロ
セスのデータ領域に直接書き込むことができるため、O
S内部のバッファへコピーする必要がない。しかも、プ
ログラムの誤りなどによるデータの破壊もない。そのた
め、極めて小さいオーバヘッドで安全にデータ転送を実
行することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施例に係る並列プロセッサの
構成図。
【図2】仮想的な通信路であるPATHを物理的な通信
路に変換するPATHテーブルのエントリを示す図。
【図3】本発明に係る並列プロセッサで実行されるプロ
セスのコンテクストを示す図。
【図4】新設したBASE設定命令のフォーマットを示
す図。
【図5】新設したLEN設定命令のフォーマットを示す
図。
【図6】第1の実施例に関連して新設したリモートスト
ア命令のフォーマット示す図。
【図7】第1の実施例におけるデータ転送命令の動作を
示す図。
【図8】本発明の第2の実施例に係る並列プロセッサの
構成図。
【図9】第2の実施例に関連して新設したリモートスト
ア準備命令のフォーマット示す図。
【図10】第2の実施例に関連して新設したリモートス
トア実行命令のフォーマット示す図。
【図11】第2の実施例におけるデータ転送命令の動作
を示す図。
【図12】本発明の第3の実施例に係る並列プロセッサ
の構成図。
【図13】本発明の第4の実施例に係る並列プロセッサ
の構成図。
【図14】従来の技術によるプロセッサ間通信の動作を
説明するための図。
【符号の説明】
1〜4・・・プロセッサ、5〜6・・・メモリ、7・・
・送信回路、8・・・受信回路、9・・・ネットワー
ク、10・・・実行制御回路、11・・・PSW、12
・・・命令レジスタ、13・・・命令デコーダ、14・
・・PATHテーブルベースレジスタ、15・・・PA
THテーブル長レジスタ、16・・・加算器、17・・
・比較器、18・・・アドレス変換機構、19・・・条
件コードレジスタ、20・・・読みだし回路、21・・
・読みだし回路、22・・・特権命令実行判定回路、2
3・・・不当アクセス判定回路、24・・・AND回
路、25・・・AND回路、26・・・送信制御回路、
27・・・受信制御回路、28・・・OS領域アクセス
許可回路、29・・・OS領域、30・・・PATHテ
ーブル、31・・・コンテクスト、32・・・仮想空
間、33・・・転送すべきデータ、34・・・送信レジ
スタ、35・・・受信レジスタ、36・・・アドレス変
換回路、37・・・アドレス生成回路、38・・・書き
込み回路、39・・・書き込み回路、48・・・OS領
域アクセス許可回路、49・・・OS領域、50・・・
ページテーブル、51・・・仮想空間、52・・・デー
タ格納領域、53・・・受信代行バッファ、54・・・
データ格納領域。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 樋口 達雄 東京都国分寺市東恋ケ窪1丁目280番地 株式会社 日立製作所中央研究所内 (72)発明者 千葉 寛之 東京都国分寺市東恋ケ窪1丁目280番地 株式会社 日立製作所中央研究所内 (72)発明者 首藤 信一 東京都国分寺市東恋ケ窪1丁目280番地 株式会社 日立製作所中央研究所内 (72)発明者 武内 茂雄 東京都小平市上水本町5丁目20番1号 日立超エル・エス・アイ・エンジニアリ ング株式会社内 (72)発明者 緒方 康洋 東京都小平市上水本町5丁目20番1号 日立超エル・エス・アイ・エンジニアリ ング株式会社内 (72)発明者 鳥羽 達 東京都小平市上水本町5丁目20番1号 日立超エル・エス・アイ・エンジニアリ ング株式会社内 (56)参考文献 特開 平2−311050(JP,A) 特開 平2−171063(JP,A) 特開 平2−28748(JP,A) 特開 昭62−107364(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 15/177 676 G06F 9/46 340 G06F 15/16 640

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】それぞれが、プロセッサと、データ及び該
    プロセッサで実行されるプログラムを保持するメモリと
    を有し、それぞれのオペレーティング・システムの制御
    下で仮想アドレス空間に割り当てられたプロセスを実行
    する複数のクラスタと、 上記複数のクラスタ間を接続するネットワークとを有
    し、 上記クラスタは、上記プロセスによって指定された送信
    データと、送信先のクラスタ内で実行される上記プロセ
    スを一意に識別する識別情報と、上記プロセスが実行さ
    れる上記仮想空間内の仮想ライトアドレスとを有するパ
    ケットを上記ネットワークを介して上記送信先のクラス
    タに送信する送信回路を有することを特徴とする並列プ
    ロセッサ。
  2. 【請求項2】上記識別情報は、上記送信先の上記クラス
    タ内の上記メモリに保持され、上記仮想ライトアドレス
    から実ライトアドレスへの変換に用いるアドレス変換テ
    ーブルを読み出すためのアドレス情報であることを特徴
    とする請求項1に記載の並列プロセッサ。
  3. 【請求項3】第1のプロセッサと、データ及び上記第1
    のプロセッサで実行されるプログラムを保持する第1の
    メモリとを有し、第1のオペレーティング・システムの
    制御下で第1の仮想アドレス空間に割り当てられた第1
    のプロセスを実行する第1のクラスタと、 第2のプロセッサと、データ及び上記第2のプロセッサ
    で実行されるプログラムを保持する第2のメモリとを有
    し、第2のオペレーティング・システムの制御下で第2
    の仮想アドレス空間に割り当てられた第2のプロセスを
    実行する第2のクラスタと、 上記第1のクラスタと上記第2のクラスタとを接続する
    ネットワークとを有し、 上記第1のクラスタは、 上記ネットワークに接続され、上記第1のプロセッサの
    指令のもとに、上記第1のプロセスによって指定された
    送信データと、上記送信データが上記第2の仮想空間内
    に書き込まれるべき仮想ライトアドレスと、上記仮想ラ
    イトアドレスのアドレス変換に使用されるページテーブ
    ルの先頭アドレスとを有するパケットを上記ネットワー
    クを介して上記第2のクラスタに送信する送信回路を有
    することを特徴とする並列プロセッサ。
  4. 【請求項4】上記第2のクラスタは、 上記ネットワークに接続され、上記ネットワークを介
    し、上記送信データと上記仮想ライトアドレスと上記先
    頭アドレスとを受信する受信回路と、 上記第2のメモリと上記受信回路とに接続され、受信し
    た上記先頭アドレスに応じて、上記第2のメモリに保持
    される上記ページテーブルを読み出し、受信した上記仮
    想ライトアドレスを実ライトアドレスに変換するアドレ
    ス変換回路と、 上記第2のメモリと上記アドレス変換回路とに接続さ
    れ、受信した上記送信データを上記第2のメモリの上記
    実ライトアドレスに書き込む書き込み回路とを有するこ
    とを特徴とする請求項3に記載の並列プロセッサ。
  5. 【請求項5】上記第2のオペレーティング・システム
    は、上記第2の仮想アドレス空間に割り当てられた上記
    第2のプロセスに応じた領域を予め上記第2のメモリに
    確保するよう制御することを特徴とする請求項4記載の
    並列プロセッサ。
JP05646991A 1991-03-20 1991-03-20 プロセッサ間通信方法およびそのための並列プロセッサ Expired - Fee Related JP3169624B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP05646991A JP3169624B2 (ja) 1991-03-20 1991-03-20 プロセッサ間通信方法およびそのための並列プロセッサ
US07/853,427 US5386566A (en) 1991-03-20 1992-03-18 Inter-processor communication method for transmitting data and processor dependent information predetermined for a receiving process of another processor
DE4208924A DE4208924B4 (de) 1991-03-20 1992-03-19 Verfahren zur Kommunikation zwischen Prozessoren und Parallelverarbeitungscomputer hierfür

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP05646991A JP3169624B2 (ja) 1991-03-20 1991-03-20 プロセッサ間通信方法およびそのための並列プロセッサ

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2001004398A Division JP2001236334A (ja) 2001-01-12 2001-01-12 プロセッサ間通信方法およびそのための並列プロセッサ

Publications (2)

Publication Number Publication Date
JPH04291660A JPH04291660A (ja) 1992-10-15
JP3169624B2 true JP3169624B2 (ja) 2001-05-28

Family

ID=13027966

Family Applications (1)

Application Number Title Priority Date Filing Date
JP05646991A Expired - Fee Related JP3169624B2 (ja) 1991-03-20 1991-03-20 プロセッサ間通信方法およびそのための並列プロセッサ

Country Status (1)

Country Link
JP (1) JP3169624B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3003418B2 (ja) * 1992-09-25 2000-01-31 株式会社日立製作所 プロセッサ間データ通信方法
JP2625385B2 (ja) * 1994-06-30 1997-07-02 日本電気株式会社 マルチプロセッサシステム
JP3042341B2 (ja) * 1994-11-30 2000-05-15 日本電気株式会社 クラスタ結合型マルチプロセッサシステムにおけるローカル入出力制御方法
US5978894A (en) * 1995-11-27 1999-11-02 Hitachi, Ltd. Method of interprocessor data transfer using a network, virtual addresses and paging, a buffer, flags, data transfer status information and user accessible storage areas in main memory
WO1998041927A1 (fr) * 1997-03-19 1998-09-24 Hitachi, Ltd. Calculateur parallele
JP3667585B2 (ja) 2000-02-23 2005-07-06 エヌイーシーコンピュータテクノ株式会社 分散メモリ型並列計算機及びそのデータ転送終了確認方法
JP5132339B2 (ja) * 2008-01-31 2013-01-30 キヤノン株式会社 情報処理装置及びその制御方法、及びコンピュータプログラム
JP6334100B2 (ja) * 2013-06-26 2018-05-30 Necプラットフォームズ株式会社 冗長情報処理システムおよび冗長情報処理システムのデータ同期方法

Also Published As

Publication number Publication date
JPH04291660A (ja) 1992-10-15

Similar Documents

Publication Publication Date Title
US5386566A (en) Inter-processor communication method for transmitting data and processor dependent information predetermined for a receiving process of another processor
KR100239028B1 (ko) 컴퓨터 시스템
JP2633488B2 (ja) 並列処理を実行する方法およびシステム
US5043873A (en) Method of parallel processing for avoiding competition control problems and data up dating problems common in shared memory systems
US20140223206A1 (en) System and method for power reduction by sequestering at least one device or partition in a platform from operating system access
US8738890B2 (en) Coupled symbiotic operating system
US7873879B2 (en) Mechanism to perform debugging of global shared memory (GSM) operations
JPH11126196A (ja) データ転送方法およびそれに適した計算機システム
US8239879B2 (en) Notification by task of completion of GSM operations at target node
JP2004252990A (ja) コンピュータ・プロセッサ及び処理装置
US8255913B2 (en) Notification to task of completion of GSM operations by initiator node
US6601183B1 (en) Diagnostic system and method for a highly scalable computing system
JP2539352B2 (ja) 階層型多重計算機システム
JP2004258840A (ja) 仮想化されたi/oデバイスをもつ計算機システム
US5896520A (en) Virtual computer system of multi-processor constitution
US5276884A (en) Controlling the initiation of logical systems in a data processing system with logical processor facility
US5615327A (en) Apparatus and method for controlling the initiating of a synchronization protocol for synchronizing a plurality of processors in a multi-processor system
JP3169624B2 (ja) プロセッサ間通信方法およびそのための並列プロセッサ
US5459872A (en) Software control of hardware interruptions
US8146094B2 (en) Guaranteeing delivery of multi-packet GSM messages
US5003468A (en) Guest machine execution control system for virutal machine system
JP3375649B2 (ja) 並列計算機
US7320044B1 (en) System, method, and computer program product for interrupt scheduling in processing communication
US5797039A (en) Method of efficiently sending packets onto a network by eliminating an interrupt
JP2001236334A (ja) プロセッサ間通信方法およびそのための並列プロセッサ

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20010206

LAPS Cancellation because of no payment of annual fees