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

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

Info

Publication number
JPH11316750A
JPH11316750A JP11030435A JP3043599A JPH11316750A JP H11316750 A JPH11316750 A JP H11316750A JP 11030435 A JP11030435 A JP 11030435A JP 3043599 A JP3043599 A JP 3043599A JP H11316750 A JPH11316750 A JP H11316750A
Authority
JP
Japan
Prior art keywords
cache
line
read
shared memory
node
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
Application number
JP11030435A
Other languages
English (en)
Inventor
Sandra Johnson Baylor
サンドラ・ジョンソン・ベイラー
Yarsun Hsu
ヤースン・スー
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH11316750A publication Critical patent/JPH11316750A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/27Using a specific cache architecture
    • G06F2212/272Cache only memory architecture [COMA]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Abstract

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

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マルチレベル共用
メモリ・マルチプロセッサ・システムにおけるキャッシ
ュ・コヒーレンシを維持する方法および装置に関する。
【0002】
【従来の技術】共用メモリ・マルチプロセッサは、プロ
グラミングが容易で、性能が改善されているために非常
に一般的である。事実、1本のバスを介してメモリおよ
び関連するディスクと相互接続された多数のプロセッサ
(16または32個に及ぶ)からなる市販の多くの共用
メモリ・マルチプロセッサが存在する。プロセッサは、
典型的には、それらと関係する専用キャッシュを有し、
共用メモリ・マルチプロセッサは、バスベースのコヒー
レンス・プロトコルを使用してキャッシュ・コヒーレン
トとなっている。このアーキテクチャは、多段相互接続
ネットワーク(MIN)[文献1参照]により相互接続
された複数のノード(各ノードは、それ自体、16〜3
2ノード共用メモリ・マルチプロセッサである)からな
るスケーラブル共用メモリ・プロセッサにおいて、急速
に単一の要素となりつつある。しかし、このタイプの共
用メモリ・マルチプロセッサ・アーキテクチャは、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)とバス/MI
N(図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)またはバス・ライト(A
W)、L3バス・リード(BR)またはバス・ライト
(BW)、L2またはL3無効化(それぞれINV−A
およびINV−B)、L3キャッシュ・フラッシュ(F
L−B)を含む。我々は、簡易COMAアーキテクチャ
を想定しているから、L3キャッシュ・ラインに対して
空間が割り当てられていなければ、空間は、ラインを含
むページに対しても割り当てられていない。そのため、
ページ・ミスによって、ページ置換ストラテジの開始
と、L2およびL3のキャッシュ・ミスの処理とが必要
になる。以下のページ置換の説明を参照されたい。以下
に説明するのは、L3キャッシュ・ラインが以下に説明
する5つの状態の1つにある時に、これら事象の結果と
してとられるアクションである。図3を参照されたい。
【0013】・無効(I)11 ラインが無効状態にあ
り、L3バス・リード(BR)またはバス・ライト(B
W)が行われると、ラインはI状態に留まる。図3の1
2を参照されたい。、L2バス・リード(AR)が行わ
れると、L3キャッシュ2は、バス・リード信号をL3
バス4上に出力し、空間が既にキャッシュに割り当てら
れていれば、データをリクエストする。空間が割り当て
られていなければ、ページ置換ストラテジが実行され
(リクエストされたページを割り当てる)、データはオ
ーナからL3キャッシュへ転送される。また、L2バス
・リード(AR)の結果、他のキャッシュがラインのコ
ピーを有しなければ、E(8)へ変化し(ライン13上
のAR/BRを参照)、少なくとも1つのリモートL3
キャッシュ(オーナ)にコピーが存在すれば、S(9
A)へと変化する。ライン14上のAR/BRを参照さ
れたい。L2キャッシュの書き込みが行われると、L3
キャッシュは、リード・ウィズ・インテント・トゥ・モ
ディファイ(read−with−intent−to
−modify)信号を、L3バス4上に出力する。そ
の結果、データはオーナ・キャッシュであるリモートL
3からリクエスト中のL3キャッシュへ転送され、L3
バス4上には無効化信号が現れる。無効化信号の結果、
リモート・ノードがラインのコピーを有していれば、そ
のラインは無効化される。最後に、キャッシュ・ライン
の状態は、L2キャッシュ(1)ライト(AW)の結
果、M(10)に変化し、L3キャッシュが、ラインの
専用オーナとなる。AWライン15を参照されたい。
【0014】リード・ウィズ・インテント・トゥ・モデ
ィファイ信号は、リモート・キャッシュに対して、或る
キャッシュが、まさにデータを変更しようとしているこ
とを知らせるために使用される典型的なタイプの信号で
ある。それはまた、これらキャッシュに対して、データ
の有効なコピーを有しないことを知らせることによっ
て、それがデータの有効なコピーを得た後(この場合に
はリモートL3キャッシュから)、そのコピーを変更で
きるようにするものである。
【0015】・専用(E)(8) L2バス・リード
(AR)がこの状態にある時に行われれば、L3キャッ
シュ・ラインは、この状態に留まる。ライン16を参照
されたい。L3バス・リード(BR)がこの状態にある
時に行われれば、L3キャッシュ・ラインの状態は、S
Oに変化し(ライン21を参照)、L3キャッシュは、
ラインをリクエスト中のL3キャッシュへ転送する。L
2バスの書き込みが行われれば、L3ラインの状態は、
M(10)に変化する。ライン17を参照されたい。
【0016】L3のリード・ウィズ・インテント・トゥ
・モディファイ・バス信号が発生すると、L3キャッシ
ュは、無効化信号をL2バス上に出力し、L2キャッシ
ュ(1)のキャッシュ・ラインを無効化する。また、L
3キャッシュは、ラインをL3バス(4)上に出力し、
リクエスト先に送る。ラインの状態は、I(11)へ変
化する。ライン18上のBW、INV−Aを参照された
い。
【0017】・共用オーナ(SO)(9B)または共用
(S)(9A) L2またはL3バス・リードがこれら
の状態にある間に行われると、L3キャッシュ・ライン
は、それぞれの状態に留まる。ライン22,23上のA
R,BRを参照されたい。L3キャッシュ・ラインの状
態がSOであれば、L3バス・リードの結果、L3キャ
ッシュは、L3バス上のL3キャッシュ・ライン・デー
タを、L3リクエスト先に転送する。L2リード・ウィ
ズ・インテント・トウ・モディファイ・バス信号が発生
すると、L3キャッシュ2は、リモートL3コピーが無
効化されるように、無効化信号をL3バス上に出力す
る。キャッシュ・ラインの状態は、その後、M(10)
に変化する。ライン24,28を参照されたい。
【0018】L3リード・ウィズ・インテント・トウ・
モディファイ・バス信号が発生すると、L3キャッシュ
2は、無効化信号をラインのL2キャッシュ・バス上に
出力する。キャッシュ・ラインがSO状態にあれば、L
3キャッシュ(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ページ)。
次に、ページを構成する各ライン毎に、無効化信号をL
2バス上に出力する。この無効化信号の結果、L2キャ
ッシュ1の変更ラインは、いずれも、L3キャッシュ2
へフラッシュされる。また、L2キャッシュ1内に存在
するページを構成するキャッシュ・ラインは、全て、無
効化される。次に、割り当て解除されるページ内の変更
された専用ラインは、ページを割り当てられたリモート
L3キャッシュへ書き込む必要がある。ページを割り当
てられたリモートL3キャッシュが存在しない場合に
は、変更ラインのみがホーム・ディスクヘ書き戻され
る。リモートL3キャッシュがページを割り当てられた
かどうかを判別するために、ページの最初のラインのグ
ローバル・アドレスがL3バス4上に出力される。(グ
ローバル・アドレスの判別については、以下の説明を参
照されたい。)このアドレスは、割り当て照会すなわち
AIバス信号を伴う。L3キャッシュ(2)がページを
割り当てられていれば、バス上に割り当てフラグを立て
る。バス/MINアーキテクチャ(図2)の場合には、
また、ノード識別子がバス上に出力される。リモートL
3キャッシュがページを割り当てられていれば、割り当
て解除されるキャッシュ・ラインの変更された専用コピ
ーは、全て、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(9
A)へと変化する。すなわち、L3キャッシュ(2)の
1つが状態SOでラインのコピーを取得する場合を除い
て、他の全てのL3キャッシュ(2)が変更ラインのコ
ピーを受け取る場合である。しかし、ページが割り当て
られた全てのL3キャッシュ(2)は、専用ラインのコ
ピーを取得する。その結果、これらラインの状態は、L
3キャッシュにおいてSとなる。また、変更ラインを受
け取るキャッシュは、専用ラインの共用オーナSO(9
B)のコピーを取得する(変更ラインが存在しなけれ
ば、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 Int
erconnection Networks,”Co
mputer,vol.14,no.12,pp.12
−27,1981. 2.E.Hagersten,A.Landin,an
d S.Haridi,“DDM−A Cache−O
nly Memory Architecture,”
Computer,pp44−54,Septembe
r 1992. 3.A.Saulsbury,T.Wilkinso
n,J.Carter,and A.Landin,
“An Argument for SimpleCO
MA,”First Symposium on Hi
gh−Performance Computer A
rchitecture,pp276−285,199
5. 4.A.W.Wilson,“Hierarchica
l Cache/BusArchitecture f
or Shared Memory Multipro
cessors,”Proceedings of t
he 14thAnnual Internation
al Symposium on Computer
Architecture,pp.244−252,J
une1987.
【図面の簡単な説明】
【図1】本発明で使用される階層バス簡易COMAアー
キテクチャの概略図である。
【図2】本発明で使用される階層バス多段相互接続ネッ
トワーク・アーキテクチャの概略図である。
【図3】本発明によるキャッシュ・コヒーレンス状態の
概略線図を示す図である。
【符号の説明】
1,2 キャッシュ 4 ノード間バス 5 ディスク 6 ディスク・コントローラ L2(1),L3(2) キャッシュ・ライン H1 4ノード共用メモリ・マルチプロセッサ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ヤースン・スー アメリカ合衆国 10570 ニューヨーク州 プレザントヴィル ディアフィールド レーン サウス 45

Claims (3)

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

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/023,754 US6148375A (en) 1998-02-13 1998-02-13 Hierarchical bus simple COMA architecture for shared memory multiprocessors having a bus directly interconnecting caches between nodes
US09/023754 1998-02-13

Publications (1)

Publication Number Publication Date
JPH11316750A true JPH11316750A (ja) 1999-11-16

Family

ID=21817003

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11030435A Pending JPH11316750A (ja) 1998-02-13 1999-02-08 キャッシュ・コヒ―レンシの維持方法及びペ―ジ割当解除方法

Country Status (7)

Country Link
US (1) US6148375A (ja)
EP (1) EP0936551A1 (ja)
JP (1) JPH11316750A (ja)
KR (1) KR100300792B1 (ja)
CN (1) CN1128418C (ja)
SG (1) SG74701A1 (ja)
TW (1) TW389858B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7035979B2 (en) 2002-05-22 2006-04-25 International Business Machines Corporation Method and apparatus for optimizing cache hit ratio in non L1 caches
US7073030B2 (en) 2002-05-22 2006-07-04 International Business Machines Corporation Method and apparatus providing non level one information caching using prefetch to increase a hit ratio

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000231546A (ja) * 1999-02-12 2000-08-22 Univ Hiroshima 共有メモリ
US6314498B1 (en) * 1999-11-09 2001-11-06 International Business Machines Corporation Multiprocessor system bus transaction for transferring exclusive-deallocate cache state to lower lever cache
US6385702B1 (en) 1999-11-09 2002-05-07 International Business Machines Corporation High performance multiprocessor system with exclusive-deallocate cache state
US6457104B1 (en) * 2000-03-20 2002-09-24 International Business Machines Corporation System and method for recycling stale memory content in compressed memory systems
US6675316B1 (en) * 2000-07-12 2004-01-06 International Business Machines Corporation Method and system for recovery of the state of a failed CPU/cache/memory node in a distributed shared memory system
US8468309B2 (en) * 2010-09-25 2013-06-18 Intel Corporation Optimized ring protocols and techniques
US8898399B2 (en) 2010-11-16 2014-11-25 Tibco Software Inc. Locking and signaling for implementing messaging transports with shared memory
US9471532B2 (en) 2011-02-11 2016-10-18 Microsoft Technology Licensing, Llc Remote core operations in a multi-core computer

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4622631B1 (en) * 1983-12-30 1996-04-09 Recognition Int Inc Data processing system having a data coherence solution
US5297269A (en) * 1990-04-26 1994-03-22 Digital Equipment Company Cache coherency protocol for multi processor computer system
US5394555A (en) * 1992-12-23 1995-02-28 Bull Hn Information Systems Inc. Multi-node cluster computer system incorporating an external coherency unit at each node to insure integrity of information stored in a shared, distributed memory
US5692149A (en) * 1995-03-16 1997-11-25 Samsung Electronics Co., Ltd. Block replacement method in cache only memory architecture multiprocessor
US5784614A (en) * 1995-07-27 1998-07-21 Ncr Corporation Cache affinity scheduling method for multi-processor nodes in a split transaction bus architecture
US5710907A (en) * 1995-12-22 1998-01-20 Sun Microsystems, Inc. Hybrid NUMA COMA caching system and methods for selecting between the caching modes
US5878268A (en) * 1996-07-01 1999-03-02 Sun Microsystems, Inc. Multiprocessing system configured to store coherency state within multiple subnodes of a processing node
US5802563A (en) * 1996-07-01 1998-09-01 Sun Microsystems, Inc. Efficient storage of data in computer system with multiple cache levels
US5835950A (en) * 1996-07-12 1998-11-10 Samsung Electronics Co., Ltd. Self-invalidation method for reducing coherence overheads in a bus-based shared-memory multiprocessor apparatus

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7035979B2 (en) 2002-05-22 2006-04-25 International Business Machines Corporation Method and apparatus for optimizing cache hit ratio in non L1 caches
US7073030B2 (en) 2002-05-22 2006-07-04 International Business Machines Corporation Method and apparatus providing non level one information caching using prefetch to increase a hit ratio

Also Published As

Publication number Publication date
CN1226035A (zh) 1999-08-18
SG74701A1 (en) 2000-08-22
US6148375A (en) 2000-11-14
EP0936551A1 (en) 1999-08-18
TW389858B (en) 2000-05-11
KR19990072268A (ko) 1999-09-27
KR100300792B1 (ko) 2001-09-26
CN1128418C (zh) 2003-11-19

Similar Documents

Publication Publication Date Title
US5535116A (en) Flat cache-only multi-processor architectures
US5734922A (en) Multiprocessing system configured to detect and efficiently provide for migratory data access patterns
US5394555A (en) Multi-node cluster computer system incorporating an external coherency unit at each node to insure integrity of information stored in a shared, distributed memory
EP0817073B1 (en) A multiprocessing system configured to perform efficient write operations
JP5431525B2 (ja) アクセラレータ用低コストのキャッシュ一貫性を維持するシステム
KR100491435B1 (ko) 다수의 시스템 버스를 가지는 컴퓨터 시스템 내의 메모리 일관성을 유지하기 위한 시스템 및 방법
US7996625B2 (en) Method and apparatus for reducing memory latency in a cache coherent multi-node architecture
JP2662603B2 (ja) 無効要求を選別する方法及び装置
US5887138A (en) Multiprocessing computer system employing local and global address spaces and COMA and NUMA access modes
EP1255201B1 (en) Shared memory multiprocessing system employing mixed broadcast snooping and directory based coherency protocols
JP3900479B2 (ja) システム・メモリに組み込まれるリモート・メモリ・キャッシュを有する不均等メモリ・アクセス(numa)データ処理システム
US5860159A (en) Multiprocessing system including an apparatus for optimizing spin--lock operations
CN1114865C (zh) 用于避免冲突回写造成的活锁的方法和系统
US5692149A (en) Block replacement method in cache only memory architecture multiprocessor
US5809536A (en) Method for reducing the number of coherency cycles within a directory-based cache coherency memory system uitilizing a memory state cache
US6112281A (en) I/O forwarding in a cache coherent shared disk computer system
US6138217A (en) Method and apparatus for cache coherency in an interconnecting network
JPH113279A (ja) コンピュータ・システムにおけるキャッシュ・メモリのフラッシュ方法
JP3661764B2 (ja) 不均等メモリ・アクセス・コンピュータ・システムにおいてエヴィクション・プロトコルを提供するための方法およびシステム
JP2003030169A (ja) マルチノード・コンピュータ・システムにおける非集中グローバル・コヒーレンス管理
JP2008525901A (ja) 共有メモリコンピュータシステムにおける、所有されている複数のキャッシュブロックのライトバックの早期予測
WO1995025306A2 (en) Distributed shared-cache for multi-processors
US6269428B1 (en) Method and system for avoiding livelocks due to colliding invalidating transactions within a non-uniform memory access system
US5802563A (en) Efficient storage of data in computer system with multiple cache levels
JPH11316750A (ja) キャッシュ・コヒ―レンシの維持方法及びペ―ジ割当解除方法