JP3518770B2 - 命令をその少なくとも1つの実行装置へ迅速にディスパッチする方法および装置 - Google Patents
命令をその少なくとも1つの実行装置へ迅速にディスパッチする方法および装置Info
- Publication number
- JP3518770B2 JP3518770B2 JP21921993A JP21921993A JP3518770B2 JP 3518770 B2 JP3518770 B2 JP 3518770B2 JP 21921993 A JP21921993 A JP 21921993A JP 21921993 A JP21921993 A JP 21921993A JP 3518770 B2 JP3518770 B2 JP 3518770B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- branch
- instructions
- class
- 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.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 14
- 238000003491 array Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 9
- YRRFNWAQLGOASH-UHFFFAOYSA-N n-pyren-1-ylformamide Chemical compound C1=C2C(NC=O)=CC=C(C=C3)C2=C2C3=CC=CC2=C1 YRRFNWAQLGOASH-UHFFFAOYSA-N 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 101150118748 Ddr1 gene Proteins 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3844—Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
に関するものである。更に詳しくいえば、本発明はコン
ピュータ装置における命令のプリフェッチおよびディス
パッチに関するものである。
れると、分岐の向きおよびターゲット・アドレスが決定
されるまで、コンピュータ装置における命令のフェッチ
ングおよびディスパッチングが停止される。このなにも
しない手法の結果としてシステムの性能が低下するか
ら、現在の高性能コンピュータ設計にはそれはめったに
用いられない。システムの性能を向上させるために、分
岐の向きの決定を待つことなしに命令のフェッチングお
よびディスパッチングを継続できるようにするための種
々の技術が開発されている。命令のプリフェッチングお
よびディスパッチングを継続する効率向上の中心を成す
ものは分岐の向きを予測する能力である。分岐の向きを
予測するために下記のようないくつかの共通のやり方が
ある。
アルゴリズムが、より高い確率の向きであると予め定め
られている同じ向きを常に予測する。1つの例が「分岐
をとられた」向きである。 2.動的ソフトウェア予測:この手法においては、ソフ
トウェア分岐予測ビットにより示唆されたヒントを用い
て分岐予測アルゴリズムが分岐の向きを予測する。 3.動的ハードウェア予測:分岐予測表に保持されてい
る分岐履歴情報を基にして分岐予測アルゴリズムが分岐
の向きを予測する。
予測的中率は一般に75%以下である。予測の外れの後
始末の費用が高く付くから、その予測的中率は高いスカ
ラー性と高い性能の少なくとも一方にとっては一般に低
すぎる。動的ソフトウェア予測手法は、トレース・スケ
ジューリングとして知られているコンパイル技術に関連
して用いられた時に、非常に良く機能する。トレース・
スケジューリングがないと、予測的中率は一般に非常に
低い。不幸なことに、あるプログラムおよびある実動化
へトレース・スケジューリングを適用することはかなり
困難である。動的ハードウェア予測の的中率は一般にか
なり高い。しかし、動的ハードウェア予測では設計がか
なり複雑になり、別々の分岐予測表を保持するために付
加ハードウェアを必要とする。また、絶えず増大するキ
ャッシュの大きさ、または絶えず向上する実行速度に対
応するように分岐予測表を拡張することはかなり困難で
ある。更に、動的ハードウェア予測はキャッシュの可干
渉性を維持するためにかなり複雑になる。
ウェアを増加させることの少なくとも一方をひき起こす
ことなしに分岐予測的中率を高くする技術を得ることが
望ましい。
法の下では、つぎのフェッチ・アドレスがターゲット・
アドレスまたは一連の次のフェッチ・アドレスであるか
とは無関係に、次のフェッチ・アドレスの決定に際し
て、得られている性能の大部分を無視するわけにはいか
ない。この手法が非常に正確である動的な次のフェッチ
・アドレス予測を行うのも望ましい。同様に、制御転送
のためにプリフェッチした命令に関して得られる性能の
大部分を無視するわけにもいかない。したがって、この
手法が零待ち時間制御転送プリフェッチを行うのであれ
ばそれは更に望ましい。
本発明はイン−キャッシュ(in−cache)として
も知られている、従来のディスパッチ予測注釈を用い
て、先に述べた本発明の目的および希望の結果を達成す
る、命令を迅速にプリフェッチおよびディスパッチする
方法および装置を提供するものである。
ッシュ(in−cache)としても知られている、従
来のディスパッチ予測注釈を用いて、命令を迅速にプリ
フェッチおよびディスパッチする方法および装置を開示
するものである。M個の分岐予測(BRPD)フィール
ドが、命令キャッシュの各キャッシュ線のn個の命令の
各命令セットへ付加される。m個のBRPDフィールド
が、対応するn個の命令のm個の「支配的な」命令に対
するm個の分岐予測を記憶するために用いられる。キャ
ッシュ線のBRPDフィールドは分岐予測アルゴリズム
の所定の初期化方針に従って初期化され、キャッシュ線
はまず命令キャッシュへもたらされる。キャッシュ線の
BRPDセットはキャッシュ線の対応する命令セットで
同時にアクセスされる。選択された命令セットに対応す
るBRPDのセットから1つのBRPDが選択される。
実際の分岐の向きが決定された時に、選択されたBRP
Dが分岐予測アルゴリズムの所定の更新方針に従って更
新される。
予測(NFAPD)フィールドが命令キャッシュの各キ
ャッシュ線のn個の命令の各命令セットへ供給される。
ここにkはmより小さいか、mに等しい。k個のNFA
PDフィールドは、n個の対応する命令のk個の「支配
的な」命令に対するk個の次のフェッチアドレス予測を
記憶するために、用いられる。対応するBRPDフィー
ルドが「分岐が取られるであろう」と予測するならば、
NFAPDは対応する「支配的な」命令の次のターゲッ
ト・アドレスを予測し、さもなければNFAPDは対応
する「支配的な」命令の次の順次アドレスを予測する。
BRPDアドレスと同様に、キャッシュ線のNFAPD
フィールドは、次のフェッチ・アドレス予測アルゴリズ
ムの予め定められた初期化方針に従って初期化され、キ
ャッシュ線はまず命令キャッシュへもたらされる。キャ
ッシュ線のNFAPDフィールドのセットは、キャッシ
ュ線の命令の対応するセットと同時にアクセスもされ
る。選択された命令セットに対応するNFAPDのセッ
トから1つのNFAPDが選択される。実際の次のフェ
ッチ・アドレスが決定されると、選択されたNFAPD
は次のフェッチ・アドレス予測アルゴリズムの予め定め
られた初期化方針に従って更新される。
チおよびディスパッチ装置の次のフェッチ・アドレス
(NFA)レジスタに直ちに記憶されて、選択されたN
FAPDを次の命令アクセスのためのNFAとして使用
できるようにする。NFA(すなわち、従来の命令キャ
ッシュ・アドレスの選択されたNFAPD)は、次の命
令キャッシュ・アクセス中にBRPDとNFAPDを選
択するためにも用いられる。その結果、プリフェッチ待
ち時間が零で、命令をターゲット・アドレス経路はもち
ろん、順次連続してプリフェッチできる。
n個の各命令セットへn個の命令クラス(Iクラス)フ
ィールドが付加される。n個の対応する命令のためのn
個の命令クラスを記憶するためにn個のIクラスフィー
ルドが用いられる。キャッシュ線の命令クラスは、キャ
ッシュ線が最初に命令キャッシュへもたらされる前に予
め決定され、および予め記憶されるか、またはキャッシ
ュ線が命令キャッシュへ最初にもたらされる間に決定お
よび記憶される。BRPDおよびNFAPDと同様に、
キャッシュ線のIクラスのセットはキャッシュ線の命令
の対応するセットと同時にアクセスもされる。1つのI
クラスが選択された命令セットに対応するIクラスのセ
ットから選択される。Iクラスを選択するためにNFA
も用いられる。適切な更新動作を指定するために、選択
されたIクラスは、実際にとられた分岐の向きと、予め
定められたBRPDおよびNFAPD更新方針により決
定された実際の次のフェッチアドレスと共に用いられ
る。
とkは1に等しい。入来するキャッシュ線の各BRPD
フィールドは、制御転送命令の全てのクラスに対して
「分岐が取られないであろう」と予測するために初期化
される。アクセスされているキャッシュ線の選択された
BRPDフィールドが分岐の向きを正しく予測すると、
それは更新されない。他方、アクセスされているキャッ
シュ線の選択されたBRPDフィールドが分岐の向きを
不正確に予測すると、それは実際にとられる分岐の向き
へ更新される。入来するキャッシュ線のNFAPDフィ
ールドは、制御転送命令の全てのクラスに対して、対応
する次のフェッチ・アドレスを、現在のプログラム・カ
ウンタにキャッシュ・フェッチ・サイズを加えたものに
等しいアドレスであることを予測するために、初期化さ
れる。アクセスされているキャッシュ線の選択されたN
FAPDフィールドが次のフェッチアドレスを正しく予
測すると、それは更新されない。他方、アクセスされて
いるキャッシュ線の選択されたBRPDフィールドが分
岐の向きを不正確に予測すると、分岐の向きが不正確に
予測されたとするならば実際の次のフェッチ・アドレス
へ更新され、分岐の向きが不正確に予測されないとする
ならばそれは、現在のプログラム・カウンタにキャッシ
ュ・フェッチ・サイズを加えたものに等しいアドレスへ
更新される。
るキャッシュ線の選択されたNFAPDフィールドが次
のフェッチアドレスを正しく予測すると、それでもそれ
は正しい分岐の向き予測で更新される。この明細書にお
いては、イン−キャッシュ予測としても知られている、
従来のディスパッチ予測注釈を用いて命令を迅速にディ
スパッチする方法および装置を開示する。以下の説明に
おいては、本発明を完全に理解できるようにするため
に、特定の数、特定の材料、特定の構成について述べ
る。しかし、それらの特定の詳細なしに本発明を実施で
きることが当業者には明らかであろう。他の場合には、
本発明を不必要にあいまいにしないようにするために、
周知のシステムは線図またはブロック図で示した。
を示す機能的ブロック図が示されている図1を参照す
る。この図には、いくつかの実行装置14へ結合された
命令プリフェッチおよびディスパッチ装置12を備える
コンピュータ装置10が示されている。コンピュータ装
置10は命令キャッシュ16とデータ・キャッシュ18
も備えている。それらのキャッシュはメモリ装置20へ
結合される。命令キャッシュ16は命令プリフェッチお
よびディスパッチ装置12へも結合され、データ・キャ
ッシュ18は実行装置14へも結合される。また、コン
ピュータ装置10はメモリ管理装置22を備える。この
命令管理装置は命令プリフェッチおよびディスパッチ装
置12と、命令キャッシュ16と、データ・キャッシュ
18と、メモリ装置20へも結合される。それらの装置
は統合して、メモリ装置22から命令をフェッチし、そ
れらの命令を実行するために実行装置14へディスパッ
チし、実行結果をメモリ装置20に記憶する。命令プリ
フェッチおよびディスパッチ装置12と命令キャッシュ
16を除き、別の素子14、18〜22はほとんどのコ
ンピュータ装置において見出される広い範囲のそれらの
素子を表すことを意図するものである。それらの別の素
子4、18〜22の構成および機能は周知のことである
から、ここではそれらについての説明は省略する。命令
プリフェッチおよびディスパッチ装置12と、命令キャ
ッシュ16については、後で残りの図を参照して詳しく
説明する。
るコンピュータ装置で本発明を説明するが、異なるアー
キテクチャを有する別のコンピュータ装置で本発明を実
施できることがわかるであろう。とくに、本発明はメモ
リ管理装置を持たないコンピュータ装置で実施できる。
更に、本発明は命令キャッシュとデータ・キャッシュの
組合わせで、または命令キャッシュだけで実施できる。
ック図が示されている図2を参照する。この図には命令
アレイ24と、対応するタグ・アレイ26と、対応する
命令クラス・アレイ27と、対応する予測注釈アレイ2
8と、選択論理30とを備える。アレイ24〜28は選
択論理30へ結合される。それらの素子は統合して、命
令と、対応する命令クラスと、分岐予測と、次のフェッ
チ・アドレス予測とを記憶し、命令プリフェッチおよび
ディスパッチ装置12へ供給する。
4〜28を別々の装置として示しているが、本発明は一
緒に組合わされたアレイ24〜28またはそれらのアレ
イの任意の組合わせで実施できることがわかるであろ
う。
線、たとえば、34を備える。各キャッシュ線はrセッ
トの命令ブロック、たとえば、44a〜44* を有す
る。各命令セット44aはn個の命令を備える。タグ・
アレイ26は対応するタグ・エントリ、たとえば、36
を備える。各タグ・エントリはr個のアドレス・タグお
よび関連する制御情報、たとえば、46a〜46* を有
する。各アドレス・タグ・セットおよび関連する制御情
報、たとえば46aは、対応するn個の命令のために、
有効ビットおよび使用ビットのような、アドレス・タグ
および関連する制御情報を備える。アドレス・タグおよ
び関連する制御情報、たとえば46a〜46* 、および
命令ブロック、たとえば44a〜44* は周知であるか
ら、それらについての説明は省略する。
ラス・エントリ、たとえば37を備える。各命令クラス
・エントリはr個の命令クラス・セット、たとえば47
a〜47* を有する。予測注釈アレイ28は対応する予
測注釈エントリ、たとえば38を備える。各予測注釈エ
ントリはr個の予測注釈セット、たとえば48a〜48
* を有する。命令クラスのセット、たとえば47aの内
容と、予測注釈のセット、たとえば48aの内容との対
応する命令分岐予測のセット、たとえば44aに対する
関係が図3〜図4に示されている。
ットは対応するn個の命令に対してn個の命令クラス
(Iクラス)を備える。n個の命令クラス47は対応す
るn個の命令の命令クラスのための符号化したものを記
憶する。命令クラスの特定の例がプログラム・カウンタ
(PC)相対分岐と、レジスタ間接分岐と、メモリ・ア
クセスと、算術および浮動小数点演算とである。一実施
例においては、命令が複号され、命令クラスの符号化さ
れたものが命令キャッシュによりIクラスに記憶され、
キャッシュ線は命令キャッシュへもたらされる。別の実
施例においては、キャッシュ線が命令キャッシュへもた
らされる前に、命令が複号され、命令クラスの符号化さ
れたものが命令キャッシュによりIクラスに記憶され
る。
ト48は、対応するn個の命令に対してm個のBRPD
とk個のNFAPDを備える。ここにmとkはnより小
さいか、それに等しい。m個のBRPDは、対応するn
個の命令のm個の「優勢な」命令に対する分岐予測と次
のフェッチ・アドレス予測を記憶し、k個のNFAPD
は、対応するn個の命令のk個の「優勢な」命令に対す
る分岐予測と次のフェッチ・アドレス予測を記憶する命
令の優勢さは、たとえば、最も最近のアクセスまたはプ
ログラム順を含めた各種の周知のやりかたで決めること
ができる。キャッシュ線が最初に命令キャッシュへもた
らされた時に、分岐および次のフェッチ・アドレス予測
アルゴリズムに従って、BRPDとNFAPDは命令キ
ャッシュにより初期化される。その後でBRPDとNF
APDは命令プリフェッチおよびディスパッチ装置によ
り、分岐および次のフェッチ・アドレス予測アルゴリズ
ムの更新方針に従ってアクセスされ、選択され、更新さ
れる。とういのは、分岐および次のフェッチ・アドレス
予測の的中または外れが命令プリフェッチおよびディス
パッチ装置により決定されるからである。BRPD40
およびNFAPD42の初期化、選択および更新につい
ては後で図7〜図9を参照して詳しく説明する。分岐予
測アルゴリズムおよび次のフェッチ・アドレス予測アル
ゴリズムはアプリケーションに依存するが、それについ
ては後で図10〜図12を参照して説明する。
キャッシュ線に対する予測注釈エントリの例の予測注釈
のセットの例のBRPDの内容の例とNFAPDの内容
の例とを備えたある予測注釈のセットにおけるBRPD
の内容とNFAPDの内容を示す。それらの実施例のお
のおのに対してはn=4、m=1、k=1である。更
に、1ビットBRPDが用いられ、その「0」は「分岐
がとられていない」が予測されたことを意味し、「1」
は「分岐がとられた」が予測されたことを意味する。あ
るいは、別の実施例においては、各BRPDを記憶する
ために多数のビットを使用して、各分岐予測についてよ
り精度が高い、より多くの情報を与えることができる。
「0,next seq addr」52は、4つの命
令の対応するセットが分岐命令を持たないような例を示
す。更に、分岐アルゴリズムは「零」分岐が「とられな
い」ことを予測し、次のフェッチ・アドレス・アルゴリ
ズムは次のフェッチ・アドレスが次の順次アドレスであ
ることを予測する。したがって、BRPDは「0」にセ
ットされ、NFAPDは「next seq add
r」へセットされる。あるいは、別の実施例において
は、代わりに分岐命令のない命令のセットに対応するB
RPDフィールドを無視できる。
「0,next seq addr」54と、BRPD
およびNFAPDの対の第3の例「1,target
addr1」56は、4つの命令の対応するセットが分
岐命令、すなわち、第1の命令を備えるような2つの例
を示す。1つの場合、54には、分岐予測アルゴリズム
は分岐が「とられないであろう」ことを予測し、次のフ
ェッチ・アドレス・アルゴリズムは次のアドレスが次の
順次アドレスであろうことを予測する。したがって、B
RPDは「0」へセットされ、NFAPDは「next
seq addr」へセットされる。別の場合、56
には、分岐予測アルゴリズムは分岐が「とられるであろ
う」ことを予測し、次のフェッチ・アドレス・アルゴリ
ズムは次のアドレスが第1の命令の次のターゲット・ア
ドレスであろうことを予測する。したがって、BRPD
は「1」へセットされ、NFAPDは「target
addr1」へセットされる。
「0,next seq addr」58と、BRPD
およびNFAPDの対の第5の例「1,target
addr1」60は、4つの命令の対応するセットが2
つの分岐命令、すなわち、第1の命令と第3の命令を備
えるような2つの例を示す。1つの場合、58には、分
岐予測アルゴリズムは分岐が「とられないであろう」こ
とを予測し、次のフェッチ・アドレス・アルゴリズムは
次のアドレスが次の順次アドレスであろうことを予測す
る。したがって、BRPDは「0」へセットされ、NF
APDは「next seq addr」へセットされ
る。別の場合、60には、分岐予測アルゴリズムは第1
の分岐命令、すなわち第1の命令が「とられるであろ
う」ことを予測するが、第2の分岐命令、すなわち第3
の命令が「とられないであろう」ことを予測する。更
に、この例の下においては、プログラムの実行が開始さ
れて4つの命令の第1の命令がセットされ、次のフェッ
チ・アドレス・アルゴリズムは次のアドレスが第1の分
岐命令、すなわち、第1の命令、の次のターゲット・ア
ドレスであろうことを予測する、と更に仮定する。した
がって、BRPDは「1」へセットされ、NFAPDは
「target addr1」へセットされる。
「1,target addr3」62と、BRPDお
よびNFAPDの対の第7の例「1,target a
ddr1」64は、4つの命令の対応するセットが2つ
の分岐命令、すなわち、第1の命令と第3の命令を備え
るような2つの例を示す。1つの場合、62には、分岐
予測アルゴリズムは第1の分岐命令、すなわち第1の命
令が「とられないであろう」ことを予測が、第2の分岐
命令、すなわち第3の命令が「とられるであろう」こと
を予測し、次のフェッチ・アドレス・アルゴリズムは次
のアドレスが第2の分岐命令、すなわち第3の命令であ
ろうことを予測する。したがって、BRPDは「1」へ
セットされ、NFAPDは「target addr
3」へセットされる。別の場合、64には、分岐予測ア
ルゴリズムは両方の分岐命令が「とられるであろう」こ
とを予測する。第2の分岐命令、すなわち第3の命令が
「とられないであろう」ことを予測する。更に、この例
の下においては、命令の優勢な状態が最後のアクセスを
基にして実現され、第1の命令が第1の命令と第3の命
令の間のより最近にアクセスされた命令であり、次のフ
ェッチ・アドレス・アルゴリズムは次のアドレスが第1
の分岐命令、すなわちより最近にアクセスされた第1の
命令の次のターゲット・アドレスであろうことを予測す
る、と更に仮定する。したがって、BRPDは「1」へ
セットされ、NFAPDは「target addr
1」へセットされる。
PDを有する予測注釈の各セットで説明したが、m個の
BRPDだけを有して、NFAPDを持たない予測注釈
の各セットで本発明を実行できることがわかるであろ
う。そのような実施例においては、選択されたBRPD
を基にして、命令プリフェッチおよびディスパッチ装置
によりNFAを計算できる。
6は次のフェッチ・アドレスを命令プリフェッチおよび
ディスパッチ装置から入力として受ける。それに応じ
て、キャッシュ線の1つに記憶されている命令と、それ
らの命令の対応するタグおよび予測注釈エントリがアク
セスされ、選択論理30へ供給される。この選択論理3
0は命令のセットと、分岐予測と、次のフェッチ・アド
レス予測とを選択し、それらを命令プリフェッチおよび
ディスパッチ装置へ供給する。分岐予測および次のフェ
ッチ・アドレス予測は対応する予測注釈セットから選択
される。選択論理30の2つの例が図5に示されてい
る。
論理の実施例を示す。それぞれのアレイから検索された
命令セット(instr_Blks)と対応するタグ・
セット(TAG)、命令クラス(IClasses)と
予測注釈(PA)はセット選択論理66へまず供給され
る。セット選択論理66は命令のセットおよびそれの対
応するタグのセット(TAG_i)と、命令クラス(I
Class_i)と、予測注釈(PA_i)とを現在の
フェッチ・アドレス(NFA)を用いて選択する。それ
から、選択された命令クラスのセット(IClass_
i)と選択された予測注釈(PA_i)がBRPDおよ
びNFA選択論理68へ供給される。BRPDおよびN
FAPD選択論理68は現在のフェッチ・アドレス(N
FA)を用いて、BRPD(BRPD_i)とNFAP
D(NFAPD_i)を予測注釈の選択されたセット
(PA_i)のm個のBRPDおよびk個のNFAPD
から選択する。
0日に出願され、本願出願人へ譲渡された「従来のアク
セス予測注釈を用いるデータ記憶装置からの迅速データ
検索(Rapid Deta Retrieval F
rom A Deta Storage Using
Prior Access PredictiveAn
notation)」という名称の米国特許出願No.
07/906,699明細書に記載されている選択論理
を含めて、ほとんどのコンピュータ装置において見出さ
れる広い種類の選択論理を表すことを意図するものであ
る。BRPDおよびNFAPD選択論理68は周知の各
種の組合わせ論理で実現できる。
例を示す。この実施例は、mとkが1に等しいためにB
RPDおよびNFAPD選択論理を必要としないことを
除き、図5に示されている実施例とほぼ同じである。B
RPDおよびNFAPD選択論理をなくすことにより、
命令ブロックが選択されると直ちにBRPDおよびNF
APDが選択される。
であろう。mとkがnへ向かって増加するにつれて、分
岐予測と次のフェッチ・アドレス予測が的中する傾向が
高くなるが、分岐予測および次のフェッチ・アドレス予
測を選択するために要する時間が長くなる結果として、
次のフェッチ・アドレス予測フェッチの間の待ち時間も
長くなる。他方、mとrが1へ向かって減少するにつれ
て、分岐予測と次のフェッチ・アドレス予測が的中する
傾向が低くなるが、分岐予測および次のフェッチ・アド
レス予測を選択するために要する時間が短くなる結果と
して、フェッチの間の待ち時間も短くなる。実際に、図
6に示すようにmとkが1に等しいと、BRPDおよび
NFAPD選択論理を無くすことができ、それによりB
RPDおよびNFAPDを命令分岐予測と同時に選択で
きる。以下の説明に基づいて、BRPDおよびNFAP
D選択論理を無くすことにより、命令フェッチ待ち時間
を零まで減少する事が容易になる。いいかえると、現在
のフェッチの命令を考慮することなしに次のフェッチを
続行できることがわかるであろう。
ィスパッチ装置による分岐予測的中と、次のフェッチ・
アドレス予測的中と、次のフェッチ・アドレス決定とが
示されている図6を参照する。図6に示すように、命令
プリフェッチおよびディスパッチ装置は比較器69を備
える。この比較器69はBRPDとNFAPDを命令キ
ャッシュから入力として受け、実際の分岐決定および次
のフェッチ・アドレス決定をプリフェッチおよびディス
パッチ装置から入力として受ける。それに応じて、比較
器は分岐予測的中/外れ信号および次のフェッチ・アド
レス的中/外れ信号を出力する。実際の分岐決定および
次のフェッチ・アドレス決定は別々に受けることができ
るから、分岐的中/外れ信号および次のフェッチ・アド
レス的中/外れ信号を異なる時刻に発生できることがわ
かるであろう。比較器69はほとんどのコンピュータ装
置において見出される広い種類の比較器を表すことを意
図するものである。比較器の構成および基本的な機能は
周知であるから、それについては説明を省略する。
チおよびディスパッチ装置は次のフェッチ・アドレス・
レジスタ70を更に備える。命令キャッシュから受けら
れたNFAPDは次のフェッチ・アドレス・レジスタに
直ちに記憶され、次の命令フェッチのためのフェッチ・
アドレス(NFA)として用いられる。図5に示されて
いる実施例の場合におけるように、NFAPDが命令ブ
ロックと同時に選択されるとすると、NFAPDをNF
Aレジスタに直接記憶し、それを次の命令フェッチのN
FAとして用いると、引き続く命令フェッチの間の待ち
時間が零になる結果となる。
流れ図が示されている図7を参照する。命令キャッシュ
はフェッチ・アドレスを命令プリフェッチおよびディス
パッチ装置から受ける(ブロック74)。それに応じ
て、キャッシュ的中があるかどうかを命令キャッシュは
判定する(ブロック76)。先に説明したようにキャッ
シュ的中が存在するものとすると、命令キャッシュは、
命令のセットと、分岐予測と、次のフェッチ・アドレス
予測とを選択し、それらを命令プリフェッチおよびディ
スパッチ装置へ供給する(ブロック78)。
命令キャッシュはキャッシュ充填を開始する(ブロック
80)。メモリから戻された命令でキャッシュ線が充填
されると、命令は命令プリフェッチおよびディスパッチ
装置へバイパスされる(ブロック82)。あるいは、キ
ャッシュ線が充填された後で命令を命令プリフェッチお
よびディスパッチ装置へ供給できる。先に説明したよう
に、命令が予め記録されず、かつ命令クラスが予め記録
されていないような実施例においては、命令キャッシュ
はキャッシュ線が充填されている間に命令を更に復号
し、命令クラスをIクラスに記憶する(ブロック8
4)。また、充填されているキャッシュ線のn個の命令
のセットに対応するm個のBRPDとk個のNFAPD
が、分岐および次のフェッチ・アドレス予測アルゴリズ
ムの初期化方針に従って初期化される(ブロック8
6)。
チ装置の動作の流れを示す2つの流れ図が示されている
図8〜図9を参照する、図8に示すように、フェッチ/
プリフェッチを開始すべっかどうかを命令プリフェッチ
およびディスパッチ装置は決定する(ブロック94)。
フェッチ/プリフェッチを開始すべきであるとすると、
命令プリフェッチおよびディスパッチ装置はNFAレジ
スタからの次のフェッチ・アドレス(NFA)を命令キ
ャッシュへドライブする(ブロック94)。それに応じ
て、命令キャッシュは命令プリフェッチおよびディスパ
ッチ装置へ求められている命令ブロックを供給し、命令
プリフェッチおよびディスパッチ装置は戻された命令ブ
ロックを待ち行列化する。先に説明したように、NFA
レジスタ内のNFAは、最後のフェッチに対して受けら
れた命令ブロックとともに命令キャッシュから受けられ
た選択されたNFAPDである。その間に、命令待ち行
列が空でないとすると、命令プリフェッチおよびディス
パッチ装置は、システム・アーキテクチャに応じて、1
つまたは複数の命令をディスパッチする(ブロック9
8)。コンピュータ装置が停止されるまで、命令プリフ
ェッチおよびディスパッチ装置は上記のプロセス・ステ
ップを繰り返す(ブロック94〜98)。
びディスパッチ装置は分岐決定を決定し、または分岐決
定を実行装置から受ける(ブロック108)。それか
ら、命令プリフェッチおよびディスパッチ装置は分岐予
測抵抗値中が存在するかどうか判定する(ブロック11
0)。選択されたBRPDが分岐の向きを不正確に予測
したとすると、命令プリフェッチおよびディスパッチ装
置は命令キャッシュをアクセスし、以前にアクセスされ
たキャッシュ線内の以前に選択されたBRPDおよびN
FAPDをそれにしたがって更新する(ブロック11
4)。選択されたBRPDが分岐の向きを正確に予測し
たとすると、続いて次のフェッチ・アドレス決定を決定
するか、次のフェッチ・アドレス決定を実行装置から受
けた時に(ブロック111)、次のアドレス的中が存在
するかどうかを命令プリフェッチおよびディスパッチ装
置は判定する(ブロック112)。選択されたNFAP
Dが次のフェッチ・アドレスを不正確に予測したとする
と、命令プリフェッチおよびディスパッチ装置は命令キ
ャッシュをアクセスし、以前にアクセスされたキャッシ
ュ線内の以前に選択されたNFAPDを更新する(ブロ
ック116)。また、選択されたNFAPDが次のフェ
ッチ・アドレスを正確に予測したかどうかとは無関係
に、希望によっては、実行を容易にするために、命令プ
リフェッチおよびディスパッチ装置は、以前にアクセス
されたキャッシュ線内の以前に選択されたBRPDをそ
れでも更新できる(ブロック118)。
予測アルゴリズムの初期化方針および更新方針を示す3
つのブロック図が示されている図10〜図12を参照す
る。分岐および次のフェッチ・アドレス予測アルゴリズ
ムの例は分岐予測が1ビットである。図10には特定の
分岐および次のフェッチ・アドレス予測アルゴリズムの
初期化方針テーブル120が示されている。命令クラス
とは無関係に、「分岐がとられないであろう」ことを予
測するためにBRPDが初期化され、次のフェッチ・ア
ドレスが現在のプログラム・カウンタと次の順次フェッ
チ・ブロック・サイズの和に等しいアドレスであるとい
うことを予測するためにNFAPDが初期化される。実
現に応じて、キャッシュ・ブロック境界整列のために次
の順次フェッチ・ブロック・サイズを調整できるかもし
れないし、調整できないかもしれない。全ての命令に対
してBRPDとNFAPDを命令クラスとは無関係に同
じやり方で初期化することにより、実現が簡単にされる
事がわかるであろう。実現を簡単にすることにより、無
条件PC相対および命令をインデックスしたレジスタに
対するBRPDおよびNFAPDはその最初の予測が外
れるが、後述する更新方針によって、外部の妨害、たと
えば、多数の分岐が同じ予測フィールドを共用するとい
うようなことがなければ、予測は1回だけ外れるだけで
ある。
アドレス予測アルゴリズムに対するプログラム・カウン
タ相対的分岐命令のための更新方針を示す。第1の場合
には、選択されたBRPDが分岐が「とられるであろ
う」と予測したのに、分岐がとられないとすると、12
2、選択されたBRPDが正しい予測、すなわち、「と
られないであろう」へ更新され、選択されたNFAPD
は現在のフェッチ・アドレスおよび次の順次フェッチ・
ブロック・サイズの和へ更新される。第2の場合には、
選択されたBRPDが分岐が「とられるであろう」と予
測して、分岐がとられたが、BRPDが外れたとする
と、124、選択されたNFAPDは正しいフェッチ・
アドレス、すなわち、ターゲット・アドレス、へ更新さ
れる。
岐が「とられないであろう」と予測したのに、分岐がと
られたとすると、126、選択されたBRPDが正しい
予測、すなわち、「とられるであろう」へ更新され、選
択されたNFAPDは正しいフェッチ・アドレスへ更新
される。第4の場合には、選択されたBRPDが分岐が
「とられないであろう」と予測して、分岐がとられなか
ったが、NFAPDが外れたとすると、128、選択さ
れたNFAPDは現在のフェッチ・アドレスおよび次の
順次フェッチ・ブロック・サイズの和へ更新される。
岐が「とられるであろう」と予測して、分岐がとられ、
NFAPDが次のフェッチ・ターゲット・アドレスの予
測に成功した場合には、130、選択されたBRPDお
よびNFAPDは更新されない。同様に、第6の場合に
は、選択されたBRPDが分岐が「とられないであろ
う」と予測して、分岐がとられず、NFAPDが次のフ
ェッチ順次アドレスの予測に成功したとすると、13
2、選択されたBRPDとNFAPDは更新されない。
倍には、実現に応じて、キャッシュ・ブロック境界の整
列のために次の順次フェッチ・ブロック・サイズを調整
すべきか、調整すべきでないかもしれない。また、第2
の場合、第5の場合、および第6の場合には、BRPD
をそれでも、操作を行う代わりに、実際の分岐の向きで
更新できる。
よび次のフェッチ・アドレス予測アルゴリズムに対す
る、レジスタ間接制御転送および無条件プログラム・カ
ウンタ相対的制御のための更新方針を示す。第1の場合
および第4の場合には、選択されたBRPDが分岐が
「とられないであろう」と予測したのに、分岐がとられ
たとすると、134、140、選択されたBRPDが正
しい予測、すなわち、「とられるであろう」へ更新さ
れ、選択されたNFAPDは正しい予測、すなわち、
「とられるであろう」へ更新され、選択されたNFAP
Dは正しいフェッチ・アドレス、すなわち、ターゲット
・アドレスへ更新される。
れたBRPDが分岐が「とられるであろう」と予測し
て、分岐がとられ、NFAPDが外れたとすると、13
6、142、選択されたNFAPDは正しいフェッチ・
アドレス、すなわち、ターゲット・アドレスへ更新され
る。第3の場合および第6の場合には、選択されたBR
PDが分岐が「とられるであろう」と予測して、分岐が
とられ、NFAPDが次のフェッチ・ターゲット・アド
レスの予測に成功すると、140、144、選択された
BRPDとNFAPDは更新されない。同様に、第3の
場合および第6の場合には、何も行わない代わりに、B
RPDをそれでも実際の分岐の向きで更新できる。
である。
ィールド、次のフェッチ・アドレス予測フィールドを示
す。
リオの下におけるセット予測注釈の例に対する分岐予測
フィールドの内容と、次のフェッチ・アドレス予測フィ
ールドの内容との例を示す。
す。
装置による、分岐予測、次のフェッチ・アドレス予測的
中、および次のフェッチ・アドレス判定を示す。
の動作流れ図を示す。
の動作流れ図を示す。
レス予測アルゴリズムの初期化方針および更新方針を示
す。
レス予測アルゴリズムの初期化方針および更新方針を示
す。
レス予測アルゴリズムの初期化方針および更新方針を示
す。
Claims (2)
- 【請求項1】 a)複数の命令セットを命令キャッシュ
・アレイの複数のキャッシュ線に記憶する過程と、 b)複数の対応するタグセットおよび関連する制御情報
を対応するタグ・アレイの対応するタグ・エントリに記
憶する過程と、 c)前記複数の命令セットの対応するものの命令のため
の複数の命令クラスを備える命令クラスのセットの対応
する複数のものを命令クラス・アレイの複数の対応する
命令クラス・エントリに記憶する過程と、 d)前記命令セットの対応する命令のための少なくとも
一つの分岐予測を有する予測注釈のセットの対応する複
数のものを予測注釈アレイの対応する複数の予測注釈エ
ントリに記憶する過程と、 e)前記記憶されている対応する命令クラス、および前
記対応する命令クラスの前記命令のための少なくとも1
つの分岐予測を用いて前記少なくとも1つの実行装置へ
ディスパッチするために、前記記憶されている命令セッ
トのうちの選択された命令セットを繰り返しフェッチお
よびプリフェッチする過程と、 を備える命令を実行する少なくとも1つの実行装置を備
えるコンピュータ装置で、実行するために命令をその少
なくとも1つの実行装置へ迅速にディスパッチする方
法。 - 【請求項2】 a)複数の命令セットを記憶する複数の
キャッシュ線を備える命令アレイ手段と、 b)複数の対応するタグセットおよび関連する制御情報
を対応するタグ・アレイを記憶するための複数のタグ・
エントリを備えるタグ・アレイ手段と、 c)前記複数の命令セットの対応するものの命令のため
の複数の命令クラスを備える命令クラスのセットの対応
する複数のものを記憶する複数の命令クラス・エントリ
を備える命令クラス・アレイ手段と、 d)前記複数の命令セットの対応する命令のための少な
くとも一つの分岐予測を有する予測注釈のセットの対応
するものを記憶する複数の予測注釈エントリを備える予
測注釈アレイ手段と、 e)前記命令アレイ手段と、前記タグ・アレイ手段と、
前記命令クラス・アレイ手段と、前記予測注釈アレイ手
段とへ結合され、前記記憶されている対応する命令クラ
ス、および前記対応する命令クラスの前記命令のための
少なくとも1つの分岐予測を用いて前記少なくとも1つ
の実行装置へディスパッチするために、前記記憶されて
いる命令セットのうちの選択された命令セットを繰り返
しフェッチおよびプリフェッチするフェッチおよびプリ
フェッチ手段と、 を備える命令を実行する少なくとも1つの実行装置を備
えるコンピュータ装置で、実行するために命令をその少
なくとも1つの実行装置へ迅速にディスパッチする装
置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US93837192A | 1992-08-31 | 1992-08-31 | |
US938,371 | 1992-08-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06208463A JPH06208463A (ja) | 1994-07-26 |
JP3518770B2 true JP3518770B2 (ja) | 2004-04-12 |
Family
ID=25471319
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP21921993A Expired - Lifetime JP3518770B2 (ja) | 1992-08-31 | 1993-08-12 | 命令をその少なくとも1つの実行装置へ迅速にディスパッチする方法および装置 |
Country Status (5)
Country | Link |
---|---|
US (2) | US6304961B1 (ja) |
EP (1) | EP0586057B1 (ja) |
JP (1) | JP3518770B2 (ja) |
KR (1) | KR100287628B1 (ja) |
DE (1) | DE69327927T2 (ja) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5367703A (en) * | 1993-01-08 | 1994-11-22 | International Business Machines Corporation | Method and system for enhanced branch history prediction accuracy in a superscalar processor system |
US5742805A (en) * | 1996-02-15 | 1998-04-21 | Fujitsu Ltd. | Method and apparatus for a single history register based branch predictor in a superscalar microprocessor |
US5774710A (en) * | 1996-09-19 | 1998-06-30 | Advanced Micro Devices, Inc. | Cache line branch prediction scheme that shares among sets of a set associative cache |
US5954816A (en) * | 1996-11-19 | 1999-09-21 | Advanced Micro Devices, Inc. | Branch selector prediction |
US5995749A (en) * | 1996-11-19 | 1999-11-30 | Advanced Micro Devices, Inc. | Branch prediction mechanism employing branch selectors to select a branch prediction |
US6253316B1 (en) | 1996-11-19 | 2001-06-26 | Advanced Micro Devices, Inc. | Three state branch history using one bit in a branch prediction mechanism |
US5978906A (en) * | 1996-11-19 | 1999-11-02 | Advanced Micro Devices, Inc. | Branch selectors associated with byte ranges within an instruction cache for rapidly identifying branch predictions |
US5974538A (en) * | 1997-02-21 | 1999-10-26 | Wilmot, Ii; Richard Byron | Method and apparatus for annotating operands in a computer system with source instruction identifiers |
US6108774A (en) * | 1997-12-19 | 2000-08-22 | Advanced Micro Devices, Inc. | Branch prediction with added selector bits to increase branch prediction capacity and flexibility with minimal added bits |
US6112299A (en) * | 1997-12-31 | 2000-08-29 | International Business Machines Corporation | Method and apparatus to select the next instruction in a superscalar or a very long instruction word computer having N-way branching |
US6546478B1 (en) | 1999-10-14 | 2003-04-08 | Advanced Micro Devices, Inc. | Line predictor entry with location pointers and control information for corresponding instructions in a cache line |
US6647490B2 (en) * | 1999-10-14 | 2003-11-11 | Advanced Micro Devices, Inc. | Training line predictor for branch targets |
US6636959B1 (en) | 1999-10-14 | 2003-10-21 | Advanced Micro Devices, Inc. | Predictor miss decoder updating line predictor storing instruction fetch address and alignment information upon instruction decode termination condition |
US6502188B1 (en) | 1999-11-16 | 2002-12-31 | Advanced Micro Devices, Inc. | Dynamic classification of conditional branches in global history branch prediction |
US7769983B2 (en) * | 2005-05-18 | 2010-08-03 | Qualcomm Incorporated | Caching instructions for a multiple-state processor |
US7590825B2 (en) | 2006-03-07 | 2009-09-15 | Intel Corporation | Counter-based memory disambiguation techniques for selectively predicting load/store conflicts |
US7711927B2 (en) | 2007-03-14 | 2010-05-04 | Qualcomm Incorporated | System, method and software to preload instructions from an instruction set other than one currently executing |
US20100064118A1 (en) * | 2008-09-10 | 2010-03-11 | Vns Portfolio Llc | Method and Apparatus for Reducing Latency Associated with Executing Multiple Instruction Groups |
US9268881B2 (en) * | 2012-10-19 | 2016-02-23 | Intel Corporation | Child state pre-fetch in NFAs |
US9117170B2 (en) | 2012-11-19 | 2015-08-25 | Intel Corporation | Complex NFA state matching method that matches input symbols against character classes (CCLs), and compares sequence CCLs in parallel |
US9665664B2 (en) | 2012-11-26 | 2017-05-30 | Intel Corporation | DFA-NFA hybrid |
US9304768B2 (en) | 2012-12-18 | 2016-04-05 | Intel Corporation | Cache prefetch for deterministic finite automaton instructions |
US9268570B2 (en) | 2013-01-23 | 2016-02-23 | Intel Corporation | DFA compression and execution |
US9455743B2 (en) * | 2014-05-27 | 2016-09-27 | Qualcomm Incorporated | Dedicated arithmetic encoding instruction |
US10185568B2 (en) | 2016-04-22 | 2019-01-22 | Microsoft Technology Licensing, Llc | Annotation logic for dynamic instruction lookahead distance determination |
CN112540795A (zh) * | 2019-09-23 | 2021-03-23 | 阿里巴巴集团控股有限公司 | 指令处理装置和指令处理方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4228498A (en) | 1977-10-12 | 1980-10-14 | Dialog Systems, Inc. | Multibus processor for increasing execution speed using a pipeline effect |
US4437149A (en) * | 1980-11-17 | 1984-03-13 | International Business Machines Corporation | Cache memory architecture with decoding |
US4435756A (en) | 1981-12-03 | 1984-03-06 | Burroughs Corporation | Branch predicting computer |
US4894772A (en) | 1987-07-31 | 1990-01-16 | Prime Computer, Inc. | Method and apparatus for qualifying branch cache entries |
US5142634A (en) * | 1989-02-03 | 1992-08-25 | Digital Equipment Corporation | Branch prediction |
US5136697A (en) * | 1989-06-06 | 1992-08-04 | Advanced Micro Devices, Inc. | System for reducing delay for execution subsequent to correctly predicted branch instruction using fetch information stored with each block of instructions in cache |
US5129067A (en) * | 1989-06-06 | 1992-07-07 | Advanced Micro Devices, Inc. | Multiple instruction decoder for minimizing register port requirements |
US5230068A (en) | 1990-02-26 | 1993-07-20 | Nexgen Microsystems | Cache memory system for dynamically altering single cache memory line as either branch target entry or pre-fetch instruction queue based upon instruction sequence |
US5226130A (en) | 1990-02-26 | 1993-07-06 | Nexgen Microsystems | Method and apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency |
DE69130588T2 (de) * | 1990-05-29 | 1999-05-27 | National Semiconductor Corp., Santa Clara, Calif. | Cache-Speicher von partiell decodierten Befehlen und Verfahren hierfür |
JPH04111127A (ja) * | 1990-08-31 | 1992-04-13 | Toshiba Corp | 演算処理装置 |
WO1992006426A1 (en) * | 1990-10-09 | 1992-04-16 | Nexgen Microsystems | Method and apparatus for parallel decoding of instructions with branch prediction look-up |
US5265213A (en) | 1990-12-10 | 1993-11-23 | Intel Corporation | Pipeline system for executing predicted branch target instruction in a cycle concurrently with the execution of branch instruction |
AU3776793A (en) * | 1992-02-27 | 1993-09-13 | Intel Corporation | Dynamic flow instruction cache memory |
-
1993
- 1993-07-06 DE DE69327927T patent/DE69327927T2/de not_active Expired - Fee Related
- 1993-07-06 EP EP93305303A patent/EP0586057B1/en not_active Expired - Lifetime
- 1993-07-23 KR KR1019930014006A patent/KR100287628B1/ko not_active IP Right Cessation
- 1993-08-12 JP JP21921993A patent/JP3518770B2/ja not_active Expired - Lifetime
-
1997
- 1997-02-14 US US08/800,367 patent/US6304961B1/en not_active Expired - Fee Related
-
2001
- 2001-08-13 US US09/927,346 patent/US20020124162A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
KR100287628B1 (ko) | 2001-06-01 |
KR940004436A (ko) | 1994-03-15 |
DE69327927D1 (de) | 2000-04-06 |
US20020124162A1 (en) | 2002-09-05 |
EP0586057A3 (en) | 1994-06-22 |
EP0586057B1 (en) | 2000-03-01 |
DE69327927T2 (de) | 2000-10-12 |
JPH06208463A (ja) | 1994-07-26 |
EP0586057A2 (en) | 1994-03-09 |
US6304961B1 (en) | 2001-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3518770B2 (ja) | 命令をその少なくとも1つの実行装置へ迅速にディスパッチする方法および装置 | |
US6401192B1 (en) | Apparatus for software initiated prefetch and method therefor | |
US5941981A (en) | System for using a data history table to select among multiple data prefetch algorithms | |
US6151662A (en) | Data transaction typing for improved caching and prefetching characteristics | |
US8069336B2 (en) | Transitioning from instruction cache to trace cache on label boundaries | |
US5367703A (en) | Method and system for enhanced branch history prediction accuracy in a superscalar processor system | |
JP2815237B2 (ja) | 計算機システム内部で命令を処理する装置 | |
US5845323A (en) | Way prediction structure for predicting the way of a cache in which an access hits, thereby speeding cache access time | |
US6611910B2 (en) | Method for processing branch operations | |
US6230260B1 (en) | Circuit arrangement and method of speculative instruction execution utilizing instruction history caching | |
CA1325285C (en) | Method and apparatus for ordering and queueing multiple memory requests | |
US6065103A (en) | Speculative store buffer | |
US5948095A (en) | Method and apparatus for prefetching data in a computer system | |
US5649144A (en) | Apparatus, systems and methods for improving data cache hit rates | |
US5774710A (en) | Cache line branch prediction scheme that shares among sets of a set associative cache | |
JPH01169538A (ja) | 命令事前取出し装置 | |
US5935238A (en) | Selection from multiple fetch addresses generated concurrently including predicted and actual target by control-flow instructions in current and previous instruction bundles | |
US5964869A (en) | Instruction fetch mechanism with simultaneous prediction of control-flow instructions | |
JP2006520964A (ja) | 分岐ターゲットに基づいて分岐予測をするための方法および装置 | |
US6658534B1 (en) | Mechanism to reduce instruction cache miss penalties and methods therefor | |
US6581138B2 (en) | Branch-prediction driven instruction prefetch | |
JP3837289B2 (ja) | 同じ論理的空間を占有する複数のレジスタファイルを含むマイクロプロセッサ | |
US20080184010A1 (en) | Method and apparatus for controlling instruction cache prefetch | |
US6446143B1 (en) | Methods and apparatus for minimizing the impact of excessive instruction retrieval | |
JP2010501913A (ja) | 可変長命令セット内の分岐命令の最後の粒度(granularity)と関連付けられたキャッシュ分岐情報 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040123 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080206 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090206 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100206 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100206 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110206 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120206 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120206 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130206 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130206 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140206 Year of fee payment: 10 |
|
EXPY | Cancellation because of completion of term |