JP3376956B2 - プロセッサ間通信装置 - Google Patents

プロセッサ間通信装置

Info

Publication number
JP3376956B2
JP3376956B2 JP13496099A JP13496099A JP3376956B2 JP 3376956 B2 JP3376956 B2 JP 3376956B2 JP 13496099 A JP13496099 A JP 13496099A JP 13496099 A JP13496099 A JP 13496099A JP 3376956 B2 JP3376956 B2 JP 3376956B2
Authority
JP
Japan
Prior art keywords
page
processor
communication
logical
fault
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
JP13496099A
Other languages
English (en)
Other versions
JP2000330960A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP13496099A priority Critical patent/JP3376956B2/ja
Priority to US09/568,593 priority patent/US6678722B1/en
Publication of JP2000330960A publication Critical patent/JP2000330960A/ja
Application granted granted Critical
Publication of JP3376956B2 publication Critical patent/JP3376956B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数のプロセッサ
がネットワークによって結合された並列コンピュータで
の、仮想記憶を実現するためのプロセッサ間通信装置に
関する。
【0002】
【従来の技術】複数のプロセッサが1つの問題を解く並
列処理において、プロセッサ間通信は必須である。ここ
で、プロセッサ間通信は複数のプロセッサ間でのデータ
のやりとりをいう。また、このプロセッサ間通信は、複
数のプロセッサで並列に処理することにより発生するも
のであって、並列処理のオーバヘッドの1つとなり、プ
ロセッサ間通信を高速に行なうことが、並列処理効果を
高めるためには必須となっている。
【0003】一方、並列計算機を複数のユーザで使うに
は、1人のユーザが処理に使用するプロセッサを決め
て、1つのプロセッサでは1人のユーザのジョブだけが
走るように、システムを空間的に分割するスペースシェ
アリングという手法が採られてきた。しかしながら、こ
の方法では、各ユーザが使用するプロセッサ数の合計
は、物理的なプロセッサ数を越えられないという制限が
ある。このような制限を克服して、複数のユーザが並列
計算機を使う方法の1つとして、時間的にプロセッサを
分割して使うタイムシェアリングの方法がある。タイム
シェアリングを行なうには、複数ユーザのジョブのメモ
リメージを外部の記憶媒体、例えばハードディスクに退
避する仮想記憶のサポートが必須となる。
【0004】また、科学技術計算では、プロセッサ性能
の向上により、それが扱うデータ規模はますます増大し
ていく。並列処理でのデータの分配は、まず、1つのプ
ロセッサにディスクやホストマシンからデータを転送
し、分割したデータをそれぞれのプロセッサに分配する
方法が採られることが多い。このような場合、分配後に
はデータは各プロセッサの主記憶に格納されるが、最初
に1つのプロセッサの主記憶にデータをロードする時点
で、データ量が主記憶容量を越えてしまうことがある。
このような問題に対応するためにも、外部の記憶媒体、
例えばハードディスクを使って実主記憶容量以上のデー
タを扱う仮想記憶のサポートが必須である。
【0005】
【発明が解決しようとする課題】しかし、仮想記憶を並
列計算機でサポートするには、次のような課題がある。
即ち、プロセッサ間通信が高速化したため、ページアウ
トしたページをディスクから主記憶にページインする時
間が相対的に非常に長くなったことである。そのため、
ページインのためにプロセッサ間通信を止めた時の、他
のプロセッサ間通信への影響の大きさが問題になってく
る。
【0006】図11は、従来の並列計算機システムのペ
ージインの説明図で、(A)は全ての領域がページイン
されている場合、(B)は通信バッファがページインさ
れている場合、(C)はプロセッサ間通信により送信デ
ータと受信領域がページインされている場合を示してい
る。従来は、図11(A)〜(C)の構成により、、ペ
ージインのためにプロセッサ間通信を止めた時の、他の
プロセッサ間通信への干渉を防止していた。
【0007】図11(A)に示す従来方法1は、仮想記
憶を使わないという解である。プロセッサ間通信の対象
になる主記憶領域は限定できないので、プログラムが使
用する全領域を実メモリに割り当てて、ページアウトし
ないことにするのである。この方法では、上に述べた並
列計算機での仮想記憶サポートの要求に答えられないと
いう課題がある。
【0008】図11(B)に示す従来方法2は、プロセ
ッサ間通信のための送信バッファ、受信バッファを設け
るものである。この方法では、送信バッファ、受信バッ
ファだけを常に実メモリに割り付けておき、プロセッサ
間通信するデータは必ず、この送信メモリバッファと受
信メモリバッファを介して転送される。そうすることに
より、プロセッサ間通信自体は、実メモリから実メモリ
への転送となり、プロセッサ間通信を止めることはな
い。しかしながら、プロセッサ間通信には、送信バッフ
ァへのデータのコピーと、受信バッファから宛先アドレ
スへのデータのコピーの2回のデータコピーが必要とな
り、プロセッサ間通信性能が著しく低下するという課題
がある。
【0009】また、図11(C)に示す従来方法3は、
通信時にそのプロセッサ間通信の送信データの領域と受
信領域を予め実メモリ上に割り付けてから、プロセッサ
間通信を行なうものである。この方法では、コピーする
ことなくデータが宛先アドレスに転送されるが、最初に
実メモリ上に割り当てられていることを確認するための
プロセッサ間のやりとりが必要となる。これにより、コ
ピーを行なわなくても、実質的なプロセッサ間通信の性
能が低下する。
【0010】以上を簡潔にまとめると、従来方法1では
仮想記憶自体をサポートできていない。従来方式2で
は、送信バッファへのデータのコピーと、受信バッファ
から宛先アドレスへのデータのコピーのオーバヘッドか
ら、通信性能が著しく低下する。従来方式3では、たと
え、プロセッサ間通信に関わるメモリ領域が実メモリ領
域に割り付けられていたとしても、必ず、プロセッサ間
通信の前に実メモリへの割り付けを確認するためのプロ
セッサ間通信が必要である。そこで、この確認のための
プロセッサ間通信により、プロセッサ間通信の性能が低
下する。即ち、従来の並列計算機システムで仮想記憶を
サポートした場合に、実メモリ上に割り当てられた領域
間のプロセッサ間通信の性能が低下してしまうという課
題があった。
【0011】本発明は上述する課題を解決するもので、
プロセッサ間通信に関わるメモリ領域が実メモリ領域に
割り付けられている場合でも、性能低下の原因になる作
業をせずに、プロセッサ間通信の性能を良好に保持する
プロセッサ間通信装置を提供することを目的とする。
【0012】
【課題を解決するための手段】上記課題を解決する本発
明の請求項1に記載のプロセッサ間通信装置は、図1に
示すように、CPU3、主記憶4、送信装置5、並びに
受信装置6を有するプロセッサ1が複数個、ネットワー
ク2によって結合された並列コンピュータに用いられ
る。プロセッサ間通信装置は、プロセッサ間通信で通信
されるデータの読み出しアドレスと書き込みアドレスが
論理アドレスで指定され、送信装置5と受信装置6内に
論理アドレスから物理アドレスに変換する手段TLB1
0、21を有している。
【0013】また、図1、図5に示すように、プロセッ
サ間通信装置は、タスクごとに割り当てられた通信ID
とプロセッサ間通信のパケットを送った送り元の論理プ
ロセッサ番号から決まる主記憶上の位置29に、該通信
IDを宛先とした該論理プロセッサ番号のプロセッサか
らのプロセッサ間通信によるデータ転送中に、ページフ
ォールトが発生したかを示すフラグ291と、該データ
転送中で直近にページフォールトした論理ページ番号2
92と、ページフォールトしたページを記憶するページ
リストの先頭アドレスを記憶する手段293と、ページ
フォールトしたページ数とを記憶する手段294を持つ
構成である。
【0014】好ましくは、本発明のプロセッサ間通信装
置では、受信装置内でのアドレス変換の結果、ページの
状態がページアウトの場合には、前記のページフォール
トに関するデータを通信IDと送り元論理プロセッサ番
号によって決まる主記憶上の位置に記憶し、アドレス変
換にかかる論理ページを主記憶上のフォールトページリ
スト33に加える構成とするとよい。さらに好ましく
は、図8のステップS110に示すように、アドレス変
換にかかる論理ページを予め用意しておいたダミーペー
ジを割り当てる構成とするとよい。
【0015】また、好ましくは、図4に示すように、T
LB10は、論理アドレス201を構成する論理ページ
202の情報として、論理ページの割り当てられた物理
ページ番号229と、ページの状態230として下記
(i)〜(iv)の状態を持つことを特徴とするもので
ある。 (i)物理ページが割り当てられていない無効の状態; (ii)現在主記憶になく外部記憶媒体に追い出されて
いるページアウトの状態; (iii)以前はページアウトの状態で現在ページイン
処理を行なっている際中であるページイン中の状態; (iv)該主記憶上に割り付けられているページインの
状態。
【0016】また、好ましくは、図4に示すように、受
信装置でのアドレス変換時に、タスクごとに割り当てら
れた通信IDと、パケットの送り元の論理プロセッサ番
号から決定される主記憶上の場所に記憶されている論理
ページ番号と、変換しようとしている論理ページ番号と
を比較する手段222、223を持つ構成としている。
【0017】また、図8に示すように、受信装置内での
アドレス変換の結果、ページの状態230がページイン
中の場合には、比較器22を用いて論理ページの比較を
行なう。そして、論理ページ番号が同じ場合には何もせ
ず、論理ページ番号が異なった場合にだけ、その論理ペ
ージ番号をフォールトページリスト33に加え、直近に
ページフォールトした論理ページ番号292として記憶
し、ページフォールトしたページ数294を1増やす、
ことを行なう構成とするとよい。
【0018】さらに、好ましくは、図3に示すように、
宛先の通信IDと送り元の論理プロセッサ番号から決ま
る主記憶上の位置のデータと、パケットに付加されたデ
ータとを交換し、交換した結果を送り元のプロセッサの
決められた主記憶上の位置に書き込むチェックパケット
133を持つ。
【0019】そして、プロセッサ間通信でデータを送っ
た直後に、チェックパケット133を用いて、事前に送
ったプロセッサ間通信の受信側でのページフォールトが
あったかどうかを知る構成とするとよい。
【0020】また、本発明のプロセッサ間通信装置で
は、第2の実施の形態で示すように、作成されるページ
フォールトしたページのリストを、リモートリードによ
って、送り元のプロセッサが読み出して、そこにある論
理ページ番号のデータだけを再送し、再度前記パケット
でページフォールトの有無を確認し、ページフォールト
が起こらなくなるまで、再送をつづける構成としてい
る。
【0021】
【発明の実施の形態】以下、図面を用いて本発明の実施
の形態を説明する。 図1は、本発明の一実施の形態を
説明する構成ブロック図である。図において、並列コン
ピュータは、複数のプロセッサ1がネットワーク2に接
続されて構成されている。プロセッサ1は、CPU3と
主記憶4と送信装置5と受信装置6から構成される。送
信装置5内は、ヘッダ読み出し回路7、ヘッダレジスタ
8、パケット生成回路9、TLB10、割り込み発生回
路11、並びにFIFOメモリ12から構成されてい
る。
【0022】ヘッダ読み出し回路7は、CPU3からの
送信要求によって、主記憶4上に設けられたパーセルヘ
ッダキュー13からヘッダ14を読み出し、ヘッダの内
容を検査し、エラーがなければ、ヘッダレジスタ8に格
納する。ヘッダレジスタ8は、複数のヘッダ14を格納
できる。
【0023】パケット生成回路9は、ヘッダレジスタ8
内の複数のヘッダ14のうち次にパケットを送信できる
ものを選び、そのヘッダに書かれたソースアドレスをT
LB10を使って論理アドレスから物理アドレスに変換
する。そして、ヘッダレジスタ8内のヘッダ14を使っ
て、ネットワーク2に送り出すパケットのヘッダを作成
し、TLB10により変換された物理ソースアドレスか
らのデータの読み出しを主記憶4に依頼し、読み出した
送信データ15をパケットとしてネットワーク2に送り
出す。
【0024】TLB10は、ヘッダレジスタ8内の通信
IDとソースアドレスから、論理アドレスを物理アドレ
スに変換する。TLB10内にはアドレス変換に必要な
情報がキャッシュされているが、必要に応じて、主記憶
4上のページテーブル16にアクセスしたり、OSにペ
ージの割り当てを要求するための割り込みをおこしたり
して、アドレス変換に必要な情報を得る。
【0025】FIFOメモリ12は、ネットワーク2と
パケット生成回路9間に設けられたもので、データ幅の
変換やエラー検出符号などの作成を行なう。割り込み発
生回路11は、ヘッダ読み出し回路7でのヘッダの検査
の結果、エラーとなった場合や、TLB10における論
理アドレスから物理アドレスへの変換の際に、OSに対
して処理を依頼しなければならない時に、CPU3に対
して割り込みを発生させる。
【0026】受信装置6内は、FIFOメモリ17、通
信IDレジスタ18、送り元論理プロセッサ番号レジス
タ19、書き込みアドレスレジスタ20、TLB21、
比較器22、データ書き込み回路23、データ交換回路
24、ヘッダ書き込み回路25、並びに割り込み発生回
路26から構成される。
【0027】FIFOメモリ17は、ネットワークから
送られてきたパケットを一次的に格納する。通信IDレ
ジスタ18は、パケットヘッダに含まれる通信IDを格
納する。送り元論理プロセッサ番号レジスタ19は、パ
ケットヘッダに含まれる、そのパケットを送信したプロ
セッサの論理プロセッサ番号を格納する。書き込みアド
レスレジスタ20は、パケットヘッダに含まれている、
パケットのデータの書き込みアドレス(デスティネーシ
ョンアドレス)を格納する。
【0028】TLB21は、通信IDレジスタ18内の
通信IDと、書き込みアドレスレジスタ20内のデステ
ィネーションアドレスから、論理アドレスを物理アドレ
スに変換して、データ書き込み回路23に物理書き込み
アドレスを渡す。TLB21内にはアドレス変換に必要
な情報がキャッシュされているが、必要に応じて、主記
憶4上のページテーブル16にアクセスしたり、OSに
ページの割り当てを要求するための割り込みをおこした
りして、アドレス変換に必要な情報を得る。
【0029】データ書き込み回路23は、パケットで送
られてきた受信データ27を、主記憶4上の、TLB2
1から出力された書き込みアドレスに、書き込む。デー
タ交換回路24は、主記憶4上に設けられたチェックバ
ッファ28のエントリ29(以下、チェックバッファエ
ントリ29という)の値と、パケットで送られてきたデ
ータを交換し、チェックバッファエントリ29の値をヘ
ッダ書き込み回路25に出力する。
【0030】ヘッダ書き込み回路25は、送られてきた
パケットに含まれる情報と、データ交換回路24からの
データとから、受信したパケットの返事のパーセルヘッ
ダを作成し、主記憶4上の返事専用のパーセルヘッダキ
ュー34にヘッダを書き込み、送信装置5内のヘッダ読
み出し回路7に送信要求を出す。
【0031】比較器22は、書き込みアドレスレジスタ
20に格納された書き込みアドレスの一部と、主記憶4
上のチェックバッファエントリ29の一部を比較し、比
較結果をデータ書き込み回路23に出力し、必要に応じ
て割り込み発生回路26を使って割り込みを発生させ
る。
【0032】割り込み発生回路26は、比較器22での
比較結果で割り込みが必要な場合や、TLB21におけ
る論理アドレスから物理アドレスへの変換の際に、OS
に対して処理を依頼しなければならない時に、CPU3
に対して割り込みを発生させる。
【0033】チェックバッファポインタテーブル31は
主記憶4に設けられたもので、各通信IDのチェックバ
ッファ28へのポインタ30を格納している。受信装置
6は、通信IDレジスタ18内の通信IDと、主記憶上
のチェックバッファポインタテーブル31を使って、そ
の通信IDに対応するチェックバッファ28をアクセス
する。
【0034】宛先変換テーブル32は、主記憶4に設け
られたもので、送信装置5内のヘッダ読み出し回路7
が、宛先論理プロセッサ番号を、宛先物理プロセッサ番
号と通信IDに変換するのに用いられる。フォールトペ
ージリスト33は、主記憶4に設けられたもので、ペー
ジフォールトしたページの論理ページ番号を格納する。
【0035】次に、この並列コンピュータで通信時に使
われる、パーセルとパケットについて説明する。パーセ
ルは通信の単位であって、そのヘッダ14がパーセルヘ
ッダキュー13に書かれる。ヘッダレジスタ8には、ヘ
ッダ読み出し回路7が、主記憶4上の宛先変換テーブル
32を使って、このパーセルヘッダの宛先を論理プロセ
ッサ番号から、物理プロセッサ番号と通信IDに、変換
したものが書き込まれる。パケットはネットワーク内を
流れる通信の単位であり、ネットワーク2を構成するス
イッチ内のFIFOメモリの容量等により、その大きさ
が限定される。1つのパーセルで送られるデータはパケ
ット生成回路9により、複数のパケットに分割され送ら
れる。
【0036】図2は、この並列コンピュータで通信され
るリモートDMAパーセルの構成図で、(A)はパーセ
ルヘッダキュー13内での形式、(B)はヘッダレジス
タ8内での形式、(C)はリモートDMAパケットの形
式を示している。
【0037】まず、リモートDMAパーセルは、送信デ
ータの読み出しアドレス105からデータ長104分の
データを、宛先論理プロセッサ番号103で示された宛
先のプロセッサ1の主記憶4の書き込みアドレス106
へ書き込む機能を持つ。リモートDMAのパーセルヘッ
ダ101の先頭にはコード欄102が設けられている。
コード欄102に書き込まれた「000」は、このパー
セルヘッダがリモートDMAのヘッダであることを示し
ている。
【0038】ヘッダ読み出し回路7により、主記憶4上
のパーセルヘッダキュー13から読み出されたリモート
DMAのパーセルヘッダ101は宛先変換テーブル32
を使って、宛先論理プロセッサ番号103が、宛先物理
プロセッサ番号と通信ID110に変換されて、ヘッダ
レジスタ8に書き込まれる。
【0039】パケット生成回路9は、ヘッダレジスタ8
内のリモートDMAのパーセルヘッダ108と、そのタ
スクが持っている情報121を使って、リモートDMA
のパケット114を生成する。リモートDMAのパケッ
ト114は、リモートDMAを示す「000」が書き込
まれたコード欄115と、宛先の物理プロセッサ番号と
通信ID116と、パケット長117、送り元の論理プ
ロセッサ番号118、書き込みアドレス119、送信デ
ータ120から構成される。
【0040】パケット生成回路9は、ヘッダレジスタ8
内の残りデータ長111と、送信データの読み出しアド
レス112と書き込みアドレス113からパケット長1
17を決定し、リモートDMAのパケット114を生成
する。ヘッダレジスタ8内のリモートDMAのパーセル
ヘッダの残りデータ長111と、読み出しアドレス11
2、書き込みアドレス113は、1つのパケットを送信
するごとに更新され、パケット生成回路9は、残りデー
タ長111がゼロになるまで、パケットを送る。
【0041】パケット生成回路9は、1つのパケットの
送信や受信の途中にページフォールト等が起こらないよ
うに、読み出しアドレス112と書き込みアドレス11
3のページ境界をまたぐパケットは生成しない。即ち、
パケット生成回路9は、読み出しアドレス112のペー
ジ境界と書き込みアドレス113のページ境界では、必
ず、パケットが切られるように、パケット長117を決
定する。
【0042】次にチェックパケットのパーセルについて
説明する。図3は、この並列コンピュータで通信される
チェックパケットのパーセルとチェックパケットの返事
のパーセルの構成図で、(A)はパーセルヘッダキュー
13内での形式、(B)はヘッダレジスタ8内での形
式、(C)はチェックパケットの形式、(D)はパーセ
ルヘッダキュー13内での形式、(E)はヘッダレジス
タ8内での形式、(F)はチェックパケットの返事のパ
ケットの形式を示している。チェックパケットのパーセ
ルは、特別なアドレスにある値と交換するデータ126
を交換し、値をチェックパケットの返事のパケット15
2として返送し、指定された返事の書き込みアドレス1
25に書き込む機能を持つ。
【0043】パーセルヘッダキュー内のチェックパケッ
トのパーセルヘッダ122には、チェックパケットのパ
ーセルであることを示す「100」が書き込まれたコー
ド欄123、宛先の論理プロセッサ番号124、チェッ
クパケットの返事を書き込む書き込みアドレス125、
交換するデータ126から構成される。チェックパケッ
トのパーセルヘッダ122もヘッダレジスタ8に書き込
まれる前に、宛先変換テーブル32を使って、宛先論理
プロセッサ番号124が宛先の物理プロセッサ番号と通
信ID130に変換される。
【0044】パケット生成回路9は、ヘッダレジスタ内
のチェックパケットのパーセルヘッダ128と、そのタ
スクの情報141から、次のようなものから構成される
チェックパケット133を作成する。コード欄134に
書き込まれた「100」は、パケットの種類がチェック
パケットであることを示す。送り元の論理プロセッサ番
号137と送り元の物理プロセッサ番号と通信ID13
8は、そのタスクが持っている情報141である。返事
の書き込みアドレス139と交換するデータ140は、
チェックパケットのパーセルヘッダ128のものをその
まま使う。チェックパケットのパーセルヘッダ128は
必ず1つのチェックパケット133として送信される。
【0045】最後にチェックパケットの返事のパーセル
ヘッダ142について、図3を参照して説明する。この
パーセルヘッダは受信装置6のデータ交換回路24で交
換されたチェックバッファエントリ29と、チェックパ
ケット133内にある情報とから作成され、ヘッダ書き
込み回路25によって主記憶4上の返事専用のパーセル
ヘッダキュー34に書き込まれる。
【0046】チェックパケットの返事のパーセルヘッダ
142には、チェックパケットの返事を示す「101」
が書き込まれたコード欄143と、チェックパケット1
33の送り元の物理プロセッサ番号と通信ID138を
そのまま使った宛先の物理プロセッサ番号と通信ID1
44、チェックパケット133の返事の書き込みアドレ
ス139をそのまま使った返事の書き込みアドレス14
5と、交換したチェックバッファエントリ146から構
成される。
【0047】ヘッダ読み出し回路7は、返事専用のパー
セルヘッダキューから、チェックパケットの返事のパー
セルヘッダ142を読み出すと、チェックパケットの返
事を示す「101」が書き込まれたコード欄143を確
認する。他のリモートDMAのパーセルヘッダ101や
チェックパケットのパーセルヘッダ122の場合とは異
なり、ヘッダ読み出し回路7は、宛先プロセッサ番号を
変換しないで、パーセルヘッダキュー内のチェックパケ
ットの返事のパーセルヘッダ142に書かれた宛先の物
理プロセッサ番号と通信ID144をそのままヘッダレ
ジスタ8に書き込む。これは、チェックパケットの返事
のパーセルヘッダ142が、送信装置5のパケット生成
回路9によって作られた送り元の物理プロセッサ番号と
通信ID138をもとに、受信装置6のヘッダ書き込み
回路25によって、作られたものであり、ユーザタスク
がアクセスできない特別なパーセルヘッダキュー34に
書かれたものであるため、そのまま使っても安全である
からである。
【0048】パケット生成回路9は、チェックパケット
の返事のパーセルヘッダ147からチェックパケットの
返事のパケット152を作成し、ネットワークに送り出
す。チェックパケットの返事のパーセル147も、必ず
1つのチェックパケットの返事のパケット141とな
る。
【0049】次にTLB10、21で行なわれるアドレ
ス変換について図4を使って説明する。図4はTLB1
0の詳細を説明する構成ブロック図である。なお、TL
B21もTLB10と同様の構成となっている。図4に
おいて、論理アドレス201は、論理ページ番号202
とオフセット203によって構成されている。TLB1
0では、通信ID204と論理ページ番号202から、
物理ページ番号229とページの状態230を引く。こ
の実施例では、TLB10には4個のエントリがあり、
与えられた通信ID204と論理ページ番号202と、
4個のエントリ内の通信ID206〜209と論理ペー
ジ番号210〜213とが比較器222、223によっ
て比較され、両方が同じものの物理ページ番号214〜
217とページの状態218〜221が選択回路224
からの信号により、MUX225、226によって、選
ばれ、そのエントリの物理ページ番号229とページの
状態230が出力される。
【0050】もし、4個のエントリ内に、通信IDと論
理ページ番号の組が与えられた通信ID204と論理ペ
ージ番号202に等しいものがなければ、TLB10は
主記憶4上のページテーブル16をアクセスして、該当
するページ情報をTLB10内の4個のエントリのうち
の1個に読み出す。もし、ページテーブル16にもその
ページ情報がなければ、TLB10はOSに割り込みを
あげて新しいページ情報を設定してもらう。
【0051】主記憶4上のページテーブル16の構成は
いろいろなものが考えられる。最も簡単なものは、通信
ID204と論理ページ番号202を組み合わせたもの
をオフセットとする構成である。主記憶4の使用効率等
を考えると、論理アドレス201を論理ページ番号20
2とオフセット203だけではなく、セグメントと論理
ページ番号とオフセットと解釈し、セグメントごとにペ
ージテーブル16を用意する構成としてもよい。
【0052】ただし、ページの状態230として、次の
ような状態を定義する必要がある。ページの状態230
は2bitで表されており、次のようなものがある。
【0053】“00”:そのページが無効であることを
示す。新規にアクセスされたページの場合もあるので、
割り込みを発生させて、OSに物理ページの割り付けを
依頼する。
【0054】“01”:そのページが主記憶4になくデ
ィスクにページアウトされている状態であることを示
す。この場合も割り込みを発生させて、OSに対し処理
を依頼する。
【0055】“10”:そのページが主記憶4になくデ
ィスクにページアウトされているが、ページイン中であ
ることを示す。この場合は、割り込みを発生させない。
【0056】“11”:そのページが主記憶4上にペー
ジインされていることを示す。
【0057】次にチェックバッファエントリ29につい
て説明する。図5に示すように、チェックバッファエン
トリ29には、ページフォールトが起こったかどうかを
示すページフォールトフラグ291、直近にページフォ
ールトした論理ページ番号292、ページフォールトし
たページ数294、フォールトページリスト33の先頭
アドレス293が格納されている。ページフォールトフ
ラグ291は、“0”の時にページフォールトが起こっ
ていないことを、“1”の時に、ページフォールトがす
でに起こったことを示す。
【0058】次にフォールトページリスト33について
説明する。フォールトページリスト33は、1つのチェ
ックバッファエントリ29に対して1つ設けられてお
り、その先頭アドレス293はチェックバッファエント
リ29に書かれている。フォールトページリスト33に
は、ページフォールトした論理ページ番号331が書き
込まれている。フォールトページリスト33の大きさ
は、チェックバッファエントリ29内のページフォール
トしたページ数294となる。1つのパーセルヘッダで
送信できるデータの大きさは限られているので、フォー
ルトページリスト33の大きさの上限は、「1パーセル
で転送できるデータ」÷「1ページの大きさ」となる。
【0059】次に本発明でのプロセッサ間通信の方法に
関して説明する。まず、前述したように、パーセルが通
信の単位である。1つのリモートDMAパーセルでは限
られた大きさの連続したアドレスのデータが通信でき
る。本実施例では、1つのリモートDMAパーセルで送
れるデータの大きさは512kバイトとする。また、1
ページの大きさは4kバイトとする。従って、フォール
トページリスト33の大きさは最大で128ページ分と
なる。このくらいの大きさなら、フォールトページリス
ト33の領域を仮想記憶のページアウトの対象から外
し、必ずページインの状態に固定することも可能であ
る。
【0060】本発明では、1つのリモートDMAパーセ
ルを送るごとに、その直後にチェックパケットのパーセ
ルを送る。
【0061】図6に、通信ライブラリの処理を示す。ま
ず、通信ライブラリは、送信するデータを1パーセルで
送れる大きさにN分割する(ステップS201)。次
に、Nが“0”かどうか調べ(ステップS202)、
“0”でないなら、1個のリモートDMAパーセルを送
る(ステップS203)。その直後に1個のチェックパ
ケットのパーセルを送る(ステップS204)。チェッ
クパケットで送る交換するデータは、ページフォールト
フラグ291が“0”のチェックバッファエントリ29
の初期値となる。
【0062】そして、そのチェックパケットの返事を待
つ(ステップS205)。チェックパケットの返事は、
直前に送ったリモートDMAパーセルのデータ受信時に
ページフォールトが起こったかどうかを示すチェックバ
ッファエントリ29である。そのチェックバッファエン
トリ29のページフォールトフラグ291を調べる(ス
テップS206)。そして、もし、ページフォールトが
起こっていれば、その処理を行なって、このリモートD
MAパーセルの送信を完了する(ステップS207)。
【0063】ページフォールトに対する処理は、要する
に、このリモートDMAパーセルで送ったデータが正確
に受信されるように処理するもので、詳細は後で説明す
る。一方、もし、ページフォールトが起こっていなけれ
ば、何もしない。そして、Nを1減らし(ステップS2
08)、Nがゼロになるまで、繰り返す。
【0064】次に、図1、図2、及び図7を使って送信
時のページフォールトに対する処理について説明する。
送信装置5内のパケット生成回路9は、ヘッダレジスタ
8内のパーセルヘッダを1つ選び(ステップS00
1)、そのパケットを生成する。そのパーセルヘッダが
リモートDMAのパーセルヘッダである場合(ステップ
S002)には、パケット生成回路9は、その送信デー
タ読み出しアドレスをTLB10を使って物理アドレス
に変換する(ステップS003)。そしてページの状態
230を調べる(ステップS004)。
【0065】ページの状態230が無効“00”なら、
TLB10は割り込みを発生させて(ステップS00
5)、OSに新しいページを割り当ててもらう(ステッ
プS006)。通常は転送するデータは事前にCPUが
作成しているので、読み出しアドレスのページの状態2
30が“00”であることはほとんどない。そして、O
Sはページの状態230を“11”にして(ステップS
007)、TLB10を割り込み状態から復帰する(ス
テップS008)。TLB10は、また、ページの状態
230を調べる(ステップS004)。
【0066】ページの状態230がページアウト“0
1”なら、TLB10は割り込みを発生させて(ステッ
プS009)、OSにページインの操作を開始してもら
う(ステップS010)。さらにOSは、ページの状態
230を“10”に書き変えページイン中の状態にする
(ステップS011)。そして、OSはTLB10を割
り込み状態から復帰させる(ステップS012)。TL
B10は、また、ページの状態230を調べる(ステッ
プS004)。
【0067】ページの状態230がページイン中“1
0”なら、TLB10は割り込みを発生させず、ページ
の状態230をパケット生成回路9に伝える。パケット
生成回路9は、そのパケットのデータがページイン中で
あるので、そのパーセルヘッダのパケットの送信を中止
し(ステップS013)、他のパーセルヘッダの送信を
試みるため、パーセルヘッダを選ぶ(ステップS00
1)。
【0068】ページの状態230がページイン“11”
なら、TLB10は割り込みを発生させず、ページの状
態230をパケット生成回路9に伝える。パケット生成
回路9は、主記憶4の送信データ15をアクセスし、こ
のパケットを送信する(ステップS014)。そして、
パケット長をもとに、ヘッダレジスタ内の残りデータ
長、読み出しアドレス、書き込みアドレスを更新する
(ステップS015)。そして、送ったパケットが最後
かどうか、つまり、残りデータ長がゼロかどうかを調べ
る(ステップS016)。
【0069】もし、最後のパケットでなければ、次のパ
ケットを送るためパーセルヘッダの選択を行なう(ステ
ップS001)。もし、最後のパケットの場合には、ヘ
ッダレジスタ8からこのパーセルヘッダを消して、ヘッ
ダレジスタ8を解放する(ステップS017)。そし
て、次に送るパーセルヘッダを選択する(ステップS0
01)。
【0070】パケット生成回路9が選んだパーセルヘッ
ダが、リモートDMAのパーセルではなかった場合、つ
まり、チェックパケットのパーセルヘッダか、チェック
パケットの返事のパーセルヘッダの場合には、TLB1
0を使ってアドレスの変換をする必要はなく、そのまま
パケットを送信する。これらのパーセルは1個のパケッ
トにしかならないので、パーセルヘッダをヘッダレジス
タ8から消し、ヘッダレジスタを解放する(ステップS
017)。そして、次のパーセルヘッダを選択する(ス
テップS001)。
【0071】次に、図1、図5、及び図8を使って、受
信側でのページフォールトに対する処理について説明す
る。受信装置6は、リモートDMAのパケットが到着す
ると、パケットヘッダの情報を、通信IDレジスタ1
8、送り元プロセッサ番号レジスタ19、書き込みアド
レスレジスタ20に格納する(ステップS101)。そ
して、通信IDレジスタ18内の通信IDと、書き込み
アドレスレジスタ20内の書き込みアドレスから、TL
B21を使って、論理アドレスを物理アドレスに変換す
る(ステップS102)。
【0072】TLB21は、入力された通信IDと論理
ページ番号から、そのページの物理ページ番号とページ
の状態230を引く。そして、そのページの状態230
を調べる(ステップS103)。
【0073】ページの状態230が無効“00”なら、
TLB21は割り込みを発生させて、OSに新しいペー
ジの割り当てを行なってもらう(ステップS104)。
OSは、主記憶上にある新しいページをその論理ページ
に割り当てて物理ページ番号を設定し(ステップS10
5)、ページの状態230を“11”にし(ステップS
106)、割り込み処理から抜ける(ステップS10
7)。TLB21は、新たに設定されたページ情報を調
べる(ステップS103)。
【0074】ページの状態230がページアウト“0
1”なら、TLB21は割り込みを発生させて、OSに
以下のような処理を依頼する(ステップS108)。ま
ず、OSはそのページのページインの処理を開始する
(ステップS109)。そして、OSは受信データを書
き捨てるために予め用意していたダミーページをその物
理ページ番号に設定し(ステップS110)、ページの
状態230をページイン中“10”にする(ステップS
111)。
【0075】次にOSは、このパケットの通信IDと送
り元の論理プロセッサ番号から、該当するチェックバッ
ファエントリ29をアクセスし、ページフォールトフラ
グ291を調べる(ステップS120)。もし、以前に
ページフォールトが起こっていない場合には、ページフ
ォールトフラグ291を“1”にして、フォールトペー
ジリスト33の先頭アドレスをチェックバッファエント
リ29に設定する(ステップS121)。
【0076】そして、チェックバッファエントリ29に
この論理ページ番号を、直近にページフォールトした論
理ページ番号292として書き込み(ステップS12
2)、チェックバッファエントリ29のページフォール
トしたページ数を1増やし(ステップS123)、フォ
ールトページリスト33にこの論理ページ番号を加える
(ステップS124)。そして、割り込み処理から復帰
する(ステップS125)。TLB21は、新たに設定
されたページ情報を調べる(ステップS103)。
【0077】ページの状態230がページイン中“1
0”なら、TLB21は割り込みを発生させず、ページ
の状態230を受信装置6に伝える。受信装置6は、そ
のパケットの通信IDからチェックバッファポインタテ
ーブル31をアクセスし、その通信IDのチェックバッ
ファの先頭アドレス30を取り出し、送り元論理プロセ
ッサ番号レジスタ19内のそのパケットの送り元の論理
プロセッサ番号をオフセットとして、チェックバッファ
エントリ29をアクセスする。そして、比較器22を使
って、そこに書かれた論理ページ番号と、このページの
論理ページ番号とを、比較する(ステップS113)。
【0078】比較の結果、2つのページ番号が同じなら
ば、データ書き込み回路23は、その物理アドレスに受
信データを書き込む。この物理アドレスはダミーのペー
ジであり、送られてきたデータは捨てられることになる
(ステップS117)。比較の結果、2つのページ番号
が異なれば、比較器22は割り込みを発生させて(ステ
ップS115)、OSに次のことを依頼する。
【0079】OSは、このパケットの通信IDと送り元
の論理プロセッサ番号から、該当するチェックバッファ
エントリ29をアクセスし、ページフォールトフラグ2
91を調べる(ステップS120)。もし、以前にペー
ジフォールトが起こっていない場合には、ページフォー
ルトフラグ291を“1”にして、フォールトページリ
スト33の先頭アドレスをチェックバッファエントリ2
9に設定する(ステップS121)。
【0080】そして、チェックバッファエントリ29に
この論理ページ番号を、直近にページフォールトした論
理ページ番号292として書き込み(ステップS12
2)、チェックバッファエントリ29のページフォール
トしたページ数を1増やし(ステップS123)、フォ
ールトページリスト33にこの論理ページ番号を加える
(ステップS124)。そして、割り込み処理から復帰
する(ステップS125)。そして、データ書き込み回
路23は、その物理アドレスに受信データを書き込む。
この物理アドレスはダミーのページであり、送られてき
たデータは捨てられることになる(ステップS11
7)。
【0081】ページの状態230がページイン“11”
なら、TLB21は割り込みを発生させず、ページ情報
をデータ書き込み回路23に伝える。データ書き込み回
路23は、主記憶にアクセスして、送られてきたデータ
を書き込む(ステップS118)。このパケットは正常
に受信されたことになる。
【0082】最後に、受信時にページフォールトが起こ
った場合の送信側での通信ライブラリの処理について説
明する。チェックパケットのパーセルを送って、その返
事を調べた時、ページフォールトフラグ291が“1”
であった場合には、ページフォールトが起こったという
ことである。通信ライブラリは、割り込みをおこして、
OSに対し、ページフォールトしたページへのデータの
転送を依頼し、スリープする。
【0083】OSは、受信側のOSと通信を行ない、チ
ェックバッファエントリ29に書かれたページフォール
トしたページ数と、フォールトページリスト33の先頭
アドレスを使って、ダミーページに書き込まれて捨てら
れたデータを再送する。そして、リモートDMAのパー
セルで送ろうとしたデータが全部受信された時点で、ス
リープしていた通信ライブラリをおこす。
【0084】第2の実施の形態では、新たにリモートリ
ードパーセルを導入する。図9は、リモートリードパー
セルとチェックパケットの返事のパーセルの構成図で、
(A)はパーセルヘッダキュー13内での形式、(B)
はヘッダレジスタ8内での形式、(C)はリモートリー
ドパケットの形式、(D)はパーセルヘッダキュー13
内での形式、(E)はヘッダレジスタ8内での形式、
(F)はリモートリードの返事のパケットの形式を示し
ている。
【0085】リモートリードパーセルは、図9に示すよ
うに、宛先論理プロセッサ番号403で指定されたプロ
セッサの読み出しアドレス405から、データ長404
分のデータを読み出し、リモートリードパーセルを送っ
たプロセッサの主記憶4の書き込みアドレス406に書
き込む機能を持つ。コード欄402に書き込まれた「1
10」は、これがリモートリードのパーセルヘッダ40
1であることを示す。リモートリードのパーセルヘッダ
401もヘッダレジスタ8に書き込まれる前に、宛先変
換テーブル32を使って、宛先論理プロセッサ番号40
3が宛先の物理プロセッサ番号と通信ID410に変換
される。
【0086】パケット生成回路9は、ヘッダレジスタ内
のリモートリードのパーセルヘッダ408と、そのタス
クの情報422から、次のようなものから構成されるリ
モートリードパケット414を作成する。「110」が
書き込まれたコード欄415は、それがリモートリード
のパケットであることを示す。送り元の物理プロセッサ
番号と通信ID418は、そのタスクが持っている情報
141である。データ長419と読み出しアドレス42
0、書き込みアドレス421は、リモートリードのパー
セルヘッダ408のものをそのまま使う。リモートリー
ドのパーセルヘッダ408は必ず1つのリモートリード
のパケット414として送信される。
【0087】次に、リモートリードの返事のパーセルヘ
ッダ423について説明する。このパーセルヘッダは受
信装置6のヘッダ書き込み回路25によって、リモート
リードパケット414内にある情報から作成され、主記
憶4上の返事専用のパーセルヘッダキュー34に書き込
まれる。
【0088】リモートリードの返事のパーセルヘッダ4
23には、リモートリードの返事を示す「111」が書
き込まれたコード欄424と、リモートリードパケット
414の送り元の物理プロセッサ番号と通信ID418
をそのまま使った宛先の物理プロセッサ番号と通信ID
425、データ長426、読み出しアドレス427、書
き込みアドレス428から構成される。
【0089】ヘッダ読み出し回路7は、返事専用のパー
セルヘッダキュー34から、リモートリードの返事のパ
ーセルヘッダ423を読み出すと、リモートリードの返
事を示す「111」が書き込まれたコード欄424を確
認し、チェックパケットの返事のパーセルヘッダの場合
と同じように、宛先プロセッサ番号を変換しないで、パ
ーセルヘッダキュー内のリモートリードの返事のパーセ
ルヘッダ423に書かれた宛先の物理プロセッサ番号と
通信ID425をそのままヘッダレジスタ8に書き込
む。
【0090】これは、リモートリードの返事のパーセル
ヘッダ142が、送信装置のパケット生成回路9によっ
て作られた送り元の物理プロセッサ番号と通信ID41
8をもとに、受信装置6のヘッダ書き込み回路25によ
って、作られたものであり、ユーザタスクがアクセスで
きない特別なパーセルヘッダキュー34に書かれたもの
であるため、そのまま使っても安全であるからである。
【0091】パケット生成回路9は、リモートDMAの
パーセルを処理するのと同じように、残りデータ長43
2と、読み出しアドレス433、書き込みアドレス43
4から、パケット長438を決定し、リモートリードの
返事のパケット435を送り出す。リモートリードの返
事のパケットは、複数送られることがある。
【0092】リモートリードの返事のパーセルはリモー
トDMAのパーセルと同じように、送信装置5で処理さ
れる。つまり、送信アドレスをTLB10で論理アドレ
スから物理アドレスに変換しないといけないので、送信
データがページアウトしている可能性もある。リモート
リードの返事のパーセルは、図7でのリモートDMAの
パーセルの送信処理と同じく処理される。従って、リモ
ートリードの返事のパーセルを送る時の送信側のページ
フォールトの問題は適切に処理される。
【0093】第2の実施の形態では、このリモートリー
ドパーセルを使って、フォールトページリスト33を送
信側通信ライブラリが読み、該当するページの部分を再
送するものである。
【0094】図10は通信ライブラリの処理を説明する
図で、ここでは適宜図5も参照して説明する。通信ライ
ブラリは、1個のリモートDMAのパーセルを送った
(ステップS301)後に、チェックパケットを送る
(ステップS302)。そして、そのチェックパケット
の返事を受信(ステップS303)し、チェックバッフ
ァエントリ29のページフォールトフラグ291を調べ
る(ステップS304)。もし、ページフォールトが起
こっていなければ、次のパーセルの送信を行なう。
【0095】もし、ページフォールトが発生していた
ら、送られてきたチェックバッファエントリ29内にあ
る、フォールトページリスト33の先頭アドレスから、
ページフォールトしたページ分のデータをリモートリー
ドパーセルによって読み出す(ステップS305)。そ
して、フォールトページリスト33に書かれた論理ペー
ジに送ったデータを再送する(ステップS306)。
【0096】この時、ページフォールトしたページは連
続していないかもしれないが、フォールトページリスト
33に書かれている順番、つまり、論理ページ番号が大
きくなる順番に、そのデータを複数のパーセルで送る。
そして、最後に、また、チェックパケットを送信してペ
ージフォールトの有無を確認する(ステップS30
2)。
【0097】通信ライブラリは、ページフォールトした
ページがすでにページインされていることを期待して再
送するが、まだ、ページインされていないかもしれな
い。もし、ページインされていないページがあれば、ま
た、受信側でダミーページに書き捨てられることにな
る。通信ライブラリは、ページフォールトしたページ分
だけのデータを再送し、ページフォールトしたページは
いつかはページインされるので、いつかは、再送でのペ
ージフォールトが発生しなくなる。
【0098】第2の実施の形態によると、OSを介さず
に、ユーザタスクが再送をする構成としているので、O
Sの負担を軽減できるという効果がある。また、フォー
ルトページリスト33に関しては、前述したように、あ
まり大きなリストにはならないので、事前にページイン
状態に固定した領域を使うことで、フォールトページリ
スト33そのもののページフォールトを避けることがで
きる。
【0099】さらに、たとえフォールトページリスト3
3がページアウトされていても、リモートリードの返事
のパーセルは、図7で示したリモートDMAのパーセル
と同じく処理されるので、送信データに関するページフ
ォールトは適切に処理される。一方、リモートリードの
返事のパケットの受信時のページフォールトであるが、
フォールトページリスト33の大きさは、たかだか1ペ
ージ分であることと、リモートリードしている側が受信
側なので、受信するページをCPUがアクセスすること
で、事前にページインできることから、ページフォール
トは回避できると考えられる。
【0100】
【発明の効果】以上説明したように、請求項1に記載の
プロセッサ間通信装置によれば、プロセッサ間通信に使
われる領域の大きさを意識しないでプログラミングでき
ることである。なぜなら、チェックバッファエントリと
フォールトページリストは主記憶に記憶されるが、プロ
グラムで使われる領域はすべて仮想記憶の対象なので、
従来方式3のようにプロセッサ間通信する主記憶の領域
を制限する必要がないからである。
【0101】請求項3に記載のプロセッサ間通信装置に
よれば、ページフォールトが発生しても、ネットワーク
の閉塞が起こらないという効果がある。なぜなら、ペー
ジフォールトしたページへのデータの書き込みは、通常
のデータ受信動作と変わらず、ダミーページに書き込む
ことで、捨てられるからである。
【0102】請求項4に記載のプロセッサ間通信装置に
よれば、プロセッサ間通信の性能を低下させずにすむこ
とである。なぜなら、論理ページの状態として、無効、
ページアウト、ページイン中、及びページインの4状態
に分けて、ページフォールトの確認を円滑に行なうから
である。
【0103】請求項5に記載のプロセッサ間通信装置に
よれば、ページフォールトが発生した場合でも受信装置
が発生する割り込みが少ないことである。なぜなら、チ
ェックバッファエントリ内の直近にページフォールトし
た論理ページ番号と、今ページフォールトした論理ペー
ジ番号を受信装置が比較するため、同じページのページ
フォールトによる複数の割り込みを発生させずにすむか
らである。
【0104】請求項に記載のプロセッサ間通信装置に
よれば、ページフォールトが発生しない場合には、プロ
セッサ間通信の性能を低下させずにすむことである。な
ぜなら、ページフォールトの確認は大量のデータを送っ
た後に1度だけ、しかも、ページフォールトしたことを
確認するためのパケットの処理を受信装置が高速に行な
うからである。
【0105】請求項に記載のプロセッサ間通信装置に
よれば、ページフォールトした時にOSの負担を軽減で
きるという効果がある。なぜなら、第2の実施の形態で
導入したリモートリードパーセルを使うことにより、ユ
ーザタスクがフォールトページリストを読み出して、自
分でページフォールトで受信されなかったデータを再送
することができるからである。
【図面の簡単な説明】
【図1】 本発明のプロセッサ間通信装置の構成図であ
る。
【図2】 この並列コンピュータで通信されるリモート
DMAパーセルの構成図である。
【図3】 この並列コンピュータで通信されるチェック
パケットのパーセルとチェックパケットの返事のパーセ
ルの構成図である。
【図4】 本発明の実施の形態で用いるTLBの構成図
である。
【図5】 本発明で用いるチェックバッファエントリと
フォールトページリストの構成図である。
【図6】 本発明での送信側の通信ライブラリの処理を
説明するフローチャートである。
【図7】 本発明での送信側の読み出しアドレスがペー
ジフォールトした場合の送信装置での処理について説明
するフローチャートである。
【図8】 本発明での受信側の書き込みアドレスがペー
ジフォールトした場合の受信装置での処理について説明
するフローチャートである。
【図9】 本発明の第2の実施の形態で導入するリモー
トリードのパーセルとパケットの構成図である。
【図10】 本発明の第2の実施の形態での、受信側で
ページフォールトが起こった場合の、通信ライブラリの
処理について説明するフローチャートである。
【図11】 従来の並列計算機システムのページインの
説明図である。
【符号の説明】
1 プロセッサ 2 ネットワーク 3 CPU 4 主記憶 5 送信装置 6 受信装置 7 ヘッダ読み出し回路 8 ヘッダレジスタ 9 パケット生成回路 10、21 TLB 11 割り込み発生回路 12 FIFOメモリ 13 パーセルヘッダキュー 14 ヘッダ 15 送信データ 16 ページテーブル 17 FIFOメモリ 18 通信IDレジスタ 19 送り元論理プロセッサ番号レジスタ 20 書き込みアドレスレジスタ 22 比較器 23 データ書き込み回路 24 データ交換回路 25 ヘッダ書き込み回路 26 割り込み発生回路 27 受信データ 28 チェックバッファ 29 チェックバッファエントリ 31 チェックバッファポインタテーブル 32 宛先変換テーブル 33 フォールトページリスト 114 リモートDMAパケット 133 チェックパケット 152 チェックパケットの返事のパケット 414 リモートリードパケット 435 リモートリードの返事のパケット
フロントページの続き (56)参考文献 特開 平9−212474(JP,A) 特開 平9−269936(JP,A) 特開 平11−203260(JP,A) 特開 平4−261660(JP,A) 特開 昭57−162164(JP,A) 特開 平7−262151(JP,A) 特開 平6−19856(JP,A) 手塚宏史 他,ピンダウンキャッシュ を用いたユーザレベルゼロコピー通信, 情報処理学会研究報告,日本,社団法人 情報処理学会,1997年 8月22日,Vo l.97 No.76(97−ARC−125), p.167−172 石川裕,コモディティハードウェアを 用いた並列処理技術,情報処理,日本, 社団法人情報処理学会,1998年 8月15 日,第39巻第8号,p.784−791 小西弘一 他,MPI/DE−並列計 算機Cenju−3のMPIライブラリ ーの性能評価,情報処理学会研究報告, 日本,社団法人情報処理学会,1995年 3月 9日,Vol.95 No.28(95 −HCP−55),p.97−104 (58)調査した分野(Int.Cl.7,DB名) G06F 15/16 - 15/177 G06F 12/08 - 12/12

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】 主記憶、送信装置、並びに受信装置を有
    するプロセッサが複数個、ネットワークによって結合さ
    れた並列コンピュータに用いられるプロセッサ間通信装
    置であって、 プロセッサ間通信で通信されるデータの読み出しアドレ
    スと書き込みアドレスが論理アドレスで指定され、 該送信装置と該受信装置内に論理アドレスから物理アド
    レスに変換する手段を備えると共に、 タスクごとに割り当てられた通信IDと、パケットの送
    り元プロセッサの論理プロセッサ番号から決定される主
    記憶上の場所に、 (i)該送り元プロセッサから該通信IDを割り当てら
    れたタスクへのプロセッサ間通信時にページフォールト
    が発生したかどうかを示すページフォールトフラグと、 (ii)該プロセッサ間通信時に直近にページフォール
    トした論理ページ番号と、 (iii)該プロセッサ間通信時にページフォールトし
    たページ数と、 (iv)ページフォールトした論理ページ番号を格納す
    るフォールトページリストを格納する主記憶上の位置と
    を記憶する 手段を備えたプロセッサ間通信装置。
  2. 【請求項2】 前記受信装置内でのアドレス変換の結
    果、ページの状態がページアウトの場合に、(i)該ページフォールトフラグをONにし、 (ii)該プロセッサ間通信時に直近にページフォール
    トした論理ページ番号に該アドレス変換した論理ページ
    番号を記憶し、 (iii)該ページフォールトしたページ数を1増や
    し、 (iv)該フォールトページリストに該アドレス変換し
    た論理ページ番号を追加する ことを特徴とする請求項1
    に記載のプロセッサ間通信装置。
  3. 【請求項3】 前記受信装置内でのアドレス変換の結
    果、ページの状態がページアウトの場合に、 前記アドレス変換にかかる論理ページを予め用意してお
    いたダミーページに割り当てることを特徴とする請求項
    2に記載のプロセッサ間通信装置。
  4. 【請求項4】 該論理アドレスを構成する論理ページの
    情報として、該論理ページの割り当てられた物理ページ
    番号と、ページの状態として下記(i)〜(iv)の状
    態を持つことを特徴とする請求項1に記載のプロセッサ
    間通信装置。(i)物理ページが割り当てられていない
    無効の状態; (ii)現在主記憶になく外部記憶媒体に追い出されて
    いるページアウトの状態; (iii)以前はページアウトの状態で現在ページイン
    処理を行なっている際中であるページイン中の状態; (iv)該主記憶上に割り付けられているページインの
    状態。
  5. 【請求項5】 タスクごとに割り当てられた通信ID
    と、パケットの送り元プロセッサの論理プロセッサ番号
    から決定される主記憶上の場所に記憶されている直近に
    ページフォールトした論理ページ番号と、変換した論理
    ページ番号とを比較する手段を有し、 前記受信装置内でのアドレス変換の結果、ページの状態
    がページイン中の場合には、 該比較手段は、該論理ページ番号が同じ場合には何もせ
    ず、該論理ページ番号が異なった場合にだけ、 (i)該ページフォールトフラグをONにし、 (ii)該プロセッサ間通信時に直近にページフォール
    トした論理ページ番号に変換した論理ページ番号を記憶
    し、 (iii)該ページフォールトしたページ数を1増や
    し、 (iv)該フォールトページリストに変換した論理ペー
    ジ番号を追加することを特徴とする請求項1に記載のプ
    ロセッサ間通信装置。
  6. 【請求項6】 送り元プロセッサは、プロセッサ間通信
    の受信側でページフォルトがあったかどうかを知るため
    に、前記プロセッサ間通信でデータを送った直後に、チ
    ェックパケットを宛先プロセッサに対して送信し、 前記宛先プロセッサは、前記チェックパケットを受信す
    ると、前記プロセッサ間通信を行っていたタスクに割当
    てられた通信ID及び前記チェックパケットの送り元プ
    ロセッサの論理プロセッサ番号から記憶場所が決定され
    る宛先プロセッサ内の主記憶上のデータを、前記送り元
    プロセッサの主記憶上の指定された位置宛に送信する
    とを特徴とする請求項1に記載のプロセッサ間通信装
    置。
  7. 【請求項7】 プロセッサ間通信時にページフォールト
    した論理ページ番号が逐次格納されたフォールトページ
    リストを、送り元プロセッサがリモートリードを用いて
    読み出して、該フォールトページリストにある論理ペー
    ジ番号の書き込みアドレスのデータだけを再送すること
    を特徴とする請求項に記載のプロセッサ間通信装置。
  8. 【請求項8】 前記再送の後で、前記パケットでページ
    フォールトの有無を再度確認し、ページフォールトが起
    こらなくなるまで、再送をつづけることを特徴とする請
    求項に記載のプロセッサ間通信装置。
