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
Application number
JP9326049A
Other languages
English (en)
Other versions
JP3974983B2 (ja
Inventor
Gene F Young
エフ.ヤング ジーン
Roy M Stevens
エム.スティーブンス ロイ
Larry C James
シー.ジェイムズ ラリー
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.)
NCR International Inc
Original Assignee
NCR International Inc
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 NCR International Inc filed Critical NCR International Inc
Publication of JPH10260898A publication Critical patent/JPH10260898A/ja
Application granted granted Critical
Publication of JP3974983B2 publication Critical patent/JP3974983B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/082Associative directories

Abstract

(57)【要約】 (修正有) 【課題】 ディレクトリをベースとするキャッシュ整合
を使用する、マルチプロセッサ・コンピュータ・システ
ムでのメモリの使用を改善する。 【解決手段】 コンピュータ・システムは、状態キャッ
シュ・メモリの他に、共有システム・メモリ;複数のデ
ータ・キャッシュ・メモリ;共有システム・メモリを含
み、共有システム・メモリ及び複数のデータ・キャッシ
ュ・メモリのメモリのライン間で一貫性を維持するた
め、集中/分散式のディレクトリをベースとするキャッ
シュ整合スキームを使用する。置き換え前に、メモリ・
ラインに関連する状態キャッシュ入力に対する、システ
ム・メモリ・ライン状態が読み出される。放出動作は、
上記共有メモリのメモリのラインを更新し、システム・
メモリ・ライン状態が「占有状態」である場合には、デ
フォールトの「共有」のデータ・キャッシュ・メモリ・
ライン状態を、各データ・キャッシュ・メモリの上記ラ
インに割り当てる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数のデータ・キ
ャッシュ・メモリおよび共有メモリを含むマルチプロセ
ッサ・コンピュータ・システム、特にキャッシュとの整
合を維持するために、ディレクトリをベースとするプロ
トコルを使用するマルチプロセッサ・コンピュータ・シ
ステムに関する。
【0002】
【従来の技術、及び、発明が解決しようとする課題】こ
こ数年間の間に、コンピュータ・システムの性能、速
度、集積度および容量はほぼ指数的に進歩している。こ
のような進歩は、コンピュータ・システムのコストの低
下とあいまって、コンピュータ・システムの利用のさら
なる拡大をもたらし、より進歩したリソースが豊富なコ
ンピュータのアプリケーションが開発された。最近の歴
史的傾向により、アプリケーションのメモリに対する要
件は、毎年二倍に増大している。コンピュータ・システ
ムおよび部材のコストは、ここ数年確実に下がってきて
いるが、システムの主メモリで使用される高速RAMメ
モリおよびキャッシュ・メモリのコストは、ほとんどの
コンピュータ・システムにおいて最も高い状態のまま安
くならない。
【0003】主に、データ、アプリケーション・ソフト
ウェアおよびオペレーティング・システム・ソフトウェ
アの一時的な記憶装置として使用されるシステム・メモ
リおよびキャッシュ・メモリは、またパリテイ・ビッ
ト、キャッシュ整合状態情報およびエラー検出および/
または修正シンドローム・ビットを記憶するために、よ
り進歩したマルチプロセッサ・システムでも使用されて
いる。マルチプロセッサ・システムの追加メモリ要件、
および高度のオペレーティング・システムおよびアプリ
ケーションに対するより高度のメモリ要求により、高速
RAMに対する要求およびコストが増大している。
【0004】高速システムおよびキャッシュ・メモリを
使用し、システムおよびキャッシュ・メモリ要件を低減
するための、もっと効率的な方法が待望されている。
【0005】それ故、本発明の一つの目的は、ディレク
トリをベースとするキャッシュ整合を使用する、コンピ
ュータ・システムでのメモリの使用を改善する新しく、
有益な方法を提供することである。
【0006】
【課題を解決するための手段】本発明は、状態キャッシ
ュ・メモリ、共有システム・メモリ、複数のデータ・キ
ャッシュ・メモリ、上記システム・メモリと上記複数の
データ・キャッシュ・メモリとを相互に接続するバスの
システムとを含む、マルチプロセッサ・コンピュータ・
システムの状態キャッシュ・メモリの入力を置き換える
方法である。上記コンピュータ・システムは、上記共有
システム・メモリおよび上記複数のデータ・キャッシュ
・メモリのメモリのライン間で一貫性を維持するため
に、集中/分散式のディレクトリをベースとするキャッ
シュ整合スキームを使用している。本発明の方法は、状
態キャッシュ・メモリに表示されるメモリ・ラインに対
して、「共有」のデフォールト・メモリ状態を確立する
ステップと;置き換えを行う前に、共有メモリおよび少
なくとも一つのデータ・キャッシュ・メモリに記憶され
ている、メモリ・ラインに関連する状態キャッシュ入力
に対する、システム・メモリ・ライン状態を読み取るス
テップと;上記共有メモリのメモリ・ラインを更新する
ために放出動作を行い、システム・メモリ・ライン状態
が「占有状態」である場合には、「共有」のデータ・キ
ャッシュ・メモリ・ライン状態を、メモリのラインを含
む各データ・キャッシュ・メモリの上記メモリ・ライン
に割り当てるステップとを含む。
【0007】メモリのラインの状態に関する情報は、状
態キャッシュ・メモリおよびデータ・キャッシュ・メモ
リに維持される。各データ・キャッシュ・メモリは、デ
ータ・キャッシュ・メモリにセーブされたメモリの各ラ
インと共に、データ・キャッシュ・メモリ・ライン状態
を含み、データ・キャッシュ・メモリ・ライン状態は、
MESI(修正−排他−共有−無効)状態、すなわち、
修正、排他、共有または無効の中の任意の一つである。
状態キャッシュ・メモリは、システム・メモリにセーブ
されているメモリの、予め定めた数のラインに対する、
システム・メモリ・ライン状態を含む。システム・メモ
リ・ライン状態は、下記の状態、すなわち、共有バス
A、共有バスB、両者共有、占有バスAおよび占有バス
Bの中の任意の一つである。
【0008】状態キャッシュ・ライン置換動作を行う方
法は、下記のステップを含む。すなわち、上記状態キャ
ッシュ・メモリに表示されるメモリのラインに対して、
デフォールト・システム・メモリ状態を「共有」状態に
するステップと;上記共有メモリ、および少なくとも一
つのデータ・キャッシュ・メモリに記憶されているメモ
リのラインに関連する、予め記憶した状態キャッシュ入
力の置き換えを行う前に、予め記憶した状態キャッシュ
入力に対するシステム・メモリ・ライン状態を読み取る
ステップと;上記共有メモリのメモリのラインを更新す
るために放出動作を行い、上記予め記憶した状態キャッ
シュ入力に対する上記システム・メモリ・ライン状態
が、「占有」(占有バスAまたは占有バスB)である場
合には、「共有」のデータ・キャッシュ・メモリ・ライ
ン状態を、メモリの上記ラインを含む各データ・キャッ
シュ・メモリのメモリの上記ラインに割り当てるステッ
プとを含む。
【0009】上記方法は、状態キャッシュ・メモリで置
き換えを行うことにより生じる整合動作の回数を低減す
る。メモリの大部分のラインは共有状態にあるので、デ
フォールト状態をキャッシュに記憶していない状態にセ
ットするのではなく、共有状態にセットすると、状態キ
ャッシュ・ライン置換中に行わなければならない無効な
整合動作の回数が減少る。
【0010】添付の図面を参照しながら以下に本発明を
説明するが、これは単に例示としてのものに過ぎない。
【0011】
【発明の実施の形態】NCR社は、自らが開発したシス
テム技術を使用する、高度マルチプロセッサ・アーキテ
クチャを開発し、一方、インテル・ペンティアム・プロ
・プロセッサ、PCI I/Oチップセット、ペンティ
アム・プロ・チップセット、ペンティアム・プロ・バス
・トポロジィ(P6)のような標準大容量(SHV)構
成部材および標準メモリ・モジュール(SIMMおよび
DIMM)を巧みに利用している。NCRシステム技術
と標準SHV構成部材とを注意深く融合することによ
り、NCRは世界的規模の拡張性と機能を供給すること
ができ、一方、全面的なカスタム開発に関連する不利益
を避け、SHVに資本を投入している。図1はこのアー
キテクチャの実施形態である。
【0012】<システムの概略>図1について説明する
と、この図は参照記号AおよびBで示す、二組の四つの
プロセッサからなる構築ブロック、すなわち、複合体で
形成されている8プロセッサSMPシステムである。各
複合体は、それぞれ複合体「A]および複合体「B」の
ように、AまたはBで終わる参照番号がついている、同
一の構造体および構成部品を含む。
【0013】複合体Aに設置されているシステムのこの
部分は、高帯域幅、分割処理プロセッサ・バス103A
に接続している、1−4のプロセッサ101Aを含む。
各プロセッサ301Aは、キャッシュ・メモリ321A
と関連している。システム・メモリ105Aは、高度二
重ポート付きメモリ・コントローラ107Aを通して、
バス103Aに接続している。プロセッサ・バス103
Aは、メモリ・コントローラ107A第一のポートに接
続している。第二のメモリ・コントローラ・ポートは、
本明細書では拡張バスと呼ぶ、高帯域幅 I/Oバス1
15に接続している。この拡張バスは、多重PCI I
/Oインターフェース109Aへの接続に使用されてい
る。これらの構成部材すべては、高度メモリ・コントロ
ーラ107Aを除いて、現在入手可能な市販の構成部材
である。例えば、プロセッサ101Aとしては、インテ
ル・ペンティアム・プロ・プロセッサを使用できるし、
バス103Aとしては、ペンティアム・プロ(P6)バ
ス・トポロジィを使用することができる。
【0014】高度メモリ・コントローラ(AMC)10
7Aは、プロセッサ・バス103AとI/Oバス115
との間のすべての方向の制御およびデータの流れを管理
する。上記I/Oバスは、後で説明するように、PCI
I/OブリッジへのP6、および他のプロセッサへ接
続するための、他のAMC ASICを含むことができ
る。AMC107Aは、また整合DRAMメモリ・アレ
イへのアクセスを制御する。このAMCは、制御および
データ・スライスASICペアからなる。
【0015】すでに説明したように、複合体Bは複合体
Aと同じ構造をしている。二つの複合体は、拡張バス1
15により相互に接続していて、プロセッサ101Aお
よび101B、システム・メモリ105Aおよび105
B、ならびに共有I/O装置、キャッシュ・メモリおよ
び他の構成部材との間で通信を行うことができる。
【0016】各複合体において、プロセッサは、プロセ
ッサ・バス上で、バス監視プロトコルを使用する。バス
監視プロトコルは、プロセッサとメモリとの間のデータ
の移動を絶えず追跡する方法である。少数の緊密に結合
したプロセッサを含むこのシステムは、優れた性能を持
つ。プロセッサが、同じバス上の他のプロセッサのデー
タ・キャッシュで使用することができるデータを必要と
する場合には、そのデータを両方のプロセッサで共有す
ることができる。そうでない場合には、そのデータは、
主メモリ105Aまたは105Bから検索しなければな
らないが、これはシステム・バス・トラフィックを必要
とする時間の掛かる動作である。この方法は、システム
・バスの取り合いを少なくすることにより、システムの
性能を向上させる。
【0017】図1のNCRアーキテクチャの特徴は下記
の通りである。
【0018】o 工業SHVアーキテクチャおよびサポ
ートする物資チップ(IOB等)への投資。
【0019】o 二重ポート付きメモリ・コントローラ
107Aおよび107Bによる、それぞれが、64ビッ
トの帯域幅で66MHzで動作し、533MB/sの持
続データ転送速度で動作する複数の二重バスの接続と利
用の実現。
【0020】o 二重バス方式による、バス・ローディ
ングの低減と、IOBトラフィックへのIOBから独立
して動作することができる、メモリ・パスへの私的プロ
セッサの設置による、拡張性の増進。
【0021】o 拡張バス115への追加プロセッサお
よびI/O装置への接続が可能。
【0022】上記システムは、コンピュータ工業のSH
Vの動きに焦点を合わせながら、高利用度取引処理(H
ATP)および拡張可能なデータ・ウェアハウス(SD
W)サーバのニーズを満足させることができる。
【0023】<メモリをベースとする整合>データ・キ
ャッシュ・メモリを使用するすべての装置、特に多重デ
ータ・キャッシュ・メモリおよび多重レベルのデータ・
キャッシュ・メモリを使用するシステムの場合には、特
定のメモリ位置からのデータは、主メモリおよび一つま
たはそれ以上のデータ・キャッシュ・メモリに同時に常
駐することができる。しかし、主メモリおよびデータ・
キャッシュ・メモリのデータは、何時でも同じではな
い。このようなことは、マイクロプロセッサが、主メモ
リおよび他のデータ・キャッシュ・メモリを更新しない
で、関連データ・キャッシュ・メモリに含まれているデ
ータを更新した場合、または他のバス・マスタが、マイ
クロプロセッサのデータ・キャッシュ・メモリのそのコ
ピーを更新しないで、主メモリのデータを変更した場合
に起こる。
【0024】プロセッサ、システム・メモリ・モジュー
ル105Aおよび105B、および種々のデータ・キャ
ッシュ・メモリ間を移動するデータを追跡するために、
システムは、メモリとキャッシュをベースにする整合の
ハイブリッドを使用する。システム・メモリとキャッシ
ュイング・エージェント、すなわち、第一および恐らく
第二のレベルのデータ・キャッシュを含む、システム・
バス・プロセッサとの間の整合は、集中/分散型のディ
レクトリをベースとするキャッシュの整合の組み合わせ
を通して維持される。
【0025】ディレクトリをベースとするキャッシュ整
合スキームは、プロセッサとメモリとの間のデータの動
きを絶えず追跡する方法である。データの整合に対する
この方法により、メモリ状態表は、どのプロセッサが、
その関連データ・キャッシュ・メモリに、メモリのどの
ラインを持っているのかを識別する。プロセッサがデー
タを要求した場合には、状態表は、主メモリまたはプロ
セッサ・データ・キャッシュの、そのデータの最も新し
いコピーが常駐している場所を識別する。この方法の利
点は、プロセッサが監視によりアクセスすることができ
ないデータ・キャッシュに常駐するデータを必要とする
まで、追加の作業をする必要がないということである。
ディレクトリをベースとするキャッシュの整合は、シス
テム・バス上で多数の緊密に結合しているプロセッサを
使用した場合に、最も効果がある。
【0026】図1のシステムで使用される、集中/分散
型のディレクトリをベースとする、キャッシュ整合スキ
ームは、二つのディレクトリ素子からなる。ディレクト
リ・スキームの中央素子は、それぞれシステム・メモリ
・モジュール105Aおよび105Bに関連する、状態
キャッシュ・メモリ203Aおよび203Bに常駐す
る。この素子は、メモリ・ライン状態表(MLST)と
呼ばれる。システム・メモリのそれぞれのアクティブな
(キャッシュ・メモリに記憶された)メモリ・ライン
は、MLSTに対応する入力を含む。この対応する入力
は、メモリ・ラインがキャッシュ・メモリに記憶されて
いるかどうかを示す情報を含み、もし記憶されている場
合には、一つのプロセッサ(またはバス)または共有ア
クロスマルチプロセッサ(またはバス)により、排他的
に占有されているかどうかを示す情報を含む。ディレク
トリ・スキームおよびMLSTは、システム・バスまた
はプロセッサによるメモリ・ラインの占有権を識別する
ように設定することができる。「ビット・パア・バス」
MLSTは、バスに基づいて占有権を識別し、一方、も
っと粗い「ビット・パア・プロセッサ」MLSTは、プ
ロセッサに基づいて占有権を識別する。この識別はメモ
リ設計の際に行うべきものなので、システム・バス上の
すべての他の装置には何の影響も与えない。
【0027】分散型のディレクトリ素子は、各プロセッ
サのデータ・キャッシュ・ディレクトリに局部的に常駐
している。特定のプロセッサに関連するこの素子は、そ
のプロセッサのライン状態表(PLST)と呼ばれる。
各キャッシュ・ラインは、PLSTに対応する入力を持
つ。局部的プロセッサから見た場合、この入力は、ライ
ンが主メモリ・ラインの有効なコピーを含んでいるかど
うかを示す情報を含み、含んでいる場合には、そのライ
ンを修正すべきかどうかをシステムの残りの部分に報告
しなければならない。システムから見た場合、各プロセ
ッサのPLSTは、メモリ介入コマンド(MIC)と呼
ばれる特殊なシステム・バス・サイクルに対するスレー
ブである。これらサイクルは、特定の隣接するのローカ
ル状態についてPLSTに問い合わせを行い、および/
またはPLSTにそのローカル状態を変更するように命
令する。
【0028】<メモリおよびキャッシュ状態の定義>修
正−排他−共有−無効(MESI)キャッシュ整合プロ
トコルは、主メモリの内容とデータ・キャッシュ・メモ
リの内容とを同じ状態に維持するための、ハードウェア
実行プロトコルである。MESIハードウェア・キャッ
シュ整合プロトコルの通常の実行の際には、下記の機能
を持つキャッシュ・コントローラを使用する必要があ
る。
【0029】1.メモリ・バス上の、すべてのキャッシ
ュ・メモリに対して、同じライン・サイズを使用するこ
とができること。
【0030】2.メモリ・バス上のすべての活動を、観
察することができること。
【0031】3.キャッシュ・メモリの、すべての各ラ
インに対する状態情報を、維持することができること。
【0032】4.キャッシュ・メモリと、主メモリの内
容を同じ状態に維持するために、適当な行動をとること
ができること。
【0033】MESIは、ラインが有効であるかどう
か、他のキャッシュで使用することができるかどうか、
修正済みであるかどうかを定義する四つの状態を表す。
データ・キャッシュのデータの各ラインは、データのラ
インが修正済みか、排他的か、共有か、または無効かを
示す関連フィールドを含む。プロセッサ・ライン状態表
の各ラインは、四つの可能なMESI状態の中の一つに
マークがつけられている。
【0034】o 修正済み−この状態は、このキャッシ
ュだけで排他的に使用することができ、修正されるデー
タのラインを示す。修正済みのラインは、共有メモリ・
バスを獲得しなくても、キャッシュで局部的に更新する
ことができる。システムの他の装置が、このラインを必
要とする場合には、占有中のキャッシュがデータを供給
しなければならない。
【0035】o 排他(PE)−この状態は、このキャ
ッシュだけで排他的に使用できるデータのラインが修正
されていないこと(主メモリも有効なコピーを持
つ。)、ローカル・プロセッサが、システムに通知しな
いで、このラインを自由に修正できることを示す。排他
的データは、ある種の方法で働きかけられるまで、他の
いかなるプロセッサも使用することはできない。排他的
ラインに書き込みを行うと、他のキャッシュに通知しな
くても、状態が修正された状態に変化する。そのため、
メモリ・バスの活動は発生しない。以下に説明するよう
に、(PE)状態にあるラインには、MLSTで(M
O)のマークがつけられることに留意されたい。 o 共有(PS)−この状態は、他のキャッシュと潜在
的に共有しているデータのライン(同じラインが、一つ
またはそれ以上のキャッシュに存在する。)を示す。共
有データは、複数のプロセッサの間で共有することがで
き、複数のキャッシュに記憶することができる。ローカ
ル・プロセッサは、主メモリにアクセスしないで、共有
ラインを読むことができる。プロセッサが、局部的に共
有とマークされているラインに書き込みを行った場合に
は、そのプロセッサは、システムにも、その書き込みを
放送しなければならない。
【0036】o 無効(PI)−この状態は、キャッシ
ュで使用することができないデータのラインを示す。特
定のキャッシュの無効データは、診断または類似の用途
以外には、将来の処理用に使用することはできない。こ
のラインを読出すと、「ミス」(使用不能)となる。こ
のラインに書き込みを行うと、メモリ・バスへのライト
・スルー・サイクルとなる。すべてのキャッシュ・ライ
ンは、システムが初期化された時、(PI)状態にな
る。
【0037】MESIプロトコルによれば、プロセッサ
がメモリのラインを占有すると、修正であろうと、排他
であろうと、主メモリのメモリの占有ラインへ書き込み
を行った場合には、その書き込みが何であろうとも、プ
ロセッサのデータ・キャッシュ・メモリに含まれている
同じデータは直ちに更新される。
【0038】メモリ・ライン状態表は、三つの可能な状
態、すなわち、「キャッシュに記憶されていない(MN
C)」、共有(MS)および占有(MO)の一つの状態
になっているメモリ・ラインをマークする。文字Mは、
文字Pで識別されるPLST状態から、これらの状態を
区別するためのものである。さらに、バスまたはプロセ
ッサをベースとする共有または占有を示すバスおよび/
またはプロセッサ状態ビットも使用される。
【0039】o キャッシュに記憶されていない(MN
C):この状態は、キャッシュがそのラインのコピーを
持っていないことを示す。システムが初期化された時に
は、すべてのメモリ・ラインを(MNC)状態にリセッ
トしなければならない。
【0040】o 共有状態(MS):この状態は、一つ
またはそれ以上のキャッシュが、潜在的にそのラインの
コピーを持っていることを示す。
【0041】o 占有状態(MO):この状態は、一つ
そして唯一のキャッシュが、潜在的にそのラインのコピ
ーを持っていて、メモリのデータが潜在的にそれと一致
していないことをしめす。(メモリ・データは、失効し
たと呼ばれる。) 共有および占有状態の定義に使用された「潜在的」とい
う用語に留意されたい。MLSTが、特定のメモリ・ラ
インについての最新の情報を持っていない状況がいくつ
かある。例えば、MLSTは、一本のラインを、二つの
特定のプロセッサにより共有されているとマークする場
合がある。何故なら、MLSTが二つの特定プロセッサ
がそのラインを読んだと見なしたからである。しかし、
両方のプロセッサが、(「無言の置換」と呼ばれる)M
LSTに通知しないで、新しいデータのために空きを作
るために、そのラインをずっと前から放棄している場合
がある。MLSTは、当然、あるマスタの力、MICが
そのラインにアクセスする度に、特定のラインの最新の
状態に「追いつこう(catch up)」とする。こ
の例の場合、第三のプロセッサがこのラインに書き込み
を行うと、他のキャッシュに記憶されていコピーを無効
にするために、(現在不必要な)MICを初期化し、M
LSTを更新する。しかし、MLSTは、何時でも、キ
ャッシュ・ラインの状態を前の状態に保持しようとする
ことに留意されたい。すなわち、プロセッサが占有また
は共有しているラインは、何時でも、MLSTに正確に
マークされている。MLSTの「失効した」情報は、も
はやどのプロセッサのデータ・キャッシュにも存在しな
い占有または共有とマークされたラインの形をとる。
【0042】システム・メモリの内容とデータ・キャッ
シュ・メモリの内容を同じに維持するために、上記シス
テムで使用される三つの異なるMIC動作がある。
【0043】o 無効(MBI) このサイクルがスタ
ートすると、アドレスされたラインを持つすべてのデー
タ・キャッシュは無効状態(PI)になる。このサイク
ルは、通常、MLSTの共有とマークされた(MS)ラ
インにアクセスする、ある種のメモリ動作に応えて発生
する。他のMIC動作とは異なり、MBIは、ローカル
・キャッシュのアドレスされたラインの現在の状態に関
して、PLSTからのフィ−ドバックを要求しない。そ
れどころか、MBIは、単に、そのラインがキャッシュ
に存在する場合には、その無効化を要求する。MBI
は、論理的フィ−ドバックは要求しないが、そのサイク
ルを終了するために、目標プロセッサから積極的な承認
を要求する。MBIは、単に、プロセッサが無効なアド
レスを受け入れ、他のアドレスを受け入れることができ
ることを表示する。
【0044】o 放棄無効(MBCOI) このサイク
ルがスタートすると、アドレスされたラインの潜在的に
修正されたコピーを持つキャッシュは、システム・メモ
リに送られ、無効状態(PI)になる。このサイクル
は、MLSTで占有とマークされた(MO)メモリ・ラ
インにアクセスする、ある種のメモリ動作に応えて発生
する。占有キャッシュが修正(PM)状態のラインを持
っている場合には、そのキャッシュは、データを供給
し、無効になる。占有キャッシュが排他(PE)状態の
ラインを持っている場合には、そのキャッシュは、MB
COIに通知し、無効になるが、データの供給は行わな
い。占有キャッシュがもはやラインを持っていない場合
には、このキャッシュは、単に、サイクルが終了したこ
とをMBCOI通知するだけである。
【0045】o 放棄共有(MBCOS) このサイク
ルは、アドレスされたラインの潜在的に修正されたコピ
ーを持つキャッシュをシステム・メモリに送り、共有状
態(PS)になる。このサイクルは、MLSTの占有と
マークされた(MO)、メモリ・ラインにアクセスす
る、ある種のメモリ動作に応えて発生する。占有キャッ
シュが修正された状態(PM)のラインを持っている場
合には、そのキャッシュはデータを供給し、共有にな
る。占有キャッシュが排他状態(PE)のラインを持っ
ている場合には、そのキャッシュはMBCOSに通知し
て、共有状態になるが、データの供給は行わない。占有
キャッシュが、もはやラインを持っていない場合には、
このキャッシュは、サイクルが終了したことをMBCO
I通知する。最後の場合には、ラインがキャッシュに記
憶されていなくても、MLSTは共有状態(MS)にな
る。何故なら、MLSTは、無効状態(PI)のライン
と、占有者のキャッシュの排他状態(PE)のラインと
を区別することができないからである。
【0046】すでに説明したように、MLSTは、バス
またはプロセッサを基準とする共有または占有を示す、
追加のバスおよび/またはプロセッサ状態ビットを含
む。
【0047】ビット・パア・バス・プロトコルは、ライ
ンの現在の状態を表示するために、一つのライン語との
三つのメモリ状態ビットを使用する。一つのビットは共
有または占有を示し、他の二つのビットはどのバス(A
またはB)またはバス(AおよびB)が、共有または占
有ラインを持っているのかを示す。バスの占有権は、そ
のバス上のプロセッサの中の一つが、そのラインを占有
していることを示す。六つの状態、すなわち、「キャッ
シュに記憶されていない」、「共有バスA」、「共有バ
スB」、「両者共有」、「占有バスA」および「占有バ
スB」が可能である。一本のラインを占有できるのは一
台のプロセッサだけ、すなわち、一本のバスだけである
ことに留意されたい。共有ラインは、各バス上の一台ま
たはそれ以上のプロセッサにより共有することができ
る。
【0048】 ビット・パー・プロセッサ・プロトコルは、そのライン
の現在の状態を表示するための一本のラインに対して、
n+1個のビット(nはプロセッサの数に等しい)から
なるMLSTを持つ。一つのビットは、そのラインが共
有(MS)または占有(MO)かを示し、他のn個のビ
ットは、どの一台のプロセッサまたは複数のプロセッサ
が、キャッシュに記憶されているラインを持っているか
を示す。特定のプロセッサにはPiの番号がつけられる
が、この場合iは0からn−1の数字である。iが偶数
であるすべてのPiはバスA上に存在し、iが奇数であ
るすべてのPiはバスB上に存在する。プロセッサの占
有権は、どのプロセッサ(一台だけ)がそのラインを占
有しているかを示す。共有ラインは、どちらか一方また
は両方のバスにより共有することができる。
【0049】 <メモリ状態キャッシュ>すでに説明したように、シス
テム・メモリ105Aおよび105Bに関連する状態情
報を含むMLSTは、それぞれ状態キャッシュ・メモリ
203Aおよび203Bに維持されている。状態キャッ
シュ・メモリは、どのような場合でも、一度にすべての
システム・メモリが使用(キャッシュに記憶される)こ
とは滅多にないことを考慮して、システム・メモリに含
まれているメモリ・ラインの一部だけに対する状態情報
を記憶することができるだけの容量を持っている。例示
としての状態キャッシュ・メモリ203Aの構造および
動作を、図2および図3に示す。
【0050】図2は、例えば、各ラインが32バイトの
大きさを持つ、33兆5544億3200万(225)の
メモリ・ブロック、すなわち、ラインに分割された1ギ
ガバイト(229)の容量を持つシステム・メモリ105
Aである。メモリ105Aに記憶されているデータに
は、29ビットのアドレス201によりアクセスする。
「X」ビットと呼ばれる、このアドレスの25の最上位
のビットは、メモリ・ブロック番号、すなわち、ライン
番号を示す。「W」ビットと呼ばれる、次の四つのアド
レス・ビットは、メモリ・ブロックの語を示し、最下位
のアドレス・ビット「B」は、語の中のバイトを示す。
【0051】状態情報を記憶するためのキャッシュ・メ
モリ203Aは、「キャッシュ・タグRAM」205
A、および「キャッシュ・データRAM」207Aと呼
ばれる二つのセクションを含む。状態キャッシュ・メモ
リ203Aの各ライン入力は、キャッシュ・データRA
Mにセーブされた状態情報、およびキャッシュ・タグR
AMに記憶された四つのビット・タグを含む。
【0052】状態キャッシュ・メモリ203Aは、全部
の数のメモリ・アドレス・ビットのサブセットにより索
引される。アドレス・ビットまたはタグ・ビットの残り
は、記憶装置の各入力に対する内容の一部である。索引
ビットは、状態キャッシュの入力の数を指定し、タグ・
ビットは状態キャッシュの同じ入力を取り合うことがで
きるメモリ・ラインの数を決定する。索引ビットにタグ
・ビットを加えたものは、サポートすることができるメ
モリ・ラインの全数を指定する。本質的には、状態記憶
装置の低減は、タグ・ビットの数により決まる。例え
ば、タグ・ビットの数が4である場合には、このコンセ
プトに対する状態記憶装置の要件は、従来のアーキテク
チャの1/16である。
【0053】図3は、状態キャッシュ203Aの構造お
よび動作に関するもっと詳細な情報である。状態キャッ
シュの入力には、主メモリ105Aにアクセスした時に
使用したのと同じアドレス201によりアクセスでき
る。このアドレスの四つの最上位のビットは、タグ・ビ
ットと呼ばれ、次の21のアドレス・ビットは、索引ビ
ットと呼ばれる。これら25のアドレス・ビットは、図
4のXビットと同じビットであり、主メモリ105Aの
メモリ・ブロックを識別するのに使用される。
【0054】状態キャッシュの読出し動作中、上記アド
レスの索引フィールドは、チェックするキャッシュの特
定の入力またはラインを指定するのに使用される。次
に、上記アドレスのタグ・ビットは、選択したキャッシ
ュ・ラインのタグと比較される。一致する場合には、キ
ャッシュ的中が起こり、選択したキャッシュ・ラインに
関連する状態ビットが検索される。
【0055】状態キャッシュ・メモリの状態情報を記憶
する際には、タグおよび状態情報記憶装置に対する特定
の入力、またはキャッシュ・ラインを識別するために、
アドレスの索引フィールドが使用される。最初の四つの
アドレス・ビットは、キャッシュ・タグRAMにセーブ
され、そのアドレスに関連する状態情報は、キャッシュ
・データRAMにセーブされる。オプションとして、エ
ラー検出および/または修正シンドローム・ビット、ま
たはパリテイ・ビットを、状態キャッシュ・メモリに内
蔵させることができる。
【0056】上記状態キャッシュは、直接マップされた
キャッシュである。しかし、状態キャッシュは、データ
・キャッシュに従って、結合型、セクタ型、または直接
マップ型にすることができることに留意されたい。
【0057】メモリ・システムの動作を以下に説明す
る。システム・メモリの読み出しまたは書き込み動作が
要求されると、プロトコルに従って、必要な整合サイク
ルを決定するために、状態キャッシュがアクセスされ
る。状態キャッシュのタグ情報が、メモリ・アドレスの
対応するビットと一致する場合には、対応する整合サイ
クルが実行され、状態が更新される。タグが一致しない
場合には、デフォールト状態に対する整合動作が実行さ
れ(恐らく、実行されることはないが)、新しいライン
・アドレスおよび状態が、状態キャッシュに割り当てら
れる。恐らく、現存する入力は新しいラインにより置き
換えられることになる。整合動作は、置き換えられたラ
イン状態を、デフォールト状態にするために必要になる
場合がある。これらの置換整合動作は、状態記憶装置の
容量を少なくするためのパーフォーマンス費用である
が、すでに説明したように、妥当な状態キャッシュ容量
および通常の作業量の場合には、無視することができ
る。状態キャッシュは、結合型、セクタ型、またはデー
タ・キャッシュの場合と同じように直接マップ型にする
ことができることに留意されたい。
【0058】下記の例を使用して、状態キャッシュ・メ
モリの使用によるメモリ・スペースの節約を説明する。
上記の、1ギガバイトのメモリと、メモリの一つのライ
ンに対して必要な、4ビットの整合状態フィールドを持
つシステムについて考えてみよう。メモリの基本的な整
合ブロック、すなわち、ラインは32バイトである。す
べてのメモリに対する4ビット状態を記憶するために
は、16MBの状態メモリ(一つのラインにつき、32
00万のライン × 4ビット)が必要になる。状態メモ
リの各入力が、4ビットのタグを含んでいる場合には、
状態メモリは一本のライン当たり8ビットの情報を含ん
でいて、これは従来の量の二倍である。しかし、4ビッ
ト・タグのおかげで、ラインの数は1/16ですむ。そ
れ故、必要な全状態メモリは2MBで、これは従来の容
量の1/8である。折り合いは、比較的少ない状態キャ
ッシュ入力の可能な置き換えにより行われる。この例の
場合には、状態キャッシュは、64MBデータ・キャッ
シュ(それぞれが32バイトのラインを表す200万の
入力)に等しい。
【0059】上記プロセスのように、メモリ状態キャッ
シュを使用する際の不利な点は、キャッシュに記憶され
ている、状態入力の置き換えにより生じる追加の整合動
作が、通常の転送と干渉することである。本発明は、デ
ィレクトリをベースとするメモリ状態キャッシュの置き
換えにより生じる整合動作の数を減らすための方法を提
供する。
【0060】<置換動作の低減>すでに説明したよう
に、状態キャッシュに記憶されていないアドレスに関す
る情報が必要な場合に、新しいアドレスの割当ができる
ようにするために、前の記憶している状態キャッシュ入
力を置き換えなければならない。アート・プロトコルの
現在の状態は、メモリ・ライン(基本的な整合素子)の
システム状態を、キャッシュに記憶されていない(共有
または占有)状態に復帰させる。この動作は、プロセッ
サ・データ・キャッシュに対する無効化動作および放棄
動作を含む。
【0061】今まで説明してきた、ディレクトリをベー
スとするキャッシュ整合システム、および多くの類似の
システムにおいては、大部分の状態キャッシュ・ライン
は、ウオームアップ期間を過ぎると、共有としてマーク
されることを認識しておく必要がある。そのため、共有
のデフォールト・メモリ状態を指定することにより、置
き換えの結果生じる整合動作の数を低減することができ
る。それ故、キャッシュ状態入力の置き換えの結果生じ
る動作を処理するために使用する置換アルゴリズムは、
共有状態を単に確実に生じさせるためのものでなければ
ならない。キャッシュの大部分のラインは、共有状態に
あるので、このことは無効を意味しない。また、データ
・キャッシュは、共有状態でメモリ情報を継続して保持
している。置換したラインが占有状態である場合には、
放棄動作が発生するが、そのラインはデータ・キャッシ
ュで、共有状態に遷移することができる。
【0062】この方法に対する折り合いは、ラインが、
(書き込みミスにより生じた)占有状態にある、状態キ
ャッシュ・メモリに割り当てられた場合、すべてのデー
タ・キャッシュのそのラインのすべての可能な共有者
に、無効が必要になる。しかし、書き込みミスおよび読
取りミスは、割当を生じさせ、割当は置換を生じさせ
る。ミスの数の半分以下が書き込みサイクルである場合
には、書き込みサイクルにより生じた無効より、セーブ
された置換無効のほうが多い。何故なら、読取りサイク
ルが、キャッシュの共有入力を割り当てるからである。
【0063】一つの例として、二つのキャシング・エー
ゲントに対して、メモリ・ライン(整合素子)当たり、
3ビットの状態情報を持つディレクトリをベースとする
メモリ・システムを考えてみよう。通常使用される八つ
の可能な状態の中の六つは、キャッシュに記憶されてい
ない、共有エージェントA、共有エージェンントB、両
者共有、占有エージェントA、および占有エージェント
Bである。図4は、従来のアルゴリズムに対する置換さ
れたライン動作、および「両者共有」または「共有だ
け」デフォールト状態を持つ本発明の方法を示す表であ
る。一方のエージェントがメモリに対してより高速でよ
り高い優先権アクセスを持っている場合には、共有エー
ジェントAまたは共有エージェントBデフォールトはメ
リットがあることに留意されたい。それ故、無効は、状
態キャッシュに対する割当に対してはより迅速である。
【0064】両者共有デフォールト状態プロトコルの場
合には、入力が占有者状態である場合に限って、置換動
作が必要になり、エージェントは、局部的にラインを共
有状態に維持することができる。「共有A」デフォール
ト状態プロトコルの場合には、ラインが「エージェント
Aによって共有」または「両者によって共有」の場合
に、無効が必要になる。しかし、このケースに対する状
態キャッシュへの割当の間、余計な無効は少なくてす
む。図5の表は、キャッシュに記憶していないデフォー
ルト状態を持つ、3ビットのディレクトリをベースとす
るメモリに対する整合状態表である。図6および図7の
表は、「両者共有」および「共有エージェントA」デフ
ォールト状態に対する整合状態である。ある種の追加無
効を起こす状態は、太字で示してある。「両者共有」デ
フォールトの場合には、書き込みミスにより対向するエ
ージェントを無効にし、DMA書き込みを行うと両方の
エージェントを無効にする。「共有A」デフォールトの
場合には、エージェントAが書き込みミスを起こすと、
局部的な整合サイクルを起こし、DMA書き込みはエー
ジェントAだけを無効にするだけである。それ故、この
ケースの場合には、より少ない無効しか生じない。
(注:I/Oインターフェースが、どちらかのエージェ
ントだけのものである場合には、そのエージェント、す
なわち、ローカル監視プロトコルに対して無効は局部的
に処理され、この場合、メモリは対向するエージェント
を無効にする。) それ故、本発明は、集中/分散型のディレクトリをベー
スとするキャッシュ整合および状態キャッシュ・メモリ
を使用するコンピュータ・システムでのメモリ使用を改
善するための新しい有用な方法を提供する。上記方法
は、状態キャッシュ・メモリでの置換により生じる整合
(無効)動作の数を減少する。
【図面の簡単な説明】
【図1】現在入手可能な市販構成部材を使用する、8プ
ロセッサ超大容量(SHV)対称多重処理(SMP)コ
ンピュータ・システムの簡単なブロック図である。
【図2】状態情報を記憶するためのシステム・メモリ1
05Aとキャッシュ・メモリのブロック図である。
【図3】状態キャッシュ203の構造および動作をさら
に詳細に示す、図2の状態キャッシュ・メモリ203の
ブロック図である。
【図4】本発明の三つの可能なデフォールト・メモリ・
ライン状態に対する、置換メモリ・ライン整合動作の低
減を示す表である。
【図5】従来の置換手順による「キャッシュに記憶して
いない」デフォールト状態を含む、3ビットのディレク
トリをベースとするメモリに対する整合状態表である。
【図6】本発明の第一の実施形態による、「両方共有」
デフォールト状態を含む、3ビットのディレクトリをベ
ースとするメモリに対する整合状態表である。
【図7】本発明の第二の実施形態による、「共有エージ
ェントA」デフォールト状態を含む、3ビットのディレ
クトリをベースとするメモリに対する整合状態表であ
る。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ロイ エム.スティーブンス アメリカ合衆国 サウスカロライナ州 29072 レクシントン ペイン レーン 168 (72)発明者 ラリー シー.ジェイムズ アメリカ合衆国 サウスカロライナ州 29172 ウェスト コロンビア シティー ヴュー ドライブ 237

Claims (1)

    【特許請求の範囲】
  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)のメモリ・ライ
    ンを更新するために放出動作を行い、システム・メモリ
    ・ライン状態が「占有状態」である場合には、「共有」
    のデータ・キャッシュ・メモリ・ライン状態を、上記メ
    モリのラインを含む各データ・キャッシュ・メモリのメ
    モリの上記ラインに割り当てるステップとを含むキャッ
    シュ整合メモリ・システムの整合サイクルの回数を低減
    する方法。
JP32604997A 1996-12-09 1997-11-27 マルチプロセッサ・コンピュータ・システムにおけるデータ整合方法 Expired - Fee Related JP3974983B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (4)

* Cited by examiner, † Cited by third party
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