JPH09167143A - メッセージ受信制御方式 - Google Patents

メッセージ受信制御方式

Info

Publication number
JPH09167143A
JPH09167143A JP7327264A JP32726495A JPH09167143A JP H09167143 A JPH09167143 A JP H09167143A JP 7327264 A JP7327264 A JP 7327264A JP 32726495 A JP32726495 A JP 32726495A JP H09167143 A JPH09167143 A JP H09167143A
Authority
JP
Japan
Prior art keywords
message
page number
reception
address
reception control
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.)
Granted
Application number
JP7327264A
Other languages
English (en)
Other versions
JP3122606B2 (ja
Inventor
Hidenori Kosugi
秀則 小杉
Hamiruton Patoritsuku
パトリック・ハミルトン
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 JP07327264A priority Critical patent/JP3122606B2/ja
Priority to US08/766,897 priority patent/US5867664A/en
Publication of JPH09167143A publication Critical patent/JPH09167143A/ja
Application granted granted Critical
Publication of JP3122606B2 publication Critical patent/JP3122606B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 (修正有) 【課題】メモリ管理オーバーヘッドを最小にして、メモ
リを有効に利用する。 【解決手段】並列プロセッサは、命令処理装置IPと主
記憶MSから構成される複数のノードNDがネットワー
クにより接続され、それぞれのノードにおいて、オペレ
ーティングシステムの制御下でプロセスが実行され、ノ
ード間でネットワークを介してプロセス間通信を行い、
メッセージを受信する。受信バッファは、主記憶MS上
に常駐し、ノードで実行されるプロセスが使用する仮想
空間上に、論理アドレス上も実アドレス上も連続でない
プールページにより構成され、受信バッファ制御情報
は、主記憶MS上に配置され、受信バッファを管理す
る。メッセージを受信するノードは、受信するメッセー
ジに含まれる通信制御情報と、受信バッファ制御情報を
用いて、メッセージを受信する受信バッファPOOL上
の実アドレスを求める。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、メッセージ受信制
御方式に係り、特に、並列プロセッサのメッセージ転送
の際に好適なメッセージ受信制御方式に関する。
【0002】
【従来の技術】従来、複数のプロセッサから構成される
ノードを複数用いて構成される並列プロセッサのプロセ
ス間通信において、送信ノードは、ユーザー空間からカ
ーネル空間へのデータコピー行い、受信ノードは、カー
ネル空間からユーザー空間へのデータコピーを行ってい
た。このプロセス間通信方式では、メッセージ転送に
は、常にオペレーティングシステム(OS)が介入する
必要があり、バッファコピーのオーバーヘッドが発生し
ていた。このオーバーヘッドの問題を解決する方式とし
ては、例えば、特開平6−19856号公報に記載され
ているようなリモートメモリ直接転送方式が知られてい
る。この通信方式は、OSが、実アドレス連続な通信領
域をメモリに常駐させることによって、送信プロセスと
受信先プロセスの通信領域間で直接データ転送を可能
し、バッファコピーのオーバーヘッドを取り除くように
している。
【0003】
【発明が解決しようとする課題】リモートメモリ転送方
式は、大規模数値計算用のアプリケーションなど、それ
ぞれのノード内プロセスが同期して、1度に大量のデー
タを効率よく転送する場合に最適化なものである。しか
しながら、一般のアプリケーションは、非同期な通信方
式を必要とするため、通信ライブラリ(メッセージ・パ
ッシングを実現するライブラリ)で送受信バッファを構
成し、このバッファ間でリモートメモリ転送方式を用い
ることになる。
【0004】通信ライブラリが提供するバッファ間で、
この転送方式を採用した場合には、送受信バッファは、
ページ固定した実アドレス連続領域でなければならない
ため、複数のプロセスが、数キロ程度のメッセージを大
量に転送する場合には、受信側プロセスは、ページ固定
した実アドレス連続領域を大量に生成しなければなら
ず、メモリ管理オーバーヘッド(メモリコンパクション
等)が発生し、システム性能の低下を招く恐れがあると
いう問題がある。
【0005】本発明の目的は、オペレーティングシステ
ムが介入しない、送信プロセスと受信先プロセス間のデ
ータ転送方式において、特に、複数のプロセスが、数キ
ロバイト以下のメッセージを大量に転送する通信におい
ても、受信側プロセスのメモリ管理オーバーヘッドを最
小にして、メモリを有効に利用し得るメッセージ受信制
御方式を提供するにある。
【0006】
【課題を解決するための手段】上記目的を達成するため
に、本発明は、プロセッサと主記憶から構成される複数
のノードを、ネットワークにより接続し、それぞれの上
記ノードにおいて、オペレーティングシステムの制御下
でプロセスが実行され、上記ノード間で上記ネットワー
クを介してプロセス間通信を行い、メッセージを受信す
る並列プロセッサにおけるメッセージ受信制御方式にお
いて、上記主記憶上に常駐し、上記ノードで実行される
プロセスが使用する仮想空間上に、論理アドレス上も実
アドレス上も連続でないプールページにより構成される
受信バッファと、上記主記憶上に配置され、上記受信バ
ッファを管理する受信バッファ制御情報とを有し、上記
メッセージを受信する上記ノードは、受信する上記メッ
セージに含まれる通信制御情報と、上記受信バッファ制
御情報を用いて、メッセージを受信する上記受信バッフ
ァ上の実アドレスを求めるようにしたものである。
【0007】上記メッセージ受信制御方式において、好
ましくは、さらに、上記主記憶上に配置され、上記受信
バッファ上のアドレスとデータサイズを、メッセージ受
信後に求めることが可能な情報を記載する受信制御ワー
ドを有し、この受信制御ワードは、チェインして用意さ
れ、上記受信制御ワードは、チェインすべき次の受信制
御ワードのアドレスを有するようにしたものである。
【0008】上記メッセージ受信制御方式において、好
ましくは、上記受信バッファは、論理アドレスページ番
号及び実アドレスページ番号とは独立したプールページ
番号とページ内オフセットによってアドレス付けされ、
上記受信バッファ制御情報は、上記プールページ番号を
用いて上記受信バッファを制御するプールページ制御ワ
ードと、プールページ番号と実アドレスページ番号の対
応を示すプールページ番号変換テーブルから構成され、
上記メッセージを受信する上記ノードは、上記メッセー
ジを受信すると、上記プールページ制御ワードから上記
プールページ番号と上記ページ内オフセットを求め、更
に、上記プールページ制御ワードから求められたプール
ページ番号と上記受信メッセージに含まれる上記通信制
御情報に基づいて、上記プールページ番号変換テーブル
のエントリアドレスを計算して、実アドレスページ番号
を求め、この実アドレスページ番号と上記ページ内オフ
セットからメッセージを受信する受信バッファ上の実ア
ドレスを求めるようにしたものである。
【0009】上記メッセージ受信制御方式において、好
ましくは、上記プールページ制御ワードは、チェインし
ている第1番目の受信制御ワードのアドレス値を保持
し、メッセージ受信時には、プールページ制御ワードか
ら第1番目の受信制御ワードのアドレスを求め、メッセ
ージを転送したプールページページ番号とページ内オフ
セットをこの受信制御ワードに記録し、記録を完了する
と、上記プールページ制御ワード内のポインタを、チェ
インした第2番目の受信制御ワードのアドレスに変更す
るようにしたものである。
【0010】上記メッセージ受信制御方式において、好
ましくは、受信側プロセスは、メッセージの受信が完了
すると、上記受信制御ワードに記録されているプールペ
ージ番号,ページ内オフセット及びデータサイズを読み
出し、上記プールページ番号変換テーブルを用いて、プ
ールページ番号を実アドレスページ番号に変換し、この
実アドレスページ番号と上記ページ内オフセットからユ
ーザーの受信領域の先頭アドレスをもとめ、上記受信制
御ワード内のデータサイズ分のデータを読み出して、ユ
ーザーの受信領域に転送するようにしたものである。
【0011】上記メッセージ受信制御方式において、好
ましくは、上記主記憶とシステムバスを介して接続さ
れ、上記ネットワークからメッセージを一旦受信するネ
ットワークアダプタを有し、このネットワークアダプタ
は、上記プールページ番号と上記受信メッセージの通信
制御情報をキーにして、実アドレスページ番号を出力す
る連想メモリを有し、メッセージ受信時には、上記連想
メモリを用いて、上記プールページ番号に対応する実ア
ドレス番号を求め、上記連想メモリ上に該当するプール
ページ番号が登録されていない場合には、上記主記憶上
の上記プールページ番号変換テーブルを用いて、上記実
アドレスページ番号を求めるとともに、プールページ番
号と求めた実アドレスページ番号を上記連想メモリに登
録するようにしたものである。
【0012】上記メッセージ受信制御方式において、好
ましくは、上記各ノードは、論理的通信路の端点にポー
ト識別子を有することにより、通信路を一意的とし、上
記各ノードは、上記受信バッファ制御情報と受信制御ワ
ードを上記識別子毎に保持し、メッセージ受信時には、
このメッセージ上の送信先ポート識別子と上記受信バッ
ファ制御情報のプールページ番号に基づいて、上記プー
ルページ番号変換テーブルのエントリアドレスを計算し
て、実アドレスページ番号を求め、この実アドレスペー
ジ番号とページ内オフセットからメッセージを受信する
受信バッファ上の実アドレスを求めるようにしたもので
ある。
【0013】上記メッセージ受信制御方式において、好
ましくは、上記メッセージ上の上記送信先ポート識別子
と上記プールページ番号を引数として、ハッシュ関数に
より上記プールページ番号変換テーブルのエントリアド
レスを求めるようにしたものである。
【0014】
【発明の実施の形態】以下、本発明の一実施の形態によ
るメッセージ受信制御方式について、図1乃至図10を
用いて説明する。
【0015】図1は、本発明の一実施の形態によるメッ
セージ受信制御方式を適用する並列プロセッサのシステ
ム構成図である。
【0016】n+1個のノードND−0,…,ND−n
は、ネットワークNWを介して結合されている。ノード
ND−0は、命令処理装置IP−0,主記憶装置MS−
0を制御する主記憶制御装置主記憶制御装置SCU−
0,入出力装置IOP−0,及びネットワークアダプタ
装置ADP−0から構成されている。命令処理装置IP
−0及び主記憶制御装置主記憶制御装置SCU−0は、
プロッセサバスPBUS−0により結合されている。主
記憶制御装置主記憶制御装置SCU−0,入出力装置I
OP−0,及びネットワークアダプタ装置ADP−0
は、システムバスSBUS−0により結合されている。
ネットワークアダプタ装置ADP−0は、送出信号線5
00−0からネットワークNWを介して、他のノードN
Dにメッセージを転送する。また、他のノードNDから
のメッセージは、ネットワークNWを介して受信信号線
600−0からネットワークアダプタ装置ADP−0に
て受信する。
【0017】他のノードNDも同一の構成であり、例え
ば、ノードND−nは、命令処理装置IP−n,主記憶
装置MS−nを制御する主記憶制御装置SCU−n,入
出力装置IOP−n,及びネットワークアダプタ装置A
DP−nから構成されている。命令処理装置IP−n及
び主記憶制御装置SCU−nは、プロッセサバスPBU
S−nにより結合されている。主記憶制御装置SCU−
n,入出力装置IOP−n,及びネットワークアダプタ
装置ADP−nは、システムバスSBUS−nにより結
合されている。
【0018】各ノードNDには、ユーザ空間上で動作す
る通信ライブラリが存在する。ユーザプロセスは、通信
ライブラリの関数を呼び出し、ネットワークNWを介し
て、他のノードNDのプロセスとプロセス間通信を行
う。プロセス間通信に使用される受信制御情報は、通信
ライブラリにより、主記憶装置MS上に展開される。
【0019】次に、図2を用いて、本発明の一実施の形
態によるメッセージ受信制御方式を適用する並列プロセ
ッサの中のネットワークアダプタ装置ADPの構成につ
いて説明する。図2は、本発明の一実施の形態によるメ
ッセージ受信制御方式を適用する並列プロセッサの中の
ネットワークアダプタ装置ADPのシステム構成図であ
る。
【0020】ネットワークアダプタ装置ADPは、ネッ
トワークNWへメッセージを送出する送信回路200,
ネットワークNWからメッセージを受信する受信回路3
00及び主記憶制御装置SCUへのアクセスを制御する
主記憶アクセス回路100から構成されている。
【0021】受信回路300は、受信信号線600を介
してネットワークNWからメッセージを受信する。受信
信号線600を介して受信したメッセージは、受信回路
300内に一旦ストアされ、メッセージの中のメッセー
ジヘッダの内容に応じて、受信制御信号群360を介し
て、主記憶アクセス回路100に取り込まれる。メッセ
ージの構成については、図5を用いて後述する。
【0022】主記憶アクセス回路100は、制御線11
0,アドレス線120,データ線130を介してシステ
ムバスSBUSに結合されている。主記憶アクセス回路
100に取り込まれたメッセージは、システムバスSB
USを介して、主記憶アクセス回路100に転送され
る。
【0023】ノードNDから送出されるメッセージは、
システムバスSBUSを介して、主記憶アクセス回路1
00に転送され、送信制御信号群220を介して、送信
回路200に転送される。送信回路200は、送出信号
線500を介してネットワークNWにメッセージを送出
する。
【0024】次に、図3を用いて、ネットワークアダプ
タ装置ADPの中の受信回路300の構成について説明
する。図3は、本発明の一実施の形態によるメッセージ
受信制御方式を適用する並列プロセッサの中のネットワ
ークアダプタ装置ADPの受信回路300のシステム構
成図である。
【0025】受信回路300は、メッセージの受信制御
を行う受信制御回路310と、ネットワークNWからの
メッセージをバッファする受信バッファ回路350と、
ハッシュ関数を発生するハッシュ関数回路320とから
構成されている。
【0026】ネットワークNWから受信信号線600を
介して受信したデータの内、メッセージヘッダは、受信
制御回路310に転送され、メッセージデータは、受信
バッファ回路350に転送される。
【0027】受信制御回路310は、ハッシュ引数信号
線321を介して、ハッシュ関数回路320に引数を送
る。ハッシュ関数回路320は、この引数に応じて、ハ
ッシュ法に基づいて、ハッシュ信号を生成し、ハッシュ
信号線322を介して、受信制御回路310に送る。
【0028】受信制御信号群360は、アドレス線31
1,バイト数線312,主記憶リード要求信号線31
3,主記憶ライト要求線314及びデータ線315から
構成されている。
【0029】受信制御回路310は、メッセージヘッダ
に基づいて、受信バッファの実アドレスを求める。実ア
ドレスの求める方法については、後述する。受信制御回
路310は、データ線315からこの実アドレスデータ
を主記憶アクセス回路100に送り、また、転送開始線
317から転送開始信号を受信バッファ回路350に送
り、同時に、データ長線316から送るべきデータのデ
ータ長を受信バッファ回路350に送る。受信バッファ
回路350は、これらの信号を受けて、ストアされたメ
ッセージデータをライトデータ線352を介して、主記
憶アクセス回路100に転送する。転送が終了すると、
受信バッファ回路350は、転送終了信号を転送終了信
号線351を介して、受信制御回路310に送出する。
【0030】次に、図4を用いて、論理的なメッセージ
通信路について説明する。
【0031】図4は、本発明の一実施の形態によるメッ
セージ受信制御方式を適用する並列プロセッサ間の論理
的なメッセージ通信路の概念的構成図である。
【0032】論理的なメッセージ通信路は、ノード番号
及び通信路の端点を示すポート識別子により、一意的と
なっている。即ち、図において、ノードND−1は、2
つのプロセス,プロセス1−1及びプロセス1−2を有
している。プロセス1−1は、ポート識別子1−1を有
しており、プロセス1−2は、ポート識別子1−2,1
−3を有している。ノードND−2は、1つのプロセス
を有し、プロセス2−1を有しており、プロセス2−1
は、ポート識別子2−1を有している。ノードND−3
は、1つのプロセスを有し、プロセス3−1を有してお
り、プロセス3−1は、ポート識別子3−1を有してい
る。ノードND−4は、1つのプロセスを有し、プロセ
ス4−1を有しており、プロセス4−1は、ポート識別
子4−1を有している。ここで、各ノードNDが有する
プロセスの数やポート識別子の数は、任意のものであ
り、ここでは、その一例を示しているものである。
【0033】ノードND−1,ND−2,ND−3,N
D−4は、それぞれ、ネットワークNWによって結合さ
れているが、論理的には、特定のポート識別子間にメッ
セージ通信路が形成されている。例えば、ポート識別子
1−1とポート識別子2−1の間には、太い矢印で示す
ように、論理的通信路(チャネル)1が形成されてい
る。また、ポート識別子1−2とポート識別子3−1の
間には、論理的通信路2が形成されている。さらに、ポ
ート識別子1−3とポート識別子4−1の間には、論理
的通信路1が形成されている。従って、送信元のポート
識別子番号と、送信先のポート識別子番号を特定するこ
とにより、メッセージの送信元及び送信先を特定でき
る。
【0034】次に、図5を用いて、転送されるメッセー
ジの構成について説明する。図5は、本発明の一実施の
形態によるメッセージ受信制御方式を用いて、並列プロ
セッサ間の論理的なメッセージ通信路上を転送されるメ
ッセージの構成図である。
【0035】転送されるメッセージ400は、メッセー
ジヘッダとメッセージデータから構成されている。メッ
セージヘッダは、ネットワークのルーテイングに使用さ
れるルーテイングフィールド,送信元ノード番号,送信
先ノード番号,送信元ポート識別子番号,送信先ポート
識別子番号,データ長から構成されている。
【0036】このように、図4において説明した論理的
メッセージ通信路を形成するために、送信元ノード番号
及び送信先ノード番号に加えて、送信元ポート識別子番
号及び送信先ポート識別子番号をメッセージヘッダに加
えるようにしており、この送信元ポート識別子番号及び
送信先ポート識別子番号によって、メッセージの転送を
容易にしている。
【0037】次に、図6を用いて、主記憶装置MS内の
主記憶上に配置される通信制御情報TCBの構成につい
て説明する。図6は、本発明の一実施の形態によるメッ
セージ受信制御方式のおける通信制御のために主記憶装
置MS内の主記憶上に配置される通信制御情報TCBの
構成図である。
【0038】各ノードNDの中の主記憶装置MS内に
は、複数の通信制御情報TCB−0,TCB−1,…,
TCB−(N−1),TCB−Nが配置される。各通信
制御情報TCBは、ポート識別子毎に配置されるので、
配置される通信制御情報TCBの数は、ポート識別子の
数に等しいものである。即ち、例えば、ノードND−1
が、3個のポート識別子を有する場合には、3個の通信
制御情報TCBが配置されている。
【0039】ここで、通信制御情報TCBの構成につい
て説明する。通信制御情報TCBは、受信バッファ制御
情報PCB,受信バッファPOOL及び受信制御ワード
RCWから構成されている。受信バッファPOOLは、
複数の受信バッファPOOL−1,POOL−2,…,
POOL−(N−1)及びPOOL−Nから構成されて
いる。各受信バッファPOOLは、論理アドレスページ
番号や実アドレスページ番号とは独立したプールページ
番号PPNとページ内オフセットによりアドレス付けさ
れ、この受信バッファPOOLを用いる点に、本発明の
特徴がある。
【0040】受信バッファ制御情報PCBは、プールペ
ージ制御ワードPCWとプールページ番号変換テーブル
PTEから構成されている。プールページ制御ワードP
CWの詳細については、図8を用いて後述する。
【0041】プールページ番号変換テーブルPTEは、
受信バッファPOOLの数に対応した複数のプールペー
ジ番号変換テーブルPTE−1,PTE−2,…,PT
E−(N−1)及びPTE−Nから構成されている。プ
ールページ番号変換テーブルPTEは、プールページ番
号PPNから実アドレス番号RPNへの変換を行うため
のテーブルである。
【0042】受信制御ワードRCWは、受信制御ワード
RCW−1,RCW−2,…,RCW−(N−1),R
CW−Nから構成されており、各受信制御ワードRCW
の詳細については、図9を用いて後述する。
【0043】受信バッファ制御情報PCBと受信制御ワ
ードRCWは、通信ライブラリとネットワークアダプタ
装置ADPによって制御されるが、その詳細について
は、後述する。
【0044】次に、図7を用いて、主記憶装置MS内の
主記憶上に配置される受信制御情報構造体について説明
する。図7は、本発明の一実施の形態によるメッセージ
受信制御方式のおける通信制御のために主記憶装置MS
内の主記憶上に配置される受信制御情報構造体の構成図
である。
【0045】各ノードNDの中の主記憶装置MS内に
は、複数の受信制御情報構造体が配置される。各受信制
御情報構造体は、ポート識別子毎に配置されるので、配
置される受信制御情報構造体の数は、ポート識別子の数
に等しいものである。即ち、例えば、ノードND−1
が、3個のポート識別子を有する場合には、3個の受信
制御情報構造体が配置されている。
【0046】ここで、受信制御情報構造体の構成につい
て説明する。受信制御情報構造体は、プールページ制御
ワードPCWアドレス,受信制御ワードRCWアドレス
及びプールページ番号変換テーブルPTEの各エントリ
アドレスから構成されている。受信制御ワードRCWア
ドレスは、各受信制御ワードRCW−1,RCW−2,
…,RCW−(N−1),,RCW−Nのエントリアド
レス及び次の受信制御ワードRCWの位置を示すポイン
タから構成されている。例えば、受信制御ワードRCW
−1のエントリアドレスの後ろには、受信制御ワードR
CW−2のポインタが配置されている。
【0047】プールページ番号変換テーブルPTEアド
レスは、各プールページ番号変換テーブルPTE−1,
PTE−2,…,PTE−(N−1),,PTE−Nの
エントリアドレス及び次のプールページ番号変換テーブ
ルPTEの位置を示すポインタから構成されている。例
えば、プールページ番号変換テーブルPTE−1のエン
トリアドレスの後ろには、プールページ番号変換テーブ
ルPTE−2のポインタが配置されている。
【0048】次に、図8を用いて、図6に示したプール
ページ制御ワードPCWの構成について説明する。図8
は、本発明の一実施の形態によるメッセージ受信制御方
式のおける通信制御のために主記憶装置MS内の主記憶
上に配置される通信制御情報TCBの中のプールページ
制御ワードPCWの構成図である。
【0049】プールページ制御ワードPCWは、受信制
御ワードRCWの先頭アドレスを示すポインタであるR
CW先頭アドレスポインタHRPと、RCW先頭アドレ
スポインタHRPが有効か否かを示す有効ビットEbi
tと、未使用POOLページの先頭を示す先頭プールペ
ージポインタHPNと、先頭プールページのページ内オ
フセットHOと、使用可能な受信バッファPOOLの最
終ページを示す最終プールページポインタTPNと、最
終プールページのページ内オフセットTOとから構成さ
れている。
【0050】受信制御ワードRCWの先頭アドレスを示
すポインタであるRCW先頭アドレスポインタHRP
と、RCW先頭アドレスポインタHRPが有効か否かを
示す有効ビットEbitと、未使用POOLページの先
頭を示す先頭プールページポインタHPNと、先頭プー
ルページのページ内オフセットHOは、1メッセージを
受信する毎に、ネットワークアダプタ装置ADPにより
更新される。
【0051】次に、図9を用いて、図6に示した受信制
御ワードRCWの構成について説明する。図9は、本発
明の一実施の形態によるメッセージ受信制御方式のおけ
る通信制御のために主記憶装置MS内の主記憶上に配置
される通信制御情報TCBの中の受信制御ワードRCW
の構成図である。
【0052】受信制御ワードRCWは、次の受信制御ワ
ードRCWのアドレスを示すポインタである次受信制御
ワードRCWアドレスポインタと、このアドレスポイン
タが有効か否かを示す有効ビットEbitと、メッセー
ジを受信した受信バッファのプールページ番号と、ペー
ジ内オフセットと、メッセージを送信した発信元ノード
番号及びポート識別子と、受信が正常に終了したことを
示す受信状態コードとから構成されている。受信状態コ
ードは、転送終了ビットが書き込まれると、受信が正常
に終了したことを示している。
【0053】次アドレスポインタと有効ビット以外は、
1メッセージを受信する毎に、ネットワークアダプタ装
置ADPにより更新される。
【0054】次に、図10を用いて、並列プロセッサの
受信動作について説明する。図10は、本発明の一実施
の形態によるメッセージ受信制御方式のおける受信動作
を説明するフローチャートである。
【0055】1)ステップ1100(前処理) ステップ1100は、「通信ライブラリの前処理」のス
テップであり、ステップ1110の「受信制御ブロック
の作成」と、ステップ1120の「単発/連続メッセー
ジの判別」と、ステップ1130の「(単発メッセージ
のための)受信制御ワードの作成」と、ステップ114
0の「(連続メッセージのための)受信制御ワードの作
成」とから構成されている。
【0056】2)ステップ1110(受信制御ブロック
作成) ステップ1110において、図1に示した各ノードND
内の命令処理装置IP内の通信ライブラリは、メッセー
ジ通信の受信を開始する前に、図6に示した通信制御情
報TCBを主記憶装置MSの上に作成する。通信制御情
報TCBは、各プロセスのポート識別子毎に作成される
ので、例えば、図4に示したように、ノードND−1が
ポート識別子1−1,1−2,1−3の3個のポート識
別子を有する場合には、3個のTBCを作成する。
【0057】最初に、通信ライブラリは、TBCの中の
受信バッファ制御情報PCBと受信バッファPOOL
を、主記憶装置MSの上に作成する。さらに、通信ライ
ブラリは、図7に示したプールページ制御ワードPCW
アドレス,各受信制御ワードRCWアドレス及び各プー
ルページ番号変換テーブルPTEアドレスからなる受信
制御情報構造体を、主記憶装置MSの上に作成する。
【0058】ここで、プールページ制御ワードPCWア
ドレス及び各プールページ番号変換テーブルPTEアド
レスは、命令処理装置IP内のハッシュ関数のアルゴリ
ズムに基づいて生成する。ハッシュ関数に代入する引数
としては、プールページ制御ワードPCWアドレスは、
ポート識別子を用い、プールページ番号変換テーブルP
TEアドレスは、プールページ番号PPNとポート識別
子を用いる。
【0059】3)ステップ1120(単発/連続メッセ
ージの判別) ステップ1120において、図1に示した各ノードND
内の命令処理装置IP内のプロセスは、通信ライブラリ
のRECV関数を呼び出す。呼び出されたRECV関数
は、ステップ1110で作成された図7に示す受信制御
情報構造体からプールページ制御ワードPCWアドレス
を調べ、このプールページ制御ワードPCWアドレスに
基づいて、図6に示す通信制御情報TCBからプールペ
ージ制御ワードPCWを読み出す。読み出されたプール
ページ制御ワードPCWは、図8に示す構成であり、こ
の中で、有効ビットEbitのオン/オフを調べる。有
効ビットEbitがオフしている場合には、単発メッセ
ージであると判断する。また、有効ビットEbitがオ
ンしている場合には、連続メッセージであると判断す
る。
【0060】4)ステップ1130(単発メッセージの
ためのPCW作成) ステップ1120において、有効ビットEbitがオフ
しており、単発メッセージであると判断されると、ステ
ップ1130に進む。
【0061】ステップ1130において、通信ライブラ
リは、RCW先頭アドレスポインタHRPに、図7に示
した受信制御情報構造体の受信制御ワードRCWアドレ
スの内、第1番目の受信制御ワードRCWアドレス(受
信制御ワードRCW−1に対するアドレス)を書き込
む。なお、書き込むと同時に、有効ビットEbitをオ
ンすることにより、RCW先頭アドレスポインタHRP
を有効にする。
【0062】次に、この受信制御ワードRCWアドレス
のアドレス上に、図9に示す受信制御ワードRCWを作
成する。この時、次受信制御ワードRCWアドレスポイ
ンタには、図7に示した受信制御情報構造体の第2番目
の受信制御ワードRCWアドレス(受信制御ワードRC
W−2に対するアドレス)を書き込む。また、ポインタ
が有効であることを示す有効ビットEbitは、オフす
ることにより、単発メッセージであることを書き込む。
【0063】5)ステップ1140(連続メッセージの
ためのPCW作成) ステップ1120において、有効ビットEbitのオン
しており、連続メッセージであると判断されると、ステ
ップ1140に進む。
【0064】ステップ1140において、図1に示した
各ノードND内の命令処理装置IP内のプロセスは、通
信ライブラリのRECV関数を呼び出す。呼び出された
RECV関数は、ステップ1110で作成された図7に
示す受信制御情報構造体からプールページ制御ワードP
CWアドレスを調べ、このプールページ制御ワードPC
Wアドレスに基づいて、図6に示す通信制御情報TCB
からプールページ制御ワードPCWを読み出す。読み出
されたプールページ制御ワードPCWは、図8に示す構
成であり、この中で、有効ビットEbitのオン/オフ
を調べる。
【0065】有効ビットEbitがオンしている場合
は、受信制御ワードRCWのチェインが構成されている
場合である。通信ライブラリは、プールページ制御ワー
ドPCWの中のRCW先頭アドレスポインタHRPから
受信制御ワードRCWの先頭アドレスを読み出す。この
読み出しアドレスに基づいて、受信制御ワードRCWの
中の次受信制御ワードRCWアドレスポインタから、次
受信制御ワードRCWアドレスを求め、この次受信制御
ワードRCWアドレスに基づいて、次の受信制御ワード
RCWを読み出す。
【0066】即ち、図6におけるプールページ制御ワー
ドPCWの構成は、図8に示す通りであり、RCW先頭
アドレスポインタHRPには、図6に示す受信制御ワー
ドRCWの内、第1番目の受信制御ワードRCW−1の
アドレスが書き込まれている。このアドレスに基づい
て、受信制御ワードRCW−1を読み出すと、次受信制
御ワードRCWアドレスポインタには、第2番目の受信
制御ワードRCWのアドレスが書き込まれているので、
このアドレスに基づいて、受信制御ワードRCW−2を
読み出す。
【0067】通信ライブラリは、読み出された受信制御
ワードRCW(例えば、受信制御ワードRCW−2)の
有効ビットEbitを調べ、有効ビットEbitがオフ
していれば、読み出した受信制御ワードRCWが最後の
受信制御ワードRCWであるので、図8に示すプールペ
ージ制御ワードPCWの中のRCW先頭アドレスポイン
タHRPに、この受信制御ワードRCWのアドレス(例
えば、受信制御ワードRCW−2に対するアドレス)を
書き込む。なお、書き込むと同時に、有効ビットEbi
tをオンすることにより、RCW先頭アドレスポインタ
HRPを有効にする。
【0068】次に、この受信制御ワードRCWアドレス
のアドレス上に、図9に示す受信制御ワードRCWを作
成する。この時、次受信制御ワードRCWアドレスポイ
ンタには、図7に示した受信制御情報構造体の第3番目
の受信制御ワードRCWアドレス(受信制御ワードRC
W−3に対するアドレス)を書き込む。
【0069】なお、通信ライブラリは、読み出された受
信制御ワードRCW(例えば、受信制御ワードRCW−
2)の有効ビットEbitがオンしている場合には、こ
の受信制御ワードRCWは使用しているため、受信制御
ワードRCWの中の次受信制御ワードRCWアドレスポ
インタにより、次の受信制御ワードRCWを読み出し
て、有効ビットEbitをチェックする。そして、有効
ビットEbitがオフしている受信制御ワードRCWを
見いだすまで、繰り返す。Ebitがオフしている受信
制御ワードRCWを見つければ、後の処理は上述したと
おりである。
【0070】6)ステップ1200(ADP受信動作) ステップ1200は、「ADP受信動作」のステップで
あり、ステップ1210の「PCWアドレス算出」、ス
テップ1220の「PCW読み出し」、ステップ123
0の「PTEのアドレス算出」、ステップ1240の
「PTE読み出し」、ステップ1250の「実アドレス
算出」、ステップ1260の「受信バッファへの書き込
み」、ステップ1270の「受信制御ワードRCWへ書
き込み」及びステップ1280の「PCW変更(チェイ
ンからの取り外し)」からなっている。
【0071】7)ステップ1210(PCWアドレス算
出) ステップ1210において、ネットワークアダプタ装置
ADPは、メッセージをネットワークNWから受け取る
と、そのメッセージを図2に示す受信回路300に転送
する。受信回路300の中は、図3に示すように構成さ
れており、また、受信したメッセージは、図5に示す構
成である。そこで、受信した図5に示すメッセージの
内、メッセージヘッダは、受信制御回路310に転送さ
れ、メッセージデータは、受信バッファ回路350に転
送される。
【0072】受信制御回路310は、メッセージヘッダ
を受信すると、送信先ポート識別子番号を引数として、
ハッシュ引数線321を介して、この引数をハッシュ関
数回路320に送る。ハッシュ関数回路320は、この
引数に基づいて、ハッシュ法により、プールページ制御
ワードPCWアドレスを求める。求められたプールペー
ジ制御ワードPCWアドレスは、ハッシュ信号線322
を介して、受信制御回路310に送られる。
【0073】8)ステップ1220(PCW読み出し) ステップ1220において、受信制御回路310は、ハ
ッシュ関数回路320によって求められたプールページ
制御ワードPCWアドレスを、アドレス線311を通じ
て、図2に示す主記憶アクセス回路100に出力する。
また、受信制御回路310は、受信したメッセージの中
のメッセージヘッダ中のデータ長に基づいて、要求バイ
ト数をバイト数線312を通じて、主記憶アクセス回路
100に出力する。さらに、主記憶アクセス要求を主記
憶リード要求信号線313を通じて、主記憶アクセス回
路100に出力する。
【0074】図2に示す主記憶アクセス回路100は、
受信制御回路310から送られてきたプールページ制御
ワードPCWアドレス及び要求バイト数に基づいて、S
BUSを通じて、図1に示す主記憶制御装置SCUから
図8に示すプールページ制御ワードPCWを読み出し、
このプールページ制御ワードPCWを図3に示すデータ
線315を通じて受信制御回路310に転送する。
【0075】9)ステップ1230(PTEのアドレス
算出) ステップ1230において、受信制御回路310は、主
記憶制御装置SCUから送られてきたプールページ制御
ワードPCWの有効ビットEbitを調べる。ステップ
1120で説明したように、図8に示すプールページ制
御ワードPCWのRCW先頭アドレスポインタHRPに
は、第1番目の受信制御ワードRCWアドレスが書き込
まれており、RCW先頭アドレスポインタHRPが有効
か否かを示す有効ビットEbitはオンしているので、
RCW先頭アドレスポインタHRPに書き込まれている
受信制御ワードRCWの先頭アドレスを、アドレス線3
11を通じて、主記憶アクセス回路100に送る。
【0076】また、受信制御回路310は、主記憶制御
装置SCUから送られてきたプールページ制御ワードP
CWの内、未使用のプールページ番号を示すところの図
8に示す先頭プールページポインタHPNを引数とし
て、ハッシュ引数線321を通じて、ハッシュ関数回路
320に転送する。ハッシュ関数回路320は、ハッシ
ュ関数のアルゴリズムに基づいて、プールページ番号変
換テーブルPTEのエントリアドレスを求め、ハッシュ
信号線322を通じて、受信制御回路310に転送す
る。プールページ番号変換テーブルPTEは、プールペ
ージ番号PPNから実アドレス番号RPNを求めるため
の変換テーブルである。
【0077】10)ステップ1240(PTE読み出
し) ステップ1240において、受信制御回路310は、ハ
ッシュ関数回路320から転送されてきたプールページ
番号変換テーブルPTEのエントリアドレスを、アドレ
ス線311を通じて、図2に示す主記憶アクセス回路1
00に出力する。また、受信制御回路310は、受信し
たメッセージの中のメッセージヘッダ中のデータ長に基
づいて、要求バイト数をバイト数線312を通じて、主
記憶アクセス回路100に出力する。さらに、主記憶ア
クセス要求を主記憶リード要求信号線313を通じて、
主記憶アクセス回路100に出力する。
【0078】図2に示す主記憶アクセス回路100は、
受信制御回路310から送られてきたプールページ番号
変換テーブルPTEのエントリアドレス及び要求バイト
数に基づいて、SBUSを通じて、図1に示す主記憶制
御装置SCUから図6に示すプールページ番号変換テー
ブルPTEのエントリを読み出し、このプールページ番
号変換テーブルPTEのエントリを図3に示すデータ線
315を通じて受信制御回路310に転送する。プール
ページ番号変換テーブルPTEのエントリとしては、例
えば、プールページ番号1(プールページ番号PPN−
1)に対しては、実アドレスページ番号Aが受信バッフ
ァ(プールページ)のヘッダとして読み出され、受信制
御回路310に転送される。
【0079】11)ステップ1250(実アドレス算
出) ステップ1250において、受信制御回路310は、転
送されてきた実アドレスページ番号に、図8に示すプー
ルページ制御ワードPCWのページ内オフセットHOを
加算して、受信バッファ(プールページ)の実アドレス
を求める。
【0080】12)ステップ1260(受信バッファへ
書き込み) ステップ1260において、図3に示す受信制御回路3
10は、アドレス線311を通じて、実アドレスを主記
憶アクセス回路100に送り、バイト数線312を通じ
て、要求バイト数を主記憶アクセス回路100に送り、
また、主記憶ライト要求信号線314を通じて、主記憶
アクセス要求を送る。また、受信制御回路310は、転
送開始信号線317を通じて、転送開始信号を受信バッ
ファ回路350に送り、データ長線316を通じて、図
5のメッセージヘッダに記載されているデータ長を受信
バッファ回路350に送る。
【0081】受信バッファ回路350は、転送開始信号
がオンになると、主記憶アクセス回路100にデータ長
に相当するメッセージデータを転送する。そして、転送
が終了すると、転送終了信号線351から転送終了信号
を受信制御回路310に送る。
【0082】主記憶アクセス回路100は、主記憶ライ
ト要求信号線314がオンになると、システムバスSB
USを通じて、主記憶制御装置SCUにメッセージデー
タを転送する。主記憶制御装置SCUは、主記憶アクセ
ス回路100から送られてくる実アドレスで示される主
記憶装置MS上の受信バッファにメッセージデータを書
き込む。
【0083】13)ステップ1270(RCWの書き込
み) 受信制御回路310は、受信バッファ回路350からの
転送終了信号線351がオンすることにより、メッセー
ジ転送が終了したことを認識する。メッセージ転送が終
了すると、受信制御回路310は、図9に示す受信制御
ワードRCWに、受信バッファのプールページ番号と、
ページ内オフセットと、メッセージヘッダ上の送信元ノ
ード番号と、ポート識別子と、正常に受信動作が終了し
たことを示す転送終了ビットを受信状態コードに書き込
む動作を行う。そのために、受信制御回路310は、ア
ドレス線311を通じて、主記憶アクセス回路100
に、受信制御ワードRCWアドレス+4番地のアドレス
を送る。また、受信制御回路310は、主記憶リード要
求信号線313を通じて、主記憶アクセス回路100
に、主記憶アクセス要求を送る。さらに、データ線31
5を通じて、プールページ番号と、ページ内オフセット
と、メッセージヘッダ上の送信元ノード番号と、ポート
識別子と、受信状態コードを送る。
【0084】主記憶アクセス回路100は、主記憶ライ
ト要求信号線314がオンになると、システムバスSB
USを通じて、主記憶制御装置SCUに対して受信制御
ワードRCWを転送する。主記憶制御装置SCUは、受
信制御ワードRCWアドレスに受信制御ワードRCWの
値を書き込む。
【0085】14)ステップ1280(PCW変更(R
CWのチェインからの取り外し)) ステップ1280において、図3に示す受信制御回路3
10は、受信制御ワードRCWのチェインから取り外す
ために、図8に示すRCW先頭アドレスポインタHRP
が有効か否かを示す有効ビットEbitをオフにする。
そのために、受信制御回路310は、アドレス線311
を通じて、プールページ制御ワードPCWのアドレスを
主記憶アクセス回路100に送る。また、受信制御回路
310は、バイト数線312を通じて、書き込みバイト
数を主記憶アクセス回路100に送る。さらに、受信制
御回路310は、主記憶ライト要求線314を通じて、
主記憶ライト要求を主記憶アクセス回路100に送る。
このようにして、プールページ制御ワードPCWを読み
出し、読み出したプールページ制御ワードPCWの有効
ビットEbitをオフする。その後、受信制御回路31
0は、データ線315を通じて、プールページ制御ワー
ドPCWのデータを主記憶アクセス回路100に送る。
【0086】その後、図2に示す主記憶アクセス回路1
00は、主記憶ライト要求線314がオンになると、シ
ステムバスSBUSを通じて、主記憶制御装置SCUに
プールページ制御ワードPCWを転送する。
【0087】図1に示す主記憶制御装置SCUは、転送
されてきたプールページ制御ワードPCWのデータをプ
ールページ制御ワードPCWのアドレスに書き込むこと
によって、プールページ制御ワードPCWの変更が行わ
れ、受信制御ワードRCWのチェインからの取り外しが
完了する。
【0088】15)ステップ1300(通信後処理) 通信ライブラリは、受信制御ワードRCWを一定間隔で
読み出しており、ステップ1300において、通信ライ
ブラリが、受信制御ワードRCWを読み出し、図9に示
す受信制御ワードRCWの受信状態コードの中の転送終
了ビットがオフすると、通信後処理を行う。この通信後
処理において、通信ライブラリは、受信制御ワードRC
Wに記載してあるプールページ番号PPNとページ内オ
フセットから、ハッシュ関数のアルゴリズムを用いて、
受信バッファ上の実アドレスを求め、データ長に相当す
るデータを読み出して、RECV関数に記載しているユ
ーザー空間のアドレスにメッセージを転送する。
【0089】本実施の形態によれば、複数のプロセス
が、数キロバイト以下のメッセージを大量に転送する通
信においても、受信側プロセスのメモリ管理オーバーヘ
ッドを最小にして、メモリを有効に利用し得るものとな
る。
【0090】即ち、主記憶MS上に常駐し、ノードND
で実行されるプロセスが使用する仮想空間上に、論理ア
ドレス上も実アドレス上も連続でないプールページPP
Nにより構成される受信バッファPOOLと、主記憶M
S上に配置され、受信バッファPOOLを管理する受信
バッファ制御情報PCBとを有し、メッセージを受信す
るノードNDは、受信するメッセージに含まれるメッセ
ージヘッダの通信制御情報と、受信バッファ制御情報P
CBを用いて、メッセージを受信する受信バッファPO
OL上の実アドレスを求めるものであるため、従来のリ
モートメモリ転送方式のように、受信バッファとして、
ページ固定の実アドレス領域を用いないため、メモリ管
理オーバーヘッドを少なくして、システムの性能の低下
を生じることがない。
【0091】また、本実施の形態によれば、各プロセス
間のセキュリテイ機能を確保できるものとなる。
【0092】即ち、従来の方式の一つであるリングバッ
ファ受信方式では、リング制御ワードが一面しなく、O
S間通信の場合のように、受信側プロセスが1プロセス
で、通信量が比較的少ない場合に最適化してあるが、マ
ルチユーザー間でプロセス間通信する場合は、複数のプ
ロセス間でプロセス間通信が発生した場合、各プロセス
間のセキュリティ機能が確保できないものである。
【0093】それに対して、各ノードNDは、論理的通
信路の端点にポート識別子を有することにより、通信路
を一意的とし、各ノードNDは、受信バッファ制御情報
PCBと受信制御ワードRCWを識別子毎に保持し、メ
ッセージ受信時には、このメッセージ上の送信先ポート
識別子と受信バッファ制御情報PCBのプールページ番
号PPNに基づいて、プールページ番号変換テーブルP
TEのエントリアドレスを計算して、実アドレスページ
番号を求め、この実アドレスページ番号とページ内オフ
セットからメッセージを受信する受信バッファ上の実ア
ドレスを求めるようにしているため、複数プロセス間の
プロセス通信に対しても、各プロセス間でプロテクト機
能を保持し得るものとなる。
【0094】また、本実施の形態によれば、メモリの有
効利用を図り得るものとなる。
【0095】即ち、例えば、従来のリングバッファ受信
方式の考え方を拡張して、リングバッファを複数面保持
して、受信プロセス毎に管理するようにした場合、受信
プロセスは、リング制御ワード領域として、受信メッセ
ージ数によらず、主記憶上に一定の大きさの領域を確保
しなければならないため、通信するメッセージが少数の
場合は、メモリ未使用領域が発生し、メモリの有効利用
が図れなくなる。
【0096】それに対して、主記憶MS上に配置され、
受信バッファPOOL上のアドレスとデータサイズを、
メッセージ受信後に求めることが可能な情報を記載する
受信制御ワードRCWを有し、この受信制御ワードRC
Wは、チェインして用意され、受信制御ワードRCW
は、チェインすべき次の受信制御ワードのアドレスを有
するようにすることにより、受信制御ワードRCWは、
受信メッセージの数に応じて自由に拡張可能であるた
め、受信制御ワードRCWの領域として、一定の大きさ
を確保する必要がなく、メモリの有効利用が図れるもの
となる。
【0097】また、本実施の形態によれば、受信プロセ
スの受信メッセージ数の制限を構造的に可能な限り排除
し得るものとなる。
【0098】即ち、従来のリングバッファ制御方式で
は、リング制御ワードの総数により、受信プロセスが受
信可能なメッセージ数が決定されてしまい、複数のプロ
セス間で、数キロ程度の短いメッセージを多数通信する
ことが困難である。
【0099】それに対して、主記憶MS上に配置され、
受信バッファPOOL上のアドレスとデータサイズを、
メッセージ受信後に求めることが可能な情報を記載する
受信制御ワードRCWを有し、この受信制御ワードRC
Wは、チェインして用意され、受信制御ワードRCW
は、チェインすべき次の受信制御ワードのアドレスを有
するようにすることにより、受信制御ワードRCWのチ
ェインの数は、受信メッセージの数に応じて自由に拡張
可能であるため、数キロ程度の短いメッセージを多数通
信することも可能となる。
【0100】次に、本発明の第2の実施の形態につい
て、図1,図2並びに図11乃至図13を用いて説明す
る。
【0101】上述した本発明の一実施の形態にでは、プ
ールページ番号変換テーブルPTEは主記憶上に配置さ
れており、プールページ番号変換テーブルPTEをサー
チするためのメモリアクセスのオーバーヘッドが発生す
るため、このオーバーヘッドを解消するために、プール
ページ番号変換テーブルPTEをキャッシュするように
している。
【0102】図1及び図2は、上述した実施の形態と同
一の構成を有している。
【0103】図11は、本発明の第2の実施の形態によ
るメッセージ受信制御方式を適用する並列プロセッサの
中のネットワークアダプタ装置ADPの受信回路300
のシステム構成図であり、ここでは、図3における受信
回路300と区別する意味で受信回路300’として説
明する。
【0104】受信回路300’は、プールページ番号変
換テーブルPTEをキャッシュして内蔵したネットワー
クアダプタ装置ADPであり、メッセージの受信制御を
行う受信制御回路310’と、ネットワークNWからの
メッセージをバッファする受信バッファ回路350と、
ハッシュ関数を発生するハッシュ関数回路320と、連
想メモリ回路330と、比較回路340とから構成され
ている。
【0105】ネットワークNWから受信信号線600を
介して受信したデータの内、メッセージヘッダは、受信
制御回路310’に転送され、メッセージデータは、受
信バッファ回路350に転送される。
【0106】受信制御回路310’は、ハッシュ引数信
号線321を介して、ハッシュ関数回路320に引数を
送る。ハッシュ関数回路320は、この引数に応じて、
ハッシュ法に基づいて、ハッシュ信号を生成し、ハッシ
ュ信号線322を介して、受信制御回路310’に送
る。
【0107】受信制御回路310’は、アドレス線31
1,バイト数線312,主記憶リード要求信号線31
3,主記憶ライト要求線314及びデータ線315から
構成されている。
【0108】受信制御回路310’は、メッセージヘッ
ダに基づいて、受信バッファの実アドレスを求める。実
アドレスの求める方法については、後述する。受信制御
回路310’は、データ線315からこの実アドレスデ
ータを主記憶アクセス回路100に送り、また、転送開
始線317から転送開始信号を受信バッファ回路350
に送り、同時に、データ長線316から送るべきデータ
のデータ長を受信バッファ回路350に送る。受信バッ
ファ回路350は、これらの信号を受けて、ストアされ
たメッセージデータをライトデータ線352を介して主
記憶アクセス回路100に転送する。転送が終了する
と、受信バッファ回路350は、転送終了信号を転送終
了信号線351を介して、受信制御回路310’に送出
する。
【0109】連想メモリ回路330の構成については、
図12を用いて後述する。連想メモリ回路330には、
受信制御回路310’と、メモリアクセス制御線32
6,書き込み制御線327,アドレス線328及びデー
タ線329によって接続されている。また、連想メモリ
回路330からは、プールページ番号信号線331及び
有効ビット信号線333が、比較回路340に接続され
ている。さらに、連想メモリ回路330からは、実アド
レスページ番号信号線332が、受信制御回路310’
に接続されている。また、受信制御回路310’から
は、比較回路340にプールページ番号信号線334が
接続されている。比較回路340からは、一致信号線3
41が受信制御回路310’に接続されている。
【0110】比較回路340は、連想メモリ回路330
からプールページ番号信号線331を通じて送られてく
るプールページ番号と、受信制御回路310’からプー
ルページ番号信号線334を通じて送られてくるプール
ページ番号とを比較し、両者が一致し、かつ、連想メモ
リ回路330から有効ビット線333を通じて送られて
くる有効ビットがオンの場合に、一致信号線341を介
して、受信制御回路310’に一致信号を送る。この一
致信号が送られてきたときのみ、実アドレスページ番号
信号線332を通じて送られてくる実アドレスページ番
号を有効とする。
【0111】次に、図12を用いて、連想メモリ回路3
30の構成について説明する。図12は、本発明の第2
の実施の形態によるメッセージ受信制御方式を適用する
並列プロセッサの中のネットワークアダプタ装置ADP
の受信回路300の中の連想メモリ回路330の構成図
である。
【0112】連想メモリ回路330は、有効ビットと、
プールページ番号と、実アドレスページ番号のテーブル
から構成されている。アドレス信号線328を通じて、
ポート識別子を入力アドレスとして入力され、この入力
に応じて、プールページ番号信号線331を通じて、プ
ールページ番号が出力され、有効ビット信号線333を
通じて、有効ビットが出力され、実アドレスページ番号
信号線332を通じて、実アドレスページ番号が出力さ
れる。
【0113】次に、メッセージ受信時における連想メモ
リ回路330の登録動作について説明する。
【0114】上述した図10のステップの中で、ステッ
プ1240を除いて、ステップ1100からステップ1
300は、同一であり、ここでは、ステップ1240に
代わる新しいステップ1240’について説明する。
【0115】10’)ステップ1240’(PTE読み
出し) ステップ1240’において、受信制御回路310’
は、連想メモリ回路330に対して、メモリアクセス制
御線326をオンして、アドレス線328を通じて、ポ
ート識別子を送る。所定時間後、連想メモリ回路330
は、プールページ番号信号線331を通じて、プールペ
ージ番号が出力し、有効ビット信号線333を通じて、
有効ビットが出力し、実アドレスページ番号信号線33
2を通じて、実アドレスページ番号が出力する。
【0116】比較回路340は、プールページ番号信号
線331を通じて入力する連想メモリ回路330の出力
タグであるプールページ番号と、プールページ番号信号
線320を通じて入力するプールページ番号を比較する
とともに、有効ビット信号線333を通じて入力する有
効ビットをチェックする。ここで、初期アクセス時に
は、有効ビットはオフしているため、比較回路340の
一致信号線341から出力する一致信号はオンしない。
【0117】そこで、受信制御回路310’は、320
から転送されてきたプールページ番号変換テーブルPT
Eのエントリアドレスを、アドレス線311を通じて、
図2に示す主記憶アクセス回路100に出力する。ま
た、受信制御回路310’は、受信したメッセージの中
のメッセージヘッダ中のデータ長に基づいて、要求バイ
ト数をバイト数線312を通じて、主記憶アクセス回路
100に出力する。さらに、主記憶アクセス要求を主記
憶リード要求信号線313を通じて、主記憶アクセス回
路100に出力する。
【0118】図2に示す主記憶アクセス回路100は、
受信制御回路310’から送られてきたプールページ番
号変換テーブルPTEのエントリアドレス及び要求バイ
ト数に基づいて、SBUSを通じて、図1に示す主記憶
制御装置SCUから図6に示すプールページ番号変換テ
ーブルPTEのエントリを読み出し、このプールページ
番号変換テーブルPTEのエントリを図3に示すデータ
線315を通じて受信制御回路310’に転送する。プ
ールページ番号変換テーブルPTEのエントリとして
は、例えば、プールページ番号1(PPN−1)に対し
ては、実アドレスページ番号Aが受信バッファ(プール
ページ)のヘッダとして読み出され、受信制御回路31
0’に転送される。
【0119】さらに、受信制御回路310’は、転送さ
れたプールページ番号変換テーブルPTEのエントリを
連想メモリ回路330に転送する。即ち、受信制御回路
310’は、メモリアクセス制御線326と書き込み信
号線327をオンして、アドレス線328にポート識別
子を連想メモリ回路330に送り、データ線329にプ
ールページ番号と実アドレスページ番号を連想メモリ回
路330に送る。その結果、ポート識別子の示すアドレ
ス上には、プールページ番号と実アドレスページ番号を
連想メモリ上に登録できる。登録が終了すれば、次回、
このプールページ番号のエントリに対するメッセージ受
信があると、連想メモリ回路330を利用することによ
り、主記憶のアクセスは不要となり、プールページ番号
変換テーブルPTEをアクセスするためのメモリアクセ
スのオーバーヘッドを解消できる。
【0120】次に、上述のようにして、登録されたプー
ルページ番号変換テーブルを無効化する方法について、
図13を用いて説明する。図13は、本発明の第2の実
施の形態によるメッセージ受信制御方式を適用する並列
プロセッサの中の主記憶上の特定アドレス上のメモリの
構成図である。
【0121】メモリアドレス領域は、メインメモリとし
て用いる実メモリ領域と、プールページ番号変換テーブ
ルPTEのエントリPTE−1,PTE−2,…,PT
E−Nが配置されたメモリマップ領域から構成されてい
る。
【0122】ネットワークアダプタ装置ADPの連想メ
モリ回路330に登録されているプールページ番号変換
テーブルPTEのエントリの無効化は、これらのエント
リのアドレスに対して、ストア命令を発行することで達
成される。
【0123】図1に示す命令処理装置IPは、主記憶制
御装置SCUに対して、ストア命令を発行する。主記憶
制御装置SCUは、ストア命令のアドレスをデコードし
て、メモリにマップされたプールページ番号変換テーブ
ルPTEのエントリアドレスであることを認識すると、
システムバスSBUSを通じて、あDPにストア命令を
発行し、アドレス及びストアデータを転送する。
【0124】ネットワークアダプタ装置ADPは、転送
されたアドレスを主記憶アクセス回路100内の受信ア
ドレスレジスタにセットし、また、転送されたストアデ
ータを受信制御情報レジスタにセットする。受信アドレ
スレジスタと受信制御情報レジスタの内容は、受信回路
300内の受信制御回路310’に転送される。
【0125】受信制御回路310’は、メモリアクセス
制御信号線326をオンし、アドレス線327に、転送
されたアドレスの内、ポート識別子に相当するアドレス
を連想メモリ回路330に出力して、連想メモリ回路3
30からデータ線329を通じて、有効ビットとプール
ページ番号と実アドレスページ番号から構成されるデー
タを読み出す。続いて、メモリアクセス制御信号線32
6と書き込み信号線328をオンして、アドレス線32
7を通じて、ポート識別子を連想メモリ回路330に出
力し、データ線329を通じて、読みだしたデータの
内、有効ビットは0にし、プールページ番号と実アドレ
スページ番号は読みだしたデータのままで、連想メモリ
回路330に送る。これにより、連想メモリ回路330
の内の特定のエントリが無効にされる。
【0126】また、主記憶上のプールページ番号変換テ
ーブルPTEを無効化する必要があるが、そのために
は、プールページ番号変換テーブルPTEのエントリの
有効ビットをオフすることにより、達成できる。
【0127】本実施の形態によれば、複数のプロセス
が、数キロバイト以下のメッセージを大量に転送する通
信においても、受信側プロセスのメモリ管理オーバーヘ
ッドを最小にして、メモリを有効に利用し得るものとな
る。
【0128】また、各プロセス間のセキュリテイ機能を
確保できるものとなる。
【0129】また、メモリの有効利用を図り得るものと
なる。
【0130】また、受信プロセスの受信メッセージ数の
制限を構造的に可能な限り排除し得るものとなる。
【0131】また、本実施の形態によれば、メッセージ
受信時の主記憶アクセスのオーバーヘッドを解消し得る
ものとなる。
【0132】即ち、受信制御情報を主記憶上に配置する
と、メッセージの受信時に、主記憶アクセスオーバーヘ
ッドが発生して、ハードウエアの受信性能が低下する
が、主記憶とシステムバスを介して接続され、ネットワ
ークからメッセージを一旦受信するネットワークアダプ
タに、プールページ番号と上記受信メッセージの通信制
御情報をキーにして、実アドレスページ番号を出力する
連想メモリを備えることにより、メッセージ受信時に
は、連想メモリを用いて、プールページ番号に対応する
実アドレス番号を求めることができるため、メッセージ
受信時の主記憶アクセスのオーバーヘッドを解消し得る
ものとなる。
【0133】
【発明の効果】本発明によれば、メッセージ受信制御方
式において、複数のプロセスが、数キロバイト以下のメ
ッセージを大量に転送する通信においても、受信側プロ
セスのメモリ管理オーバーヘッドを最小にして、メモリ
を有効に利用し得るものとなる。
【図面の簡単な説明】
【図1】本発明の一実施の形態によるメッセージ受信制
御方式を適用する並列プロセッサのシステム構成図であ
る。
【図2】本発明の一実施の形態によるメッセージ受信制
御方式を適用する並列プロセッサの中のネットワークア
ダプタ装置のシステム構成図である。
【図3】本発明の一実施の形態によるメッセージ受信制
御方式を適用する並列プロセッサの中のネットワークア
ダプタ装置の受信回路のシステム構成図である。
【図4】本発明の一実施の形態によるメッセージ受信制
御方式を適用する並列プロセッサ間の論理的なメッセー
ジ通信路の概念的構成図である。
【図5】本発明の一実施の形態によるメッセージ受信制
御方式を用いて、並列プロセッサ間の論理的なメッセー
ジ通信路上を転送されるメッセージの構成図である。
【図6】本発明の一実施の形態によるメッセージ受信制
御方式における通信制御のために主記憶装置内の主記憶
上に配置される通信制御情報の構成図である。
【図7】本発明の一実施の形態によるメッセージ受信制
御方式における通信制御のために主記憶装置内の主記憶
上に配置される受信制御情報構造体の構成図である。
【図8】本発明の一実施の形態によるメッセージ受信制
御方式における通信制御のために主記憶装置内の主記憶
上に配置される受信制御情報構造体の中のプールページ
制御ワードの構成図である。
【図9】本発明の一実施の形態によるメッセージ受信制
御方式における通信制御のために主記憶装置内の主記憶
上に配置される通信情報の中の通信制御ワードの構成図
である。
【図10】本発明の一実施の形態によるメッセージ受信
制御方式における受信動作を説明するためのフローチャ
ートである。
【図11】本発明の第2の実施の形態によるメッセージ
受信制御方式を適用する並列プロセッサの中のネットワ
ークアダプタ装置の受信回路のシステム構成図である。
【図12】本発明の第2の実施の形態によるメッセージ
受信制御方式を適用する並列プロセッサの中のネットワ
ークアダプタ装置の受信回路の中の連想メモリ回路の構
成図である。
【図13】本発明の第2の実施の形態によるメッセージ
受信制御方式を適用する並列プロセッサの中の主記憶上
の特定アドレス上のメモリの構成図である。
【符号の説明】
100…主記憶アクセス回路 110…制御線 120…アドレス線 130…データ線 200…送信回路 220…送信制御信号群 300…受信回路 310,310’…受信制御回路 320…ハッシュ関数回路 330…連想メモリ回路 340…比較回路 350…受信バッファ回路 360…受信制御信号群 500…送出信号線 600…受信信号線 ADP…ネットワークアダプタ装置 Ebit…有効ビット HPN…先頭プールページポインタ IP…命令処理装置 HRP…RCW先頭アドレスポインタ MS…主記憶装置 ND…ノード NW…ネットワーク PCB…受信バッファ制御情報 PCW…プールページ制御ワード POOL…受信バッファ PPN…プールページ番号 PTE…プールページ番号変換テーブル RCW…受信制御ワード RPN…実アドレス番号 SCU…主記憶制御装置 TCB…通信制御情報 TPN…最終プールページポインタ

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 プロセッサと主記憶から構成される複数
    のノードを、ネットワークにより接続し、それぞれの上
    記ノードにおいて、オペレーティングシステムの制御下
    でプロセスが実行され、上記ノード間で上記ネットワー
    クを介してプロセス間通信を行い、メッセージを受信す
    る並列プロセッサにおけるメッセージ受信制御方式にお
    いて、 上記主記憶上に常駐し、上記ノードで実行されるプロセ
    スが使用する仮想空間上に、論理アドレス上も実アドレ
    ス上も連続でないプールページにより構成される受信バ
    ッファと、 上記主記憶上に配置され、上記受信バッファを管理する
    受信バッファ制御情報とを有し、 上記メッセージを受信する上記ノードは、受信する上記
    メッセージに含まれる通信制御情報と、上記受信バッフ
    ァ制御情報を用いて、メッセージを受信する上記受信バ
    ッファ上の実アドレスを求めることを特徴とするメッセ
    ージ受信制御方式。
  2. 【請求項2】 請求項1記載のメッセージ受信制御方式
    において、さらに、 上記主記憶上に配置され、上記受信バッファ上のアドレ
    スとデータサイズを、メッセージ受信後に求めることが
    可能な情報を記載する受信制御ワードを有し、 この受信制御ワードは、チェインして用意され、 上記受信制御ワードは、チェインすべき次の受信制御ワ
    ードのアドレスを有することを特徴とするメッセージ受
    信制御方式。
  3. 【請求項3】 請求項2記載のメッセージ受信制御方式
    において、 上記受信バッファは、論理アドレスページ番号及び実ア
    ドレスページ番号とは独立したプールページ番号とペー
    ジ内オフセットによってアドレス付けされ、 上記受信バッファ制御情報は、上記プールページ番号を
    用いて上記受信バッファを制御するプールページ制御ワ
    ードと、プールページ番号と実アドレスページ番号の対
    応を示すプールページ番号変換テーブルから構成され、 上記メッセージを受信する上記ノードは、上記メッセー
    ジを受信すると、上記プールページ制御ワードから上記
    プールページ番号と上記ページ内オフセットを求め、 更に、上記プールページ制御ワードから求められたプー
    ルページ番号と上記受信メッセージに含まれる上記通信
    制御情報に基づいて、上記プールページ番号変換テーブ
    ルのエントリアドレスを計算して、実アドレスページ番
    号を求め、この実アドレスページ番号と上記ページ内オ
    フセットからメッセージを受信する受信バッファ上の実
    アドレスを求めることを特徴とするメッセージ受信制御
    方式。
  4. 【請求項4】 請求項3記載のメッセージ受信制御方式
    において、 上記プールページ制御ワードは、チェインしている第1
    番目の受信制御ワードのアドレス値を保持し、 メッセージ受信時には、プールページ制御ワードから第
    1番目の受信制御ワードのアドレスを求め、メッセージ
    を転送したプールページページ番号とページ内オフセッ
    トをこの受信制御ワードに記録し、 記録を完了すると、上記プールページ制御ワード内のポ
    インタを、チェインした第2番目の受信制御ワードのア
    ドレスに変更することを特徴とするメッセージ受信制御
    方式。
  5. 【請求項5】 請求項3記載のメッセージ受信制御方式
    において、 受信側プロセスは、メッセージの受信が完了すると、上
    記受信制御ワードに記録されているプールページ番号,
    ページ内オフセット及びデータサイズを読み出し、 上記プールページ番号変換テーブルを用いて、プールペ
    ージ番号を実アドレスページ番号に変換し、 この実アドレスページ番号と上記ページ内オフセットか
    らユーザーの受信領域の先頭アドレスをもとめ、 上記受信制御ワード内のデータサイズ分のデータを読み
    出して、ユーザーの受信領域に転送することを特徴とす
    るメッセージ受信制御方式。
  6. 【請求項6】 請求項3記載のメッセージ受信制御方式
    において、 上記主記憶とシステムバスを介して接続され、上記ネッ
    トワークからメッセージを一旦受信するネットワークア
    ダプタを有し、 このネットワークアダプタは、上記プールページ番号と
    上記受信メッセージの通信制御情報をキーにして、実ア
    ドレスページ番号を出力する連想メモリを有し、 メッセージ受信時には、上記連想メモリを用いて、上記
    プールページ番号に対応する実アドレス番号を求め、 上記連想メモリ上に該当するプールページ番号が登録さ
    れていない場合には、上記主記憶上の上記プールページ
    番号変換テーブルを用いて、上記実アドレスページ番号
    を求めるとともに、プールページ番号と求めた実アドレ
    スページ番号を上記連想メモリに登録することを特徴と
    するメッセージ受信制御方式。
  7. 【請求項7】 請求項2記載のメッセージ受信制御方式
    において、 上記各ノードは、論理的通信路の端点にポート識別子を
    有することにより、通信路を一意的とし、 上記各ノードは、上記受信バッファ制御情報と受信制御
    ワードを上記識別子毎に保持し、 メッセージ受信時には、このメッセージ上の送信先ポー
    ト識別子と上記受信バッファ制御情報のプールページ番
    号に基づいて、上記プールページ番号変換テーブルのエ
    ントリアドレスを計算して、実アドレスページ番号を求
    め、この実アドレスページ番号とページ内オフセットか
    らメッセージを受信する受信バッファ上の実アドレスを
    求めることを特徴とするメッセージ受信制御方式。
  8. 【請求項8】 請求項7記載のメッセージ受信制御方式
    において、 上記メッセージ上の上記送信先ポート識別子と上記プー
    ルページ番号を引数として、ハッシュ関数により上記プ
    ールページ番号変換テーブルのエントリアドレスを求め
    ることを特徴とするメッセージ受信制御方式。
JP07327264A 1995-12-15 1995-12-15 メッセージ受信制御方式 Expired - Fee Related JP3122606B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP07327264A JP3122606B2 (ja) 1995-12-15 1995-12-15 メッセージ受信制御方式
US08/766,897 US5867664A (en) 1995-12-15 1996-12-13 Transferring messages in a parallel processing system using reception buffers addressed by pool pages in a virtual space

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP07327264A JP3122606B2 (ja) 1995-12-15 1995-12-15 メッセージ受信制御方式

Publications (2)

Publication Number Publication Date
JPH09167143A true JPH09167143A (ja) 1997-06-24
JP3122606B2 JP3122606B2 (ja) 2001-01-09

Family

ID=18197182

Family Applications (1)

Application Number Title Priority Date Filing Date
JP07327264A Expired - Fee Related JP3122606B2 (ja) 1995-12-15 1995-12-15 メッセージ受信制御方式

Country Status (2)

Country Link
US (1) US5867664A (ja)
JP (1) JP3122606B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6205576B1 (en) * 1998-06-05 2001-03-20 Nortel Networks Limited Method and apparatus for identifying indirect messaging relationships between software entities
SE524262C2 (sv) * 2001-10-24 2004-07-20 Abb Ab Metod och system för automatisk samverkan mellan intelligenta enheter i ett nätverk
US6654865B2 (en) * 2002-01-31 2003-11-25 Ubicom, Inc. Netbufs: communication protocol packet buffering using paged memory management
US20030182563A1 (en) * 2002-03-22 2003-09-25 Liu James C. Method and apparatus for software license verification
JP4051703B2 (ja) * 2003-03-31 2008-02-27 日本電気株式会社 シングルプロセッサ向けosによる並列処理システム、並列処理プログラム
US7171519B2 (en) * 2004-02-27 2007-01-30 International Business Machines Corporation System, method and program for assessing the activity level of a database management system
US20060015648A1 (en) * 2004-06-30 2006-01-19 Nokia Inc. Chaining control marker data structure
US10298491B2 (en) * 2016-08-25 2019-05-21 Cisco Technology, Inc. Efficient path detection and validation between endpoints in large datacenters

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3453757B2 (ja) * 1989-05-29 2003-10-06 株式会社日立製作所 バッファ管理方法
US5440691A (en) * 1992-02-27 1995-08-08 Digital Equipment Corporation, Pat. Law Group System for minimizing underflowing transmit buffer and overflowing receive buffer by giving highest priority for storage device access
US5634127A (en) * 1994-11-30 1997-05-27 International Business Machines Corporation Methods and apparatus for implementing a message driven processor in a client-server environment
EP0717532A1 (en) * 1994-12-13 1996-06-19 International Business Machines Corporation Dynamic fair queuing to support best effort traffic in an ATM network
US5781801A (en) * 1995-12-20 1998-07-14 Emc Corporation Method and apparatus for receive buffer management in multi-sender communication systems

Also Published As

Publication number Publication date
JP3122606B2 (ja) 2001-01-09
US5867664A (en) 1999-02-02

Similar Documents

Publication Publication Date Title
JP2977688B2 (ja) マルチプロセッシング装置、方法、及びこれらに使用するプロセッサ
JP3697831B2 (ja) コンピュータシステム
EP0889623B1 (en) System and method for efficient remote disk I/O
US4445174A (en) Multiprocessing system including a shared cache
US6385705B1 (en) Circuit and method for maintaining order of memory access requests initiated by devices in a multiprocessor system
US5579503A (en) Direct cache coupled network interface for low latency
US6662276B2 (en) Storing directory information for non uniform memory architecture systems using processor cache
JPH0230536B2 (ja)
JPH0962558A (ja) データベース管理システム及び方法
WO2007106383A1 (en) Selective address translation for a resource such as a hardware device
US8255913B2 (en) Notification to task of completion of GSM operations by initiator node
EP0669579B1 (en) Coherence index generation for use by an input/output adapter
JP2714952B2 (ja) 計算機システム
JP3288712B2 (ja) コンテキストデータ検索用のリンクキャッシュ
JP2746530B2 (ja) 共有メモリマルチプロセッサ
JP3122606B2 (ja) メッセージ受信制御方式
US6405292B1 (en) Split pending buffer with concurrent access of requests and responses to fully associative and indexed components
JP3169624B2 (ja) プロセッサ間通信方法およびそのための並列プロセッサ
JPS60237553A (ja) キヤツシユコヒ−レンスシステム
US7882166B2 (en) Inter-computer data transfer method and inter-computer network system
JPH06103150A (ja) システム間の更新の速度をあげる方法
JPH0822418A (ja) 仮想アドレス空間管理装置
JP2798140B2 (ja) 仮想空間制御方式
JPH09305489A (ja) 情報処理システム及びその制御方法
JP2000020399A (ja) 仮想計算機システム

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees