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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/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
ャッシュ・ミスを処理し、多レベル・キャッシュ・シス
テムを含むコンピュータ・プロセッサでのメモリ参照の
結果でおきるキャッシュ・ミス・ペナルティを統計的に
減少させる。 【構成】 プロセッサ21がデータ・ワードにアクセス
しようとしたことに応答して、キャッシュ制御装置22
が第1レベル・キャッシュ24でそのデータ・ワードを
探索する。アクセスが試みられた結果、第1レベル・キ
ャッシュ・ミスが発生すると、第2レベル・キャッシュ
23でデータ・ワードが探索される。第2レベル・キャ
ッシュ・ミスが発生すると、参照中のデータ・ワードを
含む新しいデータ・ラインがメイン・メモリ25から取
り出される。同時に、キャッシュ制御装置22は、新し
いメモリ・データ・ラインによってマップされる第1レ
ベル・キャッシュ・エントリのうちのどれが無効である
かを識別する。
Description
ュ・システムにおけるキャッシュ・ミスを処理する方法
に関する。
は、中央演算処理装置(CPU)とメイン・メモリとを
含む。CPUが命令およびオペランドを復号し実行でき
る速度は、その命令およびオペランドをメイン・メモリ
からCPUへ送ることができる速度に依存する。多数の
コンピュータ・システムは、CPUが命令およびオペラ
ンドをメイン・メモリから得るために必要な時間を短縮
するために、CPUとメイン・メモリの間にキャッシュ
・メモリを含む。
ッファ・メモリであり、CPUによって近い将来に使用
されると考えられるメイン・メモリの内容の部分を一時
的に保持するために使用される。キャッシュの主要な目
的は、データ取出しの場合でも、あるいは命令取出しの
場合でも、メモリ・アクセスを実行するのに必要な時間
を短縮することである。キャッシュ・メモリに位置する
情報には、メイン・メモリに位置する情報よりもずっと
短い時間でアクセスすることができる。したがって、キ
ャッシュ・メモリを含むCPUは、命令およびオペラン
ドが取り出され、あるいは記憶されるのを待つために費
やす必要のある時間がずっと短い。
データ・ワードの多数のブロック(ラインとも呼ぶ)か
ら成る。各ブロックには、それがどのブロックまたはメ
イン・メモリのコピーであるかを一意に識別するアドレ
ス・タグが関連付けられている。プロセッサがメモリを
参照するたびに、アドレス・タグの比較が行われ、要求
されたデータのコピーがキャッシュ中に存在するかどう
かが調べられる。所望のメモリ・ブロックがキャッシュ
中にない場合、そのブロックは、メイン・メモリから検
索され、キャッシュに記憶され、プロセッサに供給され
る。新しいキャッシュ・ラインXをキャッシュに導入す
るとき、ターゲットのキャッシュ・エントリにすでに他
のキャッシュ・ラインYがある場合、存在するそのキャ
ッシュ・ラインYは「犠牲キャッシュ・ライン」にな
る。新しいキャッシュ・ラインXのための空間を設ける
には、犠牲キャッシュ・ラインYをキャッシュから削除
しなければならない。犠牲キャッシュ・ラインYが、キ
ャッシュに導入されてから修正されている場合、「ダー
ティ」と呼ばれ、メイン・メモリに書き直さなければな
らない。犠牲キャッシュ・ラインYが修正されていない
場合は、「クリーン」と呼ばれ、単に廃棄することがで
きる。2レベル・キャッシュ・システムでは、「レベル
1犠牲キャッシュ・ライン」と「レベル2犠牲キャッシ
ュ・ライン」があってよい。
メモリからデータを検索するだけでなく、データを直接
メモリに書き込む代わりにキャッシュに書き込むことも
できる。プロセッサがデータをメモリに書き込みたいと
き、キャッシュはアドレス・タグの比較を行い、データ
を書き込むべきデータ・ブロックがキャッシュに存在す
るかどうかが調べられる。データ・ブロックがキャッシ
ュに存在する場合、データはキャッシュ中のそのデータ
・ブロックに書き込まれ、そのデータ・ブロックのデー
タ「ダーティ・ビット」がセットされる。ダーティ・ビ
ットは、データ・ブロック中のデータが修正されてお
り、したがって、そのデータ・ブロックをキャッシュか
ら削除する前に、修正済みデータをメイン・メモリに書
き直しておかなければならないことを示す。データを書
き込むべきデータ・ブロックがキャッシュに存在しない
場合、そのデータ・ブロックをキャッシュに取り込み、
あるいは、データを直接メイン・メモリに書き込まなけ
ればならない。
・メモリが使用される。第1レベル・キャッシュ・メモ
リは通常、第2レベル・キャッシュ・メモリ中のデータ
のサブセットを有する。同様に、第2レベル・キャッシ
ュ・メモリは通常、メイン・メモリ中のデータのサブセ
ットを有する。一般に、第1レベル・キャッシュは、第
2レベル・キャッシュと比べてサイズが小さい。第1レ
ベル・キャッシュは、通常1プロセッサ・サイクルであ
る高速アクセス時間を有する。第2レベル・キャッシュ
は、たとえば、2サイクルないし3サイクルのある程度
低速のアクセス時間を有する。第2レベル・キャッシュ
・ライン・サイズは、メモリ・アクセス・オーバヘッド
(ライン・サイズが大きければ大きいほど向上する)
と、使用されないデータを取り出すことによってサイク
ルの無駄にすることを避けることとの間の最適な折合い
である。通常、第2レベル・キャッシュ・ライン・サイ
ズは、2ワードないし16ワードである。第1レベル・
キャッシュ・ライン・サイズは通常、1ワードから、第
2レベル・キャッシュ用のキャッシュ・ラインのサイズ
までの範囲である。
ャッシュ・メモリで探索される。第1レベル・キャッシ
ュ・メモリでミスがあった場合、アクセスされたデータ
は、第2レベル・キャッシュ・メモリで探索される。第
2レベル・キャッシュ・メモリでミスがあった場合、デ
ータはメイン・メモリから取り出される。
キャッシュ構成では、第1レベル・キャッシュは、第2
レベル・キャッシュの完全なサブセットである。第1レ
ベル・キャッシュは、第2レベル・キャッシュよりも小
規模であり、第2レベル・キャッシュよりもプロセッサ
に近い。第1レベル・キャッシュは、第2レベル・キャ
ッシュよりも小規模であり、かつ第2レベル・キャッシ
ュよりもプロセッサに近いため、一般に、第1レベル・
キャッシュに伴う第2レベル・キャッシュやメモリより
もアクセス待ち時間が短いので改良された性能を提供す
る。
のに必要ないくつかの異なる動作がある。メモリ参照と
は一般に、ロード命令または記憶命令である。まず、最
も簡単で最も高速の参照は、第1レベル・キャッシュで
ヒットすることができる。ヒットは、所望のメモリ・ア
ドレスのデータが、検査中のキャッシュ(第1レベル・
キャッシュまたは第2レベル・キャッシュ)に存在する
ときとして定義されている。ミスは、所望のメモリ・ア
ドレスのデータが、検査中のキャッシュ(第1レベル・
キャッシュまたは第2レベル・キャッシュ)に存在しな
いメモリ参照として定義されている。第1レベル・キャ
ッシュでヒットがあったとき、ゼロ・サイクル・ペナル
ティがあり、処理ペナルティなしで参照が完了する。
ャッシュでヒットする第1レベル・キャッシュ・ミスで
ある。この場合、単一の第1レベル・キャッシュ・ライ
ンを第2レベル・キャッシュから得たデータで埋めるた
めの動作シーケンスが実行される。続いて、データがプ
ロセッサに供給され、あるいは、記憶が完了する。これ
は、中間速度動作であり、プロセッサは、メモリ参照が
成し遂げられる間フリーズする。
ル・キャッシュでも第2レベル・キャッシュでもミスし
たときのものである。この例では、関連するラインをメ
イン・メモリから第2レベル・キャッシュに導入するた
めの長い動作シーケンスが開始される。このデータがメ
モリから返され第2レベル・キャッシュにコピーされる
と、第1レベル・キャッシュが再び参照され、その結
果、今度は、第1レベル・キャッシュ・ミスが発生し、
次に、第2レベル・キャッシュでヒットが発生する。こ
れによって、第2レベル・キャッシュ・ラインの関連す
る部分が第1レベル・キャッシュに書き込まれ、続い
て、要求されたデータがプロセッサに供給され、あるい
は、記憶が完了する。
ラインが書き込まれるのと同時に、アドレスされた第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ページ)を参照されたい。
一のキャッシュ・ミスの処理中に将来のキャッシュ・ミ
スを処理するようにして、多レベル・キャッシュ・シス
テムを含むコンピュータ・プロセッサでのメモリ参照の
結果でおきるキャッシュ・ミス・ペナルティを統計的に
減少させることである。
例によれば、計算機システムは、プロセッサと、メイン
・メモリと、第1レベル・キャッシュと、第2レベル・
キャッシュとを含む。第2レベル・キャッシュはデータ
・ラインを含む。第1レベル・キャッシュは、第2レベ
ル・キャッシュ内のデータ・ラインのデータ・ライン・
フラグメントを含む。好ましい実施例では、第2レベル
・キャッシュに記憶されるデータ・ラインのサイズは6
4バイト(16ワード)であり、第1レベル・キャッシ
ュに記憶されるデータ・ライン・フラグメントのサイズ
は16バイト(4ワード)である。プロセッサがデータ
・ワードにアクセスしようとしたことに応答して、キャ
ッシュ制御装置が第1レベル・キャッシュでそのデータ
・ワードを探索する。アクセスが試みられた結果、第1
レベル・キャッシュ・ミスが発生すると、第2レベル・
キャッシュでデータ・ワードが探索される。第2レベル
・キャッシュ・ミスが発生すると、参照中のデータ・ワ
ードを含む新しいデータ・ラインがメイン・メモリから
取り出される。同時に、キャッシュ制御装置は、新しい
メモリ・データ・ラインによってマップされる第1レベ
ル・キャッシュ・エントリのうちのどれが無効であるか
を識別する。
は、たとえば、パージ、フラッシュ、またはマルチプロ
セッサのスヌープによって以前に無効のマークが付けら
れた第1レベル・キャッシュ・エントリと、レベル2犠
牲キャッシュ・ラインのキャッシュ・ライン・フラグメ
ントを含んでいた第1レベル・キャッシュ内のエントリ
とが含まれる。レベル2キャッシュ・ラインとは、メイ
ン・メモリから取り出された新しいデータ・ラインで入
れ換えられる第2レベル・キャッシュ内のキャッシュ・
ラインである。新しいデータ・ラインは、メイン・メモ
リから取り出された後、第2レベル・キャッシュに入れ
られ、レベル2犠牲キャッシュ・ラインと入れ換える。
また、新しいデータ・ラインのできるだけ多くのデータ
・ライン・フラグメントが、第1レベル・キャッシュ中
の無効なエントリに入れられる。第1レベル・キャッシ
ュに入れられた新しいデータ・ラインのデータ・ライン
・フラグメントのうちの1つは、現在参照中のデータ・
ワードを含む。
レベル・キャッシュを含むプロセッサ・システムの概略
ブロック図を示す。処理システムに対する命令を実行す
る中央演算処理装置(CPU)21が示されている。メ
イン・メモリ25は、処理システム用の記憶域を提供す
る。好ましい実施例では、各データ・ワードは4バイト
を含む。2レベル・キャッシュ・システムは、第1レベ
ル・キャッシュ24と第2レベル・キャッシュ23とを
含む。
シュ24は、キャッシュ・ライン・サイズが小さな4ワ
ードである、小規模で高速の直接マップ・キャッシュで
ある。第1レベル・キャッシュ24は、第2レベル・キ
ャッシュ23のサブセットを含む。第1レベル・キャッ
シュ24内の有効な各エントリは、第2レベル・キャッ
シュ23内の有効なキャッシュ・ラインの4ワード・フ
ラグメントを含む。好ましい実施例では、第1レベル・
キャッシュ24から第2レベル・キャッシュへの書込み
は行われない。すなわち、記憶命令に応答して、データ
を第1レベル・キャッシュ24に記憶することはできる
が、第2レベル・キャッシュ23に書き込むことはでき
ない。したがって、第1レベル・キャッシュ24は、第
2レベル・キャッシュ23よりも新しいデータを有する
ことができる。第2レベル・キャッシュは、キャッシュ
・ライン・サイズがより大きな16ワードである、より
大規模で低速の直接マップ・キャッシュである。
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を介してロード・デー
タを受け取る。
レベル・アドレス線34を使用してキャッシュ制御論理
機構22および第2レベル・キャッシュ23にデータ・
アドレスを送る。CPU21は、第2レベル・キャッシ
ュ23から第2レベル・データ出力線35を介してロー
ド・データを受け取る。第2レベル・キャッシュ23
は、第2レベル・データ入力線36を介してデータを受
け取る。第1レベル・キャッシュ24は、第1レベル・
データ入力線39を介してデータを受け取る。第1レベ
ル・キャッシュ24は、第1レベル・データ出力線38
を介してキャッシュ制御論理機構22にデータを送る。
本願発明の好ましい実施例によるメモリ参照の結果とし
て発生する、図1に示したプロセッサでのデータ・フロ
ーを示す。
照の結果、第1レベル・キャッシュ24でヒットが発生
するときのデータ・フローを示す。図のように、CPU
21は、アドレス線31上でキャッシュ制御論理機構2
2へアドレスを送り、キャッシュ制御機構22はそのア
ドレスを第1レベル・アドレス線37へ送り、さらに、
第1レベル・キャッシュ24へ送る。第1レベル・キャ
ッシュ24から読み取られたデータは、第1レベル・デ
ータ出力線38上でキャッシュ制御論理機構22へ送ら
れ、第1レベル・ロード・データ線32上でCPU21
へ送られ、ロード要求が完了する。
の結果、第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に書き込ま
れ、記憶要求が完了する。
のメモリ参照の結果、第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から直
接ロード・データを得る。
ードのためのメモリ参照の結果、第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に書き込まれる。
第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か
ら直接ロード・データを得る。
・キャッシュ23の両方でミスがあったとき、データは
メイン・メモリ25から導入しなければならない。第1
レベル・キャッシュ24でダーティ・ミスがあった場
合、上述のように、ダーティ・データは第2レベル・キ
ャッシュ23に書き直される。第2レベル・キャッシュ
23でダーティ・ミスがあり、すなわち、第2レベル犠
牲キャッシュ・ラインがダーティであるとき、第2レベ
ル・コピー出力動作を介してキャッシュ・ライン全体を
メイン・メモリ25に書き直さなければならない。第2
レベル犠牲キャッシュ・ラインとは、メイン・メモリ2
5から取り出された新しいデータ・ラインで置換される
第2レベル・キャッシュ23内のキャッシュ・ラインで
ある。第2レベル・コピー出力が実行される間、第2レ
ベル犠牲キャッシュ・ラインの各部を保持していた第1
レベル・キャッシュ・エントリまたは第2レベル・キャ
ッシュ・エントリが無効化される。第2レベル・コピー
出力動作が完了した後、メイン・メモリ25からデータ
が読み取られ、第2レベル・キャッシュ23に書き込ま
れる。
好ましい実施例では、メイン・メモリ25からデータ・
ラインが取り出されるとき、第1レベル・キャッシュ2
4中の要求された16バイト・ラインが埋められるだけ
でなく、第1レベル・キャッシュ24中の最大3つの他
の第1レベル・キャッシュ・ラインも埋められる。これ
らの他の3つのキャッシュ・ラインは、現在参照されて
いないが、キャッシュ参照の統計的局所性のために、何
らかの他のキャッシュ・ミスによって入れ換えられる前
に将来の命令によって参照される確率が高い。
好ましい実施例によって第2レベル・キャッシュでのミ
スの後に第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レベル・キャッシュ・エン
トリにマップされる。
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に存在する
ものとして示されている。
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に存在する。
・キャッシュ・エントリ72中の見出しは、無効とマー
ク付けされている。キャッシュ・ラインは、パージ命令
やフラッシュ命令やマルチプロセッサ・スヌープなどい
くつかの手段を介して無効化することができる。
・キャッシュ23の両方に関してミスが発生すると、第
2レベル・キャッシュ23に新しいラインが導入され、
第1レベル・キャッシュ24に適当な4ワード・ライン
・フラグメントが書き込まれる。
が、第1レベル・キャッシュ24にも第2レベル・キャ
ッシュ23にも存在しない、ラインQの第2ワードにC
PU21がアクセスする必要があると仮定する。さら
に、ラインQが、ラインAと同じ第1レベル・キャッシ
ュ・エントリおよび第2レベル・キャッシュ・エントリ
にマップされると仮定する。
書き込み、適当な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に示す。
・フラグメントがメイン・メモリ25から第2レベル・
キャッシュ23に導入されるとき、第1レベル・キャッ
シュ24に直接、前記フラグメントを入れることによっ
て、改善することができる。これによって、ラインQの
第1の4ワード・フラグメントを、第2レベル・キャッ
シュ23から読み出して第1レベル・キャッシュ24に
書き込むことができるようにするために、ラインQが第
2レベル・キャッシュ23に書き込まれるのを待つこと
が不要になる。多数のシステムでは、バイパス経路のた
めに、追加データ経路論理機構が必要になる可能性があ
る。しかし、本発明の好ましい実施例では、キャッシュ
制御論理機構22が、第1レベル・キャッシュ24と第
2レベル・キャッシュ23の両方及び又はメイン・メモ
リ25のインタフェースとして働き、追加データ経路論
理機構を不要にする。
シュ制御装置22は、ラインAが上書きされることによ
って無効化された第1レベル・キャッシュ・エントリを
記憶することができる。メイン・メモリ25からライン
Qが導入されると、4ワード・フラグメントが、第1レ
ベル・キャッシュ24の第1レベル・キャッシュ・エン
トリ71および第1レベル・キャッシュ・エントリ74
に書き込まれる。この結果を図9に示す。この改良の利
点は、ラインQの第4の4ワード・フラグメントへの以
後のアクセスが第1レベル・キャッシュ24でヒットす
ることである。ラインQの第2または第3の4ワード・
フラグメントへの以後のアクセスでは依然として、第2
レベル・キャッシュから第1レベル・キャッシュへの移
動が必要である。
法が再び改良される。この場合、どの第1レベル・キャ
ッシュ・フラグメントがラインAフラグメントによって
無効化されたか記憶されるだけでなく、すでに他の理由
で無効化されている可能性がある関連する第1レベル・
キャッシュ・エントリに関する検査も行われる。メイン
・メモリ25からラインQが導入されると、ラインQの
できるだけ多くの4ワード・フラグメントが第1レベル
・キャッシュ24に書き込まれる。この結果は、図10
で分かる。この「ブートレグ第1レベル・キャッシュ埋
込み(bootleg first level cache fill)」は、図1に示
した本願発明のシステム構成によって実現可能になる。
メイン・メモリ25から第2レベル・キャッシュ23に
書き込まれるデータがキャッシュ制御論理機構22を通
過するため、データ経路ハードウェアを追加せずにこの
好ましい方法を実施することができる。
る方法の動作を要約したものである。この方法は、埋め
込まれている位置が、要求されたものではない場合で
も、必要に応じて第1レベル・キャッシュ・エントリを
埋め込むことを含む。方法ステップ81で、通常の第1
レベル・キャッシュ・ミスが発生していて、第2レベル
・キャッシュ23が検査され、そして第2レベル・キャ
ッシュ23でもミスが発生し、メイン・メモリ25の参
照が開始される。方法ステップ82で、メモリからの新
しいデータ・ラインが要求される。
タを待つ間に、様々な動作が実行され、必要な第1レベ
ル・キャッシュ・エントリが無効化されて第1レベル・
キャッシュで空間が設けられる。第1レベル犠牲キャッ
シュ・ラインがダーティである場合、データは第2レベ
ル・キャッシュに書き直される。必要な第2レベル・キ
ャッシュ・エントリと、第2レベル犠牲キャッシュ・ラ
インのフラグメントを含む第1レベル・キャッシュ・エ
ントリも無効化され、第2レベル・キャッシュで空間が
設けられる。第2レベル犠牲キャッシュ・ラインの一部
がダーティである場合、データはメモリに書き直され
る。また、新しいメモリ・データによってマップされる
無効な第1レベル・キャッシュ・エントリはすべて識別
される。
データ・ラインが第2レベル・キャッシュに書き込まれ
る間、データ・ラインのフラグメントは、上記ステップ
で判定された利用可能な第1レベル・キャッシュエント
リのそれぞれに書き込まれる。この方法を使用すると、
長い時間にわたって無効なままである第1レベル・キャ
ッシュ・エントリはほとんどなくなる。最大3つの余分
の第1レベル・キャッシュ・エントリを余分のペナルテ
ィなしで埋め込むことができる。
例として次のような実施態様が含まれる。
モリ(25)と、第2レベルキャッシュ内のデータ・ラ
インのデータ・ライン・フラグメントを含む第1レベル
・キャッシュ(24)と、データ・ラインを含む前記第
2レベル・キャッシュ(23)とを含む計算機システム
において、プロセッサ(21)によるキャッシュ参照の
結果、第1レベル・キャッシュ(24)のミスおよび第
2レベル・キャッシュ(23)のミスが発生したときに
実行される方法であって、(a)新しいデータ・ライン
をメイン・メモリ(25)から取り出すステップと、
(b)ステップ(a)と同時に、第1レベル・キャッシ
ュ(24)中のどのエントリが無効であるかを識別する
ステップと、(c)新しいデータ・ラインがメイン・メ
モリ(25)から取り出されたとき、新しいデータ・ラ
インから得たできるだけ多くのデータ・ライン・フラグ
メントを第1レベル・キャッシュ(24)中の無効なエ
ントリに入れるステップとを含むことを特徴とする新し
いワード・フラグメントの書き込み方法。
いデータ・ラインが第2レベル・キャッシュ(23)に
入れられ、第2レベル・キャッシュ(23)内の第2レ
ベル犠牲キャッシュ・ラインと入れ換えるステップを更
に含むことを特徴とする上記(イ)に記載の方法。
ク付けされた第1レベル・キャッシュ(24)のエント
リと、第2レベル・キャッシュ(23)内の第2レベル
犠牲キャッシュ・ラインから得たキャッシュ・ライン・
フラグメントを含む第1レベル・キャッシュ(24)内
のエントリとが、無効なエントリに含まれることを特徴
とする上記(イ)に記載の方法。
ラインが、16個のワードを含み、各第1レベル・キャ
ッシュ(24)ライン・フラグメントが、4つのワード
を含むことを特徴とする上記(イ)に記載の方法。
サ(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)中の無効なエントリに入れる手段とを備
えることを特徴とする計算機システム。
さらに、新しいデータ・ラインから得たできるだけ多く
のデータ・ライン・フラグメントを第1レベル・キャッ
シュ(24)中の無効なエントリに入れるのと同時に、
第2レベル・キャッシュ(23)内の第2レベル犠牲キ
ャッシュ・ラインと入れ換える手段を備えることを特徴
とする上記(ホ)に記載の計算機システム。
ントリには、無効とマーク付けされた第1レベル・キャ
ッシュ(24)のエントリと、第2レベル・キャッシュ
(23)内の第2レベル犠牲キャッシュ・ラインから得
たキャッシュ・ライン・フラグメントを含む第1レベル
・キャッシュ(24)内のエントリとが含まれることを
特徴とする上記(ホ)に記載の計算機システム。
ラインが、16個のワードを含み、各第1レベル・キャ
ッシュ(24)ライン・フラグメントが、4つのワード
を含むことを特徴とする上記(ホ)に記載の計算機シス
テム。
モリ(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)中の無効なエン
トリに入れるサブステップとを含むことを特徴とする新
しいワード・フラグメントの書き込み方法。
に、新しいデータ・ラインが第2レベル・キャッシュ
(23)に入れられ、第2レベル・キャッシュ(23)
内の第2レベル犠牲キャッシュ・ラインと入れ換えるサ
ブステップを更に含むことを特徴とする上記(リ)に記
載の方法。
効とマーク付けされた第1レベル・キャッシュ(24)
のエントリと、第2レベル・キャッシュ(23)内の第
2レベル犠牲キャッシュ・ラインから得たキャッシュ・
ライン・フラグメントを含む第1レベル・キャッシュ
(24)内のエントリとが、無効なエントリに含まれる
ことを特徴とする上記(リ)に記載の方法。
ラインが、16個のワードを含み、各第1レベル・キャ
ッシュ(24)ライン・フラグメントが、4つのワード
を含むことを特徴とする上記(リ)に記載の方法。
よび実施例を開示し説明したものに過ぎない。当業者に
は理解されるように、本願発明は、その趣旨または基本
的な特徴から逸脱せずに他の特定の形で実施することが
できる。したがって、本願発明の開示は、特許請求の範
囲に記載された本発明の範囲を例示するものであるが、
制限するものではない。
は、単一のキャッシュ・ミスの処理中に将来のキャッシ
ュ・ミスを処理するようにして、多レベル・キャッシュ
・システムを含むコンピュータ・プロセッサでのメモリ
参照の結果でおきるキャッシュ・ミス・ペナルティを統
計的に減少させることが可能となる。
ャッシュを含むプロセッサ・システムの概略ブロック図
である。
果として発生する、図1に示したプロセッサでのデータ
・フローを示す図である。
果として発生する、図1に示したプロセッサでのデータ
・フローを示す図である。
果として発生する、図1に示したプロセッサでのデータ
・フローを示す図である。
果として発生する、図1に示したプロセッサでのデータ
・フローを示す図である。
果として発生する、図1に示したプロセッサでのデータ
・フローを示す図である。
ベル・キャッシュの埋込みを処理する様々な方法を示す
図である。
ベル・キャッシュの埋込みを処理する様々な方法を示す
図である。
ベル・キャッシュの埋込みを処理する様々な方法を示す
図である。
レベル・キャッシュの埋込みを処理する様々な方法を示
す図である。
・キャッシュでのミスの後に第1レベル・キャッシュを
埋める方法を示すフロー・チャートである。
Claims (1)
- 【請求項1】 プロセッサ(21)と、メイン・メモリ
(25)と、第2レベルキャッシュ内のデータ・ライン
のデータ・ライン・フラグメントを含む第1レベル・キ
ャッシュ(24)と、データ・ラインを含む前記第2レ
ベル・キャッシュ(23)とを含む計算機システムにお
いて、プロセッサ(21)によるキャッシュ参照の結
果、第1レベル・キャッシュ(24)のミスおよび第2
レベル・キャッシュ(23)のミスが発生したときに実
行される方法であって、 (a)新しいデータ・ラインをメイン・メモリ(25)
から取り出すステップと、 (b)ステップ(a)と同時に、第1レベル・キャッシ
ュ(24)中のどのエントリが無効であるかを識別する
ステップと、 (c)新しいデータ・ラインがメイン・メモリ(25)
から取り出されたとき、新しいデータ・ラインから得た
できるだけ多くのデータ・ライン・フラグメントを第1
レベル・キャッシュ(24)中の無効なエントリに入れ
るステップとを含むことを特徴とする新しいワード・フ
ラグメントの書き込み方法。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007058349A (ja) * | 2005-08-22 | 2007-03-08 | Fujitsu Ltd | キャッシュシステム |
Families Citing this family (48)
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)
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 |
-
1994
- 1994-08-04 US US08/286,121 patent/US5577227A/en not_active Expired - Lifetime
-
1995
- 1995-06-20 EP EP95304269A patent/EP0695996B1/en not_active Expired - Lifetime
- 1995-06-20 DE DE69514165T patent/DE69514165T2/de not_active Expired - Fee Related
- 1995-07-25 JP JP18882695A patent/JP3587591B2/ja not_active Expired - Fee Related
Cited By (1)
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 |