説明

キャッシュ・コヒ―レンシの維持方法及びペ―ジ割当解除方法

【課題】 各ノードが、それ自体、共用メモリ・マルチプロセッサである複数のノードを備える共用メモリ・マルチプロセッサ装置において、キャッシュ・コヒーレンシを維持する方法を提供する。
【解決手段】 本発明によれば、共用メモリ・マルチプロセッサ装置内の最上位レベルのキャッシュメモリのキャッシュが、共用メモリ・プロセッサ装置の最上位キャッシュ・レベルをミスするキャッシュラインに対して、リードまたはライト・リクエストを発すると、キャッシュ・ラインのオーナが、キャッシュ・ラインを最上位レベルのキャッシュ・メモリを相互接続するバス上に出力する。

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マルチレベル共用メモリ・マルチプロセッサ・システムにおけるキャッシュ・コヒーレンシを維持する方法および装置に関する。
【0002】
【従来の技術】共用メモリ・マルチプロセッサは、プログラミングが容易で、性能が改善されているために非常に一般的である。事実、1本のバスを介してメモリおよび関連するディスクと相互接続された多数のプロセッサ(16または32個に及ぶ)からなる市販の多くの共用メモリ・マルチプロセッサが存在する。プロセッサは、典型的には、それらと関係する専用キャッシュを有し、共用メモリ・マルチプロセッサは、バスベースのコヒーレンス・プロトコルを使用してキャッシュ・コヒーレントとなっている。このアーキテクチャは、多段相互接続ネットワーク(MIN)[文献1参照]により相互接続された複数のノード(各ノードは、それ自体、16〜32ノード共用メモリ・マルチプロセッサである)からなるスケーラブル共用メモリ・プロセッサにおいて、急速に単一の要素となりつつある。しかし、このタイプの共用メモリ・マルチプロセッサ・アーキテクチャは、1つのノード上に存在しないデータに対しては、潜在的に極めて大きいアクセス待ち時間を免れることができない。この問題に対する1つの解決策は、メモリを高レベル・キャッシュとして各ノード上で使用することによって、キャッシュ・オンリ・メモリ・アーキテクチャ[文献2参照]を実現することである。このタイプのアーキテクチャによれば、要求に応じて、データをそれらノードへ自動的に移動させ複写することが容易になる。
【0003】COMAアーキテクチャの主要な問題点は、高価で複雑なハードウェアであるという点である。しかし、この問題点を最小限にするために、従来より簡易COMAアーキテクチャ〔文献3参照〕が提案されてきた。簡易COMAアーキテクチャでは、ページング・ソフトウェアが、ページング・レベルでのキャッシュ空間の割り当てと割り当て解除とを管理し、キャッシュ・コヒーレンスを維持するためには余り複雑でないハードウェアが使用されている。しかし、ノード全体にわたってキャッシュ・コヒーレンスを維持する方法は、ディレクトリ・ベースで行われるため、ノード全体のデータ・アクセスと制御とに伴うペナルティは(このようなアクセスの頻度は、可能性として少いとはいえ)相当なものになる可能性がある。
【0004】
【発明が解決しようとする課題】本発明の目的は、スケーラブル共用メモリ・マルチプロセッサ装置においてノード・ホップをもたらすようなキャッシュ・ミスに伴う待ち時間を最小限にすることにある。
【0005】本発明の他の目的は、コヒーレントなディレクトリの必要のないスケーラブル共用メモリ・マルチプロセッサを構築する費用効果的な方法を提供することにある。
【0006】
【課題を解決するための手段】従って、本発明は、各ノードが共用メモリ・マルチプロセッサである複数のノードを有する共用メモリ・マルチプロセッサ装置において、マルチレベルのキャッシュ全体にわたってキャッシュ・コヒーレンシを維持する方法を提供する。本発明によれば、共用メモリ・マルチプロセッサ装置内の最上位レベルのキャッシュ・メモリの各ラインについてステータス・オーナ情報を維持し、ステータス・オーナ情報は、リード・オンリ・ラインのノードのいずれが最初にリード・オンリ・ラインを読み取ったかを指示し、リード/ライト・ラインのノードのいずれが、最初にリード/ライト・ラインを読み取り、最後に変更したかを指示し、その際、各キャシュラインの指示されたノードがキャッシュ・ラインを所有するノードである。共用メモリ・マルチプロセッサ装置内の最上位レベルのキャッシュ・メモリのノードの1つのキャッシュが、共用メモリ・プロセッサ装置の最上位レベル・キャッシュでミスするラインに、リードまたはライト・アクセス命令を発すると、キャッシュ・ラインのオーナは、最上位レベルのキャッシュ・メモリを相互接続するバス上にキャッシュ・ラインを出力する。この場合、命令を発するキャッシュは、ラインのオーナによりバス上に出力されたキャッシュ・ラインを用いて、そのキャッシュ・ラインをそれぞれ読み取り、または変更する。
【0007】
【発明の実施の形態】図1は、2ノード共用メモリ・マルチプロセッサ・システムであって、各ノードがそれ自体、4ノード共用メモリ・マルチプロセッサH1であるものの論理図表である。このノードには、キャッシュ1,2が示され、低レベルL2キャッシュ1は、1個のプロセッサと関係するものとする。この簡易COMAアーキテクチャは、主メモリを含んではいないが、ディスク5、およびそれと関係するディスク・コントローラ6が、ノードH1(ディスクのホーム・ノードとして示す)上に物理的に常駐するものとする。提案された2つのアーキテクチャ(バス・オンリ(図1)とバス/MIN(図2))のプロトコル・アクティビティの基本的な相違は、バス・オンリ(図1)が、制御とデータ転送の双方にノード間バス4を使用する一方、バス/MINアーキテクチャ(図2)が、制御にはノード間バス4を、データ転送にはノード間MIN7を使用する点である。これら2つの提案アーキテクチャに必要とされるコヒーレンス・アクティビティの大部分は、同一である。それ故、我々は、説明をバス・オンリ・アーキテクチャ案(図1)に集中することにする。しかし、バス/MINアーキテクチャのプロトコル・アクティビティ(図2)は、それがバス・オンリ・プロトコル・アクティビティと異なる場合に特に説明することにする。
【0008】キャッシュ・コヒーレンスを維持するために、L2(1)とL3(2)のキャッシュは、共に、それぞれのキャッシュ・ライン・エントリに関する状態情報を含んでいる。コヒーレンス・プロトコルは、ジェネリックM,E,S,I(変更、専用、共用、無効)プロトコルであるとする。L2キャッシュ1の場合、このジェネリック・プロトコルは、典型的な階層バス・プロトコル[文献4参照]と共に使用することができる。我々の提案においては、主メモリの概念は存在しないので、共用オーナ状態と称されるもう1つの状態を使用して、リード・オンリ・ラインのオーナを指定する。リード・ミスでキャッシュ・ラインをキャッシュへ転送するリクエストが存在する場合、ラインのオーナがデータを供給する。ラインが変更、専用、または共用オーナの状態にある場合には、そのラインを含むキャッシュが、そのオーナである。
【0009】我々の提案の本質は、L3コヒーレンス・プロトコルを階層バス簡易COMAアーキテクチャに対して実施する時に必要とされる特別なアクションである。例えば、キャッシュ置換ストラテジはページ置換ストラテジとなり、本発明はこのページ置換ストラテジがL3キャッシュ・コヒーレンスとどのように一体化されているかを開示する。
【0010】L3キャッシュ・ラインは、以下に概説し図3に示されるような5つの状態の1つをとることができる。
・E−専用(8) ラインは、L3キャッシュ(2)および/またはその関連する低レベル・キャッシュに常駐するのみで、変更されていない。
・SO−共用オーナ(9B) ラインは、幾つかのL3キャッシュ(2)に常駐し、変更されていない。このキャッシュ・ラインは、リモートL3キャッシュ(2)がラインに対してミスを有する場合には常に、このL3バス(4)上に出力される。
・S−共用(9A) ラインは、幾つかのL3キャッシュ(2)に常駐し、変更されていない。
・M−変更(10) ラインは、L3キャッシュ(2)および/またはその関連する低レベル・キャッシュに常駐するのみで、変更されている。
・I−無効(11) キャッシュのラインに対して空間が割り当てられたが、データが無効である、すなわちラインに対してキャッシュに空間が割り当てられていない。
【0011】専用状態と変更状態を1つの状態に組み合わせることができる。
【0012】L3キャッシュ(2)のコヒーレンス・アクションを引き起こす幾つかの事象がある。それらは、L2バス・リード(AR)またはバス・ライト(AW)、L3バス・リード(BR)またはバス・ライト(BW)、L2またはL3無効化(それぞれINV−AおよびINV−B)、L3キャッシュ・フラッシュ(FL−B)を含む。我々は、簡易COMAアーキテクチャを想定しているから、L3キャッシュ・ラインに対して空間が割り当てられていなければ、空間は、ラインを含むページに対しても割り当てられていない。そのため、ページ・ミスによって、ページ置換ストラテジの開始と、L2およびL3のキャッシュ・ミスの処理とが必要になる。以下のページ置換の説明を参照されたい。以下に説明するのは、L3キャッシュ・ラインが以下に説明する5つの状態の1つにある時に、これら事象の結果としてとられるアクションである。図3を参照されたい。
【0013】・無効(I)11 ラインが無効状態にあり、L3バス・リード(BR)またはバス・ライト(BW)が行われると、ラインはI状態に留まる。図3の12を参照されたい。、L2バス・リード(AR)が行われると、L3キャッシュ2は、バス・リード信号をL3バス4上に出力し、空間が既にキャッシュに割り当てられていれば、データをリクエストする。空間が割り当てられていなければ、ページ置換ストラテジが実行され(リクエストされたページを割り当てる)、データはオーナからL3キャッシュへ転送される。また、L2バス・リード(AR)の結果、他のキャッシュがラインのコピーを有しなければ、E(8)へ変化し(ライン13上のAR/BRを参照)、少なくとも1つのリモートL3キャッシュ(オーナ)にコピーが存在すれば、S(9A)へと変化する。ライン14上のAR/BRを参照されたい。L2キャッシュの書き込みが行われると、L3キャッシュは、リード・ウィズ・インテント・トゥ・モディファイ(read−with−intent−to−modify)信号を、L3バス4上に出力する。その結果、データはオーナ・キャッシュであるリモートL3からリクエスト中のL3キャッシュへ転送され、L3バス4上には無効化信号が現れる。無効化信号の結果、リモート・ノードがラインのコピーを有していれば、そのラインは無効化される。最後に、キャッシュ・ラインの状態は、L2キャッシュ(1)ライト(AW)の結果、M(10)に変化し、L3キャッシュが、ラインの専用オーナとなる。AWライン15を参照されたい。
【0014】リード・ウィズ・インテント・トゥ・モディファイ信号は、リモート・キャッシュに対して、或るキャッシュが、まさにデータを変更しようとしていることを知らせるために使用される典型的なタイプの信号である。それはまた、これらキャッシュに対して、データの有効なコピーを有しないことを知らせることによって、それがデータの有効なコピーを得た後(この場合にはリモートL3キャッシュから)、そのコピーを変更できるようにするものである。
【0015】・専用(E)(8) L2バス・リード(AR)がこの状態にある時に行われれば、L3キャッシュ・ラインは、この状態に留まる。ライン16を参照されたい。L3バス・リード(BR)がこの状態にある時に行われれば、L3キャッシュ・ラインの状態は、SOに変化し(ライン21を参照)、L3キャッシュは、ラインをリクエスト中のL3キャッシュへ転送する。L2バスの書き込みが行われれば、L3ラインの状態は、M(10)に変化する。ライン17を参照されたい。
【0016】L3のリード・ウィズ・インテント・トゥ・モディファイ・バス信号が発生すると、L3キャッシュは、無効化信号をL2バス上に出力し、L2キャッシュ(1)のキャッシュ・ラインを無効化する。また、L3キャッシュは、ラインをL3バス(4)上に出力し、リクエスト先に送る。ラインの状態は、I(11)へ変化する。ライン18上のBW、INV−Aを参照されたい。
【0017】・共用オーナ(SO)(9B)または共用(S)(9A) L2またはL3バス・リードがこれらの状態にある間に行われると、L3キャッシュ・ラインは、それぞれの状態に留まる。ライン22,23上のAR,BRを参照されたい。L3キャッシュ・ラインの状態がSOであれば、L3バス・リードの結果、L3キャッシュは、L3バス上のL3キャッシュ・ライン・データを、L3リクエスト先に転送する。L2リード・ウィズ・インテント・トウ・モディファイ・バス信号が発生すると、L3キャッシュ2は、リモートL3コピーが無効化されるように、無効化信号をL3バス上に出力する。キャッシュ・ラインの状態は、その後、M(10)に変化する。ライン24,28を参照されたい。
【0018】L3リード・ウィズ・インテント・トウ・モディファイ・バス信号が発生すると、L3キャッシュ2は、無効化信号をラインのL2キャッシュ・バス上に出力する。キャッシュ・ラインがSO状態にあれば、L3キャッシュ(2)は、L3バスを介してデータをリクエスト先に転送し、その後、ラインの状態はI(11)へ変化する。ライン26,27を参照されたい。
【0019】共用オーナは、同時に幾つかのキャッシュに存在する(従って、共用される)1本のラインのオーナを指定するために使用される。これは、リード・オンリ・ラインと、キャッシュ内に常駐する間のある時点で変更され(従って、専用的に所有される)、他の時間に共用されるラインとを含む。リード/ライト・ラインがいずれかのキャッシュにある場合、それはそのキャッシュ内にのみ存在する(1ラインのリード/ライト・コピーを有する1個のキャッシュのみが存在することができる)。それ故、デフォルトにより、そのキャッシュはラインの専用オーナである。さて、続くノードが、リモート・ノードのリード/ライト状態にあるラインを読み取りたい場合、そのライン(専用オーナ)の専用コピーを有するキャッシュは、データをリクエスト中のキャッシュへ供給する。従って、両キャッシュのキャッシュ・ラインの状態が共用される。これはラインが、現在、2ノードのキャッシュに存在し、それが共用されるからである。それは以前に変更されたものであるが、一旦、ラインの専用変更コピーを有するキャッシュが、この変更ラインを、リード命令を発したリクエスト中のキャッシュへ転送すると、両キャッシュのラインの状態は共用されることになる。この時点で、ラインの同じコピー(共用コピー)を有する2個のキャッシュが存在する。この状態で、我々は、ラインの専用リード/ライト・コピーを本来有したキャッシュ(従って、専用オーナであった)が、今、ラインの共用オーナとなることを主張しているのである。
【0020】・変更(M)(10) L2バス・リード(AO)またはライト(AW)が発生すると、L2キャッシュ・ラインは、ラインのL2キャッシュ・オーナからリクエスト中のL2キャッシュ1へ転送される。L2キャッシュ・オーナが存在しない場合には、L3キャッシュ2が、データを供給する。ラインの状態は不変である。ライン19を参照されたい。L3バス・リード信号が発生すると、L2バス・リードが発生し、キャッシュ・フラッシュによって、変更データは、L2キャッシュ(1)からL3キャッシュ(2)へ転送される。次に、ラインは、L3バス(4)上へフラッシュし、リクエスト中のL3キャッシュ(2)へ戻る。L3キャッシュ・ラインの状態はSO(9B)に変化する。ライン20を参照されたい。L3リード・ウィズ・インテント・トウ・モディファイ・バス信号が発生すると、L3キャッシュ(2)は、無効化信号をL2バス(3)上に出力する。その結果、L2キャッシュ(1)からL3キャッシュ(2)への変更データのキャッシュ・フラッシュが発生する。一旦フラッシュがL3キャッシュ(2)へと転送されると、L3バス(4)上へフラッシュされ、リクエスト中のL3キャッシュへ転送される。L3キャッシュ・ラインの状態は、I(11)へ変更される。ライン20を参照されたい。
【0021】ページ置換ストラテジは、L3キャッシュの多数のキャッシュ・ラインからなるページの割り当て解除を含んでいる。このストラテジは、また、L2(従って、L3)キャッシュにおいてリクエストされたキャッシュ・ラインを含むページの割り当てを含んでいる。図3のライン13〜15上のDAを参照されたい。
【0022】ページ割り当ての最初の段階では、ページの選択を割り当て解除することが必要である(例えば、最近一番使用されていない、すなわちLRUページ)。次に、ページを構成する各ライン毎に、無効化信号をL2バス上に出力する。この無効化信号の結果、L2キャッシュ1の変更ラインは、いずれも、L3キャッシュ2へフラッシュされる。また、L2キャッシュ1内に存在するページを構成するキャッシュ・ラインは、全て、無効化される。次に、割り当て解除されるページ内の変更された専用ラインは、ページを割り当てられたリモートL3キャッシュへ書き込む必要がある。ページを割り当てられたリモートL3キャッシュが存在しない場合には、変更ラインのみがホーム・ディスクヘ書き戻される。リモートL3キャッシュがページを割り当てられたかどうかを判別するために、ページの最初のラインのグローバル・アドレスがL3バス4上に出力される。(グローバル・アドレスの判別については、以下の説明を参照されたい。)このアドレスは、割り当て照会すなわちAIバス信号を伴う。L3キャッシュ(2)がページを割り当てられていれば、バス上に割り当てフラグを立てる。バス/MINアーキテクチャ(図2)の場合には、また、ノード識別子がバス上に出力される。リモートL3キャッシュがページを割り当てられていれば、割り当て解除されるキャッシュ・ラインの変更された専用コピーは、全て、L3バス4(または図2のバス/MINアーキテクチャの場合、MIN7)上に転送され、ページが割り当てられたL3キャッシュ2は、変更された専用ラインの各々のコピーを取得する。幾つかのL3キャッシュ2がページを割り当てられていれば、ラインの変更コピーを受け取るために、いずれか1つのL3キャッシュがランダムに選ばれるか、あるいはリモートL3キャッシュの全てが、専用ラインを受け取ることができる。1つのリモートL3しかページを割り当てられていなければ、転送されたラインの状態は、それぞれ変更状態と専用状態において割り当て解除されたページにあったラインの場合、M(10)とE(8)である。
【0023】幾つかのL3キャッシュがページを割り当てられると、変更ラインの状態は、1つのL3キャッシュ(2)がこれらラインのコピーを取得する限り、M(10)に留まる。その状態は、次の場合に、S(9A)へと変化する。すなわち、L3キャッシュ(2)の1つが状態SOでラインのコピーを取得する場合を除いて、他の全てのL3キャッシュ(2)が変更ラインのコピーを受け取る場合である。しかし、ページが割り当てられた全てのL3キャッシュ(2)は、専用ラインのコピーを取得する。その結果、これらラインの状態は、L3キャッシュにおいてSとなる。また、変更ラインを受け取るキャッシュは、専用ラインの共用オーナSO(9B)のコピーを取得する(変更ラインが存在しなければ、S0状態の専用ラインを取得するために、1キャッシュが選択される)。
【0024】ページを割り当てられたリモートL3キャッシュが存在しなければ、割り当て解除されるページの変更ラインのみが、ホーム・ディスクへ書き戻されるか、あるいはホーム・ノードのリモートL3キャッシュに出力される。割り当て解除されたページを含むL3キャッシュが、ホームディスクと同じノード上に配置されていれば、変更ラインは、ディスク5ヘ書き戻される。さもなければ、変更ラインを含むページについては、ホーム・ディスクを含むノードのリモートL3キャッシュ2に空間が割り当てられる。変更データは、このリモートL3キャッシュ2へ転送される。変更ページは、リモート(ホーム)L3キャッシュ2内に、最優先の置換順位をもってマークされる。ページ置換ポリシーの実現のため、このリモートL3キャッシュにおいて割り当て解除するために、ページが一旦選択されると、変更データが、ノードH1上のディスク5ヘ書き戻される。我々はこの方法を「変更ライン・ポリシー」と表現する。
【0025】ページ割り当てが完了すると、新しいページがL3キャッシュに割り当てられ、リクエストされたライン(および/またはページ内の他のライン)のキャッシュ内へ転送する処理が開始する。バス・リードまたはバス・ライト信号が、リクエストされたラインのL3バス4上に出力される。L3キャッシュ(2)がキャッシュラインのコピーを有する場合には、それはバス(4)(シングル・バス・アーキテクチャ、図1)またはMIN(7)(バス/MINアーキテクチャ、図2)を介して、リクエスト中のL3キャッシュへ転送される。他のライン(ページの残りのラインに対して)のライン転送は必要ない。それ故、これら残りのラインに対して空間が割り当てられているが、それらはキャッシュには常駐しない。これらキャッシュ・ラインの状態は、従って、無効である(I)(11)。
【0026】キャッシュ・ラインのコピーを有するL3キャッシュが存在しない(従って、関連するページが割り当てられたL3キャッシュが存在しない)場合には、ページは、ホーム・ディスクから読み込まれる。ホーム・ディスクが、リクエスト中のL3キャッシュと同じノード上に存在するならば、ディスク5からL3キャッシュへのページ転送は、スムーズに行われる。ホーム・ディスクが別のノード上にある場合には、ページは、ディスク・ホーム・ノードのL3キャッシュに割り当てられなければならず(その結果、そのキャッシュにページ割り当て解除が生ずる可能性がある)、ホーム・ディスクからディスク・ホームノードのL3キャッシュへ転送される。リクエストされたラインは、そのL3キャッシュからリクエスト中のL3キャッシュへと転送される(シングル・バス・アーキテクチャ、図1)。バス/MINアーキテクチャ(図2)の場合、ホーム・ディスク・ノードのL3キャッシュにページを割り当てる必要はない。ページは、ディスクからバッファへ転送された後、バッファからMINを介してリモートL3キャッシュへ転送することができる。
【0027】簡易COMAアーキテクチャでは、各個別SMP構成ブロックH1(すなわち、図1に鎖線のブロックで識別されるSMP)は、それ自身のアドレス空間を有する。しかし、全体の機構は、SMP構成ブロックH1どうしの間の通信を容易にするために、グローバル・アドレス空間を有する必要がある。しかし、SMP構成ブロックH1の仮想アドレス空間は、少なくともブロックのディスク容量より大きなオーダーの大きさであることが想定されている。その結果、各ノードの仮想アドレス空間は、共用メモリ・マルチプロセッサ・システムのグローバル・アドレス空間として使用することもできる。このグローバルアドレス空間は、N個のサブアドレス空間に分割されるものとする。但し、Nはシステム内のノードの総数である。従って、或るページについて、そのページの仮想アドレスは、各ノード上の同じグローバル・アドレスをマップする。
【0028】まとめとして、本発明の構成に関して以下の事項を開示する。
(1)各ノードが共用メモリ・マルチプロセッサである複数のノードと、キャッシュメモリの階層とを備える共用メモリ装置において、リードまたはライト・アクセス・コマンドに応答して前記共用メモリ装置におけるキャッシュ・コヒーレンシを維持する方法であって、a.前記共用メモリ装置内の最上位レベルのキャッシュ・メモリの各ラインについてステータス・オーナ情報を維持し、前記ステータス・オーナ情報は、リード・オンリ・ラインのノードのいずれが、最初に前記リード・オンリ・ラインを読み取ったかを指示し、リード/ライト・ラインのノードのいずれが、前記リード/ライト・ラインを最初に読み取り、または、前記リード/ライト・ラインを最後に変更したかを指示し、その際、各キャッシュ・ラインのそれぞれの指示されたノードが、前記各キャッシュ・ラインを所有するノードであり、b.前記共用メモリ装置内の前記最上位レベルのキャッシュ・メモリにおける前記ノードの1つにおけるキャッシュが、前記共用メモリ装置の最上位レベル・キャッシュでミスするラインに対して、リードまたはライト・アクセスを発すると、前記キャッシュ・ラインを所有するノードによって、前記キャッシュ・ラインを前記最上位レベルのキャッシュ・メモリを相互接続するバス上に出力する、キャッシュ・コヒーレンシ維持方法。
(2)各ノードが共用メモリ・マルチプロセッサである複数のノードを有する共用メモリ装置において、前記共用メモリ装置内の少なくとも3レベルのキャッシュにわたってキャッシュ・コヒーレンシを維持する方法であって、a.前記共用メモリ装置内の最上位レベルのキャッシュ・メモリの各ラインについてステータス・オーナ情報を維持し、前記ステータス・オーナ情報が、リード・オンリ・ラインのいずれのキャッシュが、前記リード・オンリ・ラインを最初に読み取ったかを指示し、リード/ライト・ラインのいずれのノードが、前記リード/ライト・ラインを最後に変更したかを指示し、前記指示されたキャッシュがオーナ・ノードであり、b.前記共用メモリ装置内の前記最上位レベルのキャッシュ・メモリにおける非所有キャッシュが、前記各ラインに対してリード・アクセスを発すると、前記オーナ・ノードの1つが、前記キャッシュ・ラインを前記最上位レベルのキャッシュ・メモリを相互接続するバス上に出力し、c.前記共用メモリ装置の下位レベル・キャッシュが、キャッシュ・ラインに対してライト・リクエストを発すると、上位レベル・キャッシュが、無効化信号を上位レベル・バス上に送り、前記下位レベル・キャッシュ内の情報が無効であることを指示し、前記上位レベル・キャッシュが、前記ライト・リクエストのデータを、前記上位レベル・バス上のリクエスト先に転送し、d.前記高レベルキャッシュ・ラインを所有したノード内の前記高レベル・キャッシュ・ラインの状態を無効に変更する、キャッシュ・コヒーレンシ維持方法。
(3)各ノードが共用メモリ・マルチプロセッサである複数のノードと、キャッシュ・メモリの階層とを備える共用メモリ装置において、最上位レベル・キャッシュにおけるキャシュ・ライン・アクセスの結果、ページ・ミスが発生した場合に、ページを割り当て解除する方法であって、a.前記ページの各ラインについて、無効化信号を下位レベル・キャッシュに送り、b.前記下位レベル・キャッシュのいずれかが、前記ページの前記ラインを変更すると、前記変更されたラインを、前記最上位レベル・キャッシュに転送し、c.前記最上位レベル・キャッシュ内の全ての変更されたラインを、他の最上位レベル・キャッシュに転送し、d.前記ページを前記他の最上位レベル・キャッシュ内に割り当てて、前記他の最上位レベル・キャッシュ内に空間を与えて、前記ページの各ラインを格納する、ページの割り当て解除方法。
参考文献1.T.Feng,“A Survey of Interconnection Networks,”Computer,vol.14,no.12,pp.12−27,1981.
2.E.Hagersten,A.Landin,and S.Haridi,“DDM−A Cache−Only Memory Architecture,”Computer,pp44−54,September 1992.
3.A.Saulsbury,T.Wilkinson,J.Carter,and A.Landin,“An Argument for SimpleCOMA,”First Symposium on High−Performance Computer Architecture,pp276−285,1995.
4.A.W.Wilson,“Hierarchical Cache/BusArchitecture for Shared Memory Multiprocessors,”Proceedings of the 14thAnnual International Symposium on Computer Architecture,pp.244−252,June1987.
【図面の簡単な説明】
【図1】本発明で使用される階層バス簡易COMAアーキテクチャの概略図である。
【図2】本発明で使用される階層バス多段相互接続ネットワーク・アーキテクチャの概略図である。
【図3】本発明によるキャッシュ・コヒーレンス状態の概略線図を示す図である。
【符号の説明】
1,2 キャッシュ
4 ノード間バス
5 ディスク
6 ディスク・コントローラ
L2(1),L3(2) キャッシュ・ライン
H1 4ノード共用メモリ・マルチプロセッサ

