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
Application number
JP9184600A
Other languages
English (en)
Other versions
JP4101907B2 (ja
Inventor
Erik E Hagersten
エリック・イー・ハガーステン
Mark D Hill
マーク・デイ・ヒル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH10214229A publication Critical patent/JPH10214229A/ja
Application granted granted Critical
Publication of JP4101907B2 publication Critical patent/JP4101907B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, 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

(57)【要約】 【課題】 マルチレベルのキャッシュ・コンピュータ・
システム中でキャッシュ・メモリ空間の割当てを最適に
するキャッシュ化用データ構造を選択する効率の良い機
構が必要である。 【解決手段】 避けられ得るキャッシュ・ミスである過
剰なキャッシュ・ミスと決定する為に、種々のプロセッ
サによるデータのリード/ライト・リクエストを追跡
し、テーブル中でのリード/ライト・リクエストの記録
をストアする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、コンピュータ・
システムのキャッシュ、特にコンピュータ・システムの
キャッシュ・メモリ空間を効率良く割当てることに関す
るものである。
【0002】
【従来の技術】小さな第1レベルのキャッシュ及び大き
な第2レベルのキャッシュを有するマルチレベルのキャ
ッシュ・コンピュータ・システムの簡単なキャッシュ空
間割当て技術では、全てのデータ構造が両方のレベルの
キャッシュに自動的にキャッシュされる。もしデータ構
造のサイズがより小さい低レベルのキャッシュよりも大
きければ、即ちデータ構造が低レベルのキャッシュに合
わないなら、データ構造は低レベルのキャッシュから置
き換えられる。もしデータ構造がより大きい高レベルの
キャッシュよりも小さいならば、データ構造の内容の大
部分は高レベルのキャッシュにとどまる。
【0003】残念なことに、幾らかのデータ構造は頻繁
にアクセスされるが、他のデータ構造は1回しかアクセ
スされないということがある。そして幾らかの統計分析
とデータ構造を所有するコンピュータ・プログラムの知
識との少なくとも一方無しに特定の構造への将来のアク
セスを予測するのは容易でない。例えば、コンピュータ
・プログラムは、アレイの各エレメントをアクセスする
ことにより、大きいアレイを使用するかもしれない。各
エレメントは、一時変数を含むかなり複雑な計算に使用
される。この例では、大きなアレイの全エレメントをキ
ャッシュ化することは計算速度を実質的に速めない。対
照的に、一時変数をキャッシュ化するとプログラムの実
行を速めることになる。
【0004】従って、マルチレベルのキャッシュ中に空
間を割当てるための上述した方法は簡単であるが、この
方法はデータ構造のサイズだけに基づき、ひいてはデー
タ構造の相当数が不必要にキャッシュされるので効率が
悪い。過剰なキャッシュ化は、他の有用なデータ構造を
早目に元の場所に戻させる(置き換える)、即ち後続の
アクセス前にキャッシュから追い出すことになる。
【0005】
【発明が解決しようとする課題】キャッシュ・メモリが
無限に大きくないので、キャッシュの使用を最大限にす
ると共にデータへの全アクセス時間を最短にするために
は制限されたキャッシュ・リソースを効率良く割当てる
必要がある。従って、マルチレベルのキャッシュ・コン
ピュータ・システム中でキャッシュ・メモリ空間の割当
てを最適にするキャッシュ化用データ構造を選択するた
めの効率の良い機構の必要性がある。
【0006】この発明は、少なくとも1個のキャッシュ
を有するユニプロセッサとマルチプロセッサの両方のコ
ンピュータ・システム用の効率の良いキャッシュ割当て
技術を提供する。
【0007】
【課題を解決するための手段】1つの実施態様では、キ
ャッシュ・ミスが検出された時に、そのキャッシュ・ミ
スが“避けられ得た”ものかどうかが決定される。換言
すれば、もしデータが以前にキャッシュされてしかもキ
ャッシュ中にまだ残っていたなら、それでも現在のキャ
ッシュ・ミスが起こったかどうかが決定される。
【0008】分散型メモリ・アーキテクチャを有するマ
ルチプロセッサ・システム中での避けられ得るキャッシ
ュ・ミスの一例は、過剰なキャッシュ・ミスである。過
剰なキャッシュ・ミスは、容量ミスかコンフリクト・ミ
スである。容量ミスはキャッシュのサイズ不足で起こ
る。コンフリクト・ミスはキャッシュの結合性の深さ不
足で起こる。過剰なキャッシュ・ミスを決定するには、
種々のプロセッサによるデータのリード/ライト・リク
エストを追跡すること、及びテーブル又はリンク済みリ
スト中でのリード/ライト・リクエストの記録をストア
することが含まれる。例えば、データ構造の最後のライ
タの識別を追跡すると、現在のキャッシュ・ミスよりも
以前にデータが置き換えられなかったら、現在のキャッ
シュ・ミスが避けられたかどうかについての指示が与え
られる。
【0009】簡単なユニプロセッサ・システムの場合に
は、唯一のプロセッサがキャッシュへアクセスするだけ
なので、避けられ得るキャッシュ・ミスは、以前にアク
セスされたデータ、即ち現在のキャッシュ・ミス以前に
キャッシュされて置き換えられたデータに適用される。
【0010】この発明によれば、避けられ得るキャッシ
ュ・ミスが起こった後でだけデータはキャッシュされ
る。アクセスする毎にの代わりに、少なくとも1つの避
けられ得るキャッシュ・ミスの後でだけキャッシュ化す
ることにより、キャッシュ空間を極めて効率の良い仕方
で割当てることができ、それによってキャッシュ・ミス
のせいで起こったデータ・フェッチの数を最少にする。
これは、データが以前に少なくとも2回アクセスされた
ならば、データが再びアクセスされる統計的な見込みが
劇的に増大するためである。
【0011】キャッシュ・コヒーレンシイ・プロトコル
によっては、ディスプレースされた(displaced )デー
タを捨てる前に、そのディスプレースされたデータを置
き換えること、即ちデータを主メモリ/オーナ・システ
ムへライトバックすることが必要になるかもしれない。
【0012】
【発明の実施の形態】この発明のコンピュータ・システ
ムの目的、特徴及び利点は、以下の説明から明らかにな
ろう。以下の説明中の符号は発明を完全に理解する為に
付けた。符号を付けたものの中には、コンピュータ・シ
ステム内でキャッシュ・メモリ空間を割当てる効率の良
い方法の実施を支援するための機能ブロック及び例示的
なキャッシュ・アーキテクチャがある。加えて、マルチ
プロセッサ・コンピュータ・システムの分散型キャッシ
ュのための特定のキャッシュ割当て方法についてこの発
明を説明するが、広範囲のキャッシュ及びコンピュータ
のアーキテクチャにこの発明を適用できる。なお、この
発明を必要以上に不明瞭にしないために周知の回路や構
成は詳しく説明しない。
【0013】本願出願人の先行出願には、ネットワーク
化されたコンピュータ・システム用の共有主記憶アドレ
ス空間及びコヒーレントなキャッシュ化装置を有するハ
イブリッド・キャッシュオンリ・メモリ・アーキテクチ
ャ/非一様メモリ・アーキテクチャ(COMA/NUM
A)が開示されており、上述したネットワーク化された
コンピュータ・システムはこの発明を実施するための適
当な例示的ハードウェア環境を提供する。
【0014】図1は、そのようなハイブリッドCOMA
/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レベルの任意でコンパクトなキャッシュを含
み得る。
【0015】ディレクトリに基づいたキャッシュ・コヒ
ーレンス方法を支持するために、サブシステム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にて複製されてよい。
【0016】図1の例示的なハイブリッドCOMA/N
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アーキテクチャ及びハイブリッ
ド・キャッシュ・アーキテクチャを開発する方法が述べ
られている。
【0017】ホーム・ディレクトリ126は、コンピュ
ータ・システム100全体に亘るホーム・ページの現存
するコピーのマスター記録を維持することに対して責任
がある。その上、それぞれのAMディレクトリ例えばデ
ィレクトリ116及び186に関連した複数のメモリ・
タグ(MTAG)は、4つの例示的な状態のうちの1つ
を使用してリクエスト中の各サブシステム内のローカル
・コピーの状態を追跡する。無効(“I”)状態は、特
定のサブシステムが対象となるデータ・ラインの(キャ
ッシュされた)コピーを持たないことを示す。共有した
(“S”)状態は、そのサブシステム及び他の幾つかの
サブシステムが対象となるデータ・ラインの共有した
(キャッシュされた)コピーを有することを示す。所有
した(“O”)状態は、そのサブシステム及び他の幾つ
かのサブシステムが対象となるデータ・ラインの(キャ
ッシュされた)コピーを有することを示す。Oコピーを
持つサブシステムは、置き換えの時にライトバックする
ことを必要とされる。変更した(“M”)状態は、サブ
システムが対象となるデータ・ラインの(キャッシュさ
れた)コピーだけを有する、即ちサブシステムがデータ
・ラインの唯一のオーナであり、他のサブシステムにS
コピーが無いことを示す。
【0018】この例では、図1に示したように、COM
Aキャッシュ/メモリ114,124,…184は第3
レベルのキャッシュL3$118,128,…188か
ら隔てられており、そしてプロセッサ111a,111
b,…111i,121a,121b,…121i,及
び181a,181b,…181iの各々は、第1レベ
ルの内部キャッシュ(L1$)(図1には示さない)を
含む。
【0019】この発明の一面によれば、複数のL1$と
L2$の間には内包が維持されるが、L2$と第3レベ
ルのキャッシュの間には内包を維持する必要が無い。換
言すれば、L1$にあるデータはそれぞれのL2$にも
あるが、L1$又はL2$にあるデータは必ずしもL3
$にある必要は無い。従って、L2$中のデータのキャ
ッシュ・ラインに空間が割当てられようとも、L3$は
データのキャッシュ・ライン用に割当てなくても良い。
【0020】図3は、マルチプロセッサ・コンピュータ
・システム100に実施されたようなこの発明の一実施
形態を示すフローチャート200である。
【0021】以下の説明において、選択方法は、特定の
データ構造がハイブリッドCOMA/NUMA環境内の
リクエスト中のサブシステム110のL3$118にス
トアされるべきかストアされるべきでないかを決定する
のに使用される。しかしながら、この選択方法は、全て
のレベルのキャッシュにも様々なキャッシュ及びシステ
ムのアーキテクチャにも適用できると理解される。例え
ば、L3$及びCOMAキャッシュが以下の説明中では
分離型キャッシュとして一緒に存在するが、この発明
は、NUMAオンリ(COMAキャッシュ114無し)
にも、もっと汎用のL3$有りのCOMAオンリ(NU
MAキャッシュ化モード無し)にも、又はL1$と一緒
に存在するL2$にも適用できる。
【0022】リクエスト中のサブシステム110のプロ
セッサ111aがデータをリクエストする時に、データ
のサーチはL2$113aで、次にL3$118で行わ
れる(ステップ210)。もしリクエスト中のサブシス
テム110内でデータが見い出されないなら、即ちキャ
ッシュ・ミスがサブシステム110で検出されるなら、
ホーム・サブシステム120にリクエストされてデータ
をフェッチする(ステップ220)。本出願人による上
述した先行出願である出願番号08/577,283
(整理番号P1003)には、ホーム・サブシステムの
ディレクトリに最初に割込むことによってオーナ・サブ
システムからデータがどのようにしてフェッチされるか
が開示されている。
【0023】リクエスト中のサブシステム110は、キ
ャッシュ・ミスが“避けられ得る”キャッシュ・ミスか
どうかを決定しようとする(ステップ230)。もしキ
ャッシュ・ミスが避けられ得たならデータがL3$11
8に残ったことにより、キャッシュ・ミスは避けられ得
る。避けられ得るキャッシュ・ミスの一例が“過剰な”
キャッシュ・ミスであって、これは容量ミス又はコンフ
リクト・ミスが先行したキャッシュ・ミスとして定義さ
れる。避けられ得るキャッシュ・ミスの他の原因も考察
する。これらキャッシュ・ミスは、古いデータを置き換
える代わりに、L3$118を置き換えて、L3$11
8に新しいキャッシュ空間を“フリーアップ(free
up)”する、例えばL3$をダイナミックに再サイ
ズ化すれ(L3$のサイズを大きくする)ば避けること
ができたキャッシュ・ミスをも含む。
【0024】この実施形態では、ホーム・サブシステム
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フィールドから決定
できる。従って、過剰なキャッシュ・ミスはブール式で
下記のように表わされる。
【0025】(RTS & dir_share_bit〔ノード〕=1)OR
(RTO & last_write =ノード)
【0026】ただし、RTSはリード−ツ−シェア(re
ad-to-share )であり、そしてRTOはリード−ツ−オ
ーン(read-to-own)である。
【0027】過剰なキャッシュ・ミスを検出する例示的
な方法の詳しい説明は、上述した出願番号08/57
7,283(整理番号P1003)の先行出願を参照さ
れたい。この発明の一変形例では、ディレクトリ126
が最近アクセスされたキャッシュ・ラインの状態情報を
保持するディレクトリ・キャッシュである。(同日出願
の「ディレクトリレス・プロトコル及び関連したディレ
クトリ・キャッシュP1531も参照されたい)。この
変形例では、このディレクトリ・キャッシュにそれぞれ
のエントリを有する避けられ得るミスだけがL3$11
8内にリクエスト中のサブシステム110によって空間
を割当てることができる。
【0028】もしリクエスト中のサブシステム110が
避けられ得るミスを検出するなら、データをストアする
ために適当なロケーションがL3$118中に割当てら
れる(ステップ250)。アイドル・ロケーション又は
無効データもしくはステール(stale )・データを含む
ロケーションをまず探す(ステップ260)ことによ
り、適当なロケーションを割当てることができる。もし
アイドル・ロケーションも無効ロケーションも見つから
なければ、使用されたロケーションが割当てられてディ
スプレースされたデータを置き換える必要がある。1つ
の使用されたロケーションは幾つかの使用されたロケー
ションの中からランダムに選べる。或は、最も最近用い
られた(LRU)又は最も頻繁に用いられた(LFU)
のような選択規準を使用して多くの使用されたロケーシ
ョンの中から或るロケーションを選べる。
【0029】もし選択された使用済みロケーションから
ディスプレースされたデータを置き換える必要があれ
ば、リクエスト中のサブシステム110はディスプレー
スされたデータをそのオーナ・サブシステムにライトバ
ックする(ステップ265)。上述した出願番号08/
577,283(整理番号P1003)の先行出願は、
ディスプレースされたを置き換える一例を提供する。
【0030】逆に、もしキャッシュ・ミスが避けられ得
るキャッシュ・ミスではなくてキャッシュ118中にア
イドル・ロケーションがある(ステップ230及び24
0)ならば、キャッシュ118中のアイドル・ロケーシ
ョンが割当てられ且つデータが割当てられたロケーショ
ンにストアされる(ステップ255及び270)。もし
キャッシュ・ミスが避けられ得るキャッシュ・ミスでな
い上にキャッシュ118が一杯である(ステップ230
及び240)なら、データはキャッシュ118にキャッ
シュされない。
【0031】上述した場合の各々にて、データはリクエ
スト中のプロセッサ111aへ提供される(ステップ2
80)。データがオーナ・サブシステム120からフェ
ッチされた後はいつでもデータをリクエスト中のプロセ
ッサ111aに提供できる、即ち所要のキャッシュ化ス
テップの前後でデータを提供できることに注目された
い。
【0032】図4は、ユニプロセッサ・コンピュータ・
システムにて実施されたこの発明の他の実施形態を示す
フローチャート300である。ユニプロセッサに関する
実施形態についての以下の説明はプロセッサ・キャッシ
ュ及び主メモリを有するコンピュータ・システムに基づ
くものであるが、選択方法は沢山のキャッシュとメモリ
の少なくとも一方を有するどんなユニプロセッサ・コン
ピュータ・システムにも適用できる。例えば、主メモリ
は高レベルのキャッシュで良い。
【0033】プロセッサがデータをリクエストする時
に、キャッシュ中でデータがサーチされる(ステップ3
10)。もしデータが見つからなければ、即ちキャッシ
ュ・ミスが検出されるなら、プロセッサは主メモリから
データをフェッチする(ステップ320)。
【0034】その後、プロセッサはキャッシュ・ミスが
“避けられ得る”キャッシュ・ミスであるかどうかを決
定しようとする(ステップ330)。ユニプロセッサ環
境中の避けられ得るキャッシュ・ミスの一例は、何時、
同一データがプロセッサによって以前に要求されて主メ
モリからキャッシュへフェッチされたかである。
【0035】もしプロセッサが避けられ得るミスを検出
したなら、適当なロケーションがデータをストアするた
めのキャッシュ中で割当てられる(ステップ350)。
アイドル・ロケーション又は無効データもしくはステー
ル・データを含むロケーションをまず探す(ステップ3
60)ことにより、適当なロケーションを割当てること
ができる。もしアイドル・ロケーションも無効ロケーシ
ョンも見つからなければ、使用されたロケーションが割
当てられてディスプレースされたデータを置き換える必
要がある。使用されたロケーションはアットランダムに
或はLRUもしくはLFUのようなアルゴリズムを使用
して選べる。
【0036】もし選択された使用済みロケーションから
ディスプレースされたデータを置き換える必要があれ
ば、プロセッサはデータを主メモリにライトバックする
(ステップ365)。キャッシュの強制的な“ライトス
ルー”がしいられるユニプロセッサ及びマルチプロセッ
サ・システムの両方において、キャッシュ及びメモリの
内容が常にコヒーレントであるので、ディスプレースさ
れたデータは簡単に捨てられ得る。“コピーバック”キ
ャッシュも、もしディスプレースされたデータが変更さ
れなかったならば、このディスプレースされたデータを
簡単に捨てることができる。
【0037】逆に、もしキャッシュ・ミスが避けられ得
るキャッシュ・ミスではなく且つキャッシュが一杯でも
ない(ステップ330及び340)ならば、プロセッサ
はキャッシュ中でアイドル・ロケーションを割当て且つ
データは割当てられたロケーションにストアされる(ス
テップ355及び370)。もしキャッシュ・ミスが避
けられ得るキャッシュ・ミスでなく且つキャッシュが一
杯である(ステップ330及び340)なら、データは
キャッシュされない。
【0038】上述した場合の各々にて、データはリクエ
スト中のプロセッサへ提供される(ステップ380)。
どのキャッシュ化ステップ370の前後でもデータをリ
クエスト中のプロセッサへ提供できることに注目された
い。
【0039】この発明の精神から逸脱しない限り他の変
形例や不可例が可能である。例えば、1つの避けられ得
るキャッシュ・ミスの後でデータ構造をキャッシュ化す
る代わりに、避けられ得るキャッシュ・ミスの数が閾値
を超えた後でデータ構造をキャッシュしても良い。他の
変形例では、より若いデータ構造の過剰ミスの数が転置
用に選ばれたより古いデータ構造のキャッシュ・ヒット
の数を超える時だけ、より若いデータ構造をキャッシュ
しても良い。
【図面の簡単な説明】
【図1】 ハイブリッド・キャッシュ・オンリ・メモリ
・アーキテクチャ/非一様メモリ・アーキテクチャ(C
OMA/NUMA)を有するネットワーク化されたコン
ピュータ・システムを示すブロック図である。
【図2】 図1のネットワーク化されたコンピュータ・
システムのための例示的なメモリ・マップである。
【図3】 マルチプロセッサ・コンピュータ・システム
用のこの発明の一実施形態を示すフローチャートであ
る。
【図4】 ユニプロセッサ・コンピュータ・システム用
のこの発明の他の実施形態を示すフローチャートであ
る。
【符号の説明】
100…コンピュータ・システム、110,120,1
80…サブシステム、111a〜181i…プロセッ
サ、113a〜183i…第2レベルのハイブリッド・
キャッシュ、114,124,184…COMAキャッ
シュ/メモリ、118,128,188…L3$。
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成9年10月21日
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正内容】
【図1】
【図2】
【図3】
【図4】
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 FI G06F 15/163 G06F 15/16 320K (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A. (72)発明者 マーク・デイ・ヒル アメリカ合衆国・94024・カリフォルニア 州・ロス アルトス・コヴィントン ロー ド・272

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 キャッシュ及び主メモリを有するコンピ
    ュータ・システム中でキャッシュされるべきデータを選
    択する方法であって、 前記キャッシュ中の前記データをサーチするステップ
    と、 前記キャッシュ中で前記データを見い出すことができな
    い時に、キャッシュ・ミスを検出するステップと、 もし前記キャッシュ・ミスが検出されたなら、 前記主メモリから前記データをフェッチするステップ、 前記キャッシュ・ミスが避けられ得るキャッシュ・ミス
    かどうかを決定するステップ、及び前記キャッシュ・ミ
    スが前記避けられ得るキャッシュ・ミスであると決定さ
    れるならば、前記キャッシュ中の前記データをキャッシ
    ュ化するステップと、 を含むコンピュータ・システム中でキャッシュされるべ
    きデータを選択する方法。
  2. 【請求項2】 前記データをキャッシュ化する結果とし
    て、前記キャッシュから前記主メモリへ置き換えられた
    古いデータをライトバックするステップを更に含む請求
    項1のコンピュータ・システム中でキャッシュされるべ
    きデータを選択する方法。
  3. 【請求項3】 少なくとも第1のサブシステム及び第2
    のサブシステムを備え、前記サブシステムの各々がキャ
    ッシュを含み、前記第2のサブシステムがデータのホー
    ム・サブシステムであるコンピュータ・システム中でキ
    ャッシュされるべきデータを選択する方法であって、 前記第1のサブシステムの前記キャッシュ中の前記デー
    タをサーチするステップと、 前記第1のサブシステムの前記キャッシュ中で前記デー
    タを見い出さない時に、キャッシュ・ミスを検出するス
    テップと、 もし前記キャッシュ・ミスが検出されるなら、 前記第2のサブシステムから前記第1のサブシステムへ
    前記データをフェッチするステップ、 前記キャッシュ・ミスが避けられ得るキャッシュ・ミス
    かどうかを決定するステップ、及び前記キャッシュ・ミ
    スが前記避けられ得るキャッシュ・ミスであると決定さ
    れるならば、前記第1のサブシステムの前記キャッシュ
    中の前記データをキャッシュ化するステップと、 を含むコンピュータ・システム中でキャッシュされるべ
    きデータを選択する方法。
  4. 【請求項4】 前記データをキャッシュ化する結果とし
    て、前記第1のサブシステムから前記第2のサブシステ
    ムへ置き換えられたどの古いデータもライトバックする
    ステップを更に含む請求項3のコンピュータ・システム
    中でキャッシュされるべきデータを選択する方法。
  5. 【請求項5】 キャッシュと、 このキャッシュに結合された主メモリと、 前記キャッシュと前記主メモリの間に結合され且つデー
    タの避けられ得るキャッシュ・ミスが前記キャッシュ中
    で起こる時に前記主メモリから前記キャッシュへ前記デ
    ータをフェッチするように配置されたフェッチャと、 を備えたコンピュータ・システム。
  6. 【請求項6】 コンピュータ・システム用キャッシュ化
    装置であって、 前記コンピュータ・システムの第1のサブシステムに関
    連付けられた第1のキャッシュと、 前記コンピュータ・システムの、データのホーム・サブ
    システムである第2のサブシステムに関連付けられた第
    2のキャッシュと、 前記第1のキャッシュと前記第2のキャッシュとの間に
    結合され且つ前記データの避けられ得るキャッシュ・ミ
    スが前記第1のキャッシュ中で起こる時に前記第2のキ
    ャッシュから前記第1のキャッシュへ前記データをフェ
    ッチするように配置されたフェッチャと、 を備えたコンピュータ・システム用キャッシュ化装置。
JP18460097A 1996-07-01 1997-06-26 コンピュータ・システム中でキャッシュされるべきデータを選択する方法,コンピュータ・システム,及びコンピュータ・システム用キャッシュ化装置 Expired - Lifetime JP4101907B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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