JPH1055276A - 多重レベル分岐予測方法および装置 - Google Patents

多重レベル分岐予測方法および装置

Info

Publication number
JPH1055276A
JPH1055276A JP9088685A JP8868597A JPH1055276A JP H1055276 A JPH1055276 A JP H1055276A JP 9088685 A JP9088685 A JP 9088685A JP 8868597 A JP8868597 A JP 8868597A JP H1055276 A JPH1055276 A JP H1055276A
Authority
JP
Japan
Prior art keywords
cache
branch prediction
prediction information
memory
entry
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.)
Pending
Application number
JP9088685A
Other languages
English (en)
Inventor
Robert Yung
ロバート・ヤング
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems 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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH1055276A publication Critical patent/JPH1055276A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3844Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
    • 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
    • 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

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)
  • Advance Control (AREA)

Abstract

(57)【要約】 【課題】 キャッシュ行が犠牲にされたときに分岐予測
情報を維持する方法および装置を提供する。 【解決手段】 本発明によれば、あるキャッシュ行が犠
牲にされるとき、上書きされたキャッシュ・エントリに
関連する分岐予測情報が次のレベルのキャッシュに格納
される。本発明はどのレベルのキャッシュにも適用で
き、次のレベルのキャッシュは第2段、第3段あるいは
第N段のキャッシュでよい。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、キャッシュ・メモ
リにおける分岐予測情報に関し、具体的には多重レベル
・キャッシュ構造に係わる。
【0002】
【従来の技術】マイクロプロセッサの速度を速くするた
めにキャッシュ・メモリが使用されている。典型的な構
成では、マイクロプロセッサ・チップ自体に一次レベル
・キャッシュを搭載する。必要な命令またはデータがこ
のキャッシュにない場合二次キャッシュにアクセスす
る。二次キャッシュは典型的には外部にあり、メイン・
メモリで使用される通常のDRAMより高速のSRAM
チップで作られる。二次レベル・キャッシュ内でその情
報が見つからない場合、メイン・メモリへのアクセスが
必要である。キャッシュは、命令とデータの両方を含む
統合キャッシュ構造とするか、または命令用とデータ用
の別々のキャッシュを使用することもできる。一般に、
一次レベル・キャッシュにはセットアソシアティブ・キ
ャッシュが使用され、二次レベル・キャッシュには、帯
域幅と配線の制約のためにダイレクトマップ・キャッシ
ュが使用される。各キャッシュは関連づけられたデータ
または命令のアドレスを示すタグを有する。キャッシュ
内にヒットがあるかミスがあるかを判断するためにタグ
が現行アドレスと比較される。
【0003】分岐命令があると、分岐をとるかとらない
かを判断するのと、分岐アドレスを計算してからその分
岐アドレスにある命令をフェッチするのに時間を要する
ため、マイクロプロセッサが低速化する。最新のマイク
ロプロセッサは一般に分岐履歴データを使用して、分岐
をとるかとらないかを予測する。その後、その予測情報
が正しいものと仮定して実行を継続し、後で誤っている
と判断された場合、その誤ってフェッチされた命令がフ
ラッシュされ、新しい正しい命令がフェッチされる。イ
ンテルのPENTIUMTMで使用されているもののよう
な例では、分岐ターゲット・バッファと呼ばれる別個の
キャッシュを使用する。1つのこのような分岐ターゲッ
ト・キャッシュは、ネクスジェンの米国特許第5093
778号に記載されている。分岐命令アドレスを使用し
てタグ付けし、ターゲット・アドレスを分岐ターゲット
命令シーケンスと共に記憶する。分岐予測に使用される
分岐履歴ビットも含まれる。このような分岐ターゲット
・キャッシュまたはバッファによって、処理速度は向上
するが、ターゲット・アドレスとそれに関連づけられた
命令を見つけ出すのに要する待ち時間が加わる。
【0004】分岐予測情報を予測ターゲット・アドレス
と共に、分岐命令のキャッシュ・エントリと同じキャッ
シュ・ラインに組み込むキャッシュ構造が、1992年
8月31日出願の出願番号第07/938371号の
「Rapid Instruction (Pre)
Fetching and DispatchingU
sing Prior (Pre) Fetch Pr
edicted Annotations」という名称
の同時係属特許出願で開示されており、参照により本明
細書に組み込まれる。その出願に記載されているよう
に、各命令は一次レベル・キャッシュにロードされる前
に部分的にデコードされる。分岐命令かどうかなどを含
む命令のタイプが、クラス・フィールドによって示され
る。分岐命令である場合、別のフィールドに分岐予測情
報が入れられ、その後に予測次フェッチ・アドレスが入
ったフィールドが続く。後のアクセス時に、特定のエン
トリがフェッチされる場合、命令が分岐かどうかを問わ
ず、記憶されている予測された次フェッチ・アドレスを
直接使用して次の命令をフェッチする。次フェッチ・ア
ドレスの予測が誤っていた場合を除き、次のフェッチに
関する待ち時間(分岐の場合は別の分岐予測バッファ内
のアドレスと比較する待ち時間を含む)がなくなる。
【0005】
【発明が解決しようとする課題】このような分岐予想方
法の1つの制約は、より低次のレベルのキャッシュまた
はメイン・メモリから新しい命令がフェッチされると、
キャッシュ・メモリの内容が最低使用頻度(LRU)ア
ルゴリズムなどの何らかのアルゴリズムに従って上書き
されることである。たとえば、異なるプログラム間で切
換えがあるマルチスレッド・アプリケーションなどで
は、これがかなり頻繁に発生する。コンテキスト切換え
と呼ばれるそのようなプログラム切換え時に、新しい命
令が使用され、キャッシュ内の既存の命令がその分岐予
測情報と共に上書きされる可能性がある。したがって、
分岐予測情報をそのような新しいエントリのための何ら
かのデフォルト予測に初期設定し直さなければならず、
分岐予測の精度が低下する。
【0006】
【課題を解決するための手段】本発明は、キャッシュ・
ラインが犠牲にされる(上書きされる)場合に分岐予測
情報を維持する方法および装置を提供する。本発明によ
ると、キャッシュ・ラインが犠牲になる場合、上書きさ
れるキャッシュ・エントリに付随する分岐予測情報を次
のレベルのキャッシュに記憶する。本発明は、次のレベ
ルのキャッシュを二次、三次、またはN次レベルのキャ
ッシュとして、どのレベルのキャッシュにも適用可能で
ある。
【0007】本発明は、別々の命令キャッシュと分岐タ
ーゲット・キャッシュを使用するマクロプロセッサに
も、命令キャッシュと分岐ターゲット・キャッシュを組
み合わせて単一のキャッシュとする構造にも適用するこ
とができる。次レベルのキャッシュは、タグと命令の別
々のメモリ・チップを有することも、それらを組み合わ
せて単一の構造体とすることもできる。分岐予測情報を
タグと共に外部キャッシュに記憶することが好ましい。
【0008】したがって、本発明は、キャッシュ・フィ
ル時またはコンテキスト切換え時に分岐予測情報を復元
する機構を設け、それによってコンテキスト切換えに伴
う分岐予測の付加的な待ち時間をなくすことによって、
マルチスレッド・アプリケーションおよび迅速なコンテ
キスト切換えを容易にする。一実施態様では、犠牲にな
るキャッシュ・ラインを上書きするキャッシュ・エント
リの読取りの際の余分のバス・サイクル中に分岐予測情
報を次レベル・キャッシュに保管する。したがって、追
加のバス・サイクルは不要である。そのような余分のバ
ス・サイクルを使用することができない他の実施態様で
は、分岐予測情報を次レベル・キャッシュのライトバッ
ク・バッファに格納して、次に使用可能なバス・サイク
ル中に書き込むか、または分岐予測ビット用に追加の配
線を設ける。
【0009】
【発明の実施の形態】本発明の性質および利点をよりよ
く理解することができるように、添付図面と共に以下の
説明を参照されたい。
【0010】図1を参照すると、本発明を組み込むこと
ができるコンピュータ・システムの一実施形態を示す機
能ブロック図が示されている。コンピュータ・システム
10は、命令プリフェッチおよびディスパッチ・ユニッ
ト12と、実行ユニット14と、命令キャッシュ16
と、命令デコーダ17と、データ・キャッシュ18と、
メモリ・ユニット20と、メモリ管理ユニット22とを
備える。命令キャッシュ16とデータ・キャッシュ18
は、命令プリフェッチおよびディスパッチ・ユニット1
2と実行ユニット14とメモリ管理ユニット22とにそ
れぞれ結合されている。プリフェッチおよびディスパッ
チ・ユニット12は、実行ユニット14とメモリ管理ユ
ニット22とに結合されている。データ・キャッシュ1
8はメモリ20に結合されている。命令キャッシュ16
はデコーダ17を介してメモリ20に結合されている。
【0011】メモリ管理ユニット22とプリフェッチお
よびディスパッチ・ユニット12とが協調して、命令キ
ャッシュ16から命令と、データ・キャッシュ18から
データをそれぞれフェッチして、それらを必要に応じて
実行ユニット14にディスパッチする。実行された命令
の結果はデータ・キャッシュ18またはメイン・メモリ
20に記憶される。命令プリフェッチおよびディスパッ
チ・ユニット12を除き、命令キャッシュ16、デコー
ダ17、およびその他の要素14および18ないし22
は、最も一般的なシステムにあるそれらの要素の広い範
疇を表すことを意図したものである。要素14および1
8ないし22の構成要素と基本機能は公知であり、詳述
しない。本発明は、異なるアーキテクチャを有する他の
コンピュータ・システムでも実施可能である。特に、本
発明はメモリ管理ユニット22のないコンピュータ・シ
ステムでも実施することができる。さらに、本発明は統
合された命令/データ・キャッシュでも、命令キャッシ
ュのみでも実施することができる。
【0012】デコーダ17を使用して命令を部分的にデ
コードし、命令のクラスを判断してから命令キャッシュ
に入れる。本発明の目的のために、クラス・フィールド
は最小限として命令が分岐かどうかを示す必要がある。
あるいは、クラス・フィールドには、プログラム・カウ
ンタ(PC)相対分岐、レジスタ間接分岐、メモリ・ア
クセス、あるいは算術または浮動小数点演算のいずれで
あるかなどの追加情報を入れることもできる。
【0013】図2に、本発明による一次レベル・キャッ
シュの様々なフィールドを示す。有効ビット・フィール
ド24は、キャッシュ・エントリが有効か否かを示す。
タグ・フィールド26にはそのエントリに使用されるア
ドレス・タグがある。命令クラス・フィールド28は、
命令の部分的にデコードされたクラスを示し、特に分岐
であるかどうかを示す。分岐予測フィールド30には、
分岐をとると予測したかとらないと予測したかを示す分
岐予測ビットが格納される。次フェッチ・アドレス予測
フィールド32には、予測された次の命令のアドレスが
格納される。これは、分岐をとらないと予測された場合
には順次命令であり、分岐をとると予測された場合には
分岐命令のターゲット・アドレスである。最後に、フィ
ールド34には命令自体が格納される。コンテキスト切
換え、アドレス競合、またはその他によりキャッシュ・
ラインが犠牲になる場合、そのキャッシュ・エントリは
そのエントリの分岐予測情報と共に失われることにな
る。本発明によると、その場合この情報は二次レベル・
キャッシュに格納される。
【0014】図3に、本発明による二次レベル・キャッ
シュ・エントリのフィールドを図示する。有効ビット・
フィールド36はキャッシュ・エントリが有効かどうか
を示す。フィールド38にはタグが格納され、フィール
ド40には命令クラスが格納される。分岐予測情報がフ
ィールド42に格納され、必要な場合はその分岐予測情
報の有効ビットをフィールド44に格納することができ
る。次フェッチ・アドレス予測はフィールド46に格納
され、命令自体はフィールド48に格納される。二次キ
ャッシュ・ブロックにはいくつかの一次キャッシュ・ブ
ロックを含めることができるため、複数のフィールド4
2、44、および46が存在する場合がある。
【0015】分岐予測有効ビット44がある場合は、そ
れを使用して分岐予測情報が有効かどうかを示す。例え
ば、一次レベル・キャッシュ内のデータが更新された場
合、二次レベル・キャッシュの情報は有効でなくなる。
二次レベル・キャッシュ・エントリが犠牲になるときに
一次レベル・キャッシュに格納されると、有効ビットが
有効に設定される。キャッシュ・ラインが一次レベル・
キャッシュに入れられと、または二次キャッシュに書き
込まれると、有効分岐予測情報の有効ビット標識を使用
して分岐予測情報の通常のデフォルト設定を上書きする
ことができる。
【0016】二次レベル・キャッシュには複数のデコー
ドされた命令クラスも格納することができ、したがっ
て、その情報をマイクロプロセッサ上の一次レベル・キ
ャッシュにライトバックするときにそれを記録する必要
がなくなる。これは、ある程度の頻度で同じ命令が一次
キャッシュと二次キャッシュとの間を行き来する可能性
のあるマルチスレッド・アプリケーションにおけるコン
テキスト切換えの場合に特に重要である。クラスの事前
デコードは1回だけでよく、コンテキスト切換え中の待
ち時間が改善される。したがって、本発明は、分岐予測
情報を再計算する必要がなく、命令クラスを調べ直す必
要もないという二重の利点を備える。
【0017】図4は、本発明を適用することができる1
つの二次レベル・キャッシュ構造を示すブロック図であ
る。内部一次キャッシュを有するプロセッサ50が図示
されている。二次レベル・キャッシュは、二次レベル・
タグ・キャッシュ52と二次レベル命令(データ)キャ
ッシュ54という2つの構成要素を有する。キャッシュ
・バス76は4つの構成要素を有する。タグ・アドレス
・バス56とデータ・アドレス・バス58の2つの別々
のアドレス・バスを使用する。アドレスされた情報は、
タグ・データ・バス60とキャッシュ・データ・バス6
2でマイクロプロセッサに戻される(またはキャッシュ
に書き込まれる)。図4には、システム・アドレス・バ
ス64と、システム・データ・バス68へのインタフェ
ース66も図示されている。
【0018】マイクロプロセッサ50内のキャッシュ・
ラインが犠牲になる場合、図5のライトバック・コント
ローラ70のようなライトバック・コントローラを使用
して分岐予測情報及びキャッシュ・ラインに付随するそ
の他の情報を次レベルのキャッシュ(この例では二次レ
ベル・タグ・キャッシュ52)にライトバックする。一
実施形態では、ライトバック・データはライトバック・
バッファ72に格納され、その情報を一次レベル・キャ
ッシュ74から二次レベル・キャッシュ52に書き込む
ために使用可能なバス・サイクルがあるまでそこで待機
する。ライトバックは、図4のバス56、58、60、
および62を含むキャッシュ・バス76を介して行われ
る。
【0019】一実施形態では、タグは外部二次レベル・
キャッシュ内の実データまたは命令よりもはるかに短
い。このため、タグを取り出すのには1バス・サイクル
を要するのに対し、キャッシュ・データ(命令)を取り
出すのには2バス・サイクルを要する。したがって、上
書きされるキャッシュ・タグの分岐予測情報ををタグ・
キャッシュ52にライトバックするために使用すること
ができるバス・サイクルが1サイクルある。これを図6
に示す。図6には、命令ミス、または単に一次レベル・
キャッシュ内のラインを上書きする要求を示す時点t0
における第1のサイクルが図示されている。t1と符号
が付された次のサイクルでは、二次レベル・タグ・アド
レス80がタグ・アドレス・バス56に送られ、二次レ
ベル・データ・アドレス82がデータ・アドレス・バス
58に送られる。この同じサイクル中に、バス60上の
タグ・データとバス62上のキャッシュ・エントリの半
分とがマイクロプロセッサに戻される。タグ・データは
はるかに短いため、タグ・バス・サイズはタグ・サイズ
と等しく、このサイクル中にタグ全体を送ることができ
る。しかし、それより長いキャッシュ・データ・エント
リ(命令自体)は、データ・バス・サイズがキャッシュ
・ブロック・サイズの何分の1かであることを意味し、
時点t2における第2のサイクル84を必要とする。こ
の期間中はタグ・アドレス・バス56およびデータ・バ
ス60が使用されないため、サイクル86中にそれらを
使用して分岐予測情報を二次レベル・タグ・キャッシュ
52にライトバックすることができる。分岐予測情報を
ライトバックするほかに、予測された次フェッチ・アド
レスと命令クラスもタグ・キャッシュ内の対応するフィ
ールドにライトバックされる。
【0020】本発明は、特に全コンテキストを保管せず
にコンテキスト切換えを可能にする軽い処理を含み(し
たがって通常なら競合のためにより高いキャッシュ・ミ
ス率の原因となる)、マルチスレッド・アプリケーショ
ンの待ち時間を短縮するのに特に有用である。
【0021】当業者ならわかるように、本発明は、本発
明の精神または主要特性から逸脱することなく他の特定
の態様でも実施することができる。たとえば、本発明を
使用して、犠牲となる二次レベル・キャッシュ内の分岐
予測情報を3次レベル・キャッシュまたはメイン・メモ
リに保管することができる。本発明を非包含二次レベル
・キャッシュと共に使用した場合、情報がたまたま二次
レベル・キャッシュ内にある場合はそのキャッシュ情報
を記憶することができ、ない場合には廃棄することがで
きる。したがって、以上の説明は本発明を例示すること
を意味したものであり、本発明の範囲を限定するもので
はなく、本発明の範囲は特許請求の範囲に記載されてい
る。
【図面の簡単な説明】
【図1】 本発明を組み込むことができるマイクロプロ
セッサのブロック図である。
【図2】 本発明の一実施形態と共に使用する一次レベ
ルキャッシュ・エントリを示す図である。
【図3】 本実施形態による二次レベル・キャッシュ・
エントリを示す図である。
【図4】 本実施形態と共に使用する外部キャッシュ用
のバス構造を示すブロック図である。
【図5】 本実施形態のライトバック回路を示すブロッ
ク図である。
【図6】 本発明による二次レベルキャッシュへの書込
みのための余分のサイクルの使用を示すタイミング図で
ある。
【符号の説明】
12 命令プリフェッチおよびディスパッチ・ユニット 14 実行ユニット 16 命令キャッシュ 17 命令デコーダ 18 データ・キャッシュ 20 メモリ・ユニット 22 メモリ管理ユニット 50 プロセッサ 52 二次レベル・タグ・キャッシュ 54 二次レベル命令(データ)キャッシュ 56 タグ・アドレス・バス 58 データ・アドレス・バス 60 タグ・データ・バス 62 キャッシュ・データ・バス 70 ライトバック・コントローラ 72 ライトバック・バッファ 74 一次レベル・キャッシュ

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】 複数のキャッシュ・メモリを有するコン
    ピュータ・システムを動作させる方法において、 分岐予測情報を第1のキャッシュ・メモリに格納するス
    テップと、 古いキャッシュ・エントリを新しいキャッシュ・エント
    リで上書きするステップと、 前記古いキャッシュ・エントリに対応する前記第1のキ
    ャッシュからの分岐予測情報を第2のキャッシュ・メモ
    リに保管するステップとを含む方法。
  2. 【請求項2】 前記第2のキャッシュ・メモリがより低
    いレベルのキャッシュ・メモリであることを特徴とす
    る、請求項1に記載の方法。
  3. 【請求項3】 前記新しいキャッシュ・エントリが少な
    くとも2サイクルを使用してフェッチされ、第1のサイ
    クル中に第2のキャッシュ・タグ・アドレスと第2のキ
    ャッシュ・データ・アドレスがキャッシュ・バスに供給
    され、対応する第2のキャッシュ・タグおよび第2のキ
    ャッシュ・データの第1の部分が前記アドレスに応答し
    て受信され、第2のキャッシュ・データの第2の部分が
    第2のサイクル中に受信されることを特徴とし、 前記古いキャッシュ・エントリに対応する前記分岐予測
    情報を前記第2のサイクル中に前記キャッシュ・バスを
    使用して第2のキャッシュ・タグ・メモリに書き込むス
    テップをさらに含む請求項1に記載の方法。
  4. 【請求項4】 前記分岐予測情報と前記キャッシュ・エ
    ントリが同じ第1のキャッシュに格納されることを特徴
    とする請求項1に記載の方法。
  5. 【請求項5】 前記第1のキャッシュがマイクロプロセ
    ッサ・チップ上に集積され、前記第2のキャッシュが外
    部の第2レベルのキャッシュであることを特徴とする請
    求項1に記載の方法。
  6. 【請求項6】 前記第2のキャッシュ内の前記第2の分
    岐予測情報に分岐予測有効ビットを設けるステップと、 前記第2のキャッシュ・メモリに前記分岐予測情報を保
    管すると前記古いキャッシュ・エントリのための前記分
    岐予測情報の分岐予測有効ビットを有効状態に設定する
    ステップとをさらに含む請求項1に記載の方法。
  7. 【請求項7】 前記分岐予測有効ビットが1つのエント
    リについて有効状態に設定された場合、デフォルトの分
    岐予測設定を上書きするステップをさらに含む請求項6
    に記載の方法。
  8. 【請求項8】 複数のキャッシュ・メモリを有するコン
    ピュータ・システムを動作させる方法であって、 分岐予測情報を第1のキャッシュ・メモリに格納するス
    テップと、 古いキャッシュ・エントリを新しいキャッシュ・エント
    リで上書きするステップと、 前記古いキャッシュ・エントリに対応する前記第1のキ
    ャッシュから分岐予測情報を第2のキャッシュ・メモリ
    に保管するステップと、 前記第2のキャッシュ内の前記第2の分岐予測情報に分
    岐予測有効ビットを与えるステップと、 前記第2のキャッシュ・メモリに前記分岐予測情報を保
    管すると前記古いキャッシュ・エントリのための前記分
    岐予測情報の分岐予測有効ビットを有効状態に設定する
    ステップとを含む方法。
  9. 【請求項9】 第1のサイクル中に第2のキャッシュ・
    タグ・アドレスと第2のキャッシュ・データ・アドレス
    がキャッシュ・バスに供給され、対応する第2のキャッ
    シュ・タグおよび第2のキャッシュ・データの第1の部
    分が前記アドレスに応答して受信され、第2のキャッシ
    ュ・データの第2の部分が第2またはそれ以降のサイク
    ル中に受信される、前記新しいキャッシュ・エントリを
    少なくとも2サイクルを使用してフェッチするステップ
    と、 前記古いキャッシュ・エントリに対応する前記分岐予測
    情報を前記第2サイクルまたは後続のサイクル中に前記
    キャッシュ・バスを用いて第2キャッシュ・タグ・メモ
    リに書き込むステップとをさらに含む請求項8に記載の
    方法。
  10. 【請求項10】 複数のキャッシュ・メモリエントリを
    格納する第1のキャッシュ・メモリと、 前記キャッシュ・メモリエントリに関係する分岐予測情
    報を格納する第2のキャッシュ・メモリと、 前記第1のキャッシュ・メモリより大きい第3のキャッ
    シュ・メモリと、 関連づけられた第1のキャッシュ・メモリエントリが犠
    牲になる場合に前記第2のキャッシュ・メモリから分岐
    予測情報を前記第3のキャッシュ・メモリに書き込むよ
    うに構成された制御回路とを備える装置。
  11. 【請求項11】 前記第1と第2のキャッシュ・メモリ
    がマイクロプロセッサ・チップ上の単一のキャッシュ構
    造体であることを特徴とする請求項10に記載の装置。
  12. 【請求項12】 前記第3のキャッシュ・メモリが第2
    レベルのキャッシュであることを特徴とする請求項10
    に記載の装置。
  13. 【請求項13】 前記第3のキャッシュ・メモリがタグ
    ・キャッシュを含み、前記タグ・キャッシュが前記分岐
    予測情報のためのフィールドを含むことを特徴とする請
    求項10に記載の装置。
  14. 【請求項14】 前記第3のキャッシュ・メモリ内に分
    岐予測有効性ビット・フィールドをさらに含む請求項1
    0に記載の装置。
  15. 【請求項15】 複数のキャッシュ・メモリエントリを
    格納する第1のフィールドと、 前記キャッシュ・メモリエントリに関係する分岐予測情
    報を格納する第2のフィールドとを含むマイクロプロセ
    ッサ上の第1のキャッシュ・メモリと、 前記マイクロプロセッサ・チップの外部にある第2のデ
    ータ・キャッシュ・メモリと、 前記マイクロプロセッサ・チップの外部にあり、分岐予
    測情報フィールドと分岐予測有効性フィールドとを含
    む、第2のタグ・キャッシュ・メモリと、 前記マイクロプロセッサ・チップを前記第2のデータ・
    キャッシュ・メモリおよび前記第2のタグキャッシュ・
    メモリに結合するキャッシュ・バスと、 関連づけられた第1のキャッシュ・メモリエントリが犠
    牲になる場合に、前記第2のキャッシュ・メモリから前
    記第3のキャッシュ・メモリに分岐予測情報を書き込む
    ように構成された前記マイクロプロセッサ上の制御回路
    とを備える装置。
JP9088685A 1996-03-25 1997-03-25 多重レベル分岐予測方法および装置 Pending JPH1055276A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US62141896A 1996-03-25 1996-03-25
US08/621,418 1996-03-25

Publications (1)

Publication Number Publication Date
JPH1055276A true JPH1055276A (ja) 1998-02-24

Family

ID=24490106

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9088685A Pending JPH1055276A (ja) 1996-03-25 1997-03-25 多重レベル分岐予測方法および装置

Country Status (4)

Country Link
EP (1) EP0798632B1 (ja)
JP (1) JPH1055276A (ja)
KR (1) KR970066889A (ja)
DE (1) DE69715280T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012502367A (ja) * 2008-09-05 2012-01-26 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 疎及び密予測を伴うハイブリッド分岐予測デバイス

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6092182A (en) * 1998-06-24 2000-07-18 Advanced Micro Devices, Inc. Using ECC/parity bits to store predecode information
US6427192B1 (en) * 1998-09-21 2002-07-30 Advanced Micro Devices, Inc. Method and apparatus for caching victimized branch predictions
US6175909B1 (en) 1999-02-02 2001-01-16 Advanced Micro Devices, Inc. Forwarding instruction byte blocks to parallel scanning units using instruction cache associated table storing scan block boundary information for faster alignment
US6877089B2 (en) * 2000-12-27 2005-04-05 International Business Machines Corporation Branch prediction apparatus and process for restoring replaced branch history for use in future branch predictions for an executing program
US7024545B1 (en) * 2001-07-24 2006-04-04 Advanced Micro Devices, Inc. Hybrid branch prediction device with two levels of branch prediction cache
US8782384B2 (en) 2007-12-20 2014-07-15 Advanced Micro Devices, Inc. Branch history with polymorphic indirect branch information
US9519480B2 (en) * 2008-02-11 2016-12-13 International Business Machines Corporation Branch target preloading using a multiplexer and hash circuit to reduce incorrect branch predictions
US9405690B2 (en) 2013-08-07 2016-08-02 Oracle International Corporation Method for storing modified instruction data in a shared cache
US20150268961A1 (en) * 2014-03-21 2015-09-24 Samsung Electronics Co., Ltd. Decoupling l2 btb from l2 cache to accelerate search for miss after miss

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4679141A (en) * 1985-04-29 1987-07-07 International Business Machines Corporation Pageable branch history table
US4943908A (en) * 1987-12-02 1990-07-24 International Business Machines Corporation Multiple branch analyzer for prefetching cache lines
US5163140A (en) * 1990-02-26 1992-11-10 Nexgen Microsystems Two-level branch prediction cache
US5423011A (en) * 1992-06-11 1995-06-06 International Business Machines Corporation Apparatus for initializing branch prediction information

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012502367A (ja) * 2008-09-05 2012-01-26 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 疎及び密予測を伴うハイブリッド分岐予測デバイス

Also Published As

Publication number Publication date
DE69715280D1 (de) 2002-10-17
KR970066889A (ko) 1997-10-13
EP0798632A2 (en) 1997-10-01
EP0798632B1 (en) 2002-09-11
EP0798632A3 (en) 1997-10-08
DE69715280T2 (de) 2003-08-07

Similar Documents

Publication Publication Date Title
EP0795828B1 (en) Dynamic set prediction method and apparatus for a multi-level cache system
US6212603B1 (en) Processor with apparatus for tracking prefetch and demand fetch instructions serviced by cache memory
US4626988A (en) Instruction fetch look-aside buffer with loop mode control
US7493452B2 (en) Method to efficiently prefetch and batch compiler-assisted software cache accesses
US5551001A (en) Master-slave cache system for instruction and data cache memories
JP3577331B2 (ja) キャッシュメモリシステムおよびマイクロプロセッサ内の命令を操作するための方法
US5784590A (en) Slave cache having sub-line valid bits updated by a master cache
US6216206B1 (en) Trace victim cache
USRE45078E1 (en) Highly efficient design of storage array utilizing multiple pointers to indicate valid and invalid lines for use in first and second cache spaces and memory subsystems
KR100884351B1 (ko) 타입 비트들을 이용한, 레벨 2 캐시에서의 ecc 및프리디코드 비트들의 저장 추적
US6012134A (en) High-performance processor with streaming buffer that facilitates prefetching of instructions
US6321321B1 (en) Set-associative cache-management method with parallel and single-set sequential reads
JP3836322B2 (ja) プリデコード情報を記憶するためのecc/パリティビットの使用
JP3718302B2 (ja) 命令取り出し方法および装置
JPH10232827A (ja) 先取りキャッシュ書戻しの方法と装置
JPH1055276A (ja) 多重レベル分岐予測方法および装置
US5926841A (en) Segment descriptor cache for a processor
US6976130B2 (en) Cache controller unit architecture and applied method
WO1997034229A9 (en) Segment descriptor cache for a processor
US11797308B2 (en) Fetch stage handling of indirect jumps in a processor pipeline
US6877069B2 (en) History-based carry predictor for data cache address generation
US7251710B1 (en) Cache memory subsystem including a fixed latency R/W pipeline
US5687350A (en) Protocol and system for performing line-fill address during copy-back operation
KR20040047398A (ko) 캐쉬 메모리를 이용한 데이터 억세스 방법
JP2002007212A (ja) キャッシュ・メモリ・システム及びキャッシュ・メモリ制御方法