【特許請求の範囲】
【請求項1】各ノードが共用メモリ・マルチプロセッサである複数のノードと、キャッシュメモリの階層とを備える共用メモリ装置において、リードまたはライト・アクセス・コマンドに応答して前記共用メモリ装置におけるキャッシュ・コヒーレンシを維持する方法であって、a.前記共用メモリ装置内の最上位レベルのキャッシュ・メモリの各ラインについてステータス・オーナ情報を維持し、前記ステータス・オーナ情報は、リード・オンリ・ラインのノードのいずれが、最初に前記リード・オンリ・ラインを読み取ったかを指示し、リード/ライト・ラインのノードのいずれが、前記リード/ライト・ラインを最初に読み取り、または、前記リード/ライト・ラインを最後に変更したかを指示し、その際、各キャッシュ・ラインのそれぞれの指示されたノードが、前記各キャッシュ・ラインを所有するノードであり、b.前記共用メモリ装置内の前記最上位レベルのキャッシュ・メモリにおける前記ノードの1つにおけるキャッシュが、前記共用メモリ装置の最上位レベル・キャッシュでミスするラインに対して、リードまたはライト・アクセスを発すると、前記キャッシュ・ラインを所有するノードによって、前記キャッシュ・ラインを前記最上位レベルのキャッシュ・メモリを相互接続するバス上に出力する、キャッシュ・コヒーレンシ維持方法。
【請求項2】各ノードが共用メモリ・マルチプロセッサである複数のノードを有する共用メモリ装置において、前記共用メモリ装置内の少なくとも3レベルのキャッシュにわたってキャッシュ・コヒーレンシを維持する方法であって、a.前記共用メモリ装置内の最上位レベルのキャッシュ・メモリの各ラインについてステータス・オーナ情報を維持し、前記ステータス・オーナ情報が、リード・オンリ・ラインのいずれのキャッシュが、前記リード・オンリ・ラインを最初に読み取ったかを指示し、リード/ライト・ラインのいずれのノードが、前記リード/ライト・ラインを最後に変更したかを指示し、前記指示されたキャッシュがオーナ・ノードであり、b.前記共用メモリ装置内の前記最上位レベルのキャッシュ・メモリにおける非所有キャッシュが、前記各ラインに対してリード・アクセスを発すると、前記オーナ・ノードの1つが、前記キャッシュ・ラインを前記最上位レベルのキャッシュ・メモリを相互接続するバス上に出力し、c.前記共用メモリ装置の下位レベル・キャッシュが、キャッシュ・ラインに対してライト・リクエストを発すると、上位レベル・キャッシュが、無効化信号を上位レベル・バス上に送り、前記下位レベル・キャッシュ内の情報が無効であることを指示し、前記上位レベル・キャッシュが、前記ライト・リクエストのデータを、前記上位レベル・バス上のリクエスト先に転送し、d.前記高レベルキャッシュ・ラインを所有したノード内の前記高レベル・キャッシュ・ラインの状態を無効に変更する、キャッシュ・コヒーレンシ維持方法。
【請求項3】各ノードが共用メモリ・マルチプロセッサである複数のノードと、キャッシュ・メモリの階層とを備える共用メモリ装置において、最上位レベル・キャッシュにおけるキャシュ・ライン・アクセスの結果、ページ・ミスが発生した場合に、ページを割り当て解除する方法であって、a.前記ページの各ラインについて、無効化信号を下位レベル・キャッシュに送り、b.前記下位レベル・キャッシュのいずれかが、前記ページの前記ラインを変更すると、前記変更されたラインを、前記最上位レベル・キャッシュに転送し、c.前記最上位レベル・キャッシュ内の全ての変更されたラインを、他の最上位レベル・キャッシュに転送し、d.前記ページを前記他の最上位レベル・キャッシュ内に割り当てて、前記他の最上位レベル・キャッシュ内に空間を与えて、前記ページの各ラインを格納する、ページの割り当て解除方法。

【図1】
image rotate


【図2】
image rotate


【図3】
image rotate


【公開番号】特開平11−316750
【公開日】平成11年(1999)11月16日
【国際特許分類】
【出願番号】特願平11−30435
【出願日】平成11年(1999)2月8日
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレイション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION