JPS6043540B2 - デ−タ処理装置 - Google Patents
デ−タ処理装置Info
- Publication number
- JPS6043540B2 JPS6043540B2 JP57112616A JP11261682A JPS6043540B2 JP S6043540 B2 JPS6043540 B2 JP S6043540B2 JP 57112616 A JP57112616 A JP 57112616A JP 11261682 A JP11261682 A JP 11261682A JP S6043540 B2 JPS6043540 B2 JP S6043540B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- dlat
- replacement
- entry
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1063—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
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)
Description
【発明の詳細な説明】
本発明の技術分野
本発明は、第2レベル・キャッシュでキヤツシ・ユ・
ミスを最小にして改善されたシステム効率を達成する第
2レベル・キャッシュ置換制御に関する。
ミスを最小にして改善されたシステム効率を達成する第
2レベル・キャッシュ置換制御に関する。
背景の技術
先行技術は第1レベル(Li)キャッシュ及び第2レ
ベル(L2)キャッシュを使用する3レベル記憶階層を
開示している。
ベル(L2)キャッシュを使用する3レベル記憶階層を
開示している。
概して、L2キャッシュはLiキャッシュと基本的には
同じであるが、L2キャッシュはLiキャッシュより大
型且つ低速である。L2キャッシュのブロック・サイズ
はLiキャッシュのブロック・サイズと同じか又はそれ
より大きくてよく、L2キャッシュはLiキャッシュの
ブロックの数と同じか又はそれより多いブロックを有し
でよい。Liデイレクトリイ及びL2デイレクトリイに
ある各エントリイは、Liキャッシュ及びL2キャッシ
ュ中のプロツクのMS(主記憶装置)アドレスを記憶し
てよく、各エントリイは1有効ョ及び1変更ョのフラグ
・ビットを有してよい。仮想アドレス(■A)を有する
CPUリクエストの変換の繰返しを避けるため、通常、
DLAT(ディレクトリィ・ルック・アサイド・テーブ
ル)がL1キャッシュに設けられる。
同じであるが、L2キャッシュはLiキャッシュより大
型且つ低速である。L2キャッシュのブロック・サイズ
はLiキャッシュのブロック・サイズと同じか又はそれ
より大きくてよく、L2キャッシュはLiキャッシュの
ブロックの数と同じか又はそれより多いブロックを有し
でよい。Liデイレクトリイ及びL2デイレクトリイに
ある各エントリイは、Liキャッシュ及びL2キャッシ
ュ中のプロツクのMS(主記憶装置)アドレスを記憶し
てよく、各エントリイは1有効ョ及び1変更ョのフラグ
・ビットを有してよい。仮想アドレス(■A)を有する
CPUリクエストの変換の繰返しを避けるため、通常、
DLAT(ディレクトリィ・ルック・アサイド・テーブ
ル)がL1キャッシュに設けられる。
L1キャッシュがストア◆スルー●バッファ型のキャッ
シュとして使用されているか、ストア●イン◆バッファ
型のキャッシュとして使用されているかを決定するため
、DLAT及びL1ディレクトリィが各CPUリクエス
トによつて参照される。もしL1キャッシュがストア・
スルー・バッファ型のキャッシュであれは、各CPUリ
クエストは更にL2ディレクトリィを参照する。L1デ
ィレクトリィがミスで、L2ディレクトリィがヒットで
あれば、L1でリクエストされたラインがL2キャッシ
ュからL1キヤツシユヘコピーされねばならない。もし
L2ディレクトリィがミスであれば、リクエストされた
ブロックはL2キャッシュに存在せず、リクエストされ
たブロックはMSからL2キヤツシユヘフエツチされる
。キャッシュ又はDLATのエントリイの数には制限が
あるから、それらは、全てのアドレス可能なエントリイ
が充たされた後エントリイを解放するため、或る種の置
換選択手段を有している。
シュとして使用されているか、ストア●イン◆バッファ
型のキャッシュとして使用されているかを決定するため
、DLAT及びL1ディレクトリィが各CPUリクエス
トによつて参照される。もしL1キャッシュがストア・
スルー・バッファ型のキャッシュであれは、各CPUリ
クエストは更にL2ディレクトリィを参照する。L1デ
ィレクトリィがミスで、L2ディレクトリィがヒットで
あれば、L1でリクエストされたラインがL2キャッシ
ュからL1キヤツシユヘコピーされねばならない。もし
L2ディレクトリィがミスであれば、リクエストされた
ブロックはL2キャッシュに存在せず、リクエストされ
たブロックはMSからL2キヤツシユヘフエツチされる
。キャッシュ又はDLATのエントリイの数には制限が
あるから、それらは、全てのアドレス可能なエントリイ
が充たされた後エントリイを解放するため、或る種の置
換選択手段を有している。
それによつて、新しいブロック又はラインがキャッシュ
又はDLATによつて受取られることができる。最も望
ましい置換選択アルゴリズムはLRU(1eastre
cent1yused)アルゴリズムである。その理論
は、最後のアクセスから最も長い時間が経過した(即ち
、最も長い間使用されなかつた)アドレス可能なエント
リイを選択することであり、このエントリイは将来の使
用可能性が最も少ないものと仮定される。このアルゴリ
ズムは理論的に.は単純であるが、実際に適用すること
は困難である。コスト、複雑性、動作速度に制限がある
ため、これまで知られた実用的なLRU選択置換回路は
、全ての状況の下で真のLRU動作を実行するとは言え
なかつた。L1キャッシュの場合、周知の如く、LRU
の決定は、各エントリイがCPUによつて最後にアクセ
スされた時からの時間を測定しなければならない。
又はDLATによつて受取られることができる。最も望
ましい置換選択アルゴリズムはLRU(1eastre
cent1yused)アルゴリズムである。その理論
は、最後のアクセスから最も長い時間が経過した(即ち
、最も長い間使用されなかつた)アドレス可能なエント
リイを選択することであり、このエントリイは将来の使
用可能性が最も少ないものと仮定される。このアルゴリ
ズムは理論的に.は単純であるが、実際に適用すること
は困難である。コスト、複雑性、動作速度に制限がある
ため、これまで知られた実用的なLRU選択置換回路は
、全ての状況の下で真のLRU動作を実行するとは言え
なかつた。L1キャッシュの場合、周知の如く、LRU
の決定は、各エントリイがCPUによつて最後にアクセ
スされた時からの時間を測定しなければならない。
L2キャッシュのLRU動作はもつと複雑である。
先行技術の誤つた仮定は、L2キャッシュのLRUエン
トリイの決定には、各エントリイが最後にアクセスされ
た時点からの時間を測定すべきだとする。この仮定の誤
りは、L2エントリイがLRU状態にあるかどうかを決
定するのはL2エントリイに対する最後のアクセスでは
ないことを認識していないことになる。L2キャッシュ
に対する正しいLRU理論は、L2のLRUエントリイ
lの決定には、CPUがL2エントリイによつて表わさ
れたデータに最後にアクセスした時点からの時間を測定
するものとすることてあり、この時間はCPUが対応す
るL1エントリイに最後にアクセスした時点からの時間
である。実際的な問題は、L1アクセスは(ヒットした
場合に)、L2に対して明らかにされないことである。
トリイの決定には、各エントリイが最後にアクセスされ
た時点からの時間を測定すべきだとする。この仮定の誤
りは、L2エントリイがLRU状態にあるかどうかを決
定するのはL2エントリイに対する最後のアクセスでは
ないことを認識していないことになる。L2キャッシュ
に対する正しいLRU理論は、L2のLRUエントリイ
lの決定には、CPUがL2エントリイによつて表わさ
れたデータに最後にアクセスした時点からの時間を測定
するものとすることてあり、この時間はCPUが対応す
るL1エントリイに最後にアクセスした時点からの時間
である。実際的な問題は、L1アクセスは(ヒットした
場合に)、L2に対して明らかにされないことである。
L2キャッシュは、L1キャッシュのミスが生じた時、
臨時的にアクセスされるに過ぎない。L1キャッシュの
大部分のアクセスは、L1″キャッシュ・ミスを伴わな
い。かくて、大部分のL1キャッシュ◆アクセスについ
てL2アクセスは生じない。即ち、L1キャッシュのヒ
ットは全くL1のみで処理される。L2LRU論理の目
的は、所定のL2容量についてL2ミスを最少にするこ
とである。
臨時的にアクセスされるに過ぎない。L1キャッシュの
大部分のアクセスは、L1″キャッシュ・ミスを伴わな
い。かくて、大部分のL1キャッシュ◆アクセスについ
てL2アクセスは生じない。即ち、L1キャッシュのヒ
ットは全くL1のみで処理される。L2LRU論理の目
的は、所定のL2容量についてL2ミスを最少にするこ
とである。
L2管理の最良の基準を理解するため、L1キャッシュ
の現在の動作を理解しなければならない。現在、高いタ
スク切換環境下では、L1キャッシュは最も貧弱なヒッ
ト率を有する。これは、約64KBのL1容量では、通
常、多くのタスクに関連したラインを同時に保持するの
に十分でないからである。その結果、L1ミスの多くは
、新しいタスクをローディング●アップするタスク切換
の後に直ちに生じる。比較的短い時間に古いタスクへ戻
る時でも、新しいタスク・ラインは古いタスク・ライン
と置換される。L2キャッシュの主たる機能は、多くの
タスクに関連したページを保持することである。
の現在の動作を理解しなければならない。現在、高いタ
スク切換環境下では、L1キャッシュは最も貧弱なヒッ
ト率を有する。これは、約64KBのL1容量では、通
常、多くのタスクに関連したラインを同時に保持するの
に十分でないからである。その結果、L1ミスの多くは
、新しいタスクをローディング●アップするタスク切換
の後に直ちに生じる。比較的短い時間に古いタスクへ戻
る時でも、新しいタスク・ラインは古いタスク・ライン
と置換される。L2キャッシュの主たる機能は、多くの
タスクに関連したページを保持することである。
L1ミスの数が変らない場合でも、L1ミスに対する不
利点は軽減される。重要な事は、MSに対するL2ミス
を非常に少なくすることであり、そうでなければ、平均
的なL1ミスの不利点は軽減されず、L2キャッシュを
設ける理由は経済的に正当化されない。L2LRUの基
準は次のとおりである。
利点は軽減される。重要な事は、MSに対するL2ミス
を非常に少なくすることであり、そうでなければ、平均
的なL1ミスの不利点は軽減されず、L2キャッシュを
設ける理由は経済的に正当化されない。L2LRUの基
準は次のとおりである。
1L2ページのライン上にL1アクティビティがあれば
、そのL2ページを置換しない。
、そのL2ページを置換しない。
2L2ページのアクティビティがL1で終了した後も、
そのページをできるだけ長くL2で保持する。
そのページをできるだけ長くL2で保持する。
3L2ページのアクティビティがL1で終了したように
見える複数のL2ページがある時、L1で最も長い時間
アクティビティを中止しているL2ページを(L1にお
けるLRU)、後にタスク切換えの可能性が最も少ない
ものとして放棄する。
見える複数のL2ページがある時、L1で最も長い時間
アクティビティを中止しているL2ページを(L1にお
けるLRU)、後にタスク切換えの可能性が最も少ない
ものとして放棄する。
最もわかり易いが誤つたL2LRUの処理方法は、L1
ミスが生じL2ラインを参照した時、L2LRU置換選
択回路を駆動させることである。
ミスが生じL2ラインを参照した時、L2LRU置換選
択回路を駆動させることである。
その場合、L2参照アクティビティがL1アクティビテ
ィの誤つた表示を与え、次のような誤つたL2LRU決
定へと導く場合がある。1 ページにある1つ又はそれ
以上のラインが非常に高いL1参照アクティビティを有
し、従つてL2参照アクティビティが非常に少ないか又
は存在しない。
ィの誤つた表示を与え、次のような誤つたL2LRU決
定へと導く場合がある。1 ページにある1つ又はそれ
以上のラインが非常に高いL1参照アクティビティを有
し、従つてL2参照アクティビティが非常に少ないか又
は存在しない。
2L1でいくつかのラインにわたつて臨時的に参照され
るページは、L1で非常にアクチブなページよりも高い
L2アクティビティを有する。
るページは、L1で非常にアクチブなページよりも高い
L2アクティビティを有する。
3中程度にアクチブなL1ラインは、同一のL1コング
ルーアンス●クラス(COngr′Uenceclas
s)における近隣のラインがより高いアクティビティを
有するため、置換されかつL1へフエツチされ続ける。
ルーアンス●クラス(COngr′Uenceclas
s)における近隣のラインがより高いアクティビティを
有するため、置換されかつL1へフエツチされ続ける。
これによつて、L2参照アクティビティは高くなり、L
2のページを必要以上に維持する。それは、特にページ
中の他のラインがL1でアクチブでない時に生じる。要
するに、L1でミスを生じるL1参照のみに注意するL
2ディレクトリィに対しては、誤つたL2ページ置換が
生じるかも知れない。本発明において、DLATは全て
のL1参照に注意し、その注意を1つのラインではなく
、全体のページにわたつて積重ねる。L2エントリイへ
の最後のアクセスを、LRU状況を決定する基礎として
使用する先行技術は、誤つたLRU決定を導く。
2のページを必要以上に維持する。それは、特にページ
中の他のラインがL1でアクチブでない時に生じる。要
するに、L1でミスを生じるL1参照のみに注意するL
2ディレクトリィに対しては、誤つたL2ページ置換が
生じるかも知れない。本発明において、DLATは全て
のL1参照に注意し、その注意を1つのラインではなく
、全体のページにわたつて積重ねる。L2エントリイへ
の最後のアクセスを、LRU状況を決定する基礎として
使用する先行技術は、誤つたLRU決定を導く。
何故ならば、L2エントリイが長い間アクセスされなか
つたとしても、対応するL1エントリイに対して、最も
新しいアクセスがなされたかも知れないからである。実
際、L1エントリイがアクセスされる頻度が高くなれば
、対応するL2エントリイがアクセスされる頻度は少な
くなる。何故ならば、L2エントリイへのアクセスを生
じるようなL1ミスは生じないからである。RL2アク
セスョに関する先行技術の意味は、RLlミスョ又はR
L2データのコピーョであつた。このようなRL2アク
セスョは、先行技術ではL2エントリイの置換選択のた
めに使用された。先行技術 米国特許第4181937号は、3レベル記憶階層にお
けるL2キャッシュ●バッファのために、置換選択方式
を教示している。
つたとしても、対応するL1エントリイに対して、最も
新しいアクセスがなされたかも知れないからである。実
際、L1エントリイがアクセスされる頻度が高くなれば
、対応するL2エントリイがアクセスされる頻度は少な
くなる。何故ならば、L2エントリイへのアクセスを生
じるようなL1ミスは生じないからである。RL2アク
セスョに関する先行技術の意味は、RLlミスョ又はR
L2データのコピーョであつた。このようなRL2アク
セスョは、先行技術ではL2エントリイの置換選択のた
めに使用された。先行技術 米国特許第4181937号は、3レベル記憶階層にお
けるL2キャッシュ●バッファのために、置換選択方式
を教示している。
L2バッファは、多重プロセッサ(MP)の全ての第1
レベル●キャッシュに共通である。L2置換選択方式は
、各キャッシュ・ブロックについて各プロセッサのため
のコピー●フラグ●ビットを使用する。各プロセッサの
コピー◆フラグ◆ビットは、関連するプロセッサの第1
レベル●キャッシュがそのブロックをL2からL1コピ
ーした時オンヘセツトされる。オンになつたコピー●フ
ラグ●ビットが最も少ない(即ち、コピーを有するプロ
セッサの数が最も少ない)ブロックが、置換の候補とな
る。従つて、その置換選択回路は、L2へのアクセス(
即ち、L2バッファをコピーすること)に依存する。米
国特許第3938097号は、L2キャッシュに対する
LRUアルゴリズムを使用したL2置換選択手段を開示
している。
レベル●キャッシュに共通である。L2置換選択方式は
、各キャッシュ・ブロックについて各プロセッサのため
のコピー●フラグ●ビットを使用する。各プロセッサの
コピー◆フラグ◆ビットは、関連するプロセッサの第1
レベル●キャッシュがそのブロックをL2からL1コピ
ーした時オンヘセツトされる。オンになつたコピー●フ
ラグ●ビットが最も少ない(即ち、コピーを有するプロ
セッサの数が最も少ない)ブロックが、置換の候補とな
る。従つて、その置換選択回路は、L2へのアクセス(
即ち、L2バッファをコピーすること)に依存する。米
国特許第3938097号は、L2キャッシュに対する
LRUアルゴリズムを使用したL2置換選択手段を開示
している。
この場合、MPの任意のプロセッサに設けられたL2キ
ャッシュの各ブロック(即ち、ライン)は、L1キャッ
シュへの各アクセスによつて減少されるカウンタを有す
る。そのカウンタがnになつた時、L1キャッシュ・ミ
スが強制され、これはL2キャッシュにある対応するブ
ロックをアクセスさせる。従つて、それはMSからブロ
ックを置換するためのLRU候補とは)ならない。即ち
、n番目ごとのL1ヒットが強制的にL1ミスとして動
作するようにされるが、それはL2アクセスを起してL
2のLRUを決定するためてある。しかしCPUのデー
タ・アクセスに不必要なL1ミスを強制することは、シ
ステム効率の望ましくない低下を生じる。本発明の要約
本発明は、周知のLRUアルゴリズムを新規な態様で実
行するレベル2(L2)キャッシュ置換選択手段を有す
るシステムを提供する。
ャッシュの各ブロック(即ち、ライン)は、L1キャッ
シュへの各アクセスによつて減少されるカウンタを有す
る。そのカウンタがnになつた時、L1キャッシュ・ミ
スが強制され、これはL2キャッシュにある対応するブ
ロックをアクセスさせる。従つて、それはMSからブロ
ックを置換するためのLRU候補とは)ならない。即ち
、n番目ごとのL1ヒットが強制的にL1ミスとして動
作するようにされるが、それはL2アクセスを起してL
2のLRUを決定するためてある。しかしCPUのデー
タ・アクセスに不必要なL1ミスを強制することは、シ
ステム効率の望ましくない低下を生じる。本発明の要約
本発明は、周知のLRUアルゴリズムを新規な態様で実
行するレベル2(L2)キャッシュ置換選択手段を有す
るシステムを提供する。
本発明のシステムは、現今の大型データ処理システムで
行われるように、単独の仮想アドレシング●ア−キテク
チャー又は小さな割合いの実アドレス・リクエストと組
合せて使用される仮想アドレシング・ア−キテクチャー
で動作する。即ち、現今の大型処理システムは、小さな
割合いの実アドレスを、大きな割合いの仮想アドレスと
組合わせて満足的に使用している。L2キャッシュは、
ストア・イン●バッファ(SIB)型のキャッシュであ
つても、ストア・スルー(ST)型のキャッシュであつ
てもよい。また、L2キャッシュは、ST型又はSIB
型のL1キャッシュと共に動作する。L1キャッシュは
高速度技術を使用して製造され、L2キャッシュはそれ
より遅い(従つて安価な)技術を使用して製造され、L
3の主記憶装置は更に;低速の(従つて更に安価な)技
術を使用して製造される。多重プロセッサ構成では、複
数の中央プロセッサのために、別個のL2キャッシュが
設けられてよい。即ち、各L1キャッシュのためにそれ
ぞれのL2キャッシュが設けられるか、1つの2L2キ
ャッシュが複数のL1キャッシュによつて共用されてよ
い。いずれの場合にも、各L2キャッシュは本発明の置
換選択装置を使用してよい。本発明の目的は、次のよう
な能力又は特性を有するL2置換選択制御手段を有する
システムを提5供することである。1所与のL2キャッ
シュ容量に対してL2ミスを減少させること。
行われるように、単独の仮想アドレシング●ア−キテク
チャー又は小さな割合いの実アドレス・リクエストと組
合せて使用される仮想アドレシング・ア−キテクチャー
で動作する。即ち、現今の大型処理システムは、小さな
割合いの実アドレスを、大きな割合いの仮想アドレスと
組合わせて満足的に使用している。L2キャッシュは、
ストア・イン●バッファ(SIB)型のキャッシュであ
つても、ストア・スルー(ST)型のキャッシュであつ
てもよい。また、L2キャッシュは、ST型又はSIB
型のL1キャッシュと共に動作する。L1キャッシュは
高速度技術を使用して製造され、L2キャッシュはそれ
より遅い(従つて安価な)技術を使用して製造され、L
3の主記憶装置は更に;低速の(従つて更に安価な)技
術を使用して製造される。多重プロセッサ構成では、複
数の中央プロセッサのために、別個のL2キャッシュが
設けられてよい。即ち、各L1キャッシュのためにそれ
ぞれのL2キャッシュが設けられるか、1つの2L2キ
ャッシュが複数のL1キャッシュによつて共用されてよ
い。いずれの場合にも、各L2キャッシュは本発明の置
換選択装置を使用してよい。本発明の目的は、次のよう
な能力又は特性を有するL2置換選択制御手段を有する
システムを提5供することである。1所与のL2キャッ
シュ容量に対してL2ミスを減少させること。
2実施するのに比較的容量であること。
3L2キャッシュについてLRU置換動作を実3行する
こと。
こと。
4遅いL2キャッシュ技術にマッチさせてL1における
CPUアクセスの高速表示情報をL1から受取ること。
CPUアクセスの高速表示情報をL1から受取ること。
5DLAT中で各変換アドレスによつてアドレス4,さ
れたブロックのサイズに等しいブロック・サイズを使用
するL2キャッシュと共に動作すること。6DLATミ
スの場合にそれぞれのDLATで置換されたページをL
2キャッシュ◆ディレクトリィに知らせて、そのページ
を、L2キャッシュにおける置換候補とすること。
れたブロックのサイズに等しいブロック・サイズを使用
するL2キャッシュと共に動作すること。6DLATミ
スの場合にそれぞれのDLATで置換されたページをL
2キャッシュ◆ディレクトリィに知らせて、そのページ
を、L2キャッシュにおける置換候補とすること。
7 リクエストされたページのDLATヒットをサンプ
ルして、それらのページがL2キャッシュ・ディレクト
リィにおいて置換候補とならないようにすること。
ルして、それらのページがL2キャッシュ・ディレクト
リィにおいて置換候補とならないようにすること。
8L2キャッシュ・ディレクトリィへL2置換候補でな
いページを知らせる頻度を少なくするため、L1キャッ
シュ・ミスを使用して高頻度のDLATヒットをサンプ
ルすること。
いページを知らせる頻度を少なくするため、L1キャッ
シュ・ミスを使用して高頻度のDLATヒットをサンプ
ルすること。
9次の(1)及び(2)の表示を与えるため、L2キャ
ッシュ●ディレクトリィへL1キャッシュ・ミス及びそ
の置換されたアドレスを知らせることによつて、実アド
レス・リクエスト(これはDLATをバイパスする)を
使用すること。
ッシュ●ディレクトリィへL1キャッシュ・ミス及びそ
の置換されたアドレスを知らせることによつて、実アド
レス・リクエスト(これはDLATをバイパスする)を
使用すること。
(1)L2置換の候補として、L1でリクエストされた
アドレスでL2エントリイを表示すること。(2)置換
候補でないものとして、L1でリクエストされたアドレ
スでL2エントリイを表示すること。
アドレスでL2エントリイを表示すること。(2)置換
候補でないものとして、L1でリクエストされたアドレ
スでL2エントリイを表示すること。
本発明は、L2キャッシュ・ディレクトリィの中でL2
キャッシュ中のページ●ブロックを表わす各エントリイ
のために、置換(R)フラグ●ビット(又はRビット)
を使用する。
キャッシュ中のページ●ブロックを表わす各エントリイ
のために、置換(R)フラグ●ビット(又はRビット)
を使用する。
Rビットがオンにされた時、それは関連したページがL
2キャッシュにおいて置換候補であることを示す。しか
し、ページは、実際に置換されるまで、L2キャッシュ
中でアクセスされ続けてよい。Rビットがオフである時
、関連したL2ページは、そのクラスにおける全てのR
ビットがオフてない限り、置換候補ではない。Rビット
は、次のようぬにしてL2置換選択制御装置中て設定さ
れる。Rビットは、そのL2ページが置換候補であるこ
とを示すため、次の条件の下でオンされる。
2キャッシュにおいて置換候補であることを示す。しか
し、ページは、実際に置換されるまで、L2キャッシュ
中でアクセスされ続けてよい。Rビットがオフである時
、関連したL2ページは、そのクラスにおける全てのR
ビットがオフてない限り、置換候補ではない。Rビット
は、次のようぬにしてL2置換選択制御装置中て設定さ
れる。Rビットは、そのL2ページが置換候補であるこ
とを示すため、次の条件の下でオンされる。
1全てのRビットは電源オン、IPLl又はCPUリセ
ットでオンにされる。
ットでオンにされる。
2Rビットは、置換をともなうDLATミスで、DLA
T置換ページに対応するL2キャッシュ・エントリイの
ためにオンされる。
T置換ページに対応するL2キャッシュ・エントリイの
ためにオンされる。
3Rビットは、DLATをバイパスするL1リクエスト
(例えば実アドレス・リクエスト)について、L1キャ
ッシュ置換ラインに対応するL2キャッシュ・エントリ
イのためにオンされる。
(例えば実アドレス・リクエスト)について、L1キャ
ッシュ置換ラインに対応するL2キャッシュ・エントリ
イのためにオンされる。
Rビットは、次のような条件の下で、そのL2ページが
置換候補でないことを示すため、オフにされる。
置換候補でないことを示すため、オフにされる。
1Rビットは、CPUリクエストがL1キャッシュ・ミ
スを伴うDLATヒットを生じた時、リクエストされた
アドレスに対応するL2キャッシュ・エントリイのため
にオフにされる。
スを伴うDLATヒットを生じた時、リクエストされた
アドレスに対応するL2キャッシュ・エントリイのため
にオフにされる。
2Rビットは、CPUリクエストがDLATをバイパス
するL1キャッシュ・ミスを生じた時、リクエストされ
たアドレス(例えば実アドレス)に対応するL2キャッ
シュ・エントリイのためにオフにされる。
するL1キャッシュ・ミスを生じた時、リクエストされ
たアドレス(例えば実アドレス)に対応するL2キャッ
シュ・エントリイのためにオフにされる。
更に、Rビットを選択しそれをオン又はオフにするL1
からの信号は、L2DRU置換アレイにおける新しいL
RUポインタの発生を制御する。
からの信号は、L2DRU置換アレイにおける新しいL
RUポインタの発生を制御する。
各アレイ・ポインタは、L2ディレクトリィのコングル
ーアンス●クラスにあるLRUエントリイを選択する。
選択されたエントリイのRビットが無置換状態から置換
状態はへ変えられる時、新しいポインタがそのエントリ
イのコングルーアンス・クラスのために発生させる。L
RUポインタを最初のRビットのオンの時点で発生させ
るため、既にRビットをオンにした場合後にそれぞれ再
びオンにする信号は許されない。L2ページのRビット
がオフされた場合、後のターン・オフ信号は、L2LR
Uアレイ入力コントロールに対して許される。
ーアンス●クラスにあるLRUエントリイを選択する。
選択されたエントリイのRビットが無置換状態から置換
状態はへ変えられる時、新しいポインタがそのエントリ
イのコングルーアンス・クラスのために発生させる。L
RUポインタを最初のRビットのオンの時点で発生させ
るため、既にRビットをオンにした場合後にそれぞれ再
びオンにする信号は許されない。L2ページのRビット
がオフされた場合、後のターン・オフ信号は、L2LR
Uアレイ入力コントロールに対して許される。
全てのRビットがそのクラスにおいてオフである時(こ
れが起るのはまれであるが、あり得ないことではない)
、最も過去に参照されたページが、置換のためにLRU
として指定される。ターン・オン又はターン・オフによ
るRビットの変化は、L2LRUアレイ入力をして、ア
ドレスされつつあるL2ディレクトリィ●クラスのため
に新しいLRUポインタを発生させる。
れが起るのはまれであるが、あり得ないことではない)
、最も過去に参照されたページが、置換のためにLRU
として指定される。ターン・オン又はターン・オフによ
るRビットの変化は、L2LRUアレイ入力をして、ア
ドレスされつつあるL2ディレクトリィ●クラスのため
に新しいLRUポインタを発生させる。
ターン●オンの場合、新しいポインタはターン●オンを
有するエントリイから離れたエントリイを指定する。し
かし、Rビットのターン・オンが正しかつたならば、エ
ントリイの非使用はLRU回路の通常の動作をして、そ
の後暫くたつてから非使用エントリイのためにポインタ
を発生させる。これは、勿論、クラス内の他のページが
前にRビットをオンされていなければ、非使用エントリ
イをそのコングルーアンス・クラスの置換候補とする。
もしRビットのターン・オンが正しくなかつたならば、
ポインタが最初に同一クラスの他のエントリイを指定す
る場合、LRビットをオフにする他のCPUアクティビ
ティの場合と同じく、通常のLRU回路動作の時間で、
ターン・オンの正確性を決定することができる。それは
、関連したページ内のデータへ続いてアクセスすること
によつて、そのRビットをターン・オフすることにより
可能となる。こうして、そのページに対する置換候補状
態が除去される。要するに、本発明のシステムはL2へ
L1におけるDLAT置換情報を知らせる簡単にして有
効なシステムということができる。
有するエントリイから離れたエントリイを指定する。し
かし、Rビットのターン・オンが正しかつたならば、エ
ントリイの非使用はLRU回路の通常の動作をして、そ
の後暫くたつてから非使用エントリイのためにポインタ
を発生させる。これは、勿論、クラス内の他のページが
前にRビットをオンされていなければ、非使用エントリ
イをそのコングルーアンス・クラスの置換候補とする。
もしRビットのターン・オンが正しくなかつたならば、
ポインタが最初に同一クラスの他のエントリイを指定す
る場合、LRビットをオフにする他のCPUアクティビ
ティの場合と同じく、通常のLRU回路動作の時間で、
ターン・オンの正確性を決定することができる。それは
、関連したページ内のデータへ続いてアクセスすること
によつて、そのRビットをターン・オフすることにより
可能となる。こうして、そのページに対する置換候補状
態が除去される。要するに、本発明のシステムはL2へ
L1におけるDLAT置換情報を知らせる簡単にして有
効なシステムということができる。
DLAT置換情報は、中間的キャッシュを使用する単一
プロセッサ●システム又は多重プロセッサ●システムに
おいて、LlCPUアクティビティを非常に正確かつ有
効に反映する。本発明のシステムを実現するためめには
、各L2ディレクトリィ・エントリイに対応してRビッ
トを設けると共に、関連した制御回路を若干付加するだ
けでよい。実施例の説明 A本発明の背景 第4図のレベル(L1)ディレクトリィ及び第5図のD
LATは通常型のものであり、その各々は先行技術に従
つて構成される。
プロセッサ●システム又は多重プロセッサ●システムに
おいて、LlCPUアクティビティを非常に正確かつ有
効に反映する。本発明のシステムを実現するためめには
、各L2ディレクトリィ・エントリイに対応してRビッ
トを設けると共に、関連した制御回路を若干付加するだ
けでよい。実施例の説明 A本発明の背景 第4図のレベル(L1)ディレクトリィ及び第5図のD
LATは通常型のものであり、その各々は先行技術に従
つて構成される。
プロセッサ又はCPUは、仮想アドレス(VA)を使用
して、L1におけるストレージ・リクエストを発生する
。L1ディレクトリィ及びDLATへ行く仮想アドレス
のビット位置は、第3図に示される。DLATlディレ
クトリィ及びキャッシュへのアドレスとしてカツコ内に
示されたビット位置は、第3図のビット位置を示す。そ
れらは仮想アドレス、実アドレス又は絶対アドレスへ適
用される。ディレクトリィ及びDLAT中の各エントリ
イは、仮想アドレス(■A)及び変換された絶対アドレ
ス(AA)を含む。
して、L1におけるストレージ・リクエストを発生する
。L1ディレクトリィ及びDLATへ行く仮想アドレス
のビット位置は、第3図に示される。DLATlディレ
クトリィ及びキャッシュへのアドレスとしてカツコ内に
示されたビット位置は、第3図のビット位置を示す。そ
れらは仮想アドレス、実アドレス又は絶対アドレスへ適
用される。ディレクトリィ及びDLAT中の各エントリ
イは、仮想アドレス(■A)及び変換された絶対アドレ
ス(AA)を含む。
VAビットは、仮想アドレスで与えられるCPUリクエ
スト・アドレス“(CPUによつてリクエストされたア
ドレス)と比較するために必要である。DLAT中に含
まれる各ページの絶対アドレスは、VAを変換したもの
である。このVAは、L1ディレクトリィの不一致(即
ち、ライン・ミス)がある場合、主記憶装置(MS)を
アドレスするために必要となる。L1ディレクトリィは
、その有効なエントリイの絶対アドレスを保持する。I
/0チャンネル及び他のプロセッサは、絶対アドレスを
使用してL1ディレクトリィを質関する。L1キャッシ
ュ中でラインが有効であるが、それに対する有効なりL
ATエントリイが存在しない場合がある。L2キャッシ
ュが記憶階層へ組込まれた時、L1ディレクトリィ、D
LAT..DAT論理は変更される必要がない。大きな
相異は、ライン・ミス(L1ディレクトリィの不一致)
の場合、DLATからの絶対アドレスがMSではなくL
2へ送られることである。もしL2ディレクトリィの一
致があれば、ラインはL2キャッシュからL1キャッシ
ュへ移動される。もしL2ディレクトリィが一致しなけ
れば、絶対アドレスがMSへ送られ、ページがMSから
L2キヤツシユヘコピーされ、絶対アドレスがL2ディ
レクトリィへ記憶され、ページ中のリクエストされたラ
インが同時にL1キヤツシユヘコピーされ、リクエスト
されたダブル●ワードが同時にCPUへコピーされる。
第6図及び第7図は、4重セット関連L2キャッシュ及
びL2ディレクトリィを示す。これらは、先行技術に従
つてL1ディレクトリィ及びL1キャッシュと同様に構
成されてよいが、相異点として、L2ディレクトリィの
エントリイに新規なRフラグ・ビットが付加される。更
に、L2ディレクトリィのエントリイは、L2キャッシ
ュ内のデータ◆ページのために、絶対アドレス(AA)
と他のフラグ・ビットを保持している。L2回路は、L
1回路よりも遅くて安価な技術を使用して製造される。
しかし、L2回路は、MS回路技術よりも早い技術を使
用して製造される。0ページョの語は、L2キャッシュ
中の各ブ′05ツクを呼ぶために使用される。
スト・アドレス“(CPUによつてリクエストされたア
ドレス)と比較するために必要である。DLAT中に含
まれる各ページの絶対アドレスは、VAを変換したもの
である。このVAは、L1ディレクトリィの不一致(即
ち、ライン・ミス)がある場合、主記憶装置(MS)を
アドレスするために必要となる。L1ディレクトリィは
、その有効なエントリイの絶対アドレスを保持する。I
/0チャンネル及び他のプロセッサは、絶対アドレスを
使用してL1ディレクトリィを質関する。L1キャッシ
ュ中でラインが有効であるが、それに対する有効なりL
ATエントリイが存在しない場合がある。L2キャッシ
ュが記憶階層へ組込まれた時、L1ディレクトリィ、D
LAT..DAT論理は変更される必要がない。大きな
相異は、ライン・ミス(L1ディレクトリィの不一致)
の場合、DLATからの絶対アドレスがMSではなくL
2へ送られることである。もしL2ディレクトリィの一
致があれば、ラインはL2キャッシュからL1キャッシ
ュへ移動される。もしL2ディレクトリィが一致しなけ
れば、絶対アドレスがMSへ送られ、ページがMSから
L2キヤツシユヘコピーされ、絶対アドレスがL2ディ
レクトリィへ記憶され、ページ中のリクエストされたラ
インが同時にL1キヤツシユヘコピーされ、リクエスト
されたダブル●ワードが同時にCPUへコピーされる。
第6図及び第7図は、4重セット関連L2キャッシュ及
びL2ディレクトリィを示す。これらは、先行技術に従
つてL1ディレクトリィ及びL1キャッシュと同様に構
成されてよいが、相異点として、L2ディレクトリィの
エントリイに新規なRフラグ・ビットが付加される。更
に、L2ディレクトリィのエントリイは、L2キャッシ
ュ内のデータ◆ページのために、絶対アドレス(AA)
と他のフラグ・ビットを保持している。L2回路は、L
1回路よりも遅くて安価な技術を使用して製造される。
しかし、L2回路は、MS回路技術よりも早い技術を使
用して製造される。0ページョの語は、L2キャッシュ
中の各ブ′05ツクを呼ぶために使用される。
それは、1ラインョと呼ばれるL1キヤツシ81のブロ
ックとL2キャッシュのブロックとを区別するために使
用される。L2キャッシュのブロック・サイズは、主記
憶装置中でソフトウェアによつて管理されるペクージ●
サイズと等しい。このページ●サイズは通常、ページと
も呼ばれる。典型的には、今日使用される大型のIBM
システム/370プロセッサにおいて、L1ブロック・
サイズ(ライン)は64又は12&/くイトであり、ソ
フトウェアによつて管理されるページ・サイズは4Kバ
イトである。実施例では、L1ブロック・サイズは12
8バイトであり、L2ブロック・サイズは4096/(
イトである。L1ディレクトリィ、L2ディレクトリィ
、及びDLATはそれぞれ4重セット関連(FOurw
ayassOciative)であると仮定される。即
ち、各コングルーアンス・クラスには4つのエントリイ
が存在する。各プロセッサにL1キャッシュ及びL)2
キャッシュを設けられた単一プロセッサ又は多重プロセ
ッサにおいて、DLATはL2ディレクトリィと同様の
アドレスを保持してよい。各プロセッサがそれ自体のL
1キャッシュを有し、1つのL2キャッシュが複数のプ
ロセッサによつて共用・される多重プロセッサにおいて
、L2キャッシュは、各プロセッサのDLATより多く
のアドレスを保持するのが望ましい。第4図、第5図、
第6図、第7図に詳細に示されるDLATNLlキャッ
シュ、L2キャッシュ・は、L2置換選択機能を除いて
、それぞれ内部的には通常の態様で動作する。
ックとL2キャッシュのブロックとを区別するために使
用される。L2キャッシュのブロック・サイズは、主記
憶装置中でソフトウェアによつて管理されるペクージ●
サイズと等しい。このページ●サイズは通常、ページと
も呼ばれる。典型的には、今日使用される大型のIBM
システム/370プロセッサにおいて、L1ブロック・
サイズ(ライン)は64又は12&/くイトであり、ソ
フトウェアによつて管理されるページ・サイズは4Kバ
イトである。実施例では、L1ブロック・サイズは12
8バイトであり、L2ブロック・サイズは4096/(
イトである。L1ディレクトリィ、L2ディレクトリィ
、及びDLATはそれぞれ4重セット関連(FOurw
ayassOciative)であると仮定される。即
ち、各コングルーアンス・クラスには4つのエントリイ
が存在する。各プロセッサにL1キャッシュ及びL)2
キャッシュを設けられた単一プロセッサ又は多重プロセ
ッサにおいて、DLATはL2ディレクトリィと同様の
アドレスを保持してよい。各プロセッサがそれ自体のL
1キャッシュを有し、1つのL2キャッシュが複数のプ
ロセッサによつて共用・される多重プロセッサにおいて
、L2キャッシュは、各プロセッサのDLATより多く
のアドレスを保持するのが望ましい。第4図、第5図、
第6図、第7図に詳細に示されるDLATNLlキャッ
シュ、L2キャッシュ・は、L2置換選択機能を除いて
、それぞれ内部的には通常の態様で動作する。
第5図において、ボックス中の記号Cは連鎖機能を示す
。その場合、各ボックスはDLAT絶対アドレス(AA
)ビット1−19を■Aアドレス・ビット20−24(
これは品ビット20−24と同じ)と連結する。それら
は、DLAT絶対アドレス(AA)A..B,.Cl又
はDの出力線上に、選択されたエントリイAAを与える
。かくて、プロセッサは、DLAT及びL1ディレクト
リィへ仮想アドレスを送ることによつて、レベル1でC
PUリクエストを発生する。
。その場合、各ボックスはDLAT絶対アドレス(AA
)ビット1−19を■Aアドレス・ビット20−24(
これは品ビット20−24と同じ)と連結する。それら
は、DLAT絶対アドレス(AA)A..B,.Cl又
はDの出力線上に、選択されたエントリイAAを与える
。かくて、プロセッサは、DLAT及びL1ディレクト
リィへ仮想アドレスを送ることによつて、レベル1でC
PUリクエストを発生する。
DLAT及びL1ディレクトリィはそれぞれコングルー
アンス・クラスを選択する。DLATアレイ及びL1デ
ィレクトリィ・アレイの各々は、エントリイAlB..
C..Dの選択されたクラスの4つのアドレスを並列に
読出す。これらのアドレスは、プロセッサからの仮想ア
ドレスと比較される。DLATから読出された4つのア
ドレスのいずれかも一致しなければ、ダイナミック・ア
ドレス変換(DAT)回路が、セグメント・テーブル及
びページ・テーブルの各々からエントリイをフエツチす
ることによつて、仮想アドレスを実アドレスへ変換する
ことをリクエストされる。
アンス・クラスを選択する。DLATアレイ及びL1デ
ィレクトリィ・アレイの各々は、エントリイAlB..
C..Dの選択されたクラスの4つのアドレスを並列に
読出す。これらのアドレスは、プロセッサからの仮想ア
ドレスと比較される。DLATから読出された4つのア
ドレスのいずれかも一致しなければ、ダイナミック・ア
ドレス変換(DAT)回路が、セグメント・テーブル及
びページ・テーブルの各々からエントリイをフエツチす
ることによつて、仮想アドレスを実アドレスへ変換する
ことをリクエストされる。
この変換されたアドレスは、絶対アドレスの頭部へ付加
され、それがDLATアレイに記憶される。その時、も
し必要ならば、DLAT中のLRUエントリィが置換さ
れる。CPUリクエストが発生した時、もしリクエスト
された■Aが、DLAT中のVAl及びL1ディレクト
リィ中のVAと一致すれば(ライン・ヒット)、関連し
たワードがL1キャッシュから読出されるか、L1キャ
ッシュへ記憶される。
され、それがDLATアレイに記憶される。その時、も
し必要ならば、DLAT中のLRUエントリィが置換さ
れる。CPUリクエストが発生した時、もしリクエスト
された■Aが、DLAT中のVAl及びL1ディレクト
リィ中のVAと一致すれば(ライン・ヒット)、関連し
たワードがL1キャッシュから読出されるか、L1キャ
ッシュへ記憶される。
そしてCPUリクエストが完了する。概して、CPUリ
クエストの95%以上が、このようにして処理される。
しかし、もしDLATの一致が存在し、L1ディレクト
リィの一致が存在なければ、DLATから絶対アドレス
が得られる。
クエストの95%以上が、このようにして処理される。
しかし、もしDLATの一致が存在し、L1ディレクト
リィの一致が存在なければ、DLATから絶対アドレス
が得られる。
この絶対アドレスは、選択されたクラスにおける4つの
エントリイ・アドレス(A..BNCl又はD)の1つ
の比較が一致したリクエスト・アドレスによつて選択さ
れる。選択されたDLATエントリイからの絶対アドレ
スはページ・アドレスである。このページ・アドレスは
、ライン・アドレスを得るため、VAビット20−24
と連結される。もしアドレスされたページがL2キャッ
シュ中に存在すれば、L2キャッシュからL1キヤツシ
ユヘラインをフエツチするため、ライン◆アドレスがL
2キャッシュ●ディレクトリィへ送られる。このフエツ
チされたラインのアドレスは、L1ディレクトリィに記
憶される。ディレクトリィ中の正しいクラスをアドレス
するため、L1ディレクトリィ及びL2ディレクトリィ
の各々は、仮想アドレス及び絶対アドレスからのビット
位置の異つた組を使用するが、それはブロック・サイズ
が異るためである。
エントリイ・アドレス(A..BNCl又はD)の1つ
の比較が一致したリクエスト・アドレスによつて選択さ
れる。選択されたDLATエントリイからの絶対アドレ
スはページ・アドレスである。このページ・アドレスは
、ライン・アドレスを得るため、VAビット20−24
と連結される。もしアドレスされたページがL2キャッ
シュ中に存在すれば、L2キャッシュからL1キヤツシ
ユヘラインをフエツチするため、ライン◆アドレスがL
2キャッシュ●ディレクトリィへ送られる。このフエツ
チされたラインのアドレスは、L1ディレクトリィに記
憶される。ディレクトリィ中の正しいクラスをアドレス
するため、L1ディレクトリィ及びL2ディレクトリィ
の各々は、仮想アドレス及び絶対アドレスからのビット
位置の異つた組を使用するが、それはブロック・サイズ
が異るためである。
B実施例
本発明のシステムにおけるL1ディレクトリィとL2デ
ィレクトリィとの間の新規な相異点は、L2ディレクト
リィ中の各エントリイがRビットと呼ばれる置換フラグ
・ビットを設けられていることである。
ィレクトリィとの間の新規な相異点は、L2ディレクト
リィ中の各エントリイがRビットと呼ばれる置換フラグ
・ビットを設けられていることである。
L2キャッシュの所定の容量について、L2におけるキ
ャッシュ●ミスを最小にすることによつて、システム効
率を改善することが望まれる。第8図は、L2コングル
ーアンス●クラスにおけるエントリイのRビットを示す
。
ャッシュ●ミスを最小にすることによつて、システム効
率を改善することが望まれる。第8図は、L2コングル
ーアンス●クラスにおけるエントリイのRビットを示す
。
第7図は、第8図のコングルーアンス・クラスを行とし
て含んでいる4重セット関連L2ディレクトリィのレイ
アウトを示す。Rビットは、L2ページ置換選択を制御
するため、CPUをしてL1でDLATへアクセスさせ
る。
て含んでいる4重セット関連L2ディレクトリィのレイ
アウトを示す。Rビットは、L2ページ置換選択を制御
するため、CPUをしてL1でDLATへアクセスさせ
る。
DLAT置換選択がLRU動作に基づいていれば、DL
ATページ・アドレス置換選択はCPUによるページ●
アクセス●アクティビティの積重ねである。即ち、本発
明は、L1のDLATページ置換動作を、L2のページ
置換選択機能へ入力する。例えば、LlDLAT置換選
択回路は、1971年7月に発行されたIBM技術開発
報告(TDB)の第430頁に掲載されるA.Wein
bergerによる記事0蓋然的最旧時使用に基づく選
択によるバッファ記憶置換ョ(BllfferStOr
eReplacementbySelectiOnBa
sedOnPrObabIeLeastREcentU
sage)で説明された手法を使用してよい。統計的に
は、CPUリクエストの1%又はそれ以下がDLATミ
スを有し、本発明はそれをL2キャッシュ置換選択機能
へ入力する。1%のミスは、CPUリクエストの頻度よ
りはるかに遅い頻度を有する。
ATページ・アドレス置換選択はCPUによるページ●
アクセス●アクティビティの積重ねである。即ち、本発
明は、L1のDLATページ置換動作を、L2のページ
置換選択機能へ入力する。例えば、LlDLAT置換選
択回路は、1971年7月に発行されたIBM技術開発
報告(TDB)の第430頁に掲載されるA.Wein
bergerによる記事0蓋然的最旧時使用に基づく選
択によるバッファ記憶置換ョ(BllfferStOr
eReplacementbySelectiOnBa
sedOnPrObabIeLeastREcentU
sage)で説明された手法を使用してよい。統計的に
は、CPUリクエストの1%又はそれ以下がDLATミ
スを有し、本発明はそれをL2キャッシュ置換選択機能
へ入力する。1%のミスは、CPUリクエストの頻度よ
りはるかに遅い頻度を有する。
DLATミスの頻度が少なくなれば、それだけ遅いL2
回路の切換速度とマッチングすることができる。その場
合、99%のDLATヒット率はミスマッチとなろう。
それぞれのDLAT,ミスは、通常、リクエストされた
VA及びその変換された品のためにスペースを作るため
、現存するDLATエントリイを置換せしめる。
回路の切換速度とマッチングすることができる。その場
合、99%のDLATヒット率はミスマッチとなろう。
それぞれのDLAT,ミスは、通常、リクエストされた
VA及びその変換された品のためにスペースを作るため
、現存するDLATエントリイを置換せしめる。
本発明の装置は、それぞれのDLAT置換ペーノジ・ア
ドレスをL2へ伝達する。
ドレスをL2へ伝達する。
それは、対応するページをL2キャッシュの置換候補と
するためである。CPUによつてリクエストされたペー
ジのDLATヒット(CPUリクエストの約99%で起
7る)は、CPUリクエストの約5%で起るL1キャッ
シュ・ディレクトリィ・ミスを伴う場合にのみ、L2へ
伝達される。
するためである。CPUによつてリクエストされたペー
ジのDLATヒット(CPUリクエストの約99%で起
7る)は、CPUリクエストの約5%で起るL1キャッ
シュ・ディレクトリィ・ミスを伴う場合にのみ、L2へ
伝達される。
かくて、L1ヒットはDLATヒットの約5%をサンプ
ルするが、それは、L2へ伝達されるDLATヒットの
頻度を減少させて、L2回路の低速制限とマッチさせる
ためである。しかし、LlDLATヒットの合計は、本
来的にLlDLATページ置換の決定中に含まれる。即
ち、ページがCPUリクエストによる十分に新しいDL
ATヒットを有しなかつた場合、そそのページは置換さ
れる。従つて、L2へなされる低頻度DLAT置換の伝
達は、DLATヒットの伝達がない場合、L2へのDL
ATヒットの頻度を表わす。しかし、後述する理由によ
り、L2へ伝達されるDLATミスは、DLATに対す
る置換選択決定を改善するため、訂正的利点を与える。
かくて、L1キャッシュ●ヒットによつてサンプルされ
た後のDLATヒット及びDLATミスは結合された低
速性を有し、L2回路の速度と容易にマッチすることが
できる。
ルするが、それは、L2へ伝達されるDLATヒットの
頻度を減少させて、L2回路の低速制限とマッチさせる
ためである。しかし、LlDLATヒットの合計は、本
来的にLlDLATページ置換の決定中に含まれる。即
ち、ページがCPUリクエストによる十分に新しいDL
ATヒットを有しなかつた場合、そそのページは置換さ
れる。従つて、L2へなされる低頻度DLAT置換の伝
達は、DLATヒットの伝達がない場合、L2へのDL
ATヒットの頻度を表わす。しかし、後述する理由によ
り、L2へ伝達されるDLATミスは、DLATに対す
る置換選択決定を改善するため、訂正的利点を与える。
かくて、L1キャッシュ●ヒットによつてサンプルされ
た後のDLATヒット及びDLATミスは結合された低
速性を有し、L2回路の速度と容易にマッチすることが
できる。
しかし、L2キャッシュの置換選択は、DLATのペー
ジ置換決定に完全に従属しているわけではなく、多くの
場合、DLAT置換決定の誤りが後のCPUリクエスト
によつて証明されると、L2置換機能はDLAT置換決
定を拒絶する。
ジ置換決定に完全に従属しているわけではなく、多くの
場合、DLAT置換決定の誤りが後のCPUリクエスト
によつて証明されると、L2置換機能はDLAT置換決
定を拒絶する。
これは、LRU決定に伴つて生じる。更に、多重処理の
場合、他のCPUはページ中の1つ又はそれ以上のライ
ンをアクセスしてよい。本発明のシステムは、大部分の
CPUリクエストが仮想アドレスを使用するような環境
で作動する。
場合、他のCPUはページ中の1つ又はそれ以上のライ
ンをアクセスしてよい。本発明のシステムは、大部分の
CPUリクエストが仮想アドレスを使用するような環境
で作動する。
大型のIBMCPUでジョブ●ストリームを統計的に分
析したところでは、CPUリクエストの95%以上が仮
想アドレスを使用する(即ち、DATオン)。従つて、
実アドレスを使用するCPUアクセス(即ち、DATオ
フ)の小さな割合いは、本発明のシステムによつて制御
さるL2置換選択動作に重要な影響を及ぼさない。第2
図は本発明のシステムによつて実行される動作の流れ図
てある。
析したところでは、CPUリクエストの95%以上が仮
想アドレスを使用する(即ち、DATオン)。従つて、
実アドレスを使用するCPUアクセス(即ち、DATオ
フ)の小さな割合いは、本発明のシステムによつて制御
さるL2置換選択動作に重要な影響を及ぼさない。第2
図は本発明のシステムによつて実行される動作の流れ図
てある。
もしDATがオンであれば(即ち、CPUリクエストが
■Aを使用している場.合)、CPUリクエストの或る
ものはDLATでミスを生じ、DLATてエントリイを
置換させる。置換されたページ・アドレスは、L2ディ
レクトリィの対応するエントリイを選択するためL2へ
送られる。ボックス21は、DLAT置換ページ・アト
.レスによつて選択されたL2エントリイのRビットを
オンにする。それは、このL2エントリイを、L2の置
換候補とするためである。DLATミスは、L1からL
2へRビットの設定を伝達するため、本発明のシステム
によつて使用される2つ(のDLAT事象の1つである
。更に、L1キャッシュ・ミスを伴うCPUリクエスト
に関するDLATヒットがL2へ伝達される(ボックス
22のN(ノー)の出口)。
■Aを使用している場.合)、CPUリクエストの或る
ものはDLATでミスを生じ、DLATてエントリイを
置換させる。置換されたページ・アドレスは、L2ディ
レクトリィの対応するエントリイを選択するためL2へ
送られる。ボックス21は、DLAT置換ページ・アト
.レスによつて選択されたL2エントリイのRビットを
オンにする。それは、このL2エントリイを、L2の置
換候補とするためである。DLATミスは、L1からL
2へRビットの設定を伝達するため、本発明のシステム
によつて使用される2つ(のDLAT事象の1つである
。更に、L1キャッシュ・ミスを伴うCPUリクエスト
に関するDLATヒットがL2へ伝達される(ボックス
22のN(ノー)の出口)。
それは、ボックス23中でL2リクエスト・ページのた
めにRビットをオフにして、L2エントリイを置換不可
能にする。L1キャッシュ置換アドレスは、L2へのD
LATヒット伝達時に使用されない。本発明のシステム
は、L1ミスがL1からL2へ伝達される事実を有利に
利用する。即ち、本発明は、高頻度で生じる多数のDL
ATヒットをフィルタにかけるためL1ミスを利用する
。従つて、フィルタにかけられたDLATヒットを伝達
するにノは、極く少量のハードウェアが必要となるに過
ぎない。換言すれば、L1キャッシュ・ミスによつて得
られた特定形式のDLATヒットのフィルタリングは、
L2への通常のライン●フエツチ●リクエストのために
設けられたL1上2伝達ハード・ウェアの使用を可能に
する。本発明のシステムによるDLATミスの伝達は、
必すしもL1キャッシュ・ミスと重複しないが、DLA
Tミスは低頻度で起る(即ち、CPUリクエストの1%
より少なく)。更に、第2図のRビット制御動作は、混
在した実アドレス・リクエストを処理する。
めにRビットをオフにして、L2エントリイを置換不可
能にする。L1キャッシュ置換アドレスは、L2へのD
LATヒット伝達時に使用されない。本発明のシステム
は、L1ミスがL1からL2へ伝達される事実を有利に
利用する。即ち、本発明は、高頻度で生じる多数のDL
ATヒットをフィルタにかけるためL1ミスを利用する
。従つて、フィルタにかけられたDLATヒットを伝達
するにノは、極く少量のハードウェアが必要となるに過
ぎない。換言すれば、L1キャッシュ・ミスによつて得
られた特定形式のDLATヒットのフィルタリングは、
L2への通常のライン●フエツチ●リクエストのために
設けられたL1上2伝達ハード・ウェアの使用を可能に
する。本発明のシステムによるDLATミスの伝達は、
必すしもL1キャッシュ・ミスと重複しないが、DLA
Tミスは低頻度で起る(即ち、CPUリクエストの1%
より少なく)。更に、第2図のRビット制御動作は、混
在した実アドレス・リクエストを処理する。
リクエストされた実アドレス(RA)がDLATへ置か
れると、本発明のシステムはRAについてVAと同じよ
うに動作する。しかし、VA及ひRAについてDLAT
を使用する大部分の大型CPUは、DLATをバイパス
しL1キャッシュにアクセスする。ボックス26で、L
1キャッシュ・ミスを伴うRAリクエストは、リクエス
トされたアドレスをL2へ送らせるが、それは、L2ペ
ージ・エントリイを選択して、そのページのRビットを
オフにするためである。更に、L1キャッシュ◆ミスは
、通常、L1キャッシュのコングルーアンス●クラスに
ある置換アドレスをミスになつたRAリクエストによつ
てアドレスさせる。更に、このL1キャッシュの置換さ
れたアドレスはL2へ送られるが、それは、L2ページ
・エントリイを選択しかつボックス27でそのRビット
をオンにして、このL2エントリイをL2の置換候補に
するためである。RALlミスは、低頻度で起る(即ち
、CPUリクエストの5%より少なく)。その結果、R
ビット動作についてL1からL2への伝達頻度は、CP
Uリクエストに対するL1動作率の1120から111
0である。
れると、本発明のシステムはRAについてVAと同じよ
うに動作する。しかし、VA及ひRAについてDLAT
を使用する大部分の大型CPUは、DLATをバイパス
しL1キャッシュにアクセスする。ボックス26で、L
1キャッシュ・ミスを伴うRAリクエストは、リクエス
トされたアドレスをL2へ送らせるが、それは、L2ペ
ージ・エントリイを選択して、そのページのRビットを
オフにするためである。更に、L1キャッシュ◆ミスは
、通常、L1キャッシュのコングルーアンス●クラスに
ある置換アドレスをミスになつたRAリクエストによつ
てアドレスさせる。更に、このL1キャッシュの置換さ
れたアドレスはL2へ送られるが、それは、L2ページ
・エントリイを選択しかつボックス27でそのRビット
をオンにして、このL2エントリイをL2の置換候補に
するためである。RALlミスは、低頻度で起る(即ち
、CPUリクエストの5%より少なく)。その結果、R
ビット動作についてL1からL2への伝達頻度は、CP
Uリクエストに対するL1動作率の1120から111
0である。
本発明のシステムによつて、Rビット切換信号の伝達率
は低くなるので、L2キャッシュ・ディレクトリィ回路
によつて容易に処理することができる。L2キャッシュ
・ディレクトリィ回路は、通常、L1ディレクトリィ、
L1キャッシュ、又はDLATより低速かつ安価な回路
で作られている。他方、Rビット切換信号のL1からL
2への伝達がミス信号と同じくヒット信号についてもな
されるならば(即ち、L1速度で)、低速のL2技術は
L1速度を処理することができない。かくて、キャッシ
ュ●ヒットを伴うDLATヒットは、第2図の通路29
を通り、L2へ伝達されない。何故ならば、それらの発
生の速度は、仮定されたL2回路の速度制限に対して非
常に早いからである。しかし、本発明のシステムの動作
は、全てのDLATヒットをL2へ伝達することを含み
、それぞれのDLATヒットは、L2キャッシュにおけ
るDLATリクエストページ・エントリイのためのRビ
ットをオフにすることができる。Rビットをオフにする
ためL1ヒットを伴うDLATヒットをL2へ伝達しな
いのは、伝達した場合にL1速度で動作する非常に早い
Rビット切換回路をL2で設ける要があるからである。
このような切換回路は、L2置換効率を顕著に改善する
ことなくコストを増大させるだけである。共通のL2キ
ャッシュを有する多重処理は、各プロセッサのL1より
も早い切換回路を必要とする。この場合、Rビット処理
回路は、L1速度を処理するため、早い技術を使用して
作られ、L2の残りの回路は、低速かつ安価な技術を使
用して作られる。次の表1は、仮想アドレスを含むCP
Uリクエストについて、L1からL2へRビット切換信
号を伝達する(又は伝達しない)条件を表わす。
は低くなるので、L2キャッシュ・ディレクトリィ回路
によつて容易に処理することができる。L2キャッシュ
・ディレクトリィ回路は、通常、L1ディレクトリィ、
L1キャッシュ、又はDLATより低速かつ安価な回路
で作られている。他方、Rビット切換信号のL1からL
2への伝達がミス信号と同じくヒット信号についてもな
されるならば(即ち、L1速度で)、低速のL2技術は
L1速度を処理することができない。かくて、キャッシ
ュ●ヒットを伴うDLATヒットは、第2図の通路29
を通り、L2へ伝達されない。何故ならば、それらの発
生の速度は、仮定されたL2回路の速度制限に対して非
常に早いからである。しかし、本発明のシステムの動作
は、全てのDLATヒットをL2へ伝達することを含み
、それぞれのDLATヒットは、L2キャッシュにおけ
るDLATリクエストページ・エントリイのためのRビ
ットをオフにすることができる。Rビットをオフにする
ためL1ヒットを伴うDLATヒットをL2へ伝達しな
いのは、伝達した場合にL1速度で動作する非常に早い
Rビット切換回路をL2で設ける要があるからである。
このような切換回路は、L2置換効率を顕著に改善する
ことなくコストを増大させるだけである。共通のL2キ
ャッシュを有する多重処理は、各プロセッサのL1より
も早い切換回路を必要とする。この場合、Rビット処理
回路は、L1速度を処理するため、早い技術を使用して
作られ、L2の残りの回路は、低速かつ安価な技術を使
用して作られる。次の表1は、仮想アドレスを含むCP
Uリクエストについて、L1からL2へRビット切換信
号を伝達する(又は伝達しない)条件を表わす。
表1において、6つの行はDLAT,.Llディレクト
リィ、L2ディレクトリィの状態についての異なつた組
合せ、Rビット切換信号のL1からの伝達、選択された
RビットがCPUリクエスト・ページ・アドレス又はD
LAT置換アドレスのいずれに関連しているかなどを示
す。第5図に示されるDLAT回路、及び第9図に示さ
れるDLAT置換アレイ及び置換選択回路は、前記A.
Weinbergerによる1971年7月のIBM技
術開示報告の記事に従つて通常の態様で動作する。
リィ、L2ディレクトリィの状態についての異なつた組
合せ、Rビット切換信号のL1からの伝達、選択された
RビットがCPUリクエスト・ページ・アドレス又はD
LAT置換アドレスのいずれに関連しているかなどを示
す。第5図に示されるDLAT回路、及び第9図に示さ
れるDLAT置換アレイ及び置換選択回路は、前記A.
Weinbergerによる1971年7月のIBM技
術開示報告の記事に従つて通常の態様で動作する。
これらのDLAT回路及び第4図に示される通常のL1
キャッシュ回路は、本発明のシステムで使用される回路
部分を示す。DLATミスが起ると、要求されたL2エ
ントリイが、第10図に示されるDLATアドレス・ア
ウト・バスの絶対アドレスによつて、第6図及び第7図
のL2ディレクトリィで選択される。
キャッシュ回路は、本発明のシステムで使用される回路
部分を示す。DLATミスが起ると、要求されたL2エ
ントリイが、第10図に示されるDLATアドレス・ア
ウト・バスの絶対アドレスによつて、第6図及び第7図
のL2ディレクトリィで選択される。
DLATアドレス●アウト◆バスは、DLATミスの場
合にDLAT置換アドレスを選択し、DLATヒットの
場合にCPUリクエスト・アドレスを選択する。本発明
のシステムにおいて、DLAT及びL1キャッシュの双
方がヒットである時、Rビット動作は生じない。従つて
第10図からの出力は与えられない。L1キャッシュ●
ミスを伴うDLATヒットの場合、又はDATオフを伴
うL1ミスの場合、第11図のRビット●ターン・オフ
回路は次のいずれかを入力する。
合にDLAT置換アドレスを選択し、DLATヒットの
場合にCPUリクエスト・アドレスを選択する。本発明
のシステムにおいて、DLAT及びL1キャッシュの双
方がヒットである時、Rビット動作は生じない。従つて
第10図からの出力は与えられない。L1キャッシュ●
ミスを伴うDLATヒットの場合、又はDATオフを伴
うL1ミスの場合、第11図のRビット●ターン・オフ
回路は次のいずれかを入力する。
(1)現在のCPUリクエストによつて選択されたL2
エントリイを指定する4本のL2一致線のアクチブな1
本。又は(2)4本のL2一致線のいずれもアクチブ信
号を与えない時、L1参照ページのアドレスを含むL2
キャッシュ置換エントリイを指定する4本のL2置換線
のアクチブな1本。第12図は、次のいずれかの信号に
よつて能動,化されるRビット・ターン・オン回路を示
す。
エントリイを指定する4本のL2一致線のアクチブな1
本。又は(2)4本のL2一致線のいずれもアクチブ信
号を与えない時、L1参照ページのアドレスを含むL2
キャッシュ置換エントリイを指定する4本のL2置換線
のアクチブな1本。第12図は、次のいずれかの信号に
よつて能動,化されるRビット・ターン・オン回路を示
す。
(1)第5図から来るDLATミス信号。又は(2)D
ATオフを伴うCPU実アドレス・リクエスト信号。L
2一致信号は、次のいずれかの場合にのみ与えられる。
(1)DATがオンのとき、第10図!から来るDLA
Tアドレス・アウト・バス上のDLAT置換アドレスが
存在する場合。又は(2)DATがオフの時、第17図
から来るL1置換アドレス・アウト・バス信号が存在す
る場合。第13図はL2置換候補選択回路を示し、第1
:ー4図、第15図、第16図に示される回路を含んで
いる。L2LRUアドレス◆レジスタ41は、第10図
からPLATリクエスト又は置換アドレスを受取るか、
第4図からL1ディレクトリィ・アドレスを受取るか、
第17図からL1置換アドレスを受取る。レジスタ41
に入れられたアドレスは、L2LRUアレイ42にある
3ビットより成る行を選択する。L2LRUアレイ42
は、LlLRUアレイ又はDLATLRUアレイ)と同
じぐうな構成を有する。LRUアレイそれ自体は、先行
技術のIBMマシン又は1971年に出版された前記T
DBに説明されているLRUアレイと同じように動作す
る。
ATオフを伴うCPU実アドレス・リクエスト信号。L
2一致信号は、次のいずれかの場合にのみ与えられる。
(1)DATがオンのとき、第10図!から来るDLA
Tアドレス・アウト・バス上のDLAT置換アドレスが
存在する場合。又は(2)DATがオフの時、第17図
から来るL1置換アドレス・アウト・バス信号が存在す
る場合。第13図はL2置換候補選択回路を示し、第1
:ー4図、第15図、第16図に示される回路を含んで
いる。L2LRUアドレス◆レジスタ41は、第10図
からPLATリクエスト又は置換アドレスを受取るか、
第4図からL1ディレクトリィ・アドレスを受取るか、
第17図からL1置換アドレスを受取る。レジスタ41
に入れられたアドレスは、L2LRUアレイ42にある
3ビットより成る行を選択する。L2LRUアレイ42
は、LlLRUアレイ又はDLATLRUアレイ)と同
じぐうな構成を有する。LRUアレイそれ自体は、先行
技術のIBMマシン又は1971年に出版された前記T
DBに説明されているLRUアレイと同じように動作す
る。
LlLRUアレイの例は、1981年3月23日に出願
された米国特許第246788号に開示される。L2及
び実施例中の各LRUアレイにある行の各々は、4つの
エントリイ(即ちA..B..C,.D)を有するキャ
ッシュの行(即ちコングルーアンス●クラス)に対応す
る。選択されたLRUアレイの行にある3ビット(AB
)、(A)、(D)のセット状態は、キャッシュ又はD
LATにある4つのエントリイANB..C.Dの1つ
を指定するが、そのエントリイは、選択されたコングル
ーアンス・クラスで現在最も置換される可能性のある候
補てある。各クラスにある1つのLRU候補のみが、L
RUアレイによつて指定される。有効な置換候補は、そ
れが実際に置換されるまで使用可能なままに残される。
クラス内の無効なエントリイは、LRUポインタによつ
て同じコングルーアンス・クラスにある有効なエントリ
イの前に置換される。第15図の置換アレイ42にある
LRUビット(AB)、(A)、(D)のセット状態は
、次の表■に従つて、各コングルーアンス●クラスにあ
るスロットA..B..C..Dへのアクセスによつて
決定される。
された米国特許第246788号に開示される。L2及
び実施例中の各LRUアレイにある行の各々は、4つの
エントリイ(即ちA..B..C,.D)を有するキャ
ッシュの行(即ちコングルーアンス●クラス)に対応す
る。選択されたLRUアレイの行にある3ビット(AB
)、(A)、(D)のセット状態は、キャッシュ又はD
LATにある4つのエントリイANB..C.Dの1つ
を指定するが、そのエントリイは、選択されたコングル
ーアンス・クラスで現在最も置換される可能性のある候
補てある。各クラスにある1つのLRU候補のみが、L
RUアレイによつて指定される。有効な置換候補は、そ
れが実際に置換されるまで使用可能なままに残される。
クラス内の無効なエントリイは、LRUポインタによつ
て同じコングルーアンス・クラスにある有効なエントリ
イの前に置換される。第15図の置換アレイ42にある
LRUビット(AB)、(A)、(D)のセット状態は
、次の表■に従つて、各コングルーアンス●クラスにあ
るスロットA..B..C..Dへのアクセスによつて
決定される。
表■において、結果の(AB)、(A)、(D)の設定
値はXを含む。
値はXを含む。
このXは、スロット・アクセスの前にそれが有していた
ROョ又は1しの値から変化していないことを示す。従
つて、全部で8つの異なつた値が(AB)、(A)、(
D)について存在する。これらの組合わせは、次の表■
に従つて、コングルーアンス◆クラス中のLRUを表わ
す。表■及ひ表■に基づく動作は先行技術で知られてお
り、かつ前記1971年のIBMTDBに開示されてい
る。
ROョ又は1しの値から変化していないことを示す。従
つて、全部で8つの異なつた値が(AB)、(A)、(
D)について存在する。これらの組合わせは、次の表■
に従つて、コングルーアンス◆クラス中のLRUを表わ
す。表■及ひ表■に基づく動作は先行技術で知られてお
り、かつ前記1971年のIBMTDBに開示されてい
る。
アレイ42て選択された行は、置換アレイ・レジスタ4
3へ出力される。レジスタ43において、3つの行ビッ
ト(AB)、(A)、(D)は第4図の回路が更新信号
を発生する時、第15図の回路によつて更新されてよい
。更新信号が第14図の回路によつて発生されない時、
レジスタ43にあるアレイ読出行は変更されない。更に
、L2置換候補がL2キャッシュのために選択されねば
ならない時、レジスタ43にあるアレイ読出行が第16
図にある回路によつて使用される。
3へ出力される。レジスタ43において、3つの行ビッ
ト(AB)、(A)、(D)は第4図の回路が更新信号
を発生する時、第15図の回路によつて更新されてよい
。更新信号が第14図の回路によつて発生されない時、
レジスタ43にあるアレイ読出行は変更されない。更に
、L2置換候補がL2キャッシュのために選択されねば
ならない時、レジスタ43にあるアレイ読出行が第16
図にある回路によつて使用される。
第16図は通常の先行技術の回路を表わす。この回路は
、置換アレイ・レジスタの現在の内容を受取る。それは
L2キャッシュで現在選択されているクラスにある4つ
のエントリイの中から置換候補を選択する。本発明のシ
ステムは、L2置換アレイを設定して、L2ディレクト
リィの各クラスにあるLRU候補エントリイの選択を制
御する。
、置換アレイ・レジスタの現在の内容を受取る。それは
L2キャッシュで現在選択されているクラスにある4つ
のエントリイの中から置換候補を選択する。本発明のシ
ステムは、L2置換アレイを設定して、L2ディレクト
リィの各クラスにあるLRU候補エントリイの選択を制
御する。
第14図の新規な回路は、Rビットが状態を変える時(
即ち、オフからオンへ、オンからオフへ)、L2LRU
アレイ更新信号を与える。
即ち、オフからオンへ、オンからオフへ)、L2LRU
アレイ更新信号を与える。
第14図の回路は、オンにされたRビットが再びターン
・オン信号を受取る時、更新信号を与えない。これは本
発明の重要な特徴であり、後に詳説する。オフにされた
Rビットが再びターン・オフ信号を受取る時、更新信号
が与えられる。DLATアドレス◆バス・アウト上で第
10図から与えられつつあるL1アドレスが、L2ディ
レクトリィの選択されたクラスにあるエントリイの1つ
に含まれるアドレスと一致した時、L2一致信号がL2
キャッシュから第14図及び第15図へ与えられる。
・オン信号を受取る時、更新信号を与えない。これは本
発明の重要な特徴であり、後に詳説する。オフにされた
Rビットが再びターン・オフ信号を受取る時、更新信号
が与えられる。DLATアドレス◆バス・アウト上で第
10図から与えられつつあるL1アドレスが、L2ディ
レクトリィの選択されたクラスにあるエントリイの1つ
に含まれるアドレスと一致した時、L2一致信号がL2
キャッシュから第14図及び第15図へ与えられる。
上記のアドレスの一致は、L2エントリイがDLATに
よつてヒット又は置換されつつあるL2ページであるか
、又は実アドレスによつてL1キャッシュ中に作られた
L2ページを表わすことを示す。L2エントリイのため
のRビットはオフ又はオンヘセツトされる。第15図の
回路は、現在L2キャッシュ中で選択されつつあるL2
LRUアレイ●コングルーアンス・クラスに対する3ビ
ット・ポインタを発生するため、L2LRUアレイ更新
信号を使用Iする。
よつてヒット又は置換されつつあるL2ページであるか
、又は実アドレスによつてL1キャッシュ中に作られた
L2ページを表わすことを示す。L2エントリイのため
のRビットはオフ又はオンヘセツトされる。第15図の
回路は、現在L2キャッシュ中で選択されつつあるL2
LRUアレイ●コングルーアンス・クラスに対する3ビ
ット・ポインタを発生するため、L2LRUアレイ更新
信号を使用Iする。
ポインタは、選択されたクラス内のエントリイA..B
,.C..Dの中の置換候補を選択する。第15図の回
路は、LRUアレイを本発明のシステムに従つて動作さ
せるため、第14図から来る更新信号によつて制御され
る。ここで注意すべ門きは、第15図への更新信号の発
生は、更新信号を発生するのに、どのRビット切換信号
が許されるかを選択することである。第14図において
、L2A..L2B..L2Cl又はL2D一致入力の
アクチブな1つは、4つのエントリイ(A..BlC,
.D)のどれがそのRビット状態をテストされたかを表
示する。選択されたRビットがオンであれば、第15図
へ更新信号を発生するための第2のターン・オン信号は
許されない。第14図及び第15図の回路による動作の
効果5は、オン又はオフへ切換えられたRビットを有す
るL2エントリイから離れたエントリイを指定するため
(即ち、選択されたエントリイとは異なつたクラスのL
2エントリイを指定するため)、現在のL2クラス・ポ
インタ(即ち、LRUアレイ゛O中のアドレスされた行
)をセットすることである。
,.C..Dの中の置換候補を選択する。第15図の回
路は、LRUアレイを本発明のシステムに従つて動作さ
せるため、第14図から来る更新信号によつて制御され
る。ここで注意すべ門きは、第15図への更新信号の発
生は、更新信号を発生するのに、どのRビット切換信号
が許されるかを選択することである。第14図において
、L2A..L2B..L2Cl又はL2D一致入力の
アクチブな1つは、4つのエントリイ(A..BlC,
.D)のどれがそのRビット状態をテストされたかを表
示する。選択されたRビットがオンであれば、第15図
へ更新信号を発生するための第2のターン・オン信号は
許されない。第14図及び第15図の回路による動作の
効果5は、オン又はオフへ切換えられたRビットを有す
るL2エントリイから離れたエントリイを指定するため
(即ち、選択されたエントリイとは異なつたクラスのL
2エントリイを指定するため)、現在のL2クラス・ポ
インタ(即ち、LRUアレイ゛O中のアドレスされた行
)をセットすることである。
これによつて、切換えられたRビットを有するエントリ
イは、直ちにLRU置換候補とされるのを禁止され、従
つて、置換されることができなくなる。かくて、オンに
切換えられたRビットを有するエントリイは、直ちにL
RU置換候補とはされず、従つて置換されることができ
ない。しかし、オン状態にあるRビットは、それがオフ
にセットされるまで、再びL2LRUアレイ更新信号を
発生することはない。従つて、もしRビットがL2キャ
ッシュ中で正しくオンにセットされたならば、そのセッ
ト状態によつて確められる。このエントリイはアクティ
ビティなしに時間を経過し、間もなくLRU置換候補と
なり、そのクラス内の他のエントリイに代つて置換され
る。第15図に示される回路のシングル・ターン・オン
特性は、多重システムにおいて特に重要である。
イは、直ちにLRU置換候補とされるのを禁止され、従
つて、置換されることができなくなる。かくて、オンに
切換えられたRビットを有するエントリイは、直ちにL
RU置換候補とはされず、従つて置換されることができ
ない。しかし、オン状態にあるRビットは、それがオフ
にセットされるまで、再びL2LRUアレイ更新信号を
発生することはない。従つて、もしRビットがL2キャ
ッシュ中で正しくオンにセットされたならば、そのセッ
ト状態によつて確められる。このエントリイはアクティ
ビティなしに時間を経過し、間もなくLRU置換候補と
なり、そのクラス内の他のエントリイに代つて置換され
る。第15図に示される回路のシングル・ターン・オン
特性は、多重システムにおいて特に重要である。
それは、前に他のCPUによつてオンにされたRビット
については、第2のCPUがLRUアレイへ第2のター
ン・オン信号を与えることがないようにする。何故なら
ば、LRUアレイへの第2のターン◆オン信号は、最初
ターン●オンの時からでなく、第2のターン・オンから
エントリイの時間を経過させることによつて、LRU状
態を変化させるからである。最初のターン・オンが置換
候補としてのエントリイのLRU状態を制御すべきなの
である。単一プロセッサであれ多重プロセッサであれ、
多重プログラム●システムは、ジョブの実行に当つてC
PUへ外へタスクを切換え、その後暫くし・てCPUの
中へタスクを戻す。
については、第2のCPUがLRUアレイへ第2のター
ン・オン信号を与えることがないようにする。何故なら
ば、LRUアレイへの第2のターン◆オン信号は、最初
ターン●オンの時からでなく、第2のターン・オンから
エントリイの時間を経過させることによつて、LRU状
態を変化させるからである。最初のターン・オンが置換
候補としてのエントリイのLRU状態を制御すべきなの
である。単一プロセッサであれ多重プロセッサであれ、
多重プログラム●システムは、ジョブの実行に当つてC
PUへ外へタスクを切換え、その後暫くし・てCPUの
中へタスクを戻す。
多数回にわたつてCPUの中及び外へジョブをタスク・
スイッチすることは通常行われる事である。タスクがC
PUの中又は外へ切換えられる度に、データ・ラインが
CPULlキャッシュへ移動させられ、アクチこブなペ
ージ●アドレスがCPUDLATへ変換される。タスク
がスイッチ●アウトされる度に、これらのライン及びペ
ージ●アドレスは、CPU(7)L1キャッシュ及びD
LATの中で迅速に置換される。もしページ・アドレス
の置換速度と同じ速さ3で、ページがL2キャッシュ中
で置換され、再びDLATへ戻されると、タスクを再実
行するための次のタスク切換えは、L2中にページを発
見することができず、CPUはこれらのページL3(即
ち主記憶装置)から得る必要がある。これはシス1テム
に多大の非効率をもたらし、近い将来にアクセスされる
ページを保持するというL2の目的を達成することがで
きない。即ち、DLATがページ・アドレスを置換する
速度と同じ速さで、L2がページを置換するとすれば(
即ち、DLATページ置換が対応するL2ページの置換
を即時に強制する場合)、L2は、L1キャッシュがタ
スク切換えの後にリクエストされたラインを得るための
時間損失を増大させることによつて、システムに対して
不利益を与える。このタスクを例とした分析により、ど
うしてL2におけるページ置換動作が、DLAT中のペ
ージ・アドレス置換又はL1キャッシュ中のライン置換
よりはるかに遅い速度でノ応答しなければならないかが
わかる。即ち、それは、システム効率を最大にするため
、L2KL3との間でページのやりとりを避けるためで
ある。結論として、L2でシステム効率を上げるため、
L2はDLATより長いページ置換0時定数.を有しな
くてはならない。第15図の回路で、Rビットがオンに
切換えられたエントリイから離れたエントリイを即時に
指定することの効果は、L2置換選択動作がDLAT置
換選択動作よりも長い1時定数ョを有するようになるこ
とである。
スイッチすることは通常行われる事である。タスクがC
PUの中又は外へ切換えられる度に、データ・ラインが
CPULlキャッシュへ移動させられ、アクチこブなペ
ージ●アドレスがCPUDLATへ変換される。タスク
がスイッチ●アウトされる度に、これらのライン及びペ
ージ●アドレスは、CPU(7)L1キャッシュ及びD
LATの中で迅速に置換される。もしページ・アドレス
の置換速度と同じ速さ3で、ページがL2キャッシュ中
で置換され、再びDLATへ戻されると、タスクを再実
行するための次のタスク切換えは、L2中にページを発
見することができず、CPUはこれらのページL3(即
ち主記憶装置)から得る必要がある。これはシス1テム
に多大の非効率をもたらし、近い将来にアクセスされる
ページを保持するというL2の目的を達成することがで
きない。即ち、DLATがページ・アドレスを置換する
速度と同じ速さで、L2がページを置換するとすれば(
即ち、DLATページ置換が対応するL2ページの置換
を即時に強制する場合)、L2は、L1キャッシュがタ
スク切換えの後にリクエストされたラインを得るための
時間損失を増大させることによつて、システムに対して
不利益を与える。このタスクを例とした分析により、ど
うしてL2におけるページ置換動作が、DLAT中のペ
ージ・アドレス置換又はL1キャッシュ中のライン置換
よりはるかに遅い速度でノ応答しなければならないかが
わかる。即ち、それは、システム効率を最大にするため
、L2KL3との間でページのやりとりを避けるためで
ある。結論として、L2でシステム効率を上げるため、
L2はDLATより長いページ置換0時定数.を有しな
くてはならない。第15図の回路で、Rビットがオンに
切換えられたエントリイから離れたエントリイを即時に
指定することの効果は、L2置換選択動作がDLAT置
換選択動作よりも長い1時定数ョを有するようになるこ
とである。
これは効率的なL2動作のために必要である。現在のR
ビットのターン・オンが起つた時、選択されたクラスに
おいて他のRビットがオンであれば、そのクラスのため
に発生されたLRUポインタは、現在アドレスされたエ
ントリイから離れたエントリイを指定することになるが
、ターン・オンにされたより古いRビットを有する他の
エントリイを指定するという利点がある。
ビットのターン・オンが起つた時、選択されたクラスに
おいて他のRビットがオンであれば、そのクラスのため
に発生されたLRUポインタは、現在アドレスされたエ
ントリイから離れたエントリイを指定することになるが
、ターン・オンにされたより古いRビットを有する他の
エントリイを指定するという利点がある。
その場合、上記他のエントリイが置換候補となる。第1
5図てRビットをオフに切換える効果は、伝達されたD
LATヒットをして、選択されたエントリイがLRUの
時間経過を受けるのを中止させることである。
5図てRビットをオフに切換える効果は、伝達されたD
LATヒットをして、選択されたエントリイがLRUの
時間経過を受けるのを中止させることである。
これにより、そのようなエントリイが置換候補として選
択されるのが防止される。このようにして、L1キャッ
シュ・ミスを伴うDLATヒットは、CPUリクエスト
の対象となつたL2ページ・エントリイのL2置換へ直
ちに反映される。他方、RビットをオンにするDLAT
ミスは、前と同じように動作する。全てのRビットがコ
ングルーアンス●クラ゛スでオンされた時、常にLRU
ポインタは、最も長い時間Rビットがオンになつていた
エントリイを選択する。
択されるのが防止される。このようにして、L1キャッ
シュ・ミスを伴うDLATヒットは、CPUリクエスト
の対象となつたL2ページ・エントリイのL2置換へ直
ちに反映される。他方、RビットをオンにするDLAT
ミスは、前と同じように動作する。全てのRビットがコ
ングルーアンス●クラ゛スでオンされた時、常にLRU
ポインタは、最も長い時間Rビットがオンになつていた
エントリイを選択する。
更に、全てのRビットがコングルーアンス●クラス中で
オフされた時、常にLRUポインタはクラス内のエント
リイの中からLRUエントリイを選択する。
オフされた時、常にLRUポインタはクラス内のエント
リイの中からLRUエントリイを選択する。
それはRビットがオフであつても実行される。何故なら
ば、Rビットの静的状態は、LRUポインタを発生する
時、LRU置換選択回路によつて無視されるからである
。
ば、Rビットの静的状態は、LRUポインタを発生する
時、LRU置換選択回路によつて無視されるからである
。
第1図は本発明の実施例を示す3レベル記憶階層のブロ
ック図、第2図は本発明に従うシステムの動作を示す流
れ図、第3図は実施例中で使用される各種のアドレスに
含まれるビット位置を表わす図、第4図は第1図の階層
で使用される通常のL1キャッシュの詳細図、第5図は
第1図の階層て使用される通常のDLATの詳細図、第
6図は第1図の階層で使用されるレベル2のキャッシュ
及びそれに関連した回路の詳細図、第7図は第6図に示
されるL2ディレクトリィの詳細図、第8図は第7図に
示されるL2ディレクトリィ内の単一クラスを含むレジ
スタの図、第9図は第1図の階層中て使用されるDLA
Tアレイ及びDLAT置換選択回路のブロック図、第1
0図は実施例で使用されるDLATアドレス●アウト●
バス回路の詳細を示す図、第11図及び第12図はRビ
ットをオンにしたりオフにしたりするためL2キャッシ
ュへ伝達される切換信号を発生する回路を示す図、第1
3図はL2置換候補選択回路を示す図、第14図はL2
LRUアレイ入力制御回路の詳細図、第15図はL2L
RUアレイ更新回路の詳細図、第16図はLRU置換エ
ントリイ選択回路の詳細図、第17図はL1変更ビット
がどのように設定されても実アドレス・リクエストに対
してL1キャッシュ置換アドレスを発生する回路の図、
第18図は変更ビットがオンの時L1置換アドレスを発
生する回路の図てある。 10・・・プロセッサ又はCPUll2・・・DAT回
路、14・・・DLATll6・・ルベル2●ディレク
トリィ、17・・・レベル1・ディレクトリィ、18・
・レベル1●キャッシュ、19・・・レベル2●キャッ
シュ、21・・・主記憶装置、23・・・DLATアウ
ト・バス回路、24・・・DLAT置換選択回路、26
・・ルベル1●アウト●バス回路、27・・ルベル1●
置換選択回路、28・・ルベル2・置換選択回路、29
・・・Rビット・ターン・オン・オフ回路。
ック図、第2図は本発明に従うシステムの動作を示す流
れ図、第3図は実施例中で使用される各種のアドレスに
含まれるビット位置を表わす図、第4図は第1図の階層
で使用される通常のL1キャッシュの詳細図、第5図は
第1図の階層て使用される通常のDLATの詳細図、第
6図は第1図の階層で使用されるレベル2のキャッシュ
及びそれに関連した回路の詳細図、第7図は第6図に示
されるL2ディレクトリィの詳細図、第8図は第7図に
示されるL2ディレクトリィ内の単一クラスを含むレジ
スタの図、第9図は第1図の階層中て使用されるDLA
Tアレイ及びDLAT置換選択回路のブロック図、第1
0図は実施例で使用されるDLATアドレス●アウト●
バス回路の詳細を示す図、第11図及び第12図はRビ
ットをオンにしたりオフにしたりするためL2キャッシ
ュへ伝達される切換信号を発生する回路を示す図、第1
3図はL2置換候補選択回路を示す図、第14図はL2
LRUアレイ入力制御回路の詳細図、第15図はL2L
RUアレイ更新回路の詳細図、第16図はLRU置換エ
ントリイ選択回路の詳細図、第17図はL1変更ビット
がどのように設定されても実アドレス・リクエストに対
してL1キャッシュ置換アドレスを発生する回路の図、
第18図は変更ビットがオンの時L1置換アドレスを発
生する回路の図てある。 10・・・プロセッサ又はCPUll2・・・DAT回
路、14・・・DLATll6・・ルベル2●ディレク
トリィ、17・・・レベル1・ディレクトリィ、18・
・レベル1●キャッシュ、19・・・レベル2●キャッ
シュ、21・・・主記憶装置、23・・・DLATアウ
ト・バス回路、24・・・DLAT置換選択回路、26
・・ルベル1●アウト●バス回路、27・・ルベル1●
置換選択回路、28・・ルベル2・置換選択回路、29
・・・Rビット・ターン・オン・オフ回路。
Claims (1)
- 1 CPUと、主記憶装置と、第1レベルのキャッシュ
と、CPUからから出されたストレージ・リクエストを
受取る第1レベルのデイレクトリイと、CPUから出さ
れた仮想アドレス・ストレージ・リクエストの変換アド
レスを受取るデイレクトリイ・ルック・アサイド・テー
ブル(DLAT)とを有する記憶階層型のデータ処理シ
ステムにおいて、上記DLATによつてアドレスされる
複数のデータ・ブロックを記憶する第2レベルのキャッ
シュと、該第2レベル・キャッシュに記憶されたデータ
・ブロックにそれぞれ関連した複数のエントリイを有す
る第2レベルのデイレクトリイと、該第2レベル・デイ
レクトリイにある各エントリイに対応して設けられた上
記第2レベル・キャッシュにあるデータ・ブロックが置
換候補であることを示す「置換状態」と該データ・ブロ
ックが置換候補でないことを示す「非置換状態」とを表
示するフラグ・ビットを貯蔵する手段と、上記第2レベ
ル・デイレクトリイにあるエントリイを選択してそのエ
ントリイに対応する上記フラグ・ビットを上記「置換状
態」へセットするため上記DLATで置換された記憶ア
ドレスを上記第1レベルから上記第2レベルへ伝達する
手段と、上記第2レベル・デイレクトリイにあるエント
リイを選択してそのエントリイに対応する上記フラグ・
ビットを上記「非置換状態」へセットするため上記DL
ATでヒットとなり上記第1レベル・キャッシュでミス
となつた記憶アドレスを上記第1レベルから上記第2レ
ベルへ伝達する手段とを具備するデータ処理装置。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US06/280,759 US4464712A (en) | 1981-07-06 | 1981-07-06 | Second level cache replacement method and apparatus |
| US280759 | 1988-12-06 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS589277A JPS589277A (ja) | 1983-01-19 |
| JPS6043540B2 true JPS6043540B2 (ja) | 1985-09-28 |
Family
ID=23074508
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP57112616A Expired JPS6043540B2 (ja) | 1981-07-06 | 1982-07-01 | デ−タ処理装置 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US4464712A (ja) |
| EP (1) | EP0069250B1 (ja) |
| JP (1) | JPS6043540B2 (ja) |
| DE (1) | DE3278587D1 (ja) |
Families Citing this family (83)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5687282A (en) * | 1979-12-14 | 1981-07-15 | Nec Corp | Data processor |
| JPS58147879A (ja) * | 1982-02-26 | 1983-09-02 | Toshiba Corp | キヤツシユメモリ制御方式 |
| JPS5994289A (ja) * | 1982-11-22 | 1984-05-30 | Hitachi Ltd | 記憶制御方式 |
| US4731739A (en) * | 1983-08-29 | 1988-03-15 | Amdahl Corporation | Eviction control apparatus |
| JPH065541B2 (ja) * | 1983-12-30 | 1994-01-19 | 株式会社日立製作所 | 論理回路の自動設計方法 |
| US4747043A (en) * | 1984-02-10 | 1988-05-24 | Prime Computer, Inc. | Multiprocessor cache coherence system |
| JPS6194159A (ja) * | 1984-07-31 | 1986-05-13 | テキサス インスツルメンツ インコ−ポレイテツド | メモリ装置 |
| US4985829A (en) * | 1984-07-31 | 1991-01-15 | Texas Instruments Incorporated | Cache hierarchy design for use in a memory management unit |
| US4747044A (en) * | 1984-08-23 | 1988-05-24 | Ncr Corporation | Direct execution of software on microprogrammable hardware |
| US4648033A (en) * | 1984-09-07 | 1987-03-03 | International Business Machines Corporation | Look-aside buffer LRU marker controller |
| US4991081A (en) * | 1984-10-31 | 1991-02-05 | Texas Instruments Incorporated | Cache memory addressable by both physical and virtual addresses |
| 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 |
| US4933835A (en) * | 1985-02-22 | 1990-06-12 | Intergraph Corporation | Apparatus for maintaining consistency of a cache memory with a primary memory |
| US5255384A (en) * | 1985-02-22 | 1993-10-19 | Intergraph Corporation | Memory address translation system having modifiable and non-modifiable translation mechanisms |
| US4899275A (en) * | 1985-02-22 | 1990-02-06 | Intergraph Corporation | Cache-MMU system |
| US4884197A (en) * | 1985-02-22 | 1989-11-28 | Intergraph Corporation | Method and apparatus for addressing a cache memory |
| US4860192A (en) * | 1985-02-22 | 1989-08-22 | Intergraph Corporation | Quadword boundary cache system |
| US4737909A (en) * | 1985-04-01 | 1988-04-12 | National Semiconductor Corp. | Cache memory address apparatus |
| US4755930A (en) * | 1985-06-27 | 1988-07-05 | Encore Computer Corporation | Hierarchical cache memory system and method |
| US5029072A (en) * | 1985-12-23 | 1991-07-02 | Motorola, Inc. | Lock warning mechanism for a cache |
| US4797814A (en) | 1986-05-01 | 1989-01-10 | International Business Machines Corporation | Variable address mode cache |
| US5237671A (en) * | 1986-05-02 | 1993-08-17 | Silicon Graphics, Inc. | Translation lookaside buffer shutdown scheme |
| US4757447A (en) * | 1986-07-28 | 1988-07-12 | Amdahl Corporation | Virtual memory system having identity marking for common address space |
| US4814981A (en) * | 1986-09-18 | 1989-03-21 | Digital Equipment Corporation | Cache invalidate protocol for digital data processing system |
| US5091846A (en) * | 1986-10-03 | 1992-02-25 | Intergraph Corporation | Cache providing caching/non-caching write-through and copyback modes for virtual addresses and including bus snooping to maintain coherency |
| US5095424A (en) * | 1986-10-17 | 1992-03-10 | Amdahl Corporation | Computer system architecture implementing split instruction and operand cache line-pair-state management |
| US4926317A (en) * | 1987-07-24 | 1990-05-15 | Convex Computer Corporation | Hierarchical memory system with logical cache, physical cache, and address translation unit for generating a sequence of physical addresses |
| JP2965987B2 (ja) * | 1988-02-22 | 1999-10-18 | 株式会社日立製作所 | データ処理システム |
| US4939641A (en) * | 1988-06-30 | 1990-07-03 | Wang Laboratories, Inc. | Multi-processor system with cache memories |
| US5097409A (en) * | 1988-06-30 | 1992-03-17 | Wang Laboratories, Inc. | Multi-processor system with cache memories |
| JPH0228738A (ja) * | 1988-07-18 | 1990-01-30 | Nippon Telegr & Teleph Corp <Ntt> | 多階層キャッシュメモリのブロック置換え方法 |
| US5317716A (en) * | 1988-08-16 | 1994-05-31 | International Business Machines Corporation | Multiple caches using state information indicating if cache line was previously modified and type of access rights granted to assign access rights to cache line |
| US6092153A (en) * | 1988-11-14 | 2000-07-18 | Lass; Stanley Edwin | Subsettable top level cache |
| US5159677A (en) * | 1988-11-21 | 1992-10-27 | International Business Machines Corp. | Method and system for storing data in and retrieving data from a non-main storage virtual data space |
| US5202972A (en) * | 1988-12-29 | 1993-04-13 | International Business Machines Corporation | Store buffer apparatus in a multiprocessor system |
| US6038641A (en) * | 1988-12-30 | 2000-03-14 | Packard Bell Nec | Two stage cache memory system and method |
| US5060136A (en) * | 1989-01-06 | 1991-10-22 | International Business Machines Corp. | Four-way associative cache with dlat and separately addressable arrays used for updating certain bits without reading them out first |
| US5287484A (en) * | 1989-06-21 | 1994-02-15 | Hitachi, Ltd. | Multi-processor system for invalidating hierarchical cache |
| US5150472A (en) * | 1989-10-20 | 1992-09-22 | International Business Machines Corp. | Cache management method and apparatus for shared, sequentially-accessed, data |
| JP2833062B2 (ja) * | 1989-10-30 | 1998-12-09 | 株式会社日立製作所 | キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置 |
| 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 |
| US5261066A (en) * | 1990-03-27 | 1993-11-09 | Digital Equipment Corporation | Data processing system and method with small fully-associative cache and prefetch buffers |
| US5197139A (en) * | 1990-04-05 | 1993-03-23 | International Business Machines Corporation | Cache management for multi-processor systems utilizing bulk cross-invalidate |
| US5014195A (en) * | 1990-05-10 | 1991-05-07 | Digital Equipment Corporation, Inc. | Configurable set associative cache with decoded data element enable lines |
| JPH0443876A (ja) * | 1990-06-08 | 1992-02-13 | Hanix Ind Co Ltd | 建設機械の油圧装置における出力制御装置 |
| DE69130086T2 (de) * | 1990-06-15 | 1999-01-21 | Compaq Computer Corp., Houston, Tex. 77070 | Mehrstufeneinschluss in mehrstufigen Cache-Speicherhierarchien |
| DE69127773T2 (de) * | 1990-06-15 | 1998-04-02 | Compaq Computer Corp | Vorrichtung zur echten LRU-Ersetzung |
| US5283876A (en) * | 1990-10-05 | 1994-02-01 | Bull Hn Information Systems Inc. | Virtual memory unit utilizing set associative memory structure and state machine control sequencing with selective retry |
| US5249282A (en) * | 1990-11-21 | 1993-09-28 | Benchmarq Microelectronics, Inc. | Integrated cache memory system with primary and secondary cache memories |
| US5412787A (en) * | 1990-11-21 | 1995-05-02 | Hewlett-Packard Company | Two-level TLB having the second level TLB implemented in cache tag RAMs |
| US5287473A (en) * | 1990-12-14 | 1994-02-15 | International Business Machines Corporation | Non-blocking serialization for removing data from a shared cache |
| US5530823A (en) * | 1992-05-12 | 1996-06-25 | Unisys Corporation | Hit enhancement circuit for page-table-look-aside-buffer |
| JP3049158B2 (ja) * | 1992-09-24 | 2000-06-05 | キヤノン株式会社 | 文字処理装置および文字処理装置の文字処理方法 |
| JPH06282488A (ja) * | 1993-03-25 | 1994-10-07 | Mitsubishi Electric Corp | キャッシュ記憶装置 |
| US5689679A (en) * | 1993-04-28 | 1997-11-18 | Digital Equipment Corporation | Memory system and method for selective multi-level caching using a cache level code |
| US5539893A (en) * | 1993-11-16 | 1996-07-23 | Unisys Corporation | Multi-level memory and methods for allocating data most likely to be used to the fastest memory level |
| US5845310A (en) * | 1993-12-15 | 1998-12-01 | Hewlett-Packard Co. | System and methods for performing cache latency diagnostics in scalable parallel processing architectures including calculating CPU idle time and counting number of cache misses |
| US5604753A (en) * | 1994-01-04 | 1997-02-18 | Intel Corporation | Method and apparatus for performing error correction on data from an external memory |
| US5870599A (en) * | 1994-03-01 | 1999-02-09 | Intel Corporation | Computer system employing streaming buffer for instruction preetching |
| US5577227A (en) * | 1994-08-04 | 1996-11-19 | Finnell; James S. | Method for decreasing penalty resulting from a cache miss in multi-level cache system |
| US5606688A (en) * | 1994-08-31 | 1997-02-25 | International Business Machines Corporation | Method and apparatus for dynamic cache memory allocation via single-reference residency times |
| US5584013A (en) * | 1994-12-09 | 1996-12-10 | International Business Machines Corporation | Hierarchical cache arrangement wherein the replacement of an LRU entry in a second level cache is prevented when the cache entry is the only inclusive entry in the first level cache |
| US6047357A (en) * | 1995-01-27 | 2000-04-04 | Digital Equipment Corporation | High speed method for maintaining cache coherency in a multi-level, set associative cache hierarchy |
| US5894564A (en) * | 1995-06-07 | 1999-04-13 | International Business Machines Corporation | System for identifying memory segment bounded by previously accessed memory locations within data block and transferring thereof only when the segment has been changed |
| US5897651A (en) * | 1995-11-13 | 1999-04-27 | International Business Machines Corporation | Information handling system including a direct access set associative cache and method for accessing same |
| US5787486A (en) * | 1995-12-15 | 1998-07-28 | International Business Machines Corporation | Bus protocol for locked cycle cache hit |
| US5778422A (en) * | 1996-04-04 | 1998-07-07 | International Business Machines Corporation | Data processing system memory controller that selectively caches data associated with write requests |
| US6138209A (en) * | 1997-09-05 | 2000-10-24 | International Business Machines Corporation | Data processing system and multi-way set associative cache utilizing class predict data structure and method thereof |
| US6138208A (en) * | 1998-04-13 | 2000-10-24 | International Business Machines Corporation | Multiple level cache memory with overlapped L1 and L2 memory access |
| US6732238B1 (en) * | 2001-06-08 | 2004-05-04 | Tensilica, Inc. | Set-associative cache memory having variable time decay rewriting algorithm |
| US6996676B2 (en) * | 2002-11-14 | 2006-02-07 | International Business Machines Corporation | System and method for implementing an adaptive replacement cache policy |
| US7284095B2 (en) * | 2004-08-18 | 2007-10-16 | International Business Machines Corporation | Latency-aware replacement system and method for cache memories |
| US20060179231A1 (en) * | 2005-02-07 | 2006-08-10 | Advanced Micron Devices, Inc. | System having cache memory and method of accessing |
| US7930484B2 (en) * | 2005-02-07 | 2011-04-19 | Advanced Micro Devices, Inc. | System for restricted cache access during data transfers and method thereof |
| US8606998B2 (en) * | 2006-08-24 | 2013-12-10 | Advanced Micro Devices, Inc. | System and method for instruction-based cache allocation policies |
| US20080313407A1 (en) * | 2007-06-13 | 2008-12-18 | Zhigang Hu | Latency-aware replacement system and method for cache memories |
| US8171223B2 (en) * | 2008-12-03 | 2012-05-01 | Intel Corporation | Method and system to increase concurrency and control replication in a multi-core cache hierarchy |
| GB2506900A (en) * | 2012-10-12 | 2014-04-16 | Ibm | Jump positions in recording lists during prefetching |
| US9274971B2 (en) | 2012-11-27 | 2016-03-01 | International Business Machines Corporation | Low latency data exchange |
| US10558571B2 (en) | 2014-03-20 | 2020-02-11 | Sybase, Inc. | Second level database file cache for row instantiation |
| US9934149B2 (en) * | 2016-03-31 | 2018-04-03 | Qualcomm Incorporated | Prefetch mechanism for servicing demand miss |
| CN112579482B (zh) * | 2020-12-05 | 2022-10-21 | 西安翔腾微电子科技有限公司 | 一种非阻塞Cache替换信息表超前精确更新装置及方法 |
Family Cites Families (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3723976A (en) * | 1972-01-20 | 1973-03-27 | Ibm | Memory system with logical and real addressing |
| US3806883A (en) * | 1972-11-22 | 1974-04-23 | Rca Corp | Least recently used location indicator |
| US3866183A (en) * | 1973-08-31 | 1975-02-11 | Honeywell Inf Systems | Communications control apparatus for the use with a cache store |
| US3845474A (en) * | 1973-11-05 | 1974-10-29 | Honeywell Inf Systems | Cache store clearing operation for multiprocessor mode |
| US3949368A (en) * | 1974-01-23 | 1976-04-06 | Data General Corporation | Automatic data priority technique |
| US3949369A (en) * | 1974-01-23 | 1976-04-06 | Data General Corporation | Memory access technique |
| US3938097A (en) * | 1974-04-01 | 1976-02-10 | Xerox Corporation | Memory and buffer arrangement for digital computers |
| US4077059A (en) * | 1975-12-18 | 1978-02-28 | Cordi Vincent A | Multi-processing system with a hierarchial memory having journaling and copyback |
| US4070706A (en) * | 1976-09-20 | 1978-01-24 | Sperry Rand Corporation | Parallel requestor priority determination and requestor address matching in a cache memory system |
| US4181937A (en) * | 1976-11-10 | 1980-01-01 | Fujitsu Limited | Data processing system having an intermediate buffer memory |
| US4195343A (en) * | 1977-12-22 | 1980-03-25 | Honeywell Information Systems Inc. | Round robin replacement for a cache store |
| JPS5849945B2 (ja) * | 1977-12-29 | 1983-11-08 | 富士通株式会社 | バツフア合せ方式 |
| US4168541A (en) * | 1978-09-25 | 1979-09-18 | Sperry Rand Corporation | Paired least recently used block replacement system |
| US4322795A (en) * | 1980-01-24 | 1982-03-30 | Honeywell Information Systems Inc. | Cache memory utilizing selective clearing and least recently used updating |
| US4332010A (en) * | 1980-03-17 | 1982-05-25 | International Business Machines Corporation | Cache synonym detection and handling mechanism |
-
1981
- 1981-07-06 US US06/280,759 patent/US4464712A/en not_active Expired - Lifetime
-
1982
- 1982-06-15 EP EP82105208A patent/EP0069250B1/en not_active Expired
- 1982-06-15 DE DE8282105208T patent/DE3278587D1/de not_active Expired
- 1982-07-01 JP JP57112616A patent/JPS6043540B2/ja not_active Expired
Also Published As
| Publication number | Publication date |
|---|---|
| EP0069250B1 (en) | 1988-06-01 |
| DE3278587D1 (en) | 1988-07-07 |
| EP0069250A2 (en) | 1983-01-12 |
| JPS589277A (ja) | 1983-01-19 |
| US4464712A (en) | 1984-08-07 |
| EP0069250A3 (en) | 1985-08-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPS6043540B2 (ja) | デ−タ処理装置 | |
| US5265232A (en) | Coherence control by data invalidation in selected processor caches without broadcasting to processor caches not having the data | |
| US4445174A (en) | Multiprocessing system including a shared cache | |
| US5274790A (en) | Cache memory apparatus having a plurality of accessibility ports | |
| US6622219B2 (en) | Shared write buffer for use by multiple processor units | |
| US5584013A (en) | Hierarchical cache arrangement wherein the replacement of an LRU entry in a second level cache is prevented when the cache entry is the only inclusive entry in the first level cache | |
| US4493026A (en) | Set associative sector cache | |
| US6282617B1 (en) | Multiple variable cache replacement policy | |
| US5091851A (en) | Fast multiple-word accesses from a multi-way set-associative cache memory | |
| US4370710A (en) | Cache memory organization utilizing miss information holding registers to prevent lockup from cache misses | |
| US5689679A (en) | Memory system and method for selective multi-level caching using a cache level code | |
| US4797814A (en) | Variable address mode cache | |
| JP3533355B2 (ja) | キャッシュ・メモリ・システム | |
| US4583165A (en) | Apparatus and method for controlling storage access in a multilevel storage system | |
| US6023747A (en) | Method and system for handling conflicts between cache operation requests in a data processing system | |
| US20070094450A1 (en) | Multi-level cache architecture having a selective victim cache | |
| JPS6135584B2 (ja) | ||
| CA1212483A (en) | Data select match | |
| US6343344B1 (en) | System bus directory snooping mechanism for read/castout (RCO) address transaction | |
| JPS629942B2 (ja) | ||
| EP0675443A1 (en) | Apparatus and method for accessing direct mapped cache | |
| EP0519685A1 (en) | Address translation | |
| US5535358A (en) | Cache memory control circuit and method for controlling reading and writing requests | |
| US6826655B2 (en) | Apparatus for imprecisely tracking cache line inclusivity of a higher level cache | |
| JPH0520192A (ja) | キヤツシユメモリのストア方式 |