JP3320312B2 - ディレクトリ・ベースのキャッシュ・コヒーレンス・プロトコルによるマルチプロセッサのための無効バス最適化 - Google Patents

ディレクトリ・ベースのキャッシュ・コヒーレンス・プロトコルによるマルチプロセッサのための無効バス最適化

Info

Publication number
JP3320312B2
JP3320312B2 JP19172496A JP19172496A JP3320312B2 JP 3320312 B2 JP3320312 B2 JP 3320312B2 JP 19172496 A JP19172496 A JP 19172496A JP 19172496 A JP19172496 A JP 19172496A JP 3320312 B2 JP3320312 B2 JP 3320312B2
Authority
JP
Japan
Prior art keywords
directory
invalid
cache
processor
bus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP19172496A
Other languages
English (en)
Other versions
JPH0991255A (ja
Inventor
サンドラ・ジョンソン・ベイラー
ヤルサン・ス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JPH0991255A publication Critical patent/JPH0991255A/ja
Application granted granted Critical
Publication of JP3320312B2 publication Critical patent/JP3320312B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • 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/0817Cache consistency protocols using directory methods
    • G06F12/0826Limited pointers directories; State-only directories without pointers
    • 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/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は一般に、各々が専用
キャッシュを有する複数のプロセッサがマルチステージ
相互接続ネットワークにより共用メモリに接続される、
マルチプロセッサ・システムに関し、特に、ディレクト
リ・ベースのキャッシュ・コヒーレンス・プロトコルの
使用による、マルチプロセッサ・システムにおける無効
バスの最適化によるシステム性能の改良に関する。
【0002】
【従来の技術】並列処理システムの登場は、従来のユニ
プロセッサ・システムに勝る性能的な向上を潜在的に招
いた。主メモリ帯域幅は、こうしたシステム内の益々高
速化するプロセッサにより求められる要求を満足するこ
とができなかった。この問題に起因するアクセス・ギャ
ップを緩和する1つの方法は、プロセッサにキャッシュ
・メモリとして既知の小さな高速バッファを関連付ける
ことである。このキャッシュ・メモリは通常、主メモリ
よりも桁違いに高速であり、プロセッサのスピードに適
合する。
【0003】共用メモリ・マルチプロセッサは通常、関
連付けられる専用キャッシュ・メモリを有する多数のプ
ロセッサ、大域メモリ、及びプロセッサと特定のまたは
全ての大域メモリ間の相互接続ネットワークから構成さ
れる。大域メモリは主メモリを構成し、これはプロセッ
サにより共用され、しばしば複数のメモリ・モジュール
として実現される。共用メモリ・システム内のメモリ・
ラインの複数のコピーを有し得る複数キャッシュの導入
は、データの非一貫性を生じ得る。一般に、この問題を
解決するために、現在使用可能な2つの方法が存在す
る。それらはハードウェア及びソフトウェアによるキャ
ッシュ・コヒーレンスである。本発明はハードウェア・
キャッシュ・コヒーレンス・プロトコルを取り扱う。
【0004】ハードウェア・プロトコルは、バス(また
はスヌーピ)・ベース及びディレクトリ・ベースの2つ
のタイプに細分化される。バス・ベース・プロトコル
は、一般に比較的少数のプロセッサを有するシステムで
使用されるのに対して、ディレクトリ・ベース・プロト
コルは、改良されたスケーラビリティを有する大規模シ
ステムで使用される。ディレクトリ・ベースのプロトコ
ルでは、大域ディレクトリが通常、主メモリに関連付け
られ、主にキャッシュ・ラインの大域状態を決定するた
めに使用される情報の他に、キャッシュ・ラインのコピ
ーを有するキャッシュ・メモリの数及び(または)位置
を含む。
【0005】従来のディレクトリ・ベースのキャッシュ
・コヒーレンス・プロトコルでは、全てのプロセッサが
同時にキャッシュ・コヒーレンス活動を調査することを
可能にする大域機構が存在しない。従って、大域ディレ
クトリは、ラインの大域状態、及びラインのコピーを有
するプロセッサの識別または番号を記録するために使用
される。プロセッサがラインを変更しようと試み、その
ラインへの排他的読出し/書込みアクセスを有さない場
合、プロセッサは変更要求をマルチステージ相互接続ネ
ットワーク(MIN)を介して、そのラインに関連付け
られる大域ディレクトリ・エントリに送信する。ディレ
クトリは次に、そのラインのコピーを有するプロセッサ
に無効を送信するか、またはそのラインのコピーを有す
るプロセッサの識別が知れてない場合には、同様にMI
Nを介して無効を全てのプロセッサに同報する。無効肯
定応答が次にディレクトリに、またはそのラインの変更
を要求するキャッシュに、MINを介して返送される。
MINを行き交う無効及び肯定応答に関連付けられるオ
ーバヘッドが、MINにおけるかなりの競合を生じ、性
能を低下させる。
【0006】大域ディレクトリ・ベースのキャッシュ・
コヒーレンス・プロトコルに関する、幾つかの研究が実
施された。
【0007】しかしながらこれらの研究はいずれも、無
効及び続く肯定応答により引き起こされるネットワーク
待ち時間がこれらのプロトコルの性能に及ぼす影響を低
減するための方策を考慮していない。MINを用いるマ
ルチプロセッサ及び専用キャッシュは、通常、ディレク
トリ・ベースのキャッシュ・コヒーレンス・プロトコル
によりデータの一貫性を維持するが、ネットワーク遅延
がこうしたシステムの性能を制限し得る。なぜなら、無
効に帰するプロセッサ書込みに、ネットワークを通じる
2回の往復が要求されるからである。
【0008】キャッシュに関連付けられるスヌーピング
・バスを有するマルチプロセッサ、及びプロセッサをメ
モリ・モジュールに接続する相互接続ネットワークのシ
ステムでは、全てのコヒーレンス関連活動がこのバスを
介して発生する。バスがマルチプロセッサ・システムの
大域通信源として機能するので、キャッシュ・コヒーレ
ンス・プロトコルにおいて無効肯定応答は要求されな
い。MINは単にキャッシュとメモリ間のデータ転送の
ために使用される。このアーキテクチャは最大64プロ
セッサまでスケーラブルである。しかしながら、プロセ
ッサの数が増加したときに、スヌーピング・バスが飽和
し、システムのスケーラビリティを制限する可能性が存
在する。
【0009】
【発明が解決しようとする課題】従って、本発明の目的
は、スケーラブル・マルチプロセッサ・システムにおい
て使用されるマルチステージ相互接続ネットワーク(M
IN)にとって有用な最適化機構を提供することであ
り、この機構は、通常こうしたシステムにおいて遭遇す
るネットワーク遅延無しに、キャッシュ・コヒーレンス
を提供する一方、システムのスケーラビリティを維持す
るものである。
【0010】本発明の別の特定の目的は、ネットワーク
待ち時間の欠点を軽減し、システム性能を改良する、ス
ケーラブル・マルチプロセッサ・システムのための大域
ディレクトリ・ベースのキャッシュ・コヒーレンス・プ
ロトコルを提供することである。
【0011】
【課題を解決するための手段】本発明によれば、無効バ
スが無効専用のために、または無効及び肯定応答のため
に使用される。専用キャッシュ、マルチステージ相互接
続ネットワーク(MIN)、及びインタリーブド・メモ
リ・モジュールを有する共用メモリ・マルチプロセッサ
・システムが、本発明の好適な態様では想定される。キ
ャッシュ・コヒーレンス・プロトコルは、ディレクトリ
・ベースのプロトコルにより実現されるものと想定され
る。本発明は特に、ディレクトリ・ベースのコヒーレン
ス・プロトコルにおける無効及び肯定応答のMINオー
バヘッドを低減するように、設計される。
【0012】本発明による最適化機構では、プロセッサ
が共用データを変更しようとするとき、遠隔キャッシュ
内の全てのデータを無効にするために、無効バスをマル
チステージ相互接続ネットワーク(MIN)のプロセッ
サ側に含む。無効バスは、プロセッサがコヒーレンス・
プロトコルの無効活動を同時に調査することを容易にす
る大域機構を提供する。ディレクトリ・ベースのプロト
コルが想定されるので、ディレクトリはキャッシュ・ラ
インに関する状態情報を保持する必要がある。しかしな
がら、本発明は従来のディレクトリ・ベースのプロトコ
ルとは異なる。なぜなら本発明では、キャッシュ・ライ
ンのコピーを有するキャッシュの識別を知る必要がな
く、単にキャッシュ・ラインのコピーを有するキャッシ
ュの実際の数を知ればよいからである。従って、無効が
バス上に出力される場合、ディレクトリがキャッシュ・
ラインのコピーを有する全てのキャッシュが無効にされ
たことを知るように、無効肯定応答も必要とされる。
【0013】本発明と従来のアーキテクチャとの違い
は、従来の場合には、バス・ベースのキャッシュ・コヒ
ーレンス・プロトコルを使用する点であり、キャッシュ
・コヒーレンスが完全にバス上で実現される。それに対
して、本発明はディレクトリ・ベースのキャッシュ・コ
ヒーレンス・プロトコルを使用する。キャッシュ・コヒ
ーレンス・プロトコルの大半が、ディレクトリを用いて
実現される。このことは、従来のスヌーピ・バス・アプ
ローチにおいては要求されない無効肯定応答の使用を必
要とする。同時に、本発明は従来のディレクトリ・ベー
スのプロトコルとも異なり、キャッシュ・ラインのコピ
ーを有するプロセッサを追跡する必要がなく、無効のた
めに使用される無効バスが追加される。単にキャッシュ
・ラインのコピーを有するプロセッサの実際の数が要求
されるので、大域ディレクトリ・サイズ要求が小さくな
り、無効バスがMIN競合を低減し、性能を改良する。
【0014】好適な態様では、大域ディレクトリが、分
散大域ディレクトリを形成するメモリ・モジュールに関
連付けられる複数の大域ディレクトリ・モジュールとし
て実現される。プロセッサが共用キャッシュ・ラインを
書込もうとするときに要求されるプロトコル・アクショ
ンを最適化するために、無効バスが使用される。自身の
キャッシュ内のデータを変更しようとするプロセッサ
は、そのデータのアドレスを無効バス上に出力し、同時
に記憶要求を大域ディレクトリに送信する。全てのキャ
ッシュが無効バスに接続されるので、データのコピーを
有するこれらのキャッシュは、データが変更されようと
していることを知り、続いてそれらのコピーを無効にす
る。コピーを無効にするキャッシュもまた、無効肯定応
答信号を大域ディレクトリに送信する。同時に、プロセ
ッサは記憶要求を大域ディレクトリに送信する。大域デ
ィレクトリは無効肯定応答を待機し、許可信号をプロセ
ッサに送信する。
【0015】この無効バスが存在しない場合、従来のデ
ィレクトリ・ベースのキャッシュ・コヒーレンス・プロ
トコルでは、ネットワークを渡る2度の往復が要求され
る。本発明の無効バスは、記憶要求及び無効をオーバラ
ップさせ、ネットワークを通じるトリップ(trip)を低
減することにより、スケーラブル・システムの性能を改
良する。従来技術は、そのアプローチが最大64のプロ
セッサに対してスケーラブルであることを提示している
が、本発明はそれ以上にスケーラブルである。例えば、
Pプロセッサによるマルチプロセッサ・システムであっ
て、それらのプロセッサの半分がキャッシュ・ラインの
読出し専用のコピーを保持するものと仮定しよう。別の
プロセッサがあるキャッシュ・ラインを変更したいと
き、P/2の全てのプロセッサがそのキャッシュ・ライ
ンを変更しようとする。従来のアーキテクチャでは、第
1のプロセッサのキャッシュがバス上に無効信号を出力
する。次にP/2の全てのプロセッサが、そのキャッシ
ュ・ラインのそれぞれのコピーを無効にし、キャッシュ
・ラインが次に要求キャッシュに転送される。次に、P
/2の全てのプロセッサがキャッシュ・ラインを変更し
ようと試み、無効を送信し、キャッシュ・ラインのコピ
ーを獲得するために、バスを調停する。通常、無効の送
信には1バス・サイクルを、またバス上でのキャッシュ
・ラインの転送にはls/4バス・サイクル(lsはキ
ャッシュ・ライン・サイズ(バイト))を要する。従っ
て、このトランザクションを完了するために要求される
バス・サイクル数は、次のようになる。
【数1】(P/2+1)(1+ls/4)
【0016】マルチプロセッサ・システムのスケーラビ
リティは、バス上に出力される要求により制限される。
前記関係は、従来によるシステムにおいて、バス上に出
力される要求の1次近似として作用する。
【0017】本発明の第1の態様によれば、バス上に無
効だけが出力される。従って、トランザクションを完了
するために要求される総バス・サイクル数は、次のよう
になる。
【数2】P/2+1
【0018】本発明の第2の態様では、要求される総バ
ス・サイクル数は、以降で示されるように無効及び応答
を含み、無効肯定応答が1バス・サイクルを要すると仮
定されるので、次のようになる。
【数3】P+P/2+1
【0019】ライン・サイズが128バイトの64プロ
セッサ・システムでは、従来のアーキテクチャは108
9バス・サイクルを要する。それに対して本発明の第1
の態様では、同数のプロセッサに対して33バス・サイ
クルを要するだけであり、本発明の第2の態様では、9
7バス・サイクルを要するに過ぎない。結果的に、本発
明の第1の態様は33倍(=1089/33)スケーラ
ブルであり、本発明の第2の態様は11倍(=1089
/96)スケーラブルとなる。従って、従来の64プロ
セッサ・システムと同一の性能に対して、本発明はその
第1及び第2の態様において、それぞれ少なくとも21
12(=64×33)及び704(=64×11)のプ
ロセッサにスケーラブルである。
【0020】
【発明の実施の形態】図1乃至図4を参照すると、マル
チプロセッサ・システムにおける従来のディレクトリ・
ベースの無効プロトコルが示される。ここではマルチス
テージ相互接続ネットワーク(MIN)を含むマルチプ
ロセッサ・システムを想定する。プロセッサとディレク
トリ間の全ての通信は、MIN(図示せず)を介する。
図1において、プロセッサP1がディレクトリに変更要
求を発行する。他の各プロセッサP2乃至PPは、変更
要求が発行されるラインに対する読出し専用アクセスを
有するものとし、この情報がディレクトリ内に記憶され
る。図2では、ディレクトリが無効を他の各プロセッサ
P2乃至PPに発行する。次に図3において、各プロセ
ッサP2乃至PPが、前記ラインのそれぞれのコピーを
無効にし、無効肯定応答をディレクトリに送信する。デ
ィレクトリが、変更されるラインのコピーを有する各プ
ロセッサから全ての無効肯定応答を受信した場合にの
み、ディレクトリは図4に示されるように、プロセッサ
P1に対して変更要求を許可する。
【0021】図5乃至図7では、従来の無効プロトコル
が最適化されて示される。前回同様、プロセッサP1が
ディレクトリに変更要求を送信するが(図5)、ディレ
クトリは各プロセッサP2乃至PPに無効を送信する他
に、変更要求の条件付き許可をプロセッサP1に送信す
る(図6)。変更要求の許可は、プロセッサP1が他の
プロセッサから所定数の無効肯定応答を受信することに
依存する。この所定数は変更要求の条件付き許可と一緒
に、ディレクトリによりプロセッサP1に提供される。
図7では、プロセッサP1は各プロセッサP2乃至PP
から無効肯定応答を直接受信し、その後プロセッサP1
はラインを自由に変更する。
【0022】図8を参照すると、本発明を実現するMI
Nベースのマルチプロセッサ・システムの機能ブロック
図が示される。システムはマルチステージ相互接続ネッ
トワーク(MIN)10を含み、これには複数のメモリ
・モジュール(MM)121乃至12mが接続される。M
INは既知であり、例えばChuan-Lin Wu及びTse-YunFen
gによる"On a class of Multistage Interconnection N
etworks"、IEEE Transactions on Computers、Vol.C-2
9、No.8、August 1980、pp.694-702を参照されたい。メ
モリ・モジュール121乃至12mは、システムの共用主
メモリを含む。主メモリには大域ディレクトリが関連付
けられ、これはキャッシュ・ラインの大域状態を決定す
るために使用される情報の他に、キャッシュ・ラインの
コピーを有するキャッシュ・メモリの数及び(または)
位置を含む。
【0023】図8に示されるシステムの大域ディレクト
リは、複数の大域ディレクトリ・モジュール141乃至
14mを含み、これらはメモリ・モジュールと一緒に分
散され、分散大域ディレクトリ(DGD)14を形成す
る。DGD14はキャッシュ・ラインの大域状態を決定
するために使用される情報の他に、キャッシュ・ライン
のコピーを有するキャッシュ・メモリの数及び(また
は)位置を含む。MIN10には更に複数のキャッシュ
(C)161乃至16pが接続され、これらはプロセッサ
(P)181乃至18pに対応するローカル・キャッシュ
である。これらの各キャッシュは無効バス20に直接接
続される。無効バスは後述されるように、あるプロセッ
サにより発行される無効要求の処理を最適化し、ネット
ワークを通じて無効を送信する必要を排除する。
【0024】分散大域ディレクトリ14は、どのキャッ
シュがキャッシュ・ラインのコピーを有するかを知らな
くてもよい。キャッシュ識別のための幾つかの設計オプ
ションが存在する。1つの設計技法によれば、ディレク
トリがキャッシュ・ラインのコピーを有する全てのキャ
ッシュを決定するための情報を有する。別の設計技法で
は、1ディレクトリ・エントリにつき少数のキャッシュ
識別子を有する。キャッシュ・ラインを共用するキャッ
シュの数が、キャッシュ識別子の数以下の場合、ディレ
クトリはそのキャッシュ・ラインを有するキャッシュを
認識する。それ以外では、ディレクトリはそのキャッシ
ュ・ラインを有するキャッシュの数だけを認識する。
【0025】図9乃至図11は、本発明の第1の態様に
よる無効プロトコルを示す。図9では、プロセッサP1
が変更要求をディレクトリに発行し、同時に無効要求を
無効バス上に出力する。変更されるキャッシュ・ライン
(無効バス上のアドレスにより識別される)のコピーを
有するプロセッサは、対応するキャッシュ・ラインを無
効にし、図10に示されるように無効肯定応答をディレ
クトリに送信する。ディレクトリが全ての無効肯定応答
を受信すると、ディレクトリは図11に示されるように
許可をプロセッサP1に与える。
【0026】図12及び図13は、本発明の第2の態様
による無効プロトコルを示す。図12では、プロセッサ
P1が変更要求をディレクトリに発行し、同時に無効要
求を無効バス上に出力する。図13では、ディレクトリ
が、変更されるキャッシュ・ラインのコピーを有するプ
ロセッサの数に相当する無効肯定応答を受信した後、条
件付き変更許可にてプロセッサP1に応答する。この
時、無効肯定応答は無効バスを介して、他のプロセッサ
からプロセッサP1に直接提供される。
【0027】図14乃至図17は、幾つかのプロトコル
の性能を比較するタイミング図である。図1乃至図4に
示される従来のシステムのオペレーションが、図14に
示される。ここでネットワーク遅延は4時間単位を含
み、バス・サイクルは1時間単位を含むものとする。変
更要求はネットワークを介してディレクトリに送信され
なければならないので、変更要求は図14において、4
時間単位を消費する。同様に、無効はディレクトリから
ネットワークを介して、変更されるキャッシュ・ライン
のコピーを保持する他のプロセッサに伝達されなければ
ならないので、4時間単位を消費する。無効肯定応答も
ネットワークを介して、ディレクトリに伝達されなけれ
ばならないので、別の4時間単位を消費する。最後に、
ディレクトリは変更要求の許可をネットワークを介して
要求プロセッサに送信するので、更に別の4時間単位を
消費する。結局、このプロセスは合計16時間単位を消
費することになる。
【0028】図5乃至図7に示される最適化された従来
のプロトコルが、図15に示される。ここでは最初の2
サイクルは従来のプロトコルと同一である。しかしなが
ら、この場合には、変更要求の許可が、要求プロセッサ
が全ての無効肯定応答を他のプロセッサから直接受信す
ることを条件とするので、許可サイクルと無効サイクル
または無効肯定応答サイクルとのオーバラップが存在
し、結果的に4時間単位を節約する。
【0029】従来のプロトコル及び最適化された従来の
プロトコルに比較して、本発明の両方の態様は、相当な
時間を節約し、大規模マルチプロセッサ・システムの性
能を多大に改良する。図9乃至図11に示される本発明
の第1の態様のプロトコルが、図16に示される。変更
要求が無効バス上に同時に出力され、ネットワークを介
してディレクトリに送信されるので、他のプロセッサが
無効肯定応答をディレクトリに送信開始するまでに、1
サイクル・バス遅延だけが生じる。従って、ディレクト
リは、変更要求を受信してから1バス・サイクル遅延内
に、許可をネットワークを介して要求プロセッサに送信
する。このサイクルはたった9時間単位で完了する。
【0030】本発明の第2の態様によるプロトコルは、
より大きな時間の節約を達成し、従って性能的な利点を
有する。図12及び図13に示されるこのプロトコル
が、図17に示される。この場合、無効バスが変更要求
とそれに応答する無効肯定応答の両方を伝搬する。従っ
て、ディレクトリは変更要求の受信に際して、即時条件
付き許可を発行し、結果的にサイクルが完了するのに8
時間単位が消費されるだけである。
【0031】従来のNエントリ分散大域ディレクトリに
おけるNエントリ分散大域ディレクトリ、並びに本発明
の第1及び第2の態様におけるNエントリ大域ディレク
トリのメモリ・マップが、それぞれ図18及び図19に
示される。図18に示される従来のディレクトリでは、
エントリがディレクトリ・タグ(dtag)、大域状態(gs
tate)、Nプロセッサの各プロセッサ識別(PID)、
書戻しまたは無効肯定応答の待機を示す事象フラグ(W
TEVNT)、及び書戻し/無効肯定応答の発生を引き
起こした要求事象の事象フラグ(RQEVNT)から構
成される。よりコンパクトなエントリを提供するため
に、PIDがPベクトルにより置換されてもよく、そこ
では各ビットがプロセッサを表す。それに対して、本発
明のNエントリ分散大域ディレクトリはより単純であ
り、PIDまたはPベクトルの必要を排除する。図19
に示されるように、本発明における大域ディレクトリ内
のエントリは、dtag、gstate、及びWTEVNT及びR
QEVNTフラグだけを要求する。
【0032】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0033】(1)共用メモリ・マルチプロセッサ・シ
ステムであって、各々が関連キャッシュ・メモリを有す
る複数のプロセッサと、前記各プロセッサのキャッシュ
・メモリに接続されるマルチステージ相互接続ネットワ
ークと、前記マルチステージ相互接続ネットワークに接
続される複数のインタリーブド・メモリ・モジュール
と、キャッシュ・ラインの大域状態を決定するために使
用される情報を含み、分散大域ディレクトリを構成する
複数の大域ディレクトリ・モジュールにより構成される
大域ディレクトリであって、前記各メモリ・モジュール
が関連する前記大域ディレクトリ・モジュールを有す
る、前記大域ディレクトリと、前記各キャッシュ・メモ
リに直接接続される無効バスと、を含み、前記プロセッ
サが、変更しようとするデータのアドレスを前記無効バ
ス上に出力すると同時に、データ変更のための記憶要求
を前記大域ディレクトリに送信し、前記無効バス上のア
ドレスにより識別される前記キャッシュ・ラインのコピ
ーを有する全ての前記キャッシュ・メモリが、それらの
前記コピーを無効にし、前記大域ディレクトリがデータ
の変更を許可する許可信号を前記プロセッサに送信す
る、共用メモリ・マルチプロセッサ・システム。 (2)大域ディレクトリが前記ラインのコピーを有する
前記キャッシュ・メモリの数に関する情報を含む、前記
(1)記載の共用メモリ・マルチプロセッサ・システ
ム。 (3)前記キャッシュ・メモリが、前記無効バス上のア
ドレスにより識別される前記キャッシュ・ラインのコピ
ーを無効にする際、無効肯定応答信号を大域ディレクト
リに送信し、前記大域ディレクトリが、前記無効肯定応
答信号の受信に際して、データを変更しようとする前記
プロセッサに前記許可信号を送信する、前記(1)記載
の共用メモリ・マルチプロセッサ・システム。 (4)前記キャッシュ・メモリが、前記無効バス上のア
ドレスにより識別される前記キャッシュ・ラインのコピ
ーを無効にする際、無効肯定応答信号をデータを変更し
ようとする前記プロセッサに直接送信し、前記大域ディ
レクトリが前記許可信号に加えて、前記プロセッサが受
信すべき無効肯定応答の数を送信する、前記(1)記載
の共用メモリ・マルチプロセッサ・システム。 (5)複数のインタリーブド・メモリ・モジュールが複
数のプロセッサにマルチステージ相互接続ネットワーク
を介して接続される、共用メモリ・マルチプロセッサ・
システムにおけるキャッシュ・コヒーレンスを維持する
無効プロトコルであって、 キャッシュ・ラインの大域
状態を決定するために使用される情報を含む大域ディレ
クトリを提供するステップであって、前記大域ディレク
トリが分散大域ディレクトリを構成する複数の大域ディ
レクトリ・モジュールにより構成され、前記各メモリ・
モジュールが関連する前記大域ディレクトリ・モジュー
ルを有する、前記ステップと、前記各キャッシュ・メモ
リに直接接続される無効バスを提供するステップと、デ
ータを変更しようとする前記プロセッサが、該データの
アドレスを前記無効バス上に出力すると同時に、データ
変更のための記憶要求を前記大域ディレクトリに送信す
るステップと、前記無効バス上のアドレスにより識別さ
れる前記キャッシュ・ラインのコピーを有する全ての前
記キャッシュ・メモリが、それらの前記コピーを無効に
するステップと、前記大域ディレクトリがデータの変更
を許可する許可信号を前記プロセッサに送信するステッ
プと、を含む、無効プロトコル。 (6)前記キャッシュ・メモリが、前記無効バス上のア
ドレスにより識別される前記キャッシュ・ラインのコピ
ーを無効にする際、無効肯定応答信号を大域ディレクト
リに直接送信するステップと、前記大域ディレクトリが
前記無効肯定信号を受信の際に、データを変更しようと
する前記プロセッサに前記許可信号を送信するステップ
と、を含む、前記(5)記載の無効プロトコル。 (7)前記キャッシュ・メモリが、前記無効バス上のア
ドレスにより識別される前記キャッシュ・ラインのコピ
ーを無効にする際、データを変更しようとする前記プロ
セッサに無効肯定応答信号を直接送信するステップと、
前記大域ディレクトリが前記許可信号に加えて、前記プ
ロセッサが受信すべき無効肯定応答の数を送信するステ
ップと、を含む、前記(5)記載の無効プロトコル。
【図面の簡単な説明】
【図1】ディレクトリ・ベースのキャッシュ・コヒーレ
ンス・マルチプロセッサ・システムにおける従来の無効
プロトコルを示す機能ブロック図である。
【図2】ディレクトリ・ベースのキャッシュ・コヒーレ
ンス・マルチプロセッサ・システムにおける従来の無効
プロトコルを示す機能ブロック図である。
【図3】ディレクトリ・ベースのキャッシュ・コヒーレ
ンス・マルチプロセッサ・システムにおける従来の無効
プロトコルを示す機能ブロック図である。
【図4】ディレクトリ・ベースのキャッシュ・コヒーレ
ンス・マルチプロセッサ・システムにおける従来の無効
プロトコルを示す機能ブロック図である。
【図5】最適化された従来の無効プロトコルを示す機能
ブロック図である。
【図6】最適化された従来の無効プロトコルを示す機能
ブロック図である。
【図7】最適化された従来の無効プロトコルを示す機能
ブロック図である。
【図8】本発明の好適な態様によるディレクトリ及び無
効バスを有するシステムの機能図である。
【図9】無効バスが無効のためだけに使用される本発明
の第1の態様による無効プロトコルを示す機能ブロック
図である。
【図10】無効バスが無効のためだけに使用される本発
明の第1の態様による無効プロトコルを示す機能ブロッ
ク図である。
【図11】無効バスが無効のためだけに使用される本発
明の第1の態様による無効プロトコルを示す機能ブロッ
ク図である。
【図12】無効バスが無効及び肯定応答のために使用さ
れる本発明の第2の態様による無効プロトコルを示す機
能ブロック図である。
【図13】無効バスが無効及び肯定応答のために使用さ
れる本発明の第2の態様による無効プロトコルを示す機
能ブロック図である。
【図14】従来の無効プロトコルにおいて、要求を処理
するために要する時間を示すタイミング図である。
【図15】最適化された従来の無効プロトコルにおい
て、要求を処理するために要する時間を示すタイミング
図である。
【図16】本発明の第1の態様において、要求を処理す
るために要する時間を示すタイミング図である。
【図17】本発明の第2の態様において、要求を処理す
るために要する時間を示すタイミング図である。
【図18】従来の無効アプローチにおけるN−エントリ
分散大域ディレクトリのメモリ・マップを示す図であ
る。
【図19】本発明の第1及び第2の態様におけるN−エ
ントリ分散大域ディレクトリのメモリ・マップを示す図
である。
【符号の説明】
12 メモリ・モジュール 14 大域ディレクトリ・モジュール 16 キャッシュ 18 プロセッサ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ヤルサン・ス アメリカ合衆国10570、ニューヨーク州 プレザントビル、ディアフィールド・レ ーン・サウス 45 (56)参考文献 特開 平5−128071(JP,A) 特開 平5−35697(JP,A) 特開 平4−151751(JP,A) 特開 平3−163640(JP,A) 特開 平2−129741(JP,A) 特開 平2−45848(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 15/16 - 15/177 G06F 12/08 - 12/12

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】各々が関連キャッシュ・メモリを有する複
    数のプロセッサと、 前記プロセッサの各々のキャッシュ・メモリに接続され
    たマルチステージ相互接続ネットワークと、 前記マルチステージ相互接続ネットワークに接続された
    複数のインタリーブド・メモリ・モジュールと、 キャッシュ・ラインの大域状態を決定するために使用さ
    れる情報及び前記キャッシュ・ラインのコピーを有する
    キャッシュ・メモリの数に関する情報を含み、分散大域
    ディレクトリを構成し且つ前記メモリ・モジュールの各
    々に関連した複数の大域ディレクトリ・モジュールを有
    する大域ディレクトリと、 前記キャッシュ・メモリの各々に直接接続された無効バ
    スと、 を含む共用メモリ・マルチプロセッサ・システムにおい
    て、 データを変更しようとするプロセッサが、変更されるべ
    きデータのアドレスを前記無効バス上に出力すると同時
    に、データ変更を求める要求を前記大域ディレクトリに
    送信するステップと、 前記無効バス上のアドレスによって識別されたキャッシ
    ュ・ラインのコピーを有するすべてのキャッシュ・メモ
    リが前記コピーを無効にするステップと、 前記キャッシュ・メモリが、前記無効バス上のアドレス
    によって識別されたキャッシュ・ラインのコピーを無効
    にしたことに応答して前記データを変更しようとするプ
    ロセッサに無効肯定応答信号を直接に送信するステップ
    と、 前記データを変更しようとするプロセッサがデータの変
    更を行う前に受信すべき無効肯定応答の数を含む条件付
    き許可信号を、前記大域ディレクトリが該プロセッサに
    送信するステップと、 を含む方法。
JP19172496A 1995-09-25 1996-07-22 ディレクトリ・ベースのキャッシュ・コヒーレンス・プロトコルによるマルチプロセッサのための無効バス最適化 Expired - Fee Related JP3320312B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US533044 1995-09-25
US08/533,044 US5778437A (en) 1995-09-25 1995-09-25 Invalidation bus optimization for multiprocessors using directory-based cache coherence protocols in which an address of a line to be modified is placed on the invalidation bus simultaneously with sending a modify request to the directory

Publications (2)

Publication Number Publication Date
JPH0991255A JPH0991255A (ja) 1997-04-04
JP3320312B2 true JP3320312B2 (ja) 2002-09-03

Family

ID=24124228

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19172496A Expired - Fee Related JP3320312B2 (ja) 1995-09-25 1996-07-22 ディレクトリ・ベースのキャッシュ・コヒーレンス・プロトコルによるマルチプロセッサのための無効バス最適化

Country Status (5)

Country Link
US (1) US5778437A (ja)
EP (1) EP0764905B1 (ja)
JP (1) JP3320312B2 (ja)
KR (1) KR100234503B1 (ja)
DE (1) DE69616226T2 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5950226A (en) * 1996-07-01 1999-09-07 Sun Microsystems, Inc. Multiprocessing system employing a three-hop communication protocol
US5900015A (en) * 1996-08-09 1999-05-04 International Business Machines Corporation System and method for maintaining cache coherency using path directories
US6094709A (en) * 1997-07-01 2000-07-25 International Business Machines Corporation Cache coherence for lazy entry consistency in lockup-free caches
US6295584B1 (en) * 1997-08-29 2001-09-25 International Business Machines Corporation Multiprocessor computer system with memory map translation
US6633958B1 (en) * 1997-11-17 2003-10-14 Silicon Graphics, Inc. Multiprocessor computer system and method for maintaining cache coherence utilizing a multi-dimensional cache coherence directory structure
US6108721A (en) * 1998-06-29 2000-08-22 Hewlett-Packard Company Method and apparatus for ensuring data consistency between an i/o channel and a processor
US6295598B1 (en) * 1998-06-30 2001-09-25 Src Computers, Inc. Split directory-based cache coherency technique for a multi-processor computer system
US6751698B1 (en) 1999-09-29 2004-06-15 Silicon Graphics, Inc. Multiprocessor node controller circuit and method
JP3571616B2 (ja) * 2000-05-23 2004-09-29 エヌ・ティ・ティ・コムウェア株式会社 データの共有方法、端末装置および記録媒体
US6725334B2 (en) * 2000-06-09 2004-04-20 Hewlett-Packard Development Company, L.P. Method and system for exclusive two-level caching in a chip-multiprocessor
US6668308B2 (en) * 2000-06-10 2003-12-23 Hewlett-Packard Development Company, L.P. Scalable architecture based on single-chip multiprocessing
US6738836B1 (en) * 2000-08-31 2004-05-18 Hewlett-Packard Development Company, L.P. Scalable efficient I/O port protocol
US6633960B1 (en) * 2000-08-31 2003-10-14 Hewlett-Packard Development Company, L.P. Scalable directory based cache coherence protocol
US6763434B2 (en) * 2000-12-30 2004-07-13 International Business Machines Corporation Data processing system and method for resolving a conflict between requests to modify a shared cache line
US6801984B2 (en) * 2001-06-29 2004-10-05 International Business Machines Corporation Imprecise snooping based invalidation mechanism
US7003635B2 (en) * 2002-10-03 2006-02-21 Hewlett-Packard Development Company, L.P. Generalized active inheritance consistency mechanism having linked writes
US7082500B2 (en) * 2003-02-18 2006-07-25 Cray, Inc. Optimized high bandwidth cache coherence mechanism
KR100515059B1 (ko) * 2003-07-22 2005-09-14 삼성전자주식회사 멀티프로세서 시스템 및 멀티프로세서 시스템의 캐쉬일관성 유지 방법
US7249224B2 (en) * 2003-08-05 2007-07-24 Newisys, Inc. Methods and apparatus for providing early responses from a remote data cache
US8205046B2 (en) * 2005-01-31 2012-06-19 Hewlett-Packard Development Company, L.P. System and method for snooping cache information using a directory crossbar
GB2538054B (en) 2015-04-28 2017-09-13 Advanced Risc Mach Ltd Data processing apparatus, controller, cache and method

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3845474A (en) * 1973-11-05 1974-10-29 Honeywell Inf Systems Cache store clearing operation for multiprocessor mode
US4142234A (en) * 1977-11-28 1979-02-27 International Business Machines Corporation Bias filter memory for filtering out unnecessary interrogations of cache directories in a multiprocessor system
US4648030A (en) * 1983-09-22 1987-03-03 Digital Equipment Corporation Cache invalidation mechanism for multiprocessor systems
US4959777A (en) * 1987-07-27 1990-09-25 Motorola Computer X Write-shared cache circuit for multiprocessor system
US5058006A (en) * 1988-06-27 1991-10-15 Digital Equipment Corporation Method and apparatus for filtering invalidate requests
US5025365A (en) * 1988-11-14 1991-06-18 Unisys Corporation Hardware implemented cache coherency protocol with duplicated distributed directories for high-performance multiprocessors
JPH0680499B2 (ja) * 1989-01-13 1994-10-12 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチプロセッサ・システムのキャッシュ制御システムおよび方法
US5345578A (en) * 1989-06-30 1994-09-06 Digital Equipment Corporation Competitive snoopy caching for large-scale multiprocessors
US5283886A (en) * 1989-08-11 1994-02-01 Hitachi, Ltd. Multiprocessor cache system having three states for generating invalidating signals upon write accesses
US5197139A (en) * 1990-04-05 1993-03-23 International Business Machines Corporation Cache management for multi-processor systems utilizing bulk cross-invalidate
CA2045756C (en) * 1990-06-29 1996-08-20 Gregg Bouchard Combined queue for invalidates and return data in multiprocessor system
US5276852A (en) * 1990-10-01 1994-01-04 Digital Equipment Corporation Method and apparatus for controlling a processor bus used by multiple processor components during writeback cache transactions
US5249283A (en) * 1990-12-24 1993-09-28 Ncr Corporation Cache coherency method and apparatus for a multiple path interconnection network
US5303362A (en) * 1991-03-20 1994-04-12 Digital Equipment Corporation Coupled memory multiprocessor computer system including cache coherency management protocols
US5313609A (en) * 1991-05-23 1994-05-17 International Business Machines Corporation Optimum write-back strategy for directory-based cache coherence protocols
US5428761A (en) * 1992-03-12 1995-06-27 Digital Equipment Corporation System for achieving atomic non-sequential multi-word operations in shared memory
US5398325A (en) * 1992-05-07 1995-03-14 Sun Microsystems, Inc. Methods and apparatus for improving cache consistency using a single copy of a cache tag memory in multiple processor computer systems
US5511224A (en) * 1993-02-18 1996-04-23 Unisys Corporation Configurable network using dual system busses with common protocol compatible for store-through and non-store-through cache memories

Also Published As

Publication number Publication date
KR970016951A (ko) 1997-04-28
EP0764905B1 (en) 2001-10-24
EP0764905A1 (en) 1997-03-26
US5778437A (en) 1998-07-07
KR100234503B1 (ko) 1999-12-15
DE69616226D1 (de) 2001-11-29
JPH0991255A (ja) 1997-04-04
DE69616226T2 (de) 2002-06-27

Similar Documents

Publication Publication Date Title
JP3320312B2 (ja) ディレクトリ・ベースのキャッシュ・コヒーレンス・プロトコルによるマルチプロセッサのための無効バス最適化
US5822763A (en) Cache coherence protocol for reducing the effects of false sharing in non-bus-based shared-memory multiprocessors
US6651145B1 (en) Method and apparatus for scalable disambiguated coherence in shared storage hierarchies
US5623632A (en) System and method for improving multilevel cache performance in a multiprocessing system
TWI311707B (en) Computer system with integrated directory and processor cache
US6636906B1 (en) Apparatus and method for ensuring forward progress in coherent I/O systems
JP3470951B2 (ja) 非一様メモリ・アクセス・コンピュータ・システム及びその操作方法
US8037253B2 (en) Method and apparatus for global ordering to insure latency independent coherence
US8015366B2 (en) Accessing memory and processor caches of nodes in multi-node configurations
JPH07253928A (ja) 2重化キャッシュ・スヌープ機構
JPH1031625A (ja) マルチ・プロセッサ・システムにおける改良されたコピーバック性能のためのライトバック・バッファ
US7779210B2 (en) Avoiding snoop response dependency
US6857051B2 (en) Method and apparatus for maintaining cache coherence in a computer system
US7089376B2 (en) Reducing snoop response time for snoopers without copies of requested data via snoop filtering
US5701422A (en) Method for ensuring cycle ordering requirements within a hierarchical bus system including split-transaction buses
US20050262250A1 (en) Messaging protocol
US7337279B2 (en) Methods and apparatus for sending targeted probes
US6990516B2 (en) Distributed shared memory system and data-maintenance method of same
JP2000132531A (ja) マルチプロセッサ
JP3067976B2 (ja) マルチレベルバス結合型マルチプロセッサシステム
US6889343B2 (en) Method and apparatus for verifying consistency between a first address repeater and a second address repeater
USRE38514E1 (en) System for and method of efficiently controlling memory accesses in a multiprocessor computer system
JPH05210639A (ja) 複数キャッシュメモリ型式を含む多重プロセッサコンピューターシステム
Sweazey Shared memory systems on the Futurebus
US20070078879A1 (en) Active address table

Legal Events

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

Free format text: PAYMENT UNTIL: 20080621

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees