JP2696899B2 - マルチプロセッサシステム - Google Patents
マルチプロセッサシステムInfo
- Publication number
- JP2696899B2 JP2696899B2 JP63085233A JP8523388A JP2696899B2 JP 2696899 B2 JP2696899 B2 JP 2696899B2 JP 63085233 A JP63085233 A JP 63085233A JP 8523388 A JP8523388 A JP 8523388A JP 2696899 B2 JP2696899 B2 JP 2696899B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- data
- processor
- virtual address
- address
- 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 - Fee Related
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Description
【発明の詳細な説明】 (産業上の利用分野) 本発明はマルチプロセッサシステムに関するものであ
り、特に、各プロセッサに接続されたキャッシュ内デー
タの不整合を回避するのに好適なマルチプロセッサシス
テムに関するものである。
り、特に、各プロセッサに接続されたキャッシュ内デー
タの不整合を回避するのに好適なマルチプロセッサシス
テムに関するものである。
(従来の技術) 周知のように、プロセッサシステムにおいては、メモ
リから読み出されたデータを、一旦キャッシュ内に格納
し、該キャッシュとプロセッサとの間でデータの授受を
行うことにより、その演算処理速度を上げるように構成
されている。
リから読み出されたデータを、一旦キャッシュ内に格納
し、該キャッシュとプロセッサとの間でデータの授受を
行うことにより、その演算処理速度を上げるように構成
されている。
ところで、複数のプロセッサシステムがシステムバス
を介してメモリを共有するように構成されたMIMD(Mult
iple Instruction Multiple Data)方式のマルチプロセ
ッサシステムにおいては、複数のプロセッサシステムよ
り同一アドレスのデータがメモリより読み出されて、該
データが各プロセッサシステムのキャッシュ内に登録さ
れている場合に、前記各プロセッサシステムうちの少な
くとも一つが前記データを書換えたときに、該データが
他のキャッシュ内のデータと同一アドレスのデータであ
るにもかかわらず、その内容が異なるという問題(いわ
ゆるキャッシュ不整合問題)を生ずる。
を介してメモリを共有するように構成されたMIMD(Mult
iple Instruction Multiple Data)方式のマルチプロセ
ッサシステムにおいては、複数のプロセッサシステムよ
り同一アドレスのデータがメモリより読み出されて、該
データが各プロセッサシステムのキャッシュ内に登録さ
れている場合に、前記各プロセッサシステムうちの少な
くとも一つが前記データを書換えたときに、該データが
他のキャッシュ内のデータと同一アドレスのデータであ
るにもかかわらず、その内容が異なるという問題(いわ
ゆるキャッシュ不整合問題)を生ずる。
したがって、この場合には、前記他のキャッシュ内の
データを書換える必要がある。
データを書換える必要がある。
キャッシュは、ダイレクトマップ方式あるいはセット
アソシアティブ方式等のものが構成が簡単で安価である
が、このようなキャッシュは、前記キャッシュ不整合問
題が解決されないために、従来のマルチプロセッサシス
テムには連想記憶装置の一種であるCAM(content-addre
ssable memory)が用いられている。
アソシアティブ方式等のものが構成が簡単で安価である
が、このようなキャッシュは、前記キャッシュ不整合問
題が解決されないために、従来のマルチプロセッサシス
テムには連想記憶装置の一種であるCAM(content-addre
ssable memory)が用いられている。
以下に、その理由を順を追って説明する。
キャッシュは、そのアクセスの仕方に応じて、リアル
キャッシュおよびバーチャルキャッシュの二つの方式に
分類される。すなわち、プロセッサによるアクセスがバ
ーチャルアドレスにより行われるに対して、メモリへの
アクセスはリアルアドレスで行われるので、そのバーチ
ャルアドレスをリアルアドレスに変換した後でキャッシ
ュをアクセスするようにするか、変換する前にアクセス
するようにするかに応じて2つの方式に分類されてい
る。
キャッシュおよびバーチャルキャッシュの二つの方式に
分類される。すなわち、プロセッサによるアクセスがバ
ーチャルアドレスにより行われるに対して、メモリへの
アクセスはリアルアドレスで行われるので、そのバーチ
ャルアドレスをリアルアドレスに変換した後でキャッシ
ュをアクセスするようにするか、変換する前にアクセス
するようにするかに応じて2つの方式に分類されてい
る。
リアルキャッシュは、バーチャルアドレスをリアルア
ドレスに変換した後に、該リアルアドレスでアクセスさ
れることができるように構成されており、また、バーチ
ャルキャッシュは、バーチャルアドレスそのままでアク
セスされることができるように構成されている。
ドレスに変換した後に、該リアルアドレスでアクセスさ
れることができるように構成されており、また、バーチ
ャルキャッシュは、バーチャルアドレスそのままでアク
セスされることができるように構成されている。
バーチャルキャッシュを用いたシステムにおいては、
バーチャルアドレスをリアルアドレスに変換していると
きに、キャッシュへのアクセスを行うことができるの
で、キャッシュへのデータ書き込みおよび読み出しを速
く行うことができる。
バーチャルアドレスをリアルアドレスに変換していると
きに、キャッシュへのアクセスを行うことができるの
で、キャッシュへのデータ書き込みおよび読み出しを速
く行うことができる。
一方、キャッシュは、メモリへの書き込みの仕方に応
じて、ライトスルー方式およびライトイン方式の二つの
方式に分類される。
じて、ライトスルー方式およびライトイン方式の二つの
方式に分類される。
ライトスルー方式のキャッシュは、キャッシュ内に記
録されたデータを書換える場合に、その書換えごとに、
前記メモリ内のデータの書換えも行うものである。
録されたデータを書換える場合に、その書換えごとに、
前記メモリ内のデータの書換えも行うものである。
これに対してライトイン方式のキャッシュにおいて
は、メモリ内のデータの書換えは、特に必要とされる場
合(例えば、同一エントリ内に異なるアドレスのデータ
を記録する場合、アドレス空間が変化する場合、当該プ
ロセッサシステムを終了する場合等)にのみ行われる。
は、メモリ内のデータの書換えは、特に必要とされる場
合(例えば、同一エントリ内に異なるアドレスのデータ
を記録する場合、アドレス空間が変化する場合、当該プ
ロセッサシステムを終了する場合等)にのみ行われる。
通常のプロセッサシステムにおいては、ライトスルー
方式のキャッシュが用いられる場合が多いが、MIMD方式
のマルチプロセッサシステムにおいては、ライトスルー
方式のキャッシュを用いると、各プロセッサがメモリに
書き込みを行う頻度が高くなるために、バスの利用率が
高くなり、バスの転送能力が低下するおそれがある。換
言すれば、マルチプロセッサシステムを構成した意味が
なくなってしまう。
方式のキャッシュが用いられる場合が多いが、MIMD方式
のマルチプロセッサシステムにおいては、ライトスルー
方式のキャッシュを用いると、各プロセッサがメモリに
書き込みを行う頻度が高くなるために、バスの利用率が
高くなり、バスの転送能力が低下するおそれがある。換
言すれば、マルチプロセッサシステムを構成した意味が
なくなってしまう。
したがって、マルチプロセッサシステムにおいては、
ライトイン方式のキャッシュが利用される。
ライトイン方式のキャッシュが利用される。
ここで、ライトイン方式のバーチャルキャッシュの構
成を簡単に説明する。
成を簡単に説明する。
第5図はライトイン方式のバーチャルキャッシュのう
ち、最も構成の簡単なダイレクトマップ方式のキャッシ
ュの構成の一例を示す概略図である。この方式のキャッ
シュにおいては、このエントリはバーチャルアドレスの
下位ビットにより決定される。
ち、最も構成の簡単なダイレクトマップ方式のキャッシ
ュの構成の一例を示す概略図である。この方式のキャッ
シュにおいては、このエントリはバーチャルアドレスの
下位ビットにより決定される。
図において、キャッシュ20の記憶領域は、基本的に
は、バーチャルアドレスVAの上位ビットを記憶する領域
(タグ)21、および前記バーチャルアドレスVAに対応す
るデータを記憶する領域22、およびデータが書換えられ
たか否かを示すダーティビットを記憶する領域23より構
成されている。
は、バーチャルアドレスVAの上位ビットを記憶する領域
(タグ)21、および前記バーチャルアドレスVAに対応す
るデータを記憶する領域22、およびデータが書換えられ
たか否かを示すダーティビットを記憶する領域23より構
成されている。
以上のような構成を有するキャッシュにおいて、プロ
セッサがデータを必要とする場合には、まず、バーチャ
ルアドレスVAの上記ビットが比較器25に出力されると共
に、該バーチャルアドレスVAの下位ビットによりキャッ
シュのエントリが決定されて、該エントリ内の領域21よ
りバーチャルアドレスVAの上記ビットが読み出され、前
記比較器25に出力される。
セッサがデータを必要とする場合には、まず、バーチャ
ルアドレスVAの上記ビットが比較器25に出力されると共
に、該バーチャルアドレスVAの下位ビットによりキャッ
シュのエントリが決定されて、該エントリ内の領域21よ
りバーチャルアドレスVAの上記ビットが読み出され、前
記比較器25に出力される。
この比較器25により、前記各上位ビットが等しいと判
別されたときは、前記エントリの領域22に記憶されてい
るデータが読み出される。
別されたときは、前記エントリの領域22に記憶されてい
るデータが読み出される。
前記各上位ビットが等しいと判別されない場合(すな
わち、プロセッサが読み出しを希望するデータが当該キ
ャッシュ20内に記憶されていない場合)には、メモリを
アクセスして該当するデータを読み出し、同時に該デー
タおよびバーチャルアドレスVAの上位ビットを、該バー
チャルアドレスVAの下位ビットにより決定されるエント
リに記憶する。
わち、プロセッサが読み出しを希望するデータが当該キ
ャッシュ20内に記憶されていない場合)には、メモリを
アクセスして該当するデータを読み出し、同時に該デー
タおよびバーチャルアドレスVAの上位ビットを、該バー
チャルアドレスVAの下位ビットにより決定されるエント
リに記憶する。
キャッシュ内データを書換えた場合には、そのエント
リの領域23にダーティビットをたてておく。そして、そ
のエントリに異なるバーチャルアドレスVAのデータを記
憶させる場合であって、ダーティビットがたてられてい
るもののみ、そのデータをメモリに転送し、データの書
換えを行う。
リの領域23にダーティビットをたてておく。そして、そ
のエントリに異なるバーチャルアドレスVAのデータを記
憶させる場合であって、ダーティビットがたてられてい
るもののみ、そのデータをメモリに転送し、データの書
換えを行う。
ところで、マルチプロセッサシステムにおけるキャッ
シュ不整合問題を回避するには、あるプロセッサがキャ
ッシュ内データを書換えた場合に、他のキャッシュ内に
同一アドレスのデータが存在するときに、該データを書
換えることが必要である。この場合、各キャッシュ間は
システムバスを介して相互に接続されているので、他の
キャッシュ内に、書換えられたデータと同一データが存
在するか否かを確認するためには、リアルアドレスで行
わなければならない。
シュ不整合問題を回避するには、あるプロセッサがキャ
ッシュ内データを書換えた場合に、他のキャッシュ内に
同一アドレスのデータが存在するときに、該データを書
換えることが必要である。この場合、各キャッシュ間は
システムバスを介して相互に接続されているので、他の
キャッシュ内に、書換えられたデータと同一データが存
在するか否かを確認するためには、リアルアドレスで行
わなければならない。
ここで、このキャッシュが、バーチャルキャッシュで
ある場合には、第5図の破線で示されたように、各エン
トリに、該エントリに記憶されたデータのバーチャルア
ドレスVAに対応するリアルアドレスRAを記憶しておくこ
とが可能である。すなわち、メモリへのアクセスの際に
変換されたリアルアドレスRAを、領域24に記憶しておく
ことができる。
ある場合には、第5図の破線で示されたように、各エン
トリに、該エントリに記憶されたデータのバーチャルア
ドレスVAに対応するリアルアドレスRAを記憶しておくこ
とが可能である。すなわち、メモリへのアクセスの際に
変換されたリアルアドレスRAを、領域24に記憶しておく
ことができる。
ところが、このようにあらかじめリアルアドレスRAを
記憶しておいて、書換えられたデータに対応するリアル
アドレスRAを他のキャッシュに転送しても、そのキャッ
シュ内のどのエントリのリアルアドレスRAと比較するか
を決定することができない。
記憶しておいて、書換えられたデータに対応するリアル
アドレスRAを他のキャッシュに転送しても、そのキャッ
シュ内のどのエントリのリアルアドレスRAと比較するか
を決定することができない。
つまり、例えばデータの書換えに用いられたバーチャ
ルアドレスVAをシステムバス3を介して前記他のキャッ
シュに転送するためには、マップ機構(図示せず)を介
さなければならないために、リアルアドレスRAが前記他
のキャッシュに転送されるが、該キャッシュ内のエント
リを決定するためには、前記リアルアドレスRAをバーチ
ャルアドレスVAに再変換しなければならない。しかし、
前記マップ機構は、一般的には単なるテーブルにより構
成されているため、バーチャルアドレスVAをリアルアド
レスRAに変換できても、その逆の変換はできないのであ
る。
ルアドレスVAをシステムバス3を介して前記他のキャッ
シュに転送するためには、マップ機構(図示せず)を介
さなければならないために、リアルアドレスRAが前記他
のキャッシュに転送されるが、該キャッシュ内のエント
リを決定するためには、前記リアルアドレスRAをバーチ
ャルアドレスVAに再変換しなければならない。しかし、
前記マップ機構は、一般的には単なるテーブルにより構
成されているため、バーチャルアドレスVAをリアルアド
レスRAに変換できても、その逆の変換はできないのであ
る。
したがって、このダイレクトマップ方式のキャッシュ
は、マルチプロセッサシステムに適用されることができ
ない。セットアソシアティブ方式のキャッシュも同様で
ある。
は、マルチプロセッサシステムに適用されることができ
ない。セットアソシアティブ方式のキャッシュも同様で
ある。
これに対し、バーチャルアドレスVAの大小にかかわら
ず、アクセスされた順にそのエントリに記憶する方式の
CAMにおいては、各エントリごとに比較器が設けられて
いるので、リアルアドレスRAのみを他のキャッシュ(CA
M)に転送しても、該アドレスRAに対応するデータがそ
のキャッシュに記憶されているか否かを判断することが
できる。
ず、アクセスされた順にそのエントリに記憶する方式の
CAMにおいては、各エントリごとに比較器が設けられて
いるので、リアルアドレスRAのみを他のキャッシュ(CA
M)に転送しても、該アドレスRAに対応するデータがそ
のキャッシュに記憶されているか否かを判断することが
できる。
(発明が解決しようとする課題) 上記した従来の技術は、次のような問題点を有してい
た。
た。
すなわち、前述したように、従来のマルチプロセッサ
システムにおいては、キャッシュとしてCAMが用いられ
ているが、CAMは、各エントリごとに比較器を必要とす
るために、その構成が極めて複雑である。
システムにおいては、キャッシュとしてCAMが用いられ
ているが、CAMは、各エントリごとに比較器を必要とす
るために、その構成が極めて複雑である。
詳しく言えば、ダイレクトマップ方式、セットアソシ
アティブ方式等のキャッシュは、例えばRAMを用いて簡
単に構成されることができるが、CAMは、少なくともLSI
レベルの複雑な構成を必要とし、仮にこれを既成の回路
素子を用いて構成しようとすると、極めて大型の専有容
積を必要とする。
アティブ方式等のキャッシュは、例えばRAMを用いて簡
単に構成されることができるが、CAMは、少なくともLSI
レベルの複雑な構成を必要とし、仮にこれを既成の回路
素子を用いて構成しようとすると、極めて大型の専有容
積を必要とする。
この結果、当該マルチプロセッサシステムの構成も複
雑化し、また高価になる。
雑化し、また高価になる。
本発明は、前述の問題点を解決するためになされたも
のである。
のである。
(課題を解決するための手段および作用) 前記の問題点を解決するために、本発明は、ライトイ
ン方式のキャッシュを用いたマルチプロセッサシステム
において、各キャッシュのエントリを決定するバーチャ
ルアドレスVAの少なくとも下位ビットをシステムバスに
送出するという手段を講じた点に特徴がある。
ン方式のキャッシュを用いたマルチプロセッサシステム
において、各キャッシュのエントリを決定するバーチャ
ルアドレスVAの少なくとも下位ビットをシステムバスに
送出するという手段を講じた点に特徴がある。
そしてこれにより、あるプロセッサシステム内のデー
タを書換えた場合においても、該データに対応する他の
キャッシュのエントリを決定することができるという作
用効果を生じさせることができる。
タを書換えた場合においても、該データに対応する他の
キャッシュのエントリを決定することができるという作
用効果を生じさせることができる。
(実施例) 以下に、図面を参照して、本発明を詳細に説明する。
第2図は本発明が適用されるマルチプロセッサシステ
ムの概略構成図である。
ムの概略構成図である。
第2図において、複数のプロセッサ1−1〜1−N
は、それぞれキャッシュ(ローカルキャッシュ)2−1
〜2−Nを備えている。
は、それぞれキャッシュ(ローカルキャッシュ)2−1
〜2−Nを備えている。
以下の説明においては、前記プロセッサ1−1および
キャッシュ2−1、プロセッサ1−2およびキャッシュ
2−2、……等、一のプロセッサと該プロセッサが管理
するキャッシュとをプロセッサシステム(プロセッサシ
ステム100−1〜100−N)という。
キャッシュ2−1、プロセッサ1−2およびキャッシュ
2−2、……等、一のプロセッサと該プロセッサが管理
するキャッシュとをプロセッサシステム(プロセッサシ
ステム100−1〜100−N)という。
前記各プロセッサシステム100−1〜100−Nは、それ
ぞれシステムバス3を介してメモリ4に接続されてい
る。
ぞれシステムバス3を介してメモリ4に接続されてい
る。
第1図は本発明の一実施例に適用されるキャッシュ、
およびその近傍のブロック図である。第1図において、
第2,5図と同一の符号は、同一または同等部分をあらわ
している。
およびその近傍のブロック図である。第1図において、
第2,5図と同一の符号は、同一または同等部分をあらわ
している。
このキャッシュは、ダイレクトマップ方式かつライト
イン方式のキャッシュである。
イン方式のキャッシュである。
第1図において、このキャッシュ2−1(または2−
2、……、2−N)の記憶領域は、基本的には、バーチ
ャルアドレスVAの上位ビットを記憶する領域(タグ)2
1、および前記バーチャルアドレスVAに対応するデータ
を記憶する領域22、データが書換えられたか否かを示す
ダーティビットを記憶する領域23、および前記バーチャ
ルアドレスVAに対応するリアルアドレスRAを記憶する領
域24より構成されている。
2、……、2−N)の記憶領域は、基本的には、バーチ
ャルアドレスVAの上位ビットを記憶する領域(タグ)2
1、および前記バーチャルアドレスVAに対応するデータ
を記憶する領域22、データが書換えられたか否かを示す
ダーティビットを記憶する領域23、および前記バーチャ
ルアドレスVAに対応するリアルアドレスRAを記憶する領
域24より構成されている。
このキャッシュ2−1に接続されるプロセッサ1−1
のバーチャルアドレスレジスタ51は、その所定の下位ビ
ットの出力線がキャッシュ2−1のエントリ決定用信号
線に接続されている。プロセッサ1−1は、この出力線
を用いて、キャッシュ2−1のエントリを決定すること
ができる。
のバーチャルアドレスレジスタ51は、その所定の下位ビ
ットの出力線がキャッシュ2−1のエントリ決定用信号
線に接続されている。プロセッサ1−1は、この出力線
を用いて、キャッシュ2−1のエントリを決定すること
ができる。
前記バーチャルアドレスレジスタ51の所定の上位ビッ
トの出力線、およびキャッシュ2−1の領域21の出力線
は、比較器25に接続されている。前記比較器25の出力線
は、プロセッサ1−1に接続されている。
トの出力線、およびキャッシュ2−1の領域21の出力線
は、比較器25に接続されている。前記比較器25の出力線
は、プロセッサ1−1に接続されている。
前記バーチャルアドレスレジスタ51の下位ビット出力
線は、第1の信号線として、当該マルチプロセッサシス
テムのシステムバス3にも接続されている。
線は、第1の信号線として、当該マルチプロセッサシス
テムのシステムバス3にも接続されている。
また、前記第1の信号線より送出されるバーチャルア
ドレスVAの下位ビットを、システムバス3よりキャッシ
ュ2−1に転送するために、該システムバス3およびキ
ャッシュ2−1間には、第2の信号線が接続されてい
る。この例においては、前記システムバス3およびキャ
ッシュ2−1間には、ラッチ用のバーチャルアドレスレ
ジスタ52が配置されているが、特に設けられなくても良
い。
ドレスVAの下位ビットを、システムバス3よりキャッシ
ュ2−1に転送するために、該システムバス3およびキ
ャッシュ2−1間には、第2の信号線が接続されてい
る。この例においては、前記システムバス3およびキャ
ッシュ2−1間には、ラッチ用のバーチャルアドレスレ
ジスタ52が配置されているが、特に設けられなくても良
い。
当該キャッシュ2−1は、この第2の信号線より転送
されるバーチャルアドレスVAの下位ビットによっても、
そのエントリが決定されることができるように構成され
ている。
されるバーチャルアドレスVAの下位ビットによっても、
そのエントリが決定されることができるように構成され
ている。
すなわち、当該キャッシュ2−1は、プロセッサ1−
1より出力されるバーチャルアドレスVAの下位ビット、
およびシステムバス3より転送されるバーチャルアドレ
スVAの下位ビットの双方により、異なるタイミングまた
は同一タイミングでエントリが決定され、データを読出
すことができるように、2ポートに構成されている。
1より出力されるバーチャルアドレスVAの下位ビット、
およびシステムバス3より転送されるバーチャルアドレ
スVAの下位ビットの双方により、異なるタイミングまた
は同一タイミングでエントリが決定され、データを読出
すことができるように、2ポートに構成されている。
システムバス3より引き出された第2の信号線を用い
て決定されるエントリの領域24の出力線、およびシステ
ムバス3より出力されるリアルアドレスRAの出力信号線
は、比較器26に接続されている。前記比較器26の出力線
は、当該キャッシュ2−1を管理するプロセッサ1−1
に接続されている。
て決定されるエントリの領域24の出力線、およびシステ
ムバス3より出力されるリアルアドレスRAの出力信号線
は、比較器26に接続されている。前記比較器26の出力線
は、当該キャッシュ2−1を管理するプロセッサ1−1
に接続されている。
以上の構成を有するマルチプロセッサシステムにおい
て、キャッシュ2−1にデータを記憶させる場合、まず
プロセッサのバーチャルアドレスレジスタ51より出力さ
れるバーチャルアドレスVAの下位ビットにより、当該キ
ャッシュのエントリが決定される。そして、前記エント
リより領域21に記憶されたデータ(バーチャルアドレス
VAの上位ビット)が読み出され、比較器25において、前
記バーチャルアドレスレジスタ51より出力されたバーチ
ャルアドレスVAの上位ビットと比較される。
て、キャッシュ2−1にデータを記憶させる場合、まず
プロセッサのバーチャルアドレスレジスタ51より出力さ
れるバーチャルアドレスVAの下位ビットにより、当該キ
ャッシュのエントリが決定される。そして、前記エント
リより領域21に記憶されたデータ(バーチャルアドレス
VAの上位ビット)が読み出され、比較器25において、前
記バーチャルアドレスレジスタ51より出力されたバーチ
ャルアドレスVAの上位ビットと比較される。
前記両データが等しい場合には、前記エントリの領域
22内のデータがプロセッサに読み出される。
22内のデータがプロセッサに読み出される。
等しくない場合には、前記バーチャルアドレスVAが、
マップ機構(図示せず)によりリアルアドレスRAに変換
され、メモリに転送される。そして、前記リアルアドレ
スRAに対応するデータが該メモリより読み出され、当該
キャッシュの、前記バーチャルアドレスVAの下位ビット
により決定されるエントリの領域22に記憶される。
マップ機構(図示せず)によりリアルアドレスRAに変換
され、メモリに転送される。そして、前記リアルアドレ
スRAに対応するデータが該メモリより読み出され、当該
キャッシュの、前記バーチャルアドレスVAの下位ビット
により決定されるエントリの領域22に記憶される。
キャッシュ2−1内の所定エントリのデータを、同一
アドレスのデータとして他のデータに書換えた場合に
は、領域23にダーティビットをたてておく。
アドレスのデータとして他のデータに書換えた場合に
は、領域23にダーティビットをたてておく。
キャッシュ2−1内の所定エントリのデータを、異な
るアドレスのデータとして書換える場合には、そのエン
トリにダーティビットがたてられているものに限り、該
エントリ内データをメモリ4に出力し、該メモリ4内の
該当するデータの書換えを行う。このメモリ4へのデー
タ書換えの際には、前記バーチャルアドレスレジスタ51
よりバーチャルアドレスVAの下位ビットがシステムバス
3に出力され、また、同時にあるいはその後、該バーチ
ャルアドレスVAに対応するリアルアドレスRAがマップ機
構により変換されてシステムバス3に出力される。
るアドレスのデータとして書換える場合には、そのエン
トリにダーティビットがたてられているものに限り、該
エントリ内データをメモリ4に出力し、該メモリ4内の
該当するデータの書換えを行う。このメモリ4へのデー
タ書換えの際には、前記バーチャルアドレスレジスタ51
よりバーチャルアドレスVAの下位ビットがシステムバス
3に出力され、また、同時にあるいはその後、該バーチ
ャルアドレスVAに対応するリアルアドレスRAがマップ機
構により変換されてシステムバス3に出力される。
ここで、バーチャルアドレスVAがバーチャルページナ
ンバーおよびページオフセットより成り、また、リアル
アドレスRAがリアルページナンバーおよびページオフセ
ットより成る場合において、エントリ決定のためにバー
チャルアドレスレジスタ51より当該キャッシュに出力さ
れるバーチャルアドレスVAの下位ビットは、ページオフ
セットを含むものである必要があるが、第1の信号線を
介してシステムバス3に出力されるデータは、ページオ
フセット信号を含まないものであっても良い。
ンバーおよびページオフセットより成り、また、リアル
アドレスRAがリアルページナンバーおよびページオフセ
ットより成る場合において、エントリ決定のためにバー
チャルアドレスレジスタ51より当該キャッシュに出力さ
れるバーチャルアドレスVAの下位ビットは、ページオフ
セットを含むものである必要があるが、第1の信号線を
介してシステムバス3に出力されるデータは、ページオ
フセット信号を含まないものであっても良い。
当該プロセッサシステム以外のプロセッサシステムの
プロセッサは、システムバス3にバーチャルアドレスVA
の下位ビットが出力されるのを検出し、このビットをバ
ーチャルアドレスレジスタ52に一旦取り入れてラッチし
た後、該プロセッサに接続されたキャッシュに出力す
る。このキャッシュは、前記バーチャルアドレスVAの下
位ビットによりエントリが決定され、該エントリに記憶
されたリアルアドレスRAを比較器26に出力する。
プロセッサは、システムバス3にバーチャルアドレスVA
の下位ビットが出力されるのを検出し、このビットをバ
ーチャルアドレスレジスタ52に一旦取り入れてラッチし
た後、該プロセッサに接続されたキャッシュに出力す
る。このキャッシュは、前記バーチャルアドレスVAの下
位ビットによりエントリが決定され、該エントリに記憶
されたリアルアドレスRAを比較器26に出力する。
前記比較器26は、前記リアルアドレスRAと、システム
バス3を介して転送されたリアルアドレスRAとを比較す
る。
バス3を介して転送されたリアルアドレスRAとを比較す
る。
前記各アドレスが一致している場合には、データの書
換えが行われたキャッシュより、そのデータが取り込ま
れ、データ書換えが行われる。
換えが行われたキャッシュより、そのデータが取り込ま
れ、データ書換えが行われる。
さて、このように、各プロセッサは、システムバス3
にバーチャルアドレスVAの下位ビットが送出されたか否
かを常に監視し、また、キャッシュ内データを書換える
プロセッサは、その書換え時にバーチャルアドレスVAの
下位ビットをシステムバス3に送出する。
にバーチャルアドレスVAの下位ビットが送出されたか否
かを常に監視し、また、キャッシュ内データを書換える
プロセッサは、その書換え時にバーチャルアドレスVAの
下位ビットをシステムバス3に送出する。
この、システムバス3にバーチャルアドレスVAの下位
ビットが送出されたか否かを監視し、キャッシュ不整合
を回避すべくデータの書換えを行う各プロセッサの動作
を、さらに第3図を参照して説明する。
ビットが送出されたか否かを監視し、キャッシュ不整合
を回避すべくデータの書換えを行う各プロセッサの動作
を、さらに第3図を参照して説明する。
第3図は、各プロセッサの、バーチャルアドレスVAの
下位ビットの送出を監視し、キャッシュ不整合を回避す
るための動作を示すフローチャートである。
下位ビットの送出を監視し、キャッシュ不整合を回避す
るための動作を示すフローチャートである。
第3図において、まずステップS1においては、第2の
信号線よりバーチャルアドレスVAの下位ビットが出力さ
れたか否かが判別される。
信号線よりバーチャルアドレスVAの下位ビットが出力さ
れたか否かが判別される。
バーチャルアドレスVAの下位ビットが検出されたなら
ば、ステップS2において、前記下位ビットにより当該プ
ロセッサが管理するキャッシュのエントリが決定され、
該エントリの領域24よりリアルアドレスRAを読み出す。
ば、ステップS2において、前記下位ビットにより当該プ
ロセッサが管理するキャッシュのエントリが決定され、
該エントリの領域24よりリアルアドレスRAを読み出す。
ステップS3においては、読み出されたリアルアドレス
RAと、システムバス3より出力されたリアルアドレスRA
とが一致したか否かが判別される。
RAと、システムバス3より出力されたリアルアドレスRA
とが一致したか否かが判別される。
一致していなければ、当該処理はそのまま終了する。
一致している場合には、データの書換えが行われたキ
ャッシュより、そのデータを取り込み、当該プロセッサ
が管理するキャッシュ内の、所定エントリ内のデータを
書換える。そして、その後当該処理は終了する。
ャッシュより、そのデータを取り込み、当該プロセッサ
が管理するキャッシュ内の、所定エントリ内のデータを
書換える。そして、その後当該処理は終了する。
第4図は本発明の一実施例の機能ブロック図である。
第4図において、第1図と同一の符号は、同一または同
等部分をあらわしている。またこの図においては、複数
のプロセッサシステムの内の一のプロセッサシステム
(プロセッサシステム100−1)のみの機能が示されて
いる。
第4図において、第1図と同一の符号は、同一または同
等部分をあらわしている。またこの図においては、複数
のプロセッサシステムの内の一のプロセッサシステム
(プロセッサシステム100−1)のみの機能が示されて
いる。
第4図において、第1のデータ書換え手段61は、当該
プロセッサより出力されるバーチャルアドレスVAによ
り、データの書換えを行う手段である。
プロセッサより出力されるバーチャルアドレスVAによ
り、データの書換えを行う手段である。
第2のデータ書換え手段62は、システムバス3より転
送されるバーチャルアドレスVAの下位ビット、およびリ
アルアドレスRAにより、キャッシュ不整合を回避するた
めにデータの書換えを行う手段である。
送されるバーチャルアドレスVAの下位ビット、およびリ
アルアドレスRAにより、キャッシュ不整合を回避するた
めにデータの書換えを行う手段である。
前記第1のデータ書換え手段61により、キャッシュ2
−1の所定エントリ内のデータ書換えが行われた後、バ
ーチャルアドレス下位ビット送出手段63は、前記書換え
に用いたバーチャルアドレスVAの下位ビットをシステム
バス3に送出する。また、マップ機構64は、前記書換え
時に、前記バーチャルアドレスVAをリアルアドレスRAに
変化し、システムバス3に送出する。
−1の所定エントリ内のデータ書換えが行われた後、バ
ーチャルアドレス下位ビット送出手段63は、前記書換え
に用いたバーチャルアドレスVAの下位ビットをシステム
バス3に送出する。また、マップ機構64は、前記書換え
時に、前記バーチャルアドレスVAをリアルアドレスRAに
変化し、システムバス3に送出する。
バーチャルアドレス下位ビット検出手段65は、システ
ムバス3内に送出されたバーチャルアドレスVAの下位ビ
ットを検出し、該ビットをリアルアドレス読出し手段66
に出力する。
ムバス3内に送出されたバーチャルアドレスVAの下位ビ
ットを検出し、該ビットをリアルアドレス読出し手段66
に出力する。
前記リアルアドレス読出し手段66は、前記下位ビット
により決定されるキャッシュ2−1のエントリよりリア
ルアドレスRAを読みだし、比較器26に出力する。
により決定されるキャッシュ2−1のエントリよりリア
ルアドレスRAを読みだし、比較器26に出力する。
前記比較器26は、この読み出されたリアルアドレスR
A、およびシステムバス3に送出されたリアルアドレスR
Aを比較し、その結果を第2のデータ書換え手段62に出
力する。
A、およびシステムバス3に送出されたリアルアドレスR
Aを比較し、その結果を第2のデータ書換え手段62に出
力する。
前記第2のデータ書換え手段62は、比較されたリアル
アドレスRAが互いに同じものであれば、システムバス3
を介して、データの書換えが行われたキャッシュより該
データを取り込み、キャッシュ2−1内の所定エントリ
のデータを書換える。比較されたリアルアドレスRAが互
いに同じものでなければ、データの書換えを行わない。
アドレスRAが互いに同じものであれば、システムバス3
を介して、データの書換えが行われたキャッシュより該
データを取り込み、キャッシュ2−1内の所定エントリ
のデータを書換える。比較されたリアルアドレスRAが互
いに同じものでなければ、データの書換えを行わない。
さて、本発明の構成は、基本的には、プロセッサによ
りキャッシュ内データを書換える際に、キャッシュのエ
ントリを決定するバーチャルアドレスVAの下位ビットを
システムバス3に送出するようにした点に特徴がある。
りキャッシュ内データを書換える際に、キャッシュのエ
ントリを決定するバーチャルアドレスVAの下位ビットを
システムバス3に送出するようにした点に特徴がある。
このように構成されることにより、あるプロセッサシ
ステムのキャッシュ内データの書換えが行われた場合
に、該データの書換えに用いられたバーチャルアドレス
VAに対応するリアルアドレスRAを他のキャッシュに転送
しても、該リアルアドレスRAを比較すべき、前記他のキ
ャッシュ内のエントリを決定することができ、これによ
り、キャッシュ不整合を回避することができる。
ステムのキャッシュ内データの書換えが行われた場合
に、該データの書換えに用いられたバーチャルアドレス
VAに対応するリアルアドレスRAを他のキャッシュに転送
しても、該リアルアドレスRAを比較すべき、前記他のキ
ャッシュ内のエントリを決定することができ、これによ
り、キャッシュ不整合を回避することができる。
なお、第3図に示されたような、当該マルチプロセッ
サシステムを構成する各プロセッサが行う、キャッシュ
不整合回避のための処理動作(いわゆるスヌーピ動作)
は、公知の手法を用いて当業者により種々の形態に構成
されることができ、同図に示されたもののみに限定され
ないことは当然である。
サシステムを構成する各プロセッサが行う、キャッシュ
不整合回避のための処理動作(いわゆるスヌーピ動作)
は、公知の手法を用いて当業者により種々の形態に構成
されることができ、同図に示されたもののみに限定され
ないことは当然である。
また、前述の説明においては、キャッシュのエントリ
を決定するバーチャルアドレスVAの下位ビットのみが第
1の信号線を介してシステムバス3に送出されるととも
に、該下位ビットのみが第2の信号線を介してキャッシ
ュに転送されるものとして説明したが、本発明は特にこ
れのみに限定されることはなく、リアルアドレスRAすべ
てをシステムバス3に送出し、また該システムバス3よ
りキャッシュ内に取り込むようにしても良いことは当然
である。
を決定するバーチャルアドレスVAの下位ビットのみが第
1の信号線を介してシステムバス3に送出されるととも
に、該下位ビットのみが第2の信号線を介してキャッシ
ュに転送されるものとして説明したが、本発明は特にこ
れのみに限定されることはなく、リアルアドレスRAすべ
てをシステムバス3に送出し、また該システムバス3よ
りキャッシュ内に取り込むようにしても良いことは当然
である。
さらに、前記実施例は、ダイレクトマップ方式のキャ
ッシュに本発明を適用した例であるが、本発明は特にこ
れのみに限定されることなく、セットアソシアティブ方
式等のキャッシュに適用されても良いことは当然であ
る。この場合の構成は当業者により容易に創作されるこ
とができるので、その説明は省略する。
ッシュに本発明を適用した例であるが、本発明は特にこ
れのみに限定されることなく、セットアソシアティブ方
式等のキャッシュに適用されても良いことは当然であ
る。この場合の構成は当業者により容易に創作されるこ
とができるので、その説明は省略する。
(発明の効果) 以上の説明から明らかなように、本発明によれば、次
のような効果が達成される。
のような効果が達成される。
キャッシュ内データの書換えを行ったときに該データ
に対応するバーチャルアドレスVAの下位ビットを他のキ
ャッシュに転送することができるので、該キャッシュ
の、データを書換えるべきエントリを決定することがで
きる。
に対応するバーチャルアドレスVAの下位ビットを他のキ
ャッシュに転送することができるので、該キャッシュ
の、データを書換えるべきエントリを決定することがで
きる。
この結果、マルチプロセッサシステムにライトイン方
式で、かつダイレクトマップ方式あるいはセットアソシ
アティブ方式等のキャッシュを用いても、キャッシュの
不整合を回避することができる。すなわち、構成容易な
ダイレクトマップ方式あるいはセットアソシアティブ方
式等のキャッシュを用いて、マルチプロセッサシステム
を構成することができる。
式で、かつダイレクトマップ方式あるいはセットアソシ
アティブ方式等のキャッシュを用いても、キャッシュの
不整合を回避することができる。すなわち、構成容易な
ダイレクトマップ方式あるいはセットアソシアティブ方
式等のキャッシュを用いて、マルチプロセッサシステム
を構成することができる。
したがって、当該マルチプロセッサシステムを容易に
構成することができる。
構成することができる。
また、この結果、当該マルチプロセッサシステムを小
型かつ安価に製作することができる。
型かつ安価に製作することができる。
第1図は本発明の一実施例に適用されるキャッシュ、お
よびその近傍のブロック図である。 第2図は本発明が適用されるマルチプロセッサシステム
の概略構成図である。 第3図は、各プロセッサの、バーチャルアドレスVAの下
位ビットの送出を監視し、キャッシュ不整合を回避する
ための動作を示すフローチャートである。 第4図は本発明の一実施例の機能ブロック図である。 第5図はライトイン方式、ダイレクトマップ方式のバー
チャルキャッシュの構成の一例を示す概略図である。 1−1〜1−N……プロセッサ、2−1,2−N……キャ
ッシュ、3……システムバス、4……メモリ、25,26…
…比較器、61……第1のデータ書換え手段、62……第2
のデータ書換え手段、63……バーチャルアドレス下位ビ
ット送出手段、64……マップ機構、65……バーチャルア
ドレス下位ビット検出手段、66……リアルアドレス読出
し手段、100−1〜100−N……プロセッサシステム
よびその近傍のブロック図である。 第2図は本発明が適用されるマルチプロセッサシステム
の概略構成図である。 第3図は、各プロセッサの、バーチャルアドレスVAの下
位ビットの送出を監視し、キャッシュ不整合を回避する
ための動作を示すフローチャートである。 第4図は本発明の一実施例の機能ブロック図である。 第5図はライトイン方式、ダイレクトマップ方式のバー
チャルキャッシュの構成の一例を示す概略図である。 1−1〜1−N……プロセッサ、2−1,2−N……キャ
ッシュ、3……システムバス、4……メモリ、25,26…
…比較器、61……第1のデータ書換え手段、62……第2
のデータ書換え手段、63……バーチャルアドレス下位ビ
ット送出手段、64……マップ機構、65……バーチャルア
ドレス下位ビット検出手段、66……リアルアドレス読出
し手段、100−1〜100−N……プロセッサシステム
Claims (3)
- 【請求項1】プロセッサ、およびライトイン方式のキャ
ッシュより成る複数のプロセッサシステムと、メモリ
と、前記各プロセッサシステムおよび前記メモリを接続
するシステムバスとより成るMIMD方式のマルチプロセッ
サシステムであって、 前記各プロセッサシステムは、各キャッシュのエントリ
を決定するためのバーチャルアドレスVAの少なくとも下
位ビットを、前記システムバスに送出することを特徴と
するマルチプロセッサシステム。 - 【請求項2】プロセッサ、およびライトイン方式のキャ
ッシュより成る複数のプロセッサシステムと、メモリ
と、前記各プロセッサシステムおよび前記メモリを接続
するシステムバスとより成るMIMD方式のマルチプロセッ
サシステムであって、 前記各プロセッサシステムは、 各キャッシュのエントリを決定するためのバーチャルア
ドレスVAの少なくとも下位ビットを、前記システムバス
に送出する第1の信号線と、 前記システムバスに送出されたバーチャルアドレスVAの
少なくとも下位ビットを、各キャッシュに転送する第2
の信号線とを具備したことを特徴とするマルチプロセッ
サシステム。 - 【請求項3】プロセッサ、およびライトイン方式のキャ
ッシュより成る複数のプロセッサシステムと、メモリ
と、前記各プロセッサシステムおよび前記メモリを接続
するシステムバスとより成るMIMD方式のマルチプロセッ
サシステムであって、 前記各プロセッサシステムは、 バーチャルアドレスVAにより、キャッシュ内のデータ書
換えを行う第1のデータ書換え手段と、 前記第1のデータ書換え手段によるデータ書換え時に、
バーチャルアドレスVAの少なくとも下位ビットを前記シ
ステムバスに送出するバーチャルアドレス下位ビット送
出手段と、 前記第1のデータ書換え手段によるデータ書換え時に、
前記バーチャルアドレスVAをリアルアドレスRAに変換し
て、前記システムバスに送出する手段と、 他のプロセッサシステムより、前記システムバスに送出
されるバーチャルアドレスVAの少なくとも下位ビットを
検出するバーチャルアドレス下位ビット検出手段と、 前記バーチャルアドレス下位ビット検出手段により検出
されたバーチャルアドレスVAの少なくとも下位ビットに
より決定されるキャッシュのエントリより、リアルアド
レスRAを読み出すリアルアドレス読出し手段と、 前記リアルアドレス読出し手段により読出されたリアル
アドレスRA、および前記システムバスに送出されたリア
ルアドレスRAを比較する比較器と、 前記比較器により前記各リアルアドレスRAが一致してい
る場合に、前記他のプロセッサシステムにより書換えら
れたデータを取り込み、当該キャッシュ内データを書換
える第2のデータ書換え手段とを具備したことを特徴と
するマルチプロセッサシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63085233A JP2696899B2 (ja) | 1988-04-08 | 1988-04-08 | マルチプロセッサシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63085233A JP2696899B2 (ja) | 1988-04-08 | 1988-04-08 | マルチプロセッサシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH01258168A JPH01258168A (ja) | 1989-10-16 |
JP2696899B2 true JP2696899B2 (ja) | 1998-01-14 |
Family
ID=13852845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63085233A Expired - Fee Related JP2696899B2 (ja) | 1988-04-08 | 1988-04-08 | マルチプロセッサシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2696899B2 (ja) |
-
1988
- 1988-04-08 JP JP63085233A patent/JP2696899B2/ja not_active Expired - Fee Related
Non-Patent Citations (1)
Title |
---|
Proceedings of the 18th Annual Hawaii International Conference on System Sciences 1985 P.477−486 |
Also Published As
Publication number | Publication date |
---|---|
JPH01258168A (ja) | 1989-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4747043A (en) | Multiprocessor cache coherence system | |
US6167492A (en) | Circuit and method for maintaining order of memory access requests initiated by devices coupled to a multiprocessor system | |
US4959777A (en) | Write-shared cache circuit for multiprocessor system | |
US6546471B1 (en) | Shared memory multiprocessor performing cache coherency | |
US6529968B1 (en) | DMA controller and coherency-tracking unit for efficient data transfers between coherent and non-coherent memory spaces | |
US5249284A (en) | Method and system for maintaining data coherency between main and cache memories | |
JPH0668735B2 (ja) | キヤツシユメモリ− | |
KR930016891A (ko) | 캐쉬 제어기 | |
JPH10154100A (ja) | 情報処理システム及び装置及びその制御方法 | |
JP2695017B2 (ja) | データ転送方式 | |
JPH07152647A (ja) | 共有メモリマルチプロセッサ | |
US5727179A (en) | Memory access method using intermediate addresses | |
JPS5832427B2 (ja) | 多重情報処理システム | |
US6704820B1 (en) | Unified cache port consolidation | |
JP2696899B2 (ja) | マルチプロセッサシステム | |
EP0153109B1 (en) | Cache coherence system | |
JPH0511337B2 (ja) | ||
US6826654B2 (en) | Cache invalidation bus for a highly scalable shared cache memory hierarchy | |
US6826655B2 (en) | Apparatus for imprecisely tracking cache line inclusivity of a higher level cache | |
JPH0529943B2 (ja) | ||
US7519778B2 (en) | System and method for cache coherence | |
JPH03230238A (ja) | キャッシュメモリ制御方式 | |
JPH0830568A (ja) | 分散メモリ型並列計算機のキャッシュ制御方式 | |
JP3293872B2 (ja) | キャッシュ一致化方式 | |
JPS63240651A (ja) | キヤツシユメモリ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |