JPS60214059A - キヤツシユ機構 - Google Patents

キヤツシユ機構

Info

Publication number
JPS60214059A
JPS60214059A JP60015651A JP1565185A JPS60214059A JP S60214059 A JPS60214059 A JP S60214059A JP 60015651 A JP60015651 A JP 60015651A JP 1565185 A JP1565185 A JP 1565185A JP S60214059 A JPS60214059 A JP S60214059A
Authority
JP
Japan
Prior art keywords
address
cache
directory
entry
stage
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
JP60015651A
Other languages
English (en)
Other versions
JPH0326863B2 (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 JPS60214059A publication Critical patent/JPS60214059A/ja
Publication of JPH0326863B2 publication Critical patent/JPH0326863B2/ja
Granted 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6024History based prefetching

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

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はデータ処理システムにおけるキャッシュの動作
に関し、さらに詳しく言えば、キャッシュへの情報でロ
ックの事前取出しの技術に関する。
〔従来技術〕
データ処理システムにおいては、多くの場合、CPUの
作業記憶部と主記憶装置との間に高速緩衝記憶機構が具
備されている。この記憶機構は一般にキャッシュと呼ば
れる。こうして、主記憶装置からキャッシュへ事前に転
送されたデータおよび命令のサブセットを比較的高速に
アクセスすることができる。したがってデータ処理シス
テムの動作速度は改善される。主記憶装置とキャッシュ
との間のオペランドまたは命令の転送は、通常、ブロッ
クまたはラインと呼ばれる固定長の情報単位で行われる
。キャッシュへの転送の際のラインの選択、さらに、キ
ャッシュにおけるその場所(ただしキャッシュサブエリ
アへ事前に割り振られたクラスは除く)は個々のプログ
ラム、使用されるオペランド、およびプログラム実行中
に発生する事象に依存する。
キャッシュからの情報の検索ができるようにするために
、タグまたはラインアドレスのテーブルがキャッシュの
像であるディレクトリに保持される。キャッシュに存在
する各ラインはそのタグまたはアドレスを有し、このタ
グまたはアドレスはディレクトリの各自の位置に記憶さ
れる。いったんキャッシュが一杯になれば、新しい情報
は、古いブロックまだはラインの情報が削除されるか、
重ね書きされるときしかキャッシュに入れることはでき
ない。リプレースメント部分としてのラインの選択、お
よびキャッシュの内容変更後のディレクトリの更新には
一定の手順が必要である。
キャッシュを使用してリプレースメントの選択およびブ
イレフ) IJの更新を行う機構を提供するシステムは
、これまでにも数多(存在する。
米国特許第4322975号はLRU (least 
−recently−used )手法を用いて、キャ
ッシュミスが生じたときに主メモリから取り出されたデ
ータを記憶する場所(キャッシュ内の場所)を選択する
だめのキャッシュメモリ構成について記載するものであ
る。複数のキャッシュを有する多重プロセッサシステム
の動作を改善するために、キャッシュ内で使用可能なデ
ータのタグアドレスビットを記憶するディレクトリが、
各々のキャッシュに対し重複して設けられている。重複
した(2つの)ディレクトリは同じ内容、すなわち、現
にキャッシュに存するデータ(オペランド、命令)のタ
グ、を有する。一方のディレクトリは要求されたデータ
の検索用として普通に使用される。もう一方のディレク
トリはたとえばCPU Aに関連するキャッシュ内に記
憶されたデータのアドレスと、主メモリにおいてCPU
 Bにより変更されたデータのアドレスと、の比較に使
用される。キャッシュに記憶されたCPU Aのデータ
は、それらが主メモリにおいて他のCPUによって変更
されたときに無効化される。重複ディレクトリは以上の
ようなプロセスのだめの手段である。
米国特許第4332010号は複数のクラスに細分され
たディレクトリを用いるキャッシュシステムについて記
載するものである。使用されるアドレスにおいては変換
可能な部分と変換不可能な部分とで部分的な重なりがあ
り、しかも、それはデータがキャッシュのどこに実際に
記憶されているかに依存するので、アクセスが試行され
たときに成る特定のクラスにミスが生じることもあれば
基本ヒツトが生じることもある(さらには、他のクラス
でシノニムヒツトが生じることもある)。
この特許は、基本ヒラkが生じないときにシノニムヒツ
トを直ちに使用できるようディレクトりの全クラスを同
時にアドレス指定し探索することによって、シノニムヒ
ツトだけが生じたときに要する時間のロスの問題を解決
するものである。
米国特許第1168541号はセットアソシアティブキ
ャッシュのためのリプレースメントシステムについて記
載するものである。セットアソシアティブキャッシュと
は共通のアドレスビットを有するデータのクラスに各々
関連するセットに細分されたキャッシュである。このシ
ステムはエージビット(agebit)を用して1セツ
トのLRUブロックを決定する。ブロックが参照される
たびごとに、エージピットが更新される。現にキャッシ
ュメモリに在るデータワードのアドレスビット部分を表
わすタグを記憶するために、ディレクトリ(タグバッフ
ァ)が具備されている。したがってこの特許はディレク
トリおよびエージピットの更新に関する詳細を示すもの
である。
米国特許筒4189770号はオペランド取出しのだめ
のキャッシュバイパス制御について記載するものである
。このシステムでは、キャッシュミスが生じたため主記
憶装置からラインを取り出さなければならないときは、
取り出されたラインのその部分(オペランド)、すなわ
ち、要求された今すぐに必要なもの、はキャッシュバイ
パスを介して直接的に1−ユニットへ転送される。こう
すればライン全体がキャッシュに転送されるまで待たな
くてもよいのでその分だけ時間が節約できる。したがっ
てシステムの動作が速(なり効率は改善される。
米国特許第4195343号は数段で構成されたキャッ
シュのためのリプレースメント手順について記載するも
のである。この特許では、新しいデータがキャッシュへ
置かれたときにリプレースタンドが生じるように場所が
選択される。この場所の選択はラウントロピン(総当た
り)手法で行われる。
〔発明が解決しようとする問題点9 以上に示した従来例はいずれもその目的のためには良好
に働くが、キャッシュミスを減少させるシステムとして
未だ十分なものとは言えない。
したがって本発明の目的はキャッシュミスを大幅に減少
させるために効率の良い事前取出しく主記憶装置からキ
ャッシュへの)を行うキャッシュ機構を提供することに
ある。
〔問題点を解決するだめの手段〕
本発明の実施例では、上記の問題は、主に、通常のブイ
レフ) l)の他に2次的なディレクトリ(以下、影デ
ィレクトリともいう)を設けることによって解決される
。この2次ディレクトリは、前のラインアクセスの間に
得られた親識別子と、後のラインアクセスの間に得られ
た関連する子アドレスと、かう成る親−子ペアを記憶し
、この記憶された親識別子が再び見出されたときは、関
連する子アドレスで指定されるラインが事前に取出され
る。
以上のように本発明に基づくキャッシュ機構はキャッシ
ュミスの発生確率を減少させるだめに予測的な取出しを
行うもの、すなわち、未だ要求されていない情報のキャ
ッシュへの事前取出しを行うものである。
〔実施例〕
(A)本発明の基本的な概念 本発明はデータ処理システムにおいて情報ブロック(以
下ラインという)を主記憶装置からキャッシュへ効率良
く事前に取り出すための技術を提供するものである。本
発明によればキャッシュミスの数は大幅に減ぜられる。
第1図は本発明の詳細な説明するだめの図である。キャ
ッシュに対してディレクトリ11が普通に設けられてい
る。ディレクトリ11はキャッシュに現に存在するライ
ン(命令、データ、オペランド)のアドレスを保持する
。この標準的なディレクトリを1実デイレクトリ騨と呼
ぶ。実ディレクトリにより、所望のラインが既にキャッ
シュに存在するかどうか、存在するならその場所はどこ
か、ということを判断することができる。
本発明に従って、付加的な2段ディレクトリ(13,1
5)が設けられる。この2段デイレクトりは”影ディレ
クトリシまたは単に詩影鉗という。
影ディレクトリは、第1段(1ろ)で、キャッシュに現
に存在するまたは最近まで存在したラインのアドレス(
P、 P’、P”)を保持する。第1段の各エントリに
対して、第2段(15)に対応するエントリが存在する
。紀2段は第1段の個々のアドレスの後に続いてアクセ
スされたアドレスをそれぞれ保持する。
換言すれば、成るアクセスサイクルでアドレスPに対し
て記憶アクセスがなされ、かつ、後のサイクルでアドレ
スQに対してアクセスがなされたとき、第1段のエント
リがPを保持し第2段のエン) IJ Qを保持するの
である。ここで言う後の”サイクルは直後のアクセスサ
イクルの場合もあれば、キャッシュミスおよび主記憶装
置の取出しを伴う後のアクセスサイクル、または、キャ
ッシュとそのディレクトリの使用/エージ標識の変更を
伴う後のアクセスサイクルである場合もある。
記憶アクセスのシーケンスは成る確率を持って繰り返さ
れる。アドレスPへのアクセスが再び行われた場合、第
1図の構成によれば影ディレクトリの第2段からアドレ
スQ’&入手し対応するラインをキャッシュへ事前に取
り出すことができる。
ただしこのときQが実際にPに続くかどうかは未だ判ら
ない(以前はそうであった)。このような事前取出し機
構によれば、要求されたときにラインが既にキャッシュ
に存在する確率は実質的に増加する。すなわち、遅延の
原因となるキャッシュミスの数は大幅に減ぜられる。
影ディレクトリは、効率を考慮して、実ディレクトリよ
りもかなり大きめのサイズにして:16<。
何故なら影ディレクトリは、第1段で、キャッシュに実
際に存在するラインのアドレスだけでなく既に置き換わ
ったラインのアドレス(しかしこれは最近に使用された
ので成る確率を持って間もなく再度使用される)も保持
しなければならフヨいからである。適用方法にもよるが
、影ディレクトすの第1段のエントリ数は実ディレクト
リの2倍(場合によっては8倍)である。
他に、影ディレクトリの内容のだめの更新手順が必要で
ある。影ディレクトリの第1段における新しいエントリ
の追加と古いエントリの削除は実ディレクトリと同様に
して行われる:エージタグ(M RU −L RU標識
)が各エントリに対して保持され、新しいアドレスPが
実ディレクトリ11に入ったためにそれが第1段16に
入るときは、新しいアドレスPは最古のエントリ(PN
 P’、またはP“)と入れ換わる。この入換えを行う
だめのMRU−LRU標識の使用およびその手順は周知
の技術であるので、詳述しない。
第2段のエン) IJ Qの更新は実際のアドレスシー
ケンスの結果として行われる:成るアクセスサイクルで
Pが第1段16に新たに加えられると、その後、Qが第
2段15の対応する場所に加えられる。後でPが再び使
用されるときに、Qが再びPに続くかどうかが検査され
る。確認ピッ)CFは、この検査の結果を示すように第
1段13の各エントリに設けられる。最終的には、最近
にPに続いた(したがって記憶アクセスの最近の履歴を
表わし、事前取出しのだめのより適当な)別のアドレス
RがQと入れ換わる。
要するに、事前取出し機構には、通常のキャッシュブイ
レフ1.9の他に2段式の影ティレクトリが具備され、
各記憶アクセスサイクルは下記のオペレーションを含む
ように改められる。
(a) 所与の現アドレスでキャッシュをアクセスする
。ラインがないときは、それを主記憶装置から取り出し
て対応するアドレスを入れることによって実ディレクト
リを更新する。MRU−LRU標識を更新する。(これ
は通常のアクセス手順である〕。
記憶アクセスの適切なサブセットで下記の動作が行われ
る。適切なサブセットはアクセスをことごとく含む必要
はない。事前取出し機構はMRU−LRU標識またはキ
ャッシュの内容を変更するようなアクセスの場合にのみ
呼び出される。
(b) 第1段の現アドレスPに対してI正当な訂ペア
P−Qが使用可能かどうかをみるために影ディレクトリ
を検査する。Qで与えられるラインをキャッシュへ取り
出す(もしそれが既にそこにないときは)。実ディレク
トリを更新する。
(c)影ティレクトリの内容を更新する:(C1)現ア
ドレスがなかったときは、それを第1段(P)に入れ、
 第2段rQ)は空けたままにする。
