JPH0863393A - 多レベル・キャッシュ内のキャッシュ・ミス発生に伴う新しいワード・フラグメントの書き込み方法 - Google Patents

多レベル・キャッシュ内のキャッシュ・ミス発生に伴う新しいワード・フラグメントの書き込み方法

Info

Publication number
JPH0863393A
JPH0863393A JP7188826A JP18882695A JPH0863393A JP H0863393 A JPH0863393 A JP H0863393A JP 7188826 A JP7188826 A JP 7188826A JP 18882695 A JP18882695 A JP 18882695A JP H0863393 A JPH0863393 A JP H0863393A
Authority
JP
Japan
Prior art keywords
cache
level cache
level
line
data
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
JP7188826A
Other languages
English (en)
Other versions
JP3587591B2 (ja
Inventor
James S Finnell
ジェームス・エス・フィンネル
Dean A Mulla
ディーン・エイ・ミュラ
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH0863393A publication Critical patent/JPH0863393A/ja
Application granted granted Critical
Publication of JP3587591B2 publication Critical patent/JP3587591B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, 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)【要約】 (修正有) 【目的】 単一のキャッシュ・ミスの処理中に将来のキ
ャッシュ・ミスを処理し、多レベル・キャッシュ・シス
テムを含むコンピュータ・プロセッサでのメモリ参照の
結果でおきるキャッシュ・ミス・ペナルティを統計的に
減少させる。 【構成】 プロセッサ21がデータ・ワードにアクセス
しようとしたことに応答して、キャッシュ制御装置22
が第1レベル・キャッシュ24でそのデータ・ワードを
探索する。アクセスが試みられた結果、第1レベル・キ
ャッシュ・ミスが発生すると、第2レベル・キャッシュ
23でデータ・ワードが探索される。第2レベル・キャ
ッシュ・ミスが発生すると、参照中のデータ・ワードを
含む新しいデータ・ラインがメイン・メモリ25から取
り出される。同時に、キャッシュ制御装置22は、新し
いメモリ・データ・ラインによってマップされる第1レ
ベル・キャッシュ・エントリのうちのどれが無効である
かを識別する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本願発明は、多レベル・キャッシ
ュ・システムにおけるキャッシュ・ミスを処理する方法
に関する。
【0002】
【従来の技術】大部分の現代のコンピュータ・システム
は、中央演算処理装置(CPU)とメイン・メモリとを
含む。CPUが命令およびオペランドを復号し実行でき
る速度は、その命令およびオペランドをメイン・メモリ
からCPUへ送ることができる速度に依存する。多数の
コンピュータ・システムは、CPUが命令およびオペラ
ンドをメイン・メモリから得るために必要な時間を短縮
するために、CPUとメイン・メモリの間にキャッシュ
・メモリを含む。
【0003】キャッシュ・メモリとは、小容量の高速バ
ッファ・メモリであり、CPUによって近い将来に使用
されると考えられるメイン・メモリの内容の部分を一時
的に保持するために使用される。キャッシュの主要な目
的は、データ取出しの場合でも、あるいは命令取出しの
場合でも、メモリ・アクセスを実行するのに必要な時間
を短縮することである。キャッシュ・メモリに位置する
情報には、メイン・メモリに位置する情報よりもずっと
短い時間でアクセスすることができる。したがって、キ
ャッシュ・メモリを含むCPUは、命令およびオペラン
ドが取り出され、あるいは記憶されるのを待つために費
やす必要のある時間がずっと短い。
【0004】キャッシュ・メモリは、1つまたは複数の
データ・ワードの多数のブロック(ラインとも呼ぶ)か
ら成る。各ブロックには、それがどのブロックまたはメ
イン・メモリのコピーであるかを一意に識別するアドレ
ス・タグが関連付けられている。プロセッサがメモリを
参照するたびに、アドレス・タグの比較が行われ、要求
されたデータのコピーがキャッシュ中に存在するかどう
かが調べられる。所望のメモリ・ブロックがキャッシュ
中にない場合、そのブロックは、メイン・メモリから検
索され、キャッシュに記憶され、プロセッサに供給され
る。新しいキャッシュ・ラインXをキャッシュに導入す
るとき、ターゲットのキャッシュ・エントリにすでに他
のキャッシュ・ラインYがある場合、存在するそのキャ
ッシュ・ラインYは「犠牲キャッシュ・ライン」にな
る。新しいキャッシュ・ラインXのための空間を設ける
には、犠牲キャッシュ・ラインYをキャッシュから削除
しなければならない。犠牲キャッシュ・ラインYが、キ
ャッシュに導入されてから修正されている場合、「ダー
ティ」と呼ばれ、メイン・メモリに書き直さなければな
らない。犠牲キャッシュ・ラインYが修正されていない
場合は、「クリーン」と呼ばれ、単に廃棄することがで
きる。2レベル・キャッシュ・システムでは、「レベル
1犠牲キャッシュ・ライン」と「レベル2犠牲キャッシ
ュ・ライン」があってよい。
【0005】CPUは、キャッシュを使用してメイン・
メモリからデータを検索するだけでなく、データを直接
メモリに書き込む代わりにキャッシュに書き込むことも
できる。プロセッサがデータをメモリに書き込みたいと
き、キャッシュはアドレス・タグの比較を行い、データ
を書き込むべきデータ・ブロックがキャッシュに存在す
るかどうかが調べられる。データ・ブロックがキャッシ
ュに存在する場合、データはキャッシュ中のそのデータ
・ブロックに書き込まれ、そのデータ・ブロックのデー
タ「ダーティ・ビット」がセットされる。ダーティ・ビ
ットは、データ・ブロック中のデータが修正されてお
り、したがって、そのデータ・ブロックをキャッシュか
ら削除する前に、修正済みデータをメイン・メモリに書
き直しておかなければならないことを示す。データを書
き込むべきデータ・ブロックがキャッシュに存在しない
場合、そのデータ・ブロックをキャッシュに取り込み、
あるいは、データを直接メイン・メモリに書き込まなけ
ればならない。
【0006】いくつかの応用例では、2つのキャッシュ
・メモリが使用される。第1レベル・キャッシュ・メモ
リは通常、第2レベル・キャッシュ・メモリ中のデータ
のサブセットを有する。同様に、第2レベル・キャッシ
ュ・メモリは通常、メイン・メモリ中のデータのサブセ
ットを有する。一般に、第1レベル・キャッシュは、第
2レベル・キャッシュと比べてサイズが小さい。第1レ
ベル・キャッシュは、通常1プロセッサ・サイクルであ
る高速アクセス時間を有する。第2レベル・キャッシュ
は、たとえば、2サイクルないし3サイクルのある程度
低速のアクセス時間を有する。第2レベル・キャッシュ
・ライン・サイズは、メモリ・アクセス・オーバヘッド
(ライン・サイズが大きければ大きいほど向上する)
と、使用されないデータを取り出すことによってサイク
ルの無駄にすることを避けることとの間の最適な折合い
である。通常、第2レベル・キャッシュ・ライン・サイ
ズは、2ワードないし16ワードである。第1レベル・
キャッシュ・ライン・サイズは通常、1ワードから、第
2レベル・キャッシュ用のキャッシュ・ラインのサイズ
までの範囲である。
【0007】アクセスされたデータは、第1レベル・キ
ャッシュ・メモリで探索される。第1レベル・キャッシ
ュ・メモリでミスがあった場合、アクセスされたデータ
は、第2レベル・キャッシュ・メモリで探索される。第
2レベル・キャッシュ・メモリでミスがあった場合、デ
ータはメイン・メモリから取り出される。
【0008】プロセッサ・システム用のある2レベル・
キャッシュ構成では、第1レベル・キャッシュは、第2
レベル・キャッシュの完全なサブセットである。第1レ
ベル・キャッシュは、第2レベル・キャッシュよりも小
規模であり、第2レベル・キャッシュよりもプロセッサ
に近い。第1レベル・キャッシュは、第2レベル・キャ
ッシュよりも小規模であり、かつ第2レベル・キャッシ
ュよりもプロセッサに近いため、一般に、第1レベル・
キャッシュに伴う第2レベル・キャッシュやメモリより
もアクセス待ち時間が短いので改良された性能を提供す
る。
【0009】通常の動作では、あるメモリ参照を満たす
のに必要ないくつかの異なる動作がある。メモリ参照と
は一般に、ロード命令または記憶命令である。まず、最
も簡単で最も高速の参照は、第1レベル・キャッシュで
ヒットすることができる。ヒットは、所望のメモリ・ア
ドレスのデータが、検査中のキャッシュ(第1レベル・
キャッシュまたは第2レベル・キャッシュ)に存在する
ときとして定義されている。ミスは、所望のメモリ・ア
ドレスのデータが、検査中のキャッシュ(第1レベル・
キャッシュまたは第2レベル・キャッシュ)に存在しな
いメモリ参照として定義されている。第1レベル・キャ
ッシュでヒットがあったとき、ゼロ・サイクル・ペナル
ティがあり、処理ペナルティなしで参照が完了する。
【0010】次に高速のキャッシュは、第2レベル・キ
ャッシュでヒットする第1レベル・キャッシュ・ミスで
ある。この場合、単一の第1レベル・キャッシュ・ライ
ンを第2レベル・キャッシュから得たデータで埋めるた
めの動作シーケンスが実行される。続いて、データがプ
ロセッサに供給され、あるいは、記憶が完了する。これ
は、中間速度動作であり、プロセッサは、メモリ参照が
成し遂げられる間フリーズする。
【0011】最も低速の動作は、メモリ参照が第1レベ
ル・キャッシュでも第2レベル・キャッシュでもミスし
たときのものである。この例では、関連するラインをメ
イン・メモリから第2レベル・キャッシュに導入するた
めの長い動作シーケンスが開始される。このデータがメ
モリから返され第2レベル・キャッシュにコピーされる
と、第1レベル・キャッシュが再び参照され、その結
果、今度は、第1レベル・キャッシュ・ミスが発生し、
次に、第2レベル・キャッシュでヒットが発生する。こ
れによって、第2レベル・キャッシュ・ラインの関連す
る部分が第1レベル・キャッシュに書き込まれ、続い
て、要求されたデータがプロセッサに供給され、あるい
は、記憶が完了する。
【0012】1つの拡張は、第2レベル・キャッシュ・
ラインが書き込まれるのと同時に、アドレスされた第1
レベル・キャッシュ・ラインを埋めることである。これ
によって、第1レベル・キャッシュ・ミスのペナルティ
がなくなり、第2レベル・キャッシュ・ミスの性能ペナ
ルティだけになる。マルチレベル・キャッシュ・システ
ムに関する一般的な情報については、たとえば、J. L.
Baer、W. H. Wang著「Multilevel Cache Hierarchies;
Organizations, Protocols and Performances」(Journ
al of Parallel Distributed Computing、第6巻、19
89年、451〜476ページ)、W. H. Wang、J. Bae
r、およびH. Levy著「Organization and Performance o
f a Two-Level Virtual-Real Cache Hierarchy」(Proc
eedings of the 16th Annual International Symposium
on Computer Architecture、1989年、140〜1
48ページ)、J. L. Baer、W. H. Wang著「On the Inc
lusion Properties for Multi-Level Cache Hierarchie
s」(Proceedings of the 15th Annual International
Symposium on Computer Architecture、1988年、7
3〜80ページ)を参照されたい。
【0013】
【発明が解決しようとする課題】本願発明の目的は、単
一のキャッシュ・ミスの処理中に将来のキャッシュ・ミ
スを処理するようにして、多レベル・キャッシュ・シス
テムを含むコンピュータ・プロセッサでのメモリ参照の
結果でおきるキャッシュ・ミス・ペナルティを統計的に
減少させることである。
【0014】
【課題を解決するための手段】本願発明の好ましい実施
例によれば、計算機システムは、プロセッサと、メイン
・メモリと、第1レベル・キャッシュと、第2レベル・
キャッシュとを含む。第2レベル・キャッシュはデータ
・ラインを含む。第1レベル・キャッシュは、第2レベ
ル・キャッシュ内のデータ・ラインのデータ・ライン・
フラグメントを含む。好ましい実施例では、第2レベル
・キャッシュに記憶されるデータ・ラインのサイズは6
4バイト(16ワード)であり、第1レベル・キャッシ
ュに記憶されるデータ・ライン・フラグメントのサイズ
は16バイト(4ワード)である。プロセッサがデータ
・ワードにアクセスしようとしたことに応答して、キャ
ッシュ制御装置が第1レベル・キャッシュでそのデータ
・ワードを探索する。アクセスが試みられた結果、第1
レベル・キャッシュ・ミスが発生すると、第2レベル・
キャッシュでデータ・ワードが探索される。第2レベル
・キャッシュ・ミスが発生すると、参照中のデータ・ワ
ードを含む新しいデータ・ラインがメイン・メモリから
取り出される。同時に、キャッシュ制御装置は、新しい
メモリ・データ・ラインによってマップされる第1レベ
ル・キャッシュ・エントリのうちのどれが無効であるか
を識別する。
【0015】好ましい実施例では、無効なエントリに
は、たとえば、パージ、フラッシュ、またはマルチプロ
セッサのスヌープによって以前に無効のマークが付けら
れた第1レベル・キャッシュ・エントリと、レベル2犠
牲キャッシュ・ラインのキャッシュ・ライン・フラグメ
ントを含んでいた第1レベル・キャッシュ内のエントリ
とが含まれる。レベル2キャッシュ・ラインとは、メイ
ン・メモリから取り出された新しいデータ・ラインで入
れ換えられる第2レベル・キャッシュ内のキャッシュ・
ラインである。新しいデータ・ラインは、メイン・メモ
リから取り出された後、第2レベル・キャッシュに入れ
られ、レベル2犠牲キャッシュ・ラインと入れ換える。
また、新しいデータ・ラインのできるだけ多くのデータ
・ライン・フラグメントが、第1レベル・キャッシュ中
の無効なエントリに入れられる。第1レベル・キャッシ
ュに入れられた新しいデータ・ラインのデータ・ライン
・フラグメントのうちの1つは、現在参照中のデータ・
ワードを含む。
【0016】
【実施例】図1は、本願発明の好ましい実施例による多
レベル・キャッシュを含むプロセッサ・システムの概略
ブロック図を示す。処理システムに対する命令を実行す
る中央演算処理装置(CPU)21が示されている。メ
イン・メモリ25は、処理システム用の記憶域を提供す
る。好ましい実施例では、各データ・ワードは4バイト
を含む。2レベル・キャッシュ・システムは、第1レベ
ル・キャッシュ24と第2レベル・キャッシュ23とを
含む。
【0017】好ましい実施例では、第1レベル・キャッ
シュ24は、キャッシュ・ライン・サイズが小さな4ワ
ードである、小規模で高速の直接マップ・キャッシュで
ある。第1レベル・キャッシュ24は、第2レベル・キ
ャッシュ23のサブセットを含む。第1レベル・キャッ
シュ24内の有効な各エントリは、第2レベル・キャッ
シュ23内の有効なキャッシュ・ラインの4ワード・フ
ラグメントを含む。好ましい実施例では、第1レベル・
キャッシュ24から第2レベル・キャッシュへの書込み
は行われない。すなわち、記憶命令に応答して、データ
を第1レベル・キャッシュ24に記憶することはできる
が、第2レベル・キャッシュ23に書き込むことはでき
ない。したがって、第1レベル・キャッシュ24は、第
2レベル・キャッシュ23よりも新しいデータを有する
ことができる。第2レベル・キャッシュは、キャッシュ
・ライン・サイズがより大きな16ワードである、より
大規模で低速の直接マップ・キャッシュである。
【0018】キャッシュ制御論理機構22は、CPU2
1のために第1レベル・キャッシュ24および第2レベ
ル・キャッシュ23にアクセスし、メモリ25と第1レ
ベル・キャッシュ24と第2レベル・キャッシュ23の
間のデータ転送の調和をとる。キャッシュ制御論理機構
22とメモリ25の間のデータ・アクセスは、メモリ・
データ線40を使用して実行される。CPU21は、ア
ドレス線31および第1レベル・アドレス線37を使用
してキャッシュ制御論理機構22および第1レベル・キ
ャッシュ24にデータ・アドレスを送る。CPU21
は、記憶データ線33を使用して、記憶すべきデータを
キャッシュ制御論理機構22に送る。CPU21は、第
1レベル・ロード・データ線32を介してロード・デー
タを受け取る。
【0019】CPU21は、アドレス線31および第2
レベル・アドレス線34を使用してキャッシュ制御論理
機構22および第2レベル・キャッシュ23にデータ・
アドレスを送る。CPU21は、第2レベル・キャッシ
ュ23から第2レベル・データ出力線35を介してロー
ド・データを受け取る。第2レベル・キャッシュ23
は、第2レベル・データ入力線36を介してデータを受
け取る。第1レベル・キャッシュ24は、第1レベル・
データ入力線39を介してデータを受け取る。第1レベ
ル・キャッシュ24は、第1レベル・データ出力線38
を介してキャッシュ制御論理機構22にデータを送る。
【0020】図2、図3、図4、図5、および図6は、
本願発明の好ましい実施例によるメモリ参照の結果とし
て発生する、図1に示したプロセッサでのデータ・フロ
ーを示す。
【0021】図2中の点線は、ロードのためのメモリ参
照の結果、第1レベル・キャッシュ24でヒットが発生
するときのデータ・フローを示す。図のように、CPU
21は、アドレス線31上でキャッシュ制御論理機構2
2へアドレスを送り、キャッシュ制御機構22はそのア
ドレスを第1レベル・アドレス線37へ送り、さらに、
第1レベル・キャッシュ24へ送る。第1レベル・キャ
ッシュ24から読み取られたデータは、第1レベル・デ
ータ出力線38上でキャッシュ制御論理機構22へ送ら
れ、第1レベル・ロード・データ線32上でCPU21
へ送られ、ロード要求が完了する。
【0022】図3中の点線は、記憶のためのメモリ参照
の結果、第1レベル・キャッシュ24でヒットが発生す
るときのデータ・フローを示す。図のように、CPU2
1は、アドレス線31上でキャッシュ制御論理機構22
へアドレスを送る。また、CPU21は、記憶データ線
33上でキャッシュ制御論理機構22へ記憶データを送
る。キャッシュ制御機構22は、第1レベル・アドレス
線37上にアドレスを置き、さらに、そのアドレスを第
1レベル・キャッシュ24上に置く。第1レベル・キャ
ッシュ24は、第1レベル・キャッシュ24のそのアド
レスにある現内容を第1レベル・データ出力線38上で
キャッシュ制御論理機構22に返す。どんなタイプの記
憶命令が関与するかに応じて、キャッシュ制御論理機構
22は、第1レベル・キャッシュ24から返されたデー
タをCPU21からの記憶データと選択的にマージす
る。マージされたデータは、第1レベル・データ入力線
39を使用して第1レベル・キャッシュ24に書き込ま
れ、記憶要求が完了する。
【0023】図4中の点線は、記憶またはロードのため
のメモリ参照の結果、第1レベル・キャッシュ24でク
リーン・ミスが発生し、第2レベル・キャッシュ23で
ヒットが発生するときのデータ・フローを示す。クリー
ン・ミスが発生するのは、第1レベル・キャッシュ24
でアクセスされたデータが、要求されたキャッシュ・ラ
インの一部ではなく、かつ修正されていないときであ
り、したがって、この修正済みデータを第2レベル・キ
ャッシュ23に書き込むことも、あるいはメイン・メモ
リ25に書き込むこともなく、このデータを第1レベル
・キャッシュ24から削除して、要求されたキャッシュ
・ラインのための空間を設けることができる。アドレス
・タグの比較によって、必要なデータ・ブロックが第1
レベル・キャッシュ24にないことが示されると、第2
レベル・キャッシュ23が検査される。第1レベル・キ
ャッシュ24中の対応するデータ・ブロックがダーティ
ではなく、第2レベル・キャッシュ23でヒットがあっ
た場合、第1レベル・キャッシュ24中の対応するデー
タ・ブロックは単に、無効化され第2レベル・キャッシ
ュ23から得たデータで上書きされる。CPU21は、
第2レベル・キャッシュ23にアクセスするために、キ
ャッシュ制御論理機構22へのアドレス線31をドライ
ブし、キャッシュ制御論理機構22は第2レベル・アド
レス線34をドライブする。これに応答して、第2レベ
ル・キャッシュ23は、第2レベル・データ出力線35
上でデータを返す。また、キャッシュ制御論理機構22
は、第1レベル・アドレス線37上で第1レベル・キャ
ッシュ24のアドレスをドライブする。第2レベル・キ
ャッシュ23からのデータは次いで、第2レベル・デー
タ出力線35および第1レベル・データ入力線39を使
用して、キャッシュ制御論理機構22を介して第1レベ
ル・キャッシュ24に書き込まれる。記憶命令の場合、
キャッシュ制御論理機構22は、CPU21からのデー
タが第1レベル・キャッシュ24に書き込まれるとき、
CPU21からの記憶データを前記データとマージす
る。ロード命令の場合、CPU21は、第2レベル・デ
ータ出力線35上で第2レベル・キャッシュ23から直
接ロード・データを得る。
【0024】図5および図6中の点線は、記憶またはロ
ードのためのメモリ参照の結果、第1レベル・キャッシ
ュ24でダーティ・ミスが発生し、第2レベル・キャッ
シュ23でヒットが発生するときのデータ・フローを示
す。ダーティ・ミスが発生するのは、第1レベル・キャ
ッシュ24中のアクセスされたデータが、要求されたキ
ャッシュ・ラインの一部ではなく、かつ修正されている
ときであり、したがって、この修正済みデータを第2レ
ベル・キャッシュ23またはメイン・メモリ25にも書
き込まない限り、第1レベル・キャッシュ24からデー
タを削除することはできない。アドレス・タグの比較に
よって、必要なデータ・ブロックが第1レベル・キャッ
シュ24にないことが示されると、第2レベル・キャッ
シュ23が検査される。第1レベル・キャッシュ24中
の対応するデータ・ブロックがダーティであり、第2レ
ベル・キャッシュ23でヒットがあった場合、第1レベ
ル・キャッシュ24中の対応するデータ・ブロックは第
2レベル・キャッシュ23に書き込まれる。これを図5
で示す。図5で、CPU21は、アドレス線31上でキ
ャッシュ制御論理機構22へアドレスを送る。キャッシ
ュ制御論理機構22は、第1レベル・アドレス線37上
で第1レベル・キャッシュ24のアドレスをドライブす
る。またCPU21は、第2レベル・アドレス線34を
ドライブするようにしむける。第1レベル・キャッシュ
24からのデータは次いで、第1レベル・データ出力線
38および第2レベル・データ入力線36を使用して、
キャッシュ制御論理機構22を介して第2レベル・キャ
ッシュ23に書き込まれる。
【0025】ダーティ・データの書直しが完了した後、
第1レベル・キャッシュ24でのクリーン・ミスの場合
と同様に参照が継続する。図6に示したように、CPU
21は、第2レベル・キャッシュ23にアクセスするた
めに、キャッシュ制御論理機構22へのアドレス線31
をドライブし、キャッシュ制御論理機構22は、第2レ
ベル・アドレス線34をドライブする。これに応答し
て、第2レベル・キャッシュは、第2レベル・データ出
力線35上でデータを返す。キャッシュ制御論理機構2
2は、第1レベル・アドレス線37上で第1レベル・キ
ャッシュ24のアドレスをドライブする。第2レベル・
キャッシュ23からのデータは次いで、第2レベル・デ
ータ出力線35および第1レベル・データ入力線39を
使用して、キャッシュ制御論理機構22を介して第1レ
ベル・キャッシュ24に書き込まれる。記憶命令の場
合、キャッシュ制御論理機構22は、CPU21からの
データが第1レベル・キャッシュ24に書き込まれると
きに、CPU21からの記憶データを前記データとマー
ジする。ロード命令の場合、CPU21は、第2レベル
・データ出力線35上で第2レベル・キャッシュ23か
ら直接ロード・データを得る。
【0026】第1レベル・キャッシュ24と第2レベル
・キャッシュ23の両方でミスがあったとき、データは
メイン・メモリ25から導入しなければならない。第1
レベル・キャッシュ24でダーティ・ミスがあった場
合、上述のように、ダーティ・データは第2レベル・キ
ャッシュ23に書き直される。第2レベル・キャッシュ
23でダーティ・ミスがあり、すなわち、第2レベル犠
牲キャッシュ・ラインがダーティであるとき、第2レベ
ル・コピー出力動作を介してキャッシュ・ライン全体を
メイン・メモリ25に書き直さなければならない。第2
レベル犠牲キャッシュ・ラインとは、メイン・メモリ2
5から取り出された新しいデータ・ラインで置換される
第2レベル・キャッシュ23内のキャッシュ・ラインで
ある。第2レベル・コピー出力が実行される間、第2レ
ベル犠牲キャッシュ・ラインの各部を保持していた第1
レベル・キャッシュ・エントリまたは第2レベル・キャ
ッシュ・エントリが無効化される。第2レベル・コピー
出力動作が完了した後、メイン・メモリ25からデータ
が読み取られ、第2レベル・キャッシュ23に書き込ま
れる。
【0027】以下でさらに説明するように、本願発明の
好ましい実施例では、メイン・メモリ25からデータ・
ラインが取り出されるとき、第1レベル・キャッシュ2
4中の要求された16バイト・ラインが埋められるだけ
でなく、第1レベル・キャッシュ24中の最大3つの他
の第1レベル・キャッシュ・ラインも埋められる。これ
らの他の3つのキャッシュ・ラインは、現在参照されて
いないが、キャッシュ参照の統計的局所性のために、何
らかの他のキャッシュ・ミスによって入れ換えられる前
に将来の命令によって参照される確率が高い。
【0028】図7、図8、図9、図10は、本願発明の
好ましい実施例によって第2レベル・キャッシュでのミ
スの後に第1レベル・キャッシュの埋込みを処理する様
々な方法を示す。
【0029】第2レベル・キャッシュ23および第1レ
ベル・キャッシュ24中のキャッシュ・ラインを図7に
示す。第2レベル・キャッシュ23は、16個のキャッ
シュ・ラインを含む。図7は、16個のキャッシュ・ラ
インのうちのキャッシュ・ライン61、62、64、6
5、66、67を示す。各キャッシュ・ラインは、16
個のデータ・ワードを含む。図7で、16個のワード・
キャッシュ・ラインは、4つの4ワード・ライン・フラ
グメントとして構成されたものとして示されている。各
キャッシュ・ラインごとに、第1列51は、キャッシュ
・ライン・ワード0ないし3を含む。第2列52は、キ
ャッシュ・ライン・ワード4ないし7を含む。第3列5
3は、キャッシュ・ライン・ワード8ないし11を含
む。第4列54は、キャッシュ・ライン・ワード12な
いし15を含む。第1レベル・キャッシュ24は、8つ
の4ワード・ライン・フラグメントを含む。各4ワード
・ライン・フラグメントは、特定の第2レベル・キャッ
シュ・エントリにマップされる。図7は、ライン・フラ
グメント71、72、73、74、75、76、77、
78を示す。好ましい実施例では、第2レベル・キャッ
シュ23および第1レベル・キャッシュ24は直接マッ
プされる。各第2レベル・キャッシュ・ラインは、4つ
の4ワード・フラグメントとして示されている。第2レ
ベル・キャッシュ・ラインの4つの4ワード・フラグメ
ントはそれぞれ、特定の第1レベル・キャッシュ・エン
トリにマップされる。
【0030】図7で、16ワード・キャッシュ・ライン
Aは、第2レベル・キャッシュ23の第2レベル・キャ
ッシュ・エントリ61に存在するものとして示されてい
る。16ワード・キャッシュ・ラインBは、第2レベル
・キャッシュ23の第2レベル・キャッシュ・エントリ
62に存在するものとして示されている。16ワード・
キャッシュ・ラインIは、第2レベル・キャッシュ23
の第2レベル・キャッシュ・エントリ64に存在するも
のとして示されている。16ワード・キャッシュ・ライ
ンJは、第2レベル・キャッシュ23の第2レベル・キ
ャッシュ・エントリ65に存在するものとして示されて
いる。16ワード・キャッシュ・ラインKは、第2レベ
ル・キャッシュ23の第2レベル・キャッシュ・エント
リ66に存在するものとして示されている。16ワード
・キャッシュ・ラインPは、第2レベル・キャッシュ2
3の第2レベル・キャッシュ・エントリ67に存在する
ものとして示されている。
【0031】同様に、16ワード・キャッシュ・ライン
Aの最初の4つのワードは、第1レベル・キャッシュ2
4の第1レベル・キャッシュ・エントリ71に存在す
る。16ワード・キャッシュ・ラインKのワード8ない
し11は、第1レベル・キャッシュ24の第1レベル・
キャッシュ・エントリ73に存在する。16ワード・キ
ャッシュ・ラインAの最後の4つのワードは、第1レベ
ル・キャッシュ24の第1レベル・キャッシュ・エント
リ74に存在する。16ワード・キャッシュ・ラインB
の最初の4つのワードは、第1レベル・キャッシュ24
の第1レベル・キャッシュ・エントリ75に存在する。
16ワード・キャッシュ・ラインJのワード4ないし7
は、第1レベル・キャッシュ24の第1レベル・キャッ
シュ・エントリ76に存在する。16ワード・キャッシ
ュ・ラインJのワード8ないし11は、第1レベル・キ
ャッシュ24の第1レベル・キャッシュ・エントリ77
に存在する。16ワード・キャッシュ・ラインPの最後
の4つのワードは、第1レベル・キャッシュ24の第1
レベル・キャッシュ・エントリ78に存在する。
【0032】第1レベル・キャッシュ24の第1レベル
・キャッシュ・エントリ72中の見出しは、無効とマー
ク付けされている。キャッシュ・ラインは、パージ命令
やフラッシュ命令やマルチプロセッサ・スヌープなどい
くつかの手段を介して無効化することができる。
【0033】第1レベル・キャッシュ24と第2レベル
・キャッシュ23の両方に関してミスが発生すると、第
2レベル・キャッシュ23に新しいラインが導入され、
第1レベル・キャッシュ24に適当な4ワード・ライン
・フラグメントが書き込まれる。
【0034】たとえば、メイン・メモリ25に存在する
が、第1レベル・キャッシュ24にも第2レベル・キャ
ッシュ23にも存在しない、ラインQの第2ワードにC
PU21がアクセスする必要があると仮定する。さら
に、ラインQが、ラインAと同じ第1レベル・キャッシ
ュ・エントリおよび第2レベル・キャッシュ・エントリ
にマップされると仮定する。
【0035】ラインQを第2レベル・キャッシュ23に
書き込み、適当な4ワード・フラグメントを第1レベル
・キャッシュ24に書き込む、ある方法では、ラインA
はまず、それがダーティであるときにメイン・メモリ2
5に書き直される。次に、ラインAの各部を保持するす
べての第1レベル・キャッシュ・エントリおよび第2レ
ベル・キャッシュ・エントリが無効化される。この場
合、第2レベル・キャッシュ・エントリ61、第1レベ
ル・キャッシュ・エントリ71、および第1レベル・キ
ャッシュ・エントリ74が無効化される。次いで、ライ
ンQが、メイン・メモリ25から導入され、第2レベル
・キャッシュ23中の第2レベル・キャッシュ・エント
リ61に書き込まれる。最後に、ラインQの第1の4ワ
ード・フラグメントが、第2レベル・キャッシュ23か
ら読み出され、第1レベル・キャッシュ24の第1レベ
ル・キャッシュ・エントリ71に書き込まれる。この結
果を図8に示す。
【0036】上述の方法は、ラインQの適当な4ワード
・フラグメントがメイン・メモリ25から第2レベル・
キャッシュ23に導入されるとき、第1レベル・キャッ
シュ24に直接、前記フラグメントを入れることによっ
て、改善することができる。これによって、ラインQの
第1の4ワード・フラグメントを、第2レベル・キャッ
シュ23から読み出して第1レベル・キャッシュ24に
書き込むことができるようにするために、ラインQが第
2レベル・キャッシュ23に書き込まれるのを待つこと
が不要になる。多数のシステムでは、バイパス経路のた
めに、追加データ経路論理機構が必要になる可能性があ
る。しかし、本発明の好ましい実施例では、キャッシュ
制御論理機構22が、第1レベル・キャッシュ24と第
2レベル・キャッシュ23の両方及び又はメイン・メモ
リ25のインタフェースとして働き、追加データ経路論
理機構を不要にする。
【0037】上述の方法に対する追加改良では、キャッ
シュ制御装置22は、ラインAが上書きされることによ
って無効化された第1レベル・キャッシュ・エントリを
記憶することができる。メイン・メモリ25からライン
Qが導入されると、4ワード・フラグメントが、第1レ
ベル・キャッシュ24の第1レベル・キャッシュ・エン
トリ71および第1レベル・キャッシュ・エントリ74
に書き込まれる。この結果を図9に示す。この改良の利
点は、ラインQの第4の4ワード・フラグメントへの以
後のアクセスが第1レベル・キャッシュ24でヒットす
ることである。ラインQの第2または第3の4ワード・
フラグメントへの以後のアクセスでは依然として、第2
レベル・キャッシュから第1レベル・キャッシュへの移
動が必要である。
【0038】本願発明の好ましい実施例では、上述の方
法が再び改良される。この場合、どの第1レベル・キャ
ッシュ・フラグメントがラインAフラグメントによって
無効化されたか記憶されるだけでなく、すでに他の理由
で無効化されている可能性がある関連する第1レベル・
キャッシュ・エントリに関する検査も行われる。メイン
・メモリ25からラインQが導入されると、ラインQの
できるだけ多くの4ワード・フラグメントが第1レベル
・キャッシュ24に書き込まれる。この結果は、図10
で分かる。この「ブートレグ第1レベル・キャッシュ埋
込み(bootleg first level cache fill)」は、図1に示
した本願発明のシステム構成によって実現可能になる。
メイン・メモリ25から第2レベル・キャッシュ23に
書き込まれるデータがキャッシュ制御論理機構22を通
過するため、データ経路ハードウェアを追加せずにこの
好ましい方法を実施することができる。
【0039】図11は、本願発明の好ましい実施例によ
る方法の動作を要約したものである。この方法は、埋め
込まれている位置が、要求されたものではない場合で
も、必要に応じて第1レベル・キャッシュ・エントリを
埋め込むことを含む。方法ステップ81で、通常の第1
レベル・キャッシュ・ミスが発生していて、第2レベル
・キャッシュ23が検査され、そして第2レベル・キャ
ッシュ23でもミスが発生し、メイン・メモリ25の参
照が開始される。方法ステップ82で、メモリからの新
しいデータ・ラインが要求される。
【0040】方法ステップ83で、新しいメモリ・デー
タを待つ間に、様々な動作が実行され、必要な第1レベ
ル・キャッシュ・エントリが無効化されて第1レベル・
キャッシュで空間が設けられる。第1レベル犠牲キャッ
シュ・ラインがダーティである場合、データは第2レベ
ル・キャッシュに書き直される。必要な第2レベル・キ
ャッシュ・エントリと、第2レベル犠牲キャッシュ・ラ
インのフラグメントを含む第1レベル・キャッシュ・エ
ントリも無効化され、第2レベル・キャッシュで空間が
設けられる。第2レベル犠牲キャッシュ・ラインの一部
がダーティである場合、データはメモリに書き直され
る。また、新しいメモリ・データによってマップされる
無効な第1レベル・キャッシュ・エントリはすべて識別
される。
【0041】方法ステップ84で、メモリからの新しい
データ・ラインが第2レベル・キャッシュに書き込まれ
る間、データ・ラインのフラグメントは、上記ステップ
で判定された利用可能な第1レベル・キャッシュエント
リのそれぞれに書き込まれる。この方法を使用すると、
長い時間にわたって無効なままである第1レベル・キャ
ッシュ・エントリはほとんどなくなる。最大3つの余分
の第1レベル・キャッシュ・エントリを余分のペナルテ
ィなしで埋め込むことができる。
【0042】以上で説明を終了するが、本願発明には、
例として次のような実施態様が含まれる。
【0043】(イ)プロセッサ(21)と、メイン・メ
モリ(25)と、第2レベルキャッシュ内のデータ・ラ
インのデータ・ライン・フラグメントを含む第1レベル
・キャッシュ(24)と、データ・ラインを含む前記第
2レベル・キャッシュ(23)とを含む計算機システム
において、プロセッサ(21)によるキャッシュ参照の
結果、第1レベル・キャッシュ(24)のミスおよび第
2レベル・キャッシュ(23)のミスが発生したときに
実行される方法であって、(a)新しいデータ・ライン
をメイン・メモリ(25)から取り出すステップと、
(b)ステップ(a)と同時に、第1レベル・キャッシ
ュ(24)中のどのエントリが無効であるかを識別する
ステップと、(c)新しいデータ・ラインがメイン・メ
モリ(25)から取り出されたとき、新しいデータ・ラ
インから得たできるだけ多くのデータ・ライン・フラグ
メントを第1レベル・キャッシュ(24)中の無効なエ
ントリに入れるステップとを含むことを特徴とする新し
いワード・フラグメントの書き込み方法。
【0044】(ロ)上記ステップ(c)と同時に、新し
いデータ・ラインが第2レベル・キャッシュ(23)に
入れられ、第2レベル・キャッシュ(23)内の第2レ
ベル犠牲キャッシュ・ラインと入れ換えるステップを更
に含むことを特徴とする上記(イ)に記載の方法。
【0045】(ハ)上記ステップ(b)で、無効とマー
ク付けされた第1レベル・キャッシュ(24)のエント
リと、第2レベル・キャッシュ(23)内の第2レベル
犠牲キャッシュ・ラインから得たキャッシュ・ライン・
フラグメントを含む第1レベル・キャッシュ(24)内
のエントリとが、無効なエントリに含まれることを特徴
とする上記(イ)に記載の方法。
【0046】(ニ)各第2レベル・キャッシュ(23)
ラインが、16個のワードを含み、各第1レベル・キャ
ッシュ(24)ライン・フラグメントが、4つのワード
を含むことを特徴とする上記(イ)に記載の方法。
【0047】(ホ)計算機システムにおいて、プロセッ
サ(21)と、メイン・メモリ(25)と、第2レベル
・キャッシュ(23)内のデータ・ラインのデータ・ラ
イン・フラグメントを含む第1レベル・キャッシュ(2
4)と、データ・ラインを含む前記第2レベル・キャッ
シュ(23)と、プロセッサ(21)、メイン・メモリ
(25)、第1レベル・キャッシュ(24)、および第
2レベル・キャッシュ(23)に結合されたキャッシュ
制御装置(22)とを備え、キャッシュ制御装置(2
2)が、第1レベル・キャッシュ(24)のミスおよび
第2レベル・キャッシュ(23)のミスが、プロセッサ
(21)によるキャッシュ参照の結果に伴って発生した
とき、新しいデータ・ラインをメイン・メモリ(25)
から取り出す手段と、第1レベル・キャッシュ(24)
中のどのエントリが無効であるかを識別する手段と、新
しいデータ・ラインがメイン・メモリ(25)から得ら
れたとき、新しいデータ・ラインから得たできるだけ多
くのデータ・ライン・フラグメントを第1レベル・キャ
ッシュ(24)中の無効なエントリに入れる手段とを備
えることを特徴とする計算機システム。
【0048】(ヘ)上記キャッシュ制御装置(22)が
さらに、新しいデータ・ラインから得たできるだけ多く
のデータ・ライン・フラグメントを第1レベル・キャッ
シュ(24)中の無効なエントリに入れるのと同時に、
第2レベル・キャッシュ(23)内の第2レベル犠牲キ
ャッシュ・ラインと入れ換える手段を備えることを特徴
とする上記(ホ)に記載の計算機システム。
【0049】(ト)上記識別手段によって識別されるエ
ントリには、無効とマーク付けされた第1レベル・キャ
ッシュ(24)のエントリと、第2レベル・キャッシュ
(23)内の第2レベル犠牲キャッシュ・ラインから得
たキャッシュ・ライン・フラグメントを含む第1レベル
・キャッシュ(24)内のエントリとが含まれることを
特徴とする上記(ホ)に記載の計算機システム。
【0050】(チ)各第2レベル・キャッシュ(23)
ラインが、16個のワードを含み、各第1レベル・キャ
ッシュ(24)ライン・フラグメントが、4つのワード
を含むことを特徴とする上記(ホ)に記載の計算機シス
テム。
【0051】(リ)プロセッサ(21)と、メイン・メ
モリ(25)と、第2レベルキャッシュ内のデータ・ラ
インのデータ・ライン・フラグメントを含む第1レベル
・キャッシュ(24)と、データ・ラインを含む前記第
2レベル・キャッシュ(23)とを含む計算機システム
における新しいワード・フラグメントの書き込み方法に
おいて、(a)プロセッサ(21)がデータ・ワードに
アクセスしようとしたことに応答して、第1レベル・キ
ャッシュ(24)でそのデータ・ワードを探索するステ
ップと、(b)ステップ(a)が実行された結果、第1
レベル・キャッシュ(24)のミスが発生したとき、第
2レベル・キャッシュ(23)でデータ・ワードを探索
するステップと、(c)ステップ(b)が実行された結
果、第2レベル・キャッシュ(23)のミスが発生した
とき、(c.1)データ・ワードを含む新しいデータ・
ラインをメイン・メモリ(25)から取り出すサブステ
ップと、(c.2)サブステップ(c.1)と同時に、
第1レベル・キャッシュ(24)中のどのエントリが無
効であるかを識別するサブステップと、(c.3)デー
タ・ワードを含む新しいデータ・ラインがメイン・メモ
リ(25)から取り出されたとき、新しいデータ・ライ
ンから得たできるだけ多くのデータ・ライン・フラグメ
ントを第1レベル・キャッシュ(24)中の無効なエン
トリに入れるサブステップとを含むことを特徴とする新
しいワード・フラグメントの書き込み方法。
【0052】(ヌ)上記サブステップ(c.3)と同時
に、新しいデータ・ラインが第2レベル・キャッシュ
(23)に入れられ、第2レベル・キャッシュ(23)
内の第2レベル犠牲キャッシュ・ラインと入れ換えるサ
ブステップを更に含むことを特徴とする上記(リ)に記
載の方法。
【0053】(ル)上記サブステップ(c.2)で、無
効とマーク付けされた第1レベル・キャッシュ(24)
のエントリと、第2レベル・キャッシュ(23)内の第
2レベル犠牲キャッシュ・ラインから得たキャッシュ・
ライン・フラグメントを含む第1レベル・キャッシュ
(24)内のエントリとが、無効なエントリに含まれる
ことを特徴とする上記(リ)に記載の方法。
【0054】(ヲ)各第2レベル・キャッシュ(23)
ラインが、16個のワードを含み、各第1レベル・キャ
ッシュ(24)ライン・フラグメントが、4つのワード
を含むことを特徴とする上記(リ)に記載の方法。
【0055】前記の議論は、本願発明の典型的な方法お
よび実施例を開示し説明したものに過ぎない。当業者に
は理解されるように、本願発明は、その趣旨または基本
的な特徴から逸脱せずに他の特定の形で実施することが
できる。したがって、本願発明の開示は、特許請求の範
囲に記載された本発明の範囲を例示するものであるが、
制限するものではない。
【0056】
【発明の効果】以上の説明で明らかなように、本願発明
は、単一のキャッシュ・ミスの処理中に将来のキャッシ
ュ・ミスを処理するようにして、多レベル・キャッシュ
・システムを含むコンピュータ・プロセッサでのメモリ
参照の結果でおきるキャッシュ・ミス・ペナルティを統
計的に減少させることが可能となる。
【図面の簡単な説明】
【図1】本願発明の好ましい実施例による多レベル・キ
ャッシュを含むプロセッサ・システムの概略ブロック図
である。
【図2】本願発明の好ましい実施例よるメモリ参照の結
果として発生する、図1に示したプロセッサでのデータ
・フローを示す図である。
【図3】本願発明の好ましい実施例よるメモリ参照の結
果として発生する、図1に示したプロセッサでのデータ
・フローを示す図である。
【図4】本願発明の好ましい実施例よるメモリ参照の結
果として発生する、図1に示したプロセッサでのデータ
・フローを示す図である。
【図5】本願発明の好ましい実施例よるメモリ参照の結
果として発生する、図1に示したプロセッサでのデータ
・フローを示す図である。
【図6】本願発明の好ましい実施例よるメモリ参照の結
果として発生する、図1に示したプロセッサでのデータ
・フローを示す図である。
【図7】第2レベル・キャッシュでのミスの後の第1レ
ベル・キャッシュの埋込みを処理する様々な方法を示す
図である。
【図8】第2レベル・キャッシュでのミスの後の第1レ
ベル・キャッシュの埋込みを処理する様々な方法を示す
図である。
【図9】第2レベル・キャッシュでのミスの後の第1レ
ベル・キャッシュの埋込みを処理する様々な方法を示す
図である。
【図10】第2レベル・キャッシュでのミスの後の第1
レベル・キャッシュの埋込みを処理する様々な方法を示
す図である。
【図11】本願発明の好ましい実施例よって第2レベル
・キャッシュでのミスの後に第1レベル・キャッシュを
埋める方法を示すフロー・チャートである。
【符号の説明】
21 中央演算処理装置(CPU) 22 キャッシュ制御論理機構 23 第2レベル・キャッシュ 24 第1レベル・キャッシュ 25 メイン・メモリ 31 アドレス線 32 第1レベル・ロード・データ線 33 記憶データ線 34 第2レベル・アドレス線 35 第2レベル・データ出力線 36 第2レベル・データ入力線 37 第1レベル・アドレス線 38 第1レベル・データ出力線 39 第1レベル・データ入力線 40 メモリ・データ線

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 プロセッサ(21)と、メイン・メモリ
    (25)と、第2レベルキャッシュ内のデータ・ライン
    のデータ・ライン・フラグメントを含む第1レベル・キ
    ャッシュ(24)と、データ・ラインを含む前記第2レ
    ベル・キャッシュ(23)とを含む計算機システムにお
    いて、プロセッサ(21)によるキャッシュ参照の結
    果、第1レベル・キャッシュ(24)のミスおよび第2
    レベル・キャッシュ(23)のミスが発生したときに実
    行される方法であって、 (a)新しいデータ・ラインをメイン・メモリ(25)
    から取り出すステップと、 (b)ステップ(a)と同時に、第1レベル・キャッシ
    ュ(24)中のどのエントリが無効であるかを識別する
    ステップと、 (c)新しいデータ・ラインがメイン・メモリ(25)
    から取り出されたとき、新しいデータ・ラインから得た
    できるだけ多くのデータ・ライン・フラグメントを第1
    レベル・キャッシュ(24)中の無効なエントリに入れ
    るステップとを含むことを特徴とする新しいワード・フ
    ラグメントの書き込み方法。
