JPH06208547A - 通信制御装置 - Google Patents

通信制御装置

Info

Publication number
JPH06208547A
JPH06208547A JP5018056A JP1805693A JPH06208547A JP H06208547 A JPH06208547 A JP H06208547A JP 5018056 A JP5018056 A JP 5018056A JP 1805693 A JP1805693 A JP 1805693A JP H06208547 A JPH06208547 A JP H06208547A
Authority
JP
Japan
Prior art keywords
data
entry
flag
smc
written
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
JP5018056A
Other languages
English (en)
Inventor
Masahito Horiguchi
雅人 堀口
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP5018056A priority Critical patent/JPH06208547A/ja
Publication of JPH06208547A publication Critical patent/JPH06208547A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【目的】 装置の処理速度を向上させる。 【構成】 PU1が、共有メモリ11にアクセスする場
合、PU1において、SMC1aのエントリXに記憶値
が1から0に変更される。すると、この0が、SMC1
aから、他のSMC2a乃至4aにブロードキャストさ
れ、SMC2a乃至4aのエントリXに0が書き込まれ
る。これにより、PU2乃至PU4の共有メモリ11へ
のアクセスが拒否されるようになる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数のプロセッサを並
列動作させる場合に用いて好適な通信制御装置に関す
る。
【0002】
【従来の技術】近年、例えばワークステーションなどで
は、小規模のバス結合型マルチプロセッサを用いられる
ようになってきた。
【0003】バス結合型マルチプロセッサにおいては、
例えば10乃至20数個の複数のプロセッサが並列動作
することができるように構成され、さらにこの複数のプ
ロセッサは、共有バスを介して接続されているメインメ
モリを共有するようになされている。
【0004】このようなバス結合型マルチプロセッサで
は、複数のプロセッサが共有バスを介してメインメモリ
へアクセスするので、メインメモリが接続された共有バ
スへのアクセスの競合や遅延を防止するために、複数の
プロセッサそれぞれにキャッシュメモリが一般的に設け
られるようになされている。
【0005】このように、複数のプロセッサそれぞれに
キャッシュメモリを設けた場合、各プロセッサのキャッ
シュメモリのコンシステンシ(キャッシュメモリに記憶
されたデータの整合性)を保つ必要がある。そこで、共
有バスのトランザクションを監視し、データの整合性を
保つ、例えばスヌープキャッシュなどの技術が提案され
るとともに、スヌープキャッシュを制御するためのキャ
ッシュコヒーレンシプロトコルが提案されている。
【0006】
【発明が解決しようとする課題】ところで、キャッシュ
メモリを制御するスヌープキャッシュ(キャッシュコヒ
ーレンシプロトコル)などは、バス結合型マルチプロセ
ッサの複数のプロセッサ間のインタラクションを考慮し
て設計されたものではなかった。
【0007】即ち、プロセッサ間のインタラクションに
は、いわば受動的なものと能動的なものがある。受動的
なインタラクションとは、プロセッサ間でデータやコー
ドを共有することであり、この受動的なインタラクショ
ンにおいては、データやコードが、比較的長い時間、各
プロセッサでローカルに使用されるので、この場合、プ
ロセッサ間の同期を必要とせず、各プロセッサに設けら
れたキャッシュメモリが有効に動作することになる。
【0008】一方、能動的なインタラクションとは、例
えば共有メモリなどの共有資源への、各プロセッサのア
クセスを保証するために、プロセッサ間の同期をとっ
て、データやコードを転送することであり、この能動的
なインタラクションにおいては、データやコードが、各
プロセッサでローカルに使用されるわけではないので、
この場合、キャッシュメモリが有効に動作しないことに
なる。
【0009】マルチプロセッサでは、以上のような受動
的なインタラクションと能動的なインタラクションが生
じるが、能動的なインタラクション、即ちいわゆる同期
操作においては、その度にキャッシュメモリに記憶され
たデータの整合性を保持する処理を行う必要があるの
で、この処理のオーバヘッドが装置に影響を与え、装置
の性能が低下する課題があった。
【0010】本発明は、このような状況に鑑みてなされ
たものであり、装置の処理速度を向上させるものであ
る。
【0011】
【課題を解決するための手段】請求項1に記載の通信制
御装置は、例えばプロセッサ(PU)1,2,3,・・
・などの複数のプロセッサ間の通信を制御する通信制御
装置において、PU1,2,3,・・・それぞれに接続
された、データを記憶する複数の記憶手段としてのSM
C(Synchronization Mechanism with multiprocessor
Cache)1a,2a,3a,・・・を備え、SMC1
a,2a,3a,・・・は、それぞれ同一のアドレス空
間を有するとともに、それぞれ同一のデータを記憶し、
SMC1a,2a,3a,・・・のいずれかに記憶され
たデータが変更された場合には、変更されたデータが即
座にブロードキャストされることを特徴とする。
【0012】請求項2に記載の通信制御装置は、SMC
1a,2a,3a,・・・が、データが書き込まれた場
合、PU1,2,3,・・・に割り込みをかけることを
特徴とする。
【0013】請求項3に記載の通信制御装置は、SMC
1a,2a,3a,・・・が、SMC1a,2a,3
a,・・・に記憶されているデータに基づいて、PU
1,2,3,・・・に割り込みをかけることを特徴とす
る。
【0014】請求項4に記載の通信制御装置は、割り込
みを許可する許可手段としてのライトインタラプトフラ
グまたはゼロインタラプトフラグをさらに備えることを
特徴とする。
【0015】請求項5に記載の通信制御装置は、SMC
1a,2a,3a,・・・が、マルチプルリードアウト
メモリにより構成されていることを特徴とする。
【0016】
【作用】請求項1に記載の通信制御装置においては、S
MC1a,2a,3a,・・・には、それぞれ同一のデ
ータが記憶され、SMC1a,2a,3a,・・・のい
ずれかに記憶されたデータが変更された場合には、変更
されたデータが即座にブロードキャストされる。従っ
て、SMC1a,2a,3a,・・・に記憶されたデー
タの整合性を保持しながら、例えばセマフォを用いた、
PU1,2,3,・・・の同期操作を効率的に処理する
ことができる。
【0017】請求項2に記載の通信制御装置において
は、SMC1a,2a,3a,・・・が、データが書き
込まれた場合、PU1,2,3,・・・に割り込みをか
けるので、SMC1a,2a,3a,・・・にデータが
書き込まれたことをPU1,2,3,・・・に知らせる
ことができる。
【0018】請求項3に記載の通信制御装置において
は、SMC1a,2a,3a,・・・が、SMC1a,
2a,3a,・・・に記憶されているデータに基づい
て、PU1,2,3,・・・に割り込みをかけるので、
種々の割り込み要因により、PU1,2,3,・・・に
割り込みをかけるようにすることができる。
【0019】請求項4に記載の通信制御装置において
は、ライトインタラプトフラグまたはゼロインタラプト
フラグに基づいて、割り込みが許可される。従って、装
置の柔軟性を向上させることができる。
【0020】請求項5に記載の通信制御装置において
は、SMC1a,2a,3a,・・・が、マルチプルリ
ードアウトメモリにより構成されているので、装置を簡
単に構成することができる。
【0021】
【実施例】図1は、本発明の通信制御装置を適用したコ
ンピュータシステムの一実施例の構成を示すブロック図
である。このコンピュータシステムは、バス(アドレス
バス、データバス)を介して並列に接続された、キャッ
シュメモリ(図示せず)を内蔵する複数のプロセッサ
(PU)1,2,3,・・・、各PU1,2,3,・・
・にそれぞれ接続されたSMC1a,2a,3a,・・
・、および各PU1,2,3,・・・で共有されるデー
タやコードを記憶する共有メモリ11から構成されてい
る。
【0022】ここで、SMCとは、Synchronization Me
chanism with multiprocessor Cacheの略で、例えばマ
ルチプルリードアウトメモリによって構成された、いわ
ば装置の同期のためのメモリである。
【0023】即ち、SMCは、1つのアドレスに1つの
エントリが対応するように構成されており、各エントリ
は、例えば図2に示すように、32ビットのデータエリ
アと、5ビットのフラグエリアとから構成されている。
【0024】5ビットのフラグエリアは、1ビットのエ
ントリフラグ(Eフラグ)、ライトインタラプトフラグ
(Wフラグ)、ゼロインタラプトフラグ(Zフラグ)、
ライトロックイネーブルフラグ(Lフラグ)、およびラ
イトロックフラグ(Uフラグ)から構成される。
【0025】Eフラグ(エントリフラグ)は、そのエン
トリを有するSMCに接続されたPUが、そのエントリ
を使用するか否かを示すフラグで、通常は0および1の
うちの、例えば1がセットされている。Eフラグに0お
よび1のうちの、例えば0がセットされた場合、そのエ
ントリ(正確には、エントリのデータエリア)に対し
て、データの書き込みは行われず、さらにそのエントリ
(正確には、エントリのデータエリア)に記憶されたデ
ータは保証されないようになされている。また、Eフラ
グが0であるエントリに対して、そのエントリを有する
SMCに接続されたPUがアクセスしても、他のPUま
たは他のSMCに影響を及ぼすことがないようになされ
ている。
【0026】Wフラグ(ライトインタラプトフラグ)
は、エントリにデータが書き込まれた場合に割り込みを
発生させるか否かを示すフラグで、Wフラグに0および
1のうちの、例えば1がセットされた場合、そのエント
リにデータが書き込まれると、Wフラグが1であるエン
トリを有するSMCに接続されたPUに割り込み(以
下、書き込み割り込みと呼ぶ)がかかるようになされて
いる。
【0027】なお、Wフラグが1であっても、後述する
Fetch&Dec(X)コマンドによるデータの書き込みに対して
は、書き込み割り込みが発生されないようになされてい
る。また、書き込み割り込みが発生された場合の割り込
み要因および割り込みアドレスは、PUの内蔵するキュ
ー(図示せず)に記憶されるようになされている。
【0028】Zフラグ(ゼロインタラプトフラグ)は、
後述するFetch&Dec(X)コマンドにより、エントリに書き
込まれたデータが0である場合に割り込みを発生させる
か否かを示すフラグで、Zフラグに0および1のうち
の、例えば1がセットされた場合、そのエントリに、後
述するFetch&Dec(X)コマンドによりデータとしての0が
書き込まれると、Zフラグが1であるエントリを有する
SMCに接続されたPUに割り込み(以下、ゼロ割り込
みと呼ぶ)がかかるようになされている。
【0029】なお、ゼロ割り込みが発生された場合の割
り込み要因および割り込みアドレスは、PUの内蔵する
キューに記憶されるようになされている。
【0030】Lフラグ(ライトロックイネーブルフラ
グ)は、エントリへの、データの書き込みの許可/禁止
を示すフラグで、Lフラグに0および1のうちの、例え
ば1がセットされた場合、そのエントリに一度データが
書き込まれると、後述するUフラグがクリアされるまで
(Uフラグが0および1のうちの、例えば0にされるま
で)、そのエントリに対する、次のデータの書き込みが
禁止される。
【0031】Uフラグ(ライトロックフラグ)は、Lフ
ラグと同様に、エントリへの、データの書き込みの許可
/禁止を示すフラグで、エントリへの、データの書き込
みが行われると、Lフラグの値に関わらず、0および1
のうちの、例えば1がセットされるようになされてい
る。Uフラグに1がセットされた場合、Lフラグに1が
セットされていると、そのエントリに対するデータの書
き込みが禁止される。
【0032】なお、Uフラグが1である場合、そのエン
トリを有するSMCに接続されたPUによって、Uフラ
グがクリアされると(Uフラグに0がセットされる
と)、そのPUが行うエントリへのデータの書き込みは
許可されるようになされている。
【0033】但し、これは、Lフラグが1でない場合
(Lフラグが0である場合)のみ有効となる。Lフラグ
が1である場合には、装置のすべてのSMCにおけるU
フラグがクリアされたときのみ、Uフラグがクリアされ
たエントリに対する新たなデータの書き込みが許可され
る。
【0034】次に、SMCのエントリの32ビットのデ
ータエリアに対しては、例えば次のコマンドによる操作
を行うことができるようになされている。
【0035】Write(X,data)コマンド:エントリXにデ
ータdataを書き込むコマンド。これによりデータが書き
込まれたエントリXには、Fetch&Dec(X)コマンドにより
データの値が0にされるまで、Fetch&Dec(X)コマンドを
除くコマンドでデータの上書きをすることが禁止され
る。
【0036】Fetch&Dec(X)コマンド:エントリXからデ
ータを読み出すとともに、エントリXに、読み出したデ
ータを1だけデクリメントした値を書き込むコマンド。
上述したように、エントリXのZフラグが1である場
合、Fetch&Dec(X)コマンドによりエントリXから読み出
されたデータが1であるときには、即ちFetch&Dec(X)コ
マンドによりエントリXに新たに書き込まれたデータが
0であるときには、Zフラグが1であるエントリXを有
するSMCに接続されたPUに、上述したゼロ割り込み
がかけられる。なお、これにより1だけデクリメントさ
れるのは、読み出したデータの、例えば下位8ビットの
部分だけであり、従ってデータの下位8ビットより上位
のビットが0でない場合、このFetch&Dec(X)コマンドで
は、データを0にすることができない。但し、Fetch&De
c(X)コマンドよって、データの下位8ビットが0になれ
ば、ゼロ割り込みは発生される。また、エントリXに記
憶されたデータが0である場合には、Fetch&Dec(X)コマ
ンドを実行することができない。
【0037】SMCのエントリの32ビットのデータエ
リアに対しては、上述のコマンドによる操作の他、32
ビットのデータ(1整数長のデータ)の読み出しを行う
ことができるようになされている。
【0038】なお、図1に示すSMC1a,2a,3
a,・・・は、共有メモリ11の有するアドレス空間の
うちの一部または全部のアドレス空間を共有するように
なされている。即ち、各SMC1a,2a,3a,・・
・は、同一のアドレスを有するようになされている。
【0039】さらに、Write(X,data)コマンドまたはFet
ch&Dec(X)コマンドにより、SMC1a,2a,3a,
・・・のうちのいずれかのエントリXにデータが書き込
まれると、そのエントリXと同一のアドレスを有する、
他のSMCのエントリXに、そのデータがバスを介して
ブロードキャストされ、コピーされる(書き込まれる)
ようになされている。
【0040】即ち、各SMCにおいては、図3に示すよ
うに、アドレスリファレンステーブル(図1において
は、図示せず)を参照することにより、エントリを参照
することができるようになされており、任意のSMCに
おいて、例えばエントリXにデータが書き込まれると、
データがデータバス上にブロードキャストされるととも
に、エントリXのアドレスが、アドレスバス上に出力さ
れる。
【0041】一方、他のSMCにおいては、図3に示す
ように、まずアドレスリファレンステーブルが参照さ
れ、アドレスバス上のアドレスと同一のアドレスが存在
するか否かが確認される。そして、そのアドレスが存在
することが確認された場合、そのアドレスを有するエン
トリXのフラグエリア(図2)の状態が参照され、デー
タの書き込みを行うことができる状態になっていると、
そのエントリXのデータエリアに、ブロードキャストさ
れたデータが書き込まれる。
【0042】これにより、SMC1a,1b,1c,・
・・(図1)の各エントリXには、同一のデータが記憶
されることになるので、PU1,2,3,・・・が、同
一アドレスを有するエントリXに書き込まれたデータを
読み出す場合に、各PU1,2,3,・・・が競合する
ことがないことになる。
【0043】但し、この場合、Eフラグが1でない(E
フラグに0がセットされている)SMCのエントリXに
は、データはコピーされない(書き込まれない)。さら
に、この場合、上述したように、Eフラグが1でない
(Eフラグに0がセットされている)SMCのエントリ
Xに記憶されているデータは不定となる(データが保証
されない)。
【0044】次に、その動作について説明する。図1の
コンピュータシステムが、例えば図4に示すように、4
つのPU1,2,3、および4と、各PU1乃至4にそ
れぞれ接続されたSMC1a乃至4a、並びに共有メモ
リ11から構成されている場合、PU1乃至4のいずれ
か1つのみが、共通領域としての共有メモリ11にアク
セスすることが許可されているとき(同時に、複数のP
Uが共有メモリ11にアクセスすることが許可されてい
ないとき)には、いわゆるセマフォを用いて次のように
相互排除が行われる。
【0045】即ち、まずセマフォのためのP(X)およ
びQ(X)コマンドを P(X)=while(Fetch&Dec(X)!=1); V(X)=Write(X,1); と定義する。
【0046】従って、P(X)コマンドを実行すること
により、Fetch&Dec(X)コマンドによりエントリXから読
み出されるデータが1になるまで(Fetch&Dec(X)コマン
ドによりエントリXに書き込まれるデータが0になるま
で)、Fetch&Dec(X)コマンドが繰り返され、V(X)コ
マンドを実行することにより、エントリXに1が書き込
まれることになる。
【0047】なお、各PU1乃至4においては、P
(X)コマンドが、共有メモリ11の、いわゆるきわど
い領域(critical region)にアクセスする場合に実行
され、V(X)コマンドが、きわどい領域へのアクセス
が終了した場合に実行されるようになされている。
【0048】そして、相互排除に参加するPU(実施例
においては、PU1乃至4すべてが相互排除に参加する
ものとする)において、初期化が行われる。
【0049】即ち、PU1乃至4において、各PU1乃
至4にそれぞれ接続されたSMC1a乃至4aの、セマ
フォに用いる、例えばエントリXのEフラグに1がセッ
トされ、エントリXが使用可能状態にされるとともに、
そのUフラグに0がセットされ、エントリXに対するデ
ータの書き込みが許可される。
【0050】さらに、SMC1a乃至4aそれぞれのエ
ントリX(エントリXのデータエリア)に1が書き込ま
れる(図4)。
【0051】その後、PU1乃至4のうちの、例えばP
U1が、共有メモリ11のきわどい領域にアクセスする
場合、PU1において、P(X)コマンドが実行され
る。
【0052】この場合、PU1に接続されたSMC1a
のエントリXには、1が記憶されているので、P(X)
コマンドにより、1が読み出されるとともに、エントリ
Xに0が書き込まれることになる。
【0053】SMC1aのエントリXに、P(X)コマ
ンド、即ちFetch&Dec(X)コマンドにより、0が書き込ま
れると、上述したように、書き込まれたデータとしての
0が、SMC1aから、他のSMC2a乃至4aにブロ
ードキャストされ、SMC2a乃至4aのエントリXに
0が書き込まれる(図5)。
【0054】従って、この場合、PU2乃至PU4が、
きわどい領域にアクセスするために、P(X)コマン
ド、即ちFetch&Dec(X)コマンドを実行しようとしても、
SMC2a乃至4aのエントリXには、0が記憶されて
いるので、上述したように、Fetch&Dec(X)コマンドを実
行することができない。
【0055】つまり、この場合、PU2乃至PU4の、
きわどい領域へのアクセスは拒否されることになる。
【0056】一方、P(X)コマンドを実行することが
できたPU1においては、共有メモリ11のきわどい領
域での作業が行われ(図6)、作業が終了すると、V
(X)コマンド、即ちWrite(x,1)が実行される。
【0057】すると、PU1に接続されたSMC1aの
エントリXに1が書き込まれ、さらにSMC1aのエン
トリXに書き込まれたデータとしての1が、SMC1a
から、他のSMC2a乃至4aにブロードキャストさ
れ、SMC2a乃至4aのエントリXに1が書き込まれ
る(図7)。
【0058】これにより、PU1乃至PU4のいずれか
が、再び上述したようにしてきわどい領域にアクセスす
ることが可能となる。
【0059】従来の、複数のプロセッサそれぞれにキャ
ッシュメモリを設けた装置においては、上述のセマフォ
を用いて相互排除を行う場合、P(X)およびQ(X)
コマンドにより変更されるデータを、複数のプロセッサ
の共有する共有メモリに書き込み、さらに各プロセッサ
のキャッシュメモリに書き込んでいたので、データが0
または1に変更されるたびに、複数のプロセッサが共有
する共有メモリ、および各キャッシュメモリの内容を更
新しなければならず、そのオーバヘッドが大きくなり、
処理速度が低下する問題があった。
【0060】しかしながら、本発明によれば、SMC1
a乃至4aに記憶されたデータが変更された場合には、
変更されたデータが即座にブロードキャストされるの
で、バスの占有時間が減少し、処理速度を向上させるこ
とができる。
【0061】次に、PU1乃至4のうちの複数(例え
ば、後述するように3つ)が共有メモリ11からデータ
を同時に読み出すことができるように装置が構成されて
いる場合においては、まず上述したときと同様に、エン
トリXに対する初期化が行われる(図8)。
【0062】そして、PU1乃至4のうちのマネージャ
プロセッサとしての、例えばPU1において、Write(X,
3)が実行され、共有メモリ11に同時にアクセスするこ
とのできるタスク数(プロセス数)としての、例えば3
がSMC1aのエントリXに書き込まれる。
【0063】すると、SMC1aのエントリXに書き込
まれたデータとしての3が、SMC1aから、他のSM
C2a乃至4aにブロードキャストされ、SMC2a乃
至4aのエントリXに3が書き込まれる(図9)。
【0064】その後、PU1乃至PU4のうちの、例え
ばPU2が共有メモリ11のきわどい領域へアクセスす
る場合、PU2において、Fetch&Dec(X)コマンドが実行
され、SMC2aのエントリXに記憶された3が1だけ
デクリメントされて2とされる。
【0065】すると、SMC2aのエントリXに新たに
書き込まれた2が、SMC2aから、他のSMC1a,
3a、および4aにブロードキャストされ、SMC1
a,3a、および4aのエントリXに2が書き込まれる
(図10)。
【0066】以上のように、Fetch&Dec(X)コマンドを実
行することができたので、PU2は、きわどい領域へア
クセスすることができるようになる(図11)。
【0067】さらに、PU1乃至PU4のうちの、例え
ばPU3が共有メモリ11のきわどい領域へアクセスす
る場合、PU3において、Fetch&Dec(X)コマンドが実行
され、SMC3aのエントリXに記憶された2が1だけ
デクリメントされて1とされる。
【0068】すると、SMC2aのエントリXに新たに
書き込まれた1が、SMC2aから、他のSMC1a,
3a、および4aにブロードキャストされ、SMC1
a,3a、および4aのエントリXに1が書き込まれる
(図12)。
【0069】以上のように、Fetch&Dec(X)コマンドを実
行することができたので、PU3は、PU2と同時に、
きわどい領域へアクセスすることができるようになる
(図13)。
【0070】以下、同様にして、PU1乃至4のうち
の、まだきわどい領域にアクセスしていないPU1およ
び4のうちのいずれかが、きわどい領域にアクセスする
と、SMC1a乃至4aのエントリXには0が書き込ま
れることになる。
【0071】従って、PU1乃至4のうちの3つがきわ
どい領域に同時にアクセスしている場合、それ以上のア
クセスは、上述したときと同様に、Fetch&Dec(X)コマン
ドを実行することができないので、拒否されることにな
る。
【0072】以上のようにして、PU1乃至4のうちの
複数が共有メモリ11からデータを同時に読み出すこと
ができるように装置が構成されている場合においても、
効率的な相互排除を実現することができる。
【0073】次に、PU1乃至4のうちの、例えばPU
1により処理されたデータDATAが、他の3つのPU2乃
至4で利用される場合の動作について説明する。
【0074】この場合、まず上述したときと同様にし
て、SMC1a乃至4aのエントリXおよびYに対する
初期化が行われる(図14)。
【0075】そして、データの受けてとしてのPU2乃
至4において、SMC2a乃至4aのエントリYのWフ
ラグに1がそれぞれセットされる。これにより、SMC
1a乃至4aのいずれかのエントリYにデータが書き込
まれた場合に書き込み割り込みが発生されるようにな
る。
【0076】一方、データの送り手としてのPU1にお
いて、SMC1aのエントリXのZフラグに1がセット
され、これによりSMC1aのエントリXに0が書き込
まれた場合にゼロ割り込みが発生されるようになる。
【0077】さらに、PU1において、SMC1aのエ
ントリXに、データの受け手としてのPU2乃至4の
数、即ち3が、Write(X,3)コマンドが実行されることに
より書き込まれるとともに、SMC1aのエントリY
に、PU2乃至4で利用されるデータDATAが、Write(Y,
DATA)コマンドが実行されることにより書き込まれる。
【0078】すると、SMC1aのエントリXに新たに
書き込まれた3が、SMC1aから、他のSMC2a乃
至4aにブロードキャストされ、SMC2a乃至4aの
エントリXに3が書き込まれるとともに、SMC1aの
エントリYに新たに書き込まれたデータDATAが、SMC
1aから、他のSMC2a乃至4aにブロードキャスト
され、SMC2a乃至4aのエントリYにデータDATAが
書き込まれる(図15)。
【0079】SMC2a乃至4aのエントリYにデータ
DATAが書き込まれると、SMC2a乃至4aのエントリ
YのWフラグには1がセットされているので、PU2乃
至4に書き込み割り込みがかかり、これによりPU2乃
至4に、データDATAがエントリYに書き込まれたことが
知らされる。
【0080】すると、PU2乃至4において、SMC2
a乃至4aのエントリYからデータDATAがそれぞれ読み
出される。
【0081】ここで、PU2乃至4のうちの、例えばP
U2においては、SMC2aのエントリYから、データ
DATAが読み出されるのと同時に、Fetch&Dec(X)コマンド
が実行され、SMC2aのエントリXに記憶された、デ
ータの受けての数としての3が1だけデクリメントされ
るようになされている。
【0082】これにより、SMC2aのエントリXに新
たに書き込まれた2が、SMC2aから、他のSMC1
a,3a、および4aにブロードキャストされ、SMC
1a,3a、および4aのエントリXに2が書き込まれ
ることになる(図16)。
【0083】PU3および4においても、PU2におけ
る場合と同様の処理が行われ、これによりSMC2a乃
至4aのエントリYからのデータDATAの読み出しが、P
U2乃至4すべてにおいて完了すると、SMC1a乃至
4aのエントリXには、0が書き込まれることになる。
【0084】すると、SMC1aのエントリXのZフラ
グに1がセットされているので、PU1に対しゼロ割り
込みがかかり、これにより、PU1において、PU2乃
至PU4へのデータDATAの転送が完了したことが認識さ
れることになる。
【0085】上述した場合においては、データの受け手
としてのPU2乃至4が、バスを介さずにデータDATAを
読み出すことができるようになるので、アクセスの競合
が生じることが防止される。
【0086】以上のように、本発明によれば、並列処理
のプログラミングパラダイムに必要な、例えば同期操
作、相互排除、メッセージパッシングなどのプリミティ
ブを効率良く実現することができるようになる。さら
に、受動的なインタラクションにおけるデータの整合性
の保持するためのデータのブロードキャストを高速に行
うことができるようになる。
【0087】
【発明の効果】請求項1に記載の通信制御装置によれ
ば、記憶手段には、それぞれ同一のデータが記憶され、
記憶手段のいずれかに記憶されたデータが変更された場
合には、変更されたデータが即座にブロードキャストさ
れる。従って、記憶手段に記憶されたデータの整合性を
保持しながら、例えばセマフォを用いた、プロセッサの
同期操作を効率的に処理することができる。
【0088】請求項2に記載の通信制御装置によれば、
記憶手段が、データが書き込まれた場合、プロセッサに
割り込みをかけるので、記憶手段にデータが書き込まれ
たことをプロセッサに知らせることができる。
【0089】請求項3に記載の通信制御装置によれば、
記憶手段が、記憶手段に記憶されているデータに基づい
て、プロセッサに割り込みをかけるので、種々の割り込
み要因により、プロセッサに割り込みをかけるようにす
ることができる。
【0090】請求項4に記載の通信制御装置によれば、
許可手段に基づいて、割り込みが許可される。従って、
装置の柔軟性を向上させることができる。
【0091】請求項5に記載の通信制御装置によれば、
記憶手段が、マルチプルリードアウトメモリにより構成
されているので、装置を簡単に構成することができる。
【図面の簡単な説明】
【図1】本発明の通信制御装置を適用したコンピュータ
システムの一実施例の構成を示すブロック図である。
【図2】SMCのエントリの構成を示す図である。
【図3】SMCのアドレス制御を説明する図である。
【図4】相互排除を説明する図である。
【図5】相互排除を説明する図である。
【図6】相互排除を説明する図である。
【図7】相互排除を説明する図である。
【図8】相互排除を説明する図である。
【図9】相互排除を説明する図である。
【図10】相互排除を説明する図である。
【図11】相互排除を説明する図である。
【図12】相互排除を説明する図である。
【図13】相互排除を説明する図である。
【図14】データのブロードキャストを説明する図であ
る。
【図15】データのブロードキャストを説明する図であ
る。
【図16】データのブロードキャストを説明する図であ
る。
【符号の説明】
1乃至4 プロセッサ(PU) 1a乃至4a SMC(Synchronization Mechanism wi
th multiprocessor Cache) 11 共有メモリ

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 複数のプロセッサ間の通信を制御する通
    信制御装置において、 前記複数のプロセッサそれぞれに接続された、データを
    記憶する複数の記憶手段を備え、 前記複数の記憶手段は、それぞれ同一のアドレス空間を
    有するとともに、それぞれ同一のデータを記憶し、 前記複数の記憶手段のいずれかに記憶されたデータが変
    更された場合には、変更された前記データが即座にブロ
    ードキャストされることを特徴とする通信制御装置。
  2. 【請求項2】 前記記憶手段は、前記データが書き込ま
    れた場合、前記プロセッサに割り込みをかけることを特
    徴とする請求項1に記載の通信制御装置。
  3. 【請求項3】 前記記憶手段は、前記記憶手段に記憶さ
    れているデータに基づいて、前記プロセッサに割り込み
    をかけることを特徴とする請求項1または2に記載の通
    信制御装置。
  4. 【請求項4】 前記割り込みを許可する許可手段をさら
    に備えることを特徴とする請求項2または3に記載の通
    信制御装置。
  5. 【請求項5】 前記記憶手段は、マルチプルリードアウ
    トメモリにより構成されていることを特徴とする請求項
    1乃至4のいずれかに記載の通信制御装置。
