JPS62219058A - 共有メモリの排他制御方式 - Google Patents

共有メモリの排他制御方式

Info

Publication number
JPS62219058A
JPS62219058A JP6151586A JP6151586A JPS62219058A JP S62219058 A JPS62219058 A JP S62219058A JP 6151586 A JP6151586 A JP 6151586A JP 6151586 A JP6151586 A JP 6151586A JP S62219058 A JPS62219058 A JP S62219058A
Authority
JP
Japan
Prior art keywords
exclusive control
shared memory
memory
processor
processors
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
JP6151586A
Other languages
English (en)
Inventor
Takao Hayashi
孝雄 林
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP6151586A priority Critical patent/JPS62219058A/ja
Publication of JPS62219058A publication Critical patent/JPS62219058A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 発明の目的 産業上の利用分野 本発明は、複数のプロセッサ間で共有される共有メモリ
を備えた情報処理システムで使用される共有メモリの排
他制御に関する。
従来の技術 情報処理システムでは、並行動作する複数のプロセッサ
とこれらによってアクセスされる共有メモリとを備える
ものがある。
このような共有メモリを備えたマルチプロセッサ・シス
テムでは、共有メモリのアクセスに関してなんらかの排
他制御を行わないとデータの整合性を保てなくなる場合
がある。例えば、一つのプロセッサが共有メモリからあ
るデータを読出して変更を加えて共有メモリに書込む間
に、他のプロセッサが同一のデータを読出して変更を加
えて遅れて共有メモリに書込んだ場合、先のプロセッサ
によるデータの変更が無効になる。
上述のようなデータの整合性を確保するための排他制御
方式の一つとして、共有メモリ上の共通データ格納領域
にビジー・フラグを付加し、そのような共有データに変
更を加える場合は、テストアンドセット命令を発行する
方式がある。このテストアンドセット命令は、アクセス
しようとする共有データのフラグをテストし、“、1”
であればビジーと判定してCPUのコンディションコー
ドを“1″として終了する。ソフトウェアは、このテス
トアンドセット命令のあとでコンディションコードをテ
ストし、これが“1”であれば先のテストアンドセット
命令に戻る。従って、プログラムが先へは進まない。ま
たテストアンドセット命令がビジー・フラグをテストし
たとき“O”であれば、それを“1”とする処理を他の
プロセッサと競合しないような排他制御機構により行な
い、コンディションコードを“0”とする。ソフトウェ
アは、コンディションコードが“0”であることを知っ
て対象データへのアクセス権を得、そのアクセス終了後
はビジー・フラグを“0″に戻す。
発明が解決しようとする問題点 上記ビジー・フラグとテストアンドセット命令による排
他制御方式では、ソフト上の排他制御区間の入口と出口
で必ずテストアンドセットとクリアを実行しなければな
らいが、プログラムの不備によりこの処理が実行されな
くともエラーとしては直接影響が表われず、システムの
機能に影響が出る。このため、このような誤処理に対し
てはデバッグが極めて困難になるという問題がある。
更に、個々のユーザープログラムの作成に際し、共有メ
モリ上のデータをアクセスするためのテストアンドセッ
ト命令による特別な手続きをとらなくてはならないため
、プログラムの作成作業が煩雑になるという問題もある
問題点を解決するための手段 上記従来技術の問題点を解決する本発明の排他制御方式
は、共有メモリの各分割領域について排他制御の要否を
示すフラグ、排他制御中の有無を示すフラグ及び排他制
御に基づきこの分割領域を専有中のプロセッサの識別コ
ードの組から成る排他制御情報を格納する排他制御情報
メモリと、この排他制御情報メモリの内容の更新及びこ
の排他制御情報メモリの内容に基づく共有メモリに対す
る各プロセッサのアクセスを制御するメモリアクセス制
御回路とを備えている。
そして、各プロセッサは、 自己の識別コードを表示しつつ前記共有メモリをアクセ
スし、 一つのプロセスの実行が終了するたびにその実行中に専
有した共有メモリの分割領域を前記排他制御情報メモリ
上で解放すると共にその旨を通知する解放通知を他のプ
ロセッサに伝達し、実行中のプロセスが他のプロセッサ
によって専有されている共有メモリの分割領域をアクセ
スしたときには、そのプロセスを中断させ、その実行中
に専有した共有メモリ上の分割領域を前記排他制御実行
メモリ上で解放すると共にその旨を他のプロセッサに通
知し、 この中断の原因となった他のプロセッサにおけるプロセ
スの実行終了に伴う前記解放通知を受けたときには、中
断中のプロセスを実行待ち状態とするように構成されて
いる。
以下、本発明の作用を実施例と共に詳細に説明する。
実施例 第2図は、本発明の一実施例の排他制御方式を適用する
マルチプロセッサ・システムの構成を示すブロック図で
ある。
このマルチプロセッサ・システムは、それぞれ専用メモ
リIA、2Aを2台のプロセッサ1,2、システムバス
3、共有メモリ4、排他制御情報メモリ5A、排他制御
回路5B、バスアービタ6を備えている。並行動作する
プロセッサ1と2は、バスアービタ6からシステムバス
3の使用権を取得し、排他制御回路5Bを介して共有メ
モリ4をアクセスする。
第3図は、第1図の排他制御回路2Bの構成をシステム
バス3、共有メモリ4、排他制御情報メモリ5A共有メ
モリ4との関連において示すブロック図である。
排他制御情報メモリ5Aは、共有メモリ4の所定単位(
例えば2にワード単位)で分割されたページの番号に対
応するアドレスを有していいる。
すなわち共有メモリ4のO〜7FF番地はページ0であ
り、このページOに関する排他制御情報が排他制御情報
メモリ5Aの0番地に格納される。
各ページについての排他制御情報は、そのページの排他
制御の要(“1”)/否(“0”)を表示する1ビツト
の情報、排他制御が必要なページについてはそのページ
を専有中のプロセッサの有(“l”)/無(“O”)を
表示する1ビツトの情報、そのページがプロセッサ1又
は2によって専有されている場合には専有中のプロセッ
サの番号を表示する2ビツトの識別コードから構成され
ている。
排他制御回路5Bは、データレジスタ11、フリップ・
フロップ12、照合回路13、正論理の論理ゲート群1
4〜20、バッファ群21〜23を備え、排他制御情報
メモリの内容の更新と、各プロセッサによる共有メモリ
4へのアクセス関する排他制御を行う。
プロセッサ1.2は、共有メモリ4をアクセスする場合
、まず、システムバス3上のアドレス線31と32上に
ページ番号とページ内変位から成るアクセス・アドレス
を送出する。引き続きプロセッサ1.2は、信号線33
.34及び35上にアクセスの種類を指定するリード/
ライト信号。
リクエスト・タイミング及び自プロセッサ番号を送出す
る。
上記ページ番号とリクエスト・タイミングに基づき、排
他制御情報メモリ5Aからアクセス対象ページの排他制
御情報がデータレジスタ11に読出され、各フィールド
の排他制御情報が照合回路13とアンドゲート13乃至
17の一つの入力端子に供給される。上記リクエスト・
タイミングは、フリップ・フロップ12によって1クロ
ックサイクル分遅延され、アンドゲート14乃至17の
一つの入力端子にも供給される。
アンドゲート14の反転入力端子には、データレジスタ
11に読出された排他制御の要否を表示する情報が供給
されている。アクセス対象のページが排他制御を要しな
い場合には、アンドゲート14の反転入力端子に“0”
が供給され、アンドゲート14から出力される“1″が
オアゲート18と19を経て共有メモリ4のイネーブル
端子(EN)に供給され、メモリアクセスが実行される
アクセス対象のページが排他制御を要する場合でも他の
プロセッサによって専有されていない場合には、アンド
ゲート15から出力された“1”がオアゲート19を経
て共有メモリ4のイネーブル端子(EN)に供給され、
メモリアクセスが実行される。この場合、排他制御を要
する新たなページがアクセスされたことになるので、ア
ンドゲート15の“1”出力によってバッファ22と2
3が起動され、信号線35上のアクセス元のプロセッサ
番号と、該当ページの専有中を表示する“1”が排他制
御情報メモリ5A内の該当ページ番号に対応するアドレ
スに書込まれ、そのページが排他制御の状態に移行する
。これと同時に、アンドゲート15の出力“1”が、ア
クセス対象ページの排他制御状態への移行を通知する専
有通知信号として信号線36上に送出される。
アクセス対象のページが既に専有されている場合でも、
専有中のプロセッサと今回アクセスしたプロセッサが同
一である場合には、照合回路13からの照合一致信号に
基づきアンドゲート16の出力が“1”になり、オアゲ
ート18と19を経て共有メモリ4のイネーブル端子(
EN)に供給され、メモリアクセスが実行される。この
場合には、アンドゲート15の出力は“O”であり、排
他制御情報メモリ5Aの更新も専有通知も行われない。
一方のプロセッサによって専有されているページに他方
のプロセッサがアクセスした場合には、照合回路13か
ら照合不一致の判定信号″0”を反転入力端子に受ける
アンドゲート17から“1″が出力され、これはアクセ
ス対象のページが他のプロセッサによって既に専有され
ている旨を通知する被専有通知として信号線37上に送
出される。
プロセッサ1と2は、共有メモリの専有を伴うプロセス
の実行を終了又は中断するたびに、制御メモリアクセス
信号線39とオアゲート20を介して排他制御情報メモ
リ5Aを書込み可能状態としつつ、データバス38とバ
ッファ21を介して排他制御メモリ5Aの該当アドレス
のページ番号と専有中の表示情報をクリアする。
第1図は、第2図と第3図のマルチプロセッサ・システ
ムにおけるプロセッサ1と2の動作の一例を説明するた
めのフローチャートである。
プロセッサ1ではプロセスIが実行されており、これと
並行してプロセッサ2ではプロセスAが実行されている
ものとする。
プロセッサ1におけるプロセスIの実行に伴い、ステッ
プT+で未専有の共有ページがアクセスされると、排他
制御回路5Bにおいてそのページがプロセッサ1による
専有状態に移行せしめられると共に、信号線36を経て
プロセッサ1に専有通。
知が発せられる。この専有通知を受けたプロセッサ1で
は、実行中のプロセスエからオペレーティング・システ
ムに制御が渡る。オペレーティング・システムは、ステ
ップ0.において専有ページ番号が保存したのちプロセ
スIに制御を戻し、ステップ■2からプロセスIの実行
が再開される。
この後、プロセッサ2で実行中のプロセスAがステップ
AIにおいて、上記プロセスIによって専有されている
ページをアクセスすると、排他制御回路5Bからプロセ
ッサ2に上述の被専有通知が発せられる。この被専有通
知を受はプロセッサ2では、実行中のプロセスAからオ
ペレーティング・システムに制御がわたる。プロセッサ
2のオペレーティング・システムは、ステップSIにお
いて、プロセスAのコンテキストを退避させると共にプ
ロセスAを実行待ち行列に登録することによってプロセ
スAの実行を中断させる。この実行待ち行列には、プロ
セスAの中断の原因となったアクセス対象のページ番号
も登録される。
引き続き、プロセッサ1で実行中のプロセス■や待ち状
態にある他のプロセスとの間のデッドロックを防止する
ため、ステップS2において、プロセスAが専有してい
た全てのページが解放されると共に、プロセッサ2にこ
の専有の解放が通知このプロセッサ2からの解放通知に
基づ(プロセッサ1の動作は、後述するステップB2と
84と同様であるため、この段階では説明を省略する。
この後、ステップS3において実行可能プロセスの一つ
が起動され、ステップB1において、新たなプロセスB
の実行が開始される。
一方プロセッサ1では、実行中のプロセスIがステップ
I3で終了するとオペレーティング・システムに制御が
わたり、プロセスIが専有していた共有メモリ4の全ペ
ージがステップ02で解放される。引き続き、解放ペー
ジ番号を含む解放通知がステップo3でプロセッサ2に
送出される。次のステップ04で、実行刃プロセスのリ
ストが検索され、実行刃状態にあるプロセスの一つJが
起動され、ステップJ、において、プロセスJの実行が
開始される。
一方、ステップIの実行の終了に伴うプロセッサ1から
の解放通知を受けたプロセッサ2では、ステップBzで
プロセスBからオペレーティング・システムに制御がわ
たる。プロセッサ2のオペレーティング・システムは、
ステップS4において、解放通知に含まれるページ番号
と実行待ち行列中の中断原因ページ番号とを照合するこ
とによりプロセスAが実行可能になったことを検出し、
これを実行刃リストに登録する。この後、ステップB、
において再開されたプロセスBがステップB4で終了す
ると、プロセッサ2のオペレーテイフグ。システムは、
ステップS5において、実行化リストに登録されている
プロセスAを起動し、ステップA2でプロセスAの実行
が再開される。
以上、2台のプロセッサから成るマルチプロセッサ・シ
ステムを例示したが、一般には、3台以上のプロセッサ
から成るマルチプロセッサ・システムにも本発明の排他
制御方式を適用できる。
発明の詳細 な説明したように本発明は、オペレーティング・システ
ムの制御のもとに共有メモリのページと各プロセッサで
実行されるプロセス単位で排他制御を行なう構成である
から、共有データをアクセスするために個々のユーザー
プログラム内に特殊な命令を配置する必要がなくなる。
従って、排他制御に伴うバグも生じなくなり、信頼度の
高いソフトウェアを構成できるという効果が奏される。
すなわち、システムの設計段階において、スケジューラ
や割込みによる制御の移転に関するオペレーティング・
システムの部分を上述のように設定すると共に、排他制
御情報メモリの内容を設定することにより、個々のユー
ザープログラムの作成者は排他制御を全く意識せずに共
有メモリを使用できる。
【図面の簡単な説明】
第1図は本発明の一実施例に係わる共有メモリの排他制
御方式におけるプロセッサの動作の一例を説明するため
のフローチャート、第2図は上記実施例が適用されるマ
ルチプロセッサ・システムの構成を示すブロック図、第
3図は上記マルチプロセッサ・システム内の排他制御回
路5Bの構成の一例を共有メモリ4、排他制御情報メモ
リ5A及びシステムバス3との関連のもとに示すブロッ
ク図である。 1.2・・プロセッサ、3・・システムバス、4・・共
有メモリ、5A・・排他制御情報メモリ、5B・・排他
制御回路。

Claims (1)

  1. 【特許請求の範囲】 複数のプロセッサと、これらプロセッサからアクセスさ
    れる共有メモリとを備えた情報処理システムにおいて、 前記共有メモリの各分割領域について排他制御の要否を
    示すフラグ、排他制御中の有無を示すフラグ及び排他制
    御に基づきこの分割領域を専有中のプロセッサの識別コ
    ードの組から成る排他制御情報を格納する排他制御情報
    メモリと、この排他制御情報メモリの内容の更新及びこ
    の排他制御情報メモリの内容に基づき共有メモリに対す
    る各プロセッサのアクセスを制御するメモリアクセス制
    御回路とを備え、 各プロセッサは、 自己の識別コードを表示しつつ前記共有メモリをアクセ
    スし、 一つのプロセスの実行を終了するたびにその実行中に専
    有した共有メモリの分割領域を前記排他制御情報メモリ
    上で解放すると共にその旨を通知する解放通知を他のプ
    ロセッサに伝達し、 実行中のプロセスが他のプロセッサによって専有されて
    いる共有メモリの分割領域をアクセスしたときには、そ
    のプロセスを中断させ、その実行中に専有した共有メモ
    リ上の分割領域を前記排他制御実行メモリ上で解放する
    と共に、その旨を他のプロセッサに通知し、 この中断の原因となった他のプロセッサにおけるプロセ
    スの実行終了に伴う前記解放通知を受けたときには、中
    断中のプロセスを実行可能状態とすることを特徴とする
    共有メモリの排他制御方式。
JP6151586A 1986-03-19 1986-03-19 共有メモリの排他制御方式 Pending JPS62219058A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6151586A JPS62219058A (ja) 1986-03-19 1986-03-19 共有メモリの排他制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6151586A JPS62219058A (ja) 1986-03-19 1986-03-19 共有メモリの排他制御方式

Publications (1)

Publication Number Publication Date
JPS62219058A true JPS62219058A (ja) 1987-09-26

Family

ID=13173295

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6151586A Pending JPS62219058A (ja) 1986-03-19 1986-03-19 共有メモリの排他制御方式

Country Status (1)

Country Link
JP (1) JPS62219058A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010222354A (ja) * 2009-03-23 2010-10-07 Ivoclar Vivadent Ag 自己結合多成分歯科材料
WO2011036726A1 (ja) 2009-09-25 2011-03-31 富士通株式会社 情報処理装置、及びその設定切り替え方法
DE102019003694A1 (de) 2018-06-01 2019-12-05 Fanuc Corporation Steuergerät

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010222354A (ja) * 2009-03-23 2010-10-07 Ivoclar Vivadent Ag 自己結合多成分歯科材料
WO2011036726A1 (ja) 2009-09-25 2011-03-31 富士通株式会社 情報処理装置、及びその設定切り替え方法
DE102019003694A1 (de) 2018-06-01 2019-12-05 Fanuc Corporation Steuergerät
US11119461B2 (en) 2018-06-01 2021-09-14 Fanuc Corporation Controller

Similar Documents

Publication Publication Date Title
US4112490A (en) Data transfer control apparatus and method
TWI223771B (en) Mechanism for interrupt handling in computer systems that support concurrent execution of multiple threads
JPH0430053B2 (ja)
US5371857A (en) Input/output interruption control system for a virtual machine
JP2008033893A (ja) マルチプロセッサシステム及びマルチプロセッサシステムにおけるアクセス権設定方法
JPH03109644A (ja) マイクロコンピュータ
JP2010055440A (ja) 分散共有メモリ型マルチプロセッサ及びデータ処理方法
US5003468A (en) Guest machine execution control system for virutal machine system
US7552269B2 (en) Synchronizing a plurality of processors
JPS62219058A (ja) 共有メモリの排他制御方式
US6708259B1 (en) Programmable wake up of memory transfer controllers in a memory transfer engine
JPS6329868A (ja) Dmaコントロ−ラ
JPH10111857A (ja) マルチプロセッサ
JPH0552535B2 (ja)
US7877533B2 (en) Bus system, bus slave and bus control method
JPH07104834B2 (ja) 処理装置間ロック制御システム
JPH08161185A (ja) 仮想計算機システムのゲスト実行制御方式
US6751708B2 (en) Method for ensuring that a line is present in an instruction cache
JPH06324861A (ja) Cpu制御システム及び制御方法
JPH0290331A (ja) 仮想計算機システムのためのプロセツサ間通信命令処理装置
JPH01302448A (ja) 情報処理装置
JPS6325732A (ja) マイクロプログラム制御装置
JPS5942331B2 (ja) プロセツサソウチノセイギヨホウシキ
JPS60159958A (ja) デ−タ転送制御回路
JPS6235960A (ja) 排他制御情報制御方式