JPH06161874A - 共用メモリ制御システム - Google Patents
共用メモリ制御システムInfo
- Publication number
- JPH06161874A JPH06161874A JP33812792A JP33812792A JPH06161874A JP H06161874 A JPH06161874 A JP H06161874A JP 33812792 A JP33812792 A JP 33812792A JP 33812792 A JP33812792 A JP 33812792A JP H06161874 A JPH06161874 A JP H06161874A
- Authority
- JP
- Japan
- Prior art keywords
- shared memory
- access
- processor
- address
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 202
- 238000000034 method Methods 0.000 description 11
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Landscapes
- Multi Processors (AREA)
Abstract
(57)【要約】
【目的】 処理性能及び信頼性を向上させる。
【構成】 アドレスマスク部11A,11Bはプロセッ
サ16A,16Bがセットしたアドレスマスクパターン
で、アドレスバス101A,101B上のアドレスの指
定されたビットをマスクしてアドレス比較部12A,1
2Bに出力する。アドレス比較部12A,12Bはアド
レスマスク部11A,11Bでマスクされたアドレスを
比較し、それらアドレスの一致/不一致を検出してアク
セス許可判断部13A,13Bに出力する。アクセス許
可判断部13A,13Bは他のプロセッサ16B,16
Aから出力される内部占有信号104B,104A及び
メモリ占有信号106B,106Aと、アドレス比較部
12A,12Bの比較結果と、プロセッサ16A,16
Bからのアクセス命令種類108A,108Bとから共
用メモリ14A,14Bへのアクセスの許可/不許可を
判定する。
サ16A,16Bがセットしたアドレスマスクパターン
で、アドレスバス101A,101B上のアドレスの指
定されたビットをマスクしてアドレス比較部12A,1
2Bに出力する。アドレス比較部12A,12Bはアド
レスマスク部11A,11Bでマスクされたアドレスを
比較し、それらアドレスの一致/不一致を検出してアク
セス許可判断部13A,13Bに出力する。アクセス許
可判断部13A,13Bは他のプロセッサ16B,16
Aから出力される内部占有信号104B,104A及び
メモリ占有信号106B,106Aと、アドレス比較部
12A,12Bの比較結果と、プロセッサ16A,16
Bからのアクセス命令種類108A,108Bとから共
用メモリ14A,14Bへのアクセスの許可/不許可を
判定する。
Description
【0001】
【産業上の利用分野】本発明は共用メモリ制御システム
に関し、特に複数の中央処理装置または周辺処理装置な
ど独立した動作をする処理装置から共通のデータとして
アクセスされる共用メモリのアクセス競合制御に関す
る。
に関し、特に複数の中央処理装置または周辺処理装置な
ど独立した動作をする処理装置から共通のデータとして
アクセスされる共用メモリのアクセス競合制御に関す
る。
【0002】
【従来の技術】従来、複数のプロセッサから同一情報と
して参照される共用メモリにおいては、1つのプロセッ
サからの内容更新中に他のプロセッサがデータを参照す
ることがないように、アクセスが行われる際にメモリ全
体の占有が行われている。これによって、他のプロセッ
サから共用メモリへのアクセスを禁止し、共用メモリに
対する排他制御を行っている。
して参照される共用メモリにおいては、1つのプロセッ
サからの内容更新中に他のプロセッサがデータを参照す
ることがないように、アクセスが行われる際にメモリ全
体の占有が行われている。これによって、他のプロセッ
サから共用メモリへのアクセスを禁止し、共用メモリに
対する排他制御を行っている。
【0003】この共用メモリに対するアクセス競合に伴
って発生する待ち時間の発生頻度はアクセスが頻繁に行
われれば行われるほど多くなり、それに伴って処理性能
を低下させることになる。このため、アクセス競合に伴
う待ち時間を短縮する方法が幾つか提案されている。
って発生する待ち時間の発生頻度はアクセスが頻繁に行
われれば行われるほど多くなり、それに伴って処理性能
を低下させることになる。このため、アクセス競合に伴
う待ち時間を短縮する方法が幾つか提案されている。
【0004】例えば、共用メモリのアドレスを高位アド
レスと低位アドレスとに分割して共用メモリを高位アド
レスでページングし、各ページ毎に排他制御を行う方法
がある。この種の方法としては特開昭61−19634
7号公報に開示された技術や、特開昭61−19635
5号公報に開示された技術などがある。
レスと低位アドレスとに分割して共用メモリを高位アド
レスでページングし、各ページ毎に排他制御を行う方法
がある。この種の方法としては特開昭61−19634
7号公報に開示された技術や、特開昭61−19635
5号公報に開示された技術などがある。
【0005】
【発明が解決しようとする課題】上述した従来の共用メ
モリ制御方法では、1つのプロセッサからの内容更新中
に他のプロセッサが共用メモリのデータを参照すること
がないように、アクセスが行われる際にメモリ全体を占
有することで他のプロセッサから共用メモリへのアクセ
スを禁止しているが、この方法で共用メモリに対する排
他制御を行った場合にはアクセス競合が発生したときに
待ち合わせが生じ、処理性能の低下を招いている。
モリ制御方法では、1つのプロセッサからの内容更新中
に他のプロセッサが共用メモリのデータを参照すること
がないように、アクセスが行われる際にメモリ全体を占
有することで他のプロセッサから共用メモリへのアクセ
スを禁止しているが、この方法で共用メモリに対する排
他制御を行った場合にはアクセス競合が発生したときに
待ち合わせが生じ、処理性能の低下を招いている。
【0006】これに対して、上述の特開昭61−196
347号公報などに開示された技術では、共用メモリの
アドレスを高位アドレスと低位アドレスとに分割して共
用メモリを高位アドレスでページングし、各ページ毎に
排他制御を行っているので、アクセス競合が発生したア
クセス各々のアクセス対象が異なるページであれば、そ
れらのアクセスが待ち合わせを生じることなく共用メモ
リに対してアクセスすることが可能となる。これによっ
て処理性能の向上を図ることができる。
347号公報などに開示された技術では、共用メモリの
アドレスを高位アドレスと低位アドレスとに分割して共
用メモリを高位アドレスでページングし、各ページ毎に
排他制御を行っているので、アクセス競合が発生したア
クセス各々のアクセス対象が異なるページであれば、そ
れらのアクセスが待ち合わせを生じることなく共用メモ
リに対してアクセスすることが可能となる。これによっ
て処理性能の向上を図ることができる。
【0007】しかしながら、共用メモリが高位アドレス
と低位アドレスとに分割して構成された場合、分割され
る共用メモリの領域、すなわち1頁当たりの容量が固定
となり、その範囲でのみの排他制御が行われることにな
る。
と低位アドレスとに分割して構成された場合、分割され
る共用メモリの領域、すなわち1頁当たりの容量が固定
となり、その範囲でのみの排他制御が行われることにな
る。
【0008】このようなハードウェア構成をとった場
合、例えば複数の周辺処理装置から参照される共用メモ
リでは制御に使用される領域が各ページ毎に排他制御さ
れるため、たとえアクセスを排他的に処理する必要のな
いものでも同一ページ内のデータに関してはアクセス競
合による待ち時間が発生する。
合、例えば複数の周辺処理装置から参照される共用メモ
リでは制御に使用される領域が各ページ毎に排他制御さ
れるため、たとえアクセスを排他的に処理する必要のな
いものでも同一ページ内のデータに関してはアクセス競
合による待ち時間が発生する。
【0009】また、共用メモリ内には必ずしも周辺処理
装置に接続されたデバイスに関する情報だけでなく、上
位装置に関する情報なども格納される場合がある。この
場合、異なる上位装置に関するデータに対するアクセス
の競合を避けるために、ページ当たりの容量に合わせて
共用メモリのマップを決定するなどしなければならず、
幾つかの制限を受けることになる。
装置に接続されたデバイスに関する情報だけでなく、上
位装置に関する情報なども格納される場合がある。この
場合、異なる上位装置に関するデータに対するアクセス
の競合を避けるために、ページ当たりの容量に合わせて
共用メモリのマップを決定するなどしなければならず、
幾つかの制限を受けることになる。
【0010】さらに、多くの場合、共用メモリは各プロ
セッサ毎に同一アドレスを有するメモリを持つことで物
理的に構成され、特定アドレスにデータを書込むときに
は該データを同時に複数のメモリに書込むことで実現さ
れることが多い。このとき、複数のメモリのうちの1つ
で障害が発生すると、そのメモリの内容を保証すること
ができない。
セッサ毎に同一アドレスを有するメモリを持つことで物
理的に構成され、特定アドレスにデータを書込むときに
は該データを同時に複数のメモリに書込むことで実現さ
れることが多い。このとき、複数のメモリのうちの1つ
で障害が発生すると、そのメモリの内容を保証すること
ができない。
【0011】そのため、メモリの占有を解除せずに異常
の発生したメモリに対応するプロセッサによるメモリの
使用を禁止させ、該プロセッサが保証できないデータを
使用して異常動作するのを防ぐことがある。
の発生したメモリに対応するプロセッサによるメモリの
使用を禁止させ、該プロセッサが保証できないデータを
使用して異常動作するのを防ぐことがある。
【0012】高位アドレスでページングして排他制御を
した場合、1つのプロセッサが使用中のページ以外は常
に他のプロセッサからアクセス可能であるが、アクセス
を禁止されるページが一定せずに常時変化しているの
で、メモリ障害時にその障害が発生したメモリへの他の
プロセッサによるアクセスを禁止することができない。
した場合、1つのプロセッサが使用中のページ以外は常
に他のプロセッサからアクセス可能であるが、アクセス
を禁止されるページが一定せずに常時変化しているの
で、メモリ障害時にその障害が発生したメモリへの他の
プロセッサによるアクセスを禁止することができない。
【0013】さらにまた、これらの共用メモリへのアク
セスは実際のアクセスを行う前にメモリを占有し、つま
り他のプロセッサからのアクセスに対してロックをか
け、その占有が成功した時点でアドレスを指定して共用
メモリのアクセスを行うことになる。
セスは実際のアクセスを行う前にメモリを占有し、つま
り他のプロセッサからのアクセスに対してロックをか
け、その占有が成功した時点でアドレスを指定して共用
メモリのアクセスを行うことになる。
【0014】上述した一連の処理は他のプロセッサから
アクセスされることのないローカルなメモリのように、
アドレスを指定してアクセスするだけの単純なアクセス
に比較して、プロセッサ上で動作するプログラムには複
数の命令の組み合わせによる煩雑な処理が必要である。
アクセスされることのないローカルなメモリのように、
アドレスを指定してアクセスするだけの単純なアクセス
に比較して、プロセッサ上で動作するプログラムには複
数の命令の組み合わせによる煩雑な処理が必要である。
【0015】この煩雑な処理によって生じるオーバヘッ
ドにはアクセス競合による待ち時間と同じ時間あるいは
それ以上の時間が費やされることになり、性能の低下を
招くという問題がある。
ドにはアクセス競合による待ち時間と同じ時間あるいは
それ以上の時間が費やされることになり、性能の低下を
招くという問題がある。
【0016】
【課題を解決するための手段】本発明による共用メモリ
制御システムは、第1及び第2のプロセッサによって共
通にアクセスされる共用メモリと、前記第1及び第2の
プロセッサ各々の前記共用メモリへのアクセスアドレス
を比較する比較手段を含み、前記比較手段が不一致を検
出したときに前記第1及び第2のプロセッサによる前記
共用メモリへの同時アクセスを許可する共用メモリ制御
システムであって、前記第1及び第2のプロセッサ各々
に対応して設けられ、前記共用メモリをアクセスする命
令の内容に応じて自プロセッサが前記共用メモリをアク
セス中であることを示す内部占有信号を出力する出力手
段と、前記第1及び第2のプロセッサ各々に対応して設
けられ、前記内部占有信号の出力状態と前記比較手段の
比較結果とに応じて前記共用メモリへのアクセスが可能
か否かを判定する判定手段とを備えている。
制御システムは、第1及び第2のプロセッサによって共
通にアクセスされる共用メモリと、前記第1及び第2の
プロセッサ各々の前記共用メモリへのアクセスアドレス
を比較する比較手段を含み、前記比較手段が不一致を検
出したときに前記第1及び第2のプロセッサによる前記
共用メモリへの同時アクセスを許可する共用メモリ制御
システムであって、前記第1及び第2のプロセッサ各々
に対応して設けられ、前記共用メモリをアクセスする命
令の内容に応じて自プロセッサが前記共用メモリをアク
セス中であることを示す内部占有信号を出力する出力手
段と、前記第1及び第2のプロセッサ各々に対応して設
けられ、前記内部占有信号の出力状態と前記比較手段の
比較結果とに応じて前記共用メモリへのアクセスが可能
か否かを判定する判定手段とを備えている。
【0017】
【実施例】次に、本発明の一実施例について図面を参照
して説明する。
して説明する。
【0018】図1は本発明の一実施例の構成を示すブロ
ック図である。図において、本発明の一実施例による共
用メモリ制御システムは各々プロセッサ16A,16B
を含むA系及びB系のシステムからなっている。
ック図である。図において、本発明の一実施例による共
用メモリ制御システムは各々プロセッサ16A,16B
を含むA系及びB系のシステムからなっている。
【0019】これらA系及びB系のシステムでは各プロ
セッサ16A,16B対応に設けられたメモリ14A,
14Bの同一アドレスに同一データを書込むことによっ
て共用メモリが実現されている。
セッサ16A,16B対応に設けられたメモリ14A,
14Bの同一アドレスに同一データを書込むことによっ
て共用メモリが実現されている。
【0020】アドレスマスク部11A,11Bは信号線
105A,105Bを通して2つのプロセッサ16A,
16Bがセットしたアドレスマスクパターンで、プロセ
ッサ16A,16Bがアドレスバス101A,101B
上にセットした2つのアドレスの指定されたビットをマ
スクしてアドレス比較部12A,12Bに出力する。
105A,105Bを通して2つのプロセッサ16A,
16Bがセットしたアドレスマスクパターンで、プロセ
ッサ16A,16Bがアドレスバス101A,101B
上にセットした2つのアドレスの指定されたビットをマ
スクしてアドレス比較部12A,12Bに出力する。
【0021】アドレス比較部12A,12Bはアドレス
マスク部11A,11Bで指定されたビットがマスクさ
れたアドレスバス101A,101B上のアドレス同士
を互いに比較し、それらアドレスの一致/不一致を検出
してアクセス許可判断部13A,13Bに出力する。
マスク部11A,11Bで指定されたビットがマスクさ
れたアドレスバス101A,101B上のアドレス同士
を互いに比較し、それらアドレスの一致/不一致を検出
してアクセス許可判断部13A,13Bに出力する。
【0022】アクセス許可判断部13A,13Bは他の
プロセッサ16B,16Aから出力される内部占有信号
104B,104A及びメモリ占有信号106B,10
6Aと、アドレス比較部12A,12Bの比較結果と、
プロセッサ16A,16Bからのアクセス命令種類10
8A,108Bとから共用メモリ14A,14Bへのア
クセスの許可/不許可を判定する。
プロセッサ16B,16Aから出力される内部占有信号
104B,104A及びメモリ占有信号106B,10
6Aと、アドレス比較部12A,12Bの比較結果と、
プロセッサ16A,16Bからのアクセス命令種類10
8A,108Bとから共用メモリ14A,14Bへのア
クセスの許可/不許可を判定する。
【0023】ここで、内部占有信号104A,104B
は自プロセッサが共用メモリをアクセス中であることを
示す信号であり、メモリ占有信号106A,106Bは
メモリ14A,14B全体を占有して他のプロセッサ1
6B,16Aからのアクセスを禁止していることを通知
する信号である。
は自プロセッサが共用メモリをアクセス中であることを
示す信号であり、メモリ占有信号106A,106Bは
メモリ14A,14B全体を占有して他のプロセッサ1
6B,16Aからのアクセスを禁止していることを通知
する信号である。
【0024】アクセス許可判断部13A,13Bは共用
メモリ14A,14Bへのアクセスを許可と判定する
と、アクセス許可信号103A,103Bをメモリ14
A,14Bとクロック信号生成部(CLK)15A,1
5Bとプロセッサ16A,16Bとに夫々出力するとと
もに、アクセス許可信号109A,109Bを他のプロ
セッサ16B,16A側に出力する。
メモリ14A,14Bへのアクセスを許可と判定する
と、アクセス許可信号103A,103Bをメモリ14
A,14Bとクロック信号生成部(CLK)15A,1
5Bとプロセッサ16A,16Bとに夫々出力するとと
もに、アクセス許可信号109A,109Bを他のプロ
セッサ16B,16A側に出力する。
【0025】クロック信号生成部15A,15Bはプロ
セッサ16A,16Bの動作クロックを発生するための
発信器である。プロセッサ16A,16Bはクロック信
号生成部15A,15Bで発生されるクロック信号10
7A,107Bで命令を実行する。尚、クロック信号生
成部15A,15Bはアクセス許可判断部13A,13
Bの出力であるアクセス許可信号103A,103B,
109A,109Bがリセットされているとき、クロッ
ク信号107A,107Bの生成を一時停止することが
できるように構成されている。
セッサ16A,16Bの動作クロックを発生するための
発信器である。プロセッサ16A,16Bはクロック信
号生成部15A,15Bで発生されるクロック信号10
7A,107Bで命令を実行する。尚、クロック信号生
成部15A,15Bはアクセス許可判断部13A,13
Bの出力であるアクセス許可信号103A,103B,
109A,109Bがリセットされているとき、クロッ
ク信号107A,107Bの生成を一時停止することが
できるように構成されている。
【0026】本実施例の共用メモリではデータの書込み
の際に、アクセスする共用メモリのアドレスをアドレス
バス101A,101Bにセットし、データをデータバ
ス102A,102Bにセットすることによって、アク
セス許可判断部13A,13Bからアクセス許可信号1
03A,103Bが出力されたときに2つのメモリ14
A,14Bに書込みが行われる。
の際に、アクセスする共用メモリのアドレスをアドレス
バス101A,101Bにセットし、データをデータバ
ス102A,102Bにセットすることによって、アク
セス許可判断部13A,13Bからアクセス許可信号1
03A,103Bが出力されたときに2つのメモリ14
A,14Bに書込みが行われる。
【0027】通常の共用メモリ内のデータの読出しの際
にはA系及びB系のシステムにおいて夫々自系のメモリ
14A,14Bからのみデータを読出すようになってい
る。そのため、共用メモリの占有を行わずにデータを読
出すことも可能である。この場合、共用メモリにおいて
アクセス競合は発生しない。
にはA系及びB系のシステムにおいて夫々自系のメモリ
14A,14Bからのみデータを読出すようになってい
る。そのため、共用メモリの占有を行わずにデータを読
出すことも可能である。この場合、共用メモリにおいて
アクセス競合は発生しない。
【0028】本実施例では共用メモリを使用するため
に、 (1)アドレスマスク部11A,11Bへのマスクパタ
ーン設定命令 (2)他のプロセッサ16B,16Aのメモリ14B,
14Aから自系メモリ14A,14Bへのコピー命令 (3)共用メモリを占有しない状態でのデータ読出し命
令 (4)共用メモリを占有した状態でのデータ読出し命令 (5)データ書込み命令 (6)データ内容の更新命令(データ読出し+データ書
込み) (7)共用メモリの占有命令 の7種類の命令がプロセッサ16A,16Bに用意され
ている。
に、 (1)アドレスマスク部11A,11Bへのマスクパタ
ーン設定命令 (2)他のプロセッサ16B,16Aのメモリ14B,
14Aから自系メモリ14A,14Bへのコピー命令 (3)共用メモリを占有しない状態でのデータ読出し命
令 (4)共用メモリを占有した状態でのデータ読出し命令 (5)データ書込み命令 (6)データ内容の更新命令(データ読出し+データ書
込み) (7)共用メモリの占有命令 の7種類の命令がプロセッサ16A,16Bに用意され
ている。
【0029】ここで、共用メモリへのアクセス命令は1
命令(1ステップ)で行われ、アクセスするアドレスは
予めレジスタ(図示せず)などにセットされているもの
とする。
命令(1ステップ)で行われ、アクセスするアドレスは
予めレジスタ(図示せず)などにセットされているもの
とする。
【0030】次に、上記の各命令における動作について
図1を用いて説明する。尚、説明の便宜上、図1のプロ
セッサ16A側(A系のシステム)で各命令を実行した
場合を想定して説明する。また、説明は省略している
が、プロセッサ16B側(B系のシステム)でもプロセ
ッサ16A側とプロセッサ16B側とが逆になるだけで
実質的な動作は同じである。
図1を用いて説明する。尚、説明の便宜上、図1のプロ
セッサ16A側(A系のシステム)で各命令を実行した
場合を想定して説明する。また、説明は省略している
が、プロセッサ16B側(B系のシステム)でもプロセ
ッサ16A側とプロセッサ16B側とが逆になるだけで
実質的な動作は同じである。
【0031】さらに、以下の説明ではアドレスバス10
1A,101B上のアドレスを比較する場合、実際には
アドレスマスク部11A,11Bの出力値、つまり与え
られたマスクパターンでマスクされたアドレス値が比較
されるものとする。
1A,101B上のアドレスを比較する場合、実際には
アドレスマスク部11A,11Bの出力値、つまり与え
られたマスクパターンでマスクされたアドレス値が比較
されるものとする。
【0032】まず、(1)のアドレスマスク部11A,
11Bへのマスクパターン設定命令が実行される場合、
この命令の実行によってアドレスマスク部11a,11
Bにプロセッサ16A,16Bから信号線105A,1
05Bを通してアドレスマスクパターンが設定されるの
である。
11Bへのマスクパターン設定命令が実行される場合、
この命令の実行によってアドレスマスク部11a,11
Bにプロセッサ16A,16Bから信号線105A,1
05Bを通してアドレスマスクパターンが設定されるの
である。
【0033】アドレスマスク部11a,11Bではこの
命令によってアドレスマスクパターンが再設定されるま
で、設定されたマスクパターンが2つのアドレスバス1
01A,101B上の共用メモリアドレスに論理積(A
ND)されて出力される。この出力値はアドレス比較部
12A,12Bの入力として使用される。
命令によってアドレスマスクパターンが再設定されるま
で、設定されたマスクパターンが2つのアドレスバス1
01A,101B上の共用メモリアドレスに論理積(A
ND)されて出力される。この出力値はアドレス比較部
12A,12Bの入力として使用される。
【0034】すなわち、例えばアクセスする共用メモリ
アドレスを含む256ワード単位に排他制御を行う場合
にはマスクパターンの下位8ビットを“0”に設定し、
それ以外を“1”に設定することで、プログラムによっ
て排他制御を行う範囲を指定することができる。
アドレスを含む256ワード単位に排他制御を行う場合
にはマスクパターンの下位8ビットを“0”に設定し、
それ以外を“1”に設定することで、プログラムによっ
て排他制御を行う範囲を指定することができる。
【0035】次に、(2)の他のプロセッサ16B,1
6Aのメモリ14B,14Aから自系のメモリ14A,
14Bへのコピー命令は、一方のプロセッサ16A側の
電源が投入された場合、あるいはメモリ14A自身の障
害などによって2つのメモリ14A,14Bの内容の一
致が保証できない場合などに使用される。
6Aのメモリ14B,14Aから自系のメモリ14A,
14Bへのコピー命令は、一方のプロセッサ16A側の
電源が投入された場合、あるいはメモリ14A自身の障
害などによって2つのメモリ14A,14Bの内容の一
致が保証できない場合などに使用される。
【0036】これらの場合、上記のコピー命令を実行
し、他のメモリ14Bの内容を読出して自系のメモリ1
4Aの内容を保証するようにしなければならない。この
コピー命令は以下のように動作することで実現される。
尚、このコピー命令実行時の動作のフローチャートを図
2に示す。
し、他のメモリ14Bの内容を読出して自系のメモリ1
4Aの内容を保証するようにしなければならない。この
コピー命令は以下のように動作することで実現される。
尚、このコピー命令実行時の動作のフローチャートを図
2に示す。
【0037】プロセッサ16Aはアクセスする共用メモ
リのアドレスをアドレスバス101Aにセットするとと
もに(図2ステップ21)、内部占有信号104Aに
“1”をセットし、アクセス命令種類108Aで他系の
メモリ14Bからのデータの読出しであること(‘Ma
te Read’)を両系のアクセス許可判断部13
A,13Bに通知する(図2ステップ22)。
リのアドレスをアドレスバス101Aにセットするとと
もに(図2ステップ21)、内部占有信号104Aに
“1”をセットし、アクセス命令種類108Aで他系の
メモリ14Bからのデータの読出しであること(‘Ma
te Read’)を両系のアクセス許可判断部13
A,13Bに通知する(図2ステップ22)。
【0038】プロセッサ16B側のアクセス許可判断部
13Bはプロセッサ16Bからの内部占有信号104B
がセットされていなければ(図2ステップ23)、アク
セス許可信号103B,109Bに“1”をセットする
(図2ステップ24)。
13Bはプロセッサ16Bからの内部占有信号104B
がセットされていなければ(図2ステップ23)、アク
セス許可信号103B,109Bに“1”をセットする
(図2ステップ24)。
【0039】プロセッサ16B側のメモリ14Bはアク
セス許可信号103Bを受取ると、プロセッサ16A側
のデータバス102Aに指定されたアドレスの内容をセ
ットする(図2ステップ25)。
セス許可信号103Bを受取ると、プロセッサ16A側
のデータバス102Aに指定されたアドレスの内容をセ
ットする(図2ステップ25)。
【0040】プロセッサ16Aは内部占有信号104A
をリセットすることなく、アクセス命令種類108Aで
共用メモリへのデータの書込みであること(‘Writ
e’)をアクセス許可判断部13Aに通知し、データバ
ス102A上のデータを共用メモリに書込む(図2ステ
ップ26)。
をリセットすることなく、アクセス命令種類108Aで
共用メモリへのデータの書込みであること(‘Writ
e’)をアクセス許可判断部13Aに通知し、データバ
ス102A上のデータを共用メモリに書込む(図2ステ
ップ26)。
【0041】この書込み動作は通常の共用メモリへのデ
ータの書込み動作と同様に、プロセッサ16A側及びプ
ロセッサ16B側双方のメモリ14A,14Bに書込ま
れる。上述したプロセッサ16B側のメモリ14Bから
のデータの読出し、プロセッサ16A側及びプロセッサ
16B側双方のメモリ14A,14Bへのデータの書込
みからなる一連の動作が完了すると、プロセッサ16A
は内部占有信号104Aをリセットする(図2ステップ
27)。
ータの書込み動作と同様に、プロセッサ16A側及びプ
ロセッサ16B側双方のメモリ14A,14Bに書込ま
れる。上述したプロセッサ16B側のメモリ14Bから
のデータの読出し、プロセッサ16A側及びプロセッサ
16B側双方のメモリ14A,14Bへのデータの書込
みからなる一連の動作が完了すると、プロセッサ16A
は内部占有信号104Aをリセットする(図2ステップ
27)。
【0042】一方、プロセッサ16B側のアクセス許可
判断部13Bはプロセッサ16Bからの内部占有信号1
04Bがセットされていると(図2ステップ23)、ア
ドレス比較部12Bでプロセッサ16A側及びプロセッ
サ16B側双方のアドレスバス101A,101B上の
アドレスを比較する(図2ステップ28)。この比較結
果が不一致であれば、アクセス競合が発生しなかったも
のとして上述のステップ24〜27の処理を行う。
判断部13Bはプロセッサ16Bからの内部占有信号1
04Bがセットされていると(図2ステップ23)、ア
ドレス比較部12Bでプロセッサ16A側及びプロセッ
サ16B側双方のアドレスバス101A,101B上の
アドレスを比較する(図2ステップ28)。この比較結
果が不一致であれば、アクセス競合が発生しなかったも
のとして上述のステップ24〜27の処理を行う。
【0043】この比較結果が一致であれば、アクセス許
可判断部13Bはアクセス競合が発生したものとしてア
クセス許可信号103B,109Bをリセットする(図
2ステップ29)。
可判断部13Bはアクセス競合が発生したものとしてア
クセス許可信号103B,109Bをリセットする(図
2ステップ29)。
【0044】プロセッサ16Aはアクセス許可判断部1
3Bからのアクセス許可信号109Bがリセットされる
と、共用メモリへのアクセスに失敗したものと解釈し、
必要な回数または一定時間再試行するか、あるいはクロ
ック信号生成部15Aによってクロック信号107Aの
生成が一時停止される(図2ステップ30)。
3Bからのアクセス許可信号109Bがリセットされる
と、共用メモリへのアクセスに失敗したものと解釈し、
必要な回数または一定時間再試行するか、あるいはクロ
ック信号生成部15Aによってクロック信号107Aの
生成が一時停止される(図2ステップ30)。
【0045】(3)の共用メモリを占有しない状態での
データ読出し命令は、厳密なアクセス競合を意識する必
要のない、単に参照するだけのデータの読出しを行う場
合に使用される。
データ読出し命令は、厳密なアクセス競合を意識する必
要のない、単に参照するだけのデータの読出しを行う場
合に使用される。
【0046】この場合、上記のデータ読出し命令では共
用メモリの占有が行われないので、アクセス競合による
待ち時間を全く発生させずにデータを読出すことができ
る。このデータ読出し命令は以下のように動作すること
で実現される。尚、このデータ読出し命令実行時の動作
のフローチャートを図3に示す。
用メモリの占有が行われないので、アクセス競合による
待ち時間を全く発生させずにデータを読出すことができ
る。このデータ読出し命令は以下のように動作すること
で実現される。尚、このデータ読出し命令実行時の動作
のフローチャートを図3に示す。
【0047】プロセッサ16Aはアクセスする共用メモ
リのアドレスをアドレスバス101Aにセットするとと
もに(図3ステップ31)、アクセス命令種類108A
でメモリ14Aを占有しない状態でのメモリ14Aから
のデータの読出しであること[‘Read(not L
ock)’]をアクセス許可判断部13Aに通知する
(図3ステップ32)。
リのアドレスをアドレスバス101Aにセットするとと
もに(図3ステップ31)、アクセス命令種類108A
でメモリ14Aを占有しない状態でのメモリ14Aから
のデータの読出しであること[‘Read(not L
ock)’]をアクセス許可判断部13Aに通知する
(図3ステップ32)。
【0048】プロセッサ16A側のアクセス許可判断部
13Aはプロセッサ16Bからのメモリ占有信号106
Bだけをチェックし(図3ステップ33)、メモリ占有
信号106Bがセットされていなければ、アクセス許可
信号103Aに“1”をセットする(図3ステップ3
4)。
13Aはプロセッサ16Bからのメモリ占有信号106
Bだけをチェックし(図3ステップ33)、メモリ占有
信号106Bがセットされていなければ、アクセス許可
信号103Aに“1”をセットする(図3ステップ3
4)。
【0049】プロセッサ16A側のメモリ14Aはアク
セス許可信号103Aを受取ると、指定されたアドレス
の内容をプロセッサ16A側のデータバス102Aにセ
ットする(図3ステップ35)。
セス許可信号103Aを受取ると、指定されたアドレス
の内容をプロセッサ16A側のデータバス102Aにセ
ットする(図3ステップ35)。
【0050】このデータ読出し命令においては、プロセ
ッサ16B側の内部占有信号104Bをチェックしない
ため、プロセッサ16Bがプロセッサ16A側のメモリ
14Aを占有している場合以外はアクセス競合が発生せ
ず、比較的単純な処理で完了する。
ッサ16B側の内部占有信号104Bをチェックしない
ため、プロセッサ16Bがプロセッサ16A側のメモリ
14Aを占有している場合以外はアクセス競合が発生せ
ず、比較的単純な処理で完了する。
【0051】但し、メモリ占有信号106Bがセットさ
れていた場合には(図3ステップ33)、アクセス許可
判断部13Aはアクセス競合が発生したものとしてアク
セス許可信号103Aをリセットする(図3ステップ3
6)。
れていた場合には(図3ステップ33)、アクセス許可
判断部13Aはアクセス競合が発生したものとしてアク
セス許可信号103Aをリセットする(図3ステップ3
6)。
【0052】プロセッサ16Aはアクセス許可判断部1
3Aからのアクセス許可信号103Aがリセットされる
と、共用メモリへのアクセスに失敗したものと解釈し、
必要な回数または一定時間再試行するか、あるいはクロ
ック信号生成部15Aによってクロック信号107Aの
生成が一時停止される(図3ステップ37)。
3Aからのアクセス許可信号103Aがリセットされる
と、共用メモリへのアクセスに失敗したものと解釈し、
必要な回数または一定時間再試行するか、あるいはクロ
ック信号生成部15Aによってクロック信号107Aの
生成が一時停止される(図3ステップ37)。
【0053】(4)の共用メモリを占有した状態でのデ
ータ読出し命令は、更新直前の旧データの読出しを排除
する場合に使用される。通常、共用メモリからのデータ
の読出しは共用メモリからデータを読出したタイミング
で他のプロセッサからデータ内容を変更されることによ
って実質的に旧データとなった内容を参照しないように
アクセスをロックし、データの読出しと同時にデータが
更新されることがないように制御される。
ータ読出し命令は、更新直前の旧データの読出しを排除
する場合に使用される。通常、共用メモリからのデータ
の読出しは共用メモリからデータを読出したタイミング
で他のプロセッサからデータ内容を変更されることによ
って実質的に旧データとなった内容を参照しないように
アクセスをロックし、データの読出しと同時にデータが
更新されることがないように制御される。
【0054】上記のデータ読出し命令はこのような制御
を行うための命令であり、以下のように動作することで
実現される。尚、このデータ読出し命令実行時の動作の
フローチャートを図4に示す。
を行うための命令であり、以下のように動作することで
実現される。尚、このデータ読出し命令実行時の動作の
フローチャートを図4に示す。
【0055】プロセッサ16Aはアクセスする共用メモ
リのアドレスをアドレスバス101Aにセットするとと
もに(図4ステップ41)、内部占有信号104Aに
“1”をセットし、アクセス命令種類108Aでメモリ
14Aからのデータの読出しであること[‘Read
(Lock)’]をアクセス許可判断部13Aに通知す
る(図4ステップ42)。
リのアドレスをアドレスバス101Aにセットするとと
もに(図4ステップ41)、内部占有信号104Aに
“1”をセットし、アクセス命令種類108Aでメモリ
14Aからのデータの読出しであること[‘Read
(Lock)’]をアクセス許可判断部13Aに通知す
る(図4ステップ42)。
【0056】プロセッサ16A側のアクセス許可判断部
13Aはプロセッサ16Bからの内部占有信号104B
がセットされていなければ(図4ステップ43)、プロ
セッサ16Bからのメモリ占有信号106Bがセットさ
れていないことをチェックする(図4ステップ44)。
13Aはプロセッサ16Bからの内部占有信号104B
がセットされていなければ(図4ステップ43)、プロ
セッサ16Bからのメモリ占有信号106Bがセットさ
れていないことをチェックする(図4ステップ44)。
【0057】アクセス許可判断部13Aはプロセッサ1
6Bからの内部占有信号104B及びメモリ占有信号1
06Bがいずれもセットされていなければ、アクセス許
可信号103Aに“1”をセットする(図4ステップ4
5)。
6Bからの内部占有信号104B及びメモリ占有信号1
06Bがいずれもセットされていなければ、アクセス許
可信号103Aに“1”をセットする(図4ステップ4
5)。
【0058】プロセッサ16A側のメモリ14Aはアク
セス許可信号103Aを受取ると、指定されたアドレス
の内容をプロセッサ16A側のデータバス102Aにセ
ットする(図4ステップ46)。その後に、プロセッサ
16Aは内部占有信号104Aをリセットする(図4ス
テップ47)。
セス許可信号103Aを受取ると、指定されたアドレス
の内容をプロセッサ16A側のデータバス102Aにセ
ットする(図4ステップ46)。その後に、プロセッサ
16Aは内部占有信号104Aをリセットする(図4ス
テップ47)。
【0059】一方、プロセッサ16A側のアクセス許可
判断部13Aはプロセッサ16Bからの内部占有信号1
04Bがセットされていると(図4ステップ43)、ア
ドレス比較部12Aでプロセッサ16A側及びプロセッ
サ16B側双方のアドレスバス101A,101B上の
アドレスを比較する(図4ステップ48)。この比較結
果が不一致であれば、アクセス競合が発生しなかったも
のとして上述のステップ44〜47の処理を行う。
判断部13Aはプロセッサ16Bからの内部占有信号1
04Bがセットされていると(図4ステップ43)、ア
ドレス比較部12Aでプロセッサ16A側及びプロセッ
サ16B側双方のアドレスバス101A,101B上の
アドレスを比較する(図4ステップ48)。この比較結
果が不一致であれば、アクセス競合が発生しなかったも
のとして上述のステップ44〜47の処理を行う。
【0060】この比較結果が一致であれば、アクセス許
可判断部13Aはアクセス競合が発生したものとしてア
クセス許可信号103Aをリセットする(図4ステップ
49)。プロセッサ16Aはアクセス許可判断部13A
からのアクセス許可信号103Aがリセットされると、
共用メモリへのアクセスに失敗したものと解釈し、必要
な回数または一定時間再試行するか、あるいはクロック
信号生成部15Aによってクロック信号107Aの生成
が一時停止される(図4ステップ50)。
可判断部13Aはアクセス競合が発生したものとしてア
クセス許可信号103Aをリセットする(図4ステップ
49)。プロセッサ16Aはアクセス許可判断部13A
からのアクセス許可信号103Aがリセットされると、
共用メモリへのアクセスに失敗したものと解釈し、必要
な回数または一定時間再試行するか、あるいはクロック
信号生成部15Aによってクロック信号107Aの生成
が一時停止される(図4ステップ50)。
【0061】(5)のデータ書込み命令は、データの不
正更新を排除する場合に使用される。通常、共用メモリ
へのデータの書込みは共用メモリにデータを書込んだタ
イミングで他のプロセッサからデータを書込むことによ
ってデータが不正に更新されないように、アクセス競合
が発生したときにアクセスをロックし、データの書込み
を禁止するように制御される。
正更新を排除する場合に使用される。通常、共用メモリ
へのデータの書込みは共用メモリにデータを書込んだタ
イミングで他のプロセッサからデータを書込むことによ
ってデータが不正に更新されないように、アクセス競合
が発生したときにアクセスをロックし、データの書込み
を禁止するように制御される。
【0062】上記のデータ書込み命令はこのような制御
を行うための命令であり、以下のように動作することで
実現される。尚、このデータ書込み命令実行時の動作の
フローチャートを図5に示す。
を行うための命令であり、以下のように動作することで
実現される。尚、このデータ書込み命令実行時の動作の
フローチャートを図5に示す。
【0063】プロセッサ16Aはアクセスする共用メモ
リのアドレスをアドレスバス101Aにセットするとと
もに、共用メモリに書込むデータをデータバス102A
にセットする(図5ステップ51)。このとき、プロセ
ッサ16Aは内部占有信号104Aに“1”をセット
し、アクセス命令種類108Aで共用メモリへのデータ
の書込みであること[‘Write’]をアクセス許可
判断部13Aに通知する(図5ステップ52)。
リのアドレスをアドレスバス101Aにセットするとと
もに、共用メモリに書込むデータをデータバス102A
にセットする(図5ステップ51)。このとき、プロセ
ッサ16Aは内部占有信号104Aに“1”をセット
し、アクセス命令種類108Aで共用メモリへのデータ
の書込みであること[‘Write’]をアクセス許可
判断部13Aに通知する(図5ステップ52)。
【0064】プロセッサ16A側のアクセス許可判断部
13Aはプロセッサ16Bからの内部占有信号104B
がセットされていなければ(図5ステップ53)、プロ
セッサ16Bからのメモリ占有信号106Bがセットさ
れていないことをチェックする(図5ステップ54)。
13Aはプロセッサ16Bからの内部占有信号104B
がセットされていなければ(図5ステップ53)、プロ
セッサ16Bからのメモリ占有信号106Bがセットさ
れていないことをチェックする(図5ステップ54)。
【0065】アクセス許可判断部13Aはプロセッサ1
6Bからの内部占有信号104B及びメモリ占有信号1
06Bがいずれもセットされていなければ、アクセス許
可信号103Aに“1”をセットする(図5ステップ5
5)。
6Bからの内部占有信号104B及びメモリ占有信号1
06Bがいずれもセットされていなければ、アクセス許
可信号103Aに“1”をセットする(図5ステップ5
5)。
【0066】プロセッサ16A側のメモリ14A及びプ
ロセッサ16B側のメモリ14Bはアクセス許可信号1
03Aを受取ると、プロセッサ16A側のデータバス1
02Aの内容を取込み、指定されたアドレスにその内容
を格納する(図5ステップ56)。その後に、プロセッ
サ16Aは内部占有信号104Aをリセットする(図5
ステップ57)。
ロセッサ16B側のメモリ14Bはアクセス許可信号1
03Aを受取ると、プロセッサ16A側のデータバス1
02Aの内容を取込み、指定されたアドレスにその内容
を格納する(図5ステップ56)。その後に、プロセッ
サ16Aは内部占有信号104Aをリセットする(図5
ステップ57)。
【0067】一方、プロセッサ16A側のアクセス許可
判断部13Aはプロセッサ16Bからの内部占有信号1
04Bがセットされていると(図5ステップ53)、ア
ドレス比較部12Aでプロセッサ16A側及びプロセッ
サ16B側双方のアドレスバス101A,101B上の
アドレスを比較する(図5ステップ58)。この比較結
果が不一致であれば、アクセス競合が発生しなかったも
のとして上述のステップ54〜57の処理を行う。
判断部13Aはプロセッサ16Bからの内部占有信号1
04Bがセットされていると(図5ステップ53)、ア
ドレス比較部12Aでプロセッサ16A側及びプロセッ
サ16B側双方のアドレスバス101A,101B上の
アドレスを比較する(図5ステップ58)。この比較結
果が不一致であれば、アクセス競合が発生しなかったも
のとして上述のステップ54〜57の処理を行う。
【0068】この比較結果が一致であれば、アクセス許
可判断部13Aはアクセス競合が発生したものとしてア
クセス許可信号103Aをリセットする(図5ステップ
59)。プロセッサ16Aはアクセス許可判断部13A
からのアクセス許可信号103Aがリセットされると、
共用メモリへのアクセスに失敗したものと解釈し、必要
な回数または一定時間再試行するか、あるいはクロック
信号生成部15Aによってクロック信号107Aの生成
が一時停止される(図5ステップ60)。
可判断部13Aはアクセス競合が発生したものとしてア
クセス許可信号103Aをリセットする(図5ステップ
59)。プロセッサ16Aはアクセス許可判断部13A
からのアクセス許可信号103Aがリセットされると、
共用メモリへのアクセスに失敗したものと解釈し、必要
な回数または一定時間再試行するか、あるいはクロック
信号生成部15Aによってクロック信号107Aの生成
が一時停止される(図5ステップ60)。
【0069】(6)のデータ内容の更新命令は、データ
読出しとデータ書込みとの組み合わせである。この場
合、共用メモリのデータを読出してからそのデータを共
用メモリに書込むまでの間に他のプロセッサからデータ
の書込みが実行されると、更新以前のデータを更新して
このデータで後から書込まれたデータを不正に上書きし
てしまうことになる。そこで、共用メモリのデータを読
出してからそのデータを共用メモリに書込むまでの間、
他のプロセッサがデータを更新しないようにアクセスを
ロックし、データの書込みを禁止するように制御する必
要がある。
読出しとデータ書込みとの組み合わせである。この場
合、共用メモリのデータを読出してからそのデータを共
用メモリに書込むまでの間に他のプロセッサからデータ
の書込みが実行されると、更新以前のデータを更新して
このデータで後から書込まれたデータを不正に上書きし
てしまうことになる。そこで、共用メモリのデータを読
出してからそのデータを共用メモリに書込むまでの間、
他のプロセッサがデータを更新しないようにアクセスを
ロックし、データの書込みを禁止するように制御する必
要がある。
【0070】上記のデータ内容の更新命令はこのような
制御を行うための命令であり、以下のように動作するこ
とで実現される。尚、このデータ内容の更新命令実行時
の動作のフローチャートを図6に示す。
制御を行うための命令であり、以下のように動作するこ
とで実現される。尚、このデータ内容の更新命令実行時
の動作のフローチャートを図6に示す。
【0071】プロセッサ16Aはアクセスする共用メモ
リのアドレスをアドレスバス101Aにセットするとと
もに(図6ステップ61)、内部占有信号104Aに
“1”をセットし、アクセス命令種類108Aで共用メ
モリからのデータの読出しであること[‘Read’]
をアクセス許可判断部13Aに通知する(図6ステップ
62)。
リのアドレスをアドレスバス101Aにセットするとと
もに(図6ステップ61)、内部占有信号104Aに
“1”をセットし、アクセス命令種類108Aで共用メ
モリからのデータの読出しであること[‘Read’]
をアクセス許可判断部13Aに通知する(図6ステップ
62)。
【0072】プロセッサ16A側のアクセス許可判断部
13Aはプロセッサ16Bからの内部占有信号104B
がセットされていなければ(図6ステップ63)、プロ
セッサ16Bからのメモリ占有信号106Bがセットさ
れていないことをチェックする(図6ステップ64)。
13Aはプロセッサ16Bからの内部占有信号104B
がセットされていなければ(図6ステップ63)、プロ
セッサ16Bからのメモリ占有信号106Bがセットさ
れていないことをチェックする(図6ステップ64)。
【0073】アクセス許可判断部13Aはプロセッサ1
6Bからの内部占有信号104B及びメモリ占有信号1
06Bがいずれもセットされていなければ、アクセス許
可信号103Aに“1”をセットする(図6ステップ6
5)。
6Bからの内部占有信号104B及びメモリ占有信号1
06Bがいずれもセットされていなければ、アクセス許
可信号103Aに“1”をセットする(図6ステップ6
5)。
【0074】プロセッサ16A側のメモリ14Aはアク
セス許可信号103Aを受取ると、指定されたアドレス
の内容をプロセッサ16A側のデータバス102Aにセ
ットする(図6ステップ66)。その後に、プロセッサ
16Aはデータバス102A上のデータを読出し、その
データの内容を更新して再度データバス102A上にセ
ットする(図6ステップ67)。
セス許可信号103Aを受取ると、指定されたアドレス
の内容をプロセッサ16A側のデータバス102Aにセ
ットする(図6ステップ66)。その後に、プロセッサ
16Aはデータバス102A上のデータを読出し、その
データの内容を更新して再度データバス102A上にセ
ットする(図6ステップ67)。
【0075】次に、プロセッサ16Aはアクセス命令種
類108Aで共用メモリへのデータの書込みであること
[‘Write’]をアクセス許可判断部13Aに通知
する。これにより、アクセス許可判断部13Aは書込み
指示(図示せず)を出力するので、プロセッサ16A側
のメモリ14A及びプロセッサ16B側のメモリ14B
はプロセッサ16A側のデータバス102Aの内容を取
込み、指定されたアドレスにその内容を格納する(図6
ステップ68)。上述した一連の処理が完了すると、プ
ロセッサ16Aは内部占有信号104Aをリセットする
(図6ステップ69)。
類108Aで共用メモリへのデータの書込みであること
[‘Write’]をアクセス許可判断部13Aに通知
する。これにより、アクセス許可判断部13Aは書込み
指示(図示せず)を出力するので、プロセッサ16A側
のメモリ14A及びプロセッサ16B側のメモリ14B
はプロセッサ16A側のデータバス102Aの内容を取
込み、指定されたアドレスにその内容を格納する(図6
ステップ68)。上述した一連の処理が完了すると、プ
ロセッサ16Aは内部占有信号104Aをリセットする
(図6ステップ69)。
【0076】一方、プロセッサ16A側のアクセス許可
判断部13Aはプロセッサ16Bからの内部占有信号1
04Bがセットされていると(図6ステップ63)、ア
ドレス比較部12Aでプロセッサ16A側及びプロセッ
サ16B側双方のアドレスバス101A,101B上の
アドレスを比較する(図6ステップ70)。この比較結
果が不一致であれば、アクセス競合が発生しなかったも
のとして上述のステップ64〜69の処理を行う。
判断部13Aはプロセッサ16Bからの内部占有信号1
04Bがセットされていると(図6ステップ63)、ア
ドレス比較部12Aでプロセッサ16A側及びプロセッ
サ16B側双方のアドレスバス101A,101B上の
アドレスを比較する(図6ステップ70)。この比較結
果が不一致であれば、アクセス競合が発生しなかったも
のとして上述のステップ64〜69の処理を行う。
【0077】この比較結果が一致であれば、アクセス許
可判断部13Aはアクセス競合が発生したものとしてア
クセス許可信号103Aをリセットする(図6ステップ
71)。プロセッサ16Aはアクセス許可判断部13A
からのアクセス許可信号103Aがリセットされると、
共用メモリへのアクセスに失敗したものと解釈し、必要
な回数または一定時間再試行するか、あるいはクロック
信号生成部15Aによってクロック信号107Aの生成
が一時停止される(図6ステップ72)。
可判断部13Aはアクセス競合が発生したものとしてア
クセス許可信号103Aをリセットする(図6ステップ
71)。プロセッサ16Aはアクセス許可判断部13A
からのアクセス許可信号103Aがリセットされると、
共用メモリへのアクセスに失敗したものと解釈し、必要
な回数または一定時間再試行するか、あるいはクロック
信号生成部15Aによってクロック信号107Aの生成
が一時停止される(図6ステップ72)。
【0078】(7)の共用メモリの占有命令はメモリ占
有信号106A,106Bのセット/リセットを行うの
みである。この命令によってメモリ占有信号106A,
106Bがセットされているときは、プロセッサ16
A,16Bがアクセス中でなくとも共用メモリへのアク
セス命令実行中と同じように、他のプロセッサ16B,
16Aの共用メモリへのアクセスを禁止することができ
る。
有信号106A,106Bのセット/リセットを行うの
みである。この命令によってメモリ占有信号106A,
106Bがセットされているときは、プロセッサ16
A,16Bがアクセス中でなくとも共用メモリへのアク
セス命令実行中と同じように、他のプロセッサ16B,
16Aの共用メモリへのアクセスを禁止することができ
る。
【0079】よって、上記の命令は共用メモリのアクセ
スに同期しない一定期間、他のプロセッサ16B,16
Aに対して共用メモリへのアクセスを禁止する場合など
に使用される。
スに同期しない一定期間、他のプロセッサ16B,16
Aに対して共用メモリへのアクセスを禁止する場合など
に使用される。
【0080】次に、上述した(1)〜(7)の命令の実
行時にアクセス競合が発生した場合の処理について説明
する。この場合、アクセス許可判断部13A,13Bに
は、 自プロセッサ16A,16Bが実行しようとする共用
メモリへのアクセスの種類を示すアクセス命令種類10
8A,108B アドレス比較部12A,12Bによる各プロセッサ1
6A,16Bのアドレスバス101A,101Bの比較
結果 他のプロセッサ16B,16Aの内部占有信号104
B,104A 他のプロセッサ16B,16Aのメモリ占有信号10
6B,106A 他のプロセッサ16B,16Aが実行しようとする共
用メモリへのアクセスの種類を示すアクセス命令種類1
08B,108A 自プロセッサ16A,16Bの内部占有信号104
A,104B という入力情報が与えられる。
行時にアクセス競合が発生した場合の処理について説明
する。この場合、アクセス許可判断部13A,13Bに
は、 自プロセッサ16A,16Bが実行しようとする共用
メモリへのアクセスの種類を示すアクセス命令種類10
8A,108B アドレス比較部12A,12Bによる各プロセッサ1
6A,16Bのアドレスバス101A,101Bの比較
結果 他のプロセッサ16B,16Aの内部占有信号104
B,104A 他のプロセッサ16B,16Aのメモリ占有信号10
6B,106A 他のプロセッサ16B,16Aが実行しようとする共
用メモリへのアクセスの種類を示すアクセス命令種類1
08B,108A 自プロセッサ16A,16Bの内部占有信号104
A,104B という入力情報が与えられる。
【0081】上記の入力情報のうち,に関しては他
系のメモリ14B,14Aからの読出しのときにのみ使
用される。この2つの信号は他系のメモリ14B,14
Aからデータを読出す時に他系側のアクセス許可判断部
13B,13Aでアクセスの可否を判断させるためのも
のである。
系のメモリ14B,14Aからの読出しのときにのみ使
用される。この2つの信号は他系のメモリ14B,14
Aからデータを読出す時に他系側のアクセス許可判断部
13B,13Aでアクセスの可否を判断させるためのも
のである。
【0082】また、この2つの信号は通常の共用メモリ
の読出し/書込みの際に使用されることはない。他系の
メモリ14B,14Aからデータを読出す場合、の入
力情報をの入力情報に、またの入力情報をの入力
情報に置き換えて考える。
の読出し/書込みの際に使用されることはない。他系の
メモリ14B,14Aからデータを読出す場合、の入
力情報をの入力情報に、またの入力情報をの入力
情報に置き換えて考える。
【0083】プロセッサ16A側のアクセス許可判断部
13Aは以下の条件1)を満足し、かつ条件2)または
条件3)のいずれかを満足しているときにアクセス許可
信号103Aをセットする。 条件1)プロセッサ16Bのメモリ占有信号106Bが
リセットされている。 条件2)プロセッサ16Bの内部占有信号104Bがリ
セットされている。 条件3)アドレス比較部12Aの比較結果が不一致を示
している。
13Aは以下の条件1)を満足し、かつ条件2)または
条件3)のいずれかを満足しているときにアクセス許可
信号103Aをセットする。 条件1)プロセッサ16Bのメモリ占有信号106Bが
リセットされている。 条件2)プロセッサ16Bの内部占有信号104Bがリ
セットされている。 条件3)アドレス比較部12Aの比較結果が不一致を示
している。
【0084】本実施例ではプロセッサ16Bのメモリ占
有信号106Bをプロセッサ16Aが直接見ることが可
能であるので、プロセッサ16Aは共用メモリに対する
アクセス命令の実行後にこの信号をチェックし、この信
号がセットされている場合には共用メモリへのアクセス
に失敗したものと解釈する。
有信号106Bをプロセッサ16Aが直接見ることが可
能であるので、プロセッサ16Aは共用メモリに対する
アクセス命令の実行後にこの信号をチェックし、この信
号がセットされている場合には共用メモリへのアクセス
に失敗したものと解釈する。
【0085】これは、例えばプロセッサ16B側で共用
メモリへのデータの書込みをしたときに障害が発生し、
プロセッサ16A側のメモリ14Aの内容が保証できな
いようなときにセットされる。
メモリへのデータの書込みをしたときに障害が発生し、
プロセッサ16A側のメモリ14Aの内容が保証できな
いようなときにセットされる。
【0086】すなわち、プロセッサ16A側のメモリ1
4A内の不良データによる異常動作を防止するような場
合、あるいはプロセッサ16Bが共用メモリのアクセス
と非同期に、ある特定の処理が完了するまでプロセッサ
16Aが共用メモリにアクセスすることを禁止したい場
合などに使用される。
4A内の不良データによる異常動作を防止するような場
合、あるいはプロセッサ16Bが共用メモリのアクセス
と非同期に、ある特定の処理が完了するまでプロセッサ
16Aが共用メモリにアクセスすることを禁止したい場
合などに使用される。
【0087】また、プロセッサ16Bのメモリ占有信号
106Bがリセットされているときでも、プロセッサ1
6Bの内部占有信号104Bとアドレス比較部12Aの
出力(一致しているときは“1”)との論理和(OR)
が“1”のとき、つまりプロセッサ16Aがアクセスし
ようとしているエリアと同じエリアにプロセッサ16B
がアクセスしているときにはアクセス許可信号103A
をリセットする。
106Bがリセットされているときでも、プロセッサ1
6Bの内部占有信号104Bとアドレス比較部12Aの
出力(一致しているときは“1”)との論理和(OR)
が“1”のとき、つまりプロセッサ16Aがアクセスし
ようとしているエリアと同じエリアにプロセッサ16B
がアクセスしているときにはアクセス許可信号103A
をリセットする。
【0088】このアクセス許可信号103Aをプロセッ
サ16Aが直接見ることが可能であるので、メモリ占有
信号106Bの場合と同様に、プロセッサ16Aは共用
メモリに対するアクセス命令の実行後にこの信号をチェ
ックし、この信号がセットされている場合には共用メモ
リへのアクセスに失敗したものと解釈する。
サ16Aが直接見ることが可能であるので、メモリ占有
信号106Bの場合と同様に、プロセッサ16Aは共用
メモリに対するアクセス命令の実行後にこの信号をチェ
ックし、この信号がセットされている場合には共用メモ
リへのアクセスに失敗したものと解釈する。
【0089】そのため、プロセッサ16A,16B上で
動作するプログラムは共用メモリのアクセスを行う際
に、予めメモリ14A,14Bを占有(アクセスロッ
ク)してからアクセスを開始するのではなく、アクセス
後に成功/不成功を判断し、アクセスが不成功のときだ
け必要な回数または一定時間、再試行することになって
いる。
動作するプログラムは共用メモリのアクセスを行う際
に、予めメモリ14A,14Bを占有(アクセスロッ
ク)してからアクセスを開始するのではなく、アクセス
後に成功/不成功を判断し、アクセスが不成功のときだ
け必要な回数または一定時間、再試行することになって
いる。
【0090】また、プロセッサ16Aがアクセスしよう
としている領域と同じ領域にプロセッサ16Bがアクセ
スしているときにはアクセス許可信号103Aがリセッ
トされるが、この時間はプロセッサ16Bが共用メモリ
にアクセスしている間だけなので、短時間の後に解除さ
れ、アクセス許可信号103Aをセットできるようにな
る。
としている領域と同じ領域にプロセッサ16Bがアクセ
スしているときにはアクセス許可信号103Aがリセッ
トされるが、この時間はプロセッサ16Bが共用メモリ
にアクセスしている間だけなので、短時間の後に解除さ
れ、アクセス許可信号103Aをセットできるようにな
る。
【0091】本実施例ではこのアクセス許可信号103
Aをクロック信号生成部15Aに入力し、アクセス許可
信号103Aがリセットされているとき、つまり共用メ
モリへのアクセスが禁止されている期間中(但し、メモ
リ占有信号106Bが“1”になっているときを除く)
はプロセッサ16Aの動作クロックを一時停止させるよ
うになっている。
Aをクロック信号生成部15Aに入力し、アクセス許可
信号103Aがリセットされているとき、つまり共用メ
モリへのアクセスが禁止されている期間中(但し、メモ
リ占有信号106Bが“1”になっているときを除く)
はプロセッサ16Aの動作クロックを一時停止させるよ
うになっている。
【0092】アクセス許可信号103Aがセットされた
とき、メモリ14Aへのアクセスが実行可能になるとと
もに、プロセッサ16Aの動作クロックが動作を再開す
るようになっている。よって、プロセッサ16Bの共用
メモリへのアクセスとの競合が発生しても、プロセッサ
16A上で動作するプログラムは競合が発生したことを
意識することなく動作するようになっている。
とき、メモリ14Aへのアクセスが実行可能になるとと
もに、プロセッサ16Aの動作クロックが動作を再開す
るようになっている。よって、プロセッサ16Bの共用
メモリへのアクセスとの競合が発生しても、プロセッサ
16A上で動作するプログラムは競合が発生したことを
意識することなく動作するようになっている。
【0093】このように、プロセッサ16A,16Bか
ら出力されるアドレスの任意のビットをアドレスマスク
部11A,11Bでマスクし、排他制御を行う範囲を設
定することによって、従来のように共用メモリのアドレ
スを高位アドレスと低位アドレスとに分割して高位アド
レスでページングし、各ページ毎に排他制御を行う方法
に比べてアクセス競合の発生する確率を低下させること
ができる。
ら出力されるアドレスの任意のビットをアドレスマスク
部11A,11Bでマスクし、排他制御を行う範囲を設
定することによって、従来のように共用メモリのアドレ
スを高位アドレスと低位アドレスとに分割して高位アド
レスでページングし、各ページ毎に排他制御を行う方法
に比べてアクセス競合の発生する確率を低下させること
ができる。
【0094】同時に、排他制御を行う範囲をプロセッサ
16A,16B上で動作するプログラムで任意に変更す
ることができるので、共用メモリのマッピングを決定す
る上での制限を少なくすることができる。
16A,16B上で動作するプログラムで任意に変更す
ることができるので、共用メモリのマッピングを決定す
る上での制限を少なくすることができる。
【0095】これによって、複数種類の周辺制御装置の
ように、制御対象によって異なるマッピングが必要とさ
れる場合でも、専用の制御回路を設計することなく、同
一回路を使用することが可能となるので、開発効率を向
上させることができる。
ように、制御対象によって異なるマッピングが必要とさ
れる場合でも、専用の制御回路を設計することなく、同
一回路を使用することが可能となるので、開発効率を向
上させることができる。
【0096】また、プロセッサ16A,16B上で動作
するプログラムが共用メモリをアクセスする命令を実行
するとき、この命令に対応してアクセス中であることを
示す内部占有信号104A,104Bをセットする機能
を設け、このアクセス命令が内部占有信号104A,1
04B(アクセスロック信号)をセットしないアクセス
形式と、内部占有信号104A,104Bをセットする
アクセス形式と、データの更新のようにデータの読出し
と書込みとの一連の動作の実行中は内部占有信号104
A,104Bをセットしたままにしておくアクセス形式
の3タイプのアクセス形式を持ち、アクセス競合により
アクセス失敗となった場合にこのアクセスを試みたプロ
セッサに通知し、アクセス後にアクセスの成功/不成功
を判断してアクセス不成功時にのみ再試行などの処理を
行うことによって、共用メモリをアクセスする際に予め
メモリ14A,14bを占有してからアクセスを行う方
法に比べ、プロセッサ16A,16b上で動作するプロ
グラムにおける複数の命令の組み合わせによる煩雑な処
理が不要となる。
するプログラムが共用メモリをアクセスする命令を実行
するとき、この命令に対応してアクセス中であることを
示す内部占有信号104A,104Bをセットする機能
を設け、このアクセス命令が内部占有信号104A,1
04B(アクセスロック信号)をセットしないアクセス
形式と、内部占有信号104A,104Bをセットする
アクセス形式と、データの更新のようにデータの読出し
と書込みとの一連の動作の実行中は内部占有信号104
A,104Bをセットしたままにしておくアクセス形式
の3タイプのアクセス形式を持ち、アクセス競合により
アクセス失敗となった場合にこのアクセスを試みたプロ
セッサに通知し、アクセス後にアクセスの成功/不成功
を判断してアクセス不成功時にのみ再試行などの処理を
行うことによって、共用メモリをアクセスする際に予め
メモリ14A,14bを占有してからアクセスを行う方
法に比べ、プロセッサ16A,16b上で動作するプロ
グラムにおける複数の命令の組み合わせによる煩雑な処
理が不要となる。
【0097】よって、プログラムの処理ステップ数を削
減することができ、オーバヘッドも減少させることがで
きるので、処理性能の向上を図ることができる。
減することができ、オーバヘッドも減少させることがで
きるので、処理性能の向上を図ることができる。
【0098】さらに、競合によりアクセスに失敗した場
合にアクセスを試みたプロセッサ16A,16bにアク
セス失敗を通知する信号を使用してプロセッサ16A,
16bの動作クロックを一時的に停止させることによっ
て、アクセスの失敗に伴う再試行の頻発を避けることが
でき、処理性能の向上を図ることができる。
合にアクセスを試みたプロセッサ16A,16bにアク
セス失敗を通知する信号を使用してプロセッサ16A,
16bの動作クロックを一時的に停止させることによっ
て、アクセスの失敗に伴う再試行の頻発を避けることが
でき、処理性能の向上を図ることができる。
【0099】さらにまた、メモリ占有信号106A,1
06Bを出力することで、共用メモリ全体を占有してア
クセスを禁止することによって、メモリ14A,14B
で障害が発生した場合、あるいは共用メモリに対するア
クセス命令の実行とは非同期に他のプロセッサ16B,
16Aからのアクセスを禁止したい場合にも対応するこ
とができ、信頼性を向上させることができる。
06Bを出力することで、共用メモリ全体を占有してア
クセスを禁止することによって、メモリ14A,14B
で障害が発生した場合、あるいは共用メモリに対するア
クセス命令の実行とは非同期に他のプロセッサ16B,
16Aからのアクセスを禁止したい場合にも対応するこ
とができ、信頼性を向上させることができる。
【0100】
【発明の効果】以上説明したように本発明によれば、第
1及び第2のプロセッサによって共通にアクセスされる
共用メモリをアクセスする命令の内容に応じて自プロセ
ッサが共用メモリをアクセス中であることを示す内部占
有信号を出力し、他のプロセッサの内部占有信号の出力
状態と第1及び第2のプロセッサ各々の共用メモリへの
アクセスアドレスの比較結果とに応じて共用メモリへの
アクセスが可能か否かを判定することによって、処理性
能及び信頼性を向上させることができるという効果があ
る。
1及び第2のプロセッサによって共通にアクセスされる
共用メモリをアクセスする命令の内容に応じて自プロセ
ッサが共用メモリをアクセス中であることを示す内部占
有信号を出力し、他のプロセッサの内部占有信号の出力
状態と第1及び第2のプロセッサ各々の共用メモリへの
アクセスアドレスの比較結果とに応じて共用メモリへの
アクセスが可能か否かを判定することによって、処理性
能及び信頼性を向上させることができるという効果があ
る。
【図1】本発明の一実施例の構成を示すブロック図であ
る。
る。
【図2】本発明の一実施例における他系のメモリから自
系のメモリへのコピー命令実行時の動作を示すフローチ
ャートである。
系のメモリへのコピー命令実行時の動作を示すフローチ
ャートである。
【図3】本発明の一実施例における共用メモリを占有し
ない状態でのデータ読出し命令実行時の動作を示すフロ
ーチャートである。
ない状態でのデータ読出し命令実行時の動作を示すフロ
ーチャートである。
【図4】本発明の一実施例における共用メモリを占有し
た状態でのデータ読出し命令実行時の動作を示すフロー
チャートである。
た状態でのデータ読出し命令実行時の動作を示すフロー
チャートである。
【図5】本発明の一実施例におけるデータ書込み命令実
行時の動作を示すフローチャートである。
行時の動作を示すフローチャートである。
【図6】本発明の一実施例におけるデータ内容の更新命
令実行時の動作を示すフローチャートである。
令実行時の動作を示すフローチャートである。
11A,11B アドレスマスク部 12A,12B アドレス比較部 13A,13B アクセス許可判断部 14A,14B メモリ 15A,15B クロック信号生成部 16A,16B プロセッサ 101A,101B アドレスバス 102A,102B データバス 103A,103B,109A,109B アクセス許
可信号 104A,104B 内部占有信号 106A,106B メモリ占有信号
可信号 104A,104B 内部占有信号 106A,106B メモリ占有信号
Claims (4)
- 【請求項1】 第1及び第2のプロセッサによって共通
にアクセスされる共用メモリと、前記第1及び第2のプ
ロセッサ各々の前記共用メモリへのアクセスアドレスを
比較する比較手段を含み、前記比較手段が不一致を検出
したときに前記第1及び第2のプロセッサによる前記共
用メモリへの同時アクセスを許可する共用メモリ制御シ
ステムであって、前記第1及び第2のプロセッサ各々に
対応して設けられ、前記共用メモリをアクセスする命令
の内容に応じて自プロセッサが前記共用メモリをアクセ
ス中であることを示す内部占有信号を出力する出力手段
と、前記第1及び第2のプロセッサ各々に対応して設け
られ、前記内部占有信号の出力状態と前記比較手段の比
較結果とに応じて前記共用メモリへのアクセスが可能か
否かを判定する判定手段とを有することを特徴とする共
用メモリ制御システム。 - 【請求項2】 前記共用メモリに対する排他制御の範囲
を設定する設定手段を有することを特徴とする請求項1
記載の共用メモリ制御システム。 - 【請求項3】 前記第1及び第2のプロセッサ各々に対
応して設けられ、他のプロセッサに対して前記共用メモ
リを占有していることを通知するメモリ占有信号を出力
する出力手段を有し、前記判定手段が前記メモリ占有信
号の出力状態に応じて前記共用メモリへのアクセスが可
能か否かを判定するようにしたことを特徴とする請求項
1または請求項2記載の共用メモリ制御システム。 - 【請求項4】 前記第1及び第2のプロセッサ各々に対
応して設けられ、前記判定手段によって前記共用メモリ
へのアクセスが不可と判定されたときに自プロセッサの
動作クロックを一時停止する手段を有することを特徴と
する請求項1〜請求項3のうちいずれか記載の共用メモ
リ制御システム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP33812792A JPH06161874A (ja) | 1992-11-25 | 1992-11-25 | 共用メモリ制御システム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP33812792A JPH06161874A (ja) | 1992-11-25 | 1992-11-25 | 共用メモリ制御システム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH06161874A true JPH06161874A (ja) | 1994-06-10 |
Family
ID=18315172
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP33812792A Pending JPH06161874A (ja) | 1992-11-25 | 1992-11-25 | 共用メモリ制御システム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH06161874A (ja) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5417643A (en) * | 1977-07-08 | 1979-02-09 | Mitsubishi Electric Corp | Central processor |
| JPH01251156A (ja) * | 1988-03-31 | 1989-10-06 | Nec Corp | デュアルポートメモリ回路 |
| JPH03160551A (ja) * | 1989-11-17 | 1991-07-10 | Matsushita Electric Ind Co Ltd | 記憶制御装置 |
-
1992
- 1992-11-25 JP JP33812792A patent/JPH06161874A/ja active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5417643A (en) * | 1977-07-08 | 1979-02-09 | Mitsubishi Electric Corp | Central processor |
| JPH01251156A (ja) * | 1988-03-31 | 1989-10-06 | Nec Corp | デュアルポートメモリ回路 |
| JPH03160551A (ja) * | 1989-11-17 | 1991-07-10 | Matsushita Electric Ind Co Ltd | 記憶制御装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP3588309B1 (en) | Semiconductor device, control system, and control method of semiconductor device | |
| US10983924B2 (en) | Information processing device and processor | |
| JPH04213136A (ja) | 参照ビット,変更ビットの更新方法 | |
| US5546567A (en) | System for limiting change in bus clock frequency to duration of I/O operation upon completion signal | |
| US5701437A (en) | Dual-memory managing apparatus and method including prioritization of backup and update operations | |
| JPH06161874A (ja) | 共用メモリ制御システム | |
| EP3428799B1 (en) | Data access device and access error notification method | |
| JP2937857B2 (ja) | 共通記憶装置のロックフラグ解除方式および方法 | |
| JPH04165548A (ja) | メモリアドレス制御方式 | |
| JPS63250753A (ja) | メモリアクセスチエツク方式 | |
| CN119045891A (zh) | 防止目标程序进行内存访问时处理器卡死的方法及装置 | |
| JPH04305746A (ja) | キャッシュメモリ制御装置 | |
| JPS6010343B2 (ja) | 情報処理系の制御方式 | |
| JPH05134918A (ja) | 情報処理装置 | |
| JPH01180656A (ja) | メモリ保護装置 | |
| JPH01175045A (ja) | アドレスマッチ検出方法 | |
| JPH0782475B2 (ja) | メモリインタロック制御回路 | |
| JPH0635866A (ja) | マルチプロセッサシステム | |
| JPH04302044A (ja) | マルチプロセッサシステム | |
| JPH0469747A (ja) | 演算処理装置 | |
| JP2710475B2 (ja) | メモリ制御回路 | |
| JPH07302226A (ja) | メモリ不正アクセス検出回路 | |
| JPS62251941A (ja) | デ−タ処理装置 | |
| JPS61294556A (ja) | プログラム誤動作検出方式 | |
| JPH06266621A (ja) | データアクセス方法 |