JP5018056A 1993-01-08 1993-01-08 通信制御装置 Pending JPH06208547A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5018056A JPH06208547A (ja) 1993-01-08 1993-01-08 通信制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5018056A JPH06208547A (ja) 1993-01-08 1993-01-08 通信制御装置

Publications (1)

Publication Number Publication Date
JPH06208547A true JPH06208547A (ja) 1994-07-26

Family

ID=11961046

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5018056A Pending JPH06208547A (ja) 1993-01-08 1993-01-08 通信制御装置

Country Status (1)

Country Link
JP (1) JPH06208547A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7080215B2 (en) 2002-04-26 2006-07-18 Fujitsu Limited Multiprocessor system with local memory which mirrors a shaped memory
JP4767361B2 (ja) * 2008-03-31 2011-09-07 パナソニック株式会社 キャッシュメモリ装置、キャッシュメモリシステム、プロセッサシステム
US8612725B2 (en) 2010-01-08 2013-12-17 Kabushiki Kaisha Toshiba Multi-processor system with mesh topology routers comprising local cache storing for each data information indicating redundancy in neighbor router cache for cache management

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7080215B2 (en) 2002-04-26 2006-07-18 Fujitsu Limited Multiprocessor system with local memory which mirrors a shaped memory
JP4767361B2 (ja) * 2008-03-31 2011-09-07 パナソニック株式会社 キャッシュメモリ装置、キャッシュメモリシステム、プロセッサシステム
US8612725B2 (en) 2010-01-08 2013-12-17 Kabushiki Kaisha Toshiba Multi-processor system with mesh topology routers comprising local cache storing for each data information indicating redundancy in neighbor router cache for cache management

