JP3245125B2 - 垂直キャッシュのための擬似精細i−キャッシュ包含性 - Google Patents

垂直キャッシュのための擬似精細i−キャッシュ包含性

Info

Publication number
JP3245125B2
JP3245125B2 JP03158699A JP3158699A JP3245125B2 JP 3245125 B2 JP3245125 B2 JP 3245125B2 JP 03158699 A JP03158699 A JP 03158699A JP 3158699 A JP3158699 A JP 3158699A JP 3245125 B2 JP3245125 B2 JP 3245125B2
Authority
JP
Japan
Prior art keywords
cache
state
data item
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.)
Expired - Fee Related
Application number
JP03158699A
Other languages
English (en)
Other versions
JPH11328024A (ja
Inventor
ラビ・クマール・アリミリ
ジョン・スティーブン・ドットソン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH11328024A publication Critical patent/JPH11328024A/ja
Application granted granted Critical
Publication of JP3245125B2 publication Critical patent/JP3245125B2/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
    • 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)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、概していえば、垂
直キャッシュ・ハイアラーキにおける包含性(incl
usivity)に係り、詳しくいえば、キャッシュさ
れた命令に関する選択的包含性に係るものである。更に
詳しくいえば、本発明は、キャッシュされた命令が低い
キャッシュ・レベルにおける割振り解除によって廃棄さ
れることのないようにするための選択的包含性に関する
ものである。
【0002】
【従来の技術】スーパスカラ縮小命令セット(RIS
C)プロセッサは、一般に、記憶ハイアラーキの少なく
ともレベル1(L1)層においてデータ・キャッシュ及
び命令キャッシュに分離したキャッシュを含んでいる。
命令フェッチ及びデータ参照がプロセッサ・サイクル当
たり複数のキャッシュ・アクセスに及び易い現用のスー
パスカラ・プロセッサにおいては帯域幅が要求されるた
め、データ・キャッシュ及び命令キャッシュを分離する
ことが必要である。従って、L1キャッシュは、一般に
プロセッサ・ハードウエア内に組み込まれ且つ1プロセ
ッサ・サイクル又はそれ以下の待ち時間となるように設
計されており、命令及びデータ参照が同じプロセッサ・
サイクル中に別々のキャッシュに発せられるように、分
離構造になっているのが一般的である。
【0003】多くのデータ処理システムは、論理的には
イン・ラインであるマルチレベル・キャッシュ・ハイア
ラーキ、すなわち、高いレベルにあるキャッシュが先ず
チェックされ、高いレベルにおけるミスヒットが低いレ
ベルにおけるキャッシュへのアクセスを促すというマル
チレベル・キャッシュ・ハイアラーキを含み得るもので
ある。マルチレベル・キャッシュは、一般に、プロセッ
サに対してデータをステージ化してアクセス待ち時間を
縮小されたものにするために利用される。小型且つ高速
のキャッシュはキャッシュ・ハイアラーキの高いレベル
で使用され、一方、大型且つ低速のキャッシュは低いレ
ベルにおいて見られる。一般的には、垂直キャッシュ構
成は包含的(inclusive)であると考えられ
る。すなわち、各キャッシュの内容は、キャッシュ・ハ
イアラーキにおけるそれのすぐ上のレベルのキャッシュ
の内容を含んでいる。
【0004】システム・メモリから読み取られた新しい
命令又はデータのためのスペースがキャッシュ内に必要
とされる時、キャッシュはそのキャッシュのための実装
された特定の置換ポリシに従って1つの犠牲を選択す
る。複数のキャッシュに含まれた或るキャッシュ・ロケ
ーションが1つのキャッシュにおいて割振り解除される
場合、論理的にイン・ラインのキャッシュの包含性は、
他のキャッシュにおける同じロケーションを割振り解除
することによって維持される。しかし、これが望ましく
ない結果を引き起こすという状況がある。例えば、命令
を含むキャッシュ・ロケーションがレベル3(L3)キ
ャッシュにおいて割振り解除される場合、一般には同じ
スペースがレベル2(L2)キャッシュにおいても割振
り解除されるであろう。その後、プロセッサ/L1キャ
ッシュがL2キャッシュから命令を再ロードしようとす
る場合、それはL2キャッシュ及びL3キャッシュにお
いてミスヒットすることがあり、(キャッシュ・ハイア
ラーキにおいてそれ以上のレベルがないと仮定すれば)
システム・メモリから所望の命令をアクセスする必要が
ある。命令の再ロードは、例えば、予測誤りのブランチ
が実行される時に必要となることがある。一般に、シス
テム・メモリからの読取りと関連した待ち時間はL2及
びL3キャッシュと関連した待ち時間よりもずっと大き
いので、大きなパフォーマンス遅延が惹起されることが
ある。
【0005】キャッシュ・ロケーションが割振り解除さ
れる時に命令が廃棄されることを防ぐ場合の1つの問題
点は、キャッシュ内のデータと命令とを区別するための
完全な機構が存在しないことである。システム・メモリ
内のプログラム・ソース・コードは、命令及びデータの
区別不可能な混合体を含むことがある。これは、例え
ば、ローダ・プログラムが、コードをシステム・メモリ
にロードした後のコード・リンケージを解決するという
場合に生じ得るものである。従って、置換ポリシが別の
犠牲を選択すべく設計されるように1つの犠牲が選択さ
れる時、命令を確実に識別するための手段は存在しな
い。更に、すべてのキャッシュ・レベルがL1命令キャ
ッシュを包含することは必要ない。命令の再ロードの待
ち時間を最小にするためには、L2キャッシュがL1命
令キャッシュの現在及び最近の内容を包含していること
が望ましいだけである。キャッシュ・ハイアラーキのす
べてのレベルにおいて同様の包含性を必要とすること
は、キャッシュ全体の効率を損なうものである。
【0006】従って、キャッシュ・ハイアラーキの高い
レベルでは命令に関して選択的包含性を維持するための
機構を設けることが望ましいであろう。その機構が低い
キャッシュ・レベルにおける割振り解除による影響を受
けず、従って、命令キャッシュ包含性がすべてのキャッ
シュ・レベルにおいて必要とされないならば、それは更
に有利なことであろう。
【0007】
【発明が解決しようとする課題】従って、本発明の目的
は、垂直キャッシュ・ハイアラーキにおける包含性の改
良されたシステムを提供することにある。
【0008】本発明のもう1つの目的は、垂直キャッシ
ュ・ハイアラーキにおいてキャッシュされた命令に関し
て選択的な包含性を提供する方法及びシステムを提供す
ることにある。
【0009】本発明の更にもう1つの目的は、キャッシ
ュされた命令が低いキャッシュ・レベルにおける割振り
解除のために廃棄されないようにするための選択的な包
含性を提供することにある。
【0010】
【課題を解決するための手段】上記の目的は、次に説明
するようにして達成される。分離したレベル1(L1)
データ・キャッシュ及び命令キャッシュを持ったプロセ
ッサにとってアクセス可能であるレベル2(L2)キャ
ッシュ内に、変形MESIキャッシュ・コヒーレンシ・
プロトコルが実装される。変形MESIキャッシュ・プ
ロトコルは共用状態に関する2つのサブ状態を含む。そ
れらのサブ状態は、共用状態と同じコヒーレンシ情報及
び当該キャッシュ・エントリの内容/コヒーレンシに関
する付加情報を表す。1つのサブ状態SIC0 は、内容が
命令フェッチ・オペレーションの結果としてシステム・
メモリから検索されたので、キャッシュ・エントリが命
令を含むものと仮定されることを表す。第2のサブ状態
IC1 は同じ情報を表す他に、そのコヒーレンシが第1
の共用サブ状態にあった時、1つのスヌープされたフラ
ッシュ・オペレーションが当該キャッシュ・エントリを
ヒットしたということを表す。
【0011】低いレベル(例えば、L3)キャッシュ内
の共用コヒーレンシ状態に関する第1のサブ状態におけ
るキャッシュ・エントリを割振り解除することは、L2
キャッシュにおける同じキャッシュ・エントリの内容が
無効にされるという結果を生じない。一旦第1のサブ状
態に入ると、命令を無効にするように設計されたオペレ
ーションを受け取らない限り、コヒーレンシ状態は無効
状態に遷移しない。内容が命令を含むという推測を否定
するローカル・プロセッサからのオペレーションは、コ
ヒーレンシ状態を通常の共用状態に遷移させることがで
きる。2つのコヒーレンシ・サブ状態におけるキャッシ
ュ・エントリの内容はデータではなく命令であると推測
されるので、L2キャッシュにおける命令はスヌープさ
れたフラッシュの結果として廃棄されず、生じ得る再ロ
ードのためにローカル・プロセッサによって保持され
る。
【0012】上記の及び更なる本発明の目的、特徴、及
び利点は、以下の詳細な記述から明らかとなるであろ
う。
【0013】
【発明の実施の形態】図面、特に、図1を参照すると、
本発明の望ましい実施例によるマルチプロセッサ・デー
タ処理システムが示される。データ処理システム100
は、複数のプロセッサ102及び104を含む対称マル
チプロセッサ(SMP)システムである。それらのプロ
セッサは、米国ニューヨーク州アーモンクのインターナ
ショナル・ビジネス・マシーンズ・コーポレイション
(IBM社)から入手可能なプロセッサのうちのPow
erPC(商標)ファミリの1つを含むものが望まし
い。その例示的実施例には、2つのプロセッサしか示さ
れていないけれども、更なるプロセッサが本発明による
マルチプロセッサ・データ処理システムにおいて利用可
能であることは当業者には明らかであろう。
【0014】各プロセッサ102及び104は、それぞ
れ、レベル1(L1)データ・キャッシュ106及び1
08、並びにL1命令キャッシュ110及び112を含
む。例示的な実施例では、命令キャッシュ及びデータ・
キャッシュが分離して示されているけれども、単一の一
体化したL1キャッシュが実施可能であることは当業者
には明らかであろう。データ・アクセス待ち時間を最小
にするために、レベル2(L2)キャッシュ114及び
116並びにレベル3(L3)キャッシュ118及び1
19のような1つ又は複数の更なるレベルのキャッシュ
・メモリがデータ処理システム100において実装可能
である。低いキャッシュ・レベルL2及びL3はL1キ
ャッシュに対するデータをステージ化するために使用さ
れるが、一般に、漸進的に大きい記憶容量を持つが長い
アクセス待ち時間を有する。例えば、データ・キャッシ
ュ106及び108、並びに命令キャッシュ110及び
112は、それぞれ、32KBの記憶容量及び約1−2
プロセッサ・サイクルのアクセス待ち時間を持つもので
よい。L2キャッシュ114及び116は512KBの
記憶容量及び5プロセッサ・サイクルのアクセス待ち時
間を有し、一方、L3キャッシュ118及び119は4
MBの記憶容量及び15プロセッサ・サイクルよりも大
きいアクセス待ち時間を有するものでよい。従って、L
2キャッシュ114及び116並びにL3キャッシュ1
18及び119は、プロセッサ102及び104とシス
テム・メモリ120との間の中間記憶装置として働く。
システム・メモリ120は、一般に、ずっと大きい記憶
容量を持つが、50プロセッサ・サイクルよりも大きい
アクセス待ち時間を持つものでよい。
【0015】キャッシュ・ハイアラーキにおけるレベル
の数及びデータ処理システム100において使用される
キャッシュ・ハイアラーキ構成は共に変更可能である。
図示の例におけるL2キャッシュ114及び116は、
それぞれのプロセッサ102及び104とシステム・メ
モリ120との間に(システム・バス122を介して)
接続された専用のキャッシュである。L3キャッシュ1
18及び119は、L2キャッシュ114及び116と
共に論理的に垂直なルックアサイド・キャッシュとして
示される。その結果、データ又は命令は、キャッシュ1
14又は116の一方及びL3キャッシュ118又は1
19の一方を同時にルックアップされる。しかし、それ
ぞれのL2キャッシュ114又は116がミスヒット
し、一方、L3キャッシュ118又は119がヒットす
る場合、データ又は命令はL3キャッシュ118又は1
19から検索されるだけであろう。図示のレベル及び構
成の種々の変更が実施可能であることは当業者には明ら
かであろう。
【0016】L2キャッシュ114及び116並びにL
3キャッシュ118及び119は、システム・バス12
2を介してシステム・メモリ120に接続される。シス
テム・バス122には、更に、ディスプレイ(図示され
ていない)のための接続線を提供するグラフィックス・
アダプタのようなメモリ・マップされたデバイス124
及び入出力(I/O)バス・ブリッジ126が接続され
る。I/Oバス・ブリッジ126はシステム・バス12
2をI/Oバス128接続し、I/Oバス128はI/
Oデバイス130及び不揮発性メモリ132のための接
続線を提供することができる。従って、システム・バス
122、I/Oバス・ブリッジ126、及びI/Oバス
128は付属のデバイスを結合する相互接続線を形成す
る。なお、その相互接続線に対する代替えの実施方法は
その分野において知られていることである。
【0017】I/Oデバイス130は、キーボード、マ
ウス又はトラックボールのようなグラフィカル・ポイン
ティング・デバイス、ディスプレイ、及びプリンタを含
む通常の周辺装置を含み、それらの周辺装置は通常のア
ダプタを介してI/Oバス128にインターフェースさ
れる。不揮発性メモリ132はハードディスク・ドライ
ブを含むものでよく、システム100のオペレーション
を制御するオペレーティング・システム及び他のソフト
ウエアを記憶する。それらは、システム100がパワー
・オンされることに応答して揮発性のシステム・メモリ
120にロードされる。データ処理システム100が、
シリアル及びパラレル・ポート、ネットワーク又は付属
のデバイスに対する接続線、システム・メモリ120へ
のアクセスを調整するメモリ・コントローラ等のような
図1に示されていない多くの更なるコンポーネントを含
み得ることは当業者には明らかであろう。そのような修
正及び変更は本発明の精神及び技術的範囲内である。
【0018】システム・バス122を介する代表的なコ
ミュニケーション・トランザクションは、そのトランザ
クションのソースを表すソース・タグ、そのトランザク
ションの意図された受信者を指定する宛先タグ、アドレ
ス、及び/又は、データを含む。システム・バス122
に接続された各デバイスは、システム・バス122にお
けるすべてのコミュニケーション・トランザクションを
スヌープすることが望ましく、他の受信者に対して意図
されたコミュニケーション・トランザクションに必要に
応じて介入し、そのデバイスにおける複写されたシステ
ム・メモリのデータに対する変更を、それが実行可能で
あり且つ適正である時に再生することが望ましい。
【0019】図2を参照すると、本発明の望ましい実施
例によるL2キャッシュのブロック図が示される。本発
明は、図3に示された状態図と関連して説明されるME
SIキャッシュ・コヒーレンシ・プロトコルの変形バー
ジョンを実施することによって、図1に示されたL2キ
ャッシュ114及び116のようなL2キャッシュ内の
擬似精度の命令キャッシュ包含性をサポートする。L2
キャッシュ200は、32ビット・アドレスを利用する
nウェイ・セット連想キャッシュであってもよい。従っ
て、L2キャッシュ200におけるキャッシュ・メモリ
又はデータ・アレイ202は、各々がn個のキャッシュ
・ラインを記憶するための十分なメモリを含む複数のコ
ングルーエンス・クラス又は行を含む。キャッシュ・ラ
インはキャッシュ・ブロックとも呼ばれ、コヒーレンシ
状態が記述するキャッシュ・メモリの単位である。一般
的には、キャッシュ・ラインは、現在のデータ処理シス
テムでは、32、64、又は128バイトの長さであ
る。
【0020】キャッシュ・ディレクトリ204は複数の
行を含み、各行はn個のディレクトリ・エントリを含
み、各ディレクトリ・エントリはキャッシュ・メモリ2
02の同等の行における対応するキャッシュ・ラインと
関連づけられる。各ディレクトリ・エントリはタグ・フ
ィールド206、コヒーレンシ状態フィールド208、
LRUフィールド210、及び包含(I)フィールド2
12を含む。タグ・フィールド206は、関連のキャッ
シュ・ラインに記憶されたデータのシステム・メモリ・
アドレスのタグ・フィールド(例えば、ビット[0−1
9])を記憶するために利用される。コヒーレンシ状態
フィールド208は、事前定義されたビットの組合せを
通して関連のキャッシュ・ラインに記憶されたデータの
コヒーレンシ状態を定義する。LRUフィールド210
は、どの程度最近その関連のキャッシュ・ラインがコン
グルーエンス・クラスにおける他のキャッシュ・ライン
に関してアクセスされたかを表し、従って、キャッシュ
・ラインを置換する必要が生じた場合、どのキャッシュ
・ラインがコングルーエンス・クラスからキャスト・ア
ウトされなければならないかを表す。最後に、包含フィ
ールド212は、関連のキャッシュ・ラインが、図1に
示されたL1データ・キャッシュ106及び108並び
にL1命令キャッシュ110及び112のような論理的
にイン・ラインのL1キャッシュにも記憶されるかどう
かを表す。
【0021】更に、図2を参照すると、L2キャッシュ
200はキャッシュ・コントローラ214も含む。キャ
ッシュ・コントローラ214は、キャッシュ・メモリ2
02からのキャッシュ・ラインの記憶及び検索を管理
し、キャッシュ・ディレクトリ204を更新する。キャ
ッシュ・コントローラ214は、図1に示されたプロセ
ッサ102又は104のような関連のプロセッサから受
け取った信号に応答して、又はシステム・バスからスヌ
ープされたトランザクションに応答して作用する。従っ
て、キャッシュ・コントローラ214は、資源が使用可
能になるまで遂行されるべきアクションが置かれている
読取りキュー216及び書込みキュー218を含む複数
のキューを含んでいる。例えば、ローカル・プロセッサ
は、ロード命令を実行した結果として、L2キャッシュ
200に読取りリクエストを発生することがある。キャ
ッシュ・コントローラ214は読取りキュー216にお
けるエントリにその読取りリクエストを入れ、リクエス
トされたデータをローカル・プロセッサに供給すること
によってそのリクエストをサービスし、しかる後、その
読取りリクエストを読取りキュー216から除去する。
キャッシュ・コントローラ214は、リクエストされた
データを含むキャッシュ・ラインと関連したLRUフィ
ールド210及び包含フィールド212を更新するため
に、書込みキュー218に書込みリクエストを入れるこ
とも可能である。別の例として、リモート・プロセッサ
は、それのローカル・キャッシュにおける指定されたキ
ャッシュ・ラインを変更する意図を表すシステム・バス
・トランザクションを開始させてもよい。
【0022】キャッシュ・コントローラ214は、この
トランザクションをシステム・バスからスヌープするこ
とに応答して、キャッシュ・ディレクトリ204を読み
取るというリクエストを読取りキュー216に入れ、そ
の指定されたキャッシュ・ラインがキャッシュ・メモリ
204内に存在するかどうかを決定することができる。
それが肯定される場合、キャッシュ・コントローラ21
4はシステム・バス上に適切な応答を開始し、必要な場
合には、サービスされる時、指定されたキャッシュ・ラ
インと関連したキャッシュ・ディレクトリ204におけ
るコヒーレンシ・フィールド208を更新する書込みリ
クエストを書込みキュー218に入れる。図2の例示的
実施例には、1つの読取りキュー216及び1つの書込
みキュー218だけが示されるけれども、キャッシュ・
コントローラ214によって使用されるキューの数は設
計選択の問題であること、及びキャッシュ・メモリ・ア
クセスと対照したものとしてのキャッシュ・ディレクト
リ・アクセスに対して又はシステム・バスからスヌープ
されたトランザクションではなくローカル・プロセッサ
から受け取った信号に対して、或いはそれらの両方に対
して、実施可能であることは当業者には明らかであろ
う。
【0023】1つの望ましい実施例では、キャッシュ・
ディレクトリ204における各エントリのコヒーレンシ
状態フィールド208はシステムのパワー・オン時に無
効(I)状態に初期設定されて、タグ・フィールド20
6及びキャッシュ・メモリ202における関連のキャッ
シュ・ラインに記憶されたデータの両方が無効であるこ
とを表す。しかる後、コヒーレンシ状態フィールド20
8は、詳しく後述される変形MESIコヒーレンシ・プ
ロトコルにおけるコヒーレンシ状態に更新可能である。
コヒーレンシ状態フィールド208が遷移する状態は、
更に詳しく後述されるように、そのシステムにおけるプ
ロセッサによって行われるメモリ・アクセスのタイプ及
びそれらのアクセスに対する記憶コヒーレンシの応答の
両方に依存する。リクエストされたキャッシュ・ライン
のコヒーレンシ状態フィールド208において表された
コヒーレンシ状態に基づいて、キャッシュ・コントロー
ラ214はスヌープされたシステム・バス・オペレーシ
ョンに種々に応答して、図1に示されたL3キャッシュ
118のようなL3キャッシュがそれのキャッシュ・メ
モリにおける指定のキャッシュ・ラインを割振り解除し
ようとしていることを表す。
【0024】次に図3を参照すると、本発明の望ましい
実施例による変形MESIキャッシュ・コヒーレンシ・
プロトコルの状態図が示される。変形MESIプロトコ
ルはL2キャッシュにおいてのみ実施される。通常のM
ESIプロトコルは低いキャッシュ・レベルで実施され
る。変形MESIプロトコルは、通常のMESIプロト
コルにおいて利用される同じ4つの基本状態、すなわ
ち、キャッシュ・ラインが、システム・メモリのデータ
も変更するということなくシステム・メモリにおける対
応するデータに関して変更され、従って、そのデータの
有効コピーだけがその変更されたキャッシュ・ライン又
はセクタを記憶するキャッシュ・エントリ内にあるとい
うことを表す変更(M)状態302、キャッシュ・エン
トリはシステム・メモリと整合しているが、主題のキャ
ッシュにおいて記憶ハイアラーキのそのレベルにおける
すべてのキャッシュ内で見られるだけであることを表す
排他的(E)状態304、そのデータのすべてのコピー
がシステム・メモリにおける対応するデータと整合して
いる場合、キャッシュ・エントリが当該キャッシュにお
いて及び記憶ハイアラーキの同じレベルにおける少なく
とも1つの他のキャッシュにおいて見られるということ
を表す共用(S)状態306、及び所与のキャッシュ内
のキャッシュ・エントリ、すなわち、データ及びアドレ
ス・タグが最早システム・メモリとコヒーレントではな
く、或いは記憶ハイアラーキにおける他のキャッシュと
コヒーレントではないことを表す無効(I)状態308
を含んでいる。
【0025】変更状態302及び排他的状態304がサ
ポートされるけれども、本発明はデータよりもむしろ命
令を含むものと思われるキャッシュ・ロケーションに関
するものである。従って、これらの状態は関連のキャッ
シュ・ロケーションに適用可能である必要はなく、本願
ではこれを十分には説明しないことにする。
【0026】変形MESIプロトコルは、共用状態30
6の変形又はサブ状態である2つの更なる状態も含む。
IC0 状態310は、そのキャッシュ・エントリのすべ
てのコピーがシステム・メモリと整合している場合、キ
ャッシュ・エントリが当該キャッシュにおいて及び記憶
ハイアラーキにおいて同じレベルにある少なくとも1つ
の他のキャッシュにおいて見られるということを表し、
当該キャッシュ・エントリが命令フェッチの結果として
ロードされたことも表す。SIC1 状態312は、そのキ
ャッシュ・エントリのすべてのコピーがシステム・メモ
リと整合している場合、キャッシュ・エントリが当該キ
ャッシュにおいて及び記憶ハイアラーキの同じレベルに
おける少なくとも1つの他のキャッシュにおいて見られ
るということを表し、更に、当該キャッシュ・エントリ
が命令フェッチの結果としてロードされたこと及び同じ
キャッシュ・エントリが記憶ハイアラーキの低いレベル
において割振り解除されてしまったことも表す。低いレ
ベルのキャッシュによる割振り解除にも関わらず、L2
キャッシュ・エントリにおける命令は、L1キャッシュ
によって生じ得るアクセスのために維持される。
【0027】変形MESIプロトコルにおける状態遷移
は、キャッシュ・エントリがロードされることを指示し
たメモリ・アクセスの性質及び現在のメモリ・アクセス
の性質の両方に依存する。データがローカル・プロセッ
サによるデータ読取り(すなわち、ロード命令によって
指示されたデータ読取りオペレーション)の結果として
キャッシュ・ロケーションに記憶される場合、キャッシ
ュ・ラインの内容はデータを含み、コヒーレンシ状態は
無効状態308から共用状態306に遷移するものと仮
定する。一方、キャッシュ・ブロックの内容が命令フェ
ッチの結果として検索された場合、そのキャッシュ・ロ
ケーションの内容は命令を含み、コヒーレンシ状態は無
効状態308からSIC0 310に遷移するものと仮定す
る。SIC 0 状態310におけるキャッシュ・ロケーショ
ンがローカル・プロセッサによって開始されたその後の
データ読取りオペレーションの対称である場合、命令を
含むキャッシュ内容に関する元の仮定は否定され、コヒ
ーレンシ状態遷移はSIC0から共用状態306に遷移す
る。しかし、そうでなく、SCI0 状態310におけるキ
ャッシュ・エントリが、低いレベルのキャッシュによる
割振り解除に起因するようなスヌープされたフラッシュ
・オペレーションによってヒットされる場合、コヒーレ
ンシ状態はSIC0 310からSIC1 312に遷移する。
【0028】一旦、コヒーレンシ状態がSIC1 312に
遷移すると、同じロケーションに対するその後のスヌー
プされたフラッシュ・ヒットは無視され、ローカル・プ
ロセッサからのデータ読取りオペレーション又は「変更
をする意図を持った読取り」(rwitm)オペレーシ
ョンはミスヒットしたものとして扱われる。コヒーレン
シ状態は、命令キャッシュ・ブロック無効化(icb
i)オペレーション又は同等のオペレーションの結果と
してのみ、SIC0 状態310又はSIC1 状態312から
無効状態308に遷移する。図3に示された変形MES
Iプロトコルにおいて行われ得る状態遷移が下記の表1
において要約される。
【表1】
【0029】コヒーレンシ状態遷移は、記憶ハイアラー
キにおける更なる低いキャッシュ・レベルを有するデー
タ処理システムのL2キャッシュにおいて生じるだけで
ある。同じオペレーションが、通常のMESIプロトコ
ルに続く低いレベルのキャッシュに種々のコヒーレンシ
状態遷移を受けされる。特定のキャッシュ・エントリに
関する種々の共通オペレーションに起因するL2及びL
3キャッシュにおける種々のコヒーレンシ状態遷移が下
記の表2において比較される。
【表2】
【0030】表2における重要な相違点は、スヌープさ
れたフラッシュの結果として、L2及びL3キャッシュ
におけるコヒーレンシ状態遷移の違いである。L3キャ
ッシュは、従来技術において考えられたようなキャッシ
ュ・エントリを割振り解除する。しかし、L2キャッシ
ュはキャッシュ・エントリを保持し、コヒーレンシ状態
に対する遷移は、そのキャッシュ・エントリが命令を含
むものと仮定されること及び低いレベルのキャッシュに
おける同じキャッシュ・エントリが割振り解除されてし
まったことを表す。従って、L2キャッシュは、ローカ
ル・プロセッサによるその後に生じ得る再ロードのため
の予測される命令を保持する。L2キャッシュはローカ
ル・プロセッサのL1命令キャッシュの現在及び最近の
内容を含んでいるが、L3キャッシュは同じ内容を含ん
でいる必要はない。従って、命令に関する選択的な包含
性はキャッシュ・ハイアラーキの高いレベルにおいて維
持され、一方、キャッシュ全体の効率は完全な垂直包含
性を必要とすることによって低下するものではない。従
って、本発明は、低いレベルのキャッシュにおける割振
り解除に起因する逆方向フラッシュによってL2キャッ
シュにおける命令が廃棄されないようにする。更なるコ
ヒーレンシ状態はオーバヘッドの実質的な増加を必要と
せず、変更はマルチレベル・キャッシュ・ハイアラーキ
におけるL2キャッシュにおいて実施される必要がある
だけである。
【0031】通常のMESIプロトコルの変更だけを上
述したけれども、本発明は、共用状態の本質的には別の
変形である最近(R)状態が、(1)キャッシュ・エン
トリが対象のキャッシュと、記憶ハイアラーキにおいて
同じレベルにある少なくとも1つの他のキャッシュとの
両方において見られるかもしれないこと、並びに、対象
のキャッシュ及び他のキャッシュにおけるデータのすべ
てのコピーがシステム・メモリにおける対応するデータ
と整合していること、及び、(2)共用データを含むす
べてのキャッシュのうち、対象のキャッシュがシステム
・メモリからの読取りのようなシステム・バス・トラン
ザクションにおいてデータを最も最近受け取ったこと、
を表す。R状態は、米国特許出願番号08/839,5
57の未決出願において更に十分に説明されている。キ
ャッシュ・エントリがデータよりもむしろ命令を含むも
のと仮定されること、及び/又は、同じキャッシュ・エ
ントリが低いレベルのキャッシュにおいて割振り解除さ
れていることを表す最近状態のサブ状態は、SIC0 及び
IC1 状態に同等の方法で実施可能である。
【0032】本発明を望ましい実施例に関連して図示
し、説明したけれども、本発明の精神及び技術的範囲か
ら逸脱することなく、形態及び詳細における種々の変更
を行い得ることは当業者には明らかであろう。
【0033】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0034】(1)システム・メモリ及び複数のキャッ
シュを含むデータ処理システムにおいてキャッシュ・コ
ヒーレンシを維持する方法にして、データ項目を第1キ
ャッシュに検索する命令フェッチ・オペレーションを遂
行するステップと、前記データ項目が前記第1キャッシ
ュ及び少なくとも1つの他のキャッシュにおいて検出可
能であること、前記データ項目を含むすべてのキャッシ
ュがシステム・メモリとコヒーレントであること、及び
前記データ項目が命令フェッチ・オペレーションによっ
て検索されたものであることを表す第1状態に、前記デ
ータ項目に対するコヒーレンシ・インディケータをセッ
トするステップと、を含む方法。 (2)前記第1状態は前記データ項目が命令を含むもの
と仮定されていることを表す上記(1)に記載の方法。 (3)前記第1状態は命令フェッチ・オペレーションに
起因した共用状態である上記(1)に記載の方法。 (4)命令キャッシュ・ロケーションを無効にするオペ
レーションを検出すること及び前記コヒーレンシ・イン
ディケータが前記第1状態にある間、前記データ項目と
関連したアドレス・タグを含んでいることに応答して、
前記データ項目が無効であることを表す第3状態に前記
コヒーレンシ・インディケータを更新するステップを更
に含む上記(1)に記載の方法。 (5)前記コヒーレンシ・インディケータが前記第1状
態にある間、前記データ項目と関連したアドレス・タグ
を含むデータ読取りオペレーションを検出することに応
答して、前記データ項目が前記第1キャッシュ及び少な
くとも1つの他のキャッシュにおいて検出され得るある
こと、前記データ項目を含むすべてのキャッシュが前記
システム・メモリとコヒーレントであること、及び前記
データ項目が命令を含むものと仮定されないことを表す
第2状態に前記コヒーレンシ・インディケータを更新す
るステップを更に含む上記(1)に記載の方法。 (6)前記第2状態は共用状態である上記(5)に記載
の方法。 (7)前記コヒーレンシ・インディケータが前記第1状
態にある間、前記データ項目と関連したアドレス・タグ
を含むスヌープされたフラッシュ・オペレーションを検
出することに応答して、前記データ項目が前記第1キャ
ッシュにおいて検出され得ること、前記第1キャッシュ
が前記システム・メモリとコヒーレントであること、及
び論理的にイン・ラインであり且つ前記第1キャッシュ
の下にある他のキャッシュが前記データ項目を含まない
ことを表す第2状態に前記コヒーレンシ・インディケー
タを更新するステップを更に含む上記(1)に記載の方
法。 (8)前記第2状態への遷移は、論理的にイン・ライン
であり且つ前記第1キャッシュの下にある第2キャッシ
ュ内の前記データ項目を含むキャッシュ・ロケーション
の割振り解除に起因する上記(7)に記載の方法。 (9)命令キャッシュ・ロケーションを無効にするオペ
レーションを検出すること及び前記コヒーレンシ・イン
ディケータが前記第2状態にある間、前記データ項目と
関連したアドレス・タグを含んでいることに応答して、
前記データ項目が無効であることを表す第3状態に前記
コヒーレンシ・インディケータを更新するステップを更
に含む上記(7)に記載の方法。 (10)第1キャッシュを有するプロセッサと、前記プ
ロセッサに接続された第2キャッシュと、前記第2キャ
ッシュに接続され、論理的には前記第2キャッシュの下
にある第3キャッシュと、前記第2キャッシュ内にある
データ項目と関連付けられ、前記データ項目が前記第2
キャッシュ及び少なくとも1つの他のキャッシュにおい
て検出可能であること、前記データ項目を含むすべての
キャッシュがシステム・メモリとコヒーレントであるこ
と、及び前記データ項目が命令フェッチ・オペレーショ
ンによって検索されたものであることを表す第1状態を
有するコヒーレンシ・インディケータと、を含むデータ
処理システム。 (11)前記コヒーレンシ・インディケータは前記デー
タ項目が前記第2キャッシュにおいて検出可能であるが
前記第3キャッシュにおいては検出可能でないことを表
す第2状態を有する上記(10)に記載のデータ処理シ
ステム。 (12)前記第1キャッシュは前記プロセッサにおいて
データ・キャッシュとは別個に命令キャッシュを含み、
前記コヒーレンシ・インディケータは前記データ項目が
無効であることを表す第3状態を有し、前記第1キャッ
シュにおけるキャッシュ・ロケーションを無効にするオ
ペレーションに応答して前記第2状態から前記第3状態
に遷移する上記(11)に記載のデータ処理システム。 (13)前記第1キャッシュは前記プロセッサにおいて
キャッシュ・メモリとは別個に命令キャッシュを含み、
前記コヒーレンシ・インディケータは前記データ項目が
無効であることを表す第2状態を有し、前記第1キャッ
シュにおけるキャッシュ・ロケーションを無効にするオ
ペレーションに応答して前記第1状態から前記第2状態
に遷移する上記(10)に記載のデータ処理システム。 (14)前記第1状態は前記データ項目が命令を含むも
のと仮定されることを表す上記(10)に記載のデータ
処理システム。 (15)前記コヒーレンシ・インディケータは、前記デ
ータ項目が前記第2キャッシュ及び少なくとも1つの他
のキャッシュにおいて検出可能であること、前記データ
項目を含むすべてのキャッシュが前記システム・メモリ
とコヒーレントであること、及び前記データ項目が命令
を含むものと仮定されないことを表す第2状態を有する
上記(10)に記載のデータ処理システム。 (16)前記コヒーレンシ・インディケータは前記デー
タ項目を前記プロセッサにおける別のデータ・キャッシ
ュに検索するオペレーションに応答して前記第1状態か
ら前記第2状態に遷移する上記(10)に記載のデータ
処理システム。 (17)データ処理システムにおいてキャッシュ・コヒ
ーレンシ・プロトコルをサポートするキャッシュにし
て、複数のキャッシュ・ロケーションを含むデータ記憶
装置と、各々が前記複数のキャッシュ・ロケーションに
おける1つのキャッシュ・ロケーションと一意的に関連
付けられる複数のディレクトリ・エントリを含むキャッ
シュ・ディレクトリと、少なくとも1つのディレクトリ
・エントリ内にあって、関連するキャッシュ・ロケーシ
ョンにおけるデータ項目がシステム・メモリとコヒーレ
ントであり且つ命令フェッチ・オペレーションによって
検索されたことを表す第1状態を有するコヒーレンシ・
インディケータと、を含むキャッシュ。 (18)前記第1状態は前記キャッシュ・ロケーション
が命令を含むものと仮定されることを表す上記(17)
に記載のキャッシュ。 (19)前記コヒーレンシ・インディケータは、前記関
連するキャッシュ・ロケーションにおけるデータ項目が
前記キャッシュと論理的にイン・ラインにあり且つ前記
キャッシュの下にある他のキャッシュにおいて検出され
得ないことを表す第2状態を有する上記(17)に記載
のキャッシュ。 (20)前記コヒーレンシ・インディケータは前記デー
タ項目が命令を含むものと仮定されないことを表す第2
状態を有する上記(17)に記載のキャッシュ。
【図面の簡単な説明】
【図1】本発明の望ましい実施例に従ってマルチプロセ
ッサ・データ処理システムを示す。
【図2】本発明の望ましい実施例に従ってL2キャッシ
ュのブロック図を示す。
【図3】本発明の望ましい実施例に従って変形MESI
キャッシュ・コヒーレンシ・プロトコルの状態図を示
す。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョン・スティーブン・ドットソン アメリカ合衆国78660、テキサス州フル ゲールヴィッレ、ベル・ロック・サーク ル 1205 (56)参考文献 特開 平10−289154(JP,A) 特開 平7−121442(JP,A) 特開 平8−235061(JP,A) 特開 平2−253356(JP,A) 特開 平4−174042(JP,A) 特開 平5−324466(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 12/08 G06F 15/16 - 15/177

Claims (20)

    (57)【特許請求の範囲】
  1. 【請求項1】システム・メモリ(120)及び3以上に
    階層化された複数のキャッシュ(106〜119)を含
    むデータ処理システムにおいてキャッシュ・コヒーレン
    シを維持する方法にして、 データ項目を第1キャッシュ(106〜112)に検索
    する命令フェッチ・オペレーションを遂行するステップ
    と、 前記データ項目のコヒーレンシ・インディケータ(20
    8)を第1状態(310)に設定するステップとを含
    み、 前記第1状態は、前記データ項目が前記第1キャッシュ
    と少なくとも他のいずれかのキャッシュ(114〜11
    9)とに記憶され、前記データ項目を記憶するキャッシ
    ュの全てとシステム・メモリとがコヒーレントであり、
    前記データ項目が命令フェッチ・オペレーションによっ
    て検索されたことを表す方法。
  2. 【請求項2】前記第1状態は、前記データ項目が命令を
    含むものと仮定されていることを表す請求項1に記載の
    方法。
  3. 【請求項3】前記第1状態は、命令フェッチ・オペレー
    ションに起因した共用状態である請求項1に記載の方
    法。
  4. 【請求項4】前記コヒーレンシ・インディケータが前記
    第1状態にある間、前記データ項目と関連したアドレス
    ・タグを含むオペレーションであって、命令キャッシュ
    ・ロケーションを無効にするオペレーションの検出に応
    答して、前記データ項目が無効であることを表す第3状
    態(308)に前記コヒーレンシ・インディケータを更
    新するステップを更に含む請求項1に記載の方法。
  5. 【請求項5】前記コヒーレンシ・インディケータが前記
    第1状態にある間、前記データ項目と関連したアドレス
    ・タグを含むデータ読取りオペレーションの検出に応答
    して、第2状態(306)に前記コヒーレンシ・インデ
    ィケータを更新するステップを更に含み、 前記第2状態は、前記データ項目が前記第1キャッシュ
    と少なくとも他いずれかのキャッシュとに記憶され得る
    こと、前記データ項目を含むすべてのキャッシュと前記
    システム・メモリとがコヒーレントであること、及び前
    記データ項目が命令を含むものと仮定されないことを表
    す請求項1に記載の方法。
  6. 【請求項6】前記第2状態は共用状態である請求項5に
    記載の方法。
  7. 【請求項7】前記コヒーレンシ・インディケータが前記
    第1状態にある間、前記データ項目と関連したアドレス
    ・タグを含むスヌープされたフラッシュ・オペレーショ
    ンの検出に応答して、前記コヒーレンシ・インディケー
    タを第2’状態(312)に更新するステップを更に含
    み、 前記第2’状態は、前記データ項目が前記第1キャッシ
    ュに記憶されている可能性があり、前記第1キャッシュ
    が前記システム・メモリとコヒーレントであり、論理的
    にイン・ラインであり、前記第1キャッシュの下にある
    他のキャッシュが前記データ項目を含まないことを表す
    請求項1に記載の方法。
  8. 【請求項8】前記第2’状態への遷移は、論理的にイン
    ・ラインであり、前記第1キャッシュの下にある第2キ
    ャッシュ内の前記データ項目を含むキャッシュ・ロケー
    ションの割振り解除に起因する請求項7に記載の方法。
  9. 【請求項9】前記コヒーレンシ・インディケータが前記
    第1状態にある間、前記データ項目と関連したアドレス
    ・タグを含むオペレーションであって、命令キャッシュ
    ・ロケーションを無効にするオペレーションの検出に応
    答して、前記データ項目が無効であることを表す第3状
    態(308)に前記コヒーレンシ・インディケータを更
    新するステップを更に含む請求項7に記載の方法。
  10. 【請求項10】第1キャッシュ(106〜112)を有
    するプロセッサと、 前記プロセッサに接続された第2キャッシュ(114,
    116)と、 前記第2キャッシュに接続され、論理的には前記第2キ
    ャッシュの下にある第3キャッシュ(118,119)
    と、 第1状態(310)を有するコヒーレンシ・インディケ
    ータ(208)とを含み、 前記第1状態は、前記データ項目が前記第1キャッシュ
    と少なくとも他のいずれかのキャッシュとに記憶され、
    前記データ項目を記憶するキャッシュの全てとシステム
    ・メモリ(120)とがコヒーレントであり、前記デー
    タ項目が命令フェッチ・オペレーションによって検索さ
    れたことを表すデータ処理システム。
  11. 【請求項11】前記コヒーレンシ・インディケータは、
    第2’状態(312)を有し、 前記第2’状態は、前記データ項目が前記第2キャッシ
    ュに記憶されているが、前記第3キャッシュには記憶さ
    れていないことを表す請求項10に記載のデータ処理シ
    ステム。
  12. 【請求項12】前記第1キャッシュは、前記プロセッサ
    においてデータ・キャッシュとは別個に命令キャッシュ
    を含み、 前記コヒーレンシ・インディケータは、前記データ項目
    が無効であることを表す第3状態(308)を有し、前
    記第1キャッシュにおけるキャッシュ・ロケーションを
    無効にするオペレーションに応答して前記第2’状態か
    ら前記第3状態に遷移する請求項11に記載のデータ処
    理システム。
  13. 【請求項13】前記第1キャッシュは、前記プロセッサ
    においてキャッシュ・メモリとは別個に命令キャッシュ
    を含み、 前記コヒーレンシ・インディケータは、前記データ項目
    が無効であることを表す第3状態(308)を有し、前
    記第1キャッシュにおけるキャッシュ・ロケーションを
    無効にするオペレーションに応答して前記第1状態から
    前記第3状態に遷移する請求項10に記載のデータ処理
    システム。
  14. 【請求項14】前記第1状態は、前記データ項目が命令
    を含むものと仮定されることを表す請求項10に記載の
    データ処理システム。
  15. 【請求項15】前記コヒーレンシ・インディケータは第
    2状態(306)を有し、 前記第2状態は、前記データ項目が前記第2キャッシュ
    と、少なくとも他のいずれかのキャッシュとに記憶さ
    れ、前記データ項目を含むすべてのキャッシュが前記シ
    ステム・メモリとコヒーレントであること、及び前記デ
    ータ項目が命令を含むものと仮定されないことを表す請
    求項10に記載のデータ処理システム。
  16. 【請求項16】前記データ項目を前記プロセッサにおけ
    る別のデータ・キャッシュに検索するオペレーションに
    応答して、前記コヒーレンシ・インディケータは、前記
    第1状態から前記第2状態に遷移する請求項15に記載
    のデータ処理システム。
  17. 【請求項17】データ処理システムにおいてキャッシュ
    ・コヒーレンシ・プロトコルをサポートする3以上に階
    層化されたキャッシュにして、 複数のキャッシュ・ロケーション(106〜119)を
    含むデータ記憶装置と、 各々が前記複数のキャッシュ・ロケーションにおける1
    つのキャッシュ・ロケーションと一意的に関連付けられ
    る複数のディレクトリ・エントリを含むキャッシュ・デ
    ィレクトリ(204)と、 少なくとも1つのディレクトリ・エントリ内のコヒーレ
    ンシ・インディケータ(208)とを含み、 前記コヒーレンシ・インディケータは、第1状態(31
    0)を有し、 前記第1状態は、関連するキャッシュ・ロケーションに
    おけるデータ項目がシステム・メモリとコヒーレントで
    あり、命令フェッチ・オペレーションによって検索され
    たことを表すキャッシュ。
  18. 【請求項18】前記第1状態は、前記キャッシュ・ロケ
    ーションが命令を含むものと仮定されることを表す請求
    項17に記載のキャッシュ。
  19. 【請求項19】前記コヒーレンシ・インディケータは第
    2’状態(312)を有し、 前記第2’状態は、前記関連するキャッシュ・ロケーシ
    ョンにおけるデータ項目が、前記キャッシュと論理的に
    イン・ラインにあり、前記キャッシュの下にある他のキ
    ャッシュに記憶されていないことを表す請求項17に記
    載のキャッシュ。
  20. 【請求項20】前記コヒーレンシ・インディケータは、
    前記データ項目が命令を含むものと仮定されないことを
    表す第2状態(306)を有する請求項17に記載のキ
    ャッシュ。
JP03158699A 1998-02-17 1999-02-09 垂直キャッシュのための擬似精細i−キャッシュ包含性 Expired - Fee Related JP3245125B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/024321 1998-02-17
US09/024,321 US6345339B1 (en) 1998-02-17 1998-02-17 Pseudo precise I-cache inclusivity for vertical caches

Publications (2)

Publication Number Publication Date
JPH11328024A JPH11328024A (ja) 1999-11-30
JP3245125B2 true JP3245125B2 (ja) 2002-01-07

Family

ID=21819988

Family Applications (1)

Application Number Title Priority Date Filing Date
JP03158699A Expired - Fee Related JP3245125B2 (ja) 1998-02-17 1999-02-09 垂直キャッシュのための擬似精細i−キャッシュ包含性

Country Status (10)

Country Link
US (1) US6345339B1 (ja)
EP (1) EP0936552B1 (ja)
JP (1) JP3245125B2 (ja)
KR (1) KR100320974B1 (ja)
CN (1) CN1134735C (ja)
CA (1) CA2260285A1 (ja)
DE (1) DE69930983T2 (ja)
MY (1) MY119935A (ja)
SG (1) SG71192A1 (ja)
TW (1) TW428133B (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6748490B1 (en) * 2000-03-29 2004-06-08 Ati International Srl Method and apparatus for maintaining data coherency in a shared memory system
US7117316B2 (en) * 2002-08-05 2006-10-03 Micron Technology, Inc. Memory hub and access method having internal row caching
US6993628B2 (en) * 2003-04-28 2006-01-31 International Business Machines Corporation Cache allocation mechanism for saving elected unworthy member via substitute victimization and imputed worthiness of substitute victim member
US6996679B2 (en) * 2003-04-28 2006-02-07 International Business Machines Corporation Cache allocation mechanism for saving multiple elected unworthy members via substitute victimization and imputed worthiness of multiple substitute victim members
US7484044B2 (en) 2003-09-12 2009-01-27 Intel Corporation Method and apparatus for joint cache coherency states in multi-interface caches
US7426612B2 (en) * 2004-06-30 2008-09-16 Intel Corporation Methods and apparatus for enforcing instruction-cache coherence
US20070094450A1 (en) * 2005-10-26 2007-04-26 International Business Machines Corporation Multi-level cache architecture having a selective victim cache
US7836257B2 (en) * 2007-12-19 2010-11-16 International Business Machines Corpation System and method for cache line replacement selection in a multiprocessor environment
US8055847B2 (en) * 2008-07-07 2011-11-08 International Business Machines Corporation Efficient processing of data requests with the aid of a region cache
CN107045479B (zh) * 2012-10-22 2020-09-01 英特尔公司 高性能互连物理层
US9639471B2 (en) 2012-11-27 2017-05-02 Nvidia Corporation Prefetching according to attributes of access requests
US9563562B2 (en) 2012-11-27 2017-02-07 Nvidia Corporation Page crossing prefetches
US9824009B2 (en) 2012-12-21 2017-11-21 Nvidia Corporation Information coherency maintenance systems and methods
CN104978283B (zh) * 2014-04-10 2018-06-05 华为技术有限公司 一种内存访问控制方法,及装置
US9852071B2 (en) 2014-10-20 2017-12-26 International Business Machines Corporation Granting exclusive cache access using locality cache coherency state
CN109952566A (zh) * 2016-12-12 2019-06-28 英特尔公司 用于处理器架构的装置和方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5553262B1 (en) * 1988-01-21 1999-07-06 Mitsubishi Electric Corp Memory apparatus and method capable of setting attribute of information to be cached
US5023776A (en) * 1988-02-22 1991-06-11 International Business Machines Corp. Store queue for a tightly coupled multiple processor configuration with two-level cache buffer storage
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
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
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
US5551001A (en) * 1994-06-29 1996-08-27 Exponential Technology, Inc. Master-slave cache system for instruction and data cache memories
JP3132749B2 (ja) * 1994-12-05 2001-02-05 インターナショナル・ビジネス・マシーンズ・コーポレ−ション マルチプロセッサ・データ処理システム
US5809529A (en) * 1995-08-23 1998-09-15 International Business Machines Corporation Prefetching of committed instructions from a memory to an instruction cache
US6374330B1 (en) * 1997-04-14 2002-04-16 International Business Machines Corporation Cache-coherency protocol with upstream undefined state
US5996048A (en) * 1997-06-20 1999-11-30 Sun Microsystems, Inc. Inclusion vector architecture for a level two cache
US6199144B1 (en) * 1997-12-31 2001-03-06 Intel Corporation Method and apparatus for transferring data in a computer system

Also Published As

Publication number Publication date
KR100320974B1 (ko) 2002-01-18
SG71192A1 (en) 2000-03-21
EP0936552A2 (en) 1999-08-18
CN1134735C (zh) 2004-01-14
JPH11328024A (ja) 1999-11-30
CN1231443A (zh) 1999-10-13
CA2260285A1 (en) 1999-08-17
TW428133B (en) 2001-04-01
KR19990072592A (ko) 1999-09-27
DE69930983D1 (de) 2006-06-01
EP0936552B1 (en) 2006-04-26
EP0936552A3 (en) 1999-09-22
DE69930983T2 (de) 2006-11-23
US6345339B1 (en) 2002-02-05
MY119935A (en) 2005-08-30

Similar Documents

Publication Publication Date Title
US8909871B2 (en) Data processing system and method for reducing cache pollution by write stream memory access patterns
US7698508B2 (en) System and method for reducing unnecessary cache operations
US6839816B2 (en) Shared cache line update mechanism
US7032074B2 (en) Method and mechanism to use a cache to translate from a virtual bus to a physical bus
JP4226057B2 (ja) 包含キャッシュにおける望ましくない置換動作を低減するための先行犠牲選択のための方法及び装置
US6725337B1 (en) Method and system for speculatively invalidating lines in a cache
US5706464A (en) Method and system for achieving atomic memory references in a multilevel cache data processing system
US6195729B1 (en) Deallocation with cache update protocol (L2 evictions)
JP3431824B2 (ja) アクセス方法及び処理装置
US6366984B1 (en) Write combining buffer that supports snoop request
US6353875B1 (en) Upgrading of snooper cache state mechanism for system bus with read/castout (RCO) address transactions
JP3245125B2 (ja) 垂直キャッシュのための擬似精細i−キャッシュ包含性
JPH0962572A (ja) ストリーム・フィルタ装置及び方法
US6463507B1 (en) Layered local cache with lower level cache updating upper and lower level cache directories
JPH11272559A (ja) マルチレベル・メモリ・ハイアラ―キを含むデ―タ処理システムのためのキャッシュ・コヒ―レンシ・プロトコル
JP3262519B2 (ja) 第2レベルキャッシュの古いラインの除去によるプロセッサのメモリ性能の強化方法及びシステム
US6418513B1 (en) Queue-less and state-less layered local data cache mechanism
JP4162493B2 (ja) 下位レベルのキャッシュを含むアクセスを促進するためのリバースディレクトリ
US6405285B1 (en) Layered local cache mechanism with split register load bus and cache load bus
US6347363B1 (en) Merged vertical cache controller mechanism with combined cache controller and snoop queries for in-line caches
US7464227B2 (en) Method and apparatus for supporting opportunistic sharing in coherent multiprocessors
US6970976B1 (en) Layered local cache with lower level cache optimizing allocation mechanism
US6446166B1 (en) Method for upper level cache victim selection management by a lower level cache
JP3286258B2 (ja) キャッシュ・コヒーレンシを維持する方法、キャッシュ・コヒーレンシをサポートするキャッシュ、及びデータ処理システム
JP2000259498A (ja) マルチスレッド・プロセッサの命令キャッシュ

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees