JP3536219B2 - 分散メモリ保護管理装置 - Google Patents
分散メモリ保護管理装置Info
- Publication number
- JP3536219B2 JP3536219B2 JP24897393A JP24897393A JP3536219B2 JP 3536219 B2 JP3536219 B2 JP 3536219B2 JP 24897393 A JP24897393 A JP 24897393A JP 24897393 A JP24897393 A JP 24897393A JP 3536219 B2 JP3536219 B2 JP 3536219B2
- Authority
- JP
- Japan
- Prior art keywords
- message
- memory
- message buffer
- processor
- processor module
- 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
Links
- 230000015654 memory Effects 0.000 title claims description 168
- 239000000872 buffer Substances 0.000 claims description 127
- 238000012546 transfer Methods 0.000 claims description 88
- 230000005540 biological transmission Effects 0.000 claims description 35
- 238000012545 processing Methods 0.000 claims description 15
- 238000000034 method Methods 0.000 claims description 14
- 238000004891 communication Methods 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 9
- 101150022075 ADR1 gene Proteins 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 101100490566 Arabidopsis thaliana ADR2 gene Proteins 0.000 description 1
- 101100269260 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) ADH2 gene Proteins 0.000 description 1
- 230000004308 accommodation Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Landscapes
- Storage Device Security (AREA)
- Multi Processors (AREA)
- Memory System (AREA)
Description
て、複数のプロセッサモジュール相互間でメッセージの
転送を行う場合、メモリを不正なアクセスから保護する
ことができ、メモリの保護管理が可能な分散メモリ保護
管理装置に関するものである。
マルチプロセッサシステムにおいて、複数のスレッド、
つまり並列実行の単位となる軽量プロセスの間でメッセ
ージを交信しながら処理を進行させる分散処理方式が提
案されている。図3は、上記方式を用いた従来の分散処
理システムのブロック図である。図3において、1−
1,1−2は複数台存在するマルチプロセッサシステム
のうちの2台のプロセッサモジュール、2−1,2−2
はプロセッサ、3−1,3−2はそれぞれ対応するプロ
セッサモジュール1−1,1−2から読み書きアクセス
が可能な分散共有メモリ、4−1,4−2はプロセッサ
モジュール相互間でメッセージ転送を行うためのDMA
(Direct Memory Access)コントローラ、5はプロセ
ッサ間通信路、6は分散共有メモリ3−1上に設けられ
たメッセージバッファ、7は分散共有メモリ3−2上に
設けられたメッセージバッファである。なお、各分散共
有メモリ3−1,3−2には、全プロセッサモジュール
1−1,1−2に共通のアドレスが割り付けられてい
る。また、分散共有メモリ上のメッセージバッファ6,
7は、それぞれADR1,ADR2を先頭アドレスにし
てnバイトの容量を持っている。
ル1−1からプロセッサモジュール1−2にメッセージ
を転送する場合を考える。図3における太線とそれに付
加された括弧付番号(10)〜(15)は、メッセージ
転送動作のステップを示す。プロセッサ2−1で実行さ
れる送信スレッド(図示省略)からの要求により、カー
ネルプログラム(図示省略)が分散共有メモリ3−1内
にメッセージバッファ6を確保して、その旨を通信スレ
ッドに通知する。なお、カーネルプログラムは、最高優
先度を有するプログラムであって、分散共有メモリ21
−1やケーパビリティメモリ33−1に対して、いづで
もアクセス可能である。送信スレッドは、確保したメッ
セージバッファ6にメッセージを書き込む(ステップ1
0)。次に、カーネルプログラムは、メッセージバッフ
ァ6の先頭アドレスADR1とメッセージサイズnと転
送先のプロセッサ番号等の制御情報を、DNAコントロ
ーラ4−1に設定する(ステップ11)。DMAコント
ローラ4−1は、設定された制御情報を基にメッセージ
をメッセージバッファ6から順次読み出すと同時に、メ
ッセージの先頭に制御情報を付加してプロセッサ間通信
路5を経由し、受信側プロセッサモジュール1−2のD
MAコントローラ4−2に転送する(ステップ12)。
DMAコントローラ4−2は、メッセージを受信した
後、プロセッサ2−2のカーネルに割り込みをかける
(ステップ13)。カーネルは、メッセージの先頭の制
御情報をDMAコントローラ4−2に設定する。これに
より、DMAコントローラ4−2はメッセージを分散共
有メモリ3−2内のメッセージバッファ7に転送し(ス
テップ14)、カーネルに転送終了を通知する。カーネ
ルが受信スレッド(図示省略)を起動することにより、
受信スレッドはメッセージバッファ7からメッセージを
読み出す(ステップ15)。このような方法により、プ
ロセッサモジュール相互間でメッセージの転送が行われ
ている。なお、分散共有メモリ上のメッセージバッファ
は、複数のプロセッサにより共用される共通のリソース
であるため、従来、例えば、特定のプロセッサモジュー
ル1−1が共通リソースの使用権管理を一元的に行って
いた。その結果、各プロセッサモジュールは共有メモリ
上のメッセージバッファを排他的に使用することができ
た。
のように、送信側と受信側とで共通のアドレスが与えら
れた共有メモリ上にメッセージバッファを設定するの
で、受信側では空きメッセージバッファのエリアをその
都度探索する必要がなく、メッセージ転送遅延ならびに
受信側カーネルの処理オーバヘッドを削減することがで
きる。しかしながら、この方法では、送信側の分散共有
メモリ3−1と受信側の分散共有メモリ3−2とが物理
的には分離されているが、論理的には同一アドレスを持
っているため、正常動作時には便利であるが、一旦障害
が発生した場合には、暴走を防ぐことができない。例え
ば、プロセッサモジュール1−2内のプログラムが暴走
して分散共有メモリ3−2のメッセージエリア7から誤
って読み出したり、メッセージエリア7に誤って書き込
んでしまう危険性がある。そのために、分散共有メモリ
を不正なメモリアクセスから保護する対策が要求されて
いた。そこで、従来、例えば特開平5−134930号
公報に記載の『メモリ保護装置』に示すように、メッセ
ージバッファへのアクセスが発生する都度、メッセージ
バッファ対応に用意されたキー情報と、現在実行中のプ
ロセスが有するキー情報とを比較して、不正アクセスか
否かを判定する方法が提案されている。しかしながら、
この方法は、単一プロセッサモジュール内のローカルメ
モリに対して保護する方法であって、本発明の対象とす
る分散共有メモリのように、複数のプロセッサモジュー
ルに分散された分散メモリを各種の不正なアクセスから
保護する方法ではない。さらに、共有分散メモリ上に確
保するメッセージバッファを、従来のように特定のプロ
セッサモジュールで一元管理する方法では、特定のプロ
セッサだけに処理負荷が集中してしまい、システム全体
の性能ボトルネックを引き起こすことがあり、また特定
のプロセッサにメモリの捕捉要求や解放要求を伝達する
ための通信オーバヘッドが大きくなってしまうという問
題があった。本発明の目的は、このような従来の課題を
解決し、分散共有メモリに対する不正なメモリアクセス
に対して、完全なメモリ保護を行うと同時に、分散され
た各共有メモリのリソース管理を各プロセッサに分散さ
せてソフトウェアのオーバヘッドを削減することが可能
な効率のよいメモリ保護管理装置を提供することにあ
る。
め、本発明のメモリ保護管理装置は、(イ)複数のプロ
セッサモジュール(図1の18)を具備するコンピュー
タシステムにおいて、各プロセッサモジュール(18)
は、スレッドを実行単位として処理を行うプロセッサ
(19)と、全プロセッサ間で共通の同一アドレスが割
り付けられて、各々複数のメッセージバッファ(22)
を収容する分散共有メモリ(21)と、異なるプロセッ
サモジュールの分散共有メモリ間で情報転送を行うプロ
セッサ間転送装置(23)と、各メッセージバッファ
(22)に対するアクセス権を記憶するメモリケーパビ
リティ記憶手段(33)、各プロセッサで実行中のスレ
ッドに対するアクセス権情報を記憶するカレントケーパ
ビリティ記憶手段(34)、およびメモリケーパビリテ
ィ記憶手段(33)とカレントケーパビリティ記憶手段
(34)の内容を比較して、メッセージバッファ(2
2)への正しいアクセスか否かを判定するケーパビリテ
ィ比較手段(35)とを有し、あるプロセッサモジュー
ル(18−1)で実行される送信スレッドから他のプロ
セッサモジュール(18−2)で実行される受信スレッ
ドにメッセージを転送する場合、送信側プロセッサモジ
ュール(18−1)は、自モジュール内の分散共有メモ
リ(21−1)上に送信側メッセージバッファ(22−
1)を確保し、送信側メッセージバッファ(22−1)
に対応する送信側プロセッサモジュール(18−1)内
のメモリケーパビリティ記憶手段(36−1)およびカ
レントケーパビリティ記憶手段(34−1)にアクセス
権情報を設定し、送信側プロセッサモジュール(18−
1)内のプロセッサ(19−1)から分散共有メモリ
(21−1)上の送信側メッセージバッファ(22−
1)へのメモリアクセスがある度に、ケーパビリティ比
較手段(35−1)によりメモリケーパビリティ記憶手
段(36−1)とカレントケーパビリティ記憶手段(3
4−1)の内容を比較して、正しいアクセスであるか否
かを判断し、送信側メッセージバッファ(22−1)内
に書き込まれたメッセージをプロセッサ間転送装置(2
3−1)により受信側プロセッサモジュール(18−
2)内の分散共有メモリ(21−2)の送信側と同じア
ドレス位置の受信側メッセージバッファ(22−2)に
転送し、一方、受信側プロセッサモジュール(18−
2)は、受信側メッセージバッファ(22−2)に対応
するメモリケーパビリティ記憶手段(36−2)および
カレントケーパビリティ記憶手段(34−2)にアクセ
ス権情報を設定し、受信側プロセッサモジュール(18
−2)内のプロセッサ(19−2)から分散共有メモリ
(21−2)上の受信側メッセージバッファ(22−
2)へのメモリアクセスがある度に、ケーパビリティ比
較手段(35−2)によりメモリケーパビリティ記憶手
段(36−2)とカレントケーパビリティ記憶手段(3
4−2)の内容を比較して、正しいアクセスであるか否
かを判断し、送信側および受信側における不正アクセス
をチェックすることも特徴としている。また、(ロ)あ
るプロセッサモジュール(18−1)で実行される送信
スレッドから他のプロセッサモジュール(18−2)で
実行される受信スレッドにメッセージを転送する場合、
アクセス権情報を転送メッセージ中に含ませて、送信側
分散共有メモリ(21−1)のメッセージバッファ(2
2−1)から受信側分散共有メモリ(21−2)のメッ
セージバッファ(22−2)に転送し、受信側のプロセ
ッサモジュール(18−2)では、受信メッセージバッ
ファ(22−2)からアクセス権情報を抜き出して、受
信側メッセージバッファ(22−2)に対応するメモリ
ケーパビリティ記憶手段(33−2)にアクセス権情報
を設定することも特徴としている。また、(ハ)あるプ
ロセッサモジュール(18−1)で実行される送信スレ
ッドから他のプロセッサモジュール(18−2)で実行
される受信スレッドにメッセージを転送する場合、分散
共有メモリ(21−1)上の未使用のメッセージバッフ
ァ(22−1)を記憶管理するフリーリストをプロセッ
サモジュール相互間で重複しないように分散記憶し、送
信側プロセッサモジュール(18−1)からメッセージ
バッファ捕捉要求があったときには、送信側プロセッサ
モジュール(18−1)内のフリーリストから送信側メ
ッセージバッファ(22−1)を選択してフリーリスト
から外し、送信側プロセッサモジュール(18−1)で
送信側メッセージバッファ(22−1)を使用した後、
バッファの内容を受信側プロセッサモジュール(18−
2)の分散共有メモリ(21−2)で送信側と同じアド
レス位置の受信側メッセージバッファ(22−2)に転
送し、受信側スレッドにおける処理が終了した後は、受
信側メッセージバッファ(22−2)を受信側プロセッ
サモジュール(18−2)のフリーリストに登録するこ
とも特徴としている。
するアクセス権情報を記憶するメモリケーパビリティテ
ィ記憶手段と、各プロセッサで実行中のスレッドに対す
るアクセス権情報を記憶するカレントケーパビリティ記
憶手段と、スレッドに対するアクセス権とメッセージバ
ッファに対するアクセス権とが等しいか否かを比較照合
するケーパビリティ比較手段とからなるメモリ保護装置
を用いて、メモリの内容を保護する。あるプロセッサモ
ジュールで実行される送信スレッドから他のプロセッサ
モジュールで実行される受信スレッドにメッセージを転
送する場合に、先ず、送信側プロセッサモジュールでは
自モジュール内の分散共有メモリ上に送信側メッセージ
バッファを確保した後、送信側メッセージバッファに対
応する自モジュール内のメモリケーパビリティ記憶手段
およびカレントケーパビリティ記憶手段にアクセス権情
報を設定する。そして、自モジュール内のプロセッサか
ら自モジュール内の分散共有メモリ上の送信側メッセー
ジバッファに対してメモリアクセスがあると、その度毎
にメモリ保護装置のケーパビリティ比較手段でメモリケ
ーパビリティ記憶手段の内容とカレントケーパビリティ
記憶手段の内容とを比較することにより、メッセージバ
ッファへの正しいアクセスであるか否かを判定する。ま
た、メッセージバッファ内に書き込まれたメッセージ
を、プロセッサ間転送装置により受信側プロセッサモジ
ュールの分散共有メモリの送信側と同一アドレス位置の
受信側メッセージバッファに転送する。一方の受信側プ
ロセッサモジュールでは、受信側メッセージバッファに
対応するメモリケーパビリティ記憶手段およびカレント
ケーパビリティ記憶手段にアクセス権情報を設定して、
受信側プロセッサモジュール内のプロセッサから分散共
有メモリ上の受信側メッセージバッファへのメモリアク
セスがある度毎に、ケーパビリティ比較手段により正し
いアクセスであるか否かを判断する。これにより、送信
側および受信側における不正アクセスをチェックする。
レッドから受信側スレッドに送信するメッセージ中に含
ませて、送信側分散共有メモリのメッセージバッファか
ら受信側分散共有メモリのメッセージバッファに転送す
る。これにより、受信側のプロセッサモジュールでは、
受信側メッセージバッファからメモリケーパビリティを
抜き出して、受信側メッセージバッファに対応するメモ
リケーパビリティ記憶手段にメモリケーパビリティを設
定する。その結果、送信側と受信側とでケーパビリティ
を共有することができ、同一のアドレスを持つ複数の分
散共有メモリの各々に対して強固な保護を実現すること
ができる。また、各プロセッサモジュールにおいて、分
散共有メモリ上の未使用のメッセージバッファを記憶管
理するフリーリストを、プロセッサモジュール相互間で
重複しないように分散して記憶し、送信側プロセッサモ
ジュールからメッセージバッファの捕捉要求があったと
き、送信側プロセッサモジュール内のフリーリストから
送信側メッセージバッファを選択してフリーリストから
外し、送信側プロセッサモジュールで送信側メッセージ
バッファを使用した後に、その内容を受信側プロセッサ
モジュールの分散共有メモリで、送信側と同じアドレス
位置の受信側メッセージバッファに転送し、受信側スレ
ッドにおける処理終了後、受信側メッセージバッファを
受信側プロセッサモジュールのフリーリストに登録す
る。これによって、メモリを効率よく分散管理すること
が可能である。
説明する。図1および図2は、本発明の一実施例を示す
分散メモリ保護管理装置のシステム構成図である。図
1,図2において、18−1,18−2はマルチプロセ
ッサシステムにおけるプロセッサモジュール(18−1
は送信側、18−2は受信側)、19−1,19−2は
それぞれプロセッサ、20−1,20−2はそれぞれ対
応するプロセッサ19−1,19−2から読み書きアク
セスが可能なローカルメモリ、21−1,21−2は全
プロセッサモジュール相互間で共通のアドレスが与えら
れた分散共有メモリ、22−1,22−2はそれぞれ分
散共有メモリ21−1,21−2上に配置され、かつ両
方とも同じアドレスを持つメッセージバッファ(M
B)、23−1,23−2はプロセッサモジュール相互
間で効率よくメッセージ転送を行うメッセージ転送装
置、24−1,24−2はプロセッサモジュール相互間
でメッセージ転送を行うための要求を記憶するキュー
(待ち行列)、つまりモジュール間転送要求キュー(I
PQ)、25−1,25−2は自プロセッサモジュール
からの要求を記憶する出力転送要求キュー(IPO
Q)、26−1,26−2は他プロセッサモジュールか
らの要求を記憶する入力転送要求キュー(IPIQ)
で、それぞれモジュール間転送要求キュー24−1,2
4−2を構成している。27−1,27−2はメッセー
ジ等を一時的に記憶するキュー(待ち行列)、つまりメ
ッセージバッファキュー(MBQ)、28−1,28−
2は自プロセッサモジュールからのメッセージを記憶す
る入力メッセージバッファキュー(MBIQ)、29−
1,29−2は他プロセッサモジュールからのメッセー
ジを記憶する入力メッセージバッファキュー(MBI
Q)で、それぞれメッセージバッファキュー27−1,
27−2を構成している。なお、プロセッサ19−1か
らアクセスできる分散共有メモリは、自プロセッサモジ
ュール18−1に内蔵された共有メモリ21−1のみで
あり、一方のプロセッサ19−2からアクセスできる分
散共有メモリは、同じく自プロセッサモジュール18−
2に内蔵された共有メモリ21−2のみである。従っ
て、プロセッサ19−1から共有メモリ21−2にはア
クセスできず、またプロセッサ19−2から共有メモリ
21−1にはアクセスできない。
モリ21−1,21−2とMBQ27−1,27−2と
の間のデータ転送を制御するモジュール内転送制御部、
31−1,31−2はそれぞれ自プロセッサモジュール
のMBQ27−1,27−2と他プロセッサモジュール
のMBQとの間のデータ転送を制御するモジュール間転
送制御部、32はモジュール間通信路、33−1,33
−2はそれぞれ分散共有メモリ21−1,21−2上の
メッセージバッファの各々に対応するアクセス権情報
(メモリケーパビリティ)を記憶するケーパビリティメ
モリ、34−1,34−2はそれぞれのプロセッサ19
−1,19−2で実行されているスレッド(軽量プロセ
ス)に与えられたアクセス権情報(カレントケーパビリ
ティ)を記憶するケーパビリティレジスタ(CCR)、
35−1,35−2はそれぞれケーパビリティメモリ3
3−1,33−2から読み出したメモリケーパビリティ
と、CCR34−1,34−2から読み出したケーパビ
リティとを比較して、不一致があれば不正アクセスと判
定するための比較器、36−1,36−2はそれぞれメ
ッセージバッファ22−1,22−2に対応するメモリ
ケーパビリティを記憶するエリアである。なお、不正ア
クセスを検出した場合には、並行して行われている分散
共有メモリ21−1,21−2へのアクセスを中断し、
信号線37−1,37−2を経由してプロセッサ19−
1,19−2に不正アクセスの検出を通知する。
ジュール内のプロセッサとIPQ間、および異なるプロ
セッサモジュール内のMBQ間の各転送情報のフォーマ
ット図である。図4において、40は転送制御情報の送
り先を示すアドレス部であり、IPIQまたはIPOQ
に対応するアドレスが格納される。41は転送制御情報
のデータ部であり、受信プロセッサ番号、送信プロセッ
サ番号、MBアドレス、受信スレッドID、およびメッ
セージサイズの各フィールドから構成される3ワードの
情報である。プロセッサ19−1または19−2は、メ
モリ読み書き命令により各ワードにIPIQまたはIP
OQアドレスを付与して、IPQ24−1,24−2に
送出し、それらの読み書きを実行する。また、42はモ
ジュール間転送情報の宛先を示すアドレス部であり、転
送先のプロセッサ番号が格納される。43はモジュール
間転送情報のデータ部で、最初の3ワードは前述のメッ
セージ転送制御情報のデータ部41と同一であり、4ワ
ード目以降にはメッセージの本体が格納される。異なる
プロセッサモジュール内のMBQ間で情報転送する場合
には、モジュール間転送情報のデータ部の各ワードとア
ドレス部の対が、順次、モジュール間通信路32を経由
してMBQ27−1から他のMBQ27−2に転送され
る。
受信スレッドにメッセージを転送する場合の制御シーケ
ンスチャートであり、また図6は、未使用のメッセージ
バッファを管理するフリーMBリストの状態を示す図で
ある。送信スレッドおよびフリーMBリストは、いずれ
も各プロセッサモジュール18−1,18−2のローカ
ルメモリ20−1,20−2に記憶されている。最初の
状態では、ローカルメモリ20−1は、図6(1)に示
すように、メッセージバッファのNO.5の先頭アドレ
ス(以下、MBA−5)から始まって、MBA−8、M
BA−2、MBA−4の順序で使用できるようにリンク
されているものとする。一方、ローカルメモリ20−2
では、図6(3)に示すように、メッセージバッファN
O.6の先頭アドレス(以下、MBA−6)から始まっ
て、MBA−3、MBA−7の順序で使用できるように
リンクされているものとする。両者のフリーMBリスト
を合わせた全体が、分散共有メモリ21−1,21−2
上で未使用のメッセージバッファ全体を表わしている。
以下、プロセッサモジュール18−1内の送信スレッド
からプロセッサモジュール18−2内の受信スレッドに
メッセージを転送する場合を例にとって、図1図2、図
4〜図6により説明する。なお、図5における矢印の番
号は、それぞれステップ番号を示す。先ず、図4に示す
ように、カーネルが次に実行すべきスレッドとして送信
スレッドを選択し、送信スレッドのID番号(スレッド
ID)と、送信スレッドで使用するメッセージバッファ
への読み出し権/書き込み権/実行権等のをカレントケ
ーパビリティとしてCCR34−1に設定し(ステップ
60)、送信スレッドを起動する(ステップ61)。前
述のように、カーネルは、最高優先順位のプログラムで
あって、分散共有メモリ21−1およびケーパビリティ
メモリ33−1を任意の時点でアクセスできる。次に、
送信スレッドは、メッセージを収容するためのメッセー
ジバッファ(MB)の確保をカーネルに要求する(ステ
ップ62)。カーネルは、ローカルメモリ20−1にあ
る図6(1)の状態のフリーMBリストを参照して、リ
ストの先頭にあるメッセージバッファNO.5(MBA
−5)をリストから外し、これの使用を予約する。な
お、この場合、MBA−5は、図1におけるMB22−
1の斜線した範囲に等しいものとする。
の使用を要求した送信スレッドのスレッドIDとアクセ
スタイプをメモリケーパビリティとして、メッセージバ
ッファNO.5(MB22−1)に対応するケーパビリ
ティメモリエリア36−1に設定する(ステップ6
3)。以上で、カレントケーパビリティとメモリケーパ
ビリティの値が設定されたため、送信スレッドとカーネ
ル以外のものは、メッセージバッファ22−1にアクセ
スできなくなる。次に、カーネルは、確保したメッセー
ジバッファ22−1のアドレス(MBA−5)を送信ス
レッドに通知すると(ステップ64)、送信スレッドは
メッセージバッファ22−1にメッセージを書き込み
(ステップ65)、カーネルにメッセージの送信要求を
行う(ステップ66)。カーネルは、メッセージ送信要
求がプロセッサモジュール18−2宛のメッセージであ
ることを識別すると、送信スレッド側プロセッサ19−
1のメモリケーパビリティエリア36−1をクリアする
(ステップ67)。その結果、CCR34−1のカレン
トケーパビリティとメモリケーパビリティエリア36−
1の内容が異なってくるため、送信スレッドはメッセー
ジバッファ22−1にアクセスすることができなくな
る。
転送制御情報41を作成し、そのアドレス部40に自プ
ロセッサのIPOQ25−1のアドレスを設定する。カ
ーネルは、このメッセージ転送制御情報41をメモリ書
き込み命令によりIPOQ25−1に書き込む(ステッ
プ68)。IPOQ25−1内の転送制御情報41がM
BOQ28−1に送られ、転送すべき最初の3ワードが
MBOQ28−1に設定される(ステップ69)。続い
て、モジュール内転送制御部30−1が、IPOQ25
−1内の転送制御情報41に基づいてMB22−1のデ
ータをMBOQ28−1に指定されたサイズ分だけ転送
する(ステップ70)。転送が終ると、モジュール内転
送制御部30−1は、転送制御情報41をモジュール間
転送制御部31−1に引き継ぐ(ステップ71)。モジ
ュール間転送制御部31−1は、図4に示すように、転
送制御情報41のうちの受信プロセッサ番号を抜き出
し、宛先アドレス42を設定する。MBOQ28−1内
には、全転送データ43が準備されているため、モジュ
ール間転送制御部31−1がモジュール間通信路32に
アドレス42およびデータ43を送出する(ステップ7
4)。モジュール間通信路32は、送られてきたアドレ
スを見て、受信プロセッサモジュール19−2にルーチ
ングすることにより、そのMBIQ29−2にデータ4
3を送り届ける。
6)に対するカーネルの処理が終了し、送信スレッドが
再び実行を開始して、送信スレッド全体の処理が終了す
ると(ステップ72)、カーネルはCCR34−1内の
カレントケーパビリティをクリアする(ステップ7
3)。次に、受信プロセッサモジュール18−2のモジ
ュール間転送制御部31−2は、MBIQ29−2内の
データ情報の最初の3ワード(転送制御情報41)を取
り出し(ステップ75)、IPIQ26−2に送信す
る。モジュール間転送制御部31−2が転送制御情報4
1のメッセージサイズに基づいて転送ワード数をカウン
トし、転送が完了したことを確認すると、転送制御情報
41をモジュール内転送制御部30−2に引き継ぐ(ス
テップ76)。この転送制御情報41に基づいて、モジ
ュール内転送制御部30−2はMBIQ29−2内のメ
ッセージ本体を分散共有メモリ21−2の指定されたM
Bエリア22−2に転送する(ステップ77)。MBエ
リア22−2内における収容場所は、転送制御情報41
内のMBアドレスおよびメッセージサイズで指定され
る。これらの値は、送信側の分散共有メモリ21−1の
MBアドレスとメッセージサイズの値と同じであるた
め、論理的には同一であり、物理的には異なる2つの分
散共有メモリ間でデータのコピーが行われたことを意味
している。
6−2を読み出しているため、いずれかの時期にIPI
Q26−2からメッセージ転送制御情報41をメモリ読
み出し命令により読み出し、その中の受信スレッドID
で示すスレッドにメッセージが到着したことを検出する
(ステップ78)。受信側カーネルは、受信スレッドか
らメッセージ受信要求(ステップ79)を受けるまで待
ち、受信要求を受けて送受信の同期がとれていることを
確認すると、CCR34−2にカレントケーパビリティ
を設定する(ステップ80)。すなわち、具体的には、
受信側スレッドのID番号(スレッドID)と、メッセ
ージバッファ22−2への読み出し権/書き込み権/実
行権等のアクセスタイプを、図1に示すCCR34−2
に設定する。そして、メッセージバッファ22−2に対
応するメモリケーパビリティエリア36−2にメモリケ
ーパビリティ(MCR)を設定する(ステップ81)。
これにより、受信スレッドとカーネル以外のものから
は、MB22−2へのアクセスができないように保護さ
れる。
と(ステップ82)、受信スレッドはメッセージ転送制
御情報41に基づいてMB22−2からメッセージを読
み出し(ステップ83)、必要な処理を行う。処理が終
了すると、受信スレッドはMBの解放を要求する(ステ
ップ84)。カーネルは、メモリケーパビリティエリア
36−2をクリアする(ステップ85)。次に、ローカ
ルメモリ20−2にある図6(3)の状態のフリーMB
リストの先頭にMBA−5を登録する。これにより、フ
リーMBリストは、図6(4)の状態になり、受信プロ
セッサ19−1からのメッセージバッファ捕捉の新たな
要求に対して、MBA−5を再使用可能にする。受信ス
レッド側の処理が終了して、カーネルに制御権が戻ると
(ステップ86)、CCR34−2の値がクリアされる
(ステップ87)。以上で、メッセージ送受信の全ての
処理は完了した。このように、本実施例においては、送
信側で設定したメモリケーパビリティを受信側は直接用
いることなく、受信側は独自に設定している。しかし、
一般にメモリケーパビリティ自身を、あるプロセッサモ
ジュール内の送信スレッドから異なるプロセッサモジュ
ール内の受信側に引き継ぎたい場合もある。このような
場合には、送信側のカーネルがMCRの設定(ステップ
63)の後にメッセージバッファ22−1の特定領域に
メモリケーパビリティの値を予め書き込んでおき、これ
を含めてメッセージとしてプロセッサモジュール間で物
理転送を行う。受信側カーネルでは、MCRの設定(ス
テップ81)の前にメッセージバッファ22−2の特定
領域にあるメモリケーパビリティを読み出す。これによ
り、送信側のメモリケーパビリティを受信側でそのまま
引き継ぐことが可能である。
同一のアドレスを有する共有メモリが物理的に複数のプ
ロセッサモジュールに分散配置されている場合、(イ)
送信側および受信側のプロセッサモジュールでそれぞれ
ケーパビリティメモリにメモリケーパビリティを設定
し、カレントケーパビリティレジスタにカレントケーパ
ビリティを設定し、これらとメッセージ転送装置と組み
合わせることにより、送信側と受信側のいずれの分散共
有メモリに対しても、不正なアクセスから保護すること
ができる。また、(ロ)送信側のメモリケーパビリティ
をメッセージ中に埋め込んで受信側にそのまま引き継ぐ
ことにより、柔軟で高度のメモリ保護を実現することが
できる。さらに、(ハ)メッセージバッファを管理する
フリーリストを各プロセッサに分配配置して、そのプロ
セッサで使用済みのメッセージバッファをそのプロセッ
サのフリーリストに戻すので、集中的なメッセージバッ
ファ管理機構や管理元への通信が不要となり、その結
果、処理オーバヘッドを小さくすることが可能である。
ールのブロック図である。
図である。
続関係を示すブロック図である。
御情報およびモジュール間転送情報のフォーマット図で
ある。
へのメッセージ転送の処理シーケンスチャートである。
トの説明図である。
PQ) 25−1,25−2 出力転送要求キュー(IPOQ) 26−1,26−2 入力転送要求キュー(IPIQ) 27−1,27−2 メッセージバッファキュー(MB
Q) 28−1,28−2 出力メッセージバッファキュー
(MBOQ) 29−1,29−2入力メッセージバッファキュー(M
BIQ) 30−1,30−2 モジュール内転送制御部 31−1,31−2 モジュール間転送制御部 32 モジュール間通信路 33−1,33−2 ケーパビリティメモリ 34−1,34−2 カレントケーパビリティレジスタ
(CCR) 35−1,35−2 比較器 36−1,36−2 メモリケーパビリティ記憶エリア 37−1,37−2 信号線 40,41 メッセージ転送制御情報 42,43 モジュール間転送情報
Claims (3)
- 【請求項1】 複数のプロセッサモジュールを具備する
コンピュータシステムにおいて、上記各プロセッサモジ
ュールは、スレッドを実行単位として処理を行うプロセ
ッサと、全プロセッサ間で共通の同一アドレスが割り付
けられて、各々複数のメッセージバッファを収容する分
散共有メモリと、異なるプロセッサモジュールの分散共
有メモリ間で情報転送を行うプロセッサ間転送装置と、
各メッセージバッファに対するアクセス権を記憶するメ
モリケーパビリティ記憶手段、各プロセッサで実行中の
スレッドに対するアクセス権情報を記憶するカレントケ
ーパビリティ記憶手段、および上記メモリケーパビリテ
ィ記憶手段と上記カレントケーパビリティ記憶手段の内
容を比較して、上記メッセージバッファへの正しいアク
セスか否かを判定するケーパビリティ比較手段とを有
し、 あるプロセッサモジュールで実行される送信スレッドか
ら他のプロセッサモジュールで実行される受信スレッド
にメッセージを転送する場合、 送信側プロセッサモジュールは、自モジュール内の上記
分散共有メモリ上に送信側メッセージバッファを確保
し、該送信側メッセージバッファに対応する送信側プロ
セッサモジュール内のメモリケーパビリティ記憶手段お
よびカレントケーパビリティ記憶手段にアクセス権情報
を設定し、該送信側プロセッサモジュール内のプロセッ
サから分散共有メモリ上の送信側メッセージバッファへ
のメモリアクセスがある度に、ケーパビリティ比較手段
により上記メモリケーパビリティ記憶手段とカレントケ
ーパビリティ記憶手段の内容を比較して、正しいアクセ
スであるか否かを判断し、該送信側メッセージバッファ
内に書き込まれたメッセージをプロセッサ間転送装置に
より受信側プロセッサモジュール内の分散共有メモリの
上記送信側と同じアドレス位置の受信側メッセージバッ
ファに転送し、 一方、受信側プロセッサモジュールは、受信側メッセー
ジバッファに対応するメモリケーパビリティ記憶手段お
よびカレントケーパビリティ記憶手段にアクセス権情報
を設定し、該受信側プロセッサモジュール内のプロセッ
サから分散共有メモリ上の受信側メッセージバッファへ
のメモリアクセスがある度に、上記ケーパビリティ比較
手段により上記メモリケーパビリティ記憶手段とカレン
トケーパビリティ記憶手段の内容を比較して、正しいア
クセスであるか否かを判断し、送信側および受信側にお
ける不正アクセスをチェックし、 上記あるプロセッサモジュールで実行される送信スレッ
ドから他のプロセッサモジュールで実行される受信スレ
ッドにメッセージを転送する場合、アクセス権情報を転
送メッセージ中に含ませて、送信側分散共有メモリのメ
ッセージバッファから受信側分散共有メモリのメッセー
ジバッファに転送し、受信側のプロセッサモジュールで
は、受信メッセージバッファからアクセス権情報を抜き
出して、受信側メッセージバッファに対応するメモリケ
ーパビリティ記憶手段にアクセス権情報を設定 すること
を特徴とする分散メモリ保護管理装置。 - 【請求項2】 複数のプロセッサモジュールを具備する
コンピュータシステムにおいて、上記各プロセッサモジ
ュールは、スレッドを実行単位として処理を行うプロセ
ッサと、全プロセッサ間で共通の同一アドレスが割り付
けられて、各々複数のメッセージバッファを収容する分
散共有メモリと、異なるプロセッサモジュールの分散共
有メモリ間で情報転送を行うプロセッサ間転送装置と、
各メッセージバッファに対するアクセス権を記憶するメ
モリケーパビリティ記憶手段、各プロセッサで実行中の
スレッドに対するアクセス権情報を記憶するカレントケ
ーパビリティ記憶手段、および上記メモリケーパビリテ
ィ記憶手段と上記カレントケーパビリティ記憶手段の内
容を比較して、上記メッセージバッファへの正しいアク
セスか否かを判定するケーパビリティ比較手段とを有
し、 あるプロセッサモジュールで実行される送信スレッドか
ら他のプロセッサモジュールで実行される受信スレッド
にメッセージを転送する場合、 送信側プロセッサモジュールは、自モジュール内の上記
分散共有メモリ上に送信側メッセージバッファを確保
し、該送信側メッセージバッファに対応する送信側プロ
セッサモジュール内のメモリケーパビリティ記憶手段お
よびカレントケーパビリティ記憶手段にアクセス権情報
を設定し、該送信側プロセッサモジュール内のプロセッ
サから分散共有メモリ上の送信側メッセージバッファへ
のメモリアクセスがある度に、ケーパビリティ比較手段
により上記メモリケーパビリティ記憶手段とカレントケ
ーパビリティ記憶手段の内容を比較して、正しいアクセ
スであるか否かを判断し、該送信側メッセージバッファ
内に書き込まれたメッセージをプロセッサ間転送装置に
より受信側プロセッサモジュール内の分散共有メモリの
上記送信側と同じアドレス位置の受信側メッセージバッ
ファに転送し、 一方、受信側プロセッサモジュールは、受信側メッセー
ジバッファに対応するメモリケーパビリティ記憶手段お
よびカレントケーパビリティ記憶手段にアクセス権情報
を設定し、該受信側プロセッサモジュール内のプロセッ
サから分散共有メモリ上の受信側メッセージバッファへ
のメモリアクセスがある度に、上記ケーパビリティ比較
手段により上記メモリケーパビリティ記憶手段とカレン
トケーパビリティ記憶手段の内容を比較して、正しいア
クセスであるか否かを判断し、送信側および受信側にお
ける不正アクセスをチェックし、 上記プロセッサ間転送装置により送信側メッセージバッ
ファから受信側メッセージバッファにメッセージを転送
するとき、 送信側プロセッサモジュールは、受信プロセッサ番号、
送信プロセッサ番号、メッセージバッファアドレス、受
信スレッドID、メッセージサイズからなるメッセージ
転送制御情報を出力転送要求キューに書き込み、該メッ
セージ転送制御情報を出力メッセージバッファキューに
送り、該メッセージ転送制御情報に基づいて送信側メッ
セージバッファのデータを出力メッセージバッファキュ
ーに指定されたサイズ分だけ転送し、出力メッセージバ
ッファのデータをモジュール間通信路に送出し、 受信側プロセッサモジュールは、入力メッセージバッフ
ァキューからメッセージ転送制御情報を取り出し入力転
送要求キューに送り、メッセージ転送制御情報のメッセ
ージサイズに基づいて送信側プロセッサモジュールから
のメッセージ転送が完了したことを確認し、メッセージ
転送制御情報に基づいて入力メッセージバッファキュー
のメッセージ本体を受信側メッセージバッファの指定さ
れたエリアに転送することを特徴とする分散メモリ保護
管理装置。 - 【請求項3】 請求項1もしくは請求項2のいずれかに
記載の分散メモリ保護管理装置において、上記あるプロ
セッサモジュールで実行される送信スレッドから他のプ
ロセッサモジュールで実行される受信スレッドにメッセ
ージを転送する場合、分散共有メモリ上の未使用のメッ
セージバッファを記憶管理するフリーリストをプロセッ
サモジュール相互間で重複しないように分散記憶し、送
信側プロセッサモジュールからメッセージバッファ捕捉
要求があったときには、送信側プロセッサモジュール内
のフリーリストから送信側メッセージバッファを選択し
てフリーリストから外し、送信側プロセッサモジュール
で送信側メッセージバッファを使用した後、該バッファ
の内容を受信側プロセッサモジュールの分散共有メモリ
で送信側と同じアドレス位置の受信側メッセージバッフ
ァに転送し、受信側スレッドにおける処理が終了した後
は、受信側メッセージバッファを受信側プロセッサモジ
ュールのフリーリストに登録することを特徴とする分散
メモリ保護管理装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP24897393A JP3536219B2 (ja) | 1993-10-05 | 1993-10-05 | 分散メモリ保護管理装置 |
US08/317,647 US5617537A (en) | 1993-10-05 | 1994-10-03 | Message passing system for distributed shared memory multiprocessor system and message passing method using the same |
EP94115617A EP0646876B1 (en) | 1993-10-05 | 1994-10-04 | Message passing system for distributed shared memory multiprocessor system and message passing method using the same |
DE69424114T DE69424114T2 (de) | 1993-10-05 | 1994-10-04 | Nachrichtenübertragungssystem für Multiprozessorsystem mit verteiltem gemeinsamen Speicher und dazu gehöriges Nachrichtenübertragungsverfahren |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP24897393A JP3536219B2 (ja) | 1993-10-05 | 1993-10-05 | 分散メモリ保護管理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07105099A JPH07105099A (ja) | 1995-04-21 |
JP3536219B2 true JP3536219B2 (ja) | 2004-06-07 |
Family
ID=17186146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP24897393A Expired - Fee Related JP3536219B2 (ja) | 1993-10-05 | 1993-10-05 | 分散メモリ保護管理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3536219B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4621314B2 (ja) * | 1999-06-16 | 2011-01-26 | 株式会社東芝 | 記憶媒体 |
JP2008135047A (ja) * | 2000-11-06 | 2008-06-12 | Matsushita Electric Ind Co Ltd | マルチプロセッサ用インタフェース |
US7290112B2 (en) * | 2004-09-30 | 2007-10-30 | International Business Machines Corporation | System and method for virtualization of processor resources |
-
1993
- 1993-10-05 JP JP24897393A patent/JP3536219B2/ja not_active Expired - Fee Related
Non-Patent Citations (3)
Title |
---|
前川 守,所 真理雄,清水 謙多郎,"分散オペレーティングシステム −UNIXの次にくるもの",共立出版株式会社,1991年12月25日,pp.177−186 |
山田 茂樹,丸山 勝巳,"オブジェクト指向システム用軽量ケーパビリティプロテクション方式",情報処理学会論文誌,社団法人情報処理学会,1993年 9月15日,Vol.34,No.9,pp.2037−2047 |
山田 茂樹,丸山 勝巳,"オブジェクト指向交換プログラム向きのケーパビリティプロテクション方式",電子情報通信学会技術研究報告,社団法人電子情報通信学会,1992年 5月28日,Vol.92,No.75,pp.37−42 |
Also Published As
Publication number | Publication date |
---|---|
JPH07105099A (ja) | 1995-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5915088A (en) | Interprocessor messaging system | |
JP2587141B2 (ja) | 共用知能メモリを介して結合された複数のプロセッサ間でメッセージを伝達するための機構 | |
JPH06309252A (ja) | 相互接続インタフェース | |
JPH08287021A (ja) | 共用メモリに結合される複数の計算機システム及び共用メモリに結合される複数の計算機システムの制御方法 | |
JP3889879B2 (ja) | 仮想メモリ変換を制御する方法 | |
JP3010400B2 (ja) | 共有メモリ制御方法及び共有メモリ制御装置 | |
US6026448A (en) | Method and means for exchanging messages, responses and data between different computer systems that require a plurality of communication paths between them | |
US5410650A (en) | Message control system for data communication system | |
JPH07311750A (ja) | 並列計算機 | |
CN101447931B (zh) | 一种排他操作的实现方法和装置 | |
JP2501727B2 (ja) | 問題プログラム状態におけるメモリ間通信機能を提供するための方法 | |
JP3536219B2 (ja) | 分散メモリ保護管理装置 | |
JP3641834B2 (ja) | 並列プロセッサシステムおよびそれに適したパケット廃棄方法 | |
US7130936B1 (en) | System, methods, and computer program product for shared memory queue | |
JP2001333137A (ja) | 自主動作通信制御装置及び自主動作通信制御方法 | |
JP3312362B2 (ja) | マルチプロセッサシステム | |
CA2382927A1 (en) | Semaphore control of shared-memory | |
JP2736237B2 (ja) | 遠隔メモリアクセス制御装置 | |
JPH05224956A (ja) | プロセス間メッセージ通信方法 | |
JP3375649B2 (ja) | 並列計算機 | |
JPH0675861A (ja) | メモリアクセス保護装置 | |
JP3312361B2 (ja) | 分散共有メモリシステム | |
US6704765B1 (en) | System for allocating resources among agent processes | |
JPH0619855A (ja) | メッセージのキューイング方法とその装置 | |
JPH09146903A (ja) | 並列計算機におけるデータ転送制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20031128 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040127 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040220 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7426 Effective date: 20040223 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040304 |
|
LAPS | Cancellation because of no payment of annual fees |