Similar Documents

Publication Publication Date Title
JP3515985B2 (ja) プロセッサ装置内で一時的に専用パイプラインを設定する方法及びシステム
US7478390B2 (en) Task queue management of virtual devices using a plurality of processors
US5829052A (en) Method and apparatus for managing memory accesses in a multiple multiprocessor cluster system
US20050038941A1 (en) Method and apparatus for accessing a memory
US20080168443A1 (en) Virtual Devices Using a Plurality of Processors
JP2004252990A (ja) コンピュータ・プロセッサ及び処理装置
JPH1185618A (ja) 仮想メモリ変換を制御する方法
US5895496A (en) System for an method of efficiently controlling memory accesses in a multiprocessor computer system
JP3814521B2 (ja) データ処理方法および装置
JPH06208547A (ja) 通信制御装置
JPH1173365A (ja) データ移動操作を最適化する方法
JP3169624B2 (ja) プロセッサ間通信方法およびそのための並列プロセッサ
JPS58201166A (ja) マルチプロセツサ方式
JP2813182B2 (ja) マルチプロセッサコンピュータ複合装置
USRE38514E1 (en) System for and method of efficiently controlling memory accesses in a multiprocessor computer system
JPS6153747B2 (ja)
JP3226557B2 (ja) マルチプロセッサシステム
JPH01280858A (ja) 主記憶装置のロック制御方式
JPH0223060B2 (ja)
KR960007835B1 (ko) 다중 프로세서의 공통 메모리 억세스 장치
JP3710798B2 (ja) 複合演算処理装置
JP2001273191A (ja) コンピュータシステム
JP2973227B2 (ja) 排他制御命令実行方法
JPH056333A (ja) マルチプロセサシステム
JPH0374759A (ja) マルチプロセッサシステム

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20020204