JPH11328016A - 命令キャッシュとデ―タ・キャッシュ間のコヒ―レンシを維持する方法および装置 - Google Patents

命令キャッシュとデ―タ・キャッシュ間のコヒ―レンシを維持する方法および装置

Info

Publication number
JPH11328016A
JPH11328016A JP11031535A JP3153599A JPH11328016A JP H11328016 A JPH11328016 A JP H11328016A JP 11031535 A JP11031535 A JP 11031535A JP 3153599 A JP3153599 A JP 3153599A JP H11328016 A JPH11328016 A JP H11328016A
Authority
JP
Japan
Prior art keywords
cache
data
instruction
address
data cache
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP11031535A
Other languages
English (en)
Other versions
JP3195303B2 (ja
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 JPH11328016A publication Critical patent/JPH11328016A/ja
Application granted granted Critical
Publication of JP3195303B2 publication Critical patent/JP3195303B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/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)【要約】 (修正有) 【課題】 命令キャッシュとデータ・キャッシュ間のコ
ヒーレンシを維持する。 【解決手段】 命令モードに応じて、データ・キャッシ
ュ・ブロック・ストア(dcbst)命令が、異なる形で扱
われる。コヒーレンシ維持モードでは、この命令がデー
タ・キャッシュと命令キャッシュの間のコヒーレンシの
維持に使用され、システム・メモリへの変更済みデータ
のプッシュと、命令キャッシュ内のキャッシュ・エント
リの無効化の両方が行われる。またシステム・バス上で
の新規のシステム・バス動作の開始をもたらし、データ
・キャッシュおよび命令キャッシュを有する他の装置
が、少なくとも命令/データ・キャッシュ・コヒーレン
シの点でそのデータ・キャッシュ内の指定されたキャッ
シュ・エントリをクリーンし、その命令キャッシュの指
定されたキャッシュ・エントリを無効化するように指示
される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、全般的には分離さ
れたデータ・キャッシュおよび命令キャッシュのコヒー
レンシに関し、具体的には、分離されたデータ・キャッ
シュおよび命令キャッシュのコヒーレンシを維持する命
令に関する。さらに具体的に言うと、本発明は、対象キ
ャッシュ・エントリの複数のコピーを有するマルチプロ
セッサ・システムのデータ・キャッシュと命令キャッシ
ュの間のコヒーレンシを維持するための命令およびシス
テム・バス・トランザクションに関する。
【0002】
【従来の技術】スーパースカラ縮小命令セット(RIS
C)プロセッサには、通常は、少なくとも記憶階層のレ
ベル1(L1)層に、分離されたデータ・キャッシュお
よび命令キャッシュが含まれる。分離されたデータ・キ
ャッシュおよび命令キャッシュは、現在のスーパースカ
ラ・プロセッサに必要な帯域幅に起因して必要になる。
現在のスーパースカラ・プロセッサでは、命令の取り出
しとデータ参照が、簡単に1プロセッサ・サイクルあた
り1キャッシュ・アクセスを超える可能性がある。した
がって、通常はプロセッサ・ハードウェアに組み込ま
れ、1プロセッサ以下の待ち時間を有するように設計さ
れるL1キャッシュは、通常は分離式にされ、その結
果、命令とデータの参照を、同一のプロセッサ・サイク
ル中に別々のキャッシュに対して発行できるようにな
る。
【0003】データ・キャッシュと命令キャッシュを分
離することによって、コヒーレントなメモリ階層の維持
という問題に追加の態様すなわち、すべてのプロセッサ
に単一のメモリの内容を見せることが追加される。たと
えば、プロセッサは、実際には後に実行される命令であ
るデータ・キャッシュ内のデータを変更する場合があ
る。これは、たとえば、ローダ・プログラムがコードを
メモリにロードした後にコード・リンケージを解決する
時に発生する。もう1つの例として、メモリ内容のペー
ジをコピーするプロセッサは、命令とデータを区別せ
ず、同一のページ内容を命令キャッシュとデータ・キャ
ッシュの両方にコピーする可能性がある。その後、コピ
ーされたページの一部を含むキャッシュ位置を解放する
ために、命令キャッシュ・ブロック無効化動作とクリー
ン動作の両方が必要になる。
【0004】現在市販されているスーパースカラ・プロ
セッサのほとんどには、分離されたレベル1キャッシュ
のコヒーレンシを維持するための機構が含まれない。す
なわち、あるL1キャッシュの変更は、他のプロセッサ
内であれ同一プロセッサ内であれ、他のL1キャッシュ
に自動的には反映されない。ほとんどのスーパースカラ
・プロセッサでは、分離されたデータ・キャッシュと命
令キャッシュの間のコヒーレンシの維持は、ソフトウェ
アに委ねられている。ソフトウェアは、通常は、元々は
命令が含まれていた変更済みデータ・キャッシュ・エン
トリをフラッシュし、同一のキャッシュ・エントリが命
令キャッシュ内に常駐する場合にはこれを無効化するこ
とによって、分離されたキャッシュの間のコヒーレンシ
維持の問題を処理する。これらの処置は、実行可能プロ
グラムが格納され、変更されたキャッシュ・ラインのす
べてに対して、一度に1ページずつ行われる。
【0005】すべてのスーパースカラ・プロセッサが、
レベル1キャッシュからシステム・メモリへ変更済みデ
ータを書き込む命令をサポートしている。プログラマ
は、このような命令を使用して、変更済みキャッシュ・
ラインを即座にプロセッサの外部から可視にすることが
できる。これは、グラフィックス・アプリケーションに
おいて、メモリ・マップ式のグラフィックス・アダプタ
または表示バッファに表示情報を書き込むのに有用であ
る。しかし、これまでのところ、そのような命令の最も
一般的な用途は、分離されたデータ・キャッシュと命令
キャッシュのコヒーレンシのソフトウェア管理である。
そのような目的に使用される時には、変更済みデータを
メモリに書き込む命令に、命令キャッシュ内の同一のキ
ャッシュ位置を無効化する命令が続く場合がある。たと
えば、PowerPC(商標)系列のデバイスでは、変
更済みデータをシステム・メモリに書き込む命令は、デ
ータ・キャッシュ・ブロック・ストア(dcbst)命令で
あり、命令キャッシュ内のキャッシュ位置を無効化する
命令は、命令キャッシュ・ブロック無効化(icbi)命令
である。
【0006】dcbst命令が実行される時には、有効アド
レスが計算され、変換され、保護違反について検査され
る。そのアドレスによって参照されるキャッシュ位置に
変更済みデータが格納されていない場合、キャッシュ・
ブロックは変更されず(命令は無演算として扱われ
る)、システム・バスに対するクリーン動作が開始され
る。しかし、キャッシュ・ブロックに変更済み(ダーテ
ィ)データが含まれる場合、そのデータが、データ・キ
ャッシュからシステム・バスにプッシュ・アウトされ
る。キャッシュ・ブロック内のすべてのバイトがシステ
ム・メモリに書き込まれ、キャッシュ・ブロックのコヒ
ーレンシ状態に排他(E)がセットされ、キャッシュ・
ブロックに、システム・メモリ内の対応する位置との一
貫性を有し、記憶階層のそのレベルのすべてのキャッシ
ュのうちで対象のキャッシュだけにある有効なデータが
含まれることが示される。その後、システム・バスに対
する書込動作が開始される。
【0007】icbi命令が実行される時には、やはり有効
アドレスが計算され、変換され、保護違反について検査
される。アドレス指定されたキャッシュ・ブロックが命
令キャッシュ内にある場合、命令キャッシュ・ブロック
に無効のマークが付けられ、キャッシュ・エントリ(ア
ドレス・タグと内容の両方)が有効でなく、システム・
メモリおよび記憶階層の同一レベルの他のキャッシュの
どちらに対しても一貫性を有しないことが示される。キ
ャッシュ・ブロックの内容と状況の両方が、すべてのプ
ロセッサのデータ・キャッシュ内で無変更のままにな
る。icbi動作またはikill動作が、記憶階層全体を通じ
て他の命令キャッシュのすべての適当なキャッシュ・ラ
インを無効化するために、システム・バス上で無条件に
開始される。
【0008】上で述べた2つの命令は、通常のプログラ
ム・ソース・コードの実行中に定期的に実行されること
はない。しかし、元々命令を含んでいた変更済みデータ
・キャッシュ・エントリのフラッシュと命令キャッシュ
内のキャッシュ・ブロックの無効化に使用される時に
は、メモリのページ全体が、一度に1キャッシュ・ブロ
ックずつフラッシュされる。したがって、大量のdcbst
/icbi命令対が、比較的短い期間の間に実行される。
【0009】マルチプロセッサ・システムで定期的に発
生する別の必要は、以前に命令が格納されていた別のキ
ャッシュ位置へキャッシュ・エントリを書き込み、新規
に変更されたキャッシュ・エントリをシステム・メモリ
とコヒーレントにし、新しいキャッシュ位置をすべての
命令キャッシュ内で無効化することである。すなわち、
キャッシュ・エントリxの内容をキャッシュ・エントリ
yに書き込み、キャッシュ・エントリyに対応するシス
テム・メモリを更新し、システムのすべての命令キャッ
シュのキャッシュ・エントリyを無効化することが望ま
しい。現在のシステムでは、この結果を達成するために
複数の命令を実行する必要がある。すなわち、キャッシ
ュ内部でキャッシュ・エントリxの内容をキャッシュ・
エントリyに書き込み、キャッシュ・エントリyに対し
てdcbst命令を実行し、キャッシュ・エントリyに対し
てicbi命令を実行し、最後に同期(sync)命令を実行し
て、すべての命令が確実に完了するようにする。
【0010】したがって、元々は命令が格納されていた
キャッシュ・ブロック内の変更済みデータをシステム・
メモリにフラッシュし、命令キャッシュ内のキャッシュ
・ブロックを無効化するための改良された機構を提供す
ることが望ましい。その機構を、単一の命令およびシス
テム・バス動作で実施することがさらに有利である。
【0011】
【発明が解決しようとする課題】したがって、本発明の
目的は、分離されたデータ・キャッシュおよび命令キャ
ッシュのコヒーレンシを維持するための改良された機構
を提供することである。
【0012】本発明のもう1つの目的は、分離されたデ
ータ・キャッシュおよび命令キャッシュのコヒーレンシ
を維持するための改良された命令を提供することであ
る。
【0013】本発明のもう1つの目的は、対象キャッシ
ュ・エントリの複数のコピーを有するマルチプロセッサ
・システムでデータ・キャッシュと命令キャッシュの間
のコヒーレンシを維持するための、改良された命令およ
びシステム・バス・トランザクションを提供することで
ある。
【0014】
【課題を解決するための手段】前述の目的は、これから
説明する形で達成される。プロセッサまたは命令モード
に応じて、データ・キャッシュ・ブロック・ストア(dc
bst)または同等の命令が、異なる形で扱われる。命令
のコヒーレンシ維持モードでは、この命令が分離された
データ・キャッシュと命令キャッシュの間のコヒーレン
シの維持に使用されるが、このコヒーレンシ維持モード
には、プロセッサ・レジスタのビットをセットするか、
命令内のヒント・ビットをセットすることによって入る
ことができる。コヒーレンシ維持モードでは、この命令
によって、システム・メモリへの変更済みデータのプッ
シュと、命令キャッシュ内のキャッシュ・エントリの無
効化の両方が行われる。後続の、同一のキャッシュ位置
を目標とする命令キャッシュ・ブロック無効化(icbi)
または同等の命令は、データ・キャッシュ・ブロック・
ストアまたは同等の命令がコヒーレンシ維持モードで実
行された後にプロセッサによって発行される時には、無
演算として扱われる。コヒーレンシ維持モードでのデー
タ・キャッシュ・ブロック・ストア命令の実行は、シス
テム・バス上での新規のシステム・バス動作の開始をも
たらす。このバス動作では、分離されたデータ・キャッ
シュおよび命令キャッシュを有する他の装置が、少なく
とも命令/データ・キャッシュ・コヒーレンシの点でそ
のデータ・キャッシュ内の指定されたキャッシュ・エン
トリをクリーンし、その命令キャッシュの指定されたキ
ャッシュ・エントリを無効化するように指示される。デ
ータの1つまたは複数のページをシステム・メモリに書
き込むために次々に繰り返して使用される時には、コヒ
ーレンシを維持するための機構は、プロセッサ・サイク
ルを節約し、アドレスとデータの両方のバス・トラフィ
ックを減らす。
【0015】
【発明の実施の形態】図面、具体的には図1を参照する
と、本発明の好ましい実施例によるマルチプロセッサ・
データ処理システムが示されている。データ処理システ
ム100は、米国ニューヨーク州アーモンクのInternat
ional Business Machines社から入手できるPower
PC(商標)系列のプロセッサのうちの1つを含む複数
のプロセッサ102ないし116を含む対称型マルチプ
ロセッサ(SMP)システムである。この実施例では8
つのプロセッサが図示されているが、当業者であれば、
本発明によるマルチプロセッサ・データ処理システムで
これと異なる個数のプロセッサを使用できることを諒解
するであろう。
【0016】各プロセッサ102ないし116には、レ
ベル1(L1)データ・キャッシュ118ないし132
と、L1命令キャッシュ134ないし148が含まれ
る。この実施例では分離された命令キャッシュおよびデ
ータ・キャッシュとして図示されているが、当業者であ
れば、プロセッサ102ないし116のどれにでも単一
の一体化されたL1キャッシュを実施できることを諒解
するであろう。しかし、本発明は、記憶階層の少なくと
も1つのレベルで命令キャッシュとデータ・キャッシュ
が分離されているシステムでの応用に特に有用である。
【0017】データ・アクセス待ち時間を最小にするた
めに、レベル2(L2)、レベル3(L3)またはそれ
以上のレベルのキャッシュ・メモリなど、1つまたは複
数の追加レベルのキャッシュ・メモリをデータ処理シス
テム100内で実施することができる。本発明の長所お
よび特徴を完全に説明するために選択されたこの実施例
では、L2キャッシュ・コントローラ150ないし15
6が、分離されたL2データ・キャッシュ158ないし
164およびL2命令キャッシュ166ないし172と
共に図示されている。L3キャッシュ・コントローラ1
74および176は、一体化された命令/データ(I/
D)キャッシュであるL3キャッシュ178および18
0を操作する。システム・メモリ182で、図示の実施
例の記憶階層が完了する。
【0018】下位のキャッシュ・レベル(L2およびL
3)は、L1キャッシュへのデータのステージングに使
用され、通常は、徐々に記憶容量が大きくなるが、アク
セス待ち時間は長くなる。たとえば、L1データ・キャ
ッシュ118ないし132およびL1命令キャッシュ1
34ないし148は、それぞれ32KBの記憶容量と、
約1ないし2プロセッサ・サイクルのアクセス待ち時間
を有する可能性がある。L2データ・キャッシュ158
ないし164およびL2命令キャッシュ166ないし1
72は、それぞれ512KBの記憶容量と5プロセッサ
・サイクルのアクセス待ち時間を有する可能性があり、
L3キャッシュ178および180は、4MBの記憶容
量と15プロセッサ・サイクルを超えるアクセス待ち時
間を有する可能性がある。したがって、L2データ・キ
ャッシュ158ないし164およびL2命令キャッシュ
166ないし172とL3キャッシュ178および18
0は、プロセッサ102ないし116とシステム・メモ
リ182の間の中間記憶として働き、システム・メモリ
182は、通常ははるかに大きい記憶容量を有するが、
50プロセッサ・サイクルを超えるアクセス待ち時間を
有する可能性がある。
【0019】データ処理システム100で使用されるキ
ャッシュ階層のレベル数とキャッシュ階層構成の両方
が、変更可能である。図示の例のL2データ・キャッシ
ュ158ないし164、L2命令キャッシュ166ない
し172およびL3キャッシュ178および180は、
システム・バス184を介してそれぞれのプロセッサ1
02ないし116とシステム・メモリ182の間に接続
される私有専用キャッシュである。しかし、上位キャッ
シュ・レベルと並列に動作する共用キャッシュおよびル
ックアサイド・キャッシュも、本発明と共に使用するこ
とができる。当業者であれば、図示のレベルおよび構成
のさまざまな組合せを実施できることを諒解するであろ
う。さらに、本発明の理解に必要な完全なデータ処理シ
ステムだけが図示されている。当業者であれば、既知の
技法によってデータ処理システム100に追加装置を組
み込めることを諒解するであろう。このような変更およ
び変形は、本発明の趣旨および範囲に含まれる。
【0020】図2を参照すると、本発明の好ましい実施
例による、分離されたデータ・キャッシュと命令キャッ
シュの間でコヒーレンシを維持するための機構の論理ブ
ロック図が示されている。本発明のデータ/命令キャッ
シュ・コヒーレンシ機構を説明するために、図1に示さ
れた、プロセッサ102および104、それぞれのL1
データ・キャッシュ118および120、L1命令キャ
ッシュ134および136、システム・メモリ182お
よびシステム・バス184を使用する。しかし、当業者
であれば、図1に示されたL2データ・キャッシュ15
8ないし164、L2命令キャッシュ166ないし17
2、L3キャッシュ178および180などの他の装置
も、本発明の機構によって影響を受ける可能性があるこ
とを理解するであろう。
【0021】図2に示されたL1キャッシュのそれぞれ
には、プロセッサ102のL1データ・キャッシュ11
8に関連して図示されているキャッシュ・メモリ202
とキャッシュ・ディレクトリ204が含まれる。各L1
キャッシュは、たとえば32ビット・アドレスを使用す
る、nウェイ・セット・アソシアティブ・キャッシュで
ある。したがって、キャッシュ・メモリ202には、そ
れぞれがn個のキャッシュ・ラインを格納するのに十分
なメモリを含む複数の合同クラスまたは合同行が含まれ
る。キャッシュ・ラインは、キャッシュ・ブロックとも
称するが、コヒーレンシ状態が表すキャッシュ・メモリ
の単位である。一般に、キャッシュ・ラインは、現在の
データ処理システムでは32B、64Bまたは128B
の長さである。
【0022】キャッシュ・ディレクトリ204には、そ
れぞれがn個のディレクトリ・エントリを含む複数の行
も含まれ、各ディレクトリ・エントリは、キャッシュ・
メモリ202の同等の行の対応するキャッシュ・ライン
に関連する。各ディレクトリ・エントリには、少なくと
も、タグ・フィールド206と、コヒーレンシ状態フィ
ールド208と、LRU(least recently used)フィ
ールド210が含まれる。タグ・フィールド206は、
関連するキャッシュ・ラインに格納されたデータのシス
テム・メモリ・アドレスのタグ・フィールド(たとえば
ビット[0−19])の格納に使用される。コヒーレン
シ状態フィールド208では、定義済みのビットの組合
せを介して、関連するキャッシュ・ラインに格納された
データのコヒーレンシ状態が定義される。LRUフィー
ルド210では、合同クラス内の他のキャッシュ・ライ
ンに対して関連キャッシュ・ラインが相対的にどれほど
最近にアクセスされたかが示され、したがって、キャッ
シュ・ラインの置換の必要が生じた時に、合同クラスの
どのキャッシュ・ラインをキャスト・アウトするかが示
される。
【0023】プロセッサ102および104のそれぞれ
には、そのプロセッサがdcbst命令を扱う方法を制御す
るのに使用できるモード・ビット212および214が
含まれる(本発明の説明で使用する場合、dcbst、icbi
または他のPowerPC(商標)アーキテクチャに固
有の命令名の参照は、命令の名前に無関係に、他のプロ
セッサの同様の命令を含む)。モード・ビット212お
よび214には、当技術分野で既知のとおり、専用レジ
スタ(SPR)との間の移動命令(mtspr、mfspr)を介
してユーザ・レベル・ソフトウェアによってアクセス可
能なSPRを含めることができる。特定のプロセッサの
モード・ビット214が第1状態(たとえばセットされ
ていない)の場合、dcbst命令は、この命令を使用する
現在のプロセッサと同一の効果を有する。すなわち、目
標キャッシュ・ブロックのコヒーレンシ状態フィールド
208が変更済み状態の場合、目標キャッシュ・ブロッ
ク216のデータが、システム・メモリ182内の対応
する位置220にプッシュされる(218)。しかし、
モード・ビット214が第2状態(たとえばセットされ
ている)の場合、dcbst命令は、dcbst命令とicbi命令の
組合せとして扱われる。この「コヒーレンシ維持」モー
ドでは、この命令が複数の結果を達成する。すなわち、
コヒーレンシ状態フィールド208が変更済みの場合、
目標キャッシュ・ブロック216のデータがシステム・
メモリ182内の対応する位置220にプッシュされ
(218)、コヒーレンシ状態フィールド208に無関
係に、新規のシステム・バス動作222が開始される。
システム・バス動作222は、下位レベル・キャッシュ
(たとえばL2キャッシュまたはL3キャッシュ)がプ
ロセッサ104とシステム・バス184の間に存在する
かどうかに応じて、「clean w/ ikill」または「write
w/ clean w/ ikill」になる。システム・バス動作22
2の「write」部分は、論理的にインラインのキャッシ
ュに、目標キャッシュ位置にある変更済みデータをシス
テム・メモリ182に書き込むように指示する。システ
ム・バス動作222の「clean w/ ikill」部分は、プロ
セッサ102に、L1データ・キャッシュ118の対象
キャッシュ位置をクリーンし(データ・キャッシュ・エ
ントリを有効に保ちながら変更済みデータをシステム・
メモリにプッシュする)、L1命令キャッシュ134内
の対象キャッシュ位置を無効化するように指示する。
【0024】dcbst命令に2つの特性を与えることは、
上記ではプロセッサ・レジスタのモード・ビットの設定
によって達成されているが、他の機構を介して実施する
ことができる。たとえば、dcbst命令に関連する「ヒン
ト」ビットを、既知の技術に従ってセットすることがで
きる。他の命令と同様に、dcbst命令には、オペコード
・フィールドと2つのオペランド・フィールドが含ま
れ、オペランド・フィールドの一方は未使用である。こ
の未使用のオペランド・フィールドのビット(いわゆる
「ヒント」ビット)を、そのようなヒント・ビットの使
用をサポートするように設計されたプロセッサによる検
出のために実行可能コード内でセットすることができ
る。この形で、新しい世代のプロセッサは、2つの特性
を有するdcbst命令をサポートでき、そのようなサポー
トを提供しない古い世代のプロセッサでも、同一の実行
可能コードを実行できる。ヒント・ビットは、下で詳細
に説明する目的のために、後続の命令キャッシュ・ブロ
ック無効化命令または同等の命令でセットすることもで
きる。
【0025】変更済みデータをシステム・メモリ182
まで書き込むのではなく、コヒーレンシ維持モードのdc
bst命令は、変更済みデータをI/Dコヒーレンシのレ
ベルまでだけに書き込むことができる。変更済みデータ
をシステム・メモリまで書き込むと、重大な性能ペナル
ティをこうむる。したがって、変更済みデータは、特定
の命令/データ・キャッシュ・コヒーレンシのレベルま
ですなわち、記憶階層内で一体化されたキャッシュが使
用されている最上位のレベルまでだけに書き込むことが
好ましい。これは、図1に示された例ではL3キャッシ
ュ178および180までになる。
【0026】分離されたデータ・キャッシュと命令キャ
ッシュの間のコヒーレンシを維持するための本発明の機
構では、モード・ビット214またはヒント・ビットを
セットすることからもたらされるdcbst/icbi命令の組
合せが、さまざまな形で使用される。この組み合わされ
た命令を、メモリのページ224全体またはメモリの複
数のページに含まれるキャッシュ・ブロックのそれぞれ
に対して繰り返して順番に実行して、グラフィックス装
置や表示バッファを更新することができる。モード・ビ
ット214がセットされている時には、別個のicbi命令
の必要がなくなり、局所プロセッサからのicbiは無演算
として扱われる。異種システムでは、スヌープされたic
biは、モード・ビット214がセットされている時でも
icbiとして扱うことができる。その代わりに、キャッシ
ュ位置xの内容がキャッシュ内の別の位置yにコピーさ
れており、変更済みデータ(y’)が位置yに書き込ま
れる場合に、dcbst/icbi命令の組合せを使用して、水
平キャッシュ内の対応するキャッシュ位置を無効化する
ことができる。
【0027】図3ないし図5を参照すると、本発明の好
ましい実施例による、分離されたデータ・キャッシュと
命令キャッシュの間のコヒーレンシを維持するための機
構を実施する命令および動作を実行する処理の高水準流
れ図が示されている。図3は、局所プロセッサによって
発行されるdcbst命令の処理を示す図である。この処理
は、ステップ302で開始され、dcbstまたは同等の命
令を受け取る。その後、処理はステップ304に進み、
その命令をコヒーレンシ維持モードで受け取ったかどう
かを判定する。この判定は、たとえば、モード・ビット
またはヒント・ビットがセットされているかどうかを判
定することによって行える。命令をコヒーレンシ維持モ
ードで受け取らなかった場合、この処理はステップ30
6に進み、その命令の目標キャッシュ・エントリが変更
済みであるかどうかを判定する。そうでない場合、この
処理はステップ308に進み、下位レベルのバスでのク
リーン動作を開始し、下で説明するステップ312に進
む。
【0028】ステップ306に戻って、dcbst命令また
は同等の命令の目標キャッシュ・エントリに変更済みデ
ータが含まれる場合、処理はステップ310に進み、wr
itew/ cleanバス動作を使用して、変更済みデータを下
位レベル・バスにプッシュする。その後、処理はステッ
プ312に進み、dcbstまたは同等の命令を発行したプ
ロセッサとシステム・メモリの間の記憶階層の最下位レ
ベルのキャッシュを検査したかどうかを判定する。そう
でない場合、処理はステップ314に進み、記憶階層で
次の下位レベル・キャッシュに進み、ステップ306に
戻って、ステップ306ないしステップ314について
説明した処理を、次の下位キャッシュ・レベルに関して
繰り返す。したがって、この処理は、記憶階層内のすべ
てのキャッシュ・レベルを通じて反復しながら進行す
る。ステップ312に戻って、最下位レベルのキャッシ
ュに到達し、処理したならば、処理はステップ316に
進み、次のdcbstまたは同等の命令を受け取るまで、こ
の処理は遊休状態になる。
【0029】ステップ304に戻って、dcbstまたは同
等の命令がコヒーレンシ維持モードで受け取られた場
合、処理はステップ318に進み、検査されるキャッシ
ュ・レベルがI/Dコヒーレントであるかどうかを判定
する。この判定は、たとえば、そのキャッシュが一体化
されたキャッシュと分離されたI/Dキャッシュのどち
らとして実施されているかを判定することによって行え
る。検査されるキャッシュが記憶階層内のI/Dコヒー
レンシの点にある場合、処理はステップ320に進み、
最下位レベル・バスに対してikillバス動作を開始す
る。その後、処理は、上で説明したステップ316に進
む。
【0030】ステップ318に戻って、検査されるキャ
ッシュ・レベルが記憶階層内のI/Dコヒーレンシの点
にない場合、処理はステップ322に進み、dcbstまた
は同等の命令の目標キャッシュ・エントリが変更済みで
あるかどうかを判定する。そうでない場合には、処理は
ステップ324に進み、下位レベル・バスに対するクリ
ーン動作を開始し、上で説明したステップ316に進
む。
【0031】ステップ322に戻って、dcbstまたは同
等の命令の目標キャッシュ・エントリに変更済みデータ
が含まれる場合、処理はステップ326に進み、write
w/ cleanバス動作を使用して下位レベル・バスに変更済
みデータをプッシュする。その後、処理はステップ33
0に進み、記憶階層の最下位レベルのキャッシュを調べ
たかどうかを判定する。そうでない場合には、処理はス
テップ332に進み、記憶階層内の次の下位レベル・キ
ャッシュに進み、ステップ318に戻って、次の下位キ
ャッシュ・レベルに対してステップ318ないしステッ
プ332で示した処理を繰り返す。したがって、この処
理は、記憶階層のすべてのキャッシュ・レベルを通じて
反復しながら進行する。ステップ332に戻って、最下
位レベルのキャッシュに到達し、これを処理したなら
ば、処理はステップ316に進み、次のdcbstまたは同
等の命令を受け取るまで遊休状態になる。
【0032】図4は、局所プロセッサによって発行され
るicbi命令を処理する処理を示す図である。この処理
は、ステップ334で開始され、ここでicbi命令を受け
取る。その後、処理はステップ336に進み、dcbst/i
cbi組合せ命令の扱いを制御するビット(たとえば、プ
ロセッサ・モード・ビットまたはdcbstおよびicbi命令
のヒント・ビット)がセットされているかどうかを判定
する。そうである場合、処理はステップ338に進み、
icbi命令を無演算として扱う。しかし、ビットがセット
されていない(命令がコヒーレンシ維持モードで受け取
られなかった)場合には、処理はステップ340に進
み、命令キャッシュ内の目標キャッシュ・エントリを無
効化し、次に、ステップ342で、システム・バスに対
するikill動作を開始する。ステップ338またはステ
ップ342から、処理はステップ344に進み、後続の
icbi命令を受け取るまで、処理は遊休状態になる。
【0033】図5は、システム・バスからスヌープされ
るclean w/ ikillバス動作を処理する処理を示す図であ
る。この処理は、ステップ346で開始され、ここで、
システム・バス上のclean w/ ikill動作が検出される。
処理は、次にステップ348に進み、その動作をスヌー
プしたキャッシュ・レベルがI/Dコヒーレンシの点で
ある(たとえば、キャッシュが一体化されたキャッシュ
である)かどうかを判定する。そうである場合には、処
理は下で説明するステップ354に進む。しかし、そう
でない場合には、処理はステップ350に進み、スヌー
プされたcleanw/ ikill動作の目標キャッシュ・エント
リが変更済みであるかどうかを判定する。そうでない場
合、処理は下で説明するステップ358に進む。しか
し、変更済みの場合には、処理はステップ352に進
み、スヌープされた動作の目標キャッシュ・エントリが
上位レベル・キャッシュ内で変更済みであるかどうかを
判定する。
【0034】スヌープされた動作の目標キャッシュ・エ
ントリが上位レベル・キャッシュ内で変更済みである場
合、処理はステップ354に進み、上位レベル・キャッ
シュに対してclean w/ ikill動作を開始する。しかし、
そうでない場合には、処理はステップ356に進み、次
の下位レベル・キャッシュに対してwrite w/ clean動作
を開始し、その後、ステップ358に進んで、上位レベ
ル・キャッシュに対してikill動作を開始する。ステッ
プ354またはステップ358からは、処理はステップ
360に進み、別のclean w/ ikill動作がスヌープされ
るまで、処理は遊休状態になる。
【0035】本発明を用いると、分離されたデータ・キ
ャッシュと命令キャッシュの間のコヒーレンシを維持す
るために、dcbst命令を効率的に利用できる。本発明の
機構を使用する時には、2命令ではなく1命令だけが発
行されるので、プロセッサ・サイクルが節約される。シ
ステム性能の向上が達成されるのは、命令キャッシュ・
ブロック無効化命令とクリーン動作が、直列ではなく並
列に発生するからである。新規のシステム・バス動作
は、本発明の組み合わされたdcbst/icbi機構を実行し
た結果として開始される。このシステム・バス動作中の
アドレス・バス・トラフィックは、2つではなく1つの
バス動作だけが開始されるので、減少する。データ・バ
ス・トラフィックも、特に本発明の機構がI/Dコヒー
レンシの点までのみ変更済みデータを書き込むように実
施される時に、同様に減少する。すべての命令が記憶階
層の上位レベルから受け取られ、処理される記憶階層内
で実施されるものとして説明し、図示してきたが、本発
明の機構は、アーキテクチャ上の動作が並列処理のため
にシステム・バスからパス・スルーされ、自己スヌープ
されるアーキテクチャに関連して使用することもでき
る。
【0036】本発明を、完全に機能するデータ処理シス
テムに関して説明してきたが、当業者であれば、本発明
の機構をさまざまな形態の命令のコンピュータ可読媒体
の形で配布でき、本発明が、実際の配布に使用される信
号担持媒体の具体的な種類に無関係に同等に適用される
ことを理解するであろうことに留意することが重要であ
る。具体的に言うと、プログラム命令の組には、dcbst
命令が扱われる方法を変更するモード・ビットをセット
する命令と、それに続く1つまたは複数のdcbst命令を
含めることができる。コンピュータ可読媒体の例には、
フロッピ・ディスクやCD−ROMなどの記録可能型媒
体と、ディジタル通信リンクやアナログ通信リンクなど
の伝送型媒体が含まれる。
【0037】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0038】(1)目標キャッシュ・アドレスと、上記
目標キャッシュ・アドレスに対応するデータ・キャッシ
ュ位置に変更済みデータがある場合に、上記データ・キ
ャッシュ位置を含む記憶階層内の命令/データ・キャッ
シュ・コヒーレンシの点まで、上記データ・キャッシュ
位置の上記変更済みデータを書き込む信号と、上記目標
キャッシュ・アドレスに対応する命令キャッシュ位置を
無効化する信号とを含む動作であって、遠隔装置によっ
て開始されたバス上の上記動作を検出するステップと、
上記動作の検出に応答して、上記動作を検出した装置
が、上記目標キャッシュ・アドレスに対応する上記デー
タ・キャッシュ位置に変更済みデータを含むデータ・キ
ャッシュを含むかどうかを判定するステップと、上記デ
ータ・キャッシュが上記目標キャッシュ・アドレスに対
応する上記データ・キャッシュ位置に変更済みデータを
含むとの判定に応答して、命令/データ・キャッシュ・
コヒーレンシの上記点まで変更済みデータを書き込むス
テップとを含む、分離された命令キャッシュとデータ・
キャッシュとの間のコヒーレンシを維持する方法。 (2)上記動作を検出した装置が、上記目標キャッシュ
・アドレスに対応する上記データ・キャッシュ位置に変
更済みデータを含むデータ・キャッシュを含むかどうか
を判定する上記ステップが、さらに、上記装置が一体化
された命令/データ・キャッシュを含むかどうかを判定
するステップを含む、上記(1)の方法。 (3)上記動作を検出した装置が、上記目標キャッシュ
・アドレスに対応する上記データ・キャッシュ位置に変
更済みデータを含むデータ・キャッシュを含むかどうか
を判定する上記ステップが、さらに、上記装置内で命令
キャッシュから分離されたデータ・キャッシュが変更済
みデータを含むかどうかを判定するステップと、上記記
憶階層内で上記動作を検出した上記装置と局所プロセッ
サとの間の上位レベル装置が、上記目標キャッシュ・ア
ドレスに対応する上記データ・キャッシュ位置に変更済
みデータを含むデータ・キャッシュを含むかどうかを判
定するステップとを含む、上記(1)の方法。 (4)上記上位レベル装置が上記目標キャッシュ・アド
レスに対応する上記データ・キャッシュ位置に変更済み
データを含むとの判定に応答して、上記装置を上記上位
レベル装置に接続するバス上で上記動作を開始するステ
ップをさらに含む、上記(3)の方法。 (5)上記上位レベル装置が上記目標キャッシュ・アド
レスに対応する上記データ・キャッシュ位置に変更済み
データを含まないとの判定に応答して、命令/データ・
キャッシュ・コヒーレンシの上記点まで上記変更済みデ
ータを書き込むステップをさらに含む、上記(3)の方
法。 (6)上記記憶階層内で上記装置を上位レベル装置に接
続するバス上で命令キャッシュ・ブロック無効化動作を
開始するステップをさらに含む、上記(5)の方法。 (7)上記データ・キャッシュが、上記目標キャッシュ
・アドレスに対応する上記データ・キャッシュ位置に変
更済みデータを含まないとの判定に応答して、上記記憶
階層内で上記装置を上位レベル装置に接続するバス上で
命令キャッシュ・ブロック無効化動作を開始するステッ
プをさらに含む、上記(1)の方法。 (8)分離された命令キャッシュおよびデータ・キャッ
シュを含む記憶装置と、上記キャッシュを遠隔装置に接
続するバスと、上記遠隔装置によって開始された上記バ
ス上の動作を監視するスヌープ論理と、目標キャッシュ
・アドレスと、上記目標キャッシュ・アドレスに対応す
るデータ・キャッシュ位置に変更済みデータがある場合
に、上記データ・キャッシュ位置を含む記憶階層内の命
令/データ・キャッシュ・コヒーレンシの点まで上記デ
ータキャッシュ位置の上記変更済みデータを書き込む信
号と、上記目標キャッシュ・アドレスに対応する命令キ
ャッシュ位置を無効化する信号とを含む動作をサポート
する上記記憶装置のための制御論理と、上記バス上の上
記動作の検出と、上記データ・キャッシュが上記目標キ
ャッシュ・アドレスに対応する上記データ・キャッシュ
位置に変更済みデータを含むとの判定に応答して、命令
/データ・キャッシュ・コヒーレンシの上記点まで上記
変更済みデータを書き込む手段とを含む、分離された命
令キャッシュおよびデータ・キャッシュの間のコヒーレ
ンシを維持するための装置。 (9)上記データ・キャッシュが上記目標キャッシュ・
アドレスに対応する上記データ・キャッシュ位置に変更
済みデータを含むかどうかを判定する手段をさらに含
む、上記(8)の装置。 (10)上記記憶階層内で上記記憶装置と局所プロセッ
サとの間の上位レベル記憶装置が、上記目標キャッシュ
・アドレスに対応する上記データ・キャッシュ位置に変
更済みデータを含むデータ・キャッシュを含むかどうか
を判定する手段をさらに含む、上記(8)の装置。 (11)上記上位レベル記憶装置が、上記目標キャッシ
ュ・アドレスに対応する上記データ・キャッシュ位置に
変更済みデータを含むとの判定に応答して、上記装置を
上記上位レベル記憶装置に接続するバス上で上記動作を
開始する手段をさらに含む、上記(10)の装置。 (12)上記上位レベル記憶装置が、上記目標キャッシ
ュ・アドレスに対応する上記データ・キャッシュ位置に
変更済みデータを含まないとの判定に応答して、上記変
更済みデータを命令/データ・キャッシュ・コヒーレン
シの上記点まで書き込む手段をさらに含む、上記(1
0)の装置。 (13)上記記憶階層内で上記装置を上記上位レベル記
憶装置に接続するバス上で命令キャッシュ・ブロック無
効化動作を開始する手段をさらに含む、上記(12)の
装置。 (14)上記データ・キャッシュが、上記目標キャッシ
ュ・アドレスに対応する上記データ・キャッシュ位置に
変更済みデータを含まないとの判定に応答して、上記記
憶階層内で上記装置を上位レベル装置に接続するバス上
で命令キャッシュ・ブロック無効化動作を開始する手段
をさらに含む、上記(8)の装置。 (15)組み合わされたデータ・キャッシュ・ブロック
・ストアおよび命令キャッシュ・ブロック無効化命令を
第1装置に対して発行するプロセッサと、上記プロセッ
サによって発行される上記命令の受け取りに応答して、
バス上で上記命令に対応するバス動作を開始する上記第
1装置に接続された上記バスと、上記第1装置によって
開始された上記バス動作に応答して、アドレスを有する
データ・キャッシュ位置から第3装置へデータを書き込
み、上記アドレスを有する命令キャッシュ位置を無効化
する、上記第1装置に接続され、データ・キャッシュお
よび命令キャッシュを含む第2装置とを含む、データ処
理システム。 (16)上記第2装置が、キャッシュである、上記(1
5)のデータ処理システム。 (17)上記第2装置が、プロセッサである、上記(1
5)のデータ処理システム。 (18)上記第3装置が、下位レベル・キャッシュであ
る、上記(15)のデータ処理システム。 (19)上記第3装置が、システム・メモリである、上
記(15)のデータ処理システム。 (20)データ・キャッシュおよび命令キャッシュを含
む上位レベル装置が、上記アドレスを有するデータ・キ
ャッシュ位置に変更済みデータを含むことの判定に応答
して、上記第2装置が、上記第2装置を上記上位レベル
装置に接続するバス上で上記命令に対応する上記バス動
作を開始する、上記(15)のデータ処理システム。
【図面の簡単な説明】
【図1】本発明の好ましい実施例によるマルチプロセッ
サ・データ処理システムを示す図である。
【図2】本発明の好ましい実施例による、分離されたデ
ータ・キャッシュと命令キャッシュの間でコヒーレンシ
を維持するための機構の論理ブロック図である。
【図3】本発明の好ましい実施例による、分離されたデ
ータ・キャッシュと命令キャッシュの間でコヒーレンシ
を維持するための機構を実施する、局所プロセッサによ
って発行されるdcbst命令を処理する処理の高水準流れ
図である。
【図4】本発明の好ましい実施例による、分離されたデ
ータ・キャッシュと命令キャッシュの間でコヒーレンシ
を維持するための機構を実施する、局所プロセッサによ
って発行されるicbi命令を処理する処理の高水準流れ図
である。
【図5】本発明の好ましい実施例による、分離されたデ
ータ・キャッシュと命令キャッシュの間でコヒーレンシ
を維持するための機構を実施する、システム・バスから
スヌープされるclean w/ ikillバス動作を処理する処理
の高水準流れ図である。
【符号の説明】
100 データ処理システム 102 プロセッサ 104 プロセッサ 106 プロセッサ 108 プロセッサ 110 プロセッサ 112 プロセッサ 114 プロセッサ 116 プロセッサ 118 L1データ・キャッシュ 120 L1データ・キャッシュ 122 L1データ・キャッシュ 124 L1データ・キャッシュ 126 L1データ・キャッシュ 128 L1データ・キャッシュ 130 L1データ・キャッシュ 132 L1データ・キャッシュ 134 L1命令キャッシュ 136 L1命令キャッシュ 138 L1命令キャッシュ 140 L1命令キャッシュ 142 L1命令キャッシュ 144 L1命令キャッシュ 146 L1命令キャッシュ 148 L1命令キャッシュ 150 L2キャッシュ・コントローラ 152 L2キャッシュ・コントローラ 154 L2キャッシュ・コントローラ 156 L2キャッシュ・コントローラ 158 L2データ・キャッシュ 160 L2データ・キャッシュ 162 L2データ・キャッシュ 164 L2データ・キャッシュ 166 L2命令キャッシュ 168 L2命令キャッシュ 170 L2命令キャッシュ 172 L2命令キャッシュ 174 L3キャッシュ・コントローラ 176 L3キャッシュ・コントローラ 178 L3キャッシュ 180 L3キャッシュ 182 システム・メモリ 184 システム・バス 202 キャッシュ・メモリ 204 キャッシュ・ディレクトリ 206 タグ・フィールド 208 コヒーレンシ状態フィールド 210 LRU(least recently used)フィールド 212 モード・ビット 214 モード・ビット 216 目標キャッシュ・ブロック 218 プッシュ 220 対応する位置 222 システム・バス動作 224 メモリのページ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョン・スチーブン・ドッドソン アメリカ合衆国78660 テキサス州プフリ ューガーヴィル ベル・ロック・サークル 1205 (72)発明者 ジェリー・ドン・ルイス アメリカ合衆国78681 テキサス州ラウン ド・ロック アロウヘッド・サークル 3409

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】目標キャッシュ・アドレスと、 上記目標キャッシュ・アドレスに対応するデータ・キャ
    ッシュ位置に変更済みデータがある場合に、上記データ
    ・キャッシュ位置を含む記憶階層内の命令/データ・キ
    ャッシュ・コヒーレンシの点まで、上記データ・キャッ
    シュ位置の上記変更済みデータを書き込む信号と、 上記目標キャッシュ・アドレスに対応する命令キャッシ
    ュ位置を無効化する信号とを含む動作であって、遠隔装
    置によって開始されたバス上の上記動作を検出するステ
    ップと、 上記動作の検出に応答して、上記動作を検出した装置
    が、上記目標キャッシュ・アドレスに対応する上記デー
    タ・キャッシュ位置に変更済みデータを含むデータ・キ
    ャッシュを含むかどうかを判定するステップと、 上記データ・キャッシュが上記目標キャッシュ・アドレ
    スに対応する上記データ・キャッシュ位置に変更済みデ
    ータを含むとの判定に応答して、命令/データ・キャッ
    シュ・コヒーレンシの上記点まで変更済みデータを書き
    込むステップとを含む、分離された命令キャッシュとデ
    ータ・キャッシュとの間のコヒーレンシを維持する方
    法。
  2. 【請求項2】上記動作を検出した装置が、上記目標キャ
    ッシュ・アドレスに対応する上記データ・キャッシュ位
    置に変更済みデータを含むデータ・キャッシュを含むか
    どうかを判定する上記ステップが、さらに、 上記装置が一体化された命令/データ・キャッシュを含
    むかどうかを判定するステップを含む、請求項1の方
    法。
  3. 【請求項3】上記動作を検出した装置が、上記目標キャ
    ッシュ・アドレスに対応する上記データ・キャッシュ位
    置に変更済みデータを含むデータ・キャッシュを含むか
    どうかを判定する上記ステップが、さらに、 上記装置内で命令キャッシュから分離されたデータ・キ
    ャッシュが変更済みデータを含むかどうかを判定するス
    テップと、 上記記憶階層内で上記動作を検出した上記装置と局所プ
    ロセッサとの間の上位レベル装置が、上記目標キャッシ
    ュ・アドレスに対応する上記データ・キャッシュ位置に
    変更済みデータを含むデータ・キャッシュを含むかどう
    かを判定するステップとを含む、請求項1の方法。
  4. 【請求項4】上記上位レベル装置が上記目標キャッシュ
    ・アドレスに対応する上記データ・キャッシュ位置に変
    更済みデータを含むとの判定に応答して、上記装置を上
    記上位レベル装置に接続するバス上で上記動作を開始す
    るステップをさらに含む、請求項3の方法。
  5. 【請求項5】上記上位レベル装置が上記目標キャッシュ
    ・アドレスに対応する上記データ・キャッシュ位置に変
    更済みデータを含まないとの判定に応答して、命令/デ
    ータ・キャッシュ・コヒーレンシの上記点まで上記変更
    済みデータを書き込むステップをさらに含む、請求項3
    の方法。
  6. 【請求項6】上記記憶階層内で上記装置を上位レベル装
    置に接続するバス上で命令キャッシュ・ブロック無効化
    動作を開始するステップをさらに含む、請求項5の方
    法。
  7. 【請求項7】上記データ・キャッシュが、上記目標キャ
    ッシュ・アドレスに対応する上記データ・キャッシュ位
    置に変更済みデータを含まないとの判定に応答して、上
    記記憶階層内で上記装置を上位レベル装置に接続するバ
    ス上で命令キャッシュ・ブロック無効化動作を開始する
    ステップをさらに含む、請求項1の方法。
  8. 【請求項8】分離された命令キャッシュおよびデータ・
    キャッシュを含む記憶装置と、 上記キャッシュを遠隔装置に接続するバスと、 上記遠隔装置によって開始された上記バス上の動作を監
    視するスヌープ論理と、 目標キャッシュ・アドレスと、 上記目標キャッシュ・アドレスに対応するデータ・キャ
    ッシュ位置に変更済みデータがある場合に、上記データ
    ・キャッシュ位置を含む記憶階層内の命令/データ・キ
    ャッシュ・コヒーレンシの点まで上記データキャッシュ
    位置の上記変更済みデータを書き込む信号と、 上記目標キャッシュ・アドレスに対応する命令キャッシ
    ュ位置を無効化する信号とを含む動作をサポートする上
    記記憶装置のための制御論理と、 上記バス上の上記動作の検出と、上記データ・キャッシ
    ュが上記目標キャッシュ・アドレスに対応する上記デー
    タ・キャッシュ位置に変更済みデータを含むとの判定に
    応答して、命令/データ・キャッシュ・コヒーレンシの
    上記点まで上記変更済みデータを書き込む手段とを含
    む、分離された命令キャッシュおよびデータ・キャッシ
    ュの間のコヒーレンシを維持するための装置。
  9. 【請求項9】上記データ・キャッシュが上記目標キャッ
    シュ・アドレスに対応する上記データ・キャッシュ位置
    に変更済みデータを含むかどうかを判定する手段をさら
    に含む、請求項8の装置。
  10. 【請求項10】上記記憶階層内で上記記憶装置と局所プ
    ロセッサとの間の上位レベル記憶装置が、上記目標キャ
    ッシュ・アドレスに対応する上記データ・キャッシュ位
    置に変更済みデータを含むデータ・キャッシュを含むか
    どうかを判定する手段をさらに含む、請求項8の装置。
  11. 【請求項11】上記上位レベル記憶装置が、上記目標キ
    ャッシュ・アドレスに対応する上記データ・キャッシュ
    位置に変更済みデータを含むとの判定に応答して、上記
    装置を上記上位レベル記憶装置に接続するバス上で上記
    動作を開始する手段をさらに含む、請求項10の装置。
  12. 【請求項12】上記上位レベル記憶装置が、上記目標キ
    ャッシュ・アドレスに対応する上記データ・キャッシュ
    位置に変更済みデータを含まないとの判定に応答して、
    上記変更済みデータを命令/データ・キャッシュ・コヒ
    ーレンシの上記点まで書き込む手段をさらに含む、請求
    項10の装置。
  13. 【請求項13】上記記憶階層内で上記装置を上記上位レ
    ベル記憶装置に接続するバス上で命令キャッシュ・ブロ
    ック無効化動作を開始する手段をさらに含む、請求項1
    2の装置。
  14. 【請求項14】上記データ・キャッシュが、上記目標キ
    ャッシュ・アドレスに対応する上記データ・キャッシュ
    位置に変更済みデータを含まないとの判定に応答して、
    上記記憶階層内で上記装置を上位レベル装置に接続する
    バス上で命令キャッシュ・ブロック無効化動作を開始す
    る手段をさらに含む、請求項8の装置。
  15. 【請求項15】組み合わされたデータ・キャッシュ・ブ
    ロック・ストアおよび命令キャッシュ・ブロック無効化
    命令を第1装置に対して発行するプロセッサと、 上記プロセッサによって発行される上記命令の受け取り
    に応答して、バス上で上記命令に対応するバス動作を開
    始する上記第1装置に接続された上記バスと、上記第1
    装置によって開始された上記バス動作に応答して、アド
    レスを有するデータ・キャッシュ位置から第3装置へデ
    ータを書き込み、上記アドレスを有する命令キャッシュ
    位置を無効化する、上記第1装置に接続され、データ・
    キャッシュおよび命令キャッシュを含む第2装置とを含
    む、データ処理システム。
  16. 【請求項16】上記第2装置が、キャッシュである、請
    求項15のデータ処理システム。
  17. 【請求項17】上記第2装置が、プロセッサである、請
    求項15のデータ処理システム。
  18. 【請求項18】上記第3装置が、下位レベル・キャッシ
    ュである、請求項15のデータ処理システム。
  19. 【請求項19】上記第3装置が、システム・メモリであ
    る、請求項15のデータ処理システム。
  20. 【請求項20】データ・キャッシュおよび命令キャッシ
    ュを含む上位レベル装置が、上記アドレスを有するデー
    タ・キャッシュ位置に変更済みデータを含むことの判定
    に応答して、上記第2装置が、上記第2装置を上記上位
    レベル装置に接続するバス上で上記命令に対応する上記
    バス動作を開始する、請求項15のデータ処理システ
    ム。
JP03153599A 1998-02-17 1999-02-09 命令キャッシュとデータ・キャッシュ間のコヒーレンシを維持する方法および装置 Expired - Fee Related JP3195303B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/024585 1998-02-17
US09/024,585 US6178484B1 (en) 1998-02-17 1998-02-17 DCBST with ICBI mechanism to maintain coherency of bifurcated data and instruction caches

Publications (2)

Publication Number Publication Date
JPH11328016A true JPH11328016A (ja) 1999-11-30
JP3195303B2 JP3195303B2 (ja) 2001-08-06

Family

ID=21821360

Family Applications (1)

Application Number Title Priority Date Filing Date
JP03153599A Expired - Fee Related JP3195303B2 (ja) 1998-02-17 1999-02-09 命令キャッシュとデータ・キャッシュ間のコヒーレンシを維持する方法および装置

Country Status (3)

Country Link
US (1) US6178484B1 (ja)
JP (1) JP3195303B2 (ja)
CN (1) CN1127693C (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011527060A (ja) * 2008-07-07 2011-10-20 インターナショナル・ビジネス・マシーンズ・コーポレーション リージョン・キャッシュの援助によってデータ要求を効率的に処理する方法

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6393523B1 (en) * 1999-10-01 2002-05-21 Hitachi Ltd. Mechanism for invalidating instruction cache blocks in a pipeline processor
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
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
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
US6349369B1 (en) * 1999-11-09 2002-02-19 International Business Machines Corporation Protocol for transferring modified-unsolicited state during data intervention
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
US6701417B2 (en) 2001-04-11 2004-03-02 Sun Microsystems, Inc. Method and apparatus for supporting multiple cache line invalidations per cycle
US6986002B2 (en) * 2002-12-17 2006-01-10 International Business Machines Corporation Adaptive shared data interventions in coupled broadcast engines
US7356647B1 (en) * 2005-08-23 2008-04-08 Unisys Corporation Cache with integrated capability to write out entire cache
JP4873546B2 (ja) * 2006-06-20 2012-02-08 ルネサスエレクトロニクス株式会社 データ処理装置、データ処理方法
US8281075B2 (en) * 2009-04-14 2012-10-02 International Business Machines Corporation Processor system and methods of triggering a block move using a system bus write command initiated by user code
US10970215B1 (en) 2019-12-03 2021-04-06 International Business Machines Corporation Cache snooping mode extending coherence protection for certain requests
US11157408B2 (en) 2019-12-17 2021-10-26 International Business Machines Corporation Cache snooping mode extending coherence protection for certain requests
US11157409B2 (en) 2019-12-17 2021-10-26 International Business Machines Corporation Cache snooping mode extending coherence protection for certain requests

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02197940A (ja) 1989-02-22 1990-08-06 Internatl Business Mach Corp <Ibm> データ及び命令を記憶するために別個のキヤツシユ記憶を含む階層記憶システム
US5822765A (en) * 1995-12-14 1998-10-13 International Business Machines Corporation System and method for resolving contention arising from execution of cache coherency operations in a multiple cache computer system
US5909698A (en) * 1997-03-17 1999-06-01 International Business Machines Corporation Cache block store instruction operations where cache coherency is achieved without writing all the way back to main memory

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011527060A (ja) * 2008-07-07 2011-10-20 インターナショナル・ビジネス・マシーンズ・コーポレーション リージョン・キャッシュの援助によってデータ要求を効率的に処理する方法

Also Published As

Publication number Publication date
CN1127693C (zh) 2003-11-12
JP3195303B2 (ja) 2001-08-06
CN1229950A (zh) 1999-09-29
US6178484B1 (en) 2001-01-23

Similar Documents

Publication Publication Date Title
US9513904B2 (en) Computer processor employing cache memory with per-byte valid bits
US5551005A (en) Apparatus and method of handling race conditions in mesi-based multiprocessor system with private caches
US5524233A (en) Method and apparatus for controlling an external cache memory wherein the cache controller is responsive to an interagent communication for performing cache control operations
US5996048A (en) Inclusion vector architecture for a level two cache
JP3434462B2 (ja) 割振り解除方法およびデータ処理システム
US6725337B1 (en) Method and system for speculatively invalidating lines in a cache
US5557769A (en) Mechanism and protocol for maintaining cache coherency within an integrated processor
JP4226057B2 (ja) 包含キャッシュにおける望ましくない置換動作を低減するための先行犠牲選択のための方法及び装置
US5802559A (en) Mechanism for writing back selected doublewords of cached dirty data in an integrated processor
US6272602B1 (en) Multiprocessing system employing pending tags to maintain cache coherence
KR100294105B1 (ko) 멀티 프로세서 컴퓨터 시스템의 일관성 카피-백 버퍼용 방법 및 장치
JPH10301849A (ja) キャッシュ・コヒーレンシを維持する方法及び装置
JP3195303B2 (ja) 命令キャッシュとデータ・キャッシュ間のコヒーレンシを維持する方法および装置
JP2000305842A (ja) ダイレクト・メモリ・アクセスおよびキャッシュ性能を改善する方法および装置
JPH10333985A (ja) データ供給方法及びコンピュータ・システム
JPH09138779A (ja) スヌープ処理方法
JPH11306081A (ja) キャッシュフラッシュ装置
KR100279643B1 (ko) 축소명령어세트컴퓨터(risc)시스템내에서캐쉬블록저장동작성능을개선하기위한방법및장치
KR100320974B1 (ko) 수직 캐시 계층구조에서 의사 정밀 아이-캐시의 포함 방법
KR20060102565A (ko) 라이트 백 캐시 내에서 동시 발생하는 스누프 푸시 또는스누프 킬 연산중에 라이트 백 연산을 취소하는 시스템 및방법
US9760490B2 (en) Private memory table for reduced memory coherence traffic
US7464227B2 (en) Method and apparatus for supporting opportunistic sharing in coherent multiprocessors
US6973541B1 (en) System and method for initializing memory within a data processing system
US6484230B1 (en) Method and system for speculatively processing a load instruction before completion of a preceding synchronization instruction
US6101582A (en) Dcbst with icbi mechanism

Legal Events

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