JPH11272559A - マルチレベル・メモリ・ハイアラ―キを含むデ―タ処理システムのためのキャッシュ・コヒ―レンシ・プロトコル - Google Patents

マルチレベル・メモリ・ハイアラ―キを含むデ―タ処理システムのためのキャッシュ・コヒ―レンシ・プロトコル

Info

Publication number
JPH11272559A
JPH11272559A JP11026708A JP2670899A JPH11272559A JP H11272559 A JPH11272559 A JP H11272559A JP 11026708 A JP11026708 A JP 11026708A JP 2670899 A JP2670899 A JP 2670899A JP H11272559 A JPH11272559 A JP H11272559A
Authority
JP
Japan
Prior art keywords
cache
cluster
state
data
coherency
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
JP11026708A
Other languages
English (en)
Inventor
Ravi Kumar Arimilli
ラビ・クマール・アリミリ
John Steven Dodson
ジョン・スティーブン・ドットソン
Jerry Don Lewis
ジェリー・ダン・ルイス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH11272559A publication Critical patent/JPH11272559A/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies

Landscapes

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

Abstract

(57)【要約】 【課題】データ処理システムにおいてキャッシュ・コヒ
ーレンシを維持する方法及びシステムを提供する。 【解決手段】このデータ処理システムは少なくとも第1
クラスタ及び第2クラスタにグループ分けされた複数の
プロセッサ及び複数のキャッシュを含む。第1クラスタ
及び第2クラスタの各々は少なくとも1つの上位レベル
・キャッシュ及び少なくとも1つの下位レベル・キャッ
シュを有する。本発明の方法によれば、第1クラスタの
上位レベル・キャッシュにおける第1データ項目が、特
定のアドレスを表すアドレス・タグと関連して記憶され
る。第1クラスタの上位レベル・キャッシュにおけるコ
ヒーレンシ・インディケータが、アドレス・タグが有効
であること及び第1データ項目が無効であることを表す
第1状態にセットされる。同様に、第2クラスタの上位
レベル・キャッシュにおいて、特定のアドレスを表すア
ドレス・タグと関連して第2データ項目が記憶される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、概していえば、デ
ータ処理するための方法及びシステムに関するものであ
り、詳しくいえば、マルチプロセッサ・データ処理シス
テムにおいてキャッシュ・コヒーレンシ(一貫性)を維
持するための方法及びシステムに関するものである。更
に詳しくいえば、本発明は、マルチレベル・メモリ・ハ
イアラーキを含むデータ処理システムのための改良され
たキャッシュ・コヒーレンシ・プロトコルに関するもの
である。
【0002】
【従来の技術】通常の対称マルチプロセッサ(SMP)
データ処理システムでは、すべてのプロセッサが大体に
おいて同じである。即ち、すべてのプロセッサが共通の
命令セット及び通信プロトコルを利用し、同じハードウ
エア・アーキテクチャを有し、一般的に、同じメモリ・
ハイアラーキを備えている。例えば、通常のSMPデー
タ処理システムは、システム・メモリと、各々が1つの
プロセッサ及び1つ又は複数のレベルのキャッシュ・メ
モリを含む複数の処理エレメントと、それらの処理エレ
メントを相互に及びシステム・メモリに結合するシステ
ム・バスとを含み得るものである。SMPデータ処理シ
ステムにおいて有効な実行結果を得るためには、コヒー
レント・メモリ・ハイアラーキを維持すること、即ち、
すべてのプロセッサにメモリの内容に関して単一の視野
を与えることが重要である。
【0003】コヒーレント・メモリ・ハイアラーキは、
MESIプロトコルのような選択されたメモリ・コヒー
レンシ・プロトコルの使用を通して維持される。MES
Iプロトコルでは、コヒーレンシ状態の表示が少なくと
もすべての上位レベル(キャッシュ)メモリの各コヒー
レンシ・グラニュール(粒度)(例えば、キャッシュ・
ライン又はセクタ)と関連して記憶される。各コヒーレ
ンシ・グラニュールは4つの状態、即ち、変更状態
(M,Modified)、排他的状態(E,Excl
usive)、共用状態(S,Shared)、及び無
効状態(I,Invalid)のうちの1つを持つこと
ができ、それはキャッシュ・ディレクトリにおける2つ
のビットによって表される。変更状態は、コヒーレンシ
・グラニュールがその変更されたコヒーレンシ・グラニ
ュールを記憶するキャッシュにおいてのみ有効であるこ
と、及びその変更されたコヒーレンシ・グラニュールの
値がシステム・メモリに書き込まれていないことを表
す。コヒーレンシ・グラニュールが排他的状態として表
される時、そのコヒーレンシ・グラニュールは、そのレ
ベルのメモリ・ハイアラーキにおけるすべてのキャッシ
ュのうちの、排他的状態におけるコヒーレンシ・グラニ
ュールを持ったキャッシュにのみに存在する。しかし、
排他的状態におけるデータはシステム・メモリと整合し
ている。コヒーレンシ・グラニュールがキャッシュ・デ
ィレクトリにおいて共用状態としてマークされる場合、
そのコヒーレンシ・グラニュールは、関連するキャッシ
ュ及び同じレベルのメモリ・ハイアラーキにおける少な
くとも1つの他のキャッシュに存在する。なお、そのコ
ヒーレンシ・グラニュールのすべてのコピーがシステム
・メモリと整合している。最後に、無効状態は、コヒー
レンシ・グラニュールと関連したデータ及びアドレスが
両方とも無効であることを表す。
【0004】各コヒーレンシ・グラニュール(例えば、
キャッシュ・ライン)がセットされる状態は、キャッシ
ュ・ラインの前の状態と、リクエスト・プロセッサによ
って求められたメモリ・アクセスのタイプとの両方に依
存する。従って、マルチプロセッサ・データ処理システ
ムにおいてメモリ・コヒーレンシを維持することは、プ
ロセッサがメモり・ロケーションを読み取る又は書き込
むというそれらの意図を表すメッセージをそのシステム
・バスを通してコミュニケートすることを必要とする。
例えば、プロセッサがメモり・ロケーションにデータを
書き込むことを望む時、プロセッサは、先ず、メモリ・
ロケーションにデータを書き込むというそれの意図を他
のすべての処理エレメントに知らせ、その書込オペレー
ションを実行するための許可を他のすべての処理エレメ
ントから受けなければならない。リクエスト・プロセッ
サが受け取る許可メッセージは、メモリ・ロケーション
の内容の他のすべてのキャッシュされたコピーが無効に
されてしまったことを表し、それによって、他のプロセ
ッサが陳腐なローカル・データをアクセスしないことを
保証する。このメッセージ交換は相互無効化(cros
s−invalidation、即ち、XI)として知
られている。
【0005】本発明は、キャッシュ・エントリの相互無
効化がSMPデータ処理システムにおけるメモリ・コヒ
ーレンシを維持するように働いている間、リモート・プ
ロセッサによるキャッシュ・エントリの無効化が、ロー
カル・キャッシュにおけるヒット率を下げることによっ
てデータ処理システムのパフォーマンスに悪影響を与え
るという認識を含む。従って、たとえ大きなローカル・
キャッシュを備えていても、処理エレメントは、一旦ロ
ーカル・キャッシュに存在したデータを別の処理エレメ
ントにおけるリモート・キャッシュから又はシステム・
メモリから検索する時、長いアクセス待ち時間をまねく
ことがある。従って、明らかなように、キャッシュ・エ
ントリの相互無効化の結果としてパフォーマンス・ペナ
ルティを少なくすると共に、SMPデータ処理システム
においてメモリ・コヒーレンシを維持するための方法及
びシステムを提供することは望ましいことであろう。
【0006】本発明は、通常のMESIプロトコルが、
リモート・キャッシュに記憶されたデータの効率的な検
索をサポートしないという認識も含んでいる。或既知の
マルチプロセッサ・データ処理システムは、変更状態に
おけるデータを記憶しているリモート・キャッシュが読
取リクエストに応答してその変更されたデータを供給す
ることを可能にする所謂変更介入をサポートするけれど
も、MESIプロトコルは、リクエストされたデータが
共用状態にある時、データをソース化する責任を他の処
理エレメントに割り振ることはしない。従って、リクエ
ストされたデータは比較的少ないアクセス待ち時間で複
数のリモート・キャッシュに記憶されることがあるけれ
ども、通常のマルチプロセッサ・データ処理システムで
は、共用データはいつもシステム・メモリから検索され
なければならない。従って、共用介入をサポートする改
良されたキャッシュ・コヒーレンシ・プロトコルを提供
することが望ましいであろう。
【0007】変更介入をサポートする通常のマルチプロ
セッサ・データ処理システムでは、変更されたデータ
は、それが共用バスにまたがる他のキャッシュに対して
ソース化される度にシステム・メモリに書き戻される。
本発明は、この手順がシステム・メモリとキャッシュ・
メモリとの間のコヒーレンシを維持している間、不要で
あるかもしれない書込オペレーションを遂行するため
に、それがシステム・メモリの制限された帯域幅の一部
分を消費するという認識を含んでいる。例えば、変更さ
れたキャッシュ・ラインが読取リクエストに応答して第
1キャッシュによって第2キャッシュに対してソース化
される場合、その第2キャッシュにおけるデータが再び
変更されることが多く、従って、システム・メモリにも
う一度書込みを必要とすることが多い。第2キャッシュ
の読取リクエストの時間とキャッシュ・ラインのその後
の変更との間でそのキャッシュ・ラインに対してそれ以
上のリクエストが発生されない場合、第1キャッシュに
よる変更介入に付随するシステム・メモリへの書込みは
余分なことである。
【0008】システム・メモリへの不必要な書き戻しを
減少させるための1つの可能な方法は、たとえリクエス
トしたキャッシュしか読取リクエストを行わなかったと
しても、データを、ソーシング・キャッシュでは無効な
ものとして及びそのリクエストしたキャッシュでは変更
されたものとしてマークすることであろう。この方法で
は、リクエストされたデータは、変更介入と関連してシ
ステム・メモリに書き戻される必要がない。しかし、キ
ャッシュ・コヒーレンシを維持するというこの方法は、
変更されたデータをプロセッサ相互間で共用することを
可能にするものではなく、データがキャッシュ相互間で
送られる時、更なるバス・トラフィックを作るであろ
う。従って、変更されたデータがキャッシュ相互間で共
用されることを可能にしながら、システム・メモリへの
データの効率的な書き戻しをサポートする改良されたキ
ャッシュ・コヒーレンシ・プロトコルを提供することが
望ましいであろう。
【0009】
【発明が解決しようとする課題】従って、本発明の目的
は、データ処理するための改良された方法及びシステム
を提供することにある。
【0010】本発明のもう1つの目的は、マルチプロセ
ッサ・データ処理システムにおいてキャッシュ・コヒー
レンシを維持するための改良された方法及びシステムを
提供することにある。
【0011】本発明の更にもう1つの目的は、マルチレ
ベル・メモリ・ハイアラーキを含むデータ処理システム
のための改良されたキャッシュ・コヒーレンシ・プロト
コルを提供することにある。
【0012】
【課題を解決するための手段】上記の目的は、次に説明
するようにして達成される。少なくとも第1クラスタ及
び第2クラスタにグループ分けされた複数のプロセッサ
及び複数のキャッシュを含むデータ処理システムが設け
られる。第1クラスタ及び第2クラスタの各々は少なく
とも1つの上位レベル・キャッシュ及び少なくとも1つ
の下位レベル・キャッシュを有する。本発明の方法によ
れば、第1クラスタの上位レベル・キャッシュにおける
第1データ項目が、特定のアドレスを表すアドレス・タ
グと関連して記憶される。第1クラスタの上位レベル・
キャッシュにおけるコヒーレンシ・インディケータが、
アドレス・タグが有効であること及び第1データ項目が
無効であることを表す第1状態にセットされる。同様
に、第2クラスタの上位レベル・キャッシュにおいて、
特定のアドレスを表すアドレス・タグと関連して第2デ
ータ項目が記憶される。更に、第2クラスタの上位レベ
ル・キャッシュにおけるコヒーレンシ・インディケータ
が第1状態にセットされる。従って、データ処理システ
ムは、第1クラスタ及び第2クラスタの両方の上位レベ
ル・キャッシュにおけるコヒーレンシ・インディケータ
が第1状態にセットされることを可能にするコヒーレン
シ・プロトコルを実現する。
【0013】本発明の上記及び更なる目的、特徴、及び
利点は、以下の詳細に示された説明において明らかにな
るであろう。
【0014】
【発明の実施の形態】図面、特に、図1を参照すると、
本発明によるマルチプロセッサ・データ処理システムの
高レベル・ブロック図が示される。図示のように、デー
タ処理システム8は複数のプロセッサ10a−10nを
含み、それらのプロセッサの各々は、インターナショナ
ル・ビジネス・マシーンズ・コーポレーションから入手
可能なPowerPC(商標)ラインのプロセッサの1
つを含むことが望ましい。プロセッサ10a−10nの
各々は、プログラム命令を実行するために利用される通
常のレジスタ、命令フロー・ロジック、及び実行ユニッ
トに加えて、搭載レベル1(L1)キャッシュ12a−
12nのうちの関連したキャッシュも含んでいる。その
キャッシュは、関連のプロセッサによってアクセスされ
そうな命令及びデータを一時的に記憶する。L1キャッ
シュ12a−12nは、図1では、命令及びデータの両
方(以下では、両方を単にデータと呼ぶ)を記憶する一
体化されたキャッシュとして示されるけれども、別の方
法として、L1キャッシュ12a−12nの各々が命令
キャッシュ及びデータ・キャッシュに分けられて実施さ
れてもよいことは当業者には明らかであろう。
【0015】アクセス待ち時間を最小にするために、デ
ータ処理システム8は、レベル2(L2)キャッシュ1
4a−14nのような1つ又は複数の更なるレベルのキ
ャッシュ・メモリも含んでいる。それらのキャッシュ1
4a−14nはL1キャッシュ12a−12nに対する
データをステージ化するために利用される。換言すれ
ば、L2キャッシュ14a−14nは、システム・メモ
リ18とL1キャッシュ12a−12nとの間の中間記
憶装置として機能し、一般には、L1キャッシュ12a
−12nよりもずっと大きい量のデータを記憶すること
ができるが、長いアクセス待ち時間のものである。例え
ば、L2キャッシュ14a−14nは256又は512
キロバイトの記憶容量を持ち得るし、一方、L1キャッ
シュ12a−12nは64又は128キロバイトの記憶
容量を持ち得る。更に、プロセッサ10aはルックアサ
イドL3キャッシュ15aによってサポートされる。L
3キャッシュ15aはL2キャッシュ14aと並列に相
互接続線16に接続され、L2キャッシュ14aに等し
いか又はそれよりも大きい記憶容量を有することが望ま
しい。
【0016】図示のように、データ処理システム8は、
更に、I/O装置20、システム・メモリ18、及び不
揮発性記憶装置22を含む。それらの各々は相互接続線
16に結合される。I/O装置20は、ディスプレイ装
置、キーボード、及びグラフィカル・ポインタのような
通常の周辺装置を含み、通常のアダプタを介して相互接
続線16にインターフェースされる。不揮発性記憶装置
22は、オペレーティング・システム及び他のソフトウ
エアを記憶する。それらは、データ処理システム8がパ
ワー・オンされることに応答して揮発性システム・メモ
リ18にロードされる。勿論、データ処理システム8
が、ネットワーク又は付加装置に接続するための直列及
び並列ポート、システム・メモリ18へのアクセスを調
整するメモリ・コントローラ等のような図1に示されて
ない多くの更なるコンポーネントを含み得ることは当業
者には明らかであろう。
【0017】1つ又は複数のバス又はクロスポイント・
スイッチを含み得る相互接続線16は、L2キャッシュ
14a−14n、L3キャッシュ15a、システム・メ
モリ18、入出力(I/O)装置20、及び不揮発性記
憶装置22の間の通信トランザクションのためのコンジ
ットとして働く。相互接続線16を介した代表的な通信
トランザクションは、そのトランザクションのソース、
そのトランザクションの意図された受信側を指定する宛
先タグ、アドレス、及び/又はデータを含む。相互接続
線16に結合された各装置は、相互接続線16を介した
すべての通信トランザクションをスヌープすることが望
ましい。
【0018】次に図2を参照すると、本発明に従って、
L2キャッシュ14(14a−14nの1つ)の実施例
の更に詳細なブロック図が示される。その実施例では、
L2キャッシュ14は、32ビット・アドレスを利用す
る4ウェイ・セット連想キャッシュである。従って、L
2キャッシュ14のデータ・アレイ34は、各々がキャ
ッシュ・ラインを記憶するための8つのウェイを含む。
通常のセット連想キャッシュでは、システム・メモリ1
8におけるメモリ・ロケーションは、そのメモリ・ロケ
ーションのアドレスにおけるインデックス・ビット(例
えば、32ビット・アドレスのビット20−26)を利
用してデータ・アレイ34における特定の適合(con
gruence)クラスにマップされる。
【0019】データ・アレイ34内に記憶されたキャッ
シュ・ラインは、キャッシュ・ディレクトリ32にレコ
ードされる。キャッシュ・ディレクトリ32は、データ
・アレイ34における各ウェイに対して1つのディレク
トリ・エントリを含む。各ディレクトリ・エントリは、
タグ・フィールド40、コヒーレンシ・ステータス・フ
ィールド42、LRUフィールド44、及びインクルー
ド(I)フィールド46を含む。タグ・フィールド40
は、キャッシュ・ラインのシステム・メモリ・アドレス
のタグ・ビット(例えば、ビット0−19)を記憶する
ことによって、どのキャッシュ・ラインがデータ・アレ
イ34の対応するウェイに記憶されるかを指定する。図
3を参照して以下で詳しく説明するように、コヒーレン
シ・ステータス・フィールド42は、事前定義されたビ
ットの組合せを利用してデータ・アレイ34の対応する
ウェイに記憶されたデータのコヒーレンシ・ステータス
を表す。LRUフィールド44は、データ・アレイ34
の対応するウェイがそれの適合クラスの他のウェイに関
してどのくらい最近アクセスされたかを表し、それによ
って、どのキャッシュ・ラインがキャッシュ・ミスに応
答して適合クラスから放出されるべきかを表す。最後
に、インクルード・フィールド46は、データ・アレイ
34の対応するウェイに記憶されたキャッシュ・ライン
が関連のL1キャッシュ12にも記憶されるか否かを表
す。
【0020】更に図2を参照すると、L2キャッシュ1
4はキャッシュ・コントローラ36を更に含む。キャッ
シュ・コントローラ36はデータ・アレイ34における
データの記憶及び検索を管理し、関連のL1キャッシュ
12から受け取った信号及び相互接続線16を介してス
ヌープされたトランザクションに応答して、キャッシュ
・ディレクトリ32に対する更新を管理する。図示のよ
うに、キャッシュ・コントローラ36は読取キュー50
及び書込キュー52を含み、キャッシュ・コントローラ
36は、それらのキューから、キャッシュ・ディレクト
リ32に対する更新及びデータ・アレイ34に対するア
クセスを遂行する。例えば、関連のL1キャッシュ12
から読取リクエストを受け取ったことに応答して、キャ
ッシュ・コントローラ36は読取キュー50におけるエ
ントリに読取リクエストを入れる。キャッシュ・コント
ローラ36は、リクエストされたデータを関連のL1キ
ャッシュ12に供給することによって読取リクエストを
サービスし、しかる後、その読取リクエストを読取キュ
ー50から除去する。
【0021】別の例として、キャッシュ・コントローラ
36は、リモート・プロセッサ10が1つの指定された
キャッシュ・ラインのそれのローカル・コピーを修正す
ることを意図するということをL2キャッシュ14a−
14nの別のキャッシュが表すことによって開始された
トランザクションをスヌープすることがある。このトラ
ンザクションをスヌープすることに応答して、キャッシ
ュ・コントローラ36は、指定されたキャッシュ・ライ
ンがデータ・アレイ34に存在するかどうかを決定する
ために、キャッシュ・ディレクトリ32を読み取るとい
うリクエストを読取キュー50に入れる。そのキャッシ
ュ・ラインがデータ・アレイに存在する場合、キャッシ
ュ・コントローラ36は相互接続線16上に適正な応答
を入れ、必要な場合には、書込キュー52にディレクト
リ書込リクエストを挿入する。ディレクトリ書込リクエ
ストは、サービスされる時、指定されたキャッシュ・ラ
インと関連したコヒーレンシ・ステータス・フィールド
を更新する。図2は、1つの読取キュー及び1つの書込
キューしか利用しない実施例を示すけれども、キャッシ
ュ・コントローラ36によって使用されるキューの数は
選択上の問題であること、及びキャッシュ・コントロー
ラ36はキャッシュ・ディレクトリ・アクセス及びデー
タ・アレイ・アクセスに対して別々のキューを使用し得
ることは勿論である。
【0022】L3キャッシュ15aは、わずかな例外は
あるが、図2に示されたL2キャッシュ14のように構
成される。更に詳しく云えば、L3キャッシュ15aの
キャッシュ・コントローラは、キャッシュ間接続線によ
ってL2キャッシュ14aに接続されるのではなく、前
述のように、L2キャッシュ14aによって相互接続線
16上に発生されたすべてのトランザクションをL3キ
ャッシュ15aのキャッシュ・コントローラがスヌープ
するように、L2キャッシュ14aと並列に相互接続線
16に接続される。
【0023】次に、図3を参照すると、本発明によるH
R−MESIキャッシュ・コヒーレンシ・プロトコルの
実施例が示される。図示のHR−MESIプロトコル
は、メモリ・ハイアラーキにおけるイン・ライン・キャ
ッシュの最低レベル(即ち、L2キャッシュ14a−1
4n)及び、わずかな相違点はあるが、任意の低レベル
・ルックアサイド・キャッシュ(即ち、L3キャッシュ
15a)によって実施されることが望ましい。高レベル
・キャッシュは、通常のMESIプロトコル、米国特許
出願番号09/024,610号に開示されたH−MES
Iプロトコル、又は米国特許出願番号08/839,54
8号に開示されたR−MESIプロトコルのようなプロ
トコル・サブセットを実施することが望ましい。しか
し、データ処理システム8の別の実施例において、付加
的なキャッシュ間の通信トラフィックを犠牲にしてメモ
リ・ハイアラーキにおける各レベルのキャッシュにおい
てHR−MESIプロトコルを実施することができるは
勿論である。
【0024】図3に示されるように、HR−MESIキ
ャッシュ・コヒーレンシ・プロトコルは、MESIプロ
トコルの通常の変更(M)状態、排他的(E)状態、共
用(S)状態、及び無効(I)状態を含んでおり、それ
らの状態は、それぞれ、参照番号80、82、84、及
び86によって識別される。更に、本発明のHR−ME
SIキャッシュ・コヒーレンシ・プロトコルには、関連
のタグ・フィールド40に記憶されたアドレス・タグは
有効であるが、データ・アレイ34の対応するウェイに
記憶されたデータ項目(例えば、キャッシュ・ライン又
はキャッシュ・セクタ)は無効であることを表すホバー
リング(H,Hovering)状態90と、データ項
目のコピーを記憶する複数のキャッシュのうちのどのキ
ャッシュが相互接続線16上のトランザクションを介し
て共用データを最近受け取ったかを表すR状態92とが
含まれる。
【0025】本発明の望ましい実施例では、各L2キャ
ッシュ・ディレクトリ32の各エントリのコヒーレンシ
・ステータス・フィールド42は、パワー・オン時にI
状態86に初期設定され、タグ・フィールド40及びデ
ータ・アレイ34の対応するウェイに記憶されたデータ
の両方とも無効であることを表す。L1及びL3キャッ
シュ・ディレクトリ・エントリも同様に無効状態に初期
設定される。しかる後、無効状態86におけるL2キャ
ッシュ14a−14nの1つ又はL3キャッシュ15a
に記憶されたキャッシュ・ライン(又は、キャッシュ・
セクタ)のコヒーレンシ・ステータスは、プロセッサ1
0a−10nによって行われたメモリ・リクエストのタ
イプ及びそれらのリクエストに対するメモリ・ハイアラ
ーキの応答の両方に従って、M状態80、E状態82、
又はR状態92の1つに更新可能である。
【0026】例えば、プロセッサ10aがロード命令に
応答して読取リクエストを行う場合、L1キャッシュ1
2aは、先ず、そのリクエストされたデータがL1キャ
ッシュ12aに存在するか否かの決定を行う。L1キャ
ッシュ12aにおけるヒットに応答して、L1キャッシ
ュ12aは単にそのリクエストされたデータをプロセッ
サ10aに供給するだけである。しかし、L1キャッシ
ュ12aにおけるミスに応答して、L1キャッシュ12
aはキャッシュ間の接続線を介してL2キャッシュ14
aに読取リクエストを送る。L2キャッシュ14aにお
けるヒットに応答して、そのリクエストされたデータは
L2キャッシュ14aによってL1キャッシュ12aに
供給される。L1キャッシュ12aは、そのリクエスト
されたデータを適正なコヒーレンシ・ステータスと関連
して記憶し且つそのデータをプロセッサ10aに送る。
【0027】しかし、読取リクエストがL1キャッシュ
12a及びL2キャッシュ14aの両方においてミスす
る場合、L2キャッシュ14aのキャッシュ・コントロ
ーラ36は、相互接続線16上にトランザクションとし
て読取リクエストを供給する。それは、L2キャッシュ
14b−14nの各々及びL3キャッシュ15aによっ
てスヌープされる。相互接続線16における読取リクエ
ストをスヌープすることに応答して、L2キャッシュ1
4b−14nの各々におけるキャッシュ・コントローラ
36は、リクエストされたデータがそれのデータ・アレ
イ34に存在するか又はL1キャッシュ12b−12n
のうちの関連するキャッシュに存在するかを決定する。
L3キャッシュ15aのキャッシュ・コントローラは、
同様に、その読取リクエストがL3キャッシュ・ディレ
クトリにおいてヒットするかどうかを決定する。L2キ
ャッシュ14b−14n、L1キャッシュ12b−12
n、及びL3キャッシュ15aのいずれもそのリクエス
トされたデータを記憶してない場合、L2キャッシュ1
4a−14nの各々及びL3キャッシュ15aはヌル応
答をL2キャッシュ14aに戻し、しかる後、L2キャ
ッシュ14aはシステム・メモリ18にそのデータをリ
クエストする。
【0028】リクエストされたデータがシステム・メモ
リ18からL2キャッシュ14aに戻される時、キャッ
シュ・コントローラ36は、L1キャッシュ12aにそ
のリクエストされたデータを送り、それのデータ・アレ
イ34にそのリクエストされたデータを記憶し、そのリ
クエストされたデータを記憶するウェイに関連したコヒ
ーレンシ・ステータス・フィールド42を、参照番号1
00によって表されるように、I状態86からE状態8
2に更新する。通常のMESIプロトコルにおけるよう
に、E状態82は、関連のキャッシュ・ラインが有効で
あって、メモリ・ハイアラーキの第2レベルにおける他
のいずれのキャッシュにも存在しないことを表す。L3
キャッシュ15aは、同様に、そのリクエストされたデ
ータをE状態82で記憶する。
【0029】プロセッサ10aによってリクエストされ
たデータがL1キャッシュ12a、L2キャッシュ14
a、及びL3キャッシュ15aに存在せず、例えば、L
1キャッシュ12nにM状態80で記憶されている場
合、L2キャッシュ14nのキャッシュ・コントローラ
36は変更応答でもってその読取リクエストに応答し、
そのリクエストされたデータをL2キャッシュ14nに
押し込むようにL1キャッシュ12nに信号を与える。
しかる後、L2キャッシュ14nは相互接続線16上の
そのリクエストされたデータをソース化する。読取リク
エストに応答して、L1キャッシュ12n及びL2キャ
ッシュ14nにおけるそのリクエストされたデータのコ
ヒーレンシ・ステータスが、参照番号102によって表
されるように、S状態84に更新される。
【0030】本発明によれば、そのリクエストされたデ
ータがL2キャッシュ14aに記憶されるウェイのコヒ
ーレンシ・ステータスは、参照番号104によって表さ
れるように、I状態86からR状態92への遷移を行
う。前述のように、R状態92は、関連のデータがL2
キャッシュ14aによって最近参照されたこと、及びL
2キャッシュ14aが、相互接続線16を介してそのデ
ータに対するリクエストをスヌープすることに応答し
て、そのデータをソース化することを表す。L3キャッ
シュ15aがシステム・メモリ18からのリクエストさ
れたデータの戻りをスヌープする時、L3キャッシュ1
5aはそのリクエストされたデータをサンプルし、その
データをS状態84で記憶する。参照番号105で示さ
れたI状態86及びS状態84の間の遷移は、この遷移
がL3キャッシュ15aにだけ適用可能であることを表
すために破線を使って表される。変更介入をサポートし
ない本発明の別の実施例においても同じ状態遷移が行わ
れることは、上記の例から当業者には明らかであろう。
しかし、それらの別の実施例では、リクエストされたデ
ータは、追加のアクセス待ち時間を犠牲にしてシステム
・メモリ18から得られる。
【0031】L2キャッシュ14aは、それの読取リク
エストに対する共用介入応答又は共用応答を受け取った
ことに応答して、I状態86からR状態92への遷移を
同様に行う。L2キャッシュ14b−14nの1つ、例
えば、L2キャッシュ14nがそのリクエストされたデ
ータをR状態92又はE状態82で記憶している場合、
L2キャッシュ14aは共用介入応答(及び、リクエス
トされたデータ)を受け取る。読取リクエストに応答し
て、L2キャッシュ14nのキャッシュ・コントローラ
36は、リクエストされたデータのそれのコピーのコヒ
ーレンシ・ステータスを、参照番号106によって表さ
れるようにR状態92からS状態84に更新する。L2
キャッシュ14b−14nのどれもリクエストされたデ
ータをR状態92で記憶してないが、少なくとも1つが
そのリクエストされたデータをS状態84で記憶してい
る場合、そのリクエストされたデータをS状態84で記
憶しているL2キャッシュ14は共用応答でもってその
読取リクエストに応答し、そのリクエストされたデータ
のそれのコピーをS状態84のままにする。共用応答の
みの受取りに応答して、L2キャッシュ14aはそのリ
クエストされたデータをシステム・メモリ18から検索
し、そのリクエストされたデータをR状態92で記憶す
る。両方の場合とも、L3キャッシュ15aはリクエス
トされたデータをサンプルし、そのデータをS状態84
で記憶する。
【0032】プロセッサ10aが変更する目的でメモリ
・ロケーションの排他的使用を得ることを望んでいるこ
とを表す「変更する意図を持って読み取る」というリク
エストをL2キャッシュ14aが相互接続線16上に発
生する場合、そのリクエストされたデータは、上記のよ
うに、L3キャッシュ15a、リモートL2キャッシュ
14、又はシステム・メモリ18から得られる。しか
し、そのリクエストされたキャッシュ・ラインが得られ
る時、L1キャッシュ12a及びL2キャッシュ14a
はそのリクエストされたキャッシュ・ラインを、参照番
号107で示されるように、M状態80で記憶する。更
に、リクエストされたキャッシュ・ラインの他のコピー
が陳腐になることを「変更する意図を持って読み取る」
というトランザクションが表すので、L3キャッシュ1
5a及びリモートL1及びL2キャッシュは、そのリク
エストされたキャッシュ・ラインのそれらのコピーが無
効であることを表さなければならない。L1キャッシュ
12b−12nでは、そのリクエストされたキャッシュ
・ラインの如何なるコピーも、単に、無効としてマーク
されるだけである。しかし、L3キャッシュ15a及び
L2キャッシュ14b−14nに記憶されたそのリクエ
ストされたキャッシュ・ラインのコピーのコヒーレンシ
・ステータスは、相互無効化(XI)を利用する通常の
マルチプロセッサ・データ処理システムにおけるように
I状態86に更新されない。
【0033】その代わり、本発明の重要な局面によれ
ば、リクエストされたキャッシュ・ラインのコピーを記
憶するL2キャッシュ14b−14nの各々及びL3キ
ャッシュ15aは、参照番号108、110、112、
及び114によって表されるように、それのコピーと関
連したコヒーレンシ・ステータス・フィールド42を、
それぞれ、R状態92、S状態84、M状態80、又は
E状態82の何れかからH状態90に更新する。上記の
ように、H状態90では、タグ・フィールド40に記憶
されたタグは有効のままであるが、データ・アレイ34
における関連のキャッシュ・ラインは無効であることが
表される。L2及びL3キャッシュ・ディレクトリにお
けるエントリは、データが無効にされることを必要とす
る他のスヌープされたトランザクションに応答して、同
様に、H状態90に更新される。そのスヌープされたト
ランザクションは、キル(kill、即ち、指定された
データ・ブロックを明示的に無効にするトランザクショ
ン)、フラッシュ(flush、即ち、指定されたデー
タ・ブロックを無効にし、すべての変更されたデータを
システム・メモリにコピーするトランザクション)、d
claim(即ち、リモート・キャッシュにおいて共用
としてマークされたキャッシュ・ラインのコピーを、そ
のキャッシュ・ラインのローカル・コピーがストアに応
答して変更されたことに応答して、無効にするトランザ
クション)等を含む。
【0034】参照番号116及び118によって表され
るように、キャッシュ・ディレクトリ・エントリは、キ
ャッシュが受け取るトランザクションのタイプに従っ
て、H状態90から、それぞれ、E状態82又はM状態
80に遷移を行うことができる。例えば、H状態90に
あるL2キャッシュ14aのディレクトリ・エントリ
は、(L1キャッシュ12a及びL2キャッシュ14a
の両方においてミスした後)L3キャッシュ15a及び
L2キャッシュ14b−14nからヌル応答を受ける読
取リクエストをプロセッサ10aが行うことに応答し
て、E状態82への遷移を行う。E状態82は、システ
ム・メモリ18から検索されたデータが、すべてのL2
キャッシュ14a−14nのうちのL2キャッシュ14
aのみに記憶されることを意味する。一方、プロセッサ
10aが、H状態90にあるL1キャッシュ12aのウ
ェイに対してデータを記憶する意図を表す場合、L1キ
ャッシュ12aはL2キャッシュ14aに対してその意
図を表し、次に、L2キャッシュ14aは相互接続線1
6上に「変更する意図を持って読み取る」というトラン
ザクションを発生する。
【0035】上記のように、L3キャッシュ15a及び
L2キャッシュ14b−14nに記憶されたそのリクエ
ストされたキャッシュ・ラインのコピーは、「変更する
意図を持って読み取る」というトランザクションをスヌ
ープすることに応答してH状態90に更新され、L1キ
ャッシュ12b−12nに記憶されたそのリクエストさ
れたキャッシュ・ラインのコピーは無効としてマークさ
れる。一旦、リクエストされたキャッシュ・ラインが得
られると、L2キャッシュ14a及びL1キャッシュ1
2aにおけるそのキャッシュ・ラインのコヒーレンシ・
ステータスは、そのキャッシュ・ラインは有効であるが
システム・メモリ18とコヒーレントではないことを意
味するように、M状態80にセットされる。
【0036】H状態90におけるキャッシュ・ディレク
トリ・エントリは、参照番号120で示されるように、
S状態84にも更新可能である。前述のように、L2キ
ャッシュ14a−14nの各々は、相互接続線16上に
発生されたすべてのトランザクションをスヌープする。
L2キャッシュ14a−14nの1つ、例えば、L2キ
ャッシュ14aが、H状態90でL2キャッシュ14a
に記憶されたデータの更新された(即ち、有効な)コピ
ーを含むL2キャッシュ14b−14nのうちの他のキ
ャッシュによって発生されたトランザクションをスヌー
プする場合、L2キャッシュ14aのキャッシュ・コン
トローラ36は、相互接続線16からデータをサンプル
し、そのスヌープされたデータをデータ・アレイ34に
記憶し、関連のコヒーレンシ・ステータス・フィールド
42をH状態90からS状態84に更新する。
【0037】このように、本発明は、関連のプロセッサ
10がデータ・リクエストを行うことなく、又はキャッ
シュが相互接続線16を介したトランザクションを開始
することなく、H状態90におけるキャッシュ・ディレ
クトリ・エントリがS状態84に更新されることを可能
にする。勿論、上記のシナリオでは、L2キャッシュ1
4aは、応答がコヒーレンシを維持することを要求され
る場合、スヌープされたトランザクションにも応答を与
える。例えば、スヌープされたトランザクションが読取
リクエストである場合、L2キャッシュ14aは、リク
エストしたL2キャッシュがそのリクエストされたデー
タをE状態82ではなくR状態92で記憶するように、
そのリクエストされたデータをサンプルするという意図
を表す共用応答を与えなければならない。有効アドレス
・タグと関連した無効データをリフレッシュするために
この方法でスヌープ可能である相互接続線16上のトラ
ンザクションは、読取トランザクション、書込トランザ
クション、キャッシュ・ライン・キャストアウトによる
システム・メモリ18へのデータ書戻し等を含む。
【0038】H状態90におけるキャッシュ・ディレク
トリ・エントリは、多くの種々なリクエスト/応答シナ
リオに応答してR状態92にも更新可能である。例え
ば、プロセッサ10aがL1キャッシュ12aにおいて
ミスし、L2キャッシュ14aにおいてタグ・ヒットを
生じるという読取リクエストを行う場合、及び一致した
タグと関連のコヒーレンシ・ステータス・フィールド4
2がH状態90にある場合、L2キャッシュ14aのキ
ャッシュ・コントローラ36は相互接続線16上に読取
トランザクションを発生する。L3キャッシュ15a及
びL2キャッシュ14b−14nからのその読取トラン
ザクションに対する共用介入応答、共用応答、又は変更
応答の受取りに応答して、L2キャッシュ14aのキャ
ッシュ・コントローラ36は、リクエストされたデータ
と関連したコヒーレンシ・ステータス・フィールド42
を、参照番号122で示されるように、H状態90から
R状態92に更新する。
【0039】更に重要なこととして、H状態90におけ
るキャッシュ・ディレクトリ・エントリは、関連のプロ
セッサがデータをリクエストすることなく、R状態92
に更新可能である。例えば、L3キャッシュ15a及び
L2キャッシュ14b−14nにおけるキャッシュ・ラ
インのすべてのコピーのコヒーレンシ・ステータスがH
状態90にセットされている間は、プロセッサ10aに
よる「変更する意図をもって読み取る」というリクエス
トに続いて、L1キャッシュ12a及びL2キャッシュ
14aはリクエストされたデータをM状態80で記憶す
る。L3キャッシュ15a及びL2キャッシュ14b−
14nにおけるキャッシュ・ラインのすべてのコピーの
コヒーレンシ・ステータスがH状態90にセットされて
いる間は、リクエストされたデータが、その後、例え
ば、読取ミスに応答してL2キャッシュ14aから置換
のために選択される場合、L2キャッシュ14aのキャ
ッシュ・コントローラ36は、システム・メモリ18に
そのリクエストされたデータを記憶するために相互接続
線16上に書込トランザクションを発生する。この書込
トランザクションをスヌープすることに応答して、L3
キャッシュ15aのキャッシュ・コントローラはそのデ
ータをサンプルし、それのL3データ・アレイにそのデ
ータを記憶し、そして、L3キャッシュ15aが、その
後、読取リクエスト又は「変更する意図をもって読み取
る」というリクエストに応答してそのデータをソース化
し得るように関連のコヒーレンシ・ステータス・フィー
ルドを更新する。
【0040】図3に示されたHR−MESIメモリ・コ
ヒーレンシ・プロトコルの実施例において行われる状態
遷移が下記の表1及びその続きの表2において要約され
る。
【表1】
【0041】
【表2】
【0042】本発明によれば、上記のHR−MESIキ
ャッシュ・コヒーレンシ・プロトコルは、更なる機能性
をサポートする更なる状態を含むように拡張可能であ
る。例えば、図4を参照すると、HRT−MESIキャ
ッシュ・コヒーレンシ・プロトコルの実施例の状態図が
示される。HRT−MESIプロトコルは、それが実施
される場合、メモリ・ハイアラーキにおける最低レベル
のインライン・キャッシュ(図1の実施例では、L2キ
ャッシュ14a−14nを含む)によって利用されるこ
とが望ましい。L3キャッシュ15aのような何れの低
レベル・ルックアサイド・キャッシュもHR−MESI
プロトコルを実施することが望ましく、一方、高レベル
・キャッシュはHR−MESIプロトコルのサブセット
・プロトコル、例えば、H−MESI、R−MESI、
又はMESIプロトコルの1つを使用することが望まし
い。上述のHR−MESIプロトコルにおける状態に加
えて、図4に示されたHRT−MESIキャッシュ・コ
ヒーレンシ・プロトコルはタグ付き(T)状態94を含
む。米国特許出願番号24,393の米国特許出願に詳
細に記述されているように、T状態94は、関連のキャ
ッシュ・ラインがローカル・プロセッサ以外のプロセッ
サによって変更されているがシステム・メモリには書き
戻されていないことを表す。そのように、T状態94自
体はS状態84のようにローカル・プロセッサによって
処理され、相互接続線におけるスヌープに関してはM状
態80のように処理される。
【0043】図4において参照番号130及び134で
示されるように、読取リクエストが変更応答を受けるこ
とに応答して、キャッシュ・ラインがI状態86又はH
状態90からT状態94に遷移を行うことができる。例
えば、L2キャッシュ14aがL2キャッシュ14nに
よってM状態80で記憶されたキャッシュ・ラインに対
する読取リクエストを行う場合、L2キャッシュ14n
はL2キャッシュ14aに対するそのリクエストされた
キャッシュ・ラインを、上述のように変更介入を介して
ソース化する。前のように、L2キャッシュ14nにお
けるリクエストされたキャッシュ・ラインのコピーは、
参照番号131において示されるように、S状態84に
更新される。
【0044】一方、L2キャッシュ14aはリクエスト
されたキャッシュ・ラインをT状態94で記憶する。し
かる後、L2キャッシュ14bによる変更されたキャッ
シュ・ラインに対する読取リクエストに応答して、L2
キャッシュ14aは変更介入によってそのリクエストさ
れたキャッシュ・ラインをソース化し、参照番号132
で示されるように、変更されたキャッシュ・ラインのそ
れのコピーのコヒーレンシ・ステータスをS状態84に
更新する。このプロセスは、変更されたキャッシュ・ラ
インをもっとも最近アクセスしたL2キャッシュ14が
そのキャッシュ・ラインをT状態94で記憶し、一方、
L2キャッシュ14a−14nのうちの他のキャッシュ
がその修正されたキャッシュ・ラインをS状態84で記
憶するように、更に何回も反復される。このように、L
2キャッシュ14a−14nのうちの1つは、それが一
時的に変更介入によってキャッシュ・ラインを他のキャ
ッシュにソース化する責任があること及びキャッシュ・
ラインをシステム・メモリ18に書き戻す責任があるこ
とを表すために「タグ」される。
【0045】重要なこととして、キャッシュ・ラインを
T状態94で記憶するL2キャッシュ14が変更介入に
よって相互接続線16におけるデータをソース化する
時、システム・メモリ18のスヌープ機構(例えば、メ
モリ・コントローラ)は変更されたデータをサンプルす
ること及び記憶することをせず、その代わりに、トラン
ザクションを無視してシステム・メモリ帯域幅を自由に
する。従って、T状態94における変更されたキャッシ
ュ・ラインは、必要な時だけ、例えば、L2キャッシュ
・ライン・キャストアウトに応答して、又はその変更さ
れたキャッシュ・ラインがシステム・メモリ18に押し
込まれることを必要とするスヌープしたトランザクショ
ンに応答して、システム・メモリ18に書き戻される。
勿論、T状態94における変更されたキャッシュ・ライ
ンがシステム・メモリ18に書き戻されないようにする
ことも可能である。例えば、プロセッサ10aが「変更
する意図を持って読み取る」というリクエストを発生し
て、L2キャッシュによりT状態94で記憶されたキャ
ッシュ・ラインを指定するというシナリオを考察してみ
よう。その「変更する意図を持って読み取る」というリ
クエストに応答して、L2キャッシュ14n及び指定さ
れたキャッシュ・ラインをS状態84で記憶する他のL
2キャッシュ14は、それぞれ参照番号136及び11
0で表されるように、すべてその指定されたキャッシュ
・ラインのそれらのコピーをH状態90に更新する。キ
ャッシュ・ライン・データはH状態90への遷移によっ
て無効化されるので、指定されたキャッシュ・ラインを
システム・メモリ18に書き戻す必要は除かれる。
【0046】参照番号138で表されるように、T状態
94におけるキャッシュ・ラインは、ローカル・プロセ
ッサが「変更する意図を持って読み取る」というリクエ
ストを行うことに応答して、M状態80への遷移を行う
こともできる。ローカルL2キャッシュ14はそのリク
エストされたキャッシュ・ラインを記憶しているので、
そのデータに対するリクエスト・トランザクションは相
互接続線16上に発生されない。その代わり、ローカル
L2キャッシュ14は相互接続線16上にdclaim
トランザクションを発生する。そのトランザクションは
関連のコヒーレンシ・ステータスをH状態90に更新す
ることによってそれらのリクエストされたキャッシュ・
ラインのコピーを無効にするように、他のL2キャッシ
ュ14に命令する。
【0047】図4に示されたHRT−MESIキャッシ
ュ・コヒーレンシ・プロトコルの実施例において行われ
る状態遷移が下記の表3及びそれに続く表4において要
約される。
【表3】
【0048】
【表4】
【0049】H状態90を含むキャッシュ・コヒーレン
シ・プロトコルに施され得る更なる機能強化は、コヒー
レンシ・ステータス履歴情報を表す1つ又は複数の派生
的H状態の追加である。例えば、上記のHRT−MES
I及びHR−MESIキャッシュ・コヒーレンシ・プロ
トコルは、HR 状態を含むように変更可能である。H状
態90のように、HR 状態は、関連のキャッシュ・ライ
ンが無効であること及び関連のアドレス・タグが有効で
あることを意味する。更に、HR 状態は、それのデータ
の無効化の前に、関連のキャッシュ・ラインが排他的に
(例えば、M状態80又はE状態82で)、或いは介入
データをソース化できるコヒーレンシ状態で(例えば、
R状態92又はT状態94で)記憶されたことを表す。
【0050】例えば、L2キャッシュ14aがキャッシ
ュ・ラインをM状態80、E状態82、R状態92、又
はT状態94の1つで記憶するというシナリオを考察し
てみよう。L2キャッシュ14nが相互接続線16を介
して「変更する意図を持って読み取る」というリクエス
トをキャッシュ・ラインに対して発生する場合、L2キ
ャッシュ14aは適切な応答を発生し、そのキャッシュ
・ラインのコヒーレンシ・ステータスをHR 状態(H状
態90ではない)に更新する。しかる後、キャッシュ・
ラインをシステム・メモリ18に記憶する書き戻しトラ
ンザクション(例えば、キャッシュ・ライン割振り解除
又はスヌープ・プッシュ)をL2キャッシュ14nが相
互接続線16上に発生したことに応答して、L2キャッ
シュ14aはキャッシュ・ライン・データをサンプル及
び記憶し、そのキャッシュ・ラインのコヒーレンシ・ス
テータスをR状態92に更新する。従って、HR 状態の
使用は、変更されたキャッシュ・ラインの割振り解除に
続いて共用介入が維持されることを可能にし、従って、
データ・アクセス待ち時間を減少させる。
【0051】次に、L2キャッシュ14aがキャッシュ
・ラインのコピーをHR 状態で記憶し、L2キャッシュ
14nが同じキャッシュ・ラインのコピーを、L2キャ
ッシュ14nが介入データをソース化し得る状態で記憶
するものと仮定する。L2キャッシュ14bがキャッシ
ュ・ラインに対する「変更する意図を持って読み取る」
というリクエストを相互接続線16を介して発生する場
合、L2キャッシュ14nは適切な応答を発生し、リク
エストされたキャッシュ・ラインを介入によってソース
化し、しかる後、リクエストされたキャッシュ・ライン
のそれのコピーのコヒーレンシ・ステータスをHR 状態
に更新する。更新されたキャッシュ・ラインを含む介入
応答をスヌープすることに応答して、L2キャッシュ1
4aはそのキャッシュ・ラインのそれのコピーのコヒー
レンシ・ステータスをHR 状態からH状態90に更新す
る。
【0052】別の方法として、図5に示されるように、
最高レベルの派生状態HR1及びH状態90の間に1つ又
は複数の追加の派生状態(HR2、HR3等)を挿入するこ
とによって、追加のレベルの履歴情報を保持することが
可能である。従って、L2キャッシュ14nによって発
生された介入応答をスヌープすることに応答してH状態
90に遷移する代わりに、L2キャッシュ14aはHR1
状態からHR2状態に遷移するであろう。しかる後、関連
のキャッシュ・ラインを含む書き戻しトランザクション
をスヌープすることに応答して、L2キャッシュ14a
は、キャッシュ・ラインのそれのコピーのコヒーレンシ
・ステータスをHR1状態に更新するであろう。このよう
に、少なくとも1つのキャッシュが1つのリクエストさ
れたキャッシュ・ラインを介入によってソース化するこ
とができる可能性を増加させるために、Nレベルのコヒ
ーレンシ・ステータス履歴情報が設定可能である。
【0053】図5において破線により表されるように、
Nレベルのコヒーレンシ・ステータス履歴情報を含むキ
ャッシュ・コヒーレンシ・プロトコルの別の変形が可能
である。更に詳しくいえば、キャッシュ・ラインを最高
のレベルHR1で記憶するキャッシュは共用介入によって
そのキャッシュ・ラインをR状態92からソース化する
ことができるので、低レベル履歴ステータス(HR2、H
R3、・・・HRN)のうちの選択されたもの又はすべつの
ものが、関連のキャッシュ・ラインの書き戻しをスヌー
プすることに応答してS状態84に直接に更新される。
【0054】少なくとも1つの派生的H状態を含むキャ
ッシュ・コヒーレンシ・プロトコルに施し得るもう1つ
の機能強化は、マルチレベル・メモリ・ハイアラーキ内
の各相互接続線において特定のキャッシュ・ラインに対
する1つの最高レベルの派生的H状態(HR 又はHR1
をサポートすることである。次に、図6を参照すると、
この機能強化を実現するマルチプロセッサ・データ処理
システムの例示的実施例が示される。図示のように、デ
ータ処理システム150は2つの対称的クラスタ152
及び154を含む。クラスタ152はプロセッサ160
a−160dを含み、それらのプロセッサの各々は、処
理回路に加えて、オンボードL1キャッシュ162及び
L2キャッシュ164を含む。L2キャッシュ164a
及び164bの各々はキャッシュ間接続線166aによ
って共用L3キャッシュ170aに接続され、一方、キ
ャッシュ170aは相互接続線180によってシステム
・メモリ182に結合される。同様に、クラスタ154
はプロセッサ160e−160hを含み、それらのプロ
セッサの各々は、処理回路に加えて、L1キャッシュ1
62及びL2キャッシュ164を含む。L2キャッシュ
164e−164hの各々はキャッシュ間接続線166
bによって共用L3キャッシュ170b接続され、一
方、キャッシュ170bは相互接続線180によってシ
ステム・メモリ182に結合される。
【0055】マルチレベル・メモリ・ハイアラーキにお
いて派生的H状態を使用するというパフォーマンス上の
利点を示す例示的な処理シナリオが下記の表5において
要約される。表5の第1行に示されるように、L2キャ
ッシュ164a−164h及びL3キャッシュ170a
−170bは、特定のキャッシュ・ラインに対するそれ
らのそれぞれのコヒーレンシ・インディケータがI状態
86にセットされることによってオペレーションを開始
する。次に、第2行に示されるように、プロセッサ16
0aが読取リクエストを行うことに応答して、L2キャ
ッシュ164aはキャッシュ間接続線166a上に読取
リクエストを発生する。L2キャッシュ164b−16
4dによるヌル応答に応答して、L3キャッシュ170
aは相互接続線180上に読取リクエストを発生する。
【0056】システム・メモリ182はその読取リクエ
ストに応答してリクエストされたキャッシュ・ラインを
供給する。それは、L3キャッシュ170a及びL2キ
ャッシュ164aの両方によってE状態で記憶される。
プロセッサ160dが同じキャッシュ・ラインに記憶す
る意図を表す場合、L2キャッシュ164dは「変更す
る意図を持って読み取る」(RWITM)というリクエ
ストをキャッシュ間接続線166a上に発生する。RW
ITMリクエストをスヌープすることに応答して、L2
キャッシュ164aは、前述のように、共用介入応答を
行い、そのリクエストされたキャッシュ・ラインをソー
ス化し、コヒーレンシ・ステータス・インディケータを
R 状態に更新する。表5の第3行に示されるように、
L2キャッシュ164dはリクエストされたキャッシュ
・ラインをM状態80で記憶する。L3キャッシュ17
0aは、上流のキャッシュがそのキャッシュ・ラインの
変更されたコピーを記憶していることを表すために、同
様に、M状態80への遷移を行う。重要なこととして、
L3キャッシュ170aはキャッシュ・ラインを排他的
に記憶したので、L3キャッシュ170aは相互接続線
180上にRWITMリクエストを発生しない。
【0057】表5の第4行に示されるように、プロセッ
サ160fがキャッシュ・ラインに記憶する意図を表す
場合、L2キャッシュ164fはキャッシュ間接続線1
66b上にRWITMリクエストを発生する。そこで、
L3キャッシュ170bは相互接続線180上にそのR
WITMリクエストを発生する。そのRWITMリクエ
ストをスヌープすることに応答して、L3キャッシュ1
70aはキャッシュ間接続線166a上にそのリクエス
トを発生する。それは、少なくとも1つの上流のキャッ
シュがリクエストされたキャッシュ・ラインの変更コピ
ーを記憶していることを「知っている」ためである。R
WITMリクエストをスヌープすることに応答して、L
2キャッシュ164dは変更済みを応答し、リクエスト
されたデータを変更介入によってソース化し、キャッシ
ュ・ラインのそれのコピーのコヒーレンシ・ステータス
をHR 状態に更新する。L2キャッシュ164a及びL
3キャッシュ170aの両方とも、キャッシュ・ライン
のそれらのコピーのコヒーレンシ・ステータスを、この
場合には、それぞれ、H状態90及びHR 状態に更新す
る。L3キャッシュ170b及びL2キャッシュ164
fの両方とも、リクエストされたキャッシュ・ラインを
M状態80で記憶する。
【0058】従って、L2キャッシュ164hがキャッ
シュ間接続線166b上にRWITMリクエストを発生
することに応答して、L2キャッシュ164fは変更済
みを応答し、リクエストされたキャッシュ・ラインをソ
ース化し、リクエストされたキャッシュ・ラインのそれ
のコピーのコヒーレンシ・ステータスをHR 状態に更新
する。リクエストされたキャッシュ・ラインを受け取る
ことに応答して、L2キャッシュ164fはそのキャッ
シュ・ラインをM状態で記憶する。それらのキャッシュ
のうちの残りのキャッシュにおけるキャッシュ・ライン
のコヒーレンシ・ステータスは変更されないままであ
る。従って、表5の第5行に示されるように、各キャッ
シュ・グループにおける1つのキャッシュが特定のキャ
ッシュ・ラインをHR 状態に保持することができる。但
し、キャッシュ・グループは、(a)同じレベルのメモ
リ・ハイアラーキにあり、(b)共通の相互接続線又は
キャッシュ間接続線に接続されるキャッシュを含むもの
として定義される。
【0059】その例を続けると、L2キャッシュ164
gがキャッシュ間接続線166b上に読取リクエストを
発生する場合、L2キャッシュ164hは変更済みを応
答し、変更介入によってキャッシュ・ラインをソース化
し、キャッシュ・ラインのそれのコピーのコヒーレンシ
・ステータスをS状態84に更新する。そのリクエスト
されたキャッシュ・ラインをスヌープする時、L2キャ
ッシュ164gはそのキャッシュ・ラインをT状態94
で記憶する。L3キャッシュ170bはキャッシュ・ラ
インをM状態80で記憶するので、そのL3キャッシュ
170bによって相互接続線180上にトランザクショ
ンが発生される必要はない。最後に、表5の第7行に示
されるように、L2キャッシュ164gがそのキャッシ
ュ・ラインを割振り解除する時、L2キャッシュ164
gは関連のコヒーレンシ・ステータスを中間状態("X"
によって表される)に更新し、L2キャッシュ164f
はキャッシュ・ラインをサンプルし、それのコヒーレン
シ・ステータスをHR 状態をR状態92に更新する。
【0060】L3キャッシュ170bは、L2キャッシ
ュに164gによるキャッシュ・ラインの割振り解除に
応答するように数多くの方法で構成可能である。第1
に、L3キャッシュ170bは、変更されたキャッシュ
・ラインをシステム・メモリ182に書き込むことなく
キャッシュ・ラインのそれのコピーを単にリフレッシュ
するだけでよい。別の方法として、表5の第7行に示さ
れるように、L3キャッシュ170bはキャッシュ・ラ
インのそれのコピーを変更されたデータでもって更新す
ることもできるし、相互接続線180を介してシステム
・メモリ182に変更されたキャッシュを書き込み、そ
れによってその変更されたキャッシュ・ラインを他のL
3キャッシュにとって可視的にすることもできる。この
第2の実施方法では、L3キャッシュ170aは、それ
がキャッシュ・ライン・データをサンプルすることを表
すために、共用応答でもって割振り書込に応答する。し
かる後、そのキャッシュ・ライン・データをサンプルす
る時、L3キャッシュ170aは、キャッシュ・ライン
のそれのコピーのコヒーレンシ・ステータスをHR 状態
からR状態92に更新し、共用介入によるキャッシュ・
ラインをソース化する機能をメモり・ハイアラーキの相
互接続レベルに有利に維持する。前述のように、L3キ
ャッシュ170bはキャッシュ・ラインのそれのコピー
のコヒーレンシ・ステータスをS状態84に更新する。
【表5】
【0061】前述のように、本発明は、マルチプロセッ
サ・データ処理システムにおいてキャッシュ・コヒーレ
ンシを維持するための改良された方法及びシステムを提
供する。本発明によって提供される改良されたキャッシ
ュ・コヒーレンシ・プロトコルは、ローカル・プロセッ
サが明示的な読取リクエスト又は書込リクエストを発生
することなく、有効アドレス・タグと関連してキャッシ
ュにより記憶された無効データ項目が有効データ項目で
もって自動的に更新されることを可能にする。このよう
に、リモート・プロセッサの活動によって無効化された
データは、そのデータがローカル・プロセッサによって
アクセスされる前にリフレッシュされ、それによって、
データをリモート・キャッシュ或いはシステム・メモリ
から検索する必要をなくすることによりデータ・アクセ
ス待ち時間を大幅に減少させることができる。又、デー
タ・アクセス待ち時間は、共用状態で記憶されたデータ
をシステム・メモリではなくリモート・キャッシュから
供給する共用介入のサポートを通して本発明のキャッシ
ュ・コヒーレンシ・プロトコルによっても大幅に減少す
る。
【0062】本発明のもう1つの局面によれば、キャッ
シュ・コヒーレンシ・プロトコルは、変更されたデータ
をシステム・メモリに書き戻す責任を割り振ることによ
ってシステム・メモり帯域幅の効率的な利用を促進する
タグ付き(T)状態を含むように拡張可能である。本発
明によるキャッシュ・コヒーレンシ・プロトコルは、イ
ンクルード或いは1つ又は複数の派生的状態を通してコ
ヒーレンシ・ステータス履歴情報を維持することもでき
る。そのような派生的状態は、データを含むキャッシュ
・ラインの第1キャッシュによる割振り解除に応答し
て、介入によりデータをソース化するための責任が第1
キャッシュから第2キャッシュに移されることを可能に
する。これらの派生的状態は、各相互接続線又はキャッ
シュ間接続線に接続された1つのキャッシュが介入によ
りデータをソース化する責任をとることを許されている
ので、多数の相互接続線又はキャッシュ間接続線を含む
マルチレベル・メモリ・ハイアラーキにおける利用を持
つ。
【0063】本発明を実施例に関連して詳しく示し、説
明したけれども、本発明の精神及び技術的範囲を逸脱す
ることなく、形式及び細部における種々の変更を行い得
ることは、当業者には明らかであろう。例えば、HR−
MESI及びHRT−MESIキャッシュ・コヒーレン
シ・プロトコルは、その状態がパワー・オン時にディレ
クトリ・エントリを初期設定するために利用されるだけ
であり、しかも他の状態から再入されることはないた
め、I状態86を排除するように修正可能である。I状
態86が排除された場合、パワー・オン時に、各L2デ
ィレクトリ・エントリのコヒーレンシ・ステータス・フ
ィールドはH状態90に初期設定されるであろうし、各
L2ディレクトリ・エントリのタグ・フィールドは、少
なくとも同じコングルーエンス(congruenc
e)クラスにおける独特のタグ値に初期設定されるであ
ろう。
【0064】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0065】(1)少なくとも第1クラスタ及び第2ク
ラスタにグループ分けされた複数のキャッシュ及び複数
のプロセッサを含むデータ処理システムにおいてキャッ
シュ・コヒーレンシを維持する方法にして、前記第1ク
ラスタ及び第2クラスタの各々は少なくとも1つの上位
レベル・キャッシュ及び少なくとも1つの下位レベル・
キャッシュを有し、前記第1クラスタの前記上位レベル
・キャッシュにおいて、アドレスを表すアドレス・タグ
と関連して第1データ項目を記憶するステップと、前記
第1クラスタの前記上位レベル・キャッシュにおけるコ
ヒーレンシ・インディケータを、前記アドレス・タグが
有効であること及び前記第1データ項目が無効であるこ
とを表す第1状態にセットするステップと、前記第2ク
ラスタの前記上位レベル・キャッシュにおいて、前記ア
ドレスを表すアドレス・タグと関連して第2データ項目
を記憶するステップと、前記第2クラスタの前記上位レ
ベル・キャッシュにおけるコヒーレンシ・インディケー
タを前記第1状態にセットするステップと、を含む方
法。 (2)前記第1クラスタの前記上位レベル・キャッシュ
において、前記アドレス・タグと関連して有効な第3デ
ータ項目を記憶するステップと、前記第1クラスタの前
記上位レベル・キャッシュにおける前記コヒーレンシ・
インディケータを、前記第3データ項目が有効であるこ
と及び前記第1キャッシュがリクエストに応答して前記
第3データ項目をソース化し得ることを表す第2状態に
更新するステップと、を更に含む上記(1)に記載の方
法。 (3)前記データ処理システムは更にシステム・メモリ
を含み、前記記憶するステップは、前記コヒーレンシ・
インディケータが前記第1状態にセットされている間に
前記アドレス・タグによって表された前記アドレスと関
連したデータ転送を検出したことに応答して、前記第1
クラスタの前記上位レベル・キャッシュにおいて前記ア
ドレス・タグと関連して有効な第3データ項目を記憶す
るステップを含み、前記データ転送は前記第3データ項
目を含み、前記第3データ項目はシステム・メモリにお
ける対応するデータ項目に関して変更される上記(2)
に記載の方法。 (4)前記データ転送は前記第1クラスタにおける別の
上位レベル・キャッシュによって前記第3データ項目を
前記システム・メモリに書き戻すことである上記(3)
に記載の方法。 (5)前記コヒーレンシ・インディケータが前記第2状
態にセットされている間に前記第3データ項目に対する
リクエストを前記第1クラスタの前記上位レベル・キャ
ッシュにおいて受け取ったことに応答して、前記第3デ
ータ項目をソース化するステップと、前記第1クラスタ
の前記上位レベル・キャッシュにおける前記コヒーレン
シ・インディケータを第3状態に更新するステップと、
を更に含む上記(2)に記載の方法。 (6)前記第1クラスタの前記上位レベル・キャッシュ
におけるコヒーレンシ・インディケータを第1状態にセ
ットするステップは、前記複数のプロセッサの1つが前
記アドレス・タグによって表された前記アドレスに記憶
する意図を表すことに応答して、前記第1クラスタの前
記上位レベル・キャッシュにおける前記コヒーレンシ・
インディケータを前記第1状態にセットするステップを
含む上記(1)に記載の方法。 (7)前記第1クラスタの前記下位レベル・キャッシュ
におけるコヒーレンシ・インディケータを前記第1状態
にセットするステップを更に含み、該コヒーレンシ・イ
ンディケータは前記アドレスを表すアドレス・タグと関
連づけられる上記(1)に記載の方法。 (8)相互接続線と、前記相互接続線に結合されたシス
テム・メモリと、前記相互接続線に結合された第1クラ
スタ及び第2クラスタと、を含み、前記第1クラスタ及
び第2クラスタの各々は少なくとも1つのプロセッサ、
上位レベル・キャッシュ、及び下位レベル・キャッシュ
を含み、前記第1クラスタの前記上位レベル・キャッシ
ュ及び前記第2クラスタの前記上位レベル・キャッシュ
の各々は、データ記憶装置と、特定のアドレスを表すア
ドレス・タグであって、前記データ記憶装置に含まれた
データ項目と関連するアドレス・タグを記憶するタグ記
憶装置と、前記アドレス・タグが有効であること及び関
連する前記データ項目が無効であることを表すために第
1状態にセットされるコヒーレンシ・インディケータ
と、を含む、データ処理システム。 (9)前記第1クラスタの前記上位レベル・キャッシュ
における前記データ項目は第1データ項目であり、前記
第1クラスタの前記上位レベル・キャッシュにおいて前
記アドレス・タグと関連して有効な第2データ項目を記
憶するための手段と、前記第1クラスタの前記上位レベ
ル・キャッシュにおける前記コヒーレンシ・インディケ
ータを、前記第2データ項目が有効であること及び前記
第1キャッシュがリクエストに応答して前記第2データ
項目をソース化し得ることを表す第2状態に更新するた
めの手段と、を更に含む上記(8)に記載のデータ処理
システム。 (10)前記記憶するための手段は、前記コヒーレンシ
・インディケータが前記第1状態にセットされている間
に前記アドレス・タグによって表された前記アドレスと
関連したデータ転送を検出したことに応答して、前記第
1クラスタの前記上位レベル・キャッシュにおいて前記
アドレス・タグと関連して有効な第2データ項目を記憶
するための手段を含み、前記データ転送は前記第2デー
タ項目を含み、前記第2データ項目はシステム・メモリ
における対応するデータ項目に関して変更される上記
(9)に記載のデータ処理システム。 (11)前記データ転送は前記第1クラスタにおける別
の上位レベル・キャッシュによって前記第2データ項目
を前記システム・メモリに書き戻すことを含む上記(1
0)に記載のデータ処理システム。 (12)前記コヒーレンシ・インディケータが前記第2
状態にセットされている間に前記第2データ項目に対す
るリクエストを前記第1クラスタの前記上位レベル・キ
ャッシュにおいて受け取ったことに応答して、前記第2
データ項目をソース化するための手段と、前記第1クラ
スタの前記上位レベル・キャッシュにおける前記コヒー
レンシ・インディケータを第3状態に更新するための手
段と、を更に含む上記(9)に記載のデータ処理システ
ム。 (13)前記第1クラスタの前記上位レベル・キャッシ
ュは、前記データ処理システムにおけるプロセッサが前
記アドレス・タグによって表された前記アドレスに記憶
する意図を表すことに応答して、前記前記コヒーレンシ
・インディケータを前記第1状態にセットする上記
(1)に記載の方法。 (14)前記第1クラスタ及び第2クラスタの1つにお
ける下位レベル・キャッシュにおけるコヒーレンシ・イ
ンディケータが前記第1状態にセットされ、該コヒーレ
ンシ・インディケータは前記アドレスを表すアドレス・
タグと関連づけられる上記(8)に記載のデータ処理シ
ステム。 (15)前記第1クラスタは、各々が共通のキャッシュ
間接続線に結合された複数の上位レベル・キャッシュを
含む上記(8)に記載のデータ処理システム。 (16)前記第1クラスタは複数のプロセッサ及び複数
の上位レベル・キャッシュを含み、前記複数の上位レベ
ル・キャッシュの各々は前記複数のプロセッサのそれぞ
れ1つのみによって直接にアクセス可能である上記
(8)に記載のデータ処理システム。
【図面の簡単な説明】
【図1】本発明によるマルチプロセッサ・データ処理シ
ステムの実施例を示す。
【図2】本発明によるキャッシュの実施例を示すブロッ
ク図である。
【図3】HR−MESIキャッシュ・コヒーレンシ・プ
ロトコルの実施例を示す状態図である。
【図4】HRT−MESIキャッシュ・コヒーレンシ・
プロトコルの実施例を示す状態図である。
【図5】N個のレベルのキャッシュ・コヒーレンシ履歴
情報を維持するために派生的H状態の利用を示す状態図
である。
【図6】本発明によるキャッシュ・コヒーレンシ・プロ
トコルを有利に利用し得るマルチレベル・メモリ・ハイ
アラーキを含むマルチプロセッサ・データ処理システム
の実施例を示す。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョン・スティーブン・ドットソン アメリカ合衆国78660、テキサス州フルゲ ールヴィッレ、ベル・ロック・サークル 1205 (72)発明者 ジェリー・ダン・ルイス アメリカ合衆国78681、テキサス州ラウン ド・ロック、アロウヘッド・サークル 3409

Claims (16)

    【特許請求の範囲】
  1. 【請求項1】少なくとも第1クラスタ及び第2クラスタ
    にグループ分けされた複数のキャッシュ及び複数のプロ
    セッサを含むデータ処理システムにおいてキャッシュ・
    コヒーレンシを維持する方法にして、前記第1クラスタ
    及び第2クラスタの各々は少なくとも1つの上位レベル
    ・キャッシュ及び少なくとも1つの下位レベル・キャッ
    シュを有し、 前記第1クラスタの前記上位レベル・キャッシュにおい
    て、アドレスを表すアドレス・タグと関連して第1デー
    タ項目を記憶するステップと、 前記第1クラスタの前記上位レベル・キャッシュにおけ
    るコヒーレンシ・インディケータを、前記アドレス・タ
    グが有効であること及び前記第1データ項目が無効であ
    ることを表す第1状態にセットするステップと、 前記第2クラスタの前記上位レベル・キャッシュにおい
    て、前記アドレスを表すアドレス・タグと関連して第2
    データ項目を記憶するステップと、 前記第2クラスタの前記上位レベル・キャッシュにおけ
    るコヒーレンシ・インディケータを前記第1状態にセッ
    トするステップと、 を含む方法。
  2. 【請求項2】前記第1クラスタの前記上位レベル・キャ
    ッシュにおいて、前記アドレス・タグと関連して有効な
    第3データ項目を記憶するステップと、 前記第1クラスタの前記上位レベル・キャッシュにおけ
    る前記コヒーレンシ・インディケータを、前記第3デー
    タ項目が有効であること及び前記第1キャッシュがリク
    エストに応答して前記第3データ項目をソース化し得る
    ことを表す第2状態に更新するステップと、 を更に含む請求項1に記載の方法。
  3. 【請求項3】前記データ処理システムは更にシステム・
    メモリを含み、 前記記憶するステップは、前記コヒーレンシ・インディ
    ケータが前記第1状態にセットされている間に前記アド
    レス・タグによって表された前記アドレスと関連したデ
    ータ転送を検出したことに応答して、前記第1クラスタ
    の前記上位レベル・キャッシュにおいて前記アドレス・
    タグと関連して有効な第3データ項目を記憶するステッ
    プを含み、 前記データ転送は前記第3データ項目を含み、 前記第3データ項目はシステム・メモリにおける対応す
    るデータ項目に関して変更される請求項2に記載の方
    法。
  4. 【請求項4】前記データ転送は前記第1クラスタにおけ
    る別の上位レベル・キャッシュによって前記第3データ
    項目を前記システム・メモリに書き戻すことである請求
    項3に記載の方法。
  5. 【請求項5】前記コヒーレンシ・インディケータが前記
    第2状態にセットされている間に前記第3データ項目に
    対するリクエストを前記第1クラスタの前記上位レベル
    ・キャッシュにおいて受け取ったことに応答して、前記
    第3データ項目をソース化するステップと、 前記第1クラスタの前記上位レベル・キャッシュにおけ
    る前記コヒーレンシ・インディケータを第3状態に更新
    するステップと、 を更に含む請求項2に記載の方法。
  6. 【請求項6】前記第1クラスタの前記上位レベル・キャ
    ッシュにおけるコヒーレンシ・インディケータを第1状
    態にセットするステップは、前記複数のプロセッサの1
    つが前記アドレス・タグによって表された前記アドレス
    に記憶する意図を表すことに応答して、前記第1クラス
    タの前記上位レベル・キャッシュにおける前記コヒーレ
    ンシ・インディケータを前記第1状態にセットするステ
    ップを含む請求項1に記載の方法。
  7. 【請求項7】前記第1クラスタの前記下位レベル・キャ
    ッシュにおけるコヒーレンシ・インディケータを前記第
    1状態にセットするステップを更に含み、 該コヒーレンシ・インディケータは前記アドレスを表す
    アドレス・タグと関連づけられる請求項1に記載の方
    法。
  8. 【請求項8】相互接続線と、 前記相互接続線に結合されたシステム・メモリと、 前記相互接続線に結合された第1クラスタ及び第2クラ
    スタと、 を含み、 前記第1クラスタ及び第2クラスタの各々は少なくとも
    1つのプロセッサ、上位レベル・キャッシュ、及び下位
    レベル・キャッシュを含み、 前記第1クラスタの前記上位レベル・キャッシュ及び前
    記第2クラスタの前記上位レベル・キャッシュの各々
    は、 データ記憶装置と、 特定のアドレスを表すアドレス・タグであって、前記デ
    ータ記憶装置に含まれたデータ項目と関連するアドレス
    ・タグを記憶するタグ記憶装置と、 前記アドレス・タグが有効であること及び関連する前記
    データ項目が無効であることを表すために第1状態にセ
    ットされるコヒーレンシ・インディケータと、 を含む、データ処理システム。
  9. 【請求項9】前記第1クラスタの前記上位レベル・キャ
    ッシュにおける前記データ項目は第1データ項目であ
    り、 前記第1クラスタの前記上位レベル・キャッシュにおい
    て前記アドレス・タグと関連して有効な第2データ項目
    を記憶するための手段と、 前記第1クラスタの前記上位レベル・キャッシュにおけ
    る前記コヒーレンシ・インディケータを、前記第2デー
    タ項目が有効であること及び前記第1キャッシュがリク
    エストに応答して前記第2データ項目をソース化し得る
    ことを表す第2状態に更新するための手段と、 を更に含む請求項8に記載のデータ処理システム。
  10. 【請求項10】前記記憶するための手段は、前記コヒー
    レンシ・インディケータが前記第1状態にセットされて
    いる間に前記アドレス・タグによって表された前記アド
    レスと関連したデータ転送を検出したことに応答して、
    前記第1クラスタの前記上位レベル・キャッシュにおい
    て前記アドレス・タグと関連して有効な第2データ項目
    を記憶するための手段を含み、 前記データ転送は前記第2データ項目を含み、 前記第2データ項目はシステム・メモリにおける対応す
    るデータ項目に関して変更される請求項9に記載のデー
    タ処理システム。
  11. 【請求項11】前記データ転送は前記第1クラスタにお
    ける別の上位レベル・キャッシュによって前記第2デー
    タ項目を前記システム・メモリに書き戻すことを含む請
    求項10に記載のデータ処理システム。
  12. 【請求項12】前記コヒーレンシ・インディケータが前
    記第2状態にセットされている間に前記第2データ項目
    に対するリクエストを前記第1クラスタの前記上位レベ
    ル・キャッシュにおいて受け取ったことに応答して、前
    記第2データ項目をソース化するための手段と、 前記第1クラスタの前記上位レベル・キャッシュにおけ
    る前記コヒーレンシ・インディケータを第3状態に更新
    するための手段と、 を更に含む請求項9に記載のデータ処理システム。
  13. 【請求項13】前記第1クラスタの前記上位レベル・キ
    ャッシュは、前記データ処理システムにおけるプロセッ
    サが前記アドレス・タグによって表された前記アドレス
    に記憶する意図を表すことに応答して、前記前記コヒー
    レンシ・インディケータを前記第1状態にセットする請
    求項1に記載の方法。
  14. 【請求項14】前記第1クラスタ及び第2クラスタの1
    つにおける下位レベル・キャッシュにおけるコヒーレン
    シ・インディケータが前記第1状態にセットされ、 該コヒーレンシ・インディケータは前記アドレスを表す
    アドレス・タグと関連づけられる請求項8に記載のデー
    タ処理システム。
  15. 【請求項15】前記第1クラスタは、各々が共通のキャ
    ッシュ間接続線に結合された複数の上位レベル・キャッ
    シュを含む請求項8に記載のデータ処理システム。
  16. 【請求項16】前記第1クラスタは複数のプロセッサ及
    び複数の上位レベル・キャッシュを含み、前記複数の上
    位レベル・キャッシュの各々は前記複数のプロセッサの
    それぞれ1つのみによって直接にアクセス可能である請
    求項8に記載のデータ処理システム。
JP11026708A 1998-02-17 1999-02-03 マルチレベル・メモリ・ハイアラ―キを含むデ―タ処理システムのためのキャッシュ・コヒ―レンシ・プロトコル Pending JPH11272559A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/024,318 US6192451B1 (en) 1998-02-17 1998-02-17 Cache coherency protocol for a data processing system including a multi-level memory hierarchy
US09/024318 1998-02-17

Publications (1)

Publication Number Publication Date
JPH11272559A true JPH11272559A (ja) 1999-10-08

Family

ID=21819973

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11026708A Pending JPH11272559A (ja) 1998-02-17 1999-02-03 マルチレベル・メモリ・ハイアラ―キを含むデ―タ処理システムのためのキャッシュ・コヒ―レンシ・プロトコル

Country Status (8)

Country Link
US (1) US6192451B1 (ja)
EP (1) EP0936557B1 (ja)
JP (1) JPH11272559A (ja)
KR (1) KR100326980B1 (ja)
CN (1) CN1126046C (ja)
DE (1) DE69908204D1 (ja)
HK (1) HK1019800A1 (ja)
TW (1) TW439030B (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7035979B2 (en) 2002-05-22 2006-04-25 International Business Machines Corporation Method and apparatus for optimizing cache hit ratio in non L1 caches
US7073030B2 (en) 2002-05-22 2006-07-04 International Business Machines Corporation Method and apparatus providing non level one information caching using prefetch to increase a hit ratio
JP2007257631A (ja) * 2006-03-23 2007-10-04 Internatl Business Mach Corp <Ibm> 動作のスヌーピングに応答して無効コヒーレンシー状態を更新するデータ処理システム、キャッシュ・システム、および方法

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6275908B1 (en) * 1998-02-17 2001-08-14 International Business Machines Corporation Cache coherency protocol including an HR state
US6446237B1 (en) * 1998-08-04 2002-09-03 International Business Machines Corporation Updating and reading data and parity blocks in a shared disk system
US6578110B1 (en) * 1999-01-21 2003-06-10 Sony Computer Entertainment, Inc. High-speed processor system and cache memories with processing capabilities
US6405289B1 (en) * 1999-11-09 2002-06-11 International Business Machines Corporation Multiprocessor system in which a cache serving as a highest point of coherency is indicated by a snoop response
US6345344B1 (en) * 1999-11-09 2002-02-05 International Business Machines Corporation Cache allocation mechanism for modified-unsolicited cache state that modifies victimization priority bits
US6345343B1 (en) * 1999-11-09 2002-02-05 International Business Machines Corporation Multiprocessor system bus protocol with command and snoop responses for modified-unsolicited cache state
US6345342B1 (en) * 1999-11-09 2002-02-05 International Business Machines Corporation Cache coherency protocol employing a read operation including a programmable flag to indicate deallocation of an intervened cache line
US6349369B1 (en) * 1999-11-09 2002-02-19 International Business Machines Corporation Protocol for transferring modified-unsolicited state during data intervention
US6374333B1 (en) * 1999-11-09 2002-04-16 International Business Machines Corporation Cache coherency protocol in which a load instruction hint bit is employed to indicate deallocation of a modified cache line supplied by intervention
US6321306B1 (en) * 1999-11-09 2001-11-20 International Business Machines Corporation High performance multiprocessor system with modified-unsolicited cache state
US6519685B1 (en) * 1999-12-22 2003-02-11 Intel Corporation Cache states for multiprocessor cache coherency protocols
US6457104B1 (en) * 2000-03-20 2002-09-24 International Business Machines Corporation System and method for recycling stale memory content in compressed memory systems
US6904499B2 (en) * 2001-03-30 2005-06-07 Intel Corporation Controlling cache memory in external chipset using processor
TWI252406B (en) * 2001-11-06 2006-04-01 Mediatek Inc Memory access interface and access method for a microcontroller system
KR100434055B1 (ko) * 2002-04-27 2004-06-04 엘지전자 주식회사 이동통신 시스템의 캐시 일관성 유지 방법
US7281055B2 (en) * 2002-05-28 2007-10-09 Newisys, Inc. Routing mechanisms in systems having multiple multi-processor clusters
US7103636B2 (en) * 2002-05-28 2006-09-05 Newisys, Inc. Methods and apparatus for speculative probing of a remote cluster
US7003633B2 (en) * 2002-11-04 2006-02-21 Newisys, Inc. Methods and apparatus for managing probe requests
US7346744B1 (en) 2002-11-04 2008-03-18 Newisys, Inc. Methods and apparatus for maintaining remote cluster state information
US7296121B2 (en) * 2002-11-04 2007-11-13 Newisys, Inc. Reducing probe traffic in multiprocessor systems
US8185602B2 (en) 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
US7577755B2 (en) * 2002-11-19 2009-08-18 Newisys, Inc. Methods and apparatus for distributing system management signals
US20040117667A1 (en) * 2002-12-12 2004-06-17 Sun Microsystems, Inc. Synchronization facility for information domains employing replicas
US7334089B2 (en) * 2003-05-20 2008-02-19 Newisys, Inc. Methods and apparatus for providing cache state information
KR100531861B1 (ko) * 2003-05-31 2005-11-29 엘지전자 주식회사 무선 인터넷 환경에서의 캐쉬 일관성 유지 방법
US7386626B2 (en) * 2003-06-23 2008-06-10 Newisys, Inc. Bandwidth, framing and error detection in communications between multi-processor clusters of multi-cluster computer systems
US7337279B2 (en) * 2003-06-27 2008-02-26 Newisys, Inc. Methods and apparatus for sending targeted probes
US7395347B2 (en) * 2003-08-05 2008-07-01 Newisys, Inc, Communication between and within multi-processor clusters of multi-cluster computer systems
US7136967B2 (en) * 2003-12-09 2006-11-14 International Business Machinces Corporation Multi-level cache having overlapping congruence groups of associativity sets in different cache levels
US7395375B2 (en) * 2004-11-08 2008-07-01 International Business Machines Corporation Prefetch miss indicator for cache coherence directory misses on external caches
US7536513B2 (en) * 2005-03-31 2009-05-19 International Business Machines Corporation Data processing system, cache system and method for issuing a request on an interconnect fabric without reference to a lower level cache based upon a tagged cache state
CN100370440C (zh) * 2005-12-13 2008-02-20 华为技术有限公司 处理器***及其数据操作方法
US20070150663A1 (en) * 2005-12-27 2007-06-28 Abraham Mendelson Device, system and method of multi-state cache coherence scheme
US7512742B2 (en) * 2006-01-17 2009-03-31 International Business Machines Corporation Data processing system, cache system and method for precisely forming an invalid coherency state indicating a broadcast scope
US7571286B2 (en) * 2006-08-24 2009-08-04 International Business Machines Corporation Reduced memory traffic via detection and tracking of temporally silent stores
CN101296176B (zh) 2007-04-25 2010-12-22 阿里巴巴集团控股有限公司 一种基于群集的数据处理方法和装置
US7769957B2 (en) * 2007-06-22 2010-08-03 Mips Technologies, Inc. Preventing writeback race in multiple core processors
US20080320233A1 (en) * 2007-06-22 2008-12-25 Mips Technologies Inc. Reduced Handling of Writeback Data
US9037810B2 (en) 2010-03-02 2015-05-19 Marvell Israel (M.I.S.L.) Ltd. Pre-fetching of data packets
US9069489B1 (en) 2010-03-29 2015-06-30 Marvell Israel (M.I.S.L) Ltd. Dynamic random access memory front end
US8874855B2 (en) * 2009-12-28 2014-10-28 Empire Technology Development Llc Directory-based coherence caching
US8327047B2 (en) 2010-03-18 2012-12-04 Marvell World Trade Ltd. Buffer manager and methods for managing memory
US9558119B2 (en) 2010-06-23 2017-01-31 International Business Machines Corporation Main memory operations in a symmetric multiprocessing computer
US20120166739A1 (en) * 2010-12-22 2012-06-28 Andes Technology Corporation Memory module and method for atomic operations in a multi-level memory structure
CN102004803A (zh) * 2010-12-30 2011-04-06 用友软件股份有限公司 数据库资源的调度方法和装置
US9098203B1 (en) 2011-03-01 2015-08-04 Marvell Israel (M.I.S.L) Ltd. Multi-input memory command prioritization
CN102571569B (zh) * 2011-12-28 2015-04-01 方正国际软件有限公司 一种报文预知方法及***
US9767025B2 (en) 2012-04-18 2017-09-19 Qualcomm Incorporated Write-only dataless state for maintaining cache coherency
US9170955B2 (en) * 2012-11-27 2015-10-27 Intel Corporation Providing extended cache replacement state information
US9535832B2 (en) 2013-04-30 2017-01-03 Mediatek Singapore Pte. Ltd. Multi-hierarchy interconnect system and method for cache system
CN104951240B (zh) * 2014-03-26 2018-08-24 阿里巴巴集团控股有限公司 一种数据处理方法及处理器
JP6213366B2 (ja) * 2014-04-25 2017-10-18 富士通株式会社 演算処理装置とその制御方法
US9886382B2 (en) 2014-11-20 2018-02-06 International Business Machines Corporation Configuration based cache coherency protocol selection
US10324861B2 (en) * 2015-02-05 2019-06-18 Eta Scale Ab Systems and methods for coherence in clustered cache hierarchies
US10142436B2 (en) * 2015-11-19 2018-11-27 Microsoft Technology Licensing, Llc Enhanced mode control of cached data
US10795815B2 (en) * 2016-05-27 2020-10-06 Arm Limited Method and apparatus for maintaining data coherence in a non-uniform compute device
US10445094B2 (en) 2016-05-27 2019-10-15 Arm Limited Method and apparatus for reordering in a non-uniform compute device
US10552152B2 (en) 2016-05-27 2020-02-04 Arm Limited Method and apparatus for scheduling in a non-uniform compute device
US10423538B2 (en) 2017-11-29 2019-09-24 International Business Machines Corporation Bandwidth efficient techniques for enabling tagged memories

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4755930A (en) 1985-06-27 1988-07-05 Encore Computer Corporation Hierarchical cache memory system and method
JPH0680499B2 (ja) 1989-01-13 1994-10-12 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチプロセッサ・システムのキャッシュ制御システムおよび方法
US5287484A (en) * 1989-06-21 1994-02-15 Hitachi, Ltd. Multi-processor system for invalidating hierarchical cache
JP2820752B2 (ja) * 1990-01-19 1998-11-05 日本電信電話株式会社 密結合マルチプロセッサシステムにおけるキャッシュメモリ一致制御方法
CA2051209C (en) 1990-11-30 1996-05-07 Pradeep S. Sindhu Consistency protocols for shared memory multiprocessors
US5319766A (en) * 1992-04-24 1994-06-07 Digital Equipment Corporation Duplicate tag store for a processor having primary and backup cache memories in a multiprocessor computer system
JPH06110844A (ja) 1992-08-11 1994-04-22 Toshiba Corp 分散共有メモリ型マルチプロセッサシステム
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
US5671391A (en) 1994-01-10 1997-09-23 Ncr Corporation Coherent copyback protocol for multi-level cache memory systems
US5588131A (en) 1994-03-09 1996-12-24 Sun Microsystems, Inc. System and method for a snooping and snarfing cache in a multiprocessor computer system
CA2148186A1 (en) 1994-05-04 1995-11-05 Michael T. Jackson Processor board having a second level writeback cache system and a third level writethrough cache system which stores exclusive state information for use in a multiprocessor computer system
JPH1020205A (ja) 1996-07-09 1998-01-23 Yokogawa Electric Corp 共焦点用光スキャナ
US5900016A (en) * 1997-04-02 1999-05-04 Opti Inc. System for using a cache memory with a write-back architecture
US6275908B1 (en) * 1998-02-17 2001-08-14 International Business Machines Corporation Cache coherency protocol including an HR state

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7035979B2 (en) 2002-05-22 2006-04-25 International Business Machines Corporation Method and apparatus for optimizing cache hit ratio in non L1 caches
US7073030B2 (en) 2002-05-22 2006-07-04 International Business Machines Corporation Method and apparatus providing non level one information caching using prefetch to increase a hit ratio
JP2007257631A (ja) * 2006-03-23 2007-10-04 Internatl Business Mach Corp <Ibm> 動作のスヌーピングに応答して無効コヒーレンシー状態を更新するデータ処理システム、キャッシュ・システム、および方法

Also Published As

Publication number Publication date
US6192451B1 (en) 2001-02-20
DE69908204D1 (de) 2003-07-03
CN1226704A (zh) 1999-08-25
HK1019800A1 (en) 2000-02-25
KR19990072315A (ko) 1999-09-27
EP0936557A2 (en) 1999-08-18
EP0936557A3 (en) 2000-01-12
KR100326980B1 (ko) 2002-03-04
TW439030B (en) 2001-06-07
CN1126046C (zh) 2003-10-29
EP0936557B1 (en) 2003-05-28

Similar Documents

Publication Publication Date Title
JPH11272559A (ja) マルチレベル・メモリ・ハイアラ―キを含むデ―タ処理システムのためのキャッシュ・コヒ―レンシ・プロトコル
US6721848B2 (en) Method and mechanism to use a cache to translate from a virtual bus to a physical bus
US6408362B1 (en) Data processing system, cache, and method that select a castout victim in response to the latencies of memory copies of cached data
US20070136535A1 (en) System and Method for Reducing Unnecessary Cache Operations
US6405290B1 (en) Multiprocessor system bus protocol for O state memory-consistent data
KR100330934B1 (ko) 정밀 모드 및 비정밀 모드를 갖는 호버링(h) 상태를 포함하는 캐시 일관성 프로토콜
US6345341B1 (en) Method of cache management for dynamically disabling O state memory-consistent data
JPH11328015A (ja) 割振り解除方法およびデ―タ処理システム
EP0936558B1 (en) Cache coherency protocol having hovering (H) and recent (R) states
JP3286258B2 (ja) キャッシュ・コヒーレンシを維持する方法、キャッシュ・コヒーレンシをサポートするキャッシュ、及びデータ処理システム
US6397303B1 (en) Data processing system, cache, and method of cache management including an O state for memory-consistent cache lines
JP2004199677A (ja) キャッシュを動作させるためのシステム及び方法
US6279086B1 (en) Multiprocessor system bus with combined snoop responses implicitly updating snooper LRU position
US6442653B1 (en) Data processing system, cache, and method that utilize a coherency state to indicate the latency of cached data
US6415358B1 (en) Cache coherency protocol having an imprecise hovering (H) state for instructions and data
US6272603B1 (en) Cache coherency protocol having hovering (H), recent (R), and tagged (T) states
US6813694B2 (en) Local invalidation buses for a highly scalable shared cache memory hierarchy
US6356982B1 (en) Dynamic mechanism to upgrade o state memory-consistent cache lines
US6826654B2 (en) Cache invalidation bus for a highly scalable shared cache memory hierarchy
US6826655B2 (en) Apparatus for imprecisely tracking cache line inclusivity of a higher level cache
JPH11272556A (ja) 命令及びデ―タに対するホバ―リング(h)状態を有するキャッシュ・メモリ・プロトコル