JPH0810448B2 - セマフォアクセス制御方法 - Google Patents
セマフォアクセス制御方法Info
- Publication number
- JPH0810448B2 JPH0810448B2 JP2028819A JP2881990A JPH0810448B2 JP H0810448 B2 JPH0810448 B2 JP H0810448B2 JP 2028819 A JP2028819 A JP 2028819A JP 2881990 A JP2881990 A JP 2881990A JP H0810448 B2 JPH0810448 B2 JP H0810448B2
- Authority
- JP
- Japan
- Prior art keywords
- semaphore
- processor
- memory
- value
- information
- 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
Landscapes
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【発明の詳細な説明】 〔概要〕 複数プロセッサ間でのメモリ領域、実行権等の計算機
資源の獲得のための排他制御に関し、 メモリ専有権獲得待ちのプロセッサが、セマフォ情報
の確認テストを反覆することによる無駄なメモリバスの
使用を除去することを目的とし、 キャッシュメモリを有する複数のプロセッサ間での排
他制御に際し、共有メモリ上のセマフォ情報にアクセス
を試みるプロセッサは先ずプロセッサ内に該情報を単純
にリードし、読み込まれたプロセッサ内の該情報をテス
トして、第1の値ならば更めてセマフォ獲得手段に進
み、第1の値でなければ読み込まれたプロセッサ内の該
情報が無効とされる迄、該情報にたいして確認テストを
反覆するように構成する。
資源の獲得のための排他制御に関し、 メモリ専有権獲得待ちのプロセッサが、セマフォ情報
の確認テストを反覆することによる無駄なメモリバスの
使用を除去することを目的とし、 キャッシュメモリを有する複数のプロセッサ間での排
他制御に際し、共有メモリ上のセマフォ情報にアクセス
を試みるプロセッサは先ずプロセッサ内に該情報を単純
にリードし、読み込まれたプロセッサ内の該情報をテス
トして、第1の値ならば更めてセマフォ獲得手段に進
み、第1の値でなければ読み込まれたプロセッサ内の該
情報が無効とされる迄、該情報にたいして確認テストを
反覆するように構成する。
本発明は、複数プロセッサ間でメモリ専有権を競合し
て獲得しようとする場合の排他制御のためのセマフォア
クセス制御方法に関する。
て獲得しようとする場合の排他制御のためのセマフォア
クセス制御方法に関する。
プロセッサはメモリを排他的に専有して計算機処理
(処理プログラムで規定された仕事)を実行するが、メ
モリを専有出来ないプロセッサは待ちの状態となり実行
中のプロセッサが計算機処理を終了しメモリ専有権を開
放したか否かを知るためにメモリ上の特定番地の特定な
情報であるセマフォ情報に対してテストアンドセット命
令を繰り返すが、その度にメモリバスを使用し実行中の
プロセッサの処理効率を落とすため、待ちのプロセッサ
によるメモリバスの使用を極力なくす必要がある。
(処理プログラムで規定された仕事)を実行するが、メ
モリを専有出来ないプロセッサは待ちの状態となり実行
中のプロセッサが計算機処理を終了しメモリ専有権を開
放したか否かを知るためにメモリ上の特定番地の特定な
情報であるセマフォ情報に対してテストアンドセット命
令を繰り返すが、その度にメモリバスを使用し実行中の
プロセッサの処理効率を落とすため、待ちのプロセッサ
によるメモリバスの使用を極力なくす必要がある。
第3図は、計算機システムの構成例を示すブロック図
であり、3台のプロセッサ16〜18が共通の主記憶装置で
ある共有メモリ11を共用して処理を行うように、各プロ
セッサ16〜18は、それぞれ公知のキャッシュメモリ13〜
15と、共通のメモリバス12を会して共有メモリ11にアク
セスする構成になっている。
であり、3台のプロセッサ16〜18が共通の主記憶装置で
ある共有メモリ11を共用して処理を行うように、各プロ
セッサ16〜18は、それぞれ公知のキャッシュメモリ13〜
15と、共通のメモリバス12を会して共有メモリ11にアク
セスする構成になっている。
このようなシステムで、プロセッサ16〜18で実行され
るプログラムが、排他的に専有する必要のあるシステム
資源にアクセスする場合には、当該資源に対応して設け
る公知のセマフォ情報を使用して、例えば次のようにプ
ロセッサ間の排他制御のためのセマフォ獲得制御を行う
ようにする。
るプログラムが、排他的に専有する必要のあるシステム
資源にアクセスする場合には、当該資源に対応して設け
る公知のセマフォ情報を使用して、例えば次のようにプ
ロセッサ間の排他制御のためのセマフォ獲得制御を行う
ようにする。
プロセッサ間の排他制御は、第2図の従来方法による
メモリ専有権獲得の手順図で示されているように、待ち
状態のプロセッサは処理ステップ3で共有メモリ11上に
設けられたセマフォ情報を読みプロセッサで保持し、セ
マフォ情報19(その値をSで表す)を第2の値(S=1
とする)にしてもとの共有メモリへ書き込む。この行為
をセマフォ更新と呼ぶ。
メモリ専有権獲得の手順図で示されているように、待ち
状態のプロセッサは処理ステップ3で共有メモリ11上に
設けられたセマフォ情報を読みプロセッサで保持し、セ
マフォ情報19(その値をSで表す)を第2の値(S=1
とする)にしてもとの共有メモリへ書き込む。この行為
をセマフォ更新と呼ぶ。
処理ステップ4では処理ステップ3で保持したセマフ
ォ情報が第1の値(S=0)が第2の値(S=1)かテ
ストする。テストの結果S=0であれば当該プロセッサ
はメモリ専有権を獲得し、S=1であれば当該プロセッ
サはメモリ専有権を獲得出来なかったとして処理ステッ
プ3へ戻る。
ォ情報が第1の値(S=0)が第2の値(S=1)かテ
ストする。テストの結果S=0であれば当該プロセッサ
はメモリ専有権を獲得し、S=1であれば当該プロセッ
サはメモリ専有権を獲得出来なかったとして処理ステッ
プ3へ戻る。
メモリ専有権を獲得したプロセッサが計算機処理を終
了しセマフォ情報を第1の値(S=0)にするまで、処
理ステップ3と処理ステップ4は待ちのプロセッサによ
って繰り返される。
了しセマフォ情報を第1の値(S=0)にするまで、処
理ステップ3と処理ステップ4は待ちのプロセッサによ
って繰り返される。
このセマフォ更新動作が2台以上のプロセッサで同時
期に実行されて、あるプロセッサによる最初のセマフォ
情報の読み出し動作と、その次のS=1の書込み動作と
の間に、他のプロセッサによるセマフォ情報の読み出し
が挟まった場合には、前期の動作により両プロセッサで
セマフォを獲得出来たと判断してしまって、排他制御が
正常に行われなくなる可能性がある。
期に実行されて、あるプロセッサによる最初のセマフォ
情報の読み出し動作と、その次のS=1の書込み動作と
の間に、他のプロセッサによるセマフォ情報の読み出し
が挟まった場合には、前期の動作により両プロセッサで
セマフォを獲得出来たと判断してしまって、排他制御が
正常に行われなくなる可能性がある。
このために、テストアンドセット命令等と呼ばれる公
知の特別の命令をプロセッサに設けて、前記の読み出し
から書き込みまでをこの1命令で行うようにする。この
命令は公知のように、指定のオペランド(セマフォ情
報)に対する前記のような読み出しから書き込みまでの
間、継続してそのオペランドを専有し、他のプロセッサ
のアクセスを禁止するように制御する命令であり、その
ために比較的長時間続けてメモリバスを専有する。
知の特別の命令をプロセッサに設けて、前記の読み出し
から書き込みまでをこの1命令で行うようにする。この
命令は公知のように、指定のオペランド(セマフォ情
報)に対する前記のような読み出しから書き込みまでの
間、継続してそのオペランドを専有し、他のプロセッサ
のアクセスを禁止するように制御する命令であり、その
ために比較的長時間続けてメモリバスを専有する。
メモリ専有権獲得待ちのプロセッサはメモリ専有権を
獲得出来るまで、第2図のステップ3とステップ4の繰
り返しによってメモリバスを使用するため他のプロセッ
サの計算機処理の効率を低下させる。
獲得出来るまで、第2図のステップ3とステップ4の繰
り返しによってメモリバスを使用するため他のプロセッ
サの計算機処理の効率を低下させる。
本発明は待ちのプロセッサによるメモリバス使用を最
小限に抑えることを目的としている。
小限に抑えることを目的としている。
第1図は本発明によるメモリ専有権獲得の手順図であ
る。
る。
第1図においてメモリ専有権獲得待ちのプロセッサ
は、共有メモリ上の所定番地に格納されているセマフォ
情報を読み込んで、該セマフォ情報が第1の値であるか
否かを確認するテストを実行し、第1の値であれば、改
めて前記共有メモリ上のセマフォ情報の値をプロセッサ
内に取込み、前記共有メモリのセマフォ情報を第2の値
に書換え、該プロセッサが取り込んだ該値が第1の値の
時はセマフォを獲得して排他制御権を獲得したと見做
し、第2の値の時はセマフォを獲得できず排他制御権を
獲得できなかったと見做すセマフォアクセスを実行する
手順をとり、前記テストしたセマフォ情報が第1の値で
なければ、読み込まれている該プロセッサ内のセマフォ
情報が無効とされる迄該情報にたいする前記テストを反
覆して、共有メモリへのアクセスを抑えることで解決す
る。
は、共有メモリ上の所定番地に格納されているセマフォ
情報を読み込んで、該セマフォ情報が第1の値であるか
否かを確認するテストを実行し、第1の値であれば、改
めて前記共有メモリ上のセマフォ情報の値をプロセッサ
内に取込み、前記共有メモリのセマフォ情報を第2の値
に書換え、該プロセッサが取り込んだ該値が第1の値の
時はセマフォを獲得して排他制御権を獲得したと見做
し、第2の値の時はセマフォを獲得できず排他制御権を
獲得できなかったと見做すセマフォアクセスを実行する
手順をとり、前記テストしたセマフォ情報が第1の値で
なければ、読み込まれている該プロセッサ内のセマフォ
情報が無効とされる迄該情報にたいする前記テストを反
覆して、共有メモリへのアクセスを抑えることで解決す
る。
メモリ専有権獲得の従来方法は第2図に示すように、
待ちのプロセッサはメモリ専有権を獲得出来るまでセマ
フォ更新(3)を繰り返し、その都度メモリバスを使用
していたが、第1図の本発明によるメモリ専有権獲得の
手順図に示すようにセマフォ情報を確認する処理ステッ
プ1と2を設けることにより待ちのプロセッサがセマフ
ォ更新を行わないので、メモリバスの使用回数を減少さ
せることが出来る。
待ちのプロセッサはメモリ専有権を獲得出来るまでセマ
フォ更新(3)を繰り返し、その都度メモリバスを使用
していたが、第1図の本発明によるメモリ専有権獲得の
手順図に示すようにセマフォ情報を確認する処理ステッ
プ1と2を設けることにより待ちのプロセッサがセマフ
ォ更新を行わないので、メモリバスの使用回数を減少さ
せることが出来る。
プロセッサがキャッシュメモリを持つ場合は、最初の
セマフォ情報の読み込みで共有メモリのセマフォ情報の
写しをキャッシュメモリ上に保持出来るため、毎回共有
メモリからセマフォ情報を読む必要がなく、メモリバス
の使用は無くなり大幅な計算機資源の使用効率向上が可
能になる。
セマフォ情報の読み込みで共有メモリのセマフォ情報の
写しをキャッシュメモリ上に保持出来るため、毎回共有
メモリからセマフォ情報を読む必要がなく、メモリバス
の使用は無くなり大幅な計算機資源の使用効率向上が可
能になる。
第3図において、プロセッサ18がメモリ専有権を獲得
して計算機処理を行っていると仮定する。
して計算機処理を行っていると仮定する。
他のプロセッサ16と17はメモリ専有権獲得の可能性が
あるまで、即ちテスト結果S=0となるまでそれぞれの
キャッシュメモリ上のセマフォ情報をテストし、その結
果を判別することを繰り返し実行する。(第1図のステ
ップ1と2) プロセッサ18が計算機処理を終了し、共有メモリのセ
マフォ情報をS=0にした時点でプロセッサ16とプロセ
ッサ17はセマフォ更新を行い、きわどい区間でのテスト
で先にS=0を確認したプロセッサ(16か17のいずれ
か)がメモリ専有権獲得に成功する。
あるまで、即ちテスト結果S=0となるまでそれぞれの
キャッシュメモリ上のセマフォ情報をテストし、その結
果を判別することを繰り返し実行する。(第1図のステ
ップ1と2) プロセッサ18が計算機処理を終了し、共有メモリのセ
マフォ情報をS=0にした時点でプロセッサ16とプロセ
ッサ17はセマフォ更新を行い、きわどい区間でのテスト
で先にS=0を確認したプロセッサ(16か17のいずれ
か)がメモリ専有権獲得に成功する。
以上において、セマフォ獲得待ちのプロセッサは、キ
ャッシュメモリ上の写しのセマフォ情報を繰り返しテス
トして完了するので、その間は共有メモリ11上のセマフ
ォ情報19へ実際にアクセスする必要が無い。セマフォを
獲得していたプロセッサがセマフォ情報をS=0に更新
したとき、公知のキャッシュ制御により、キャッシュメ
モリ上の写しのセマフォ情報を無効にする信号が、例え
ば共有メモリ11の制御部から出され、該写しが無効とさ
れるので、その直後のテストで、初めて共有メモリ11の
セマフォ情報19へのアクセスを改めて行うことが必要に
なる。このようにしてメモリバス12の使用時間を大幅に
減少出来る。
ャッシュメモリ上の写しのセマフォ情報を繰り返しテス
トして完了するので、その間は共有メモリ11上のセマフ
ォ情報19へ実際にアクセスする必要が無い。セマフォを
獲得していたプロセッサがセマフォ情報をS=0に更新
したとき、公知のキャッシュ制御により、キャッシュメ
モリ上の写しのセマフォ情報を無効にする信号が、例え
ば共有メモリ11の制御部から出され、該写しが無効とさ
れるので、その直後のテストで、初めて共有メモリ11の
セマフォ情報19へのアクセスを改めて行うことが必要に
なる。このようにしてメモリバス12の使用時間を大幅に
減少出来る。
なお、以上のとおり、キャッシュメモリを持つ場合に
本発明の効果が極めて大きいが、キャッシュメモリを使
用しないシステムのときでも、テストアンドセット命令
のメモリバス使用時間が読み出し命令のメモリバス使用
時間より長い場合は、テストの繰り返しに、前記のテス
トアンドセット命令等でなく、読み出し命令のみを使用
することにより、メモリバスの使用時間は減少する。
本発明の効果が極めて大きいが、キャッシュメモリを使
用しないシステムのときでも、テストアンドセット命令
のメモリバス使用時間が読み出し命令のメモリバス使用
時間より長い場合は、テストの繰り返しに、前記のテス
トアンドセット命令等でなく、読み出し命令のみを使用
することにより、メモリバスの使用時間は減少する。
本発明はプロセッサ間で計算機資源を競合争奪する場
合の排他制御において、待ちのプロセッサがメモリ専有
権獲得の可能性が無い無駄なメモリバスの使用をなく
し、計算機処理中のプロセッサに資源を開放する制御方
法であり、計算機処理効率を向上させる点で極めて有用
である。
合の排他制御において、待ちのプロセッサがメモリ専有
権獲得の可能性が無い無駄なメモリバスの使用をなく
し、計算機処理中のプロセッサに資源を開放する制御方
法であり、計算機処理効率を向上させる点で極めて有用
である。
第1図は本発明によるメモリ専有権獲得の手順図、第2
図は従来方法によるメモリ専有権獲得の手順図、第3図
は本発明の実施例を示すマルチプロセッサ構成図であ
る。 図において、1〜4は処理ステッを示し、11は共有メモ
リ、12はメモリバス、13〜15はキャッシュメモリ、16〜
18はプロセッサ、19はセマフォ情報である。
図は従来方法によるメモリ専有権獲得の手順図、第3図
は本発明の実施例を示すマルチプロセッサ構成図であ
る。 図において、1〜4は処理ステッを示し、11は共有メモ
リ、12はメモリバス、13〜15はキャッシュメモリ、16〜
18はプロセッサ、19はセマフォ情報である。
フロントページの続き (72)発明者 神阪 裕士 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 野々村 一泰 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 池田 昌弘 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 渡部 徹 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 丸山 拓巳 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 竹野 巧 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 加藤 慎哉 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (56)参考文献 特開 平1−96746(JP,A) 特開 昭63−268061(JP,A) 特公 昭48−25262(JP,B2)
Claims (1)
- 【請求項1】キャッシュメモリを有する複数のプロセッ
サ間での排他制御に際し、 共有メモリ上の所定番地に格納されているセマフォ情報
にアクセスを試みるプロセッサは、先ず前記セマフォ情
報をプロセッサ内に読み込んで、該セマフォ情報が第1
の値であるか否かを確認するテストを実行し、 第1の値であれば、改めて前記共有メモリ上の所定番地
に格納されているセマフォ情報の値をプロセッサに取込
み、前記共有メモリ上の所定番地に格納されているセマ
フォ情報を第2の値に書換え、該プロセッサが取り込ん
だ該値が第1の値ならばセマフォを獲得して排他制御権
を獲得したと見做し、第2の値ならばセマフォを獲得で
きず排他制御権を獲得できなかったと見做すセマフォア
クセスを実行し、 前記テストした前記プロセッサ内のセマフォ情報が第1
の値でなければ、該プロセッサ内のセマフォ情報が無効
とされる迄前記テストを反覆して、共有メモリへのアク
セスを抑えることを特徴とするセマフォアクセス制御方
法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2028819A JPH0810448B2 (ja) | 1990-02-08 | 1990-02-08 | セマフォアクセス制御方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2028819A JPH0810448B2 (ja) | 1990-02-08 | 1990-02-08 | セマフォアクセス制御方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH03232051A JPH03232051A (ja) | 1991-10-16 |
| JPH0810448B2 true JPH0810448B2 (ja) | 1996-01-31 |
Family
ID=12259012
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2028819A Expired - Fee Related JPH0810448B2 (ja) | 1990-02-08 | 1990-02-08 | セマフォアクセス制御方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0810448B2 (ja) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3391315B2 (ja) | 1999-10-20 | 2003-03-31 | 日本電気株式会社 | バス制御装置 |
| WO2009122694A1 (ja) * | 2008-03-31 | 2009-10-08 | パナソニック株式会社 | キャッシュメモリ装置、キャッシュメモリシステム、プロセッサシステム |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS4825262A (ja) * | 1971-08-06 | 1973-04-02 |
-
1990
- 1990-02-08 JP JP2028819A patent/JPH0810448B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JPH03232051A (ja) | 1991-10-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6199144B1 (en) | Method and apparatus for transferring data in a computer system | |
| JPH0458056B2 (ja) | ||
| EP0480858A2 (en) | Hardware primary directory lock | |
| JPH05265861A (ja) | 仮想記憶方式のデータ処理装置及び方法 | |
| GB2216306A (en) | Load and synchronize computer architecture and process | |
| JP3814521B2 (ja) | データ処理方法および装置 | |
| JPH0810448B2 (ja) | セマフォアクセス制御方法 | |
| JPS6319058A (ja) | メモリ装置 | |
| JPS5914775B2 (ja) | 共通メモリロツク方式 | |
| JP2952896B2 (ja) | マルチタスク・マルチプロセッサシステムにおける共有メモリアクセス方式 | |
| JPS6138504B2 (ja) | ||
| JP3130798B2 (ja) | バス転送装置 | |
| JP2864496B2 (ja) | 多重処理計算機 | |
| JP2825589B2 (ja) | バス制御方式 | |
| JPH04127261A (ja) | マルチプロセッサシステム | |
| JPS6113261B2 (ja) | ||
| JPH01125633A (ja) | マルチプロセッサシステムのデバッグ法 | |
| JP2550708B2 (ja) | デバッグ方式 | |
| JPH01279346A (ja) | オンラインメモリチェック方式 | |
| JP3067408B2 (ja) | メモリアクセス制御装置の診断方式 | |
| JPS592051B2 (ja) | 相互排他要求選択装置 | |
| JPH02126340A (ja) | データ処理システム | |
| JP2876737B2 (ja) | プログラム事象記録処理方式 | |
| JP2509981B2 (ja) | 仮想記憶制御装置 | |
| JPH04184557A (ja) | リクエスト競合生成方式 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080131 Year of fee payment: 12 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090131 Year of fee payment: 13 |
|
| LAPS | Cancellation because of no payment of annual fees |