JP13496099A 1999-05-14 1999-05-14 プロセッサ間通信装置 Expired - Fee Related JP3376956B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP13496099A JP3376956B2 (ja) 1999-05-14 1999-05-14 プロセッサ間通信装置
US09/568,593 US6678722B1 (en) 1999-05-14 2000-05-11 Interprocessor communication system for parallel processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP13496099A JP3376956B2 (ja) 1999-05-14 1999-05-14 プロセッサ間通信装置

Publications (2)

Publication Number Publication Date
JP2000330960A JP2000330960A (ja) 2000-11-30
JP3376956B2 true JP3376956B2 (ja) 2003-02-17

Family

ID=15140615

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13496099A Expired - Fee Related JP3376956B2 (ja) 1999-05-14 1999-05-14 プロセッサ間通信装置

Country Status (2)

Country Link
US (1) US6678722B1 (ja)
JP (1) JP3376956B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3780776B2 (ja) * 1999-10-15 2006-05-31 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP3800037B2 (ja) 2001-06-06 2006-07-19 日本電気株式会社 プロセッサ間通信システム及びそれに用いるプロセッサ間通信方法
JP3594082B2 (ja) 2001-08-07 2004-11-24 日本電気株式会社 仮想アドレス間データ転送方式
JP4226816B2 (ja) * 2001-09-28 2009-02-18 株式会社東芝 マイクロプロセッサ
JP3904081B2 (ja) 2003-02-21 2007-04-11 日本電気株式会社 データ転送方法およびこれによるネットワークシステム
US20070260754A1 (en) * 2006-04-13 2007-11-08 Irish John D Hardware Assisted Exception for Software Miss Handling of an I/O Address Translation Cache Miss
US20100202451A1 (en) * 2008-10-31 2010-08-12 Enfora, Inc. Modified internet protocol (ip) data packet for asynchronous ip communications
JP2015146115A (ja) * 2014-02-03 2015-08-13 富士通株式会社 演算処理装置、情報処理装置及び演算処理装置の制御方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3369580B2 (ja) * 1990-03-12 2003-01-20 ヒューレット・パッカード・カンパニー 直接メモリアクセスを行うためのインターフェース装置及び方法
US5386566A (en) * 1991-03-20 1995-01-31 Hitachi, Ltd. Inter-processor communication method for transmitting data and processor dependent information predetermined for a receiving process of another processor
JPH0619785A (ja) * 1992-03-27 1994-01-28 Matsushita Electric Ind Co Ltd 分散共有仮想メモリーとその構成方法
JPH08180001A (ja) * 1994-04-12 1996-07-12 Mitsubishi Electric Corp 通信方式及び通信方法及びネットワークインタフェース
JP2830833B2 (ja) * 1996-04-30 1998-12-02 日本電気株式会社 プロセッサ間通信方法及びそれに用いるプロセッサ
US5884313A (en) * 1997-06-30 1999-03-16 Sun Microsystems, Inc. System and method for efficient remote disk I/O
US6134602A (en) * 1997-09-24 2000-10-17 Microsoft Corporation Application programming interface enabling application programs to group code and data to control allocation of physical memory in a virtual memory system

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
小西弘一 他,MPI/DE−並列計算機Cenju−3のMPIライブラリーの性能評価,情報処理学会研究報告,日本,社団法人情報処理学会,1995年 3月 9日,Vol.95 No.28(95−HCP−55),p.97−104
手塚宏史 他,ピンダウンキャッシュを用いたユーザレベルゼロコピー通信,情報処理学会研究報告,日本,社団法人情報処理学会,1997年 8月22日,Vol.97 No.76(97−ARC−125),p.167−172
石川裕,コモディティハードウェアを用いた並列処理技術,情報処理,日本,社団法人情報処理学会,1998年 8月15日,第39巻第8号,p.784−791