(C2)以前に使用されたアドレス(P・)の下で □
現アドレスを一定の条件で第2段(Qo)に入れる。
(C6)以前に事前取出しされたライン(Q”)が使用
されなかった(CFビットをゼロにリセットすることに
よって)ときは、影ディレクトリのペア(P・−Q”)
を無効化する。
影デイレク) IJおよび以上示した手順についての詳
細は次節で説明する。
本発明に基づ(事前取出し機構は、キャッシュが実際に
使用可能な太きさよりもずっと太きいものとして具備さ
れたと同じ効果を有する。何故なら従来に比べてキャッ
シュミスの発生率がずっと小さいからである。すなわち
、キャッシュをフルサイズの記憶場所数で拡張(たとえ
ば各ラインが128バイトヲ有する)しなくても、ずっ
と小規模のエントリ(たとえば各アドレスベアに対して
6バイト)ですむ付加的なブイレフ) l)がありさえ
すればよいからである。
(B) 用語の定義 本節では説明を簡単にするために使用される用語の定義
をする。
・ライン・は情報の1ブロツクである。この情報、すな
わち、命令またはオペランド(データ)は連続的な記憶
場所に記憶され、1エンテイテイとしてたとえば主記憶
装置とキャッシュとの間で転送される。
”アクセスサイクル”または”サイクル”は、アドレス
が与えられたときに記憶装置の1ラインをアクセスする
のに必要なオペレーションのシーケンスである。たとえ
ば、記憶装置で初めに1つの命令がアクセスされ次に2
つのオペランドがアクセスされるときは、6つの連続的
なアクセスサイクルが存在する。
材エージタグ雪は記憶装置の1エントリ(ディレクトリ
のアドレス)に対して割り当てられたビットグループで
あって、エントリの所与のグループにおいて個々のエン
トリがM RU (mostrecently use
d) であったか、L RU (1eastrecen
tly used)であったか、またはM RUエント
リとLRUエントリとの間のどの使用世代であったのか
を示すものである。
■コングルエンスフラスIは共通の指標部を有するライ
ンのサブ−ヒツトである。すなわち、コングルエンスフ
ラスの全てのラインは最後のnビットが同一であるアド
レスを有する。
さて、6つのアドレスR,SおよびTのシーケンスで、
中間のSが現に使用されているとしよう。
そのようなろ連のアドレスの場合、これらを以下のよう
に命名する( VLA−仮想ラインアドレス)。
R−前アドレス−旧VLA S−現アドレス−VLA T=次アドレス−新VLA このシーケンスでは、2つの連続的なアドレスPおよび
Qが1ベアを構成する。これを以下のように命名する。
P−親(アドレス)−PAR−A Q−子(アドレス)=DSC−A 上記のろ連アドレスR,S、およびTかられかるように
、現アドレスは異なる機能で2つのペアに含まれている
。ペアR= Sでは、Rが親でSが子である。ペアS−
Tでは、Sが親でTが子である。影テイレクトリを更新
する際、この違いは重要である。何故ならこの更新は回
顧的な極面と将来的な極面を有するからである。
親アドレスであることを明らかにするために、別のアド
レスの一部分との組合せである。1親識別子lを一定の
状況で使用してもよい。これについては第2部で説明す
る。
(C) キャッシュおよびディレクトリの構成本節では
キャッシュとそのディレクトリがどのように構成されて
いるかについて説明する。もちろん、これから説明する
構成は本発明の実施例を記述するための単なる1例であ
り、本発明は他の構成でも機能することができる。
(C1)キャッシュおよび実ディレクトリデータ処理シ
ステムに接続されたキャッシュおよびディレクトリの基
本的な動作は周知であるから説明を省略する。
第2A図はギャツンユの構成を示す図である。
キャッシュは多数のライン(データまたは命令)のため
記憶空間を有する。この例ではラインの数は62個であ
る。各ラインの容量は128バイトである。図かられか
るように、このキャッシュは8行×4列のラインで構成
される(1行につき4個のライン)。各行には1つのコ
ングルエンスフラスが割り振られている(たとえばその
行の全ラインに対して、仮想アドレスすなわち主記憶装
置アドレスは最後の6ビツトが共通である)。たとえば
、行204個のラインの空間はアドレスの最後のところ
が全て、、、、 010であるようなラインが割り当て
られ、行704個のラインの空間はアドレスの最後のと
ころが全て、、、、111であるようなラインが割り当
てられる。こうすればハツンング機構がな(でもある程
度のランダムな分布が ・実現できる(したがってキャ
ッシュ空間を一様に利用することができる)。同時に、
連続的なアドレスを有する項目が別の行に記憶される。
ラインの数、キャッシュの容量は、もちろん、これに限
定されるものではない。
キャッシュのだめの通常のティレフトす(ここでは実デ
ィレクトリと呼んでいる)は第2B図かられかるように
キャッシュと全く同じ構造である。
キャッシュの各ラインに対して、実ディレクトリには対
応するアドレスエントリのセル21が存在する。しかし
ながら、1つのアドレスのだめの各セルの容量はわずか
24ビツトである(これに対し対応するラインの容量は
128バイトである)。
キャッシュから1個のラインを検索する場合、初めにそ
のアドレスを利用してコングルエンスフラス(すなわち
キャッシュにおいて割り当てられた行)を判断する。次
に実ディレクトリの対応する行の4つのエントリが所与
のラインアドレスと比較される。これが一致すれば、そ
のブイレフ) IJにおいて突き合わされたアドレスの
場所は、キャノンユ内でそのラインがどこに記憶されて
いるかを示し、したがってそれをアクセスすることがで
きる。
ディレクトリにおいては各エントリに対して1つのエー
ジタグが保持されるが、このエージタグは各行すなわち
コングルエンスフラスとは関係がない。したがって2ビ
ツトタグで1行のどのエントリがMRUであったかLR
Uであったかなどを示すことができる。アドレスおよび
それに対応するキャッシュ中のエントリがアクセスされ
ると、それはMRUエージタグの値を獲得し、他のアド
レスのタグ値はそのことを示すように更新される。
新しいラインをキャッシュに入れるときは、対応するコ
ングルエンスフラス(行)のLRUアドレスエントリが
見出されて、これにより新しいラインおよびそのアドレ
スをキャッシュおよびディレクトリのどこにそれぞれ記
憶するかが判断される。
LRUリプレースメント手順は周知であるから、これ以
上の説明は省略する。
(C2) 影ディレクトリ 第2A図および第2B図のキャッシュおよび実ディレク
トリは標準的なものであるのに対し11本発明に基づい
て加えられる影ディレクトリ(第6図)はこれまでのも
のと同様な構造を有するが実ディレクトリよりもずっと
太きい。
本実施例では影ディレクトリも同じ(8行構成(すなわ
ちコングルエンスフラスによって組織される)であるが
、1行の有するエントリセル25の数は実ディレクトリ
よりも多く、たとえば、8個である。したがって、この
例では影ディレクトリ23は、実ディレクトリ11のエ
ントリセルの数が62個(キャッシュのラインの数も6
2個である)。であるのに対し、その数は64個である
影ディレクトリ23の各エントリセル(第4図に1つの
エントリセルを示す)はたとえば49ビツトの容量を有
しこれにより、24ビツトの第1段エントリ27(アド
レスP)、24ビツトの第2段エントリ29(アドレス
Q)、および確認ピッ)31(CF)を収容する。この
構成は第1図のどころで説明した原理に対応する。1つ
の記憶ブロックに第1段のエントリ、別の1つの記憶ブ
ロックに第2段のエントリをそれぞれ入れて両者のエン
トリ数が同じになるように影ディレクトリを構成するこ
ともできる。本実施例では第6図および第4図に示すよ
うに、1つのブロックの各エントリが、第1段および第
2段のアドレスを構成する1つのアドレスベアを収容す
る。
第3節で定義した用語を参照すれば、影ディレクトリ2
3の各エントリセル25は第1段エントリ27(アドレ
スP)に親アドレスPAR−Aを保持し、第2段エント
リ29(アドレスQ)に子アドレスDSC−jl−保持
することができる。確認ピッ)CFはそのベアP−Qが
事前取出しの有効なベアであるかどうかを示す。CF=
1のときは、記憶されているベアP−Qは正当なベアで
ある。CF=00ときは、記憶されているベアを使用す
べきではない。すなわち、一方の位置または他方の位置
(PまたはQ)にはアドレスが記憶されていない。
実ディレクトリの場合と同様、影ディレクトリにおいて
も各セルに対して1つのエージタグが保持される。各行
において1つのMRUエントリ、1つのLRUエントリ
、およびその中間の値を有する他のエントリが存在する
ように、これらのエージタグは行(すなわちコングルエ
ンスフラス)で分類される。したがって各コングルエン
スフラスの8つのエントリに対して6ビツトのエージタ
グで十分である。事前取出しのために第2段エントリを
獲得する目的で第1段エントリを参照するか、または、
新しい第1段エントリを入れるときは、それはMRUエ
ン) IJにされる。その行の他の第1段エントリのエ
ージタグは更新される。新しいエントリのために空間が
必要なときは、LRUエントリは重ね書きされる(その
CFビットをゼロにリセットする)。
影ディレクトリの第1段および第2段エントリの挿入お
よび削除ならびにCFビットの更新については後で説明
する。
(Cろ)事前取出し確認バッファ 事前取出し機構を実現するにあたって、影テイレクトリ
の更新手順を支援するだめの補足的なユニットを設けて
もよい。この補足的なユニットは第5図に示す事前取出
し確認バッファ(PCB)6ろである。PCB33は事
前取出しされるアドレス用のフィールド65、親アドレ
ス用のフィールド67、および使用標識ビン) (UB
 )用のビットフィールド39を含む少なくとも1つの
バッファレジスフから成る。1つのラインがキャッシュ
へ事前に取り出されるときは、そのアドレスQとその親
であるアドレスP(これらのアドレスは影ディレクトリ
の第2段および第1段エントリからそれぞれ得られる)
がフィールド65および67にそれぞれ記憶される。そ
の後、事前取出しされたアドレスが本当に使用されたと
判断されると、ビットUBは1にセットされる。
PCB33のレジスタは1個(レジスタA)と言わず、
2個(レジスタAおよびB)、4個(A。
B、C,およびD)、またはもつとたくさんでもよい。
このようなPCBの拡張については後で説明する。PC
Bが複数のレジスタを有する場合は、その各々のレジス
タに対して1つのエージタグが保持され、これにより、
MRU、LRU等のエントリの判別ができる。
(D) 事前取出しおよび影ディレクトリの更新を含む
記憶アクセス手順の詳細 第6図(すなわち第6A図ないし第6C図)は影デイレ
ク) IJおよび事前取出し機構を用いた記憶アクセス
手順の流れ図である。この手順の原理的な動作は第A節
のところで既に説明した。すなわち、(a)現アドレス
でキャッシュをアクセスし、ラインを取り出しく必要な
らば)、実ディレクトリを更新する;(b)正当な子ア
ドレスであるかどうかを検査し、それを事前に取り出す
(もしそれがキャッシュにないときは) ; (c)新
しい子アドレスを入れ、さらに、正当な子アドレスを有
効化することによって影ディレクトリを更新し、不当な
子アドレスを無効化する、ことである。
(1)次アドレスを獲得し、キャッシュをアクセスし、
実テイレクトりを更新するニ ステップ201で記憶アクセスザイクルを始めるために
、システムは次ラインアドレスを入手し、それを現アド
レスにセットする(VLA−新VLA)。これはそのサ
イクル中はVLAとして通用する。ステップ203でア
ドレスVLAを有するラインが既にキャッシュに存在す
るかどうかを判断するだめの探索が行われる。このため
、実ディレクトリにおいてVLAに関連する行すなわち
コングルエンスフラス゛の全エントリがVLAと比較さ
れる。これでヒツトが生じたときは、既にMRUでない
限りはステップ205で対応するエントリj:MRuと
してマークされ、キャッシュのラインをアクセスできる
ようにその位置コードがシステムに与えられる。上記の
比較でミスが生じたときはステップ207が実行される
ニアドレスVLAを有するラインが主記憶装置から取り
出され、それがプロセッサに転送され、さらに、実デイ
レク) IJの対応する行のLRUエントリで与えられ
るキャッシュの場所に記憶される。そうしてVLAはM
RUとして実ディレクトリに入れられてLRUエントリ
と入れ換わる。
(11)事前取出し手順での一定のケースの除去法の2
つのステップにおいて一定の条件(すなわち、この場合
は事前取出しおよび影ディレクトリの更新が行われない
)の下で記憶アクセスサイクルが終了する。ステップ2
09でMRUの変更を生じるキャッシュアクセスがあっ
たかどうかが判断される(新しいエントリがディレクト
リに置かれるか、またはMRUでなかった古いエントリ
が使用されたときMRUの変更が生じる;ステップ20
9では、検査されるラッチのセットにM’RUの変更条
件を使用することができる)。MRUの変更がなかった
ときは、前のアクセスサイクルで各アドレスVLAに対
し事前取出しオペレーションおよび影ディレクトリの更
新が行われたと推定できる。したがってステップ211
以降ステツプ255までを省略してそのサイクルの終り
に進むことができる。実際にMRUの変更があったとき
は、全てのステップが実行される。
ステップ211でキャッシュへの現アクセスが命令のだ
めのものであるかデータ(オペランド)のだめのもので
あるかが判断される。事前取出しおよび影ディレクトリ
の更新の手順は命令アクセスサイクルに限定してもよい
。これについては後で説明する。
簡単のため、命令の場合の事前取出しを説明する。これ
はステップ211で調べられる。アクセスがデータのだ
めのものであったときは、ステップ211の後、そのサ
イクルは終了する。
(iii) P CBの更新(UBビットのセット)ス
テップ213でPCB33の事前取出しアドレスフィー
ルド(65)にVLAが存在するかどうかの検査が行わ
れる。VLAがそこに存在すれば、ステップ215でU
Bピッ) (39) が1にセットされ、これにより以
前に事前取出しされたラインが実際に使用されたこと(
すなわちその事前取出しが正しい選択であったこと)を
示す。これに対し、事前取出しされたラインが実際に使
用されないときは、PCBの各エントリのUBビットは
ゼロのままである。UBビット Iセロ1″はその事前
取出しが実際には失敗であったこと、およびその事前取
出しで発生する親子ペアを無効化すべきであること、を
示す(これはステップ263からステップ24ろで行わ
れる)。
(IV) 影ディレクトリの更新(新しいエントリの登
録)、事前取出しの準備、および実際の事前取出し 前に説明したように、実ディレクトリに入れもれる各ア
ドレスは影ディレクトリにも入れられる。
このため、各サイクルで、現アドレスVLAが既に影デ
ィレクトリに存在するかどうかが判断される(ステップ
217)。影ディレクトリ23の行(コングルエンスフ
ラス)の全ての第1段エントリ(第1図では13、第4
図では27)はVLAと比較される。VLAが見出され
ないときは、行のLRUエントリ(最古のアドレス)が
決定され、VLAをそのセルに入れてエントリMRUを
生成する(ステップ219)。新しい第1段エントリの
ために第2段エントリが無効化されるので、そのセルの
確認ビン) CF (31) はゼロにリセットされる
。したがって事前取出しペアの新しい親は影ディレクト
リに記憶され、その子はそれが実際に既知となったとき
に後のサイクルで第2段エントリとして入れることがで
きる(ステップ255)。
子となりそうなものが判らないので事前取出しはできず
、後のステップはステップ247まで全て省略される。
ステン7−217でVLAが影ティレクトリにおいて第
1段エントリ(親)として見出されれば、ステップ22
1で確認ビットCFがオン(1)がどうかの検査が行わ
れる。CFがゼロのときは、第2段エントリ(子)が無
効化され、事前取出しはできず、ステップ247までの
ステップは全て省略される。
ステップ221でCF=1のときは、第2段エントリ(
子)の選択は正しくフィールド290子アドレスで事前
取出しを試行することができる(ステップ226)。
ステップ225で、子アドレス(第2段アドレス)を有
するラインが既にキャッシュに存在するかどうかの判断
が行われる。このため、実ディレクトリが調べられる(
通常のキャッシュアクセスの場合のステップ2[16の
ように)。実ディレクトリで子アドレスが見出されれば
、事前取出しは必要ではなくステップ247までの後の
全てのステップは省略できる。
子アドレスが実ディレクトリにないときは、ステップ2
29でそのラインがキャッシュに取り出され、子アドレ
スを入れることによって(LRUエントリの入換)実デ
ィレクトリが更新される。
前の既知のアドレスシーケンスから言って使用されるこ
とが予想されるため(後で使用されないこともあるがそ
の確率は小さい)新しいラインがキャッシュに取り出さ
れるのである。
(V)PCBの更新(最古の二ン) IJの検討、新し
いエントリの登録)および影ディレクトリの更新(確認
ビットのリセット): この段階で、PCBを評価することができる。
ステップ261で最古のエントリ(単一レジスタ式PC
Bの場合は単一のエントリ、多重レジスフ式PCBの場
合はLRUエントリ)が決定され、ステップ233でそ
のエントリのUBビットがオンであるかどうかが判断さ
れる。UBビットがオン(1)のときは、対応する事前
取出しされたラインが実際に使用されたことになる。し
たがってこの最古のPCBエントリに記憶され、かつ、
影ディレクトリにおいて有効なペアとして存在する事前
取出しペア(親−子ペア)は正当なペアであり影ディレ
クトリにおいて有効のまま存続することができる。新し
いエントリで重ね書きすることによってP、CBにお℃
・てそれを取消すことができる。
最古のPCBエントりのUBビットがゼロのときは、事
前取出しされたラインは使用されなかったのであるから
、PCBおよび影ディレクトリのこのペア(親−子)は
正当なものではな(、シたがって無効化しなければなら
ない。そこでステップ237において、PCBエントリ
のフィールド37からそのペアの親が取得され、影デイ
ンクトリの全てのセルの第1段エントリでそれが探索さ
れる。ステップ2ろ9で、この正しくない親アドレスが
その間に影ディレクトリから削除されていたと判断され
れば、それは無効化する必要はな(、ステップ245で
そのPCBエントリを重ね書きすることができる。
しかしながら正当でない親アドレスが影ディレクトリの
セルでみつかれば、ステップ24ろで確認ビット31を
ゼロにリセットすることによって、このエントリは無効
化される。その後、そのPCBエントリを重ね書きする
ことができる。
当サイクルで事前取出しが実際に行われていたときは(
ステップ229)、ステップ245で新しいエントリを
PCBに登録することができる。
この新しいエントリは単一のエントリ(単一レジスタ式
PCBのとき)または最古のエントリ(多重レジスフ式
PCBのとき)と入れ換わる。このような単一のエント
リまたは最古のエントリはその前のステップ221から
ステップ246で既に評価されている。新し℃・エント
リはステップ229で使用された事前取出しアドレスと
、当サイクルの実際の現アドレスVLAである親アドレ
スと、を有する。そのUBビットはゼロにリセットされ
、事前取出しされたラインが実際に使用された場合にの
み、1にセットされる。
(vl)影デイレク) IJの最終的な更新(確認ビッ
トのセット、第2段エントリへの子の登録):この段階
で、影ディレクトリの遡及的な更新が行われる。レジス
タに記憶された前アドレス(旧VLA:前の事前取出し
サイクルで現アドレスVLAだったアドレス)が影ディ
レクトリの全セルの第1段エントリで探索される(ステ
ップ247)。
これは、新アドレスが既に正当な子アドレスを有するか
どうかを検査するために行われる(影ティレクトリにお
いて新しい子アドレスとしての現アドレスVLAを与え
るために行われる)。
以下、所与の親アドレスのために子アドレスをいつ変更
するかを決定する機構について説明する。
この機構は確認ビットCFを調べて、その親−子アドレ
スペアが正当なアドレスペア(これは事前取出しを成功
させるものであるから変更すべきではない)であるかど
うか、またはそれが不肖なアドレスペア(これは事前取
出しを失敗させるかもしれないのでその現アドレスのた
めの新し℃・子アドレスが試されるべきである)である
かどうかを判断する。この更新の方針を達成する方法は
幾つか考えられるが、上記の機構はそのうちの1つであ
る。この機構は良好な更新手法である。本節の最後には
他の更新機構も示しておく。
前述のように、影ディレクトリで旧VLAが親として記
憶されているかどうかに関する探索が行われる。旧VL
Aが影ディレクトリの第1段エントリでみつかったなら
、ステップ249で確認ピッ)CF31が1かどうかの
検査が行われる。CF=1ならば、そのペア(旧VLA
が親)は有効であり変更されない(第2段エントリの子
は現アドレスVLAであることも、そうでないこともあ
る)。CF=Oならば、そのペア(旧VLAが親)は無
効である(それは既に取出しミスを生じている、すなわ
ち、直前のサイクルでその親が新たに登録されている)
。この場合、ステソゲ251で、現アドレスVLAが第
2段に子として既に記憶されているかどうかの検査が行
われる。現アドレスVLAがまだ記憶されていないとき
は、それはステップ253で第2段エン) IJに登録
されるが、その確認ピッ)CFはゼロにセットされるの
で、それはもう事前取出しには使用されない。現アドレ
スVLAが影ディレクトリで既に旧VLAへの子として
記憶されているときは、それは旧VLAO後の第2の発
生であるから、そのペアを事前取出し用として有効にす
るためにその確認ピットCFが1にセットされる。
ステップ249かもステップ255で影ティレクトリが
最終的に更新されれば、そのアクセスザイクルは終了す
る。最後のステップ257で現アドレスVLAは旧VL
Aレジスタに置かれ、それそのものはステップ201か
ら始まる次の記憶アクセスサイクルで使用される。
(Vの 更新機構の他の実施例 以下、影ディレクトリの更新および確認ビットのセント
のために用いられる機構の他の実施例について説明する
。これは下記のステソゲを含む。
(a)1回目のエントリの選択的な事前取出し:影ディ
レクトリに登録される全ての新エンドす(第1段)のた
めにCFビットを1にセットする(正当なエントリ几こ
れにより、全ての新しいエントリは、第1段エントリが
参照されるとすぐに事前取出しを開始することができる
。事前取出しがなされたが使用されないときはCFビッ
トをゼロにセットする(正当でないエントリ)。新しい
親−子アドレスペアは前述と同じやり方で無効化するこ
とができる。
(b) 全てのエントリの事前取出し:現アドレスが参
照されるときは常に子アドレスを事前取出しする。子ア
ドレスが事前取出しされ使用されなかったことを示すた
めにCFビットをセットする。これにより、新しい子ア
ドレスを、第1段の親アドレスのために、影ディレクト
リに登録することができる。
以−ヒが更新手法の他の実施例である。
(E) 多重エントリ式事前取出し確認バッファ(PC
B)の効果: 第C節(C1)で説明したように、PCBは単一エント
リバッファまたは多重エントリバッファとすることがで
きる。単一エントリPCBの場合、1回の事前取出しの
エン) リは削除される。すなわち、それは、次の事前
取出しが生じたときは既に重ね書きされている。事前取
出しされたラインがその間に使用されなかったときは、
そのペアは、1回の取出しミスの後、既に影ディレクト
リにおいて無効化されている。
多重エンド!J P CBの場合、後続の複数回の事前
取出しの間、各エントリは存続する。したがって各親−
子ペアは・生き残る・チャンスを有゛する。
すなわち、各親−子ペアは1回の取出しミスの後でも影
ディレクトリにおいて有効なまま存在するチャンスを有
する。というのはそれは直ぐには無効化されないからで
ある。同じペアのために正しい事前取出しが続いて行わ
れたときは、UBビットを1にセットすることによって
そのPCBエントリが確認される。したがって無効化オ
ペレーションは行われない。このように多重エントリP
CBによれば、影テイレクトリでのアドレスペアの変更
(その方法は、第6C図のステップ251からステップ
255に示す特定の無効化および後のアドレス入換オペ
レーションと同様である)の回数を少なくできるので、
その動作を円滑にすることができる。
(F) 親の一般化 以上に説明した実施例では、影デイレク) IJに記憶
され事前取出しに使用される親−子ペアは、プロセッサ
でアクセスされる情報ブロックのアドレスを、親および
子として有する。事前取出し機構が、命令を得るために
行われる記憶アクセスに限定される場合、以上の実施例
は好適である。
ところで、事前取出しが命令アクセスおよびデータ(オ
ペランド)アクセスの両方のために行われるような一般
的な場合は、単なる情報ブロックアドレスの代わりに特
別に導出された”組識別子”を親PAR−Aとして利用
すれば、オペランドアクセスのサブセラ)Kとっては、
さらに効率が良くなる。(命令アクセスの場合は、これ
まで説明したように、親は常に各自の情報ブロック7、
 トレスである)。
現に実行された命令がオペランドのアクセスを要求した
場合、n組識別子nは以下のようにして得られる。直前
のオペランドブロックアドレスの下位ビットと直前の命
令ブロックアドレスの下位ビットとを連結して混成親識
別子を形成する。この新たな組識別子の組み合わされた
長さは、もとの命令アドレスまだはオペランドアドレス
の長さに等しい。
影ディレクトリの第1段の表引きが遂行されるときは、
影ディレクトリのエントリが行われるのと同じ方法で現
命令ブロックアドレスおよび現オペランドブロックアド
レスから探索親識別子が必ず構成される。
1つのオペランドが、異なる第2のオペランドを有する
異なる命令によって使用される場合もある。たとえば命
令Xに対してオペランドのベアがAとBであり、命令Y
に対してオペランドのペアが5AとCである場合である
場合である。その場そ子Bの事前取出しのために、Xお
よびAのアドレスを組み合わせることによって組識別子
が生成され、子Cの事前取出しの、ために、Yおよびへ
のアドレスを組み合わせることによって組識別子が生成
される。以上のように場合によっては、同じオペランド
に対して異なる第2のオペランドBまたはCが事前取出
しされることもあるので、単に各自のオペランドのブロ
ックアドレスを親として利用しないで、組識別子を利用
するのである。
組識別子を得るだめの別の方法は、各自のブロックアド
レスの一部分と、現PSWかも選択されたビットグルー
プ、または、他の所定の標jjljl: (または状況
レジスタ)の現在の内容から選択されたビットグループ
を組み合わせることである。組識別子の情報源の最適な
選択は個々のアプリケーションに依存する。
〔発明の効果〕
以上説明したように本発明によれば、データ処理システ
ムにおけるキャッシュミスの発生確率は大幅に減少され
る。
【図面の簡単な説明】
第1図は本発明の詳細な説明するだめのブロック図、第
2A図および第2B図はキャッシュと実ディレクトリの
構造を示す図、第6図は影ディレクトリの構造を示す図
、第4図は影ディレクトリにおける1つの二ン) IJ
セルの詳細を示す図、第5図は影ディレクトリの内容を
更新するために用いられる事前取出し確認バッファの構
造を示す図、第6図は第6A図ないし第6C図のつなが
りを示す図、第6A図ないし第6C図はキャッシュへの
事前取出しおよび影ディレクトリの更新を含む実施例の
動作の手順を示す流れ図である。 第1図 第8図 第4図 第5図 第6A図 第1頁の続き 0発 明 者 ルドルフ・ナサン・し アメチトシャフ
エン ロー 〇発明者 フランク・ジョン・ス アメパラジオ ブン リカ合衆国ニューヨーク州スカースディル、インス・ド
24番地 リカ合衆国ニューシャーシー州ノース・バーゲン、セテ
イフォースス・ストリート14旙目

Claims (1)

    【特許請求の範囲】
  1. 主記憶装置、キャッシュ、およびディレクトリを含むデ
    ータ処理システムにおいて、前記主記憶装置から前記キ
    ャッシュへ情報ブロックを事前に取出すためのキャッシ
    ュ機構であって、親識別子のだめの第1段エントリ位置
    、および子アドレスのだめの関連する第2段エン) I
    J位置を含むエントリペアな複数個有する第2のディレ
    クトリを前記ディレクトリの他に設けて、順次的にアク
    セスされた任意の2つの情報ブロックのアドレスを、後
    の事前取出しオペレーションに備えて、前記第2のディ
    レクトリの1つのエントリペアのところに親識別子およ
    び子アドレスのペアとして記憶できるようにしたことを
    特徴とするキャッシュ機構。
JP60015651A 1984-04-06 1985-01-31 キヤツシユ機構 Granted JPS60214059A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US597801 1984-04-06
US06/597,801 US4807110A (en) 1984-04-06 1984-04-06 Prefetching system for a cache having a second directory for sequentially accessed blocks

Publications (2)

Publication Number Publication Date
JPS60214059A true JPS60214059A (ja) 1985-10-26
JPH0326863B2 JPH0326863B2 (ja) 1991-04-12

Family

ID=24392983

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60015651A Granted JPS60214059A (ja) 1984-04-06 1985-01-31 キヤツシユ機構

Country Status (5)

Country Link
US (1) US4807110A (ja)
EP (1) EP0157175B1 (ja)
JP (1) JPS60214059A (ja)
CA (1) CA1217870A (ja)
DE (1) DE3586635T2 (ja)

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7366676B2 (en) * 2001-05-29 2008-04-29 Mevis Breastcare Gmbh & Co. Kg Method and system for in-service monitoring and training for a radiologic workstation
US6895128B2 (en) * 2001-05-29 2005-05-17 Mevis Breastcare Gmbh & Co. Kg Method and computer system for prefetching of images
US7050611B2 (en) * 2001-05-29 2006-05-23 Mevis Breastcare Gmbh Co. Kg Method and computer system for screening of medical cases
JPS63240650A (ja) * 1987-03-28 1988-10-06 Toshiba Corp キヤツシユメモリ装置
US4972316A (en) * 1987-03-30 1990-11-20 International Business Machines Corporation Method of handling disk sector errors in DASD cache
US4980823A (en) * 1987-06-22 1990-12-25 International Business Machines Corporation Sequential prefetching with deconfirmation
US5210843A (en) * 1988-03-25 1993-05-11 Northern Telecom Limited Pseudo set-associative memory caching arrangement
US5003459A (en) * 1988-04-01 1991-03-26 Digital Equipment Corporation Cache memory system
US4992930A (en) * 1988-05-09 1991-02-12 Bull Hn Information Systems Inc. Synchronous cache memory system incorporating tie-breaker apparatus for maintaining cache coherency using a duplicate directory
US5226146A (en) * 1988-10-28 1993-07-06 Hewlett-Packard Company Duplicate tag store purge queue
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
US4967414A (en) * 1989-01-06 1990-10-30 International Business Machines Corp. LRU error detection using the collection of read and written LRU bits
US5146578A (en) * 1989-05-01 1992-09-08 Zenith Data Systems Corporation Method of varying the amount of data prefetched to a cache memory in dependence on the history of data requests
US5133060A (en) * 1989-06-05 1992-07-21 Compuadd Corporation Disk controller includes cache memory and a local processor which limits data transfers from memory to cache in accordance with a maximum look ahead parameter
WO1991004536A1 (en) * 1989-09-20 1991-04-04 Dolphin Server Technology A/S Instruction cache architecture for parallel issuing of multiple instructions
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
DE69129872T2 (de) * 1990-03-27 1999-03-04 Philips Electronics N.V., Eindhoven Datenverarbeitungssystem mit einem leistungsverbessernden Befehlscachespeicher
DE69128741T2 (de) * 1990-05-18 1998-07-16 Koninkl Philips Electronics Nv Mehrstufiger Befehlscachespeicher und Verwendungsverfahren dafür
US5293609A (en) * 1991-04-19 1994-03-08 International Business Machines Corporation Hit-density-based replacement for data cache with prefetching
DE4391002T1 (de) * 1992-03-06 1995-02-23 Rambus Inc Vor-heranholen in einen Cache-Speicher zum minimieren der Hauptspeicherzugriffszeit und der Cache-Speichergröße in einen Computersystem
US5319766A (en) * 1992-04-24 1994-06-07 Digital Equipment Corporation Duplicate tag store for a processor having primary and backup cache memories in a multiprocessor computer system
US5659713A (en) * 1992-04-24 1997-08-19 Digital Equipment Corporation Memory stream buffer with variable-size prefetch depending on memory interleaving configuration
JP3309425B2 (ja) * 1992-05-22 2002-07-29 松下電器産業株式会社 キャッシュ制御装置
US5381539A (en) * 1992-06-04 1995-01-10 Emc Corporation System and method for dynamically controlling cache management
US6453388B1 (en) 1992-06-17 2002-09-17 Intel Corporation Computer system having a bus interface unit for prefetching data from system memory
US5787475A (en) * 1992-07-21 1998-07-28 Digital Equipment Corporation Controlled prefetching of data requested by a peripheral
US5375223A (en) * 1993-01-07 1994-12-20 International Business Machines Corporation Single register arbiter circuit
US5584002A (en) * 1993-02-22 1996-12-10 International Business Machines Corporation Cache remapping using synonym classes
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
US5537573A (en) * 1993-05-28 1996-07-16 Rambus, Inc. Cache system and method for prefetching of data
JP3169155B2 (ja) * 1993-12-22 2001-05-21 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 情報をキャッシュするための回路
TW233354B (en) * 1994-03-04 1994-11-01 Motorola Inc Data processor with memory cache and method of operation
US5717942A (en) * 1994-12-27 1998-02-10 Unisys Corporation Reset for independent partitions within a computer system
US5603005A (en) * 1994-12-27 1997-02-11 Unisys Corporation Cache coherency scheme for XBAR storage structure with delayed invalidates until associated write request is executed
US5701313A (en) * 1995-02-24 1997-12-23 Unisys Corporation Method and apparatus for removing soft errors from a memory
US5511164A (en) * 1995-03-01 1996-04-23 Unisys Corporation Method and apparatus for determining the source and nature of an error within a computer system
US5778436A (en) * 1995-03-06 1998-07-07 Duke University Predictive caching system and method based on memory access which previously followed a cache miss
US5790823A (en) * 1995-07-13 1998-08-04 International Business Machines Corporation Operand prefetch table
US5694568A (en) * 1995-07-27 1997-12-02 Board Of Trustees Of The University Of Illinois Prefetch system applicable to complex memory access schemes
US5761740A (en) * 1995-11-30 1998-06-02 Unisys Corporation Method of and apparatus for rapidly loading addressing registers
US6055621A (en) * 1996-02-12 2000-04-25 International Business Machines Corporation Touch history table
US5724613A (en) * 1996-05-06 1998-03-03 Vlsi Technology, Inc. System and method for automatically enabling and disabling a prefetching capability
US5809566A (en) * 1996-08-14 1998-09-15 International Business Machines Corporation Automatic cache prefetch timing with dynamic trigger migration
US6279098B1 (en) 1996-12-16 2001-08-21 Unisys Corporation Method of and apparatus for serial dynamic system partitioning
US5960455A (en) * 1996-12-30 1999-09-28 Unisys Corporation Scalable cross bar type storage controller
US5875201A (en) * 1996-12-30 1999-02-23 Unisys Corporation Second level cache having instruction cache parity error control
US5970253A (en) * 1997-01-09 1999-10-19 Unisys Corporation Priority logic for selecting and stacking data
US5822766A (en) * 1997-01-09 1998-10-13 Unisys Corporation Main memory interface for high speed data transfer
US5860093A (en) * 1997-01-21 1999-01-12 Unisys Corporation Reduced instruction processor/storage controller interface
US6662216B1 (en) * 1997-04-14 2003-12-09 International Business Machines Corporation Fixed bus tags for SMP buses
US5943686A (en) * 1997-04-14 1999-08-24 International Business Machines Corporation Multiple cache directories for non-arbitration concurrent accessing of a cache memory
US6134643A (en) * 1997-11-26 2000-10-17 Intel Corporation Method and apparatus for cache line prediction and prefetching using a prefetch controller and buffer and access history
US6230260B1 (en) 1998-09-01 2001-05-08 International Business Machines Corporation Circuit arrangement and method of speculative instruction execution utilizing instruction history caching
US7069391B1 (en) 2000-08-30 2006-06-27 Unisys Corporation Method for improved first level cache coherency
US6928517B1 (en) 2000-08-30 2005-08-09 Unisys Corporation Method for avoiding delays during snoop requests
US6931490B2 (en) 2000-12-15 2005-08-16 Intel Corporation Set address correlation address predictors for long memory latencies
US6785797B2 (en) * 2000-12-19 2004-08-31 Intel Corporation Address predicting apparatus and methods
US6697925B1 (en) 2000-12-22 2004-02-24 Unisys Corporation Use of a cache ownership mechanism to synchronize multiple dayclocks
CN1537275A (zh) 2001-02-24 2004-10-13 �Ҵ���˾ 低等待时间存储器系统访问
ATE336746T1 (de) 2001-05-29 2006-09-15 Mevis Breastcare Gmbh & Co Kg Verfahren und vorrichtung zum screening von medizinischen fällen
US6785775B1 (en) 2002-03-19 2004-08-31 Unisys Corporation Use of a cache coherency mechanism as a doorbell indicator for input/output hardware queues
CA2406047A1 (en) * 2002-09-30 2004-03-30 Ali Solehdin A graphical user interface for digital media and network portals using detail-in-context lenses
US7093075B2 (en) * 2003-11-07 2006-08-15 International Business Machines Corporation Location-based placement algorithms for set associative cache memory
US7386679B2 (en) * 2004-04-15 2008-06-10 International Business Machines Corporation System, method and storage medium for memory management
US7337278B2 (en) * 2004-04-15 2008-02-26 International Business Machines Corporation System, method and storage medium for prefetching via memory block tags
US7716424B2 (en) * 2004-11-16 2010-05-11 International Business Machines Corporation Victim prefetching in a cache hierarchy
US7529891B2 (en) * 2005-09-19 2009-05-05 Microsoft Corporation Balanced prefetching exploiting structured data
JP4327237B2 (ja) * 2006-02-28 2009-09-09 富士通株式会社 プリフェッチ制御装置
CN101216781B (zh) * 2007-12-28 2011-03-23 中国科学院计算技术研究所 一种多处理器系统、装置及方法
US8458170B2 (en) * 2008-06-30 2013-06-04 Yahoo! Inc. Prefetching data for document ranking
CN101673247B (zh) * 2009-09-15 2011-10-19 威盛电子股份有限公司 内存管理系统与方法
US9396117B2 (en) * 2012-01-09 2016-07-19 Nvidia Corporation Instruction cache power reduction
US9547358B2 (en) 2012-04-27 2017-01-17 Nvidia Corporation Branch prediction power reduction
US9552032B2 (en) 2012-04-27 2017-01-24 Nvidia Corporation Branch prediction power reduction
US20150199276A1 (en) * 2014-01-13 2015-07-16 Samsung Electronics Co., Ltd. Pre-fetch confirmation queue
US12118106B2 (en) * 2019-02-27 2024-10-15 K2 Software, Inc. Methods and systems for extending row-level security policies
US12118236B2 (en) * 2021-08-30 2024-10-15 International Business Machines Corporation Dynamically allocating memory controller resources for extended prefetching

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3898624A (en) * 1973-06-14 1975-08-05 Amdahl Corp Data processing system with variable prefetch and replacement algorithms
US4157587A (en) * 1977-12-22 1979-06-05 Honeywell Information Systems Inc. High speed buffer memory system with word prefetch
US4195343A (en) * 1977-12-22 1980-03-25 Honeywell Information Systems Inc. Round robin replacement for a cache store
US4189770A (en) * 1978-03-16 1980-02-19 International Business Machines Corporation Cache bypass control for operand fetches
US4168541A (en) * 1978-09-25 1979-09-18 Sperry Rand Corporation Paired least recently used block replacement system
DE2853501A1 (de) * 1978-12-12 1980-06-26 Ibm Deutschland Speicherhierarchie mit ladungsverschiebungsspeicher
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
US4349874A (en) * 1980-04-15 1982-09-14 Honeywell Information Systems Inc. Buffer system for supply procedure words to a central processor unit
US4490782A (en) * 1981-06-05 1984-12-25 International Business Machines Corporation I/O Storage controller cache system with prefetch determined by requested record's position within data block
US4583165A (en) * 1982-06-30 1986-04-15 International Business Machines Corporation Apparatus and method for controlling storage access in a multilevel storage system
US4521851A (en) * 1982-10-13 1985-06-04 Honeywell Information Systems Inc. Central processor

Also Published As

Publication number Publication date
EP0157175B1 (en) 1992-09-16
EP0157175A2 (en) 1985-10-09
EP0157175A3 (en) 1989-05-03
DE3586635D1 (de) 1992-10-22
DE3586635T2 (de) 1993-04-08
US4807110A (en) 1989-02-21
CA1217870A (en) 1987-02-10
JPH0326863B2 (ja) 1991-04-12

Similar Documents

Publication Publication Date Title
JPS60214059A (ja) キヤツシユ機構
EP0695996B1 (en) Multi-level cache system
US5148538A (en) Translation look ahead based cache access
EP0036110B1 (en) Cache addressing mechanism
US8909871B2 (en) Data processing system and method for reducing cache pollution by write stream memory access patterns
US7426626B2 (en) TLB lock indicator
US8185692B2 (en) Unified cache structure that facilitates accessing translation table entries
JPH0364893B2 (ja)
JPH03141443A (ja) データ格納方法及びマルチ・ウェイ・セット・アソシアチブ・キャッシュ記憶装置
US8370604B2 (en) Method and system for caching attribute data for matching attributes with physical addresses
US5168560A (en) Microprocessor system private split cache tag stores with the system tag store having a different validity bit for the same data line
US6349362B2 (en) Scheme to partition a large lookaside buffer into an L2 cache array
US5515522A (en) Coherence index generation for use by an input/output adapter located outside of the processor to detect whether the updated version of data resides within the cache
EP0752662B1 (en) Method and apparatus for tagging a multi-way associative cache
JP4162493B2 (ja) 下位レベルのキャッシュを含むアクセスを促進するためのリバースディレクトリ
JP3929872B2 (ja) キャッシュメモリ、プロセッサ及びキャッシュ制御方法
EP0173909B1 (en) Look-aside buffer least recently used marker controller
US6574698B1 (en) Method and system for accessing a cache memory within a data processing system
US9053030B2 (en) Cache memory and control method thereof with cache hit rate
JP3078303B2 (ja) キャッシュメモリ制御回路
JP3824657B2 (ja) 1クロックサイクル内でデータをストアするよう構成されたデータメモリユニット、およびその動作方法
US20120102271A1 (en) Cache memory system and cache memory control method
JPS6324337A (ja) キャッシュ・メモリ管理方式
JPH0635801A (ja) 階層メモリ制御方式
KR19990068873A (ko) 캐쉬 메모리