JP3281893B2 - キャッシュ・メモリ階層内で利用するキャッシュ・コヒーレンシ機構を実施するための方法およびシステム - Google Patents
キャッシュ・メモリ階層内で利用するキャッシュ・コヒーレンシ機構を実施するための方法およびシステムInfo
- Publication number
- JP3281893B2 JP3281893B2 JP03458498A JP3458498A JP3281893B2 JP 3281893 B2 JP3281893 B2 JP 3281893B2 JP 03458498 A JP03458498 A JP 03458498A JP 3458498 A JP3458498 A JP 3458498A JP 3281893 B2 JP3281893 B2 JP 3281893B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- cache memory
- bit
- line
- primary
- 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
Links
- 230000015654 memory Effects 0.000 title claims description 216
- 238000000034 method Methods 0.000 title claims description 31
- 238000012986 modification Methods 0.000 claims description 31
- 230000004048 modification Effects 0.000 claims description 31
- 238000012545 processing Methods 0.000 claims description 31
- 238000010586 diagram Methods 0.000 description 17
- 238000012937 correction Methods 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000001693 membrane extraction with a sorbent interface Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000002040 relaxant effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
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】
【発明の属する技術分野】本発明はデータ処理システム
に関し、さらに詳細には、高性能データ処理システム内
で利用するキャッシュ・メモリに関する。さらに具体的
に言えば、本発明は、高性能データ処理システム内で非
包括的キャッシュ・メモリ階層をサポートするキャッシ
ュ・コヒーレンシ機構を実施するための方法およびシス
テムに関する。
に関し、さらに詳細には、高性能データ処理システム内
で利用するキャッシュ・メモリに関する。さらに具体的
に言えば、本発明は、高性能データ処理システム内で非
包括的キャッシュ・メモリ階層をサポートするキャッシ
ュ・コヒーレンシ機構を実施するための方法およびシス
テムに関する。
【0002】
【従来の技術】複数レベルのキャッシュ・メモリを含む
コンピュータ・アーキテクチャは、近年になって特に関
心の高い分野になり、発展した技術である。広く行われ
ている研究ではこれまで、2レベルキャッシュ・メモリ
階層と、それに関連した、このようなキャッシュ・メモ
リ階層を操作して、システムのキャッシュ・コヒーレン
シ要件を満たしながらプロセッサのパフォーマンスを最
大限にするプロトコルとを扱ってきた。
コンピュータ・アーキテクチャは、近年になって特に関
心の高い分野になり、発展した技術である。広く行われ
ている研究ではこれまで、2レベルキャッシュ・メモリ
階層と、それに関連した、このようなキャッシュ・メモ
リ階層を操作して、システムのキャッシュ・コヒーレン
シ要件を満たしながらプロセッサのパフォーマンスを最
大限にするプロトコルとを扱ってきた。
【0003】2レベル・キャッシュ・メモリ階層は、異
なるサイズおよび速度を有する2つのキャッシュ・メモ
リからなるキャッシュ・メモリ・システムである。通常
は、一般に1次キャッシュまたはL1キャッシュと呼ば
れる第1キャッシュ・メモリの方がアクセス時間が高速
であり、かつビットごとのコストが高く、一般に2次キ
ャッシュまたはL2キャッシュと呼ばれる第2キャッシ
ュの方がアクセス時間が低速であり、かつビットごとの
コストが低い。通常は、小型かつ高速の1次キャッシュ
をオンチップにし、大型かつ低速の2次キャッシュをオ
フチップにするが、いくつかの高性能プロセッサの設計
ではオンチップの2次キャッシュもかなり一般的であ
る。
なるサイズおよび速度を有する2つのキャッシュ・メモ
リからなるキャッシュ・メモリ・システムである。通常
は、一般に1次キャッシュまたはL1キャッシュと呼ば
れる第1キャッシュ・メモリの方がアクセス時間が高速
であり、かつビットごとのコストが高く、一般に2次キ
ャッシュまたはL2キャッシュと呼ばれる第2キャッシ
ュの方がアクセス時間が低速であり、かつビットごとの
コストが低い。通常は、小型かつ高速の1次キャッシュ
をオンチップにし、大型かつ低速の2次キャッシュをオ
フチップにするが、いくつかの高性能プロセッサの設計
ではオンチップの2次キャッシュもかなり一般的であ
る。
【0004】コヒーレント・メモリ・システムの主な目
的は、資源の共用の同期および協調使用が可能になるよ
うにメモリ階層内の全てのメモリ装置に同じ情報のコピ
ーを提供することである。そうでなければ、古いまたは
失効した情報のコピーが不注意に利用された場合に問題
が生じることになる。このため、包含と呼ばれる方式で
は、1次キャッシュは通常は2次キャッシュに記憶され
たデータのサブセットを含むように設計される。この包
含方式は、1次キャッシュと2次キャッシュの間にある
一定レベルの冗長度を提供し、1次キャッシュへのバス
・トラフィックを減少させることができる。ただし、こ
の包含方式に関連した欠点もある。1つの欠点は、2次
キャッシュ中で置換されたキャッシュ・ラインが1次キ
ャッシュのそれと異なる場合、および2次キャッシュ中
で置換されたキャッシュ・ラインが「修正」状態にある
場合に、ラインの再充てん操作に対処するために1次キ
ャッシュからシステム・メモリへの追加のキャストアウ
トが必要になることである。ちなみに、2次キャッシュ
中で置換されたキャッシュ・ラインと同じアドレスを有
する1次キャッシュ中のキャッシュ・ラインは、包含方
式では1次キャッシュ中に単独で存在することができな
いので、これをシステム・メモリにキャストアウトする
必要がある。
的は、資源の共用の同期および協調使用が可能になるよ
うにメモリ階層内の全てのメモリ装置に同じ情報のコピ
ーを提供することである。そうでなければ、古いまたは
失効した情報のコピーが不注意に利用された場合に問題
が生じることになる。このため、包含と呼ばれる方式で
は、1次キャッシュは通常は2次キャッシュに記憶され
たデータのサブセットを含むように設計される。この包
含方式は、1次キャッシュと2次キャッシュの間にある
一定レベルの冗長度を提供し、1次キャッシュへのバス
・トラフィックを減少させることができる。ただし、こ
の包含方式に関連した欠点もある。1つの欠点は、2次
キャッシュ中で置換されたキャッシュ・ラインが1次キ
ャッシュのそれと異なる場合、および2次キャッシュ中
で置換されたキャッシュ・ラインが「修正」状態にある
場合に、ラインの再充てん操作に対処するために1次キ
ャッシュからシステム・メモリへの追加のキャストアウ
トが必要になることである。ちなみに、2次キャッシュ
中で置換されたキャッシュ・ラインと同じアドレスを有
する1次キャッシュ中のキャッシュ・ラインは、包含方
式では1次キャッシュ中に単独で存在することができな
いので、これをシステム・メモリにキャストアウトする
必要がある。
【0005】非包括的キャッシュ・メモリ階層によって
包含の制限を緩和させればキャッシュ・パフォーマンス
は向上するが、1次キャッシュと2次キャッシュの間の
コヒーレンシを維持するために特別なプロトコルを利用
しなければならない。本発明は、非包括的な1次キャッ
シュおよび2次キャッシュをサポートするキャッシュ・
コヒーレンシ機構を提供するためのものである。
包含の制限を緩和させればキャッシュ・パフォーマンス
は向上するが、1次キャッシュと2次キャッシュの間の
コヒーレンシを維持するために特別なプロトコルを利用
しなければならない。本発明は、非包括的な1次キャッ
シュおよび2次キャッシュをサポートするキャッシュ・
コヒーレンシ機構を提供するためのものである。
【0006】
【発明が解決しようとする課題】前述に鑑みて、したが
って本発明の1つの目的は、改善されたデータ処理の方
法およびシステムを提供することである。
って本発明の1つの目的は、改善されたデータ処理の方
法およびシステムを提供することである。
【0007】本発明の別の目的は、キャッシュ・メモリ
を高性能データ処理システム内で利用するための改善さ
れた方法およびシステムをを提供することである。
を高性能データ処理システム内で利用するための改善さ
れた方法およびシステムをを提供することである。
【0008】本発明のさらに別の目的は、高性能データ
処理システム内で非包括的キャッシュ・メモリ階層をサ
ポートするキャッシュ・コヒーレンシ機構を実施するた
めの改善された方法およびシステムを提供することであ
る。
処理システム内で非包括的キャッシュ・メモリ階層をサ
ポートするキャッシュ・コヒーレンシ機構を実施するた
めの改善された方法およびシステムを提供することであ
る。
【0009】
【課題を解決するための手段】前述の目的は、下記のよ
うに達成される。本発明の方法およびシステムによれ
ば、高性能データ処理システム内のメモリ階層は、1次
キャッシュ・メモリ、2次キャッシュ・メモリ、および
主メモリを含む。1次キャッシュ・メモリおよび2次キ
ャッシュ・メモリは非包括的である。さらに、第1状態
ビットおよび第2状態ビットが、1次キャッシュ内に1
次キャッシュの各キャッシュ・ラインと関連して与えら
れる。好ましい実施形態では、第1状態ビットは、1次
キャッシュ・メモリ中の対応するキャッシュ・ラインが
ライトスルー・モードで修正されている場合にのみセッ
トされるが、第2状態ビットは、対応するキャッシュ・
ラインが2次キャッシュ・メモリ中にも存在する場合に
のみセットされる。このように、1次キャッシュ・メモ
リ中の第1状態ビットおよび第2状態ビットを利用する
ことにより、1次キャッシュ・メモリと2次キャッシュ
・メモリの間のキャッシュ・コヒーレンシを維持するこ
とができる。
うに達成される。本発明の方法およびシステムによれ
ば、高性能データ処理システム内のメモリ階層は、1次
キャッシュ・メモリ、2次キャッシュ・メモリ、および
主メモリを含む。1次キャッシュ・メモリおよび2次キ
ャッシュ・メモリは非包括的である。さらに、第1状態
ビットおよび第2状態ビットが、1次キャッシュ内に1
次キャッシュの各キャッシュ・ラインと関連して与えら
れる。好ましい実施形態では、第1状態ビットは、1次
キャッシュ・メモリ中の対応するキャッシュ・ラインが
ライトスルー・モードで修正されている場合にのみセッ
トされるが、第2状態ビットは、対応するキャッシュ・
ラインが2次キャッシュ・メモリ中にも存在する場合に
のみセットされる。このように、1次キャッシュ・メモ
リ中の第1状態ビットおよび第2状態ビットを利用する
ことにより、1次キャッシュ・メモリと2次キャッシュ
・メモリの間のキャッシュ・コヒーレンシを維持するこ
とができる。
【0010】
【発明の実施の形態】本発明は、どのような複数レベル
非包括的キャッシュ・メモリ階層式のデータ処理システ
ムでも実施することができる。また、本発明の特徴は、
1次キャッシュおよび2次キャッシュを有する様々なデ
ータ処理システムで、または複数のキャッシュ・メモリ
・アクセスを必要とするいたるところで適用可能である
ことを理解されたい。
非包括的キャッシュ・メモリ階層式のデータ処理システ
ムでも実施することができる。また、本発明の特徴は、
1次キャッシュおよび2次キャッシュを有する様々なデ
ータ処理システムで、または複数のキャッシュ・メモリ
・アクセスを必要とするいたるところで適用可能である
ことを理解されたい。
【0011】次に図面、具体的には図1を参照すると、
本発明の好ましい実施形態に従って複数レベル非包括的
キャッシュ・メモリ階層を組み込むことができる通常の
データ処理システムのブロック・ダイヤグラムが図示さ
れている。図1では、単一のプロセッサ104のみを示
すが、マルチプロセッサ・システムでも本発明の特徴は
有効である。スーパースカラーRISCタイプにするこ
ともあるCPU106を有するプロセッサ104は、オ
ンチップ命令キャッシュ107およびオンチップ・デー
タ・キャッシュ108を含む単一チップ装置として構築
される。キャッシュ107、108はともに1次キャッ
シュであり、ローカル・バス構造内の別々のパスにより
CPU106に接続される。命令キャッシュ107はキ
ャッシュ制御装置109aを介してローカル・バス10
5に接続され、データ・キャッシュ108はキャッシュ
制御装置109bを介してローカル・バス105に接続
される。
本発明の好ましい実施形態に従って複数レベル非包括的
キャッシュ・メモリ階層を組み込むことができる通常の
データ処理システムのブロック・ダイヤグラムが図示さ
れている。図1では、単一のプロセッサ104のみを示
すが、マルチプロセッサ・システムでも本発明の特徴は
有効である。スーパースカラーRISCタイプにするこ
ともあるCPU106を有するプロセッサ104は、オ
ンチップ命令キャッシュ107およびオンチップ・デー
タ・キャッシュ108を含む単一チップ装置として構築
される。キャッシュ107、108はともに1次キャッ
シュであり、ローカル・バス構造内の別々のパスにより
CPU106に接続される。命令キャッシュ107はキ
ャッシュ制御装置109aを介してローカル・バス10
5に接続され、データ・キャッシュ108はキャッシュ
制御装置109bを介してローカル・バス105に接続
される。
【0012】2次キャッシュ110もまた、キャッシュ
制御装置111を介してローカル・バス105に接続さ
れる。2次キャッシュ110は通常は命令キャッシュ1
07またはデータ・キャッシュ108のどちらよりもは
るかに大きく、2次キャッシュ110へのアクセスもま
た、命令キャッシュ107またはデータ・キャッシュ1
08のどちらへのアクセスよりもいくらか低速になる。
CPU106もまた、ローカル・バス105とシステム
・バス113の間のタイミングおよび制御の変換を行う
バス・インタフェース112を介してシステム・バス1
13に接続される。さらに、主メモリ115およびディ
スク記憶装置116がシステム・バス113に結合され
る。
制御装置111を介してローカル・バス105に接続さ
れる。2次キャッシュ110は通常は命令キャッシュ1
07またはデータ・キャッシュ108のどちらよりもは
るかに大きく、2次キャッシュ110へのアクセスもま
た、命令キャッシュ107またはデータ・キャッシュ1
08のどちらへのアクセスよりもいくらか低速になる。
CPU106もまた、ローカル・バス105とシステム
・バス113の間のタイミングおよび制御の変換を行う
バス・インタフェース112を介してシステム・バス1
13に接続される。さらに、主メモリ115およびディ
スク記憶装置116がシステム・バス113に結合され
る。
【0013】命令キャッシュ107およびデータ・キャ
ッシュ108は、実(すなわち物理)アドレスと同様に
有効(すなわち未変換)アドレスでもアドレスすること
ができる。従って、プロセッサ104内のローカル・バ
ス105は、有効アドレス・バス、実アドレス・バス、
および命令アドレス・バスを含むいくつかのアドレス・
バスを有する。対照的に、2次キャッシュ110は通常
は実アドレスのみでアドレスされる。
ッシュ108は、実(すなわち物理)アドレスと同様に
有効(すなわち未変換)アドレスでもアドレスすること
ができる。従って、プロセッサ104内のローカル・バ
ス105は、有効アドレス・バス、実アドレス・バス、
および命令アドレス・バスを含むいくつかのアドレス・
バスを有する。対照的に、2次キャッシュ110は通常
は実アドレスのみでアドレスされる。
【0014】図示のように、メモリ階層は最高速から最
低速、最小から最大、最高コストから最低コスト、1次
キャッシュ107、108から順次2次キャッシュ11
0、主メモリ115、ディスク記憶装置116となる。
通常は、主メモリ115はディスク記憶装置116の内
容のサブセットを含み、2次キャッシュ110は主メモ
リ115の内容のサブセットを含む。ただし、1次キャ
ッシュ107、108と2次キャッシュ110とが非包
括的関係にあるので、各キャッシュ107、108は2
次キャッシュ110の内容とは無関係な情報を含むこと
ができる。
低速、最小から最大、最高コストから最低コスト、1次
キャッシュ107、108から順次2次キャッシュ11
0、主メモリ115、ディスク記憶装置116となる。
通常は、主メモリ115はディスク記憶装置116の内
容のサブセットを含み、2次キャッシュ110は主メモ
リ115の内容のサブセットを含む。ただし、1次キャ
ッシュ107、108と2次キャッシュ110とが非包
括的関係にあるので、各キャッシュ107、108は2
次キャッシュ110の内容とは無関係な情報を含むこと
ができる。
【0015】CPU106はプロセッサ・サイクル以内
に1次キャッシュ107、108にアクセスすることが
できるが、複数のプロセッサ・サイクルを費やして2次
キャッシュ110にアクセスすることもできる。1次キ
ャッシュ107、108、および2次キャッシュ110
中でキャッシュ「ミス」が発生した場合には、主メモリ
115にアクセスしてキャッシュ・ライン充てん操作を
実行する、すなわちキャッシュ・ラインを、アドレスさ
れたデータを含む主メモリ115からの等価なビット部
分で置換する。このキャッシュ・ライン充てん操作は、
キャッシュ「ミス」が発生した試みたキャッシュ・アク
セスに合うように実行しなければならない。キャッシュ
・ライン充てん操作を試みた位置を主メモリ115が含
まない場合には、キャッシュ・ライン充てん操作を完了
することができるように、このデータを含むページをデ
ィスク記憶装置116から獲得する。ディスク記憶装置
116からページを獲得し、これを主メモリ115に書
き込むには、通常は多数のプロセッサ・サイクルを要す
るが、この間にCPU106を切り替えて別のタスクを
実行させる、または停止させてデータが要求を満たすま
で待機することができる。
に1次キャッシュ107、108にアクセスすることが
できるが、複数のプロセッサ・サイクルを費やして2次
キャッシュ110にアクセスすることもできる。1次キ
ャッシュ107、108、および2次キャッシュ110
中でキャッシュ「ミス」が発生した場合には、主メモリ
115にアクセスしてキャッシュ・ライン充てん操作を
実行する、すなわちキャッシュ・ラインを、アドレスさ
れたデータを含む主メモリ115からの等価なビット部
分で置換する。このキャッシュ・ライン充てん操作は、
キャッシュ「ミス」が発生した試みたキャッシュ・アク
セスに合うように実行しなければならない。キャッシュ
・ライン充てん操作を試みた位置を主メモリ115が含
まない場合には、キャッシュ・ライン充てん操作を完了
することができるように、このデータを含むページをデ
ィスク記憶装置116から獲得する。ディスク記憶装置
116からページを獲得し、これを主メモリ115に書
き込むには、通常は多数のプロセッサ・サイクルを要す
るが、この間にCPU106を切り替えて別のタスクを
実行させる、または停止させてデータが要求を満たすま
で待機することができる。
【0016】次に図2を参照すると、本発明の好ましい
実施形態による1次キャッシュ16の編成を示すブロッ
ク・ダイヤグラムが示されている。1次キャッシュ16
は、命令キャッシュ107またはデータ・キャッシュ1
08、あるいはその両方にすることができる。1次キャ
ッシュ16は、それぞれに64個のキャッシュ・ライン
を有するウェイ0、ウェイ1、ウェイ2、およびウェイ
3からなる4ウェイ・キャッシュとして構成されること
が好ましい。データ・キャッシュ16の各ウェイは3つ
の部分、すなわちタグ部分、データ部分、および状態ビ
ット部分にさらに分割される。図2に示すように、タグ
部分は、ウェイ0、ウェイ1、ウェイ2、およびウェイ
3のそれぞれに対してタグ・セット60a、タグ・セッ
ト60b、タグ・セット60c、およびタグ・セット6
0dを含む。同様に、データ部分は、ウェイ0、ウェイ
1、ウェイ2、およびウェイ3のそれぞれに対してデー
タ・セット70a、データ・セット70b、データ・セ
ット70c、およびデータ・セット70dを含む。ま
た、状態ビット部分は、ウェイ0、ウェイ1、ウェイ
2、およびウェイ3のそれぞれに対して状態ビット・フ
ィールド80a、状態ビット・フィールド80b、状態
ビット・フィールド80c、および状態ビット・フィー
ルド80dを含む。タグ・セット60aないし60dの
それぞれはデータ・セット70aないし70dのそれぞ
れに対応する。全てのタグ・セット60aないし60
d、データ・セット70aないし70d、および状態ビ
ット・フィールド80aないし80dは同一の構成にな
るので、タグ・セット60a、データ・セット70a、
および状態ビット・フィールド80aについてのみ以下
に詳細に記述する。
実施形態による1次キャッシュ16の編成を示すブロッ
ク・ダイヤグラムが示されている。1次キャッシュ16
は、命令キャッシュ107またはデータ・キャッシュ1
08、あるいはその両方にすることができる。1次キャ
ッシュ16は、それぞれに64個のキャッシュ・ライン
を有するウェイ0、ウェイ1、ウェイ2、およびウェイ
3からなる4ウェイ・キャッシュとして構成されること
が好ましい。データ・キャッシュ16の各ウェイは3つ
の部分、すなわちタグ部分、データ部分、および状態ビ
ット部分にさらに分割される。図2に示すように、タグ
部分は、ウェイ0、ウェイ1、ウェイ2、およびウェイ
3のそれぞれに対してタグ・セット60a、タグ・セッ
ト60b、タグ・セット60c、およびタグ・セット6
0dを含む。同様に、データ部分は、ウェイ0、ウェイ
1、ウェイ2、およびウェイ3のそれぞれに対してデー
タ・セット70a、データ・セット70b、データ・セ
ット70c、およびデータ・セット70dを含む。ま
た、状態ビット部分は、ウェイ0、ウェイ1、ウェイ
2、およびウェイ3のそれぞれに対して状態ビット・フ
ィールド80a、状態ビット・フィールド80b、状態
ビット・フィールド80c、および状態ビット・フィー
ルド80dを含む。タグ・セット60aないし60dの
それぞれはデータ・セット70aないし70dのそれぞ
れに対応する。全てのタグ・セット60aないし60
d、データ・セット70aないし70d、および状態ビ
ット・フィールド80aないし80dは同一の構成にな
るので、タグ・セット60a、データ・セット70a、
および状態ビット・フィールド80aについてのみ以下
に詳細に記述する。
【0017】タグ・セット60aおよびデータ・セット
70aはそれぞれ、ライン0からライン63までの64
個のキャッシュ・ラインを有し、各キャッシュ・ライン
にはアドレス30のビット20ないし25により指標が
付けられる。データ・セット70aの各キャッシュ・ラ
インは64バイト(または16ワード)の幅があるが、
タグ・セット60aの各キャッシュ・ラインは20ビッ
トの幅しかない。データ・セット70a中の各キャッシ
ュ・ラインはCPU106が必要とすることがある実際
の情報を含み、キャッシュ・ライン内の各バイトにはア
ドレス30のビット26ないし31により指標が付けら
れる。一方、タグ・セット60a中の各キャッシュ・ラ
インは、アドレス30のビット0ないし19と比較して
キャッシュ「ヒット」またはキャッシュ「ミス」のどち
らが存在するかを決定するために利用するアドレス・タ
グを含む。ちなみに、タグ・セット60aないし60d
のうちの1つのアドレス・タグとアドレス30のビット
0ないし19が一致すれば、キャッシュ「ヒット」であ
る。
70aはそれぞれ、ライン0からライン63までの64
個のキャッシュ・ラインを有し、各キャッシュ・ライン
にはアドレス30のビット20ないし25により指標が
付けられる。データ・セット70aの各キャッシュ・ラ
インは64バイト(または16ワード)の幅があるが、
タグ・セット60aの各キャッシュ・ラインは20ビッ
トの幅しかない。データ・セット70a中の各キャッシ
ュ・ラインはCPU106が必要とすることがある実際
の情報を含み、キャッシュ・ライン内の各バイトにはア
ドレス30のビット26ないし31により指標が付けら
れる。一方、タグ・セット60a中の各キャッシュ・ラ
インは、アドレス30のビット0ないし19と比較して
キャッシュ「ヒット」またはキャッシュ「ミス」のどち
らが存在するかを決定するために利用するアドレス・タ
グを含む。ちなみに、タグ・セット60aないし60d
のうちの1つのアドレス・タグとアドレス30のビット
0ないし19が一致すれば、キャッシュ「ヒット」であ
る。
【0018】次に図3を参照すると、本発明の好ましい
実施形態による1つのキャッシュ・ラインの状態ビット
・フィールド80aの詳細図が示されている。図示のよ
うに、状態ビット・フィールド80aは5つの異なる状
態ビット、すなわち有効ビット10、共有ビット11、
修正ビット12、Lビット13、およびCビット14を
含む。有効ビット10、共有ビット11、修正ビット1
2を合わせて利用し、4状態MESI(修正(modifie
d)、排他的(excluisive)、共有(shared)、および
無効(invalid))プロトコルを実施する。4状態ME
SIプロトコルの実施は、キャッシュ・メモリ設計の技
術分野の当業者には周知である。残りのLビット13お
よびCビット14は、本発明の好ましい実施形態によ
る、非包括的な1次キャッシュおよび2次キャッシュを
サポートするキャッシュ・コヒーレンシ機構を実施する
ためのものである。
実施形態による1つのキャッシュ・ラインの状態ビット
・フィールド80aの詳細図が示されている。図示のよ
うに、状態ビット・フィールド80aは5つの異なる状
態ビット、すなわち有効ビット10、共有ビット11、
修正ビット12、Lビット13、およびCビット14を
含む。有効ビット10、共有ビット11、修正ビット1
2を合わせて利用し、4状態MESI(修正(modifie
d)、排他的(excluisive)、共有(shared)、および
無効(invalid))プロトコルを実施する。4状態ME
SIプロトコルの実施は、キャッシュ・メモリ設計の技
術分野の当業者には周知である。残りのLビット13お
よびCビット14は、本発明の好ましい実施形態によ
る、非包括的な1次キャッシュおよび2次キャッシュを
サポートするキャッシュ・コヒーレンシ機構を実施する
ためのものである。
【0019】次に図4を参照すると、本発明の好ましい
実施形態による2次キャッシュ110の編成を示すブロ
ック・ダイヤグラムが示されている。2次キャッシュ1
10は、2048のキャッシュ・ラインを有する直接
(ダイレクト)マップ式キャッシュとして構成されるこ
とが好ましい。各キャッシュ・ラインはタグ部分62、
データ部分72、および状態ビット部分82に分割され
る。各キャッシュ・ラインの状態ビット部分82は、3
つの状態ビット、すなわち有効ビット15、共有ビット
16、および修正ビット17を含む。データ部分72の
各キャッシュ・ラインは64バイト(16ワード)の幅
があるが、タグ部分62の各キャッシュ・ラインは15
ビットの幅しかない。データ部分72の各キャッシュ・
ラインは、CPU106が必要とすることがある実際の
情報を含む。
実施形態による2次キャッシュ110の編成を示すブロ
ック・ダイヤグラムが示されている。2次キャッシュ1
10は、2048のキャッシュ・ラインを有する直接
(ダイレクト)マップ式キャッシュとして構成されるこ
とが好ましい。各キャッシュ・ラインはタグ部分62、
データ部分72、および状態ビット部分82に分割され
る。各キャッシュ・ラインの状態ビット部分82は、3
つの状態ビット、すなわち有効ビット15、共有ビット
16、および修正ビット17を含む。データ部分72の
各キャッシュ・ラインは64バイト(16ワード)の幅
があるが、タグ部分62の各キャッシュ・ラインは15
ビットの幅しかない。データ部分72の各キャッシュ・
ラインは、CPU106が必要とすることがある実際の
情報を含む。
【0020】1次キャッシュ16と同様に、2次キャッ
シュ110中の各キャッシュ・ラインにはアドレス30
のビット15ないし25により指標が付けられ、キャッ
シュ・ライン内の各バイトにはアドレス30のビット2
6ないし31により指標が付けられる。さらに、タグ部
分62の各キャッシュ・ラインは、アドレス30のビッ
ト0ないし14と比較してキャッシュ「ヒット」または
キャッシュ「ミス」のどちらが存在するかを決定するた
めに利用するアドレス・タグを含む。
シュ110中の各キャッシュ・ラインにはアドレス30
のビット15ないし25により指標が付けられ、キャッ
シュ・ライン内の各バイトにはアドレス30のビット2
6ないし31により指標が付けられる。さらに、タグ部
分62の各キャッシュ・ラインは、アドレス30のビッ
ト0ないし14と比較してキャッシュ「ヒット」または
キャッシュ「ミス」のどちらが存在するかを決定するた
めに利用するアドレス・タグを含む。
【0021】次に図5を参照すると、本発明の好ましい
実施形態によるLビットおよびCビットを利用するライ
ン充てん操作を示す、高水準論理のフロー・ダイアグラ
ムが示されている。キャッシュ「ミス」がある場合に
は、再充てん操作はブロック20に示すようにまず1次
キャッシュから開始する。その後ブロック22に示すよ
うにキャッシュ・ラインが置換のために選択される。1
次キャッシュのライン置換の詳細については図6にさら
に記載する。その後ブロック24に示すように、2次キ
ャッシュにもライン充てん操作を実行すべきか否かを決
定する。2次キャッシュにライン充てん操作を実行すべ
きでない場合には、ブロック28に示すように1次キャ
ッシュの対応するキャッシュ・ラインにデータがロード
され、対応するキャッシュ・ラインのCビットおよびL
ビットはともに「0」にリセットされる。そうではな
く、2次キャッシュにライン充てん操作を実行すべきで
ある場合には、2次キャッシュのキャッシュ・ラインが
置換のために選択される。その後ブロック26に示すよ
うに、1次キャッシュの対応するキャッシュ・ラインお
よび2次ラインにデータがロードされ、1次キャッシュ
の対応するキャッシュ・ラインのCビットは「0」にリ
セットされ、1次キャッシュの対応するキャッシュ・ラ
インのLビットは「1」にセットされる。従来通り、ビ
ットをセットするとはビットを論理「1」にセットする
ことを意味し、ビットをリセットするとはビットを論理
「0」にリセットすることを意味するが、逆の指定もま
た条件に合っている。
実施形態によるLビットおよびCビットを利用するライ
ン充てん操作を示す、高水準論理のフロー・ダイアグラ
ムが示されている。キャッシュ「ミス」がある場合に
は、再充てん操作はブロック20に示すようにまず1次
キャッシュから開始する。その後ブロック22に示すよ
うにキャッシュ・ラインが置換のために選択される。1
次キャッシュのライン置換の詳細については図6にさら
に記載する。その後ブロック24に示すように、2次キ
ャッシュにもライン充てん操作を実行すべきか否かを決
定する。2次キャッシュにライン充てん操作を実行すべ
きでない場合には、ブロック28に示すように1次キャ
ッシュの対応するキャッシュ・ラインにデータがロード
され、対応するキャッシュ・ラインのCビットおよびL
ビットはともに「0」にリセットされる。そうではな
く、2次キャッシュにライン充てん操作を実行すべきで
ある場合には、2次キャッシュのキャッシュ・ラインが
置換のために選択される。その後ブロック26に示すよ
うに、1次キャッシュの対応するキャッシュ・ラインお
よび2次ラインにデータがロードされ、1次キャッシュ
の対応するキャッシュ・ラインのCビットは「0」にリ
セットされ、1次キャッシュの対応するキャッシュ・ラ
インのLビットは「1」にセットされる。従来通り、ビ
ットをセットするとはビットを論理「1」にセットする
ことを意味し、ビットをリセットするとはビットを論理
「0」にリセットすることを意味するが、逆の指定もま
た条件に合っている。
【0022】次に図6を参照すると、本発明の好ましい
実施形態による1次キャッシュに関するライン置換操作
を示す高水準論理のフロー・ダイアグラムが示されてい
る。ブロック30から開始して、ブロック31およびブ
ロック32に示すように、キャストアウト候補キャッシ
ュ・ラインの修正(M)ビットまたはCビットのどちら
をセットするかを決定する。キャストアウト候補キャッ
シュ・ラインの修正ビットおよびCビットがともにセッ
トされない場合には、ブロック33に示すようにキャス
トアウト候補キャッシュ・ラインは2次キャッシュに送
られずに除去される。そうではなく、キャストアウト候
補キャッシュ・ラインの修正ビットがセットされる場合
には、ブロック36に示すようにキャストアウト候補キ
ャッシュ・ラインは2次キャッシュに送られる。同様
に、ブロック32、35、および36に示すように、修
正ビットはセットされないがキャストアウト候補キャッ
シュ・ラインのCビットおよびLビットがともにセット
される場合には、キャストアウト候補キャッシュ・ライ
ンはやはり2次キャッシュに送られる。
実施形態による1次キャッシュに関するライン置換操作
を示す高水準論理のフロー・ダイアグラムが示されてい
る。ブロック30から開始して、ブロック31およびブ
ロック32に示すように、キャストアウト候補キャッシ
ュ・ラインの修正(M)ビットまたはCビットのどちら
をセットするかを決定する。キャストアウト候補キャッ
シュ・ラインの修正ビットおよびCビットがともにセッ
トされない場合には、ブロック33に示すようにキャス
トアウト候補キャッシュ・ラインは2次キャッシュに送
られずに除去される。そうではなく、キャストアウト候
補キャッシュ・ラインの修正ビットがセットされる場合
には、ブロック36に示すようにキャストアウト候補キ
ャッシュ・ラインは2次キャッシュに送られる。同様
に、ブロック32、35、および36に示すように、修
正ビットはセットされないがキャストアウト候補キャッ
シュ・ラインのCビットおよびLビットがともにセット
される場合には、キャストアウト候補キャッシュ・ライ
ンはやはり2次キャッシュに送られる。
【0023】次に図7を参照すると、本発明の好ましい
実施形態による2次キャッシュに関するライン置換操作
を示す高水準論理のフロー・ダイアグラムが示されてい
る。ブロック40から開始して、ブロック42に示すよ
うに、1次のキャストアウト候補キャッシュのLビット
は「0」にリセットされる。その後、ブロック44に示
すようにキャストアウト候補キャッシュ・ラインの修正
ビットをセットするか否かを決定する。キャストアウト
候補キャッシュ・ラインの修正ビットをセットしない場
合には、ブロック48に示すようにキャストアウト候補
キャッシュ・ラインは主メモリに送られずに除去され
る。そうではなく、キャストアウト候補キャッシュ・ラ
インの修正ビットをセットする場合には、ブロック46
に示すようにキャストアウト候補キャッシュ・ラインは
主メモリに送られる。
実施形態による2次キャッシュに関するライン置換操作
を示す高水準論理のフロー・ダイアグラムが示されてい
る。ブロック40から開始して、ブロック42に示すよ
うに、1次のキャストアウト候補キャッシュのLビット
は「0」にリセットされる。その後、ブロック44に示
すようにキャストアウト候補キャッシュ・ラインの修正
ビットをセットするか否かを決定する。キャストアウト
候補キャッシュ・ラインの修正ビットをセットしない場
合には、ブロック48に示すようにキャストアウト候補
キャッシュ・ラインは主メモリに送られずに除去され
る。そうではなく、キャストアウト候補キャッシュ・ラ
インの修正ビットをセットする場合には、ブロック46
に示すようにキャストアウト候補キャッシュ・ラインは
主メモリに送られる。
【0024】次に図8を参照すると、本発明の好ましい
実施形態による1次キャッシュからのキャスト・アウト
操作を示す高水準論理のフロー・ダイアグラムが示され
ている。ブロック50から開始して、ブロック52に示
すように、キャストアウト候補キャッシュ・ラインの修
正ビットをセットするか否かを決定する。キャストアウ
ト候補キャッシュ・ラインの修正ビットをセットする場
合には、そのキャッシュ・ラインは2次キャッシュに書
き込まれ、そのキャッシュ・ラインの修正ビットは
「1」にセットされる。そうではなく、キャストアウト
候補キャッシュ・ラインの修正ビットをセットしない場
合には、キャッシュ・ラインはやはり2次キャストに書
き込まれるが、そのキャッシュ・ラインの修正ビットは
「0」にリセットされる。
実施形態による1次キャッシュからのキャスト・アウト
操作を示す高水準論理のフロー・ダイアグラムが示され
ている。ブロック50から開始して、ブロック52に示
すように、キャストアウト候補キャッシュ・ラインの修
正ビットをセットするか否かを決定する。キャストアウ
ト候補キャッシュ・ラインの修正ビットをセットする場
合には、そのキャッシュ・ラインは2次キャッシュに書
き込まれ、そのキャッシュ・ラインの修正ビットは
「1」にセットされる。そうではなく、キャストアウト
候補キャッシュ・ラインの修正ビットをセットしない場
合には、キャッシュ・ラインはやはり2次キャストに書
き込まれるが、そのキャッシュ・ラインの修正ビットは
「0」にリセットされる。
【0025】その後、2次キャッシュのキャッシュ・ラ
インが古くなりライン充てん操作を必要とする場合に
は、対応するキャッシュ・ラインはその修正ビットがセ
ットされた場合にのみ主メモリに送られる。そうでない
場合は対応するキャッシュ・ラインは除去される。
インが古くなりライン充てん操作を必要とする場合に
は、対応するキャッシュ・ラインはその修正ビットがセ
ットされた場合にのみ主メモリに送られる。そうでない
場合は対応するキャッシュ・ラインは除去される。
【0026】次に図9を参照すると、本発明の好ましい
実施形態による1次キャッシュへの記憶操作を示す高水
準論理のフロー・ダイアグラムが示されている。1次キ
ャッシュへの記憶操作のために、ブロック62に示すよ
うに、最初に1次キャッシュがライトスルー・モードで
あるか否かを決定する。1次キャッシュがライトスルー
・モードでない(すなわち1次キャッシュがライト・バ
ック・モードである)場合には、ブロック68およびブ
ロック70にそれぞれ示すように、データ・ワードは1
次キャッシュに書き込まれ、対応するキャッシュ・ライ
ンの修正ビットは「1」にセットされる。そうではな
く、1次キャッシュがライトスルー・モードである場合
には、ブロック64およびブロック66にそれぞれ示す
ように、データ・ワードは2次キャッシュには書き込ま
れずに1次キャッシュおよび主メモリに書き込まれ、C
ビットは「1」にセットされる。
実施形態による1次キャッシュへの記憶操作を示す高水
準論理のフロー・ダイアグラムが示されている。1次キ
ャッシュへの記憶操作のために、ブロック62に示すよ
うに、最初に1次キャッシュがライトスルー・モードで
あるか否かを決定する。1次キャッシュがライトスルー
・モードでない(すなわち1次キャッシュがライト・バ
ック・モードである)場合には、ブロック68およびブ
ロック70にそれぞれ示すように、データ・ワードは1
次キャッシュに書き込まれ、対応するキャッシュ・ライ
ンの修正ビットは「1」にセットされる。そうではな
く、1次キャッシュがライトスルー・モードである場合
には、ブロック64およびブロック66にそれぞれ示す
ように、データ・ワードは2次キャッシュには書き込ま
れずに1次キャッシュおよび主メモリに書き込まれ、C
ビットは「1」にセットされる。
【0027】要約すると、ライトスルー・モードでは、
記憶操作によってデータ・ワードが1次キャッシュおよ
び主メモリに書き込まれ、1次キャッシュの対応するキ
ャッシュ・ラインのCビットがセットされる。ライト・
バック・モードでは、記憶操作によってデータ・ワード
は1次キャッシュのみに書き込まれ、1次キャッシュの
対応するキャッシュ・ラインの修正ビットがセットされ
る。1次キャッシュにライン充てん操作を行う際には、
キャストアウト候補キャッシュ・ラインの修正ビットま
たはCビットのどちらかがセットされる場合には、キャ
ストアウト候補キャッシュ・ラインは2次キャッシュに
送られる。しかし、キャストアウト候補キャッシュ・ラ
インの修正ビットおよびCビットがともにセットされな
い場合には、キャストアウト候補キャッシュ・ラインは
2次キャッシュに送られずに除去される。どのような場
合でも、データ・ワードが最初に1次キャッシュにロー
ドされる場合には、キャッシュ・ラインのCビットは
「0」にリセットされる。
記憶操作によってデータ・ワードが1次キャッシュおよ
び主メモリに書き込まれ、1次キャッシュの対応するキ
ャッシュ・ラインのCビットがセットされる。ライト・
バック・モードでは、記憶操作によってデータ・ワード
は1次キャッシュのみに書き込まれ、1次キャッシュの
対応するキャッシュ・ラインの修正ビットがセットされ
る。1次キャッシュにライン充てん操作を行う際には、
キャストアウト候補キャッシュ・ラインの修正ビットま
たはCビットのどちらかがセットされる場合には、キャ
ストアウト候補キャッシュ・ラインは2次キャッシュに
送られる。しかし、キャストアウト候補キャッシュ・ラ
インの修正ビットおよびCビットがともにセットされな
い場合には、キャストアウト候補キャッシュ・ラインは
2次キャッシュに送られずに除去される。どのような場
合でも、データ・ワードが最初に1次キャッシュにロー
ドされる場合には、キャッシュ・ラインのCビットは
「0」にリセットされる。
【0028】記述したように、本発明は、データ処理シ
ステム内で非包括的キャッシュ・メモリ階層をサポート
するキャッシュ・コヒーレンシ機構を実施するための方
法を提供するものである。ライトスルー・モードでは、
データ・ワードは1次キャッシュおよび主メモリには書
き込まれるが、2次キャッシュをスキップする。したが
って、1次キャッシュのキャッシュ・ラインは全ての更
新を維持し、2次キャッシュの対応するキャッシュ・ラ
インは、1次キャッシュのキャッシュ・ラインを廃棄す
べき場合にのみ更新される。このようにして、1次キャ
ッシュのスヌープ(Snoop)またはキャストアウト
が発生するまで1次キャッシュが(主メモリに加えて)
全てのデータ・ワードの変更を累積するので、2次キャ
ッシュへのバス・トラフィックは軽減される。さらに、
1次キャッシュにはデータがあり、2次キャッシュには
必ずしもデータがないことにより、通常は関連性(asso
ciative)の高い1次キャッシュを通常は稠密だが関連
性の低い2次キャッシュとともに有効に使用することが
できる。
ステム内で非包括的キャッシュ・メモリ階層をサポート
するキャッシュ・コヒーレンシ機構を実施するための方
法を提供するものである。ライトスルー・モードでは、
データ・ワードは1次キャッシュおよび主メモリには書
き込まれるが、2次キャッシュをスキップする。したが
って、1次キャッシュのキャッシュ・ラインは全ての更
新を維持し、2次キャッシュの対応するキャッシュ・ラ
インは、1次キャッシュのキャッシュ・ラインを廃棄す
べき場合にのみ更新される。このようにして、1次キャ
ッシュのスヌープ(Snoop)またはキャストアウト
が発生するまで1次キャッシュが(主メモリに加えて)
全てのデータ・ワードの変更を累積するので、2次キャ
ッシュへのバス・トラフィックは軽減される。さらに、
1次キャッシュにはデータがあり、2次キャッシュには
必ずしもデータがないことにより、通常は関連性(asso
ciative)の高い1次キャッシュを通常は稠密だが関連
性の低い2次キャッシュとともに有効に使用することが
できる。
【0029】まとめとして、本発明の構成に関して以下
の事項を開示する。
の事項を開示する。
【0030】(1)1次キャッシュ・メモリ、2次キャ
ッシュ・メモリ、および主メモリを含み、前記1次キャ
ッシュ・メモリおよび前記2次キャッシュ・メモリが非
包括的であるデータ処理システム内でキャッシュ・コヒ
ーレンシ機構を実施する方法であって、前記1次キャッ
シュ内の各キャッシュ・ラインと関連して第1状態ビッ
トおよび第2状態ビットを与える段階と、前記1次キャ
ッシュ・メモリ中の対応するキャッシュ・ラインがライ
トスルー・モードにおいて記憶操作により修正されてい
る場合にのみ、前記第1状態ビットをセットする段階
と、対応するキャッシュ・ラインが前記1次キャッシュ
および前記2次キャッシュの両方に存在する場合にの
み、前記第2状態ビットをセットする段階と、前記第1
状態ビットおよび前記第2状態ビットを利用して前記1
次キャッシュと前記2次キャッシュの間のキャッシュ・
コヒーレンシを維持する段階とを含む方法。 (2)前記1次キャッシュ・メモリに関するライン置換
の間に、前記1次キャッシュ・メモリ中の前記第1状態
ビット、前記第2状態ビット、および修正ビットがセッ
トされていない場合に、キャッシュ・ラインを前記2次
キャッシュ・メモリに送らずに除去する段階をさらに含
む、非包括的キャッシュ・メモリ階層をサポートするキ
ャッシュ・コヒーレンシ機構を実施する上記(1)に記
載の方法。 (3)前記1次キャッシュ・メモリに関する前記ライン
置換の間に、前記第1状態ビットおよび前記第2状態ビ
ットがともにセットされているか、または前記1次キャ
ッシュ・メモリ中の前記修正ビットがセットされている
場合に、キャッシュ・ラインを前記2次キャッシュ・メ
モリに送る段階をさらに含む、非包括的キャッシュ・メ
モリ階層をサポートするキャッシュ・コヒーレンシ機構
を実施する上記(2)に記載の方法。 (4)前記2次キャッシュ・メモリに関するライン置換
の間に、前記2次キャッシュ・メモリ中の修正ビットが
セットされていない場合に、キャッシュ・ラインを前記
主メモリに送らずに除去する段階をさらに含む、非包括
的キャッシュ・メモリ階層をサポートするキャッシュ・
コヒーレンシ機構を実施する上記(1)に記載の方法。 (5)前記2次キャッシュ・メモリに関する前記ライン
置換の間に、前記2次キャッシュ・メモリ中の前記修正
ビットがセットされている場合に、キャッシュ・ライン
を前記主メモリに送る段階をさらに含む、非包括的キャ
ッシュ・メモリ階層をサポートするキャッシュ・コヒー
レンシ機構を実施する上記(4)に記載の方法。 (6)前記1次キャッシュ・メモリに関するキャストア
ウトの間に、前記1次キャッシュ・メモリ中の修正ビッ
トがセットされている場合に、キャッシュ・ラインを前
記2次キャッシュ・メモリに書込みながら前記2次キャ
ッシュ・メモリ中の修正ビットをセットする段階をさら
に含む、非包括的キャッシュ・メモリ階層をサポートす
るキャッシュ・コヒーレンシ機構を実施する上記(1)
に記載の方法。 (7)前記1次キャッシュ・メモリに関する前記キャス
トアウトの間に、前記1次キャッシュ・メモリ中の前記
修正ビットがセットされていない場合に、キャッシュ・
ラインを前記2次キャッシュ・メモリに書込みながら前
記2次キャッシュ・メモリ中の修正ビットをリセットす
る段階をさらに含む、非包括的キャッシュ・メモリ階層
をサポートするキャッシュ・コヒーレンシ機構を実施す
る上記(6)に記載の方法。 (8)前記1次キャッシュ・メモリに関するライン充て
ん操作の間に、前記ライン充てん操作を前記2次キャッ
シュ・メモリ中で実行すべき場合に、キャッシュ・ライ
ンを前記1次キャッシュ・メモリにロードしながら、前
記第1状態ビットをリセットし、前記第2状態ビットを
セットする段階をさらに含む、非包括的キャッシュ・メ
モリ階層をサポートするキャッシュ・コヒーレンシ機構
を実施する上記(1)に記載の方法。 (9)前記1次キャッシュ・メモリに関する前記ライン
充てん操作の間に、前記ライン充てん操作を前記2次キ
ャッシュ・メモリ中で実行すべきでない場合に、キャッ
シュ・ラインを前記1次キャッシュ・メモリにロードし
ながら、前記第1状態ビットおよび前記第2状態ビット
をリセットする段階をさらに含む、非包括的キャッシュ
・メモリ階層をサポートするキャッシュ・コヒーレンシ
機構を実施する上記(8)に記載の方法。 (10)非包括的キャッシュ・メモリ階層をサポートす
るキャッシュ・コヒーレンシ機構を有するデータ処理シ
ステムであって、主メモリと、1次キャッシュ内の各キ
ャッシュ・ラインに関連して第1状態ビットおよび第2
状態ビットを有する1次キャッシュ・メモリと、2次キ
ャッシュ・メモリとを含み、前記2次キャッシュ・メモ
リおよび前記1次キャッシュ・メモリが非包括的であ
り、さらに、前記1次キャッシュ・メモリの対応するキ
ャッシュ・ラインがライトスルー・モードで記憶操作に
よって修正されている場合にのみ前記第1状態ビットを
セットし、前記1次キャッシュおよび前記2次キャッシ
ュの両方に対応するキャッシュ・ラインが存在する場合
にのみ前記第2状態ビットをセットし、前記第1状態ビ
ットおよび前記第2ビットを利用して前記1次キャッシ
ュと前記2次キャッシュの間でキャッシュ・メモリを維
持することができる手段とを含むシステム。 (11)前記1次キャッシュ・メモリに関するライン置
換の間に、前記1次キャッシュ・メモリ中の前記第1状
態ビット、前記第2状態ビット、および修正ビットがセ
ットされていない場合に、キャッシュ・ラインを前記2
次キャッシュ・メモリに送らずに除去する手段をさらに
含む、非包括的キャッシュ・メモリ階層をサポートする
キャッシュ・コヒーレンシ機構を有する上記(10)に
記載のデータ処理システム。 (12)前記1次キャッシュ・メモリに関する前記ライ
ン置換の間に、前記第1状態ビットおよび前記第2状態
ビットがともにセットされているか、または前記1次キ
ャッシュ・メモリ中の前記修正ビットがセットされてい
る場合に、キャッシュ・ラインを前記2次キャッシュ・
メモリに送る手段をさらに含む、非包括的キャッシュ・
メモリ階層をサポートするキャッシュ・コヒーレンシ機
構を有する上記(11)に記載のデータ処理システム。 (13)前記2次キャッシュ・メモリに関するライン置
換の間に、前記2次キャッシュ・メモリ中の修正ビット
がセットされていない場合に、キャッシュ・ラインを前
記主メモリに送らずに除去する手段をさらに含む、非包
括的キャッシュ・メモリ階層をサポートするキャッシュ
・コヒーレンシ機構を有する上記(10)に記載のデー
タ処理システム。 (14)前記2次キャッシュ・メモリに関する前記ライ
ン置換の間に、前記2次キャッシュ・メモリ中の前記修
正ビットがセットされている場合に、キャッシュ・ライ
ンを前記主メモリに送る手段をさらに含む、非包括的キ
ャッシュ・メモリ階層をサポートするキャッシュ・コヒ
ーレンシ機構を有する上記(13)に記載のデータ処理
システム。 (15)前記1次キャッシュ・メモリに関するキャスト
アウトの間に、前記1次キャッシュ・メモリ中の修正ビ
ットがセットされている場合に、キャッシュ・ラインを
前記2次キャッシュ・メモリに書込みながら前記2次キ
ャッシュ・メモリ中の修正ビットをセットする手段をさ
らに含む、非包括的キャッシュ・メモリ階層をサポート
するキャッシュ・コヒーレンシ機構を有する上記(1
0)に記載のデータ処理システム。 (16)前記1次キャッシュ・メモリに関する前記キャ
ストアウトの間に、前記1次キャッシュ・メモリ中の前
記修正ビットがセットされていない場合に、キャッシュ
・ラインを前記2次キャッシュ・メモリに書込みながら
前記2次キャッシュ・メモリ中の修正ビットをリセット
する手段をさらに含む、非包括的キャッシュ・メモリ階
層をサポートするキャッシュ・コヒーレンシ機構を有す
る上記(15)に記載のデータ処理システム。 (17)前記1次キャッシュ・メモリに関するライン充
てん操作の間に、前記ライン充てん操作を前記2次キャ
ッシュ・メモリ中で実行すべき場合に、キャッシュ・ラ
インを前記1次キャッシュ・メモリにロードしながら、
前記第1状態ビットをリセットし、前記第2状態ビット
をセットする手段をさらに含む、非包括的キャッシュ・
メモリ階層をサポートするキャッシュ・コヒーレンシ機
構を有する上記(10)に記載のデータ処理システム。 (18)前記1次キャッシュ・メモリに関する前記ライ
ン充てん操作の間に、前記ライン充てん操作を前記2次
キャッシュ・メモリ中で実行すべきでない場合に、キャ
ッシュ・ラインを前記1次キャッシュ・メモリにロード
しながら、前記第1状態ビットおよび前記第2状態ビッ
トをリセットする手段をさらに含む、非包括的キャッシ
ュ・メモリ階層をサポートするキャッシュ・コヒーレン
シ機構を有する上記(17)に記載のデータ処理システ
ム。
ッシュ・メモリ、および主メモリを含み、前記1次キャ
ッシュ・メモリおよび前記2次キャッシュ・メモリが非
包括的であるデータ処理システム内でキャッシュ・コヒ
ーレンシ機構を実施する方法であって、前記1次キャッ
シュ内の各キャッシュ・ラインと関連して第1状態ビッ
トおよび第2状態ビットを与える段階と、前記1次キャ
ッシュ・メモリ中の対応するキャッシュ・ラインがライ
トスルー・モードにおいて記憶操作により修正されてい
る場合にのみ、前記第1状態ビットをセットする段階
と、対応するキャッシュ・ラインが前記1次キャッシュ
および前記2次キャッシュの両方に存在する場合にの
み、前記第2状態ビットをセットする段階と、前記第1
状態ビットおよび前記第2状態ビットを利用して前記1
次キャッシュと前記2次キャッシュの間のキャッシュ・
コヒーレンシを維持する段階とを含む方法。 (2)前記1次キャッシュ・メモリに関するライン置換
の間に、前記1次キャッシュ・メモリ中の前記第1状態
ビット、前記第2状態ビット、および修正ビットがセッ
トされていない場合に、キャッシュ・ラインを前記2次
キャッシュ・メモリに送らずに除去する段階をさらに含
む、非包括的キャッシュ・メモリ階層をサポートするキ
ャッシュ・コヒーレンシ機構を実施する上記(1)に記
載の方法。 (3)前記1次キャッシュ・メモリに関する前記ライン
置換の間に、前記第1状態ビットおよび前記第2状態ビ
ットがともにセットされているか、または前記1次キャ
ッシュ・メモリ中の前記修正ビットがセットされている
場合に、キャッシュ・ラインを前記2次キャッシュ・メ
モリに送る段階をさらに含む、非包括的キャッシュ・メ
モリ階層をサポートするキャッシュ・コヒーレンシ機構
を実施する上記(2)に記載の方法。 (4)前記2次キャッシュ・メモリに関するライン置換
の間に、前記2次キャッシュ・メモリ中の修正ビットが
セットされていない場合に、キャッシュ・ラインを前記
主メモリに送らずに除去する段階をさらに含む、非包括
的キャッシュ・メモリ階層をサポートするキャッシュ・
コヒーレンシ機構を実施する上記(1)に記載の方法。 (5)前記2次キャッシュ・メモリに関する前記ライン
置換の間に、前記2次キャッシュ・メモリ中の前記修正
ビットがセットされている場合に、キャッシュ・ライン
を前記主メモリに送る段階をさらに含む、非包括的キャ
ッシュ・メモリ階層をサポートするキャッシュ・コヒー
レンシ機構を実施する上記(4)に記載の方法。 (6)前記1次キャッシュ・メモリに関するキャストア
ウトの間に、前記1次キャッシュ・メモリ中の修正ビッ
トがセットされている場合に、キャッシュ・ラインを前
記2次キャッシュ・メモリに書込みながら前記2次キャ
ッシュ・メモリ中の修正ビットをセットする段階をさら
に含む、非包括的キャッシュ・メモリ階層をサポートす
るキャッシュ・コヒーレンシ機構を実施する上記(1)
に記載の方法。 (7)前記1次キャッシュ・メモリに関する前記キャス
トアウトの間に、前記1次キャッシュ・メモリ中の前記
修正ビットがセットされていない場合に、キャッシュ・
ラインを前記2次キャッシュ・メモリに書込みながら前
記2次キャッシュ・メモリ中の修正ビットをリセットす
る段階をさらに含む、非包括的キャッシュ・メモリ階層
をサポートするキャッシュ・コヒーレンシ機構を実施す
る上記(6)に記載の方法。 (8)前記1次キャッシュ・メモリに関するライン充て
ん操作の間に、前記ライン充てん操作を前記2次キャッ
シュ・メモリ中で実行すべき場合に、キャッシュ・ライ
ンを前記1次キャッシュ・メモリにロードしながら、前
記第1状態ビットをリセットし、前記第2状態ビットを
セットする段階をさらに含む、非包括的キャッシュ・メ
モリ階層をサポートするキャッシュ・コヒーレンシ機構
を実施する上記(1)に記載の方法。 (9)前記1次キャッシュ・メモリに関する前記ライン
充てん操作の間に、前記ライン充てん操作を前記2次キ
ャッシュ・メモリ中で実行すべきでない場合に、キャッ
シュ・ラインを前記1次キャッシュ・メモリにロードし
ながら、前記第1状態ビットおよび前記第2状態ビット
をリセットする段階をさらに含む、非包括的キャッシュ
・メモリ階層をサポートするキャッシュ・コヒーレンシ
機構を実施する上記(8)に記載の方法。 (10)非包括的キャッシュ・メモリ階層をサポートす
るキャッシュ・コヒーレンシ機構を有するデータ処理シ
ステムであって、主メモリと、1次キャッシュ内の各キ
ャッシュ・ラインに関連して第1状態ビットおよび第2
状態ビットを有する1次キャッシュ・メモリと、2次キ
ャッシュ・メモリとを含み、前記2次キャッシュ・メモ
リおよび前記1次キャッシュ・メモリが非包括的であ
り、さらに、前記1次キャッシュ・メモリの対応するキ
ャッシュ・ラインがライトスルー・モードで記憶操作に
よって修正されている場合にのみ前記第1状態ビットを
セットし、前記1次キャッシュおよび前記2次キャッシ
ュの両方に対応するキャッシュ・ラインが存在する場合
にのみ前記第2状態ビットをセットし、前記第1状態ビ
ットおよび前記第2ビットを利用して前記1次キャッシ
ュと前記2次キャッシュの間でキャッシュ・メモリを維
持することができる手段とを含むシステム。 (11)前記1次キャッシュ・メモリに関するライン置
換の間に、前記1次キャッシュ・メモリ中の前記第1状
態ビット、前記第2状態ビット、および修正ビットがセ
ットされていない場合に、キャッシュ・ラインを前記2
次キャッシュ・メモリに送らずに除去する手段をさらに
含む、非包括的キャッシュ・メモリ階層をサポートする
キャッシュ・コヒーレンシ機構を有する上記(10)に
記載のデータ処理システム。 (12)前記1次キャッシュ・メモリに関する前記ライ
ン置換の間に、前記第1状態ビットおよび前記第2状態
ビットがともにセットされているか、または前記1次キ
ャッシュ・メモリ中の前記修正ビットがセットされてい
る場合に、キャッシュ・ラインを前記2次キャッシュ・
メモリに送る手段をさらに含む、非包括的キャッシュ・
メモリ階層をサポートするキャッシュ・コヒーレンシ機
構を有する上記(11)に記載のデータ処理システム。 (13)前記2次キャッシュ・メモリに関するライン置
換の間に、前記2次キャッシュ・メモリ中の修正ビット
がセットされていない場合に、キャッシュ・ラインを前
記主メモリに送らずに除去する手段をさらに含む、非包
括的キャッシュ・メモリ階層をサポートするキャッシュ
・コヒーレンシ機構を有する上記(10)に記載のデー
タ処理システム。 (14)前記2次キャッシュ・メモリに関する前記ライ
ン置換の間に、前記2次キャッシュ・メモリ中の前記修
正ビットがセットされている場合に、キャッシュ・ライ
ンを前記主メモリに送る手段をさらに含む、非包括的キ
ャッシュ・メモリ階層をサポートするキャッシュ・コヒ
ーレンシ機構を有する上記(13)に記載のデータ処理
システム。 (15)前記1次キャッシュ・メモリに関するキャスト
アウトの間に、前記1次キャッシュ・メモリ中の修正ビ
ットがセットされている場合に、キャッシュ・ラインを
前記2次キャッシュ・メモリに書込みながら前記2次キ
ャッシュ・メモリ中の修正ビットをセットする手段をさ
らに含む、非包括的キャッシュ・メモリ階層をサポート
するキャッシュ・コヒーレンシ機構を有する上記(1
0)に記載のデータ処理システム。 (16)前記1次キャッシュ・メモリに関する前記キャ
ストアウトの間に、前記1次キャッシュ・メモリ中の前
記修正ビットがセットされていない場合に、キャッシュ
・ラインを前記2次キャッシュ・メモリに書込みながら
前記2次キャッシュ・メモリ中の修正ビットをリセット
する手段をさらに含む、非包括的キャッシュ・メモリ階
層をサポートするキャッシュ・コヒーレンシ機構を有す
る上記(15)に記載のデータ処理システム。 (17)前記1次キャッシュ・メモリに関するライン充
てん操作の間に、前記ライン充てん操作を前記2次キャ
ッシュ・メモリ中で実行すべき場合に、キャッシュ・ラ
インを前記1次キャッシュ・メモリにロードしながら、
前記第1状態ビットをリセットし、前記第2状態ビット
をセットする手段をさらに含む、非包括的キャッシュ・
メモリ階層をサポートするキャッシュ・コヒーレンシ機
構を有する上記(10)に記載のデータ処理システム。 (18)前記1次キャッシュ・メモリに関する前記ライ
ン充てん操作の間に、前記ライン充てん操作を前記2次
キャッシュ・メモリ中で実行すべきでない場合に、キャ
ッシュ・ラインを前記1次キャッシュ・メモリにロード
しながら、前記第1状態ビットおよび前記第2状態ビッ
トをリセットする手段をさらに含む、非包括的キャッシ
ュ・メモリ階層をサポートするキャッシュ・コヒーレン
シ機構を有する上記(17)に記載のデータ処理システ
ム。
【図1】本発明の好ましい実施形態による複数レベル非
包括的キャッシュ・メモリ階層を有する典型的なデータ
処理システムを示すブロック・ダイヤグラムである。
包括的キャッシュ・メモリ階層を有する典型的なデータ
処理システムを示すブロック・ダイヤグラムである。
【図2】本発明の好ましい実施形態による1次キャッシ
ュの編成を示すブロック・ダイヤグラムである。
ュの編成を示すブロック・ダイヤグラムである。
【図3】本発明の好ましい実施形態による1次キャッシ
ュ中の状態ビット・フィールドを示す詳細図である。
ュ中の状態ビット・フィールドを示す詳細図である。
【図4】本発明の好ましい実施形態による2次キャッシ
ュの編成を示すブロック・ダイヤグラムである。
ュの編成を示すブロック・ダイヤグラムである。
【図5】本発明の好ましい実施形態によるLビットおよ
びCビットを利用するライン充てん操作を示す、高水準
論理のフロー・ダイアグラムである。
びCビットを利用するライン充てん操作を示す、高水準
論理のフロー・ダイアグラムである。
【図6】本発明の好ましい実施形態による1次キャッシ
ュに関するライン置換操作を示す、高水準論理のフロー
・ダイアグラムである。
ュに関するライン置換操作を示す、高水準論理のフロー
・ダイアグラムである。
【図7】本発明の好ましい実施形態による2次キャッシ
ュに関するライン置換操作を示す、高水準論理のフロー
・ダイアグラムである。
ュに関するライン置換操作を示す、高水準論理のフロー
・ダイアグラムである。
【図8】本発明の好ましい実施形態による1次キャッシ
ュからのキャスト・アウト操作を示す、高水準論理のフ
ロー・ダイアグラムである。
ュからのキャスト・アウト操作を示す、高水準論理のフ
ロー・ダイアグラムである。
【図9】本発明の好ましい実施形態による1次キャッシ
ュへの記憶操作を示す、高水準論理のフロー・ダイアグ
ラムである。
ュへの記憶操作を示す、高水準論理のフロー・ダイアグ
ラムである。
104 プロセッサ 105 ローカル・バス 106 CPU 107 命令キャッシュ 108 データ・キャッシュ 109a キャッシュ制御装置 109b キャッシュ制御装置 110 2次キャッシュ 111 キャッシュ制御装置 112 バス・インタフェース 113 システム・バス 115 主メモリ 116 ディスク記憶装置
フロントページの続き (72)発明者 ペンチュン・ピーター・リュー アメリカ合衆国78750 テキサス州オー スチン ロウ・ブリッジ・レーン 10812 (72)発明者 マイケル・ジョン・メイフィールド アメリカ合衆国78730 テキサス州オー スチン グレンレーク・ドライブ 9111 (72)発明者 ラージンデル・ポール・シング アメリカ合衆国78717 テキサス州オー スチン イーフレアム・ロード 8403 (56)参考文献 特開 平4−92938(JP,A) 特開 平4−92937(JP,A) 特開 昭62−203252(JP,A) 特開 平4−353948(JP,A) 特開 平7−121442(JP,A) 特開 平4−230549(JP,A) 特開 平4−353947(JP,A) 特開 平4−71049(JP,A) 特開 昭63−173147(JP,A) 特開 平8−328957(JP,A) 特開 平5−257809(JP,A) 特表 平7−502356(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 12/08
Claims (18)
- 【請求項1】1次キャッシュ・メモリ、2次キャッシュ
・メモリ、および主メモリを含み、前記1次キャッシュ
・メモリおよび前記2次キャッシュ・メモリが非包括的
であるデータ処理システム内でキャッシュ・コヒーレン
シ機構を実施する方法であって、 前記1次キャッシュ内の各キャッシュ・ラインと関連し
て第1状態ビットおよび第2状態ビットを与える段階
と、 前記1次キャッシュ・メモリ中の対応するキャッシュ・
ラインがライトスルー・モードにおいて記憶操作により
修正されている場合にのみ、前記第1状態ビットをセッ
トする段階と、 対応するキャッシュ・ラインが前記1次キャッシュおよ
び前記2次キャッシュの両方に存在する場合にのみ、前
記第2状態ビットをセットする段階と、 前記第1状態ビットおよび前記第2状態ビットを利用し
て前記1次キャッシュと前記2次キャッシュの間のキャ
ッシュ・コヒーレンシを維持する段階とを含む方法。 - 【請求項2】前記1次キャッシュ・メモリに関するライ
ン置換の間に、前記1次キャッシュ・メモリ中の前記第
1状態ビット、前記第2状態ビット、および修正ビット
がセットされていない場合に、キャッシュ・ラインを前
記2次キャッシュ・メモリに送らずに除去する段階をさ
らに含む、非包括的キャッシュ・メモリ階層をサポート
するキャッシュ・コヒーレンシ機構を実施する請求項1
に記載の方法。 - 【請求項3】前記1次キャッシュ・メモリに関する前記
ライン置換の間に、前記第1状態ビットおよび前記第2
状態ビットがともにセットされているか、または前記1
次キャッシュ・メモリ中の前記修正ビットがセットされ
ている場合に、キャッシュ・ラインを前記2次キャッシ
ュ・メモリに送る段階をさらに含む、非包括的キャッシ
ュ・メモリ階層をサポートするキャッシュ・コヒーレン
シ機構を実施する請求項2に記載の方法。 - 【請求項4】前記2次キャッシュ・メモリに関するライ
ン置換の間に、前記2次キャッシュ・メモリ中の修正ビ
ットがセットされていない場合に、キャッシュ・ライン
を前記主メモリに送らずに除去する段階をさらに含む、
非包括的キャッシュ・メモリ階層をサポートするキャッ
シュ・コヒーレンシ機構を実施する請求項1に記載の方
法。 - 【請求項5】前記2次キャッシュ・メモリに関する前記
ライン置換の間に、前記2次キャッシュ・メモリ中の前
記修正ビットがセットされている場合に、キャッシュ・
ラインを前記主メモリに送る段階をさらに含む、非包括
的キャッシュ・メモリ階層をサポートするキャッシュ・
コヒーレンシ機構を実施する請求項4に記載の方法。 - 【請求項6】前記1次キャッシュ・メモリに関するキャ
ストアウトの間に、前記1次キャッシュ・メモリ中の修
正ビットがセットされている場合に、キャッシュ・ライ
ンを前記2次キャッシュ・メモリに書込みながら前記2
次キャッシュ・メモリ中の修正ビットをセットする段階
をさらに含む、非包括的キャッシュ・メモリ階層をサポ
ートするキャッシュ・コヒーレンシ機構を実施する請求
項1に記載の方法。 - 【請求項7】前記1次キャッシュ・メモリに関する前記
キャストアウトの間に、前記1次キャッシュ・メモリ中
の前記修正ビットがセットされていない場合に、キャッ
シュ・ラインを前記2次キャッシュ・メモリに書込みな
がら前記2次キャッシュ・メモリ中の修正ビットをリセ
ットする段階をさらに含む、非包括的キャッシュ・メモ
リ階層をサポートするキャッシュ・コヒーレンシ機構を
実施する請求項6に記載の方法。 - 【請求項8】前記1次キャッシュ・メモリに関するライ
ン充てん操作の間に、前記ライン充てん操作を前記2次
キャッシュ・メモリ中で実行すべき場合に、キャッシュ
・ラインを前記1次キャッシュ・メモリにロードしなが
ら、前記第1状態ビットをリセットし、前記第2状態ビ
ットをセットする段階をさらに含む、非包括的キャッシ
ュ・メモリ階層をサポートするキャッシュ・コヒーレン
シ機構を実施する請求項1に記載の方法。 - 【請求項9】前記1次キャッシュ・メモリに関する前記
ライン充てん操作の間に、前記ライン充てん操作を前記
2次キャッシュ・メモリ中で実行すべきでない場合に、
キャッシュ・ラインを前記1次キャッシュ・メモリにロ
ードしながら、前記第1状態ビットおよび前記第2状態
ビットをリセットする段階をさらに含む、非包括的キャ
ッシュ・メモリ階層をサポートするキャッシュ・コヒー
レンシ機構を実施する請求項8に記載の方法。 - 【請求項10】非包括的キャッシュ・メモリ階層をサポ
ートするキャッシュ・コヒーレンシ機構を有するデータ
処理システムであって、 主メモリと、 1次キャッシュ内の各キャッシュ・ラインに関連して第
1状態ビットおよび第2状態ビットを有する1次キャッ
シュ・メモリと、 2次キャッシュ・メモリとを含み、前記2次キャッシュ
・メモリおよび前記1次キャッシュ・メモリが非包括的
であり、 さらに、前記1次キャッシュ・メモリの対応するキャッ
シュ・ラインがライトスルー・モードで記憶操作によっ
て修正されている場合にのみ前記第1状態ビットをセッ
トし、前記1次キャッシュおよび前記2次キャッシュの
両方に対応するキャッシュ・ラインが存在する場合にの
み前記第2状態ビットをセットし、前記第1状態ビット
および前記第2ビットを利用して前記1次キャッシュと
前記2次キャッシュの間でキャッシュ・メモリを維持す
ることができる手段とを含むシステム。 - 【請求項11】前記1次キャッシュ・メモリに関するラ
イン置換の間に、前記1次キャッシュ・メモリ中の前記
第1状態ビット、前記第2状態ビット、および修正ビッ
トがセットされていない場合に、キャッシュ・ラインを
前記2次キャッシュ・メモリに送らずに除去する手段を
さらに含む、非包括的キャッシュ・メモリ階層をサポー
トするキャッシュ・コヒーレンシ機構を有する請求項1
0に記載のデータ処理システム。 - 【請求項12】前記1次キャッシュ・メモリに関する前
記ライン置換の間に、前記第1状態ビットおよび前記第
2状態ビットがともにセットされているか、または前記
1次キャッシュ・メモリ中の前記修正ビットがセットさ
れている場合に、キャッシュ・ラインを前記2次キャッ
シュ・メモリに送る手段をさらに含む、非包括的キャッ
シュ・メモリ階層をサポートするキャッシュ・コヒーレ
ンシ機構を有する請求項11に記載のデータ処理システ
ム。 - 【請求項13】前記2次キャッシュ・メモリに関するラ
イン置換の間に、前記2次キャッシュ・メモリ中の修正
ビットがセットされていない場合に、キャッシュ・ライ
ンを前記主メモリに送らずに除去する手段をさらに含
む、非包括的キャッシュ・メモリ階層をサポートするキ
ャッシュ・コヒーレンシ機構を有する請求項10に記載
のデータ処理システム。 - 【請求項14】前記2次キャッシュ・メモリに関する前
記ライン置換の間に、前記2次キャッシュ・メモリ中の
前記修正ビットがセットされている場合に、キャッシュ
・ラインを前記主メモリに送る手段をさらに含む、非包
括的キャッシュ・メモリ階層をサポートするキャッシュ
・コヒーレンシ機構を有する請求項13に記載のデータ
処理システム。 - 【請求項15】前記1次キャッシュ・メモリに関するキ
ャストアウトの間に、前記1次キャッシュ・メモリ中の
修正ビットがセットされている場合に、キャッシュ・ラ
インを前記2次キャッシュ・メモリに書込みながら前記
2次キャッシュ・メモリ中の修正ビットをセットする手
段をさらに含む、非包括的キャッシュ・メモリ階層をサ
ポートするキャッシュ・コヒーレンシ機構を有する請求
項10に記載のデータ処理システム。 - 【請求項16】前記1次キャッシュ・メモリに関する前
記キャストアウトの間に、前記1次キャッシュ・メモリ
中の前記修正ビットがセットされていない場合に、キャ
ッシュ・ラインを前記2次キャッシュ・メモリに書込み
ながら前記2次キャッシュ・メモリ中の修正ビットをリ
セットする手段をさらに含む、非包括的キャッシュ・メ
モリ階層をサポートするキャッシュ・コヒーレンシ機構
を有する請求項15に記載のデータ処理システム。 - 【請求項17】前記1次キャッシュ・メモリに関するラ
イン充てん操作の間に、前記ライン充てん操作を前記2
次キャッシュ・メモリ中で実行すべき場合に、キャッシ
ュ・ラインを前記1次キャッシュ・メモリにロードしな
がら、前記第1状態ビットをリセットし、前記第2状態
ビットをセットする手段をさらに含む、非包括的キャッ
シュ・メモリ階層をサポートするキャッシュ・コヒーレ
ンシ機構を有する請求項10に記載のデータ処理システ
ム。 - 【請求項18】前記1次キャッシュ・メモリに関する前
記ライン充てん操作の間に、前記ライン充てん操作を前
記2次キャッシュ・メモリ中で実行すべきでない場合
に、キャッシュ・ラインを前記1次キャッシュ・メモリ
にロードしながら、前記第1状態ビットおよび前記第2
状態ビットをリセットする手段をさらに含む、非包括的
キャッシュ・メモリ階層をサポートするキャッシュ・コ
ヒーレンシ機構を有する請求項17に記載のデータ処理
システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/810775 | 1997-03-05 | ||
US08/810,775 US5787478A (en) | 1997-03-05 | 1997-03-05 | Method and system for implementing a cache coherency mechanism for utilization within a non-inclusive cache memory hierarchy |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10254772A JPH10254772A (ja) | 1998-09-25 |
JP3281893B2 true JP3281893B2 (ja) | 2002-05-13 |
Family
ID=25204675
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP03458498A Expired - Fee Related JP3281893B2 (ja) | 1997-03-05 | 1998-02-17 | キャッシュ・メモリ階層内で利用するキャッシュ・コヒーレンシ機構を実施するための方法およびシステム |
Country Status (5)
Country | Link |
---|---|
US (1) | US5787478A (ja) |
JP (1) | JP3281893B2 (ja) |
KR (1) | KR19980079433A (ja) |
CN (1) | CN1110752C (ja) |
TW (1) | TW364081B (ja) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6374330B1 (en) * | 1997-04-14 | 2002-04-16 | International Business Machines Corporation | Cache-coherency protocol with upstream undefined state |
US6061766A (en) * | 1997-06-24 | 2000-05-09 | Sun Microsystems, Inc. | Non-inclusive cache method using pipelined snoop bus |
US6076147A (en) * | 1997-06-24 | 2000-06-13 | Sun Microsystems, Inc. | Non-inclusive cache system using pipelined snoop bus |
US6065098A (en) * | 1997-09-18 | 2000-05-16 | International Business Machines Corporation | Method for maintaining multi-level cache coherency in a processor with non-inclusive caches and processor implementing the same |
US6216218B1 (en) | 1997-11-03 | 2001-04-10 | Donald L. Sollars | Processor having a datapath and control logic constituted with basis execution blocks |
US6067601A (en) * | 1997-11-03 | 2000-05-23 | Brecis Communications | Cache memory based instruction execution |
US6397298B1 (en) * | 1999-07-30 | 2002-05-28 | International Business Machines Corporation | Cache memory having a programmable cache replacement scheme |
US6715040B2 (en) * | 2001-01-05 | 2004-03-30 | Nec Electronics, Inc. | Performance improvement of a write instruction of a non-inclusive hierarchical cache memory unit |
US6584546B2 (en) * | 2001-01-16 | 2003-06-24 | Gautam Nag Kavipurapu | Highly efficient design of storage array for use in first and second cache spaces and memory subsystems |
US6922753B2 (en) * | 2002-09-26 | 2005-07-26 | International Business Machines Corporation | Cache prefetching |
US6922756B2 (en) * | 2002-12-19 | 2005-07-26 | Intel Corporation | Forward state for use in cache coherency in a multiprocessor system |
US7020746B2 (en) * | 2003-01-28 | 2006-03-28 | Microsoft Corporation | Method and system for an atomically updated, central cache memory |
US7373466B1 (en) * | 2004-04-07 | 2008-05-13 | Advanced Micro Devices, Inc. | Method and apparatus for filtering memory write snoop activity in a distributed shared memory computer |
US7383388B2 (en) | 2004-06-17 | 2008-06-03 | International Business Machines Corporation | Method for storing data |
US20060155934A1 (en) * | 2005-01-11 | 2006-07-13 | Ramakrishnan Rajamony | System and method for reducing unnecessary cache operations |
US7325101B1 (en) * | 2005-05-31 | 2008-01-29 | Sun Microsystems, Inc. | Techniques for reducing off-chip cache memory accesses |
US20070038814A1 (en) * | 2005-08-10 | 2007-02-15 | International Business Machines Corporation | Systems and methods for selectively inclusive cache |
JP5319049B2 (ja) * | 2005-08-22 | 2013-10-16 | 富士通セミコンダクター株式会社 | キャッシュシステム |
US7596661B2 (en) * | 2005-09-01 | 2009-09-29 | Mediatek Inc. | Processing modules with multilevel cache architecture |
US7725619B2 (en) * | 2005-09-15 | 2010-05-25 | International Business Machines Corporation | Data processing system and method that permit pipelining of I/O write operations and multiple operation scopes |
US7404045B2 (en) * | 2005-12-30 | 2008-07-22 | International Business Machines Corporation | Directory-based data transfer protocol for multiprocessor system |
CN101595462B (zh) * | 2007-01-31 | 2012-04-25 | 高通股份有限公司 | 用以减少多级高速缓冲存储器层级中的掷出的设备和方法 |
US8661208B2 (en) * | 2007-04-11 | 2014-02-25 | Hewlett-Packard Development Company, L.P. | Non-inclusive cache systems and methods |
US9279079B2 (en) * | 2007-05-30 | 2016-03-08 | Sharp Kabushiki Kaisha | Method of manufacturing phosphor, light-emitting device, and image display apparatus |
JP2009053820A (ja) * | 2007-08-24 | 2009-03-12 | Nec Electronics Corp | 階層型キャッシュメモリシステム |
US9442846B2 (en) * | 2009-03-17 | 2016-09-13 | Cisco Technology, Inc. | High speed memory systems and methods for designing hierarchical memory systems |
US20110202727A1 (en) * | 2010-02-18 | 2011-08-18 | Qualcomm Incorporated | Apparatus and Methods to Reduce Duplicate Line Fills in a Victim Cache |
US9378148B2 (en) | 2013-03-15 | 2016-06-28 | Intel Corporation | Adaptive hierarchical cache policy in a microprocessor |
US9418009B2 (en) * | 2013-12-27 | 2016-08-16 | Intel Corporation | Inclusive and non-inclusive tracking of local cache lines to avoid near memory reads on cache line memory writes into a two level system memory |
US10204047B2 (en) * | 2015-03-27 | 2019-02-12 | Intel Corporation | Memory controller for multi-level system memory with coherency unit |
US11954034B2 (en) * | 2022-03-28 | 2024-04-09 | Woven By Toyota, Inc. | Cache coherency protocol for encoding a cache line with a domain shared state |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2622011B2 (ja) * | 1990-04-16 | 1997-06-18 | 三菱電機株式会社 | 画面切替方法 |
EP0461926B1 (en) * | 1990-06-15 | 1998-09-02 | Compaq Computer Corporation | Multilevel inclusion in multilevel cache hierarchies |
US5379396A (en) * | 1991-10-11 | 1995-01-03 | Intel Corporation | Write ordering for microprocessor depending on cache hit and write buffer content |
US5428761A (en) * | 1992-03-12 | 1995-06-27 | Digital Equipment Corporation | System for achieving atomic non-sequential multi-word operations in shared memory |
US5636365A (en) * | 1993-10-05 | 1997-06-03 | Nec Corporation | Hierarchical buffer memories for selectively controlling data coherence including coherence control request means |
US5564035A (en) * | 1994-03-23 | 1996-10-08 | Intel Corporation | Exclusive and/or partially inclusive extension cache system and method to minimize swapping therein |
-
1997
- 1997-03-05 US US08/810,775 patent/US5787478A/en not_active Expired - Fee Related
- 1997-07-17 TW TW086110164A patent/TW364081B/zh active
- 1997-10-22 KR KR1019970054287A patent/KR19980079433A/ko active IP Right Grant
-
1998
- 1998-01-27 CN CN98104031A patent/CN1110752C/zh not_active Expired - Fee Related
- 1998-02-17 JP JP03458498A patent/JP3281893B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
KR19980079433A (ko) | 1998-11-25 |
US5787478A (en) | 1998-07-28 |
TW364081B (en) | 1999-07-11 |
CN1110752C (zh) | 2003-06-04 |
CN1195817A (zh) | 1998-10-14 |
JPH10254772A (ja) | 1998-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3281893B2 (ja) | キャッシュ・メモリ階層内で利用するキャッシュ・コヒーレンシ機構を実施するための方法およびシステム | |
US7698508B2 (en) | System and method for reducing unnecessary cache operations | |
US7032074B2 (en) | Method and mechanism to use a cache to translate from a virtual bus to a physical bus | |
EP0461926B1 (en) | Multilevel inclusion in multilevel cache hierarchies | |
US6289420B1 (en) | System and method for increasing the snoop bandwidth to cache tags in a multiport cache memory subsystem | |
US6021468A (en) | Cache coherency protocol with efficient write-through aliasing | |
KR100885277B1 (ko) | 캐시에서의 라인들을 추론적으로 무효화하는 방법 및 시스템 | |
US7237068B2 (en) | Computer system employing bundled prefetching and null-data packet transmission | |
US7266647B2 (en) | List based method and apparatus for selective and rapid cache flushes | |
JP4447580B2 (ja) | 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ | |
CN101446923B (zh) | 一种响应于指令而清洗高速缓冲存储器线的装置和方法 | |
US6272602B1 (en) | Multiprocessing system employing pending tags to maintain cache coherence | |
JPH09259036A (ja) | ライトバックキャッシュおよびライトバックキャッシュ内で整合性を維持する方法 | |
JPH11506852A (ja) | 多数のバスマスタと共用レベル2キャッシュとを備える多レベルキャッシュシステムでのキャッシュスヌーピングオーバーヘッドの低減 | |
JP2000250812A (ja) | メモリ・キャッシュ・システムおよびその管理方法 | |
JP2002536716A (ja) | 仮想メモリシステムにおけるメモリアクセスの改善技術 | |
US6751705B1 (en) | Cache line converter | |
US8621152B1 (en) | Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access | |
JP3866447B2 (ja) | マルチプロセッサ・ノードデータ処理システムに使用するディレクトリエントリ割当てシステム及び方法 | |
US7117312B1 (en) | Mechanism and method employing a plurality of hash functions for cache snoop filtering | |
US5809526A (en) | Data processing system and method for selective invalidation of outdated lines in a second level memory in response to a memory request initiated by a store operation | |
US7325102B1 (en) | Mechanism and method for cache snoop filtering | |
JP2004199677A (ja) | キャッシュを動作させるためのシステム及び方法 | |
US7685372B1 (en) | Transparent level 2 cache controller | |
JPH10301850A (ja) | データ処理システム内のキャッシュ・コヒーレンシを維持するためにセクタ化キャッシュ・メモリに疑似精密包含方式を設ける方法及びシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |