JPS589277A - デ−タ処理装置 - Google Patents

デ−タ処理装置

Info

Publication number
JPS589277A
JPS589277A JP57112616A JP11261682A JPS589277A JP S589277 A JPS589277 A JP S589277A JP 57112616 A JP57112616 A JP 57112616A JP 11261682 A JP11261682 A JP 11261682A JP S589277 A JPS589277 A JP S589277A
Authority
JP
Japan
Prior art keywords
cache
dlat
replacement
entry
directory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP57112616A
Other languages
English (en)
Other versions
JPS6043540B2 (ja
Inventor
ロバ−ト・パ−シイ・フレツチヤ−
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS589277A publication Critical patent/JPS589277A/ja
Publication of JPS6043540B2 publication Critical patent/JPS6043540B2/ja
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1063Address 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement 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)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 本発明の技術分野 本発明は、第2レベル・キャッシュでキャッシュ・ミス
を最小にして改善され几システム効率を達成す石*2レ
ベル・キャッシュ置換制御に関する。
背景の技術 先行技術は第ルぺA= (L 1 )キャッシュ及す第
2レベル(L2)キャッシュを使用する3レベル記憶面
層を開示している。概して、L2キャッシュはL1キャ
ッシュと基本的には同じであるが、L2キャッシュはL
1キャッシュより大型且つ低速である。L2キャッシュ
のブロック・サイズはL1キャッジ゛ユのブロック・サ
イズと同じか又はそれより大きくてよく、L2キャッシ
ュはL1キャッシュのブロックの数と同じか又はそれよ
り多いブロックを有してよい。L1ディレクトリイ及び
L2ディレクトリイにある各工ントリイは、L1キャッ
シュ及びL2キャッシュ中のブロックのMS(主記憶装
置)アドレスを記憶してよく、各エントリイは「有効」
及び「−更」のフラグ・ビットを有してよい。
仮想アドレス(VA)を有するC P’Uリクエストの
変換の繰返しを避けるため、通常、DLAT(ディレク
トリイ・ルック・アサイド・テーブル)がL1キャッシ
ュに設けられる。L1キャッシュがストア・スルー・バ
ッファ型のキャッシュとして使用されているか、ストア
・イン・バッファ型のキャッシュとして使用されている
かを決定する几め、DLAT及びL1ディレクトリイが
各CPUリクエストによって参照される。もしL1キャ
ッシュ嬢ストア・スルー・バッファ型のキャッシュであ
れば、゛各CPUリクエストは、更にL2ディレクトリ
イを参照する。L1ディレクトリイがミスで、L2ディ
レクトリイが上シートであれば、Llでリクエストされ
几ラインがL2キャッシュからL1キャッシュヘコピー
されねばならない。もしL2ディレクトリイがミスであ
れば、リクエストされたブロックはL2キャッシュに存
在せず、リクエストされ几ブロックはMSからL2キャ
ッシュヘフエツチされる。
キャッシュ又はDLATのエントリイの数には制限があ
るから、それらは、全てのアドレス可能なエントリイが
充交された後エントリイを解放する九め、成る種の置換
選択手段を有している。それによって、新しいブロック
又はラインがキャッシュ又はDLATによって受取られ
ることができる。最も望ましい置換選択アルゴリズムは
り、RU(1east  reeently  use
d )アルゴリズムである。その理論は、最後のアクセ
スから最も長い時間が経過し友(即ち、最も長い間使用
されなかつ几)アドレス可能なエントリイを選択するこ
とであり、このエントリイは将来の使用可能性が最も少
ないも゛のと仮定される。このアルゴリズムは理論的に
は単純であるが、実際に適用することは1難である。コ
スト、複雑性、動作速度に制限がある几め、これまで知
られた実用的なLRU選択−置換回路は、全ての状況の
下で真のLRU動作を実行するとは言えなかった。
L1キャッジ、ユの場合、周知の如(、LRUの決定は
、各エントリイがCPUによって最後にアクセスされ九
啼からの時間を測定しなければならない。
L2キャッシュのLRU動作はもつと複雑である。先行
技術の誤つ几仮走は、L2キャッシュのLRUエントリ
イの決定には、各工/トリイが最後にアクセスされた時
点からの時間を測定すべきだとする。この仮定の誤りは
、L2エントリイがLRU状態にあるかどうかを決定す
るのtiL2エントリイに対する最後のアクセスではな
いことを認識していないことにある。L2キャッシュに
対する正しいLRU理論a、L2のLRUエントリイの
決定には、CPUがL2工ントリイによって表わされ几
データに最後にアクセスし友時点からの時間を測定する
ものとすることであり、この時間はCPUが対応するL
1エントリイに最後にアクセスし九時点からの時間であ
る。
実際的な問題は、L1アクセスは(ヒツトした場合K)
、L2IC対して明らかKされないことである。L2キ
ャッシュは、L1キャッシュのミス゛が生じ九時、臨時
的にアクセスされるに過ぎない。
L1キャッシュの大部分のアクセスは、L1キャッシュ
・ミスを伴わない。かくて、大部分のL1キャッシュ・
アクセスについてL2アクセスは生しすい。即ち、L1
キャッシュのヒツトは全くLlのみで処理される。
L2  LRU論理の目的は、所定のL2容11につい
てL2ミスを最少にすることである。L2管理の最良の
基準を理解する九め、L、1キヤツシユの現在の動作を
理解しなければならない。現在、高いタスク切換環境の
下で11、L1キャッシュは最も貧弱なヒツト率を有す
る。これは、約64KBのL1容貴では、通常、多くの
タスクに関連したラインを同時に保持するのに十分でな
いからである。その結果、L1ミスの多くは、新しいタ
スクをローディング・アップするタスク切換の後に直ち
に生じる。比較的短い時間に古いタスクへ戻る時でも、
新しいタスク・ラインは古いタスク・ラインと置換され
る。
L2キャッシュの主交る機能は、多くのタスクに関連し
たページを保持することである。L1ミスの数が変らな
い場合でも、L1ミスに対する不利点は軽減される。重
要な事は、MSに対するL2ミスを非常に少なくするこ
とでちゃ、そうでなければ、平均的なL1ミスの不利点
は軽減されず、L2キャッシュを設ける理由は経済的に
正当化されない。
L2  LRUの基準は次のとおりである。
1、 L2ページのライン上KL1アクティビティがあ
れば、そのL’2ぺ一°ジを置換しない。
2、 L2ページのアクティビティがLlで終了しに後
も、そのページをできるだけ長(L2で保持する。
3、 L2ページのアクティビティがLlで終了し友よ
うに見える複数のし2ページがある時、Llで最も長い
時間アにテイビテイを中止しているし2ページを(LI
KおけるLRU)、後にタスク切換えの可能性が最も少
ないものとして放棄する。
°最もわかり易いが誤ったL2  LRUの処理方法は
、L1ミスが生じL2ラインを参照した時、L2  L
RU置換選択回路を駆動きせることである。その場合、
L2参照アクティビティがL1アクティビティの誤った
表示を与え、次のような誤つたL2  LRU決定へと
導く場合がある。
1、 ページにある1つ又はそれ以上のラインが非常に
高いL1参照アクティビティを有し、従ってL2参照ア
クティビティが非常に少ないか又社存在しない。
2、 Llでいくつかのラインにわたって臨時的に参照
されるページは、Llで非常にアクチブなページよルも
高いL2アクティビティを有する。
3、 中程度にアクチブなL1ラインは、同一のL1コ
ングルーアンス・クラx(congruenc@cla
ss )における近隣のラインがより高いアクティビテ
ィを有するため、置換されかつL1ヘフエツチされ続け
る。これによって、L2参照アクティビティは高くなり
、L2のページを必要以上に維持する。それは、巷にペ
ージ中の他のラインがLlでアクチブでない時に生じる
要するに、Llでミスを生じるL1参照のみに注意する
L2ディレクトリイに対しては、誤ったし2ページ置換
が生じるかも知れない。本発明において、DLATは全
てのL1参照に注意し、その注意′fr1つのラインで
はなく、全体のページに、わたって積重ねる。
L2工ントリイへの最後のア!七スQ、LRtJ状況を
決定する基礎として使用する先行技術は、誤ったLRU
決定を導く。何故ならば、L2エントリイが長い間アク
セスされなかったとしても、対応するL1工/トリイに
対して、最も新しいアクセスがなされたかも知れないか
らである。実際、L1エントリイがアクセスされる頻度
が高くなれば、対応するL2エントリイがアクセスされ
る醐度社少なくなる。何故ならば、L2エントリイへの
アクセスを生じるよりなL1ミスは生じないからである
「L2アクセス」に関する先行技術の意味は、「L1ミ
ス」又は「L2データのコピー」であった。このよりな
rL2アクセス」は、先行技術ではL2エントリイの置
換選択のため忙使用された。
先行技術 米国特許第4181937号は、3レベル記憶階層にお
けるL2キャッシュ・バッファのために、置換選択方式
を教示している。L2バッファは、多重プロセッサ(−
MP)の全てのf4yレベル・キ′  ヤツシー瀝共通
である。L2置換選択方式は、各 、キャッシュ・ブロ
ックについて各プロセッサのた□めのコピー・フラグ・
ビット全使用する。各プロセッサのコピー・フラグ・ビ
ットは、関連するプロセッサの第ルベル・キャッシュが
そのブロックt−L2からL1ヘコピーし九時オンヘキ
ットされる。オンになったコピー・フラグ・ビットが最
も少ない(す馬、コピーを有するプロセッサの数が最も
少ない)ブロックが、置換の候補となる。従って、その
置換選択回路は、L2へのアクセス(即ち、L2バッフ
ァをコピーすること)に依存する。
米国特許745958097号は、L2キャッジ−に対
するLRUアルゴリズムを使用しgL2置換選択手段を
開示している。この場合、MPの任意のプロセッサに設
けられたL2キャッシュの各ブロック(即ち、ライン)
は、・L−1キヤツシユへの各アクセスによって減少さ
れるカウンタを有する。そのカウンタがnに、なった時
、L1キャッシュ・ミスが強制され、これaL2キャッ
シュにある対応するブロックをアクセスさせる。従って
、それはMSからブロックを置換するためのLRU候補
とはならない。即ち、n番目ごとのL1ヒツトが強制的
にL1ミスとして動作するようにされるが、それはL2
アクセスを起してL2のLRUを決定する几めである。
しかしCPUのデータ・アクセスに不必要なL1ミスを
強制することは、システム動電の望ましくない低下を生
じる。
本発明の要約 本発明は、周知のLRUアルゴリズムを新規な態様で実
行するレベル2 (L 2. ’)キャッシュ置換選択
手段を有するシステムを提供する。本発明のシス、テム
は、現今の大型データ処理システムで行われるように、
単独の仮想アドレシング・アーキテクチャ−又は小さな
割合いの実アドレス・リクエストと組合せて使用される
仮想アドレシング・アーキテクチャ−で動作する。即ち
、現今の大型処理システムは、小さな割合いの実アドレ
スを、大きな割合いの仮想アドレスと組合わせて満足的
に使用している。L2キャッシュは、ストア・イン・バ
ッファ(SIB)型のキャッシュであっても、ストア・
スルー(ST)型のキャッシュであってもよい。まm、
L2キャッシュFl、ST型又はSIB型のL1キャッ
シュと共に動作する。L1キャッシュは高速技術を使用
して製造され、L2キャッシュはそれより遅い(従って
安価な)技術を使用して製造され、L5の主記憶装置は
更に低速の(従って更に安価な)技術を使用して製造さ
れる。多重プロセッサ構成では、複数の中央プロセッサ
のために、別個のL2キャッシュが設けられてよい。即
ち、各L1キ゛ヤツシュのためにそれぞれのL2キャッ
シュが設けられるか、1つのL2キャッシュが複数のL
1キャッシュによって共用されてよい。いずれの場合に
も、各L2キャッシュは本発明の置換選択装置を使用し
てよい。
本発明の目的は、次のような能力又は特性を有するL2
置換選択制御手段を有するシステムを提供することであ
る。
1、 所与のL2キャッシュ容量に対してL2ミスを減
少させること; 2、実施するのに比較的容易であること。
3、 L2キャッシュについてLRU置換動作を実行す
ること。
4、遅いL2キャッシュ技術にマツチさせてLlにおけ
るCPUアクセスの高速表示情報t−L1から受取るこ
と。
5、DLAT中で各変換アドレスによってアドレスされ
たブロックのサイズに等しいブロック・サイズを使用す
るL2キャッシュと共に動作すること。
6、 DLATミスの場合にそれぞれのDLATで置換
されたページをL2キャッシュ・ディレクトリイに知ら
せて、そのページ’(i−1L2キヤツシユにおける置
換候補とすること。 ・ Z リクエストされたページのDLATヒツトをサンプ
ルして、それらのページが゛L2キャツシユ・ディレク
トリイにおいて置換候補となら、ないようにすること。
8、 L2キャッシュ・ディレクトリイヘL2置換候補
でないページを知らせる頻度を少なくするため、L1キ
ャッシュ・ミスを使用して高頻度のDLATヒツトをサ
ンプルすること。
9 次の(1)及び(2)の表示を与えるため、L2キ
ャッシュ・ディレクトリイヘL1キャッシュ・ミス及び
その置換されたアドレスを知らせることによって、実ア
ドレス・リクエスト(これtiDLATiバイパスする
)を使用すること。
(13L2置換の候補として、Llでリクエストされた
アドレスでL2エントリイを表示すること。
(2)置集候補でないものとして、Llでリクエストさ
れたアドレスでL2エントリイ會表示すること。
本発明a、L2キャッシュ・ディレクトリイの中でL2
キャッシュ中のページ・プロ、ツクを表わす各エントリ
イのために、置換(6)フラグ・ビット(又はRビット
)を使用する。Rビットがオンにされた時、それは関連
したページがL2キャッシュにおいて置換候補であるこ
とを示す。しかし、ページは、実際に置換されるまで、
L2キャッシュ中でアクセスされ続けてよい。Rビット
がオフである時、関連したし2ページは、そのクラスに
おける全てのRビットがオフでない限り、置換候補では
ない。Rビットは、次のよう和してL2置換選択制御装
置中で設定される。
Rビットは、そのL2ページが置換候補であることを示
すため、次の条件の下でオンにされる。
1、全てのRピッ)R電源オン、IPL、又はCPUリ
セットでオンにされる。
2、  Rビットは、置換をともなうDLAT’ミスで
、DLAT置換ページに対応するL2キャッシュ・エン
トリイの丸めにオンにされる。
S、  Rビットは、D、LATをバイパスするL1リ
クエスト(例えば実アドレス・リクエスト)について、
L1キャッシュ置換ラインに対応するL2キャッシュ・
エントリイのためにオンにされる。
Rビットは、次のような条件の下で、七のし2ページが
置換候補でないことを示すため、オフにされる。
(以下余白) 1、  Rビットは、CPUリクエストがL1キャッシ
ュ・ミス全件うDLATヒツトを生じた時、リクエスト
されたアドレスに対応するL2キャッシュ・エントリイ
のためにオフにされる。
2、  Rビット蝶、CPUリクエストがDLATをバ
イパスするI、、1キヤツシユ・ミス音生じた時、リク
エストされたアドレス(例えけ実アドレス)に対応する
L2キャッシュ・エントリイの究めにオフにされる。
更に、Rビットを選択しそれtオンスはオフにするLl
からの信号tj、L2  LRUf換アレイアレイる新
しいLRUポインタの発生音制御する。
各アレイ・ポインタは、L2ディレクトリイのコングル
ーアンス・クラスにあるLRUエントリイを選択する。
選択された工ントリイのRピットが無置換状態から置換
状態へ変えられる時、新しいポインタがそのエントリイ
のコングルーアンス・(以下余白) クラスのために発生される。LRUポインタを最初のR
ビットのオンの時点で発生させる友め、晩にRピッ)t
オンにし几場合後にそれを再びオンにする信号は許され
ない。
L2ページのRビットがオフにされた場合、後のターン
・オフ信号は、L2  LRUアレイ入力コントロール
に対して許される。全てのRビットがそのクラスにおい
てオフである時(これが起るのはまれであるが、あり得
ないことではない)、最も過去に参照されたページが、
置換のためにLRUとして指定される。
ターン・オン又はターン・オフによるRビットの変化は
、L2  LRUアレイ入力をして、アドレスされつつ
あるL2ディレクトリイ・クラスのために新しいLRU
ポインタを発生させる。ターン・オンの場合、新しいポ
インタはターン・オンを有するエンド6イから離れたエ
ントリイを指定する。しかし、Rビットのターン・オン
が正しかったならば、エントリイの非使用はLRU回路
の通常の動作をして、その後暫く友ってから非使用エン
トリイのためにポインタを発生式せる。これは、勿論、
クラス内の他のページが前KRビットをオンにされてい
なければ、非使用工ントリイをそのコングル、−ア、:
6,110.クラスの置換候補とする。
もしRビットのターン・オンが正しくなかつ友ならば、
ポインタが最初に同一クラスの他のエントリイを指定す
る場合、L2.Rビットをオフにする他のCPUアクテ
ィビティの場合と同じく、通常のLRU回路動作の時間
で、ターン・オンの正確性を決定することができる。そ
れは、関連し九ページ内のデータへ続いてアクセスする
ことによって、そのRビットをターン・オフすることに
より可能となる。こうして、そのページに対する置換候
補状態が除未される。
要するに、本発明のシステムqL2へり、1におけるD
LAT置換情報を知らせる簡単にして有効なシステムと
いうことができる。DLAT置換情報は、中間的キャッ
シュを使用する単一プロセッサ・システム又は多重プロ
セッサ・システムにおいて、LI  CPUアクティビ
ティを非常に正確かつ有効に反映する。本発明のシステ
ムを実現するためには、各L2ディレクトリイ・エント
リイに対応してRピッ)1−設けると共に、関連した制
御回路を若干付加するだけでよい。
□実施例の説明 A0本発明の背景 第4図のレベ・ル1 (Ll ’)ディレクトリイ及び
第5図のDLATは通常型のものであり、その各々は先
行技術に従って構成される。プロセッサ又HCPUFi
、仮想アドレス(VA)t−使用して、Llにおけるス
トレージ・リクエストを発生する。
L1ディレクトリイ及びDLATへ行く仮想アドレスの
ビット位置は、第3図に示される。DLAT1ディレク
トリイ及びキャッシュへのアドレスとしてカッコ内に示
されたビット位置は、第3図のビット位置を示す。それ
らは仮想アドレス、実アドレス又は絶対アドレスへ適用
される。
ディレクトリイ及びDLAT中の各エントリイは、仮想
アドレス(VA)及び変換された絶対アドレス(AA)
?含む。VAピットは、仮想アドレスで与えられるCP
Uリクエスト・アドレス(CPUKよってリクエストさ
れ屍アドレス)と比較するために必要である;DLAT
中に含まれる各ページめ絶対アドレスは、vAを変換し
友ものである。このVAFi、L1ディレクトリイの不
一致(即ち、ライン・ミス)がある場合、主記憶装置(
MS)をアドレスする友めに必要となる。
L1ディレクトリイは、その有効なエントリイの絶対ア
ドレスを保持する。I10チャネル及び他のプロセッサ
は、絶対アドレスを使用してL1ディレクトリイを質問
する。L1キャッシュ中でラインが有効であるが、それ
に対する有効なりLATエントリイが存在しない場合が
ある。
L2キャッシュが記憶階層へ組込まれた時、L1デイン
クトリイ、DLAT、DAT論理は変更される必要がな
い。大きな相異は、ライン・ミス(L1ディレクトリイ
の不一致)の場合、DLATからの絶対アドレスがMS
ではな(L2へ送られることである。もし−L2ディレ
クトリイの一致があれば、ラインはL2キャッシュから
L1キャツユへ移動される。もしL2ディレクトリイが
一致しなければ、絶対アドレスがMSへ送られ、ページ
がMSからL2キャッシュヘコピーされ、絶対アドレス
がL2ディレクトリイヘ記憶され、ページ中あリクエス
トされたライン、が同時にL1キャッシュヘコピーされ
、リクエストされ几ダブル・ワードが同時にCPUヘコ
ピーされ°る。
第6図及び第7図は、4重セット関連し2キヤツシユ及
びL2ディレクトリイ會示す。これらは、先行技術に従
ってL1ディレクトリイ及びL1キャッシュと同様に構
成きれてよいが、相異点として、L2ディレクトリイの
エントリイに新規なRフラグ・ビットが付加される。更
に、L2ディレクトリイの工ントリイは、L2キャツ、
シュ内のデータ・ページの几めに、絶対アドレス(AA
)と他のフラグ・ビット全保持している。
52回路は、L1回路よりも遅くて安価な技術を使用し
て製造場れる。しかし、52回路は1MS回路技術より
も早い技術を使用して製造される。
「ページ」の語d、L2キャッシュ中の各ブロックを呼
ぶ九めに使用される。それは、「ライン」と呼ばれるL
1キャッシュのブロックとL2キャッシュ′のブロック
とを区別する九めに使用される。
L2キャッシュのブロック・サイズは、主記憶装置中で
ソフトウェアによって管理てれるページ・サイズと等し
い。このページ・サイズは通常、ページとも呼ばれる。
典型的には、今日使用される大型のIBMシステム15
70プロセッサにおいて、L1ブロック・サイズ(ライ
ン)は64又は128バイトであり、ソフトウェアによ
って管理されるページ・サイズf14にバイトである。
実施例では、L1ブロック・サイズti128/<イト
であり、L2ブロック・サイズは4096ノ(イトであ
る。L1ディレクトリイ、L2ディレクトリイ3、及び
DLATはそれぞれ4重セット関連(four−way
  asaociativq )であると仮定通れる。
即ち、各コングルーアンス・クラスには4つのエントリ
イが存在する。各プロセッサにL1キャッシュ及びL2
キャッシュを設けられた単一プロセッサ又は多重プロセ
ッサにおいて、DLATはL2ディレクトリイと同数の
アドレスを保持してよい。各プロセッサがそれ自体のL
1キャッシュを有し、1つのL2キャッシュが複数のプ
ロセッサによって共用される多重プロセッサにおいて、
L2キャレシュは、各プロセッサのDLATより多くの
アドレスを保持するのが望ましい。
第4図、第5図、第6図、第7図に詳細に示されるDL
AT、L1キャッシュ、L2キャッシュは、L2R換゛
選択機能を除いて、それぞれ内部的に社通常の態様で動
作する。第5図において、ボックス中の記号Cは連鎖機
能を示す。その場合、各ボックスtiDLAT絶対アド
レス(AA)ピッ) 1−19’1VA7ドvス−ビッ
ト2O−24(これはAAビット20−24と同じ)と
連結する。
それらは、DLAT絶対アドレス(AA)A、B。
cl又はDの出力線上に、選択されたエントリイAAを
与える。
かくて、プロセッサ[、DLAT及びL1ディレクトリ
イヘ仮想アドレスを送ることによって、レベル1でCP
Uリクエストを発生する。DLAT及びL1ディレクト
リイはそれぞれコングルーアンス・クラスを選択する。
DLATアレイ及びL1ディレクトリイ・プレイの各々
は、エントリイA、B、C,pの選択されたクラスの4
つのアドルスを並列に読出す。これらのアドレスは、プ
ロセッサからの仮想アドレスと比較される。
DLATから読出され交4つのアドレスのいずれも一致
しなければ、ダイナミック・アドレス変換(DAT)回
路が、セグメント・テーブル及びページ・テーブルの各
々からエントリイをフェッチすること、によって、仮想
アドレスを実アドレスへ置換す不ことをリクエストされ
る。(の変換され友アドレスは、絶対アドレスの頭部へ
付加され、それがDLATアレイに記憶される。その時
、もし必要ならば、DLAT中のLRUエントリイが置
換される。
CPUリクエストが発生した時、もしリク、エスト嘔れ
fcvAが、DLAT中OV 、A 、及びL1ディレ
クトリイ中のVAと一致すれば(ライン・ヒット)、関
連し几ワードがL1キャッシュから読出されるか、L1
キャッシュへ記憶される。そしてCPUリクエ優トが完
了する。概して、CPUリクエストの95%以上が、こ
のようにして処理される。
しかし、もしDLATの一致が存在し、L1ディレクト
リイの一致が存在しなければ、DLATから絶対アト1
/スが得られる。この絶対アドレスは、選択され几クラ
スにおける4つのエントリイ・アドレス(ASB% C
%又FiD)の1つと比較が一致したリクエスト・アド
レスによって選択される。選択されたDLATエントリ
イからの絶対アドレスはページ・アドレスである。この
ページ・アドレスは、ライン・アドレスを得るため、V
Aビット20−24と連結される。、もしアドレスされ
tページがL2キャッシュ中に存在すれば、L2キャッ
シュからL1キャッシュへラインをフェッチするため、
ライン・アドレスがL2キャッシュ・ディレクトリイヘ
送られる。どのフェッチされたラインのアドレスは、L
1ディレクトリイに記憶される。
ディレクトリイ中の正しいクラスをアドレスするため、
L1ディレクトリイ及びL2ディレクトリイの各々は、
仮想アドレス及び絶対アドレスからのビット位置の異っ
た組を使用するが、それはブロック・サイズが異るため
である。
B、実施例 本発明のシステムにおけるL1ディレクトリイとL2デ
ィレクトリイとの間の新規な相異点は、L2ディレクト
リイ中の各エントリイがRビットと呼ばれる置換フラグ
・ピッ)1−設けられていることである。L2キャッシ
ュの所定の容量について、L2におけるキヤ、ツシュ・
ミスを最小にすることによって、システム効率を改善す
ることが望まれる。
第8図H1L2コングルーアンス・クラスにおけるエン
トリイのRビットを示す。第7図は、第8図のコングル
ーアンス・クラスを行として含んでいる4重セット関連
L2ディレクトリイのレイアウトを示す。
Rビットは、L2ページ置換選択を制御するため、CP
U’iしてLlでDI、ATヘアクセスさせる。DLA
T置換選択がLRU動作に基づいていれば、DLATペ
ージ・アドレス置換選択はCPUによ諷ページ・アクセ
ス・アクティビティの積重ねである。即ち、本発明は、
LlのDLATベージ置換動作Q、L2のページ置換選
択機能へ入力する。例えば、LI  DLAT置換選択
回路は、1971年i月に発行され7’jIBM′Mt
術開示報告(TDB)の第430頁に掲載されるA、W
einbergarによる記事「蒼然的最旧時使用に基
づく選択によルハツファ記憶置換J (Buffer 
 StoreReplacement by 5ele
ction Ba5edon Probable Le
ast Recent Usage)で説明された手法
を使用してよい。統計的には、CPUリクエストの1チ
又はそれ以下がDLATミスを有し、本発明はそれiL
2キャッシュ置換選択機能へ入力する。1チのミスij
、CPUリクエストの頻度よりはるかに遅い頻度を有す
る。DLAT ミスの頻度が少なくなれば、それだけ遅
い52回路の切換速度とマツチングすることができる。
その場合、99チのDLATヒツト率はミスマツチとな
ろう。
それぞれのDI、AT ミスは、通常、リクエストされ
たVA及びその変換され7jAAのためにスペースを作
るため、現存するDLATエントリイを置換せしめる。
本発明の装置は、それぞれのDLATt換ページ・アド
レスiL2へ伝達する。それは、対応するページをL2
キャッシュの置換候補とするためである。
CPUによってリクエストされたべ。−ジのDLATヒ
ツト(CPUリクエストの約99チで起る)は、CPU
リクエストの約うチで起るL1キャッシュ・ディレクト
リイ・ミスを伴う場合にのみ、L2へ伝達される。かく
て、L1ヒツトはDLATヒツトの約5チをサンプルす
るが、それハ、L2へ伝達されるDLATヒツトの頻度
を減少させて、52回路の低速制限とマツチきせるため
である。しかし、LI  DLATヒツトの合計は、本
来的にLI  DLATページ置換の決定中に含まれる
。即ち、ページがCPUリクエストによる十分に新しい
DLATヒツ)1−有しなかつ友場合、そのページは置
換される。従って、L2へなされる低頻度DLAT置換
の伝達は、DLATヒツトの伝達がない場合、L2への
DLATヒツトの頻度を表わす。しかし、後述する理由
により、L2へ伝達されるDLAT ミスは、DLAT
に府する置換選択決定を改善するため、訂正的利点を与
える。
かくて、L1キャッシュ・ヒツトによってサンプルされ
た後のDLATヒツト及びDLATミスは結合された低
速性を有し、52回路の速度と容易にヤツチすることが
できる。
しかし、L2キャッシュの置換選択は、DLATのペー
ジ置換決定に完全に従属しているわけではなく、多くの
場合、DLAT置換決定の誤シが後のCPUリクエスト
によって証明されると、L2置換機能はDLAT置換決
定を拒絶する。これは、LRU決定に伴って生じる。更
に、多重処理の場合、他のCPUはページ中の1つ又は
それ以上のラインをアクセスしてよい。
本発明のシステムは、大部分のCPUリクエストが仮想
アドレスを使用するような環境で動作する。大型のIB
M  CPUでジョブ・ストリームを統計的に分析し友
ところでは、CPUリクエストの95%以上が仮想アド
レス全使用する(叩ぢ、DATオン)。従って、実アド
レスを使用するCPUアクセス(即ち、DATオフ)の
小さな割合いは、本発明のシステムによって制御される
L2置換選択動作に重要な影響を及ぼさない。
第2図は本発明のシステムによって実行される動作の流
れ図である。もしDATがオンであれば(即ち、CPU
リクエストがvAt−使用している場合)、CPUリク
エストの成るものはDLATでミスを生じ、DLATで
エントリイtt換させる。置換されたページ・アドレス
は、L2ディレクトリイの対応するエントリイを選択す
る几めL2へ送られる。ボックス21は、DLATfi
l換ページ・アドレスによって選択されたL2エントリ
イのRピッ)t?オンにする。それは、とのL2エント
リイ’k、L2の置換候補とするためである。
DLATミスは、LlからL2へRビットの設定・を伝
達するため、本発明のシス゛テムによって使用される2
つのDLAT事傘の1つである。
更にNLIキャッシュ・ミス全作うCPUリクエストに
関するDLATヒツトがL2へ伝達される(ボックス2
2のN(ノー)の出口)。それは、ボックス23中でL
2リクエスト・ページのためにRビット全オフにして、
L2エントリイを置換不可能にする。L1キャッジ・二
置換アドレスは、L2へのDLATヒツト伝達時に使用
されない。
本発明のシステムは、L1ミスがLlからL2へ伝達さ
れる事実を有利に利用する。即ち、本発明は、高頻度で
生じる多数のDLATヒットヲフィルタにかけるためL
1ミスを利用する。従って、フィルタにかけられたDL
ATヒッ)t−伝達するKは、極〈少量のハードウェア
が必要となるに過ぎない。換言すれば、L1キャッシュ
・ミスによって得られる特定形式のDLATヒツトのフ
ィルタリング#1、L2への通常のライン・フェッチ・
リクエストのために設けられたLl−L2伝達ハードウ
ェアの使用を可能にする。本発明のシステムによるDL
ATミスの伝達は、必ずしもL1キャッシュ・ミスと重
複しないが、DLATミスは低頻度で起る(即ち、CP
Uリクエストの1チよシ少なく)。
更に、第2図のRビット制御動作は、混在した実アドレ
ス・リクエストを処理する。リクエストされた実アドレ
ス(RA)がDLATへ置かれると、本発明のシステム
はRAについてVAと同シように動作する。しかし、v
A及びRAについてDLAT?使用する大部分の大型C
PUは、DLA7’iバイパスしL1キャッシュにアク
セスする。
ボックス26で、L1キャッシュ・ミス育伴う”RAリ
クエストは、゛リクエストされたアドレスヲL2へ送ら
せるが、それは、L2ページ・エントリイを選択して、
そのページのRピッ)tオフにするためである。更に、
L1キャッシュ・ミスは、通常、Llキャッシュのコン
グルーアンス・クラスにある置換アドレスをミスになっ
たRAリクエストによってアドレスさせる。更に、との
L1キャッシュの置換され几アドレスはL2へ送られる
が、それは、L2ページ・−ントリイを一択しかつボッ
クス27でそのRピッ)tオンにして、このL2工ント
リイをL2の置換候補にするためである。RA  L1
ミスは、低頻度で起る(即ち、CPUリクエストの5チ
より少なく)。
その結果、゛Rビット動作についてLlかうL2への伝
達頻度は、CPUリクエストに対する“L1動作率の1
/20から1/10である。本発明のシステムによって
、Rビット切換信号の伝達室は低くなるので、L2キャ
ッシュ・ディレクトリイ回路によって容易に処理するこ
とができる。L2キャッシュ・ディレクトリイ回路は、
通常、L1ディレクトリイ、L1キャッシュ、又はDL
ATより低速かつ安価な回路で作られて込る。他方、R
ビット切換信号のLlからL2への伝達がミス信号と同
じくヒツト信号についてもなされるならば(即ち、L1
速礎で)、低速のL2技術FiL1速度を処理すること
ができない。かくて、キャッシュ・ヒツト・を伴うDL
ATヒツトは、第2図の通路29t?通り、L2へ伝達
されない。何故ならば、それらの発生の速度は、仮定さ
れたし2回路の速度制限に対して非常に早いからである
。しかし、本発明のシステムの動作は、全てのDLAT
ヒッ)fL2へ伝達することを含み、それぞれのDL 
’ATヒツトは、L2キャッシュにおけるDLATリク
エスト・ページ・エントリイのためのRビットをオフに
することができる。Rピットをオフにする几めL1ヒツ
トを伴うDLATヒツトtL2へ伝達しないのは、伝達
し交場合KL1速度で動作する非常に早いRビット切換
回路t−L2で設ける必要があるからである。このよう
な切換回路は、L2置換効率を顕著に改善することなく
コストを増大させるだけである。共通のL2キャッシュ
を有する多重処理は、各プロセッサのLlよりも早い切
換回路を必要とする。この場合、Rビット処理回路は、
L1速度を処理するため、早い技術を使用して作られ、
L2の残りの回路は、低速かつ安価な技術を使用して作
られる。
次の表th、仮想アドレスを含むCPUリクエストにつ
いて、LlからL2へRビット切換信号を伝達する(又
は伝達しない)条件全表わす。
表1において、6つの行はDLAT、L1ディレレクト
リイ、L2ディレクトリイの状態についての異なった組
合せ、Rピット切換信号のLlからの伝達、選択されm
RビットがCPUリクエスト・ページ・アドレス又はD
LATflj換アドレスのいすiに関連しているかなど
を示す。
第5図に示されるDLAT回路、及び第9図に示される
DLAT置換アレイ及び置換選択回路は、前記AQ W
einb@rgerによる1971年7月のIBM技術
゛橢示報告の記事に従って通常の態様で動作する。これ
らのDLAT151[及び第4図に示される通常のL1
1キヤツシユ路は、本発明のシステムで使用される回路
部分を示す。
DLATミスが起ると、要求されたL2エントリイが、
第10図に示されるDLATアドレス・アウト・バスの
絶対アドレス゛によって、第6図及び第7図のL2ディ
レクトリイで選択される。DLATアドレス・アウト・
バスd、DLATミスの場合にDLAT置換アドレスを
選択し、DLATヒツトの場合にCPUリクエスト・ア
ドレスを選択する。本発明のシステムにおいて、DLA
T及びL1キャッシュの双方がヒツトである時、Rビッ
ト動作は生じない。従って810図からの出力は与えら
れない。
L1キャッシュ・ミスを伴うDLATヒツトの場合、又
J”jDATオフt−伴うL1ミスの場合、第11図の
Rビット・ターン・オフ回路は次のいずれかを入力する
。(1)現在のCPUリクエストによって選択され九L
2工ントリイを指定する4本のL2一致線のアクチブな
1本。又は(2)4本のL2一致線のいずれもアクチブ
信号を与えない時、L1参照ページのアドレスを含むL
2キャッシュ置喚エントリイを指定する4本のL2R換
線のアクチブな1本。
第12図は、次のいずれかの信号によって能動化される
Rピット・ターン・オン回路を示す。(1)第5図から
来るDLATミス信号。又は(2)DATオフを伴うC
PU実アドレス・リクエスト信号。
L2一致信号は、次のいずれかの場合にのみ与えられる
。(1)DATがオンのとき、第10図から来るDLA
Tアドレス・アウト・パス上のDLAT置換アドレスが
存在する場合。又11(2)  DATがオフの時、第
17図から来るL1置喚アドレス・アウト・パス信号が
存在する場合。
第13図けL211換候補選択回路を示し、第14図、
第15図、第16図に示される回路を含んでいる。L2
  LRUアドレス・レジスタ4・1ハ、第10図から
DLATリクエスト又は置換アドレス゛を受取るか、第
4図からL1ディレクトリイ・アドレスを受取るか、第
17図からL1置換アドレスを受取る。レジスタ41に
入れられたアドレスは、L2LRUアレイ42にある3
ビツトより成る行を選択する。L2  LRUアレイ4
2Fi、LI  LRUアレイ又はDLAT  LRU
アレイと同じような構成を有する。
LRUアレイそれ自体は、先行技術のIBMマシン又は
1971年に出版され友前記TDBに説明されているL
RUアレイと同じように動作する。
LI  LRUアレイの例は、1981’年3月23日
に出願され交米国特許第246788号に開示される。
L2及び実施例中の各LRUアレイにある行の各々社、
4つのエントリイ(即ちAXB。
CXD)を有するキャッシュの行(即ちコングルーアン
ス・クラス)に対応する。。選択されたLRUアレイの
行にある3ビツト(AB)、(A)、(D)のセット状
態は、キャッシュ又FiDLATにある4つのエントリ
イ、ASBSC,Dの1つを指定するが、キのエントリ
イは、選択されたコングルーアンス・クラスで現在量も
置換される可能性のある候補である。各クラスにある1
つのLRU候補のみが、LRUアレイによって指定され
る。
有効な置換候補は、それが実際に置換されるまで使用可
能のままに残される。クラス内の無効なエントリイは、
LRUポインタによって同じコングルーアンス・クラス
忙ある有効な工ントリイの前に置換される。
第15図の置換アレイ42にあるLRUビット(AB)
、(A)、(D)のセット状態は、次の表■に従って、
各コングルーアンス・クラスにおるスロットA、BXC
%Dへのアクセスによって決定される。
表     ■ A ′ 無し  (AB)、(4)oox  c又はD
B     (A)   (AB)   olxc又は
DC(Alx(ロ) 無し  IXI  A又はBD 
  (AB)  +の)IXOA又はB表川において、
結果の(AB)、(、A)、(D)の設定値はXを含む
。このXは、スロット・アクセスの前にそれが有してい
た「0」又は「1」の値から変化していないことを示す
。従って、全部で8つの異なつ次値が(AB )、(A
)、(D)について存在する。これらの組合わせは、次
の表mに従って、コングルーアンス・クラス中のLRU
を表わす。
表    ■ (AH) (A) (D) LRU 喝−一一閘一−−−−−−―−−―−−自一−−−■―
−−■■■−〇     〇     〇      
 C001D o      1    0       C011D l      0    0       B1   
  0    1       B1   1 °  
OA 1     1     1        A衣用及
び表■に基づく動作は先行技術で知られており、かつ前
記1941年のIBM  TDBに開示されている。
アレイ42で選択され良性は、置換アレイ・レジスタ4
3へ出力される。レジスタ43において、3つの行ビッ
ト(AB)、(A)、CD)は第4図の回路が更新信号
を発生する時、第15図の回路によって更新されてよい
。更新信号が第14図の回路によって発生されない時、
レジスタ43にあるアレイ読出性は変更されない。
WK、L2ftil[補がB2キャッシュのために選択
されねばならない時、レジスタ43にあるアレイ読出性
が第一16図にある回路によって使用される。第16図
は通常の先行技術の回路を表わす。
この回路は、置換アレイ・レジスタの現在の内容を受取
る。それはB2キャッシュで現在選択されているクラス
にある4つのエントリイの中から置換候補を選択する。
本発明のシステムは、B2置換アレイを設定して、L2
ディレクトリイの各クラスにあるLRU候補エントリイ
の選択を制御する。
第14図の新規な回路は、Rビットが状態を変える時(
即ち、オフからオンへ、オンからオフへ)、B2  L
RUアレイ更新信号を与える。第14図の回路は、オン
にされたRビットが再びターン・オン信号を受取る時、
更新信号を与えない。これは本発明の重要な特徴であり
、後に詳説する。オフにでれたRビットが再びターン・
オフ信号を受取る時、更新信号が与えられる。
DLATアドレス・バス・アウト上で第10図から与え
られつつあるL1アドレスが、L2ディレクトリイの選
択されたクラスにあるエントリイの1つに含まれるアド
レスと一致した時、B2一致信号がB2キャッシュから
第14図及び第15図へ与えられる。上記のアドレスの
一致は、L2エントリイがDLATによってヒツト又は
置換されつつあるし2ページであるか、又は実アドレス
によってL1キャッシュ中に作られたB2ぺ4ジを表わ
すことを示す。L2エントリイのためのRビットはオフ
又はオンヘセットされる。
第15図の回路は、現在B2キャッシュ中で選択されつ
つあるB2  LRUアレイ・コングルーアンス・クラ
スに対する5°ビツト・ポインタを発生するため、L2
LRUアレイ更新信号更新用する。ポインタは、選択さ
れ九クラス内のエントリイA1B1C,,Dの中の置換
候補を選択する。
第15図の回路は、LRUアレイを本発明のシステムに
従って動作させるため、第14図から来る更新信号によ
って制御される。ここで注意すぺきは、第15図への更
新信号の発生は、更新信号を発生するのに、どのRビッ
ト切換信号が1?¥されるかを選択することである。第
14図において、L2A、L2B1L2C,又tfL2
D一致入方のアクチブな1つは、4つのエントリイ(A
、B。
C,D)のどれガそのRビット軟接をテストされたかを
表示する。選択され7tjRビツトがオンであれば、第
15図へ更新信号を発生するための第2のターン・オン
信号は許されない。
第14図及゛び第15図の回路による動作の効果は、オ
ン又はオフへ切換えられたRビットを有するL2エント
リイから離れたエントリイを指定するため(即ち、選択
されたエントリイとは異なったクラスのL2エントリイ
を指定する几め)、現在のL2クラス・ポインタ(即ち
、LRUアレイ中のアドレスされた行)をセットするこ
とである。
これによって、切換えられたRヤットを有する工7トリ
イn、直ちにL’FtTJ置換候補とされるのを禁止さ
れ、従って、置換されることができなくなる。かくて、
オンに切換えられたRビットを有するエントリイは、直
ちにLRU置換候補とはされず、従って置換されること
ができない。しかし、オン状態にあるRビットは、それ
がオフにセットされるまで、再びL2  LRU、アレ
イ更新信号を発生するととはない。従って、もしRビッ
トがL2キャッ′シュ中で正しくオン゛にセットされ友
ならば、そのセット状態の正しさは、後のアクティビテ
ィの不在によって確められる。仁の二′ントリイはアク
ティビティなしに時間を経過し、間もなくLRU置換候
補となシ、その〉ラス内の他の工ントリイに代って置換
される。
第15図に示される回路のシングル・ターン・オン特褌
は、多重システムにおいて特に重要である。それは、前
に他のCPUによってオンにされたRビットについては
、第2のCPUがLRUアレイへ第2のターン・オン信
号を与えることがないよう忙する。何故ならば、LRU
アレイへの第2のターン・オン信号は、最初のターン・
オンの時からでなく、第2のターン・オンから工ントリ
イの時間を経過させることによって、LRU状態を変化
させるからである。最初のターン・オンが置換候補とし
てのエントリイのLRU状態を制御すべきなっである。
単一プロセッサであれ多重プロセッサであれ、多重プロ
グラム・システムは、ジョブの実行に当ってCPU0外
へタスクを切換え、その後暫くしてCPUの中ヘタスフ
を戻す。多数回にわたってCPUの中及び外へジョブを
タスク・スイッチスることは通常行われる事である。タ
スクがCPUの中又は外へ゛切換えられるf[、データ
・ラインがCPU  L1キャッシュへ移動させられ、
アクチブなページ・アドレスがCPU  DLATへ変
遺される。タスクがスイッチ・アウトされる度に、これ
らのライン及びページ・アドレスは、CPUのL1キャ
ッシュ及びDLATの中で迅速に置換される。もしペー
ジ・アドレスの置換速度と同じ速さで、ページがL2キ
ャッシュ中で置換され、再びDLATへ戻されると、タ
スクを再実行するための次のタスク切換えは、L2中に
ページを発見することができず、CPUはこれらのペー
ジをL3(即ち主記憶装置)から得る必要がある。
これはシステムに多大の非効率をも几らし、近い将来に
アクセスされるページを保持するというL2の目的を達
成することができない。即ち、DLATがページ・アド
レスを置換する速度と同じ速さで、L2がページを置換
するとすれば(即ち、DLA↑ページ置換が対応するL
2ページの置換を即1tpttc強制−tルs合)、L
2tj、L 1 +’rツ’/ユがタスク切換えの後に
゛リクエストさtしたラインを得るための時間損失を増
大させることによって、システムに対して不利益を与え
る。このタス)を例とした分析により、どうしてL2に
おけるページ置換動作が、DLAT中のページ・アドレ
ス置換又tiL1キャッシュ中のライン置換よりはるか
に遅い速度で応答しなければならないかがわかる。
即ち、それは、システム効率を最大にするため、L2と
L3との間でページのやりとりを避けるためである。
結論としjて、L2でシステム効率を上げるため、L2
はDLATより長いページ置換「時定数」を有しなくて
はならない。
第15図の回路で、Rビットがオンに切換えられたエン
トリイから噌れ几エントリイを即時に指定することの効
果は、L22置換択動作がDLAT置換襦択動作よりも
長ぽ時定数」を有するようになることである。これは効
率的なL2動作の几めに必要である。
現在のRビットのターン・オンが起った時、選択された
クラスにおいて他のRビットがオンであれば、そのクラ
スのために発生され7jLRUポインタは、現在アドレ
スされ友エントリイから離れ几エントリイを指定するこ
とになるが、ターン・オンにされ九より古いRビットを
有する他のエントリイを指定するふいう利点がある。そ
の場合、上記他のエントリイが置換候補となる。
第15図でRビットをオフに切換える効果は、伝達され
7’jDLATヒツトをして、選択され九工/トリイが
LRUの時間経過を受けるのを中止させることである。
これにより、そのよ°うなエントリイが置換候補として
選択されるのが防止される。
このようにして、L1キャッシュ・ミスを伴うDLAT
ヒツトは、CPUリクエストの対象となつ7?−L2ペ
ージ・エントリイのL2置換へ庵ちに反映される。他方
、Rビットをオ、ンにするDLATミスは、前と同じよ
うに動作する。
全てのRビットがコングルーアンス・クラスでオンにさ
れた時、常にLRUポインタは、最も長い時間Rビット
がオンになつ七いたエントリイを選択する。
更に、全てのRビットがコングルーアンス・クラス中で
オフにされた時、常にLRUポインタはクラス内のエン
トリイの中からLRUエントリイを選択する。それはR
ビットがオフであっても実行される。何故ならd、Rビ
ットの静的状態は、LRUポインタを発生する時、LR
U置喚置板選択回路って無視されるからである。
【図面の簡単な説明】
第1図は本発明の実施例を示す3レベル記憶階層のブロ
ック図、第2図は本発明に従うシステムの動作を示す流
れ図、第3図は実施例中で使用される各種のアドレスに
含まれるビット位置を表わす図、第4図は第1図の階層
で使用される通常のL1キャッシュの詳細図、第5図は
第1図の階1で使用される通常のDLATの詳細図、f
!!、6図は第1図の階層で使用されるレベル2のキャ
ッシュ及びそkに関連し九回路の詳細図、第7図は第6
図に示されるL2ディレクトリイの詳細図1、第8・図
は第7図に示されるL2ディレクトリイ内の単一クラス
を含むレジスタの図、第9図は第1図の階層中で使用さ
゛れるDL4Tアレイ及びD L A Tfft換選択
回路のブロック図1、第10図は実施例で使用されるD
LATアドレス・アウト・バス回路の詳細を示す図、第
11図及び第12図はRビットをオンにし交りオフにし
たりするためL2キャッシュへ伝達される切換信号を発
生する回路を示す図、第13図はL2を換候補選択回路
を示す図、第14図はL2  LRUアレイ入力制御回
路の詳細図、第15図はL2  LRUアレイ更新回路
の詳細図、第16図はLRU置換エントリイ選択回路の
詳細図、第17図はL1変更ビットがどのように設定さ
れても実アドレス・リクエストに対してL1キャッシュ
WIt換アドレスを発生する回路の図、第18図は変更
ビットがオンの時L1置換アドレスを発生する回路の図
である。 10・・・・プロセッサ又&−1cPU、12・・・・
DAT回路、14・・・・DLAT、16・・・・レベ
ル2・ディレクトリイ、17・・・・レペルトディレク
トリイ、18・・・・レベルトキャッシュ、19・・・
・レベル2・キャッシュ、21・・・・主記憶装置、2
3・・・・DLATアウト・バス回路、シ4・・・・D
LATt換選択回路、26・・・・レベルトアウト・バ
ス回路、27・・・・レベルト置換選択回路、28・・
・・レベル2・置換選択回路、29・・・・Rビット・
ターン・オン・オフ回路。

Claims (1)

    【特許請求の範囲】
  1. CPUと、主記憶装置と、第ルベルのキャッシュと、C
    PUから出され次ストレージ・リクエストを愛機るt4
    ルベルのディレクトリイと、CPUから出された仮想ア
    ドレス・メトレージ・リクエストの変換アドレスを受取
    るディレクトリイ・ルック・アサイド・テーブル(DL
    AT)とを有する記憶wi層型のデータ処理システムに
    おいて、上記D’LATによってアドレスされる複数の
    データ・ブロックを記憶する′第2レベルのキャッシュ
    と、該t42レベル・キャッシュにffi*されたデー
    タ・シロツクにそれぞれ関連した複数のエントリイを有
    する第2レベルのディレクトリイと、該第2レベル・デ
    ィレクト□リイにある各工/トリイに対応して設けられ
    上記第2レベル・キャッシュにあるデータ・ブロックが
    置換候補であることを示す「置換状−」と該データパブ
    ロックが置換候補でないことを示す「非置換状態」とを
    表示するフラグ・ピッIf貯蔵する手段と、上記第2レ
    ベル・ディレクトリイにあるエントリイを選択してその
    エントリイに対応する上記フラグ・ビットを上記「置換
    状態」へセットする几め上記DLATで置換された記憶
    アドレスを上記第ルベルから上記第2レベルへ伝達する
    手段と、上記第2レベル・ディレクトリイにある工/ト
    リイtJJ択してそのエントリイに対応する上記フラグ
    ・ピッ)t−上記「非置換状態」ヘセットするため上記
    DLATでヒツトとなり上記第ルベル・キャッシュでミ
    スとなった記憶アドレスを上記第ルベルから上記第2レ
    ベルへ伝達する手段とを具備するデータ処理装置。
JP57112616A 1981-07-06 1982-07-01 デ−タ処理装置 Expired JPS6043540B2 (ja)

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 true JPS589277A (ja) 1983-01-19
JPS6043540B2 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)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0228738A (ja) * 1988-07-18 1990-01-30 Nippon Telegr & Teleph Corp <Ntt> 多階層キャッシュメモリのブロック置換え方法
JPH0443876A (ja) * 1990-06-08 1992-02-13 Hanix Ind Co Ltd 建設機械の油圧装置における出力制御装置

Families Citing this family (81)

* Cited by examiner, † Cited by third party
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
US4985829A (en) * 1984-07-31 1991-01-15 Texas Instruments Incorporated Cache hierarchy design for use in a memory management unit
EP0170525B1 (en) * 1984-07-31 1997-10-01 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
US5255384A (en) * 1985-02-22 1993-10-19 Intergraph Corporation Memory address translation system having modifiable and non-modifiable translation mechanisms
US4933835A (en) * 1985-02-22 1990-06-12 Intergraph Corporation Apparatus for maintaining consistency of a cache memory with a primary memory
US4884197A (en) * 1985-02-22 1989-11-28 Intergraph Corporation Method and apparatus for addressing a cache memory
US4899275A (en) * 1985-02-22 1990-02-06 Intergraph Corporation Cache-MMU system
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
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
ATE158882T1 (de) * 1990-06-15 1997-10-15 Compaq Computer Corp Vorrichtung zur echten lru-ersetzung
ATE170642T1 (de) * 1990-06-15 1998-09-15 Compaq Computer Corp Mehrstufeneinschluss in mehrstufigen cache- speicherhierarchien
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
US5412787A (en) * 1990-11-21 1995-05-02 Hewlett-Packard Company Two-level TLB having the second level TLB implemented in cache tag RAMs
US5249282A (en) * 1990-11-21 1993-09-28 Benchmarq Microelectronics, Inc. Integrated cache memory system with primary and secondary cache memories
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)

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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0228738A (ja) * 1988-07-18 1990-01-30 Nippon Telegr & Teleph Corp <Ntt> 多階層キャッシュメモリのブロック置換え方法
JPH0443876A (ja) * 1990-06-08 1992-02-13 Hanix Ind Co Ltd 建設機械の油圧装置における出力制御装置

