JPH10214229A - コンピュータ・システム中でキャッシュされるべきデータを選択する方法,コンピュータ・システム,及びコンピュータ・システム用キャッシュ化装置 - Google Patents
コンピュータ・システム中でキャッシュされるべきデータを選択する方法,コンピュータ・システム,及びコンピュータ・システム用キャッシュ化装置Info
- Publication number
- JPH10214229A JPH10214229A JP9184600A JP18460097A JPH10214229A JP H10214229 A JPH10214229 A JP H10214229A JP 9184600 A JP9184600 A JP 9184600A JP 18460097 A JP18460097 A JP 18460097A JP H10214229 A JPH10214229 A JP H10214229A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- data
- subsystem
- computer system
- miss
- 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; 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/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- 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/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
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)
- Multi Processors (AREA)
Abstract
システム中でキャッシュ・メモリ空間の割当てを最適に
するキャッシュ化用データ構造を選択する効率の良い機
構が必要である。 【解決手段】 避けられ得るキャッシュ・ミスである過
剰なキャッシュ・ミスと決定する為に、種々のプロセッ
サによるデータのリード/ライト・リクエストを追跡
し、テーブル中でのリード/ライト・リクエストの記録
をストアする。
Description
システムのキャッシュ、特にコンピュータ・システムの
キャッシュ・メモリ空間を効率良く割当てることに関す
るものである。
な第2レベルのキャッシュを有するマルチレベルのキャ
ッシュ・コンピュータ・システムの簡単なキャッシュ空
間割当て技術では、全てのデータ構造が両方のレベルの
キャッシュに自動的にキャッシュされる。もしデータ構
造のサイズがより小さい低レベルのキャッシュよりも大
きければ、即ちデータ構造が低レベルのキャッシュに合
わないなら、データ構造は低レベルのキャッシュから置
き換えられる。もしデータ構造がより大きい高レベルの
キャッシュよりも小さいならば、データ構造の内容の大
部分は高レベルのキャッシュにとどまる。
にアクセスされるが、他のデータ構造は1回しかアクセ
スされないということがある。そして幾らかの統計分析
とデータ構造を所有するコンピュータ・プログラムの知
識との少なくとも一方無しに特定の構造への将来のアク
セスを予測するのは容易でない。例えば、コンピュータ
・プログラムは、アレイの各エレメントをアクセスする
ことにより、大きいアレイを使用するかもしれない。各
エレメントは、一時変数を含むかなり複雑な計算に使用
される。この例では、大きなアレイの全エレメントをキ
ャッシュ化することは計算速度を実質的に速めない。対
照的に、一時変数をキャッシュ化するとプログラムの実
行を速めることになる。
間を割当てるための上述した方法は簡単であるが、この
方法はデータ構造のサイズだけに基づき、ひいてはデー
タ構造の相当数が不必要にキャッシュされるので効率が
悪い。過剰なキャッシュ化は、他の有用なデータ構造を
早目に元の場所に戻させる(置き換える)、即ち後続の
アクセス前にキャッシュから追い出すことになる。
無限に大きくないので、キャッシュの使用を最大限にす
ると共にデータへの全アクセス時間を最短にするために
は制限されたキャッシュ・リソースを効率良く割当てる
必要がある。従って、マルチレベルのキャッシュ・コン
ピュータ・システム中でキャッシュ・メモリ空間の割当
てを最適にするキャッシュ化用データ構造を選択するた
めの効率の良い機構の必要性がある。
を有するユニプロセッサとマルチプロセッサの両方のコ
ンピュータ・システム用の効率の良いキャッシュ割当て
技術を提供する。
ャッシュ・ミスが検出された時に、そのキャッシュ・ミ
スが“避けられ得た”ものかどうかが決定される。換言
すれば、もしデータが以前にキャッシュされてしかもキ
ャッシュ中にまだ残っていたなら、それでも現在のキャ
ッシュ・ミスが起こったかどうかが決定される。
ルチプロセッサ・システム中での避けられ得るキャッシ
ュ・ミスの一例は、過剰なキャッシュ・ミスである。過
剰なキャッシュ・ミスは、容量ミスかコンフリクト・ミ
スである。容量ミスはキャッシュのサイズ不足で起こ
る。コンフリクト・ミスはキャッシュの結合性の深さ不
足で起こる。過剰なキャッシュ・ミスを決定するには、
種々のプロセッサによるデータのリード/ライト・リク
エストを追跡すること、及びテーブル又はリンク済みリ
スト中でのリード/ライト・リクエストの記録をストア
することが含まれる。例えば、データ構造の最後のライ
タの識別を追跡すると、現在のキャッシュ・ミスよりも
以前にデータが置き換えられなかったら、現在のキャッ
シュ・ミスが避けられたかどうかについての指示が与え
られる。
は、唯一のプロセッサがキャッシュへアクセスするだけ
なので、避けられ得るキャッシュ・ミスは、以前にアク
セスされたデータ、即ち現在のキャッシュ・ミス以前に
キャッシュされて置き換えられたデータに適用される。
ュ・ミスが起こった後でだけデータはキャッシュされ
る。アクセスする毎にの代わりに、少なくとも1つの避
けられ得るキャッシュ・ミスの後でだけキャッシュ化す
ることにより、キャッシュ空間を極めて効率の良い仕方
で割当てることができ、それによってキャッシュ・ミス
のせいで起こったデータ・フェッチの数を最少にする。
これは、データが以前に少なくとも2回アクセスされた
ならば、データが再びアクセスされる統計的な見込みが
劇的に増大するためである。
によっては、ディスプレースされた(displaced )デー
タを捨てる前に、そのディスプレースされたデータを置
き換えること、即ちデータを主メモリ/オーナ・システ
ムへライトバックすることが必要になるかもしれない。
ムの目的、特徴及び利点は、以下の説明から明らかにな
ろう。以下の説明中の符号は発明を完全に理解する為に
付けた。符号を付けたものの中には、コンピュータ・シ
ステム内でキャッシュ・メモリ空間を割当てる効率の良
い方法の実施を支援するための機能ブロック及び例示的
なキャッシュ・アーキテクチャがある。加えて、マルチ
プロセッサ・コンピュータ・システムの分散型キャッシ
ュのための特定のキャッシュ割当て方法についてこの発
明を説明するが、広範囲のキャッシュ及びコンピュータ
のアーキテクチャにこの発明を適用できる。なお、この
発明を必要以上に不明瞭にしないために周知の回路や構
成は詳しく説明しない。
化されたコンピュータ・システム用の共有主記憶アドレ
ス空間及びコヒーレントなキャッシュ化装置を有するハ
イブリッド・キャッシュオンリ・メモリ・アーキテクチ
ャ/非一様メモリ・アーキテクチャ(COMA/NUM
A)が開示されており、上述したネットワーク化された
コンピュータ・システムはこの発明を実施するための適
当な例示的ハードウェア環境を提供する。
/NUMAコンピュータ・システム100を示すブロッ
ク図である。このコンピュータ・システム100は、グ
ローバル・インターコネクト190を介して互いに結合
された複数のサブシステム110,120,…180を
含む。各サブシステムには特有のネットワーク・ノード
・アドレスが割当てられる。各サブシステムは、1個以
上のプロセッサ、対応する数のメモリ管理ユニット(M
MU)及び第2レベルのハイブリッド・キャッシュ(L
2$)、COMAキャッシュ/メモリ、グローバル・イ
ンターフェイス、第3レベルのキャッシュ(L3$)及
びローカル・インターコネクトを含む。例えば、サブシ
ステム110はプロセッサ111a,111b,…11
1i,MMU112a,112b,…112i,L2$
113a,113b,…113i,COMAキャッシュ
/メモリ114、グローバル・インターフェイス11
5,L3$118,及びローカル・インターコネクト1
19を含む。各プロセッサ111a,111b,…11
1iは第1レベルの任意でコンパクトなキャッシュを含
み得る。
ーレンス方法を支持するために、サブシステム110,
120,…180は、グローバル・インターフェイス1
15,125,…185とそれぞれ結合されたディレク
トリ116,126,…186も含む。COMAキャッ
シュ/メモリ114,124,…184のどれかにある
“ホーム”ロケーションから発するデータは、コンピュ
ータ・システム100のアトラクション・メモリ(A
M)中で複製される。例えば、COMAモードでは、サ
ブシステムのキャッシュはCOMAキャッシュ/メモリ
114、124、...184とL2$113a...
113i、123a...123i、183a...1
83iの双方を含む。そして“ホーム”ロケーションが
サブシステム110のキャッシュ・メモリ114にある
データは、キャッシュ・メモリ124,…184のうち
の1個又は2個以上にて複製されて良く、且つ又複数の
キャッシュL2$113a…113i,123a…12
3i,及び183a…183iのうちの1個又は2個以
上にて複製されても良い。逆に、NUMAモードでは、
サブシステムのキャッシュはL2$113a…113
i,123a…123i,及び183a…183iを含
む。そして“ホーム”ロケーションがサブシステム11
0のキャッシュ・メモリ114中にあるデータは、複数
のL2$113a…113i,123a…123i,及
び183a…183iのうちの1個又は2個以上にて、
そしてL3$118にて複製されてよい。
UMAコンピュータ・システム100で実施されたよう
なこの発明の一実施形態では、データの“ホーム”ロケ
ーションはサブシステム120のCOMAキャッシュ/
メモリ124中にある。即ちサブシステム120はデー
タのホーム及びオーナの両方のサブシステムである。C
OMAキャッシュ・メモリ114と第2レベルのハイブ
リッド・キャッシュ(L2$)113a,113b,…
113iとの少なくとも一方に空間を割当てることによ
り、1つ又は2つ以上のリクエスト中のサブシステムの
アトラクション・メモリ(AM)空間例えばリクエスト
中のサブシステム110のAM空間にデータのコピーも
ストアできる。これに関連して、本願出願人の先行出願
である1995年12月22日付け出願の出願番号08
/577,283(整理番号P1003)、発明者ハガ
ースタン(Hagersten)等、発明の名称「ハイ
ブリッドNUMAコマ・キャッシュ化装置及び複数のキ
ャッシ化モードを選択する方法」を参照されたい。又、
1995年12月22日付け出願の出願番号08/57
5,787(整理番号P1004)、発明者ウッド(W
ood)等、発明の名称「ハイブリッドNUMAコマ・
キャッシュ化装置及び複数のキャッシュ化モードを選択
する方法」も参照されたい。これら出願には、ハイブリ
ッドCOMA/NUMAアーキテクチャ及びハイブリッ
ド・キャッシュ・アーキテクチャを開発する方法が述べ
られている。
ータ・システム100全体に亘るホーム・ページの現存
するコピーのマスター記録を維持することに対して責任
がある。その上、それぞれのAMディレクトリ例えばデ
ィレクトリ116及び186に関連した複数のメモリ・
タグ(MTAG)は、4つの例示的な状態のうちの1つ
を使用してリクエスト中の各サブシステム内のローカル
・コピーの状態を追跡する。無効(“I”)状態は、特
定のサブシステムが対象となるデータ・ラインの(キャ
ッシュされた)コピーを持たないことを示す。共有した
(“S”)状態は、そのサブシステム及び他の幾つかの
サブシステムが対象となるデータ・ラインの共有した
(キャッシュされた)コピーを有することを示す。所有
した(“O”)状態は、そのサブシステム及び他の幾つ
かのサブシステムが対象となるデータ・ラインの(キャ
ッシュされた)コピーを有することを示す。Oコピーを
持つサブシステムは、置き換えの時にライトバックする
ことを必要とされる。変更した(“M”)状態は、サブ
システムが対象となるデータ・ラインの(キャッシュさ
れた)コピーだけを有する、即ちサブシステムがデータ
・ラインの唯一のオーナであり、他のサブシステムにS
コピーが無いことを示す。
Aキャッシュ/メモリ114,124,…184は第3
レベルのキャッシュL3$118,128,…188か
ら隔てられており、そしてプロセッサ111a,111
b,…111i,121a,121b,…121i,及
び181a,181b,…181iの各々は、第1レベ
ルの内部キャッシュ(L1$)(図1には示さない)を
含む。
L2$の間には内包が維持されるが、L2$と第3レベ
ルのキャッシュの間には内包を維持する必要が無い。換
言すれば、L1$にあるデータはそれぞれのL2$にも
あるが、L1$又はL2$にあるデータは必ずしもL3
$にある必要は無い。従って、L2$中のデータのキャ
ッシュ・ラインに空間が割当てられようとも、L3$は
データのキャッシュ・ライン用に割当てなくても良い。
・システム100に実施されたようなこの発明の一実施
形態を示すフローチャート200である。
データ構造がハイブリッドCOMA/NUMA環境内の
リクエスト中のサブシステム110のL3$118にス
トアされるべきかストアされるべきでないかを決定する
のに使用される。しかしながら、この選択方法は、全て
のレベルのキャッシュにも様々なキャッシュ及びシステ
ムのアーキテクチャにも適用できると理解される。例え
ば、L3$及びCOMAキャッシュが以下の説明中では
分離型キャッシュとして一緒に存在するが、この発明
は、NUMAオンリ(COMAキャッシュ114無し)
にも、もっと汎用のL3$有りのCOMAオンリ(NU
MAキャッシュ化モード無し)にも、又はL1$と一緒
に存在するL2$にも適用できる。
セッサ111aがデータをリクエストする時に、データ
のサーチはL2$113aで、次にL3$118で行わ
れる(ステップ210)。もしリクエスト中のサブシス
テム110内でデータが見い出されないなら、即ちキャ
ッシュ・ミスがサブシステム110で検出されるなら、
ホーム・サブシステム120にリクエストされてデータ
をフェッチする(ステップ220)。本出願人による上
述した先行出願である出願番号08/577,283
(整理番号P1003)には、ホーム・サブシステムの
ディレクトリに最初に割込むことによってオーナ・サブ
システムからデータがどのようにしてフェッチされるか
が開示されている。
ャッシュ・ミスが“避けられ得る”キャッシュ・ミスか
どうかを決定しようとする(ステップ230)。もしキ
ャッシュ・ミスが避けられ得たならデータがL3$11
8に残ったことにより、キャッシュ・ミスは避けられ得
る。避けられ得るキャッシュ・ミスの一例が“過剰な”
キャッシュ・ミスであって、これは容量ミス又はコンフ
リクト・ミスが先行したキャッシュ・ミスとして定義さ
れる。避けられ得るキャッシュ・ミスの他の原因も考察
する。これらキャッシュ・ミスは、古いデータを置き換
える代わりに、L3$118を置き換えて、L3$11
8に新しいキャッシュ空間を“フリーアップ(free
up)”する、例えばL3$をダイナミックに再サイ
ズ化すれ(L3$のサイズを大きくする)ば避けること
ができたキャッシュ・ミスをも含む。
120のホーム・ディレクトリ126は、例えばアレイ
dir_share_bit〔ノード〕(ただしノード
=1…nであって、nはサブシステムの総数である。)
中の各キャッシュ・ラインにストアされたデータの共有
した(S)コピーを有するリクエスト中のサブシステム
のリストを維持する。その上、ホーム・ディレクトリ1
26は、各キャッシュ・ライン中のデータの現在のオー
ナ(owner_id)の識別を含む。現在のオーナが
無い場合には、owner_idは最後のオーナを識別
する。ホームディレクトリ126は、最新のオーナがデ
ータをメモリにライトバックしたかどうか、或はそれが
未だオーナかどうかを示すライトバック・ビット(wb
_bit)も含む。データの最後のライタ(last_
writer)は、ディレクトリ126中のそれぞれの
owner_id及びwb_bitフィールドから決定
できる。従って、過剰なキャッシュ・ミスはブール式で
下記のように表わされる。
(RTO & last_write =ノード)
ad-to-share )であり、そしてRTOはリード−ツ−オ
ーン(read-to-own)である。
な方法の詳しい説明は、上述した出願番号08/57
7,283(整理番号P1003)の先行出願を参照さ
れたい。この発明の一変形例では、ディレクトリ126
が最近アクセスされたキャッシュ・ラインの状態情報を
保持するディレクトリ・キャッシュである。(同日出願
の「ディレクトリレス・プロトコル及び関連したディレ
クトリ・キャッシュP1531も参照されたい)。この
変形例では、このディレクトリ・キャッシュにそれぞれ
のエントリを有する避けられ得るミスだけがL3$11
8内にリクエスト中のサブシステム110によって空間
を割当てることができる。
避けられ得るミスを検出するなら、データをストアする
ために適当なロケーションがL3$118中に割当てら
れる(ステップ250)。アイドル・ロケーション又は
無効データもしくはステール(stale )・データを含む
ロケーションをまず探す(ステップ260)ことによ
り、適当なロケーションを割当てることができる。もし
アイドル・ロケーションも無効ロケーションも見つから
なければ、使用されたロケーションが割当てられてディ
スプレースされたデータを置き換える必要がある。1つ
の使用されたロケーションは幾つかの使用されたロケー
ションの中からランダムに選べる。或は、最も最近用い
られた(LRU)又は最も頻繁に用いられた(LFU)
のような選択規準を使用して多くの使用されたロケーシ
ョンの中から或るロケーションを選べる。
ディスプレースされたデータを置き換える必要があれ
ば、リクエスト中のサブシステム110はディスプレー
スされたデータをそのオーナ・サブシステムにライトバ
ックする(ステップ265)。上述した出願番号08/
577,283(整理番号P1003)の先行出願は、
ディスプレースされたを置き換える一例を提供する。
るキャッシュ・ミスではなくてキャッシュ118中にア
イドル・ロケーションがある(ステップ230及び24
0)ならば、キャッシュ118中のアイドル・ロケーシ
ョンが割当てられ且つデータが割当てられたロケーショ
ンにストアされる(ステップ255及び270)。もし
キャッシュ・ミスが避けられ得るキャッシュ・ミスでな
い上にキャッシュ118が一杯である(ステップ230
及び240)なら、データはキャッシュ118にキャッ
シュされない。
スト中のプロセッサ111aへ提供される(ステップ2
80)。データがオーナ・サブシステム120からフェ
ッチされた後はいつでもデータをリクエスト中のプロセ
ッサ111aに提供できる、即ち所要のキャッシュ化ス
テップの前後でデータを提供できることに注目された
い。
システムにて実施されたこの発明の他の実施形態を示す
フローチャート300である。ユニプロセッサに関する
実施形態についての以下の説明はプロセッサ・キャッシ
ュ及び主メモリを有するコンピュータ・システムに基づ
くものであるが、選択方法は沢山のキャッシュとメモリ
の少なくとも一方を有するどんなユニプロセッサ・コン
ピュータ・システムにも適用できる。例えば、主メモリ
は高レベルのキャッシュで良い。
に、キャッシュ中でデータがサーチされる(ステップ3
10)。もしデータが見つからなければ、即ちキャッシ
ュ・ミスが検出されるなら、プロセッサは主メモリから
データをフェッチする(ステップ320)。
“避けられ得る”キャッシュ・ミスであるかどうかを決
定しようとする(ステップ330)。ユニプロセッサ環
境中の避けられ得るキャッシュ・ミスの一例は、何時、
同一データがプロセッサによって以前に要求されて主メ
モリからキャッシュへフェッチされたかである。
したなら、適当なロケーションがデータをストアするた
めのキャッシュ中で割当てられる(ステップ350)。
アイドル・ロケーション又は無効データもしくはステー
ル・データを含むロケーションをまず探す(ステップ3
60)ことにより、適当なロケーションを割当てること
ができる。もしアイドル・ロケーションも無効ロケーシ
ョンも見つからなければ、使用されたロケーションが割
当てられてディスプレースされたデータを置き換える必
要がある。使用されたロケーションはアットランダムに
或はLRUもしくはLFUのようなアルゴリズムを使用
して選べる。
ディスプレースされたデータを置き換える必要があれ
ば、プロセッサはデータを主メモリにライトバックする
(ステップ365)。キャッシュの強制的な“ライトス
ルー”がしいられるユニプロセッサ及びマルチプロセッ
サ・システムの両方において、キャッシュ及びメモリの
内容が常にコヒーレントであるので、ディスプレースさ
れたデータは簡単に捨てられ得る。“コピーバック”キ
ャッシュも、もしディスプレースされたデータが変更さ
れなかったならば、このディスプレースされたデータを
簡単に捨てることができる。
るキャッシュ・ミスではなく且つキャッシュが一杯でも
ない(ステップ330及び340)ならば、プロセッサ
はキャッシュ中でアイドル・ロケーションを割当て且つ
データは割当てられたロケーションにストアされる(ス
テップ355及び370)。もしキャッシュ・ミスが避
けられ得るキャッシュ・ミスでなく且つキャッシュが一
杯である(ステップ330及び340)なら、データは
キャッシュされない。
スト中のプロセッサへ提供される(ステップ380)。
どのキャッシュ化ステップ370の前後でもデータをリ
クエスト中のプロセッサへ提供できることに注目された
い。
形例や不可例が可能である。例えば、1つの避けられ得
るキャッシュ・ミスの後でデータ構造をキャッシュ化す
る代わりに、避けられ得るキャッシュ・ミスの数が閾値
を超えた後でデータ構造をキャッシュしても良い。他の
変形例では、より若いデータ構造の過剰ミスの数が転置
用に選ばれたより古いデータ構造のキャッシュ・ヒット
の数を超える時だけ、より若いデータ構造をキャッシュ
しても良い。
・アーキテクチャ/非一様メモリ・アーキテクチャ(C
OMA/NUMA)を有するネットワーク化されたコン
ピュータ・システムを示すブロック図である。
システムのための例示的なメモリ・マップである。
用のこの発明の一実施形態を示すフローチャートであ
る。
のこの発明の他の実施形態を示すフローチャートであ
る。
80…サブシステム、111a〜181i…プロセッ
サ、113a〜183i…第2レベルのハイブリッド・
キャッシュ、114,124,184…COMAキャッ
シュ/メモリ、118,128,188…L3$。
Claims (6)
- 【請求項1】 キャッシュ及び主メモリを有するコンピ
ュータ・システム中でキャッシュされるべきデータを選
択する方法であって、 前記キャッシュ中の前記データをサーチするステップ
と、 前記キャッシュ中で前記データを見い出すことができな
い時に、キャッシュ・ミスを検出するステップと、 もし前記キャッシュ・ミスが検出されたなら、 前記主メモリから前記データをフェッチするステップ、 前記キャッシュ・ミスが避けられ得るキャッシュ・ミス
かどうかを決定するステップ、及び前記キャッシュ・ミ
スが前記避けられ得るキャッシュ・ミスであると決定さ
れるならば、前記キャッシュ中の前記データをキャッシ
ュ化するステップと、 を含むコンピュータ・システム中でキャッシュされるべ
きデータを選択する方法。 - 【請求項2】 前記データをキャッシュ化する結果とし
て、前記キャッシュから前記主メモリへ置き換えられた
古いデータをライトバックするステップを更に含む請求
項1のコンピュータ・システム中でキャッシュされるべ
きデータを選択する方法。 - 【請求項3】 少なくとも第1のサブシステム及び第2
のサブシステムを備え、前記サブシステムの各々がキャ
ッシュを含み、前記第2のサブシステムがデータのホー
ム・サブシステムであるコンピュータ・システム中でキ
ャッシュされるべきデータを選択する方法であって、 前記第1のサブシステムの前記キャッシュ中の前記デー
タをサーチするステップと、 前記第1のサブシステムの前記キャッシュ中で前記デー
タを見い出さない時に、キャッシュ・ミスを検出するス
テップと、 もし前記キャッシュ・ミスが検出されるなら、 前記第2のサブシステムから前記第1のサブシステムへ
前記データをフェッチするステップ、 前記キャッシュ・ミスが避けられ得るキャッシュ・ミス
かどうかを決定するステップ、及び前記キャッシュ・ミ
スが前記避けられ得るキャッシュ・ミスであると決定さ
れるならば、前記第1のサブシステムの前記キャッシュ
中の前記データをキャッシュ化するステップと、 を含むコンピュータ・システム中でキャッシュされるべ
きデータを選択する方法。 - 【請求項4】 前記データをキャッシュ化する結果とし
て、前記第1のサブシステムから前記第2のサブシステ
ムへ置き換えられたどの古いデータもライトバックする
ステップを更に含む請求項3のコンピュータ・システム
中でキャッシュされるべきデータを選択する方法。 - 【請求項5】 キャッシュと、 このキャッシュに結合された主メモリと、 前記キャッシュと前記主メモリの間に結合され且つデー
タの避けられ得るキャッシュ・ミスが前記キャッシュ中
で起こる時に前記主メモリから前記キャッシュへ前記デ
ータをフェッチするように配置されたフェッチャと、 を備えたコンピュータ・システム。 - 【請求項6】 コンピュータ・システム用キャッシュ化
装置であって、 前記コンピュータ・システムの第1のサブシステムに関
連付けられた第1のキャッシュと、 前記コンピュータ・システムの、データのホーム・サブ
システムである第2のサブシステムに関連付けられた第
2のキャッシュと、 前記第1のキャッシュと前記第2のキャッシュとの間に
結合され且つ前記データの避けられ得るキャッシュ・ミ
スが前記第1のキャッシュ中で起こる時に前記第2のキ
ャッシュから前記第1のキャッシュへ前記データをフェ
ッチするように配置されたフェッチャと、 を備えたコンピュータ・システム用キャッシュ化装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US675306 | 1996-07-01 | ||
US08/675,306 US5893150A (en) | 1996-07-01 | 1996-07-01 | Efficient allocation of cache memory space in a computer system |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10214229A true JPH10214229A (ja) | 1998-08-11 |
JP4101907B2 JP4101907B2 (ja) | 2008-06-18 |
Family
ID=24709903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP18460097A Expired - Lifetime JP4101907B2 (ja) | 1996-07-01 | 1997-06-26 | コンピュータ・システム中でキャッシュされるべきデータを選択する方法,コンピュータ・システム,及びコンピュータ・システム用キャッシュ化装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5893150A (ja) |
EP (1) | EP0817078A3 (ja) |
JP (1) | JP4101907B2 (ja) |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5978379A (en) | 1997-01-23 | 1999-11-02 | Gadzoox Networks, Inc. | Fiber channel learning bridge, learning half bridge, and protocol |
US7430171B2 (en) | 1998-11-19 | 2008-09-30 | Broadcom Corporation | Fibre channel arbitrated loop bufferless switch circuitry to increase bandwidth without significant increase in cost |
US6532520B1 (en) * | 1999-09-10 | 2003-03-11 | International Business Machines Corporation | Method and apparatus for allocating data and instructions within a shared cache |
US20020161911A1 (en) * | 2001-04-19 | 2002-10-31 | Thomas Pinckney | Systems and methods for efficient memory allocation for streaming of multimedia files |
US6766389B2 (en) | 2001-05-18 | 2004-07-20 | Broadcom Corporation | System on a chip for networking |
US6574708B2 (en) | 2001-05-18 | 2003-06-03 | Broadcom Corporation | Source controlled cache allocation |
US7287649B2 (en) * | 2001-05-18 | 2007-10-30 | Broadcom Corporation | System on a chip for packet processing |
US7239636B2 (en) | 2001-07-23 | 2007-07-03 | Broadcom Corporation | Multiple virtual channels for use in network devices |
US6775745B1 (en) * | 2001-09-07 | 2004-08-10 | Roxio, Inc. | Method and apparatus for hybrid data caching mechanism |
US7295555B2 (en) | 2002-03-08 | 2007-11-13 | Broadcom Corporation | System and method for identifying upper layer protocol message boundaries |
US7269709B2 (en) | 2002-05-15 | 2007-09-11 | Broadcom Corporation | Memory controller configurable to allow bandwidth/latency tradeoff |
US7266587B2 (en) * | 2002-05-15 | 2007-09-04 | Broadcom Corporation | System having interfaces, switch, and memory bridge for CC-NUMA operation |
US7114043B2 (en) * | 2002-05-15 | 2006-09-26 | Broadcom Corporation | Ambiguous virtual channels |
US7934021B2 (en) | 2002-08-29 | 2011-04-26 | Broadcom Corporation | System and method for network interfacing |
US7346701B2 (en) | 2002-08-30 | 2008-03-18 | Broadcom Corporation | System and method for TCP offload |
US7313623B2 (en) | 2002-08-30 | 2007-12-25 | Broadcom Corporation | System and method for TCP/IP offload independent of bandwidth delay product |
US8180928B2 (en) | 2002-08-30 | 2012-05-15 | Broadcom Corporation | Method and system for supporting read operations with CRC for iSCSI and iSCSI chimney |
WO2004021626A2 (en) | 2002-08-30 | 2004-03-11 | Broadcom Corporation | System and method for handling out-of-order frames |
US8165993B2 (en) | 2002-09-06 | 2012-04-24 | Oracle International Corporation | Business intelligence system with interface that provides for immediate user action |
US8255454B2 (en) | 2002-09-06 | 2012-08-28 | Oracle International Corporation | Method and apparatus for a multiplexed active data window in a near real-time business intelligence system |
US7899879B2 (en) * | 2002-09-06 | 2011-03-01 | Oracle International Corporation | Method and apparatus for a report cache in a near real-time business intelligence system |
US7412481B2 (en) | 2002-09-16 | 2008-08-12 | Oracle International Corporation | Method and apparatus for distributed rule evaluation in a near real-time business intelligence system |
US7941542B2 (en) * | 2002-09-06 | 2011-05-10 | Oracle International Corporation | Methods and apparatus for maintaining application execution over an intermittent network connection |
US7945846B2 (en) | 2002-09-06 | 2011-05-17 | Oracle International Corporation | Application-specific personalization for data display |
US7912899B2 (en) * | 2002-09-06 | 2011-03-22 | Oracle International Corporation | Method for selectively sending a notification to an instant messaging device |
US7401158B2 (en) | 2002-09-16 | 2008-07-15 | Oracle International Corporation | Apparatus and method for instant messaging collaboration |
US8185602B2 (en) | 2002-11-05 | 2012-05-22 | Newisys, Inc. | Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters |
US7058773B1 (en) | 2003-01-16 | 2006-06-06 | Cisco Technology, Inc. | System and method for managing data in a distributed system |
US7904823B2 (en) * | 2003-03-17 | 2011-03-08 | Oracle International Corporation | Transparent windows methods and apparatus therefor |
US7978716B2 (en) | 2003-11-24 | 2011-07-12 | Citrix Systems, Inc. | Systems and methods for providing a VPN solution |
US8495305B2 (en) | 2004-06-30 | 2013-07-23 | Citrix Systems, Inc. | Method and device for performing caching of dynamically generated objects in a data communication network |
US7757074B2 (en) | 2004-06-30 | 2010-07-13 | Citrix Application Networking, Llc | System and method for establishing a virtual private network |
US8739274B2 (en) | 2004-06-30 | 2014-05-27 | Citrix Systems, Inc. | Method and device for performing integrated caching in a data communication network |
CA2572401A1 (en) | 2004-07-23 | 2006-02-02 | Citrix Systems, Inc. | A method and systems for securing remote access to private networks |
JP2008507928A (ja) | 2004-07-23 | 2008-03-13 | サイトリックス システムズ, インコーポレイテッド | ネットワークノード間の通信を最適化するためのシステムおよび方法 |
US7810089B2 (en) | 2004-12-30 | 2010-10-05 | Citrix Systems, Inc. | Systems and methods for automatic installation and execution of a client-side acceleration program |
US8706877B2 (en) | 2004-12-30 | 2014-04-22 | Citrix Systems, Inc. | Systems and methods for providing client-side dynamic redirection to bypass an intermediary |
US8549149B2 (en) * | 2004-12-30 | 2013-10-01 | Citrix Systems, Inc. | Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing |
US8954595B2 (en) | 2004-12-30 | 2015-02-10 | Citrix Systems, Inc. | Systems and methods for providing client-side accelerated access to remote applications via TCP buffering |
US8255456B2 (en) | 2005-12-30 | 2012-08-28 | Citrix Systems, Inc. | System and method for performing flash caching of dynamically generated objects in a data communication network |
US8301839B2 (en) | 2005-12-30 | 2012-10-30 | Citrix Systems, Inc. | System and method for performing granular invalidation of cached dynamically generated objects in a data communication network |
US7921184B2 (en) | 2005-12-30 | 2011-04-05 | Citrix Systems, Inc. | System and method for performing flash crowd caching of dynamically generated objects in a data communication network |
US8504774B2 (en) * | 2010-10-13 | 2013-08-06 | Microsoft Corporation | Dynamic cache configuration using separate read and write caches |
US8751751B2 (en) | 2011-01-28 | 2014-06-10 | International Business Machines Corporation | Method and apparatus for minimizing cache conflict misses |
US10642709B2 (en) | 2011-04-19 | 2020-05-05 | Microsoft Technology Licensing, Llc | Processor cache tracing |
US9612972B2 (en) | 2012-12-03 | 2017-04-04 | Micron Technology, Inc. | Apparatuses and methods for pre-fetching and write-back for a segmented cache memory |
CN108832909A (zh) * | 2018-06-21 | 2018-11-16 | 重庆兆洲科技发展有限公司 | 时差法信号采集中数字滤波的处理方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5625793A (en) * | 1991-04-15 | 1997-04-29 | International Business Machines Corporation | Automatic cache bypass for instructions exhibiting poor cache hit ratio |
GB2273181A (en) * | 1992-12-02 | 1994-06-08 | Ibm | Cache/non-cache access control. |
US5535116A (en) * | 1993-05-18 | 1996-07-09 | Stanford University | Flat cache-only multi-processor architectures |
-
1996
- 1996-07-01 US US08/675,306 patent/US5893150A/en not_active Expired - Lifetime
-
1997
- 1997-06-26 JP JP18460097A patent/JP4101907B2/ja not_active Expired - Lifetime
- 1997-06-30 EP EP97304723A patent/EP0817078A3/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US5893150A (en) | 1999-04-06 |
JP4101907B2 (ja) | 2008-06-18 |
EP0817078A3 (en) | 1998-01-21 |
EP0817078A2 (en) | 1998-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4101907B2 (ja) | コンピュータ・システム中でキャッシュされるべきデータを選択する方法,コンピュータ・システム,及びコンピュータ・システム用キャッシュ化装置 | |
US6826651B2 (en) | State-based allocation and replacement for improved hit ratio in directory caches | |
EP0780769B1 (en) | Hybrid numa coma caching system and methods for selecting between the caching modes | |
US6304945B1 (en) | Method and apparatus for maintaining cache coherency in a computer system having multiple processor buses | |
US6647466B2 (en) | Method and apparatus for adaptively bypassing one or more levels of a cache hierarchy | |
US5893144A (en) | Hybrid NUMA COMA caching system and methods for selecting between the caching modes | |
US6725341B1 (en) | Cache line pre-load and pre-own based on cache coherence speculation | |
US7698508B2 (en) | System and method for reducing unnecessary cache operations | |
JP4447580B2 (ja) | 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ | |
US8015365B2 (en) | Reducing back invalidation transactions from a snoop filter | |
US8281079B2 (en) | Multi-processor system receiving input from a pre-fetch buffer | |
US6782453B2 (en) | Storing data in memory | |
CN1790296A (zh) | 缩短与高速缓存相关性目录遗漏关联的延迟的方法和系统 | |
US6625694B2 (en) | System and method for allocating a directory entry for use in multiprocessor-node data processing systems | |
JP4068185B2 (ja) | コンピュータ・システムでのメモリ・ストレージ・モードの効果的な選択 | |
US5903907A (en) | Skip-level write-through in a multi-level memory of a computer system | |
JP3295436B2 (ja) | マイクロプロセッサキャッシュの一貫性 | |
WO2019051105A1 (en) | COUNTING A CACHED MEMORY MONITORING FILTER BASED ON A BLOCK FILTER | |
JP2008310414A (ja) | コンピュータシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040608 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070724 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070807 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20071107 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20071112 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20071207 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20071212 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080122 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080201 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080219 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080321 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110328 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110328 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120328 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130328 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130328 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140328 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |