JPH0743671B2 - キャッシュ・メモリ制御方式 - Google Patents

キャッシュ・メモリ制御方式

Info

Publication number
JPH0743671B2
JPH0743671B2 JP62159553A JP15955387A JPH0743671B2 JP H0743671 B2 JPH0743671 B2 JP H0743671B2 JP 62159553 A JP62159553 A JP 62159553A JP 15955387 A JP15955387 A JP 15955387A JP H0743671 B2 JPH0743671 B2 JP H0743671B2
Authority
JP
Japan
Prior art keywords
cache
data
cache memory
memory
block
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 - Lifetime
Application number
JP62159553A
Other languages
English (en)
Other versions
JPS638851A (ja
Inventor
アレン・バウム
ウイリアム・アール・ブリグ
マイケル・ジエイ・マホン
ルビイ・ベイルウ・リイ
ステイーブン・エス・ミユチニク
Original Assignee
横河・ヒユ−レツト・パツカ−ド株式会社
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 横河・ヒユ−レツト・パツカ−ド株式会社 filed Critical 横河・ヒユ−レツト・パツカ−ド株式会社
Publication of JPS638851A publication Critical patent/JPS638851A/ja
Publication of JPH0743671B2 publication Critical patent/JPH0743671B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • G06F12/127Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/6028Prefetching based on hints or prefetch instructions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】 〔発明の技術分野〕 本発明はコンピュータ・システムに関し、更に詳細に
は、キャッシュ・メモリの置換法を変えた方が効率的に
なる場合にはそのように変えるキャッシュ・メモリ制御
方式に関する。
〔従来技術およびその問題点〕
最近のコンピュータ・システムの多くは中央処理装置
(CPU)と主メモリを備えている。CPUが命令をデコード
し実行してデータを処理する速さは命令とオペランドを
主メモリからCPUに移すことができる速さより大きい。
この不整合から生ずる問題を軽減しようとして、コンピ
ュータ・システムの多くはCPUと主メモリとの間にキャ
ッシュ・メモリすなわちバッファを備えている。
キャッシュ・メモリは小形の高速バッファ・メモリであ
って、CPUが近い将来使用するであろうと信ぜられる主
メモリの内容の一部を一時的に保持するのに使用され
る。キャッシュ・メモリの主な目的はデータまたは命令
をフェッチするためメモリ・アクセスを行うのに必要な
時間を短くすることである。キャッシュ・メモリに入っ
ている情報は主メモリに入っている情報よりはるかに短
い時間でアクセスできる。したがって、キャッシュ・メ
モリを備えたCPUにおいては、命令やオペランドのフェ
ッチや格納を待つのに必要とする時間ははるかに少なく
てすむ。たとえば、典型的な大形高速コンピュータにお
いて、主メモリは30から600ナノ秒でアクセスすること
ができるが他方キャッシュ・メモリからは情報を50から
100ナノ秒で得ることができる。このような機械では、
キャッシュ・メモリは実質上実行速度を非常に増すが、
処理装置の性能は、キャッシュ・メモリのアクセス時間
のため命令実行速度の点で未だに制限されている。更に
一層命令実行の速さを増すにはキャッシュ・メモリのア
クセス時間を更に減らせばよい。
キャッシュ・メモリは一つ以上のデータ・ワードの多く
のブロックから構成されている。各ブロックには、それ
が主メモリのどのブロックのコピーであるかを一意に識
別するアドレス・タグが関連付けられている。処理装置
がメモリ参照を行うごとに、キャッシュはアドレス・タ
グの比較を行って要求されたデータのコピーがその内に
あるかを調べる。コピーがあれば、そのデータを供給す
る。コピーがなければ、主メモリから対応するブロック
を検索してキャッシュに格納されているブロックの一つ
を置き換えてから、データを処理装置に供給する。
キャッシュ・メモリの設計を最適化するには一般に4つ
の局面がある。
(1) メモリ参照の情報がキャッシュ内に見出される
確率(いわゆるヒット率)を最大にすること。
(2) 実際にキャッシュ内にある情報にアクセスする
のに必要な時間(アクセス時間)を最小にすること。
(3) キャッシュ・ミスによる遅れを最小にするこ
と。
(4) 主メモリを更新し、また多重キャッシュの整合
性を維持するためのオーバーヘッドを最小にすること。
これらの目的はすべて価格の制約のもとで且つパラメー
タ間の相互関係、たとえば、ヒット率とアクセス時間と
の間のトレード・オフを考慮して行わなければならな
い。
キャッシュ・メモリが大きくなれば、必要な情報がその
中に見出される確率が大きくなることは明らかである。
ただし、キャッシュの大きさはいくつかの理由から無制
限に拡張することはできない。その理由には、多くの機
械、特に小形機械では最も重要な理由である価格の問
題、キャッシュは基板や筺体に入りきらなければならな
いという物理的な大きさの問題、またキャッシュが大き
くなればアクセス時間が遅くなるという問題がある。
情報は一般にキャッシュから連想的に検索されてヒット
したか確認される。ただし、大きな連想メモリは非常に
高価で且つ幾分低速である。初期のキャッシュ・メモリ
では、CPUの要求があるごとに、全要素が連想的に検索
された。これにより、CPUに遅れずに従って行くのに必
要なアクセス時間にするために、キャッシュの大きさが
制限され、ヒット率はむしろ小さくなった。
もっと最近になって、キャッシュ・メモリはセットと呼
ばれるもっと小さな連想メモリのグループに組織化され
た。各セットには、セット・サイズと呼ばれる多数のロ
ケーションがある。Lセットに分割された、サイズmの
キャッシュの場合、各セットにはS=m/Lのロケーショ
ンがある。主メモリのアドレスがキャッシュにマップさ
れると、そのアドレスはLセットのどれかに現われる。
キャッシュのサイズを固定して考えた場合、各セットを
並列に捜索すればアクセス時間をL倍改善することがで
きる。しかしながら、必要な連想捜索を完了する時間は
やはり不必要に長すぎる。
今までのキャッシュ・メモリの動作は、特定のメモリ・
ロケーションが参照されたのだから、そのロケーション
およびこれに非常に近いロケーションは近い将来アクセ
スされる可能性が非常に大きい、という仮定に基いてき
た。これを局所性と呼ぶことが多い。局所性には二つの
局面、すなわち時間性質と空間的性質がある。短い時間
では、プログラムのメモリ参照はそのアドレス空間に非
一様的にばらつくが、アドレス空間中でよくアクセスさ
れる部分は長期間ほとんど同じままになっている。この
最初の性質は、一時的局所性(temporal locality)、
または時間による局所性と呼ぶが、近い将来使用するこ
とになる情報は既に使用されている可能性があるという
ことを意味する。この種の挙動は、データと命令を共に
再使用する、プログラム・ループのような、ある種のデ
ータ構造から予想することができる。第二の性質は、空
間的な局所性でる。この性質が意味しているのは、アド
レス空間中の使用される部分は、一般にそのアドレス空
間内の、かなりわずかな数の個々には連続しているセグ
メントから構成されているということである。したがっ
て、空間的局所性は近い将来のプログラムの参照の軌跡
はこの参照の現在の軌跡に近いものになりそうだという
ことを意味する。この種の挙動は一般的なプログラム構
造の知識から予想することができる。お互いに関連する
データ項目(変数、アレイ)は普通、いっしょに格納さ
れ、命令はほとんど遂次的に実行される。キャッシュ・
メモリは情報のうちの最近使用された部分を保持してい
るので、局所性は、必要な情報もキャッシュ内に見出さ
れることになりそうであるということを意味している。
Smith,A.J.、Cache Memories、ACM Computing Survey
s、14:3(1982年9月)、PP.473〜530を参照。
キャッシュが、上述のように、複数個のセットを備えて
いる場合には、キャッシュ・ミスが起こったとき、キャ
ッシュはいくつかの情報ブロックの中のどれを置換えて
主メモリから検索される新しいブロック用の空き間を作
るかを決めなければならない。ブロックを置換える時期
を決めるとき、キャッシュが違えば使用する置換方式も
異なる。
最も普通に使用される置換方式はLRU(leastrecently u
sed)である。LRU置換方式によれば、特定のインデクス
を持つブロックのグループごとに、キャッシュはこれら
のブロックが最後にアクセスされた順序を常に記録して
いるいくつかの状態ビットを維持している。ブロックの
一つがアクセスされるごとに、最も最近に使用されたこ
とを示す状態がそのブロックにセットされ、これにした
がって他のものが調節される。キャッシュ・ミスが起っ
たとき、主メモリから検索されるブロックを入れるため
の場所を作るために置換えられるブロックは、最後のア
クセスの時点が最も古いブロックである。
使用されるその他の置換方式は先入れ先出し(FIFO)と
ランダム置換えである。これらの動作はその命名法から
自明である。
しかしながら、上述の仮定とは逆に、すべてのコンピュ
ータ・データ構造が同種類のデータ局所性を備えている
わけではない。データ・スタックあるいはシーケンシャ
ル・データのような、或る単純な構造では、LRU置換方
式は最適ではない。このように、最も参照されると思わ
れるデータは最も最近参照されたものまたはそのデータ
に物理的アドレスで近隣しているものであるという基本
的仮定にしたがって構成されている、従来のキャッシュ
・メモリ構造では、標準データ置換方式から逸脱した方
式でのキャッシュ・メモリ動作のための機構は何も提供
されていない。
〔発明の目的〕
キャッシュ・メモリへのアクセス時間を最小にするのが
本発明の目的である。キャッシュ・メモリの動作に柔軟
性を与え、そうすべきだと保証されたときには、キャッ
シュが標準置換方式から一層効率的なデータ置換方式に
切替えることができるようにすることも本発明の目的で
ある。
〔発明の概要〕
本発明の一実施例によれば、本発明のこれらのおよび他
の目的は、キャッシュ・メモリに提示される各命令にキ
ャッシュ制御指示子(cache control specifier)を入
れることにより達成される。格納命令またはロード命令
中のキャッシュ制御指示子が与えられたとき、キャッシ
ュは命令内のキャッシュ制御指示子を識別し、いくかの
置換方式の一つをこのキャッシュ制御指示子によって指
示されたように実行する。
命令にキャッシュ制御指示子を埋込むことにより、キャ
ッシュはスタックやシーケンシャル・データ構造を適切
に処理することができ、これによりキャッシュ性能が増
す。キャッシュはまた主メモリからデータを何時プリフ
ェッチしておくのが有利であるかに関して「ヒント」を
受取ることができる。
〔実施例〕
第1図はキャッシュ・メモリを組込んだコンピュータ・
システムを示す。CPU11は主メモリ13および入出力チャ
ンネル(I/O)15とバス17を経由して通信する。CPU11は
データを処理する命令をフェッチし、デコードし、実行
する処理装置19を備えている。上述のとうり、コンピュ
ータ・システムが使用する命令およびデータを全てCPU1
1に格納するのは実際的ではないから、データと命令
は、主メモリ13に格納され、プログラムまたはルーチン
の実行中要求されると処理装置19に移され、プログラム
またはルーチンが終了してから主メモリ13に戻される。
主メモリ13へのアクセスは処理装置19の動作と比較する
と比較的低速である。処理装置19が命令またはデータが
必要とするたびに主メモリのアクセスが完了するのを待
たなければならない場合には、その実行速度はかなり遅
くなる。したがって、アクセス時間を処理装置19の必要
とするものに一層よく適合させるために、バッファ・メ
モリすなわちキャッシュ・メモリ21は限定された数の命
令とデータを格納している。
キャッシュ・メモリ21は主メモリ13よりはるかに小さい
から、アクセス速度を速くするように経済的に作り上げ
ることができる。それにもかかわらず、キャッシュ・メ
モリへのアクセス時間とキャッシュの大きさとの間には
やはりトレード・オフが存在する。上述のように、キャ
ッシュ・メモリが大きくなるにしたがって一層高価にな
り、またキャッシュ・メモリへのアクセス時間が増大す
る。したかって、キャッシュ・メモリ21を非常に大きく
してヒット率を高くした場合には、主メモリへの参照は
非常に少くなるが、処理装置は、たとえキャッシュへヒ
ットした場合でも、アクセス時間の増大により遅くなる
ことがある。したがって所与の大きさと構造のキャッシ
ュ・メモリに関してヒット率を最大にするのが望まし
い。
本発明の方法をもっと完全に説明するには、キャッシュ
・メモリ21の構造を理解することが必要である。第2図
は複数のセットA〜Nを備えたキャッシュ・メモリを示
す。各セットはロケーションまたはブロックのアレイか
ら成り、これをインデクス31と記してある。各ブロック
にはデータ33と主メモリ13の中の同じデータのコピーの
アドレスに対応するアドレス・タグ35が入っている。好
ましい実施例では、データ33の各ブロックには4ワード
入っている。この4ワードのブロックはデータがキャッ
シュ・メモリ21と主メモリ13との間で交換される単位で
あり、またデータがキャッシュ21でインデクスされ、取
出され、置換えられる単位でもある。ブロックに入れる
ワード数はもっと少く、あるいはもっと多くすることが
できる。これらパラメータはメモリ装置の設計選択の問
題であり、本発明の原理は可能な広範囲の構成に適用す
ることができる。データ33とアドレス・タグ35に加え
て、キャッシュ・メモリ内の各ブロックはそれぞれ2つ
の1ビット状態フラグ「有効(valid)」と「書込み(d
irty)」が対応付けられている。キャッシュ・メモリに
はまだキャッシュ・メモリ内の同じインデクスに対応す
るブロックの全てに対する一群のLRU状態ビットを備え
ている。
有効ビット37はブロックが「有効」データ、すなわち、
最新のデータを含んでいる場合にかぎりセットされる。
書込ビット38がセットされるのは、対応するブロックが
キャッシュ・メモリ内に移された以降、処理装置19がキ
ャッシュ・メモリ内のそのアドレスに書込みを行なった
場合である。処理装置19がキャッシュ・メモリ21に書込
みを行なうごとにこのキャッシュ・メモリ21が主メモリ
13を更新しなければ、キャッシュ・メモリは主メモリが
同じブロック・アドレスに対して持っているよりももっ
と最近版のデータを持っている。書込みビット38がセッ
トされている場合には、キャッシュ・メモリ21の中の対
応するブロックがキャッシュ・メモリからスワップ・ア
ウトされるとき、このブロックに現在入っているデータ
を主メモリ17に書き込み戻すことにより主メモリを更新
しなければならないことを示している。
LRU状態ビット39は対応するブロックが最近最も長い間
使用されていなかった、すなわち置換えの対象として最
も適切であるかどうかを識別する。上に述べた通り、LR
U置換方式によれば、キャッシュ内のブロックの一つに
アクセスするごとに、最も最近使用されたことを示す状
態がそのブロックのLRU状態ビットにセットされ、他の
もののLRU状態ビットがこれにしたがって調節される。
処理装置19がメモリ参照を行うたびに、キャッシュ・メ
モリ21を捜索して要求データのコピーが入っているか調
べる。入っていなければ、データを主メモリ13からブロ
ックとして取出し、処理装置19に供給し、キャッシュ21
に既に入っているブロックの一つと置換えて格納しなけ
ればならない。もし置換えられるブロックの書込みビッ
トがセットされている、すなわち、処理装置19がキャッ
シュ・メモリ中のそのブロックに書込みを行なっていれ
ば、そのブロックを主メモリ13の適切なアドレスに書き
戻して主メモリを更新し、データの完全性を維持しなけ
ればならない。
本発明によれば、第3図に示す通り、処理装置19が実行
する命令で、キャッシュ・メモリ21が処理しなければな
らないデータ要求を発生する命令は、キャッシュ制御指
示子を含むいくつかのビットを備えている。キャッシュ
制御指示子は命令が参照するデータの種類についてキャ
ッシュ・メモリに知らせ、したがって複数の置換方式の
どれをキャッシュ・メモリ21のデータの置換えに使用す
べきかを、キャッシュ・メモリに知らせるようにコード
化される。
処理装置19が発生する命令41は、それを用いてアドレス
・タグ35′(これは対応するタグ35に関してキャッシュ
21を捜索するのに使用される)とインデクス31′(これ
は、対応するタグ35をキャッシュ21中で探すのに使用さ
れる)を計算することができる情報と、命令コード・フ
ィールド43(これはキャッシュ・メモリ21における動作
を制御するのに使用される)と、キャッシュ・メモリか
らデータを交換するのに使用する方法を規定するキャッ
シュ制御指示子45を含んでいる。
本発明の好ましい実施例においては、命令はこのような
キャッシュ制御指示子4つをコード化することができ
る。これらは通常データ、スタック・データ、シーケン
シャル・データ、およびプリフェッチである。キャッシ
ュはこれらキャッシュ制御指示子に応答し、識別された
データの種類に最も適する置換方式を選択する。
通常データの場合には、通常キャッシュ制御指示子が使
用され、キャッシュ・メモリは標準置換方式、この場合
はLRU、にしたがって動作する。使用することができる
他の標準置換方式はたとえば先入れ先出し(FIFO)置換
えやランダム置換えである。
スタック・キャッシュ制御指示子はメモリ内の低位アド
レスから上へ成長するスタック・データ構造に対して使
用される。その一例は第4図に示す後入れ先出し(FIF
O)スタック構造47である。第4図に示すように、スタ
ック・ポインタ49がスタックの最上部のアドレスを常に
指している。スタック・ポインタ49より下の、領域51内
にあるアドレスのデータは有効データである。スタック
・ポインタ49より上の、領域53内にあるアドレスのデー
タは無効である。処理装置19は現在有効であると考えら
れるデータ、すなわちスタック・ポインタ49より下の、
データにアクセスすることができる。スタック47内のア
ドレスはキャッシュ・メモリ21内のインデクス付きロケ
ーション31にマップされ、第4図に示す二重線55による
分割で示したように、キャッシュ・メモリ21内のブロッ
クに対応するブロックに分割することができる。
スタック47への参照がブロック内の最初のワードに対す
る格納であり、しかもキャッシュ・ミスが起った場合に
は、新しいブロックをスタック上およびキャッシュ・メ
モリ内に割当てなければならない。スタックに割当てら
れたブロックでは、そこに何か新しいデータが書き込ま
れる前に古いデータが読み出されることはないと想定で
きる。したがって、この場合、主メモリからデータを取
出してこのスタックに新たに割り当てられたキャッシュ
・メモリ上のブロックに書き込む必要はない。キャッシ
ュ・メモリはアドレス・タグを初期設定し、このブロッ
クを最も最近使用されたブロックであるとマークし、格
納を行う。加えて、起り得る防護侵犯(security viola
tion)を防ぐため、ブロックは格納を行う前に定数また
はでたらめなデータで初期化されるようにする。
スタック47への参照が、あるブロック内の最初のワード
のロード、つまりポップアップである場合には、このポ
ップアップ操作によりスタック47の最上部は1ワード後
退するので、その直前までスタックの最上部がその最初
のワードにあったブロックには有効なデータはなくな
る。よって、このブロックに対するキャッシュ・メモリ
の割当ては必要ないとすることができる。したがって、
キャッシュ21は、スタックへのこのようなロード参照が
あった場合には、通常のロード操作を行なうとともに、
このブロックの状態を、そこには書込みが行われておら
ずまた置換に最適であること、つまり最近最も長い間ア
クセスされていないというようにセットする。
標準置換方式をスタック用のものに変更すれば、無効な
スタック・データをキャッシュに移すことが回避され、
したがって、先ず第1にはデータをキャッシュに移すの
に必要な時間が節約され、そればかりでなく、後にこれ
をキャッシュから取除きアドレスを初期設定するのに必
要な時間も節約される。
シーケンシャル・キャッシュ制御指示子はブロック移動
またはテキストの走査に用いられるもののようなシーケ
ンシャル・データ・アクセス・パターンに使用される。
ロードまたは格納動作がブロックの最後のアドレスを参
照するときは、それは今後しばらくの間ではそのブロッ
クへの最後の参照となると見なされる。したがって、キ
ャッシュ・メモリは通常のロードまたは格納を行い、ま
たこのブロックは置換えに最も適格であるとマークされ
る。格納命令がブロック内の最初のワードにアクセス
し、且つキャッシュ・ミスが起った場合には、このブロ
ック全体には今後重ね書きが行なわれ、それ故このブロ
ックを主メモリ13から読取る必要は無いと見なされる。
代りに、あるブロックがキャッシュ内で開放され(free
d up)、安全防護のために初期設定され、最も最近使用
されたこと、有効および書込みがマークされる(スタッ
ク格納と同じ)。オペレーティング・システムは、他の
データがシーケンシャル・データ構造の最後のブロック
を共有しないようにしなければならない。さもなけれ
ば、この手順によりデータが失われてしまうことがあ
る。
プリフェッチ・キャッシュ制御指示子は、ブロックへの
ロードまたは格納において、次のブロックが近い将来ア
クセスされる可能性がかなり高いことを示すのに使用さ
れる。したがってキャッシュ・メモリは通常のロードま
たは格納を行い、次のブロックが既にキャッシュ・メモ
リに入っていなければそれを取出す。キャッシュ・メモ
リがどう設計されているかにより、プリフェッチは指示
子を有するブロックの始まり近くで、中間で、あるいは
終りで生ずる。
〔発明の効果〕
以上説明したように、本発明によれば、使用されるデー
タ構造やプログラムの性質に基いて最適なキャッシュ・
メモリ置換方式を動的に選択できるので、ヒット率が向
上するという効果がある。
【図面の簡単な説明】
第1図は本発明を適用することができるコンピュータ・
システムの一例を示す図、第2図は第1図中のキャッシ
ュ・メモリの構成例を示す図、第3図は本発明を適用し
たキャッシュ・メモリの動作を説明する図、第4図は本
発明の動作をスタックに関して説明するための図であ
る。 11:CPU,13:主メモリ,19:処理装置,21:キャッシュ・メモ
リ,41:命令,45:キャッシュ制御指示子。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ルビイ・ベイルウ・リイ アメリカ合衆国カリフオルニア州クーパテ イノ・ヘニイ・クリーク・プレイス 10382 (72)発明者 ステイーブン・エス・ミユチニク アメリカ合衆国カリフオルニア州サン・フ ランシスコ・ダイアモンド・ハイツ・ブー ルバード 5007 (56)参考文献 特開 昭58−159284(JP,A) 特開 昭61−80440(JP,A) 特開 昭60−43758(JP,A) 特開 昭59−180876(JP,A)

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】データ参照を行う命令語中に、当該命令語
    によるデータ参照のタイプを表わすキャッシュ制御指示
    子を有し、 前記キャッシュ制御指示子の値に基づいて当該命令語に
    よるデータ参照によって起こるキャッシュ・メモリのブ
    ロック置換方式を選択する キャッシュ・メモリ制御方式。
  2. 【請求項2】前記データ参照のタイプは、通常のデータ
    参照とスタック・データ参照を含むことを特徴とする特
    許請求の範囲第1項記載のキャッシュ・メモリ制御方
    式。
  3. 【請求項3】前記データ参照のタイプは、通常のデータ
    参照とシーケンシャル・データ参照を含むことを特徴と
    する特許請求の範囲第1項記載のキャッシュ・メモリ制
    御方式。
JP62159553A 1986-06-27 1987-06-26 キャッシュ・メモリ制御方式 Expired - Lifetime JPH0743671B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US87964986A 1986-06-27 1986-06-27
US879649 1986-06-27

Publications (2)

Publication Number Publication Date
JPS638851A JPS638851A (ja) 1988-01-14
JPH0743671B2 true JPH0743671B2 (ja) 1995-05-15

Family

ID=25374588

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62159553A Expired - Lifetime JPH0743671B2 (ja) 1986-06-27 1987-06-26 キャッシュ・メモリ制御方式

Country Status (4)

Country Link
EP (1) EP0250702B1 (ja)
JP (1) JPH0743671B2 (ja)
CA (1) CA1279731C (ja)
DE (1) DE3787129T2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69224084T2 (de) * 1991-01-15 1998-07-23 Koninkl Philips Electronics Nv Rechneranordnung mit Mehrfachpufferdatencachespeicher und Verfahren dafür
JP2618149B2 (ja) * 1991-04-22 1997-06-11 インターナショナル・ビジネス・マシーンズ・コーポレイション キャッシュ内のデータ記憶スペースを管理する方法及びキャッシュ内でページ置換を行う装置
EP0752644A3 (en) * 1995-07-07 2001-08-22 Sun Microsystems, Inc. Memory management unit incorporating prefetch control
EP0752645B1 (en) * 1995-07-07 2017-11-22 Oracle America, Inc. Tunable software control of Harvard architecture cache memories using prefetch instructions
US5991854A (en) * 1996-07-01 1999-11-23 Sun Microsystems, Inc. Circuit and method for address translation, using update and flush control circuits
JP2004303232A (ja) * 2003-03-20 2004-10-28 Matsushita Electric Ind Co Ltd データメモリキャッシュ装置及びデータメモリキャッシュシステム
US7930484B2 (en) * 2005-02-07 2011-04-19 Advanced Micro Devices, Inc. System for restricted cache access during data transfers and method thereof
US7673105B2 (en) 2005-06-27 2010-03-02 Ab Inition Technology LLC Managing memory pages
US8606998B2 (en) 2006-08-24 2013-12-10 Advanced Micro Devices, Inc. System and method for instruction-based cache allocation policies
EP2192493A1 (en) * 2008-11-28 2010-06-02 ST Wireless SA Method of paging on demand for virtual memory management in a processing system, and corresponding processing system
JP5251689B2 (ja) * 2009-04-02 2013-07-31 富士通株式会社 コンパイラプログラムおよびコンパイラ装置

Family Cites Families (5)

* 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
US4530055A (en) * 1982-03-03 1985-07-16 Sperry Corporation Hierarchical memory system with variable regulation and priority of writeback from cache memory to bulk memory
JPS58159284A (ja) * 1982-03-17 1983-09-21 Nec Corp バツフアメモリ制御方式
JPS59180876A (ja) * 1983-03-31 1984-10-15 Fujitsu Ltd メモリ・アクセス制御方式
JPS6180440A (ja) * 1984-09-28 1986-04-24 Fujitsu Ltd バツフアメモリ制御方式

Also Published As

Publication number Publication date
CA1279731C (en) 1991-01-29
EP0250702B1 (en) 1993-08-25
EP0250702A2 (en) 1988-01-07
DE3787129T2 (de) 1994-03-31
DE3787129D1 (de) 1993-09-30
JPS638851A (ja) 1988-01-14
EP0250702A3 (en) 1990-04-25

Similar Documents

Publication Publication Date Title
US4928239A (en) Cache memory with variable fetch and replacement schemes
US6640283B2 (en) Apparatus for cache compression engine for data compression of on-chip caches to increase effective cache size
US5694568A (en) Prefetch system applicable to complex memory access schemes
US4774654A (en) 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
US5091851A (en) Fast multiple-word accesses from a multi-way set-associative cache memory
US7167954B2 (en) System and method for caching
US5353426A (en) Cache miss buffer adapted to satisfy read requests to portions of a cache fill in progress without waiting for the cache fill to complete
US5802572A (en) Write-back cache having sub-line size coherency granularity and method for maintaining coherency within a write-back cache
US5958040A (en) Adaptive stream buffers
US5530941A (en) System and method for prefetching data from a main computer memory into a cache memory
US5689679A (en) Memory system and method for selective multi-level caching using a cache level code
EP1149342B1 (en) Method and apparatus for managing temporal and non-temporal data in a single cache structure
EP0695996A1 (en) Multi-level cache system
EP0612013A1 (en) Combination prefetch buffer and instruction cache cross references to related applications
JPH06348595A (ja) キャッシュ装置
JPH07253926A (ja) キャッシュ・ミスによる時間ペナルティ減少方法
US7237067B2 (en) Managing a multi-way associative cache
EP0604015A2 (en) Cache control system
WO2001088716A1 (en) Method for controlling cache system comprising direct-mapped cache and fully-associative buffer
JPS638848A (ja) データ取り出し方法
JPH0743671B2 (ja) キャッシュ・メモリ制御方式
JPH06236353A (ja) マルチプロセッサ・コンピュータ・システムのシステム・メモリの並行性を増大する方法およびシステム
US7219197B2 (en) Cache memory, processor and cache control method
EP1030243A1 (en) Optimized hardware cleaning function for virtual index virtual tag data cache
US5926841A (en) Segment descriptor cache for a processor

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080515

Year of fee payment: 13