JPH05127992A - 2レベルのキヤツシユ・メモリ内の干渉を低減する装置と方法 - Google Patents
2レベルのキヤツシユ・メモリ内の干渉を低減する装置と方法Info
- Publication number
- JPH05127992A JPH05127992A JP2418243A JP41824390A JPH05127992A JP H05127992 A JPH05127992 A JP H05127992A JP 2418243 A JP2418243 A JP 2418243A JP 41824390 A JP41824390 A JP 41824390A JP H05127992 A JPH05127992 A JP H05127992A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- data
- stored
- memory
- address
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【目的】 キャッシュ・コヒーレンスを調べるために第
1レベル・キャッシュにアクセスすることを回避するこ
とである。 【構成】 本発明は、多重プロセッサ・コンピュータ・
システム内の1つのプロセッサ用の2レベルのキャッシ
ュ・メモリである。多くのプロセッサが共有メモリ・バ
スによって主メモリと接続され、1つ以上のプロセッサ
が直接マップされる2レベルのキャッシュ・メモリを有
する。さらに、このコンピュータ・システムのアドレス
空間の少なくとも一部はこれらのプロセッサによって共
有される。いずれか1つのプロセッサがアドレス空間の
共有部分内のデータを更新すると、対応する信号が共有
データ・バスで転送され、これによって必要なら全ての
キャッシュ・メモリをイネーブルしその内容を更新す
る。
1レベル・キャッシュにアクセスすることを回避するこ
とである。 【構成】 本発明は、多重プロセッサ・コンピュータ・
システム内の1つのプロセッサ用の2レベルのキャッシ
ュ・メモリである。多くのプロセッサが共有メモリ・バ
スによって主メモリと接続され、1つ以上のプロセッサ
が直接マップされる2レベルのキャッシュ・メモリを有
する。さらに、このコンピュータ・システムのアドレス
空間の少なくとも一部はこれらのプロセッサによって共
有される。いずれか1つのプロセッサがアドレス空間の
共有部分内のデータを更新すると、対応する信号が共有
データ・バスで転送され、これによって必要なら全ての
キャッシュ・メモリをイネーブルしその内容を更新す
る。
Description
【0001】
【産業上の利用分野】本発明は、一般的にキャッシュ・
コヒーレンスを必要とする多重プロセッサ・システムで
キャッシュ・メモリを使用することに関し、更に詳しく
は、2レベルのキャッシュ・メモリを使用する場合に多
重プロセッサ・システムのキャッシュ・コヒーレンスを
保持するためのシステムと方法に関する。
コヒーレンスを必要とする多重プロセッサ・システムで
キャッシュ・メモリを使用することに関し、更に詳しく
は、2レベルのキャッシュ・メモリを使用する場合に多
重プロセッサ・システムのキャッシュ・コヒーレンスを
保持するためのシステムと方法に関する。
【0002】
【従来の技術】多重プロセッサ・システムの中には、こ
れらのシステムのプロセッサが共有のメモリを有するも
のがあり、これは種々のプロセッサ・のアドレス空間が
重なっていることを意味する。もしこれらのプロセッサ
がキャッシュ・メモリを使用していれば、メモリの特定
のブロックの幾つかのコピーが異なったプロセッサのキ
ャッシュ内に同時に存在することが可能である。「キャ
ッシュのコヒーレンス」を保持するということは、共有
のアドレス空間中の指定したロケーションにデータを書
き込む場合、常にこのシステムは他のいずれかのプロセ
ッサのキャッシュ内に同じメモリ・ロケーションが記憶
されているかどうか判定し、次にこれらのキャッシュを
更新するかまたはさもなければこれらのキャッシュにフ
ラッグを立てることを意味する。多数の従来技術に関す
る論文がキャッシュ・コヒーレンスの種々の特徴を論じ
ている。例として、サッカー(Thacker)、スチ
ュワート(Stwart)、およびサッタースワイト・
ジュニア(Satterthwaite Jr.)によ
る「ファイヤフライ、多重プロセッサ・ワークステーシ
ョン」という表題のIEEEのコンピュータによる業務
処理、第37巻、第8号、909ないし920頁(19
88年8月)、およびサッカー(Thacker)、
P.チャールズ(Chales P.)、による「メモ
リを共有する多重プロセッサ用のキャッシュ戦略」とい
う題名のシティコープ/TTI(1986年3月)のコ
ンピュータ・アーキテクチャ会議録での新しい業績を参
照のこと。これらはここに参考として含まれている。
れらのシステムのプロセッサが共有のメモリを有するも
のがあり、これは種々のプロセッサ・のアドレス空間が
重なっていることを意味する。もしこれらのプロセッサ
がキャッシュ・メモリを使用していれば、メモリの特定
のブロックの幾つかのコピーが異なったプロセッサのキ
ャッシュ内に同時に存在することが可能である。「キャ
ッシュのコヒーレンス」を保持するということは、共有
のアドレス空間中の指定したロケーションにデータを書
き込む場合、常にこのシステムは他のいずれかのプロセ
ッサのキャッシュ内に同じメモリ・ロケーションが記憶
されているかどうか判定し、次にこれらのキャッシュを
更新するかまたはさもなければこれらのキャッシュにフ
ラッグを立てることを意味する。多数の従来技術に関す
る論文がキャッシュ・コヒーレンスの種々の特徴を論じ
ている。例として、サッカー(Thacker)、スチ
ュワート(Stwart)、およびサッタースワイト・
ジュニア(Satterthwaite Jr.)によ
る「ファイヤフライ、多重プロセッサ・ワークステーシ
ョン」という表題のIEEEのコンピュータによる業務
処理、第37巻、第8号、909ないし920頁(19
88年8月)、およびサッカー(Thacker)、
P.チャールズ(Chales P.)、による「メモ
リを共有する多重プロセッサ用のキャッシュ戦略」とい
う題名のシティコープ/TTI(1986年3月)のコ
ンピュータ・アーキテクチャ会議録での新しい業績を参
照のこと。これらはここに参考として含まれている。
【0003】本発明は、特に2レベルのキャッシュを使
用するシステムに関する。CPU(中央処理装置)の速
度が速くなるにしたがって、より多くのコンピュータが
2レベルのキャッシュを使用する。2レベルのキャッシ
ュでは、第1レベルのキャッシュは小型であるが非常に
高速であり、CPUの速度でCPUメモリのリファレン
ス(references)の大部分を供給するよう設
計されている。高性能CPUではCPUと主メモリとの
間の速度の相違が非常に大きいので(時には100対1
のオーダ)、大型ではあるが若干低速の第2レベル・キ
ャッシュが第1レベル・キャッシュと主メモリ・システ
ムとの間に設けられる。通常第1レベル・キャッシュは
第2レベルのキャッシュ内の情報のサブセツトを含む。
用するシステムに関する。CPU(中央処理装置)の速
度が速くなるにしたがって、より多くのコンピュータが
2レベルのキャッシュを使用する。2レベルのキャッシ
ュでは、第1レベルのキャッシュは小型であるが非常に
高速であり、CPUの速度でCPUメモリのリファレン
ス(references)の大部分を供給するよう設
計されている。高性能CPUではCPUと主メモリとの
間の速度の相違が非常に大きいので(時には100対1
のオーダ)、大型ではあるが若干低速の第2レベル・キ
ャッシュが第1レベル・キャッシュと主メモリ・システ
ムとの間に設けられる。通常第1レベル・キャッシュは
第2レベルのキャッシュ内の情報のサブセツトを含む。
【0004】図1は、多重プロセッサ・システム100
の基本的なアーキテクチャを示す。このシステム100
は、数台のCPU102、104、106、および入出
力プロセッサ108、を有し、これらのプロセッサは全
て共有メモリ・バスによって大型ではあるが若干低速の
主メモリ110と接続される。各々のCPUは、小型で
あるが非常に高速の第1レベル・キャッシュ120と、
この第1レベル・キャッシュ120よりも大型であるが
若干低速の第2キャッシュ122とを有する。
の基本的なアーキテクチャを示す。このシステム100
は、数台のCPU102、104、106、および入出
力プロセッサ108、を有し、これらのプロセッサは全
て共有メモリ・バスによって大型ではあるが若干低速の
主メモリ110と接続される。各々のCPUは、小型で
あるが非常に高速の第1レベル・キャッシュ120と、
この第1レベル・キャッシュ120よりも大型であるが
若干低速の第2キャッシュ122とを有する。
【0005】いわゆる「十進法」を使用すれば、第1レ
ベル・キャッシュ120は一般的に第2レベルのキャッ
シュ122の約10倍の速度であり、第2レベルのキャ
ッシュ122の約10分の1の寸法である。同時に、第
2レベルのキャッシュ122は一般的に主メモリ110
の約10倍の速度であり、主メモリの約10分の1の寸
法である。もちろん、これらの比率は概算値でしかな
い。キャッシュと主メモリは2の階乗に等しい寸法を有
する傾向があるので(例えば、キャッシュ用に16Kま
たは64Kバイトおよび主メモリ用に128メガ)、キ
ャッシュとメモリの実際の寸法の比率は通常2の因数
(4、8、16または32のように)となる。例えは、
第1レベル・キャッシュ120はアクセス速度が10ナ
ノ秒で16Kバイトの寸法を有し、第2レベルのキャッ
シュはアクセス時間が100ナノ秒で256Kバイトの
寸法を有し、主メモリはアクセス時間が500ナノ秒で
4,096Kバイトの寸法を有することが可能である。
ベル・キャッシュ120は一般的に第2レベルのキャッ
シュ122の約10倍の速度であり、第2レベルのキャ
ッシュ122の約10分の1の寸法である。同時に、第
2レベルのキャッシュ122は一般的に主メモリ110
の約10倍の速度であり、主メモリの約10分の1の寸
法である。もちろん、これらの比率は概算値でしかな
い。キャッシュと主メモリは2の階乗に等しい寸法を有
する傾向があるので(例えば、キャッシュ用に16Kま
たは64Kバイトおよび主メモリ用に128メガ)、キ
ャッシュとメモリの実際の寸法の比率は通常2の因数
(4、8、16または32のように)となる。例えは、
第1レベル・キャッシュ120はアクセス速度が10ナ
ノ秒で16Kバイトの寸法を有し、第2レベルのキャッ
シュはアクセス時間が100ナノ秒で256Kバイトの
寸法を有し、主メモリはアクセス時間が500ナノ秒で
4,096Kバイトの寸法を有することが可能である。
【0006】CPU104とこれのキャッシュ120お
よび122を検討する。システムのいずれか他の場所
(例えば、入出力プロセッサ108)での事象が第2レ
ベルのキャッシュ122に入力を発生させて無効になる
かまたは新しいデータによって更新される場合、これら
の入力がまた第1レベル・キャッシュ120に記憶され
ているかどうかを判定することが必要である。第1レベ
ル・キャッシュ120は第2レベルのキャッシュ122
よりはるかに小型であるので、通常この情報は第1レベ
ル・キャッシュ120には存在しないケースとなる。さ
らに、データ入力の存在または不在を判定するために第
1レベル・キャッシュをアクセスすると、CPU104
によるアクセスを妨害しシステム全体の性能を低下させ
る。
よび122を検討する。システムのいずれか他の場所
(例えば、入出力プロセッサ108)での事象が第2レ
ベルのキャッシュ122に入力を発生させて無効になる
かまたは新しいデータによって更新される場合、これら
の入力がまた第1レベル・キャッシュ120に記憶され
ているかどうかを判定することが必要である。第1レベ
ル・キャッシュ120は第2レベルのキャッシュ122
よりはるかに小型であるので、通常この情報は第1レベ
ル・キャッシュ120には存在しないケースとなる。さ
らに、データ入力の存在または不在を判定するために第
1レベル・キャッシュをアクセスすると、CPU104
によるアクセスを妨害しシステム全体の性能を低下させ
る。
【0007】本発明は、第1レベル・キャッシュへの不
必要なアクセスを避けることができるように、第2レベ
ル・キャッシュの制御論理によって、この第1レベル・
キャッシュ内にデータが存在するかどうかを判定するこ
とが可能になる。
必要なアクセスを避けることができるように、第2レベ
ル・キャッシュの制御論理によって、この第1レベル・
キャッシュ内にデータが存在するかどうかを判定するこ
とが可能になる。
【0008】
【発明の概要】要約すれば、本発明は、多重プロセッサ
・コンピュータ・システム内の1つのプロセッサ用の2
レベルのキャッシュ・メモリである。多くのプロセッサ
が共有メモリ・バスによって主メモリと接続され、1つ
以上のプロセッサが直接マップされる2レベルのキャッ
シュ・メモリを有する。さらに、このコンピュータ・シ
ステムのアドレス空間の少なくとも一部はこれらのプロ
セッサによって共有される。いずれか1つのプロセッサ
がアドレス空間の共有部分内のデータを更新すると、対
応する信号が共有データ・バスで転送され、これによっ
て必要なら全てのキャッシュ・メモリをイネーブルしそ
の内容を更新する。
・コンピュータ・システム内の1つのプロセッサ用の2
レベルのキャッシュ・メモリである。多くのプロセッサ
が共有メモリ・バスによって主メモリと接続され、1つ
以上のプロセッサが直接マップされる2レベルのキャッ
シュ・メモリを有する。さらに、このコンピュータ・シ
ステムのアドレス空間の少なくとも一部はこれらのプロ
セッサによって共有される。いずれか1つのプロセッサ
がアドレス空間の共有部分内のデータを更新すると、対
応する信号が共有データ・バスで転送され、これによっ
て必要なら全てのキャッシュ・メモリをイネーブルしそ
の内容を更新する。
【0009】この2レベルのキャッシュ・メモリは小型
であるが非常に高速の第1キャッシュ・メモリと、第1
キャッシュ・メモリより低速であるが主メモリよりはる
かに高速の大型の第2キャッシュ・メモリを有する。両
方のキャッシュ共直接マップされ、第1キャッシュに記
憶されたデータの各行はまた第2キャッシュのブロック
の1つに記憶される。標準として、各々のキャッシュ
は、指示されたアドレス(すなわち、メモリ・ロケーシ
ョン)がその行またはブロックに何時記憶されたかを判
定するための制御論理を有する。
であるが非常に高速の第1キャッシュ・メモリと、第1
キャッシュ・メモリより低速であるが主メモリよりはる
かに高速の大型の第2キャッシュ・メモリを有する。両
方のキャッシュ共直接マップされ、第1キャッシュに記
憶されたデータの各行はまた第2キャッシュのブロック
の1つに記憶される。標準として、各々のキャッシュ
は、指示されたアドレス(すなわち、メモリ・ロケーシ
ョン)がその行またはブロックに何時記憶されたかを判
定するための制御論理を有する。
【0010】本発明の目的は、もし更新されたロケーシ
ョンが第1キャッシュ内に実際に記憶されていなけれ
ば、キャッシュ・コヒーレンスを調べるために第1レベ
ル・キャッシュにアクセスすることを回避することであ
るが、この理由は、第1キャッシュに対する不必要なコ
ヒーレンスを調べるためのアクセスがプロセッサによる
アクセスと干渉し、システムの性能を低下させるからで
ある。
ョンが第1キャッシュ内に実際に記憶されていなけれ
ば、キャッシュ・コヒーレンスを調べるために第1レベ
ル・キャッシュにアクセスすることを回避することであ
るが、この理由は、第1キャッシュに対する不必要なコ
ヒーレンスを調べるためのアクセスがプロセッサによる
アクセスと干渉し、システムの性能を低下させるからで
ある。
【0011】キャッシュの調査が行われる場合の第1レ
ベル・キャッシュへの疑似アクセスを防止するために、
本発明は、キャッシュを調べることによって更新される
指定されたロケーションが第1キャッシュ内に位置する
かどうかを判定するための別のハードウエアを有する第
2キャッシュを設ける。特に、第2キャッシュは特別の
テーブル(すなわち、メモリ・アレイ)を有し、これは
第1キャッシュ内の各々の行に対するポインタを記憶す
る。このポインタは、第1キャッシュの対応する行に記
憶されたのと同じデータを記憶する第2キャッシュ内の
ブロックを示す。
ベル・キャッシュへの疑似アクセスを防止するために、
本発明は、キャッシュを調べることによって更新される
指定されたロケーションが第1キャッシュ内に位置する
かどうかを判定するための別のハードウエアを有する第
2キャッシュを設ける。特に、第2キャッシュは特別の
テーブル(すなわち、メモリ・アレイ)を有し、これは
第1キャッシュ内の各々の行に対するポインタを記憶す
る。このポインタは、第1キャッシュの対応する行に記
憶されたのと同じデータを記憶する第2キャッシュ内の
ブロックを示す。
【0012】第2キャッシュの制御論理が指定されたア
ドレスがこの第2キャッシュに位置することを示す場
合、第2キャッシュ内のルックアップ回路は、指定され
たアドレスと対応する特別のテーブル内のポインタを指
定されたアドレスの予め決められた部分と比較する。も
しこれらの2者が一致した場合、次にこの指定されたア
ドレスは第1キャッシュ内に位置され、この第1キャッ
シュは更新される。
ドレスがこの第2キャッシュに位置することを示す場
合、第2キャッシュ内のルックアップ回路は、指定され
たアドレスと対応する特別のテーブル内のポインタを指
定されたアドレスの予め決められた部分と比較する。も
しこれらの2者が一致した場合、次にこの指定されたア
ドレスは第1キャッシュ内に位置され、この第1キャッ
シュは更新される。
【0013】本発明の他の目的および特徴は、図面と関
連させた場合、以下の詳細な説明と添付の請求項からよ
り容易に明らかとなる。
連させた場合、以下の詳細な説明と添付の請求項からよ
り容易に明らかとなる。
【0014】
【実施例】図1は、複数のプロセッサが2レベルのキャ
ッシュを有する多重プロセッサ・コンピュータ・システ
ムを示す。2レベルのキャッシュを有することに対する
誘因は以下の通りである。単一レベルのキャッシュを介
してメモリと接続されたCPUの場合、このCPUによ
って行われるメモリを参照するための有効な(すなわ
ち、平均の)アクセス時間Taccは、 Tacc=(Tcache1*h1)+Tmemory
*(1−h1)である。ここで、Tcache1はキャ
ッシュのアクセス時間、Tmemoryは主メモリのア
クセス時間、h1はそれらのアクセスがキャッシュに収
容される(すなわち「ヒット・イン」される)時間の分
数である。h1はヒット・レート(hit rate)
と呼ばれることもある。
ッシュを有する多重プロセッサ・コンピュータ・システ
ムを示す。2レベルのキャッシュを有することに対する
誘因は以下の通りである。単一レベルのキャッシュを介
してメモリと接続されたCPUの場合、このCPUによ
って行われるメモリを参照するための有効な(すなわ
ち、平均の)アクセス時間Taccは、 Tacc=(Tcache1*h1)+Tmemory
*(1−h1)である。ここで、Tcache1はキャ
ッシュのアクセス時間、Tmemoryは主メモリのア
クセス時間、h1はそれらのアクセスがキャッシュに収
容される(すなわち「ヒット・イン」される)時間の分
数である。h1はヒット・レート(hit rate)
と呼ばれることもある。
【0015】2レベルのキャッシュを介してメモリと接
続されたCPUの場合、このCPUによって行われるメ
モリを参照するための有効な(すなわち、平均の)アク
セス時間Taccは、 である。ここで、Tcache1は第1キャッシュ(高
速)のアクセス時間、Tcache2は第2のより遅い
キャッシュのアクセス時間、Tmemoryは主メモリ
のアクセス時間、h1は第1キャッシュのヒット・レー
ト、h2は第2キャッシュのヒッ卜・レートである。
続されたCPUの場合、このCPUによって行われるメ
モリを参照するための有効な(すなわち、平均の)アク
セス時間Taccは、 である。ここで、Tcache1は第1キャッシュ(高
速)のアクセス時間、Tcache2は第2のより遅い
キャッシュのアクセス時間、Tmemoryは主メモリ
のアクセス時間、h1は第1キャッシュのヒット・レー
ト、h2は第2キャッシュのヒッ卜・レートである。
【0016】通常Tcache1は、CPUの1または
2サイクル時間であり、Tmemoryは高速のCPU
を有するシステムの数100サイクルになる可能性があ
る。システム全体の設計目標は、Taccを最小にし、
一方実用に供することができ経済的なキャッシュの実行
を提供することである。高性能なシステムでは、このこ
とは2レベルのキャッシュを設けることによって行うこ
とができ、この場合第1レベルは第2レベルよりも非常
に小型である。第1キャッシュが小型であることは、第
1キャッシュのヒット・レートh1を、0.8のオーダ
で小さくし、一方第2キャッシュのヒット・レートh2
は、1.0に非常に近い。この第1レベル・キャッシュ
は、高速で安価にできるように小型でなければならず、
一方第2レベルのキャッシュは、小型のキャッシュでの
見落としで主メモリへのアクセスの時間が長くかかる不
都合を殆ど発生させないように大型でなければならな
い。
2サイクル時間であり、Tmemoryは高速のCPU
を有するシステムの数100サイクルになる可能性があ
る。システム全体の設計目標は、Taccを最小にし、
一方実用に供することができ経済的なキャッシュの実行
を提供することである。高性能なシステムでは、このこ
とは2レベルのキャッシュを設けることによって行うこ
とができ、この場合第1レベルは第2レベルよりも非常
に小型である。第1キャッシュが小型であることは、第
1キャッシュのヒット・レートh1を、0.8のオーダ
で小さくし、一方第2キャッシュのヒット・レートh2
は、1.0に非常に近い。この第1レベル・キャッシュ
は、高速で安価にできるように小型でなければならず、
一方第2レベルのキャッシュは、小型のキャッシュでの
見落としで主メモリへのアクセスの時間が長くかかる不
都合を殆ど発生させないように大型でなければならな
い。
【0017】多重プロセッサ・システム、すなわち入出
力装置がデータを主メモリに書き込むことができるシス
テムの場合、キャッシュのコヒーレンスを維持すること
に必要なのは、各メモリの更新を実行することがそのキ
ャッシュに記憶したデータに影響するかどうかを各々の
システムのキャッシュが判定できることである。例え
ば、図1の内容で、プロセッサ102、104、106
または108の1つによってメモリ・ロケーションが更
新される場合、常にメモリ・バス112は更新中のデー
タのアドレス(すなわち、ロケーション)を示す信号を
搬送し、このことによって、他のプロセッサのキャッシ
ュが指定されたロケーションに現在データを記憶してい
るかどうかをこれらのプロセッサが判定することが可能
になる。換言すれば、各々のプロセッサのキャッシュ
は、このメモリ・バス112を監視し、キャッシュ・コ
ヒーレンスを保持するために必要ならばこれらの内容を
更新する。
力装置がデータを主メモリに書き込むことができるシス
テムの場合、キャッシュのコヒーレンスを維持すること
に必要なのは、各メモリの更新を実行することがそのキ
ャッシュに記憶したデータに影響するかどうかを各々の
システムのキャッシュが判定できることである。例え
ば、図1の内容で、プロセッサ102、104、106
または108の1つによってメモリ・ロケーションが更
新される場合、常にメモリ・バス112は更新中のデー
タのアドレス(すなわち、ロケーション)を示す信号を
搬送し、このことによって、他のプロセッサのキャッシ
ュが指定されたロケーションに現在データを記憶してい
るかどうかをこれらのプロセッサが判定することが可能
になる。換言すれば、各々のプロセッサのキャッシュ
は、このメモリ・バス112を監視し、キャッシュ・コ
ヒーレンスを保持するために必要ならばこれらの内容を
更新する。
【0018】2レベルのキャッシュ・システムでは、第
2レベルのキャッシュ122はCPU104とメモリ・
バス112によって共有されているリソース(資源)で
あると考えられる。CPU104は第2レベルのキャッ
シュ122を使用して第1レベル・キャッシュ内で見出
せないメモリ・ロケーションに対するメモリの参照を満
足し、メモリ・バス112は第2レベルのキャッシュ1
22を「使用」してキャッシュ・コヒーレンスを保持す
る。したがって、メモリ・バス112とCPU104は
第2レベルのキャッシュ122を使用するために競合す
る。好適な実施例の場合、メモリ・バス112のタイミ
ング要件は、両方の装置がこの第2レベルのキャッシュ
122をアクセスしようとした場合、このメモリ・バス
112がCPUに対して絶対的な優先権を有することを
必要とする。
2レベルのキャッシュ122はCPU104とメモリ・
バス112によって共有されているリソース(資源)で
あると考えられる。CPU104は第2レベルのキャッ
シュ122を使用して第1レベル・キャッシュ内で見出
せないメモリ・ロケーションに対するメモリの参照を満
足し、メモリ・バス112は第2レベルのキャッシュ1
22を「使用」してキャッシュ・コヒーレンスを保持す
る。したがって、メモリ・バス112とCPU104は
第2レベルのキャッシュ122を使用するために競合す
る。好適な実施例の場合、メモリ・バス112のタイミ
ング要件は、両方の装置がこの第2レベルのキャッシュ
122をアクセスしようとした場合、このメモリ・バス
112がCPUに対して絶対的な優先権を有することを
必要とする。
【0019】さらに、2レベルのキャッシュを使用して
いるこの種の高性能コンピュータ・システムでは、第1
レベル・キャッシュ120はしばしばCPU104の一
部として製造されることに留意することができる。すな
わち、CPU104と第1レベル・キャッシュ120
は、信号の遅延を最小にするように同じシリコン・ダイ
上に形成され、その結果、この第1レベル・キャッシュ
120は、CPUの1サイクル内にCPU104によっ
てアクセスされることができる。
いるこの種の高性能コンピュータ・システムでは、第1
レベル・キャッシュ120はしばしばCPU104の一
部として製造されることに留意することができる。すな
わち、CPU104と第1レベル・キャッシュ120
は、信号の遅延を最小にするように同じシリコン・ダイ
上に形成され、その結果、この第1レベル・キャッシュ
120は、CPUの1サイクル内にCPU104によっ
てアクセスされることができる。
【0020】各第2レベルのキャッシュ122の観点か
ら、メモリ書き込み動作と関連するメモリ・バス112
の信号は、もし指定されたロケーションが現在このキャ
ッシュに記憶されていれば、「キャッシュ更新要求」−
すなわち、キャッシュ122の内容を更新または無効に
する要求として解釈することができる。この種の要求に
よって、キャッシュ内のデータが更新されるまたは無効
にされるかどうかは設計上の選択の問題である。本発明
の目的の場合、我々は、記憶されたデータを置き換える
ことまたはそれを無効にすることいずれかを意味するた
めに「キャッシュの内容を更新する」という用語を使用
するが、その理由は、もし指定されたロケーションがこ
のキャッシュに記憶されているならば、いずれの場合で
もこのキャッシュの内容が変更されるからである。
ら、メモリ書き込み動作と関連するメモリ・バス112
の信号は、もし指定されたロケーションが現在このキャ
ッシュに記憶されていれば、「キャッシュ更新要求」−
すなわち、キャッシュ122の内容を更新または無効に
する要求として解釈することができる。この種の要求に
よって、キャッシュ内のデータが更新されるまたは無効
にされるかどうかは設計上の選択の問題である。本発明
の目的の場合、我々は、記憶されたデータを置き換える
ことまたはそれを無効にすることいずれかを意味するた
めに「キャッシュの内容を更新する」という用語を使用
するが、その理由は、もし指定されたロケーションがこ
のキャッシュに記憶されているならば、いずれの場合で
もこのキャッシュの内容が変更されるからである。
【0021】例えば、この好適な実施例で使用するキャ
ッシュ更新プロトコールは以下のように動作する。メモ
リ・ロケーションがいずれかのプロセッサによって更新
される場合、常にこの更新されたロケーションのアドレ
スは共有メモリ・バス122に通知される。第2レベル
のキャッシュの各々は、この通知されたアドレスをこれ
らのキャッシュのタグ・メモリと比較し、指定されたロ
ケーションがこのキャッシュに記憶されているかどうか
判定する。もし記憶されていれば、全ブロックのデータ
がキャッシュにロードされ、その結果、第2レベルのキ
ャッシュは有効なデータを含む。さらに、もしこのロケ
ーションが第1レベル・キャッシュにもまた記憶されれ
ば、この第1レベル・キャッシュの対応する行(複数の
行)は無効であると表示される。CPUが次に無効であ
ると表示された行のロケーションをアクセスしようとし
た場合、この行は第2レベルのキャッシュから第1レベ
ル・キャッシュにロードされる。
ッシュ更新プロトコールは以下のように動作する。メモ
リ・ロケーションがいずれかのプロセッサによって更新
される場合、常にこの更新されたロケーションのアドレ
スは共有メモリ・バス122に通知される。第2レベル
のキャッシュの各々は、この通知されたアドレスをこれ
らのキャッシュのタグ・メモリと比較し、指定されたロ
ケーションがこのキャッシュに記憶されているかどうか
判定する。もし記憶されていれば、全ブロックのデータ
がキャッシュにロードされ、その結果、第2レベルのキ
ャッシュは有効なデータを含む。さらに、もしこのロケ
ーションが第1レベル・キャッシュにもまた記憶されれ
ば、この第1レベル・キャッシュの対応する行(複数の
行)は無効であると表示される。CPUが次に無効であ
ると表示された行のロケーションをアクセスしようとし
た場合、この行は第2レベルのキャッシュから第1レベ
ル・キャッシュにロードされる。
【0022】本発明の他の好適な実施例では、対応する
メモリ・ロケーションが更新される場合は、常に第2レ
ベルのキャッシュ内のブロックを単純に無効になること
が望ましい。この好適な実施例では、非常に広いメモリ
・バスが使用されているのでキャッシュ内のブロックを
更新することは比較的容易である。キャッシュ更新プロ
トコールの他の情報に関しては、参考文献として上で引
用され、含まれている「メモリを共有するプロセッサの
キャッシュ戦略」を参照すること。
メモリ・ロケーションが更新される場合は、常に第2レ
ベルのキャッシュ内のブロックを単純に無効になること
が望ましい。この好適な実施例では、非常に広いメモリ
・バスが使用されているのでキャッシュ内のブロックを
更新することは比較的容易である。キャッシュ更新プロ
トコールの他の情報に関しては、参考文献として上で引
用され、含まれている「メモリを共有するプロセッサの
キャッシュ戦略」を参照すること。
【0023】「キャッシュ更新要求」は2レベルのキャ
ッシュ構成の第2レベルのキャッシュのみに行くことが
望ましい。これは、更新中のロケーションが通常小型の
第1レベル・キャッシュ内には存在しないからである。
その結果、もし第1レベル・キャッシュの内容が全ての
キャッシュ更新要求に対してチェックされたなら、その
内容を更新する必要があるかどうかを判定するためにこ
の第1レベル・キャッシュをアクセスする過程で行われ
る作業の大部分は無駄になる。最も重要なことは、これ
らの第1レベル・キャッシュへの疑似アクセスがCPU
によるメモリ要求と干渉し、したがってシステムの性能
は不必要に低下することである。
ッシュ構成の第2レベルのキャッシュのみに行くことが
望ましい。これは、更新中のロケーションが通常小型の
第1レベル・キャッシュ内には存在しないからである。
その結果、もし第1レベル・キャッシュの内容が全ての
キャッシュ更新要求に対してチェックされたなら、その
内容を更新する必要があるかどうかを判定するためにこ
の第1レベル・キャッシュをアクセスする過程で行われ
る作業の大部分は無駄になる。最も重要なことは、これ
らの第1レベル・キャッシュへの疑似アクセスがCPU
によるメモリ要求と干渉し、したがってシステムの性能
は不必要に低下することである。
【0024】第1レベル・キャッシュへの疑似アクセス
を防止するために、本発明は、第1レベル・キャッシュ
を実際に参照することなく、第2レベルのキャッシュの
制御論理内に指定されたロケーションが第1レベル・キ
ャッシュ内に存在するかどうかを判定する機構を設け
る。
を防止するために、本発明は、第1レベル・キャッシュ
を実際に参照することなく、第2レベルのキャッシュの
制御論理内に指定されたロケーションが第1レベル・キ
ャッシュ内に存在するかどうかを判定する機構を設け
る。
【0025】本発明では、第1と第2レベルのキャッシ
ュはいずれも直接マップされる。これは、主メモリ内の
特定のアドレスに記憶されたデータはキャッシュ内の1
つのロケーションのみに記憶されることができることを
意味する。
ュはいずれも直接マップされる。これは、主メモリ内の
特定のアドレスに記憶されたデータはキャッシュ内の1
つのロケーションのみに記憶されることができることを
意味する。
【0026】キャッシュ・アレイ・タグおよび論理 図2を参照して、各CPUはローカル・バス200を有
し、これにはアドレス・バス202、データ・バス20
4および制御バス206が含まれる。このアドレス・バ
ス202は1組の2進アドレス信号を搬送する。便宜
上、これらのアドレス・ビットは5つのサブセットに分
解され、これはここでABCDEで示され、「A」は最
上位ビットを表わし、「B」は1つ以上の次の最上位ビ
ットを表わし、および最下位ビットを示す「E」まで同
様である。各アドレスを5つの部分に分割する理由は、
以下の議論から明らかである。
し、これにはアドレス・バス202、データ・バス20
4および制御バス206が含まれる。このアドレス・バ
ス202は1組の2進アドレス信号を搬送する。便宜
上、これらのアドレス・ビットは5つのサブセットに分
解され、これはここでABCDEで示され、「A」は最
上位ビットを表わし、「B」は1つ以上の次の最上位ビ
ットを表わし、および最下位ビットを示す「E」まで同
様である。各アドレスを5つの部分に分割する理由は、
以下の議論から明らかである。
【0027】直接マップされるキャッシュは以下のよう
に動作する。第1レベル・キャッシュ120を参照し
て、このキャッシュは高速メモリ・アレイ220を有
し、これは1組のB1ブロックを収容し、アクセス時間
は約10ナノ秒である。第2レベルのキャッシュ122
内のブロックから第1レベル・キャッシュ120内のブ
ロックを容易に区別する目的のために、ここで第1レベ
ル・キャッシュ内のブロックを「行」と呼び、一方第2
レベルのキャッシュ122内のブロックを「ブロック」
と呼ぶことに留意すること。
に動作する。第1レベル・キャッシュ120を参照し
て、このキャッシュは高速メモリ・アレイ220を有
し、これは1組のB1ブロックを収容し、アクセス時間
は約10ナノ秒である。第2レベルのキャッシュ122
内のブロックから第1レベル・キャッシュ120内のブ
ロックを容易に区別する目的のために、ここで第1レベ
ル・キャッシュ内のブロックを「行」と呼び、一方第2
レベルのキャッシュ122内のブロックを「ブロック」
と呼ぶことに留意すること。
【0028】アレイ220内の各行222は、一般的に
2の階乗(すなわち、2x、ここでxは正の整数)に等
しい設定寸法を有する。さらに、各行222に対して1
つのタグ232を記憶する高速タグ・メモリ230があ
る。各行のタグ232は、アレイ220内の行の位置と
共に、行222の主メモリ内のロケーションを識別す
る。さらに、各タグ232は「有効フラッグ」と呼ばれ
ることもある状態フラッグを含み、これは対応する行に
記憶されているデータが有効であるかどうかを表わす。
このことをさらに具体的にするために、以下を検討す
る。
2の階乗(すなわち、2x、ここでxは正の整数)に等
しい設定寸法を有する。さらに、各行222に対して1
つのタグ232を記憶する高速タグ・メモリ230があ
る。各行のタグ232は、アレイ220内の行の位置と
共に、行222の主メモリ内のロケーションを識別す
る。さらに、各タグ232は「有効フラッグ」と呼ばれ
ることもある状態フラッグを含み、これは対応する行に
記憶されているデータが有効であるかどうかを表わす。
このことをさらに具体的にするために、以下を検討す
る。
【0029】図2および図3(A)を参照して、主メモ
リのアドレス空間はアドレス・ビットABCDEによっ
て表わされ、ここで「E」は第1レベル・キャッシュの
行222内の各バイトすなわちワードのアドレスまたは
ロケーションを指定するのに必要なビットの組である。
ビット「CD」は、アレイ220と230に対するイン
デックスとして機能し、アクセス中のアレイ220内の
行222の位置を識別する。特定の行に対するタグ23
2はメモリの特定のブロックの値「AB」を記憶する。
したがって、このキャッシュ内の行232のロケーショ
ンは、「AB」(対応するタグから)および「CD」
(この行のインデックス値)によって識別される。
リのアドレス空間はアドレス・ビットABCDEによっ
て表わされ、ここで「E」は第1レベル・キャッシュの
行222内の各バイトすなわちワードのアドレスまたは
ロケーションを指定するのに必要なビットの組である。
ビット「CD」は、アレイ220と230に対するイン
デックスとして機能し、アクセス中のアレイ220内の
行222の位置を識別する。特定の行に対するタグ23
2はメモリの特定のブロックの値「AB」を記憶する。
したがって、このキャッシュ内の行232のロケーショ
ンは、「AB」(対応するタグから)および「CD」
(この行のインデックス値)によって識別される。
【0030】幾つかの2レベルのキャッシュの場合、第
2キャッシュ122が第1キャッシュ120よりも大き
いブッロクを有し、また第1キャッシュ120よりも多
くのブロックを有している。第2キャッシュ122の基
本的な構造には中速のメモリ・アレイ240が含まれ、
このアレイ240は1組のB2ブロックを有し、アクセ
ス時間は約100ナノ秒である。B2は、一般的に2の
階乗に等しく、B1の少なくとも2倍である。アレイ2
40内の各ブロック242は、また一般的に2の階乗に
等しい設定寸法(すなわち、所定数のバイトすなわちワ
ード)を有する。さらに、各ブロック242に対する1
つのタグ252を記憶するタグ・メモリ250が存在す
る。各々のブロックのタグ252は、アレイ240内の
ブロックの位置と共に、ブロック242の主メモリ内の
ロケーションを識別する。
2キャッシュ122が第1キャッシュ120よりも大き
いブッロクを有し、また第1キャッシュ120よりも多
くのブロックを有している。第2キャッシュ122の基
本的な構造には中速のメモリ・アレイ240が含まれ、
このアレイ240は1組のB2ブロックを有し、アクセ
ス時間は約100ナノ秒である。B2は、一般的に2の
階乗に等しく、B1の少なくとも2倍である。アレイ2
40内の各ブロック242は、また一般的に2の階乗に
等しい設定寸法(すなわち、所定数のバイトすなわちワ
ード)を有する。さらに、各ブロック242に対する1
つのタグ252を記憶するタグ・メモリ250が存在す
る。各々のブロックのタグ252は、アレイ240内の
ブロックの位置と共に、ブロック242の主メモリ内の
ロケーションを識別する。
【0031】前回と同様、主メモリのアドレス空間はア
ドレス・ビットABCDEによって表わされる。この第
2キャッシュの場合、アドレス・ビット「DE」はブロ
ック242内の各バイトすなわちワードのアドレスまた
はロケーションを指定するのに必要なビットの組であ
る。第2キャッシュ122内のブロック242は、第1
キャッシュ内のブロック222よりも大きく、したがっ
てこのシステムは、ビット「DE」によって表わされる
ように−各第2キャッシュ・ブロック内に記憶されたデ
ータをアドレスするためにより多くのアドレス・ビット
を必要とすることに留意すること。ビット「BC」は、
アレイ240と250に対するインデックスとして使用
され、アレイ240内のブロックの位置を識別する。特
定のブロツクに対するタグ252は、メモリの特定のブ
ロックの値「A」を記憶する。したがって、このキャッ
シュ内のブロック252のロケーションは「A」(対応
するタグから」および「BC」(このブロックのインデ
ックス値)によって識別される。
ドレス・ビットABCDEによって表わされる。この第
2キャッシュの場合、アドレス・ビット「DE」はブロ
ック242内の各バイトすなわちワードのアドレスまた
はロケーションを指定するのに必要なビットの組であ
る。第2キャッシュ122内のブロック242は、第1
キャッシュ内のブロック222よりも大きく、したがっ
てこのシステムは、ビット「DE」によって表わされる
ように−各第2キャッシュ・ブロック内に記憶されたデ
ータをアドレスするためにより多くのアドレス・ビット
を必要とすることに留意すること。ビット「BC」は、
アレイ240と250に対するインデックスとして使用
され、アレイ240内のブロックの位置を識別する。特
定のブロツクに対するタグ252は、メモリの特定のブ
ロックの値「A」を記憶する。したがって、このキャッ
シュ内のブロック252のロケーションは「A」(対応
するタグから」および「BC」(このブロックのインデ
ックス値)によって識別される。
【0032】このアドレス化とキャッシュ組織の構成を
より明確にするために、ここで具体例を示す。主メモリ
は64メガバイトのデータを記憶し、これはA25から
A0までの26のアドレス・ビットを必要とする。第1
キャッシュは16キロバイトのメモリであり、1024
の行を有しこれらの各々は16バイトを記憶する。この
第2キャッシュは128キロバイトのメモリであり、2
048のブロックを有し、各々64バイトを記憶する。
図3(A)を参照して、システム内のアドレス・ビット
はA25、A24、・・・A0とラベルを付けられ、A
25は最上位ビットでありA0は最下位ビットである。
アドレス・ビットのABCDEによる表示は以下の通り
である。「A」はアドレス・ビットA25〜A17を表
わし、「B」はアドレス・ビットA16〜A14を表わ
し、「C」はアドレス・ビットA13〜A6を表わし、
「D」はアドレス・ビットA5〜A4を表わし、「E」
はアドレス・ビットA3〜A0を表わす。
より明確にするために、ここで具体例を示す。主メモリ
は64メガバイトのデータを記憶し、これはA25から
A0までの26のアドレス・ビットを必要とする。第1
キャッシュは16キロバイトのメモリであり、1024
の行を有しこれらの各々は16バイトを記憶する。この
第2キャッシュは128キロバイトのメモリであり、2
048のブロックを有し、各々64バイトを記憶する。
図3(A)を参照して、システム内のアドレス・ビット
はA25、A24、・・・A0とラベルを付けられ、A
25は最上位ビットでありA0は最下位ビットである。
アドレス・ビットのABCDEによる表示は以下の通り
である。「A」はアドレス・ビットA25〜A17を表
わし、「B」はアドレス・ビットA16〜A14を表わ
し、「C」はアドレス・ビットA13〜A6を表わし、
「D」はアドレス・ビットA5〜A4を表わし、「E」
はアドレス・ビットA3〜A0を表わす。
【0033】本発明では、第1キャッシュ120は第2
キャッシュ122に記憶されたデータのサブセットを含
む。したがって、第1キャッシュ120に記憶されるデ
ータは全て第2キャッシュでもまた見出すことができ
る。
キャッシュ122に記憶されたデータのサブセットを含
む。したがって、第1キャッシュ120に記憶されるデ
ータは全て第2キャッシュでもまた見出すことができ
る。
【0034】キャッシュ120と122の通常の動作は
以下の通りである。CPU104がメモリのアクセスを
行なう場合、アクセスされるアドレスはアドレスバス2
02に現われ(is asserted)、読取り/書
き込み制御信号は制御バス206に現われる。書き込み
動作の期間中、データもまたデータバス204に現われ
る。上述のように、これらの現われたアドレスをABC
DEと表示し、第1キャッシュ120の制御ロジック2
60は「CD」アドレス・ビットを使用してタグ・アレ
イ230内にインデックスを行う。比較器262はイン
デックスを付けたタグ232の値をアドレス・ビット
「AB」と比較する。この比較が行われている間、キャ
ッシュ・アレイ220はアドレス・ビット「CDE」を
使用してアクセスされる。もし比較器262がこのタグ
232と「AB」が等しいと判定したならば、次にバッ
ファ264がイネーブルされ、キャッシュ・アレイ22
0内のアドレスされたロケーションとデータ・バス20
4との間にデータを流す。すなわち、読取り動作の期間
中キャッシュ内のアドレスされたロケーションはバス2
04に現われ、書き込み動作の期間中このバス204の
データは指定されたロケーションのキャッシュに書き込
まれる。
以下の通りである。CPU104がメモリのアクセスを
行なう場合、アクセスされるアドレスはアドレスバス2
02に現われ(is asserted)、読取り/書
き込み制御信号は制御バス206に現われる。書き込み
動作の期間中、データもまたデータバス204に現われ
る。上述のように、これらの現われたアドレスをABC
DEと表示し、第1キャッシュ120の制御ロジック2
60は「CD」アドレス・ビットを使用してタグ・アレ
イ230内にインデックスを行う。比較器262はイン
デックスを付けたタグ232の値をアドレス・ビット
「AB」と比較する。この比較が行われている間、キャ
ッシュ・アレイ220はアドレス・ビット「CDE」を
使用してアクセスされる。もし比較器262がこのタグ
232と「AB」が等しいと判定したならば、次にバッ
ファ264がイネーブルされ、キャッシュ・アレイ22
0内のアドレスされたロケーションとデータ・バス20
4との間にデータを流す。すなわち、読取り動作の期間
中キャッシュ内のアドレスされたロケーションはバス2
04に現われ、書き込み動作の期間中このバス204の
データは指定されたロケーションのキャッシュに書き込
まれる。
【0035】もし第1キャッシュ120内の比較器26
2が「ヒット」を発見しなければ、第2キャッシュ12
2はメモリ要求を満足させようと試みる。特に、第2キ
ャッシュの制御論理270は「BC」アドレス・ビット
を使用してタグ・アレイ250内にインデックスを行
う。比較器272は、インデックスされたタグ252の
値をアドレス・ビット「A」と比較する。この比較が行
われている間、キャッシュ・アレイ240はアドレス・
ビット「BCDE」を使用してアクセスされる。もし比
較器272がこのタグ252と「A」と等しいと判定す
れば、次にバッファ274がイネーブルされ、キャッシ
ュ・アレイ240内のアドレスされたロケーションとデ
ータ・バス204との間にデータを流す。
2が「ヒット」を発見しなければ、第2キャッシュ12
2はメモリ要求を満足させようと試みる。特に、第2キ
ャッシュの制御論理270は「BC」アドレス・ビット
を使用してタグ・アレイ250内にインデックスを行
う。比較器272は、インデックスされたタグ252の
値をアドレス・ビット「A」と比較する。この比較が行
われている間、キャッシュ・アレイ240はアドレス・
ビット「BCDE」を使用してアクセスされる。もし比
較器272がこのタグ252と「A」と等しいと判定す
れば、次にバッファ274がイネーブルされ、キャッシ
ュ・アレイ240内のアドレスされたロケーションとデ
ータ・バス204との間にデータを流す。
【0036】2つのキャッシュ120と122内のデー
タは両立しなければならないので、データが第1キャッ
シュ120に書き込まれている場合、第1キャッシュ内
の論理266が第2キャッシュのバッファ274をイネ
ーブルし、その結果、同じデータが第2キャッシュに記
憶されることにもまた留意すべきである。
タは両立しなければならないので、データが第1キャッ
シュ120に書き込まれている場合、第1キャッシュ内
の論理266が第2キャッシュのバッファ274をイネ
ーブルし、その結果、同じデータが第2キャッシュに記
憶されることにもまた留意すべきである。
【0037】第2キャッシュ122内の比較器272が
「ヒット」を発見しなければ、この第2キャッシュはア
クセス要求をその共有メモリ・バスのインタフェース2
80に送り、このインタフェースはCPUの要求を満足
させるように主メモリから指定されたデータを取り出
す。更に詳しくは、インタフェース280は、アドレス
・ビット「ABC」に対応するデータのブロック全体を
主メモリから取り出し、このデータをアドレスビット
「BC」の値と対応する第2キャッシュ・アレイ240
のブロック242内にロードする。このことによって、
CPUの要求を満足させるために第2レベルのキャッシ
ュ122がイネーブルされる。同時に、アドレス・ビッ
ト「CD」の値と対応する第1レベル・キャッシュ内の
行222に対するタグ入力232は無効であると表示さ
れる。
「ヒット」を発見しなければ、この第2キャッシュはア
クセス要求をその共有メモリ・バスのインタフェース2
80に送り、このインタフェースはCPUの要求を満足
させるように主メモリから指定されたデータを取り出
す。更に詳しくは、インタフェース280は、アドレス
・ビット「ABC」に対応するデータのブロック全体を
主メモリから取り出し、このデータをアドレスビット
「BC」の値と対応する第2キャッシュ・アレイ240
のブロック242内にロードする。このことによって、
CPUの要求を満足させるために第2レベルのキャッシ
ュ122がイネーブルされる。同時に、アドレス・ビッ
ト「CD」の値と対応する第1レベル・キャッシュ内の
行222に対するタグ入力232は無効であると表示さ
れる。
【0038】キャッシュ・コヒーレンス 次に、我々は、システム内の1つのプロセッサが他のプ
ロセッサによって共有されているデータを更新する場合
に何が生じるかを検討する。第2キャッシュ内のタグ・
アレイ250は各ブロック242に対して2つの状態フ
ラッグを有し、それはブロック242が有効データを含
むかどうかを示す「有効フラッグ」、およびデータの同
じブロックがシステム内の他のいずれかのプロセッサの
キャッシュ内に記憶される可能性があるかどうかを示す
「共有フラッグ」である。これらの状態フラッグを更新
するための正確な機構は本発明には関係しないが、共有
メモリ・バス112の構造は第2レベル・キャッシュの
動作に影響を与える。
ロセッサによって共有されているデータを更新する場合
に何が生じるかを検討する。第2キャッシュ内のタグ・
アレイ250は各ブロック242に対して2つの状態フ
ラッグを有し、それはブロック242が有効データを含
むかどうかを示す「有効フラッグ」、およびデータの同
じブロックがシステム内の他のいずれかのプロセッサの
キャッシュ内に記憶される可能性があるかどうかを示す
「共有フラッグ」である。これらの状態フラッグを更新
するための正確な機構は本発明には関係しないが、共有
メモリ・バス112の構造は第2レベル・キャッシュの
動作に影響を与える。
【0039】入出力プロセッサがデータをメモリに書き
込む場合、またはCPUが新しいデータを他のキャッシ
ュに記憶される可能性があると表示されているキャッシ
ュ・ブロックに書き込む場合、入出力プロセッサまたは
第2レベル・キャッシュが「書き込み命令」と1組のア
ドレス信号を共有メモリ・バス112に現わす。図3
(C)を参照して、好適な実施例ではバス112は64
ビット2進データ・バス113を有し、これはまたアド
レス信号と読取り/書き込み命令を送信することにも使
用され、共有信号線114、ダーティ(dirty)信
号線115、3本のクロック線116、仲裁バス11
7、2本のパリティ線118およびエラー訂正コードを
送信するための14本の2進線119を有する。データ
・バス113と共有線114を使用することのみが本発
明に関係している。仲裁バス117はこのバスを使用す
るための同時要求を仲裁することに使用される。クロッ
ク・バス116はバス112で送信されるデータのタイ
ミングを制御することに使用され、パリティ線118と
エラー訂正コード線119は標準パリティ信号とエラー
訂正コード信号を送信するために使用する。
込む場合、またはCPUが新しいデータを他のキャッシ
ュに記憶される可能性があると表示されているキャッシ
ュ・ブロックに書き込む場合、入出力プロセッサまたは
第2レベル・キャッシュが「書き込み命令」と1組のア
ドレス信号を共有メモリ・バス112に現わす。図3
(C)を参照して、好適な実施例ではバス112は64
ビット2進データ・バス113を有し、これはまたアド
レス信号と読取り/書き込み命令を送信することにも使
用され、共有信号線114、ダーティ(dirty)信
号線115、3本のクロック線116、仲裁バス11
7、2本のパリティ線118およびエラー訂正コードを
送信するための14本の2進線119を有する。データ
・バス113と共有線114を使用することのみが本発
明に関係している。仲裁バス117はこのバスを使用す
るための同時要求を仲裁することに使用される。クロッ
ク・バス116はバス112で送信されるデータのタイ
ミングを制御することに使用され、パリティ線118と
エラー訂正コード線119は標準パリティ信号とエラー
訂正コード信号を送信するために使用する。
【0040】64の2進データ/アドレス線113は時
間が多重化され、その結果、アドレス信号と命令信号は
最初の時間間隔の期間中に送信され、データは同じ線で
その後の時間間隔の期間中に送信される。CPUの第2
レベルのキャッシュに対するアクセスが失敗した場合、
第2レベル・キャッシュは読取り命令と指定されたアド
レスをバス112で送信する。通常、要求されたデータ
のブロックは、次に主メモリ110によってバスに送信
される。しかし、もし他のいずれかの第2レベル・キャ
ッシュが指定されたアドレス用の最も新しいデータを含
むと、その第2レベル・キャッシュはイネーブル信号を
ダーティ線115に現わし、この場合第2レベル・キャ
ッシュが主メモリの代わりに要求データを送る。
間が多重化され、その結果、アドレス信号と命令信号は
最初の時間間隔の期間中に送信され、データは同じ線で
その後の時間間隔の期間中に送信される。CPUの第2
レベルのキャッシュに対するアクセスが失敗した場合、
第2レベル・キャッシュは読取り命令と指定されたアド
レスをバス112で送信する。通常、要求されたデータ
のブロックは、次に主メモリ110によってバスに送信
される。しかし、もし他のいずれかの第2レベル・キャ
ッシュが指定されたアドレス用の最も新しいデータを含
むと、その第2レベル・キャッシュはイネーブル信号を
ダーティ線115に現わし、この場合第2レベル・キャ
ッシュが主メモリの代わりに要求データを送る。
【0041】第2キャッシュ122が線113で書き込
み命令を検出する場合、これは常に送信されたアドレス
を第2レベル・タグ・アレイ250内の対応するタグ2
52と比較する。もし比較が一致すれば、第2レベル・
キャッシュ122はイネーブル信号を共有線114に現
わし、これによって新しく更新されたデータの所有者に
対してバスによってそれを送信することを希望している
ことを示し、その結果、第2レベル・キャッシュの内容
を更新することができる。書き込み命令を発生させるシ
ステムの構成要素は、共有信号を検出しバス112でデ
ータのブロックを送信することによって応答する。
み命令を検出する場合、これは常に送信されたアドレス
を第2レベル・タグ・アレイ250内の対応するタグ2
52と比較する。もし比較が一致すれば、第2レベル・
キャッシュ122はイネーブル信号を共有線114に現
わし、これによって新しく更新されたデータの所有者に
対してバスによってそれを送信することを希望している
ことを示し、その結果、第2レベル・キャッシュの内容
を更新することができる。書き込み命令を発生させるシ
ステムの構成要素は、共有信号を検出しバス112でデ
ータのブロックを送信することによって応答する。
【0042】図2に示すシステムの場合、共有メモリ・
バス112の書き込み命令がキャッシュ論理270によ
って検出される場合、第2キャッシュ122内の論理2
76はバス・バッファ290をディスエーブルし、これ
によって、第2キャッシュ122がキャッシュのチェッ
ク動作を実行している間に、CPUがローカル・バス2
00を使用して第1キャッシュ120からデータを取り
出すことが可能になる。バス・バッファ290は通常2
本のローカル・バス200と200−1が1本として働
くようにディスエーブルされ、キャッシュのチェックの
期間中のみディスエーブルされる。
バス112の書き込み命令がキャッシュ論理270によ
って検出される場合、第2キャッシュ122内の論理2
76はバス・バッファ290をディスエーブルし、これ
によって、第2キャッシュ122がキャッシュのチェッ
ク動作を実行している間に、CPUがローカル・バス2
00を使用して第1キャッシュ120からデータを取り
出すことが可能になる。バス・バッファ290は通常2
本のローカル・バス200と200−1が1本として働
くようにディスエーブルされ、キャッシュのチェックの
期間中のみディスエーブルされる。
【0043】論理回路276は状態機械であり、バス・
バッファ290とキャッシュ・アレイ・アクセス回路2
72と274の状態を管理する。論理回路276は、ま
たCPUが第1と第2レベル・キャッシュのいずれかに
記憶されていないメモリ・ロケーションを参照する場合
に新しいデータのブロックをこれらのキャッシュにロー
ドする工程も管理する。
バッファ290とキャッシュ・アレイ・アクセス回路2
72と274の状態を管理する。論理回路276は、ま
たCPUが第1と第2レベル・キャッシュのいずれかに
記憶されていないメモリ・ロケーションを参照する場合
に新しいデータのブロックをこれらのキャッシュにロー
ドする工程も管理する。
【0044】第2キャッシュがキャッシュのチェック動
作を実行する場合、ローカル・アドレスと制御線202
−1および206−1の信号は、CPU104の代わり
に共有バス・インタフェース280によって現わされ
る。論理276は、書き込み命令(すなわち、キャッシ
ュのチェック要求)が線278で共有のバス・インタフ
ェース280から受け取られる場合、比較器272をイ
ネーブルすることに留意すること。もし指定されたアド
レスが第2キャッシュ・アレイ240内に置かれれば、
この第2レベル・キャッシュ論理270は、インタフェ
ース280を介し、バス112の共有線114にイネー
ブル信号を現わし、これによって新しいデータのブロッ
クをキャッシュ・アレイ240内に記憶させる。
作を実行する場合、ローカル・アドレスと制御線202
−1および206−1の信号は、CPU104の代わり
に共有バス・インタフェース280によって現わされ
る。論理276は、書き込み命令(すなわち、キャッシ
ュのチェック要求)が線278で共有のバス・インタフ
ェース280から受け取られる場合、比較器272をイ
ネーブルすることに留意すること。もし指定されたアド
レスが第2キャッシュ・アレイ240内に置かれれば、
この第2レベル・キャッシュ論理270は、インタフェ
ース280を介し、バス112の共有線114にイネー
ブル信号を現わし、これによって新しいデータのブロッ
クをキャッシュ・アレイ240内に記憶させる。
【0045】我々は、ここで本発明が対象としているキ
ャッシュのチェックに関係する指定されたアドレスが第
1レベル・キャッシュ・アレイ220内に置かれる場合
にのみ、第1レベル・キャッシュ120をアクセスする
という問題に到達した。この目的のために、本発明は特
別の回路300を設ける。回路300はデータのテーブ
ルを記憶する高速メモリ・アレイ302を有する。アレ
イ302は、第1レベル・キャッシュ120内の各々の
ブロック222用の入力305を有し、この入力305
は第1キャッシュ内の対応するブロック222が有効デ
ータを有するかどうかを表わす有効フラッグ304、お
よび第1キャッシュ内のブロック222が由来する第2
キャッシュ・アレイ242内のブロック242に対する
ポインタ306を含む。特に、このポインタ306は、
上述のアドレス・ビットの分割を使用している「B」ア
ドレス・ビットと等しい。
ャッシュのチェックに関係する指定されたアドレスが第
1レベル・キャッシュ・アレイ220内に置かれる場合
にのみ、第1レベル・キャッシュ120をアクセスする
という問題に到達した。この目的のために、本発明は特
別の回路300を設ける。回路300はデータのテーブ
ルを記憶する高速メモリ・アレイ302を有する。アレ
イ302は、第1レベル・キャッシュ120内の各々の
ブロック222用の入力305を有し、この入力305
は第1キャッシュ内の対応するブロック222が有効デ
ータを有するかどうかを表わす有効フラッグ304、お
よび第1キャッシュ内のブロック222が由来する第2
キャッシュ・アレイ242内のブロック242に対する
ポインタ306を含む。特に、このポインタ306は、
上述のアドレス・ビットの分割を使用している「B」ア
ドレス・ビットと等しい。
【0046】さらに、アレイ302は302−1から3
02−KまでのK並列サブテーブルとして組織され、そ
の結果、これらのポインタ306のKは同時にアクセス
され、ここでは第2レベル・キャッシュのブロックの寸
法の第1レベル・キャッシュ線の寸法に対する寸法比で
ある。例えば、第2レベク・キャッシュ内のブロック2
42が第1レベル・キャッシュ120の線222の2倍
の大きさであるならば、Kは2と等しい。図2に示すよ
うに、同時にアクセスされた入力306は全て並列サブ
テーブル内の同じ位置にある。これらの入力302は
「C」アドレス・ビットによってインデックスされる
(すなわち、「C」アドレス・ビットの可能性のある各
値に対してK個のに入力が存在する)。
02−KまでのK並列サブテーブルとして組織され、そ
の結果、これらのポインタ306のKは同時にアクセス
され、ここでは第2レベル・キャッシュのブロックの寸
法の第1レベル・キャッシュ線の寸法に対する寸法比で
ある。例えば、第2レベク・キャッシュ内のブロック2
42が第1レベル・キャッシュ120の線222の2倍
の大きさであるならば、Kは2と等しい。図2に示すよ
うに、同時にアクセスされた入力306は全て並列サブ
テーブル内の同じ位置にある。これらの入力302は
「C」アドレス・ビットによってインデックスされる
(すなわち、「C」アドレス・ビットの可能性のある各
値に対してK個のに入力が存在する)。
【0047】図3(A)を参照して上述したキャッシュ
のブロックと線の寸法を使用するならば、第2レベル・
キャッシュ内のブロックは第1レベル・キャッシュの線
の4倍の大きさであるので、Kは4と等しい。
のブロックと線の寸法を使用するならば、第2レベル・
キャッシュ内のブロックは第1レベル・キャッシュの線
の4倍の大きさであるので、Kは4と等しい。
【0048】第2レベル・キャッシュがそのブロックの
1つに新しいデータが記憶されなければならないかどう
かを判定するためにキャッシュのチェックを行う場合、
この第2レベル・キャッシュの論理300は、第1レベ
ル・キャッシュもまた更新する必要があるかどうかを同
時に判定する。もし回路300が第1レベル・キャッシ
ュを更新する必要があると判定すれば、このバス・バッ
ファ290はイネーブルされ、第1キャッシュ・アレイ
220は更新される。換言すれば、もし回路300が第
1レベル・キャッシュを更新する必要があると判定すれ
ば、アドレス・バスのアドレス信号によって判定された
ように、第1キャッシュの対応する線が有効であると表
示されるか、または第1キャッシュ・アレイ220の適
切なブロック内に更新データをロードするかのいずれか
である。もし回路300が第1キャッシュを更新する必
要がないと判定すれば、バッファ290はキャッシュの
チェックが完了するまでディスエーブルされたままであ
る。
1つに新しいデータが記憶されなければならないかどう
かを判定するためにキャッシュのチェックを行う場合、
この第2レベル・キャッシュの論理300は、第1レベ
ル・キャッシュもまた更新する必要があるかどうかを同
時に判定する。もし回路300が第1レベル・キャッシ
ュを更新する必要があると判定すれば、このバス・バッ
ファ290はイネーブルされ、第1キャッシュ・アレイ
220は更新される。換言すれば、もし回路300が第
1レベル・キャッシュを更新する必要があると判定すれ
ば、アドレス・バスのアドレス信号によって判定された
ように、第1キャッシュの対応する線が有効であると表
示されるか、または第1キャッシュ・アレイ220の適
切なブロック内に更新データをロードするかのいずれか
である。もし回路300が第1キャッシュを更新する必
要がないと判定すれば、バッファ290はキャッシュの
チェックが完了するまでディスエーブルされたままであ
る。
【0049】回路300は以下のように、動作する。先
ず、第2キャッシュ内のアドレス比較器272の出力は
論理回路276に行くことに留意すること。もし要求さ
れたアドレスが第2レベル・キャッシュ内に存在しなけ
れば、このアドレスは第1レベル・キャッシュ内には存
在することができず、他の動作は要求されない。したが
って、回路300によって発生された出力信号は無視さ
れる。ビットが第2キャッシュ内に発見された場合のみ
に、この論理回路276は回路300によって発生され
た信号を使用する。
ず、第2キャッシュ内のアドレス比較器272の出力は
論理回路276に行くことに留意すること。もし要求さ
れたアドレスが第2レベル・キャッシュ内に存在しなけ
れば、このアドレスは第1レベル・キャッシュ内には存
在することができず、他の動作は要求されない。したが
って、回路300によって発生された出力信号は無視さ
れる。ビットが第2キャッシュ内に発見された場合のみ
に、この論理回路276は回路300によって発生され
た信号を使用する。
【0050】「C」アドレス・ビットによって指定され
たアレイ302の全ての入力305がアクセスされる。
これらのK個の入力中のポインタ306の各々は、比較
器310によって「B」アドレス・ビットと比較され、
これはまた対応する入力の有効フラッグ304をチェッ
クする。全ての比較器310からの結果はORゲート3
12と接続され、これは、更新される必要のある第1レ
ベル・キャッシュ内に少なくとも1本の線が存在する場
合にのみ、イネーブル信号を出力する。ORゲート31
2からの出力信号は論理回路276に送られ、これは次
にもし第1レベル・キャッシュを更新する必要があれ
ば、バス・バッファ290をイネーブルする。
たアレイ302の全ての入力305がアクセスされる。
これらのK個の入力中のポインタ306の各々は、比較
器310によって「B」アドレス・ビットと比較され、
これはまた対応する入力の有効フラッグ304をチェッ
クする。全ての比較器310からの結果はORゲート3
12と接続され、これは、更新される必要のある第1レ
ベル・キャッシュ内に少なくとも1本の線が存在する場
合にのみ、イネーブル信号を出力する。ORゲート31
2からの出力信号は論理回路276に送られ、これは次
にもし第1レベル・キャッシュを更新する必要があれ
ば、バス・バッファ290をイネーブルする。
【0051】回路300が動作する理由は以下の通りで
ある。もし第2レベル・キャッシュが第1キャッシュよ
りもJ倍の大きさならば、与えられたいずれかの第1レ
ベル・キャッシュ・ブロック用のデータは、第2レベル
・キャッシュ内のJ個の異なるブロックのいずれかに記
憶することができる。たえば、図3(A)を参照して、
もし以下のアドレス、すなわち が第1レベル・キャッシュに記憶されていれば、それが
記憶されている第1レベル・キャッシュ・ブロック22
2のインデックス値は10001111111(すなわ
ち、「CD」アドレス・ビット)であり、それが記憶さ
れている第2レベル・キャッシュ・ブロック242のイ
ンデックス値はXXX100011111(すなわち、
「BC」アドレス・ビット)である。アレイ302内に
記憶されている対応するポインタ306は、XXX(す
なわち、「Bアドレス・ビット」)の値を有する。した
がって、XXXには8つの可能性のある値が存在するの
で、このアドレスが位置する第2レベル・キャッシュ内
に8つの可能性のあるブロックが存在する。
ある。もし第2レベル・キャッシュが第1キャッシュよ
りもJ倍の大きさならば、与えられたいずれかの第1レ
ベル・キャッシュ・ブロック用のデータは、第2レベル
・キャッシュ内のJ個の異なるブロックのいずれかに記
憶することができる。たえば、図3(A)を参照して、
もし以下のアドレス、すなわち が第1レベル・キャッシュに記憶されていれば、それが
記憶されている第1レベル・キャッシュ・ブロック22
2のインデックス値は10001111111(すなわ
ち、「CD」アドレス・ビット)であり、それが記憶さ
れている第2レベル・キャッシュ・ブロック242のイ
ンデックス値はXXX100011111(すなわち、
「BC」アドレス・ビット)である。アレイ302内に
記憶されている対応するポインタ306は、XXX(す
なわち、「Bアドレス・ビット」)の値を有する。した
がって、XXXには8つの可能性のある値が存在するの
で、このアドレスが位置する第2レベル・キャッシュ内
に8つの可能性のあるブロックが存在する。
【0052】逆の観点からこの問題を見ると、もし第2
レベル・キャッシュ内のブロックが第1レベル・キャッ
シュ内の行の寸法のK倍であるならば、第1レベル・キ
ャッシュ120内のK行と同数のデータを第2レベル・
キャッシュのブロックのいずれ1つに記憶することがで
きる。Kは2Nと等しく、こさでNは「D」アドレス・
ビットの数であることに留意すること。したがって、
「C」アドレス・ビットのいずれかの与えられた値に対
して第1レベル・キャッシュ内にK個の行が存在し、こ
れは更新された第2レベル・キャッシュ・ブロック内に
マップすることが可能であり、したがってアレイ302
内にK個のポインタが存在し、これは第1レベル・キャ
ッシュ内のいずれかの行を更新する必要があるかどうか
を判定するためにチェックされなければならない。
レベル・キャッシュ内のブロックが第1レベル・キャッ
シュ内の行の寸法のK倍であるならば、第1レベル・キ
ャッシュ120内のK行と同数のデータを第2レベル・
キャッシュのブロックのいずれ1つに記憶することがで
きる。Kは2Nと等しく、こさでNは「D」アドレス・
ビットの数であることに留意すること。したがって、
「C」アドレス・ビットのいずれかの与えられた値に対
して第1レベル・キャッシュ内にK個の行が存在し、こ
れは更新された第2レベル・キャッシュ・ブロック内に
マップすることが可能であり、したがってアレイ302
内にK個のポインタが存在し、これは第1レベル・キャ
ッシュ内のいずれかの行を更新する必要があるかどうか
を判定するためにチェックされなければならない。
【0053】速度の理由から、好適な実施例では更新さ
れた第2レベル・キャッシュ・ブロックと対応するアレ
イ302内の全ての入力は同時にチェックされ、比較器
310の数がKと等しくなることを要求し、ここでKは
第2キャッシュのブロックの寸法の第1キャッシュの行
の寸法に対する比率である。もしKが大きい(例えば、
16を超える)ならば、例えば入力のバッチをシリアル
にチェックすることによって、アレイ内のK個の入力を
シリアルにチェックすることができる。
れた第2レベル・キャッシュ・ブロックと対応するアレ
イ302内の全ての入力は同時にチェックされ、比較器
310の数がKと等しくなることを要求し、ここでKは
第2キャッシュのブロックの寸法の第1キャッシュの行
の寸法に対する比率である。もしKが大きい(例えば、
16を超える)ならば、例えば入力のバッチをシリアル
にチェックすることによって、アレイ内のK個の入力を
シリアルにチェックすることができる。
【0054】アレイ302内に記憶されるテーブルは、
第1レベル・キャッシュの内容が変化するにしたがっ
て、第2レベル・キャッシュからこのテーブルを再ロー
ドさせるという失敗、またはコンピュータ・システムの
他の部分から受け取った無効または更新のいずれかに起
因して更新される。これらの更新は第1レベル・キャッ
シュ120を再ロードするのに必要な作業と関連して第
2レベル・キャッシュ論理270によって行うことがで
き、したがってこれらのキャッシュの性能を害すること
がない。さらに、アレイ302内に記憶される情報は第
1レベル・キャッシュのタグ・アレイ230内に記憶さ
れた情報のサブセットであるので、アレイ302内に記
憶される値を計算するために余分な作業を必要としな
い。
第1レベル・キャッシュの内容が変化するにしたがっ
て、第2レベル・キャッシュからこのテーブルを再ロー
ドさせるという失敗、またはコンピュータ・システムの
他の部分から受け取った無効または更新のいずれかに起
因して更新される。これらの更新は第1レベル・キャッ
シュ120を再ロードするのに必要な作業と関連して第
2レベル・キャッシュ論理270によって行うことがで
き、したがってこれらのキャッシュの性能を害すること
がない。さらに、アレイ302内に記憶される情報は第
1レベル・キャッシュのタグ・アレイ230内に記憶さ
れた情報のサブセットであるので、アレイ302内に記
憶される値を計算するために余分な作業を必要としな
い。
【0055】図3(B)ないし図4は、第1レベル・キ
ャッシュの行の寸法が第2レベル・キャッシュのブロッ
クの寸法と等しいシステムの2レベル・キャッシュを示
す。すなわち、上で定義したようにKは1と等しい。ま
た、「D」アドレス・ビットは2つのキャッシュ・レベ
ルの間のブロックの寸法の差を表わすので、「D」アド
レス・ビットは存在しない。この好適な第2実施例で
は、行とブロックの寸法は64バイトに等しく、第1キ
ャッシュは16キロバイトの寸法を有し、第2レベル・
キャッシュは128キロバイトの寸法を有する。64ビ
ット幅のメモリ・バス112(図3(C)に示す)を使
用するならば、データのブロック全体を第2レベル・キ
ャッシュ内にロードするのに4データの送信サイクルし
か必要ではないことに留意することには興味がある。
ャッシュの行の寸法が第2レベル・キャッシュのブロッ
クの寸法と等しいシステムの2レベル・キャッシュを示
す。すなわち、上で定義したようにKは1と等しい。ま
た、「D」アドレス・ビットは2つのキャッシュ・レベ
ルの間のブロックの寸法の差を表わすので、「D」アド
レス・ビットは存在しない。この好適な第2実施例で
は、行とブロックの寸法は64バイトに等しく、第1キ
ャッシュは16キロバイトの寸法を有し、第2レベル・
キャッシュは128キロバイトの寸法を有する。64ビ
ット幅のメモリ・バス112(図3(C)に示す)を使
用するならば、データのブロック全体を第2レベル・キ
ャッシュ内にロードするのに4データの送信サイクルし
か必要ではないことに留意することには興味がある。
【0056】この好適な実施例では、第1キャッシュを
更新する必要があるかどうかを判定するためにチェック
する必要のあるのはアレイ302内の1つの入力305
のみであので、回路300−2は好適な第1実施例の回
路300よりも幾分簡単である。したがって、1つの比
較器310のみがあり、ORゲート312は存在しない
(図2参照)。他の全ての点で、本発明のこの実施例の
動作は、図2に示し上で説明した実施例と同様である。
更新する必要があるかどうかを判定するためにチェック
する必要のあるのはアレイ302内の1つの入力305
のみであので、回路300−2は好適な第1実施例の回
路300よりも幾分簡単である。したがって、1つの比
較器310のみがあり、ORゲート312は存在しない
(図2参照)。他の全ての点で、本発明のこの実施例の
動作は、図2に示し上で説明した実施例と同様である。
【0057】幾つかの具体的な実施例を参照して本発明
を説明したが、この記述は本発明を説明するものであっ
て本発明を限定するものとして解釈するべきではない。
添付の請求項によって定義されるように本発明の真の精
神と範囲から逸脱すること無く当業者によって種々の変
形が行われる。
を説明したが、この記述は本発明を説明するものであっ
て本発明を限定するものとして解釈するべきではない。
添付の請求項によって定義されるように本発明の真の精
神と範囲から逸脱すること無く当業者によって種々の変
形が行われる。
【図1】 複数のプロセッサが2レベル・キャッシュを
有する多重プロセッサ・コンピュータ・システムのブロ
ック図である。
有する多重プロセッサ・コンピュータ・システムのブロ
ック図である。
【図2】 2レベル・キャッシュの好適な第1実施例の
ブロック図である。
ブロック図である。
【図3】 図3(A)および図3(B)は、本発明の2
つの好適な実施例用のアドレス・ビットの割当を示す図
であり、図3(C)は、好適な実施例の共有メモリ・バ
スの構成要素を示す図である。
つの好適な実施例用のアドレス・ビットの割当を示す図
であり、図3(C)は、好適な実施例の共有メモリ・バ
スの構成要素を示す図である。
【図4】 2レベル・キャッシュの好適な第2実施例の
ブロック図である。
ブロック図である。
100‥‥多重プロセッサ・システム 102,104,106‥‥CPU 108‥‥入出力プロセッサ 110‥‥主メモリ 112‥‥共有メモリ・バス 113‥‥データ/アドレス+命令バス 114‥‥共有バス 115‥‥ダーティ・バス 116‥‥クロック・バス 117‥‥任意の要求バス 118‥‥パリティ・バス 119‥‥ECC 120‥‥第1レベル・キャッシュ 122‥‥第2レベル・キャッシュ 200‥‥ローカル・バス 202‥‥アドレス・バス 204‥‥データ・バス 206‥‥制御バス 220‥‥アレイ 222‥‥行 230‥‥高速タグ・メモリ 232‥‥行のタグ 240‥‥高速メモリ・アレイ 242‥‥ブロック 250‥‥タグ・メモリ 252‥‥ブロックのタグ 260‥‥第1キャッシュの制御論理 262,272,310‥‥比較器 264,274‥‥バッファ 266,276‥‥論理回路 270‥‥第2キャッシュの制御論理 280‥‥インタフェース 290‥‥バス・バッファ 300‥‥特別回路 302‥‥メモリ・アレイ 304‥‥有効フラッグ 305‥‥入力 306‥‥ポインタ 312‥‥ORゲート A0ないしA25‥‥アドレス・ビット A,B,C,D,E‥‥アドレス空間
Claims (3)
- 【請求項1】 多数のプロセッサ、上記のプロセッサと
共有バスによって接続された主メモリを有し、上記の主
メモリは予め決められたアドレス空間内の指定されたア
ドレスにデータを記憶し、上記の予め決められたアドレ
ス空間は少なくとも上記の多数のプロセッサによって部
分的に共有され、上記の共有バスは上記のプロセッサに
よってデータが記憶されているアドレスを示す信号を搬
送し、上記のプロセッサの少なくとも1つが2レベルの
キャッシュ.メモリを有するコンピュータ・システムに
おいて、上記のシステムは:上記のプロセッサと接続さ
れ、上記のプロセッサに主メモリよりも高速で上記のア
ドレス空間の部分に対してアクセスを行わせる第1レベ
ル・キャッシュ手段であって、データの行を記憶する直
接マップされる第1キャッシュ.アレイおよび上記のア
ドレス空間のいずれの部分が上記の行の各々に記憶され
たかを示す第1タグ手段を有する上記の第1レベル・キ
ャッシュ手段:上記の第1レベル・キャッシュと接続さ
れ、上記の主メモリよりも高速かつ上記の第1レベル・
キャッシュ手段よりも低速で上記のプロセッサに上記の
アドレス空間の部分に対してアクセスを行なわせる第2
レベル・キャッシュ手段であって、データのブロックを
記憶する直接マップされる第2キャッシュ・アレイおよ
び上記のアドレス空間のいずれの部分が上記のブロック
の各々に記憶されたかを示す第2タグ手段を有し、上記
の第1レベル・キャッシュ手段と比較して2倍の記憶容
量を有する第2レベル・キャッシュ手段;によって構成
され:ここで上記の直接マップされる第1キャッシュ.
アレイ中に記憶されたデータの各行はまた上記の直接マ
ップされる第2キャッシュ・アレイ中の上記のブロック
の1つに記憶され;上記の第2レベル・キャッシュ手段
は:上記の第2タグ手段と接続された上記のアドレス空
間内の指定されたアドレスのデータが上記の第2キャッ
シュ手段内に記憶されているかどうか判定し、上記の指
定されたアドレスのデータが上記の第2キャッシュ手段
に記憶されている場合にアクセス許可信号を発生するタ
グ検査手段;上記の行の中に記憶されたのと同じデータ
を記憶する上記の第2キャッシュ・アレイ内のブロック
を示す上記の第1キャッシュ・アレイ内の上記の各行に
対するポインタ値を記憶するテーブル手段;および上記
のタグ検査手段および上記のテーブル手段と接続され、
上記の指定されたアドレスの予め決められた部分を上記
のテーブル手段内に記憶された上記のポインタ値の対応
する部分とを比較し、上記の比較が一致して上記のタグ
手段がアクセス許可信号を発生する場合に第1キャッシ
ュ・ルックアップ許可信号を発生する第1キャッシュ・
ルックアップ手段;によって構成されることを特徴とす
るコンピュータ・システム。 - 【請求項2】 多数のプロセッサおよび共有バスによっ
て上記のプロセッサと接続された主メモリを有し、上記
の主メモリは予め決められたアドレス空間内の指定され
たアドレスにデータを記憶するコンピュータ・システム
内の第1プロセッサ用の2レベル・キャッシュ・メモ
リ;データの行を記憶する上記の第1プロセッサと接続
され、上記のアドレス空間のいずれの部分が上記の行の
各々の中に記憶されているかを示す第1タグ手段を有す
る直接マップされる第1キャッシュ・メモリ;データの
プロックを記憶する上記の直接マップされる第1キャッ
シュ・メモリと接続され、上記のアドレス空間のいずれ
の部分が上記のブロックの各々の中に記憶されているか
を示す第2タグ手段を有する直接マップされる第2キャ
ッシュ・メモリ;およびここで上記の直接マップされる
第1キャッシュ・メモリ内に記憶されたデータの各々の
行はまた上記の直接マップされる第2キャッシュ・メモ
リ内の上記のブロックの1つに記憶される上記の直接マ
ップされる第2キャッシュ・メモリは:上記の第2タグ
手段と接続され、指定されたアドレスのデータが上記の
第2キャッシュ手段内に記憶れる場合、アクセス許可信
号を発生するタグ検査手段;上記の行の中に記憶された
のと同じデータを記憶する上記の直接マップされる第2
キャッシュ・メモリ内のブロックを示す上記の直接マッ
プされる第1キャッシュ・メモリ内の上記の各行に対す
るポインタ値を記憶するテーブル手段;および上記のタ
グ検査手段および上記のテーブル手段と接続され、上記
の指定されたアドレスの予め決められた部分を上記のテ
ーブル手段内に記憶された上記のポインタ値の対応する
部分とを比較し、上記の比較が一致して上記のタグ手段
がアクセス許可信号を発生する場合に第1キャッシュ・
ルックアップ許可信号を発生する第1キャッシュ・ルッ
クアップ手段; - 【請求項3】 多数のプロセッサおよび共有バスによっ
て上記のプロセッサと接続された主メモリを有し、上記
の主メモリは予め決められたアドレス空間内の指定され
たアドレスにデータを記憶するコンピュータ・システム
内の第1プロセッサ用の2レベル・キャッシュ・メモリ
動作させる方法において、上記の方法は:上記の第1プ
ロセッサと接続され、上記のアドレス空間のいずれの部
分が上記の行内に記憶されているかを示す上記の行の各
々に対する行タグを記憶する直接マップされる第1キャ
ッシュ・メモリ内にデータの行を記憶するステップ;上
記の直接マップされる第1キャッシュ・メモリと接続さ
れ、上記のアドレス空間のいずれの部分が上記のブロッ
ク内に記憶されているかを示す上記のブロックの各々に
対するブロック・タグを記憶する直接マップされる第2
キャッシュ・メモリ内にデータのブロックを記憶するス
テップであって、上記の直接マップされる第1キャッシ
ュ・メモリに記憶されているデータの各行は上記の直接
マップされる第2キャッシュ・メモリ内の上記のブロッ
クの1つにもまた記憶される上記のステップ;指定され
たアドレスの上記のブロック・タグ・データが上記の第
2キャッシュ手段内に記憶される場合、第2キャッシュ
・アクセス許可信号を発生するステップ;上記の行の中
に記憶されたのと同じデータを記憶する上記の直接マッ
プされる第2キャッシュ・メモリ内のブロックを示す上
記の直接マップされる第1キャッシュ・メモリ内の上記
の各行に対するポインタ値を記憶するステップ;および
上記の指定されたアドレスの予め決められた部分を上記
のポインタ値の対応する部分と比較し、上記の比較が一
致し、第2キャッシュ・アクセス許可信号を発生する場
合、第1キャッシュ・ルックアップ許可信号を発生する
ステップ;によって構成されることを特徴とする方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US454922 | 1982-12-30 | ||
| US07/454,922 US5136700A (en) | 1989-12-22 | 1989-12-22 | Apparatus and method for reducing interference in two-level cache memories |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH05127992A true JPH05127992A (ja) | 1993-05-25 |
| JPH0797354B2 JPH0797354B2 (ja) | 1995-10-18 |
Family
ID=23806623
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2418243A Expired - Lifetime JPH0797354B2 (ja) | 1989-12-22 | 1990-12-25 | 2レベルのキャッシュ・メモリ及びそれを操作するキャッシュ・コヒーレンスの方法 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US5136700A (ja) |
| EP (1) | EP0434250B1 (ja) |
| JP (1) | JPH0797354B2 (ja) |
| KR (1) | KR100190351B1 (ja) |
| DE (1) | DE69031978T2 (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7461207B2 (en) | 2002-05-06 | 2008-12-02 | Sony Computer Entertainment Inc. | Methods and apparatus for controlling hierarchical cache memory |
| JP2024029007A (ja) * | 2018-06-18 | 2024-03-05 | エフ・エル・シィ・テクノロジー・グループ・インコーポレイテッド | 記憶システムをメインメモリとして使用するための方法および装置 |
Families Citing this family (63)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5307477A (en) * | 1989-12-01 | 1994-04-26 | Mips Computer Systems, Inc. | Two-level cache memory system |
| JPH03240127A (ja) * | 1990-02-17 | 1991-10-25 | Hitachi Maxell Ltd | プログラム制御システム |
| JPH05108484A (ja) * | 1990-06-07 | 1993-04-30 | Intel Corp | キヤツシユメモリ |
| CA2044689A1 (en) * | 1990-06-15 | 1991-12-16 | Roger E. Tipley | Multilevel inclusion in multilevel cache hierarchies |
| JP2708943B2 (ja) * | 1990-08-08 | 1998-02-04 | 三菱電機株式会社 | キャッシュメモリ制御装置 |
| GB2256512B (en) * | 1991-06-04 | 1995-03-15 | Intel Corp | Second level cache controller unit and system |
| US5386540A (en) * | 1991-09-18 | 1995-01-31 | Ncr Corporation | Method and apparatus for transferring data within a computer using a burst sequence which includes modified bytes and a minimum number of unmodified bytes |
| EP0533373A3 (en) * | 1991-09-18 | 1993-04-21 | Ncr International Inc. | Computer system having cache memory |
| US5649154A (en) * | 1992-02-27 | 1997-07-15 | Hewlett-Packard Company | Cache memory system having secondary cache integrated with primary cache for use with VLSI circuits |
| US5457793A (en) * | 1992-03-30 | 1995-10-10 | International Business Machines Corporation | Software cache management of a shared electronic store in a supplex |
| US5319766A (en) * | 1992-04-24 | 1994-06-07 | Digital Equipment Corporation | Duplicate tag store for a processor having primary and backup cache memories in a multiprocessor computer system |
| DE69323790T2 (de) * | 1992-04-29 | 1999-10-07 | Sun Microsystems, Inc. | Verfahren und Vorrichtung für mehreren ausstehende Operationen in einem cachespeicherkohärenten Multiprozessorsystem |
| JPH05324468A (ja) * | 1992-05-21 | 1993-12-07 | Fujitsu Ltd | 階層化キャッシュメモリ |
| JPH05342101A (ja) * | 1992-06-12 | 1993-12-24 | Fujitsu Ltd | 階層キャッシュ・メモリ |
| US5522058A (en) * | 1992-08-11 | 1996-05-28 | Kabushiki Kaisha Toshiba | Distributed shared-memory multiprocessor system with reduced traffic on shared bus |
| US5355471A (en) * | 1992-08-14 | 1994-10-11 | Pyramid Technology Corporation | Multiprocessor cache coherency tester that exercises the coherency logic exhaustively and also detects errors in a processor using an automatic CPU sort |
| US5511226A (en) * | 1992-08-25 | 1996-04-23 | Intel Corporation | System for generating snoop addresses and conditionally generating source addresses whenever there is no snoop hit, the source addresses lagging behind the corresponding snoop addresses |
| US5509135A (en) * | 1992-09-25 | 1996-04-16 | Digital Equipment Corporation | Multi-index multi-way set-associative cache |
| JP2541771B2 (ja) * | 1993-01-29 | 1996-10-09 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 原子的メモリ参照方法及びシステム |
| US5689679A (en) * | 1993-04-28 | 1997-11-18 | Digital Equipment Corporation | Memory system and method for selective multi-level caching using a cache level code |
| US5640531A (en) * | 1993-06-22 | 1997-06-17 | Unisys Corporation | Enhanced computer operational system using auxiliary mini-cache for enhancement to general cache |
| FR2707777B1 (fr) * | 1993-07-15 | 1995-08-18 | Bull Sa | Ensemble informatique à mémoire partagée. |
| FR2707774B1 (fr) * | 1993-07-15 | 1995-08-18 | Bull Sa | Procédé de gestion cohérente des échanges entre des niveaux d'une hiérarchie de mémoires à au moins trois niveaux. |
| FR2707776B1 (fr) | 1993-07-15 | 1995-08-18 | Bull Sa | Procédé de gestion de mémoires d'un système informatique, système informatique mémoire et support d'enregistrement mettant en Óoeuvre le procédé. |
| FR2707778B1 (fr) * | 1993-07-15 | 1995-08-18 | Bull Sa | NÓoeud de processeurs. |
| JPH0784881A (ja) * | 1993-09-13 | 1995-03-31 | Mitsubishi Electric Corp | キャッシュメモリ |
| US5809525A (en) * | 1993-09-17 | 1998-09-15 | International Business Machines Corporation | Multi-level computer cache system providing plural cache controllers associated with memory address ranges and having cache directories |
| JP2566733B2 (ja) * | 1993-12-09 | 1996-12-25 | コナミ株式会社 | Lanシステムのデータ相互伝送方法 |
| US5572704A (en) * | 1993-12-15 | 1996-11-05 | Silicon Graphics, Inc. | System and method for controlling split-level caches in a multi-processor system including data loss and deadlock prevention schemes |
| US6088768A (en) * | 1993-12-28 | 2000-07-11 | International Business Machines Corporation | Method and system for maintaining cache coherence in a multiprocessor-multicache environment having unordered communication |
| US5832534A (en) * | 1994-01-04 | 1998-11-03 | Intel Corporation | Method and apparatus for maintaining cache coherency using a single controller for multiple cache memories |
| US6049851A (en) * | 1994-02-14 | 2000-04-11 | Hewlett-Packard Company | Method and apparatus for checking cache coherency in a computer architecture |
| US5561779A (en) * | 1994-05-04 | 1996-10-01 | Compaq Computer Corporation | Processor board having a second level writeback cache system and a third level writethrough cache system which stores exclusive state information for use in a multiprocessor computer system |
| US5551001A (en) * | 1994-06-29 | 1996-08-27 | Exponential Technology, Inc. | Master-slave cache system for instruction and data cache memories |
| US5644752A (en) * | 1994-06-29 | 1997-07-01 | Exponential Technology, Inc. | Combined store queue for a master-slave cache system |
| US5692152A (en) * | 1994-06-29 | 1997-11-25 | Exponential Technology, Inc. | Master-slave cache system with de-coupled data and tag pipelines and loop-back |
| US5577227A (en) * | 1994-08-04 | 1996-11-19 | Finnell; James S. | Method for decreasing penalty resulting from a cache miss in multi-level cache system |
| US5813031A (en) * | 1994-09-21 | 1998-09-22 | Industrial Technology Research Institute | Caching tag for a large scale cache computer memory system |
| US5640534A (en) * | 1994-10-05 | 1997-06-17 | International Business Machines Corporation | Method and system for concurrent access in a data cache array utilizing multiple match line selection paths |
| US6047357A (en) * | 1995-01-27 | 2000-04-04 | Digital Equipment Corporation | High speed method for maintaining cache coherency in a multi-level, set associative cache hierarchy |
| US5850534A (en) * | 1995-06-05 | 1998-12-15 | Advanced Micro Devices, Inc. | Method and apparatus for reducing cache snooping overhead in a multilevel cache system |
| US5740400A (en) * | 1995-06-05 | 1998-04-14 | Advanced Micro Devices Inc. | Reducing cache snooping overhead in a multilevel cache system with multiple bus masters and a shared level two cache by using an inclusion field |
| US5740399A (en) * | 1995-08-23 | 1998-04-14 | International Business Machines Corporation | Modified L1/L2 cache inclusion for aggressive prefetch |
| US5758119A (en) * | 1995-08-23 | 1998-05-26 | International Business Machines Corp. | System and method for indicating that a processor has prefetched data into a primary cache and not into a secondary cache |
| US6223260B1 (en) * | 1996-01-25 | 2001-04-24 | Unisys Corporation | Multi-bus data processing system in which all data words in high level cache memories have any one of four states and all data words in low level cache memories have any one of three states |
| US6070233A (en) * | 1996-01-26 | 2000-05-30 | Unisys Corporation | Processor bus traffic optimization system for multi-level cache utilizing reflection status bit to indicate data inclusion in higher level cache |
| US5802563A (en) * | 1996-07-01 | 1998-09-01 | Sun Microsystems, Inc. | Efficient storage of data in computer system with multiple cache levels |
| US6065097A (en) * | 1996-08-29 | 2000-05-16 | Sun Microsystems, Inc. | Apparatus and method for sharing a unified memory bus between external cache memory and primary memory |
| US5752261A (en) * | 1996-11-07 | 1998-05-12 | Ncr Corporation | Method and apparatus for detecting thrashing in a cache memory |
| US6202125B1 (en) | 1996-11-25 | 2001-03-13 | Intel Corporation | Processor-cache protocol using simple commands to implement a range of cache configurations |
| US6021261A (en) * | 1996-12-05 | 2000-02-01 | International Business Machines Corporation | Method and system for testing a multiprocessor data processing system utilizing a plurality of event tracers |
| US6122711A (en) | 1997-01-07 | 2000-09-19 | Unisys Corporation | Method of and apparatus for store-in second level cache flush |
| US5987577A (en) * | 1997-04-24 | 1999-11-16 | International Business Machines | Dual word enable method and apparatus for memory arrays |
| US6209072B1 (en) | 1997-05-06 | 2001-03-27 | Intel Corporation | Source synchronous interface between master and slave using a deskew latch |
| US6000015A (en) * | 1997-09-16 | 1999-12-07 | Unisys Corporation | Processor bus traffic optimization system for multi-level cache utilizing reflection status bit to indicate data inclusion in a higher level cache |
| US6122709A (en) * | 1997-12-19 | 2000-09-19 | Sun Microsystems, Inc. | Cache with reduced tag information storage |
| KR100272165B1 (ko) * | 1998-05-20 | 2000-11-15 | 윤종용 | 캐쉬 메모리 시스템 및 그의 운영 방법 |
| US7013305B2 (en) | 2001-10-01 | 2006-03-14 | International Business Machines Corporation | Managing the state of coupling facility structures, detecting by one or more systems coupled to the coupling facility, the suspended state of the duplexed command, detecting being independent of message exchange |
| KR100344065B1 (ko) * | 2000-02-15 | 2002-07-24 | 전주식 | 다단계 캐시 구조의 공유 메모리 다중 프로세서 장치 |
| US7412569B2 (en) * | 2003-04-10 | 2008-08-12 | Intel Corporation | System and method to track changes in memory |
| CN104123240B (zh) | 2008-01-31 | 2017-07-28 | 甲骨文国际公司 | 用于事务缓存的系统和方法 |
| US8935485B2 (en) | 2011-08-08 | 2015-01-13 | Arm Limited | Snoop filter and non-inclusive shared cache memory |
| US8914615B2 (en) | 2011-12-02 | 2014-12-16 | Arm Limited | Mapping same logical register specifier for different instruction sets with divergent association to architectural register file using common address format |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2344094A1 (fr) * | 1976-03-10 | 1977-10-07 | Cii | Systeme de gestion coherente des echanges entre deux niveaux contigus d'une hierarchie de memoires |
| US4464712A (en) * | 1981-07-06 | 1984-08-07 | International Business Machines Corporation | Second level cache replacement method and apparatus |
| US4442487A (en) * | 1981-12-31 | 1984-04-10 | International Business Machines Corporation | Three level memory hierarchy using write and share flags |
| US4807110A (en) * | 1984-04-06 | 1989-02-21 | International Business Machines Corporation | Prefetching system for a cache having a second directory for sequentially accessed blocks |
| US4823259A (en) * | 1984-06-29 | 1989-04-18 | International Business Machines Corporation | High speed buffer store arrangement for quick wide transfer of data |
| US4755930A (en) * | 1985-06-27 | 1988-07-05 | Encore Computer Corporation | Hierarchical cache memory system and method |
| US4797814A (en) * | 1986-05-01 | 1989-01-10 | International Business Machines Corporation | Variable address mode cache |
| FR2609195A1 (fr) * | 1986-12-31 | 1988-07-01 | Thomson Csf | Procede de gestion d'antememoires associees a des processeurs dans une architecture multiprocesseur a bus unique et systeme de traitement de donnees fonctionnant suivant ce procede |
| US4831622A (en) * | 1987-12-22 | 1989-05-16 | Honeywell Bull Inc. | Apparatus for forcing a reload from main memory upon cache memory error |
| US5023776A (en) * | 1988-02-22 | 1991-06-11 | International Business Machines Corp. | Store queue for a tightly coupled multiple processor configuration with two-level cache buffer storage |
-
1989
- 1989-12-22 US US07/454,922 patent/US5136700A/en not_active Expired - Lifetime
-
1990
- 1990-11-30 EP EP90313060A patent/EP0434250B1/en not_active Expired - Lifetime
- 1990-11-30 DE DE69031978T patent/DE69031978T2/de not_active Expired - Fee Related
- 1990-12-21 KR KR1019900021312A patent/KR100190351B1/ko not_active Expired - Fee Related
- 1990-12-25 JP JP2418243A patent/JPH0797354B2/ja not_active Expired - Lifetime
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7461207B2 (en) | 2002-05-06 | 2008-12-02 | Sony Computer Entertainment Inc. | Methods and apparatus for controlling hierarchical cache memory |
| US7870340B2 (en) | 2002-05-06 | 2011-01-11 | Sony Computer Entertainment Inc. | Methods and apparatus for controlling hierarchical cache memory |
| JP2024029007A (ja) * | 2018-06-18 | 2024-03-05 | エフ・エル・シィ・テクノロジー・グループ・インコーポレイテッド | 記憶システムをメインメモリとして使用するための方法および装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| JPH0797354B2 (ja) | 1995-10-18 |
| EP0434250A2 (en) | 1991-06-26 |
| DE69031978D1 (de) | 1998-02-26 |
| EP0434250A3 (en) | 1992-01-08 |
| KR100190351B1 (ko) | 1999-06-01 |
| EP0434250B1 (en) | 1998-01-21 |
| DE69031978T2 (de) | 1998-07-09 |
| US5136700A (en) | 1992-08-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH05127992A (ja) | 2レベルのキヤツシユ・メモリ内の干渉を低減する装置と方法 | |
| US4768148A (en) | Read in process memory apparatus | |
| US5586294A (en) | Method for increased performance from a memory stream buffer by eliminating read-modify-write streams from history buffer | |
| US6366984B1 (en) | Write combining buffer that supports snoop request | |
| US5388247A (en) | History buffer control to reduce unnecessary allocations in a memory stream buffer | |
| US5555392A (en) | Method and apparatus for a line based non-blocking data cache | |
| US6272579B1 (en) | Microprocessor architecture capable of supporting multiple heterogeneous processors | |
| US4928225A (en) | Coherent cache structures and methods | |
| EP0407119B1 (en) | Apparatus and method for reading, writing and refreshing memory with direct virtual or physical access | |
| EP0435475B1 (en) | High-performance frame buffer and cache memory system | |
| US5249284A (en) | Method and system for maintaining data coherency between main and cache memories | |
| EP0743601A2 (en) | A system and method for improving cache performance in a multiprocessing system | |
| JPH0253813B2 (ja) | ||
| JP2002163148A (ja) | キャッシュメモリー付マルチ処理システム | |
| US6332179B1 (en) | Allocation for back-to-back misses in a directory based cache | |
| US5590310A (en) | Method and structure for data integrity in a multiple level cache system | |
| JPH08185355A (ja) | データメモリおよびその動作方法 | |
| US5161219A (en) | Computer system with input/output cache | |
| US5479629A (en) | Method and apparatus for translation request buffer and requestor table for minimizing the number of accesses to the same address | |
| US5553270A (en) | Apparatus for providing improved memory access in page mode access systems with pipelined cache access and main memory address replay | |
| JPH0695972A (ja) | ディジタルコンピュータシステム | |
| JPH04336641A (ja) | 処理システムにおける使用のためのデータキャッシュおよび方法 | |
| US6480940B1 (en) | Method of controlling cache memory in multiprocessor system and the multiprocessor system based on detection of predetermined software module | |
| JPH1091521A (ja) | 二重ディレクトリー仮想キャッシュ及びその制御方法 | |
| JPH1185681A (ja) | データ処理システム |