JPS5922155A - マルチ・プロセツサ・システムの排他制御方法 - Google Patents
マルチ・プロセツサ・システムの排他制御方法Info
- Publication number
- JPS5922155A JPS5922155A JP57132404A JP13240482A JPS5922155A JP S5922155 A JPS5922155 A JP S5922155A JP 57132404 A JP57132404 A JP 57132404A JP 13240482 A JP13240482 A JP 13240482A JP S5922155 A JPS5922155 A JP S5922155A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- exclusive
- program
- state
- exclusive state
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Memory System (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔発明の技術分野〕
本発明は、マルチプロセッサ型電子計算機における主メ
モリ上のリソースヒ複数のプロセッサで共有するときの
排他制御方法に関する。
モリ上のリソースヒ複数のプロセッサで共有するときの
排他制御方法に関する。
電子計算機の使用効率を向上させるため、最近の電子計
算機にはマルチプログラミング方式が採用されている。
算機にはマルチプログラミング方式が採用されている。
マルチプログラミングとは、一つの処理装置で俵数個σ
フプログラム乞時分割して、見かけ上これらビ同時に実
行することである。すなわち、複数のタスク乞同時に実
行できる機能ン持つものである。
フプログラム乞時分割して、見かけ上これらビ同時に実
行することである。すなわち、複数のタスク乞同時に実
行できる機能ン持つものである。
そのために、複数のプログラムが同一のりソースをアク
セスする場合には、プログラム間でのリソースの排他が
必要になる。ここで、排他とは、同一のリソースを他の
プログラムがアクセスするのを禁止することをいうが、
複数のプログラム間でリソースの排他が必要になる事情
は次に示すとおりである。例えば、プログラムAとプロ
グラムBがリソースXを共有し、マルチ処理Y:実行し
ているとする。この場合に1両者のプログラム間で排他
がとられているときは、プログラムAとプログラムBの
実行および共有リソースXに対するアクセスは1時分割
的に独立して行なわれることになる。その結果、いずれ
のプログラムについても、期待する出力全書ることがで
きる。ところが1両者のプログラム間で排他がとられて
いないときは、事情は全く異なったものになる。なぜな
ら、プログラムAの共有リソースXに対するアクセスと
。
セスする場合には、プログラム間でのリソースの排他が
必要になる。ここで、排他とは、同一のリソースを他の
プログラムがアクセスするのを禁止することをいうが、
複数のプログラム間でリソースの排他が必要になる事情
は次に示すとおりである。例えば、プログラムAとプロ
グラムBがリソースXを共有し、マルチ処理Y:実行し
ているとする。この場合に1両者のプログラム間で排他
がとられているときは、プログラムAとプログラムBの
実行および共有リソースXに対するアクセスは1時分割
的に独立して行なわれることになる。その結果、いずれ
のプログラムについても、期待する出力全書ることがで
きる。ところが1両者のプログラム間で排他がとられて
いないときは、事情は全く異なったものになる。なぜな
ら、プログラムAの共有リソースXに対するアクセスと
。
プログラムBの共有リソースXに対するアクセスは、異
なる条件下で別個になされるので論理的に不整合乞生じ
るからである。例えば、プログラムAが共■リソースX
をアクセスしている時にプログラムBがこの共有リソー
スX乞アクセスして共有リソースXの状態ン変化させ、
その後もプログラムAは共有リソースXヶアクセスし続
けたとする。すると、プログラムAは、プログラムBに
より共有リソースXの状態が改変させられたことを知ら
ないで共有リソースX’Yアクセスすることになる。
なる条件下で別個になされるので論理的に不整合乞生じ
るからである。例えば、プログラムAが共■リソースX
をアクセスしている時にプログラムBがこの共有リソー
スX乞アクセスして共有リソースXの状態ン変化させ、
その後もプログラムAは共有リソースXヶアクセスし続
けたとする。すると、プログラムAは、プログラムBに
より共有リソースXの状態が改変させられたことを知ら
ないで共有リソースX’Yアクセスすることになる。
このように、排他がとられていない場合には。
先に実行中のプログラムAによりアクセスされている共
WIJソースXの状態は、途中で実行されたプログラム
Bによって変化させらり、プログラムAの共有リソース
Xに対する処理は異った条件下で続けら]しることにな
り、論理はりに不整合を生じることになる。すなわち、
プログラムへ〇共仔リソースXに対する変換” Fa(
xl−プログラムBの共有リソースに対する変換をFb
(x)とすると、プログラムAとプログラムBの間に排
他がとられている時には、共NIJソースXの状態は”
a(Fb(x))かFb(Fa(幻)であり、かつFa
(Fb(x))=Fb(Fa(X))となる。ところが
、プログラムAとプログラムBの間に排他がとられてい
ない時には、リソースXの状態はFa(x)かFb(x
)かあるいは全(予期しない結果かのいずれかになり、
少なくとも期待する出力は得られない。
WIJソースXの状態は、途中で実行されたプログラム
Bによって変化させらり、プログラムAの共有リソース
Xに対する処理は異った条件下で続けら]しることにな
り、論理はりに不整合を生じることになる。すなわち、
プログラムへ〇共仔リソースXに対する変換” Fa(
xl−プログラムBの共有リソースに対する変換をFb
(x)とすると、プログラムAとプログラムBの間に排
他がとられている時には、共NIJソースXの状態は”
a(Fb(x))かFb(Fa(幻)であり、かつFa
(Fb(x))=Fb(Fa(X))となる。ところが
、プログラムAとプログラムBの間に排他がとられてい
ない時には、リソースXの状態はFa(x)かFb(x
)かあるいは全(予期しない結果かのいずれかになり、
少なくとも期待する出力は得られない。
通常、このような排他が必要となるのは、互いに独立し
たプログラム間で共有する主メモリ、周辺装置、伝送装
置等である。これに対して、一般的には、排他制御は次
のような方法で実現されている。
たプログラム間で共有する主メモリ、周辺装置、伝送装
置等である。これに対して、一般的には、排他制御は次
のような方法で実現されている。
第1は、プログラムの実行管理ンー元化し、共有リソー
ス乞アクセスするときにプログラム間で競合関係が生じ
ないようにする方法である。第2は、競合するプログラ
ム間で、排他制御f11ヲ必要とする処理全行なう前に
は所定の排他制御マクロ命令を発行するよう取り決め、
共有リソースの排他状態を事前にチェックする方法であ
る。第3は。
ス乞アクセスするときにプログラム間で競合関係が生じ
ないようにする方法である。第2は、競合するプログラ
ム間で、排他制御f11ヲ必要とする処理全行なう前に
は所定の排他制御マクロ命令を発行するよう取り決め、
共有リソースの排他状態を事前にチェックする方法であ
る。第3は。
一方のプログラムが実行中には他方のプログラムの処理
が割り込まないようにする方法である。
が割り込まないようにする方法である。
一般に、第1の方法は適用範囲が周辺装置等の1幾器に
限定され、かつ通常はオペレーテイングシステムでサー
ビスされる。従って、アプリケーション・ソフトウェア
で使用される方法は、通常は上記の第2および第3の方
法であろう第2および第3の方法の使い分けは、所定の
排他制御マクロ命令乞実行するのに要する時間T1
と、排他を必要とする処理そのものの実行に要する時間
T2 とのどちらが短いかによって決められる。すなわ
ち、T1〉T2の場合には、上記第3の方法による方が
プログラムの応答上好ましく、また簡単である場合が多
い。それに対して、T□<T2の場合には。
限定され、かつ通常はオペレーテイングシステムでサー
ビスされる。従って、アプリケーション・ソフトウェア
で使用される方法は、通常は上記の第2および第3の方
法であろう第2および第3の方法の使い分けは、所定の
排他制御マクロ命令乞実行するのに要する時間T1
と、排他を必要とする処理そのものの実行に要する時間
T2 とのどちらが短いかによって決められる。すなわ
ち、T1〉T2の場合には、上記第3の方法による方が
プログラムの応答上好ましく、また簡単である場合が多
い。それに対して、T□<T2の場合には。
上記第2の方法による方がよい。
ところが、マルチプロセッサ型電子計算機においては、
このような共[+Jソースに対して、各々のプロセッサ
間で排他をとる必要がある。
このような共[+Jソースに対して、各々のプロセッサ
間で排他をとる必要がある。
この場合、前記第3の方法は利用できない。なぜなら、
電子計’l’J−機への新たな割込信号乞完全に停めた
としても、各プロセッサでは既にプログラムが走行して
おり、それらのプログラム間では互いに排他乞とること
ができないからである。また、前記第2の方法を利用す
るのも好ましくない。なぜなら、第2の方法を利用する
と、排他制御方法要とする全てのものに排他制御マクロ
命令乞発行し、それを分析する必要がある。これは、処
理が極めて煩雑なうえに、排他をとるための時間が膨大
になり、電子計算機の利用効率からいって好ましくない
。
電子計’l’J−機への新たな割込信号乞完全に停めた
としても、各プロセッサでは既にプログラムが走行して
おり、それらのプログラム間では互いに排他乞とること
ができないからである。また、前記第2の方法を利用す
るのも好ましくない。なぜなら、第2の方法を利用する
と、排他制御方法要とする全てのものに排他制御マクロ
命令乞発行し、それを分析する必要がある。これは、処
理が極めて煩雑なうえに、排他をとるための時間が膨大
になり、電子計算機の利用効率からいって好ましくない
。
ところで、マルチプロセッサ型電子計算機では。
各プロセッサの処理を完全に独立させることが、最も簡
単な業務割当て方法となる。しかし、従来の方法によっ
てこれを実現すると、マルチプロセッサの利用形態は極
めて制限されたものになり、その能力を十分に発揮しえ
ない。
単な業務割当て方法となる。しかし、従来の方法によっ
てこれを実現すると、マルチプロセッサの利用形態は極
めて制限されたものになり、その能力を十分に発揮しえ
ない。
本発明は、上記のような従来技術の欠点に鑑みてなされ
たもので、マルチプロセッサ型電子計算機におけるアプ
リケーションソフトウェアの利用に対して、簡便かつプ
ログラムの応答性全損わない排他制御方法χ実現するこ
と全白的とする。
たもので、マルチプロセッサ型電子計算機におけるアプ
リケーションソフトウェアの利用に対して、簡便かつプ
ログラムの応答性全損わない排他制御方法χ実現するこ
と全白的とする。
上記の目的YX:実現するために、本発明は、その内容
乞プロセッサにロードしようとする主メモリ上の指定ア
ドレスが排他状態にされているか百^χチェックして排
他状態にないときにはその内容をロードしてそれン排他
状態にしく排他読出命令)。
乞プロセッサにロードしようとする主メモリ上の指定ア
ドレスが排他状態にされているか百^χチェックして排
他状態にないときにはその内容をロードしてそれン排他
状態にしく排他読出命令)。
プロセッサの内容乞ストアしようとする主メモリ上の指
定アドレスが排他状態にされているか否か乞チェックし
て排他状態にないときはプロセッサの内容乞ストアζて
、その排他状態乞解き(解除格納命令)、あるいは指定
アドレス乞排他状態にしたり(排他命令)、排他状態を
解除したり(解除命令)して、各々のプロセッサがプロ
グラムを実行する段階で主メモリの排他状態乞チェック
し、主メモリ上の共有リソースの排他ン1IIJ ii
+4’ jるnl・他制御方法を提供するものである。
定アドレスが排他状態にされているか否か乞チェックし
て排他状態にないときはプロセッサの内容乞ストアζて
、その排他状態乞解き(解除格納命令)、あるいは指定
アドレス乞排他状態にしたり(排他命令)、排他状態を
解除したり(解除命令)して、各々のプロセッサがプロ
グラムを実行する段階で主メモリの排他状態乞チェック
し、主メモリ上の共有リソースの排他ン1IIJ ii
+4’ jるnl・他制御方法を提供するものである。
第1図乃至第3図乞参照して本発明の一実施例を説明す
る。まず、第1図によって、本つ6明の排他制御方法に
使用する装置の構成乞説明する。主メモリ1にメモリ・
々ス2ン介して演算制御装置3a 、 3bと排他状態
メモリ4ケ接続する。演算制御装置3a 、 3bは、
プログラムカウンタ31a。
る。まず、第1図によって、本つ6明の排他制御方法に
使用する装置の構成乞説明する。主メモリ1にメモリ・
々ス2ン介して演算制御装置3a 、 3bと排他状態
メモリ4ケ接続する。演算制御装置3a 、 3bは、
プログラムカウンタ31a。
31b、プロセッサ本体32a 、 32b 、および
制御レジスタ33a 、 33bにより構成されている
。主メモリ1はメモリパス2ン介していずれのプロセッ
サ本体32a 、 32bからも参照可能である。排他
状態メモリ4は主メモリ1の排他状態メモリするもので
、排他状態にされている主メモリlのアドレスと排他状
態にしているプロセッサの番号ケ科きこむことによって
行なう。なお、排他状態メモリ4は第1図のように通常
のメモリパスに接続してもよいが、より尚速にするため
にはキャッシュメモリの方が好ましい。プログラムカウ
ンタ31a 。
制御レジスタ33a 、 33bにより構成されている
。主メモリ1はメモリパス2ン介していずれのプロセッ
サ本体32a 、 32bからも参照可能である。排他
状態メモリ4は主メモリ1の排他状態メモリするもので
、排他状態にされている主メモリlのアドレスと排他状
態にしているプロセッサの番号ケ科きこむことによって
行なう。なお、排他状態メモリ4は第1図のように通常
のメモリパスに接続してもよいが、より尚速にするため
にはキャッシュメモリの方が好ましい。プログラムカウ
ンタ31a 。
31bは、その時点のプログラムの実行許地ン示すレジ
スタで、おのおののプロセッサ本体32a。
スタで、おのおののプロセッサ本体32a。
32bに接続されている。プロセッサ本体32a。
32bはマイクロプログラムおよびその制御部より成っ
ている。制御レジスタ33a 、 33bはそれぞれの
プロセッサ本体32a 、 32bを制御しかつその状
態を保持するレジスタで、例えば第2図のように当該プ
ロセッサの5TOP/RUNの状態、当該プロセッサの
排他待ち状態、当該プロセッサに対する割込禁止状態乞
記憶するエリアなどで構成されろ。
ている。制御レジスタ33a 、 33bはそれぞれの
プロセッサ本体32a 、 32bを制御しかつその状
態を保持するレジスタで、例えば第2図のように当該プ
ロセッサの5TOP/RUNの状態、当該プロセッサの
排他待ち状態、当該プロセッサに対する割込禁止状態乞
記憶するエリアなどで構成されろ。
従って、制御レジスタ33a 、 33bの内容を書き
換えることによって自己のプロセラサケ他のプログラム
に対する割込禁止状態にすることができる。
換えることによって自己のプロセラサケ他のプログラム
に対する割込禁止状態にすることができる。
次に、アプリケーション・ソフトウェアが利用するため
に用意される排他読出命令(LX)と、解除格納命令(
STX)と、解除命令(REX)と、排他命令(Ex)
と7第3図により説明する。
に用意される排他読出命令(LX)と、解除格納命令(
STX)と、解除命令(REX)と、排他命令(Ex)
と7第3図により説明する。
p43 F図(a)は排他読出命令(LX)χ説明する
ためのフローチャートで、まずプログラムカラ/り(P
C) 31a 、 31bに従い命令を取り出しくブロ
ック101)、オペランド部を計算してロードするアド
レスを割り出す(ブロック102)。そして、ロードす
る主メモリ1上のアドレスが排他状態にされているかど
うかを排他状態メモリ4を参照することで調べ、他のプ
ロセッサで排他状態にされているときは以上の動作を繰
り返し、他のゾロセッサで排他状態にされていないとき
は次にイLむ(ブロック103)。ロードするアドレス
が排他状態にされていないときはプロセッサの状態乞排
他状態メモリ4に記憶しくブロック1o4 ) 、自己
プロセッサの制御レジスタ33a 、 33bの内容全
書き換えることにより他のプログラムに対して割込禁止
状M とjる(ブロック105)。そして排他状態メモ
リ4にアドレスとプロセッサ番号乞記入することにより
主メモリ1上の所定のアドレスを排他状態にしくブロッ
ク106 ) 、主メモリ1上の指定アドレスの内容を
ロードした後(ブロック107 )、プログラムカラ/
り(PC) 31a 、 31b 乞更新して次のステ
ップに進める(ブロック108)。
ためのフローチャートで、まずプログラムカラ/り(P
C) 31a 、 31bに従い命令を取り出しくブロ
ック101)、オペランド部を計算してロードするアド
レスを割り出す(ブロック102)。そして、ロードす
る主メモリ1上のアドレスが排他状態にされているかど
うかを排他状態メモリ4を参照することで調べ、他のプ
ロセッサで排他状態にされているときは以上の動作を繰
り返し、他のゾロセッサで排他状態にされていないとき
は次にイLむ(ブロック103)。ロードするアドレス
が排他状態にされていないときはプロセッサの状態乞排
他状態メモリ4に記憶しくブロック1o4 ) 、自己
プロセッサの制御レジスタ33a 、 33bの内容全
書き換えることにより他のプログラムに対して割込禁止
状M とjる(ブロック105)。そして排他状態メモ
リ4にアドレスとプロセッサ番号乞記入することにより
主メモリ1上の所定のアドレスを排他状態にしくブロッ
ク106 ) 、主メモリ1上の指定アドレスの内容を
ロードした後(ブロック107 )、プログラムカラ/
り(PC) 31a 、 31b 乞更新して次のステ
ップに進める(ブロック108)。
第3図(b)は、解除格納命令(STX)を説明するだ
めのフローチャートで、−まずプログラムカウンタ(p
C) 31a t 31bに従い命令χ取り出しくブロ
ック201)、オペランド部を計算してストア丁べきア
ドレス7割り出−f(ブロック202)。そして。
めのフローチャートで、−まずプログラムカウンタ(p
C) 31a t 31bに従い命令χ取り出しくブロ
ック201)、オペランド部を計算してストア丁べきア
ドレス7割り出−f(ブロック202)。そして。
ストアすべき主メモリ1上の一アドレスが他のプロセッ
サによって排他状態にされているかどうか乞排他状態メ
モリ4を参照することで調べ、他のプロセッサで排他状
態にされているときは以上の動作を繰り返し、他のプロ
セッサで排他状態にされていないときは次に進む(ブロ
ック203)。ストアすべきアドレスが他のプロセッサ
によって排他状態にされていな(て自己のプロセッサで
排他状態にされているときは、排他状態メモリ4から指
定のアドレスと自己のプロセッサ番号ン削除し、排他状
態メモリする(ブロック204)。そして、プロセッサ
の状態乞排他状態メモリ4に記憶されている状態に戻し
た後(ブロック205)、主メモI71の指定アドレス
にデータをストアして(ブロック206)、プログラム
カウンタ(PC) 31a 、31bχ更新して次のス
テップに進める(ブロック207)。
サによって排他状態にされているかどうか乞排他状態メ
モリ4を参照することで調べ、他のプロセッサで排他状
態にされているときは以上の動作を繰り返し、他のプロ
セッサで排他状態にされていないときは次に進む(ブロ
ック203)。ストアすべきアドレスが他のプロセッサ
によって排他状態にされていな(て自己のプロセッサで
排他状態にされているときは、排他状態メモリ4から指
定のアドレスと自己のプロセッサ番号ン削除し、排他状
態メモリする(ブロック204)。そして、プロセッサ
の状態乞排他状態メモリ4に記憶されている状態に戻し
た後(ブロック205)、主メモI71の指定アドレス
にデータをストアして(ブロック206)、プログラム
カウンタ(PC) 31a 、31bχ更新して次のス
テップに進める(ブロック207)。
第3図(C)は解除命令(RE、0を説明するためのフ
ローチャートで、まずプログラムカウンタ(PC)31
a、31bに従って命令7取り出しくブロック301
)、オペランド部を計lTシてアドレスゲ割り出す(ブ
ロック302)。そしてそのアドレスが排他状態のとき
は排他状態メモリ4からのアドレスン削除して排他乞解
除しくブロック303)、プログラムカウンタ(PC)
31a 、 31b Y更新して仄のステップに進め
る(ブロック304 )。
ローチャートで、まずプログラムカウンタ(PC)31
a、31bに従って命令7取り出しくブロック301
)、オペランド部を計lTシてアドレスゲ割り出す(ブ
ロック302)。そしてそのアドレスが排他状態のとき
は排他状態メモリ4からのアドレスン削除して排他乞解
除しくブロック303)、プログラムカウンタ(PC)
31a 、 31b Y更新して仄のステップに進め
る(ブロック304 )。
第3図(d)は排他命令(EX)χ説明するfこめのフ
ローチャートで、まずプログラムカウンタ(PC)31
a 、 31bに従って命令7取り出しくブロック40
1)、オペランド部?計算してアドレス7割り出す(ブ
ロック402)。そして、排他状態メモリ4にそのアド
レスxt!き込んで排他状態にしくブロック403 )
、プログラムカウンタ(PC) 31a 。
ローチャートで、まずプログラムカウンタ(PC)31
a 、 31bに従って命令7取り出しくブロック40
1)、オペランド部?計算してアドレス7割り出す(ブ
ロック402)。そして、排他状態メモリ4にそのアド
レスxt!き込んで排他状態にしくブロック403 )
、プログラムカウンタ(PC) 31a 。
31b乞更新して次のステップに進める(ブロック40
4)。
4)。
仄に、2つの演算制御装jif3a、3bが2つのプロ
グラムカウンタそれぞh 、lキち、主メモリl上のX
なるエリア乞アクセスする場合を例にして本発明の排他
制御方法を説明する。なお、プログラムA、Bは次の表
のように構成されているとする。
グラムカウンタそれぞh 、lキち、主メモリl上のX
なるエリア乞アクセスする場合を例にして本発明の排他
制御方法を説明する。なお、プログラムA、Bは次の表
のように構成されているとする。
プログラムA
プログラムB
ここで、初期状態では主メモリ1に対する排他はないも
のと−「る。
のと−「る。
1ず、プロセッサ本体32aで実行中のプログラムAが
LX命令乞発行すると主メモリ1のエリアXの内容はR
i レジスタにロードされ、同]■qに排他状態メモ
リ4にはプロセッサ本体32aの番号とエリアXのアド
レスが書き込まれて主メモリ1のエリアXは排他状態に
される。また、プロセッサ本体32aで実行される他の
プログラムに対して割込禁止状態とするために制御レジ
スタ33aの内容が有き換えられる。これにより、以後
の当該プロセッサに対する割り込みは待ち状態とされる
。
LX命令乞発行すると主メモリ1のエリアXの内容はR
i レジスタにロードされ、同]■qに排他状態メモ
リ4にはプロセッサ本体32aの番号とエリアXのアド
レスが書き込まれて主メモリ1のエリアXは排他状態に
される。また、プロセッサ本体32aで実行される他の
プログラムに対して割込禁止状態とするために制御レジ
スタ33aの内容が有き換えられる。これにより、以後
の当該プロセッサに対する割り込みは待ち状態とされる
。
次に、プロセッサ本体32bで実行中のプログラムBが
エリアXに対してLX命令を発行すると、エリアXが排
他状態にあるかどうかを排他状態メモリ4で調べる。こ
のとき、エリアXはプロセッサ本体32aによって排他
状態にされているので、プロセッサ本体32bの状態χ
排他時ちとし、以後エリアXの排他が解除されるまでプ
ログラムカウンタ31bは更新されず、同じ命令ン繰り
返し続ける。この状態のときに、プロセッサ本体32b
にエリアX以外のエリアをアクセスするプログラム(プ
ログラムA、Bと異なる)による割込があると、プロセ
ッサ本体32bはそのプログラムに対するサービスχ行
なうことになる〇 次に、プロセッサ本体32aで実行中のプログラムAが
MPY (乗算)命令を終了させてその後STX命令命
令性発行と、排他状態メモリ4からエリアXについての
排他情報が削除され、かつプロセッサ本体32aの割込
禁止状態は解除される。すると。
エリアXに対してLX命令を発行すると、エリアXが排
他状態にあるかどうかを排他状態メモリ4で調べる。こ
のとき、エリアXはプロセッサ本体32aによって排他
状態にされているので、プロセッサ本体32bの状態χ
排他時ちとし、以後エリアXの排他が解除されるまでプ
ログラムカウンタ31bは更新されず、同じ命令ン繰り
返し続ける。この状態のときに、プロセッサ本体32b
にエリアX以外のエリアをアクセスするプログラム(プ
ログラムA、Bと異なる)による割込があると、プロセ
ッサ本体32bはそのプログラムに対するサービスχ行
なうことになる〇 次に、プロセッサ本体32aで実行中のプログラムAが
MPY (乗算)命令を終了させてその後STX命令命
令性発行と、排他状態メモリ4からエリアXについての
排他情報が削除され、かつプロセッサ本体32aの割込
禁止状態は解除される。すると。
プロセッサ本体32bではプログラムBによるLX命令
が繰り返し実行されているσノで、エリアXの排他状態
が解除された後にエリアXの内容がRjレジスタにロー
ドされ続いてAI)D C加算)命令が実行されること
になる。
が繰り返し実行されているσノで、エリアXの排他状態
が解除された後にエリアXの内容がRjレジスタにロー
ドされ続いてAI)D C加算)命令が実行されること
になる。
このようにして本発明によれは、別個のプロセッサで実
行中の別のプログラムが、共有リソ−スケ異なる条件下
でアクセスし合う不q合はなくなる。
行中の別のプログラムが、共有リソ−スケ異なる条件下
でアクセスし合う不q合はなくなる。
なお、排他状態メモリ4の書き込み内容は、主メモリ1
のある単位ごとのマツピング形式でもよいし、アドレス
範l71Iを登録する形式でもよい。また、各外1セッ
サの種々の動作χコード化し、それを登録する形式でも
よい。排他状態メモリ4は主メモリ1の一部乞使用して
も、別個に独立させてもよい。
のある単位ごとのマツピング形式でもよいし、アドレス
範l71Iを登録する形式でもよい。また、各外1セッ
サの種々の動作χコード化し、それを登録する形式でも
よい。排他状態メモリ4は主メモリ1の一部乞使用して
も、別個に独立させてもよい。
アプリケーション・ソフトウェアが利用する命令は、前
述のLX、STX、REX、EX の他に、次のような
ものを用意してもよい。すなわち、主メモリ1上の全て
のエリアを排他制御する命令や、各プロセッサの種々の
動作ビコード化してそのコードを排他状態メモリ4に登
録することにより主メモリ1乞アクセスすること以外の
プロセッサの動作を各プロセッサ間で排他する命令であ
る。
述のLX、STX、REX、EX の他に、次のような
ものを用意してもよい。すなわち、主メモリ1上の全て
のエリアを排他制御する命令や、各プロセッサの種々の
動作ビコード化してそのコードを排他状態メモリ4に登
録することにより主メモリ1乞アクセスすること以外の
プロセッサの動作を各プロセッサ間で排他する命令であ
る。
このように本発明によれば、別個のプロセッサで互いに
独立に実行される複数のプログラムが共有リソースをア
クセスする際に、先に示したLX。
独立に実行される複数のプログラムが共有リソースをア
クセスする際に、先に示したLX。
STX 、 EX 、 REX命令ンそれぞれのプログ
ラムが独自に利用することができるのでそれらのプログ
ラムが共有リソースを異なる条件下でアクセスし合うこ
とはなくなり、また、共有リソ−スケアクセスする際に
、それぞれのプログラムが独自に共有リソースの該当の
アドレスが排他状態にあるかどうか火調べて命令を実行
することになるので、簡便かつプログラムの応答性全損
わない排他制御ン実現できる。
ラムが独自に利用することができるのでそれらのプログ
ラムが共有リソースを異なる条件下でアクセスし合うこ
とはなくなり、また、共有リソ−スケアクセスする際に
、それぞれのプログラムが独自に共有リソースの該当の
アドレスが排他状態にあるかどうか火調べて命令を実行
することになるので、簡便かつプログラムの応答性全損
わない排他制御ン実現できる。
その結果、本発明によればソフトウェアの演算処理上の
負荷が少なく、そのためソフトウェアの使い方によりプ
ログラムの応答性に影響χ与えることが少ない。また、
排他するリソースが限定かつ識別できるので、そのリソ
ースに関する以外の処理に対しては全く影響ン与えない
。さらに、従来の単一のゾPセッサにおける排他制(財
)と見掛は上差異がなく、既成のソフトウェアの改造が
極めて簡単である。
負荷が少なく、そのためソフトウェアの使い方によりプ
ログラムの応答性に影響χ与えることが少ない。また、
排他するリソースが限定かつ識別できるので、そのリソ
ースに関する以外の処理に対しては全く影響ン与えない
。さらに、従来の単一のゾPセッサにおける排他制(財
)と見掛は上差異がなく、既成のソフトウェアの改造が
極めて簡単である。
第1図は本発明の排他制御方法に使用する装置制御方法
に使用する命令乞説明するためのフローチャートである
。 2・・・メモリパス、3a、3b・・・演算制御装置。 370− 吊3図 (cL) (b)(c)
(d) 371−
に使用する命令乞説明するためのフローチャートである
。 2・・・メモリパス、3a、3b・・・演算制御装置。 370− 吊3図 (cL) (b)(c)
(d) 371−
Claims (1)
- 【特許請求の範囲】 一 主メモリと、この主メモリに接続された複数のプ
ロセッサと、このプロセッサで実行中のプログラムの実
行番地乞示すプログラムカウンタと、前記主メモリのど
のアドレスがどのプロセッサにより排他状態にされてい
るか?記憶する排他状態メモリと、前記プロセッサが他
のプロセッサに対して割込禁止状態にあるかどうか乞記
憶する制御レジスタと2備えたマルチ・プロセッサ・シ
ステムの排他制御方法において。 排他読出命令により、−のプロセッサで実行中のプログ
ラムがロードしようとする1111記主メモリ上の指定
アドレスが他のプロセッサにより排他状態にされている
ときはこ+しか解除されるまでそのロード命令の実行乞
中断し、この指定アドレスがDのプロセッサにより排他
状態にサレテイナイトきはこの指定アドレスの内容乞こ
の−のプロセッサにロードしかつこの指定アドレスを排
他状態にしかつこの−のプロセッサを割込禁止状態にし
かツコノーのプロセッサについてのプログラムカウンタ
を更新してプログラムの実行全欠のステップに進め、 解除格納命令により、−のプロセッサで実行中のプログ
ラムがストアしようとする前記主メモリ上の指定アドレ
スが他のプロセッサにより排他状態にされているときは
これが解除されるまでそのストア命令の実行を中断し、
この指定アドレスが他のプロセッサにより排他状態にさ
」tていないときはこの−のプロセッサの内容をこの指
定アドレスにストアしかつこの指定アドレスの排他状態
をM除りかつこの−のプロセッサについてのプログラム
カウンタ乞更新してプログラムの実行を次のステップに
進め、 排他命令により、前記主メモリの指定アドレスヶ排他状
態にし、解除命令により、前記主メモリの指定アドレス
の排他状態を解除し、 前記各々のプロセッサで実行されるプログラムが前記主
メモリ上の共W’)ソースの排他乞制御することン特徴
とするマルチ・プロセッサ・システムの排他制御方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP57132404A JPS5922155A (ja) | 1982-07-29 | 1982-07-29 | マルチ・プロセツサ・システムの排他制御方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP57132404A JPS5922155A (ja) | 1982-07-29 | 1982-07-29 | マルチ・プロセツサ・システムの排他制御方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPS5922155A true JPS5922155A (ja) | 1984-02-04 |
Family
ID=15080597
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP57132404A Pending JPS5922155A (ja) | 1982-07-29 | 1982-07-29 | マルチ・プロセツサ・システムの排他制御方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS5922155A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH02156366A (ja) * | 1988-12-08 | 1990-06-15 | Nec Corp | 共有ディスク制御方式 |
| JP2024505635A (ja) * | 2021-01-29 | 2024-02-07 | アーム・リミテッド | 監視排他命令 |
-
1982
- 1982-07-29 JP JP57132404A patent/JPS5922155A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH02156366A (ja) * | 1988-12-08 | 1990-06-15 | Nec Corp | 共有ディスク制御方式 |
| JP2024505635A (ja) * | 2021-01-29 | 2024-02-07 | アーム・リミテッド | 監視排他命令 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR100578437B1 (ko) | 다수의 스레드의 병행 실행을 지원하는 컴퓨터 시스템에서의 인터럽트 처리 메커니즘 | |
| US12393371B2 (en) | Process isolation for a processor-in-memory (“PIM”) device | |
| KR100242484B1 (ko) | 캐쉬 메모리 시스템의 성능 최적화 방법 및 장치 | |
| US5689653A (en) | Vector memory operations | |
| EP0026589A2 (en) | Multi-programming data processing system process suspension | |
| JPS58151655A (ja) | 情報処理装置 | |
| JPH0430053B2 (ja) | ||
| JPS5911943B2 (ja) | デ−タ処理装置の為のトラツプ機構 | |
| JPH08278886A (ja) | データ処理システムでの拡張システム管理操作のための方法およびシステム | |
| US10241829B2 (en) | Information processing device, information processing method, recording medium, calculation processing device, calculation processing method | |
| KR20220127326A (ko) | 협력 워크-스틸링 스케줄러 | |
| JPH1115793A (ja) | 資源の保全性を保護する方法 | |
| US20070204271A1 (en) | Method and system for simulating a multi-CPU/multi-core CPU/multi-threaded CPU hardware platform | |
| JP3797570B2 (ja) | セマフォ命令用のセマフォ・バッファを用いた装置と方法 | |
| JP2539352B2 (ja) | 階層型多重計算機システム | |
| JP2024500779A (ja) | アドレスマッピング認識型タスク処理機構 | |
| US4991083A (en) | Method and system for extending address space for vector processing | |
| US7096472B2 (en) | Systems and methods for ensuring atomicity of processes in a multitasking computing environment | |
| US11385927B2 (en) | Interrupt servicing in userspace | |
| JP2004192052A (ja) | ソフトウェア処理方法およびソフトウェア処理システム | |
| JPS5922155A (ja) | マルチ・プロセツサ・システムの排他制御方法 | |
| US20040177224A1 (en) | Local memory with ownership that is transferrable between neighboring processors | |
| KR0136111B1 (ko) | 데이터요소의 수정장치 및 그 방법 | |
| MacKinnon | Advanced function extended with tightly-coupled multiprocessing | |
| Bahr et al. | Architecture, design, and performance of Application System/400 (AS/400) multiprocessors |