JPH04128957A - マルチプロセッサシステムにおける共有資源の排他制御方法 - Google Patents

マルチプロセッサシステムにおける共有資源の排他制御方法

Info

Publication number
JPH04128957A
JPH04128957A JP2248952A JP24895290A JPH04128957A JP H04128957 A JPH04128957 A JP H04128957A JP 2248952 A JP2248952 A JP 2248952A JP 24895290 A JP24895290 A JP 24895290A JP H04128957 A JPH04128957 A JP H04128957A
Authority
JP
Japan
Prior art keywords
processor
release
shared resource
acquisition
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
JP2248952A
Other languages
English (en)
Inventor
Yoshiki Yamazaki
義樹 山崎
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2248952A priority Critical patent/JPH04128957A/ja
Publication of JPH04128957A publication Critical patent/JPH04128957A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔概 要〕 マルチプロセッサシステムにおける共有資源の排他制御
方法に関し、 共有資源に対する競合が発生した場合のプロセッサの処
理効率を、モニタのオーバーヘッドを増加させることな
く改善することの可能な排他制御方法を提供することを
目的とし、 各共有資源にセマフォ変数を設定し、 共有資源のいずれかの占有を要求するプロセッサが対応
するセマフォ変数に対して獲得命令を発行し、該獲得命
令により該共有資源の獲得に失敗したプロセッサが再度
獲得命令を発行し、該獲得命令により該共有資源の獲得
に成功したプロセッサが、共有資源の占有終了後に対応
するセマフォ変数に対して返却命令を発行して占有を解
除する各段階を具備するマルチプロセッサシステムにお
ける共有資源の排他制御方法において、前記返却命令を
発行するプロセッサが、他のプロセッサに対して共有資
源の占有の解除を通知する段階をさらに具備し、前記再
度獲得命令を発行する段階における前記プロセッサは、
該通知を受けたときのみ再度の獲得命令を発行すること
を特徴として構成する。
〔産業上の利用分野〕
本発明は、マルチプロセッサシステムにおける共有資源
の排他制御方法に関する。
マルチプロセッサシステムは時間あたりに要求される処
理量が多く、その処理を複数の単位に分割することが可
能であり、かつ、それら分割された処理の間の相関すな
わちデータの共有度が比較的小さい場合に採用される方
式であり、分割された処理をそれぞれ複数のプロセッサ
に分担させて負荷分散を行なうことにより、一般に高性
能のプロセッサ1個で実現する場合より、全体として低
コストで実現することができる。通常、各プロセッサは
システムバスで並列に接続され、各プロセッサで共有さ
れるデータを格納する共通メモリあるいは共通入出力装
置等の共有資源もこのシステムバスに接続される。した
がって、これら共有資源へのアクセスが複数のプロセッ
サで競合した場合に備えるために、排他制御を行なう必
要があり、この排他制御はセマフォ変数により行なうの
が最も一般的である。
〔従来の技術〕
第1図はマルチプロセッサシステムの一例の構成を概念
的に表わす図である。n個のプロセッサ10はシステム
バス12に接続され、共有資源としての共有メモリ14
および外部入出力装置16もシステムハス12に接続さ
れている。共有メモリ14および外部入出力装置16は
、プロセッサ10の各々からシステムバス12を紅白し
てそれぞれ独立にアクセスが可能である。したがって1
つの共有メモリ14に対するアクセスが複数のプロセッ
サ10で競合する場合があり、これを調整するために、
共有資源毎にセマフォ変数が設定される。このセマフォ
変数は、通常、共用メモリ14の一部にその領域が割り
当てられる。
第8図はセマフォ変数による従来の排他制御方法を表わ
すフローチャートである。共有資源にアクセスする必要
のあるプロセッサは対応するセマフォ変数に対して獲得
命令(P命令)を発行する(ステップa)、、このとき
、他のプロセッサが占有中であるためにセマフォ変数が
“使用中”を示していれば、獲得失敗ということになり
、タイマウェイトしくステップc)、タイマのタイムア
ウトの割り込みでウェイトが解除され、再度ステップa
の処理へ戻る。このタイマウェイト中にはこのタスクは
動作を停止しており、その公地のタスクが動いて、他の
処理が実行される。ステップbにおいて獲得に成功すれ
ば、すなわちセマフォ変数の使用中が解除されておれば
引き続いて使用中がセットされこのプロセッサによる占
有が始まり、処理が実行される(ステップd)。処理が
緒ったら返却命令(V命令)を発行することにより(ス
テップe)、セマフォ変数の“使用中”が解除され、共
有資源の占有が終了する。
〔発明が解決しようとする課題〕
前述のように、共有資源の獲得に失敗したプロセッサは
一定時間のタイマを設定し、そのタイマのタイムアウト
後に再度獲得命令を発行し、これをくり返すことにより
、他のプロセッサの占有解除後にアクセスするという方
法がとられている。
したがって、たとえタイマの設定直後に占有中のプロセ
ッサが占有を解除したとしても、タイマがタイムアウト
するまでの一定時間中処理を中断しなければならず、効
率が悪いという問題がある。
また、この時間を短かくするためにタイマの設定時間を
短かくすると、タイマ処理のためのモニタのオーバーヘ
ッドが大きくなるという問題を生じる。
したがって本発明の目的は、共有資源に対する競合が発
生した場合の、プロセッサの処理効率を、モニタのオー
バーヘッドを増加させることなく改善することの可能な
排他制御方法を提供することにある。
〔課題を解決するための手段〕
前述の目的を達成する本発明のマルチプロセッサシステ
ムにおける共有資源の排他制御方法は、各共有資源にセ
マフォ変数を設定し、共有資源のいずれかの占有を要求
するプロセッサが対応するセマフォ変数に対して獲得命
令を発行し、該獲得命令により該共有資源の獲得に失敗
したプロセッサが再度獲得命令を発行し、該獲得命令に
より該共有資源の獲得に成功したプロセッサが、共有資
源の占有終了後に対応するセマフォ変数に対して返却命
令を発行して占有を解除する各段階を具備するマルチプ
ロセッサシステムにおける共有資源の排他制御方法にお
いて、前記返却命令を発行するプロセッサが、他のプロ
セッサに対して共有資源の占有の解除を通知する段階を
さらに具備し、前記再度獲得命令を発行する段階におけ
る前記プロセッサは、該通知を受けたときのみ再度の獲
得命令を発行することを特徴とするものである。
〔作 用〕
占有を終了したプロセッサが他のプロセッサに対して占
有の解除を通知し、解除を待っているプロセッサはこの
通知を受けて初めて再度の獲得命令を発行することにな
り、したがって、占有解除待ちのプロセッサの処理が効
率化され、モニタのオーバーヘッドの増大もない。
〔実施例〕
第2図は本発明の第1の実施例における処理手順を表わ
すフローチャートである。本実施例は、各共有資源につ
いてセマフォ変数の他に予約プロセッサIDを格納する
領域を設け、共有資源の獲得に失敗して占有解除待ちと
なったプロセッサがこの領域に自己を認識するためのI
Dを格納し、資源を占有していたプロセッサが占有の解
除を通知する際にこの領域を参照して解除待ちをしてい
るプロセッサを認識し、それに対してのみ解除通知を発
するというものである。
獲得命令を発行して(ステップa)獲得に失敗すると(
ステップb)、自己のIDを前述の予約プロセッサID
の領域に格納しくステップC)、解除通知を待ってウェ
イトする(ステップd)。
資源を占有していたプロセッサからの解除通知は割り込
みとして入力され、この割り込みによりウェイトが解除
されてステップCの処理に戻る。ステップaで獲得命令
を発行したとき、占有解除待ちのプロセッサがこのプロ
セッサのみであったかあるいは複数の占有解除待ちのプ
ロセッサのうちこのプロセッサが最も優先度が高くて最
先に獲得命令を発行しておれば、獲得は成功し、資源を
占有しての処理を行なう(ステップe)。処理の終了後
、返却命令を発行しくステップf)、予約ブロセッサI
Dの格納領域を参照して予約があればそのプロセッサに
対して解除通知を行なう(ステップh)。
第3図はこの方法による制御を実例により説明するため
の図である。#1のプロセッサ10(CPU#i)を先
に資源を占有したプロセッサとし、#」のプロセッサ1
0 (CPU#j )をそれと競合するプロセッサとす
る。■の矢印で示すように、CPU$i は成る共有資
源を占有すべく獲得命令を発行し、セマフォ変数Aが使
用中でないので獲得に成功し、セマフォ変数Aは使用中
にセットされ資源の占有が始まる。その後CPt1#j
が獲得命令を発行すると(■)セマフォ変数Aは使用中
となっているので獲得に失敗する。そこでcpt+sj
 は予約CPUIDの領域Bに自己のID例えば数字の
Jを格納する(■)。
CPU#i による資源の占有が終了するとCPU#i
 は、返却命令によりセマフォ変数Aの使用中を解除す
るとともに予約CPUIDの格納領域Bを参照しく■)
、CP[I#jが解除待ちであることを知る。そこでC
P[I$iはcP[I#j に対して占有の解除を通知
する(■)。
CP[I#j はこの通知を受けて獲得命令を発行し、
直ちに獲得に成功する。
第4図は本発明の第2の実施例における処理手順を表わ
すフローチャートである。
獲得に失敗すると、使用中のプロセッサのIDを読み出
しくステップC)、そのプロセッサに対して占有が終了
したら解除通知を出すように依頼しくステップd)、解
除通知を待ってウェイトしくステップe)、解除通知の
割り込みによりウェイトが解除されて再度の獲得命令を
発行する(ステップa)。獲得に成功したら、資源を占
有して処理を行ない(ステップf)、その後返却命令を
発行して占有を解除しくステップg)、解除通知の依頼
が出されておればそのプロセッサに対して解除を通知す
る(ステップ1)。占有処理中に他のプロセッサから解
除通知の依頼を受信したら、その割り込みにより依頼の
あったCPUのIDを記憶する(ステップj)。
第5図はこの方法による制御の態様を実例により説明す
るための図である。前と同様にCPDiを先に資源の占
有に成功するプロセッサ、crt+sjをそれと競合す
るプロセッサとする。■■までは前と同様であるが、獲
得に失敗したCPU#j はCPU#iに対して解除通
知を依頼する(■)。資源の占有を終了したCPIJ4
ti は依頼のあったCPU#j に対し解除通知を行
なう(■)。
第6図は本発明の第3の実施例における処理手順を表わ
すフローチャートである。獲得に失敗したプロセッサは
解除通知を待ってウェイトしくステップC)、解除通知
の割り込みによりウェイトが解除され、再度獲得命令を
発行する(ステップa)。獲得に成功したら、占有処理
を行ないくステップd)、その終了後返却命令を発行し
くステップe)、他のすべてのプロセッサに対して解除
通知を行なう(ステップf)。
第7図はこの方法による制御の態様を実例により説明す
るための図である。CPU#iを先に資源の占有に成功
するプロセッサとし、CP[I#jをそれと競合するプ
ロセッサとし、CPU#kをそれ以外のプロセッサの1
つとする。■■の過程は前述と同様であり、獲得に失敗
したCPLl#j は解除通知待ちとなる。CP[J#
i は占有が終了したらCP[J#i 、CP[I#k
を含む他のすべてのプロセッサに対して占有の解除を通
知する(■)。CPU$にはこの割り込みを無視するが
cPU#j はこの割り込みにより再度の獲得命令を発
行する。
なお、これらの情報の授受はシステムバス12を経由し
て行なうのが好適であるが、専用線を設けて一部をこの
専用線を介して行なうようにしても良い。
〔発明の効果〕
本発明により、各プロセッサで競合する共有資源の排他
制御を占有中プロセッサと占有解除待ちプロセッサで同
期をとることができ共有資源の使用率を向上させること
で、システム全体の処理能力を向上させることが可能と
なる。
【図面の簡単な説明】
第1図はマルチプロセッサシステムの一例の概略構成を
表わす図、 第2図は本発明の第1の実施例を表わすフローチャート
、 第3図は本発明の第1の実施例の動作を説明するたtの
図、 第4図は本発明の第2の実施例を表わすフローチャート
、 第5図は本発明の第2の実施例の動作を説明するための
図、 第6図は本発明の第3の実施例を表わすフローチャート
、 第7図は本発明の第3の実施例の動作を説明するたtの
図、 第8図は従来の制御方法を表わす図。 図において、 10・・・プロセッサ、12・・・システムバス、14
・・・共有メモリ。 マルチプロセッサシステムの構成の一例第1図 第1の実施例 第2図 A・・・セマフォ変数 B・・・予約CPU ID 第1の実施例の動作を説明する図 示3図 第2の実施−例 A・・・セマフォ変数 第2の実施例の動作を説明するための間第5図 第 図 第3の実施例の動作を説明するための図第7図

Claims (1)

  1. 【特許請求の範囲】 1、各共有資源(14、16)にセマフォ変数(A)を
    設定し、 共有資源(14、16)のいずれかの占有を要求するプ
    ロセッサ(10)が対応するセマフォ変数(A)に対し
    て獲得命令を発行し、 該獲得命令により該共有資源(14、16)の獲得に失
    敗したプロセッサ(10)が再度獲得命令を発行し、 該獲得命令により該共有資源(14、16)の獲得に成
    功したプロセッサ(10)が、共有資源(14、16)
    の占有終了後に対応するセマフォ変数(A)に対して返
    却命令を発行して占有を解除する各段階を具備するマル
    チプロセッサシステムにおける共有資源の排他制御方法
    において、 前記返却命令を発行するプロセッサが、他のプロセッサ
    に対して共有資源の占有の解除を通知する段階をさらに
    具備し、 前記再度獲得命令を発行する段階における前記プロセッ
    サは、該通知を受けたときのみ再度の獲得命令を発行す
    ることを特徴とするマルチプロセッサシステムにおける
    共有資源の排他制御方法。 2、前記セマフォ変数のそれぞれについて予約プロセッ
    サIDを格納する領域(B)を設定し、前記獲得命令に
    より前記共有資源の獲得に失敗したプロセッサ(CPU
    #j)が、自己のIDを対応する該領域(B)に格納す
    る各段階をさらに具備し、前記占有の解除を通知する段
    階におけるプロセッサ(CPU♯i)は、対応する該領
    域(B)に予約プロセッサIDが格納されているプロセ
    ッサ(CPU♯j)のみに対して占有の解除を通知する
    請求項1記載の方法。 3、前記獲得命令を発行する段階におけるプロセッサ(
    CPU♯j)が前記共有資源の獲得に失敗したとき、該
    共有資源を占有しているプロセッサに対して自己のID
    を解除通知の依頼として通知する段階をさらに具備し、 前記占有の解除を通知する段階におけるプロセッサ(C
    PU#i)は該解除通知依頼を受けているプロセッサ(
    CPU♯j)に対してのみ占有の解除を通知する請求項
    1記載の方法。 4、前記占有の解除を通知する段階におけるプロセッサ
    (CPU#i)は他のすべてのプロセッサに対して占有
    の解除を通知する請求項1記載の方法。
JP2248952A 1990-09-20 1990-09-20 マルチプロセッサシステムにおける共有資源の排他制御方法 Pending JPH04128957A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2248952A JPH04128957A (ja) 1990-09-20 1990-09-20 マルチプロセッサシステムにおける共有資源の排他制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2248952A JPH04128957A (ja) 1990-09-20 1990-09-20 マルチプロセッサシステムにおける共有資源の排他制御方法

Publications (1)

Publication Number Publication Date
JPH04128957A true JPH04128957A (ja) 1992-04-30

Family

ID=17185854

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2248952A Pending JPH04128957A (ja) 1990-09-20 1990-09-20 マルチプロセッサシステムにおける共有資源の排他制御方法

Country Status (1)

Country Link
JP (1) JPH04128957A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5903763A (en) * 1993-03-26 1999-05-11 Fujitsu Limited Method of recovering exclusive control instruction and multi-processor system using the same
JP2010140290A (ja) * 2008-12-12 2010-06-24 Panasonic Corp マルチプロセッサシステム及びその排他制御の調停方法
JP2015530679A (ja) * 2012-10-04 2015-10-15 クゥアルコム・インコーポレイテッドQualcomm Incorporated 高効率アトミック演算を使用した方法および装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5903763A (en) * 1993-03-26 1999-05-11 Fujitsu Limited Method of recovering exclusive control instruction and multi-processor system using the same
JP2010140290A (ja) * 2008-12-12 2010-06-24 Panasonic Corp マルチプロセッサシステム及びその排他制御の調停方法
JP2015530679A (ja) * 2012-10-04 2015-10-15 クゥアルコム・インコーポレイテッドQualcomm Incorporated 高効率アトミック演算を使用した方法および装置

Similar Documents

Publication Publication Date Title
JPH05197671A (ja) マスター・スレーブ通信方法
JPH04128957A (ja) マルチプロセッサシステムにおける共有資源の排他制御方法
JPS6321941B2 (ja)
JP2000305893A (ja) Pciバス互換性を有するマスターおよびアービターと仲裁方法
JP2504818B2 (ja) マルチプロセッサ装置における共通メモリ制御方法
JPH08153065A (ja) バス制御回路
JPH0962640A (ja) 共有メモリのアクセス制御方法
JPH06266657A (ja) 情報処理装置
JPH0830549A (ja) バス制御装置
KR100243868B1 (ko) 주 전산기에서의 중재로직 방법
JPS6145348A (ja) バス優先権制御方式
JP2836591B2 (ja) プロセッサ間バス伝送方法及びプロセッサ間バス伝送システム
JP2002207714A (ja) マルチプロセッサ装置
JPS5840215B2 (ja) システム同期方式
JPH0525135B2 (ja)
JPH1115792A (ja) マルチマイクロプロセッサシステム
JP2752919B2 (ja) 共有メモリへのアクセス方法
JPH0156420B2 (ja)
JPH02204838A (ja) タスク優先順位管理方式
JPH06161951A (ja) バス制御方式
JPH04223546A (ja) リクエスト競合制御方式
JPS59111563A (ja) マルチプロセツサの制御方式
JPH04129399A (ja) マルチプロセッサの負荷分散制御方式
JPS58155436A (ja) 複合計算機システムの共通バス制御方式
JPH03125251A (ja) データマルチ処理システム及びそのバス選択方法