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

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

Info

Publication number
JP2000090008A
JP2000090008A JP10280594A JP28059498A JP2000090008A JP 2000090008 A JP2000090008 A JP 2000090008A JP 10280594 A JP10280594 A JP 10280594A JP 28059498 A JP28059498 A JP 28059498A JP 2000090008 A JP2000090008 A JP 2000090008A
Authority
JP
Japan
Prior art keywords
data
cache
memory
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.)
Granted
Application number
JP10280594A
Other languages
English (en)
Other versions
JP3365488B2 (ja
Inventor
Akihiro Takeya
彰浩 竹谷
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)

Abstract

(57)【要約】 【課題】 システムバスの過負荷によるシステム全体の
処理効率の低下を防止すると共に、CPUがキャッシュ
メモリにアクセスする際のレイテンシの向上を図ったメ
モリ共有型マルチプロセッサシステムを提供する。 【解決手段】 複数のCPU111、112、・・・、
11n、211、212、・・・、21nと、各CPU
に個別に接続された複数のライトバック方式のローカル
キャッシュ121、122、・・・、12n、221、
222、・・・、22nと、該ローカルキャッシュ間の
コヒーレンシ制御を行うホストブリッジ13、14とを
備えた2個のCPUクラスタ10、20と、ローカルキ
ャッシュにおけるデータの状態を管理するグローバルキ
ャッシュ70とを備え、2個のCPUクラスタ10、2
0と第2のキャッシュメモリ70とがシステムバス60
よりも高速なキャッシュバス80を介して接続される。

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に個別に接続された複数のライトバック方式の第1
のキャッシュメモリと、該第1のキャッシュメモリ間の
コヒーレンシ制御を行うブリッジ手段とを備えた2個の
CPUクラスタと、前記CPUクラスタの前記第1のキ
ャッシュメモリにおけるデータの状態を管理する第2の
キャッシュメモリと、前記CPUクラスタに対してシス
テムバスを介して接続されたメインメモリとを備え、前
記2個のCPUクラスタと前記第2のキャッシュメモリ
とが前記システムバスよりも高速なキャッシュバスを介
して接続されていることを特徴とする。
【0011】請求項2の本発明のメモリ共有型マルチプ
ロセッサシステムは、前記第2のキャッシュメモリが、
前記CPUクラスタのいずれかの前記CPUにより前記
メインメモリから読出されたデータを格納すると共に、
前記CPUクラスタの前記第1のキャッシュメモリにお
けるデータの格納状態を示すタグデータを保持し、前記
CPUクラスタの前記ブリッジ手段が、前記キャッシュ
バスを介して前記第2のキャッシュメモリにアクセス
し、前記CPUクラスタの前記第1のキャッシュメモリ
に格納されたデータの内容と、前記第2のキャッシュメ
モリに格納されたデータの内容とを常に一致させるよう
に制御することを特徴とする。
【0012】請求項3の本発明のメモリ共有型マルチプ
ロセッサシステムは、前記第2のキャッシュメモリにて
保持される前記タグデータが、前記第1のキャッシュメ
モリにおけるデータの格納状態として、少なくとも、デ
ータが無効であることを示す無効状態と、同一データが
複数の前記第1のキャッシュメモリに保持されているこ
とを示す共有状態と、データが唯一つの前記第1のキャ
ッシュメモリに保持されていることを示す排他状態と、
データがいずれの前記第1のキャッシュメモリにも保持
されていないことを示す非保持状態の4つの状態を区別
して示すことを特徴とする。
【0013】請求項4の本発明のメモリ共有型マルチプ
ロセッサシステムは、前記第2のキャッシュメモリにて
保持される前記タグデータが、前記第2のキャッシュメ
モリに格納されているデータごとに設定され、対応デー
タの前記第1のキャッシュメモリにおける格納状態を示
すステート情報と、対応データが格納されている前記第
1のキャッシュメモリを特定するディレクトリ情報とを
含み、前記ステート情報が、前記第1のキャッシュメモ
リにおける対応データの格納状態として、少なくとも、
データが無効であることを示す無効状態と、データが複
数の前記第1のキャッシュメモリに保持されていること
を示す共有状態と、データが唯一つの前記第1のキャッ
シュメモリに保持されていることを示す排他状態と、デ
ータがいずれの前記第1のキャッシュメモリにも保持さ
れていないことを示す非保持状態の4つの状態を区別し
て示し、前記ディレクトリ情報が、前記2個のCPUク
ラスタに搭載される全ての前記第1のキャッシュメモリ
に関して、対応データを保持しているかどうかを示すこ
とを特徴とする。
【0014】請求項5の本発明のメモリ共有型マルチプ
ロセッサシステムは、前記ステート情報が、前記第1の
キャッシュメモリに保持されたデータが該データを保持
する前記第1のキャッシュメモリに接続した前記CPU
により更新されたかどうかを示す情報をさらに含むこと
を特徴とする。
【0015】請求項6の本発明のメモリ共有型マルチプ
ロセッサシステムは、前記第2のキャッシュメモリが、
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
0と、各CPU111、112、・・・、11nに接続
されたキャッシュメモリであるローカルキャッシュ12
1、122、・・・、12nとを備え、ホストブリッジ
130を介してシステムバス60及びキャッシュバス8
0に接続されている。同様に、CPUクラスタ20は、
ホストバス24を介して接続された複数のCPU21
1、212、・・・、21n及びホストブリッジ230
と、各CPU211、212、・・・、21nに接続さ
れたローカルキャッシュ221、222、・・・、22
nとを備え、ホストブリッジ230を介してシステムバ
ス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(ローカルキャッシュ112ないしロ
ーカルキャッシュ11nのうちのいずれか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(CPU11
2ないしCPU11nのうちのいずれか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、211、・・・、21n CPU 121、121、・・・、12n ローカルキャッシ
ュ 221、221、・・・、22n ローカルキャッシ

Claims (6)

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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012185649A (ja) * 2011-03-04 2012-09-27 Nec Computertechno Ltd メモリシステム、キャッシュメモリ制御方法及びメモリ制御プログラム
JP2013140630A (ja) * 2013-04-04 2013-07-18 Renesas Electronics Corp マルチプロセッサ装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012185649A (ja) * 2011-03-04 2012-09-27 Nec Computertechno Ltd メモリシステム、キャッシュメモリ制御方法及びメモリ制御プログラム
JP2013140630A (ja) * 2013-04-04 2013-07-18 Renesas Electronics Corp マルチプロセッサ装置

Also Published As

Publication number Publication date
JP3365488B2 (ja) 2003-01-14

Similar Documents

Publication Publication Date Title
US8103835B2 (en) Low-cost cache coherency for accelerators
US5706463A (en) Cache coherent computer system that minimizes invalidation and copyback operations
US5537575A (en) System for handling cache memory victim data which transfers data from cache to the interface while CPU performs a cache lookup using cache status information
US6631448B2 (en) Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol
US7032078B2 (en) Shared memory multiprocessing system employing mixed broadcast snooping and directory based coherency protocols
US7032074B2 (en) Method and mechanism to use a cache to translate from a virtual bus to a physical bus
KR101497002B1 (ko) 스누프 필터링 메커니즘
EP0743601A2 (en) A system and method for improving cache performance in a multiprocessing system
US6260117B1 (en) Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency
JP2000250812A (ja) メモリ・キャッシュ・システムおよびその管理方法
KR19990072315A (ko) 다중-레벨메모리계층구조를포함하는데이터처리시스템용캐시코히어런시프로토콜
US5559987A (en) Method and apparatus for updating a duplicate tag status in a snoop bus protocol based computer system
US7222220B2 (en) Multiprocessing system employing address switches to control mixed broadcast snooping and directory based coherency protocols transparent to active devices
JPH06110844A (ja) 分散共有メモリ型マルチプロセッサシステム
JPH11328026A (ja) ホバ―リング(h)及びリ―セント(r)状態を有するキャッシュ・コヒ―レンシ・プロトコル
US5987544A (en) System interface protocol with optional module cache
US6807608B2 (en) Multiprocessor environment supporting variable-sized coherency transactions
KR100326632B1 (ko) 에이치_알 상태를 포함하는 캐시 일관성 프로토콜
US20040030843A1 (en) Asynchronous non-blocking snoop invalidation
JP2000090008A (ja) メモリ共有型マルチプロセッサシステム
US6826654B2 (en) Cache invalidation bus for a highly scalable shared cache memory hierarchy
JP2001043204A (ja) キャッシュ・メモリ制御装置
JP3782178B2 (ja) 情報処理装置
JPH11212869A (ja) キャッシュメモリ制御方法及びこれを用いたマルチプロセッサシステム
KR0138585B1 (ko) 분리형 트랜잭션 버스를 이용한 공유 메모리 다중 프로세서

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