JPH01253036A - メッセージ・パッシング管理方式 - Google Patents

メッセージ・パッシング管理方式

Info

Publication number
JPH01253036A
JPH01253036A JP63080047A JP8004788A JPH01253036A JP H01253036 A JPH01253036 A JP H01253036A JP 63080047 A JP63080047 A JP 63080047A JP 8004788 A JP8004788 A JP 8004788A JP H01253036 A JPH01253036 A JP H01253036A
Authority
JP
Japan
Prior art keywords
message
record
command
information
cpu
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP63080047A
Other languages
English (en)
Inventor
Shigeki Yamada
茂樹 山田
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP63080047A priority Critical patent/JPH01253036A/ja
Publication of JPH01253036A publication Critical patent/JPH01253036A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、メッセージ・パッシング管理方式に関し、特
にプロセス間でメツセージ通信を行うことにより、多数
のプロセスを並列的に実行するシステムにおいて、メツ
セージの実行管理を高速に効率よく行う管理方式に関す
るものである。
〔従来の技術〕
例えば、オブジェクト指向プログラムでは、−般に「プ
ロセスjのことをrオブジェクト」と呼び、また「メツ
セージ通信Jのことをrメッセージ・パッシング」と呼
ぶのが通例である。
オブジェクト間でメッセージ・パッシングを行うこと、
つまりプロセス間でメツセージ通信を行うことにより、
多数のオブジェクトを並列的に実行するシステムでは、
多数のオブジェクトが互いに他のオブジェクトとは独立
して、つまり互いに非同期にメツセージを送出するので
、メツセージ受信側のオブジェクトがメツセージを実行
できる状態になるまで、メツセージを保持しておき、メ
ツセージ実行可能になった時点で、受信側オブジェクト
にメツセージを引き渡す機能が必要となる。
さらに詳述すると、同一受信オブジェクトに対して異な
る複数のメツセージが到着しており、それらが実行され
るのを待っている状態、あるいは異なる複数の受信オブ
ジェクトの各々にメツセージが到着しており、それらが
実行されるのを待っている状態があるので、これらのメ
ツセージの状態管理、つまりどのメツセージが実行可能
となっているかの管理、および実行スケジューリング管
理、つまりどのメツセージを優先的に実行させるかの管
理等の機能が必要になる。
従来は、これらのメツセージ管理機能は、計算機のオペ
レーティングシステム(OS)の一部、あるいは専用の
プログラムにより実現しており(これらをメツセージ管
理ソフトウェアと呼ぶ)、さらにこれらのメツセージ管
理ソフトウェアは、実際にオブジェクトを実行するCP
Uと同一のCPUで実行されるのが通常であった。
第10図は、従来のメツセージ管理ソフトウェアの機能
ブロック図である。
メツセージ管理ソフトウェアの一例としては。
甲斐他「実時間システム用並列オブジェクト実行モデル
の考察」電子通信学会交換研究会5E86−11 L 
Pp、67〜72. 1986に記載されたものがある
。第10図は、上記並列オブジェクト実行モデルのブロ
ックを示したものである。この方式では、各メツセージ
に関する制御情報をメモリブロックに記憶しておき、こ
れらのメモリブロックをキューに接続して管理している
。キューは、第10図に示すように、返答メツセージキ
ュー(1−1)、共通メツセージキュー(1−2)、重
複メツセージキュー「一般j(1−3)、重複メツセー
ジキュー「返答j(1−4)から構成されている。図中
、実線は制御の流れを示し、破線はメツセージの移動を
示す。
先ず、メツセージが生成されると、その制御情報を共通
メツセージキュー(1−2)につなぐ(以下、制御情報
という単語を省略する)。メツセージ管理ソフトウェア
は、共通メツセージキュー(1−2)からメツセージを
取り出し、受信オブジェクトの状態により、次の■〜■
の処理を行う。
■受信オブジェクトが「メツセージ待ち」の場合には、
受信オブジェクトを直ちに起動する。
■受信オブジェクトが「実行中」の場合には、そのメツ
セージを重複メツセージキュー「一般J(1−3)につ
なぎ、次のメツセージキューの処理を行う。メツセージ
管理ソフトウェアは、1つのメツセージの処理が終了す
るごとに1重複メツセージキュー「一般j(1−3)を
サーチする。
■受信オブジェクトが「返答待ちJの場合には、重複メ
ツセージキュー「返答j(1−4)にそのメツセージを
つなぎ、次のメツセージの処理を行う。
重複メツセージキュー「返答j(1−4)のサーチは、
返答メツセージの処理が終了するごとに行われる。
以上の処理により、メツセージの到着順序に従った制御
が行われる。また、返答待ち状態では、メツセージを受
は付けないことにより、1つのメツセージに対する処理
の継続性が保証される。
なお、第10図の返答メツセージキュー(1−1)につ
ながれているメツセージの最初のものが実行され、これ
が終了すると、次に該当キューにメツセージが未だつな
がれているときには、順次これらを実行する。そして、
該当キューにもうないときには、重複メツセージキュー
「返答」(1−4)の最初につながれているものを実行
し、これが終了すると、次に該当キューにメツセージが
未だつながれているときには、順次これらを実行する。
そして、なくなったときには、共通メツセージキュー(
1−2)の最初のものについて、返答待ちの状態であれ
ば1重複メツセージキュー「返答j(1−4)の最後に
つなぎ、また実行中の状態であれば、重複メツセージキ
ュー「一般j (1−3)の最後につなぐ。共通メツセ
ージキュー(1−2)において、これらの状態以外のも
のは順次実行し、該当キューにメツセージが未だつなが
れているときには、これらを順次実行し、つながれてい
ないときには重複メツセージキューr一般」(1−3)
の最初のものを実行する。このようにして、メツセージ
管理ソフトウェアは、キュー(1−1)(1−4)(1
−2)(1−3)の順序で処理を実行していく。
〔発明が解決しようとする課題〕
上述のように、従来技術では、メツセージのやりとりを
行っているユーザプログラムから見ると、メツセージ管
理ソフトウェアが一種のオーバヘッドになっている。す
なわち、メツセージ管理ソフトウェアの実行により、オ
ブジェクトの実行に本来割り当てられるべきCPUの時
間が相対的に減少してしまうとともに、メツセージ管理
ソフトウェアとオブジェクトの間での処理の切り替え時
に、情報のセーブ・リストアが必要となるため、処理オ
ーバヘッドを招いている。さらに、メツセージ管理ソフ
トウェアは、第10図に示すように、メツセージ状態管
理を行わなければならず、これらがメツセージパッシン
グを行うシステムの処理能力を大幅に低下させてしまう
このような従来の課題を解決するため、本発明の第1の
目的は、オブジェクト間でメッセージ・パッシングを行
うことにより、多数のオブジェクトを並列的に実行する
システムにおいて、メッセージ・パッシングの実行管理
を極めて効率よく、高速に行うことが可能なメッセージ
・パッシング管理方式を提供することにある。また、本
発明の第2の目的は、メツセージ間で優先順位がある場
合に、優先度の高い順にメツセージを実行させるための
高速なメッセージ・パッシング管理方式を提供すること
にある。また、本発明の第3の目的は、シングルプロセ
ッサシステムのみならず、マルチプロセッサシステムに
も適用可能であり、各種システムに幅広く適用できる融
通性の高い、経済的なメッセージ・パッシング管理方式
を提供することにある。
〔課題を解決するための手段〕
上記目的を達成するため、本発明のメッセージ・パッシ
ング管理方式は、オブジェクト間でメッセージ・パッシ
ングを行うことにより、複数のオブジェクトを並列的に
実行する情報処理システムにおいて、メツセージを受信
するオブジェクトの番号と、該メツセージのブロックア
ドレスと、該メツセージの管理状態情報からなるレコー
ドを、メツセージごとに登録し、かつ該レコードを管理
するメッセージ・パッシング管理手段を有し、該メッセ
ージ・パッシング管理手段は、オブジェクト間で通信し
たいメツセージが存在することを知らせる第1の指令を
受けると、該メツセージが返答メツセージを要求しない
場合には、受信オブジェクト番号とメツセージブロック
アドレスをレコードに登録し、また該メツセージが返答
メツセージを要求する場合には、受信オブジェクト番号
とメツセージブロックアドレスと送信オブジェクト番号
をレコードに登録し、また該メツセージが返答要求型メ
ツセージに対する返答メツセージの場合には、既に登録
されている送信オブジェクト番号のレコードに、返答メ
ツセージのメツセージブロックアドレスを追加登録し、
実行可能なメツセージを問い合わせる第2の指令を受け
て、登録されているレコードの中から、メツセージ管理
状態情報に基づいて実行可能なレコードを抽出し、該レ
コードの中で最も優先して実行すべきレコードを選択し
て、該レコードを通知し、各メツセージの実行が完了し
たことを示す第3の指令を受けて。
該指令に対応するレコードを削除することに特徴がある
〔作  用〕
本発明においては、送信オブジェクトから受信オブジェ
クトに通信したいメツセージが存在することを知らせる
コマンドを、メッセージ・パッシング管理システムが受
は取ると、このメツセージ管理情報を登録しておく。す
なわち、メツセージを受信するオブジェクト番号と、メ
ツセージブロックのアドレスと、メツセージの管理状態
情報からなるレコードを、メツセージごとに記憶・管理
する。ただし、メツセージが返答メツセージを要求する
返答要求型のものであれば、その返答メツセージ用の管
理情報の一部もついでに登録しておく、そして、実行可
能になったメツセージが複数個ある場合には、どのメツ
セージを次に実行すべきかを予め選択しておく。CPU
からメッセージ・パッシング管理装置に対して、次に実
行すべきメツセージの問い合わせコマンドがくると、管
理システムは予め選択しておいたメツセージを応答する
これにより、CPUは繁雑なメツセージの実行管理から
解放され、オブジェクトの実行に専念することができる
。すなわち、各CPUは、オブジェクト実行中に、新た
なメツセージが到着しても、それにより処理が中断され
ることなく、自分の都合のよい時期に、メッセージ・パ
ッシング管理装置に問い合わせるだけで、次に実行すべ
きメツセージを知ることができる。従って、処理の中断
に伴う情報セーブ・リストアのオーバヘッドがなくなり
、高速化が実現できる。
本発明では、従来のソフトウェアによる管理に比べると
、メツセージの実行管理のアルゴリズムをハードウェア
の高速性を活用する処理アルゴリズムに改善し、高速化
を図るとともに、CPU側での処理の中断をなくり、C
PU側での処理を単純化することができる。また、各メ
ツセージの実行優先度に従って、順序よく実行させる機
能を待たせることができる。
〔実施例〕
以下、本発明の実施例を、図面により詳細に説明する。
第3図は、本発明で使用されるメツセージのフォーマッ
ト図である。
メツセージは、先頭から順に、メツセージを送信するオ
ブジェクトを示す送信オブジェクトID(I dent
ification)番号フィールド2、メツセージを
受信するオブジェクトを示す受信オブジェクトID番号
フィールド3、メツセージの種類を指定するメツセージ
タイプ(MTY)フィールド4゜メツセージの処理優先
度を示す優先レベル(LVL)フィールド5、および伝
達したいメツセージの内容を示すメツセージ内容フィー
ルド6からなる。
第4図は、第3図におけるメツセージタイプフィールド
の詳細説明図である。
返答不要メツセージ(00)、返答要メツセージ(01
)、および返答メツセージ(11)の3つのタイプがあ
ることを示している。なお、ここでは、メツセージの中
に、処理をするCPU番号が表示されていないが、第3
図の受信オブジェクトID3の上位ビットが、実行する
CPU番号を暗黙的に意味している。
第6図は、本発明を含むプロセッサ・システムの全体構
成図である。
第6図において、10−1.10−2.10−3はオブ
ジェクトを分担して実行する3台のCPU、11−1.
11−2.11−3は各CPUのローカルメモリ、12
は本発明のメッセージ・パッシング管理装置、13は各
CPUに共通に接続されたCPUバスである。ローカル
メモリ11−1〜11−3には、第3図に示すメツセー
ジブロックと、オブジェクトプログラム等が記憶される
第5図は、第6図におけるCPUバスを介して送信され
るCPUとメッセージ・パッシング管理装置12間のコ
マンドの一覧を示す図である。
コマンドは、メツセージ到着通知コマンド、実行可メツ
セージ読み取りコマンド、およびメツセージ実行完了コ
マンドの3つがある。メツセージ到着通知コマンド、お
よび実行可メツセージ読み取りコマンドにおけるポイン
タアドレス(PA)の上位ビットは、CPU番号を表わ
すように構成しておく。各コマンドは、全て各CPUが
メッセージ・パッシング管理装置12に向って発行され
るが、これらのうち、W r i t e系コマンドと
は、CPUからメッセージ・パッシング管理装置12の
制御レジスタに書き込む方向のコマンドであり、Rea
d系コマンドとは、CPUからメッセージ・パッシング
管理装置12の制御レジスタの内容を読み出す方向のコ
マンドである。ポインタアドレスは、メツセージが記憶
されていたローカルメモリ内のアドレスを示している。
第1図は、本発明の一実施例を示すメッセージ・パッシ
ング管理装置の内部構成図である。
第1図において、アドレスレジスタ20およびデータレ
ジスタ21は、それぞれCPUバス13を介してやりと
りされるコマンドの中のアドレス情報およびデータ情報
を、−時的に記憶する。制御レジスタ22と補助メモリ
23は、処理の中間結果を記憶する。特に、制御レジス
タ22は、後述するように、CPU対応の最優先実行メ
ツセージを表示するレジスタでもある。補助アドレスレ
ジスタ24は、補助メモリ23にアクセスするためのア
ドレスを記憶する。マツチングストア(MS)25は、
各メツセージの管理情報を記憶し、かつ連想検索機能を
有するメモリであって、メッセージ・パッシング管理装
置12の中心的部分である。
MSアドレスレジスタ26、MSデータレジスタ27、
およびMS動作モードレジスタ28は、マツチングスト
ア(MS)25を制御するためのレジスタ群である。演
算装置(ALU)29は、メッセージ・パッシング管理
装置12内の各種演算を実行する。破線内のマイクロプ
ログラム制御部30は、マイクロプログラムによるメッ
セージ・パッシング管理装置12全体の実行制御を実行
し。
CMアドレスレジスタ31、CMアドレス制御回路32
、マイクロプログラムメモリ(CM)33、マイクロ命
令レジスタ34、およびデコーダ35から構成される。
デコーダ35によりデコードされた各種の制御信号は、
制御線36を経由してメッセージ・パッシング管理装置
12内の各部分に供給される。
メッセージ・パッシング管理装置12内における処理の
流れは、CPUバス13を介して送られてきたコマンド
をアドレスレジスタ20およびデータレジスタ21で受
は取り、マイクロプログラム制御部30のもとで、上記
各種のレジスタ、メモリ、ALU29等を使用しながら
マイクロプログラムを実行し、必要に応じてアドレスレ
ジスタ20、データレジスタ21を経由してCPUに応
答を返送する。
第2図は、第1図におけるマツチングストア(MS)の
データ構造とそのフィールドの詳細を説明した図である
(a)に示すように、マツチングストア25は、連想メ
モリ部(MS、A)37とデータメモリ部(MS、D)
38とで構成される。連想メモリ部37は、指定された
検索条件を満たすレコードが記憶されているか否かを各
レコードについて並列的にサーチし1条件を満たす全て
のレコードを識別して、順次取り出す機能を持っている
。ここでは、連想メモリ部37は、連想メモリで構成さ
れているものとする。一方のデータメモリ38は、通常
のランダムアクセスメモリであって、連想メモリ部37
のレコードに1対1に対応してデータを記憶している。
各メツセージの状態は、2つのフラグ(RPY、5TT
)の組合わせにより一意に識別できるようになっている
。フラグRPY、STTは、実行可能なメツセージを検
索する場合の重要な検索キーの役目も果している。第2
図(a)における各単語の意味は、(b−1)(b−2
)に記載されているように、RIDは受信オブジェクト
の識別番号であり、RPYは返答メツセージであり、L
VLはメツセージの僅先度であり、STTはメツセージ
の各種状態であり、PAはメモリのアドレスポインタで
ある。
第8図は、本発明のメッセージ・パッシング管理装置で
用いられるマイクロプログラムのフローチャートである
第6図において、いまCPUl0−2が扱うオブジェク
トから、CPUI O−1が扱うオブジェクトにメツセ
ージを送る場合、CPUl0〜2は先ずローカルメモリ
11−2に用意されたメツセージをCPUl0−1のロ
ーカルメモリ11−1に転送する6その後、CPUl0
−2はメッセージ・パッシング管理装置12に対して、
第5図に示す「メツセージ到着通知コマンドjを送る。
メッセージ・パッシング管理装置12は、そのコマンド
の内容に従って、CPUl0−1のローカルメモリ11
−1をアクセスし、必要な制御情報を取り出してマツチ
ングストア部25に記憶する。
その後、CPUl0−1から「実行可メツセージ読み取
りコマンド」が到達すると、このメツセージの情報を返
送する。これにより、CPU10−1はこのメツセージ
に対する処理(オブジェクトの実行)を開始する。処理
が終了すると、CPU10−1はメッセージ・パッシン
グ管理装置12に対して「メツセージ完了コマンド」を
送る。メッセージ・パッシング管理装置12は、マツチ
ングストア25内に記憶されているレコードを削除する
。これが、一連の基本動作である。
第7図は、本発明で使用されるメツセージの入カバター
ンを示す図、第9図は1本発明の処理シーケンス−チャ
ートである。
次に、具体例として、第7図に示す4個のメツセージ(
ml−m4)が、メツセージ到着通知コマンドにより順
次、メッセージ・パッシング管理装置12に登録される
ものと仮定して説明する。
第7図に示すメツセージm1の到着コマンドが、第9図
の時刻t1でCPUI2からメッセージ・パッシング管
理装置12に入力されると、これは返答不要タイプであ
るため、第8図のステップ50.51,52,53,5
4,55を経由してマツチングストア25に入力され、
第9図のslに示す管理情報(受信オブジェクト1−I
RPYO,5TTIO)が登録される。すなわち、先ず
コマンド種別を判別して(50)、メツセージ到着通知
コマンドであることが判ったとき、ポインタアト麗ス(
PA)により、メモリをアクセスして、受信オブジェク
トID (RID) 、優先レベル(LVL)、メツセ
ージタイプ(MTY)を読み込む(51)。そして、M
TYを識別しく52)、返送不要メツセージ到着通知で
あることを知る。次に、連想メモリ部MS、Aの空きエ
リアのアドレス(FA)を検出する(53)。次に、M
S、AのFAノエリ7にRID、LVLを登録する(5
4)(RPI=0,5TT=10)。同時に、MS、D
のFAのエリアには、PAを登録する(55)。なお、
ステップ54.55は並列に並んでいるが、これらは互
すに独立な処理であるから並列実行してもよいことを示
している。
続いて、ステップ80,100と進み、CPUI1で実
行可能なメツセージ選択処理を行うが、この時点で実行
可能なレコードはメツセージm1の1つしかないので、
ステップ101,102゜106.107の繰り返しル
ープでメツセージm1が選択されることにより、ステッ
プ103.93に進み、メツセージm1がCPUI1で
実行可能な最優先メツセージであることを表示する。す
なわち、CPUで次に実行すべきメツセージの選択処理
を行った後、CPU番号が該当レコードのRIDフィー
ルドの上位ビットで示されるCPU番号と同じでRPY
=1で、5TT=10(読み取り待ち)のレコードがM
S、Aに登録されているか否かを判断しくso)、y録
されていないので、次に、CPU番号が該当レコードの
RIDフィールドの上位ビットで示されるCPU番号と
同じでRPY=Oで5TT=10のレコードがMS、A
に登録されているか否かを判断する(100)。登録さ
れているので、次に変数CLVLに優先レベル最高値L
MAXをセットする(101)、そして、RPY=Ot
’CLVLと同じ値を持つLvLのレコードがMS、A
に登録されているか否かを判断しく102)、登録され
ティなイノテ、CLVL=oであルコトを確認L(10
G)、CLVL=CLVL−1にする(107)。次に
、再びRPY=0でCLVLと同じ値を持つLVLのレ
コードがMS、Aに登録されているか否かを判断しく1
02)、M8されているので、次に、そのレコードに対
してRIDが同じで、5TT=11のレコードがMS、
Aに登録されているか否かを判断する(103)。登録
されていないので、このレコードを選択して、当該CP
Uの最優先実行メツセージ表示レジスタにセットする(
93)。
次に、第7図に示すメツセージm2の到着コマンドが、
第9図の時刻t2でCPU#3から入力されると、これ
は返答要タイプであるため、第8図のステップ50,5
1,52,60,62,63゜64.65により、マツ
チンゲス1へ725に2つのレコードがWRされる。2
つのレコードは、第9図の32で示すように、1つはメ
ツセージm2の送信側(受○BJ3−1)の管理情報、
他の1つはメツセージm2の受信側(受0BJI−1)
の管理情報で、前者はm2の返答メツセージの管理情報
と言うこともできる。ただし、この時点で、返答メツセ
ージ自体はまだ到着しておらず、実際に到着するのは時
刻t4である。すなわち、コマンド種別を判定して(5
0)、メツセージ到着通知コマンドであるので、PAに
よりメモリをアクセスし、受信オブジェクトID、優先
レベル、メツセージタイプを読み込む(51)。MTY
を識別して(52)、返答要求付きメツセージ到着通知
であるため、PAによりメモリをアクセスして、送信オ
ブジェクトIDを取り出す(60)。次に、MS、Aの
空きエリアアドレス(FAI)を検出した後(62)、
当該アドレスのエリアのRIDフィールドにSIDを、
またRPY=1,5TT=01を、それぞれ(仮)登録
しく63)、次に受信側のMS、Aの空きエリアアドレ
ス(PA2)を検出しく64)、MS、A(7)PA2
のエリアtnR4D、LVLを登録する(RPY=O,
5TT=10)。
続いて、ステップ80,100に進み、CPU#1で実
行可能なメツセージ選択処理を行うが、この時点で2つ
の実行可能なメツセージml、m2のうち、m2の方が
優先度が高いので、101゜102.106,107の
繰り返しループでm2が選択され、103.93に進み
、m2がCPU11で実行可能な最優先メツセージであ
ることを表示する(詳細ステップの説明は省略)。
次に、時刻t3で、CPU# 1から実行可メツセージ
読み取りコマンドが発行されると、メッセージ・パッシ
ング管理装置12は、第8図のステップ50,120,
121,122を経由してCPU#1の最優先実行メツ
セージ表示レジスタ(NAMRI)の内容(つまり1m
2)を返送する。
その後、ステップ80,100,101を経由して、1
02,106,107のループでメツセージm1が次に
実行すべき候補として抽出されるが、これと同じ宛先の
メツセージm2が実行中(s”r=1)であるため、ス
テップ103でYESとなり、ステップ104に抜ける
。最終的には、102.106.94を経由してN A
 M R1には実行すべきメツセージは存在しないこと
を表示する(第9図のs3)。これにより、メツセージ
を実行中に、同じ宛先のメツセージは受は付けないとい
う順序制御機構が実現される。
すなわち、CPUから送られたコマンドの種別を判定し
く50)、実行可メツセージ読み取りコマンドであるの
で、読み取り用の制御レジスタが読み取り可能な状態に
なるまで待つ(120)。そして、対応するCPUの最
優先実行メツセージ表示レジスタの内容を編集してCP
Uに返送した後(121)、対応するMS、Aのレコー
ドのSTTを11に更新する(122)。その後、当該
CPUで次に実行すべきメツセージの選択処理を行い、
CPU番号が該当レコードのRIDフィールドの上位ビ
ットで示されるCPU番号と同じでRPY=1で5TT
=10のレコードがMS、Aに登録されているか否かを
判定しく80)、登録されていないため、次にCPU番
号が該当レコードのRIDフィールドの上位ビットで示
されるCPU番号と同じでRPY=Oで5TT=10の
レコードがMS、Aに登録されているか否かを判定する
(100)。登録されているので、次に変数CLVLに
優先レベル最高値LMAXをセットしく101)、次ニ
RP Y = OテCL V Lと同じ値を持つLvL
のレコードがMS、Aに登録されているか否かを判定し
く102)、登録されていないため、CLVL=Oでな
イコとを確認しく106)、CLVL=CL V L 
−1ニすル(107)。次に、RPY=0でCLVLと
同じ値を持つLVLのレコードがMS、Aに登録されて
いるか否かを判定しく102)、登録されているため、
そのレコードに対してRIDが同じで5TT=11のレ
コードがMS、Aに登録されているか否かを判定する(
103)。登録されているので、(b b)で選択した
レコード群のうち、これは最終レコードか否かを判定し
く104)、最終レコードであるため、再びCLVL=
0であるかを判定しく106)、そうでないため、CL
VL=CLVL−1とり、(107)、RPY=0でC
LVLと同じ値を持つLVLのレコードがMS、Aに登
録されているか否かを判定する(102)、最終的には
、登録されていないので、CLVL=Oであることを確
認しく106)、次に実行すべきメツセージはない旨、
当該CPUの最優先実行メツセージ表示レジスタにセッ
トする(94)。
CPU#1に読み取られたメツセージm2は返答要求付
きメツセージであり、時刻t4にm2返答メツセージが
CPU#1よりメッセージ・パッシング管理装置i!1
2に入力される。その結果、第8図のステップ51,5
2,70,71,72により、第9図のm2の送信側0
BJ3−1のSTTが10にセットされ(第9図のs4
)1m2返答メツセージが実行可能状態となる。続いて
、第8図のステップ80,81,82,84,82のル
ープで、m2返答メツセージ(第9図の送0BJ3−1
に対応)が候補として抽出され、ステップ90でNo(
[1に進み、これがCPU#3で最優先に実行すべきメ
ツセージとして表示される(第9図のs5)。
次に、第9図の時刻t5で、CPU#3から実行可メツ
セージ読み取りコマンドが発行されると。
第8図のステップ50,120,121,122を経由
して、CPU#3の最優先実行メツセージ表示レジスタ
(NAMR3)の内容(すなわち、a+2返答メツセー
ジ)を返送する。その後、ステップ80.100を経由
して、最終的にはステップ94でNAMR3には、次に
実行すべきメツセージは存在しないことを表示する(第
9図の86)。
次に、時刻t6で、第7図のメツセージm3の到着コマ
ンドがCPU#2から入力されると、これは返答要タイ
プであるため、第8図のステップ50.51,52,6
0,62,63,64,65により、マツチングストア
25にm3メツセージおよびm3に対する返答メツセー
ジの管理情報がセットされる(第9図のs7)。続いて
、ステップ80.100.101を経由し、ステップ1
02゜106.107のループでメツセージm3が次に
CPU#3で実行すべき候補として抽出されるが、これ
と同じ宛先のm2返答メツセージが実行中(STT=1
)であるため、ステップ103でYESとなってステッ
プ104に抜ける。最終的にはステップ102,106
.94を経由して、NAMR3には実行すべきメツセー
ジは存在しないこと(つまり、メツセージの実行中に、
同じ宛先のメツセージは受は付けない)を表示する(第
9図のs8)。
次に1時刻t7で、メツセージm2の実行完了コマンド
がCPU#1からメッセージ・パッシング管理装置12
に送られてくると、第8図のステツブ50を経由してス
テップ130に到達する。
ここでは、第9図のm2の受0BJI−1の5TT=1
となっているので、ステップ131に抜けて、第9図の
59のようにメツセージm2の管理情報をクリアする。
続いて、ステップ80,100゜101を経由し、ステ
ップ102,106,107のループによりCPU#1
で実行可能なメツセージの候補mlが抽出されるが、m
lと同じ宛先のメツセージで実行中のものはないので、
ステップ94でCPU#1の最優先実行メツセージはm
lであることを表示する(第9図の510)。これは、
メッセージm2実行中は、同一宛先のメツセージm1の
実行が禁止されたが、m2の処理が終了したので、再び
mlが実行可能な状態として表示されるようになったこ
とを意味する。
次に、時刻t8で、メツセージm4の到着コマンドがC
PU#2から入力されると、返答要求付きメツセージで
あるため、第8図のステップ50゜51.60,62,
63,64.65を経由して、マツチングストア25に
m4メツセージおよびm4への返答メツセージの管理情
報(第9図の511)が登録される。続いて、ステップ
80,100に入り、cpuxlで実行可能なメツセー
ジを選択するが、この時点で2つの実行可能なメツセー
ジml、m4のうち、m4の方が優先度が高いので(第
7図参照)、ステップ102,106,107の繰り返
しループでm4が選択され、ステップ103.93に進
み、m4がCPU#1で実行可能な最優先メツセージで
あることを表示する(第9図の512)。
次に、時刻し9で、CPU#3で実行中であったm2返
答メツセージの実行完了コマンドがメツセージ ・ パ
ッシング管理装置12に入力されると、第8図のステッ
プ50を経由してステップ130に到達する。ここでは
、第9図のrn 2の送0BJ3−1の5TT=1とな
っているので、ステップ131に抜け、第9図のm2の
s13のようにm2返答メツセージの管理情報をクリア
する。
続いて、ステップ80,100,101を経由してステ
ップ102,106,107のループにより、CPU#
3で実行可能なメツセージの候補m3が抽出されるが、
m3と同じ宛先のメツセージで実行中のものはないので
、ステップ103でNo側に進み、ステップ94で、C
PU#3の最優先実行メツセージはm3であることを表
示する(第9図の514)。
次に、時刻sloでは、CPU#3から実行可メツセー
ジ読み取りコマンドが発行されると、第8図のステップ
120,121,122を経由してCPU#3!優先実
行メツセージ表示レジスタ(NAMR3)の内容(つま
り、m3)を返送する。
その後、ステップ80,100を経由して、最終的には
ステップ94でNAMR3に対して次に実行すべきメツ
セージは存在しないことを表示する(第9図の515)
次に1時刻sllでは、CPU#1から実行可メツセー
ジ読み取りコマンドが発行されると、第8図のステップ
120,121,122を経由して、CPU# 1最優
先実行メツセージ表示レジスタ(NAMRI)の内容(
つまり、m4)を返送する。
その後、ステップ80,100,101を経由してステ
ップ102,106,107のループでメツセージm1
が次に実行すべき候補として抽出されるが、これと同じ
宛先のメツセージm4が実行中(STT=1)に入って
いるので、ステップ103でYESとなり、ステップ1
04に抜ける。最終的には、ステップ102,106.
94を経由して、NAMRIには実行すべきメツセージ
は存在しないこと(正確には、あるメツセージの実行中
に、同じ宛先のメツセージは受は付けない)を表示する
(第9図の516)。
次に、時刻t12で、m3返答メツセージの到着コマン
ドがCPU#3からメッセージ・パッシング管理装置1
2に入力されると、第8図のステップ50,51,52
,70,71.72により、第9図のm3の送信側0B
J2−2の5TT=10(実行可)にセットされ(第9
図の517)、第8図のステップ80,81,82,8
3,84.82のループで、m3返答メツセージ(第9
図の送0BJ2−2に対応)が候補して抽出され、CP
U#2で最優先に実行すべきメツセージとして設定され
る(第9図の818)。
次に、時刻t13で、m4返答メツセージの到着コマン
ドがCPtJ#1からメッセージ・パッシング管理装置
12に入力されると、時刻t12の場合と同じように、
ステップ50,51,52゜70.71.72を経由し
て第9図のs19を通り、管理情報がセットされる。続
いて、ステップ80.81以降により実行可能な状態の
2つの返答メツセージ(m3返答、m4返答)のうち、
優先レベルが高い方(第7図の優先レベル参照)のm4
返答メツセージが選択され、CPU#2で最優先に実行
すべきメツセージであることが表示される(第9図の5
20)。
次に1時刻t40で、CPU#14から実行可メツセー
ジ読み取りコマンドが発行されると、時刻tllの場合
と同じように、第8図のステップ50.120以降によ
り、CPU#2最優先実行メツセージ表示レジスタ(N
AMR2)の内容(つまり、m4返答メツセージ)を返
送し、状態を更新する(第9図の321)。その後、ス
テップ80゜100以降により、NAMR2には、CP
U#2で次に実行すべきメツセージは存在しないこと(
つまり、同一宛先のメツセージを実行禁止する)を表示
する(第9図の322)。
次に、時刻t15では、CPU#3で実行中であったm
3メツセージの実行完了コマンドがメッセージ・パッシ
ング管理装置12に入力されると、第8図のステップ5
0,130,131により第9図のs23のようにm3
メツセージの管理情報をクリアする。ステップ80,1
00以降により、CPU#3で次に実行すべきメツセー
ジはないことを表示する(第9図の524)。
次に、時刻t16では、CPU#2で実行中であったm
4返答メツセージの実行完了コマンドがメッセージ・パ
ッシング管理装置12に入力されると、第8図のステッ
プ50,130,131により、第9図のs25のよう
にm4返答メツセージの管理情報をクリアする。ステッ
プ80.81以降によりCPU#2で次に実行すべきメ
ツセージはm3返答メツセージであることを表示する(
第9図の526)。
次に、時刻t17では、CPU#2から実行可メツセー
ジ読み取りコマンドが発行されると、時刻t14の場合
と同じように、第8図のステップ50.120以降によ
り、CPU#2最優先実行メツセージ表示レジスタ(N
AMR2)の内容(つまり1m3返答メツセージ)を返
送し、状態を更新する(第9図の527)、その後、ス
テップ80゜100以降で、NAMR2には次に実行す
べきメツセージが存在しないことを表示する。
次に、時刻t18では、CPU#1で実行中であったm
4メツセージの実行完了コマンドがメッセージ・パッシ
ング管理装置12に入力されると、第8図のステップ5
0,130,131により、第9図のs28のようにm
4メツセージの管理情報をクリアする。ステップ80,
100.101以降によりCPU#1で次に実行すべき
メツセージはmlであることを表示する(第9図の52
9)。
次に、時刻t19では、CPU#1から実行可メツセー
ジ読み取りコマンドが発行されると、メッセージ・パッ
シング管理装置12は、時刻t17の場合と同じように
、第8図のステップ50,120以降によりCPU#1
1優先実行メツセージ表示レジスタ(NAMRI)の内
容(つまり、m1メツセージ)を返送し、状態を更新す
る(第9図の530)。
次に1時刻t20には、CPU#2で実行中であったm
3返答メツセージの実行完了コマンドがメッセージ・パ
ッシング管理装置12に入力サレると、第8図のステッ
プ50,130,131により第9図のs31のように
m3返答メツセージの管理情報をクリアする。続いて、
ステップ80゜100.101以降により、CPU#2
で次に実行すべきメツセージがないことを表示する。
次に、時刻t21では、CPU#1で実行中であったm
1メツセージの実行完了コマンドがメッセージ・パッシ
ング管理装置12に入力されると、第8図のステップ5
0,130,131により、第9図のs32のようにm
1メツセージの管理情報をクリアする。続いて、ステッ
プso、ioo。
101以降により、CPU# 1で次に実行すべきメツ
セージはないことを表示する。
以上により、全てのメツセージに関する処理が終了した
このように、本実施例においては1次の2つの高度な機
能が実現される。
■メツセージの順序制御と優先制御→同一の宛先オブジ
ェクトを有するメツセージ間では、1つのメツセージの
処理が完了するまで、次のメツセージの処理を開始しな
い。特に、返答要求付きメツセージの場合には、返答メ
ツセージが返ってきてその処理が完了するまで1次のメ
ツセージを受は付けない。次のメツセージを選択する場
合には。
実行優先レベルの高いものから順次選択する(全体の優
先度としては、返答メツセージ〉通常メツセージの順序
となる。〉は大きい方が優先度高いことを示す)。
■メツセージの並列制御と負荷制御→宛先が異なるメツ
セージ間では、並列的に実行できるようにする。また、
複数のCPUにメツセージの処理を負荷分散させること
ができる。
次に5本発明の詳細な説明する。
実施例では、CPU番号はメツセージのポインタアドレ
スの中に暗黙的に表示されている方式を仮定したが、勿
論、ポインタアドレスとは別に、CPU番号を表示する
ように構成することも可能である。また、実施例では、
メッセージ・パッシング管理装置の制御部をマイクロプ
ログラムにより実現する方法を示したが、第8図の処理
フローを実現できる制御方式であれば、どのような方法
でも差し支えない。例えば、汎用のマイクロプロセッサ
またはワイアードロジック、PLA等の技術を用いて実
現することができる。
また、実施例では、メッセージ・パッシング管理装置1
2を、CPU本体と別個の独立した装置として示してい
るが、いずれかのCPUに内蔵させることも可能である
。すなわち、いずれかのCPUに前述のマツチングスト
アを組合わせることにより、そのCPUは通常のオブジ
ェクトの実行機能と、メッセージ・パッシング管理装置
の機能の両方を具備するように構成することができる。
また、連想メモリ部(MS、A)37は、連想メモリL
SIで構成される他に、ハツシング技術を用いて通常の
ランダムアクセスメモリで構成することもでき、さらに
通常のランダムアクセスメモリをマイクロプログラム等
でシーケンシャルに検索する構成にすることも可能であ
る。
さらに、本実施例では、メッセージ・パッシング管理装
置12がコマンドを受けて自律的にメモリをアクセスし
、送受信オブジェクト番号やメツセージタイプ等の管理
情報を取り出す方法を説明したが、これらの管理情報を
、CPUからのコマンド内に入れてメッセージ・パッシ
ング管理装置12に送る方法を用いることもできる。
さらに、本実施例では、各メツセージが優先度の順に実
行される場合を説明したが、特別な場合として、優先レ
ベルを1種類にすることにより、実質的に優先度がない
方式も実現できる。また、CPUを1台にすることによ
り、通常のシングルプロセッサでの方式としても適用可
能である。
〔発明の効果〕
以上説明したように、本発明によれば、CPUはメツセ
ージの状態管理やメツセージの実行スケジューリング管
理等の複雑な処理から解放され、オブジェク1〜の実行
に専念することができるので、オーバヘッドの少ない高
速なメッセージ・パッシングシステムを実現できる。ま
た、各CPUは、あるオブジェクトの実行中に新しく到
着したメツセージにより処理が中断されることがなく、
自分の都合のよい時期に、次に実行すべきメツセージを
パッシング管理装置に問い合わせればよいので、処理の
中断に伴う情報セーブ・リストアのオーバヘッドがなく
なり、−層の高速化が実現できる。
また、メツセージ間で優先度がある場合、優先度の高い
順序でメツセージを実行するので、極めて融通性の高い
システムにすることができる。さらに、本発明のメッセ
ージ・パッシング管理装置は、CPUからのメツセージ
到着通知や、実行可能メツセージの読み取りコマンドに
対して、ハードウエアの並列高速処理を活用して、所要
の情報を高速に検索・サーチすることができるので、全
体として価格性能比の優れたシステムを実現できる。
また、本発明は、シングルプロセッサにもマルチプロセ
ッサにも共通に適用できる処理方式であるため、各種の
システムに幅広く適用することができる。
【図面の簡単な説明】
第1図は本発明の一実施例を示すメッセージ・パッシン
グ管理装置の内部構成図、第2図は第1図におけるマツ
チングストア部のデータ構造とそのフィールド詳細図、
第3図は本発明で使用されるメツセージのフォーマット
図、第4図は第3図のメツセージフォーマット中のメツ
セージタイプ詳細図、第5図は本発明におけるCPUと
メッセージ・パッシング管理装置の間のコマンドの一覧
を示す図、第6図は本発明を含むシステム全体構成図、
第7図は本発明における入力メツセージパターンを示す
図、第8図は本発明のメッセージ・パッシング管理装置
の内部処理フローチャート、第9図は第7図に対応する
メッセージ・パッシング管理装置の処理シーケンスチャ
ートである。 10−1〜10−3:中央処理装置(CPU)、12:
メッセージ・パッシング管理装置、25:マツチングス
トア(MS)、26:MSアドレスレジスタ、27:M
Sデータレジスタ、28:MS動作モードレジスタ、3
7:連想メモリ部、38:データメモリ部、11−1〜
11−3:ローカルメモリ、13:共通バス。 一τF−−if  −−−−一−−− ト1ト 第10図 手続補正書(ヵえ。 1、事件の表示 昭和63年 特  許願第80047号3、 補正をす
る者 事件との関係  特許量11人 氏 名(名、)(422)日本電信電話株式会社代表者
 山 口  開 生 4、代理人 5、 補正命令の日付 昭和63年6月8日(発送口)
昭和63年6月28日& 補正により増加する発明の数
   な  しく1)明細書第44頁第1行〜第2行の
「第9図は第7図に対応する・・・・・チャートである
。」を、次のように補正する。 [第9図は第7図に対応するメッセージ・パッシング管
理装置の処理シーケンスチャート、第10図は従来のメ
ツセージ管理ソフトウェアの機能ブロック図である。」

Claims (3)

    【特許請求の範囲】
  1. (1)オブジェクト間でメッセージ・パッシングを行う
    ことにより、複数のオブジェクトを並列的に実行する情
    報処理システムにおいて、メッセージを受信するオブジ
    ェクトの番号と、該メッセージのブロックアドレスと、
    該メッセージの管理状態情報からなるレコードを、メッ
    セージごとに登録し、かつ該レコードを管理するメッセ
    ージ・パッシング管理手段を有し、該メッセージ・パッ
    シング管理手段は、オブジェクト間で通信したいメッセ
    ージが存在することを知らせる第1の指令を受けると、
    該メッセージが返答メッセージを要求しない場合には、
    受信オブジェクト番号とメッセージブロックアドレスを
    レコードに登録し、また該メッセージが返答メッセージ
    を要求する場合には受信オブジェクト番号とメッセージ
    ブロックアドレスと送信オブジェクト番号をレコードに
    登録し、また該メッセージが返答要求型メッセージに対
    する返答メッセージの場合には、既に登録されている送
    信オブジェクト番号のレコードに、返答メッセージのメ
    ッセージブロックアドレスを追加登録し、実行可能なメ
    ッセージを問い合わせる第2の指令を受けて、登録され
    ているレコードの中から、メッセージ管理状態情報に基
    づいて実行可能なレコードを抽出し、該レコードの中で
    最も優先して実行すべきレコードを選択して、該レコー
    ドを通知し、各メッセージの実行が完了したことを示す
    第3の指令を受けて、該指令に対応するレコードを削除
    することを特徴とするメッセージ・パッシング管理方式
  2. (2)上記メッセージブロック内の情報として、送信オ
    ブジェクト番号と、受信オブジェクト番号と、メッセー
    ジ種別を示すメッセージタイプと、メッセージ本体を含
    む他に、メッセージ実行優先レベル情報を付与し、上記
    メッセージ・パッシング管理手段は該情報を上記レコー
    ド内にも記憶しておき、上記第2の指令を受けると、登
    録されているレコードの中から、実行可能なレコードを
    抽出して、上記メッセージ実行優先レベル情報に基づい
    て最も優先度の高いレコードを選択し、該レコードを通
    知することを特徴とする特許請求の範囲第1項記載のメ
    ッセージ・パッシング管理方式。
  3. (3)上記メッセージブロック内の情報として、該メッ
    セージを実行するプロセッサの情報を付与し、上記メッ
    セージ・パッシング管理手段は該情報をレコード内にも
    記憶しておき、上記第2の指令を受けると、登録されて
    いるレコードの中から、実行可能で、かつ上記プロセッ
    サ情報が上記第2の指令を発行したプロセッサ番号と一
    致するレコードを選択して、該レコードを通知すること
    を特徴とする特許請求の範囲第1項または第2項記載の
    メッセージ・パッシング管理方式。
JP63080047A 1988-03-31 1988-03-31 メッセージ・パッシング管理方式 Pending JPH01253036A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63080047A JPH01253036A (ja) 1988-03-31 1988-03-31 メッセージ・パッシング管理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63080047A JPH01253036A (ja) 1988-03-31 1988-03-31 メッセージ・パッシング管理方式

Publications (1)

Publication Number Publication Date
JPH01253036A true JPH01253036A (ja) 1989-10-09

Family

ID=13707328

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63080047A Pending JPH01253036A (ja) 1988-03-31 1988-03-31 メッセージ・パッシング管理方式

Country Status (1)

Country Link
JP (1) JPH01253036A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002054263A1 (fr) * 2000-12-28 2002-07-11 Future System Consulting Corp. Systeme de structure

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002054263A1 (fr) * 2000-12-28 2002-07-11 Future System Consulting Corp. Systeme de structure
US7177899B2 (en) 2000-12-28 2007-02-13 Future System Consulting Corp. Framework system
US7366751B2 (en) 2000-12-28 2008-04-29 Future Architect, Inc. Framework system

Similar Documents

Publication Publication Date Title
US7529915B2 (en) Context switching processor with multiple context control register sets including write address register identifying destination register for waiting context to store returned data from external source
US6125399A (en) Computer system including a plurality of nodes for transferring through a data transfer network messages having distinguishing fields used for distinguishing the messages and controlling receipt thereof
US5448734A (en) Selective distribution of messages using named pipes
EP2857969A2 (en) Data processing management method, information processing apparatus, and data processing management program
JPH02168341A (ja) データ処理システム
JPH0619759B2 (ja) マルチプロセッサシステムにおける相互通信方法
US7610451B2 (en) Data transfer mechanism using unidirectional pull bus and push bus
US4964042A (en) Static dataflow computer with a plurality of control structures simultaneously and continuously monitoring first and second communication channels
JPH06119297A (ja) データ処理システムにおける命令の実行順序を決定する方法および装置
JP2821345B2 (ja) 非同期i/o制御方式
US6571301B1 (en) Multi processor system and FIFO circuit
JPH01253036A (ja) メッセージ・パッシング管理方式
JP3406983B2 (ja) プロセス間メッセージ通信方法
JPH02213976A (ja) 多重処理コンピユータ及びプロセツサ間通信方法
JP3982077B2 (ja) マルチプロセッサシステム
JP2795312B2 (ja) プロセス間通信スケジューリング方式
JP2719280B2 (ja) 計算機システムと高速i/oデータ転送方法
JP2517851B2 (ja) 並列プライオリティ制御方法
JPH04195576A (ja) キャッシュメモリ方式
JP3022398B2 (ja) 仮想計算機方式
JPH07114522A (ja) マルチプロセッサシステム
JPH08110894A (ja) 並列計算機システム
JP2735400B2 (ja) 非同期入出力制御方式
JPH03219357A (ja) プログラム実行管理方式
WO1996031824A1 (en) Operating system