JPH0410051A - マルチプロセッサシステムの共有メモリ制御方法 - Google Patents
マルチプロセッサシステムの共有メモリ制御方法Info
- Publication number
- JPH0410051A JPH0410051A JP2110003A JP11000390A JPH0410051A JP H0410051 A JPH0410051 A JP H0410051A JP 2110003 A JP2110003 A JP 2110003A JP 11000390 A JP11000390 A JP 11000390A JP H0410051 A JPH0410051 A JP H0410051A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- processors
- data
- shared
- memory
- 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
Landscapes
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、マルチプロセッサシステムにおける共有メモ
リの制御方法に関する。
リの制御方法に関する。
現在のマルチプロセッサシステムにおいては、各プロセ
ッサによる共有メモリ内データへのアクセスを速くする
ためと通信路(バスまたはネットワーク)の競合を少な
くするために、各プロセッサが共有メモリの一部データ
(以後、データブロックと呼ぶ)を各個別のメモリ(キ
ャッシュ・メモリまたはメイン・メモリ)にコピーし、
そのコピーしたデータブロックをアクセスすることで、
間接的に共有メモリの各データブロックをアクセスする
方式を用いる。そして、その各プロセッサは共有メモリ
の同一データブロックから(各個別のメモリに)コピー
したデータブロック(以後、共有データブロックと呼ぶ
)の一貫性を保ちながら並行して処理を進める。
ッサによる共有メモリ内データへのアクセスを速くする
ためと通信路(バスまたはネットワーク)の競合を少な
くするために、各プロセッサが共有メモリの一部データ
(以後、データブロックと呼ぶ)を各個別のメモリ(キ
ャッシュ・メモリまたはメイン・メモリ)にコピーし、
そのコピーしたデータブロックをアクセスすることで、
間接的に共有メモリの各データブロックをアクセスする
方式を用いる。そして、その各プロセッサは共有メモリ
の同一データブロックから(各個別のメモリに)コピー
したデータブロック(以後、共有データブロックと呼ぶ
)の一貫性を保ちながら並行して処理を進める。
従来例としては、ジエームズ アーチボルド(Jame
s Archibald)他著、「キャッシュ コヒー
レンス プロトコルズ(Chache Coheren
ceprotocols) Jに密結合マルチプロセッ
サシステムにおいてのキャッシュ・メモリの一貫性制御
方式が紹介されている。
s Archibald)他著、「キャッシュ コヒー
レンス プロトコルズ(Chache Coheren
ceprotocols) Jに密結合マルチプロセッ
サシステムにおいてのキャッシュ・メモリの一貫性制御
方式が紹介されている。
この文献で紹介されているキャッシュ・メモリの制御方
式では、共有データブロックを他プロセッサが持つこと
や、データブロックの内容が自ブロセッサによって書き
換えらで共有メモリのコピー元のデータブロックの内容
と異なることや、そのデータブロックの内容が有効であ
ること等のデータブロックの状態を示すもの(以後、フ
ラグと呼ぶ)を用いる。各プロセッサは、それらフラグ
の状態により、各プロセッサの個別のメモリに保持する
各データブロックの状態を認識し、そのデータブロック
の状態に従ったその他プロセッサ及び共有メモリのデー
タブロックの必要最小限の更新を行う。
式では、共有データブロックを他プロセッサが持つこと
や、データブロックの内容が自ブロセッサによって書き
換えらで共有メモリのコピー元のデータブロックの内容
と異なることや、そのデータブロックの内容が有効であ
ること等のデータブロックの状態を示すもの(以後、フ
ラグと呼ぶ)を用いる。各プロセッサは、それらフラグ
の状態により、各プロセッサの個別のメモリに保持する
各データブロックの状態を認識し、そのデータブロック
の状態に従ったその他プロセッサ及び共有メモリのデー
タブロックの必要最小限の更新を行う。
また、疎結合システムにおいても以上と同様なデータブ
ロックの状態を管理して制御を行う方式を採用するもの
がある。一般に、データブロックの状態によって共有メ
モリの一貫性を制御するそれら方式では、複数のプロセ
ッサが共有メモリの同一データブロックを各個別のメモ
リにコピーし、あるプロセッサがそのデータブロックの
内容を書き換えると、その他全てのプロセッサの対応す
る共有データブロックの内容が無効となる。そして、あ
るプロセッサがその書き換えられた最新のデータブロッ
クを必要としたとき、その書き換えられたデータブロッ
クの内容を、自プロセッサの共有データブロックに書き
込み更新する。
ロックの状態を管理して制御を行う方式を採用するもの
がある。一般に、データブロックの状態によって共有メ
モリの一貫性を制御するそれら方式では、複数のプロセ
ッサが共有メモリの同一データブロックを各個別のメモ
リにコピーし、あるプロセッサがそのデータブロックの
内容を書き換えると、その他全てのプロセッサの対応す
る共有データブロックの内容が無効となる。そして、あ
るプロセッサがその書き換えられた最新のデータブロッ
クを必要としたとき、その書き換えられたデータブロッ
クの内容を、自プロセッサの共有データブロックに書き
込み更新する。
マルチプロセッサシステムにおいて、一般に、各プロセ
ッサが共有データブロックを書き換える(または、アク
セスする)頻度が多いと、各プロセッサ間と共有メモリ
を接続する通信路の競合が大きくなり、各プロセッサの
通信路の利用待ち状態が長くなり、各プロセッサの処理
能力が低下する。以上通信路の競合をできるかぎり避け
ようとする制御方式として、前記従来例のフラグを用い
てデータブロックの状態を制御する方式が用いられる。
ッサが共有データブロックを書き換える(または、アク
セスする)頻度が多いと、各プロセッサ間と共有メモリ
を接続する通信路の競合が大きくなり、各プロセッサの
通信路の利用待ち状態が長くなり、各プロセッサの処理
能力が低下する。以上通信路の競合をできるかぎり避け
ようとする制御方式として、前記従来例のフラグを用い
てデータブロックの状態を制御する方式が用いられる。
しかし、各プロセッサが共有データブロックを書き換え
る頻度が少ない場合、従来例の方式のように各プロセッ
サの要求時に1データブロツクずつ更新していく方法は
効率が悪い。そして、複数プロセッサの共有データブロ
ックを更新するのに要する処理時間と1プロセッサの共
有データブロックを更新するのに要する処理時間がほぼ
等しい場合、共有データブロックが書き換えられると同
時に他プロセッサの対応する各共有データブロックも書
き換え更新する方が通信路の競合が少なくなり、また各
プロセッサが即時に更新の共有データブロックをアクセ
スすることができる可能性が高くなる(勿論、2プロセ
ッサ間で共有しているデータブロックの場合は除く)。
る頻度が少ない場合、従来例の方式のように各プロセッ
サの要求時に1データブロツクずつ更新していく方法は
効率が悪い。そして、複数プロセッサの共有データブロ
ックを更新するのに要する処理時間と1プロセッサの共
有データブロックを更新するのに要する処理時間がほぼ
等しい場合、共有データブロックが書き換えられると同
時に他プロセッサの対応する各共有データブロックも書
き換え更新する方が通信路の競合が少なくなり、また各
プロセッサが即時に更新の共有データブロックをアクセ
スすることができる可能性が高くなる(勿論、2プロセ
ッサ間で共有しているデータブロックの場合は除く)。
しかし、以上の書換えと同時に更新する方法では、各プ
ロセッサの共有データブロックへの書き換えが一時期に
集中してしまった場合に不利である。そして、その書換
えが集中する間、以上の更新に関係する全てのプロセッ
サの処理が何度も中断され、また、どのプロセッサも参
照していないのに次の更新が行われたりして、逆に効率
が悪くなりまたオーバーヘッドが大きくなってしまう。
ロセッサの共有データブロックへの書き換えが一時期に
集中してしまった場合に不利である。そして、その書換
えが集中する間、以上の更新に関係する全てのプロセッ
サの処理が何度も中断され、また、どのプロセッサも参
照していないのに次の更新が行われたりして、逆に効率
が悪くなりまたオーバーヘッドが大きくなってしまう。
本発明の目的は、マルチプロセッサシステムの上述した
共有データブロックを更新するのに好適な共有メモリ制
御方法を提供することにある。
共有データブロックを更新するのに好適な共有メモリ制
御方法を提供することにある。
前記目的を実現する手段として、第一にシステムは、各
プロセッサが自プロセッサ以外のその他全てのプロセッ
サの対応する共有データブロックを同時に書き換え更新
するか、または1プロセッサが通信路へ出力するデータ
ブロックをその他全てのプロセッサが並行して自共有デ
ータブロックに読み込み更新する機構を持つ。第二に各
プロセッサは、それぞれ以下のタイマを持つ。そのタイ
マは、自プロセッサの各共有データブロックが(各プロ
セッサによって)書き換えられてからの時間を測定する
。そして、その共有データブロックが書換えられる度に
タイマのそのデータブロックに対する測定時間を0に戻
し、もしその測定時間がタイマの規定する時間以上に達
した(@き換えがその規定時間内で行われなかった)と
き、自プロセッサにその事を知らせる機構を持つ。第三
に各プロセッサは、第二の機構の上記タイマからの知ら
せを受は取り、第一の機構を用いて、その書き換えられ
てから規定時間以上経過したデータブロックに対応する
その他全てのプロセッサの共有データブロックを更新す
る機構を持つ。以上の3つの機構により、書換えが一時
期に纏めて行われ、参照に対して書換える頻度が少ない
(書換えられる周期が、参照される周期より長い)よう
な共有データブロックの最適な更新を実現する。
プロセッサが自プロセッサ以外のその他全てのプロセッ
サの対応する共有データブロックを同時に書き換え更新
するか、または1プロセッサが通信路へ出力するデータ
ブロックをその他全てのプロセッサが並行して自共有デ
ータブロックに読み込み更新する機構を持つ。第二に各
プロセッサは、それぞれ以下のタイマを持つ。そのタイ
マは、自プロセッサの各共有データブロックが(各プロ
セッサによって)書き換えられてからの時間を測定する
。そして、その共有データブロックが書換えられる度に
タイマのそのデータブロックに対する測定時間を0に戻
し、もしその測定時間がタイマの規定する時間以上に達
した(@き換えがその規定時間内で行われなかった)と
き、自プロセッサにその事を知らせる機構を持つ。第三
に各プロセッサは、第二の機構の上記タイマからの知ら
せを受は取り、第一の機構を用いて、その書き換えられ
てから規定時間以上経過したデータブロックに対応する
その他全てのプロセッサの共有データブロックを更新す
る機構を持つ。以上の3つの機構により、書換えが一時
期に纏めて行われ、参照に対して書換える頻度が少ない
(書換えられる周期が、参照される周期より長い)よう
な共有データブロックの最適な更新を実現する。
前記第一の機構により、複数プロセッサの共有データブ
ロックを更新する処理時間と、1プロセッサの共在デー
タブロックを更新する処理時間とが殆ど等しくなる。前
記第二の機構により、自プロセッサの各データブロック
に対する書換えの集中する時期の終わりを認識し、その
書換時期の終わりを自プロセッサに知らせることができ
る。前記第三の機構により、第一の機構と第二の機構を
結び付け、その他全てのプロセッサの共有データブロッ
クに更新を制御する。
ロックを更新する処理時間と、1プロセッサの共在デー
タブロックを更新する処理時間とが殆ど等しくなる。前
記第二の機構により、自プロセッサの各データブロック
に対する書換えの集中する時期の終わりを認識し、その
書換時期の終わりを自プロセッサに知らせることができ
る。前記第三の機構により、第一の機構と第二の機構を
結び付け、その他全てのプロセッサの共有データブロッ
クに更新を制御する。
以上3つの機構により、マルチプロセッサシステムにお
いて、プロセッサが共有データブロックを一時期に纏め
て書換えた後、その纏めて書換えたデータブロックをそ
の他全てのプロセッサの対応する共有データブロックに
書き込み、それら共有データブロックを一度に更新する
という本発明の共有メモリ制御方法を実現する。その他
、本発明の方法において、各プロセッサの共有データブ
ロック毎に、本発明の以上3つの機構を用いるか否かを
示すフラグ(以後、更新フラグと呼ぶ)を設け、適用す
るデータブロックを選択できるようにすることが考えら
れる。
いて、プロセッサが共有データブロックを一時期に纏め
て書換えた後、その纏めて書換えたデータブロックをそ
の他全てのプロセッサの対応する共有データブロックに
書き込み、それら共有データブロックを一度に更新する
という本発明の共有メモリ制御方法を実現する。その他
、本発明の方法において、各プロセッサの共有データブ
ロック毎に、本発明の以上3つの機構を用いるか否かを
示すフラグ(以後、更新フラグと呼ぶ)を設け、適用す
るデータブロックを選択できるようにすることが考えら
れる。
またタイマを用いた別の実現方法として、前記第二の機
構でデータブロックを書き換える度にタイマの測定する
時間をOに戻すのを止め、最初に書き換えてから一定時
間経つと(その間何度か書き換えられるかもしれないが
)その書換えたデータブロックをその他全てのプロセッ
サの共有データブロックに書き込み更新する方法が考え
られる。
構でデータブロックを書き換える度にタイマの測定する
時間をOに戻すのを止め、最初に書き換えてから一定時
間経つと(その間何度か書き換えられるかもしれないが
)その書換えたデータブロックをその他全てのプロセッ
サの共有データブロックに書き込み更新する方法が考え
られる。
この方法の場合は、纏めて書き換えが行われる時間が予
め分かつている場合に有効である。また、タイマを用い
る方法では、各プロセッサの処理状況および各プロセッ
サの共有データブロックの内容(更新を要する頻度)に
よって、各プロセッサが各プロセッサのタイマの規定時
間を変えられるようにすることが考えられる。
め分かつている場合に有効である。また、タイマを用い
る方法では、各プロセッサの処理状況および各プロセッ
サの共有データブロックの内容(更新を要する頻度)に
よって、各プロセッサが各プロセッサのタイマの規定時
間を変えられるようにすることが考えられる。
タイマ以外を用いて実現する方法として、前記第二の機
構のタイマの代わりに複数個のカウンタを設ける。そし
て、それらカウンタは、自内部メモリに保持する各共有
データブロックを自プロセッサが書き換える回数をカウ
ントし、その回数がカウンタの規定する回数以上になっ
たとき、その規定回数以上書換えたデータブロックをそ
の他全てのプロセッサの共有データブロックに書き込み
更新する方法が考えられる。この方法の場合は、−度に
纏めて書き換える回数が予め分かつているデータブロッ
クに対して有効である。また、このカウンタを用いる方
法において、各共有データブロックの規定書き換え回数
を、各プロセッサが随時変えられるようにすることが考
えられる。
構のタイマの代わりに複数個のカウンタを設ける。そし
て、それらカウンタは、自内部メモリに保持する各共有
データブロックを自プロセッサが書き換える回数をカウ
ントし、その回数がカウンタの規定する回数以上になっ
たとき、その規定回数以上書換えたデータブロックをそ
の他全てのプロセッサの共有データブロックに書き込み
更新する方法が考えられる。この方法の場合は、−度に
纏めて書き換える回数が予め分かつているデータブロッ
クに対して有効である。また、このカウンタを用いる方
法において、各共有データブロックの規定書き換え回数
を、各プロセッサが随時変えられるようにすることが考
えられる。
以下、本発明の実施例を図面により説明する。
第1図は、本発明の一実施例のマルチプロセッサシステ
ムのブロック図である。3台のプロセッサ1,2.3と
共有メモリ4がバス5に接続されていて、各プロセッサ
1,2.3は、その他のプロセッサ1,2.3に対して
割り込み信号6を出力することができる。例えば、プロ
セッサ1はプロセッサ2,3に対して割り込み信号6を
同時に出力することができる。
ムのブロック図である。3台のプロセッサ1,2.3と
共有メモリ4がバス5に接続されていて、各プロセッサ
1,2.3は、その他のプロセッサ1,2.3に対して
割り込み信号6を出力することができる。例えば、プロ
セッサ1はプロセッサ2,3に対して割り込み信号6を
同時に出力することができる。
各プロセッサ1,2.3は、内部にCPUII。
12.13とメモリ21,22.23とタイマ31.3
2.’33と4種のフラグ4i、5i。
2.’33と4種のフラグ4i、5i。
6i、7i (i=1.2.3)と条件判定回路15
1.152,153を有する。各プロセッサ1.2.3
は、アクセスする共有メモリ4の一部データブロック(
データブロックのアドレスと内容)を内部メモリ21,
22.23にコピーし、そのコピーしたデータブロック
をアクセスして処理を行う。その各データブロックの内
容は1以上のシステムにおいて予め定められた一定のデ
ータサイズである。そして、その各データの(コピーし
た)アドレスは、共有メモリ4上のアドレスである。各
プロセッサ1,2.3は、プロセッサ番号とそのアドレ
スを含むシステムアドレスにより、その他プロセッサ1
,2.3上の対応する共有データブロックをアクセスす
る(プロセッサ番号1゜2.3は、それぞれプロセッサ
1,2.3を指す)。
1.152,153を有する。各プロセッサ1.2.3
は、アクセスする共有メモリ4の一部データブロック(
データブロックのアドレスと内容)を内部メモリ21,
22.23にコピーし、そのコピーしたデータブロック
をアクセスして処理を行う。その各データブロックの内
容は1以上のシステムにおいて予め定められた一定のデ
ータサイズである。そして、その各データの(コピーし
た)アドレスは、共有メモリ4上のアドレスである。各
プロセッサ1,2.3は、プロセッサ番号とそのアドレ
スを含むシステムアドレスにより、その他プロセッサ1
,2.3上の対応する共有データブロックをアクセスす
る(プロセッサ番号1゜2.3は、それぞれプロセッサ
1,2.3を指す)。
また特に、対応するプロセッサ1,2.3は存在しない
が仮に定めたプロセッサ番号(又とする)とそのデータ
ブロックのアドレスを含む特別なシステムアドレスによ
って、自プロセッサ1,2゜3以外のその地金てのプロ
セッサ1,2.3の対応する共有データブロックの内容
をブロードキャストによって同時に書き換えることがで
きる。例えば、プロセッサ1は、その特別なシステムア
ドレスを用いてプロセッサ2,3の共有データブロック
を同時に書き換えることができる。各プロセッサ1,2
.3の内部フラグ4i、5i、6i+7i (i=1
.2.3)は、そのデータブロックの内容の有効性を示
す有効フラグ41,42゜43と、そのデータブロック
の内容を自内部CPUII、12.13が書換えたこと
(および、各プロセッサ1,2.3の中で唯一有効状態
であること)を示す書換フラグ51,52.53と、そ
のデータブロックを他プロセッサ1,2.3と共有して
いることを示す共有フラグ61,62゜63と1条件が
満たされたとき対応する共有データブロックを(ブロー
ドキャストによって)−度に更新することを示す更新フ
ラグ771,72゜73を有する。各プロセッサ1,2
.3は、内部メモリ21,22.23にコピーした各デ
ータブロックの状態を以上4つのフラ4i、5i、6i
。
が仮に定めたプロセッサ番号(又とする)とそのデータ
ブロックのアドレスを含む特別なシステムアドレスによ
って、自プロセッサ1,2゜3以外のその地金てのプロ
セッサ1,2.3の対応する共有データブロックの内容
をブロードキャストによって同時に書き換えることがで
きる。例えば、プロセッサ1は、その特別なシステムア
ドレスを用いてプロセッサ2,3の共有データブロック
を同時に書き換えることができる。各プロセッサ1,2
.3の内部フラグ4i、5i、6i+7i (i=1
.2.3)は、そのデータブロックの内容の有効性を示
す有効フラグ41,42゜43と、そのデータブロック
の内容を自内部CPUII、12.13が書換えたこと
(および、各プロセッサ1,2.3の中で唯一有効状態
であること)を示す書換フラグ51,52.53と、そ
のデータブロックを他プロセッサ1,2.3と共有して
いることを示す共有フラグ61,62゜63と1条件が
満たされたとき対応する共有データブロックを(ブロー
ドキャストによって)−度に更新することを示す更新フ
ラグ771,72゜73を有する。各プロセッサ1,2
.3は、内部メモリ21,22.23にコピーした各デ
ータブロックの状態を以上4つのフラ4i、5i、6i
。
7i (i=1.2.3)の値で管理する。
各プロセッサ1,2.3が処理に必要な共有メモリ4の
データブロックを自内部メモリ21゜22.23にコピ
ーすると、以上の4つのフラグ4i、5i、6i、7i
(i=1.2.3)が決定される。例えば、プロセ
ッサ1が共有メモリ4のあるデータブロックを自内部メ
モリ21にコピーしたとする。そのとき、その有効フラ
グ41は有効状態を示し、その書換フラグ51は書き換
えられていない状態を示す。その共有フラグ61は、す
でに共有メモリ4のそのデータブロックを内部メモリ2
2.23にコピーしているプロセッサ2゜3がいると共
有状態を示し、そうでなければ固有状態を示す。更新フ
ラグ71は、コピーしたデータブロックの(共有メモリ
4上の)アドレスにより決定される。(共有メモリ4の
予め決まった領域に、ブロードキャストを用いた一度に
更新するのに適したデータブロックが格納される。)ま
た、各プロセッサ1,2.3の処理や内部メモリ21,
22.23の記憶容量の都合により、プロセッサ1,2
.3からデータブロックが追い出される。その場合、そ
の追い出されるデータブロックの有効フラグ41,42
.43が有効状態に示し、書換フラグ51,52.53
が書き換えられた状態を示しているとき、そのデータブ
ロックの内容は共有メモリ4のコピー元に書き戻される
。そして、その他のデータブロックの状態の場合と同様
に、そのデータブロックに対応する4つフラグ4i、5
i、6i、7i(i=1.2.3)が初期化された後、
そのデータブロックは破棄される。
データブロックを自内部メモリ21゜22.23にコピ
ーすると、以上の4つのフラグ4i、5i、6i、7i
(i=1.2.3)が決定される。例えば、プロセ
ッサ1が共有メモリ4のあるデータブロックを自内部メ
モリ21にコピーしたとする。そのとき、その有効フラ
グ41は有効状態を示し、その書換フラグ51は書き換
えられていない状態を示す。その共有フラグ61は、す
でに共有メモリ4のそのデータブロックを内部メモリ2
2.23にコピーしているプロセッサ2゜3がいると共
有状態を示し、そうでなければ固有状態を示す。更新フ
ラグ71は、コピーしたデータブロックの(共有メモリ
4上の)アドレスにより決定される。(共有メモリ4の
予め決まった領域に、ブロードキャストを用いた一度に
更新するのに適したデータブロックが格納される。)ま
た、各プロセッサ1,2.3の処理や内部メモリ21,
22.23の記憶容量の都合により、プロセッサ1,2
.3からデータブロックが追い出される。その場合、そ
の追い出されるデータブロックの有効フラグ41,42
.43が有効状態に示し、書換フラグ51,52.53
が書き換えられた状態を示しているとき、そのデータブ
ロックの内容は共有メモリ4のコピー元に書き戻される
。そして、その他のデータブロックの状態の場合と同様
に、そのデータブロックに対応する4つフラグ4i、5
i、6i、7i(i=1.2.3)が初期化された後、
そのデータブロックは破棄される。
共有フラグ61,62.63が固有状態を示している有
効なデータブロックに対する参照と書換は、(データブ
ロックの内容がコピーされてから最初に書き換えられた
ときに、その書換フラグ51.52.53が書き換えら
れた状態に変わるが)、そのままそのデータブロックに
対して行われる。以降では、共有フラグ61,62.6
3が共有状態を示している共有データブロックに対する
参照と書換について述べる。
効なデータブロックに対する参照と書換は、(データブ
ロックの内容がコピーされてから最初に書き換えられた
ときに、その書換フラグ51.52.53が書き換えら
れた状態に変わるが)、そのままそのデータブロックに
対して行われる。以降では、共有フラグ61,62.6
3が共有状態を示している共有データブロックに対する
参照と書換について述べる。
第2図は、第1図の実施例のシステムにおける各プロセ
ッサ1,2.3の共有データブロック参照時の処理手順
を示している。例えば、プロセッサ1が、内部メモリ2
1のある共有データブロックを参照しようとする。その
とき、その参照しようとするデータブロックに対応する
有効フラグ41の状態によって処理が分かれる(ステッ
プ1oO)。もし、その有効フラグ41が有状態を示し
ていれば、そのままそのデータブロックを参照する(ス
テップ102)。もし、その有効フラグ41が無効状態
(有効でない状態)を示していれば、そのプロセッサ1
の内部CPUIIに割り込み信号81が入る。それによ
り内部CPUIIは、他のプロセッサ2,3に対して割
り込み信号6を出力し、その内部メモリ22.23の対
応する共有データブロックを捜索する。プロセッサ2゜
3は、割り込み信号6を受は取ると処理を中断してスリ
ーブ(何も処理しない)状態になる。内部CPUIIは
、プロセッサ2,3の共有データブロックのうち有効フ
ラグ42.43が有効状態を示しているデータブロック
(または、そのような共有データブロックがないときは
、共有メモリ4の元データブロック)の内容を自内部メ
モリ21に読み込み更新する(ステップ101)。そし
て、再びプロセッサ2,3に割り込み信号6を出力した
後、以上(ステップ101)で更新した自データブロッ
クを参照する(ステップ102)。
ッサ1,2.3の共有データブロック参照時の処理手順
を示している。例えば、プロセッサ1が、内部メモリ2
1のある共有データブロックを参照しようとする。その
とき、その参照しようとするデータブロックに対応する
有効フラグ41の状態によって処理が分かれる(ステッ
プ1oO)。もし、その有効フラグ41が有状態を示し
ていれば、そのままそのデータブロックを参照する(ス
テップ102)。もし、その有効フラグ41が無効状態
(有効でない状態)を示していれば、そのプロセッサ1
の内部CPUIIに割り込み信号81が入る。それによ
り内部CPUIIは、他のプロセッサ2,3に対して割
り込み信号6を出力し、その内部メモリ22.23の対
応する共有データブロックを捜索する。プロセッサ2゜
3は、割り込み信号6を受は取ると処理を中断してスリ
ーブ(何も処理しない)状態になる。内部CPUIIは
、プロセッサ2,3の共有データブロックのうち有効フ
ラグ42.43が有効状態を示しているデータブロック
(または、そのような共有データブロックがないときは
、共有メモリ4の元データブロック)の内容を自内部メ
モリ21に読み込み更新する(ステップ101)。そし
て、再びプロセッサ2,3に割り込み信号6を出力した
後、以上(ステップ101)で更新した自データブロッ
クを参照する(ステップ102)。
プロセッサ2,3はその割り込み信号6によってスリー
ブ状態から解放され再び処理を継続する。
ブ状態から解放され再び処理を継続する。
以上で例えば、プロセッサ1がプロセッサ2の共有デー
タブロックの内容を読み込んだとする。
タブロックの内容を読み込んだとする。
その時のその共有データブロックの有効フラグ41.4
2は有効状態を示し、また書換フラグ51.52は書き
換えられていない状態を示す。
2は有効状態を示し、また書換フラグ51.52は書き
換えられていない状態を示す。
第3図は、第1図の実施例のシステムにおける各プロセ
ッサ1,2.3の共有データブロック書換時の処理手順
を示している。例えば、プロセッサ1が、内部メモリ2
1のある共有データブロックを書き換えようとする。そ
のとき、その書き換えようとするデータブロックに対応
する有効フラグ41の状態によって処理が分かれる(ス
テップ200)。
ッサ1,2.3の共有データブロック書換時の処理手順
を示している。例えば、プロセッサ1が、内部メモリ2
1のある共有データブロックを書き換えようとする。そ
のとき、その書き換えようとするデータブロックに対応
する有効フラグ41の状態によって処理が分かれる(ス
テップ200)。
もし、その有効フラグ41が有効状態を示していれば、
他プロセッサ2,3の対応する共有データブロックの有
効フラグ42.43を無効状態にした(ステップ202
)後、その更新したデータブロックの内容を書き換える
(ステップ203)。
他プロセッサ2,3の対応する共有データブロックの有
効フラグ42.43を無効状態にした(ステップ202
)後、その更新したデータブロックの内容を書き換える
(ステップ203)。
それにより、その書換フラグ51は書き換えられた状態
を示す。
を示す。
ステップ200で、書き換えようとするデータブロック
の有効フラグ41が無効状態を示していれば、そのプロ
セッサ1の内部CPU11ニ11Ji、1込み信号81
が入る。それにより内部CPUIIは、他のプロセッサ
2,3に対して割り込み信号6を出力しくそれにより、
プロセッサ2,3は処理を中断してスリーブ状態になり
)、その内部メモリ22.23の対応する共有データブ
ロックを捜索する。
の有効フラグ41が無効状態を示していれば、そのプロ
セッサ1の内部CPU11ニ11Ji、1込み信号81
が入る。それにより内部CPUIIは、他のプロセッサ
2,3に対して割り込み信号6を出力しくそれにより、
プロセッサ2,3は処理を中断してスリーブ状態になり
)、その内部メモリ22.23の対応する共有データブ
ロックを捜索する。
内部CPU11は、プロセッサ2,3のそれら共有デー
タブロックのうち有効フラグ42.43が有効状態を示
しているデータブロック(または、そのような共有デー
タブロックがないときは、共有メモリ4の元データブロ
ック)の内容量を自内部メモリ21に読み込み更新する
(ステップ20I)。
タブロックのうち有効フラグ42.43が有効状態を示
しているデータブロック(または、そのような共有デー
タブロックがないときは、共有メモリ4の元データブロ
ック)の内容量を自内部メモリ21に読み込み更新する
(ステップ20I)。
そして、他プロセッサ2,3のそれら共有データブロッ
クの有効フラグ42.43を無効状態にして(ステップ
202)、プロセッサ2,3に割り込み信号6を再び出
力した後、その更新したデータブロックの内容を書き換
える(ステップ203)。
クの有効フラグ42.43を無効状態にして(ステップ
202)、プロセッサ2,3に割り込み信号6を再び出
力した後、その更新したデータブロックの内容を書き換
える(ステップ203)。
その時、その有効フラグ41は有効状態を示し。
書換え(ステップ203)後、その書換フラグ51は書
き換えられた状態を示す。プロセッサ2゜3はその再度
の割り込み信号6によってスリーブ状態から解放され処
理を継続する。
き換えられた状態を示す。プロセッサ2゜3はその再度
の割り込み信号6によってスリーブ状態から解放され処
理を継続する。
第4図は、第1図の実施例のシステムにおけるタイマ3
1,32.33のブロック図であり、各プロセッサ1,
2.3の内部メモリ21,22゜23に格納できるデー
タブロック数が64個であった場合の例である。以下で
は、説明を簡単にするためプロセッサ1のタイマ31を
例として取り上げる。タイマ31は、カウンタ600,
601゜、663とレジスタ700と割り込み制御回路
900を有する。各カウンタ600,601.・663
は、内部メモリ21の各データブロックに対応して存在
する。例えば、カウンタ601は、内部メモリ21の(
アドレスOから格納されている順に0から数えて)第1
番目のデータブロックに対応する。
1,32.33のブロック図であり、各プロセッサ1,
2.3の内部メモリ21,22゜23に格納できるデー
タブロック数が64個であった場合の例である。以下で
は、説明を簡単にするためプロセッサ1のタイマ31を
例として取り上げる。タイマ31は、カウンタ600,
601゜、663とレジスタ700と割り込み制御回路
900を有する。各カウンタ600,601.・663
は、内部メモリ21の各データブロックに対応して存在
する。例えば、カウンタ601は、内部メモリ21の(
アドレスOから格納されている順に0から数えて)第1
番目のデータブロックに対応する。
そして、各カウンタ600,601.・・、663は、
入力されるクロック信号300をカウントする。カウン
タ600,601.・・・、663のその仕入力信号と
しては、カウントを行う条件となる信号(以後、条件信
号と呼ぶ)400,401゜°°・、463と、カウン
ト数をOに戻す信号(以後、初期化信号と呼ぶ)500
,501.・・・、563がある。それら2種類の信号
は、プロセッサ1の条件判定回路151から出力される
。条件信号400.401.・・、463は、条件判定
回路151から出力される。各データブロックに対応す
る4種のフラグ41,51,61.71の状態値の論理
積をとった信号となる(それにより、データブロックが
、共有状態にあり、内容が有効で、書き換えられており
、書き換えられた後ブロードキャストによって対応する
共有データブロックを一度に更新することを望んでいる
という4つの条件のもとてカウントを行う)。
入力されるクロック信号300をカウントする。カウン
タ600,601.・・・、663のその仕入力信号と
しては、カウントを行う条件となる信号(以後、条件信
号と呼ぶ)400,401゜°°・、463と、カウン
ト数をOに戻す信号(以後、初期化信号と呼ぶ)500
,501.・・・、563がある。それら2種類の信号
は、プロセッサ1の条件判定回路151から出力される
。条件信号400.401.・・、463は、条件判定
回路151から出力される。各データブロックに対応す
る4種のフラグ41,51,61.71の状態値の論理
積をとった信号となる(それにより、データブロックが
、共有状態にあり、内容が有効で、書き換えられており
、書き換えられた後ブロードキャストによって対応する
共有データブロックを一度に更新することを望んでいる
という4つの条件のもとてカウントを行う)。
初期化信号500,501.・・・、563は、各カウ
ンタに対応するデータブロックの内容が内部CPUII
によって書き換えられるとき、条件判定回路151から
毎回出力される信号である(それにより、カウンタ60
0,601.・・・、663は、対応するデータブロッ
クが書き換えられる度にカウント数を初期化する)。ま
た、タイマ3]の内部レジスタ700は、各カウンタ6
00゜601、・・・、663のカウント数を規定する
。各カウンタ600,601.・・、663は、そのカ
ウント数がレジスタ700の規定値以上になったとき、
割り込み制御回路900に更新を要求する信号800,
801.・・・、863を出力する(各カウンタ600
.601.・・・、663には、レジスタ700の数値
と比較をとる機能があるものとする)。
ンタに対応するデータブロックの内容が内部CPUII
によって書き換えられるとき、条件判定回路151から
毎回出力される信号である(それにより、カウンタ60
0,601.・・・、663は、対応するデータブロッ
クが書き換えられる度にカウント数を初期化する)。ま
た、タイマ3]の内部レジスタ700は、各カウンタ6
00゜601、・・・、663のカウント数を規定する
。各カウンタ600,601.・・、663は、そのカ
ウント数がレジスタ700の規定値以上になったとき、
割り込み制御回路900に更新を要求する信号800,
801.・・・、863を出力する(各カウンタ600
.601.・・・、663には、レジスタ700の数値
と比較をとる機能があるものとする)。
割り込み制御回路900は、各カウンタ600゜601
、・・、663のうちどれかひとつでも更新を要求する
信号800,801.・・・、863を出力していると
、更新用の割り込み信号91を内部CPUIIへ出力す
る。内部CPUIIは、その割り込み信号91を受は取
るとタイマ310割り込み制御回路900の入力ポート
を読み、どのカウンタ600,601.・・・、663
が更新を要求したか、延いてはどの共有データブロック
を更新しなければならないかを認識する。そして内部C
PUIIは、その他プロセッサ2,3に割り込み信号6
を出力しくそれにより、プロセッサ2゜3は処理を中断
してスリーブ状態になり)、認識した更新すにきデータ
ブロックの内容を他プロセッサ2,3の対応する各共有
データブロックに(ブロードキャストによって)同時に
書き込み更新する。
、・・、663のうちどれかひとつでも更新を要求する
信号800,801.・・・、863を出力していると
、更新用の割り込み信号91を内部CPUIIへ出力す
る。内部CPUIIは、その割り込み信号91を受は取
るとタイマ310割り込み制御回路900の入力ポート
を読み、どのカウンタ600,601.・・・、663
が更新を要求したか、延いてはどの共有データブロック
を更新しなければならないかを認識する。そして内部C
PUIIは、その他プロセッサ2,3に割り込み信号6
を出力しくそれにより、プロセッサ2゜3は処理を中断
してスリーブ状態になり)、認識した更新すにきデータ
ブロックの内容を他プロセッサ2,3の対応する各共有
データブロックに(ブロードキャストによって)同時に
書き込み更新する。
その後、プロセッサ1は、再びプロセッサ2゜3に割り
込み信号6を出力する(それにより、プロセッサ2,3
はスリーブ状態から解放され処理を継続する)。以上の
更新により、各プロセッサ1.2.3のその共有データ
ブロックの有効フラグ41,42.43は有効状態を示
し、また書換フラグ51,52.53は書き換えられて
ない状態を示す。以上、タイマ31とタイマ32.33
は等しく、条件判定回路151と条件判定回路152.
153は等しいものとする。
込み信号6を出力する(それにより、プロセッサ2,3
はスリーブ状態から解放され処理を継続する)。以上の
更新により、各プロセッサ1.2.3のその共有データ
ブロックの有効フラグ41,42.43は有効状態を示
し、また書換フラグ51,52.53は書き換えられて
ない状態を示す。以上、タイマ31とタイマ32.33
は等しく、条件判定回路151と条件判定回路152.
153は等しいものとする。
第5図は、第4図のタイマ31,32.33の各カウン
タ600,601.・・、663におけるタロツク信号
300が入力された時の動作フローである。例えば、カ
ウンタ601は、クロック信号300が入力されたとき
(例えばクロック信号300が立ち下がるとき)、条件
信号401の入力値によりカウントするかどうかが決ま
る(ステップ1000)。条件信号401が1であれば
、カラン1〜数をカウントアツプしくステップ1001
)、もし、条件信号401がOであれば何もしない。
タ600,601.・・、663におけるタロツク信号
300が入力された時の動作フローである。例えば、カ
ウンタ601は、クロック信号300が入力されたとき
(例えばクロック信号300が立ち下がるとき)、条件
信号401の入力値によりカウントするかどうかが決ま
る(ステップ1000)。条件信号401が1であれば
、カラン1〜数をカウントアツプしくステップ1001
)、もし、条件信号401がOであれば何もしない。
そして、カウンタ601がカウント数をカウントアツプ
した(ステップ1001)場合、そのカウントアツプし
たカウント数が内部レジスタ700の数値と比較される
(ステップ1002)。もし、カウント数をレジスタ7
00の値以上であれば、割り込み制御回路900に更新
を要求する信号801を出力する(ステップ1003)
。
した(ステップ1001)場合、そのカウントアツプし
たカウント数が内部レジスタ700の数値と比較される
(ステップ1002)。もし、カウント数をレジスタ7
00の値以上であれば、割り込み制御回路900に更新
を要求する信号801を出力する(ステップ1003)
。
以上のタイマ31,32.33と条件判定回路151.
152,153を設けることにより、プロセッサ1,2
.3の内部メモリ21,22゜23に保持する共有デー
タブロック毎に、そのデータブロックが山内部CPUI
I、12.13により書き換えられてからの時間を測定
することが可能となる(その測定時間は、対応するデー
タブロックが自内部CPUII、12.13により書き
換えられる度に0に戻る)。また、ブロードキャストを
用いて一度に更新を行うのに適当なデータブロックのみ
書き換えられてからの時間を測定することができる。そ
して、タイマ31,32゜33のそのデータブロックに
対する測定時間が、カウンタ内部レジスタ700の規定
値以上になるとき、割り込み信号91,92.93を内
部CPUll−,12,13に出力し、内部CPUII
。
152,153を設けることにより、プロセッサ1,2
.3の内部メモリ21,22゜23に保持する共有デー
タブロック毎に、そのデータブロックが山内部CPUI
I、12.13により書き換えられてからの時間を測定
することが可能となる(その測定時間は、対応するデー
タブロックが自内部CPUII、12.13により書き
換えられる度に0に戻る)。また、ブロードキャストを
用いて一度に更新を行うのに適当なデータブロックのみ
書き換えられてからの時間を測定することができる。そ
して、タイマ31,32゜33のそのデータブロックに
対する測定時間が、カウンタ内部レジスタ700の規定
値以上になるとき、割り込み信号91,92.93を内
部CPUll−,12,13に出力し、内部CPUII
。
12.13に対して、その書き換えられたデータブロッ
クに対応するその他共有データブロックを更新すること
を要求することができる。
クに対応するその他共有データブロックを更新すること
を要求することができる。
以下、第6図と第7図は、第1図の実施例のシステムの
3台のプロセッサ1,2.3が共有するあるデータブロ
ックに対するアクセスと、各プロセッサ1,2.3のそ
の対応する共有データブロックの状態を示した例である
。横軸を時間とし、縦矢印が各プロセッサ1,2.3の
その共有データブロックに対するアクセスを表している
。図の最初の横軸がプロセッサ1の共有データブロック
に対するものであり、下2つの横軸がプロセッサ2とプ
ロセッサ3の共有データブロックに対するものである。
3台のプロセッサ1,2.3が共有するあるデータブロ
ックに対するアクセスと、各プロセッサ1,2.3のそ
の対応する共有データブロックの状態を示した例である
。横軸を時間とし、縦矢印が各プロセッサ1,2.3の
その共有データブロックに対するアクセスを表している
。図の最初の横軸がプロセッサ1の共有データブロック
に対するものであり、下2つの横軸がプロセッサ2とプ
ロセッサ3の共有データブロックに対するものである。
そして、プロセッサ1の横軸の下のもう一つ部分は、プ
ロセッサ1のタイマ31が測定するその共有データブロ
ックに対する書換後の経過時間を表している。
ロセッサ1のタイマ31が測定するその共有データブロ
ックに対する書換後の経過時間を表している。
第6図は、共有データブロックをブロードキャストによ
って一度に更新する最適な場合の例である。まずプロセ
ッサlは、そのデータブロックに対して、3回の纏まっ
た書換えを行う(ポイント2000)。その第一の書換
えで、プロセッサ2とプロセッサ3の共有データブロッ
クは無効化され、プロセッサ1のタイマ31は、そのデ
ータブロックに対する書換え後の経博時間を測定し始め
る(ポイント2001)。その後節2の書換えで、その
測定時間を初期化され(ポイント2002)、また、第
3の書換えで、再び初期化される(ポイント2003)
。第3の書換え後、そのプロセッサ1のタイマ31のそ
のデータブロックに対する測定時間は、そのタイマ31
の内部レジスタ700の規定時間に達する(ポイント2
004)。それにより、プロセッサ1は、そのデータブ
ロックをプロセッサ2とプロセッサ3の対応する共有デ
ータブロックに書き込み、それら共有データブロックの
内容を更新する(データブロックの内容が有効になる)
。その後、プロセッサ2とプロセッサ3は、それら更新
された共有データブロックを参照する。また、プロセッ
サ1は、その後2回纏まった書換えを行い(ポイント2
005)、プロセッサ2とプロセッサ:3の共有有デー
タブロックを再び無効化しくポイント2006)、そし
て、そのデータブロックに対するタイマ31の測定値が
規定時間に達したとき(ポイント2007)、プロセッ
サ2とプロセッサ3の共有データブロックの内容を更新
する。
って一度に更新する最適な場合の例である。まずプロセ
ッサlは、そのデータブロックに対して、3回の纏まっ
た書換えを行う(ポイント2000)。その第一の書換
えで、プロセッサ2とプロセッサ3の共有データブロッ
クは無効化され、プロセッサ1のタイマ31は、そのデ
ータブロックに対する書換え後の経博時間を測定し始め
る(ポイント2001)。その後節2の書換えで、その
測定時間を初期化され(ポイント2002)、また、第
3の書換えで、再び初期化される(ポイント2003)
。第3の書換え後、そのプロセッサ1のタイマ31のそ
のデータブロックに対する測定時間は、そのタイマ31
の内部レジスタ700の規定時間に達する(ポイント2
004)。それにより、プロセッサ1は、そのデータブ
ロックをプロセッサ2とプロセッサ3の対応する共有デ
ータブロックに書き込み、それら共有データブロックの
内容を更新する(データブロックの内容が有効になる)
。その後、プロセッサ2とプロセッサ3は、それら更新
された共有データブロックを参照する。また、プロセッ
サ1は、その後2回纏まった書換えを行い(ポイント2
005)、プロセッサ2とプロセッサ:3の共有有デー
タブロックを再び無効化しくポイント2006)、そし
て、そのデータブロックに対するタイマ31の測定値が
規定時間に達したとき(ポイント2007)、プロセッ
サ2とプロセッサ3の共有データブロックの内容を更新
する。
第7図は、第6図において、プロセッサ1が最初の纏ま
った書換え(ポイント3000)を行っている途中に、
プロセッサ2が対応する共有データブロックを参照しよ
うとした場合の例である。
った書換え(ポイント3000)を行っている途中に、
プロセッサ2が対応する共有データブロックを参照しよ
うとした場合の例である。
第6図の場合と同様に、プロセッサ1による第一の書換
え後、プロセッサ2とプロセッサ3の共有データブロッ
クは無効化され、そして、同時にプロセッサ1のタイマ
31は、そのデータブロックに対する書換え後の経過時
間を測定し始める(ポインl−3001)。その後、プ
ロセッサ2の共有データブロックの参照により、タイマ
31は、そのデータブロックに対する測定を止める(ポ
イント3002)。そして、そのプロセッサ1のその書
き換えられたデータブロックを、プロセッサ2は自共有
データブロックに読み込み更新し、そして、その更新し
たデータブロックを参照する。その後しばらくすると、
プロセッサ1の第二の書換えが行われ、プロセッサ2の
共有データブロックは再び無効化され、同時にプロセッ
サ1のタイマ31は、そのデータブロックに対する書換
え後の経過時間を再び測定し始める(ポイント3003
)。
え後、プロセッサ2とプロセッサ3の共有データブロッ
クは無効化され、そして、同時にプロセッサ1のタイマ
31は、そのデータブロックに対する書換え後の経過時
間を測定し始める(ポインl−3001)。その後、プ
ロセッサ2の共有データブロックの参照により、タイマ
31は、そのデータブロックに対する測定を止める(ポ
イント3002)。そして、そのプロセッサ1のその書
き換えられたデータブロックを、プロセッサ2は自共有
データブロックに読み込み更新し、そして、その更新し
たデータブロックを参照する。その後しばらくすると、
プロセッサ1の第二の書換えが行われ、プロセッサ2の
共有データブロックは再び無効化され、同時にプロセッ
サ1のタイマ31は、そのデータブロックに対する書換
え後の経過時間を再び測定し始める(ポイント3003
)。
その後の状況は、各プロセッサ1,2.3とも第6図と
同様である。
同様である。
以上、本実施例のシステムでは、特別なシステムアドレ
スと各プロセッサ1,2.3相互の割り込み信号6によ
り、共有データブロックの更新を実現する。また、共有
データブロックの共有メモリ4上のアドレスにより、更
新フラグ71,72゜73の状態値を決定した。これは
、処理される同一目的のデータが、共有メモリ4の決ま
ったアドレス領域に格納されている場合の例である。こ
の場合、本発明の共有データブロックをブロードキャス
トによって一度に更新する方法を適用するか否かを、各
プロセッサ1,2.3が処理するタスクに適用すること
ができる。(更新フラグ71゜72.73が更新を示す
アドレス領域に、本発明の方法に適したタスク部分を格
納する。)また、各データブロック単位に、各データブ
ロックの内容(テキスト、ローカル・データ、共有デー
タの占める割合)に応じて共有メモリ4上の格納領域を
変えることができれば、より適切な共有メモリ4の一貫
性制御が行える。
スと各プロセッサ1,2.3相互の割り込み信号6によ
り、共有データブロックの更新を実現する。また、共有
データブロックの共有メモリ4上のアドレスにより、更
新フラグ71,72゜73の状態値を決定した。これは
、処理される同一目的のデータが、共有メモリ4の決ま
ったアドレス領域に格納されている場合の例である。こ
の場合、本発明の共有データブロックをブロードキャス
トによって一度に更新する方法を適用するか否かを、各
プロセッサ1,2.3が処理するタスクに適用すること
ができる。(更新フラグ71゜72.73が更新を示す
アドレス領域に、本発明の方法に適したタスク部分を格
納する。)また、各データブロック単位に、各データブ
ロックの内容(テキスト、ローカル・データ、共有デー
タの占める割合)に応じて共有メモリ4上の格納領域を
変えることができれば、より適切な共有メモリ4の一貫
性制御が行える。
また、各プロセッサ1,2.3が各タイマ31゜32.
33の内部レジスタ700の規定値を変えられるように
すると、各プロセッサ1,2.3の処理状態に適合した
タイミングで共有データブロックの更新を行うことがで
きる。
33の内部レジスタ700の規定値を変えられるように
すると、各プロセッサ1,2.3の処理状態に適合した
タイミングで共有データブロックの更新を行うことがで
きる。
その他、第7図のプロセッサ1の書換が集中して行われ
ている途中に(ステップ3000)他プロセッサ2でそ
の共有データブロックに対する参照が行われたとき(ス
テップ3002)、プロセッサ1のタイマ31を停止さ
せる理由は、3台の内2台のプロセッサ1,2のすでに
更新された共有データブロックが存在することになり、
ブロードキャストによって一度に更新する効果が薄れる
からである。4台以上からなるマルチプロセッサシステ
ムにおいては、以上でタイマ31,32゜33が停止し
ないように各カウンタ600,601゜・・、663の
カウントを行う条件(条件判定回路151.152,1
53)を変える必要がある。
ている途中に(ステップ3000)他プロセッサ2でそ
の共有データブロックに対する参照が行われたとき(ス
テップ3002)、プロセッサ1のタイマ31を停止さ
せる理由は、3台の内2台のプロセッサ1,2のすでに
更新された共有データブロックが存在することになり、
ブロードキャストによって一度に更新する効果が薄れる
からである。4台以上からなるマルチプロセッサシステ
ムにおいては、以上でタイマ31,32゜33が停止し
ないように各カウンタ600,601゜・・、663の
カウントを行う条件(条件判定回路151.152,1
53)を変える必要がある。
また、以上タイマ31,32.33のクロック信号30
02条外信号400,401.−.463゜初期化信号
500,501.・・・、563を変えることにより、
別のタイミングでデータブロックの更新を行うことがで
きる。例えば、クロツク信号300の代わりに他のイベ
ント信号をカウントして更新を行うようなこともできる
。
02条外信号400,401.−.463゜初期化信号
500,501.・・・、563を変えることにより、
別のタイミングでデータブロックの更新を行うことがで
きる。例えば、クロツク信号300の代わりに他のイベ
ント信号をカウントして更新を行うようなこともできる
。
本発明は、マルチプロセッサシステムにおいては、各プ
ロセッサが共有するデータブロックを一時期に纏めて書
換えた後、その纏めて書換えたデータブロックをその他
全てのプロセッサの対応する共有データブロックに書き
込み、それら共有データブロックを更新する。そのため
、書換えられる確率が低く (書換えが行われる間隔が
長く)また−度に纏めて書換えが行われるというような
性質を持つデータブロックおよび、各プロセッサがその
ような共有データブロックに対するアクセス方法を採る
マルチプロセッサシステムにおいて有利である。それに
加えて本発明は、複数プロセッサのデータブロックを更
新するのに要する時間と、1プロセッサのデータブロッ
クを更新するのに要する時間が殆ど等しくなることを前
提としている。
ロセッサが共有するデータブロックを一時期に纏めて書
換えた後、その纏めて書換えたデータブロックをその他
全てのプロセッサの対応する共有データブロックに書き
込み、それら共有データブロックを更新する。そのため
、書換えられる確率が低く (書換えが行われる間隔が
長く)また−度に纏めて書換えが行われるというような
性質を持つデータブロックおよび、各プロセッサがその
ような共有データブロックに対するアクセス方法を採る
マルチプロセッサシステムにおいて有利である。それに
加えて本発明は、複数プロセッサのデータブロックを更
新するのに要する時間と、1プロセッサのデータブロッ
クを更新するのに要する時間が殆ど等しくなることを前
提としている。
それにより、多くのプロセッサによって共有される確率
の高いデータブロックに対しでや、各プロセッサが共有
メモリの各データブロックを共有する確率が高いシステ
ムにおいて有利である。
の高いデータブロックに対しでや、各プロセッサが共有
メモリの各データブロックを共有する確率が高いシステ
ムにおいて有利である。
以上の有利な条件で、各プロセッサの要求時に1データ
ブロツクずつ更新するより、複数データブロックを一度
に更新する本発明の方が、各プロセッサの処理のオーバ
ヘッドおよび通信路の競合が少なくなる。また、あるプ
ロセッサがある共有データブロックを書換えても、その
後一定時間経つと、その他全てのプロセッサの対応する
共有データブロックは一度に更新される。このことから
、各プロセッサの共有データブロックの内容が最新のも
のである確率が高くなり、そして、すぐに(通信路を用
いずに)アクセスできる確率が高くなる。本発明の方法
を以上の条件にあった共有メモリのデータ更新に用いる
こ゛とにより、さらにマルチプロセッサシステムの処理
を向上させることができる。
ブロツクずつ更新するより、複数データブロックを一度
に更新する本発明の方が、各プロセッサの処理のオーバ
ヘッドおよび通信路の競合が少なくなる。また、あるプ
ロセッサがある共有データブロックを書換えても、その
後一定時間経つと、その他全てのプロセッサの対応する
共有データブロックは一度に更新される。このことから
、各プロセッサの共有データブロックの内容が最新のも
のである確率が高くなり、そして、すぐに(通信路を用
いずに)アクセスできる確率が高くなる。本発明の方法
を以上の条件にあった共有メモリのデータ更新に用いる
こ゛とにより、さらにマルチプロセッサシステムの処理
を向上させることができる。
第1図は、本発明の実施例の3台のプロセッサによるマ
ルチプロセッサシステムのブロック図である。第2図は
、第1図の実施例のシステムにおける各プロセッサの共
有データブロック参照時の処理手順図である。第3図は
、第1図の実施例のシステムにおける各プロセッサの共
有データブロック書換時の処理手順図である。第4図は
、第1図の実施例のシステムにおける各プロセッサ内の
タイマのブロック図である。第5図は、第4図のタイマ
内部の各カウンタのクロック信号が入力された時の動作
フロー図である。第6図と第7図は。 第1図の実施例のシステムおける3台のプロセッサが共
有するあるデータブロックに対するアクセスと、各プロ
セッサのその対応する共有データブロックの状態を表し
た説明図である。 1.2.3・・・プロセッサ、4・・・共有メモリ、5
バス、6・・・CPU外部割り込み信号、11,12゜
13・・・cpu、21.22.23・・・メモリ、3
1゜32.33・・・タイマ、41,42.43・・・
有効フラグ、51,52.53・・・書換フラグ、61
゜62.63・・・共有フラグ、71,72.73・・
・更新フラグ、81,82.83・・・cpu割り込み
信号(データ無効割り込み要求)、91,92゜93・
・・CPU割り込み信号(更新割り込み要求)、151
.152,153・条件判定回路、300・・・タロツ
ク信号、400,401. ・・、463・カウンタ
条件信号、500,501.・・・、563・・・カウ
ンタ・リセット信号、600,601゜663・・・カ
ウンタ、700・・・タイマ・レジスタ、800.80
1.・・・、863・・・更新要求信号、第 S 図
ルチプロセッサシステムのブロック図である。第2図は
、第1図の実施例のシステムにおける各プロセッサの共
有データブロック参照時の処理手順図である。第3図は
、第1図の実施例のシステムにおける各プロセッサの共
有データブロック書換時の処理手順図である。第4図は
、第1図の実施例のシステムにおける各プロセッサ内の
タイマのブロック図である。第5図は、第4図のタイマ
内部の各カウンタのクロック信号が入力された時の動作
フロー図である。第6図と第7図は。 第1図の実施例のシステムおける3台のプロセッサが共
有するあるデータブロックに対するアクセスと、各プロ
セッサのその対応する共有データブロックの状態を表し
た説明図である。 1.2.3・・・プロセッサ、4・・・共有メモリ、5
バス、6・・・CPU外部割り込み信号、11,12゜
13・・・cpu、21.22.23・・・メモリ、3
1゜32.33・・・タイマ、41,42.43・・・
有効フラグ、51,52.53・・・書換フラグ、61
゜62.63・・・共有フラグ、71,72.73・・
・更新フラグ、81,82.83・・・cpu割り込み
信号(データ無効割り込み要求)、91,92゜93・
・・CPU割り込み信号(更新割り込み要求)、151
.152,153・条件判定回路、300・・・タロツ
ク信号、400,401. ・・、463・カウンタ
条件信号、500,501.・・・、563・・・カウ
ンタ・リセット信号、600,601゜663・・・カ
ウンタ、700・・・タイマ・レジスタ、800.80
1.・・・、863・・・更新要求信号、第 S 図
Claims (1)
- 【特許請求の範囲】 1、複数のプロセッサと共有メモリが同一通信路上に接
続され、前記各プロセッサが個別のメモリを持ち、前記
各プロセッサが前記共有メモリの一部データを該個別の
メモリにそれぞれコピーし、前記各プロセッサが前記個
別のメモリにコピーした該データを並行してアクセスし
て処理を行うマルチプロセッサシステムにおいて、前記
各プロセッサにタイマを設け、前記共有メモリから前記
個別のメモリにコピーした前記データを前記プロセッサ
が書き換えることにより、該プロセッサの前記タイマが
始動し、その後該プロセッサが該データに対する書き換
えを該タイマの規定する時間内に行う度に、該タイマの
測定する時間を初期値に戻し、そして、該プロセッサが
該データに対する書き換えを前記タイマの規定する時間
以上経過しても行わなかったとき、該タイマが停止する
と同時に、該プロセッサが書換えた前記データを、前記
データに対応する複製を有する他のプロセッサにブロー
ドキャストすることによって、前記他プロセッサ内の共
有データを更新することを特徴とする共有メモリ制御方
法。 2、複数のプロセッサと共有メモリが同一通信路上に接
続され、前記各プロセッサが個別のメモリを有し、前記
各プロセッサが前記共有メモリの一部データを該個別の
メモリにそれぞれコピーし、前記各プロセッサが前記各
個別のレモリにコピーした該データを並行してアクセス
して処理を行うマルチプロセッサシステムにおいて、前
記各プロセッサにタイマを設け、前記共有メモリから前
記個別のメモリにコピーした前記データを前記プロセッ
サが書き換えることにより、該プロセッサの前記タイマ
が始動し、その後、該タイマの規定する時間になると、
該タイマが停止すると同時に、該プロセッサが書換えた
前記データを、前記データに対応する複製を有する他の
プロセッサにブロードキャストすることによって、前記
他プロセッサ内に共有データを更新することを特徴とす
る共有メモリ制御方法。 3、複数のプロセッサと共有メモリが同一通信路上に接
続され、前記各プロセッサが個別のメモリを有し、前記
各プロセッサが前記共有メモリの一部データを該個別の
メモリにそれぞれコピーし、前記各プロセッサが前記各
個別のメモリにコピーした該データを並行してアクセス
して処理を行うマルチプロセッサシステムにおいて、前
記各プロセッサにカウンタを設け、前記プロセッサの該
カウンタが、前記共有メモリから前記個別のメモリにコ
ピーした前記データを該プロセッサが書き換える回数を
カウントし、該書き換えた回数が前記カウンタの規定す
る回数以上に達したとき、該プロセッサが書換えた前記
データを、前記データに対応する複製を有する他のプロ
セッサにブロードキャストすることによって、前記他プ
ロセッサ内の共有データを更新することを特徴とする共
有メモリ制御方法。 4、複数のプロセッサが同一通信路上に接続され、前記
各プロセッサが個別のメモリを有し、前記プロセッサが
該個別のメモリに前記別プロセッサの個別メモリの一部
データをコピーし、前記プロセッサが個別のメモリにコ
ピーした該データをアクセスして処理を行うマルチプロ
セッサシステムにおいて、前記各プロセッサにタイマあ
るいはカウンタを設け、前記プロセッサがコピーした該
データを書き換えた後、前記タイマまたはカウンタの規
定する条件を満たしたとき、前記プロセッサが書換えた
該データを、該データに対応する複製を有する他のプロ
セッサにブロードキャストすることによって、前記他プ
ロセッサ内の共有データを更新することを特徴とする共
有メモリ制御方法。 5、前記各プロセッサの前記タイマにレジスタを設け、
該レジスタの保持する値が、前記タイマの規定する時間
となり、該レジスタ値を前記各プロセッサが随時変更で
きることを特徴とする特許請求の範囲第1項あるいは第
2項あるいは第4項のマルチプロセッサシステムの共有
メモリ制御方法。 6、前記各プロセッサの前記カウンタにレジスタを設け
、該レジスタに保持する値が、前記カウンタの規定する
書き換え回数となり、前記プロセッサの個別のメモリに
保持するデータ別に前記カウンタと前記レジスタを用意
し、前記データ別に前記カウンタの規定する書き換え回
数を前記プロセッサが随時設定できることを特徴とする
特許請求の範囲第3項あるいは第4項のマルチプロセッ
サシステムの共有メモリ制御方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2110003A JPH0410051A (ja) | 1990-04-27 | 1990-04-27 | マルチプロセッサシステムの共有メモリ制御方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2110003A JPH0410051A (ja) | 1990-04-27 | 1990-04-27 | マルチプロセッサシステムの共有メモリ制御方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0410051A true JPH0410051A (ja) | 1992-01-14 |
Family
ID=14524637
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2110003A Pending JPH0410051A (ja) | 1990-04-27 | 1990-04-27 | マルチプロセッサシステムの共有メモリ制御方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0410051A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6847785B2 (en) | 2002-09-20 | 2005-01-25 | Canon Kabushiki Kaisha | Camera system, camera and lens apparatus |
| JP2008521146A (ja) * | 2004-11-19 | 2008-06-19 | インテル コーポレイション | 限定された誤りによる遅延した更新によるソフトウェアキャッシュ処理 |
-
1990
- 1990-04-27 JP JP2110003A patent/JPH0410051A/ja active Pending
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6847785B2 (en) | 2002-09-20 | 2005-01-25 | Canon Kabushiki Kaisha | Camera system, camera and lens apparatus |
| US6892028B2 (en) | 2002-09-20 | 2005-05-10 | Canon Kabushiki Kaisha | Camera system, camera and lens apparatus |
| JP2008521146A (ja) * | 2004-11-19 | 2008-06-19 | インテル コーポレイション | 限定された誤りによる遅延した更新によるソフトウェアキャッシュ処理 |
| JP2012150830A (ja) * | 2004-11-19 | 2012-08-09 | Intel Corp | 限定された誤りによる遅延した更新によるソフトウェアキャッシュ処理 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8024489B2 (en) | System for communicating command parameters between a processor and a memory flow controller | |
| US7930457B2 (en) | Channel mechanisms for communicating with a processor event facility | |
| US5761731A (en) | Method and apparatus for performing atomic transactions in a shared memory multi processor system | |
| US5893153A (en) | Method and apparatus for preventing a race condition and maintaining cache coherency in a processor with integrated cache memory and input/output control | |
| EP0743601A2 (en) | A system and method for improving cache performance in a multiprocessing system | |
| JPH06243035A (ja) | コンピュータ・システムのためのクラスタ・アーキテクチャにおける一般化共用記憶 | |
| US20080288757A1 (en) | Communicating Instructions and Data Between a Processor and External Devices | |
| JPH09223118A (ja) | スヌープキャッシュメモリ制御システム | |
| US20020078305A1 (en) | Method and apparatus for invalidating a cache line without data return in a multi-node architecture | |
| JPH04306748A (ja) | 情報処理装置 | |
| US6862646B2 (en) | Method and apparatus for eliminating the software generated ready-signal to hardware devices that are not part of the memory coherency domain | |
| JP2829115B2 (ja) | ファイル共用方法 | |
| JPH0410051A (ja) | マルチプロセッサシステムの共有メモリ制御方法 | |
| JPH06309231A (ja) | キャッシュメモリ制御方法 | |
| JPH06110785A (ja) | キャッシュメモリ同期方式 | |
| JPH0744459A (ja) | キャッシュ制御方法およびキャッシュ制御装置 | |
| JP3077807B2 (ja) | マイクロコンピュータシステム | |
| JPH04195576A (ja) | キャッシュメモリ方式 | |
| JP3187446B2 (ja) | キャッシュメモリ制御装置 | |
| JP2679440B2 (ja) | 情報処理装置 | |
| JPS6215644A (ja) | キヤツシユメモリ制御回路 | |
| JP3437224B2 (ja) | 遅延無効化方式 | |
| JPH0415496B2 (ja) | ||
| JPH035850A (ja) | キャッシュ無効化のためのバス制御方式 | |
| JPS638849A (ja) | キヤツシユメモリ制御方式 |