JPH10260898A - キャッシュ整合メモリ・システムの整合サイクルの回数を低減する方法 - Google Patents
キャッシュ整合メモリ・システムの整合サイクルの回数を低減する方法Info
- Publication number
- JPH10260898A JPH10260898A JP9326049A JP32604997A JPH10260898A JP H10260898 A JPH10260898 A JP H10260898A JP 9326049 A JP9326049 A JP 9326049A JP 32604997 A JP32604997 A JP 32604997A JP H10260898 A JPH10260898 A JP H10260898A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- cache
- state
- line
- shared
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/082—Associative directories
Abstract
を使用する、マルチプロセッサ・コンピュータ・システ
ムでのメモリの使用を改善する。 【解決手段】 コンピュータ・システムは、状態キャッ
シュ・メモリの他に、共有システム・メモリ;複数のデ
ータ・キャッシュ・メモリ;共有システム・メモリを含
み、共有システム・メモリ及び複数のデータ・キャッシ
ュ・メモリのメモリのライン間で一貫性を維持するた
め、集中/分散式のディレクトリをベースとするキャッ
シュ整合スキームを使用する。置き換え前に、メモリ・
ラインに関連する状態キャッシュ入力に対する、システ
ム・メモリ・ライン状態が読み出される。放出動作は、
上記共有メモリのメモリのラインを更新し、システム・
メモリ・ライン状態が「占有状態」である場合には、デ
フォールトの「共有」のデータ・キャッシュ・メモリ・
ライン状態を、各データ・キャッシュ・メモリの上記ラ
インに割り当てる。
Description
ャッシュ・メモリおよび共有メモリを含むマルチプロセ
ッサ・コンピュータ・システム、特にキャッシュとの整
合を維持するために、ディレクトリをベースとするプロ
トコルを使用するマルチプロセッサ・コンピュータ・シ
ステムに関する。
こ数年間の間に、コンピュータ・システムの性能、速
度、集積度および容量はほぼ指数的に進歩している。こ
のような進歩は、コンピュータ・システムのコストの低
下とあいまって、コンピュータ・システムの利用のさら
なる拡大をもたらし、より進歩したリソースが豊富なコ
ンピュータのアプリケーションが開発された。最近の歴
史的傾向により、アプリケーションのメモリに対する要
件は、毎年二倍に増大している。コンピュータ・システ
ムおよび部材のコストは、ここ数年確実に下がってきて
いるが、システムの主メモリで使用される高速RAMメ
モリおよびキャッシュ・メモリのコストは、ほとんどの
コンピュータ・システムにおいて最も高い状態のまま安
くならない。
ウェアおよびオペレーティング・システム・ソフトウェ
アの一時的な記憶装置として使用されるシステム・メモ
リおよびキャッシュ・メモリは、またパリテイ・ビッ
ト、キャッシュ整合状態情報およびエラー検出および/
または修正シンドローム・ビットを記憶するために、よ
り進歩したマルチプロセッサ・システムでも使用されて
いる。マルチプロセッサ・システムの追加メモリ要件、
および高度のオペレーティング・システムおよびアプリ
ケーションに対するより高度のメモリ要求により、高速
RAMに対する要求およびコストが増大している。
使用し、システムおよびキャッシュ・メモリ要件を低減
するための、もっと効率的な方法が待望されている。
トリをベースとするキャッシュ整合を使用する、コンピ
ュータ・システムでのメモリの使用を改善する新しく、
有益な方法を提供することである。
ュ・メモリ、共有システム・メモリ、複数のデータ・キ
ャッシュ・メモリ、上記システム・メモリと上記複数の
データ・キャッシュ・メモリとを相互に接続するバスの
システムとを含む、マルチプロセッサ・コンピュータ・
システムの状態キャッシュ・メモリの入力を置き換える
方法である。上記コンピュータ・システムは、上記共有
システム・メモリおよび上記複数のデータ・キャッシュ
・メモリのメモリのライン間で一貫性を維持するため
に、集中/分散式のディレクトリをベースとするキャッ
シュ整合スキームを使用している。本発明の方法は、状
態キャッシュ・メモリに表示されるメモリ・ラインに対
して、「共有」のデフォールト・メモリ状態を確立する
ステップと;置き換えを行う前に、共有メモリおよび少
なくとも一つのデータ・キャッシュ・メモリに記憶され
ている、メモリ・ラインに関連する状態キャッシュ入力
に対する、システム・メモリ・ライン状態を読み取るス
テップと;上記共有メモリのメモリ・ラインを更新する
ために放出動作を行い、システム・メモリ・ライン状態
が「占有状態」である場合には、「共有」のデータ・キ
ャッシュ・メモリ・ライン状態を、メモリのラインを含
む各データ・キャッシュ・メモリの上記メモリ・ライン
に割り当てるステップとを含む。
態キャッシュ・メモリおよびデータ・キャッシュ・メモ
リに維持される。各データ・キャッシュ・メモリは、デ
ータ・キャッシュ・メモリにセーブされたメモリの各ラ
インと共に、データ・キャッシュ・メモリ・ライン状態
を含み、データ・キャッシュ・メモリ・ライン状態は、
MESI(修正−排他−共有−無効)状態、すなわち、
修正、排他、共有または無効の中の任意の一つである。
状態キャッシュ・メモリは、システム・メモリにセーブ
されているメモリの、予め定めた数のラインに対する、
システム・メモリ・ライン状態を含む。システム・メモ
リ・ライン状態は、下記の状態、すなわち、共有バス
A、共有バスB、両者共有、占有バスAおよび占有バス
Bの中の任意の一つである。
法は、下記のステップを含む。すなわち、上記状態キャ
ッシュ・メモリに表示されるメモリのラインに対して、
デフォールト・システム・メモリ状態を「共有」状態に
するステップと;上記共有メモリ、および少なくとも一
つのデータ・キャッシュ・メモリに記憶されているメモ
リのラインに関連する、予め記憶した状態キャッシュ入
力の置き換えを行う前に、予め記憶した状態キャッシュ
入力に対するシステム・メモリ・ライン状態を読み取る
ステップと;上記共有メモリのメモリのラインを更新す
るために放出動作を行い、上記予め記憶した状態キャッ
シュ入力に対する上記システム・メモリ・ライン状態
が、「占有」(占有バスAまたは占有バスB)である場
合には、「共有」のデータ・キャッシュ・メモリ・ライ
ン状態を、メモリの上記ラインを含む各データ・キャッ
シュ・メモリのメモリの上記ラインに割り当てるステッ
プとを含む。
き換えを行うことにより生じる整合動作の回数を低減す
る。メモリの大部分のラインは共有状態にあるので、デ
フォールト状態をキャッシュに記憶していない状態にセ
ットするのではなく、共有状態にセットすると、状態キ
ャッシュ・ライン置換中に行わなければならない無効な
整合動作の回数が減少る。
説明するが、これは単に例示としてのものに過ぎない。
テム技術を使用する、高度マルチプロセッサ・アーキテ
クチャを開発し、一方、インテル・ペンティアム・プロ
・プロセッサ、PCI I/Oチップセット、ペンティ
アム・プロ・チップセット、ペンティアム・プロ・バス
・トポロジィ(P6)のような標準大容量(SHV)構
成部材および標準メモリ・モジュール(SIMMおよび
DIMM)を巧みに利用している。NCRシステム技術
と標準SHV構成部材とを注意深く融合することによ
り、NCRは世界的規模の拡張性と機能を供給すること
ができ、一方、全面的なカスタム開発に関連する不利益
を避け、SHVに資本を投入している。図1はこのアー
キテクチャの実施形態である。
と、この図は参照記号AおよびBで示す、二組の四つの
プロセッサからなる構築ブロック、すなわち、複合体で
形成されている8プロセッサSMPシステムである。各
複合体は、それぞれ複合体「A]および複合体「B」の
ように、AまたはBで終わる参照番号がついている、同
一の構造体および構成部品を含む。
部分は、高帯域幅、分割処理プロセッサ・バス103A
に接続している、1−4のプロセッサ101Aを含む。
各プロセッサ301Aは、キャッシュ・メモリ321A
と関連している。システム・メモリ105Aは、高度二
重ポート付きメモリ・コントローラ107Aを通して、
バス103Aに接続している。プロセッサ・バス103
Aは、メモリ・コントローラ107A第一のポートに接
続している。第二のメモリ・コントローラ・ポートは、
本明細書では拡張バスと呼ぶ、高帯域幅 I/Oバス1
15に接続している。この拡張バスは、多重PCI I
/Oインターフェース109Aへの接続に使用されてい
る。これらの構成部材すべては、高度メモリ・コントロ
ーラ107Aを除いて、現在入手可能な市販の構成部材
である。例えば、プロセッサ101Aとしては、インテ
ル・ペンティアム・プロ・プロセッサを使用できるし、
バス103Aとしては、ペンティアム・プロ(P6)バ
ス・トポロジィを使用することができる。
7Aは、プロセッサ・バス103AとI/Oバス115
との間のすべての方向の制御およびデータの流れを管理
する。上記I/Oバスは、後で説明するように、PCI
I/OブリッジへのP6、および他のプロセッサへ接
続するための、他のAMC ASICを含むことができ
る。AMC107Aは、また整合DRAMメモリ・アレ
イへのアクセスを制御する。このAMCは、制御および
データ・スライスASICペアからなる。
Aと同じ構造をしている。二つの複合体は、拡張バス1
15により相互に接続していて、プロセッサ101Aお
よび101B、システム・メモリ105Aおよび105
B、ならびに共有I/O装置、キャッシュ・メモリおよ
び他の構成部材との間で通信を行うことができる。
ッサ・バス上で、バス監視プロトコルを使用する。バス
監視プロトコルは、プロセッサとメモリとの間のデータ
の移動を絶えず追跡する方法である。少数の緊密に結合
したプロセッサを含むこのシステムは、優れた性能を持
つ。プロセッサが、同じバス上の他のプロセッサのデー
タ・キャッシュで使用することができるデータを必要と
する場合には、そのデータを両方のプロセッサで共有す
ることができる。そうでない場合には、そのデータは、
主メモリ105Aまたは105Bから検索しなければな
らないが、これはシステム・バス・トラフィックを必要
とする時間の掛かる動作である。この方法は、システム
・バスの取り合いを少なくすることにより、システムの
性能を向上させる。
の通りである。
ートする物資チップ(IOB等)への投資。
107Aおよび107Bによる、それぞれが、64ビッ
トの帯域幅で66MHzで動作し、533MB/sの持
続データ転送速度で動作する複数の二重バスの接続と利
用の実現。
ングの低減と、IOBトラフィックへのIOBから独立
して動作することができる、メモリ・パスへの私的プロ
セッサの設置による、拡張性の増進。
よびI/O装置への接続が可能。
Vの動きに焦点を合わせながら、高利用度取引処理(H
ATP)および拡張可能なデータ・ウェアハウス(SD
W)サーバのニーズを満足させることができる。
ャッシュ・メモリを使用するすべての装置、特に多重デ
ータ・キャッシュ・メモリおよび多重レベルのデータ・
キャッシュ・メモリを使用するシステムの場合には、特
定のメモリ位置からのデータは、主メモリおよび一つま
たはそれ以上のデータ・キャッシュ・メモリに同時に常
駐することができる。しかし、主メモリおよびデータ・
キャッシュ・メモリのデータは、何時でも同じではな
い。このようなことは、マイクロプロセッサが、主メモ
リおよび他のデータ・キャッシュ・メモリを更新しない
で、関連データ・キャッシュ・メモリに含まれているデ
ータを更新した場合、または他のバス・マスタが、マイ
クロプロセッサのデータ・キャッシュ・メモリのそのコ
ピーを更新しないで、主メモリのデータを変更した場合
に起こる。
ル105Aおよび105B、および種々のデータ・キャ
ッシュ・メモリ間を移動するデータを追跡するために、
システムは、メモリとキャッシュをベースにする整合の
ハイブリッドを使用する。システム・メモリとキャッシ
ュイング・エージェント、すなわち、第一および恐らく
第二のレベルのデータ・キャッシュを含む、システム・
バス・プロセッサとの間の整合は、集中/分散型のディ
レクトリをベースとするキャッシュの整合の組み合わせ
を通して維持される。
合スキームは、プロセッサとメモリとの間のデータの動
きを絶えず追跡する方法である。データの整合に対する
この方法により、メモリ状態表は、どのプロセッサが、
その関連データ・キャッシュ・メモリに、メモリのどの
ラインを持っているのかを識別する。プロセッサがデー
タを要求した場合には、状態表は、主メモリまたはプロ
セッサ・データ・キャッシュの、そのデータの最も新し
いコピーが常駐している場所を識別する。この方法の利
点は、プロセッサが監視によりアクセスすることができ
ないデータ・キャッシュに常駐するデータを必要とする
まで、追加の作業をする必要がないということである。
ディレクトリをベースとするキャッシュの整合は、シス
テム・バス上で多数の緊密に結合しているプロセッサを
使用した場合に、最も効果がある。
型のディレクトリをベースとする、キャッシュ整合スキ
ームは、二つのディレクトリ素子からなる。ディレクト
リ・スキームの中央素子は、それぞれシステム・メモリ
・モジュール105Aおよび105Bに関連する、状態
キャッシュ・メモリ203Aおよび203Bに常駐す
る。この素子は、メモリ・ライン状態表(MLST)と
呼ばれる。システム・メモリのそれぞれのアクティブな
(キャッシュ・メモリに記憶された)メモリ・ライン
は、MLSTに対応する入力を含む。この対応する入力
は、メモリ・ラインがキャッシュ・メモリに記憶されて
いるかどうかを示す情報を含み、もし記憶されている場
合には、一つのプロセッサ(またはバス)または共有ア
クロスマルチプロセッサ(またはバス)により、排他的
に占有されているかどうかを示す情報を含む。ディレク
トリ・スキームおよびMLSTは、システム・バスまた
はプロセッサによるメモリ・ラインの占有権を識別する
ように設定することができる。「ビット・パア・バス」
MLSTは、バスに基づいて占有権を識別し、一方、も
っと粗い「ビット・パア・プロセッサ」MLSTは、プ
ロセッサに基づいて占有権を識別する。この識別はメモ
リ設計の際に行うべきものなので、システム・バス上の
すべての他の装置には何の影響も与えない。
サのデータ・キャッシュ・ディレクトリに局部的に常駐
している。特定のプロセッサに関連するこの素子は、そ
のプロセッサのライン状態表(PLST)と呼ばれる。
各キャッシュ・ラインは、PLSTに対応する入力を持
つ。局部的プロセッサから見た場合、この入力は、ライ
ンが主メモリ・ラインの有効なコピーを含んでいるかど
うかを示す情報を含み、含んでいる場合には、そのライ
ンを修正すべきかどうかをシステムの残りの部分に報告
しなければならない。システムから見た場合、各プロセ
ッサのPLSTは、メモリ介入コマンド(MIC)と呼
ばれる特殊なシステム・バス・サイクルに対するスレー
ブである。これらサイクルは、特定の隣接するのローカ
ル状態についてPLSTに問い合わせを行い、および/
またはPLSTにそのローカル状態を変更するように命
令する。
正−排他−共有−無効(MESI)キャッシュ整合プロ
トコルは、主メモリの内容とデータ・キャッシュ・メモ
リの内容とを同じ状態に維持するための、ハードウェア
実行プロトコルである。MESIハードウェア・キャッ
シュ整合プロトコルの通常の実行の際には、下記の機能
を持つキャッシュ・コントローラを使用する必要があ
る。
ュ・メモリに対して、同じライン・サイズを使用するこ
とができること。
察することができること。
インに対する状態情報を、維持することができること。
容を同じ状態に維持するために、適当な行動をとること
ができること。
か、他のキャッシュで使用することができるかどうか、
修正済みであるかどうかを定義する四つの状態を表す。
データ・キャッシュのデータの各ラインは、データのラ
インが修正済みか、排他的か、共有か、または無効かを
示す関連フィールドを含む。プロセッサ・ライン状態表
の各ラインは、四つの可能なMESI状態の中の一つに
マークがつけられている。
ュだけで排他的に使用することができ、修正されるデー
タのラインを示す。修正済みのラインは、共有メモリ・
バスを獲得しなくても、キャッシュで局部的に更新する
ことができる。システムの他の装置が、このラインを必
要とする場合には、占有中のキャッシュがデータを供給
しなければならない。
ッシュだけで排他的に使用できるデータのラインが修正
されていないこと(主メモリも有効なコピーを持
つ。)、ローカル・プロセッサが、システムに通知しな
いで、このラインを自由に修正できることを示す。排他
的データは、ある種の方法で働きかけられるまで、他の
いかなるプロセッサも使用することはできない。排他的
ラインに書き込みを行うと、他のキャッシュに通知しな
くても、状態が修正された状態に変化する。そのため、
メモリ・バスの活動は発生しない。以下に説明するよう
に、(PE)状態にあるラインには、MLSTで(M
O)のマークがつけられることに留意されたい。 o 共有(PS)−この状態は、他のキャッシュと潜在
的に共有しているデータのライン(同じラインが、一つ
またはそれ以上のキャッシュに存在する。)を示す。共
有データは、複数のプロセッサの間で共有することがで
き、複数のキャッシュに記憶することができる。ローカ
ル・プロセッサは、主メモリにアクセスしないで、共有
ラインを読むことができる。プロセッサが、局部的に共
有とマークされているラインに書き込みを行った場合に
は、そのプロセッサは、システムにも、その書き込みを
放送しなければならない。
ュで使用することができないデータのラインを示す。特
定のキャッシュの無効データは、診断または類似の用途
以外には、将来の処理用に使用することはできない。こ
のラインを読出すと、「ミス」(使用不能)となる。こ
のラインに書き込みを行うと、メモリ・バスへのライト
・スルー・サイクルとなる。すべてのキャッシュ・ライ
ンは、システムが初期化された時、(PI)状態にな
る。
がメモリのラインを占有すると、修正であろうと、排他
であろうと、主メモリのメモリの占有ラインへ書き込み
を行った場合には、その書き込みが何であろうとも、プ
ロセッサのデータ・キャッシュ・メモリに含まれている
同じデータは直ちに更新される。
態、すなわち、「キャッシュに記憶されていない(MN
C)」、共有(MS)および占有(MO)の一つの状態
になっているメモリ・ラインをマークする。文字Mは、
文字Pで識別されるPLST状態から、これらの状態を
区別するためのものである。さらに、バスまたはプロセ
ッサをベースとする共有または占有を示すバスおよび/
またはプロセッサ状態ビットも使用される。
C):この状態は、キャッシュがそのラインのコピーを
持っていないことを示す。システムが初期化された時に
は、すべてのメモリ・ラインを(MNC)状態にリセッ
トしなければならない。
またはそれ以上のキャッシュが、潜在的にそのラインの
コピーを持っていることを示す。
そして唯一のキャッシュが、潜在的にそのラインのコピ
ーを持っていて、メモリのデータが潜在的にそれと一致
していないことをしめす。(メモリ・データは、失効し
たと呼ばれる。) 共有および占有状態の定義に使用された「潜在的」とい
う用語に留意されたい。MLSTが、特定のメモリ・ラ
インについての最新の情報を持っていない状況がいくつ
かある。例えば、MLSTは、一本のラインを、二つの
特定のプロセッサにより共有されているとマークする場
合がある。何故なら、MLSTが二つの特定プロセッサ
がそのラインを読んだと見なしたからである。しかし、
両方のプロセッサが、(「無言の置換」と呼ばれる)M
LSTに通知しないで、新しいデータのために空きを作
るために、そのラインをずっと前から放棄している場合
がある。MLSTは、当然、あるマスタの力、MICが
そのラインにアクセスする度に、特定のラインの最新の
状態に「追いつこう(catch up)」とする。こ
の例の場合、第三のプロセッサがこのラインに書き込み
を行うと、他のキャッシュに記憶されていコピーを無効
にするために、(現在不必要な)MICを初期化し、M
LSTを更新する。しかし、MLSTは、何時でも、キ
ャッシュ・ラインの状態を前の状態に保持しようとする
ことに留意されたい。すなわち、プロセッサが占有また
は共有しているラインは、何時でも、MLSTに正確に
マークされている。MLSTの「失効した」情報は、も
はやどのプロセッサのデータ・キャッシュにも存在しな
い占有または共有とマークされたラインの形をとる。
シュ・メモリの内容を同じに維持するために、上記シス
テムで使用される三つの異なるMIC動作がある。
ートすると、アドレスされたラインを持つすべてのデー
タ・キャッシュは無効状態(PI)になる。このサイク
ルは、通常、MLSTの共有とマークされた(MS)ラ
インにアクセスする、ある種のメモリ動作に応えて発生
する。他のMIC動作とは異なり、MBIは、ローカル
・キャッシュのアドレスされたラインの現在の状態に関
して、PLSTからのフィ−ドバックを要求しない。そ
れどころか、MBIは、単に、そのラインがキャッシュ
に存在する場合には、その無効化を要求する。MBI
は、論理的フィ−ドバックは要求しないが、そのサイク
ルを終了するために、目標プロセッサから積極的な承認
を要求する。MBIは、単に、プロセッサが無効なアド
レスを受け入れ、他のアドレスを受け入れることができ
ることを表示する。
ルがスタートすると、アドレスされたラインの潜在的に
修正されたコピーを持つキャッシュは、システム・メモ
リに送られ、無効状態(PI)になる。このサイクル
は、MLSTで占有とマークされた(MO)メモリ・ラ
インにアクセスする、ある種のメモリ動作に応えて発生
する。占有キャッシュが修正(PM)状態のラインを持
っている場合には、そのキャッシュは、データを供給
し、無効になる。占有キャッシュが排他(PE)状態の
ラインを持っている場合には、そのキャッシュは、MB
COIに通知し、無効になるが、データの供給は行わな
い。占有キャッシュがもはやラインを持っていない場合
には、このキャッシュは、単に、サイクルが終了したこ
とをMBCOI通知するだけである。
ルは、アドレスされたラインの潜在的に修正されたコピ
ーを持つキャッシュをシステム・メモリに送り、共有状
態(PS)になる。このサイクルは、MLSTの占有と
マークされた(MO)、メモリ・ラインにアクセスす
る、ある種のメモリ動作に応えて発生する。占有キャッ
シュが修正された状態(PM)のラインを持っている場
合には、そのキャッシュはデータを供給し、共有にな
る。占有キャッシュが排他状態(PE)のラインを持っ
ている場合には、そのキャッシュはMBCOSに通知し
て、共有状態になるが、データの供給は行わない。占有
キャッシュが、もはやラインを持っていない場合には、
このキャッシュは、サイクルが終了したことをMBCO
I通知する。最後の場合には、ラインがキャッシュに記
憶されていなくても、MLSTは共有状態(MS)にな
る。何故なら、MLSTは、無効状態(PI)のライン
と、占有者のキャッシュの排他状態(PE)のラインと
を区別することができないからである。
またはプロセッサを基準とする共有または占有を示す、
追加のバスおよび/またはプロセッサ状態ビットを含
む。
ンの現在の状態を表示するために、一つのライン語との
三つのメモリ状態ビットを使用する。一つのビットは共
有または占有を示し、他の二つのビットはどのバス(A
またはB)またはバス(AおよびB)が、共有または占
有ラインを持っているのかを示す。バスの占有権は、そ
のバス上のプロセッサの中の一つが、そのラインを占有
していることを示す。六つの状態、すなわち、「キャッ
シュに記憶されていない」、「共有バスA」、「共有バ
スB」、「両者共有」、「占有バスA」および「占有バ
スB」が可能である。一本のラインを占有できるのは一
台のプロセッサだけ、すなわち、一本のバスだけである
ことに留意されたい。共有ラインは、各バス上の一台ま
たはそれ以上のプロセッサにより共有することができ
る。
の現在の状態を表示するための一本のラインに対して、
n+1個のビット(nはプロセッサの数に等しい)から
なるMLSTを持つ。一つのビットは、そのラインが共
有(MS)または占有(MO)かを示し、他のn個のビ
ットは、どの一台のプロセッサまたは複数のプロセッサ
が、キャッシュに記憶されているラインを持っているか
を示す。特定のプロセッサにはPiの番号がつけられる
が、この場合iは0からn−1の数字である。iが偶数
であるすべてのPiはバスA上に存在し、iが奇数であ
るすべてのPiはバスB上に存在する。プロセッサの占
有権は、どのプロセッサ(一台だけ)がそのラインを占
有しているかを示す。共有ラインは、どちらか一方また
は両方のバスにより共有することができる。
テム・メモリ105Aおよび105Bに関連する状態情
報を含むMLSTは、それぞれ状態キャッシュ・メモリ
203Aおよび203Bに維持されている。状態キャッ
シュ・メモリは、どのような場合でも、一度にすべての
システム・メモリが使用(キャッシュに記憶される)こ
とは滅多にないことを考慮して、システム・メモリに含
まれているメモリ・ラインの一部だけに対する状態情報
を記憶することができるだけの容量を持っている。例示
としての状態キャッシュ・メモリ203Aの構造および
動作を、図2および図3に示す。
大きさを持つ、33兆5544億3200万(225)の
メモリ・ブロック、すなわち、ラインに分割された1ギ
ガバイト(229)の容量を持つシステム・メモリ105
Aである。メモリ105Aに記憶されているデータに
は、29ビットのアドレス201によりアクセスする。
「X」ビットと呼ばれる、このアドレスの25の最上位
のビットは、メモリ・ブロック番号、すなわち、ライン
番号を示す。「W」ビットと呼ばれる、次の四つのアド
レス・ビットは、メモリ・ブロックの語を示し、最下位
のアドレス・ビット「B」は、語の中のバイトを示す。
モリ203Aは、「キャッシュ・タグRAM」205
A、および「キャッシュ・データRAM」207Aと呼
ばれる二つのセクションを含む。状態キャッシュ・メモ
リ203Aの各ライン入力は、キャッシュ・データRA
Mにセーブされた状態情報、およびキャッシュ・タグR
AMに記憶された四つのビット・タグを含む。
の数のメモリ・アドレス・ビットのサブセットにより索
引される。アドレス・ビットまたはタグ・ビットの残り
は、記憶装置の各入力に対する内容の一部である。索引
ビットは、状態キャッシュの入力の数を指定し、タグ・
ビットは状態キャッシュの同じ入力を取り合うことがで
きるメモリ・ラインの数を決定する。索引ビットにタグ
・ビットを加えたものは、サポートすることができるメ
モリ・ラインの全数を指定する。本質的には、状態記憶
装置の低減は、タグ・ビットの数により決まる。例え
ば、タグ・ビットの数が4である場合には、このコンセ
プトに対する状態記憶装置の要件は、従来のアーキテク
チャの1/16である。
よび動作に関するもっと詳細な情報である。状態キャッ
シュの入力には、主メモリ105Aにアクセスした時に
使用したのと同じアドレス201によりアクセスでき
る。このアドレスの四つの最上位のビットは、タグ・ビ
ットと呼ばれ、次の21のアドレス・ビットは、索引ビ
ットと呼ばれる。これら25のアドレス・ビットは、図
4のXビットと同じビットであり、主メモリ105Aの
メモリ・ブロックを識別するのに使用される。
レスの索引フィールドは、チェックするキャッシュの特
定の入力またはラインを指定するのに使用される。次
に、上記アドレスのタグ・ビットは、選択したキャッシ
ュ・ラインのタグと比較される。一致する場合には、キ
ャッシュ的中が起こり、選択したキャッシュ・ラインに
関連する状態ビットが検索される。
する際には、タグおよび状態情報記憶装置に対する特定
の入力、またはキャッシュ・ラインを識別するために、
アドレスの索引フィールドが使用される。最初の四つの
アドレス・ビットは、キャッシュ・タグRAMにセーブ
され、そのアドレスに関連する状態情報は、キャッシュ
・データRAMにセーブされる。オプションとして、エ
ラー検出および/または修正シンドローム・ビット、ま
たはパリテイ・ビットを、状態キャッシュ・メモリに内
蔵させることができる。
キャッシュである。しかし、状態キャッシュは、データ
・キャッシュに従って、結合型、セクタ型、または直接
マップ型にすることができることに留意されたい。
る。システム・メモリの読み出しまたは書き込み動作が
要求されると、プロトコルに従って、必要な整合サイク
ルを決定するために、状態キャッシュがアクセスされ
る。状態キャッシュのタグ情報が、メモリ・アドレスの
対応するビットと一致する場合には、対応する整合サイ
クルが実行され、状態が更新される。タグが一致しない
場合には、デフォールト状態に対する整合動作が実行さ
れ(恐らく、実行されることはないが)、新しいライン
・アドレスおよび状態が、状態キャッシュに割り当てら
れる。恐らく、現存する入力は新しいラインにより置き
換えられることになる。整合動作は、置き換えられたラ
イン状態を、デフォールト状態にするために必要になる
場合がある。これらの置換整合動作は、状態記憶装置の
容量を少なくするためのパーフォーマンス費用である
が、すでに説明したように、妥当な状態キャッシュ容量
および通常の作業量の場合には、無視することができ
る。状態キャッシュは、結合型、セクタ型、またはデー
タ・キャッシュの場合と同じように直接マップ型にする
ことができることに留意されたい。
モリの使用によるメモリ・スペースの節約を説明する。
上記の、1ギガバイトのメモリと、メモリの一つのライ
ンに対して必要な、4ビットの整合状態フィールドを持
つシステムについて考えてみよう。メモリの基本的な整
合ブロック、すなわち、ラインは32バイトである。す
べてのメモリに対する4ビット状態を記憶するために
は、16MBの状態メモリ(一つのラインにつき、32
00万のライン × 4ビット)が必要になる。状態メモ
リの各入力が、4ビットのタグを含んでいる場合には、
状態メモリは一本のライン当たり8ビットの情報を含ん
でいて、これは従来の量の二倍である。しかし、4ビッ
ト・タグのおかげで、ラインの数は1/16ですむ。そ
れ故、必要な全状態メモリは2MBで、これは従来の容
量の1/8である。折り合いは、比較的少ない状態キャ
ッシュ入力の可能な置き換えにより行われる。この例の
場合には、状態キャッシュは、64MBデータ・キャッ
シュ(それぞれが32バイトのラインを表す200万の
入力)に等しい。
シュを使用する際の不利な点は、キャッシュに記憶され
ている、状態入力の置き換えにより生じる追加の整合動
作が、通常の転送と干渉することである。本発明は、デ
ィレクトリをベースとするメモリ状態キャッシュの置き
換えにより生じる整合動作の数を減らすための方法を提
供する。
に、状態キャッシュに記憶されていないアドレスに関す
る情報が必要な場合に、新しいアドレスの割当ができる
ようにするために、前の記憶している状態キャッシュ入
力を置き換えなければならない。アート・プロトコルの
現在の状態は、メモリ・ライン(基本的な整合素子)の
システム状態を、キャッシュに記憶されていない(共有
または占有)状態に復帰させる。この動作は、プロセッ
サ・データ・キャッシュに対する無効化動作および放棄
動作を含む。
スとするキャッシュ整合システム、および多くの類似の
システムにおいては、大部分の状態キャッシュ・ライン
は、ウオームアップ期間を過ぎると、共有としてマーク
されることを認識しておく必要がある。そのため、共有
のデフォールト・メモリ状態を指定することにより、置
き換えの結果生じる整合動作の数を低減することができ
る。それ故、キャッシュ状態入力の置き換えの結果生じ
る動作を処理するために使用する置換アルゴリズムは、
共有状態を単に確実に生じさせるためのものでなければ
ならない。キャッシュの大部分のラインは、共有状態に
あるので、このことは無効を意味しない。また、データ
・キャッシュは、共有状態でメモリ情報を継続して保持
している。置換したラインが占有状態である場合には、
放棄動作が発生するが、そのラインはデータ・キャッシ
ュで、共有状態に遷移することができる。
(書き込みミスにより生じた)占有状態にある、状態キ
ャッシュ・メモリに割り当てられた場合、すべてのデー
タ・キャッシュのそのラインのすべての可能な共有者
に、無効が必要になる。しかし、書き込みミスおよび読
取りミスは、割当を生じさせ、割当は置換を生じさせ
る。ミスの数の半分以下が書き込みサイクルである場合
には、書き込みサイクルにより生じた無効より、セーブ
された置換無効のほうが多い。何故なら、読取りサイク
ルが、キャッシュの共有入力を割り当てるからである。
ゲントに対して、メモリ・ライン(整合素子)当たり、
3ビットの状態情報を持つディレクトリをベースとする
メモリ・システムを考えてみよう。通常使用される八つ
の可能な状態の中の六つは、キャッシュに記憶されてい
ない、共有エージェントA、共有エージェンントB、両
者共有、占有エージェントA、および占有エージェント
Bである。図4は、従来のアルゴリズムに対する置換さ
れたライン動作、および「両者共有」または「共有だ
け」デフォールト状態を持つ本発明の方法を示す表であ
る。一方のエージェントがメモリに対してより高速でよ
り高い優先権アクセスを持っている場合には、共有エー
ジェントAまたは共有エージェントBデフォールトはメ
リットがあることに留意されたい。それ故、無効は、状
態キャッシュに対する割当に対してはより迅速である。
合には、入力が占有者状態である場合に限って、置換動
作が必要になり、エージェントは、局部的にラインを共
有状態に維持することができる。「共有A」デフォール
ト状態プロトコルの場合には、ラインが「エージェント
Aによって共有」または「両者によって共有」の場合
に、無効が必要になる。しかし、このケースに対する状
態キャッシュへの割当の間、余計な無効は少なくてす
む。図5の表は、キャッシュに記憶していないデフォー
ルト状態を持つ、3ビットのディレクトリをベースとす
るメモリに対する整合状態表である。図6および図7の
表は、「両者共有」および「共有エージェントA」デフ
ォールト状態に対する整合状態である。ある種の追加無
効を起こす状態は、太字で示してある。「両者共有」デ
フォールトの場合には、書き込みミスにより対向するエ
ージェントを無効にし、DMA書き込みを行うと両方の
エージェントを無効にする。「共有A」デフォールトの
場合には、エージェントAが書き込みミスを起こすと、
局部的な整合サイクルを起こし、DMA書き込みはエー
ジェントAだけを無効にするだけである。それ故、この
ケースの場合には、より少ない無効しか生じない。
(注:I/Oインターフェースが、どちらかのエージェ
ントだけのものである場合には、そのエージェント、す
なわち、ローカル監視プロトコルに対して無効は局部的
に処理され、この場合、メモリは対向するエージェント
を無効にする。) それ故、本発明は、集中/分散型のディレクトリをベー
スとするキャッシュ整合および状態キャッシュ・メモリ
を使用するコンピュータ・システムでのメモリ使用を改
善するための新しい有用な方法を提供する。上記方法
は、状態キャッシュ・メモリでの置換により生じる整合
(無効)動作の数を減少する。
ロセッサ超大容量(SHV)対称多重処理(SMP)コ
ンピュータ・システムの簡単なブロック図である。
05Aとキャッシュ・メモリのブロック図である。
に詳細に示す、図2の状態キャッシュ・メモリ203の
ブロック図である。
ライン状態に対する、置換メモリ・ライン整合動作の低
減を示す表である。
いない」デフォールト状態を含む、3ビットのディレク
トリをベースとするメモリに対する整合状態表である。
デフォールト状態を含む、3ビットのディレクトリをベ
ースとするメモリに対する整合状態表である。
ェントA」デフォールト状態を含む、3ビットのディレ
クトリをベースとするメモリに対する整合状態表であ
る。
Claims (1)
- 【請求項1】 状態キャッシュ・メモリ(303CA、
303B)と、共有システム・メモリ(105A、10
5B)と、複数のデータ・キャッシュ・メモリ(121
A、121B)と、上記システム・メモリと上記複数の
データ・キャッシュ・メモリとを相互に接続するバスの
システム(103A、103B)とを含み、上記共有シ
ステム・メモリ(105A、105B)および上記複数
のデータ・キャッシュ・メモリ(121A、121B)
のメモリのライン間で一貫性を維持するために、集中/
分散式のディレクトリをベースとするキャッシュ整合ス
キームを使用する、マルチプロセッサ・コンピュータ・
システムの状態キャッシュ・メモリ(303A、303
B)の入力を置き換える方法であって、 状態キャッシュ・メモリ(303A、303B)に表示
されるメモリのラインに対して、「共有」のデフォール
ト・メモリ状態を確立するステップと、 置き換えを行う前に、共有メモリ(105A、105
B)および少なくとも一つのデータ・キャッシュ・メモ
リ(121A、121B)に記憶されている、メモリの
ラインに関連する状態キャッシュ入力に対する、システ
ム・メモリ・ライン状態を読み取るステップと、 上記共有メモリ(105A、105B)のメモリ・ライ
ンを更新するために放出動作を行い、システム・メモリ
・ライン状態が「占有状態」である場合には、「共有」
のデータ・キャッシュ・メモリ・ライン状態を、上記メ
モリのラインを含む各データ・キャッシュ・メモリのメ
モリの上記ラインに割り当てるステップとを含むキャッ
シュ整合メモリ・システムの整合サイクルの回数を低減
する方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/763,703 | 1996-12-09 | ||
US08/763,703 US5809536A (en) | 1996-12-09 | 1996-12-09 | Method for reducing the number of coherency cycles within a directory-based cache coherency memory system uitilizing a memory state cache |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10260898A true JPH10260898A (ja) | 1998-09-29 |
JP3974983B2 JP3974983B2 (ja) | 2007-09-12 |
Family
ID=25068574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP32604997A Expired - Fee Related JP3974983B2 (ja) | 1996-12-09 | 1997-11-27 | マルチプロセッサ・コンピュータ・システムにおけるデータ整合方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5809536A (ja) |
EP (1) | EP0847011B1 (ja) |
JP (1) | JP3974983B2 (ja) |
DE (1) | DE69736544T2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002163149A (ja) * | 2000-10-31 | 2002-06-07 | Hewlett Packard Co <Hp> | マルチプロセッサシステムのキャッシュコヒーレンスプロトコル |
JP2008027435A (ja) * | 2006-06-29 | 2008-02-07 | Intel Corp | 排他的所有権のスヌープフィルタ |
WO2010100679A1 (ja) * | 2009-03-06 | 2010-09-10 | 富士通株式会社 | コンピュータシステム、制御方法、記録媒体及び制御プログラム |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5835941A (en) * | 1995-11-17 | 1998-11-10 | Micron Technology Inc. | Internally cached static random access memory architecture |
US5940864A (en) * | 1997-04-14 | 1999-08-17 | International Business Machines Corporation | Shared memory-access priorization method for multiprocessors using caches and snoop responses |
US6055373A (en) * | 1997-04-28 | 2000-04-25 | Ncr Corporation | Computer system including a digital signal processor and conventional central processing unit having equal and uniform access to computer system resources |
US6378047B1 (en) * | 1997-07-07 | 2002-04-23 | Micron Technology, Inc. | System and method for invalidating set-associative cache memory with simultaneous set validity determination |
US6055610A (en) * | 1997-08-25 | 2000-04-25 | Hewlett-Packard Company | Distributed memory multiprocessor computer system with directory based cache coherency with ambiguous mapping of cached data to main-memory locations |
US6052760A (en) * | 1997-11-05 | 2000-04-18 | Unisys Corporation | Computer system including plural caches and utilizing access history or patterns to determine data ownership for efficient handling of software locks |
US6032228A (en) * | 1997-11-26 | 2000-02-29 | International Business Machines Corporation | Flexible cache-coherency mechanism |
US6587931B1 (en) * | 1997-12-31 | 2003-07-01 | Unisys Corporation | Directory-based cache coherency system supporting multiple instruction processor and input/output caches |
US6343359B1 (en) * | 1999-05-18 | 2002-01-29 | Ip-First, L.L.C. | Result forwarding cache |
US6519685B1 (en) * | 1999-12-22 | 2003-02-11 | Intel Corporation | Cache states for multiprocessor cache coherency protocols |
US6405292B1 (en) * | 2000-01-04 | 2002-06-11 | International Business Machines Corp. | Split pending buffer with concurrent access of requests and responses to fully associative and indexed components |
US7124252B1 (en) * | 2000-08-21 | 2006-10-17 | Intel Corporation | Method and apparatus for pipelining ordered input/output transactions to coherent memory in a distributed memory, cache coherent, multi-processor system |
US20040260887A1 (en) * | 2003-04-11 | 2004-12-23 | Sun Microsystems, Inc. | Multi-node computer system implementing speculative proxy transactions |
US7127562B2 (en) * | 2003-06-11 | 2006-10-24 | International Business Machines Corporation | Ensuring orderly forward progress in granting snoop castout requests |
US7200718B2 (en) | 2004-04-26 | 2007-04-03 | Broadband Royalty Corporation | Cache memory for a scalable information distribution system |
JP4370327B2 (ja) * | 2005-03-14 | 2009-11-25 | パナソニック株式会社 | バスコントローラ |
US7827425B2 (en) * | 2006-06-29 | 2010-11-02 | Intel Corporation | Method and apparatus to dynamically adjust resource power usage in a distributed system |
US7644293B2 (en) * | 2006-06-29 | 2010-01-05 | Intel Corporation | Method and apparatus for dynamically controlling power management in a distributed system |
US20080065837A1 (en) * | 2006-09-07 | 2008-03-13 | Sodick Co., Ltd. | Computerized numerical control system with human interface using low cost shared memory |
US8151059B2 (en) * | 2006-11-29 | 2012-04-03 | Intel Corporation | Conflict detection and resolution in a multi core-cache domain for a chip multi-processor employing scalability agent architecture |
US8028131B2 (en) * | 2006-11-29 | 2011-09-27 | Intel Corporation | System and method for aggregating core-cache clusters in order to produce multi-core processors |
US8994533B2 (en) * | 2006-11-30 | 2015-03-31 | Patent Navigation, Inc. | Conditional RFID |
US8782323B2 (en) * | 2009-10-30 | 2014-07-15 | International Business Machines Corporation | Data storage management using a distributed cache scheme |
US9477600B2 (en) | 2011-08-08 | 2016-10-25 | Arm Limited | Apparatus and method for shared cache control including cache lines selectively operable in inclusive or non-inclusive mode |
US11687459B2 (en) * | 2021-04-14 | 2023-06-27 | Hewlett Packard Enterprise Development Lp | Application of a default shared state cache coherency protocol |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4394731A (en) * | 1980-11-10 | 1983-07-19 | International Business Machines Corporation | Cache storage line shareability control for a multiprocessor system |
US4410944A (en) * | 1981-03-24 | 1983-10-18 | Burroughs Corporation | Apparatus and method for maintaining cache memory integrity in a shared memory environment |
US4775955A (en) * | 1985-10-30 | 1988-10-04 | International Business Machines Corporation | Cache coherence mechanism based on locking |
US5097409A (en) * | 1988-06-30 | 1992-03-17 | Wang Laboratories, Inc. | Multi-processor system with cache memories |
US5317716A (en) * | 1988-08-16 | 1994-05-31 | International Business Machines Corporation | Multiple caches using state information indicating if cache line was previously modified and type of access rights granted to assign access rights to cache line |
US4928225A (en) * | 1988-08-25 | 1990-05-22 | Edgcore Technology, Inc. | Coherent cache structures and methods |
JPH0680499B2 (ja) * | 1989-01-13 | 1994-10-12 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチプロセッサ・システムのキャッシュ制御システムおよび方法 |
JP2825906B2 (ja) * | 1990-02-01 | 1998-11-18 | 株式会社日立製作所 | 計算機システム |
US5291442A (en) * | 1990-10-31 | 1994-03-01 | International Business Machines Corporation | Method and apparatus for dynamic cache line sectoring in multiprocessor systems |
US5191649A (en) * | 1990-12-21 | 1993-03-02 | Intel Corporation | Multiprocessor computer system with data bus and ordered and out-of-order split data transactions |
US5313609A (en) * | 1991-05-23 | 1994-05-17 | International Business Machines Corporation | Optimum write-back strategy for directory-based cache coherence protocols |
JPH06103477B2 (ja) * | 1991-12-05 | 1994-12-14 | 工業技術院長 | 並列キャッシュメモリ |
US5524212A (en) * | 1992-04-27 | 1996-06-04 | University Of Washington | Multiprocessor system with write generate method for updating cache |
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 |
US5450563A (en) * | 1992-10-30 | 1995-09-12 | International Business Machines Corporation | Storage protection keys in two level cache system |
JPH06208507A (ja) * | 1993-01-11 | 1994-07-26 | Casio Comput Co Ltd | キャッシュメモリシステム |
JPH06274416A (ja) * | 1993-03-23 | 1994-09-30 | Matsushita Electric Ind Co Ltd | キャッシュメモリ装置 |
US5522057A (en) * | 1993-10-25 | 1996-05-28 | Intel Corporation | Hybrid write back/write through cache having a streamlined four state cache coherency protocol for uniprocessor computer systems |
JP3410535B2 (ja) * | 1994-01-20 | 2003-05-26 | 株式会社日立製作所 | 並列計算機 |
DE69519816T2 (de) * | 1994-05-03 | 2001-09-20 | Hewlett Packard Co | Anordnung mit Duplikat des Cache-Etikettenspeichers |
-
1996
- 1996-12-09 US US08/763,703 patent/US5809536A/en not_active Expired - Lifetime
-
1997
- 1997-10-13 EP EP97308075A patent/EP0847011B1/en not_active Expired - Lifetime
- 1997-10-13 DE DE69736544T patent/DE69736544T2/de not_active Expired - Lifetime
- 1997-11-27 JP JP32604997A patent/JP3974983B2/ja not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002163149A (ja) * | 2000-10-31 | 2002-06-07 | Hewlett Packard Co <Hp> | マルチプロセッサシステムのキャッシュコヒーレンスプロトコル |
JP2008027435A (ja) * | 2006-06-29 | 2008-02-07 | Intel Corp | 排他的所有権のスヌープフィルタ |
WO2010100679A1 (ja) * | 2009-03-06 | 2010-09-10 | 富士通株式会社 | コンピュータシステム、制御方法、記録媒体及び制御プログラム |
US8700863B2 (en) | 2009-03-06 | 2014-04-15 | Fujitsu Limited | Computer system having a cache memory and control method of the same |
Also Published As
Publication number | Publication date |
---|---|
EP0847011A2 (en) | 1998-06-10 |
US5809536A (en) | 1998-09-15 |
EP0847011B1 (en) | 2006-08-23 |
DE69736544D1 (de) | 2006-10-05 |
EP0847011A3 (en) | 1999-12-29 |
DE69736544T2 (de) | 2007-08-23 |
JP3974983B2 (ja) | 2007-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3974983B2 (ja) | マルチプロセッサ・コンピュータ・システムにおけるデータ整合方法 | |
US5848434A (en) | Method and apparatus for caching state information within a directory-based coherency memory system | |
US6901495B2 (en) | Cache memory system allowing concurrent reads and writes to cache lines to increase snoop bandwith | |
US7669018B2 (en) | Method and apparatus for filtering memory write snoop activity in a distributed shared memory computer | |
KR100491435B1 (ko) | 다수의 시스템 버스를 가지는 컴퓨터 시스템 내의 메모리 일관성을 유지하기 위한 시스템 및 방법 | |
US6345342B1 (en) | Cache coherency protocol employing a read operation including a programmable flag to indicate deallocation of an intervened cache line | |
US5671391A (en) | Coherent copyback protocol for multi-level cache memory systems | |
US6959364B2 (en) | Partially inclusive snoop filter | |
US7373457B2 (en) | Cache coherence protocol for a multiple bus multiprocessor system | |
US7774551B2 (en) | Hierarchical cache coherence directory structure | |
US20010013089A1 (en) | Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol | |
US6321306B1 (en) | High performance multiprocessor system with modified-unsolicited cache state | |
US6078997A (en) | Directory-based coherency system for maintaining coherency in a dual-ported memory system | |
JP2006277762A (ja) | 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ | |
US7117312B1 (en) | Mechanism and method employing a plurality of hash functions for cache snoop filtering | |
EP0817065B1 (en) | Methods and apparatus for a coherence transformer for connecting computer system coherence domains | |
US7325102B1 (en) | Mechanism and method for cache snoop filtering | |
EP0817064B1 (en) | Methods and apparatus for a directory less memory access protocol in a distributed shared memory computer system | |
US6651157B1 (en) | Multi-processor system and method of accessing data therein | |
US6148375A (en) | Hierarchical bus simple COMA architecture for shared memory multiprocessors having a bus directly interconnecting caches between nodes | |
US5860120A (en) | Directory-based coherency system using two bits to maintain coherency on a dual ported memory system | |
US20040030833A1 (en) | Cache invalidation bus for a highly scalable shared cache memory hierarchy | |
KR19990026501A (ko) | 분산 공유 메모리의 캐시 일관성 제어방법 및 장치 | |
US6345343B1 (en) | Multiprocessor system bus protocol with command and snoop responses for modified-unsolicited cache state |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040831 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060726 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060809 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20061108 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20061113 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070209 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070226 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070511 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070522 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070618 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100622 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |