JPH02310664A - 共有メモリを用いた通信方式 - Google Patents

共有メモリを用いた通信方式

Info

Publication number
JPH02310664A
JPH02310664A JP1131343A JP13134389A JPH02310664A JP H02310664 A JPH02310664 A JP H02310664A JP 1131343 A JP1131343 A JP 1131343A JP 13134389 A JP13134389 A JP 13134389A JP H02310664 A JPH02310664 A JP H02310664A
Authority
JP
Japan
Prior art keywords
communication
storage device
memory
shared storage
shared
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
JP1131343A
Other languages
English (en)
Inventor
Akira Yamaoka
山岡 彰
Kenichi Wada
健一 和田
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 JP1131343A priority Critical patent/JPH02310664A/ja
Priority to US07/526,718 priority patent/US5214759A/en
Priority to DE4016667A priority patent/DE4016667C2/de
Publication of JPH02310664A publication Critical patent/JPH02310664A/ja
Pending 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/167Interprocessor communication using a common memory, e.g. mailbox

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)
  • Multi Processors (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、マルチプロセッサシステムの通信方式に係わ
り、特にプロセッサ間通信のCPUオーバヘッド削減に
好適なプロセッサ間通信方式に関する。
(従来の技術〕 サブシステム毎に独立した主記憶をもつ計算機システム
間の通信方式の1つは、特開昭60−84658のよう
にチャネル結合装置により入出力と同様の方法で通信す
る方式であった。この方法では1通信に要するプロセッ
サのオーバへ2ドが大きくなるため、プロセッサの命令
によりアクセス可能な主記憶装置とは異なる共有記憶装
置を設けて、これを複数のサブシステム間で共有し、通
信バッファとして用いる方式がある。
特開昭58−56063は、システム監視装置内に通信
用の共有記憶装置を設け、これをサブシステムごとに分
割して通信バッファとする。送信は、送信側プログラム
からの依頼を受けたオペレーティングシステム(以下O
Sと略記)が、共有記憶装置内の相手サブシステムに対
応する通信バッファに通信データを書込む0通信データ
には、送信プログラムから受信プログラムへの通信メツ
セージ(以下単にメツセージと呼ぶ)と、送信側および
受信側プログラムの識別情報などが含まれる。システム
監視装置は相手サブシステムに対して割込みを発生させ
る。受信は、割込みを受けた相手サブシステム内のOS
が1通信バッファから通信データを読出し、識別情報な
どを解読して受信側プログラムにメツセージを伝えるも
のである。
特開昭60−237566は、共有記憶装置の一部をサ
ブシステムごとに分割して通信バッファとして予めアド
レスを決めておく、送信は、送信側プログラムからの依
頼を受けたOSが、共有記憶装置内の相手サブシステム
に対応する通信バッファに、通信データ(メツセージと
識別情報など)を書込み、他の手段で相手サブシステム
に対して割込みを発生させる。受信は、割込みを受けた
相手サブシステム内のOSが、自サブシステムに対応す
る通信バッファから通信データを読出し、この中から識
別情報などを解読して受信側プログラムにメツセージを
伝える。また、受信側のOSがその通信バッファに特定
のパターンを書込むことにより通信データを受信したこ
とを送信側サブシステムに通知するものである。
【発明が解決しようとする課題〕
上記従来技術は、以下の点で問題があった。
(1)共有記憶装置の一部である通信バッファの大きさ
が固定的であったため9通信バッファよりも大きい通信
データ(メツセージと識別情報から成る)を転送する場
合に、通信バッファの大きさでその通信データを分割し
複数回に分けて通信する必要があった。このために1通
信のための送信側および受信側サブシステムのCPUオ
ーバヘッドは通信回数と共に増加する。
一方1種々の通信データよりも十分大きい領域を通信バ
ッファとして予め準備すると1通信回数の増加は防止で
きるが、実際には使用されない部分が共有記憶装置上に
生じるため共有記憶装置の利用効率が低下する。
(2)また、特開昭60−237556のように通信バ
ッファがサブシステムごとに1つであると、上記の複数
回の通信は逐次的に行う必要があった。即ち、通信バッ
ファが一回の通信で占有されるため、受信側のサブシス
テムがこれを受信したことを確認する(連絡を受は取る
)まで、送信側のサブシステムは次の通信ができない、
このため、通信にかかる時間が長くなる。
さらに、上記のように複数回の通信が1つの通信を分割
したものではなくても、送信および受信側のプログラム
の組合せがそれぞれ異なるが送信および受信側サブシス
テムが同じであるような、多数の独立な通信であっても
、同様に通信が逐次的になって通信時間が長くなる。
(3)また、上記のように通信が逐次的になると複数の
通信が待拶訊ることになり、そのための待ち行列の制御
が送信側サブシステム内で必要になる。即ち、あるサブ
システムで複数のプログラムから送信依頼がOSに対し
て順次要求された場合、OSは最初の通信中は2番目以
降の送信を例えば待ちキューを作って順番に待たせ、最
初の通信が終了したら2番目の通信を開始する様な制御
を行う必要がある。このために、待ち制御のためのCP
Uオーバヘッドが増加する。
(4)サブシステム内ではOSのような管理プログラム
により取りまとめられた複数の処理プログラムが動作す
る2通信データには、送信及び受信プログラムを特定す
るための識別情報と処理プログラム間のメツセージが混
在している。このため、一旦OSが通信データを共有記
憶装置から主記憶装置に読出して識別情報を解読して、
そのOSの制御下の受信プログラムに通知する必要があ
る。しかし、共有記憶装置内の通信バッファは次の通信
のために早期に解放する必要があるので、OSは受信側
プログラムに通信データのうちのメツセージ部分を主記
憶装置に転送する必要があった。即ち、受信側OSが共
有記憶装置上の通信データをOS用に割り当てられた主
記憶装置内の領域に読出し、さらに受信プログラムに割
り当てられた主記憶装置内の領域に転送するという2段
階の転送が必要になって1通信処理のCPUオーバヘッ
ドが増加する。
本発明は上記(1)〜(4)の問題点を解決することを
目的とする。
(11g!11を解決するための手段〕上記(4)の問
題点を解決するため本発明では、通信データの内のサブ
システムおよび受信プログラムを特定する識別情報とプ
ログラム間のメツセージを分離し、識別情報を送信する
手段と、該識別情報を保持する手段と、該識別情報を受
信する手段を設け、(1)の問題点に対しては、必要に
応じて共有記憶装置内のメモリ上にプログラムに対応し
たサイズを可変にした領域を割り当ててメツセージを配
置する手段を設けて通信するようにしたものである。
また、上記(2)のrjJIM点を解決するため、該識
別情報として受信プログラムを各ビット位置で特定する
通信IDを用い、(3)の問題点に対しては該識別情報
を格納する際に複数の通信IDの論理和をとったものを
保持する手段を設けたものである。
〔作用〕
一般に1つのサブシステムでは1つのOSの制御下で複
数の処理プログラムが並行して動作する。
複数のサブシステムからなるマルチプロセッサでは、O
S間の通信のみならず処理プログラム間での通信が必要
である。処理プログラム間の一回の通信で授受するデー
タ長は、その処理の内容により異なっている。従って、
共有記憶装置内のメモリ上の通信バッファを固定的に設
けず、処理プログラムの処理内容に応じて共有記憶装置
内のメモリ上に領域をアドレスおよび範囲を可変にして
動的に確保することが有効である。
動的な領域確保のためにはOS間通信を用いるが、この
通信は送信および受信プログラムを識別・する情報と共
有記憶装置内のメモリ上の位置および範囲を連絡するだ
けで良いので、通信バッファは固定的であっても不都合
が生じない0本発明の通信方式では、OS間通信のため
の通信バッファは固定的に設けられ、処理プログラムの
ための通信バッファは動的に確保される。
動的な領域確保のため61つの方式を以下に示す、ある
処理プログラム(送信プログラム)が他の処理プログラ
ム(受信プログラム)との通信を開始する場合を考える
。送信および受信プログラムをζ便するOSをそれぞれ
送信側OSおよび受信側OSと呼ぶことにする。まず、
送信プログラムが送信側OSに対して、通信に必要な記
憶容量と受信プログラムを表す情報を知らせることによ
り、共有記憶装置内のメモリ上に通信バッファの確保を
要求する。送信側OSは、共有記憶装置内のメモリ上の
空き領域から指定された記憶容量(アドレスと範囲)を
割当てるとともに、識別情報である前記通信IDの受信
側サブシステムに対応する部分から未だ使用していない
ビット位置(1ビツト)を割当てる。送信側OSは、割
当てた共有記憶装置内のメモリ上の通信バッファのアド
レスと範囲および通信IDのビット位置および受信プロ
グラムを特定する情報を、受信側osにOS間通信を用
いて連絡する。これにより、送信および受信側OSは、
受信プログラムに対応した共有記憶装置内のメモリ上の
通信バッファのアドレスと範囲および通信IDのビット
位置を認識することができる。送信および受信側osは
それぞれ送信および受信プログラムに共有記憶装置内の
メモリ上の通信バッファのアドレスと範囲を通知する。
このようにして、共有記憶装置内のメモリ上に送信およ
び受信プログラム間の通信バッファが動的に確保される
通信バッファを確保したあとの通信は以下ようにして行
う、まず、送信プログラムが受信プログラムに伝えるメ
ツセージを該通信バッファに書込み、送信側OSに送信
を依頼する。送信側OSは、受信側プログラムに対応し
たビット位置に1を設定した通信IDのみを送信する。
受信側OSは該ビット位置から受信プログラムを特定し
、受信プログラムに通知する。受信プログラムは、該通
信バッファからメツセージを読出すことにより、送信お
よび受信プログラム間の通信が実現される。
通信IDの送信および受信は以下のようにして行なわれ
る0通信IDの送出および読出しのために専用の命令が
準備され、それぞれ送信命令および受信命令と呼ぶ、こ
れらの命令は、共有記憶装置内のメモリ上のデータの読
出しと書込みの命令とは区別され、共有記憶装置内のメ
モリ上のデータ領域とは別の共有記憶装置内の保持回路
上のレジスタに対してアクセスする命令である。送信側
OSは、共有記憶装置に対して送信命令を発行し保持回
路内のレジスタに通信IDを送る。保持回路はレジスタ
内の内容と送られてきた通信IDとの論理和をとってレ
ジスタに格納する。保持回路は、レジスタ内の値がOで
ないならば対応する受信側サブシステムに対して割込み
要求を発生する。
割込み要求を受けた受信側osは、共有記憶装置に対し
て受信命令を発行し、保持回路内のレジスタの値を読出
しを求める。保持回路はレジスタの内容を受信側OSに
送るとともに、レジスタの内容をクリアして割込み要因
をリセットする。
〔実施例〕
以下1本発明の一実施例を図面を用いて説明する。
第1図は、本実施例のシステム構成を示すブロック図で
ある。該システムは、n個のサブシステム10−1〜n
とそれらにより共有される共有記憶装W120よりなる
。各サブシステムはそれぞれれ1つのOSの元で動作す
る。各サブシステム内は複数の命令処理装置を含んでも
よいが、第1図では簡単化のため1つの命令処理装置1
10− iや主記憶120−i  (i=1〜n)など
から構成される場合について説明する。なお、簡単化の
ため以下の説明では各サブシステムを識別するサフィッ
クスiを誤解が生じない場合は省略する。共有記憶表[
120は、各サブシステムからの要求から1つを選択す
る共有記憶コントローラ60と、RAM等で構成される
メモリ50、および本発明で特徴的な保持回路40より
なる。
本発明で導入される送信および受信命令は、各サブシス
テムから共有記憶装置120に対して要求され、保持回
路40で実行される。保持回路40は、オア回路41.
ゲート42.レジスタ43゜ノンゼロ検出回路から構成
されるRard / Write割込み発生回路44な
どから構成される。送信命令により与えられる通信ID
は、既に格納されているレジスタ43の値とオア回路4
1で論理和がとられ、レジスタ43に格納される。レジ
スタ43の値番≠、ノンゼロ検出回路44でチェックさ
れ。
0でない場合にはビット位置に対応するサブシステムに
対して割込み要求が発行される。受信命令が該サブシス
テムから発行されると、保持回路40は、レジスタ43
の内容を該サブシステムに送出するとともに、ゲート4
2を用いて該サブシステムに対応する部分のレジスタ4
3の内容をクリアする。
各装置の詳細を説明する前に本発明の通信手順の概略を
まず説明する。
第2図は主記憶装置上のデータ配置と共有記憶装置内の
メモリ上のデータ配置を示したものである。主記憶装置
は、OS用の領域と各処理プログラム用の領域に分割さ
れる。第2図では、2つのサブシステム100−1と2
についてそれぞれ2つの処理プログラムがある場合を示
した。すなわち、主記憶装置120−1には081とプ
ログラムAおよびB用の領域が存在し、主記憶装w12
〇−2にはOS2とプログラムCとB用の領域が存在す
る。共有記憶装置20のメモリ5oには、メモリ上の領
域の割当てを管理するためのインデクス領域21とOS
間通信のためのOS固定領域22が予め割り当てられて
おり、他の領域は動的に確保することで処理プログラム
などが自由に使用できる。第2図に於いてOS固定領域
22の番号Ojは、OSjへの通信のための通信バッフ
ァ23A−Dを示している。
第3図は1本実施例における識別情報である通信IDの
形式を示したものである1通信IDはnバイトからなり
各1バイトが各サブシステムに対応する。各バイトのビ
ット0は各サブシステム内のOSを意味するよう予め割
り当てておく、残りの7ビツトは処理プログラム用に使
われるが、通信の必要に応じて動的に割り当てられる。
動的な領域確保の1例を第7図を用いて説明する。OS
1の処理プログラムAが082の処理プログラムCに対
して通信を開始する場合を考える。
処理プログラムAがOSIに対して、通信に必要な共有
記憶装置内のメモリ上の通信バッファの容量と受信先が
処理プログラムCであることを知らせる。OS1は、共
有記憶装置内のメモリ上のインデクス領域21を参照し
て空き領域のサイズを調らべ、空き領域から通信バッフ
ァ領域23Gを確保する(アドレスとサイズを決定する
)とともに、処理プログラムCがサブシステム2に存在
することから通信IOの2バイト目の1ビツトを割り当
てる。今2バイト目の最初のビットはOS2に割り当て
られているのでつぎのビット1を割り当てる。OS1は
、割り当てた通信バッファの共有記憶装置内のメモリ上
のアドレスとサイズおよび処理プログラムCと通信ID
のピット位置の対応を示す情報をOS固定領域22の0
2に書込み。
そして、OS2を意味する2バイト目のビットOを1に
した通信IDを指定して送信命令を発行する。OS2は
1割込みを受けると受信命令を発行し通信10を読み出
す1通信IDのOS2を表すビットが1になっているの
で、OS固定領域22の02を読出し1割当てられた通
信バッファの共有記憶装置内のメモリ上のアドレスとサ
イズおよび通信IDのピット位置および受信プログラム
がCである旨の情報を受は取る。OS2は、これらの情
報を受は取った旨をOS固定領域22の01に書込み、
OS1を示す通信IDのビットを1にして上記と同様な
方法で081に連絡する。OS1およびOS2はそれぞ
れ処理プログラムAとCに対して、通信バッファ領域C
のアドレスとサイズを通知することにより、処理プログ
ラムAからCへの通信バッファ23Gが動的に確保され
る。
処理プログラムCからAへの通信バッファ領域23Aの
動的確保も同様の手順により行える。一般に双方行の通
信パスが必要になるので、処理プログラムAからCへの
通信バッファ23Cと処理プログラムCからAへの通信
バッファ23Aの確保を一回で同時に実施しても良い、
あるいは1つの領域を半分に区切って、前半を送信用後
半を受信用などとしても良い。
通信バッファを一部確゛保したら、処理プログラムAか
らCへの通信メツセージの転送は以下のようにして行う
6通信メツセージの転送手順を第8図に示す、まず、処
理プログラムAが処理プログラムCに伝えるメツセージ
を該通信バッファ領域23Cに書込み、081に送信を
依頼する。○S1は、処理プログラムCを意味するビッ
ト(2バイト目のビット1)位置に1を設定した通信I
Dを送信命令で送る。OS2は該ビット位置から処理プ
ログラムを特定し、処理プログラムCに通知する。処理
プログラムCは、該通信バッファ領域Cからメツセージ
を読出すことにより、プログラム間の通信が実現される
このように、処理プログラム間の通信バッファが動的に
確保されるので1通信に必要とする量の共有記憶装置内
のメモリ領域を使用でき、また。
そのメツセージを格納した通信バッファ領域は処理プロ
グラムが直接参照するので、主記憶装置内のメモリ上の
OS領域にメツセージを一部写すような2段階の転送を
行う必要はなくなる。
今、第2図のように共有記憶装置内のメモリ上に通信バ
ッファ領域23A、23B、23C。
23Dが確保され、それらに対応して通信IDのビット
が第3図のように割り当てられているとする。即ち、領
域23Aは処理プログラムAへの通信バッファ、領域2
3Bは処理プログラムBへの通信バッファ、領域23G
は処理プログラムCへの通信バッファ、領域23Dは処
理プログラムDへの通信バッファであり、それらに対応
する通信IOのビット位置は、それぞれ1バイト目のビ
ット1.1バイト目のビット2.2バイト目のビット1
,2バイト目のビット2である。
この様な状況で、処理プログラムAからCへの通信と処
理プログラムBからDへの通信が行なわれる場合を第9
図を用いて説明する。処理プログラムAとBのメツセー
ジ書込みは、領域23Cと23Dが別々であるため独立
に(概念的には並列に)実行できる。OS1に対して処
理プログラムAからの送信要求があり、OS1は通信I
Dの2バイト目のビット1に1を設定して送信命令を発
行する。そののち、OS1に対して処理プログラムBか
らの送信要求があった場合、O5Lは通信IDの2バイ
ト目のビット2に1を設定して送信命令を続けて発行す
ることができる。即ち、最初の送信命令に対する受信命
令が発行されないうちにつぎの送信命令を発行してよい
1通信If)は、第1図の保持回路40で論理和がとら
れてレジスタ43に保存される。こののち、OS2が受
信命令を発行して通信IDを読出すと2バイト目のビッ
ト1と2がともに1であるので、処理プログラムCとD
の両方に通知する。処理プログラムCとDは、領域23
Gと23Dからそれぞれメツセージを読出すことが独立
に(概念的には並列に)行える。
また、通信IDの複数のビットに1を設定することによ
り、−回の送信命令で複数の処理プログラムに対して通
信する、いわゆる同報通信が簡単に実現できる。
このように、独立した複数の通信が並列して実行できる
ので通信時間が短縮され、また、OSIでの待ちが発生
しないので待ち行列を作る必要がなくなる。さらに、あ
る1つの処理プログラムに着目すると通信は双方的であ
り、メツセージの受は取りが確認されるまでっぎの通信
を行わない場合が多いので、処理プログラム内での待ち
制御も非常に簡単になるか実際的に不要になる。
以下、第1図に示した各装置の構成を図を用いて詳細に
説明する。
第4図は、第1図の令命処理装置110における本通信
方式に関連する部分の構成を示したブロック図である。
第4図は、命令レジスタ111と命令デコーダ112お
よび汎用レジスタ群113を示している。
本実施例における送信命令、受信命令、および共有記憶
装置内のメモリ上のデータの読出し命令と書込み命令は
通常の命令と同様、動作コードとアドレスなどの指定部
分からなっている。ここでは、IBM社システム/37
0で用いられているようなRRE形式の命令形式を想定
する。即ち入動作コード2バイトと2つの汎用レジスタ
番号(R1とR2)を指定する1バイトとその他の1バ
イトからなる4バイト長の命令語である。R1で示され
る汎用レジスタは主記憶装置上のデータのアドレスをR
1の次の汎用レジスタR1+1はサイ〆を、汎用レジス
タR2は共有記憶装置内のメモリ上のアドレスを指定す
る。なお、送信および受信命令は共有記憶装置内のメモ
リ上のデータをアクセスしないのでR2の部分は使用さ
れない。
R1およびR2部分はlj、111Aにより汎用レジス
タ群113に与えられすでに述べたような対応するレジ
スタの内容が読出される。即ち、汎用レジスタR1の主
記憶装置のアドレスは線10Bに、汎用レジスタR2の
は共有記憶装置内のメモリ上のアドレスは線10Aに、
汎用レジスタR1+1のサイズは線10Lにそれぞれ出
力する。命令デコーダ112は、動作コードである線1
11Bとサイズを表す線10Lをデコードし制御信号1
0Cを出力する。制御信号10Cは、命令の種類と長さ
を示すもので、命令の種類としては動作コードそのもの
を出力しても良い、また、長さとしては、共有記憶装置
内のデータの読出しまたは書込み命令の場合は線10L
の値そのものを、送信および受信命令の場合には通信I
Dと同じ長さく即ちnバイト)を出力する。主記憶装置
のアドレスIOBは主記憶装置120に、共有記憶装置
内のメモリのアドレスIOAは共有記憶コントローラ6
0に、命令の種類を表す制御信号10Cは主記憶装[1
20および共有記憶コントローラ60の両方に、それぞ
れ送られる。なお、送信および受信命令の場合には共有
記憶装置内のメモリのアドレスIOAは使用されない。
第4図の割込み処理回路114は、保持回路40からの
割込み信号10Eが1のとき、命令処理装置内で割込み
を発生させ対応する各種タスクを起動する0割込み処理
回路114は従来と同様であり、保持回路40からの割
込み信号10Eは例えば外部割込み信号の1つとして位
置付けられる。
ここで、第1図に戻り命令毎に処理の制御について説明
する。
命令語が共有記憶装置内のメモリからのデータの読出し
命令であった場合、共有記憶コントローラ60はアドレ
ス10Aで始まる領域から制御線10Gで示される長さ
だけのデータをメモリ50から一データ線10Dに読出
し、主記憶装置120はアドレスMIOBで始まる領域
に指定された長さのデータをデータ線10Dから書込む
命令語が共有記憶への書込み命令であった場合、主記憶
装置120はアドレスIOBで始まる領域から制御#i
110 Cで示される長さのデータをデータ線10Fに
読出し、共有td憶コントローラ6゜はアドレスuA1
0Aで始まる領域に指定された長さのデータをデータl
it i OFからメモリ5oに書込む。
命令語が送信命令であった場合、主記憶装置120はア
ドレス線10Aで始まる領域から制御線10Gで示され
る長さく即ちnバイト)のデータ(即ち通信ID)をデ
ータPiA101’に読出し、共有記憶コントローラ6
0はデータ、m1OFに与えられる通信IDを保持回路
4oへ転送する。
命令語が受信命令であった場合、共有記憶コントローラ
60は保持回路40からレジスタ43の内容をデータ線
10L)に読出し、主記憶装置fi120はアドレス線
10Aで始まる領域にデータ線1゜Dから書込む。
第5図は共有記憶コントローラ60の1例である。各サ
ブシステムから与えられる。制御mx。
C−1〜nは優先制御回路61および選択回路62に、
アドレス線10A−1〜nは選択回路63に、データ線
10F−1〜!lは選択回路64に与えられる。優先回
路61では1例えば要求の内光にきた方を優先して1つ
を選択し、選択線61Aを出力する0選択回路62,6
3.64は選択線61Aに従ってn個の中から1つを選
び、それぞれ制御5eoc、アドレス線60A、データ
線60Fに出力する0選択された制御線60Cはデコー
ダ65で解読され、要求が共有記憶装置内のメモリから
の読出し命令であればメモリ50から与えられるデータ
llA30Dを、要求が受信命令であればレジスタ43
から与えられるデータ線40Dをデータm1ODに出力
するよう選択回路66を制御する。
第6図は、第1図の保持■路40をより詳細に記述した
1例である。 1IIJ御11A60Cはデコーダ45
1でデコードされ、送信命令であればJ1451Aを受
信命令であれば線451Bを出力する。
送信命令の場合、5451Aによりゲート411と41
2を開き1通信IDであるデータ1IA60 Fとレジ
スタ43の内容であるデータ#140Dとの論理和をと
り、ゲート42−1”nを開いてレジスタ43にセット
する。
受信命令の場合、線451Hによりゲート412のみを
開き(ゲート411を閉じて)レジスタ43の内容であ
るデータ線40Dをそのままゲート42− I Nnに
与える。どのサブシステムからの要求かは選択線61A
でわかるのでこれをデコーダ452でデコードすること
により、9452−1wnの内対応する1つを1にする
。これらの反転信号と受信命令を表す線451Bとのア
ンドして、 ’r’−ト42−1−nの内対応する1つ
のみを閉じて、レジスタ43にセットする。こうするこ
とにより、レジスタ43の対応する1バイトのみがリセ
ットできる。
ノンゼロ検出回路44は、バイト単位にそれぞれノンゼ
ロチェックして割込み要求線10E−1〜nを出力する
。受信命令が実行されるとこの内発行元のサブシステム
に対応するバイトがリセットされるので、該サブシステ
ムに対応する割込み要求は取り除かれる。
〔発明の効果〕
本発明によれば1通信データの内プログラム間のメツセ
ージと宛先等を意味する識別情報とを分離し、メツセー
ジを格納する共有記憶装置内のメモリ上の通信バッファ
領域はプログラムに応じて設定することができるので、
多量のデータを分割しておくる必要がなく、かつ、メツ
セージ量に応じて共有記憶装置内のメモリを有効に活用
できる。
また、メツセージは、処理プログラム9が直接共有記憶
装置内のメモリをアクセスしOSを経由しないので、O
Sと各プログラム間でのデータ授受が不要になって通信
の効率が高くなる。
また1通信メツセージ用に複数の通信バッファかもで、
かつ、識別情報である通信IDの論理和鼻 をとったものを受信命令で各とめて受は取れるので、−
独立な複数の通信が並行して行える。
さらに、本実施例のごとく通信IDの各ビットにプログ
ラムを対応させているので、通信IDの複数のビットに
1を設定することにより、−回の送信命令で複数の処理
プログラムに対して通信する。いわゆる同報通信が簡単
に実現できる。
【図面の簡単な説明】
第1図は本発明の一実施例のシステム構成図、第2図は
本発明の主記憶装置および共有記憶装置内のメモリの領
域割当てを示す図、第3図は実施例における識別情報で
ある通信IDの形式と意味を示す図、第4図は第1図に
おける命令処理装置110の構成図、第5図は第1図に
おける共有記憶コントローラ60の構成図、第6図は第
1図における保持回路40の構成図である。第7図は通
信バッファの動的割当ての手順を示す図、第8図はメツ
セージ転送の手順を示す図である。第9図は複数のプロ
グラム間での通信の手順を示す図である。 10−1〜n・・・サブシステム、4o・・・保持回路
。 41・・・オア回路、42・・・ゲート、43・・・レ
ジスタ、44・・・ノンゼロ検出回路、45・・・デコ
ーダ、50第 1 図 第 2 凹 第 3 図 ■ 4 巳 第 5 図 第  6 図 p 蔦 7  国 不 8  図 1Fjq  図

Claims (1)

  1. 【特許請求の範囲】 1、複数のプログラムを実行する命令処理装置や主記憶
    などからなる複数のサブシステムと、これらのサブシス
    テム間で共有される共有記憶装置と、各サブシステム内
    の主記憶装置と共有記憶装置との間でデータ転送する転
    送手段とを有するマルチプロセッサシステムにおいて、 上記共有記憶装置にあつて、該転送データがプログラム
    間の通信メッセージであるか通信メッセージの送り先の
    サブシステムやプログラム等を特定する識別情報である
    かを区別し、該転送データが該メッセージであれば該共
    有記憶装置のメモリに対してアクセスし、該識別情報で
    あれば該メモリとは別に設けたレジスタにアクセスする
    手段と、 該レジスタに該識別情報を格納する際記憶されるデータ
    の値に対応して1つまたは複数の各受信側サブシステム
    に対してそれぞれ割込み要求を発生する手段とを具備し
    た共有メモリを用いた通信方式。 2、特許請求の範囲第1項記載の通信方式において、各
    サブシステムから転送された該識別情報と既に格納され
    ている該レジスタの内容との論理和をとつた値を該レジ
    スタへ格納することを特徴とする共有メモリを用いた通
    信方式。 3、特許請求の範囲第1項または第2項記載の通信方式
    において、該レジスタの値の読出しと同時にレジスタ内
    の一部または全部のビットをリセットすることを特徴と
    する共有メモリを用いた通信方式。 4、特許請求の範囲第1項または第3項記載の通信方式
    において、該レジスタの各ビットを該共有記憶装置内の
    メモリ上の通信メッセージの各領域に対応付けることを
    特徴とする共有メモリを用いた通信方式。 5、特許請求の範囲第1項または第4項記載の通信方式
    において、該レジスタの各ビットを該サブシステム内の
    各プログラムに対応付けることを特徴とする共有メモリ
    を用いた通信方式。 6、複数のプログラムと1つのオペレーティングシステ
    ム(OS)を含むサブシステムが複数存在し、これらの
    サブシステム間で共有記憶装置を共有し、各サブシステ
    ム間の通信における割込みが共有記憶装置を介して各O
    Sに対して行なわれるマルチプロセッサシステムにおい
    て、該共有記憶装置にあつて、該プログラム間の通信メ
    ッセージを該共有記憶装置内のメモリ上に格納する手段
    と、該プログラム間の通信に於いては該プログラムが該
    共有記憶装置内のメモリ上の通信メッセージにOSを介
    して直接アクセスする手段と、通信メッセージの送り先
    のサブシステムやプログラム等を特定する識別情報を共
    有記憶装置を介してOS間で転送する手段とを具備する
    ことを特徴とする共有メモリを用いた通信方式。 7、特許請求の範囲第6項記載の通信方式において、各
    OS間でプログラム相互の通信が複数あつた場合にすで
    に格納されている該識別情報と新らたに送られた該識別
    情報の論理和を通信メッセージの受信側OSが読み取れ
    ることを特徴とする共有メモリを用いた通信方式。 8、特許請求の範囲第6項または第7項記載の通信方式
    において、該識別情報の各ビットを上記サブシステム内
    の各プログラムに対応させることを特徴とする共有メモ
    リを用いた通信方式。 9、特許請求の範囲第6項または第7項記載の通信方式
    において、該識別情報の各ビットを上記共有記憶装置内
    のメモリ上の通信メッセージの各領域に対応させること
    を特徴とする共有メモリを用いた通信方式。
JP1131343A 1989-05-26 1989-05-26 共有メモリを用いた通信方式 Pending JPH02310664A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP1131343A JPH02310664A (ja) 1989-05-26 1989-05-26 共有メモリを用いた通信方式
US07/526,718 US5214759A (en) 1989-05-26 1990-05-22 Multiprocessors including means for communicating with each other through shared memory
DE4016667A DE4016667C2 (de) 1989-05-26 1990-05-23 Nachrichtenübertragungsverfahren in einem Multiprozessorsystem mit einer Vielzahl von Untersystemen und ein zugehöriges Multiprozessorsystem

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1131343A JPH02310664A (ja) 1989-05-26 1989-05-26 共有メモリを用いた通信方式

Publications (1)

Publication Number Publication Date
JPH02310664A true JPH02310664A (ja) 1990-12-26

Family

ID=15055722

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1131343A Pending JPH02310664A (ja) 1989-05-26 1989-05-26 共有メモリを用いた通信方式

Country Status (3)

Country Link
US (1) US5214759A (ja)
JP (1) JPH02310664A (ja)
DE (1) DE4016667C2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7568077B2 (en) 2005-10-21 2009-07-28 Konica Minolta Business Technologies, Inc. Information processing apparatus and file controller
JP2010501951A (ja) * 2007-02-07 2010-01-21 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング 管理モジュール、生産者及び消費者プロセッサ、その構成、共有メモリを介したインタープロセッサ通信方法
JP2010250703A (ja) * 2009-04-17 2010-11-04 Canon Inc オペレーティングシステム、プログラム、情報処理装置および制御方法
US8959446B2 (en) 2008-11-20 2015-02-17 Canon Kabushiki Kaisha Information processing apparatus and method of controlling the same

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5822601A (en) * 1989-12-29 1998-10-13 Packard Bell Nec Apparatus to allow a CPU to control the relocation of code blocks for other CPUs
GB9008366D0 (en) * 1990-04-12 1990-06-13 British Aerospace Data interaction architecture(dia)for real time embedded multi processor systems
NL193551C (nl) * 1991-09-19 2000-01-04 Samsung Electronics Co Ltd Communicatiewerkwijze tussen processoren in een gedecentraliseerd meerknooppuntencentralesysteem.
JP2587190B2 (ja) * 1992-09-04 1997-03-05 インターナショナル・ビジネス・マシーンズ・コーポレイション システム間チャネルページング機構
GB2273591A (en) * 1992-12-18 1994-06-22 Network Systems Corp Microcomputer control systems for interprogram communication and scheduling methods
US5652885A (en) * 1993-05-25 1997-07-29 Storage Technology Corporation Interprocess communications system and method utilizing shared memory for message transfer and datagram sockets for message control
US5617537A (en) * 1993-10-05 1997-04-01 Nippon Telegraph And Telephone Corporation Message passing system for distributed shared memory multiprocessor system and message passing method using the same
US5787300A (en) * 1993-11-10 1998-07-28 Oracle Corporation Method and apparatus for interprocess communications in a database environment
US5649102A (en) * 1993-11-26 1997-07-15 Hitachi, Ltd. Distributed shared data management system for controlling structured shared data and for serializing access to shared data
US6356938B1 (en) * 1994-09-09 2002-03-12 The United States Of America As Represented By The Secretary Of The Navy System and method for transmission of information packets between provider and consumer processors
US5797042A (en) * 1995-03-16 1998-08-18 Intel Corporation Method and apparatus for adjusting the buffering characteristic in the pipeline of a data transfer system
KR0170500B1 (ko) * 1995-11-18 1999-03-30 양승택 멀티프로세서 시스템
NO312926B1 (no) * 1999-07-20 2002-07-15 Ericsson Telefon Ab L M Kommunikasjon over multimaster buss
AU2001265329A1 (en) * 2000-06-02 2001-12-17 Inrange Technologies Corporation Enhanced channel adapter
US6799317B1 (en) 2000-06-27 2004-09-28 International Business Machines Corporation Interrupt mechanism for shared memory message passing
US7302548B1 (en) * 2002-06-18 2007-11-27 Cisco Technology, Inc. System and method for communicating in a multi-processor environment
US8984199B2 (en) * 2003-07-31 2015-03-17 Intel Corporation Inter-processor interrupts
US7263568B2 (en) * 2004-03-31 2007-08-28 Intel Corporation Interrupt system using event data structures
US7197588B2 (en) * 2004-03-31 2007-03-27 Intel Corporation Interrupt scheme for an Input/Output device
US20060004983A1 (en) * 2004-06-30 2006-01-05 Tsao Gary Y Method, system, and program for managing memory options for devices
US7370174B2 (en) * 2005-01-05 2008-05-06 Intel Corporation Method, system, and program for addressing pages of memory by an I/O device
US7853957B2 (en) * 2005-04-15 2010-12-14 Intel Corporation Doorbell mechanism using protection domains
JP4831599B2 (ja) 2005-06-28 2011-12-07 ルネサスエレクトロニクス株式会社 処理装置
US7949815B2 (en) * 2006-09-27 2011-05-24 Intel Corporation Virtual heterogeneous channel for message passing
US11474970B2 (en) * 2019-09-24 2022-10-18 Meta Platforms Technologies, Llc Artificial reality system with inter-processor communication (IPC)
US11487594B1 (en) 2019-09-24 2022-11-01 Meta Platforms Technologies, Llc Artificial reality system with inter-processor communication (IPC)
US11520707B2 (en) 2019-11-15 2022-12-06 Meta Platforms Technologies, Llc System on a chip (SoC) communications to prevent direct memory access (DMA) attacks

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4325116A (en) * 1979-08-21 1982-04-13 International Business Machines Corporation Parallel storage access by multiprocessors

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7568077B2 (en) 2005-10-21 2009-07-28 Konica Minolta Business Technologies, Inc. Information processing apparatus and file controller
JP2010501951A (ja) * 2007-02-07 2010-01-21 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング 管理モジュール、生産者及び消費者プロセッサ、その構成、共有メモリを介したインタープロセッサ通信方法
US8959446B2 (en) 2008-11-20 2015-02-17 Canon Kabushiki Kaisha Information processing apparatus and method of controlling the same
JP2010250703A (ja) * 2009-04-17 2010-11-04 Canon Inc オペレーティングシステム、プログラム、情報処理装置および制御方法

Also Published As

Publication number Publication date
DE4016667C2 (de) 1997-11-20
US5214759A (en) 1993-05-25
DE4016667A1 (de) 1990-11-29

Similar Documents

Publication Publication Date Title
JPH02310664A (ja) 共有メモリを用いた通信方式
US6711643B2 (en) Method and apparatus for interrupt redirection for arm processors
US4481572A (en) Multiconfigural computers utilizing a time-shared bus
JP2593146B2 (ja) データハブ
US7103710B2 (en) Disk array controller with connection path formed on connection request queue basis
US6938253B2 (en) Multiprocessor communication system and method
JP3807250B2 (ja) クラスタシステム、コンピュータ及びプログラム
JPH0797363B2 (ja) 多重階層レベルマルチプロセツサ装置
JPS61109164A (ja) バス制御方法
JPH02103649A (ja) 制御装置および情報処理システム
US5392409A (en) I/O execution method for a virtual machine system and system therefor
JP2539058B2 (ja) デ―タプロセッサ
JPH04257054A (ja) チャネル間接続装置
US5446844A (en) Peripheral memory interface controller as a cache for a large data processing system
KR100630071B1 (ko) 다중 프로세서 환경에서의 dma를 이용한 고속 데이터전송 방법 및 그 장치
JP4053208B2 (ja) ディスクアレイ制御装置
US20030229721A1 (en) Address virtualization of a multi-partitionable machine
US6282144B1 (en) Multi-ported memory with asynchronous and synchronous protocol
JP2664827B2 (ja) 実時間情報転送制御方法
EP1990725B1 (en) Central processing unit, central processing unit control method, and information processing system
JP2001273191A (ja) コンピュータシステム
JPH06131246A (ja) 共有メモリの非同期アクセス方式
JPH056333A (ja) マルチプロセサシステム
JPS6041145A (ja) デイスクキヤツシユ装置
JPH053027B2 (ja)