JP2634141B2 - マルチプロセッサ・システム - Google Patents
マルチプロセッサ・システムInfo
- Publication number
- JP2634141B2 JP2634141B2 JP6004040A JP404094A JP2634141B2 JP 2634141 B2 JP2634141 B2 JP 2634141B2 JP 6004040 A JP6004040 A JP 6004040A JP 404094 A JP404094 A JP 404094A JP 2634141 B2 JP2634141 B2 JP 2634141B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- data
- bus
- processor
- reading
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【0001】
【産業上の利用分野】本発明はマルチプロセッサ・シス
テムに関し、とくに順序性を持ったデータ列のある時点
におけるデータ・セットをマルチプロセッサ・システム
の要素プロセッサに高速に割り当て、効率良く並列に実
行できるようにするものである。
テムに関し、とくに順序性を持ったデータ列のある時点
におけるデータ・セットをマルチプロセッサ・システム
の要素プロセッサに高速に割り当て、効率良く並列に実
行できるようにするものである。
【0002】
【従来の技術】従来、三次元グラフィクス・インターフ
ェイスの一つであるPHIGS(Programmer's Hierach
ical Interactive Graphics System)などでは、データ
を構造で持ち、描画時にこのデータの構造を評価して、
描画命令の列を発生する。この描画命令の列は、アトリ
ビュートおよびプリミティブよりなる。アトリビュート
はTSL(Traverse State List)の中のアトリビュート
の項目に入れられる。そしてプリミティブはそのプリミ
ティブが発行されたときのTSL内のアトリビュートを
使って描画を行なう。これをマルチプロセッサで並列に
実行しようとした場合、プリミティブごとにプロセッサ
を割り当てて実行させると効率が良い。この場合プリミ
ティブが割り当てられる各プロセッサはプリミティブが
割り当てられた時のTSLの内容を覚えておかなければ
ならない、これを行なうためにはプリミティブの処理を
行なうたびに、その時点でのTSLを自分の私有領域に
コピーしておかなければならない。TSLの大きさは、
通常1000バイト以上あるのでバスのトラフィックの
増大等でオーバーヘッドが大きくなりマルチプロセッサ
による並列実行による高速化の利点が損なわれる。
ェイスの一つであるPHIGS(Programmer's Hierach
ical Interactive Graphics System)などでは、データ
を構造で持ち、描画時にこのデータの構造を評価して、
描画命令の列を発生する。この描画命令の列は、アトリ
ビュートおよびプリミティブよりなる。アトリビュート
はTSL(Traverse State List)の中のアトリビュート
の項目に入れられる。そしてプリミティブはそのプリミ
ティブが発行されたときのTSL内のアトリビュートを
使って描画を行なう。これをマルチプロセッサで並列に
実行しようとした場合、プリミティブごとにプロセッサ
を割り当てて実行させると効率が良い。この場合プリミ
ティブが割り当てられる各プロセッサはプリミティブが
割り当てられた時のTSLの内容を覚えておかなければ
ならない、これを行なうためにはプリミティブの処理を
行なうたびに、その時点でのTSLを自分の私有領域に
コピーしておかなければならない。TSLの大きさは、
通常1000バイト以上あるのでバスのトラフィックの
増大等でオーバーヘッドが大きくなりマルチプロセッサ
による並列実行による高速化の利点が損なわれる。
【0003】TSLをプリミティブの割り当て時にコピ
ーするのではなく、各要素プロセッサがそれぞれ独立に
解釈実行する方式も考えられる。これをシンメトリ方式
と呼ぶ(シンメトリ方式は「PHIGSの構造体を処理
するジオメトリ演算のマルチプロセッサ上での実行効率
評価」松本尚、川瀬桂、森山孝男:並列処理シンポジウ
ムJSPP’92、p375-382の中で紹介されてい
る。)。
ーするのではなく、各要素プロセッサがそれぞれ独立に
解釈実行する方式も考えられる。これをシンメトリ方式
と呼ぶ(シンメトリ方式は「PHIGSの構造体を処理
するジオメトリ演算のマルチプロセッサ上での実行効率
評価」松本尚、川瀬桂、森山孝男:並列処理シンポジウ
ムJSPP’92、p375-382の中で紹介されてい
る。)。
【0004】シンメトリ方式は、共有メモリ上に排他的
にアクセスされるカウンタを設け、各要素プロセッサは
カウンタの値を読みだし、これを1インクリメントして
更新する。こうして得られたカウンタの値をチケットと
して、各要素プロセッサは通し番号がチケットの番号と
同じプリミティブ(図形要素)に出合うまでトラバーサ
ルを行なう。その間に出合ったチケットの番号と違うプ
リミティブは全て読み飛ばし、アトリビュート設定指示
やトラバーサルの指示のみ実行する。その後チケットの
番号と同じプリミティブを処理する。
にアクセスされるカウンタを設け、各要素プロセッサは
カウンタの値を読みだし、これを1インクリメントして
更新する。こうして得られたカウンタの値をチケットと
して、各要素プロセッサは通し番号がチケットの番号と
同じプリミティブ(図形要素)に出合うまでトラバーサ
ルを行なう。その間に出合ったチケットの番号と違うプ
リミティブは全て読み飛ばし、アトリビュート設定指示
やトラバーサルの指示のみ実行する。その後チケットの
番号と同じプリミティブを処理する。
【0005】シンメトリ方式で処理を行なう場合、スヌ
ープキャッシュプロトコルにall−readプロトコ
ルを用いることにより、高速化が行なえる。これについ
ては特開平2−238534号公報を参照されたい。
ープキャッシュプロトコルにall−readプロトコ
ルを用いることにより、高速化が行なえる。これについ
ては特開平2−238534号公報を参照されたい。
【0006】この方法は、ストラクチャの格納場所CS
S(Central Structure Store)の領域内で全ての要素プ
ロセッサ(PE)が読み込む必要のある部分(ストラク
チャヘッダやアトリビュート設定指示など)に対して、
スヌーププロトコルをall−readに設定してお
き、ある要素プロセッサが共有バスを用いてこれらのデ
ータを読みだした場合にバスをスヌープしている他のプ
ロセッサのキャッシュにおいてもそのデータをできる限
りキャッシュ内に取り込むようにするものである。これ
により、他の要素プロセッサがトラバーサルのために同
じデータをその後に読もうとした場合、そのデータはす
でにキャッシュされていることが期待され、共有バスへ
のアクセスが低減されるので処理の高速化が期待でき
る。この様子を図1に示す。
S(Central Structure Store)の領域内で全ての要素プ
ロセッサ(PE)が読み込む必要のある部分(ストラク
チャヘッダやアトリビュート設定指示など)に対して、
スヌーププロトコルをall−readに設定してお
き、ある要素プロセッサが共有バスを用いてこれらのデ
ータを読みだした場合にバスをスヌープしている他のプ
ロセッサのキャッシュにおいてもそのデータをできる限
りキャッシュ内に取り込むようにするものである。これ
により、他の要素プロセッサがトラバーサルのために同
じデータをその後に読もうとした場合、そのデータはす
でにキャッシュされていることが期待され、共有バスへ
のアクセスが低減されるので処理の高速化が期待でき
る。この様子を図1に示す。
【0007】この図は右端のプロセッサが共有メモリか
ら読み込んでいるデータをその他のスヌープキャッシュ
が取り込んでいるところである。しかし、このall−
readプロトコルを用いたシンメトリ方式は各要素プ
ロセッサが一定時間内にCSSのほぼ同じあたりを読み
込む(トラバーサルする)場合にのみ効果がある。要素
プロセッサの数が増えたときとか、プリミティブの処理
時間のばらつきが大きいときには、キャッシュサイズの
大きさをこえてall−readによる強制的割つけが
起こり、まだ保持しておくべきデータのリプレースがお
こる。これをここでは説明のためオーバランと呼ぶ。こ
のオーバランが起こると不必要なリプレースが起こるの
で、共有バスのトラフィックの増大及び処理速度の低下
が起こる。オーバランの様子を以下に説明する。
ら読み込んでいるデータをその他のスヌープキャッシュ
が取り込んでいるところである。しかし、このall−
readプロトコルを用いたシンメトリ方式は各要素プ
ロセッサが一定時間内にCSSのほぼ同じあたりを読み
込む(トラバーサルする)場合にのみ効果がある。要素
プロセッサの数が増えたときとか、プリミティブの処理
時間のばらつきが大きいときには、キャッシュサイズの
大きさをこえてall−readによる強制的割つけが
起こり、まだ保持しておくべきデータのリプレースがお
こる。これをここでは説明のためオーバランと呼ぶ。こ
のオーバランが起こると不必要なリプレースが起こるの
で、共有バスのトラフィックの増大及び処理速度の低下
が起こる。オーバランの様子を以下に説明する。
【0008】ここでは、説明を簡単にするために、PE
の数は2、キャッシュサイズは16ワード2ウェイセッ
トアソシエティブであるとする。(実際のキャッシュサ
イズはもっと大きい)。また、キャッシュミスが起きた
ときは、一回のバス転送で1ワードづつ共有メモリから
読み込むとする。また、キャッシュブロックのリプレー
スはLRU(Least Recently Used)で行なわれるとす
る。
の数は2、キャッシュサイズは16ワード2ウェイセッ
トアソシエティブであるとする。(実際のキャッシュサ
イズはもっと大きい)。また、キャッシュミスが起きた
ときは、一回のバス転送で1ワードづつ共有メモリから
読み込むとする。また、キャッシュブロックのリプレー
スはLRU(Least Recently Used)で行なわれるとす
る。
【0009】今、2つのPE、PE0とPE1がそれぞ
れトラバースを行なっているところを考える。トラバー
スはアドレス000から順に1ワードづつアドレスの増
加する方に向かって読み込みが起こるものとする。また
トラバースの途中ではプリミティブ処理のため、一定時
間トラバースが停止することがある。この停止する場所
及び停止時間はそれぞれのPEによって異なる。 図2
は、PE0がアドレス00c、PE1がアドレス001
まで読み込んだ状態を示している。スヌープキャッシュ
のall−readプロトコルが有効に働き、バス転送
は13回で済む。図3はPE0がアドレス00fまで読
み込んだ状態である。キャッシュブロックは全てうまっ
てしまったので、以降のデータアクセスにはキャッシュ
ブロックのリプレースが起こる。
れトラバースを行なっているところを考える。トラバー
スはアドレス000から順に1ワードづつアドレスの増
加する方に向かって読み込みが起こるものとする。また
トラバースの途中ではプリミティブ処理のため、一定時
間トラバースが停止することがある。この停止する場所
及び停止時間はそれぞれのPEによって異なる。 図2
は、PE0がアドレス00c、PE1がアドレス001
まで読み込んだ状態を示している。スヌープキャッシュ
のall−readプロトコルが有効に働き、バス転送
は13回で済む。図3はPE0がアドレス00fまで読
み込んだ状態である。キャッシュブロックは全てうまっ
てしまったので、以降のデータアクセスにはキャッシュ
ブロックのリプレースが起こる。
【0010】図4はPE0がアドレス013まで読み込
んだ状態である。このとき、PE1は未だアドレス00
1までしか読み込みを行なっていない。キャッシュされ
ていたアドレス000−003までのデータは、PE0
のアクセスによってそれぞれアドレス010−013ま
でのデータによってリプレースされる。PE1はまだア
ドレス002、003のデータはアクセスしておらず、
なおかつこの先必要であるにもかかわらずリプレースさ
れてしまった。これがオーバランである。
んだ状態である。このとき、PE1は未だアドレス00
1までしか読み込みを行なっていない。キャッシュされ
ていたアドレス000−003までのデータは、PE0
のアクセスによってそれぞれアドレス010−013ま
でのデータによってリプレースされる。PE1はまだア
ドレス002、003のデータはアクセスしておらず、
なおかつこの先必要であるにもかかわらずリプレースさ
れてしまった。これがオーバランである。
【0011】図5はPE1がアドレス002のデータを
読み込んだところである。このときも、これから先に必
要なアドレス00aのデータを追い出してアドレス00
2の内容を読み込むことになる。
読み込んだところである。このときも、これから先に必
要なアドレス00aのデータを追い出してアドレス00
2の内容を読み込むことになる。
【0012】以降図6、図7、図8、図9と進み、それ
ぞれのPEがアドレス017まで読み込みを行なうと、
それぞれのバスアクセスの回数は、PE0が32回、P
E1が30回となる。これは、オーバランによって必要
なキャッシュの内容がall−readプロトコルの強
制的割つけによって上書きされてしまうからである。
ぞれのPEがアドレス017まで読み込みを行なうと、
それぞれのバスアクセスの回数は、PE0が32回、P
E1が30回となる。これは、オーバランによって必要
なキャッシュの内容がall−readプロトコルの強
制的割つけによって上書きされてしまうからである。
【0013】この、現象はPEの数が増えるにつれて起
こり易くなる。all−readプロトコルによる他の
キャッシュへの割つけは、そのアクセスアドレスに対応
するキャッシュブロックがリプレースされる前にライト
バックしなければならない場合(ダーティな場合)以外
に必ず起こる。
こり易くなる。all−readプロトコルによる他の
キャッシュへの割つけは、そのアクセスアドレスに対応
するキャッシュブロックがリプレースされる前にライト
バックしなければならない場合(ダーティな場合)以外
に必ず起こる。
【0014】
【発明が解決しようとする課題】本発明は共有バス、共
有メモリ型のマルチプロセッサで順序性を持ったデータ
列のある時点におけるデータセットを要素プロセッサに
高速に割り当て、効率良く並列に実行することを可能に
することを目的としている。
有メモリ型のマルチプロセッサで順序性を持ったデータ
列のある時点におけるデータセットを要素プロセッサに
高速に割り当て、効率良く並列に実行することを可能に
することを目的としている。
【0015】
【課題を解決するための手段】本発明では、以上の目的
を達成するために、キャッシュ・ブロックに対して参照
ビットを設けて、まだ参照していないキャッシュ・ブロ
ックへの他のキャッシュからのall−readに伴う
割つけを防ぐ機構を追加している。
を達成するために、キャッシュ・ブロックに対して参照
ビットを設けて、まだ参照していないキャッシュ・ブロ
ックへの他のキャッシュからのall−readに伴う
割つけを防ぐ機構を追加している。
【0016】このプロトコルをweak−all−re
adプロトコルと呼ぶことにする。weak−all−
readプロトコルの実装に際しては、ハードウェアの
負担は従来のall−readプロトコルに対して、参
照ビットとその制御の追加だけでよい。また、参照ビッ
トを有効ビット(これはall−readの場合でも必
要)で兼用することによってハードウェア量を増やさず
に実現することもできるが、この場合はソフトウェアへ
の制限が大きくなる。
adプロトコルと呼ぶことにする。weak−all−
readプロトコルの実装に際しては、ハードウェアの
負担は従来のall−readプロトコルに対して、参
照ビットとその制御の追加だけでよい。また、参照ビッ
トを有効ビット(これはall−readの場合でも必
要)で兼用することによってハードウェア量を増やさず
に実現することもできるが、この場合はソフトウェアへ
の制限が大きくなる。
【0017】参照ビットは、キャッシュ・ブロックに新
しいデータが読み込まれたときに0となり、そのキャッ
シュ・ブロックがCPUから参照されたとき1となる。
基本的な動作はall−readプロトコルと同じで、
他のキャッシュのデータ読み込みを関して、もし該当ブ
ロックがライトバックの必要なくリプレース可能で、な
おかつ参照ビットが1の場合、そのデータをキャッシュ
の中に取り込む。なお、自分のCPUのアクセスによる
リプレースは参照ビットが0のときでも行なう。
しいデータが読み込まれたときに0となり、そのキャッ
シュ・ブロックがCPUから参照されたとき1となる。
基本的な動作はall−readプロトコルと同じで、
他のキャッシュのデータ読み込みを関して、もし該当ブ
ロックがライトバックの必要なくリプレース可能で、な
おかつ参照ビットが1の場合、そのデータをキャッシュ
の中に取り込む。なお、自分のCPUのアクセスによる
リプレースは参照ビットが0のときでも行なう。
【0018】
【実施例】以下、本発明の一実施例について図面を参照
しながら説明を行なう。図10にシステムの全体を示
す。図10において複数のプロセッサPE1、PE2、
PE3、PE4はそれぞれプライベート・キャッシュS
C1、SC2、SC3、SC4(SCはスヌーピ・キャ
ッシュの略である)を介して共有バス100および共有
メモリ200に接続されている。そして各プライベート
・キャッシュSC側に制御装置を設けて共有バス100
上の信号を監視させ、分散制御方式によりデータの一貫
性を実現する。すわなちこの方式では各制御装置が共有
バス100上のプロトコルにしたがって動作することに
よりデータの一貫性を実現する。なおリスト管理部LM
はトラバーサル・ステート・リスト・バッファTSLを
管理するものである。
しながら説明を行なう。図10にシステムの全体を示
す。図10において複数のプロセッサPE1、PE2、
PE3、PE4はそれぞれプライベート・キャッシュS
C1、SC2、SC3、SC4(SCはスヌーピ・キャ
ッシュの略である)を介して共有バス100および共有
メモリ200に接続されている。そして各プライベート
・キャッシュSC側に制御装置を設けて共有バス100
上の信号を監視させ、分散制御方式によりデータの一貫
性を実現する。すわなちこの方式では各制御装置が共有
バス100上のプロトコルにしたがって動作することに
よりデータの一貫性を実現する。なおリスト管理部LM
はトラバーサル・ステート・リスト・バッファTSLを
管理するものである。
【0019】各プロセッサPEは共有メモリ200に格
納された描画指示命令ディスプレイ・リスト300を読
みとり、処理を行なった後ディスプレイ・バス400を
介してラスタライザ500にデータを渡す。600は表
示装置を示す。
納された描画指示命令ディスプレイ・リスト300を読
みとり、処理を行なった後ディスプレイ・バス400を
介してラスタライザ500にデータを渡す。600は表
示装置を示す。
【0020】図11はプライベート・キャッシュSCの
構造を示す。第1アドレス線、第1コントロール線、第
1データ線はプロセッサPEに接続される。第2アドレ
ス線、第2コントロール線、第2データ線は共有バス1
00に接続され、プロセッサPEおよびプライベート・
キャッシュSCからの共有メモリ200へのアクセスの
ため使用されるほか、プライベート・キャッシュSCが
バス100上の信号を監視するために使用される。
構造を示す。第1アドレス線、第1コントロール線、第
1データ線はプロセッサPEに接続される。第2アドレ
ス線、第2コントロール線、第2データ線は共有バス1
00に接続され、プロセッサPEおよびプライベート・
キャッシュSCからの共有メモリ200へのアクセスの
ため使用されるほか、プライベート・キャッシュSCが
バス100上の信号を監視するために使用される。
【0021】タグ・メモリTag11、Tag12、Tag21、Tag22
およびアドレス比較器Comp11、Comp12、Comp21、Comp22
はプロセッサPEからのアクセスと、共有バス100の
監視を同時に行なうために二重化されている。タグ・メ
モリTag11およびTag21はそれぞれ同じ内容で、データ・
メモリData1に対するアドレスと属性を保持している。
タグ・メモリTag12とTag22についても同様にデータ・メ
モリData2に対するアドレスと属性を保持している。な
おCtr1、Ctr2はコントローラであり、Mux1、Mux2はマル
チプレクサである。
およびアドレス比較器Comp11、Comp12、Comp21、Comp22
はプロセッサPEからのアクセスと、共有バス100の
監視を同時に行なうために二重化されている。タグ・メ
モリTag11およびTag21はそれぞれ同じ内容で、データ・
メモリData1に対するアドレスと属性を保持している。
タグ・メモリTag12とTag22についても同様にデータ・メ
モリData2に対するアドレスと属性を保持している。な
おCtr1、Ctr2はコントローラであり、Mux1、Mux2はマル
チプレクサである。
【0022】図12にタグ・メモリTagの詳細を示す。
タグ・メモリTagのタグは状態を示すビット群Sと参照
を示すビットRそして、メモリアドレスの一部からな
る。ビット群Sはキャッシュ間のデータの一貫性をとる
ために使われる。これに関してはProceedings of 13th
International Symposium on ComputerArchitecture、
(1986)、414-423、"A Class of Compatible CacheConsi
stency Protocols and Support by the IEEE Futurebu
s"に詳しく記述されている。参照ビットRはキャッシュ
ブロックにデータが読み込まれた時にりセット(0)さ
れ、プロセッサによりデータが参照された時にセット
(1)される。
タグ・メモリTagのタグは状態を示すビット群Sと参照
を示すビットRそして、メモリアドレスの一部からな
る。ビット群Sはキャッシュ間のデータの一貫性をとる
ために使われる。これに関してはProceedings of 13th
International Symposium on ComputerArchitecture、
(1986)、414-423、"A Class of Compatible CacheConsi
stency Protocols and Support by the IEEE Futurebu
s"に詳しく記述されている。参照ビットRはキャッシュ
ブロックにデータが読み込まれた時にりセット(0)さ
れ、プロセッサによりデータが参照された時にセット
(1)される。
【0023】本発明のweak−all−readプロ
トコルではある要素プロセッサがweak−all−r
eadで共有メモリからデータを読み込んだ場合、その
他の要素プロセッサは通常のスヌープ・キャッシュの処
理の他に、以下のような処理を行なう。
トコルではある要素プロセッサがweak−all−r
eadで共有メモリからデータを読み込んだ場合、その
他の要素プロセッサは通常のスヌープ・キャッシュの処
理の他に、以下のような処理を行なう。
【0024】キャッシュ・ラインに無効なキャッシュブ
ロックが存在する場合は、その一つを選択しweak−
all−readされたデータをキャッシュする。同時
にキャッシュブロックの状態を更新するとともに参照ビ
ットRをリセット(0)する。
ロックが存在する場合は、その一つを選択しweak−
all−readされたデータをキャッシュする。同時
にキャッシュブロックの状態を更新するとともに参照ビ
ットRをリセット(0)する。
【0025】キャッシュ・ラインに無効なキャッシュブ
ロックが存在せず、キャッシュブロック状態がクリーン
(そのブロックのデータが共有メモリの内容と同一)で
かつ参照ビットRがセット(1)されているブロックが
存在する場合、その一つを選択しweak−all−r
eadされたデータをキャッシュする。同時にキャッシ
ュ・ブロックの状態を更新するとともに参照ビットRを
リセット(0)する。
ロックが存在せず、キャッシュブロック状態がクリーン
(そのブロックのデータが共有メモリの内容と同一)で
かつ参照ビットRがセット(1)されているブロックが
存在する場合、その一つを選択しweak−all−r
eadされたデータをキャッシュする。同時にキャッシ
ュ・ブロックの状態を更新するとともに参照ビットRを
リセット(0)する。
【0026】
【発明の効果】本発明のweak−all−readプ
ロトコルによって、図2から図9のアクセスパターンを
行なうと、バスアクセスの回数は、PE0が32回、P
E1が16回となる。したがって、all−readプ
ロトコルを用いた場合(PE0が32回、PE1が30
回)に対してキャッシュヒット率が向上しバスアクセス
の回数(使用率)が減少する。特にバスの使用率は共有
バス型のマルチプロセッサにとって、その最大のボトル
ネックとなり得るので、バスアクセスの回数の低減は性
能向上に極めて大きく貢献する。
ロトコルによって、図2から図9のアクセスパターンを
行なうと、バスアクセスの回数は、PE0が32回、P
E1が16回となる。したがって、all−readプ
ロトコルを用いた場合(PE0が32回、PE1が30
回)に対してキャッシュヒット率が向上しバスアクセス
の回数(使用率)が減少する。特にバスの使用率は共有
バス型のマルチプロセッサにとって、その最大のボトル
ネックとなり得るので、バスアクセスの回数の低減は性
能向上に極めて大きく貢献する。
【図1】 従来の構成を示すブロック図である。
【図2】 従来の構成の不都合を説明する図である。
【図3】 従来の構成の不都合を説明する図である。
【図4】 従来の構成の不都合を説明する図である。
【図5】 従来の構成の不都合を説明する図である。
【図6】 従来の構成の不都合を説明する図である。
【図7】 従来の構成の不都合を説明する図である。
【図8】 従来の構成の不都合を説明する図である。
【図9】 従来の構成の不都合を説明する図である。
【図10】 この発明の実施例の全体構成を示すブロッ
ク図である。
ク図である。
【図11】 上述実施例の要部の構成を示すブロック図
である。
である。
【図12】 図11の構成例の細部を説明する図であ
る。
る。
PEはプロセッサ。 SCはプライベート・キャッシュ。 Tagはタグ・メモリ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 森山 孝男 神奈川県大和市下鶴間1623番地14 日本 アイ・ビー・エム株式会社 東京基礎研 究所内 (56)参考文献 特開 平4−280351(JP,A) 特開 昭62−241051(JP,A) 特開 平2−47756(JP,A) 特開 平2−234247(JP,A)
Claims (3)
- 【請求項1】 共有バスに、個別のキャッシュ・メモリ
を介して複数のプロセッサを結合したマルチプロセッサ
・システムにおいて、 上記キャッシュ・メモリの各々に、 上記バス上のデータの転送を監視し、他のキャッシュ・
メモリが上記バスを介して読み込むデータを、上記デー
タの転送が所定のモードのときに、対応するキャッシュ
・メモリに読み込む手段と、 キャッシュ・ラインごとに設けられ、当該キャッシュ・
ラインが対応するプロセッサから参照されたかどうかを
示すビットを保持するビット保持手段と、 上記ビット保持手段を参照して、上記キャッシュ・ライ
ンが対応するプロセッサにより参照されていないとき
に、当該キャッシュ・ラインを上記読み込み手段による
読み込みでリプレースしないようにするリプレース制御
手段とを設けたことを特徴とするマルチプロセッサ・シ
ステム。 - 【請求項2】 上記キャッシュ・メモリは、プロセッサ
からのアクセスを受ける第1のサブ・キャッシュ・メモ
リと、バス上の信号を監視するのに用いる第2のサブ・
キャッシュ・メモリとを含む請求項1記載のマルチプロ
セッサ・システム。 - 【請求項3】 個別のキャッシュ・メモリを介して共有
バスに接続された複数のプロセッサと、 上記プロセッサで生成される画像データを受け取って表
示を行う表示部とを有し、 上記キャッシュ・メモリの各々に、 上記バス上のデータの転送を監視し、他のキャッシュ・
メモリが上記バスを介して読み込むデータを、上記デー
タの転送が所定のモードのときに、対応するキャッシュ
・メモリに読み込む手段と、 キャッシュ・ラインごとに設けられ、当該キャッシュ・
ラインが対応するプロセッサから参照されたかどうかを
示すビットを保持するビット保持手段と、 上記ビット保持手段を参照して、上記キャッシュ・ライ
ンが対応するプロセッサにより参照されていないとき
に、当該キャッシュ・ラインを上記読み込み手段による
読み込みでリプレースしないようにするリプレース制御
手段とを設けたことを特徴とする画像表示装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6004040A JP2634141B2 (ja) | 1994-01-19 | 1994-01-19 | マルチプロセッサ・システム |
US08/372,614 US5584011A (en) | 1994-01-19 | 1995-01-13 | Multiprocessor system with parallel execution of data |
US08/702,424 US5802570A (en) | 1994-01-19 | 1996-08-14 | Multiprocessor system with parallel execution of data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6004040A JP2634141B2 (ja) | 1994-01-19 | 1994-01-19 | マルチプロセッサ・システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07219914A JPH07219914A (ja) | 1995-08-18 |
JP2634141B2 true JP2634141B2 (ja) | 1997-07-23 |
Family
ID=11573841
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6004040A Expired - Lifetime JP2634141B2 (ja) | 1994-01-19 | 1994-01-19 | マルチプロセッサ・システム |
Country Status (2)
Country | Link |
---|---|
US (2) | US5584011A (ja) |
JP (1) | JP2634141B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3739888B2 (ja) * | 1997-03-27 | 2006-01-25 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置および方法 |
WO2001069391A2 (en) * | 2000-03-14 | 2001-09-20 | Arc Cores, Inc. | Difference engine method and apparatus |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60500187A (ja) * | 1982-12-30 | 1985-02-07 | インタ−ナシヨナル・ビジネス・マシ−ンズ・コ−ポレ−シヨン | データ処理システム |
US4622631B1 (en) * | 1983-12-30 | 1996-04-09 | Recognition Int Inc | Data processing system having a data coherence solution |
DE3502147A1 (de) * | 1984-01-23 | 1985-08-08 | Hitachi Microcomputer Engineering Ltd., Kodaira, Tokio/Tokyo | Datenverarbeitungssystem mit verbesserter pufferspeichersteuerung |
US4959777A (en) * | 1987-07-27 | 1990-09-25 | Motorola Computer X | Write-shared cache circuit for multiprocessor system |
US5058006A (en) * | 1988-06-27 | 1991-10-15 | Digital Equipment Corporation | Method and apparatus for filtering invalidate requests |
US4939641A (en) * | 1988-06-30 | 1990-07-03 | Wang Laboratories, Inc. | Multi-processor system with cache memories |
KR910005602B1 (ko) * | 1989-06-15 | 1991-07-31 | 삼성전자 주식회사 | 어드레스 변환 검출에 따른 출력버퍼의 프리챠아지 제어방법 |
US5283886A (en) * | 1989-08-11 | 1994-02-01 | Hitachi, Ltd. | Multiprocessor cache system having three states for generating invalidating signals upon write accesses |
US5182797A (en) * | 1989-10-23 | 1993-01-26 | International Business Machines Corporation | Multi-processor graphics display system for displaying hierarchical data structures |
US5263144A (en) * | 1990-06-29 | 1993-11-16 | Digital Equipment Corporation | Method and apparatus for sharing data between processors in a computer system |
US5404483A (en) * | 1990-06-29 | 1995-04-04 | Digital Equipment Corporation | Processor and method for delaying the processing of cache coherency transactions during outstanding cache fills |
US5319768A (en) * | 1991-05-01 | 1994-06-07 | Sgs-Thomson Microelectronics, Inc. | Control circuit for resetting a snoop valid bit in a dual port cache tag memory |
US5423016A (en) * | 1992-02-24 | 1995-06-06 | Unisys Corporation | Block buffer for instruction/operand caches |
US5428761A (en) * | 1992-03-12 | 1995-06-27 | Digital Equipment Corporation | System for achieving atomic non-sequential multi-word operations in shared memory |
US5319766A (en) * | 1992-04-24 | 1994-06-07 | Digital Equipment Corporation | Duplicate tag store for a processor having primary and backup cache memories in a multiprocessor computer system |
-
1994
- 1994-01-19 JP JP6004040A patent/JP2634141B2/ja not_active Expired - Lifetime
-
1995
- 1995-01-13 US US08/372,614 patent/US5584011A/en not_active Expired - Fee Related
-
1996
- 1996-08-14 US US08/702,424 patent/US5802570A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH07219914A (ja) | 1995-08-18 |
US5802570A (en) | 1998-09-01 |
US5584011A (en) | 1996-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101446923B (zh) | 一种响应于指令而清洗高速缓冲存储器线的装置和方法 | |
KR100330935B1 (ko) | 최적화된 캐시 동작을 독립적으로 구현하는 캐시 일관성 프로토콜 | |
US5091850A (en) | System for fast selection of non-cacheable address ranges using programmed array logic | |
US5157774A (en) | System for fast selection of non-cacheable address ranges using programmed array logic | |
US5561779A (en) | Processor board having a second level writeback cache system and a third level writethrough cache system which stores exclusive state information for use in a multiprocessor computer system | |
JP3281893B2 (ja) | キャッシュ・メモリ階層内で利用するキャッシュ・コヒーレンシ機構を実施するための方法およびシステム | |
US7475190B2 (en) | Direct access of cache lock set data without backing memory | |
US20060179174A1 (en) | Method and system for preventing cache lines from being flushed until data stored therein is used | |
EP0301354A2 (en) | Cache consistency protocol for multiprocessor system | |
US8312225B2 (en) | Method and apparatus for supporting scalable coherence on many-core products through restricted exposure | |
US6751705B1 (en) | Cache line converter | |
JPH11506852A (ja) | 多数のバスマスタと共用レベル2キャッシュとを備える多レベルキャッシュシステムでのキャッシュスヌーピングオーバーヘッドの低減 | |
JP2010517184A (ja) | スヌープ要求キャッシュを用いたスヌープ・フィルタリング | |
JPH09223118A (ja) | スヌープキャッシュメモリ制御システム | |
US7330940B2 (en) | Method and system for cache utilization by limiting prefetch requests | |
US20040059877A1 (en) | Method and apparatus for implementing cache state as history of read/write shared data | |
US5829027A (en) | Removable processor board having first, second and third level cache system for use in a multiprocessor computer system | |
US9558116B2 (en) | Coherence de-coupling buffer | |
EP0309995B1 (en) | System for fast selection of non-cacheable address ranges using programmed array logic | |
JPH06318174A (ja) | キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法 | |
US20060179173A1 (en) | Method and system for cache utilization by prefetching for multiple DMA reads | |
KR100322223B1 (ko) | 대기행렬및스누프테이블을갖는메모리제어기 | |
JP3068469B2 (ja) | 2次レベルキャッシュメモリシステム | |
EP0681241A1 (en) | Processor board having a second level writeback cache system and a third level writethrough cache system which stores exclusive state information for use in a multiprocessor computer system | |
EP0470738A1 (en) | Cache memory system and operating method |