JP18882695A 1994-08-04 1995-07-25 キャッシュ・ミスを制御する方法およびその計算機システム Expired - Fee Related JP3587591B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US286,121 1994-08-04
US08/286,121 US5577227A (en) 1994-08-04 1994-08-04 Method for decreasing penalty resulting from a cache miss in multi-level cache system

Publications (2)

Publication Number Publication Date
JPH0863393A true JPH0863393A (ja) 1996-03-08
JP3587591B2 JP3587591B2 (ja) 2004-11-10

Family

ID=23097171

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18882695A Expired - Fee Related JP3587591B2 (ja) 1994-08-04 1995-07-25 キャッシュ・ミスを制御する方法およびその計算機システム

Country Status (4)

Country Link
US (1) US5577227A (ja)
EP (1) EP0695996B1 (ja)
JP (1) JP3587591B2 (ja)
DE (1) DE69514165T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007058349A (ja) * 2005-08-22 2007-03-08 Fujitsu Ltd キャッシュシステム

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5813031A (en) * 1994-09-21 1998-09-22 Industrial Technology Research Institute Caching tag for a large scale cache computer memory system
US5794243A (en) * 1995-12-11 1998-08-11 International Business Machines Corporation Method and apparatus for executing a binary search in a data cache
US5860095A (en) * 1996-01-02 1999-01-12 Hewlett-Packard Company Conflict cache having cache miscounters for a computer memory system
US5729712A (en) * 1996-01-26 1998-03-17 Unisys Corporation Smart fill system for multiple cache network
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
US5781916A (en) * 1996-03-25 1998-07-14 Motorola, Inc. Cache control circuitry and method therefor
US5737749A (en) * 1996-05-20 1998-04-07 International Business Machines Corporation Method and system for dynamically sharing cache capacity in a microprocessor
US5829038A (en) * 1996-06-20 1998-10-27 Intel Corporation Backward inquiry to lower level caches prior to the eviction of a modified line from a higher level cache in a microprocessor hierarchical cache structure
US5802576A (en) * 1996-07-01 1998-09-01 Sun Microsystems, Inc. Speculative cache snoop during DMA line update
US5802563A (en) * 1996-07-01 1998-09-01 Sun Microsystems, Inc. Efficient storage of data in computer system with multiple cache levels
US5809526A (en) * 1996-10-28 1998-09-15 International Business Machines Corporation Data processing system and method for selective invalidation of outdated lines in a second level memory in response to a memory request initiated by a store operation
US6105112A (en) * 1997-04-14 2000-08-15 International Business Machines Corporation Dynamic folding of cache operations for multiple coherency-size systems
US6374330B1 (en) * 1997-04-14 2002-04-16 International Business Machines Corporation Cache-coherency protocol with upstream undefined state
US6175899B1 (en) * 1997-05-19 2001-01-16 International Business Machines Corporation Method for providing virtual atomicity in multi processor environment having access to multilevel caches
US6065099A (en) * 1997-08-20 2000-05-16 Cypress Semiconductor Corp. System and method for updating the data stored in a cache memory attached to an input/output system
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
US5909697A (en) * 1997-09-30 1999-06-01 Sun Microsystems, Inc. Reducing cache misses by snarfing writebacks in non-inclusive memory systems
US6073212A (en) * 1997-09-30 2000-06-06 Sun Microsystems, Inc. Reducing bandwidth and areas needed for non-inclusive memory hierarchy by using dual tags
US6202126B1 (en) * 1997-10-24 2001-03-13 Compaq Computer Corporation Victimization of clean data blocks
US6078992A (en) * 1997-12-05 2000-06-20 Intel Corporation Dirty line cache
US6216206B1 (en) * 1997-12-16 2001-04-10 Intel Corporation Trace victim cache
US6253291B1 (en) 1998-02-13 2001-06-26 Sun Microsystems, Inc. Method and apparatus for relaxing the FIFO ordering constraint for memory accesses in a multi-processor asynchronous cache system
US6237064B1 (en) * 1998-02-23 2001-05-22 Intel Corporation Cache memory with reduced latency
US6138208A (en) * 1998-04-13 2000-10-24 International Business Machines Corporation Multiple level cache memory with overlapped L1 and L2 memory access
US6401173B1 (en) * 1999-01-26 2002-06-04 Compaq Information Technologies Group, L.P. Method and apparatus for optimizing bcache tag performance by inferring bcache tag state from internal processor state
US6615235B1 (en) * 1999-07-22 2003-09-02 International Business Machines Corporation Method and apparatus for cache coordination for multiple address spaces
US6574710B1 (en) * 2000-07-31 2003-06-03 Hewlett-Packard Development Company, L.P. Computer cache system with deferred invalidation
JP2002366433A (ja) * 2001-06-11 2002-12-20 Nec Microsystems Ltd キャッシュメモリ制御装置およびプロセッサ
CN1539250A (zh) * 2001-08-08 2004-10-20 ���µ�����ҵ��ʽ���� 机器控制装置及机器控制系统
US20040083370A1 (en) * 2002-09-13 2004-04-29 Sun Microsystems, Inc., A Delaware Corporation Rights maintenance in a rights locker system for digital content access control
US7380280B2 (en) * 2002-09-13 2008-05-27 Sun Microsystems, Inc. Rights locker for digital content access control
US7240365B2 (en) * 2002-09-13 2007-07-03 Sun Microsystems, Inc. Repositing for digital content access control
US7913312B2 (en) * 2002-09-13 2011-03-22 Oracle America, Inc. Embedded content requests in a rights locker system for digital content access control
US7363651B2 (en) * 2002-09-13 2008-04-22 Sun Microsystems, Inc. System for digital content access control
US7512972B2 (en) * 2002-09-13 2009-03-31 Sun Microsystems, Inc. Synchronizing for digital content access control
US20040064719A1 (en) * 2002-09-13 2004-04-01 Sun Microsystems, Inc., A Delaware Corporation Accessing for digital content access control
US7398557B2 (en) * 2002-09-13 2008-07-08 Sun Microsystems, Inc. Accessing in a rights locker system for digital content access control
US20040059939A1 (en) * 2002-09-13 2004-03-25 Sun Microsystems, Inc., A Delaware Corporation Controlled delivery of digital content in a system for digital content access control
US20040054629A1 (en) * 2002-09-13 2004-03-18 Sun Microsystems, Inc., A Delaware Corporation Provisioning for digital content access control
US20040059913A1 (en) * 2002-09-13 2004-03-25 Sun Microsystems, Inc., A Delaware Corporation Accessing for controlled delivery of digital content in a system for digital content access control
US20040103251A1 (en) * 2002-11-26 2004-05-27 Mitchell Alsup Microprocessor including a first level cache and a second level cache having different cache line sizes
US7380047B2 (en) * 2004-09-30 2008-05-27 International Business Machines Corporation Apparatus and method for filtering unused sub-blocks in cache memories
US7366871B2 (en) * 2004-11-18 2008-04-29 Sun Microsystems, Inc. Apparatus and method for determining stack distance including spatial locality of running software for estimating cache miss rates based upon contents of a hash table
US7373480B2 (en) * 2004-11-18 2008-05-13 Sun Microsystems, Inc. Apparatus and method for determining stack distance of running software for estimating cache miss rates based upon contents of a hash table
US9098296B2 (en) * 2012-06-17 2015-08-04 Freescale Semiconductor, Inc. Method for reducing memory latency in processor
US9244841B2 (en) * 2012-12-31 2016-01-26 Advanced Micro Devices, Inc. Merging eviction and fill buffers for cache line transactions
US11714760B2 (en) * 2019-05-24 2023-08-01 Texas Instmments Incorporated Methods and apparatus to reduce bank pressure using aggressive write merging

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4464712A (en) * 1981-07-06 1984-08-07 International Business Machines Corporation Second level cache replacement method and apparatus
US4463420A (en) * 1982-02-23 1984-07-31 International Business Machines Corporation Multiprocessor cache replacement under task control
US4823259A (en) * 1984-06-29 1989-04-18 International Business Machines Corporation High speed buffer store arrangement for quick wide transfer of data
US4774654A (en) * 1984-12-24 1988-09-27 International Business Machines Corporation Apparatus and method for prefetching subblocks from a low speed memory to a high speed memory of a memory hierarchy depending upon state of replacing bit in the low speed memory
US4722047A (en) * 1985-08-29 1988-01-26 Ncr Corporation Prefetch circuit and associated method for operation with a virtual command emulator
US4972316A (en) * 1987-03-30 1990-11-20 International Business Machines Corporation Method of handling disk sector errors in DASD cache
US5214765A (en) * 1989-08-31 1993-05-25 Sun Microsystems, Inc. Method and apparatus for executing floating point instructions utilizing complimentary floating point pipeline and multi-level caches
US5307477A (en) * 1989-12-01 1994-04-26 Mips Computer Systems, Inc. Two-level cache memory system
US5136700A (en) * 1989-12-22 1992-08-04 Digital Equipment Corporation Apparatus and method for reducing interference in two-level cache memories
CA2043493C (en) * 1990-10-05 1997-04-01 Ricky C. Hetherington Hierarchical integrated circuit cache memory
US5249282A (en) * 1990-11-21 1993-09-28 Benchmarq Microelectronics, Inc. Integrated cache memory system with primary and secondary cache memories
US5361391A (en) * 1992-06-22 1994-11-01 Sun Microsystems, Inc. Intelligent cache memory and prefetch method based on CPU data fetching characteristics

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007058349A (ja) * 2005-08-22 2007-03-08 Fujitsu Ltd キャッシュシステム

Also Published As

Publication number Publication date
DE69514165T2 (de) 2000-05-31
JP3587591B2 (ja) 2004-11-10
EP0695996B1 (en) 1999-12-29
EP0695996A1 (en) 1996-02-07
DE69514165D1 (de) 2000-02-03
US5577227A (en) 1996-11-19

Similar Documents

Publication Publication Date Title
JP3587591B2 (ja) キャッシュ・ミスを制御する方法およびその計算機システム
US11803486B2 (en) Write merging on stores with different privilege levels
US5353426A (en) Cache miss buffer adapted to satisfy read requests to portions of a cache fill in progress without waiting for the cache fill to complete
US5603004A (en) Method for decreasing time penalty resulting from a cache miss in a multi-level cache system
JP3577331B2 (ja) キャッシュメモリシステムおよびマイクロプロセッサ内の命令を操作するための方法
US8909871B2 (en) Data processing system and method for reducing cache pollution by write stream memory access patterns
KR100274327B1 (ko) 캐시가 일관된 다중 처리기 컴퓨터 시스템에서 다중 미결동작을 제공하기 위한 장치 및 그 방법
US7493452B2 (en) Method to efficiently prefetch and batch compiler-assisted software cache accesses
JP3016575B2 (ja) 複数キャッシュ・メモリ・アクセス方法
JP3718302B2 (ja) 命令取り出し方法および装置
JPH07200399A (ja) マイクロプロセッサ、およびマイクロプロセッサにおいてメモリにアクセスするための方法
KR20010101693A (ko) 가상 메모리 시스템에서의 메모리 접근 개선 기술
JPH0321934B2 (ja)
JPH08272682A (ja) ロード・バッファを備えたロード/ストア・ユニット内にて切り離されたタグ及びデータ・アレイへのアクセス方法及びそのアレイを有する装置
US8621152B1 (en) Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
US5926841A (en) Segment descriptor cache for a processor
JP4666511B2 (ja) データ処理におけるメモリキャッシング
WO1997034229A9 (en) Segment descriptor cache for a processor
EP0173909B1 (en) Look-aside buffer least recently used marker controller
JPH08314802A (ja) キャッシュシステム、キャッシュメモリアドレスユニット、およびキャッシュメモリを動作させる方法
US6934810B1 (en) Delayed leaky write system and method for a cache memory
JP2001249846A (ja) キャッシュメモリ装置及びデータ処理システム
JPH0477344B2 (ja)
JPH04353948A (ja) キャッシュメモリおよびキャッシュメモリシステム
JPH0342744A (ja) キャッシュ・メモリを有する計算システムおよびキャッシュ・メモリ管理方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040716

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: 20040803

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040810

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: 20080820

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090820

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100820

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees