JP3365488B2 - メモリ共有型マルチプロセッサシステム - Google Patents

メモリ共有型マルチプロセッサシステム

Info

Publication number
JP3365488B2
JP3365488B2 JP28059498A JP28059498A JP3365488B2 JP 3365488 B2 JP3365488 B2 JP 3365488B2 JP 28059498 A JP28059498 A JP 28059498A JP 28059498 A JP28059498 A JP 28059498A JP 3365488 B2 JP3365488 B2 JP 3365488B2
Authority
JP
Japan
Prior art keywords
data
memory
cache
cpu
cache 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.)
Expired - Fee Related
Application number
JP28059498A
Other languages
English (en)
Other versions
JP2000090008A (ja
Inventor
彰浩 竹谷
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP28059498A priority Critical patent/JP3365488B2/ja
Publication of JP2000090008A publication Critical patent/JP2000090008A/ja
Application granted granted Critical
Publication of JP3365488B2 publication Critical patent/JP3365488B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】
【0001】
【発明が属する技術分野】本発明は、ライトバック方式
のキャッシュメモリを備えた複数のCPUを用いて構成
されたメモリ共有型マルチプロセッサシステムに関し、
特にキャッシュメモリのコヒーレンシ制御に特徴を有す
るメモリ共有型マルチプロセッサシステムに関する。
【0002】
【従来の技術】メモリ共有型マルチプロセッサシステム
は、プロセッサ数の増加に伴ってシステムバスの使用効
率が低下したり、データ転送速度が低下したりすること
を防ぐため、キャッシュメモリを介して多階層のバスシ
ステムを形成している。図7及び図8に、従来のこの種
のメモリ共有型マルチプロセッサシステムの構成例を示
す。
【0003】図7に示すメモリ共有型マルチプロセッサ
システムは、ライトバック方式のキャッシュメモリを有
する複数のCPUを備えた2組のCPUクラスタ71
0、720と、I/Oクラスタ730、740と、メイ
ンメモリ750とをシステムバス760で接続してあ
る。また、CPUクラスタ710、720は、図8に示
すように、ホストバス840を介して接続された複数の
CPU811、812、・・・、81n及びホストブリ
ッジ830と、各CPU811、812、・・・、81
nに接続されたローカルキャッシュ821、822、・
・・、82nと、ホストブリッジ830に接続されたブ
リッジキャッシュ850とを備え、ホストブリッジ83
0を介してシステムバス760に接続されている。
【0004】メモリ共有型マルチプロセッサシステムで
は、各CPUに対応する各キャッシュメモリに記憶され
たデータの内容のコヒーレンシを維持する、すなわちメ
インメモリ及び同一のデータを共有する他のキャッシュ
メモリの記憶内容と常に一致させておくために、キャッ
シュメモリ間及びキャッシュメモリとメインメモリとの
間でデータの転送や保有するデータの無効化といった種
々の制御を行う必要がある。上記のように構成された従
来のメモリ共有型マルチプロセッサシステムは、このよ
うなローカルキャッシュ821、822、・・・、82
nのコヒーレンシ制御のためにシステムバス760を使
用している。
【0005】また、CPU811、812、・・・、8
1nが要求するデータが自CPU811、812、・・
・、81nのローカルキャッシュ821、822、・・
・、82nに記憶されていない場合、すなわちキャッシ
ュミスが生じた場合や、更新しようとするデータが複数
のローカルキャッシュ821、822、・・・、82n
にも共有されている場合に、所望のデータの転送を要求
したり、当該データを共有する他のローカルキャッシュ
821、822、・・・、82nに対して記憶している
当該データの無効化を要求する必要がある。この場合
に、種々の要求を送信したりデータの転送を行うために
システムバスを使用している。
【0006】
【発明が解決しようとする課題】上述したように、従来
のメモリ共有型マルチプロセッサシステムは、キャッシ
ュメモリのコヒーレンシ制御のためにシステムバスを使
用するため、システムバスに多大な負担がかかり、シス
テム全体の処理効率の低下を招くという欠点があった。
【0007】また、キャッシュミスが生じた場合や複数
のキャッシュメモリに共有されているデータを更新しよ
うとする場合に、所定の要求の送信やデータ転送にシス
テムバスを使用するため、ペナルティが大きいという欠
点があった。
【0008】本発明の目的は、上記従来の欠点を解決
し、ライトバック方式のキャッシュメモリを有する複数
のCPUで構成される2個のCPUクラスタを、高速な
キャッシュバスで接続すると共に、グローバルキャッシ
ュを用いて各CPUのキャッシュメモリの状態を管理す
ることによって、システムバスの過負荷によるシステム
全体の処理効率の低下を防止するメモリ共有型マルチプ
ロセッサシステムを提供することにある。
【0009】また、本発明の他の目的は、上記目的に加
えて、CPUがキャッシュメモリにアクセスする際のレ
イテンシの向上を図ったメモリ共有型マルチプロセッサ
システムを提供することにある。
【0010】
【課題を解決するための手段】上記の目的を達成する本
発明は、ライトバック方式のキャッシュメモリを備えた
複数のCPUを用いて構成されたメモリ共有型マルチプ
ロセッサシステムにおいて、前記複数のCPUと、各C
PUに個別に接続された複数のライトバック方式のロー
カルキャッシュメモリと、該ローカルキャッシュメモリ
間のコヒーレンシ制御を行うブリッジ手段とを備えた2
個のCPUクラスタと、前記CPUクラスタの前記ロー
カルキャッシュメモリにおけるデータの状態を管理する
グローバルキャッシュメモリと、前記CPUクラスタに
対してシステムバスを介して接続されたメインメモリと
を備え、前記2個のCPUクラスタと前記グローバルキ
ャッシュメモリとが前記システムバスよりも高速なキャ
ッシュバスを介して接続され、前記CPUクラスタが他
方のCPUクラスタの前記ローカルキャッシュに格納さ
れているデータにアクセスする場合、前記グローバルキ
ャッシュメモリにおける前記ローカルキャッシュメモリ
のデータの状態を判別することにより、他方のCPUク
ラスタへのアクセス要求に対する応答を待つことなく、
前記グローバルキャッシュメモリに格納されているデー
タを利用することを特徴とする。
【0011】請求項2の本発明のメモリ共有型マルチプ
ロセッサシステムは、前記グローバルキャッシュメモリ
が、前記CPUクラスタのいずれかの前記CPUにより
前記メインメモリから読出されたデータを格納すると共
に、前記CPUクラスタの前記ローカルキャッシュメモ
におけるデータの格納状態を示すタグデータを保持
し、前記CPUクラスタの前記ブリッジ手段が、前記キ
ャッシュバスを介して前記グローバルキャッシュメモリ
にアクセスし、前記CPUクラスタの前記ローカルキャ
ッシュメモリに格納されたデータの内容と、前記グロー
バルキャッシュメモリに格納されたデータの内容とを常
に一致させるように制御することを特徴とする。
【0012】請求項3の本発明のメモリ共有型マルチプ
ロセッサシステムは、前記グローバルキャッシュメモリ
にて保持される前記タグデータが、前記ローカルキャッ
シュメモリにおけるデータの格納状態として、少なくと
も、データが無効であることを示す無効状態と、同一デ
ータが複数の前記ローカルキャッシュメモリに保持され
ていることを示す共有状態と、データが唯一つの前記
ーカルキャッシュメモリに保持されていることを示す排
他状態と、データがいずれの前記ローカルキャッシュメ
モリにも保持されていないことを示す非保持状態の4つ
の状態を区別して示すことを特徴とする。
【0013】請求項4の本発明のメモリ共有型マルチプ
ロセッサシステムは、前記グローバルキャッシュメモリ
にて保持される前記タグデータが、前記グローバルキャ
ッシュメモリに格納されているデータごとに設定され、
対応データの前記ローカルキャッシュメモリにおける格
納状態を示すステート情報と、対応データが格納されて
いる前記ローカルキャッシュメモリを特定するディレク
トリ情報とを含み、前記ステート情報が、前記ローカル
キャッシュメモリにおける対応データの格納状態とし
て、少なくとも、データが無効であることを示す無効状
態と、データが複数の前記ローカルキャッシュメモリ
保持されていることを示す共有状態と、データが唯一つ
の前記ローカルキャッシュメモリに保持されていること
を示す排他状態と、データがいずれの前記ローカルキャ
ッシュメモリにも保持されていないことを示す非保持状
態の4つの状態を区別して示し、前記ディレクトリ情報
が、前記2個のCPUクラスタに搭載される全ての前記
ローカルキャッシュメモリに関して、対応データを保持
しているかどうかを示すことを特徴とする。
【0014】請求項5の本発明のメモリ共有型マルチプ
ロセッサシステムは、前記ステート情報が、前記ローカ
ルキャッシュメモリに保持されたデータが該データを保
持する前記ローカルキャッシュメモリに接続した前記C
PUにより更新されたかどうかを示す情報をさらに含む
ことを特徴とする。
【0015】請求項6の本発明のメモリ共有型マルチプ
ロセッサシステムは、前記グローバルキャッシュメモリ
が、2方向からの入出力が可能なデュアルポートメモリ
であり、前記各CPUクラスタに対して独立に接続さ
れ、前記各CPUクラスタの前記ブリッジ手段から独立
にアクセスすることを許容することを特徴とする。
【0016】
【発明の実施の形態】以下、本発明の実施の形態につい
て図面を参照して詳細に説明する。
【0017】図1は、本発明の第1の実施形態によるメ
モリ共有型マルチプロセッサシステムの構成を示すブロ
ック図である。図1を参照すると、本実施形態のメモリ
共有型マルチプロセッサシステムは、ライトバック方式
のキャッシュメモリを有する複数のCPUを備えた2組
のCPUクラスタ10、20と、I/Oクラスタ30、
40と、メインメモリ50とをシステムバス60で接続
すると共に、CPUクラスタ10、20どうしをキャッ
シュバス80で接続し、かつキャッシュバス80にキャ
ッシュメモリであるグローバルキャッシュ70を接続し
てある。キャッシュバス80は、システムバス60に比
べて高速のバスであり、かつCPUクラスタ10、20
間のデータの送受信及びグローバルキャッシュ70によ
るデータ制御のためにのみ使用される。
【0018】CPUクラスタ10は、図2に示すよう
に、ホストバス14を介して接続された複数のCPU1
11、112、・・・、11n及びホストブリッジ13
と、各CPU111、112、・・・、11nに接続さ
れたキャッシュメモリであるローカルキャッシュ12
1、122、・・・、12nとを備え、ホストブリッジ
13を介してシステムバス60及びキャッシュバス80
に接続されている。同様に、CPUクラスタ20は、ホ
ストバス24を介して接続された複数のCPU211、
212、・・・、21n及びホストブリッジ23と、各
CPU211、212、・・・、21nに接続されたロ
ーカルキャッシュ221、222、・・・、22nとを
備え、ホストブリッジ23を介してシステムバス60及
びキャッシュバス80に接続されている。なお、CPU
クラスタ10とCPUクラスタ20とは、区別のために
符号を変えてあるが、図示のように、同一の構成を備え
ている。
【0019】グローバルキャッシュ70は、図3に示す
ように、データメモリ71と、タグメモリ72とを備え
る。データメモリ71には、メインメモリから読出され
たデータ(キャッシュライン)が格納され、タグメモリ
72には、データメモリ71におけるキャッシュライン
に関する各種の情報が格納されている。
【0020】キャッシュバス80は、図3に示すよう
に、データメモリ71及びタグメモリ72を制御する制
御信号と、キャッシュラインのアドレスと、データと、
キャッシュラインに関する各種の情報を示すタグとを伝
送するのに用いられる。
【0021】キャッシュバス80により伝送されるタグ
の構成を図5に示す。図5を参照すると、本実施形態で
使用されるタグは、キャッシュラインのアドレスの一部
であるタグアドレス721と、キャッシュラインの状態
を表すステート722と、該当キャッシュラインがロー
カルキャッシュ121、122、・・・、12n、22
1、222、・・・、22nに存在するかどうかを表す
ディレクトリ723とを含む。
【0022】ステート722のデータ構成としては、例
えば、ローカルキャッシュ121、122、・・・、1
2n、221、222、・・・、22nにおけるキャッ
シュラインの後述する4つの状態をコード化して示す2
ビットと、データメモリ71内の対応するキャッシュラ
インが変更状態であるかどうかを示す1ビットとの合計
3ビットのデータとすることができる。ここで、キャッ
シュラインの4つの状態とは、データメモリ71内にお
ける対応するキャッシュラインのデータが無効であるこ
とを示す無効状態と、対応するキャッシュラインが複数
のローカルキャッシュに保持されていることを示す共有
状態と、対応するキャッシュラインが唯一つのローカル
キャッシュに保持されていることを示す排他状態と、対
応するキャッシュラインがどのローカルキャッシュにも
保持されていないことを示す非保持状態である。また、
キャッシュラインが変更状態であるとは、データメモリ
71内の対応するキャッシュラインがメインメモリ50
内のデータとは異なる内容に書き換えられていることを
示す。
【0023】ディレクトリ723のデータ構成として
は、例えば、ローカルキャッシュ121、122、・・
・、12n、221、222、・・・、22nに1対1
で対応したビットを含み、各ビットによって対応するロ
ーカルキャッシュ上に対応するキャッシュラインが存在
するかどうかを表すことができる。
【0024】I/Oクラスタ30は、図4に示すよう
に、I/Oクラスタ30は、I/Oバス34を介して接
続された複数のI/Oコントローラ311、312、・
・・、31m及びI/Oブリッジ33と、各I/Oコン
トローラに接続されたI/O装置321、322、・・
・、32mとを備える。I/Oブリッジ33は、I/O
バス34とシステムバス60との間のブリッジの役割を
果たす。
【0025】以上のように構成された本実施形態のメモ
リ共有型マルチプロセッサシステムにおいて、各CPU
クラスタ10、20に搭載されたホストブリッジ13、
23は、CPU111、112、・・・、11n、21
1、212、・・・、21nからの要求に応じて、グロ
ーバルキャッシュ70に対してデータの読み書きを行っ
たり、タグの更新を行う。タグの更新は、ローカルキャ
ッシュ121、122、・・・、12n、221、22
2、・・・、22nにおけるキャッシュラインの状態に
応じて、ステート722の内容を更新したり、ディレク
トリ723の内容を更新したりする。また、ホストブリ
ッジ13、23は、必要な処理の内容に応じて、CPU
111、112、・・・、11n、211、212、・
・・、21nから送られたキャッシュラインを、当該キ
ャッシュラインを要求するCPUに転送したり、メイン
メモリ50から読出したデータをグローバルキャッシュ
70に格納したりする。
【0026】図6は、本発明の第2の実施形態によるメ
モリ共有型マルチプロセッサシステムの構成を示すブロ
ック図である。図6を参照すると、本実施形態のメモリ
共有型マルチプロセッサシステムは、ライトバック方式
のキャッシュメモリを有する複数のCPUを備えた2組
のCPUクラスタ10、20と、I/Oクラスタ30、
40と、メインメモリ50とをシステムバス60で接続
すると共に、CPUクラスタ10、20どうしを、グロ
ーバルキャッシュ90を挿んでキャッシュバス80で接
続してある。
【0027】本実施形態において、グローバルキャッシ
ュ90及びグローバルキャッシュ90とCPUクラスタ
10、20との接続関係を除く他の構成要素は、図1に
示した第1実施形態によるメモリ共有型マルチプロセッ
サシステムの構成要素と同様であるため、同一の符号を
伏して説明を省略する。
【0028】グローバルキャッシュ90は、2方向から
の入出力が可能なデュアルポートメモリであり、CPU
クラスタ10のホストブリッジ13と、CPUクラスタ
20のホストブリッジ23とから、それぞれ独立してア
ドレスやデータの転送が可能である。すなわち、図1に
示す第1の実施形態は、一方のホストブリッジ13、2
3がキャッシュバス80を介してグローバルキャッシュ
70を使用している間は他方のホストブリッジ23、1
3はグローバルキャッシュ70に対する処理を開始でき
ない。これに対し、本実施形態は、グローバルキャッシ
ュ90の異なるキャッシュラインに対しては、ホストブ
リッジ13及びホストブリッジ23が同時にアクセスが
可能である。また、図6に示すように、グローバルキャ
ッシュ90とホストブリッジ13、23とは1対1で接
続するため、データ転送を高速化することができる。
【0029】
【実施例】次に、第1の実施形態に関して、所定のCP
Uが所定のデータを読出す場合と更新する場合における
具体的な実施例を説明する。
【0030】まず、CPU111がデータの読出しを行
う場合の動作について説明する。この場合、データが、
自CPU111のローカルキャッシュ121にある場
合、CPUクラスタ10のローカルキャッシュ121以
外のローカルキャッシュにある場合、CPUクラスタ2
0のローカルキャッシュにある場合で、大きく動作が異
なる。また、ローカルキャッシュ121以外のいずれか
のローカルキャッシュに保持されているデータの内容が
書き換えられている場合にも固有の動作が行われる。
【0031】CPU111は、最初に、ローカルキャッ
シュ121にアクセスして所望のデータが保持されてい
るかどうかを調べる。ローカルキャッシュ121に当該
データが保持されている場合(ヒットした場合)、ロー
カルキャッシュ121から当該データを読み出して処理
を終了する。
【0032】ローカルキャッシュ121に当該データが
保持されていない場合(ミスした場合)、CPU111
は、ホストバス14を介して当該データのリード要求を
発行する。CPUクラスタ10内のCPU112、・・
・、11nは、発行されたリード要求を受け付けると、
該当するデータをローカルキャッシュ122、・・・1
2nに保持し、かつデータの書き換えが行われていない
かチェックする。CPU11i(CPU112ないしC
PU11nのうちのいずれか1つのCPU)がローカル
キャッシュ12i(ローカルキャッシュ122ないしロ
ーカルキャッシュ12nのうちのいずれか1つのローカ
ルキャッシュであって、CPU11iに対応するローカ
ルキャッシュ)上で該当データの書き換えを行っていた
場合、CPU11iは、書き換え後の当該データをホス
トバス14を介してCPU111に転送する。
【0033】ホストブリッジ13は、CPU111から
発行されたリード要求を受け付けると、キャッシュバス
80を介してグローバルキャッシュ70から該当データ
および対応するタグを読み出す。CPUクラスタ20の
ホストブリッジ23は、キャッシュバス80を監視し、
ホストブリッジ13によりグローバルキャッシュ70か
らタグが読み出された場合に当該タグを受信する。ホス
トブリッジ13およびホストブリッジ23は、読み出し
たタグを基に、ヒット/ミスの判定をすると共に、キャ
ッシュラインの状態および存在場所を判別する。
【0034】判別の結果、当該データのがキャッシュラ
インがクラスタ10内のローカルキャッシュ12iにお
いてヒットし、当該キャッシュラインの状態が共有状態
か、非保持状態か、あるいは排他状態である場合、ホス
トブリッジ13は、グローバルキャッシュ70から読み
出したデータを、ホストバス14を介してCPU111
に転送する。また、グローバルキャッシュ70における
当該キャッシュラインに対応するタグを更新する。タグ
の更新は、キャッシュラインの状態が変わる場合は、ス
テート722とディレクトリ723とを更新し、キャッ
シュラインの状態が変わらない場合は、ディレクトリ7
23のみを更新する。この場合、当該タグのステート7
22が共有状態であれば、ステート722は更新せず、
ディレクトリ723をローカルキャッシュ121に当該
データが存在することを示す内容に更新する。当該タグ
のステート722が非保持状態であれば、ステート72
2を排他状態とすると共に、ディレクトリ723をロー
カルキャッシュ121に当該データが存在することを示
す内容に更新する。当該タグのステート722が排他状
態であれば、ステート722を共有状態とすると共に、
ディレクトリ723をローカルキャッシュ121に当該
データが存在することを示す内容に更新する。ただし、
排他状態でCPU11iにおいてデータの書き換えが行
われていた場合、ホストブリッジ13は、CPU111
へのデータの転送を行わず、CPU11iからホストバ
ス14上に転送されたデータを受け取り、グローバルキ
ャッシュ70の該当データの内容を更新すると共に、必
要に応じてタグを更新する。
【0035】判別の結果、当該データのキャッシュライ
ンがクラスタ20内のローカルキャッシュ22j(ロー
カルキャッシュ221ないしローカルキャッシュ22n
のうちのいずれか1つのローカルキャッシュ)において
ヒットし、排他状態である場合、ホストブリッジ23
が、ホストバス24を介してCPU21j(CPU21
1ないしCPU21nのうちのいずれか1つのCPUで
あって、ローカルキャッシュ22jに対応するCPU)
に当該データのリード要求を行う。CPU21jにおい
て該当データの書き換えが行なわれていた場合、CPU
21jは、書き換え後のデータをホストバス24を介し
てホストブリッジ23に転送する。ホストブリッジ23
は、CPU21jから受け取った当該データを、キャッ
シュバス80を介してホストブリッジ13に転送する。
また、グローバルキャッシュ70のデータメモリ71に
格納されているデータをCPU21jで書き換えられた
内容に更新すると共に、タグメモリ72の対応するタグ
を更新し、ステート722を共有状態とする。ホストブ
リッジ13は、ホストブリッジ23から転送されたデー
タを、ホストバス14を介してCPU111に転送す
る。また、グローバルキャッシュ70の対応するタグの
ディレクトリ723を、ローカルキャッシュ121に当
該データが存在することを示す内容に更新する。
【0036】一方、該当データがCPU21jにおいて
書き換えられていない場合、CPU21jは、書き換え
未実施を示す通知をホストブリッジ23に転送する。ホ
ストブリッジ23は、ホストブリッジ13に書き換え未
実施通知を転送する。ホストブリッジ13は、先にグロ
ーバルキャッシュ70から読み出したデータを、ホスト
バス14を介してCPU111に転送する。また、グロ
ーバルキャッシュ70の対応するタグを更新し、ステー
ト722を共有状態とすると共に、ディレクトリ723
をローカルキャッシュ121に当該データが存在するこ
とを示す内容に更新する。
【0037】判別の結果、全てのローカルキャッシュ1
21、122、・・・、12n、221、222、・・
・、22nにおいてミスした場合、ホストブリッジ13
は、システムバス60に当該データのリード要求を発行
し、メインメモリ50から当該データを読み出す。そし
て、メインメモリ50から受け取ったデータを、ホスト
バス14を介してCPU111に転送すると共に、キャ
ッシュバス80を介してグローバルキャッシュ70のデ
ータメモリ71に書き込む。また、タグメモリ72に、
当該データのキャッシュラインに対応するタグを書き込
む。
【0038】次に、CPU111がデータの書き換えを
行う場合の動作について説明する。この場合、データ
が、自CPU111のローカルキャッシュ121にある
場合とローカルキャッシュ121以外のローカルキャッ
シュにある場合とで、大きく動作が異なる。また、ロー
カルキャッシュ121にあるデータが排他状態で保持さ
れているか共有状態で保持されているかによっても動作
が異なる。
【0039】CPU111は、最初に、ローカルキャッ
シュ121にアクセスして所望のデータが保持されてい
るかどうかを調べる。当該データがローカルキャッシュ
121において排他状態でヒットした場合、CPU11
1は、直ちにローカルキャッシュ121のデータを書き
換える。
【0040】当該データがローカルキャッシュ121に
おいて共有状態でヒットした場合、以下の手順で動作が
行われる。まず、CPU111は、ホストバス14に対
して、当該データを保持する他のローカルキャッシュ1
22、・・・、12nの該当データを無効化する要求を
発行する。CPUクラスタ10内のCPU112、・・
・、11nは、発行された無効化要求を受け付けると、
ローカルキャッシュ122、・・・、12n上に保持し
ている該当データを無効化する。
【0041】ホストブリッジ13は、CPU111から
発行された無効化要求を受け付けると、キャッシュバス
80を介してグローバルキャッシュ70から該当データ
に対応するタグを読み出す。CPUクラスタ20のホス
トブリッジ23は、キャッシュバス80を監視し、ホス
トブリッジ13によりグローバルキャッシュ70からタ
グが読み出された場合に当該タグを受信する。ホストブ
リッジ13および23は、読み出したタグを基に、該当
データがクラスタ20のローカルキャッシュ221、2
22、・・・、22nに保持されているかどうかを判断
する。
【0042】該当データがクラスタ20のローカルキャ
ッシュ221、222、・・・、22nに保持されてい
ない場合、ホストブリッジ13は、無効化完了通知をホ
ストバス14を介してCPU111に転送すると共に、
グローバルキャッシュ70の対応するタグを更新してス
テート722を排他状態にする。
【0043】該当データがクラスタ20のローカルキャ
ッシュ221、222、・・・、22nに保持されてい
る場合、ホストブリッジ23は、ホストバス24に対し
て該当データの無効化要求を発行する。CPU211、
212、・・・、21nは、発行された無効化要求を受
け付けると、該当するデータをローカルキャッシュ22
1、222、・・・、22nに保持しているかどうか確
認し、保持していれば、該当データを無効化する。ま
た、ホストブリッジ23は、キャッシュバス80を介し
てホストブリッジ13に無効化完了通知を発行し、グロ
ーバルキャッシュ70のタグを更新してステート722
を排他状態にする。ホストブリッジ13は、ホストブリ
ッジ23から無効化完了通知を受信すると、当該無効化
完了通知を、ホストバス14を介してCPU111に転
送する。
【0044】CPU111は、ホストブリッジ13から
の無効化完了通知を受信した後、ローカルキャッシュ1
21に保持されている当該データを書き換える。
【0045】当該データがローカルキャッシュ121に
保持されていなかった場合、以下の手順で動作が行われ
る。まず、CPU111は、ホストバス14に対してリ
ード・無効化要求を発行する。CPU112、・・・、
11nは、発行されたリード・無効化要求を受け付ける
と、該当するデータをローカルキャッシュ122、・・
・12n上に保持しているかどうか、保持している場合
は当該データの書き換えを行っているかどうかをチェッ
クする。チェックの結果、ローカルキャッシュ122、
・・・12nのいずれかにおいて当該データを保持して
いるが、いずれのデータに対しても書き換えが行われて
いない場合、保持されている該当データを無効化する。
ローカルキャッシュ122、・・・12nのいずれかに
当該データが保持されており、かついずれかのデータに
対して書き換えが行われている場合、書き換え後のデー
タをホストバス14を介してCPU111に転送した
後、ローカルキャッシュ122、・・・12nに保持さ
れている当該データを無効化する。
【0046】ホストブリッジ13は、CPU111から
発行されたリード・無効化要求を受け付けると、キャッ
シュバス80を介してグローバルキャッシュ70から該
当データおよび対応するタグを読み出す。CPUクラス
タ20のホストブリッジ23は、キャッシュバス80を
監視し、ホストブリッジ13によりグローバルキャッシ
ュ70からタグが読み出された場合に当該タグを受信す
る。ホストブリッジ13およびホストブリッジ23は、
読み出したタグを基に、ヒット/ミスの判定をすると共
に、キャッシュラインの状態および存在場所を判別す
る。
【0047】判別の結果、当該データのがキャッシュラ
インがクラスタ10内のローカルキャッシュ12iにお
いてヒットし、当該キャッシュラインの状態が共有状態
か、非保持状態か、あるいは排他状態である場合、ホス
トブリッジ13は、グローバルキャッシュ70から読み
出したデータを、ホストバス14を介してCPU111
に転送する。また、グローバルキャッシュ70における
当該キャッシュラインに対応するタグを更新する。タグ
の更新は、キャッシュラインの状態が変わる場合は、ス
テート722とディレクトリ723とを更新し、キャッ
シュラインの状態が変わらない場合は、ディレクトリ7
23のみを更新する。この場合、当該タグのステート7
22が排他状態である場合を除き、ステート722を排
他状態とすると共に、ディレクトリ723をローカルキ
ャッシュ121に当該データが存在することを示す内容
に更新する。当該タグのステート722が排他状態の場
合は、ディレクトリ723のみをローカルキャッシュ1
21に当該データが存在することを示す内容に更新す
る。ただし、排他状態でCPU11iにおいてデータの
書き換えが行われていた場合、ホストブリッジ13は、
CPU111へのデータの転送を行わず、CPU11i
からホストバス14上に転送されたデータを受け取り、
グローバルキャッシュ70の該当データの内容を更新す
ると共に、必要に応じてタグを更新する。また、共有状
態でクラスタ20のローカルキャッシュ221、22
2、・・・、22nにも当該データが保持されている場
合、ホストブリッジ23は、ホストバス24を介して当
該データを保持しているローカルキャッシュ221、2
22、・・・、22nに対応するCPU211、21
2、・・・、21nに対して当該データの無効化要求を
発行する。
【0048】判別の結果、当該データのキャッシュライ
ンがクラスタ20内のローカルキャッシュ22jにおい
てヒットし、排他状態である場合、ホストブリッジ23
が、ホストバス24を介してCPU21jに当該データ
のリード・無効化要求を行う。CPU21jにおいて該
当データの書き換えが行われていた場合、CPU21j
は、書き換え後のデータをホストバス24を介してホス
トブリッジ23に転送した後、ローカルキャッシュ21
jに保持されている該当データを無効化する。ホストブ
リッジ23は、CPU21jから受け取った当該データ
を、キャッシュバス80を介してホストブリッジ13に
データを転送する。また、グローバルキャッシュ70の
データメモリ71に格納されているデータをCPU21
jで書換えられた内容に更新すると共に、タグメモリ7
2の対応するタグを更新し、ステート722を排他状態
とする。ホストブリッジ13は、ホストブリッジ23か
ら転送されたデータを、ホストバス14を介してCPU
111に転送する。また、グローバルキャッシュ70の
対応するタグのディレクトリ723を、ローカルキャッ
シュ121に当該データが存在することを示す内容に更
新する。
【0049】一方、該当データがCPU21jにおいて
書き換えられていない場合、CPU21jは、書き換え
未実施通知をホストブリッジ23に転送した後、ローカ
ルキャッシュ22jに保持されている当該データを無効
化する。ホストブリッジ23は、ホストブリッジ13に
書き換え未実施通知を転送する。ホストブリッジ13
は、先にグローバルキャッシュ70から読み出したデー
タを、ホストバス14を介してCPU111に転送す
る。また、グローバルキャッシュ70の対応するタグを
更新し、ステート722を排他状態とすると共に、ディ
レクトリ723をローカルキャッシュ121に当該デー
タが存在することを示す内容に更新する。
【0050】判別の結果、全てのローカルキャッシュ1
21、122、・・・、12n、221、222、・・
・、22nにおいてミスした場合、ホストブリッジ13
は、システムバス60に当該データのリード要求を発行
し、メインメモリ50から当該データを読み出す。そし
て、メインメモリ50から受け取ったデータを、ホスト
バス14を介してCPU111に転送すると共に、キャ
ッシュバス80を介してグローバルキャッシュ70のデ
ータメモリ71に書き込む。また、タグメモリ72に、
当該データのキャッシュラインに対応するタグを書き込
む。
【0051】グローバルキャッシュ70に所望のデータ
が格納されていなかった場合、すなわちグローバルキャ
ッシュ70においてミスした場合、グローバルキャッシ
ュ70から読み出したキャッシュラインが共有状態であ
れば、各CPUクラスタ10、20のホストブリッジ1
3、23は、ホストバス14、24に対して該当データ
の無効化要求を発行する。読み出したキャッシュライン
が排他状態であれば、ホストブリッジ13、23は、ホ
ストバス14、24に対して該当データのリード・無効
化要求を発行する。CPU11i、21jは、リード・
無効化要求を受信すると、書き換え後のデータもしくは
書き込み未実施通知をホストブリッジ13、23に転送
した後、ローカルキャッシュ12i、22jに保持され
ている該当データを無効化する。また、グローバルキャ
ッシュ70から読み出したキャッシュラインが変更状態
であれば、ホストブリッジ13、23は、該当データを
システムバス60を介してメインメモリ50に書き戻
す。ただし、読み出したキャッシュラインが排他状態で
あり、かつCPU11i、21jから書き換え後のデー
タを転送された場合は、受け取ったデータをメインメモ
リ50に書き戻す。
【0052】したがって、ローカルキャッシュ121、
122、・・・、12n、221,222、・・・、2
2nは、常に、グローバルキャッシュ70のサブセット
となる。すなわち、ローカルキャッシュ121、12
2、・・・、12n、221、222、・・・、22n
上に存在するキャッシュラインは、必ずグローバルキャ
ッシュ70上に存在することになる。
【0053】以上好ましい実施例をあげて本発明を説明
したが、本発明は必ずしも上記実施例に限定されるもの
ではない。
【0054】
【発明の効果】以上説明したように、本発明のメモリ共
有型マルチプロセッサシステムによれば、ライトバック
方式のキャッシュメモリを有する複数のCPUで構成さ
れる2個のCPUクラスタを、高速なキャッシュバスで
接続すると共に、グローバルキャッシュを用いて各CP
Uのキャッシュメモリの状態を管理することにより、キ
ャッシュメモリのコヒーレンシ制御およびCPUクラス
タ間のデータ転送にシステムバスを使用する必要が無く
なるため、システムバスの使用効率を向上させることが
でき、これにより、システム全体の処理効率の低下を防
止することができるという効果がある。
【0055】また、本発明によれば、グローバルキャッ
シュからタグを読み出した時点で、他のクラスタ内のロ
ーカルキャッシュに所望のキャッシュラインが存在する
かどうかを判断すると共に、存在する場合に当該データ
の書き換えが行われているかどうかを推測すること、及
びCPUクラスタ間及びCPUクラスタとグローバルキ
ャッシュとの間のデータ転送を高速なキャッシュバスを
用いて行うことにより、レイテンシを向上させるため、
キャッシュミスが生じた場合や複数のキャッシュメモリ
に共有されているデータを更新しようとする場合に、ペ
ナルティが少なくなるという効果がある。
【図面の簡単な説明】
【図1】 本発明の第1の実施形態によるメモリ共有型
マルチプロセッサシステムの構成を示すブロック図であ
る。
【図2】 本実施形態におけるCPUクラスタの構成を
示すブロック図である。
【図3】 本実施形態におけるグローバルキャッシュの
構成を示すブロック図である。
【図4】 本実施形態におけるI/Oクラスタの構成を
示すブロック図である。
【図5】 本実施形態において用いられるタグの構成を
示す図である。
【図6】 本発明の第2の実施形態によるメモリ共有型
マルチプロセッサシステムの構成を示すブロック図であ
る。
【図7】 従来のメモリ共有型マルチプロセッサシステ
ムの構成を示すブロック図である。
【図8】 従来のCPUクラスタの構成を示すブロック
図である。
【符号の説明】
10、20 CPUクラスタ 13 ホストブリッジ 14 ホストバス 30、40 I/Oクラスタ 50 メインメモリ 60 システムバス 70、90 グローバルキャッシュ 80 キャッシュバス 111、112、・・・、11n CPU 211、212、・・・、21n CPU 121、122、・・・、12n ローカルキャッシ
ュ 221、222、・・・、22n ローカルキャッシ
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平5−35697(JP,A) 特開 平8−235061(JP,A) 特開 平9−44401(JP,A) 特開 昭58−123151(JP,A) 特開 平2−58153(JP,A) 特開 平4−3241(JP,A) Stenstrom P.,A Su rvey of Cache Cohe rence Schemes for Multiprocessors,IE EE COMPUTER,米国,IEE E,1990年 6月,Vol.23,No. 6,p.12−24 (58)調査した分野(Int.Cl.7,DB名) G06F 12/08 G06F 15/16 - 15/177

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 ライトバック方式のキャッシュメモリを
    備えた複数のCPUを用いて構成されたメモリ共有型マ
    ルチプロセッサシステムにおいて、 前記複数のCPUと、各CPUに個別に接続された複数
    のライトバック方式のローカルキャッシュメモリと、該
    ローカルキャッシュメモリ間のコヒーレンシ制御を行う
    ブリッジ手段とを備えた2個のCPUクラスタと、 前記CPUクラスタの前記ローカルキャッシュメモリ
    おけるデータの状態を管理するグローバルキャッシュメ
    モリと、 前記CPUクラスタに対してシステムバスを介して接続
    されたメインメモリとを備え、 前記2個のCPUクラスタと前記グローバルキャッシュ
    メモリとが前記システムバスよりも高速なキャッシュバ
    スを介して接続され、 前記CPUクラスタが他方のCPUクラスタの前記ロー
    カルキャッシュに格納されているデータにアクセスする
    場合、前記グローバルキャッシュメモリにおける前記ロ
    ーカルキャッシュメモリのデータの状態を判別すること
    により、他方のCPUクラスタへのアクセス要求に対す
    る応答を待つことなく、前記グローバルキャッシュメモ
    リに格納されているデータを利用すること を特徴とする
    メモリ共有型マルチプロセッサシステム。
  2. 【請求項2】 前記グローバルキャッシュメモリが、 前記CPUクラスタのいずれかの前記CPUにより前記
    メインメモリから読出されたデータを格納すると共に、 前記CPUクラスタの前記ローカルキャッシュメモリ
    おけるデータの格納状態を示すタグデータを保持し、 前記CPUクラスタの前記ブリッジ手段が、 前記キャッシュバスを介して前記グローバルキャッシュ
    メモリにアクセスし、前記CPUクラスタの前記ローカ
    ルキャッシュメモリに格納されたデータの内容と、前記
    グローバルキャッシュメモリに格納されたデータの内容
    とを常に一致させるように制御することを特徴とする請
    求項1に記載のメモリ共有型マルチプロセッサシステ
    ム。
  3. 【請求項3】 前記グローバルキャッシュメモリにて保
    持される前記タグデータが、前記ローカルキャッシュメ
    モリにおけるデータの格納状態として、少なくとも、デ
    ータが無効であることを示す無効状態と、同一データが
    複数の前記ローカルキャッシュメモリに保持されている
    ことを示す共有状態と、データが唯一つの前記ローカル
    キャッシュメモリに保持されていることを示す排他状態
    と、データがいずれの前記ローカルキャッシュメモリ
    も保持されていないことを示す非保持状態の4つの状態
    を区別して示すことを特徴とする請求項2に記載のメモ
    リ共有型マルチプロセッサシステム。
  4. 【請求項4】 前記グローバルキャッシュメモリにて保
    持される前記タグデータが、前記グローバルキャッシュ
    メモリに格納されているデータごとに設定され、対応デ
    ータの前記ローカルキャッシュメモリにおける格納状態
    を示すステート情報と、対応データが格納されている前
    ローカルキャッシュメモリを特定するディレクトリ情
    報とを含み、 前記ステート情報が、前記ローカルキャッシュメモリ
    おける対応データの格納状態として、少なくとも、デー
    タが無効であることを示す無効状態と、データが複数の
    前記ローカルキャッシュメモリに保持されていることを
    示す共有状態と、データが唯一つの前記ローカルキャッ
    シュメモリに保持されていることを示す排他状態と、デ
    ータがいずれの前記ローカルキャッシュメモリにも保持
    されていないことを示す非保持状態の4つの状態を区別
    して示し、 前記ディレクトリ情報が、前記2個のCPUクラスタに
    搭載される全ての前記ローカルキャッシュメモリに関し
    て、対応データを保持しているかどうかを示すことを特
    徴とする請求項2に記載のメモリ共有型マルチプロセッ
    サシステム。
  5. 【請求項5】 前記ステート情報が、前記ローカルキャ
    ッシュメモリに保持されたデータが該データを保持する
    前記ローカルキャッシュメモリに接続した前記CPUに
    より更新されたかどうかを示す情報をさらに含むことを
    特徴とする請求項4に記載のメモリ共有型マルチプロセ
    ッサシステム。
  6. 【請求項6】 前記グローバルキャッシュメモリが、2
    方向からの入出力が可能なデュアルポートメモリであ
    り、前記各CPUクラスタに対して独立に接続され、前
    記各CPUクラスタの前記ブリッジ手段から独立にアク
    セスすることを許容することを特徴とする請求項1ない
    し請求項5に記載のメモリ共有型マルチプロセッサシス
    テム。
JP28059498A 1998-09-16 1998-09-16 メモリ共有型マルチプロセッサシステム Expired - Fee Related JP3365488B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP28059498A JP3365488B2 (ja) 1998-09-16 1998-09-16 メモリ共有型マルチプロセッサシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP28059498A JP3365488B2 (ja) 1998-09-16 1998-09-16 メモリ共有型マルチプロセッサシステム

Publications (2)

Publication Number Publication Date
JP2000090008A JP2000090008A (ja) 2000-03-31
JP3365488B2 true JP3365488B2 (ja) 2003-01-14

Family

ID=17627218

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28059498A Expired - Fee Related JP3365488B2 (ja) 1998-09-16 1998-09-16 メモリ共有型マルチプロセッサシステム

Country Status (1)

Country Link
JP (1) JP3365488B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5709207B2 (ja) * 2011-03-04 2015-04-30 Necプラットフォームズ株式会社 メモリシステム、キャッシュメモリ制御方法及びメモリ制御プログラム
JP5575947B2 (ja) * 2013-04-04 2014-08-20 ルネサスエレクトロニクス株式会社 マルチプロセッサ装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Stenstrom P.,A Survey of Cache Coherence Schemes for Multiprocessors,IEEE COMPUTER,米国,IEEE,1990年 6月,Vol.23,No.6,p.12−24

Also Published As

Publication number Publication date
JP2000090008A (ja) 2000-03-31

Similar Documents

Publication Publication Date Title
US5706463A (en) Cache coherent computer system that minimizes invalidation and copyback operations
US7032074B2 (en) Method and mechanism to use a cache to translate from a virtual bus to a physical bus
KR100318789B1 (ko) 멀티프로세서 데이타 처리 시스템에서의 캐쉬를 관리하는시스템과 방법
US5652859A (en) Method and apparatus for handling snoops in multiprocessor caches having internal buffer queues
JP2982868B2 (ja) メモリ待ち時間を短縮する方法およびコンピュータ・システム
US5740400A (en) Reducing cache snooping overhead in a multilevel cache system with multiple bus masters and a shared level two cache by using an inclusion field
US20070226424A1 (en) Low-cost cache coherency for accelerators
US6772298B2 (en) Method and apparatus for invalidating a cache line without data return in a multi-node architecture
JPH10333985A (ja) データ供給方法及びコンピュータ・システム
JPH10289155A (ja) Smpバスの共用状態でのキャッシュ・ラインの共用介入方法及びシステム
JPH10289156A (ja) Smpバスの最近読取り状態でのキャッシュ・ラインの共用介入方法及びシステム
JPH10289154A (ja) Smpバスの排他状態でのキャッシュ・ラインの共用を行う方法及び装置
KR20050011152A (ko) 멀티프로세서 시스템 및 멀티프로세서 시스템의 캐쉬일관성 유지 방법
JPH06110844A (ja) 分散共有メモリ型マルチプロセッサシステム
US7370155B2 (en) Chained cache coherency states for sequential homogeneous access to a cache line with outstanding data response
JPH11328026A (ja) ホバ―リング(h)及びリ―セント(r)状態を有するキャッシュ・コヒ―レンシ・プロトコル
JP3009430B2 (ja) プロセッサおよびそのキャッシュメモリ制御方法
US6807608B2 (en) Multiprocessor environment supporting variable-sized coherency transactions
US20050251623A1 (en) Method for completing full cacheline stores with address-only bus operations
US6336169B1 (en) Background kill system bus transaction to optimize coherency transactions on a multiprocessor system bus
JP2000330965A (ja) マルチプロセッサシステム及びそのメモリアクセストランザクションの転送方法
JPH10501914A (ja) 共用キャッシュ・メモリ装置
US20060212660A1 (en) Method and an apparatus to reduce network utilization in a multiprocessor system
JP3365488B2 (ja) メモリ共有型マルチプロセッサシステム
US6826654B2 (en) Cache invalidation bus for a highly scalable shared cache memory hierarchy

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081101

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081101

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091101

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091101

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101101

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees