JPH0363852A - キャッシュ・ミス予測の方法および装置 - Google Patents

キャッシュ・ミス予測の方法および装置

Info

Publication number
JPH0363852A
JPH0363852A JP2153812A JP15381290A JPH0363852A JP H0363852 A JPH0363852 A JP H0363852A JP 2153812 A JP2153812 A JP 2153812A JP 15381290 A JP15381290 A JP 15381290A JP H0363852 A JPH0363852 A JP H0363852A
Authority
JP
Japan
Prior art keywords
address
pattern
miss
addresses
cache
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
JP2153812A
Other languages
English (en)
Other versions
JPH0529939B2 (ja
Inventor
Charles P Ryan
チャールズ・ピー・ライアン
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.)
Bull HN Information Systems Inc
Original Assignee
Bull HN Information Systems Inc
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 Bull HN Information Systems Inc filed Critical Bull HN Information Systems Inc
Publication of JPH0363852A publication Critical patent/JPH0363852A/ja
Publication of JPH0529939B2 publication Critical patent/JPH0529939B2/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F9/383Operand prefetching
    • 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
    • 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
    • G06F9/383Operand prefetching
    • G06F9/3832Value prediction for operands; operand history buffers
    • 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/6026Prefetching based on access pattern detection, e.g. stride based prefetch

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 (技術分野) この発明は、キャッシュ・メモリーの特徴を有するデー
多処理システム技術に関し、特にオペランド呼出しに対
するメモリーのキャッシュ・ミスを予期して、この情報
を用いてデータを主記憶装置からキャッシュ・メモリー
へ転送することによりキャッシュ・ミス率を低下させる
ための方法および装置に関する。
(背景技術) システムの作動を増速するため主記憶装置の情報の動的
サブセットを保持するように、プロセッサと主記憶装置
間に高速キャッシュ・メモリーを使用する手法は当接術
においては周知である。要約すれば、キャッシュは、主
記憶装置情報の断片がこれから行う動作においてプロセ
ッサが要求する命令および(または)データを含む機会
が多いように選択され更新された前記情報の断片の動的
に変更可能な集まりを保持する。もし与えられた操作に
おいてキャッシュの「ヒツト」があるならば、この情報
は、主記憶装置を同じ情報を得るためアクセスしなけれ
ばならない場合よりも遥かに早くプロセッサが入手でき
る。
その結果、多くの高性能なデータ処理システムにおいて
は、「キャッシュ ミス率」はシステムの実行速度に対
する主な制約の1っとなり、従って、できるだけ低く抑
えるべきである。
低いキャッシュ・ミス率を得る秘訣は、明らかに如何な
る瞬間においても主記憶装置からキャッシュに入れられ
るべき情報を慎重に選択することである。キャッシュに
一時的に駐在するための命令ブロックを選択するいくつ
かの手法があり、プログラミングにおける命令の多少と
もリニア的使用がこれらの手法を統計的に有効なものに
する。しかし、与えられた瞬間にキャッシュ・メモリー
に駐在させるオペランド情報を選択することは極めて非
効率的であり、一般にキャシュ・ミスのアドレスを含む
1つ以上の隣接するブロックを転送することに限定され
ていた。このような試みは、キャッシュ・ミス率を僅か
に低下させるに過ぎず、またキャッシュの能力の非効率
的な使用ともなる。
このため、当業者は、キャッシュ・ミス率を著しく低下
させるような方法でキャッシュ・メモリーに一時的に格
納するためのオペランド情報を選択する手段を提供する
ことが非常に望ましいことを理解し、本発明が目的とす
るのはこのことである。
(発明の目的) 従って、本発明の広い目的は、データ処理システムにお
ける改善されたキャッシュ・メモリーの提供にある。
本発明の別の目的は、作動における改善されたキャッシ
ュ・ミス率を有することを特に特徴とするキャッシュ・
メモリーの提供にある。
本発明の更に特定の目的は、キャッシュ・ミスを有効に
予測するための回路を含むキャッシュ・メモリーの提供
にある。
別の特質においては、本発明の目的は、オペランドに対
するキャッシュ・ミス率が著しく低下するキャッシュ・
メモリー選択プロセスの提供にある。
(発明の要約) 要約すれば、本発明の上記および他の目的は、最近のキ
ャッシュ・ミスを記憶してその内のパターンを探すキャ
ッシュ・メモリーにおける特殊目的の装置により遠戚さ
れる。次に、検出されたパターンは、主記憶装置から予
測されるキャッシュ・ミスを含むブロックを先取りする
ことにより、連続するキャッシュ・ミスを予見するため
使用される。
本発明の主題は、本明細書の終結部分に特に指摘され明
瞭に主張される。しかし、本発明は、構成ならびに作動
方法の双方に関して、以降の記述を頭書の特許請求の範
囲および添付図面に関して参照することにより最もよく
理解できよう。
(実施例) まず第1図においては、キャッシュ・メモリーの特徴を
含むデータ処理システムの高レベルのブロック図が示さ
れている。当業者は、このブロック図が例示に過ぎない
こと、およびその多くの変形が実際に用いられているこ
とを理解されよう。その機能は、単に本発明を論述する
ためのfff況を提供するに過ぎない。このため、例示
的なデータ処理システムは、所要の手順を実行するため
中央処理装置により要求されるデータ信号グループ(即
ち、命令およびオペランドを含む情報ワード)を格納す
る主記憶装置13を含んでいる。中央処理装置f14に
より短い期間に要求される大きな可能性を持つ信号グル
ープが、主記憶装置13(あるいは、ユーザ装置15)
からシステム・インターフェース装置L1を介してキャ
ッシュ・メモリー装置12へ転送される。(当業者は、
あるデータ処理システムのアーキテクチャにおいては、
これら信号グループがシステム・パス上に送出されるこ
とにより、システム・バスと相互に作用する各構成要素
伍に1つのインターフェース装置を必要とすることを理
解しよう。)この信号グループは、中央処理袋rl l
 4により要求されるまで、キャッシュ・メモリー装置
12に記憶される。適正な信号グループを検索するため
、典型的には(取出されるべき信号グループを識別する
ため中央処理装置14により使用される)仮想アドレス
を、この信号グループの識別のためデータ処理システム
の残部によりこの信号グループのため使用される実アド
レスへ変換するためアドレス変換装置16が含まれる。
キャッシュ・メモリー12に一時的に記憶される情報は
、個々の部分に記憶されあるいは均等に記憶される、命
令とオペランドの双方を含み得る。
本発明の実施に際して、命令およびオペランドは、オペ
ランド情報に関してのみ本発明の作動を生じるよう意図
される限り、キャッシュ・メモリー12における別個の
(少なくとも、混合アドレスを持たない意味において)
格納場所に記憶されることが望ましい。
本発明は、オペランド呼出しから結果として生じるキャ
ッシュ・ミスにおける検出されたパターンを認識してこ
れを利用することに基く。
極端な事例においては、3つのFJII接するミスAB
Cが実際にDが次に続くアドレスである連続的なオペラ
ンド・アドレスである検出パターンについて考えよう。
これは、単なる事例としては、単一のデータ列における
連続的な行を逐次アクセスすることを求めるデータ操作
プロセスにおいて起生し得る。もしこのパターンが検出
されると、信号グループDもまたアクセスされ、そして
すぐにキャッシュ・メモリー装置12に対するその先取
りが適切であるように強調される。
本発明の基本的な原理は、第2図のフロー図に示されて
いる。プロセッサ(あるいは池のシステム装置)が1つ
のオペランドを求める時、このオペランドがその時キャ
ッシュに存在するかどうかについて判定がなされる。
もしそうであれば、キャッシュ・ヒツト(即ち、キャッ
シュ・ミスなし)となり、オペランドが要求側のシステ
ム装置へ送られ、次のオペランド要求が待機される。し
かし、もしキャッシュ・ミスが生じるならば、この要求
は実際には(遥かに遅い)主記憶装置へ再び送られる。
当業者は、第2図のこの点の記述が一般にキャッシュ・
メモリーの動作を説明していることを理解されよう。し
かし、本発明においては、キャッシュ・ミスのアドレス
は意味を持つ。
従って、このアドレスは、以下において更に詳細に述べ
るミス・スタックの最前部に置かれる。
このミス・スタック(最近のキャッシュ・ミスのアドレ
スの履歴を逆の順序で含む)は、次に、いくつかのパタ
ーンの第1のものが存在するかどうかを判定するため調
べられる。この最初の1ノ パターンは、単なる事例として、最近のキャッシュ・ミ
スにおける隣接するアドレスであろう。
この最初のパターンが検出されなければ、別のパターン
が試みられる。再び単なる事例として、2番目のパター
ンは、2つの離れた場所に位置する連続的なアドレスを
求める最近のキャッシュ・ミスであり得る。パターンの
一致がない限り、本プロセスはパターンのレパートリ全
体にわたり継続する。もしこのレパートリにおける全て
のパターンが調べられた時一致が存在しなければ、新し
いプロセスを構成するため次のキャッシュ・ミスが待機
される。
しかし、もしレパートリにおけるパターンが検出される
と、ミス・スタックにおける情報および検出されたパタ
ーンから予測的なアドレスが計算される。次に、この予
測的なアドレスは、この予測アドレスにより識別される
信号グループを主記憶装置からキャッシュに先取りする
ため用いられる。先に述べた事例においては、もし1つ
のパターンが隣接するオペランドのキャッシュ・ミスの
オペランド・アドレスABCが連続かつ隣接するならば
、予測アドレスDの値はC+1となろう。
ミス・スタックの統計的な一貫性を最適化するために、
予測アドレス自体がスタックの最前部に置かれるが、こ
れはもしこの予測アドレスが本発明に従って先取りされ
なかったならば、それ自体が(高い確率を以て)キャッ
シュ・ミスの主因であったためである。
作動の速度が本命であるため、本発明は、ファームウェ
ア制御が考えられるが、ハードワイヤド形態(例えば、
ゲート・アレイ)で実施されることが望ましい。最初に
、第3図に示される比較的簡単なハードワイヤド構成に
ついて考察しよう。ミス・スタック20は16個の最も
後のキャッシュ・ミス・アドレスを保持し、最も古いも
のはアドレスPとして識別されスタックに対するエント
リが最初になされる。4つの4人力の電子スイッチ2■
、22.23.24が、下記の如く回線25を介してシ
フト・パターン信号により同期して駆動される。即ち、
最初の状態において、アドレスA、B、C,,I)がス
イッチの各出力に現れ、2番目の状態で、アドレスB、
D、F。
tiが出力に現れ、3番目の状態において、アドレスC
,F、■、Lが出力に現れ、4番目の状態においてアド
レスD、II、L、Pが出力に現れる。減算回路26.
27.28は、入力として電子スイッチ21.22.2
3.24の各出力を受取るように接続され、その結果、
減算回路26からの出力が電子スイッチ21の出力マイ
ナス、スイッチ22の出力、減算回路27からの出力が
スイッチ22の出力マイナス、スイッチ23の出力、お
よび減算回路28の出力がスイッチ23の出力マイナス
、スイッチ24の出力となるようにする。
減算回路26からの出力は、その他の入力が電子スイッ
チ21の出力により駆動された加算回路31の1つの入
力に加えられる。更に、減算回路26からの出力はまた
、コンパレータ回路29の1つの入力に加えられる。減
算回路27からの出力は、コンパレータ回路29の池の
入力に加えられ、またその他の入力が減算回路28の出
力により駆動される別のコンパレータ回路30の1つの
入力にも加えられる。コンパレータ回路29.30から
の出力はそれぞれ、先取り可能化信号を選択的に発する
ANDゲート32の2つの入力へ加えられる。
次に第3図に示される回路の作動について考察しよう。
前に述べたように、ミス・スタック20は、最後の16
個のキャッシュ・ミス・アドレスを保持し、アドレス八
が最も後のものである。アドレスAにより識別された信
号グループに対する要求が結果としてキャッシュ・ミス
をもたらす時、回路の作動はミス・スタックに駐在する
アドレス間のパターンを探すように構成される。電子ス
イッチ2122.23.24は、アドレスAがスイッチ
21の出力へ送られ、アドレスBがスイッチ22の出力
に現れ、アドレスCがスイッチ23の出力に現れ、アド
レスDがスイッチ24の出力に現れるように、それらの
最初の状態にある。もしAとB、BとC1およびCと0
間の差が全て等しくなければ、減算回路26.27.2
8からの全ての出力が等しくならず、そのためコンパレ
ータ回路29.30の一方もしくは両方が比較を生ぜず
、 ANDゲート32は使用可能状態にならず、このため「
パターンの一致が見当たらない」条件を表示する。
次いで、スイッチは、アドレスBSDSF、Hがそれら
の各出力に現れる第2の状態にされる。
この時、(B−D)= (D−F)= (F−H)、即
ち、順次のパターンがアドレス変位において検出された
ものとしよう。その結果、コンノ(レータ回路29.3
0の双方が比較信号を生じてANDゲート32を完全に
使用可能状態にし、先取り可能化信号を生じることにな
る。同時に、加算回路31からの出力が予測アドレス(
B+(B−D))となる。この予測アドレスが検出され
たパターンを拡張しこれにより先取り信号グループがプ
ロセッサにより要求される可能性を増加し、キャッシュ
・ミス率を低下させるこが判るであろう。
もしパターンがアドレスの組合わせB D F I(に
おいて検出されなかったならば、電子スイッチはその次
の状態にされアドレスの組合わせCFILを調べ、次い
で必要に応じてアドレスの組合わせD I−I L P
≦妄陣れることになろう。
もしパターンが全く検出されなかったならば、回路は、
ミス スタックの最前部に新しいエントリを生じる次の
キャッシュ・ミスを待ち、パターンの一致探索が再び始
められる前にアドレスPをスタックの最下部から押し出
す。
次に第4図に示したやや複雑かつ強力な本発明の実施例
について考察しよう。電子スイッチ4142.43.4
4は、図示した事例の構成におけるミス・スタック40
に記憶された如き最も後のキャッシュ・ミスをその各入
力で受取る。電子スイッチ41.42.43.44の各
々がシフト・パターン信号の影響下で信号出力へ順次選
択的に送ることができる8つの入力を有することが判る
であろう。また、ミス・スタック40は、16個の最も
後のキャッシュ・ミス・アドレス変位Pに加えて、3つ
の将来のエントリWXYを記憶することも判るであろう
。減算回路45.46.47は、先に述べた第3図の実
施例の対応する減算回路26.27.28と同じ役割を
演じる。
同様に、加算回路48は先に述べた加算回路31と対応
している。
コンパレータ回路49は減算回路45.46の各出力を
受取り、その出力は先取り可能化信号を選択的に発する
ANDゲート38の1つの入力に加えられる。コンパレ
ータ回路50は減算回路46.47の各出力を受取るが
、第3図の実施例のその対応コンパレータ回路30とは
異なり、その出力は減算予見信号によりその他方の入力
が駆動されるORゲート39の1つの入力へ加えられる
。ORゲート39の出力は、ANDゲート38の池の入
力に接続される。このような構成により、減算予見信号
の付勢がORゲート39を付勢し、またANDゲート3
8を部分的に付勢する。減算予見信号を与える効果は、
コンパレータ回路49における減算回路45.46の出
力のみを比較することであり、その結果比較がANDゲ
ート38を完全に付勢して先取り可能化信号を生じるよ
うになる。
この作動モードは、例えば、パターンが数キャッシュ・
ミス毎に変化するように見える時に有効であり、またこ
れは最後の事例に適合する。
第4図の構成によれば、例え本プロセス中にパターンの
一致が検出される場合でさえ、パターン・グループ(第
2図のフロー図における照会「〉1パターン・グループ
?」に対するrYESJの回答により表わされる如き)
内の全てのパターンを試みることが有利である。これは
、ミス・スタックに対する1つ以上の将来のエントリW
XYがパターン・レパートリ、あるいは例えパターン・
レパートリのサブセットでも1回バスする間に生じ得る
という事実から生じる。第4図の特定の構成(多くの可
能な役に立つ構成の事例に過ぎない)によれば、下記の
結果が得られる。即ち、 スイッチの状態   パターン      bmOAB
CD       W I       ACEG       X2    
   ADGJ       Y3       B 
D F HW 4       B E II K       X5
           CFIL          
W6           CGKOX 7           D II L P     
     W目標の状態は、スイッチの状態によりグル
ープで探索される。即ち、グループ1はスイッチ0.1
.2を含み、将来のエントリWXYを充填する結果を生
じ、グループ2は状態3.4を含み、エントリWXの充
填を生じ、グループ3は状態5.6を含み、これもエン
トリWXの充填を生じ、グループ4は状態7を含み、エ
ントリWの充填を生じ得る。予測された目標の状態に達
すると、探索はその時のキャッシュ・ミスに対して停止
され、即ち、既に生じた予測アドレスWを異なる予測ア
ドレスWで置換することは望ましくない。
当業者は、多数の2進数の情報があたかも■っの2進数
情報の如くに示されるため、第3図および第4図の論理
回路がやや簡単であることを理解されよう。このため、
実際には、電子スイッチ、ゲート等のアレイが、必要に
応じて、また完全に従来通り増えた次元を取扱うため実
際に用いられることになろう。更に、本発明の構成を与
えられたデータ処理システム環境に含めるためのタイミ
ング信号およびロジックが、この環境に適するものであ
り、簡明なロジック設計の主題となるであろう。
以上の如く、本発明の原理が例示的な実施態様において
明瞭となったが、当業者には、かかる原理から逸脱する
ことのない特定の環境および作動要件に対して特に適合
する本発明の実施において用いられる構造、構成、比率
、要素、題材および構成要素の多数の変更が明らかであ
ろう。
【図面の簡単な説明】
第1図はキャッシュ・メモリーを使用し、従って本発明
を実施するための例示的環境を構成する典型的なデータ
処理システムを示す全体的ブロック図、第2図は本発明
が実施される作動シーケンスを簡単な状態で示すフロー
図、第3図は本発明の簡単な実施例を示す論理図、およ
び第4図は本発明の更に強力な実施例を示す論理図であ
る。 11・・・システム・インターフェース装置、12・・
・キャッシュ・メモリー装置、13・・・主記憶装置、
14・・・中央処理装置、15・・・ユーザ装置、16
・・・アドレス変換装置、20・・・ミス・スタック、
21〜24・・・電子スイッチ、26〜28・・・減算
回路、29.30・・・コンパレータ回路、31・・・
加算回路、32・・−ANDゲート、38・・・AND
ゲート、39・・・ORゲート、40・・・ミス・スタ
ック、41〜44・・・電子スイッチ、45〜47・・
・減算回路、48・・・加算回路、49.5o・・・コ
ンパレータ回路。

Claims (1)

  1. 【特許請求の範囲】 1、キャッシュ・メモリーを内蔵するデータ処理システ
    ムにおけるキャッシュ・ミス・アドレスを予測する方法
    であって、 A)複数のキャッシュ・ミス・アドレスを記憶するミス
    ・スタックを確立し、 B)キャッシュ・ミスを待機し、 C)キャッシュ・ミスが生じた時、呼出された情報のア
    ドレスを前記ミス・スタックの最前部に置き、 D)駐在するキャッシュ・ミス・アドレス間のアドレス
    ・パターンについて前記ミス・スタックを検査し、 E)もしパターンが検出されなければ、ステップB)へ
    戻り、F)もしパターンが検出されれば、1)検出され
    た該パターン、および前記ミス・スタックにおけるアド
    レスの少なくとも1つを用いて、予測アドレスを計算し
    、 2)キャッシュ・メモリーに対して前記予測アドレスに
    より識別される信号グループを先取りし、 3)ステップB)へ戻る ステップを含むことを特徴とする方法。 2、ステップD)において、予め定めたアドレス・パタ
    ーンのレパートリが探索可能であり、かつ前記検査が、
    最初のパターン一致が検出されるまでパターン毎に継続
    することを特徴とする請求項1記載の方法。 3、キャッシュ・メモリーを内蔵するデータ処理システ
    ムにおけるキャッシュ・ミス・アドレスを予測する方法
    であって、 A)複数のキャッシュ・ミス・アドレスを記憶するため
    のミス・スタックを確立し、 B)キャッシュ・ミスを待機し、 C)キャッシュ・ミスが生じた時、呼出された情報のア
    ドレスを前記ミス・スタックの最前部にD)複数のパタ
    ーン・グループのその時のグループにおける選択された
    アドレス・パターンとの一致について前記ミス・スタッ
    クに駐在するキャッシュ・ミス・アドレスを検査し、 E)もし選択されたパターンが検出されなければ、その
    時のグループにおける全てのパターンが検査されたかど
    うかを判定し、 F)もしまだその時のグループにおける全てのパターン
    が検査されていなければ、該その時のグループにおける
    別のパターンを選択して、ステップD)へ戻り、 G)もし前記パターン・レパートリにおける全てのグル
    ープの全てのパターンが探索されたならば、ステップB
    )へ戻り、 H)もしその時のグループにおける全てのパターンが検
    査されたならば、別のグループをその時のグループとし
    て割当て、新しいその時のグループから1つのパターン
    を選択してステップD)へ戻り、 I)もし該選択されたパターンが検出されるならば、 1)該検出されたパターンおよび前記ミス・スタックに
    おけるアドレスの少なくとも1つを用いて、予測アドレ
    スを計算し、 2)キャッシュ・メモリーに対して前記予測アドレスに
    より識別された信号グループを先取りし、 3)別のグループをその時のグループとして割当てて、
    ステップD)へ戻る ステップを含むことを特徴とする方法。 4、サブステップI)1)およびI)3)間で、前記予
    測アドレスが前記ミス・スタックへ置かれるサブステッ
    プI)2)a)が実行されることを特徴とする請求項3
    記載の方法。 5、情報をキャッシュ・メモリーに対して先取りするた
    め予測アドレスを生成する装置において、 A)キャッシュ・ミスを表わす複数のアドレスを記憶す
    るための先入れ先出しスタックと、 B)各々が複数のアドレス入力および1つのアドレス出
    力を有する複数の電子スイッチ手段と、 C)前記スタックに記憶された前記アドレスを個々に予
    め定めた順序で前記電子スイッチ手段の入力へ接続する
    手段と、 D)前記電子スイッチ手段を切換えて、該電子スイッチ
    手段の入力に与えられる前記アドレスを前記電子スイッ
    チの出力へ転送して前記アドレスの予め定めた組合わせ
    を電子スイッチの出力に確立する手段と、 E)各々が前記電子スイッチ手段の出力から1対の異な
    るアドレスを受取りその間の変位を表わす値を生じるよ
    うに接続された少なくとも2つの減算回路手段と、 F)前記減算回路手段の対応する1対から1対の出力を
    受取り、これに応答するよう接続され、もし比較条件が
    存在するならば先取り可能化論理信号を生じる少なくと
    も1つのコンパレータ回路手段と、 G)前記電子スイッチ出力の1つに現れる前記アドレス
    の1つと、前記減算回路手段の1つに現れる変位情報と
    を組合わせて予測アドレスを得るための予測アドレス生
    成手段とを設け、これにより前記予測アドレスおよび前
    記先取り可能化論理信号の相関した存在が、前記キャッ
    シュ・メモリーに先取りされるべき前記予測アドレスに
    より識別される信号グループを生じることを特徴とする
    装置。 6、前記減算回路手段を少なくとも3つ、および前記コ
    ンパレータ回路手段を少なくとも2つ含み、更に A)前記少なくとも2つのコンパレータ回路手段より接
    続された出力をそれぞれ受取る個々の入力を有するAN
    Dゲート手段を設け、該ANDゲートが完全に使用可能
    状態にある時のみ前記先取り可能化論理信号を選択的に
    生じることを特徴とする請求項5記載の装置。 7、A)前記ANDゲート手段に対する少なくとも1つ
    の入力を駆動するORゲート手段を更に設け、該ORゲ
    ート手段が、 1)前記コンパレータ手段の少なくとも1つより接続さ
    れた出力と、 2)選択的に与えられる減算先見論理信号とを受取る入
    力を有し、 これにより、前記ORゲート手段に対する前記減算先見
    信号の付与が前記ANDゲート手段の駆動を部分的に可
    能にし、これにより前記先取り可能化論理信号を生成す
    ることの考慮から、前記コンパレータ回路の前記少なく
    とも1つを排除することを特徴とする請求項6記載の 装置。
JP2153812A 1989-06-12 1990-06-12 キャッシュ・ミス予測の方法および装置 Granted JPH0363852A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US364943 1989-06-12
US07/364,943 US5093777A (en) 1989-06-12 1989-06-12 Method and apparatus for predicting address of a subsequent cache request upon analyzing address patterns stored in separate miss stack

Publications (2)

Publication Number Publication Date
JPH0363852A true JPH0363852A (ja) 1991-03-19
JPH0529939B2 JPH0529939B2 (ja) 1993-05-06

Family

ID=23436798

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2153812A Granted JPH0363852A (ja) 1989-06-12 1990-06-12 キャッシュ・ミス予測の方法および装置

Country Status (7)

Country Link
US (2) US5093777A (ja)
EP (1) EP0402787B1 (ja)
JP (1) JPH0363852A (ja)
KR (1) KR950011291B1 (ja)
AU (1) AU638716B2 (ja)
DE (1) DE69028153T2 (ja)
SG (1) SG49211A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6173392B1 (en) 1997-04-12 2001-01-09 Nec Corporation Prefetch controller automatically updating history addresses

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5093777A (en) * 1989-06-12 1992-03-03 Bull Hn Information Systems Inc. Method and apparatus for predicting address of a subsequent cache request upon analyzing address patterns stored in separate miss stack
US5210838A (en) * 1990-05-15 1993-05-11 Sun Microsystems, Inc. Method and apparatus for predicting the effective addresses of future memory load operations in a microprocessor
GB2247546B (en) * 1990-08-31 1995-03-01 Sun Microsystems Inc Method and apparatus for predictive caching
US5357618A (en) * 1991-04-15 1994-10-18 International Business Machines Corporation Cache prefetch and bypass using stride registers
SE469402B (sv) * 1991-05-02 1993-06-28 Swedish Inst Of Computer Scien Foerfarande foer att haemta data till ett cache-minne
US5367656A (en) * 1992-03-13 1994-11-22 Bull Hn Information Systems Inc. Controlling cache predictive prefetching based on cache hit ratio trend
US5787475A (en) * 1992-07-21 1998-07-28 Digital Equipment Corporation Controlled prefetching of data requested by a peripheral
US5450561A (en) * 1992-07-29 1995-09-12 Bull Hn Information Systems Inc. Cache miss prediction method and apparatus for use with a paged main memory in a data processing system
US5715421A (en) * 1992-10-16 1998-02-03 Seiko Epson Corporation Apparatus and method of addressing paged mode memory including adjacent page precharging
US5588128A (en) * 1993-04-02 1996-12-24 Vlsi Technology, Inc. Dynamic direction look ahead read buffer
WO1995001600A1 (en) * 1993-07-02 1995-01-12 Oakleigh Systems, Inc. Predictive disk cache system
US5452440A (en) * 1993-07-16 1995-09-19 Zitel Corporation Method and structure for evaluating and enhancing the performance of cache memory systems
US5426764A (en) * 1993-08-24 1995-06-20 Ryan; Charles P. Cache miss prediction apparatus with priority encoder for multiple prediction matches and method therefor
US5701426A (en) * 1995-03-31 1997-12-23 Bull Information Systems Inc. Data processing system and method using cache miss address prediction and forced LRU status in a cache memory to improve cache hit ratio
US5790823A (en) * 1995-07-13 1998-08-04 International Business Machines Corporation Operand prefetch table
DE69734399D1 (de) * 1996-01-24 2006-03-02 Sun Microsystems Inc Verfahren und vorrichtung zur stapel-cachespeicherung
US6038643A (en) * 1996-01-24 2000-03-14 Sun Microsystems, Inc. Stack management unit and method for a processor having a stack
US6055621A (en) * 1996-02-12 2000-04-25 International Business Machines Corporation Touch history table
US5854911A (en) * 1996-07-01 1998-12-29 Sun Microsystems, Inc. Data buffer prefetch apparatus and method
US6009499A (en) * 1997-03-31 1999-12-28 Sun Microsystems, Inc Pipelined stack caching circuit
US6167488A (en) * 1997-03-31 2000-12-26 Sun Microsystems, Inc. Stack caching circuit with overflow/underflow unit
US6289418B1 (en) 1997-03-31 2001-09-11 Sun Microsystems, Inc. Address pipelined stack caching method
US6131144A (en) * 1997-04-01 2000-10-10 Sun Microsystems, Inc. Stack caching method with overflow/underflow control using pointers
US6058457A (en) * 1997-06-23 2000-05-02 Sun Microsystems, Inc. Method for storing method frames in multiple stacks
US6092152A (en) * 1997-06-23 2000-07-18 Sun Microsystems, Inc. Method for stack-caching method frames
US6138210A (en) * 1997-06-23 2000-10-24 Sun Microsystems, Inc. Multi-stack memory architecture
US6067602A (en) * 1997-06-23 2000-05-23 Sun Microsystems, Inc. Multi-stack-caching memory architecture
US6197685B1 (en) * 1997-07-11 2001-03-06 Matsushita Electronics Corporation Method of producing multilayer wiring device with offset axises of upper and lower plugs
US6047363A (en) * 1997-10-14 2000-04-04 Advanced Micro Devices, Inc. Prefetching data using profile of cache misses from earlier code executions
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
US6484239B1 (en) * 1997-12-29 2002-11-19 Intel Corporation Prefetch queue
US6275903B1 (en) 1998-04-22 2001-08-14 Sun Microsystems, Inc. Stack cache miss handling
US6170050B1 (en) 1998-04-22 2001-01-02 Sun Microsystems, Inc. Length decoder for variable length data
US6108768A (en) * 1998-04-22 2000-08-22 Sun Microsystems, Inc. Reissue logic for individually reissuing instructions trapped in a multiissue stack based computing system
US6237086B1 (en) 1998-04-22 2001-05-22 Sun Microsystems, Inc. 1 Method to prevent pipeline stalls in superscalar stack based computing systems
US6230260B1 (en) 1998-09-01 2001-05-08 International Business Machines Corporation Circuit arrangement and method of speculative instruction execution utilizing instruction history caching
US7237093B1 (en) * 1998-12-16 2007-06-26 Mips Technologies, Inc. Instruction fetching system in a multithreaded processor utilizing cache miss predictions to fetch instructions from multiple hardware streams
US6389449B1 (en) * 1998-12-16 2002-05-14 Clearwater Networks, Inc. Interstream control and communications for multi-streaming digital processors
US7529907B2 (en) 1998-12-16 2009-05-05 Mips Technologies, Inc. Method and apparatus for improved computer load and store operations
US7020879B1 (en) * 1998-12-16 2006-03-28 Mips Technologies, Inc. Interrupt and exception handling for multi-streaming digital processors
US7257814B1 (en) 1998-12-16 2007-08-14 Mips Technologies, Inc. Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors
US7035997B1 (en) 1998-12-16 2006-04-25 Mips Technologies, Inc. Methods and apparatus for improving fetching and dispatch of instructions in multithreaded processors
US6393527B1 (en) * 1998-12-18 2002-05-21 Ati International Srl Prefetch buffer with continue detect
US6490652B1 (en) * 1999-02-03 2002-12-03 Ati Technologies Inc. Method and apparatus for decoupled retrieval of cache miss data
US6311260B1 (en) 1999-02-25 2001-10-30 Nec Research Institute, Inc. Method for perfetching structured data
US6580431B1 (en) 1999-03-04 2003-06-17 Nexmem System, method, and computer program product for intelligent memory to accelerate processes
US20020135611A1 (en) * 1999-03-04 2002-09-26 Trevor Deosaran Remote performance management to accelerate distributed processes
JP3438650B2 (ja) * 1999-05-26 2003-08-18 日本電気株式会社 キャッシュメモリ
US6442673B1 (en) * 1999-11-05 2002-08-27 I.P. First L.L.C. Update forwarding cache for address mode
US6629234B1 (en) 2000-03-30 2003-09-30 Ip. First, L.L.C. Speculative generation at address generation stage of previous instruction result stored in forward cache for use by succeeding address dependent instruction
AU2001273211A1 (en) 2000-07-14 2002-01-30 Clearwater Networks, Inc. Instruction fetch and dispatch in multithreaded system
US6584549B2 (en) 2000-12-29 2003-06-24 Intel Corporation System and method for prefetching data into a cache based on miss distance
US7035979B2 (en) * 2002-05-22 2006-04-25 International Business Machines Corporation Method and apparatus for optimizing cache hit ratio in non L1 caches
US7107438B2 (en) 2003-02-04 2006-09-12 Via Technologies, Inc. Pipelined microprocessor, apparatus, and method for performing early correction of conditional branch instruction mispredictions
US7185182B2 (en) 2003-02-04 2007-02-27 Via Technologies, Inc. Pipelined microprocessor, apparatus, and method for generating early instruction results
US7100024B2 (en) 2003-02-04 2006-08-29 Via Technologies, Inc. Pipelined microprocessor, apparatus, and method for generating early status flags
US8966230B2 (en) 2009-09-30 2015-02-24 Intel Corporation Dynamic selection of execution stage
CN102163144A (zh) * 2011-05-05 2011-08-24 浙江大学 嵌入式处理器的硬件数据预取方法
US8954678B2 (en) * 2012-06-15 2015-02-10 International Business Machines Corporation Automatic pattern-based operand prefetching
US9015422B2 (en) 2013-07-16 2015-04-21 Apple Inc. Access map-pattern match based prefetch unit for a processor
US10360159B1 (en) * 2013-12-12 2019-07-23 Groupon, Inc. System, method, apparatus, and computer program product for providing a cache mechanism
US9971694B1 (en) 2015-06-24 2018-05-15 Apple Inc. Prefetch circuit for a processor with pointer optimization
KR102429903B1 (ko) * 2015-12-03 2022-08-05 삼성전자주식회사 비휘발성 메인 메모리 시스템의 페이지 폴트 처리 방법
US10180905B1 (en) 2016-04-07 2019-01-15 Apple Inc. Unified prefetch circuit for multi-level caches
US9904624B1 (en) 2016-04-07 2018-02-27 Apple Inc. Prefetch throttling in a multi-core system
US10331567B1 (en) 2017-02-17 2019-06-25 Apple Inc. Prefetch circuit with global quality factor to reduce aggressiveness in low power modes

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1515376A (en) * 1975-07-09 1978-06-21 Int Computers Ltd Data storage systems
US4371924A (en) * 1979-11-09 1983-02-01 Rockwell International Corp. Computer system apparatus for prefetching data requested by a peripheral device from memory
US4317168A (en) * 1979-11-23 1982-02-23 International Business Machines Corporation Cache organization enabling concurrent line castout and line fetch transfers with main storage
US4370710A (en) * 1980-08-26 1983-01-25 Control Data Corporation Cache memory organization utilizing miss information holding registers to prevent lockup from cache misses
US4583165A (en) * 1982-06-30 1986-04-15 International Business Machines Corporation Apparatus and method for controlling storage access in a multilevel storage system
US4679141A (en) * 1985-04-29 1987-07-07 International Business Machines Corporation Pageable branch history table
IT1202687B (it) * 1987-03-25 1989-02-09 Honeywell Inf Systems Memoria tampone a predizione di hit
US4991090A (en) * 1987-05-18 1991-02-05 International Business Machines Corporation Posting out-of-sequence fetches
US4980823A (en) * 1987-06-22 1990-12-25 International Business Machines Corporation Sequential prefetching with deconfirmation
US4943908A (en) * 1987-12-02 1990-07-24 International Business Machines Corporation Multiple branch analyzer for prefetching cache lines
US4888679A (en) * 1988-01-11 1989-12-19 Digital Equipment Corporation Method and apparatus using a cache and main memory for both vector processing and scalar processing by prefetching cache blocks including vector data elements
US5093777A (en) * 1989-06-12 1992-03-03 Bull Hn Information Systems Inc. Method and apparatus for predicting address of a subsequent cache request upon analyzing address patterns stored in separate miss stack
US5269013A (en) * 1991-03-20 1993-12-07 Digital Equipment Corporation Adaptive memory management method for coupled memory multiprocessor systems
US5185861A (en) * 1991-08-19 1993-02-09 Sequent Computer Systems, Inc. Cache affinity scheduler
US5305389A (en) * 1991-08-30 1994-04-19 Digital Equipment Corporation Predictive cache system
US5367656A (en) * 1992-03-13 1994-11-22 Bull Hn Information Systems Inc. Controlling cache predictive prefetching based on cache hit ratio trend

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6173392B1 (en) 1997-04-12 2001-01-09 Nec Corporation Prefetch controller automatically updating history addresses

Also Published As

Publication number Publication date
EP0402787A2 (en) 1990-12-19
DE69028153T2 (de) 1997-04-03
AU638716B2 (en) 1993-07-08
DE69028153D1 (de) 1996-09-26
KR910001547A (ko) 1991-01-31
US5093777A (en) 1992-03-03
EP0402787B1 (en) 1996-08-21
KR950011291B1 (ko) 1995-09-30
SG49211A1 (en) 1998-05-18
JPH0529939B2 (ja) 1993-05-06
US5694572A (en) 1997-12-02
AU5681990A (en) 1990-12-13
EP0402787A3 (en) 1991-09-04

Similar Documents

Publication Publication Date Title
JPH0363852A (ja) キャッシュ・ミス予測の方法および装置
US5367656A (en) Controlling cache predictive prefetching based on cache hit ratio trend
US5278961A (en) Physical address to logical address translator for memory management units
EP0084114B1 (en) Instruction prefetching data processing apparatus including a conditional branch instruction predictor
US5701426A (en) Data processing system and method using cache miss address prediction and forced LRU status in a cache memory to improve cache hit ratio
EP0097790A2 (en) Apparatus for controlling storage access in a multilevel storage system
JPH07506921A (ja) コンピュータ・システムにおける主記憶装置のアクセス時間とキャッシュ・メモリのサイズを最小限にするためのキャッシュへの先取り
US5450561A (en) Cache miss prediction method and apparatus for use with a paged main memory in a data processing system
JPS6341093B2 (ja)
KR20000076502A (ko) 세트 예측을 사용하여 세트 연상 캐시에서 대기 시간을감소시키기 위한 방법 및 장치
JPH0361214B2 (ja)
JPH06510611A (ja) コンピュータシステムにおいてデータ処理速度を向上させる方法
US4348724A (en) Address pairing apparatus for a control store of a data processing system
JP3254019B2 (ja) データ先読み制御装置
US5889986A (en) Instruction fetch unit including instruction buffer and secondary or branch target buffer that transfers prefetched instructions to the instruction buffer
US5495591A (en) Method and system for cache miss prediction based on previous cache access requests
US5426764A (en) Cache miss prediction apparatus with priority encoder for multiple prediction matches and method therefor
US5283890A (en) Cache memory arrangement with write buffer pipeline providing for concurrent cache determinations
US5918044A (en) Apparatus and method for instruction fetching using a multi-port instruction cache directory
US6643742B1 (en) Method and system for efficient cache memory updating with a least recently used (LRU) protocol
EP0296430A2 (en) Sequential prefetching with deconfirmation
JPH04287125A (ja) 情報処理装置
JP3284508B2 (ja) データ先読み制御装置
JP3424430B2 (ja) プロセッサ
JPH0612331A (ja) キャッシュメモリ制御装置