Also Published As

Publication number Publication date
US6678722B1 (en) 2004-01-13
JP2000330960A (ja) 2000-11-30

Similar Documents

Publication Publication Date Title
EP0889622B1 (en) Apparatus and method for remote buffer allocation and management for message passing between network nodes
EP0889623B1 (en) System and method for efficient remote disk I/O
US5752078A (en) System for minimizing latency data reception and handling data packet error if detected while transferring data packet from adapter memory to host memory
US20180375782A1 (en) Data buffering
US6804673B2 (en) Access assurance for remote memory access over network
US7194517B2 (en) System and method for low overhead message passing between domains in a partitioned server
JP4719655B2 (ja) ネットワーク上におけるプロセッサ制御技術
US9632901B2 (en) Page resolution status reporting
JPH06309252A (ja) 相互接続インタフェース
US20070130372A1 (en) I/O address translation apparatus and method for specifying a relaxed ordering for I/O accesses
US9015380B2 (en) Exchanging message data in a distributed computer system
JPH07182260A (ja) ネットワークパケットのフレームバッファ方法
JP3376956B2 (ja) プロセッサ間通信装置
JPH09321827A (ja) 周辺装置とコンピュータ・ネットワークとをインタフェースする装置
US7136933B2 (en) Inter-processor communication systems and methods allowing for advance translation of logical addresses
US7130936B1 (en) System, methods, and computer program product for shared memory queue
US20070079077A1 (en) System, method, and computer program product for shared memory queue
JP7056870B2 (ja) 情報処理装置、情報処理方法及びプログラム
US20230229500A1 (en) Parallel and distributed computing system
WO2006061316A2 (en) Transferring data between system and storage in a shared buffer
US20040103249A1 (en) Memory access over a shared bus
US7882166B2 (en) Inter-computer data transfer method and inter-computer network system
EP1376975B1 (en) Protocol duplexer and protocol duplexing method
JP3237599B2 (ja) マルチプロセッサシステム及びマルチプロセッサシステムにおけるデータ転送方法
US11914865B2 (en) Methods and systems for limiting data traffic while processing computer system operations

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: 20021105

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071206

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081206

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091206

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091206

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101206

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101206

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111206

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111206

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121206

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121206

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131206

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees