JPH06195263A - キャッシュ・メモリ・システム - Google Patents
キャッシュ・メモリ・システムInfo
- Publication number
- JPH06195263A JPH06195263A JP5247540A JP24754093A JPH06195263A JP H06195263 A JPH06195263 A JP H06195263A JP 5247540 A JP5247540 A JP 5247540A JP 24754093 A JP24754093 A JP 24754093A JP H06195263 A JPH06195263 A JP H06195263A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- tag
- cache
- data line
- index
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
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/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0822—Copy directories
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)【要約】
【目的】複数のモジュールから成るメイン・メモリを共
有し、個々のプロセッサがキャッシュを持つマルチプロ
セッサ・システムでキャッシュ・コヒーレンシィを取る
ための機構を、性能を低下させずにコストを下げる。従
来は各モジュールが全てのプロセッサのキャッシュに何
が入っているかを示す情報を全て持っていたので、この
情報のために多くのメモリが必要であった。 【構成】ダイレクト・マッピング方式のキャッシュを例
に取り上げる。メモリ・アドレス210中の、キャッシュ
内のインデクスとして使用する部分213の一部211を、メ
モリ・モジュール1〜Nの選択に使用する。これによ
り、インデクス部213から、キャッシュ中のデータ・ラ
インがどのメモリ・モジュールのものかが判るので、そ
れらをセクタ1〜Nに分ける。メモリ・モジュールはタ
グ・メモリ中の自モジュールに関係するタグ情報だけを
記憶する。
有し、個々のプロセッサがキャッシュを持つマルチプロ
セッサ・システムでキャッシュ・コヒーレンシィを取る
ための機構を、性能を低下させずにコストを下げる。従
来は各モジュールが全てのプロセッサのキャッシュに何
が入っているかを示す情報を全て持っていたので、この
情報のために多くのメモリが必要であった。 【構成】ダイレクト・マッピング方式のキャッシュを例
に取り上げる。メモリ・アドレス210中の、キャッシュ
内のインデクスとして使用する部分213の一部211を、メ
モリ・モジュール1〜Nの選択に使用する。これによ
り、インデクス部213から、キャッシュ中のデータ・ラ
インがどのメモリ・モジュールのものかが判るので、そ
れらをセクタ1〜Nに分ける。メモリ・モジュールはタ
グ・メモリ中の自モジュールに関係するタグ情報だけを
記憶する。
Description
【0001】
【産業上の利用分野】本発明はキャッシュ・メモリ・シ
ステムに関するものであり、より詳細には、マルチプロ
セッサ・コンピュータ・システムに関連して用いられる
キャッシュ・メモリ・システムに関するものである。
ステムに関するものであり、より詳細には、マルチプロ
セッサ・コンピュータ・システムに関連して用いられる
キャッシュ・メモリ・システムに関するものである。
【0002】
【従来技術及びその問題点】コンピュータの演算速度に
おいて著しい進歩が達成されたにも拘らず、多くの演算
的なタスクのためには、データ処理システムはまだ不十
分なものである。この問題に対して提案された一つの解
決策は、並列に動作する多くのコンピュータを用いてシ
ステムを構成することである。このようなシステムにお
いては、各プロセッサは典型的にはプログラムの一部を
実行しながらメイン・メモリをアクセスする。現在にお
けるデータ・プロセッサの速度で動作する大規模なメモ
リ・システムのコストは、プロセッサのコストよりもは
るかに高いものである。このために、メイン・メモリ
は、データ・プロセッサよりもはるかに低速のメモリ・
モジュールから構成されている。プロセッサとメモリ・
モジュールとの間のインタフェースとしては高速のキャ
ッシュ・メモリが用いられる。この構成によりコンピュ
ータ・システムを比較的低速のメモリを使用できるよう
になる。この構成を取ることにより、プロセッサの速度
に近い演算速度を達成しながら、システムのコストを低
減させる。
おいて著しい進歩が達成されたにも拘らず、多くの演算
的なタスクのためには、データ処理システムはまだ不十
分なものである。この問題に対して提案された一つの解
決策は、並列に動作する多くのコンピュータを用いてシ
ステムを構成することである。このようなシステムにお
いては、各プロセッサは典型的にはプログラムの一部を
実行しながらメイン・メモリをアクセスする。現在にお
けるデータ・プロセッサの速度で動作する大規模なメモ
リ・システムのコストは、プロセッサのコストよりもは
るかに高いものである。このために、メイン・メモリ
は、データ・プロセッサよりもはるかに低速のメモリ・
モジュールから構成されている。プロセッサとメモリ・
モジュールとの間のインタフェースとしては高速のキャ
ッシュ・メモリが用いられる。この構成によりコンピュ
ータ・システムを比較的低速のメモリを使用できるよう
になる。この構成を取ることにより、プロセッサの速度
に近い演算速度を達成しながら、システムのコストを低
減させる。
【0003】典型的には、各プロセッサはそれぞれ、当
該プロセッサが最近使用しデータのコピーをストアする
キャッシュ・メモリを持つ。あるプロセッサが、メイン
・メモリのある特定のアドレスにストアされているデー
タ・ワードの値を変更するときには、他のプロセッサの
キャッシュ・メモリにこのデータ・ワードのコピーがあ
ったなら、それを無効にするか、あるいはこのデータ・
ワードの新たな値を反映するように更新するかのいずれ
かが確実に行われるように注意を払わねばならない。
該プロセッサが最近使用しデータのコピーをストアする
キャッシュ・メモリを持つ。あるプロセッサが、メイン
・メモリのある特定のアドレスにストアされているデー
タ・ワードの値を変更するときには、他のプロセッサの
キャッシュ・メモリにこのデータ・ワードのコピーがあ
ったなら、それを無効にするか、あるいはこのデータ・
ワードの新たな値を反映するように更新するかのいずれ
かが確実に行われるように注意を払わねばならない。
【0004】ディレクトリに基づくマルチプロセッサ・
システムによれば、どのキャッシュがデータのコピーを
有するかについての情報を保持するためのディレクトリ
が用いられる。プロセッサによる書込みに際しては、こ
のディレクトリがメモリ・コントローラによってアクセ
スされ、また、当該データのコピーを有するキャッシュ
に対して無効化メッセージが伝送される。完全マッピン
グ・ディレクトリ (fully mapped directory) に基づく
方式においては、ディレクトリにはメモリ・ライン毎に
Nビットが設けられる。ここで、Nはシステム中のプロセ
ッサの総数である。各メモリ・モジュール内にこのよう
なディレクトリを1つ設けなければならない。通常、メ
イン・メモリはプロセッサの数の増大につれて線形的に
増大するものである。かくして、ディレクトリのための
スペースの必要量は、N^2 (ここで、演算記号^はべき
乗を表す)で増大する。プロセッサの個数が多くなるに
つれて、ディレクトリのために用いられるメモリのコス
トが過大になる。
システムによれば、どのキャッシュがデータのコピーを
有するかについての情報を保持するためのディレクトリ
が用いられる。プロセッサによる書込みに際しては、こ
のディレクトリがメモリ・コントローラによってアクセ
スされ、また、当該データのコピーを有するキャッシュ
に対して無効化メッセージが伝送される。完全マッピン
グ・ディレクトリ (fully mapped directory) に基づく
方式においては、ディレクトリにはメモリ・ライン毎に
Nビットが設けられる。ここで、Nはシステム中のプロセ
ッサの総数である。各メモリ・モジュール内にこのよう
なディレクトリを1つ設けなければならない。通常、メ
イン・メモリはプロセッサの数の増大につれて線形的に
増大するものである。かくして、ディレクトリのための
スペースの必要量は、N^2 (ここで、演算記号^はべき
乗を表す)で増大する。プロセッサの個数が多くなるに
つれて、ディレクトリのために用いられるメモリのコス
トが過大になる。
【0005】ディレクトリのために必要とされるスペー
スを減少させるために、多くの解決策が提案されてい
る。これらの解決策の中の最良のものによれば、メモリ
の必要量が N log N のオーダーになるようにして、デ
ィレクトリのために必要とされるメモリを減少させる。
しかしながら、これらの解決策によれば一般にキャッシ
ュ・メモリとメモリ・モジュールとの間の相互接続トラ
フィックが増大する。そして、このために、メモリ・シ
ステムの全体的な性能が劣化する。
スを減少させるために、多くの解決策が提案されてい
る。これらの解決策の中の最良のものによれば、メモリ
の必要量が N log N のオーダーになるようにして、デ
ィレクトリのために必要とされるメモリを減少させる。
しかしながら、これらの解決策によれば一般にキャッシ
ュ・メモリとメモリ・モジュールとの間の相互接続トラ
フィックが増大する。そして、このために、メモリ・シ
ステムの全体的な性能が劣化する。
【0006】
【目的】一般的に言えば、本発明の目的は、マルチプロ
セッサ演算システムにおいて使用するための改良された
キャッシュ・メモリ・システムを提供することにある。
セッサ演算システムにおいて使用するための改良された
キャッシュ・メモリ・システムを提供することにある。
【0007】本発明の別の目的は、ディレクトリの情報
をストアするために必要とされるメモリがプロセッサの
個数に従って増大する際の比率が、先行技術のシステム
で得られるよりも小さい比率になるようにしながら、そ
の一方ではキャッシュ・メモリとメモリ・モジュールと
の間の相互接続トラフィックを増大させないキャッシュ
・メモリ・システムを提供することにある。
をストアするために必要とされるメモリがプロセッサの
個数に従って増大する際の比率が、先行技術のシステム
で得られるよりも小さい比率になるようにしながら、そ
の一方ではキャッシュ・メモリとメモリ・モジュールと
の間の相互接続トラフィックを増大させないキャッシュ
・メモリ・システムを提供することにある。
【0008】本発明のこれらの目的及びその他の目的
は、以下の詳細な説明及び添付された図面から、当業者
にとっては明らかになるだろう。
は、以下の詳細な説明及び添付された図面から、当業者
にとっては明らかになるだろう。
【0009】
【発明の概要】本発明の一実施例によれば、マルチプロ
セッサ演算システムにおいてキャッシュの一貫性を維持
するために必要とされるディレクトリ情報のストア及び
検索を行う回路が設けられる。本発明では、相当に少な
いメモリ・スペースしか必要とせずに、完全にマッピン
グされたディレクトリ・システムと同じ情報を発生す
る。本発明で用いられるメモリ・モジュールの新規なイ
ンタリーブ動作においては、メイン・メモリとキャッシ
ュとの間で転送されるデータ・ラインが、当該データ・
ラインのアドレスのインデクス・フィールド・ビットの
サブセットに基づいて複数のメモリ・モジュール間に分
配される。このサブセットは、各データ・ラインについ
てのメモリ・モジュール番号を発生するために用いられ
る。メモリ・モジュール番号は、データ・ラインがスト
アされるメモリ・モジュールを識別する。現在キャッシ
ュにストアされている任意のメモリ・モジュールからの
データ・ラインに対応するタグのコピーは、当のメモリ
・モジュールにもストアされている。タグのこの第2の
コピーを維持するために必要とされる記憶用スペースは
Nのオーダーである。ここで、Nはシステム中のキャッシ
ュ・メモリの個数である。インデクス・フィールド・ビ
ットのうちの残りはセクタ・インデクスを発生させるた
めに用いられる。このセクタ・インデクスは、メモリ・
モジュールにストアされているタグ値をアクセスするた
めのアドレスとして用いられる。各メモリ・モジュール
には、キャッシュ毎に1個の、N個のタグ・ストア・メ
モリが含まれている。あるデータ・ラインのコピーがI
番目のキャッシュ中のインデクス・ロケーションKにス
トアされるならば、当該データ・ラインについてのタグ
のコピーは、Kから算出されたメモリ・モジュール番号
によって指定されるメモリ・モジュール内の、I番目の
タグ・メモリ中の、Kによって定義されるセクタ・イン
デクスと等しいアドレスにストアされる。
セッサ演算システムにおいてキャッシュの一貫性を維持
するために必要とされるディレクトリ情報のストア及び
検索を行う回路が設けられる。本発明では、相当に少な
いメモリ・スペースしか必要とせずに、完全にマッピン
グされたディレクトリ・システムと同じ情報を発生す
る。本発明で用いられるメモリ・モジュールの新規なイ
ンタリーブ動作においては、メイン・メモリとキャッシ
ュとの間で転送されるデータ・ラインが、当該データ・
ラインのアドレスのインデクス・フィールド・ビットの
サブセットに基づいて複数のメモリ・モジュール間に分
配される。このサブセットは、各データ・ラインについ
てのメモリ・モジュール番号を発生するために用いられ
る。メモリ・モジュール番号は、データ・ラインがスト
アされるメモリ・モジュールを識別する。現在キャッシ
ュにストアされている任意のメモリ・モジュールからの
データ・ラインに対応するタグのコピーは、当のメモリ
・モジュールにもストアされている。タグのこの第2の
コピーを維持するために必要とされる記憶用スペースは
Nのオーダーである。ここで、Nはシステム中のキャッシ
ュ・メモリの個数である。インデクス・フィールド・ビ
ットのうちの残りはセクタ・インデクスを発生させるた
めに用いられる。このセクタ・インデクスは、メモリ・
モジュールにストアされているタグ値をアクセスするた
めのアドレスとして用いられる。各メモリ・モジュール
には、キャッシュ毎に1個の、N個のタグ・ストア・メ
モリが含まれている。あるデータ・ラインのコピーがI
番目のキャッシュ中のインデクス・ロケーションKにス
トアされるならば、当該データ・ラインについてのタグ
のコピーは、Kから算出されたメモリ・モジュール番号
によって指定されるメモリ・モジュール内の、I番目の
タグ・メモリ中の、Kによって定義されるセクタ・イン
デクスと等しいアドレスにストアされる。
【0010】タグT及びインデクス・フィールドIによっ
て特定されるデータのコピーを有するキャッシュ・メモ
リを判定するために、Iによって特定されるメモリ・モ
ジュール番号及びセクタ・インデクスが判定される。こ
れに次いで、算出されたメモリ・モジュール番号を有す
るメモリ・モジュールのセクタ・インデクスにおけるタ
グ・メモリの内容がTと比較される。ここで一致すれ
ば、これは対応するキャッシュがデータ・ラインのコピ
ーを有することを示している。
て特定されるデータのコピーを有するキャッシュ・メモ
リを判定するために、Iによって特定されるメモリ・モ
ジュール番号及びセクタ・インデクスが判定される。こ
れに次いで、算出されたメモリ・モジュール番号を有す
るメモリ・モジュールのセクタ・インデクスにおけるタ
グ・メモリの内容がTと比較される。ここで一致すれ
ば、これは対応するキャッシュがデータ・ラインのコピ
ーを有することを示している。
【0011】
【実施例】本発明の利点を達成する態様については、図
1で10で示されているようなマルチプロセッサ演算シ
ステムに用いるためのディレクトリに基づくキャッシュ
方式を参照して、より容易に理解することができる。こ
の議論のために、演算システム10におけるプロセッサ
の数をNで表す。図1においては、例示的なプロセッサ
が12ないし15で示されている。各プロセッサにはキ
ャッシュ・メモリが接続されている。プロセッサ12な
いし15に対応するキャッシュ・メモリはそれぞれ16
ないし19で示されている。演算システムのメイン・メ
モリは典型的には複数のメモリ・モジュールに分割され
る。この例の説明の都合上、メモリ・モジュールの数は
Nであるとされる。しかしながら、当業者には明かであ
るように、異なる数のメモリ・モジュールを採用する実
施例も用いることができる。これらのキャッシュ・メモ
リは相互接続ネットワーク24によってメモリ・モジュ
ールと接続される。相互接続ネットワーク24は、任意
のキャッシュが任意のメモリ・モジュールに接続できる
ようにする、クロス接続スイッチまたはその他の構成で
作ることができる。
1で10で示されているようなマルチプロセッサ演算シ
ステムに用いるためのディレクトリに基づくキャッシュ
方式を参照して、より容易に理解することができる。こ
の議論のために、演算システム10におけるプロセッサ
の数をNで表す。図1においては、例示的なプロセッサ
が12ないし15で示されている。各プロセッサにはキ
ャッシュ・メモリが接続されている。プロセッサ12な
いし15に対応するキャッシュ・メモリはそれぞれ16
ないし19で示されている。演算システムのメイン・メ
モリは典型的には複数のメモリ・モジュールに分割され
る。この例の説明の都合上、メモリ・モジュールの数は
Nであるとされる。しかしながら、当業者には明かであ
るように、異なる数のメモリ・モジュールを採用する実
施例も用いることができる。これらのキャッシュ・メモ
リは相互接続ネットワーク24によってメモリ・モジュ
ールと接続される。相互接続ネットワーク24は、任意
のキャッシュが任意のメモリ・モジュールに接続できる
ようにする、クロス接続スイッチまたはその他の構成で
作ることができる。
【0012】図2には、典型的な先行技術によるメモリ
・モジュール30が示されている。メモリ・モジュール
30は複数のデータ・レコード32に分割されている。
各データ・レコードには、ディレクトリ・フィールド3
6及びデータ・ライン34が含まれている。データ・ラ
イン34にはプロセッサによって用いられるデータが含
まれており、対応するディレクトリ・フィールド36
は、システム中のいろいろなプロセッサからのロード命
令及びストア命令を適切に処理するためにキャッシュ・
システムが必要とする情報をストアするために用いられ
る。あるプロセッサがデータ・ライン34に含まれてい
る情報を要求したときには、データ・ライン全体が当該
プロセッサに関連したキャッシュにコピーされる。同様
にして、データ・ライン34に含まれているアドレスに
対してプロセッサがデータを書き込だときには、当該プ
ロセッサに関連したキャッシュ中のデータ・ラインのコ
ピー全体が、メモリ・モジュールに書き戻される。
・モジュール30が示されている。メモリ・モジュール
30は複数のデータ・レコード32に分割されている。
各データ・レコードには、ディレクトリ・フィールド3
6及びデータ・ライン34が含まれている。データ・ラ
イン34にはプロセッサによって用いられるデータが含
まれており、対応するディレクトリ・フィールド36
は、システム中のいろいろなプロセッサからのロード命
令及びストア命令を適切に処理するためにキャッシュ・
システムが必要とする情報をストアするために用いられ
る。あるプロセッサがデータ・ライン34に含まれてい
る情報を要求したときには、データ・ライン全体が当該
プロセッサに関連したキャッシュにコピーされる。同様
にして、データ・ライン34に含まれているアドレスに
対してプロセッサがデータを書き込だときには、当該プ
ロセッサに関連したキャッシュ中のデータ・ラインのコ
ピー全体が、メモリ・モジュールに書き戻される。
【0013】ディレクトリ・レコードは、2つのサブフ
ィールド38及び40に分割されている。サブフィール
ド38にはN個のビットが含まれており、Nビット中の1
つのビットが1つのプロセッサにプロセッサに対応して
いる。各ビットは、当のデータ・ラインのコピーが対応
するプロセッサに装着されているキャッシュ中に現在入
っているかどうかを表示するために用いられる。第2の
サブフィールド40には 2個のビットが含まれてお
り、夫々ラベルL、Mが付されている。データ・ラインを
読み出すとエラーが引き起こされるメモリ保守操作の間
にデータ・ラインをロックするために 、ビットLが用い
られる。例えば、メモリ・コントローラが全キャッシュ
に対して無効化メッセージを同報伝達して、キャッシュ
に含まれているある特定のデータ・ラインのいずれのコ
ピーも有効ではない旨をこれらのキャッシュに告知して
いるときには、ビットLがセットされて、プロセッサが
当のデータ・ラインをアクセスしないようにする。より
詳細に後述するように、ビットMは、データ・ラインの
修正されたコピーがいずれかのキャッシュに含まれてお
り、このためにメモリにストアされている値はもはや信
頼できないということを示す。
ィールド38及び40に分割されている。サブフィール
ド38にはN個のビットが含まれており、Nビット中の1
つのビットが1つのプロセッサにプロセッサに対応して
いる。各ビットは、当のデータ・ラインのコピーが対応
するプロセッサに装着されているキャッシュ中に現在入
っているかどうかを表示するために用いられる。第2の
サブフィールド40には 2個のビットが含まれてお
り、夫々ラベルL、Mが付されている。データ・ラインを
読み出すとエラーが引き起こされるメモリ保守操作の間
にデータ・ラインをロックするために 、ビットLが用い
られる。例えば、メモリ・コントローラが全キャッシュ
に対して無効化メッセージを同報伝達して、キャッシュ
に含まれているある特定のデータ・ラインのいずれのコ
ピーも有効ではない旨をこれらのキャッシュに告知して
いるときには、ビットLがセットされて、プロセッサが
当のデータ・ラインをアクセスしないようにする。より
詳細に後述するように、ビットMは、データ・ラインの
修正されたコピーがいずれかのキャッシュに含まれてお
り、このためにメモリにストアされている値はもはや信
頼できないということを示す。
【0014】キャッシュが読出し命令を受け取ったが、
このキャッシュが当該データの有効なコピーを持ってい
ない場合には、ディレクトリに対して読出しミスが伝送
される。このデータ・ラインに対応するビットMがセッ
トされていない場合には、メイン・メモリからデータ・
ラインが供給され、当のキャッシュに対応するビットが
ディレクトリ内でセットされる。ビットMがセットされ
ていて、データ・ラインの有効なコピーが他のキャッシ
ュ中に存在するだけであることが指示されているときに
は、データの供給に先立ってメモリに対してデータ・ラ
インをコピーして戻すことにより一貫性が維持される。
次に、ビットMがリセットされる。
このキャッシュが当該データの有効なコピーを持ってい
ない場合には、ディレクトリに対して読出しミスが伝送
される。このデータ・ラインに対応するビットMがセッ
トされていない場合には、メイン・メモリからデータ・
ラインが供給され、当のキャッシュに対応するビットが
ディレクトリ内でセットされる。ビットMがセットされ
ていて、データ・ラインの有効なコピーが他のキャッシ
ュ中に存在するだけであることが指示されているときに
は、データの供給に先立ってメモリに対してデータ・ラ
インをコピーして戻すことにより一貫性が維持される。
次に、ビットMがリセットされる。
【0015】キャッシュが書込み命令を受取ったが、こ
のキャッシュが対応するデータ・ラインの排他的コピー
(exclusive copy)を持っていないときには、ディレクト
リに対して書込みミス信号が伝送される。この状況は、
このデータ・ラインに対応するビットMがセットされて
いないとき、またはこのキャッシュがこのデータ・ライ
ンのコピーを持っていないときに起こる。次に、データ
・ラインの共有コピーを含むキャッシュに対して、ディ
レクトリから無効化信号が伝送される。無効化の確認応
答を別のキャッシュから受信した後で、要求をしている
キャッシュに対して書込みが許容される。無効化信号が
送出されるとロック・ビットがセットされ、無効化への
確認応答が全て受信されるとロック・ビットがクリアさ
れる。ロック・ビットがセットされているラインに対す
る要求が到着すると、その要求は、後程再発行するよう
に要求元に送り帰される。
のキャッシュが対応するデータ・ラインの排他的コピー
(exclusive copy)を持っていないときには、ディレクト
リに対して書込みミス信号が伝送される。この状況は、
このデータ・ラインに対応するビットMがセットされて
いないとき、またはこのキャッシュがこのデータ・ライ
ンのコピーを持っていないときに起こる。次に、データ
・ラインの共有コピーを含むキャッシュに対して、ディ
レクトリから無効化信号が伝送される。無効化の確認応
答を別のキャッシュから受信した後で、要求をしている
キャッシュに対して書込みが許容される。無効化信号が
送出されるとロック・ビットがセットされ、無効化への
確認応答が全て受信されるとロック・ビットがクリアさ
れる。ロック・ビットがセットされているラインに対す
る要求が到着すると、その要求は、後程再発行するよう
に要求元に送り帰される。
【0016】先に注意したように、上述したディレクト
リのエントリをストアするために必要とされるスペース
は、プロセッサの数とともに増大する。このスペースの
必要量はN^2のオーダーである。サブフィールド38の
代わりにわずかの個数のポインタ・フィールドで代用す
ることによってディレクトリのサイズを小さくしようと
いう試みが、多くのシステムでなされてきた。各ポイン
タには、データのコピーを有するキャッシュがどれであ
るかを識別する情報がストアされている。データ・ライ
ン毎にNより少ないポインタを用意することにより、メ
モリの節減が達成される。これらのスキームのメモリの
必要量はNlogNのオーダーである。ある特定のデータ・
ラインのコピーを有するキャッシュの数がポインタの数
よりも少ないかこれに等しい限りは、これらのシステム
は上述されたものと類似の態様で動作する。コピーを要
求しているキャッシュの数がこの数を越えたときには、
ポインタのオーバフローが生じ、書込みミスについての
サービスをするために全てのキャッシュに対して同報メ
ッセージが送られる。この同報メッセージによりネット
ワークのトラフィックが実質的に増大することから、メ
モリ・システムの全体的なスループットが低下する。
リのエントリをストアするために必要とされるスペース
は、プロセッサの数とともに増大する。このスペースの
必要量はN^2のオーダーである。サブフィールド38の
代わりにわずかの個数のポインタ・フィールドで代用す
ることによってディレクトリのサイズを小さくしようと
いう試みが、多くのシステムでなされてきた。各ポイン
タには、データのコピーを有するキャッシュがどれであ
るかを識別する情報がストアされている。データ・ライ
ン毎にNより少ないポインタを用意することにより、メ
モリの節減が達成される。これらのスキームのメモリの
必要量はNlogNのオーダーである。ある特定のデータ・
ラインのコピーを有するキャッシュの数がポインタの数
よりも少ないかこれに等しい限りは、これらのシステム
は上述されたものと類似の態様で動作する。コピーを要
求しているキャッシュの数がこの数を越えたときには、
ポインタのオーバフローが生じ、書込みミスについての
サービスをするために全てのキャッシュに対して同報メ
ッセージが送られる。この同報メッセージによりネット
ワークのトラフィックが実質的に増大することから、メ
モリ・システムの全体的なスループットが低下する。
【0017】本発明によれば、完全にマッピングされた
ディレクトリ・システムの利点を維持したままで、ディ
レクトリのストアに必要とされるメモリを減少させる。
本発明においてこの目標を達成する態様は、従来のダイ
レクト・マッピング・キャッシュ・システムが動作する
態様を参照すれば、より容易に理解することができる。
図3には、先行技術によるダイレクト・マッピング方式
のキャッシュ100のブロック図が示されている。キャ
ッシュ100はプロセッサ102からの読出し命令及び
書込み命令を受信する。このような命令は、クロス接続
ネットワーク104を介してキャッシュ100に接続さ
れた複数のメモリ・モジュール106を含んでなるシス
テムのメイン・メモリ108中のメモリ・アドレスを参
照する。
ディレクトリ・システムの利点を維持したままで、ディ
レクトリのストアに必要とされるメモリを減少させる。
本発明においてこの目標を達成する態様は、従来のダイ
レクト・マッピング・キャッシュ・システムが動作する
態様を参照すれば、より容易に理解することができる。
図3には、先行技術によるダイレクト・マッピング方式
のキャッシュ100のブロック図が示されている。キャ
ッシュ100はプロセッサ102からの読出し命令及び
書込み命令を受信する。このような命令は、クロス接続
ネットワーク104を介してキャッシュ100に接続さ
れた複数のメモリ・モジュール106を含んでなるシス
テムのメイン・メモリ108中のメモリ・アドレスを参
照する。
【0018】読出し命令または書込み命令の入来がコン
トローラ128によって検出されたときには、コントロ
ーラ128は当該命令によって参照されたアドレスを4
個のフィールドを含むレジスタ110にストアさせる。
タグ・ビット・フィールド112は典型的にはデータ・
ラインのアドレスの上位側ビットで構成される。インデ
クス・フィールド114及びオフセット・フィールド1
16にはデータ・ラインのアドレスの低位側ビットが含
まれている。タグ・フィールド及びインデクス・フィー
ルドは、データ・ラインのメイン・メモリ中でのアドレ
スを表す。オフセット・フィールド116及びバイト・
フィールド118は、プロセッサによって要求されたバ
イトのデータ・ライン中でのオフセットを指定する。
トローラ128によって検出されたときには、コントロ
ーラ128は当該命令によって参照されたアドレスを4
個のフィールドを含むレジスタ110にストアさせる。
タグ・ビット・フィールド112は典型的にはデータ・
ラインのアドレスの上位側ビットで構成される。インデ
クス・フィールド114及びオフセット・フィールド1
16にはデータ・ラインのアドレスの低位側ビットが含
まれている。タグ・フィールド及びインデクス・フィー
ルドは、データ・ラインのメイン・メモリ中でのアドレ
スを表す。オフセット・フィールド116及びバイト・
フィールド118は、プロセッサによって要求されたバ
イトのデータ・ライン中でのオフセットを指定する。
【0019】キャッシュ100には、データ・メモリ1
22中のデータ・ラインのコピーがストアされる。この
データ・ラインは、データ・メモリ122中の当のデー
タ・ラインのアドレスのインデクス・フィールド114
によって決定される物理アドレスにストアされる。デー
タ・メモリ122にストアされたデータ・ラインに対応
するデータ・ライン・アドレスの高位側ビットは、タグ
・メモリ120と呼ばれる第2のメモリ中の、インデク
ス・フィールドによって決定されたロケーションにスト
アされる。タグ・メモリ120にも各データ・ラインに
ついての状態値がストアされており、キャッシュ内のコ
ピーがデータ・ラインの排他的なコピーであるか、ある
いは他のキャッシュと共有されるコピーであるかが、こ
の状態値で指示される。
22中のデータ・ラインのコピーがストアされる。この
データ・ラインは、データ・メモリ122中の当のデー
タ・ラインのアドレスのインデクス・フィールド114
によって決定される物理アドレスにストアされる。デー
タ・メモリ122にストアされたデータ・ラインに対応
するデータ・ライン・アドレスの高位側ビットは、タグ
・メモリ120と呼ばれる第2のメモリ中の、インデク
ス・フィールドによって決定されたロケーションにスト
アされる。タグ・メモリ120にも各データ・ラインに
ついての状態値がストアされており、キャッシュ内のコ
ピーがデータ・ラインの排他的なコピーであるか、ある
いは他のキャッシュと共有されるコピーであるかが、こ
の状態値で指示される。
【0020】コントローラ128が読出し命令を受信す
ると、コントローラ128はデータ・メモリ122中の
インデクス・フィールド及びオフセット・フィールドで
指定されたロケーションをレジスタ126にロードす
る。これと同時に、コントローラ128は、タグ・メモ
リ120中のインデクス・フィールド114によって指
定されたロケーションのエントリの内容を、タグ・フィ
ールド112内の値と比較させる。これら2つの値が一
致すると、レジスタ126内のデータがプロセッサ10
2に送られる。
ると、コントローラ128はデータ・メモリ122中の
インデクス・フィールド及びオフセット・フィールドで
指定されたロケーションをレジスタ126にロードす
る。これと同時に、コントローラ128は、タグ・メモ
リ120中のインデクス・フィールド114によって指
定されたロケーションのエントリの内容を、タグ・フィ
ールド112内の値と比較させる。これら2つの値が一
致すると、レジスタ126内のデータがプロセッサ10
2に送られる。
【0021】コントローラ128が書込み命令を受信す
ると、キャッシュ内にデータが存在していれば、上と同
様な態様でデータ・レジスタ126に対してロードが行
なわれる。次に、このデータ中の書込み命令中のデータ
によって置換されるべき部分が置換される。キャッシュ
がデータの排他的コピーを保持していることが状態変数
で指示されているとすると、このデータはデータ・メモ
リ122に書き戻される。キャッシュがライト・スルー
方式のキャッシュであるときには、このデータは適切な
メモリ・モジュール106にも書き戻される。
ると、キャッシュ内にデータが存在していれば、上と同
様な態様でデータ・レジスタ126に対してロードが行
なわれる。次に、このデータ中の書込み命令中のデータ
によって置換されるべき部分が置換される。キャッシュ
がデータの排他的コピーを保持していることが状態変数
で指示されているとすると、このデータはデータ・メモ
リ122に書き戻される。キャッシュがライト・スルー
方式のキャッシュであるときには、このデータは適切な
メモリ・モジュール106にも書き戻される。
【0022】読出し命令または書込み命令で参照された
データがキャッシュ内に存在しないときには、キャッシ
ュは上述したようにシステムのメモリからのデータを要
求する。
データがキャッシュ内に存在しないときには、キャッシ
ュは上述したようにシステムのメモリからのデータを要
求する。
【0023】従来のメモリ・システムにおいては、ある
データ・ラインがストアされているメモリ・モジュール
は、このデータ・ラインのメモリ・アドレスの高位側ビ
ットまたは低次ビットのいずれかによって特定される。
ビット・パターンの選択により、2種の相異なるメモリ
・インタリーブ方式が提供される。現在のメモリ命令が
参照するデータ・モジュールがどれであるかという知識
から次のメモリ命令が参照するメモリ・モジュールを予
測することができないシステムにおいては、これら2つ
の方式の何れか一方が他方に比べて有利であるというこ
とはない。
データ・ラインがストアされているメモリ・モジュール
は、このデータ・ラインのメモリ・アドレスの高位側ビ
ットまたは低次ビットのいずれかによって特定される。
ビット・パターンの選択により、2種の相異なるメモリ
・インタリーブ方式が提供される。現在のメモリ命令が
参照するデータ・モジュールがどれであるかという知識
から次のメモリ命令が参照するメモリ・モジュールを予
測することができないシステムにおいては、これら2つ
の方式の何れか一方が他方に比べて有利であるというこ
とはない。
【0024】本発明において、メモリ・モジュールはイ
ンデクス・フィールド・ビットのサブセットによって指
定される。以下の議論を簡略化するために、データ・ラ
インがストアされるメモリ・モジュールを指定するため
に高位側のインデクス・フィールド・ビットを使用する
と仮定する。残りのインデクス・ビットは、その機能に
ついてより詳細に後述されるセクタ・インデクスを決定
する。メモリ・モジュールを指定するこの方法には、キ
ャッシュ中のタグ・メモリを色々なメモリ・モジュール
に対応する領域に分割するという効果がある。
ンデクス・フィールド・ビットのサブセットによって指
定される。以下の議論を簡略化するために、データ・ラ
インがストアされるメモリ・モジュールを指定するため
に高位側のインデクス・フィールド・ビットを使用する
と仮定する。残りのインデクス・ビットは、その機能に
ついてより詳細に後述されるセクタ・インデクスを決定
する。メモリ・モジュールを指定するこの方法には、キ
ャッシュ中のタグ・メモリを色々なメモリ・モジュール
に対応する領域に分割するという効果がある。
【0025】この分割については、図4を参照すること
でより容易に理解することができる。図4には、種々の
キャッシュのタグ・メモリ201の構成が示されてい
る。読出し命令または書込み命令に含まれているアドレ
ス210は、上述したように、ここでもタグ・フィール
ド、インデクス・フィールド、オフセット・フィールド
及びバイト・フィールドに分割される。インデクス・フ
ィールド213はタグ・メモリ201内でタグ比較のた
めのデータがストアされるロケーションを決定する。ア
ドレスによって指定されたデータ・ラインがストアされ
ているメモリ203のメモリ・モジュール204が、イ
ンデクスの上位mビット(ここで、mはNの2を底とする
対数である)によって決定されることから、タグ・メモ
リは実効的に複数のセクタに分割される。各セクタは、
ある特定のメモリ・モジュールにストアされているデー
タ・ラインに対応するタグ値をストアするために用いら
れる。各セクタには2^(i-m)個のエントリがある。ここ
でiはインデクス・フィールド内のビット数である。セ
クタ1にはメモリ・モジュール1からのデータ・ライン
についてのタグがストアされ、セクタ2にはメモリ・モ
ジュール2からのデータ・ラインについてのタグがスト
アされる。以下同様である。キャッシュの動作はメイン
・メモリ108がメモリ・モジュールに分割される態様
とは無関係であることから、本発明によるダイレクト・
マッピング方式のキャッシュは、図3で説明した従来の
キャッシュと同様な態様で動作する。
でより容易に理解することができる。図4には、種々の
キャッシュのタグ・メモリ201の構成が示されてい
る。読出し命令または書込み命令に含まれているアドレ
ス210は、上述したように、ここでもタグ・フィール
ド、インデクス・フィールド、オフセット・フィールド
及びバイト・フィールドに分割される。インデクス・フ
ィールド213はタグ・メモリ201内でタグ比較のた
めのデータがストアされるロケーションを決定する。ア
ドレスによって指定されたデータ・ラインがストアされ
ているメモリ203のメモリ・モジュール204が、イ
ンデクスの上位mビット(ここで、mはNの2を底とする
対数である)によって決定されることから、タグ・メモ
リは実効的に複数のセクタに分割される。各セクタは、
ある特定のメモリ・モジュールにストアされているデー
タ・ラインに対応するタグ値をストアするために用いら
れる。各セクタには2^(i-m)個のエントリがある。ここ
でiはインデクス・フィールド内のビット数である。セ
クタ1にはメモリ・モジュール1からのデータ・ライン
についてのタグがストアされ、セクタ2にはメモリ・モ
ジュール2からのデータ・ラインについてのタグがスト
アされる。以下同様である。キャッシュの動作はメイン
・メモリ108がメモリ・モジュールに分割される態様
とは無関係であることから、本発明によるダイレクト・
マッピング方式のキャッシュは、図3で説明した従来の
キャッシュと同様な態様で動作する。
【0026】しかしながら、メモリ・モジュール上への
アドレスのこのマッピングにより、本発明で各メモリ・
モジュール中にディレクトリ情報をストアするために必
要なメモリ量をかなり減少させることができるようにな
る。本発明においては、各タグのコピーが2個ストアさ
れる。タグのコピーの一方はプロセッサに隣接したキャ
ッシュ中に物理的に置かれており、もう一方のコピーは
複数のメイン・メモリ・モジュールのうちのデータ・ラ
インがストアされるモジュールの中に物理的に置かれて
いる。メモリ・モジュールについての上述のインタリー
ブ方式を用いることにより、各キャッシュは、自分がキ
ャッシュしているデータのうちの1/NをN個のメモリ・モ
ジュールの中の1つにマッピングする。図4に示されて
いるセクタの各々は、メモリ・モジュールの中の正確に
1つにマッピングされる。
アドレスのこのマッピングにより、本発明で各メモリ・
モジュール中にディレクトリ情報をストアするために必
要なメモリ量をかなり減少させることができるようにな
る。本発明においては、各タグのコピーが2個ストアさ
れる。タグのコピーの一方はプロセッサに隣接したキャ
ッシュ中に物理的に置かれており、もう一方のコピーは
複数のメイン・メモリ・モジュールのうちのデータ・ラ
インがストアされるモジュールの中に物理的に置かれて
いる。メモリ・モジュールについての上述のインタリー
ブ方式を用いることにより、各キャッシュは、自分がキ
ャッシュしているデータのうちの1/NをN個のメモリ・モ
ジュールの中の1つにマッピングする。図4に示されて
いるセクタの各々は、メモリ・モジュールの中の正確に
1つにマッピングされる。
【0027】メモリ・モジュールは、当のメモリ・モジ
ュールにマッピングされているタグのコピーを維持する
ことしか必要とされない。メモリ・モジュールxは、N個
のキャッシュの各々のセクタx中のタグのコピーを持っ
ている。各セクタはキャッシュ・メモリの1/Nのオーダ
ーであるから、ディレクトリ・エントリをストアするた
めに必要とされるメモリは N^2 * (1/N) = N のオーダ
ーである。先行技術の最良のものでも N log N のオー
ダーのディレクトリ・スペースを必要とすることから、
また先に指摘したようにこれらの方式は完全マッピング
・ディレクトリ方式に比べてかなり貧弱な性能しか持っ
ていないことから、本発明によれば先行技術の方式に対
して著しい改良がもたらされる。
ュールにマッピングされているタグのコピーを維持する
ことしか必要とされない。メモリ・モジュールxは、N個
のキャッシュの各々のセクタx中のタグのコピーを持っ
ている。各セクタはキャッシュ・メモリの1/Nのオーダ
ーであるから、ディレクトリ・エントリをストアするた
めに必要とされるメモリは N^2 * (1/N) = N のオーダ
ーである。先行技術の最良のものでも N log N のオー
ダーのディレクトリ・スペースを必要とすることから、
また先に指摘したようにこれらの方式は完全マッピング
・ディレクトリ方式に比べてかなり貧弱な性能しか持っ
ていないことから、本発明によれば先行技術の方式に対
して著しい改良がもたらされる。
【0028】本発明においては、メモリ・モジュール上
に置かれたタグのコピーは上述したセクタ・インデクス
を用いることによりアドレスされる。上位mビットがセ
クタを識別するために用いられる場合には、インデクス
・ビットの下位 s = i - mビットによってセクタ・イン
デクスが定義される。各メモリ・モジュール中で必要と
されるタグ・エントリの個数は、各セクタ中のタグの個
数2^(i-m)にキャッシュの個数2^mを乗算したものに等
しい。これから、タグ・ディレクトリ中のエントリの数
が2^iであることがわかる。ここで、この数はマルチプ
ロセッサ・システムのメイン・メモリの容量とは無関係
であるということを注意しなければならない。より詳細
に後述するように、これにより、各メモリ・モジュール
に含まれる単一のチップ・プロセッサとして本発明を実
施できることがわかる。
に置かれたタグのコピーは上述したセクタ・インデクス
を用いることによりアドレスされる。上位mビットがセ
クタを識別するために用いられる場合には、インデクス
・ビットの下位 s = i - mビットによってセクタ・イン
デクスが定義される。各メモリ・モジュール中で必要と
されるタグ・エントリの個数は、各セクタ中のタグの個
数2^(i-m)にキャッシュの個数2^mを乗算したものに等
しい。これから、タグ・ディレクトリ中のエントリの数
が2^iであることがわかる。ここで、この数はマルチプ
ロセッサ・システムのメイン・メモリの容量とは無関係
であるということを注意しなければならない。より詳細
に後述するように、これにより、各メモリ・モジュール
に含まれる単一のチップ・プロセッサとして本発明を実
施できることがわかる。
【0029】本発明の利点については、以下の例からよ
り容易に見て取ることができるであろう。32ビットの
プロセッサを使用し、各アドレスはメイン・メモリ内の
バイトに対応しているマルチプロセッサ・システムにつ
いて考えることにする。ここで、各プロセッサは、32
バイトのキャッシュ・ラインを持つ256KBのキャッシ
ュを持っているとする。メモリはバイトに分割されてお
り、ワード当り4バイトであることから、バイト・フィ
ールドは2ビットであり、またオフセット・フィールド
は3ビットである。キャッシュは2^18バイトをストアす
る。従って、i+o+2=18 である。ここに、oは
オフセット・フィールド中のビット数である。従ってi
=13である。これより、タグ・フィールドは14ビッ
トであることがわかる。システムが16MBのメモリ・モ
ジュールに分割されているときには、各メモリ・モジュ
ール中でタグのコピーをストアするために必要とされる
ストア・スペースの大きさは16KBもない。従って、タ
グのコピーをストアするには、データ・ラインのストア
に必要なスペースの0.1%も必要としない。これと比
較してみるに、類似のシステムについての完全マッピン
グ方式で必要とされるディレクトリ・スペースは、デー
タ・ラインのストアに必要なスペースの6%を越える。
り容易に見て取ることができるであろう。32ビットの
プロセッサを使用し、各アドレスはメイン・メモリ内の
バイトに対応しているマルチプロセッサ・システムにつ
いて考えることにする。ここで、各プロセッサは、32
バイトのキャッシュ・ラインを持つ256KBのキャッシ
ュを持っているとする。メモリはバイトに分割されてお
り、ワード当り4バイトであることから、バイト・フィ
ールドは2ビットであり、またオフセット・フィールド
は3ビットである。キャッシュは2^18バイトをストアす
る。従って、i+o+2=18 である。ここに、oは
オフセット・フィールド中のビット数である。従ってi
=13である。これより、タグ・フィールドは14ビッ
トであることがわかる。システムが16MBのメモリ・モ
ジュールに分割されているときには、各メモリ・モジュ
ール中でタグのコピーをストアするために必要とされる
ストア・スペースの大きさは16KBもない。従って、タ
グのコピーをストアするには、データ・ラインのストア
に必要なスペースの0.1%も必要としない。これと比
較してみるに、類似のシステムについての完全マッピン
グ方式で必要とされるディレクトリ・スペースは、デー
タ・ラインのストアに必要なスペースの6%を越える。
【0030】本発明で必要とされるディレクトリ・スペ
ースは極めて小さいことから、タグを単一チップ内に実
際にストアすることができる。このチップをインタリー
ブ式デュアル・タグ・ディレクトリ・チップ(interleav
ed dual tag directory chip)と呼ぶ。このチップを用
いたメモリ・システムは、図1を参照して先に説明した
完全マッピング・ディレクトリ方式について上述したも
のと類似した態様で動作する。システム内の各メモリ・
モジュール毎に1つのインタリーブ式デュアル・タグ・
ディレクトリ・チップが関連付けられている。インタリ
ーブ式デュアル・タグ・ディレクトリ・チップには、キ
ャッシュの各々からの当のメモリ・モジュールに対応す
るセクタのコピーがストアされる。メモリ・アドレスか
らセクタ・インデクス及びタグが与えられると、インタ
リーブ式デュアル・タグ・ディレクトリ・チップは、図
1を参照して説明したビット L, M, P1 〜 PN を発生す
る。
ースは極めて小さいことから、タグを単一チップ内に実
際にストアすることができる。このチップをインタリー
ブ式デュアル・タグ・ディレクトリ・チップ(interleav
ed dual tag directory chip)と呼ぶ。このチップを用
いたメモリ・システムは、図1を参照して先に説明した
完全マッピング・ディレクトリ方式について上述したも
のと類似した態様で動作する。システム内の各メモリ・
モジュール毎に1つのインタリーブ式デュアル・タグ・
ディレクトリ・チップが関連付けられている。インタリ
ーブ式デュアル・タグ・ディレクトリ・チップには、キ
ャッシュの各々からの当のメモリ・モジュールに対応す
るセクタのコピーがストアされる。メモリ・アドレスか
らセクタ・インデクス及びタグが与えられると、インタ
リーブ式デュアル・タグ・ディレクトリ・チップは、図
1を参照して説明したビット L, M, P1 〜 PN を発生す
る。
【0031】図5には、本発明によるインタリーブ式デ
ュアル・タグ・ディレクトリ・チップ300のブロック
図が示されている。チップ300は、バス301上でs
ビットのセクタ・インデクスを、またバス303上でt
ビットのタグ値を受信する。チップ300はN個のメモ
リ302を含むが、これらはチップ300に関連付けら
れているメモリ・モジュールに関するキャッシュ・セク
タのコピーをストアするために用いられる。例えば、チ
ップ300がメモリ・モジュール1に関連付けられてい
るとした場合、メモリ302はそれぞれ指示されたキャ
ッシュからのセクタ1のコピーをストアする。セクタ・
インデクスは、メモリ302にストアされているタグ値
をアドレスするために用いられる。各メモリ302には
比較回路304が関連付けられている。この回路は、メ
モリ302にストアされておりセクタ・インデクスによ
ってインデクスされるタグ値と、バス303上に与えら
れるタグ値の一致を検出する。両タグ値が一致すると、
レジスタ306中の対応するビットがセットされる。
ュアル・タグ・ディレクトリ・チップ300のブロック
図が示されている。チップ300は、バス301上でs
ビットのセクタ・インデクスを、またバス303上でt
ビットのタグ値を受信する。チップ300はN個のメモ
リ302を含むが、これらはチップ300に関連付けら
れているメモリ・モジュールに関するキャッシュ・セク
タのコピーをストアするために用いられる。例えば、チ
ップ300がメモリ・モジュール1に関連付けられてい
るとした場合、メモリ302はそれぞれ指示されたキャ
ッシュからのセクタ1のコピーをストアする。セクタ・
インデクスは、メモリ302にストアされているタグ値
をアドレスするために用いられる。各メモリ302には
比較回路304が関連付けられている。この回路は、メ
モリ302にストアされておりセクタ・インデクスによ
ってインデクスされるタグ値と、バス303上に与えら
れるタグ値の一致を検出する。両タグ値が一致すると、
レジスタ306中の対応するビットがセットされる。
【0032】タグのルックアップ・ビット P1, .....,
PN がセットされた後では、システムは、上述した完全
マッピング・ディレクトリ・システムと論理的に等価で
ある。あるキャッシュが変更される毎に、それに対応す
るタグ・データがあるメモリ302にストアされる。こ
のメモリ302は、新たなキャッシュ・エントリが、メ
モリ302の中の、このデータ・ラインをストアするの
に使用されているメモリ・モジュールに接続されたイン
タリーブ式デュアル・タグ・ディレクトリ・チップから
なるセクタに対応する。キャッシュxがメモリ・モジュ
ールyにストアされているデータを要求すると、当該デ
ータ・ラインに対応するタグが、メモリ・モジュールy
に関連付けられているインタリーブ式デュアル・タグ・
ディレクトリ・チップのx番目のメモリ302のなかの
このデータ・ラインに対応しているセクタ・インデクス
位置にストアされる。
PN がセットされた後では、システムは、上述した完全
マッピング・ディレクトリ・システムと論理的に等価で
ある。あるキャッシュが変更される毎に、それに対応す
るタグ・データがあるメモリ302にストアされる。こ
のメモリ302は、新たなキャッシュ・エントリが、メ
モリ302の中の、このデータ・ラインをストアするの
に使用されているメモリ・モジュールに接続されたイン
タリーブ式デュアル・タグ・ディレクトリ・チップから
なるセクタに対応する。キャッシュxがメモリ・モジュ
ールyにストアされているデータを要求すると、当該デ
ータ・ラインに対応するタグが、メモリ・モジュールy
に関連付けられているインタリーブ式デュアル・タグ・
ディレクトリ・チップのx番目のメモリ302のなかの
このデータ・ラインに対応しているセクタ・インデクス
位置にストアされる。
【0033】種々のデータ・ラインに関連付けられたタ
グをストアすることに加えて、メモリ302には、図2
を参照して説明したビットM及びLに対応する各ラインに
関連している2個の状態ビットがストアされる。本発明
の好適な実施例においては、メモリ・コントローラによ
って用いられる ビットM及びLビットを発生させるため
の一致の有無を確認する操作の間に、これらのビット同
士をORする。キャッシュがデータ・ラインの排他的な
コピーを持つべきであるとメモリ・プロセッサが判定し
たときには、このプロセッサは当該データ・ライン及び
キャッシュについての情報がストアされているメモリ3
02中の対応対応するビットMをセットする。
グをストアすることに加えて、メモリ302には、図2
を参照して説明したビットM及びLに対応する各ラインに
関連している2個の状態ビットがストアされる。本発明
の好適な実施例においては、メモリ・コントローラによ
って用いられる ビットM及びLビットを発生させるため
の一致の有無を確認する操作の間に、これらのビット同
士をORする。キャッシュがデータ・ラインの排他的な
コピーを持つべきであるとメモリ・プロセッサが判定し
たときには、このプロセッサは当該データ・ライン及び
キャッシュについての情報がストアされているメモリ3
02中の対応対応するビットMをセットする。
【0034】図6は、本発明によるインタリーブ式デュ
アル・タグ・ディレクトリ・チップを単一のチップ40
0で実現した例を示すブロック図である。チップ400
には、コントローラ402、複数のセクタ・メモリ40
4、及びバス409上で入来するタグと、キャッシュ
ID、及びバス405と407とのそれぞれの上でのセ
クタ・インデクスによって特定されるセクタ・メモリ内
にストアされている値との比較をするための比較回路4
06がふくまれている。一致の有無を確認する操作の出
力410は出力レジスタ408にストアされている。チ
ップ400はまた、セクタメモリの中の、夫々パス40
5、407から与えられるキャッシュID及びセクタ・
インデクスによって指定されるロケーションに、ビット
L及びMをストアできなければならない。コントローラ4
02は、予め定められた信号がバス403上で受信され
たときには、このようなデータをセクタ・メモリにスト
アする。上述した一致の有無を確認する操作を開始する
ために第2の信号が用いられる。
アル・タグ・ディレクトリ・チップを単一のチップ40
0で実現した例を示すブロック図である。チップ400
には、コントローラ402、複数のセクタ・メモリ40
4、及びバス409上で入来するタグと、キャッシュ
ID、及びバス405と407とのそれぞれの上でのセ
クタ・インデクスによって特定されるセクタ・メモリ内
にストアされている値との比較をするための比較回路4
06がふくまれている。一致の有無を確認する操作の出
力410は出力レジスタ408にストアされている。チ
ップ400はまた、セクタメモリの中の、夫々パス40
5、407から与えられるキャッシュID及びセクタ・
インデクスによって指定されるロケーションに、ビット
L及びMをストアできなければならない。コントローラ4
02は、予め定められた信号がバス403上で受信され
たときには、このようなデータをセクタ・メモリにスト
アする。上述した一致の有無を確認する操作を開始する
ために第2の信号が用いられる。
【0035】ここで、本発明によるインタリーブ式デュ
アル・タグ・ディレクトリ・チップが、機能的には、プ
ロセッサにではなくメイン・メモリに接続された完全連
想型キャッシュ(fully associative cache)と類似して
いることに注意すべきである。通常は、完全連想型キャ
ッシュはコストが高いために、ダイレクト・マッピング
方式のキャッシュの方が完全連想型キャッシュよりも好
まれる。この高いコストは、プロセッサに対してデータ
を供給するために用いられるときに、完全連想型キャッ
シュが高速で動作しなければならないことの結果であ
る。本発明ではこの高いコストは回避されている。それ
は、インタリーブ式デュアル・タグ・ディレクトリ・チ
ップはメイン・メモリに接続されており、メイン・メモ
リの速度で動作することしか必要とされないからであ
る。図7は、本発明によるインタリーブ式デュアル・タ
グ・ディレクトリ・チップを用いてなるマルチプロセッ
サ・システム500のブロック図を示す。プロセッサ5
02は、このプロセッサのスピードに追随できるスピー
ドで動作しなければならないキャッシュ504に接続さ
れている。インタリーブ式デュアル・タグ・ディレクト
リ・チップ508はメイン・メモリ・モジュール506
に接続されている。キャッシュ・ミスが生じたときに
は、アドレスのインデクス部分によって特定されたメモ
リに接続されているインタリーブ式デュアル・タグ・デ
ィレクトリ・チップに対して問い合わせが行われて、当
のデータの任意のコピーのロケーションを判定する。イ
ンタリーブ式デュアル・タグ・ディレクトリ・チップ
は、キャッシュ504のそれよりもかなり長いメモリ・
サイクル・タイムに間に合う時間内にその出力値509
を発生しなければならない。
アル・タグ・ディレクトリ・チップが、機能的には、プ
ロセッサにではなくメイン・メモリに接続された完全連
想型キャッシュ(fully associative cache)と類似して
いることに注意すべきである。通常は、完全連想型キャ
ッシュはコストが高いために、ダイレクト・マッピング
方式のキャッシュの方が完全連想型キャッシュよりも好
まれる。この高いコストは、プロセッサに対してデータ
を供給するために用いられるときに、完全連想型キャッ
シュが高速で動作しなければならないことの結果であ
る。本発明ではこの高いコストは回避されている。それ
は、インタリーブ式デュアル・タグ・ディレクトリ・チ
ップはメイン・メモリに接続されており、メイン・メモ
リの速度で動作することしか必要とされないからであ
る。図7は、本発明によるインタリーブ式デュアル・タ
グ・ディレクトリ・チップを用いてなるマルチプロセッ
サ・システム500のブロック図を示す。プロセッサ5
02は、このプロセッサのスピードに追随できるスピー
ドで動作しなければならないキャッシュ504に接続さ
れている。インタリーブ式デュアル・タグ・ディレクト
リ・チップ508はメイン・メモリ・モジュール506
に接続されている。キャッシュ・ミスが生じたときに
は、アドレスのインデクス部分によって特定されたメモ
リに接続されているインタリーブ式デュアル・タグ・デ
ィレクトリ・チップに対して問い合わせが行われて、当
のデータの任意のコピーのロケーションを判定する。イ
ンタリーブ式デュアル・タグ・ディレクトリ・チップ
は、キャッシュ504のそれよりもかなり長いメモリ・
サイクル・タイムに間に合う時間内にその出力値509
を発生しなければならない。
【0036】以上要するに、マルチプロセッサ演算シス
テムにおけるキャッシュの一貫性を達成するために、完
全マッピング方式のディレクトリ・システムを実施する
ための改良された方法及び装置が提供される。本発明に
対する種々の修正は、上述の説明及び添付の図面から、
当業者にとっては自明のことである。従って、本発明
は、特許請求の範囲の記載の範囲によってのみ限定され
るべきものである。
テムにおけるキャッシュの一貫性を達成するために、完
全マッピング方式のディレクトリ・システムを実施する
ための改良された方法及び装置が提供される。本発明に
対する種々の修正は、上述の説明及び添付の図面から、
当業者にとっては自明のことである。従って、本発明
は、特許請求の範囲の記載の範囲によってのみ限定され
るべきものである。
【0037】
【効果】以上説明したように、本発明によれば、マルチ
プロセッサ・システムのキャッシュの一貫性維持を、性
能・費用上の犠牲を最小限にして達成することができ
る。
プロセッサ・システムのキャッシュの一貫性維持を、性
能・費用上の犠牲を最小限にして達成することができ
る。
【図1】マルチプロセッサ・コンピュータ・システムの
ブロック図。
ブロック図。
【図2】先行技術によるメモリ・モジュールのブロック
図。
図。
【図3】先行技術によるダイレクト・マッピング・キャ
ッシュのブロック図。
ッシュのブロック図。
【図4】本発明に基づいたメモリ・システムのタグ・メ
モリの構成を示す図。
モリの構成を示す図。
【図5】本発明に基づいたインタリーブしたデュアル式
タグ・ディレクトリ・チップのブロック図。
タグ・ディレクトリ・チップのブロック図。
【図6】本発明に基づいたインタリーブしたデュアル式
タグ・ディレクトリ・チップの単一チップによる実施例
のブロック図。
タグ・ディレクトリ・チップの単一チップによる実施例
のブロック図。
【図7】本発明に基づいたインタリーブしたデュアル式
タグ・ディレクトリ・チップを使用したメモリ・システ
ムの実施例のブロック図。
タグ・ディレクトリ・チップを使用したメモリ・システ
ムの実施例のブロック図。
10:マルチプロセッサ演算システム 12、13、14、15:プロセッサ 16、17、18、19:キャッシュ・メモリ 24:相互接続ネットワーク 30:メモリ・モジュール 32:データ・レコード 36:ディレクトリ・フィールド 34:データ・ライン 38、40:サブフィールド 100:キャッシュ 102:プロセッサ 104:クロス接続ネットワーク 106:メモリ・モジュール 108:メイン・メモリ 110:レジスタ 112:タグ・ビット・フィールド 114:インデクス・フィールド 116:オフセット・フィールド 118:バイト・フィールド 120:タグ・メモリ 122:データ・メモリ 126:レジスタ 128:コントローラ 201:タグ・メモリ 203:メモリ 204:メモリ・モジュール 210:アドレス 213:インデクス・フィールド 300:インタリーブ式デュアル・タグ・ディレクトリ
・チップ 301、303:バス 302:メモリ 304:比較回路 306:レジスタ 400:チップ 402:コントローラ 404:セクタ・メモリ 405、407、409:バス 406:比較回路 408:出力レジスタ 500:マルチプロセッサ・システム 502:プロセッサ 504:キャッシュ 506:メイン・メモリ・モジュール 508:インタリーブ式デュアル・タグ・ディレクトリ
・チップ 510:相互接続ネットワーク
・チップ 301、303:バス 302:メモリ 304:比較回路 306:レジスタ 400:チップ 402:コントローラ 404:セクタ・メモリ 405、407、409:バス 406:比較回路 408:出力レジスタ 500:マルチプロセッサ・システム 502:プロセッサ 504:キャッシュ 506:メイン・メモリ・モジュール 508:インタリーブ式デュアル・タグ・ディレクトリ
・チップ 510:相互接続ネットワーク
Claims (1)
- 【請求項1】複数のメモリ・モジュール、複数のキャッ
シュ・メモリ、及び任意の前記キャッシュ・メモリを任
意の前記メモリ・モジュールに接続するための手段を含
むメモリ・システムにおいて、 前記メモリ・システムにはデータ・ラインのストア及び
読出しのための手段が設けられ、 各々の前記データ・ラインはタグ及びインデクス・フィ
ールドを有する2進数によって特定されるアドレスにス
トアされ、 前記インデクス・フィールドは前記メモリ・モジュール
の1つ及びある1つのセクタ・インデクスを識別するメ
モリ・モジュール番号を決定し、 前記メモリ・モジュール番号は前記インデクス・フィー
ルドのサブセットによって決定され、 前記セクタ・インデクスは前記インデクス・フィールド
・ビットの前記サブセットに属しない部分によって決定
され、 所与のメモリ・モジュール番号を有する全てのデータ・
ラインは同じ前記メモリ・モジュールにストアされ、 各々の前記キャッシュ・メモリは、前記データ・ライン
のコピーをストアするためのデータ・ライン・ストア手
段、及び前記データ・ライン・ストア手段にストアされ
た各データ・ラインのタグ・フィールドのコピーをスト
アするためのタグ・ストア手段を含み、 前記データ・ライン及びタグは、前記データ・ライン・
ストア手段、及び前記データ・ラインのインデクス・フ
ィールドによって決定される前記タグ・ストア手段にス
トアされ、 各々の前記メモリ・モジュールに接続され、前記メモリ
・モジュールにストアされるデータ・ラインのコピーを
有するキャッシュ・メモリを決定するために以下の(a)
ないし(d)を含む回路を設けたことを特徴とするキャッ
シュ・メモリ・システム: (a)複数のタグ記憶メモリ:前記キャッシュ・メモリの
各々に前記タグ記憶メモリの中の1つが対応しており、
前記タグ記憶メモリの各々は予め定められた値に等しい
メモリ・モジュール番号を持つ前記対応するキャッシュ
・タグ・ストア手段に全てのデータ・ラインのタグ・フ
ィールドをストアするための手段を含んでおり、前記タ
グ・フィールドの各々は、前記データ・ラインのインデ
クス・フィールドから生成されたセクタ・インデクスに
よって指定されたロケーションにストアされる; (b)タグ値を受信する手段: (c)セクタ・インデクス値を受信する手段; (d)前記タグ記憶メモリの各々の前記受信したセクタ・
インデクスによって指定されるロケーションにストアさ
れているタグ値を前記受信したタグ値と比較し、前記受
信したタグ値が前記ストアされているタグ値と一致する
腕かを示す信号を生成する手段。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US94146492A | 1992-09-08 | 1992-09-08 | |
US941,464 | 1992-09-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH06195263A true JPH06195263A (ja) | 1994-07-15 |
Family
ID=25476514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5247540A Pending JPH06195263A (ja) | 1992-09-08 | 1993-09-08 | キャッシュ・メモリ・システム |
Country Status (3)
Country | Link |
---|---|
JP (1) | JPH06195263A (ja) |
DE (1) | DE4325729C2 (ja) |
GB (1) | GB2270401B (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544269B (zh) * | 2013-10-17 | 2017-02-01 | 华为技术有限公司 | 目录的存储方法、查询方法及节点控制器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4005319C2 (de) * | 1989-02-22 | 1994-06-16 | Siemens Nixdorf Inf Syst | Verfahren und Anordnung zur Aufrechterhaltung der Datenkonsistenz in einem Multiprozessorsystem mit privaten Cachespeichern |
-
1993
- 1993-07-30 DE DE4325729A patent/DE4325729C2/de not_active Expired - Fee Related
- 1993-09-06 GB GB9318456A patent/GB2270401B/en not_active Expired - Fee Related
- 1993-09-08 JP JP5247540A patent/JPH06195263A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
GB9318456D0 (en) | 1993-10-20 |
GB2270401B (en) | 1996-04-24 |
DE4325729A1 (de) | 1994-03-10 |
GB2270401A (en) | 1994-03-09 |
DE4325729C2 (de) | 1998-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2662603B2 (ja) | 無効要求を選別する方法及び装置 | |
US7698508B2 (en) | System and method for reducing unnecessary cache operations | |
US6629205B2 (en) | System and method for increasing the snoop bandwidth to cache tags in a cache memory subsystem | |
US6408362B1 (en) | Data processing system, cache, and method that select a castout victim in response to the latencies of memory copies of cached data | |
JP2833062B2 (ja) | キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置 | |
US7281092B2 (en) | System and method of managing cache hierarchies with adaptive mechanisms | |
JP4447580B2 (ja) | 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ | |
US6338123B2 (en) | Complete and concise remote (CCR) directory | |
US20030200404A1 (en) | N-way set-associative external cache with standard DDR memory devices | |
US6185658B1 (en) | Cache with enhanced victim selection using the coherency states of cache lines | |
JPH09259036A (ja) | ライトバックキャッシュおよびライトバックキャッシュ内で整合性を維持する方法 | |
US6832294B2 (en) | Interleaved n-way set-associative external cache | |
US7380068B2 (en) | System and method for contention-based cache performance optimization | |
US6332179B1 (en) | Allocation for back-to-back misses in a directory based cache | |
US6763433B1 (en) | High performance cache intervention mechanism for symmetric multiprocessor systems | |
US7117312B1 (en) | Mechanism and method employing a plurality of hash functions for cache snoop filtering | |
US7325102B1 (en) | Mechanism and method for cache snoop filtering | |
US6950906B2 (en) | System for and method of operating a cache | |
EP0470739B1 (en) | Method for managing a cache memory system | |
US6311253B1 (en) | Methods for caching cache tags | |
US6442653B1 (en) | Data processing system, cache, and method that utilize a coherency state to indicate the latency of cached data | |
US9442856B2 (en) | Data processing apparatus and method for handling performance of a cache maintenance operation | |
US6901450B1 (en) | Multiprocessor machine and cache control method for providing higher priority to shared cache that is accessed by multiprocessors | |
US6813694B2 (en) | Local invalidation buses for a highly scalable shared cache memory hierarchy | |
US20020002659A1 (en) | System and method for improving directory lookup speed |