Also Published As

Publication number Publication date
JPS6043540B2 (ja) 1985-09-28
EP0069250A3 (en) 1985-08-07
DE3278587D1 (en) 1988-07-07
EP0069250A2 (en) 1983-01-12
EP0069250B1 (en) 1988-06-01
US4464712A (en) 1984-08-07

Similar Documents

Publication Publication Date Title
JPS589277A (ja) デ−タ処理装置
US5230045A (en) Multiple address space system including address translator for receiving virtual addresses from bus and providing real addresses on the bus
US5123101A (en) Multiple address space mapping technique for shared memory wherein a processor operates a fault handling routine upon a translator miss
US4736293A (en) Interleaved set-associative memory
US5091851A (en) Fast multiple-word accesses from a multi-way set-associative cache memory
JPS624745B2 (ja)
US20070094450A1 (en) Multi-level cache architecture having a selective victim cache
JPH03142644A (ja) キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置
JPS5821353B2 (ja) チヤネル対メモリ書込み装置
CA1212483A (en) Data select match
US6571316B1 (en) Cache memory array for multiple address spaces
JP3093807B2 (ja) キャッシュ
JPH07104816B2 (ja) コンピュータシステムを動作する方法及びコンピュータシステムにおけるメモリ管理装置
EP0284751B1 (en) Cache memory
JPH07120312B2 (ja) バッファメモリ制御装置
US5420994A (en) Method for reading a multiple byte data element in a memory system with at least one cache and a main memory
EP0531123B1 (en) A dynamic address translation processing apparatus in a data processing system
AU604101B2 (en) High availability cache organization
EP0502211A1 (en) System equipped with processor and method of converting addresses in said system
CN111338987A (zh) 快速无效组相联tlb的方法
JPH0551933B2 (ja)
JP2675836B2 (ja) データ処理装置
GB2037466A (en) Computer with cache memory
JPH07152710A (ja) マルチプロセサシステム
JP2850340B2 (ja) キャッシュメモリ制御回路