JPH0816474A - マルチプロセッサシステム - Google Patents
マルチプロセッサシステムInfo
- Publication number
- JPH0816474A JPH0816474A JP6147354A JP14735494A JPH0816474A JP H0816474 A JPH0816474 A JP H0816474A JP 6147354 A JP6147354 A JP 6147354A JP 14735494 A JP14735494 A JP 14735494A JP H0816474 A JPH0816474 A JP H0816474A
- Authority
- JP
- Japan
- Prior art keywords
- cluster
- cache
- memory
- local
- data
- 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
Links
Landscapes
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【目的】本発明の目的は、大規模なマルチプロセッサシ
ステムにおいて、少量のハードで高速且つプロセッサ間
の通信量を低減可能なキャッシュ一致保証方式を提供す
ることにある。 【構成】大規模マルチプロセッサを複数のクラスタ(複
数のプロセッサ及びローカルメモリからなるグループ)
に分割し、各クラスタ毎にエクスポートディレクトリを
設けた。エクスポートディレクトリは、担当クラスタ内
のローカルメモリのデータの内、外部のクラスタのキャ
ッシュメモリに登録されたデータの識別子を登録するセ
ットアソシアティブ型のディレクトリである。小容量の
エクスポートディレクトリを検索することによって、ク
ラスタ全てを対象にキャッシュ一致保証すべきか、クラ
スタ内のキャッシュ一致保証だけで良いのかを即座に判
定する。
ステムにおいて、少量のハードで高速且つプロセッサ間
の通信量を低減可能なキャッシュ一致保証方式を提供す
ることにある。 【構成】大規模マルチプロセッサを複数のクラスタ(複
数のプロセッサ及びローカルメモリからなるグループ)
に分割し、各クラスタ毎にエクスポートディレクトリを
設けた。エクスポートディレクトリは、担当クラスタ内
のローカルメモリのデータの内、外部のクラスタのキャ
ッシュメモリに登録されたデータの識別子を登録するセ
ットアソシアティブ型のディレクトリである。小容量の
エクスポートディレクトリを検索することによって、ク
ラスタ全てを対象にキャッシュ一致保証すべきか、クラ
スタ内のキャッシュ一致保証だけで良いのかを即座に判
定する。
Description
【0001】
【産業上の利用分野】本発明は、マルチプロセッサシス
テムに係り、特に、キャッシュメモリ内容の一致化を高
速に実行するものに関する。
テムに係り、特に、キャッシュメモリ内容の一致化を高
速に実行するものに関する。
【0002】
【従来の技術】従来、マルチプロセッサシステムにおい
ては、キャッシュメモリ内容の一致化を行う必要があ
る。例えば、特開平4−239351 号公報記載のものは、マ
ルチプロセッサシステム全体において、キャッシュメモ
リの一致処理のための共通する管理テーブルメモリを持
つ構成となり、全てのマルチプロセッサのキャッシュメ
モリを管理する情報をテーブルメモリに持っている。
ては、キャッシュメモリ内容の一致化を行う必要があ
る。例えば、特開平4−239351 号公報記載のものは、マ
ルチプロセッサシステム全体において、キャッシュメモ
リの一致処理のための共通する管理テーブルメモリを持
つ構成となり、全てのマルチプロセッサのキャッシュメ
モリを管理する情報をテーブルメモリに持っている。
【0003】
【発明が解決しようとする課題】近年、数十台から数千
台のプロセッサを効率良く動作させるスケーラブルなマ
ルチプロセッサシステムが要求される場合には、全体に
おいて共通するキャッシュメモリの一致処理のための管
理テーブルメモリを持つ構成では、この管理テーブルメ
モリを検索する時間が膨大となり、処理の高速化の妨げ
となっていた。
台のプロセッサを効率良く動作させるスケーラブルなマ
ルチプロセッサシステムが要求される場合には、全体に
おいて共通するキャッシュメモリの一致処理のための管
理テーブルメモリを持つ構成では、この管理テーブルメ
モリを検索する時間が膨大となり、処理の高速化の妨げ
となっていた。
【0004】本発明の目的は、キャッシュメモリの一致
保証をより高速に実行できるマルチプロセッサシステム
を提供することにある。
保証をより高速に実行できるマルチプロセッサシステム
を提供することにある。
【0005】
【課題を解決するための手段】上記目的を達成するため
の本発明の特徴は、それぞれキャッシュメモリを有する
複数のプロセッサと、該複数のプロセッサのそれぞれに
接続されたローカルメモリと、前記複数のプロセッサ及
び前記ローカルメモリに接続された通信制御装置とを含
むクラスタを複数具備し、該クラスタが互いに前記通信
制御装置を介して接続されたマルチプロセッサシステム
において、前記通信制御装置は、自クラスタの前記ロー
カルメモリのデータのうち、他クラスタの前記キャッシ
ュメモリに登録されたデータに関する情報を記憶する記
憶手段を有し、該記憶手段に基づきキャッシュメモリ内
容を一致化すべき範囲を判定するキャッシュメモリ内容
一致化範囲判定手段を有することにある。
の本発明の特徴は、それぞれキャッシュメモリを有する
複数のプロセッサと、該複数のプロセッサのそれぞれに
接続されたローカルメモリと、前記複数のプロセッサ及
び前記ローカルメモリに接続された通信制御装置とを含
むクラスタを複数具備し、該クラスタが互いに前記通信
制御装置を介して接続されたマルチプロセッサシステム
において、前記通信制御装置は、自クラスタの前記ロー
カルメモリのデータのうち、他クラスタの前記キャッシ
ュメモリに登録されたデータに関する情報を記憶する記
憶手段を有し、該記憶手段に基づきキャッシュメモリ内
容を一致化すべき範囲を判定するキャッシュメモリ内容
一致化範囲判定手段を有することにある。
【0006】さらに具体的にいえば、大規模マルチプロ
セッサを複数のクラスタ(複数のプロセッサ及び主メモ
リからなるグループ)に分割し、各クラスタ毎にエクス
ポートディレクトリを設けることによって達成される。
クラスタ内は、少なくとも1つのプロセッサと、少なく
とも1つの主メモリを含み、クラスタ内プロセッサのキ
ャッシュメモリはバススヌープなどのキャッシュ一致保
証機能により一貫性を保証する。エクスポートディレク
トリは、各クラスタ毎に設けられ、担当クラスタのデー
タの内、外部のクラスタのキャッシュメモリに登録され
たデータの識別子を登録するセットアソシアティブ型の
ディレクトリである。エクスポートディレクトリの各エ
ントリは、外部のクラスタに登録されたデータの物理ア
ドレス及びその状態を示す状態ビットを有する。状態ビ
ットは、Shared, Dirty, Invalidの3つの状態を示す。
Sharedは、該当データが外部のクラスタに登録されてい
るが、変更はされていないことを示す。Dirty は、該当
データが外部のデータに登録され且つ内容が変更されて
いることを示す。Invalid は、該当エントリが無効であ
ることを示す。
セッサを複数のクラスタ(複数のプロセッサ及び主メモ
リからなるグループ)に分割し、各クラスタ毎にエクス
ポートディレクトリを設けることによって達成される。
クラスタ内は、少なくとも1つのプロセッサと、少なく
とも1つの主メモリを含み、クラスタ内プロセッサのキ
ャッシュメモリはバススヌープなどのキャッシュ一致保
証機能により一貫性を保証する。エクスポートディレク
トリは、各クラスタ毎に設けられ、担当クラスタのデー
タの内、外部のクラスタのキャッシュメモリに登録され
たデータの識別子を登録するセットアソシアティブ型の
ディレクトリである。エクスポートディレクトリの各エ
ントリは、外部のクラスタに登録されたデータの物理ア
ドレス及びその状態を示す状態ビットを有する。状態ビ
ットは、Shared, Dirty, Invalidの3つの状態を示す。
Sharedは、該当データが外部のクラスタに登録されてい
るが、変更はされていないことを示す。Dirty は、該当
データが外部のデータに登録され且つ内容が変更されて
いることを示す。Invalid は、該当エントリが無効であ
ることを示す。
【0007】また、エクスポートディレクトリのオーバ
ーフロー制御手段は、前記エクスポートディレクトリが
オーバーフローを起こしたときに、追い出されたエント
リに対応したデータをシステム内の全てのキャッシュメ
モリから無効化する手段を有する。
ーフロー制御手段は、前記エクスポートディレクトリが
オーバーフローを起こしたときに、追い出されたエント
リに対応したデータをシステム内の全てのキャッシュメ
モリから無効化する手段を有する。
【0008】
【作用】あるクラスタに属する主メモリに対し、クラス
タ外から読みだしがあると、対象データのアドレスが、
クラスタのエクスポートディレクトリに登録される。こ
のとき、クラスタ外からのアクセスの種類によって、登
録されたエントリの状態が決定される。すなわち、参照
のみであればShared状態として登録され、更新のための
読みだしであればDirty 状態で登録される。クラスタ外
にエクスポートされたデータが無効化された場合、ある
いは該データがキャッシュメモリから追い出されてホー
ムのクラスタに書き戻される時に、エクスポートディレ
クトリ内の該当エントリが無効化される。
タ外から読みだしがあると、対象データのアドレスが、
クラスタのエクスポートディレクトリに登録される。こ
のとき、クラスタ外からのアクセスの種類によって、登
録されたエントリの状態が決定される。すなわち、参照
のみであればShared状態として登録され、更新のための
読みだしであればDirty 状態で登録される。クラスタ外
にエクスポートされたデータが無効化された場合、ある
いは該データがキャッシュメモリから追い出されてホー
ムのクラスタに書き戻される時に、エクスポートディレ
クトリ内の該当エントリが無効化される。
【0009】あるプロセッサがメモリアクセス要求を発
行すると、該プロセッサが属するクラスタ内でキャッシ
ュ一致保証処理が行われる。この時、同時に該クラスタ
のエクスポートディレクトリが検索され、対象データが
クラスタ外のキャッシュに登録されているかどうか検証
される。その結果、対象データがクラスタ外に登録され
ていなければ、クラスタ内のキャッシュ一致保証のみ実
行すればよい。一方、対象データがクラスタ外に登録さ
れており、その状態がキャッシュ一致保証を必要とする
場合は、全てのクラスタにメモリアドレスをブロードキ
ャストしキャッシュ一致保証処理を実施する。キャッシ
ュ一致保証の結果、必要であればクラスタ間でキャッシ
ュ間データ転送を行う。
行すると、該プロセッサが属するクラスタ内でキャッシ
ュ一致保証処理が行われる。この時、同時に該クラスタ
のエクスポートディレクトリが検索され、対象データが
クラスタ外のキャッシュに登録されているかどうか検証
される。その結果、対象データがクラスタ外に登録され
ていなければ、クラスタ内のキャッシュ一致保証のみ実
行すればよい。一方、対象データがクラスタ外に登録さ
れており、その状態がキャッシュ一致保証を必要とする
場合は、全てのクラスタにメモリアドレスをブロードキ
ャストしキャッシュ一致保証処理を実施する。キャッシ
ュ一致保証の結果、必要であればクラスタ間でキャッシ
ュ間データ転送を行う。
【0010】エクスポートディレクトリがオーバーフロ
ーした場合、追い出されたエントリのアドレスが、前記
オーバーフロー制御手段に送られる。オーバーフロー制
御手段は、該当アドレスを全ての外部クラスタにブロー
ドキャストし、対応するデータを無効化する。
ーした場合、追い出されたエントリのアドレスが、前記
オーバーフロー制御手段に送られる。オーバーフロー制
御手段は、該当アドレスを全ての外部クラスタにブロー
ドキャストし、対応するデータを無効化する。
【0011】このようにすれば、エクスポートディレク
トリの情報によってキャッシュ一致保証すべき範囲を限
定することができる。特に大規模なマルチプロセッサシ
ステムでは、キャッシュ一致保証の範囲を限定できれ
ば、システム内の全てのキャッシュを対象にキャッシュ
一致保証する必要がなく、キャッシュ一致保証制御の遅
延を大幅に改善できる。また、メモリ読みだし/書き込
みごとにシステム内の全てのプロセッサにブロードキャ
ストする必要もなく、プロセッサ間の通信量を大幅に低
減することが可能になる。
トリの情報によってキャッシュ一致保証すべき範囲を限
定することができる。特に大規模なマルチプロセッサシ
ステムでは、キャッシュ一致保証の範囲を限定できれ
ば、システム内の全てのキャッシュを対象にキャッシュ
一致保証する必要がなく、キャッシュ一致保証制御の遅
延を大幅に改善できる。また、メモリ読みだし/書き込
みごとにシステム内の全てのプロセッサにブロードキャ
ストする必要もなく、プロセッサ間の通信量を大幅に低
減することが可能になる。
【0012】
【実施例】図1は、本発明が適用される計算機システム
の全体構成を示している。本構成では、キャッシュメモ
リ250を有する複数のプロセッサ200が、ローカル
バス1600を介してプロセッサメモリインターフェー
ス装置300に接続される。また、エクスポートディレ
クトリ600を有するクラスタ通信制御装置500もロ
ーカルバス1600を介してプロセッサメモリインター
フェース装置300に接続される。プロセッサメモリイ
ンターフェース装置300には、ローカルメモリバス1
700を介してローカルメモリ400が接続される。こ
れら、複数のプロセッサ200,キャッシュメモリ25
0,プロセッサメモリインターフェース装置300,ロ
ーカルメモリ400,クラスタ通信制御装置500及び
エクスポートディレクトリ600が集合体としてクラス
タ100と呼ばれる。エクスポートディレクトリ600
には、クラスタ100内のローカルメモリ400のデー
タが、クラスタ外のキャッシュ250に登録されたとき
に該データのアドレスが登録される。エクスポートディ
レクトリ600によって、システム全体のキャッシュ一
致保証をすべきかどうかの判定が可能になり、キャッシ
ュ一致保証の高速化が可能になる。
の全体構成を示している。本構成では、キャッシュメモ
リ250を有する複数のプロセッサ200が、ローカル
バス1600を介してプロセッサメモリインターフェー
ス装置300に接続される。また、エクスポートディレ
クトリ600を有するクラスタ通信制御装置500もロ
ーカルバス1600を介してプロセッサメモリインター
フェース装置300に接続される。プロセッサメモリイ
ンターフェース装置300には、ローカルメモリバス1
700を介してローカルメモリ400が接続される。こ
れら、複数のプロセッサ200,キャッシュメモリ25
0,プロセッサメモリインターフェース装置300,ロ
ーカルメモリ400,クラスタ通信制御装置500及び
エクスポートディレクトリ600が集合体としてクラス
タ100と呼ばれる。エクスポートディレクトリ600
には、クラスタ100内のローカルメモリ400のデー
タが、クラスタ外のキャッシュ250に登録されたとき
に該データのアドレスが登録される。エクスポートディ
レクトリ600によって、システム全体のキャッシュ一
致保証をすべきかどうかの判定が可能になり、キャッシ
ュ一致保証の高速化が可能になる。
【0013】複数のクラスタ100は、クラスタ通信制
御装置500を介してクラスタバス2200に接続さ
れ、全体として大規模マルチプロセッサを構成する。ま
た、各クラスタ100は入出力バス2100を介して入
出力制御装置700,ネットワーク制御装置800,フ
ァイル制御装置900,グラフィックス制御装置1000に
接続される。ファイル制御装置900は、固定ディスク
装置1300とローカルメモリ400との間のデータ転
送を制御する。ネットワーク制御装置800は、FDD
I,Ethernetといったネットワークとローカルメモリ4
00との間のデータ転送を制御する。グラフィックス制
御装置100は表示用フレームメモリ1410とローカルメ
モリ400間のデータ転送を制御する。転送されたデー
タは、グラフィックス制御装置1000により表示装置
1400に表示される。また、I/O制御装置700は
フロッピーディスク装置1100やプリンタ装置120
0と、ローカルメモリ400間のデータ転送を制御す
る。各I/O制御装置は、DMA(Direct Memory Acces
s)機能を持つ。DMA機能により各I/O装置はプロ
セッサ200に負荷をかけることなく、I/Oバス21
00を介してローカルメモリ400間でデータの転送が
可能である。
御装置500を介してクラスタバス2200に接続さ
れ、全体として大規模マルチプロセッサを構成する。ま
た、各クラスタ100は入出力バス2100を介して入
出力制御装置700,ネットワーク制御装置800,フ
ァイル制御装置900,グラフィックス制御装置1000に
接続される。ファイル制御装置900は、固定ディスク
装置1300とローカルメモリ400との間のデータ転
送を制御する。ネットワーク制御装置800は、FDD
I,Ethernetといったネットワークとローカルメモリ4
00との間のデータ転送を制御する。グラフィックス制
御装置100は表示用フレームメモリ1410とローカルメ
モリ400間のデータ転送を制御する。転送されたデー
タは、グラフィックス制御装置1000により表示装置
1400に表示される。また、I/O制御装置700は
フロッピーディスク装置1100やプリンタ装置120
0と、ローカルメモリ400間のデータ転送を制御す
る。各I/O制御装置は、DMA(Direct Memory Acces
s)機能を持つ。DMA機能により各I/O装置はプロ
セッサ200に負荷をかけることなく、I/Oバス21
00を介してローカルメモリ400間でデータの転送が
可能である。
【0014】プロセッサ200からメモリ空間へのアク
セス要求は、ローカルバス1600を介して一旦プロセ
ッサメモリインターフェース装置300に及びクラスタ
通信制御装置500に受け付けられる。プロセッサメモ
リインターフェース装置300及びクラスタ通信制御装置
500では受け付けたアクセスのアドレスからアクセス
先を判定する。自クラスタ内のローカルメモリ400へ
のアクセスであれば、プロセッサメモリインターフェー
ス装置300がこれを識別しローカルメモリ400への
書き込み/読みだしを実行する。一方、プロセッサ20
0から他クラスタのローカルメモリ400へのアクセス
であれば、クラスタ通信制御装置500がこれを識別しク
ラスタ間バス2200を介して他クラスタのクラスタ通
信制御装置500にアクセス要求を転送する。他クラス
タのクラスタ通信制御装置500はこれを受けてクラスタ
内のプロセッサメモリインターフェース装置300にア
クセスを転送する。他クラスタのプロセッサメモリイン
ターフェース装置300はローカルメモリ400への書
き込み/読みだしを実行する。
セス要求は、ローカルバス1600を介して一旦プロセ
ッサメモリインターフェース装置300に及びクラスタ
通信制御装置500に受け付けられる。プロセッサメモ
リインターフェース装置300及びクラスタ通信制御装置
500では受け付けたアクセスのアドレスからアクセス
先を判定する。自クラスタ内のローカルメモリ400へ
のアクセスであれば、プロセッサメモリインターフェー
ス装置300がこれを識別しローカルメモリ400への
書き込み/読みだしを実行する。一方、プロセッサ20
0から他クラスタのローカルメモリ400へのアクセス
であれば、クラスタ通信制御装置500がこれを識別しク
ラスタ間バス2200を介して他クラスタのクラスタ通
信制御装置500にアクセス要求を転送する。他クラス
タのクラスタ通信制御装置500はこれを受けてクラスタ
内のプロセッサメモリインターフェース装置300にア
クセスを転送する。他クラスタのプロセッサメモリイン
ターフェース装置300はローカルメモリ400への書
き込み/読みだしを実行する。
【0015】プロセッサ200からI/O装置へのアク
セス要求(以下プロセッサによるI/O直接アクセスと
呼ぶ)であれば、ローカルバス1600を介して一旦プ
ロセッサメモリインターフェース装置300に受け付け
られる。プロセッサメモリインターフェース装置300
はアクセスのアドレスを分析し、I/O空間へのアクセ
スであればI/Oバス2100上にアクセス要求を発行
する。各I/O装置700,800,900,1000
は、I/Oバス2100上のアクセス要求を受け付け、
そのアドレスから自装置へのアクセスかどうかを検証す
る。自装置へのアクセス要求であれば要求された処理
(レジスタの設定,I/O装置の制御等)を実施する。
セス要求(以下プロセッサによるI/O直接アクセスと
呼ぶ)であれば、ローカルバス1600を介して一旦プ
ロセッサメモリインターフェース装置300に受け付け
られる。プロセッサメモリインターフェース装置300
はアクセスのアドレスを分析し、I/O空間へのアクセ
スであればI/Oバス2100上にアクセス要求を発行
する。各I/O装置700,800,900,1000
は、I/Oバス2100上のアクセス要求を受け付け、
そのアドレスから自装置へのアクセスかどうかを検証す
る。自装置へのアクセス要求であれば要求された処理
(レジスタの設定,I/O装置の制御等)を実施する。
【0016】図2は、プロセッサ200からみたシステ
ム全体のローカルメモリ400のアドレス割当ての一例
を示している。各クラスタ100のメーカルメモリ40
0に対して順次アドレスを割当てる。あるプロセッサ2
00から全てのメモリに対してアクセスが可能である。
アドレス割当は、ここで示した割当に限らず、他の割当
も可能である。例えば、各クラスタ100内のローカル
メモリをバンクとみなし、あるまとまったデータ単位
(例えば32バイト)でインターリーブ動作させるメモ
リ割当も可能である。これらの実メモリ空間の割当て情
報は、各クラスタ100内のプロセッサメモリインター
フェース300及びクラスタ通信制御装置500内のレ
ジスタに設定される。
ム全体のローカルメモリ400のアドレス割当ての一例
を示している。各クラスタ100のメーカルメモリ40
0に対して順次アドレスを割当てる。あるプロセッサ2
00から全てのメモリに対してアクセスが可能である。
アドレス割当は、ここで示した割当に限らず、他の割当
も可能である。例えば、各クラスタ100内のローカル
メモリをバンクとみなし、あるまとまったデータ単位
(例えば32バイト)でインターリーブ動作させるメモ
リ割当も可能である。これらの実メモリ空間の割当て情
報は、各クラスタ100内のプロセッサメモリインター
フェース300及びクラスタ通信制御装置500内のレ
ジスタに設定される。
【0017】図3は、プロセッサ200及びキャッシュ
メモリ250の構成を示している。命令フェッチユニッ
ト201はプログラムの実行に必要な命令をローカルメ
モリ400から読み出す。読み出された命令は命令実行
ユニット202に転送される。命令実行ユニット202
は、命令の意味を解釈し、命令実行に必要なデータをロ
ーカルメモリ400から読みだし演算を実行する。命令
キャッシュメモリ251は、ローカルメモリ400上にあ
る命令の一部を複写して保持する高速メモリである。命
令フェッチユニット201が要求する命令が命令キャッ
シュメモリ251内に存在すれば、ローカルメモリ400
にアクセスすることなく即座に命令を読み出すことがで
きる。要求する命令がキャッシュメモリに存在しない場
合、命令キャッシュメモリ251は、命令キャッシュ制
御部210を介してローカルメモリ400にデータを要
求する。命令キャッシュ制御部210は、命令キャッシ
ュメモリ251からのローカルメモリアクセスを受け付
け、ローカルバス1600を経由してプロセッサメモリ
インターフェース300及びクラスタ通信制御装置50
0にアクセスを送る。プロセッサメモリインターフェー
ス300あるいはクラスタ通信制御装置500から、応
答データが返送されてくると、これを命令キャッシュメ
モリ251に登録する。
メモリ250の構成を示している。命令フェッチユニッ
ト201はプログラムの実行に必要な命令をローカルメ
モリ400から読み出す。読み出された命令は命令実行
ユニット202に転送される。命令実行ユニット202
は、命令の意味を解釈し、命令実行に必要なデータをロ
ーカルメモリ400から読みだし演算を実行する。命令
キャッシュメモリ251は、ローカルメモリ400上にあ
る命令の一部を複写して保持する高速メモリである。命
令フェッチユニット201が要求する命令が命令キャッ
シュメモリ251内に存在すれば、ローカルメモリ400
にアクセスすることなく即座に命令を読み出すことがで
きる。要求する命令がキャッシュメモリに存在しない場
合、命令キャッシュメモリ251は、命令キャッシュ制
御部210を介してローカルメモリ400にデータを要
求する。命令キャッシュ制御部210は、命令キャッシ
ュメモリ251からのローカルメモリアクセスを受け付
け、ローカルバス1600を経由してプロセッサメモリ
インターフェース300及びクラスタ通信制御装置50
0にアクセスを送る。プロセッサメモリインターフェー
ス300あるいはクラスタ通信制御装置500から、応
答データが返送されてくると、これを命令キャッシュメ
モリ251に登録する。
【0018】データキャッシュメモリ252は、ローカ
ルメモリ400のデータの一部を保持する高速メモリで
ある。命令実行ユニット202が要求するデータがキャ
ッシュメモリ252内に存在すれば、ローカルメモリ4
00にアクセスすることなく即座にデータを提供するこ
とができる。要求するデータがキャッシュメモリに存在
しない場合、データキャッシュメモリ252は、データ
キャッシュ制御部212を介してローカルメモリ400に
データを要求する。データキャッシュメモリ252とロ
ーカルメモリ400との間のデータ転送は、一般に32
バイトから128バイト程度のラインを転送単位とする
ことによりキャッシュメモリのヒット率の向上を計って
いる。
ルメモリ400のデータの一部を保持する高速メモリで
ある。命令実行ユニット202が要求するデータがキャ
ッシュメモリ252内に存在すれば、ローカルメモリ4
00にアクセスすることなく即座にデータを提供するこ
とができる。要求するデータがキャッシュメモリに存在
しない場合、データキャッシュメモリ252は、データ
キャッシュ制御部212を介してローカルメモリ400に
データを要求する。データキャッシュメモリ252とロ
ーカルメモリ400との間のデータ転送は、一般に32
バイトから128バイト程度のラインを転送単位とする
ことによりキャッシュメモリのヒット率の向上を計って
いる。
【0019】本実施例におけるデータキャッシュメモリ
252では、ストアイン方式により命令実行ユニット2
02からの主メモリ書き込み処理を高速化している。ス
トアイン方式では、書き込み対象となるデータがデータ
キャッシュメモリ252上に存在しかつそのデータのコ
ピーが他のキャッシュメモリに存在しなければ、データ
キャッシュメモリにのみ書き込みを行い、ローカルメモ
リ400には書き込みを行わない。書き込みが行われた
データキャッシュ内のラインをダーティラインと呼ぶ。
ダーティラインは、データキャッシュメモリ252が溢
れたときにローカルメモリ400に書き戻される。デー
タキャッシュ制御部212は、命令キャッシュ制御部2
10とほぼ同等な動作となるので詳細説明は省略する。
252では、ストアイン方式により命令実行ユニット2
02からの主メモリ書き込み処理を高速化している。ス
トアイン方式では、書き込み対象となるデータがデータ
キャッシュメモリ252上に存在しかつそのデータのコ
ピーが他のキャッシュメモリに存在しなければ、データ
キャッシュメモリにのみ書き込みを行い、ローカルメモ
リ400には書き込みを行わない。書き込みが行われた
データキャッシュ内のラインをダーティラインと呼ぶ。
ダーティラインは、データキャッシュメモリ252が溢
れたときにローカルメモリ400に書き戻される。デー
タキャッシュ制御部212は、命令キャッシュ制御部2
10とほぼ同等な動作となるので詳細説明は省略する。
【0020】データキャッシュメモリ252に登録され
たラインはInvalid, Shared,Exclusive, Dirtyの4つの
状態を持つ。Invalid は無効状態、Sharedは他のキャッ
シュメモリに同じラインのコピーが存在することを示
す。Exclusive は、該当ラインが自キャッシュのみに存
在し、且つ内容の変更が行われていない状態を示す。Di
rty は、該当ラインが自キャッシュのみに存在し、且つ
内容の変更が行われていることを示す。データキャッシ
ュメモリ252を操作する命令として、キャッシュフラ
ッシュ命令とキャッシュパージ命令などが設けられる。
キャッシュフラッシュ命令が発行されると、対象のライ
ンがDirty 状態であれば、該データが主メモリに書き戻
された後無効化される。Dirty 以外の状態では無効化の
みが行われる。一方キャッシュパージ命令が発行される
と、対象ラインの状態にかかわらず無効化が行われる。
たラインはInvalid, Shared,Exclusive, Dirtyの4つの
状態を持つ。Invalid は無効状態、Sharedは他のキャッ
シュメモリに同じラインのコピーが存在することを示
す。Exclusive は、該当ラインが自キャッシュのみに存
在し、且つ内容の変更が行われていない状態を示す。Di
rty は、該当ラインが自キャッシュのみに存在し、且つ
内容の変更が行われていることを示す。データキャッシ
ュメモリ252を操作する命令として、キャッシュフラ
ッシュ命令とキャッシュパージ命令などが設けられる。
キャッシュフラッシュ命令が発行されると、対象のライ
ンがDirty 状態であれば、該データが主メモリに書き戻
された後無効化される。Dirty 以外の状態では無効化の
みが行われる。一方キャッシュパージ命令が発行される
と、対象ラインの状態にかかわらず無効化が行われる。
【0021】バスモニター及びキャッシュ一致保証制御
部211は、プロセッサ間でキャッシュ一致保証を行う
機構である。自プロセッサがキャッシュ一致保証処理を
必要とするトランザクションを発行したとき、あるいは
ローカルバス1600上にキャッシュ一致保証の対象と
なるトランザクションが発行されたときに起動される。
自プロセッサがトランザクションを発行したときは、信
号線1602によって他プロセッサのキャッシュ一致保
証結果を取り込み、データキャッシュメモリ252に登
録するラインの状態を決定する。また、ローカルバス1
600上にトランザクションを検出した場合には、バス
モニター及びキャッシュ一致保証制御部211は、この
トランザクションを取り込みデータキャッシュメモリ2
52を検索し、該当するラインが存在するかどうか、あ
るいは該当ラインがダーティラインかどうかを判定す
る。そしてキャッシュ一致保証の結果を信号線1603
によって他プロセッサに報告するとともに、トランザク
ションの要求にしたがって、該当するダーティラインを
アクセス要求元に転送したり、該当するラインを無効化
したりする。
部211は、プロセッサ間でキャッシュ一致保証を行う
機構である。自プロセッサがキャッシュ一致保証処理を
必要とするトランザクションを発行したとき、あるいは
ローカルバス1600上にキャッシュ一致保証の対象と
なるトランザクションが発行されたときに起動される。
自プロセッサがトランザクションを発行したときは、信
号線1602によって他プロセッサのキャッシュ一致保
証結果を取り込み、データキャッシュメモリ252に登
録するラインの状態を決定する。また、ローカルバス1
600上にトランザクションを検出した場合には、バス
モニター及びキャッシュ一致保証制御部211は、この
トランザクションを取り込みデータキャッシュメモリ2
52を検索し、該当するラインが存在するかどうか、あ
るいは該当ラインがダーティラインかどうかを判定す
る。そしてキャッシュ一致保証の結果を信号線1603
によって他プロセッサに報告するとともに、トランザク
ションの要求にしたがって、該当するダーティラインを
アクセス要求元に転送したり、該当するラインを無効化
したりする。
【0022】図4は、プロセッサメモリインターフェー
ス装置300の内部構成を示している。ローカルバス受
信部351はプロセッサ200からのアクセス要求を受
け付ける制御を行う。ローカル/リモートメモリ制御部
330は、ローカルバス受信部351から受け取ったア
クセスのアドレスから、アクセス先が自クラスタ内ロー
カルメモリ400か、他クラスタのローカルメモリかを
判定する。自クラスタのローカルメモリ400へのアク
セスであれば、バス2011を介してローカルメモリ起
動制御部370にアクセス要求を転送する。また、アク
セス先が他クラスタ内ローカルメモリ400であれば処
理を行わない。またアクセス先がI/O装置であれば、
バス2010を介してI/Oバス送信制御部380にア
クセスを送る。ローカルバス送信部352は、ローカル
メモリ受信制御部371からバス2015を介して送ら
れてくるローカルメモリ400の読みだしデータを受け
取り、ローカルバス1600を介して要求元プロセッサ
にデータを転送する。またI/Oバス受信制御部382
からバス2013を介して送られてくるI/O装置から
の読みだしデータを受け取り、ローカルバス1600を
介して要求元プロセッサにデータを転送する。
ス装置300の内部構成を示している。ローカルバス受
信部351はプロセッサ200からのアクセス要求を受
け付ける制御を行う。ローカル/リモートメモリ制御部
330は、ローカルバス受信部351から受け取ったア
クセスのアドレスから、アクセス先が自クラスタ内ロー
カルメモリ400か、他クラスタのローカルメモリかを
判定する。自クラスタのローカルメモリ400へのアク
セスであれば、バス2011を介してローカルメモリ起
動制御部370にアクセス要求を転送する。また、アク
セス先が他クラスタ内ローカルメモリ400であれば処
理を行わない。またアクセス先がI/O装置であれば、
バス2010を介してI/Oバス送信制御部380にア
クセスを送る。ローカルバス送信部352は、ローカル
メモリ受信制御部371からバス2015を介して送ら
れてくるローカルメモリ400の読みだしデータを受け
取り、ローカルバス1600を介して要求元プロセッサ
にデータを転送する。またI/Oバス受信制御部382
からバス2013を介して送られてくるI/O装置から
の読みだしデータを受け取り、ローカルバス1600を
介して要求元プロセッサにデータを転送する。
【0023】ローカルバスキャッシュ一致保証監視装置
350は、クラスタ内のプロセッサ200に内蔵された
キャッシュメモリ250を対象に、キャッシュメモリ一
致保証の結果を監視する機構である。ローカルバス16
00上にキャッシュ一致保証の対象となるトランザクシ
ョンが発行され、該トランザクションが自クラスタ内の
ローカルメモリ400を対象とするものであればキャッ
シュメモリ一致保証の監視が開始される。ローカルバス
1600に接続された全てのプロセッサ200及びクラ
スタ通信制御装置500からのキャッシュ一致保証の検
証結果を信号線1603から受け取り、対応した処理を
行う。例えば、キャッシュ間データ転送が行われる場合
は、ローカルメモリ400の読みだしをキャンセルし、
且つキャッシュ間で転送されているデータを取り込んで
ローカルメモリ400に書き込むといった処理を行う。
350は、クラスタ内のプロセッサ200に内蔵された
キャッシュメモリ250を対象に、キャッシュメモリ一
致保証の結果を監視する機構である。ローカルバス16
00上にキャッシュ一致保証の対象となるトランザクシ
ョンが発行され、該トランザクションが自クラスタ内の
ローカルメモリ400を対象とするものであればキャッ
シュメモリ一致保証の監視が開始される。ローカルバス
1600に接続された全てのプロセッサ200及びクラ
スタ通信制御装置500からのキャッシュ一致保証の検
証結果を信号線1603から受け取り、対応した処理を
行う。例えば、キャッシュ間データ転送が行われる場合
は、ローカルメモリ400の読みだしをキャンセルし、
且つキャッシュ間で転送されているデータを取り込んで
ローカルメモリ400に書き込むといった処理を行う。
【0024】図5は、クラスタ通信制御装置500の内
部構成、及びエクスポートメモリ600の構成を示して
いる。クラスタ通信制御装置500は、ローカルバス16
00及びクラスタバス2200に接続され、クラスタ10
0間の通信を制御する。ローカルバス受信部506はロ
ーカルバス1600からのトランザクションを受け付け
る制御を行う。受け付けるトランザクションとしては、
自クラスタ内プロセッサ200からのアクセス要求及
び、自クラスタ内ローカルメモリからの応答データがあ
る。プロセッサ200からのアクセス要求の場合は、ロ
ーカル/リモートメモリ制御部507がローカルバス受
信部506から受け取ったアクセスのアドレスから、ア
クセス先が自クラスタ内ローカルメモリ400か、他ク
ラスタのローカルメモリかを判定する。他クラスタのロ
ーカルメモリ400へのアクセスであれば、バス511
を介してクラスタバス送信制御部503にアクセス要求
を転送する。一方、アクセス先が自クラスタ内ローカル
メモリ400であれば他クラスタのローカルメモリの読
みだし処理は行わない。
部構成、及びエクスポートメモリ600の構成を示して
いる。クラスタ通信制御装置500は、ローカルバス16
00及びクラスタバス2200に接続され、クラスタ10
0間の通信を制御する。ローカルバス受信部506はロ
ーカルバス1600からのトランザクションを受け付け
る制御を行う。受け付けるトランザクションとしては、
自クラスタ内プロセッサ200からのアクセス要求及
び、自クラスタ内ローカルメモリからの応答データがあ
る。プロセッサ200からのアクセス要求の場合は、ロ
ーカル/リモートメモリ制御部507がローカルバス受
信部506から受け取ったアクセスのアドレスから、ア
クセス先が自クラスタ内ローカルメモリ400か、他ク
ラスタのローカルメモリかを判定する。他クラスタのロ
ーカルメモリ400へのアクセスであれば、バス511
を介してクラスタバス送信制御部503にアクセス要求
を転送する。一方、アクセス先が自クラスタ内ローカル
メモリ400であれば他クラスタのローカルメモリの読
みだし処理は行わない。
【0025】ローカルバス送信制御部504は、他クラ
スタのプロセッサ200から発行されたアクセス要求
や、他クラスタのローカルメモリ400から返送されて
きたデータをローカルバス1600に転送する制御を行
う。また、他クラスタからの読み出しアクセスで、自ク
ラスタ内のデータをクラスタ外に送出するときには、バ
ス515を経由して該データのアドレスをエクスポート
ディレクトリ600に登録する。ローカルバスキャッシ
ュ一致保証監視装置505は、クラスタ内のプロセッサ
200に内蔵されたキャッシュメモリ250を対象に、
キャッシュメモリ一致保証の結果を監視する機構であ
る。ローカルバス送信制御部504が他クラスタからの
アクセス要求でキャッシュ一致保証を必要とするトラン
ザクションをローカルバス1600に送出したとき、あ
るいはローカルバス1600上にキャッシュ一致保証の
対象となるトランザクションが発行されたときに起動さ
れる。ローカルバス送信制御部504がトランザクショ
ンを発行したときは、信号線1602によってクラスタ
内の他プロセッサのキャッシュ一致保証結果を取り込
み、その結果をクラスタバスキャッシュ一致保証制御監
視装置502に送る。また、キャッシュ一致保証の結果
キャッシュ間データ転送が発生する場合は、他プロセッ
サ200のキャッシュメモリ250から送られてきたデ
ータをローカルバス受信制御部506で受けて、クラス
タバス送信制御部503に送る。一方、ローカルバス1
600上にキャッシュ一致保証を必要とするトランザク
ションを検出した場合、ローカルバスキャッシュ一致保
証監視装置505は、このトランザクションを取り込み
バス516を介してエクスポートディレクトリ600を
検索し、クラスタ間でのキャッシュ一致保証が必要かど
うか判定する。自クラスタ内でキャッシュ一致保証が閉
じる場合は、信号線1603によってキャッシュ一致保
証の結果を報告する。一方、クラスタ間でキャッシュ一
致保証が必要な場合は、信号線513によりクラスタバ
スキャッシュ一致保証監視装置502を起動する。
スタのプロセッサ200から発行されたアクセス要求
や、他クラスタのローカルメモリ400から返送されて
きたデータをローカルバス1600に転送する制御を行
う。また、他クラスタからの読み出しアクセスで、自ク
ラスタ内のデータをクラスタ外に送出するときには、バ
ス515を経由して該データのアドレスをエクスポート
ディレクトリ600に登録する。ローカルバスキャッシ
ュ一致保証監視装置505は、クラスタ内のプロセッサ
200に内蔵されたキャッシュメモリ250を対象に、
キャッシュメモリ一致保証の結果を監視する機構であ
る。ローカルバス送信制御部504が他クラスタからの
アクセス要求でキャッシュ一致保証を必要とするトラン
ザクションをローカルバス1600に送出したとき、あ
るいはローカルバス1600上にキャッシュ一致保証の
対象となるトランザクションが発行されたときに起動さ
れる。ローカルバス送信制御部504がトランザクショ
ンを発行したときは、信号線1602によってクラスタ
内の他プロセッサのキャッシュ一致保証結果を取り込
み、その結果をクラスタバスキャッシュ一致保証制御監
視装置502に送る。また、キャッシュ一致保証の結果
キャッシュ間データ転送が発生する場合は、他プロセッ
サ200のキャッシュメモリ250から送られてきたデ
ータをローカルバス受信制御部506で受けて、クラス
タバス送信制御部503に送る。一方、ローカルバス1
600上にキャッシュ一致保証を必要とするトランザク
ションを検出した場合、ローカルバスキャッシュ一致保
証監視装置505は、このトランザクションを取り込み
バス516を介してエクスポートディレクトリ600を
検索し、クラスタ間でのキャッシュ一致保証が必要かど
うか判定する。自クラスタ内でキャッシュ一致保証が閉
じる場合は、信号線1603によってキャッシュ一致保
証の結果を報告する。一方、クラスタ間でキャッシュ一
致保証が必要な場合は、信号線513によりクラスタバ
スキャッシュ一致保証監視装置502を起動する。
【0026】クラスタバス受信制御部501は、他クラ
スタのプロセッサ200からのアクセス要求あるいは、
他クラスタのローカルメモリ400からの応答データを
受け付け、バス510を介してローカルバス送信制御部
504に送る。クラスタバス送信制御部503は、ロー
カルバス受信制御部506から受け取った外部クラスタ
へのアクセス要求や、外部クラスタへの応答データをク
ラスタバス2200に送出する。クラスタバスキャッシ
ュ一致保証監視装置502は、ローカルバスキャッシュ
一致保証監視装置505からクラスタ間キャッシュ一致
保証要求を受けた場合、あるいはクラスタバス2200
上にキャッシュ一致保証の対象となるトランザクション
が発行されたときに起動される。クラスタ間キャッシュ
一致保証を要求された場合は、該アクセスのアドレスを
クラスタバス2200にブロードキャストし全クラスタ
100のキャッシュ一致保証の終了を待つ。クラスタ間
キャッシュ一致保証が終了するとその結果を信号線22
03によって受け取り、ローカルバスキャッシュ一致保
証監視装置505に報告する。この時クラスタ間でキャ
ッシュ間データ転送が必要な場合は、他クラスタから送
られてきたデータをクラスタ受信制御部501が受け取
りローカルバス送信制御部504に転送する。一方、ク
ラスタバス2200上にキャッシュ一致保証の対象とな
るトランザクションの発行を検出したときには、該トラ
ンザクションをクラスタバス受信制御部501に取り込
み、ローカルバス送信制御部504を経由してクラスタ
内のローカルバス1600にブロードキャストし、ロー
カルバスのキャッシュ一致保証を行う。その結果をロー
カルバスキャッシュ一致保証監視装置505から受け取
り、信号線2202によりキャッシュ一致保証の結果を
報告する。
スタのプロセッサ200からのアクセス要求あるいは、
他クラスタのローカルメモリ400からの応答データを
受け付け、バス510を介してローカルバス送信制御部
504に送る。クラスタバス送信制御部503は、ロー
カルバス受信制御部506から受け取った外部クラスタ
へのアクセス要求や、外部クラスタへの応答データをク
ラスタバス2200に送出する。クラスタバスキャッシ
ュ一致保証監視装置502は、ローカルバスキャッシュ
一致保証監視装置505からクラスタ間キャッシュ一致
保証要求を受けた場合、あるいはクラスタバス2200
上にキャッシュ一致保証の対象となるトランザクション
が発行されたときに起動される。クラスタ間キャッシュ
一致保証を要求された場合は、該アクセスのアドレスを
クラスタバス2200にブロードキャストし全クラスタ
100のキャッシュ一致保証の終了を待つ。クラスタ間
キャッシュ一致保証が終了するとその結果を信号線22
03によって受け取り、ローカルバスキャッシュ一致保
証監視装置505に報告する。この時クラスタ間でキャ
ッシュ間データ転送が必要な場合は、他クラスタから送
られてきたデータをクラスタ受信制御部501が受け取
りローカルバス送信制御部504に転送する。一方、ク
ラスタバス2200上にキャッシュ一致保証の対象とな
るトランザクションの発行を検出したときには、該トラ
ンザクションをクラスタバス受信制御部501に取り込
み、ローカルバス送信制御部504を経由してクラスタ
内のローカルバス1600にブロードキャストし、ロー
カルバスのキャッシュ一致保証を行う。その結果をロー
カルバスキャッシュ一致保証監視装置505から受け取
り、信号線2202によりキャッシュ一致保証の結果を
報告する。
【0027】次に、図5を用いてエクスポートディレク
トリ600の構成を説明する。エクスポートディレクト
リ600は、並列に検索される複数のセットから構成さ
れうる。本実施例では4つのセットから構成される。各
セットは複数のエントリから成り、各エントリは物理ア
ドレス部601,ダーティビット部602,有効ビット
部603から構成される。自クラスタ内のデータがクラ
スタ外のキャッシュメモリに登録される時に、該データ
に対応したアドレスがエクスポートディレクトリ600
に登録される。他クラスタからの読みだし要求は、クラ
スタバス受信制御部501を経由しバス515を経て、
エクスポートディレクトリアドレスレジスタ520に登
録される。エクスポートディレクトリアドレスレジスタ
520は、インデクス部522と比較タグ部521から
成る。エクスポートディレクトリ制御装置508は、イ
ンデクス部522によってエクスポートディレクトリ60
0のエントリを指定し、比較タグ部521を物理アドレ
ス部601に登録する。この時、トランザクションの種
類によってダーティビット602が決定される。すなわ
ち、他クラスタから受け付けたデータ読みだしトランザ
クションが、参照のみを目的とするのであればダーティ
ビットはオフ即ちShared状態となる。一方、該トランザ
クションが読みだした後変更する目的であればダーティ
ビットはオン即ちDirty 状態となる。
トリ600の構成を説明する。エクスポートディレクト
リ600は、並列に検索される複数のセットから構成さ
れうる。本実施例では4つのセットから構成される。各
セットは複数のエントリから成り、各エントリは物理ア
ドレス部601,ダーティビット部602,有効ビット
部603から構成される。自クラスタ内のデータがクラ
スタ外のキャッシュメモリに登録される時に、該データ
に対応したアドレスがエクスポートディレクトリ600
に登録される。他クラスタからの読みだし要求は、クラ
スタバス受信制御部501を経由しバス515を経て、
エクスポートディレクトリアドレスレジスタ520に登
録される。エクスポートディレクトリアドレスレジスタ
520は、インデクス部522と比較タグ部521から
成る。エクスポートディレクトリ制御装置508は、イ
ンデクス部522によってエクスポートディレクトリ60
0のエントリを指定し、比較タグ部521を物理アドレ
ス部601に登録する。この時、トランザクションの種
類によってダーティビット602が決定される。すなわ
ち、他クラスタから受け付けたデータ読みだしトランザ
クションが、参照のみを目的とするのであればダーティ
ビットはオフ即ちShared状態となる。一方、該トランザ
クションが読みだした後変更する目的であればダーティ
ビットはオン即ちDirty 状態となる。
【0028】新しいエントリを登録するときに、対象と
なる各セットのエントリが全て利用されている場合に
は、最も利用されていないエントリが追い出される。追
い出されたエントリはセレクタ524で選択されビクテ
ィムバッファ526にそのアドレスがセットされる。エ
クスポートディレクトリ制御装置508は、ビクティム
バッファ526のアドレスをバス512,クラスタバス
送信制御部503を経由してシステム内の全てのクラス
タにブロードキャストし対応するデータを無効化する。
なる各セットのエントリが全て利用されている場合に
は、最も利用されていないエントリが追い出される。追
い出されたエントリはセレクタ524で選択されビクテ
ィムバッファ526にそのアドレスがセットされる。エ
クスポートディレクトリ制御装置508は、ビクティム
バッファ526のアドレスをバス512,クラスタバス
送信制御部503を経由してシステム内の全てのクラス
タにブロードキャストし対応するデータを無効化する。
【0029】エクスポートディレクトリ600は、自ク
ラスタ内でキャッシュ一致保証を必要とするトランザク
ションが発行されたときに、クラスタ間即ち、システム
全体を対象にキャッシュ一致保証すべきかどうかの判定
に利用される。この場合、自クラスタ内で発行されたト
ランザクションは、ローカルバスキャッシュ一致保証監
視装置505及びローカルバス受信制御部506によっ
てスヌープされる。スヌープされたトランザクションの
アドレスはバス511,516を経由してエクスポート
ディレクトリアドレスレジスタ520に登録される。エ
クスポートディレクトリ制御装置508は、インデクス
部522によってエクスポートディレクトリ600のエ
ントリを指定し、各セットから読み出された物理アドレ
ス部601と、エクスポートディレクトリアドレスレジス
タ520の比較タグ部521を比較器523によって比
較しその結果をローカルバスキャッシュ一致保証監視装
置505に送る。ヒットした場合には、対応したエント
リのダーティビット部602をセレクタ525で選択しロ
ーカルバスキャッシュ一致保証監視装置505に送る。
ローカルバスキャッシュ一致保証監視装置505は、エ
クスポートディレクトリ検索結果に基づいて、システム
全体を対象にキャッシュ一致保証すべきかどうか判定す
る。
ラスタ内でキャッシュ一致保証を必要とするトランザク
ションが発行されたときに、クラスタ間即ち、システム
全体を対象にキャッシュ一致保証すべきかどうかの判定
に利用される。この場合、自クラスタ内で発行されたト
ランザクションは、ローカルバスキャッシュ一致保証監
視装置505及びローカルバス受信制御部506によっ
てスヌープされる。スヌープされたトランザクションの
アドレスはバス511,516を経由してエクスポート
ディレクトリアドレスレジスタ520に登録される。エ
クスポートディレクトリ制御装置508は、インデクス
部522によってエクスポートディレクトリ600のエ
ントリを指定し、各セットから読み出された物理アドレ
ス部601と、エクスポートディレクトリアドレスレジス
タ520の比較タグ部521を比較器523によって比
較しその結果をローカルバスキャッシュ一致保証監視装
置505に送る。ヒットした場合には、対応したエント
リのダーティビット部602をセレクタ525で選択しロ
ーカルバスキャッシュ一致保証監視装置505に送る。
ローカルバスキャッシュ一致保証監視装置505は、エ
クスポートディレクトリ検索結果に基づいて、システム
全体を対象にキャッシュ一致保証すべきかどうか判定す
る。
【0030】次に、図6〜図11を用いて、メモリアク
セス処理手順を示す。
セス処理手順を示す。
【0031】(1)自クラスタ内のローカルメモリに対
するラインリード 図6は、自クラスタ内のローカルメモリ400に対する
ラインリードアクセスの処理フローを示す。プロセッサ
200が発行するラインリード要求は、ローカルバス1
600にブロードキャストされ(3000)、プロセッ
サメモリインターフェース装置300及びクラスタ通信
制御装置500に送信される。この時同時にクラスタ内
の他のプロセッサは、該ラインリード要求をスヌープ
し、自キャッシュ内のキャッシュ検索を行う。プロセッ
サメモリインターフェース装置300及びクラスタ通信制
御装置500は、受け取ったアクセスのアドレスから自
クラスタ内のローカルメモリ400へのアクセスである
ことを識別し(3001)、プロセッサメモリインター
フェース装置300はローカルメモリのアクセスを開始
しクラスタ通信制御装置500は他クラスタへの読みだ
しを中止する。この時クラスタ通信制御装置500は、
エクスポートディレクトリ600を検索しクラスタ間キ
ャッシュ一致保証が必要かどうかを判定する(300
3)。
するラインリード 図6は、自クラスタ内のローカルメモリ400に対する
ラインリードアクセスの処理フローを示す。プロセッサ
200が発行するラインリード要求は、ローカルバス1
600にブロードキャストされ(3000)、プロセッ
サメモリインターフェース装置300及びクラスタ通信
制御装置500に送信される。この時同時にクラスタ内
の他のプロセッサは、該ラインリード要求をスヌープ
し、自キャッシュ内のキャッシュ検索を行う。プロセッ
サメモリインターフェース装置300及びクラスタ通信制
御装置500は、受け取ったアクセスのアドレスから自
クラスタ内のローカルメモリ400へのアクセスである
ことを識別し(3001)、プロセッサメモリインター
フェース装置300はローカルメモリのアクセスを開始
しクラスタ通信制御装置500は他クラスタへの読みだ
しを中止する。この時クラスタ通信制御装置500は、
エクスポートディレクトリ600を検索しクラスタ間キ
ャッシュ一致保証が必要かどうかを判定する(300
3)。
【0032】エクスポートディレクトリにミスヒットす
るかあるいは、Shared状態でヒットした場合はクラスタ
間キャッシュ一致保証は不要となる。この場合、クラス
タ内キャッシュ一致保証の結果、他のキャッシュメモリ
上にダーティラインが存在するかどうかを判定する(3
020)。存在する場合はクラスタ内でキャッシュ間転
送を行い、ローカルメモリ400の読みだしはキャンセ
ルする(3021)。この時キャッシュ間データ転送され
るデータをプロセッサメモリインターフェース装置30
0が取り込みローカルメモリ400に書き戻す(302
2)。そして応答データをアクセス元のキャッシュメモ
リにShared状態として登録する(3023)。また、ダー
ティラインが存在しない場合は、ローカルメモリ400
から読みだしたデータをアクセス元に転送し(302
4)、キャッシュメモリに登録する(3025)。この
時、キャッシュ一致保証の結果、他のキャッシュメモリ
に対象データのコピーが存在していればShared状態とし
て登録し、コピーが存在しなければExclusive 状態とし
て登録する。
るかあるいは、Shared状態でヒットした場合はクラスタ
間キャッシュ一致保証は不要となる。この場合、クラス
タ内キャッシュ一致保証の結果、他のキャッシュメモリ
上にダーティラインが存在するかどうかを判定する(3
020)。存在する場合はクラスタ内でキャッシュ間転
送を行い、ローカルメモリ400の読みだしはキャンセ
ルする(3021)。この時キャッシュ間データ転送され
るデータをプロセッサメモリインターフェース装置30
0が取り込みローカルメモリ400に書き戻す(302
2)。そして応答データをアクセス元のキャッシュメモ
リにShared状態として登録する(3023)。また、ダー
ティラインが存在しない場合は、ローカルメモリ400
から読みだしたデータをアクセス元に転送し(302
4)、キャッシュメモリに登録する(3025)。この
時、キャッシュ一致保証の結果、他のキャッシュメモリ
に対象データのコピーが存在していればShared状態とし
て登録し、コピーが存在しなければExclusive 状態とし
て登録する。
【0033】一方、クラスタ通信制御装置500が、エ
クスポートディレクトリ600を検索しクラスタ間キャ
ッシュ一致保証が必要かどうかを判定(3003)した
結果、対応エントリがエクスポートディレクトリに存在
し且つDirty 状態であれば、クラスタ間キャッシュ一致
保証が必要となる。クラスタ通信制御装置500は、ロ
ーカルバスにキャッシュ一致保証処理を引き伸ばすよう
に指示する(3004)とともに、クラスタバス2200
にメモリアドレスをブロードキャストしクラスタ間キャ
ッシュ一致保証を開始する(3005)。他クラスタの
クラスタ通信制御装置500はブロードキャストされた
アドレスをスヌープし、更に各クラスタ内のローカルバ
ス1600に該アドレスをブロードキャストしローカル
キャッシュ一致保証処理を実施する(3006)。クラ
スタ間キャッシュ一致保証の結果、他クラスタにダーテ
ィラインが存在するかどうかを判定する(3010)。
他クラスタにダーティラインが存在しなければ、自クラ
スタ内のローカルメモリ400のデータを読みだし(3
015)。アクセス元に転送する。そして、クラスタ内
のローカルメモリ400のデータを読みだし(301
5)アクセス元に転送する。そして、クラスタ間キャッ
シュ一致保証の結果に従って、SharedあるいはExclusiv
e 状態としてキャッシュに登録する(3016)。他ク
ラスタにダーティラインが存在する場合、該データライ
ンはクラスタ通信制御装置500間を経由してアクセス
元のクラスタに転送される(3011)。その後アクセ
ス元のクラスタで中断されていたローカルキャッシュ一
致保証処理が再開され、クラスタ通信制御装置500か
らアクセス元のプロセッサにデータが転送される。この
時自クラスタ内のローカル共有メモリ400の読みだし
はキャンセルされる。また、転送されるデータをプロセ
ッサメモリインターフェース装置300が取り込みロー
カルメモリ400に書き戻す(3012)。更にエクス
ポートディレクトリ600の該当エントリの状態がDirt
y からSharedに変更される。そして応答データをアクセ
ス元のキャッシュメモリにShared状態として登録する
(3014)。 (2)他クラスタ内のローカルメモリに対するラインリ
ード 図7は、他クラスタ内のローカルメモリ400に対する
ラインリードアクセスの処理フローを示す。プロセッサ
200が発行するラインリード要求は、ローカルバス1
600にブロードキャストされ(3100)、プロセッ
サメモリインターフェース装置300及びクラスタ通信
制御装置500に送信される。この時同時にクラスタ内
の他のプロセッサは、該ラインリード要求をスヌープ
し、自キャッシュ内のキャッシュ検索を行う。プロセッ
サメモリインターフェース装置300及びクラスタ通信制
御装置500は、受け取ったアクセスのアドレスから他
クラスタ内のローカルメモリ400へのアクセスである
ことを識別する(3101)。プロセッサメモリインター
フェース装置300はローカルメモリのアクセスを中止
する。一方クラスタ通信制御装置500は、エクスポー
トディレクトリ600にかかわらず、ローカルバスにキ
ャッシュ一致保証処理を引き伸ばすように指示する(3
103)とともに、クラスタバス2200にメモリアド
レスをブロードキャストして対象クラスタにアドレスを
送るとともにクラスタ間キャッシュ一致保証を開始する
(3104)。他クラスタのクラスタ通信制御装置50
0はブロードキャストされたアドレスをスヌープし、更
に各クラスタ内のローカルバス1600に該アドレスを
ブロードキャストしローカルキャッシュ一致保証処理を
実施する(3105)。この時、アクセス対象のクラス
タでは、ローカルメモリ400の読みだしが開始され
る。クラスタ間キャッシュ一致保証の結果、他クラスタ
にダーティラインが存在するかどうかを判定する(31
06)。他クラスタにダーティラインが存在する場合、
該データラインはクラスタ通信制御装置500間を経由し
てアクセス元のクラスタに転送される(3107)。こ
の時、対象クラスタのローカルメモリ400の読みだし
はキャンセルされる。また、クラスタ間で転送されるデ
ータを対象クラスタのクラスタ通信制御装置500が取
り込み対象クラスタのローカルメモリ400に書き戻す
(3108)。更に対象クラスタのエクスポートディレ
クトリ600の該当エントリの状態がDirty からShared
に変更される。これと平行してアクセス元のクラスタで
は、中断されていたローカルキャッシュ一致保証処理が
再開され、クラスタ通信制御装置500からアクセス元
のプロセッサにデータが転送される。そして応答データ
をアクセス元のキャッシュメモリにShared状態として登
録する(3110)。
クスポートディレクトリ600を検索しクラスタ間キャ
ッシュ一致保証が必要かどうかを判定(3003)した
結果、対応エントリがエクスポートディレクトリに存在
し且つDirty 状態であれば、クラスタ間キャッシュ一致
保証が必要となる。クラスタ通信制御装置500は、ロ
ーカルバスにキャッシュ一致保証処理を引き伸ばすよう
に指示する(3004)とともに、クラスタバス2200
にメモリアドレスをブロードキャストしクラスタ間キャ
ッシュ一致保証を開始する(3005)。他クラスタの
クラスタ通信制御装置500はブロードキャストされた
アドレスをスヌープし、更に各クラスタ内のローカルバ
ス1600に該アドレスをブロードキャストしローカル
キャッシュ一致保証処理を実施する(3006)。クラ
スタ間キャッシュ一致保証の結果、他クラスタにダーテ
ィラインが存在するかどうかを判定する(3010)。
他クラスタにダーティラインが存在しなければ、自クラ
スタ内のローカルメモリ400のデータを読みだし(3
015)。アクセス元に転送する。そして、クラスタ内
のローカルメモリ400のデータを読みだし(301
5)アクセス元に転送する。そして、クラスタ間キャッ
シュ一致保証の結果に従って、SharedあるいはExclusiv
e 状態としてキャッシュに登録する(3016)。他ク
ラスタにダーティラインが存在する場合、該データライ
ンはクラスタ通信制御装置500間を経由してアクセス
元のクラスタに転送される(3011)。その後アクセ
ス元のクラスタで中断されていたローカルキャッシュ一
致保証処理が再開され、クラスタ通信制御装置500か
らアクセス元のプロセッサにデータが転送される。この
時自クラスタ内のローカル共有メモリ400の読みだし
はキャンセルされる。また、転送されるデータをプロセ
ッサメモリインターフェース装置300が取り込みロー
カルメモリ400に書き戻す(3012)。更にエクス
ポートディレクトリ600の該当エントリの状態がDirt
y からSharedに変更される。そして応答データをアクセ
ス元のキャッシュメモリにShared状態として登録する
(3014)。 (2)他クラスタ内のローカルメモリに対するラインリ
ード 図7は、他クラスタ内のローカルメモリ400に対する
ラインリードアクセスの処理フローを示す。プロセッサ
200が発行するラインリード要求は、ローカルバス1
600にブロードキャストされ(3100)、プロセッ
サメモリインターフェース装置300及びクラスタ通信
制御装置500に送信される。この時同時にクラスタ内
の他のプロセッサは、該ラインリード要求をスヌープ
し、自キャッシュ内のキャッシュ検索を行う。プロセッ
サメモリインターフェース装置300及びクラスタ通信制
御装置500は、受け取ったアクセスのアドレスから他
クラスタ内のローカルメモリ400へのアクセスである
ことを識別する(3101)。プロセッサメモリインター
フェース装置300はローカルメモリのアクセスを中止
する。一方クラスタ通信制御装置500は、エクスポー
トディレクトリ600にかかわらず、ローカルバスにキ
ャッシュ一致保証処理を引き伸ばすように指示する(3
103)とともに、クラスタバス2200にメモリアド
レスをブロードキャストして対象クラスタにアドレスを
送るとともにクラスタ間キャッシュ一致保証を開始する
(3104)。他クラスタのクラスタ通信制御装置50
0はブロードキャストされたアドレスをスヌープし、更
に各クラスタ内のローカルバス1600に該アドレスを
ブロードキャストしローカルキャッシュ一致保証処理を
実施する(3105)。この時、アクセス対象のクラス
タでは、ローカルメモリ400の読みだしが開始され
る。クラスタ間キャッシュ一致保証の結果、他クラスタ
にダーティラインが存在するかどうかを判定する(31
06)。他クラスタにダーティラインが存在する場合、
該データラインはクラスタ通信制御装置500間を経由し
てアクセス元のクラスタに転送される(3107)。こ
の時、対象クラスタのローカルメモリ400の読みだし
はキャンセルされる。また、クラスタ間で転送されるデ
ータを対象クラスタのクラスタ通信制御装置500が取
り込み対象クラスタのローカルメモリ400に書き戻す
(3108)。更に対象クラスタのエクスポートディレ
クトリ600の該当エントリの状態がDirty からShared
に変更される。これと平行してアクセス元のクラスタで
は、中断されていたローカルキャッシュ一致保証処理が
再開され、クラスタ通信制御装置500からアクセス元
のプロセッサにデータが転送される。そして応答データ
をアクセス元のキャッシュメモリにShared状態として登
録する(3110)。
【0034】クラスタ間キャッシュ一致保証の結果、他
クラスタにダーティラインが存在しなければ、対象クラ
スタのローカルメモリ400から読み出されたデータが
アクセス元クラスタのクラスタ通信制御装置500に転
送される。この時、対象クラスタのエクスポートディレ
クトリに対応するエントリが存在しなければ、Shared状
態として新規登録する(3111)。そして、中断され
ていたローカルキャッシュ一致保証処理が再開されアク
セス元クラスタ内のキャッシュにダーティラインが存在
するかどうか判定される(3120)。ダーティライン
が存在すれば、クラスタ内のキャッシュ間でデータが転
送される(3121)。この時、クラスタ通信制御装置
500まで転送されていた対象クラスタから読みだしデ
ータは廃棄される。また、キャッシュ間転送されたデー
タはクラスタ通信制御装置500に取り込まれ、対象ク
ラスタに転送されてローカルメモリ400に書き戻され
る(3122)。この時同時に対象クラスタのエクスポ
ートディレクトリの対応エントリは、Dirty 状態からSh
aredに変更される(3123)。そして、アクセス元キ
ャッシュでは、応答データがShared状態として登録され
る(3124)。
クラスタにダーティラインが存在しなければ、対象クラ
スタのローカルメモリ400から読み出されたデータが
アクセス元クラスタのクラスタ通信制御装置500に転
送される。この時、対象クラスタのエクスポートディレ
クトリに対応するエントリが存在しなければ、Shared状
態として新規登録する(3111)。そして、中断され
ていたローカルキャッシュ一致保証処理が再開されアク
セス元クラスタ内のキャッシュにダーティラインが存在
するかどうか判定される(3120)。ダーティライン
が存在すれば、クラスタ内のキャッシュ間でデータが転
送される(3121)。この時、クラスタ通信制御装置
500まで転送されていた対象クラスタから読みだしデ
ータは廃棄される。また、キャッシュ間転送されたデー
タはクラスタ通信制御装置500に取り込まれ、対象ク
ラスタに転送されてローカルメモリ400に書き戻され
る(3122)。この時同時に対象クラスタのエクスポ
ートディレクトリの対応エントリは、Dirty 状態からSh
aredに変更される(3123)。そして、アクセス元キ
ャッシュでは、応答データがShared状態として登録され
る(3124)。
【0035】一方、ローカルキャッシュ一致保証処理が
再開後、アクセス元クラスタ内のキャッシュメモリにダ
ーティラインが存在しなければ、対象クラスタから送ら
れてきたデータが、クラスタ通信制御装置500からア
クセス元のキャッシュに転送され登録される(312
7)。この時、ラインの状態はクラスタ間キャッシュ一
致保証の結果にかかわらずShared状態とする。これは、
Exclusive 状態として登録すると、プロセッサが他のキ
ャッシュに報告することなく自キャッシュの内容を変更
してしまい、対象クラスタのエクスポートディレクトリ
がShared状態であることと矛盾してしまう恐れがあるた
めである。
再開後、アクセス元クラスタ内のキャッシュメモリにダ
ーティラインが存在しなければ、対象クラスタから送ら
れてきたデータが、クラスタ通信制御装置500からア
クセス元のキャッシュに転送され登録される(312
7)。この時、ラインの状態はクラスタ間キャッシュ一
致保証の結果にかかわらずShared状態とする。これは、
Exclusive 状態として登録すると、プロセッサが他のキ
ャッシュに報告することなく自キャッシュの内容を変更
してしまい、対象クラスタのエクスポートディレクトリ
がShared状態であることと矛盾してしまう恐れがあるた
めである。
【0036】(3)自クラスタ内のローカルメモリに対
するキャッシュフラッシュ 図8は、自クラスタ内のローカルメモリ400に対する
キャッシュフラッシュアクセスの処理フローを示す。プ
ロセッサ200が発行するキャッシュフラッシュ要求
は、ローカルバス1600にブロードキャストされ(3
200)、プロセッサメモリインターフェース装置30
0及びクラスタ通信制御装置500に送信される。この
時同時にクラスタ内の他のプロセッサは、該ラインリー
ド要求をスヌープし、自キャッシュ内のキャッシュ検索
を行う。プロセッサメモリインターフェース装置300
及びクラスタ通信制御装置500は、受け取ったアクセ
スのアドレスから自クラスタ内のローカルメモリ400
へのアクセスであることを識別し(3201)、プロセ
ッサメモリインターフェース装置300はキャッシュ一
致保証の終了を待つ。この時クラスタ通信制御装置50
0は、エクスポートディレクトリ600を検索しクラス
タ間キャッシュ一致保証が必要かどうかを判定する(3
203)。エクスポートディレクトリにミスヒットした
場合はクラスタ間キャッシュ一致保証は不要となる。こ
の場合、アクセス元クラスタ内キャッシュ一致保証の結
果、他のキャッシュメモリ上にダーティラインが存在す
るかどうかを判定する(3220)。存在する場合は、
該当データがプロセッサメモリインターフェース装置3
00に転送されローカルメモリ400に書き戻された後
(3221)、該当ラインがキャッシュメモリから無効
化される(3222)。また、ダーティラインが存在し
ない場合は、即座に対象ラインが無効化される(322
3)。
するキャッシュフラッシュ 図8は、自クラスタ内のローカルメモリ400に対する
キャッシュフラッシュアクセスの処理フローを示す。プ
ロセッサ200が発行するキャッシュフラッシュ要求
は、ローカルバス1600にブロードキャストされ(3
200)、プロセッサメモリインターフェース装置30
0及びクラスタ通信制御装置500に送信される。この
時同時にクラスタ内の他のプロセッサは、該ラインリー
ド要求をスヌープし、自キャッシュ内のキャッシュ検索
を行う。プロセッサメモリインターフェース装置300
及びクラスタ通信制御装置500は、受け取ったアクセ
スのアドレスから自クラスタ内のローカルメモリ400
へのアクセスであることを識別し(3201)、プロセ
ッサメモリインターフェース装置300はキャッシュ一
致保証の終了を待つ。この時クラスタ通信制御装置50
0は、エクスポートディレクトリ600を検索しクラス
タ間キャッシュ一致保証が必要かどうかを判定する(3
203)。エクスポートディレクトリにミスヒットした
場合はクラスタ間キャッシュ一致保証は不要となる。こ
の場合、アクセス元クラスタ内キャッシュ一致保証の結
果、他のキャッシュメモリ上にダーティラインが存在す
るかどうかを判定する(3220)。存在する場合は、
該当データがプロセッサメモリインターフェース装置3
00に転送されローカルメモリ400に書き戻された後
(3221)、該当ラインがキャッシュメモリから無効
化される(3222)。また、ダーティラインが存在し
ない場合は、即座に対象ラインが無効化される(322
3)。
【0037】一方、クラスタ通信制御装置500が、エ
クスポートディレクトリ600を検索した結果、対応エ
ントリがエクスポートディレクトリに存在すれば、クラ
スタ間キャッシュ一致保証が必要となる。クラスタ通信
制御装置500は、ローカルバスにキャッシュ一致保証
処理を引き伸ばすように指示する(3204)ととも
に、クラスタバス2200にメモリアドレスをブロード
キャストしクラスタ間キャッシュ一致保証を開始する
(3205)。他クラスタのクラスタ通信制御装置50
0はブロードキャストされたアドレスをスヌープし、更
に各クラスタ内のローカルバス1600に該アドレスを
ブロードキャストしローカルキャッシュ一致保証処理を
実施する(3206)。クラスタ間キャッシュ一致保証
の結果、他クラスタにダーティラインが存在するかどう
かを判定する(3210)。他クラスタにダーティライ
ンが存在しなければ、即座に各クラスタ内のキャッシュ
メモリに登録された該当ラインを無効化する(321
4)。また、アクセス元クラスタのエクスポートディレ
クトリの対象エントリも無効化する(3215)。
クスポートディレクトリ600を検索した結果、対応エ
ントリがエクスポートディレクトリに存在すれば、クラ
スタ間キャッシュ一致保証が必要となる。クラスタ通信
制御装置500は、ローカルバスにキャッシュ一致保証
処理を引き伸ばすように指示する(3204)ととも
に、クラスタバス2200にメモリアドレスをブロード
キャストしクラスタ間キャッシュ一致保証を開始する
(3205)。他クラスタのクラスタ通信制御装置50
0はブロードキャストされたアドレスをスヌープし、更
に各クラスタ内のローカルバス1600に該アドレスを
ブロードキャストしローカルキャッシュ一致保証処理を
実施する(3206)。クラスタ間キャッシュ一致保証
の結果、他クラスタにダーティラインが存在するかどう
かを判定する(3210)。他クラスタにダーティライ
ンが存在しなければ、即座に各クラスタ内のキャッシュ
メモリに登録された該当ラインを無効化する(321
4)。また、アクセス元クラスタのエクスポートディレ
クトリの対象エントリも無効化する(3215)。
【0038】他クラスタにダーティラインが存在する場
合、該データラインはクラスタ通信制御装置500間を
経由してアクセス元のクラスタに転送される。その後ア
クセス元のクラスタで中断されていたローカルキャッシ
ュ一致保証処理が再開され、クラスタ通信制御装置50
0からプロセッサメモリインターフェース装置300に
データが転送され、ローカルメモリ400へ書き戻され
る(3211)。同時に、全クラスタ内の対象ラインは全
て無効化される(3212)。また、アクセス元クラスタ
のエクスポートディレクトリの対象エントリも無効化さ
れる(3213)。
合、該データラインはクラスタ通信制御装置500間を
経由してアクセス元のクラスタに転送される。その後ア
クセス元のクラスタで中断されていたローカルキャッシ
ュ一致保証処理が再開され、クラスタ通信制御装置50
0からプロセッサメモリインターフェース装置300に
データが転送され、ローカルメモリ400へ書き戻され
る(3211)。同時に、全クラスタ内の対象ラインは全
て無効化される(3212)。また、アクセス元クラスタ
のエクスポートディレクトリの対象エントリも無効化さ
れる(3213)。
【0039】(4)他クラスタ内のローカルメモリに対
するキャッシュフラッシュ 図9は、他クラスタ内のローカルメモリ400に対する
キャッシュフラッシュアクセスの処理フローを示す。プ
ロセッサ200が発行するキャッシュフラッシュ要求
は、ローカルバス1600にブロードキャストされ(3
300)、プロセッサメモリインターフェース装置30
0及びクラスタ通信制御装置500に送信される。この
時同時にクラスタ内の他のプロセッサは、該ラインリー
ド要求をスヌープし、自キャッシュ内のキャッシュ検索
を行う。プロセッサメモリインターフェース装置300
及びクラスタ通信制御装置500は、受け取ったアクセ
スのアドレスから他クラスタ内のローカルメモリ400
へのアクセスであることを識別する(3301)。クラ
スタ通信制御装置500は、エクスポートディレクトリ
600にかかわらず、ローカルバスにキャッシュ一致保
証処理を引き伸ばすように指示する(3303)ととも
に、クラスタバス2200にメモリアドレスをブロード
キャストして対象クラスタにアドレスを送るとともにク
ラスタ間キャッシュ一致保証を開始する(3304)。
他クラスタのクラスタ通信制御装置500はブロードキャ
ストされたアドレスをスヌープし、更に各クラスタ内の
ローカルバス1600に該アドレスをブロードキャスト
しローカルキャッシュ一致保証処理を実施する(330
5)。クラスタ間キャッシュ一致保証の結果、他クラス
タにダーティラインが存在するかどうかを判定する(3
306)。他クラスタにダーティラインが存在する場
合、該データラインはクラスタ通信制御装置500間を
経由して対象クラスタに転送される(3307)。対象
クラスタでは、受け取ったデータをプロセッサメモリイ
ンターフェース装置300に転送しローカルメモリ40
0に書き戻す。また、対象クラスタのエクスポートディ
レクトリの対応するエントリが無効化される(330
9)。クラスタ間キャッシュ一致保証の結果、他クラス
タのキャッシュメモリに登録されていた対象エントリが
無効化される(3308)。これと平行してアクセス元
のクラスタでは、中断されていたローカルキャッシュ一
致保証処理が再開され、キャッシュメモリ内の対象エン
トリが無効化される。
するキャッシュフラッシュ 図9は、他クラスタ内のローカルメモリ400に対する
キャッシュフラッシュアクセスの処理フローを示す。プ
ロセッサ200が発行するキャッシュフラッシュ要求
は、ローカルバス1600にブロードキャストされ(3
300)、プロセッサメモリインターフェース装置30
0及びクラスタ通信制御装置500に送信される。この
時同時にクラスタ内の他のプロセッサは、該ラインリー
ド要求をスヌープし、自キャッシュ内のキャッシュ検索
を行う。プロセッサメモリインターフェース装置300
及びクラスタ通信制御装置500は、受け取ったアクセ
スのアドレスから他クラスタ内のローカルメモリ400
へのアクセスであることを識別する(3301)。クラ
スタ通信制御装置500は、エクスポートディレクトリ
600にかかわらず、ローカルバスにキャッシュ一致保
証処理を引き伸ばすように指示する(3303)ととも
に、クラスタバス2200にメモリアドレスをブロード
キャストして対象クラスタにアドレスを送るとともにク
ラスタ間キャッシュ一致保証を開始する(3304)。
他クラスタのクラスタ通信制御装置500はブロードキャ
ストされたアドレスをスヌープし、更に各クラスタ内の
ローカルバス1600に該アドレスをブロードキャスト
しローカルキャッシュ一致保証処理を実施する(330
5)。クラスタ間キャッシュ一致保証の結果、他クラス
タにダーティラインが存在するかどうかを判定する(3
306)。他クラスタにダーティラインが存在する場
合、該データラインはクラスタ通信制御装置500間を
経由して対象クラスタに転送される(3307)。対象
クラスタでは、受け取ったデータをプロセッサメモリイ
ンターフェース装置300に転送しローカルメモリ40
0に書き戻す。また、対象クラスタのエクスポートディ
レクトリの対応するエントリが無効化される(330
9)。クラスタ間キャッシュ一致保証の結果、他クラス
タのキャッシュメモリに登録されていた対象エントリが
無効化される(3308)。これと平行してアクセス元
のクラスタでは、中断されていたローカルキャッシュ一
致保証処理が再開され、キャッシュメモリ内の対象エン
トリが無効化される。
【0040】クラスタ間キャッシュ一致保証の結果、他
クラスタにダーティラインが存在しなければ、他クラス
タのキャッシュに登録されていた対象ラインが無効化さ
れ(3310)、中断されていたローカルキャッシュ一
致保証処理が再開される。この時、対象クラスタのエク
スポートディレクトリの対象エントリがShared状態であ
れば、該エントリを無効化する(3310)。Dirty 状
態の時は無効化しない。そして、アクセス元クラスタ内
のキャッシュにダーティラインが存在するかどうか判定
される(3320)。ダーティラインが存在すれば、ク
ラスタ内のキャッシュから、クラスタ通信制御装置50
0を経由して対象クラスタのローカルメモリ400にデ
ータが書き戻される(3312)。この時同時に対象ク
ラスタのエクスポートディレクトリの対応エントリが無
効化される(3323)。そして、アクセス元キャッシ
ュでは、クラスタ内の全てのキャッシュから対象ライン
が無効化される(3322)。一方、ローカルキャッシ
ュ一致保証処理が再開後、アクセス元クラスタ内のキャ
ッシュメモリにダーティラインが存在しなければ、即座
に対象ラインを無効化する(3326)。
クラスタにダーティラインが存在しなければ、他クラス
タのキャッシュに登録されていた対象ラインが無効化さ
れ(3310)、中断されていたローカルキャッシュ一
致保証処理が再開される。この時、対象クラスタのエク
スポートディレクトリの対象エントリがShared状態であ
れば、該エントリを無効化する(3310)。Dirty 状
態の時は無効化しない。そして、アクセス元クラスタ内
のキャッシュにダーティラインが存在するかどうか判定
される(3320)。ダーティラインが存在すれば、ク
ラスタ内のキャッシュから、クラスタ通信制御装置50
0を経由して対象クラスタのローカルメモリ400にデ
ータが書き戻される(3312)。この時同時に対象ク
ラスタのエクスポートディレクトリの対応エントリが無
効化される(3323)。そして、アクセス元キャッシ
ュでは、クラスタ内の全てのキャッシュから対象ライン
が無効化される(3322)。一方、ローカルキャッシ
ュ一致保証処理が再開後、アクセス元クラスタ内のキャ
ッシュメモリにダーティラインが存在しなければ、即座
に対象ラインを無効化する(3326)。
【0041】(5)自クラスタ内のローカルメモリに対
するキャッシュパージ 図10は、自クラスタ内のローカルメモリ400に対す
るキャッシュパージアクセスの処理フローを示す。エク
スポートディレクトリ600を検索しクラスタ間キャッ
シュ一致保証が必要かどうかを判定する処理(340
3)まではキャッシュフラッシュと同処理である。エク
スポートディレクトリにミスヒットした場合はクラスタ
間キャッシュ一致保証は不要となり、アクセス元クラス
タ内のキャッシュに登録された対象ラインが即座に無効
化される(3420)。
するキャッシュパージ 図10は、自クラスタ内のローカルメモリ400に対す
るキャッシュパージアクセスの処理フローを示す。エク
スポートディレクトリ600を検索しクラスタ間キャッ
シュ一致保証が必要かどうかを判定する処理(340
3)まではキャッシュフラッシュと同処理である。エク
スポートディレクトリにミスヒットした場合はクラスタ
間キャッシュ一致保証は不要となり、アクセス元クラス
タ内のキャッシュに登録された対象ラインが即座に無効
化される(3420)。
【0042】一方、クラスタ通信制御装置500が、エ
クスポートディレクトリ600を検索した結果、対応エ
ントリがエクスポートディレクトリに存在すれば、クラ
スタ間キャッシュ一致保証が必要となる。クラスタ通信
制御装置500は、ローカルバスにキャッシュ一致保証
処理を引き伸ばすように指示する(3404)とともに、
クラスタバス2200にメモリアドレスをブロードキャ
ストしクラスタ間キャッシュ一致保証を開始する(34
05)。他クラスタのクラスタ通信制御装置500はブロー
ドキャストされたアドレスをスヌープし、更に各クラス
タ内のローカルバス1600に該アドレスをブロードキ
ャストしローカルキャッシュ一致保証処理を実施する
(3406)。クラスタ間キャッシュ一致保証の結果、
全てのキャッシュに登録された対象ラインが無効化され
る(3407)。同時にアクセス元クラスタのエクスポ
ートディレクトリの対象エントリも無効化される(34
08)。
クスポートディレクトリ600を検索した結果、対応エ
ントリがエクスポートディレクトリに存在すれば、クラ
スタ間キャッシュ一致保証が必要となる。クラスタ通信
制御装置500は、ローカルバスにキャッシュ一致保証
処理を引き伸ばすように指示する(3404)とともに、
クラスタバス2200にメモリアドレスをブロードキャ
ストしクラスタ間キャッシュ一致保証を開始する(34
05)。他クラスタのクラスタ通信制御装置500はブロー
ドキャストされたアドレスをスヌープし、更に各クラス
タ内のローカルバス1600に該アドレスをブロードキ
ャストしローカルキャッシュ一致保証処理を実施する
(3406)。クラスタ間キャッシュ一致保証の結果、
全てのキャッシュに登録された対象ラインが無効化され
る(3407)。同時にアクセス元クラスタのエクスポ
ートディレクトリの対象エントリも無効化される(34
08)。
【0043】(6)他クラスタ内のローカルメモリに対
するキャッシュパージ 図11は、他クラスタ内のローカルメモリ400に対す
るキャッシュパージアクセスの処理フローを示す。エク
スポートディレクトリ600にかかわらずクラスタ間キ
ャッシュ一致保証を実施し、各クラスタ内のローカルバ
ス1600にブロードキャストする処理(3505)ま
では、他クラスタヘのキャッシュフラッシュと同処理で
ある。クラスタ間キャッシュ一致保証の結果、全クラス
タのキャッシュに登録された対象ラインが即座に無効化
される(3506)。注意すべきは対象クラスタのエク
スポートディレクトリ600の変更である。キャッシュ
パージには2種類のトランザクションがある。即ち、命
令によるキャッシュパージ、及びShared状態のキャッシ
ュエントリにストアアクセスが発生したときに他の全て
のキャッシュの該当エントリを無効化するキャッシュパ
ージである。命令によるキャッシュパージでは、すべて
のキャッシュから該当エントリが無効化される。一方、
Sharedラインへの書き込みによるキャッシュパージで
は、アクセス元のキャッシュに該当ラインがDirty 状態
で残ることになる。従って、対象クラスタのエクスポー
トディレクトリ600を変更する場合、上記2種類のキ
ャッシュパージを判定し(3508)、命令によるキャ
ッシュパージであれば、対象クラスタのエクスポートデ
ィレクトリ600の対象エントリを無効化する(350
9)。一方、Sharedラインへのストアによるキャッシュ
パージでは、エクスポートディレクトリ600の対象エ
ントリ無効化せず、Shared状態からDirty 状態に変更す
る(3510)。
するキャッシュパージ 図11は、他クラスタ内のローカルメモリ400に対す
るキャッシュパージアクセスの処理フローを示す。エク
スポートディレクトリ600にかかわらずクラスタ間キ
ャッシュ一致保証を実施し、各クラスタ内のローカルバ
ス1600にブロードキャストする処理(3505)ま
では、他クラスタヘのキャッシュフラッシュと同処理で
ある。クラスタ間キャッシュ一致保証の結果、全クラス
タのキャッシュに登録された対象ラインが即座に無効化
される(3506)。注意すべきは対象クラスタのエク
スポートディレクトリ600の変更である。キャッシュ
パージには2種類のトランザクションがある。即ち、命
令によるキャッシュパージ、及びShared状態のキャッシ
ュエントリにストアアクセスが発生したときに他の全て
のキャッシュの該当エントリを無効化するキャッシュパ
ージである。命令によるキャッシュパージでは、すべて
のキャッシュから該当エントリが無効化される。一方、
Sharedラインへの書き込みによるキャッシュパージで
は、アクセス元のキャッシュに該当ラインがDirty 状態
で残ることになる。従って、対象クラスタのエクスポー
トディレクトリ600を変更する場合、上記2種類のキ
ャッシュパージを判定し(3508)、命令によるキャ
ッシュパージであれば、対象クラスタのエクスポートデ
ィレクトリ600の対象エントリを無効化する(350
9)。一方、Sharedラインへのストアによるキャッシュ
パージでは、エクスポートディレクトリ600の対象エ
ントリ無効化せず、Shared状態からDirty 状態に変更す
る(3510)。
【0044】以上説明したように構成されるので以下に
記載されるような効果がある。大規模マルチプロセッサ
を複数のクラスタ(複数のプロセッサ及び主メモリから
なるグループ)に分割し、各クラスタ毎にエクスポート
ディレクトリを設けた。エクスポートディレクトリと
は、担当クラスタ内のローカルメモリのデータの内、外
部のクラスタのキャッシュメモリに登録されたデータの
識別子を登録するセットアソシアティブ型のディレクト
リである。これによって、クラスタ全てを対象にキャッ
シュ一致保証すべきか、クラスタ内のキャッシュ一致保
証だけで良いのかを即座に判定でき、また、大部分のデ
ータはクラスタ外へエクスポートされることはなく、ク
ラスタ内キャッシュ一致保証だけで処理を終えることが
できるので、キャッシュ一致保証制御の遅延を大幅に改
善できる。
記載されるような効果がある。大規模マルチプロセッサ
を複数のクラスタ(複数のプロセッサ及び主メモリから
なるグループ)に分割し、各クラスタ毎にエクスポート
ディレクトリを設けた。エクスポートディレクトリと
は、担当クラスタ内のローカルメモリのデータの内、外
部のクラスタのキャッシュメモリに登録されたデータの
識別子を登録するセットアソシアティブ型のディレクト
リである。これによって、クラスタ全てを対象にキャッ
シュ一致保証すべきか、クラスタ内のキャッシュ一致保
証だけで良いのかを即座に判定でき、また、大部分のデ
ータはクラスタ外へエクスポートされることはなく、ク
ラスタ内キャッシュ一致保証だけで処理を終えることが
できるので、キャッシュ一致保証制御の遅延を大幅に改
善できる。
【0045】また、エクスポートディレクトリによっ
て、メモリ読みだし/書き込みごとにシステム内の全て
のプロセッサにブロードキャストする必要がなく、プロ
セッサ間の通信量を大幅に低減することが可能になる。
て、メモリ読みだし/書き込みごとにシステム内の全て
のプロセッサにブロードキャストする必要がなく、プロ
セッサ間の通信量を大幅に低減することが可能になる。
【0046】また、エクスポートディレクトリはローカ
ルメモリの容量とは無関係に容量を決めることができ
る。そして、オーバーフローが発生したときは、対応し
たラインを他のクラスタから無効化する機構を設けた。
これにより、10−20Mバイトといった大きなディレ
クトリ容量を必要とするディレクトリ方式にくらべ、少
ない物量で効率の良いキャッシュ一致保証方式を実現で
きる。
ルメモリの容量とは無関係に容量を決めることができ
る。そして、オーバーフローが発生したときは、対応し
たラインを他のクラスタから無効化する機構を設けた。
これにより、10−20Mバイトといった大きなディレ
クトリ容量を必要とするディレクトリ方式にくらべ、少
ない物量で効率の良いキャッシュ一致保証方式を実現で
きる。
【0047】
【発明の効果】本発明によれば、マルチプロセッサシス
テムにおいて、分散したキャッシュメモリの一致保証を
高速に実行できる。
テムにおいて、分散したキャッシュメモリの一致保証を
高速に実行できる。
【図1】計算機システムの全体構成例を示す図。
【図2】プロセッサからみえる実メモリ空間のアドレス
割付を例示する図。
割付を例示する図。
【図3】プロセッサの内部構成例を示す図。
【図4】プロセッサメモリインターフェース装置の内部
構成例を示す図。
構成例を示す図。
【図5】クラスタ通信制御装置の内部構成例を示す図。
【図6】自クラスタ内ローカルメモリへのラインリード
処理例を示す図。
処理例を示す図。
【図7】他クラスタ内ローカルメモリへのラインリード
処理例を示す図。
処理例を示す図。
【図8】自クラスタ内ローカルメモリへのキャッシュフ
ラッシュ処理例を示す図。
ラッシュ処理例を示す図。
【図9】他クラスタ内ローカルメモリへのキャッシュフ
ラッシュ処理例を示す図。
ラッシュ処理例を示す図。
【図10】自クラスタ内ローカルメモリへのキャッシュ
パージ処理例を示す図。
パージ処理例を示す図。
【図11】他クラスタ内ローカルメモリへのキャッシュ
パージ処理例を示す図。
パージ処理例を示す図。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 石川 佐孝 神奈川県海老名市下今泉810番地 株式会 社日立製作所オフィスシステム事業部内
Claims (6)
- 【請求項1】それぞれキャッシュメモリを有する複数の
プロセッサと、該複数のプロセッサのそれぞれに接続さ
れたローカルメモリと、前記複数のプロセッサ及び前記
ローカルメモリに接続された通信制御装置とを含むクラ
スタを複数具備し、該クラスタが互いに前記通信制御装
置を介して接続されたマルチプロセッサシステムにおい
て、 前記通信制御装置は、自クラスタの前記ローカルメモリ
のデータのうち、他クラスタの前記キャッシュメモリに
登録されたデータに関する情報を記憶する記憶手段を有
し、該記憶手段に基づきキャッシュメモリ内容を一致化
すべき範囲を判定するキャッシュメモリ内容一致化範囲
判定手段を有することを特徴とするマルチプロセッサシ
ステム。 - 【請求項2】請求項1において、前記記憶手段は、他ク
ラスタの前記キャッシュメモリに登録されたデータのア
ドレスと、該データが変更されているか否かを示す状態
情報からなる複数のエントリを有することを特徴とする
マルチプロセッサシステム。 - 【請求項3】請求項1において、 前記記憶手段は、所定の順序にて消去すべきエントリを
決定する消去エントリ決定手段を有し、 さらに、前記消去エントリ決定手段により、消去すべき
と決定されたエントリに対応する他クラスタの前記キャ
ッシュメモリに登録されたデータを無効化する無効化手
段を有することを特徴とするマルチプロセッサシステ
ム。 - 【請求項4】請求項1において、 前記通信制御装置は、前記記憶手段の内容に基づき、自
クラスタ内におけるキャッシュメモリ内容一致化手段と
他クラスタとの間におけるキャッシュメモリ内容一致化
手段との少なくとも一方を作動することを特徴とするマ
ルチプロセッサシステム。 - 【請求項5】請求項1において、システム内の全てのキ
ャッシュメモリの特定のデータを無効化する全パージ手
段と、 一のプロセッサに接続された前記キャッシュメモリを除
いたシステム内の全てのキャッシュメモリの特定のデー
タを無効化する外部パージ手段とを有することを特徴と
するマルチプロセッサシステム。 - 【請求項6】それぞれキャッシュメモリを有する複数の
プロセッサと、 該複数のプロセッサを互いに接続するローカルバスと、 該ローカルバスに接続されたローカルメモリと、 該ローカルバスに接続された通信制御装置とを含むクラ
スタを複数具備し、 該複数のクラスタは互いに前記通信制御装置を介してク
ラスタバスに接続されたマルチプロセッサシステムにお
いて、 前記ローカルバスを監視するローカルバス監視手段と、 前記クラスタバスを監視するクラスタバス監視手段とを
有し、 自クラスタの前記ローカルメモリのデータのうち、他ク
ラスタの前記キャッシュメモリに登録されたデータに関
する情報を記憶する記憶手段を有し、 該記憶手段に基づき、キャッシュメモリ内容の一致化を
前記ローカルバス監視手段に基づくか、 前記クラスタバス監視手段に基づくかを判定する判定手
段を有することを特徴とするマルチプロセッサシステ
ム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6147354A JPH0816474A (ja) | 1994-06-29 | 1994-06-29 | マルチプロセッサシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6147354A JPH0816474A (ja) | 1994-06-29 | 1994-06-29 | マルチプロセッサシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0816474A true JPH0816474A (ja) | 1996-01-19 |
Family
ID=15428300
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6147354A Pending JPH0816474A (ja) | 1994-06-29 | 1994-06-29 | マルチプロセッサシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0816474A (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005141606A (ja) * | 2003-11-10 | 2005-06-02 | Hitachi Ltd | マルチプロセッサシステム |
JP2006072509A (ja) * | 2004-08-31 | 2006-03-16 | Fujitsu Ltd | 情報処理装置及びローカルスヌープ制御方法 |
JP2007179528A (ja) * | 2005-12-28 | 2007-07-12 | Internatl Business Mach Corp <Ibm> | 方法、コンピュータ・プログラム製品、コンピュータ・プログラム、情報ハンドリング・システム(デフォルト・データ転送コヒーレント・キャッシング・エージェントのシステムおよび方法) |
JP2007207223A (ja) * | 2006-01-30 | 2007-08-16 | Internatl Business Mach Corp <Ibm> | 複数のコヒーレンシ・ドメインを有するデータ処理システムでフラッシュ動作を処理するデータ処理システム、方法、およびメモリ・コントローラ |
JP2008525902A (ja) * | 2004-12-27 | 2008-07-17 | インテル・コーポレーション | マルチコアプロセッサにおける不均等キャッシュのためのシステム及び方法 |
JP2015210616A (ja) * | 2014-04-25 | 2015-11-24 | 富士通株式会社 | 演算処理装置とその制御方法 |
JP2019517687A (ja) * | 2016-05-31 | 2019-06-24 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | メモリにおける処理のためのキャッシュコヒーレンス |
JP2022533378A (ja) * | 2019-05-21 | 2022-07-22 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マイクロプロセッサにおけるアドレス変換キャッシュ無効化 |
-
1994
- 1994-06-29 JP JP6147354A patent/JPH0816474A/ja active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005141606A (ja) * | 2003-11-10 | 2005-06-02 | Hitachi Ltd | マルチプロセッサシステム |
JP2006072509A (ja) * | 2004-08-31 | 2006-03-16 | Fujitsu Ltd | 情報処理装置及びローカルスヌープ制御方法 |
JP2008525902A (ja) * | 2004-12-27 | 2008-07-17 | インテル・コーポレーション | マルチコアプロセッサにおける不均等キャッシュのためのシステム及び方法 |
JP2007179528A (ja) * | 2005-12-28 | 2007-07-12 | Internatl Business Mach Corp <Ibm> | 方法、コンピュータ・プログラム製品、コンピュータ・プログラム、情報ハンドリング・システム(デフォルト・データ転送コヒーレント・キャッシング・エージェントのシステムおよび方法) |
JP2007207223A (ja) * | 2006-01-30 | 2007-08-16 | Internatl Business Mach Corp <Ibm> | 複数のコヒーレンシ・ドメインを有するデータ処理システムでフラッシュ動作を処理するデータ処理システム、方法、およびメモリ・コントローラ |
JP2015210616A (ja) * | 2014-04-25 | 2015-11-24 | 富士通株式会社 | 演算処理装置とその制御方法 |
JP2019517687A (ja) * | 2016-05-31 | 2019-06-24 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | メモリにおける処理のためのキャッシュコヒーレンス |
JP2022533378A (ja) * | 2019-05-21 | 2022-07-22 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マイクロプロセッサにおけるアドレス変換キャッシュ無効化 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6631447B1 (en) | Multiprocessor system having controller for controlling the number of processors for which cache coherency must be guaranteed | |
US5265232A (en) | Coherence control by data invalidation in selected processor caches without broadcasting to processor caches not having the data | |
JP2566701B2 (ja) | 共有キャッシュ内のデータ・ユニットに対する所有権の変更制御装置 | |
US8909871B2 (en) | Data processing system and method for reducing cache pollution by write stream memory access patterns | |
US6023747A (en) | Method and system for handling conflicts between cache operation requests in a data processing system | |
JP3533355B2 (ja) | キャッシュ・メモリ・システム | |
CN110865968B (zh) | 多核处理装置及其内核之间数据传输方法 | |
JP2662603B2 (ja) | 無効要求を選別する方法及び装置 | |
US6748501B2 (en) | Microprocessor reservation mechanism for a hashed address system | |
US5664148A (en) | Cache arrangement including coalescing buffer queue for non-cacheable data | |
US6571322B2 (en) | Multiprocessor computer system with sectored cache line mechanism for cache intervention | |
US6272602B1 (en) | Multiprocessing system employing pending tags to maintain cache coherence | |
US6463507B1 (en) | Layered local cache with lower level cache updating upper and lower level cache directories | |
EP0062165A2 (en) | Multiprocessors including private and shared caches | |
JPH11506852A (ja) | 多数のバスマスタと共用レベル2キャッシュとを備える多レベルキャッシュシステムでのキャッシュスヌーピングオーバーヘッドの低減 | |
US7194586B2 (en) | Method and apparatus for implementing cache state as history of read/write shared data | |
US6418513B1 (en) | Queue-less and state-less layered local data cache mechanism | |
US6405285B1 (en) | Layered local cache mechanism with split register load bus and cache load bus | |
US20070130426A1 (en) | Cache system and shared secondary cache with flags to indicate masters | |
US20060179173A1 (en) | Method and system for cache utilization by prefetching for multiple DMA reads | |
US6446166B1 (en) | Method for upper level cache victim selection management by a lower level cache | |
US6973541B1 (en) | System and method for initializing memory within a data processing system | |
US6970976B1 (en) | Layered local cache with lower level cache optimizing allocation mechanism | |
JPH0551937B2 (ja) | ||
JPH0816474A (ja) | マルチプロセッサシステム |