JPH10240621A - マルチプロセッサ・コンピュータ・システム - Google Patents

マルチプロセッサ・コンピュータ・システム

Info

Publication number
JPH10240621A
JPH10240621A JP9301323A JP30132397A JPH10240621A JP H10240621 A JPH10240621 A JP H10240621A JP 9301323 A JP9301323 A JP 9301323A JP 30132397 A JP30132397 A JP 30132397A JP H10240621 A JPH10240621 A JP H10240621A
Authority
JP
Japan
Prior art keywords
memory
cache
line
state
data
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
JP9301323A
Other languages
English (en)
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 JPH10240621A publication Critical patent/JPH10240621A/ja
Pending 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/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
    • 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

Landscapes

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

Abstract

(57)【要約】 (修正有) 【課題】 ディレクトリ・ベースのキャッシュ・コヒー
レンシーを採用しているシステムにおいて、メモリの利
用を改善する方法を提供する。 【解決手段】 コンピュータ・システムは共有されてい
るシステム・メモリ105A,Bの中に存在するデータ
のラインと、データ・キャッシュ・メモリ121A,B
の中に存在しているデータのラインとの間の無矛盾性を
維持するために、ディレクトリ・ベースのキャッシュ・
コヒーレンシー・スキームをもち、共有されているシス
テム・メモリのライン・ステータス情報をキャッシュす
るために共有されているシステム・メモリに関連するス
テート・キャッシュ・メモリをもっている。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数のデータ・キ
ャッシュ・メモリおよび1つの共有メモリを備えるマル
チプロセッサ・コンピュータ・システムに関し、特に、
キャッシュのコヒーレンシーを維持するためにディレク
トリ・ベースのプロトコルを採用しているマルチプロセ
ッサ・コンピュータ・システムに関する。
【0002】
【従来の技術、及び、発明が解決しようとする課題】過
去数年間にコンピュータ・システムの性能、スピード、
集積密度、容量においてほとんど指数関数的な増加が見
られた。これらの改善の結果、コンピュータ・システム
に対するコストの減少と共に、コンピュータ・システム
の利用がさらに拡大され、より高度な、そしてリソース
集中型のコンピュータ・アプリケーションが開発され
た。最近の歴史的な傾向によると、アプリケーションに
必要なメモリの容量は年当たり2倍で増加している。コ
ンピュータ・システムおよびその部品のコストは近年に
おいて着実に低下してきたが、システムのメイン・メモ
リおよびキャッシュ・メモリにおいて利用される高速の
RAMメモリは、依然としてコンピュータ・システムの
内部での最もコストの高いコンポーネントの1つとなっ
ている。
【0003】データ、アプリケーション・ソフトウェア
およびオペレーティング・システムのソフトウェアの一
時記憶のために主として使われるシステム・メモリおよ
びキャッシュ・メモリも、パリティ・ビット、キャッシ
ュのコヒーレンシー状態の情報、および誤り検出および
/または訂正用シンドローム・ビットを記憶するため
に、より高度なマルチプロセッサ・システムの内部で利
用されつつある。これらのマルチプロセッサ・システム
の追加のメモリ要求、および先進のオペレーティング・
システムおよびアプリケーションのより高いメモリ需要
の結果、高速のRAMに対する需要およびコストが増大
した。
【0004】高速のシステムおよびキャッシュ・メモリ
を利用するため、およびシステムおよびキャッシュの必
要メモリ量を減らすための、より効率的な方法が望まれ
ている。
【0005】したがって、本発明の目的は、ディレクト
リ・ベースのキャッシュ・コヒーレンシーを採用してい
るコンピュータ・システムの内部において、メモリの利
用を改善するための新しい、そして有用な方法を提供す
ることである。
【0006】
【課題を解決するための手段】本発明によると、マルチ
プロセッサ・コンピュータ・システムは、複数のプロセ
ッサ、およびメモリ・システムを含み、メモリ・システ
ムは、複数のデータ・キャッシュ・メモリと、前記複数
のプロセッサによって共有される1つのシステム・メモ
リとを含み、少なくとも1つのデータ・キャッシュ・メ
モリが前記プロセッサの各1つに関連し、前記メモリ・
システムは前記共有メモリのラインに対するライン・ス
テータス情報を格納するための手段を備えていて、前記
ライン・ステータス情報を格納するための手段は、前記
共有のシステム・メモリに関連し、メモリのライン・ス
テータス情報をキャッシュするための手段が備えられて
いるステート・キャッシュ・メモリを含むことを特徴と
する。
【0007】好ましい実施形態においては、ステート・
キャッシュ・メモリのサイズは任意の一時点において、
システム・メモリのすべてが利用(キャッシュ)される
ことはほとんどないという認識において、システム・メ
モリの中に含まれているラインの16分の1程度のライ
ンのためのステート情報を記憶するためのサイズとなっ
ている。上記のステート・キャッシュは直接マップ型の
キャッシュであって、メモリの関連するラインに対する
ステート情報は、タグ・フィールドと一緒にステート・
キャッシュの内部に格納され、タグ・フィールドは関連
するメモリ・ラインのアドレスの最初の4ビットであ
り、残りのアドレス・ビットによってステート・キャッ
シュの内部でインデックスされる。
【0008】また、本発明によると、共有されるシステ
ム・メモリの中に存在しているデータのラインと、マル
チプロセッサ・コンピュータ・システムのデータ・キャ
ッシュ・メモリの中のデータ・ラインとの間の無矛盾性
を維持する方法が提供される。そのマルチプロセッサ・
コンピュータ・システムは複数のプロセッサを含み、各
プロセッサはシステム・メモリを共有し、その中で少な
くとも1つのデータ・キャッシュ・メモリが前記プロセ
ッサのそれぞれ1つと関係付けられていて、その方法は
共有されるシステム・メモリのラインに対するライン・
ステータス情報を格納するステップを含み、その方法は
共有されるシステム・メモリのラインに対するライン・
ステータス情報をステータス・キャッシュ・メモリの中
にキャッシュするステップを含むことを特徴とする。
【0009】添付の図面を参照しながら、本発明を以下
に説明するが、これは単なる例示としてのものにすぎな
い。
【0010】
【発明の実施の形態】NCR Corporation
は、NCRが開発したシステム技法を利用している先進
のマルチプロセッサ・アーキテクチャを開発した。ま
た、このアーキテクチャは標準のハイ・ボリューム(S
HV)コンポーネント、例えば、IntelのPent
ium Proプロセッサ、PCI I/Oチップセッ
ト、pentium Proチップセット、Penti
um Proバス・トポロジー(P6)、および標準の
メモリ・モジュール(SIMMおよびDIMM)などを
有利に使用している。NCRのシステム技法を標準のS
HVコンポーネントと慎重に統合化することによって、
NCRは世界クラスのスケーラビリティおよび機能の内
容を提供することができ、しかもSHVに資本を投資
し、そしてフル・カスタムの開発に関連する欠点を無く
している。このアーキテクチャの1つの実装が図1に示
されている。
【0011】ここで図1を参照すると、参照の文字Aお
よびBによって識別される2つの4プロセッサ・ビルデ
ィング・ブロックまたはコンプレックスから形成され
る、8プロセッサのSMPシステムが示されている。各
コンプレックスは同一の構造およびコンポーネントを含
み、それぞれコンプレックス「A」および「B」に対し
てAまたはBのいずれかで終わる参照番号によって識別
されている。
【0012】コンプレックスAの中に含まれているシス
テムの部分が高バンド幅のスプリット・トランザクショ
ン・プロセッサ・バス103Aに接続されている、4台
までのプロセッサ101Aを含む図が示されている。各
プロセッサ301Aにはキャッシュ・メモリ321Aが
関連付けられている。システム・メモリ105Aは先進
のデュアルポート型のメモリ・コントローラ107Aを
通じてバス103Aに接続されている。プロセッサ・バ
ス103Aはメモリ・コントローラ107Aの第1ポー
トに接続されている。第2のメモリ・コントローラのポ
ートは高バンド幅のI/Oバス115(このバスはここ
では拡張バスとも呼ばれる)に接続され、そのバスは複
数のPCI I/Oインターフェース109Aに対する
接続を提供する。先進のメモリ・コントローラ107A
を例外として、これらのコンポーネントのすべては現在
商品として入手できるコンポーネントである。例えば、
プロセッサ101AはIntelのPentium P
roプロセッサであり、バス103Aおよび115はP
entium Pro(P6)のバス・トポロジーであ
ってよい。
【0013】先進のメモリ・コントローラ(AMC)1
07Aはプロセッサ・バス103AとI/Oバス15と
の間のすべての方向におけるすべての制御およびデータ
の流れを管理する。I/Oバスは以下に説明されるよう
に、P6からPCI I/Oへのブリッジおよび、別の
プロセッサ・バスへ接続するための別のAMC ASI
Cを含んでいてもよい。また、AMC 107Aはコヒ
ーレントDRAMメモリ・アレイに対するアクセスも制
御する。現在実装されているようなAMCは、制御およ
びデータのスライスASICペアから構成されている。
【0014】前に説明されたように、コンプレックスB
はコンプレックスAと構造が同じである。この2つのコ
ンプレックスは拡張バス115によって相互に接続され
ており、共有されるI/Oデバイス、キャッシュ・メモ
リおよび他のコンポーネント以外に、プロセッサ101
Aと101Bとの間、およびシステム・メモリ105A
と105Bとの間の通信を可能にしている。
【0015】各コンプレックスの内部では、プロセッサ
はプロセッサ・バス上でバス・スヌーピング・プロトコ
ルを使う。バス・スヌーピングはプロセッサとメモリと
の間でのデータの転送を追跡管理する方法である。少数
の密結合プロセッサによるこのシステムに対する性能上
の利点が存在する。1つのプロセッサが同じバス上で別
のプロセッサのデータ・キャッシュの中にあるデータを
必要とする場合、そのデータは両方のプロセッサによっ
て共有することができる。そうでない場合、そのデータ
はメイン・メモリ105Aまたは105Bから呼び出さ
れなければならず、それはシステム・バスのトラヒック
を必要とする、より時間の掛かる動作である。この方法
はシステム・バスの競合を減らすことによってシステム
の性能を高める。
【0016】図1に示されているNCRのアーキテクチ
ャは次の特徴を含む。
【0017】・業界のSHVアーキテクチャに投資し、
そして通常よく使われるチップ(IOBなど)をサポー
トしている。
【0018】・デュアル・ポート型のメモリ・コントロ
ーラ107Aおよび107Bによってデュアル・バスの
接続および利用ができ、各バスは64ビットのバンド幅
で66MHzで動作し、533MB/秒のデータ転送レ
ートを維持することができる。
【0019】・デュアル・バスの方式はバスのローディ
ングを減らし、IOB間のトラヒックとは無関係に動作
することができる、プロセッサからメモリへのプライベ
ートな径路を備えることによって、より大きなスケーラ
ビリティを提供する。
【0020】・追加のプロセッサおよびI/Oデバイス
を拡張バス115に接続することができる。
【0021】上記のシステムは高可用性トランザクショ
ン処理(High Availability Tra
nsaction Processing)(HAT
P)およびスケーラブル・データ・ウェアハウス(Sc
aleable Data Warehouse)(S
DW)サーバのニーズを満たすことができ、一方、コン
ピュータ業界のSHVの動きに沿っている。
【0022】キャッシュ・メモリを使ってシステムのス
ピードを改善し、プロセッサが従来型のDRAMメイン
・メモリの遅いスピードで動作するのではなく、キャッ
シュ・メモリの速い速度で効果的に動作できることによ
って提供される利点はよく知られている。キャッシュ・
メモリはメイン・メモリよりもその関連するプロセッサ
に対して情報をより速く提供する。したがって、読出し
サイクルが改善される。キャッシュ・メモリはそれに関
連するプロセッサから情報を高いレートで受信し、キャ
ッシュがプロセッサとは独立に、必要に応じてメイン・
メモリへ書き込んでいる間にプロセッサが処理を継続す
ることができるようにするので、書込みサイクルも改善
される。しかし、マルチプロセッサ・システムの内部
で、121Aおよび121Bなどのキャッシュ・メモリ
を使うことは追加の利点を提供する。メモリまたはシス
テムのバスをより効果的に利用することによって、シス
テムの性能が改善される。メモリ・バス上のトラヒック
が減少する。各データの読出しおよび書込みの動作はメ
イン・メモリを関与させる必要がなく、データは適宜バ
ースト・サイクルを実行することによって、データ・キ
ャッシュとメイン・メモリとの間で交換することができ
る。
【0023】データ・キャッシュ・メモリを採用してい
るシステム、そして特に複数のデータ・キャッシュ・メ
モリおよび複数レベルのデータ・キャッシュ・メモリを
採用しているシステムにおいて、指定されたメモリ・ロ
ケーションからのデータが、メイン・メモリの中および
1つまたはそれ以上のデータ・キャッシュ・メモリの中
に同時に存在する可能性がある。しかし、メイン・メモ
リの中およびデータ・キャッシュ・メモリの中のデータ
は常に同じであるとは限らない。これはマイクロプロセ
ッサがメイン・メモリおよび他のデータ・キャッシュ・
メモリを更新せずに、自分に関連付けられているデータ
・キャッシュ・メモリの中に含まれているデータを更新
する時、あるいは、別のバス・マスタがマイクロプロセ
ッサのデータ・キャッシュ・メモリの中にあるコピーを
更新せずに、メイン・メモリの中のデータを変更する時
に発生する可能性がある。
【0024】プロセッサ、システム・メモリ・モジュー
ル105Aおよび105Bおよび各種のデータ・キャッ
シュ・メモリの間のデータの転送を追跡するために、シ
ステムはメモリとキャッシュベースのコヒーレンシーの
ハイブリッドを利用する。システム・メモリとキャッシ
ング・エージェント、すなわち、システム・バス・プロ
セッサとの間のコヒーレンシーは中央集中型/分散型の
ディレクトリ・ベースのキャッシュの組合せのコヒーレ
ンシーによって維持される。
【0025】ディレクトリ・ベースのキャッシュ・コヒ
ーレンシーの方式は、プロセッサとメモリとの間のデー
タ転送を追跡管理する1つの方法である。データのコヒ
ーレンシーに対するこの方式によって、メモリのステー
タス・テーブルが、どのプロセッサがそれぞれに関連す
るデータ・キャッシュ・メモリの中のメモリのどのライ
ンを所有しているかを識別する。1つのプロセッサがデ
ータを要求した時、ステータス・テーブルはそのデータ
の最近のコピーが存在しているメイン・メモリまたはプ
ロセッサのデータ・キャッシュの内部のロケーションを
識別する。この方法の利点は、プロセッサがスヌーピン
グによってアクセスできないキャッシュ内に存在してい
るデータにアクセスする必要が生じるまで、追加の作業
が実行される必要がないことである。ディレクトリ・ベ
ースのキャッシュ・コヒーレンシーは、システム・バス
上に密結合型のプロセッサが多数存在している場合に最
も有効である。
【0026】図1に示されているシステムにおいて採用
されている中央集中型/分散型ディレクトリ・ベースの
キャッシュ・コヒーレンシー方式は、2つのディレクト
リ・エレメントから構成されている。ディレクトリ・ス
キームの内部の中央のエレメントはシステム・メモリの
中にあり、そしてメモリ・ライン・ステータス・テーブ
ル(Memory Line Status Tabl
e)(MLST)と呼ばれる。システム・メモリの内部
の各メモリ・ラインは、MLSTの中に1つの対応して
いるエントリを含む。この対応しているエントリは1つ
のラインがキャッシュされているかどうか、そしてその
場合に、それが1つのプロセッサ(またはバス)によっ
て独占的に所有されているか、あるいは複数のプロセッ
サ(またはバス)に渡って共有されているかどうかを示
している情報を含む。ディレクトリ・スキームおよびM
LSTはシステム・バスによって、あるいはプロセッサ
によってメモリ・ラインの所有権を識別するためにセッ
トアップすることができる。「ビット・パー・バス(b
it‐per‐bus)」のMLSTはバス・ベースで
の所有権を識別し、一方、粒度のより細かい「ビット・
パー・プロセッサ(bit‐per‐processo
r)」のMLSTは、プロセッサ・ベースでの所有権を
識別する。その違いはメモリの設計に特有のものであ
り、したがって、システム・バス上の他のデバイスに対
してはトランスペアレントであることに留意されたい。
【0027】図2は1ギガバイト(230バイト)のシス
テム・メモリを示している。このメモリは32バイトの
ブロック・サイズ、すなわちライン・サイズの225個の
ブロックまたはラインを備えている。また、各ラインは
ステート情報を記憶するための追加のいくつかのビット
を含んでいる。ステート情報の記憶に対して専用に使わ
れているメモリのセクションがMLSTを形成する。
【0028】分散型のディレクトリ・エレメントは各プ
ロセッサのデータ・キャッシュのディレクトリの内部に
ローカルに存在している。特定のプロセッサに関連する
そのエレメントは、プロセッサ・ライン・ステータス・
テーブル(Processor Line Statu
s Table)(PLST)と呼ばれている。各キャ
ッシュ・ラインはPLSTの中に対応しているエントリ
を有する。ローカル・プロセッサの視点からは、このエ
ントリはメイン・メモリのラインの有効なコピーをライ
ンが含んでいるかどうか、そしてその場合に、そのライ
ンへの変更がシステムの他の部分に対してブロードキャ
ストされなければならないかどうかを示している情報を
含む。システムの視点からは、各プロセッサのPLST
はメモリ・インターベンション・コマンド(Memor
y InterventionCommands)(M
IC)として知られている特殊なシステム・バス・サイ
クルに対するスレーブである。これらのサイクルは特定
のラインのローカル・ステートについてPLSTに問い
合わせ、そして/またはPLSTがそのローカル・ステ
ートを変更するように知らせる。各データ・キャッシュ
・メモリおよびその関連するPLSTの構造は、図2に
示されているシステム・メモリの構造に類似している。
【0029】PLSTはデータ・キャッシュの中のモデ
ィファイド(変更)‐エクスクルーシブ(排他的)‐シ
ェアード(共有)‐インバリッド(無効)(Modif
ied‐Exclusive‐Shared‐Inva
lid)(MESI)ステート・ビットから構成されて
いる。このMESIキャッシュのコヒーレンシー・プロ
トコルはメイン・メモリとデータ・キャッシュ・メモリ
との間のデータの無矛盾性を維持するためのハードウェ
ア実装型のプロトコルである。MESIハードウェア・
キャッシュ・コヒーレンシー・プロトコルの代表的な実
装では、次のことができるキャッシュ・コントローラの
利用が必要である。
【0030】1.メモリ・バス上のすべてのキャッシュ
に対して同じライン・サイズを使用する。
【0031】2.メモリ・バス上のすべてのアクティビ
ティを観察する。
【0032】3.キャッシュ・メモリのすべてのライン
に対するステート情報を維持する。
【0033】4.キャッシュ・メモリおよびメイン・メ
モリの内部でのデータの無矛盾性を維持するための適当
なアクションを取る。
【0034】MESIは1つのラインが有効であるかど
うか、それが他のキャッシュの中で利用できるかどう
か、およびそれが変更されているかどうかを定義する4
つのステートを表す。キャッシュの中のデータの各ライ
ンはそのデータのラインがMODIFIED(変更され
ている)、EXCLUSIVE(排他的)、SHARE
D(共有されている)、またはINVALID(無効)
であるかどうかを示す1つの関連するフィールドを含
む。プロセッサ・ライン・ステータス・テーブルの内部
では、各キャッシュ・ラインは次の4つの可能なMES
Iステートの1つにマークされている。
【0035】・MODIFIED(変更されている)
(PM)‐このステートはこのキャッシュの中だけで排
他的に利用され、そして変更されているデータのライン
を示す。変更されているデータはプロセッサから変更が
加えられたものである。変更されたラインは共有メモリ
・バスを獲得せずにキャッシュの中でローカルに更新す
ることができる。システムの中のいくつかの他のデバイ
スがこのラインを必要とする場合、それを所有している
キャッシュがそのデータを供給しなければならない。
【0036】・EXCLUSIVE(排他的)(PE)
‐ このステートはこのキャッシュの中だけで排他的に
利用されるデータのラインを示し、このラインは変更さ
れていないこと(メイン・メモリも有効なコピーを持っ
ている)、およびローカル・プロセッサがシステムに通
知せずにこのラインを自由に変更できることを示す。排
他的なデータはそれに何らかの方法で変更が加えられる
まで他のプロセッサからは使うことができない。排他的
なラインに対して書き込むことによって、それは変更さ
れた状態に変化し、他のキャッシュに知らせることなし
に変更を行うことができ、したがって、メモリ・バスの
アクティビティは発生されない。PEのステートにある
ラインはMLSTの中でMOとマークされる。これにつ
いては以下に説明される。
【0037】・SHARED(共有されている)(P
S)‐ このステートは他のキャッシュと共有されてい
る可能性があるデータのライン(同じラインが1つまた
はそれ以上のキャッシュの中に存在する可能性がある)
を示す。共有されているデータは複数のプロセッサの間
で共有されている可能性があり、複数のキャッシュの中
に格納されている可能性がある。共有されているライン
はメイン・メモリにアクセスせずに、ローカルのプロセ
ッサによって読むことができる。ローカルに共有されて
いるとマークされているマークに対してプロセッサが書
き込む時、それはその書込みをシステムに対してもブロ
ードキャストしなければならない。
【0038】・INVALID(無効)(PI)‐ こ
のステートはデータのラインがそのキャッシュの中で利
用できないことを示す。特定のキャッシュの中の無効デ
ータは、診断または同様な使用以外には後で処理のため
に使われることはない。このラインに対する読出しは
「ミス」(利用できない)となる。このラインに対する
書込みによって、メモリ・バスに対するライトスルー・
サイクルが発生する。すべてのキャッシュ・ラインはシ
ステムの初期化時にこの(PI)ステートへリセットさ
れる。
【0039】MESIプロトコルに従って、プロセッサ
がメモリの1つのラインを所有している時、それが変更
されているか、あるいは排他的であるかどうかにかかわ
らず、メイン・メモリの中のメモリのその所有されてい
るラインに対して書込みを行うと、そのプロセッサのデ
ータ・キャッシュ・メモリの中に含まれている同じデー
タが即時に更新されることになる。
【0040】メモリ・ライン・ステータス・テーブルは
次の3つの可能なステート、すなわち、NOT CAC
HED(キャッシュされていない)(MNC)、SHA
RED(共有されている)(MS)、およびOWNED
(所有されている)(MO)のうちの1つにメモリ・ラ
インをマークする。文字MはこれらのステートをPLS
Tのステートと区別するものであり、PLSTのステー
トは文字Pを使うことによって識別されている。その他
に、バスまたはプロセッサ・ベースのいずれかにおける
共有または所有を示しているバス/またはプロセッサの
ステート・ビットがある。
【0041】・NOT CACHED(キャッシュされ
ていない)(MNC):どのキャッシュの中にもそのラ
インのコピーがないことを示す。すべてのメモリ・ライ
ンはシステムの初期化時にその(MNC)ステートにリ
セットされなければならない。
【0042】・SHARED STATE(共有されて
いる状態)(MS):1つまたはそれ以上のキャッシュ
がそのラインのコピーを持っている可能性があることを
示す。
【0043】・OWNED STATE(所有されてい
る状態)(MO):1つのキャッシュ、そしてただ1つ
のキャッシュだけにそのラインのコピーがあることを示
し、そしてメモリの中のデータはそれにマッチしない可
能性がある(メモリのデータは古くなっていると推測さ
れる)ことを示す。
【0044】共有型および所有型のステートの定義の中
で「可能性がある」という言葉が使われていることに留
意されたい。MLSTの中に特定のメモリ・ラインに関
する最新の情報がない、いくつかの状況がある。例え
ば、MLSTは1つのラインが2つの特定のプロセッサ
によって共有されているとしてマークする可能性があ
る。というのは、MLSTはその2つのプロセッサの両
方がそれを読むのを見たからである。しかし、両方のプ
ロセッサはMLSTに通知せずに新しいデータのための
余地を作るためにそのラインを捨てた(「サイレント置
換」と呼ばれる)時以来、長い時間が経っている可能性
がある。MLSTは或るマスタがMICを強制すること
によってそのラインに対してアクセスする時、常に特定
のラインの最新の状態に自然に「キャッチアップ」す
る。この例においては、このラインに対する第3のプロ
セッサに対する書込みによって(現在は不必要である)
MICが他のキャッシュされたコピーの無効化が起動さ
れ、そしてそのMLSTが最新の状態に更新される。し
かし、MLSTは常にキャッシュ・ラインのステートに
ついて保守的な観点を保持する。すなわち、1つのプロ
セッサによって所有されるか、あるいは共有されている
ラインは常にそのMLSTの中で正しくマークされてい
る。そのMLSTの中の「古い」情報は最早どのプロセ
ッサのデータ・キャッシュの中にも存在しない「所有さ
れている」、あるいは「共有されている」としてマーク
されているラインの形式を取る。
【0045】上記のように、MLSTはバスまたはプロ
セッサのベースのいずれかにおいて共有または所有を示
している、追加のバスおよび/またはプロセッサのステ
ートを含む。
【0046】ビット・パー・バス(Bit‐per B
us)プロトコルはライン当たりに3つのメモリ・ステ
ート・ビットを使ってそのラインの現在の状態を示す。
1つのビットは共有されているか、あるいは所有されて
いるかを示し、そして他の2つのビットはどのバス(A
またはB)または複数のバス(AおよびB)がその共有
された、あるいは所有されたラインを持っているかを示
す。バスの所有権はそのバス上のプロセッサの1つがそ
のラインを所有していることを示す。ラインは1つのプ
ロセッサだけによって所有され、したがって、1つのバ
スだけによって所有される可能性があることに留意され
たい。共有されているラインは各バス上の1つまたはそ
れ以上のプロセッサによって共有されている可能性があ
る。
【0047】 ビット・パー・プロセッサ(Bit‐per‐Proc
essor)プロトコルの場合、そのラインの現在状態
を示すためにライン当たりのn+1個のビット(nはプ
ロセッサの数に等しい)から構成されるMLSTがあ
る。1つのビットはそのラインが共有されている(M
S)か、または所有されている(MO)かのいずれかで
あることを示し、そして他のn個のビットはどのプロセ
ッサまたは複数のプロセッサがそのラインをキャッシュ
しているかを示す。特定のプロセッサにPiの番号が付
けられる。ここでi=0〜n−1である。iが偶数であ
るすべてのPiはバスA上にあり、iが奇数であるすべ
てのPiがバスB上にある。プロセッサの所有権はどの
プロセッサ(1つだけ)がそのラインを所有しているか
を示す。共有されているラインはいずれか、あるいは両
方のバス上で1つまたはそれ以上のプロセッサによって
共有される可能性がある。
【0048】 上記の説明から直接マップ型のコヒーレンシー・システ
ム、例えば、説明されている中央集中型/分散型のディ
レクトリ・ベースのキャッシュ・コヒーレンシー・スキ
ームはステート情報を記憶するためにかなりな量の追加
のメモリを必要とすることは明らかである。このステー
トの記憶のオーバヘッドは利用できるメモリの全容量の
うちの固定のパーセンテージである。例えば、32バイ
トのブロック・サイズまたはライン・サイズの1ギガバ
イトのシステム・メモリを備えているシステムにおい
て、各ラインは4つの4ビット・ステート情報を含んで
おり、16メガバイトのMLSTがそのステート情報の
記憶のために必要となる。
【0049】ステート・ビットを格納するために必要な
メモリの量は、そのシステムの内部で採用されているデ
ィレクトリ・ベースのキャッシュ・コヒーレンシー・ス
キーム(例えば、従来型のディレクトリ・ベースのキャ
ッシュ・コヒーレンシー・スキーム)、あるいはビット
・パー・バスまたはビット・パー・プロセッサMLST
プロトコルのいずれかを利用している中央集中型/分散
型のディレクトリ・ベースのキャッシュ・メモリ・コヒ
ーレンシー・スキーム)によって変わる。また、ステー
トの記憶のオーバヘッドは、ビット・パー・プロセッサ
のMLSTプロトコルを利用している中央集中型/分散
型のディレクトリ・ベースのキャッシュ・コヒーレンシ
ー・スキームを採用しているシステムの中のプロセッサ
の数に直接に関係している。
【0050】<メモリ・ステート・キャッシュ>本発明
はディレクトリ・ベースのコヒーレンシーによるメモリ
・システムに対するステート情報をキャッシュするため
の方法を提供する。ここで説明される方法は、システム
・メモリのすべてが一度に利用されることはほとんどな
いという認識に基づいて作られている。したがって、ス
テート記憶に必要なメモリの量はアクティブなメモリ・
ラインに対するステートのエントリをキャッシュするこ
とによって、すなわち、MLSTをキャッシュすること
によって減らすことができる。
【0051】その方法はメモリ・データを記憶するため
の代表的なデータ・キャッシュと同様な、ステート情報
に対するキャッシュを提供する。この構造が図3および
4に示されている。
【0052】図3は、例えば、各ラインのサイズが32
バイトであって、33,554,432(225)百万メ
モリ・ブロックまたはラインに分割されている1ギガバ
イト(229バイト)のサイズのシステム・メモリ105
Aを示している。メモリ105Aの中に格納されている
データは29ビットのアドレス301を提示することに
よってアクセスされる。「X」ビットとして識別されて
いるアドレスの中の25個の上位ビットは、メモリ・ブ
ロックまたはラインの番号を識別する。「W」ビットと
して識別されている次の4個のアドレス・ビットは、そ
のメモリ・ブロックの内部のワードをポイントとし、一
方、下位のアドレス・ビット「B」は1つのワードの内
部のバイトを識別する。
【0053】ステート情報の記憶のために提供されてい
るステート・キャッシュ・メモリ303Aは、「キャッ
シュ・タグRAM」305Aおよび「キャッシュ・デー
タRAM」307Aとして識別されている2つのセクシ
ョンを含む。ステート・キャッシュ・メモリ303Aの
中の各ライン・エントリは、キャッシュ・データRAM
に対してセーブされたステート情報およびキャッシュ・
タグRAMの中に格納される4ビットのタグを含む。
【0054】キャッシュ・メモリ303Aはメモリ・ア
ドレス・ビットの合計数のサブセットによってインデッ
クスされる。アドレス・ビットの残りの部分、すなわ
ち、タグ・ビットは、記憶装置の中の各エントリに対す
る内容の一部である。インデックス・ビットはステート
・キャッシュの中のエントリの個数を定義し、そしてタ
グ・ビットはステート・キャッシュの中の同じエントリ
に対して競合する可能性のあるメモリ・ラインの数を決
定する。インデックス・ビットとタグ・ビットを加えた
ものは、サポートできるメモリ・ラインの合計数を定義
する。本質的に、ステート記憶における削減はタグ・ビ
ットの数によって定義される。例えば、タグ・ビットの
数が4であった場合、この概念に対するステート記憶の
必要量は従来のアーキテクチャの場合の16分の1であ
る。
【0055】ステート・キャッシュ303Aの構造およ
び動作についてのさらに詳細の情報が図4に示されてい
る。ステート・キャッシュの中のエントリは、メイン・
メモリ105Aをアクセスするために使われるのと同じ
アドレス301を提示することによってアクセスされ
る。そのアドレスの中の4個の上位ビットはタグ・ビッ
トとして識別され、次の21個のアドレス・ビットはイ
ンデックス・ビットとして識別される。これらの25個
のアドレス・ビットは図4の中でXビットとして識別さ
れているのと同じビットであり、それらはメイン・メモ
リ105Aの内部のメモリ・ブロックを識別するために
使われる。
【0056】ステート・キャッシュの読出し動作時に、
チェックされるべきキャッシュの特定のエントリまたは
ラインを指定するために、アドレスのインデックス・フ
ィールドが使われる。次に、アドレスのタグ・ビットが
その選択されたキャッシュ・ラインのタグと比較され
る。マッチがあった場合、キャッシュ・ヒットが発生
し、その選択されたキャッシュ・ラインに関連するステ
ート・ビットが検索される。
【0057】ステート・キャッシュ・メモリの中にステ
ート情報を格納するために、アドレスのインデックス・
フィールドが使われ、タグおよびステート情報の記憶の
ためのキャッシュの特定のエントリまたはラインが識別
される。最初の4つのアドレス・ビットはキャッシュ・
タグRAMにセーブされ、一方、そのアドレスに関連す
るステート情報はキャッシュ・データRAMにセーブさ
れる。オプションとして、誤り検出および/または誤り
シンドローム・ビットまたはパリティ・ビットをステー
ト・キャッシュ・メモリの中に含めることができる。
【0058】上記のようなステート・キャッシュは直接
マップ型のキャッシュである。しかし、ステート・キャ
ッシュは連想型、セクター型、あるいはデータ・キャッ
シュとしての直接マップ型でもよいことに留意された
い。
【0059】このメモリ・システムの動作は次の通りで
ある。読出しまたは書込みの動作がシステム・メモリに
ついて要求されると、ステート・キャッシュはそのプロ
トコルによって変わる必要なコヒーレンシー・サイクル
を決定するためにアクセスされる。ステート・キャッシ
ュの中のタグ情報がメモリ・アドレスの対応しているビ
ットとマッチした場合、その対応しているコヒーレンシ
ー・サイクルが実行されて、そのステートが更新され
る。タグ・マッチがなかった場合、デフォールトステー
トに対するコヒーレンシー動作が実行され(おそらく何
も実行されない)、そして新しいライン・アドレスおよ
びステートがそのステート・キャッシュに対して割り当
てられる。おそらく、既存のエントリがその新しいライ
ンによって置き換えられる。コヒーレンシー動作は置き
換えられたライン・ステートをデフォールトのステート
にするために必要となる可能性がある。これらの置換コ
ヒーレンシー動作はステートの記憶の容量を減らすため
の性能コストであるが、それは上記のように、程良いス
テート・キャッシュ・サイズおよび代表的な作業負荷に
対しては無視できる程度である。
【0060】ステートのキャッシュ・メモリを使うこと
によって提供されるメモリ空間の節約が次の例で示され
る。以前に記述された1ギガバイトのメモリと4ビット
のコヒーレンシー・ステート・フィールドをメモリの1
ライン当たりに必要とするシステムを考える。メモリの
基本コヒーレンシー・ブロックまたはラインは32バイ
トとである。メモリのすべてに対する4ビットのステー
トを格納するためには、16MBのステート・メモリ
(3200万ライン×4ビット/ライン)が必要とな
る。ステート・メモリの中の各エントリは4ビットのタ
グを含み、ステート・メモリはライン当たりの情報の8
ビットを含むことになり、これは従来の量の倍である。
しかし、4ビットのタグのためにラインの数は16分の
1だけで済む。したがって、必要なステート・メモリの
全容量は2MBであり、それは従来の量の8分の1に過
ぎない。そのトレードオフはステート・キャッシュ・エ
ントリの置換が発生する可能性があることであるが、そ
れは比較的少数である。この例においては、ステート・
キャッシュは64MBのデータ・キャッシュ(200万
個のエントリ、それぞれが32バイトのラインを表して
いる)と等価である。
【0061】図3および図4はメモリ・システムの必要
量を減らすための、システム・メモリ105Aについて
のステート・キャッシュ・メモリ303Aの利用を示し
ている。システム・メモリ105Bに関連する第2のス
テート・キャッシュ・メモリ303Bも提供されてい
る。
【0062】上記のプロセスから発生する1つの欠点
は、キャッシュされたステート・エントリの置換から結
果として生じる追加のコヒーレンシー・アクションが通
常の転送を妨害することである。しかし、この妨害はほ
とんどの作業負荷に対して程良いサイズのステート・キ
ャッシュの場合は無視できる程度である。また、キャッ
シュされないメモリ・ラインのデフォールト・ステート
は共有型であると仮定され、ほとんどのメモリ操作は所
有されているラインに対してだけはなく、共有されてい
るラインに対するものが普通であるので、置換によって
何らかのアクションが生じることはおそらくほとんどな
い。追加のコヒーレンシー・アクションが発生するの
は、無効化のトランザクションを生じることになる所有
権に対するキャッシュされないラインがアクセスされた
場合だけとなる。
【0063】以上のように、専用のキャッシュ・メモリ
の中にキャッシュ・ステート情報を維持することによっ
てメモリ・システムの必要量を節約する、マルチプロセ
ッサ・コンピュータ・システムのための新しく、そして
有用なディレクトリ・ベースのキャッシュ・コヒーレン
シー・メモリ・システムが、本発明によって提供される
ことが分かる。
【図面の簡単な説明】
【図1】現在入手できるコンポーネントを採用している
8プロセッサのスーパー・ハイ・ボリューム(SHV)
シメントリック・マルチプロセッシング(SMP)コン
ピュータ・システムの単純なブロック図表現である。
【図2】図1の中のシステム・メモリのブロック図表現
であり、メモリのステート情報を格納するための、従来
の技法による、メモリ・ブロックの記憶のための第1の
メモリ領域と、ステート情報の記憶のための第2のメモ
リ領域を示す。
【図3】本発明によるシステム・メモリ105Aおよび
ステート情報を記憶するためのキャッシュ・メモリのブ
ロック図表現である。
【図4】図3のステート・キャッシュ・メモリ303の
ブロック図表現であり、ステート・キャッシュ303の
構造および動作に関して、さらに詳細を提供する。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ロイ エム.スチーブンス アメリカ合衆国 サウスカロライナ州 29072 レクシントン ペイン レーン 168 (72)発明者 ラリー シー.ジェイムズ アメリカ合衆国 サウスカロライナ州 29172 ウェスト コロンビア シティー ヴュー ドライブ 237

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 複数のプロセッサ(101A、101
    B)と、メモリ・システムとを含むマルチプロセッサ・
    コンピュータ・システムであって、前記メモリ・システ
    ムが、 複数のデータ・キャッシュ・メモリ(121A、121
    B)と、 前記複数のプロセッサ(101A、101B)によって
    共有されるシステム・メモリ(105A、105B)と
    を含み、 少なくとも1つの前記データ・キャッシュ・メモリが前
    記プロセッサのそれぞれ1つと関連し、 前記メモリ・システムは共有されているメモリのライン
    に対するライン・ステータス情報を格納するための手段
    を有し、 前記ライン・ステータス情報を格納するための手段が、 前記共有されているシステム・メモリ(105A)に関
    連し、前記メモリのライン・ステータス情報をキャッシ
    ュするための手段が装備されているステート・キャッシ
    ュ・メモリ(303A、303B)を含むことを特徴と
    するマルチプロセッサ・コンピュータ・システム。
  2. 【請求項2】 マルチプロセッサ・コンピュータ・シス
    テムの中の、共有されているシステム・メモリの中に存
    在しているデータのラインと、データ・キャッシュ・メ
    モリの中のデータのラインとの間の無矛盾性を維持する
    方法であって、前記マルチプロセッサ・コンピュータ・
    システムが複数のプロセッサ(101A、101B)を
    含み、前記複数のプロセッサがシステム・メモリ(10
    5A、105B)を共有し、そして少なくとも1つのデ
    ータ・キャッシュ・メモリ(121A、121B)が前
    記プロセッサ(101A、101B)のそれぞれ1つに
    関連し、 前記方法が共有されているシステム・メモリ(105
    A、105B)のラインに対するライン・ステータス情
    報を格納するステップを含み、 前記方法が共有されているシステム・メモリのラインに
    対するライン・ステータス情報をステート・キャッシュ
    ・メモリ(303A、303B)の中にキャッシュする
    ことを特徴とする方法。
JP9301323A 1996-12-09 1997-10-31 マルチプロセッサ・コンピュータ・システム Pending JPH10240621A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/762,636 1996-12-09
US08/762,636 US5848434A (en) 1996-12-09 1996-12-09 Method and apparatus for caching state information within a directory-based coherency memory system

Publications (1)

Publication Number Publication Date
JPH10240621A true JPH10240621A (ja) 1998-09-11

Family

ID=25065660

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9301323A Pending JPH10240621A (ja) 1996-12-09 1997-10-31 マルチプロセッサ・コンピュータ・システム

Country Status (3)

Country Link
US (1) US5848434A (ja)
EP (1) EP0851356A3 (ja)
JP (1) JPH10240621A (ja)

Cited By (2)

* 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 排他的所有権のスヌープフィルタ

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
EP0908825B1 (en) * 1997-10-10 2002-09-04 Bull S.A. A data-processing system with cc-NUMA (cache coherent, non-uniform memory access) architecture and remote access cache incorporated in local memory
US6085276A (en) * 1997-10-24 2000-07-04 Compaq Computers Corporation Multi-processor computer system having a data switch with simultaneous insertion buffers for eliminating arbitration interdependencies
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
US6070231A (en) * 1997-12-02 2000-05-30 Intel Corporation Method and apparatus for processing memory requests that require coherency transactions
US6625694B2 (en) * 1998-05-08 2003-09-23 Fujitsu Ltd. System and method for allocating a directory entry for use in multiprocessor-node data processing systems
US6226716B1 (en) * 1998-12-22 2001-05-01 Unisys Corporation Test driver for use in validating a circuit design
US6304945B1 (en) * 1999-05-13 2001-10-16 Compaq Computer Corporation Method and apparatus for maintaining cache coherency in a computer system having multiple processor buses
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
US6633960B1 (en) * 2000-08-31 2003-10-14 Hewlett-Packard Development Company, L.P. Scalable directory based cache coherence protocol
US6738836B1 (en) * 2000-08-31 2004-05-18 Hewlett-Packard Development Company, L.P. Scalable efficient I/O port protocol
US6779087B2 (en) * 2001-04-06 2004-08-17 Sun Microsystems, Inc. Method and apparatus for checkpointing to facilitate reliable execution
US7062592B2 (en) * 2002-03-25 2006-06-13 Intel Corporation Selecting a queue for service in a queuing system
US7246303B2 (en) 2002-03-25 2007-07-17 Intel Corporation Error detection and recovery of data in striped channels
US20050013251A1 (en) * 2003-07-18 2005-01-20 Hsuan-Wen Wang Flow control hub having scoreboard memory
US7080168B2 (en) * 2003-07-18 2006-07-18 Intel Corporation Maintaining aggregate data counts for flow controllable queues
US7324537B2 (en) * 2003-07-18 2008-01-29 Intel Corporation Switching device with asymmetric port speeds
US7623524B2 (en) * 2003-12-22 2009-11-24 Intel Corporation Scheduling system utilizing pointer perturbation mechanism to improve efficiency
US7324541B2 (en) * 2003-12-22 2008-01-29 Intel Corporation Switching device utilizing internal priority assignments
US7570654B2 (en) * 2003-12-22 2009-08-04 Intel Corporation Switching device utilizing requests indicating cumulative amount of data
US20050207436A1 (en) * 2004-03-18 2005-09-22 Anujan Varma Switching device based on aggregation of packets
US7676628B1 (en) * 2006-03-31 2010-03-09 Emc Corporation Methods, systems, and computer program products for providing access to shared storage by computing grids and clusters with large numbers of nodes
US8473566B1 (en) 2006-06-30 2013-06-25 Emc Corporation Methods systems, and computer program products for managing quality-of-service associated with storage shared by computing grids and clusters with a plurality of nodes
US20080065837A1 (en) * 2006-09-07 2008-03-13 Sodick Co., Ltd. Computerized numerical control system with human interface using low cost shared memory
US20080159145A1 (en) * 2006-12-29 2008-07-03 Raman Muthukrishnan Weighted bandwidth switching device
CN103544269B (zh) * 2013-10-17 2017-02-01 华为技术有限公司 目录的存储方法、查询方法及节点控制器
WO2016049807A1 (zh) * 2014-09-29 2016-04-07 华为技术有限公司 多核处理器系统的缓存目录处理方法和目录控制器

Family Cites Families (14)

* 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
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 株式会社日立製作所 計算機システム
US5265232A (en) * 1991-04-03 1993-11-23 International Business Machines Corporation Coherence control by data invalidation in selected processor caches without broadcasting to processor caches not having the data
US5313609A (en) * 1991-05-23 1994-05-17 International Business Machines Corporation Optimum write-back strategy for directory-based cache coherence protocols
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
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
JPH07129468A (ja) * 1993-11-04 1995-05-19 Matsushita Electric Ind Co Ltd 主記憶制御装置
DE69519816T2 (de) * 1994-05-03 2001-09-20 Hewlett Packard Co Anordnung mit Duplikat des Cache-Etikettenspeichers

Cited By (2)

* 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 排他的所有権のスヌープフィルタ

Also Published As

Publication number Publication date
US5848434A (en) 1998-12-08
EP0851356A2 (en) 1998-07-01
EP0851356A3 (en) 1999-12-22

Similar Documents

Publication Publication Date Title
US5848434A (en) Method and apparatus for caching state information within a directory-based coherency memory system
US5809536A (en) Method for reducing the number of coherency cycles within a directory-based cache coherency memory system uitilizing a memory state cache
US6629205B2 (en) System and method for increasing the snoop bandwidth to cache tags in a cache memory subsystem
US7669018B2 (en) Method and apparatus for filtering memory write snoop activity in a distributed shared memory computer
JP2540517B2 (ja) 階層キヤツシユメモリ装置および方法
US5671391A (en) Coherent copyback protocol for multi-level cache memory systems
US6018791A (en) Apparatus and method of maintaining cache coherency in a multi-processor computer system with global and local recently read states
US6959364B2 (en) Partially inclusive snoop filter
CA1306312C (en) Write-shared cache circuit for multiprocessor system
US6049851A (en) Method and apparatus for checking cache coherency in a computer architecture
JP4237142B2 (ja) 統合ディレクトリとプロセッサキャッシュを備えたコンピュータシステム
US6973544B2 (en) Method and apparatus of using global snooping to provide cache coherence to distributed computer nodes in a single coherent system
US6078997A (en) Directory-based coherency system for maintaining coherency in a dual-ported memory system
US20010010068A1 (en) State-based allocation and replacement for improved hit ratio in directory caches
KR20110031361A (ko) 스누프 필터링 메커니즘
JP2006501548A (ja) リモートキャッシュプレゼンス情報を記録するプロセッサキャッシュを備えたコンピュータシステム
US7117312B1 (en) Mechanism and method employing a plurality of hash functions for cache snoop filtering
US7325102B1 (en) Mechanism and method for cache snoop filtering
US20020078304A1 (en) System and method for allocating a directory entry for use in multiprocessor-node data processing systems
EP0817065B1 (en) Methods and apparatus for a coherence transformer for connecting computer system coherence domains
EP1224553B1 (en) Multi-processor system and method of accessing data therein
US5860120A (en) Directory-based coherency system using two bits to maintain coherency on a dual ported memory system
US6148375A (en) Hierarchical bus simple COMA architecture for shared memory multiprocessors having a bus directly interconnecting caches between nodes
US7213109B1 (en) System and method for providing speculative ownership of cached data based on history tracking
KR970007671A (ko) 원격 접근 제어기 및 이것을 포함하는 분산된 공유 메모리 다중프로세서

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041019

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 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061127

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070620

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070730

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070802

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20070914

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100122

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100127

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100222

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100226

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100323

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100326

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100423