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
Application number
JP21921993A
Other languages
English (en)
Other versions
JPH06208463A (ja
Inventor
ロバート・ヤング
キット・サン・タム
アルフレッド・ケイ・ダブリュ・ヨーン
ウィリアム・エヌ・ジョイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JPH06208463A publication Critical patent/JPH06208463A/ja
Application granted granted Critical
Publication of JP3518770B2 publication Critical patent/JP3518770B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/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

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

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はコンピュータ装置の分野
に関するものである。更に詳しくいえば、本発明はコン
ピュータ装置における命令のプリフェッチおよびディス
パッチに関するものである。
【0002】
【従来の技術】歴史的には、分岐命令がディスパッチさ
れると、分岐の向きおよびターゲット・アドレスが決定
されるまで、コンピュータ装置における命令のフェッチ
ングおよびディスパッチングが停止される。このなにも
しない手法の結果としてシステムの性能が低下するか
ら、現在の高性能コンピュータ設計にはそれはめったに
用いられない。システムの性能を向上させるために、分
岐の向きの決定を待つことなしに命令のフェッチングお
よびディスパッチングを継続できるようにするための種
々の技術が開発されている。命令のプリフェッチングお
よびディスパッチングを継続する効率向上の中心を成す
ものは分岐の向きを予測する能力である。分岐の向きを
予測するために下記のようないくつかの共通のやり方が
ある。
【0003】1.静的予測:このやり方では、分岐予測
アルゴリズムが、より高い確率の向きであると予め定め
られている同じ向きを常に予測する。1つの例が「分岐
をとられた」向きである。 2.動的ソフトウェア予測:この手法においては、ソフ
トウェア分岐予測ビットにより示唆されたヒントを用い
て分岐予測アルゴリズムが分岐の向きを予測する。 3.動的ハードウェア予測:分岐予測表に保持されてい
る分岐履歴情報を基にして分岐予測アルゴリズムが分岐
の向きを予測する。
【0004】静的予測手法は実行が簡単であるが、その
予測的中率は一般に75%以下である。予測の外れの後
始末の費用が高く付くから、その予測的中率は高いスカ
ラー性と高い性能の少なくとも一方にとっては一般に低
すぎる。動的ソフトウェア予測手法は、トレース・スケ
ジューリングとして知られているコンパイル技術に関連
して用いられた時に、非常に良く機能する。トレース・
スケジューリングがないと、予測的中率は一般に非常に
低い。不幸なことに、あるプログラムおよびある実動化
へトレース・スケジューリングを適用することはかなり
困難である。動的ハードウェア予測の的中率は一般にか
なり高い。しかし、動的ハードウェア予測では設計がか
なり複雑になり、別々の分岐予測表を保持するために付
加ハードウェアを必要とする。また、絶えず増大するキ
ャッシュの大きさ、または絶えず向上する実行速度に対
応するように分岐予測表を拡張することはかなり困難で
ある。更に、動的ハードウェア予測はキャッシュの可干
渉性を維持するためにかなり複雑になる。
【0005】従って、設計を複雑にすることと、ハード
ウェアを増加させることの少なくとも一方をひき起こす
ことなしに分岐予測的中率を高くする技術を得ることが
望ましい。
【0006】また、そのように非常に正確な分岐予測手
法の下では、つぎのフェッチ・アドレスがターゲット・
アドレスまたは一連の次のフェッチ・アドレスであるか
とは無関係に、次のフェッチ・アドレスの決定に際し
て、得られている性能の大部分を無視するわけにはいか
ない。この手法が非常に正確である動的な次のフェッチ
・アドレス予測を行うのも望ましい。同様に、制御転送
のためにプリフェッチした命令に関して得られる性能の
大部分を無視するわけにもいかない。したがって、この
手法が零待ち時間制御転送プリフェッチを行うのであれ
ばそれは更に望ましい。
【0007】
【発明が解決しようとする課題】後で説明するように、
本発明はイン−キャッシュ(in−cache)として
も知られている、従来のディスパッチ予測注釈を用い
て、先に述べた本発明の目的および希望の結果を達成す
る、命令を迅速にプリフェッチおよびディスパッチする
方法および装置を提供するものである。
【0008】
【課題を解決するための手段】この明細書はイン−キャ
ッシュ(in−cache)としても知られている、従
来のディスパッチ予測注釈を用いて、命令を迅速にプリ
フェッチおよびディスパッチする方法および装置を開示
するものである。M個の分岐予測(BRPD)フィール
ドが、命令キャッシュの各キャッシュ線のn個の命令の
各命令セットへ付加される。m個のBRPDフィールド
が、対応するn個の命令のm個の「支配的な」命令に対
するm個の分岐予測を記憶するために用いられる。キャ
ッシュ線のBRPDフィールドは分岐予測アルゴリズム
の所定の初期化方針に従って初期化され、キャッシュ線
はまず命令キャッシュへもたらされる。キャッシュ線の
BRPDセットはキャッシュ線の対応する命令セットで
同時にアクセスされる。選択された命令セットに対応す
るBRPDのセットから1つのBRPDが選択される。
実際の分岐の向きが決定された時に、選択されたBRP
Dが分岐予測アルゴリズムの所定の更新方針に従って更
新される。
【0009】また、次にフェッチされるk個のアドレス
予測(NFAPD)フィールドが命令キャッシュの各キ
ャッシュ線のn個の命令の各命令セットへ供給される。
ここにkはmより小さいか、mに等しい。k個のNFA
PDフィールドは、n個の対応する命令のk個の「支配
的な」命令に対するk個の次のフェッチアドレス予測を
記憶するために、用いられる。対応するBRPDフィー
ルドが「分岐が取られるであろう」と予測するならば、
NFAPDは対応する「支配的な」命令の次のターゲッ
ト・アドレスを予測し、さもなければNFAPDは対応
する「支配的な」命令の次の順次アドレスを予測する。
BRPDアドレスと同様に、キャッシュ線のNFAPD
フィールドは、次のフェッチ・アドレス予測アルゴリズ
ムの予め定められた初期化方針に従って初期化され、キ
ャッシュ線はまず命令キャッシュへもたらされる。キャ
ッシュ線のNFAPDフィールドのセットは、キャッシ
ュ線の命令の対応するセットと同時にアクセスもされ
る。選択された命令セットに対応するNFAPDのセッ
トから1つのNFAPDが選択される。実際の次のフェ
ッチ・アドレスが決定されると、選択されたNFAPD
は次のフェッチ・アドレス予測アルゴリズムの予め定め
られた初期化方針に従って更新される。
【0010】選択されたNFAPDは、命令プリフェッ
チおよびディスパッチ装置の次のフェッチ・アドレス
(NFA)レジスタに直ちに記憶されて、選択されたN
FAPDを次の命令アクセスのためのNFAとして使用
できるようにする。NFA(すなわち、従来の命令キャ
ッシュ・アドレスの選択されたNFAPD)は、次の命
令キャッシュ・アクセス中にBRPDとNFAPDを選
択するためにも用いられる。その結果、プリフェッチ待
ち時間が零で、命令をターゲット・アドレス経路はもち
ろん、順次連続してプリフェッチできる。
【0011】更に、命令キャッシュの各キャッシュ線の
n個の各命令セットへn個の命令クラス(Iクラス)フ
ィールドが付加される。n個の対応する命令のためのn
個の命令クラスを記憶するためにn個のIクラスフィー
ルドが用いられる。キャッシュ線の命令クラスは、キャ
ッシュ線が最初に命令キャッシュへもたらされる前に予
め決定され、および予め記憶されるか、またはキャッシ
ュ線が命令キャッシュへ最初にもたらされる間に決定お
よび記憶される。BRPDおよびNFAPDと同様に、
キャッシュ線のIクラスのセットはキャッシュ線の命令
の対応するセットと同時にアクセスもされる。1つのI
クラスが選択された命令セットに対応するIクラスのセ
ットから選択される。Iクラスを選択するためにNFA
も用いられる。適切な更新動作を指定するために、選択
されたIクラスは、実際にとられた分岐の向きと、予め
定められたBRPDおよびNFAPD更新方針により決
定された実際の次のフェッチアドレスと共に用いられ
る。
【0012】一実施例においては、nは4に等しく、m
とkは1に等しい。入来するキャッシュ線の各BRPD
フィールドは、制御転送命令の全てのクラスに対して
「分岐が取られないであろう」と予測するために初期化
される。アクセスされているキャッシュ線の選択された
BRPDフィールドが分岐の向きを正しく予測すると、
それは更新されない。他方、アクセスされているキャッ
シュ線の選択されたBRPDフィールドが分岐の向きを
不正確に予測すると、それは実際にとられる分岐の向き
へ更新される。入来するキャッシュ線のNFAPDフィ
ールドは、制御転送命令の全てのクラスに対して、対応
する次のフェッチ・アドレスを、現在のプログラム・カ
ウンタにキャッシュ・フェッチ・サイズを加えたものに
等しいアドレスであることを予測するために、初期化さ
れる。アクセスされているキャッシュ線の選択されたN
FAPDフィールドが次のフェッチアドレスを正しく予
測すると、それは更新されない。他方、アクセスされて
いるキャッシュ線の選択されたBRPDフィールドが分
岐の向きを不正確に予測すると、分岐の向きが不正確に
予測されたとするならば実際の次のフェッチ・アドレス
へ更新され、分岐の向きが不正確に予測されないとする
ならばそれは、現在のプログラム・カウンタにキャッシ
ュ・フェッチ・サイズを加えたものに等しいアドレスへ
更新される。
【0013】別の実施例においては、アクセスされてい
るキャッシュ線の選択されたNFAPDフィールドが次
のフェッチアドレスを正しく予測すると、それでもそれ
は正しい分岐の向き予測で更新される。この明細書にお
いては、イン−キャッシュ予測としても知られている、
従来のディスパッチ予測注釈を用いて命令を迅速にディ
スパッチする方法および装置を開示する。以下の説明に
おいては、本発明を完全に理解できるようにするため
に、特定の数、特定の材料、特定の構成について述べ
る。しかし、それらの特定の詳細なしに本発明を実施で
きることが当業者には明らかであろう。他の場合には、
本発明を不必要にあいまいにしないようにするために、
周知のシステムは線図またはブロック図で示した。
【0014】
【実施例】まず、本発明の教示を含むコンピュータ装置
を示す機能的ブロック図が示されている図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については、後で残りの図を参照して詳しく
説明する。
【0015】以下の説明を基にして、図1に示されてい
るコンピュータ装置で本発明を説明するが、異なるアー
キテクチャを有する別のコンピュータ装置で本発明を実
施できることがわかるであろう。とくに、本発明はメモ
リ管理装置を持たないコンピュータ装置で実施できる。
更に、本発明は命令キャッシュとデータ・キャッシュの
組合わせで、または命令キャッシュだけで実施できる。
【0016】次に、本発明の命令キャッシュを示すブロ
ック図が示されている図2を参照する。この図には命令
アレイ24と、対応するタグ・アレイ26と、対応する
命令クラス・アレイ27と、対応する予測注釈アレイ2
8と、選択論理30とを備える。アレイ24〜28は選
択論理30へ結合される。それらの素子は統合して、命
令と、対応する命令クラスと、分岐予測と、次のフェッ
チ・アドレス予測とを記憶し、命令プリフェッチおよび
ディスパッチ装置12へ供給する。
【0017】理解を容易にするために、図2をアレイ2
4〜28を別々の装置として示しているが、本発明は一
緒に組合わされたアレイ24〜28またはそれらのアレ
イの任意の組合わせで実施できることがわかるであろ
う。
【0018】命令アレイ24はいくつかのキャッシュ
線、たとえば、34を備える。各キャッシュ線はrセッ
トの命令ブロック、たとえば、44a〜44* を有す
る。各命令セット44aはn個の命令を備える。タグ・
アレイ26は対応するタグ・エントリ、たとえば、36
を備える。各タグ・エントリはr個のアドレス・タグお
よび関連する制御情報、たとえば、46a〜46* を有
する。各アドレス・タグ・セットおよび関連する制御情
報、たとえば46aは、対応するn個の命令のために、
有効ビットおよび使用ビットのような、アドレス・タグ
および関連する制御情報を備える。アドレス・タグおよ
び関連する制御情報、たとえば46a〜46* 、および
命令ブロック、たとえば44a〜44* は周知であるか
ら、それらについての説明は省略する。
【0019】命令クラス・アレイ27は対応する命令ク
ラス・エントリ、たとえば37を備える。各命令クラス
・エントリはr個の命令クラス・セット、たとえば47
a〜47* を有する。予測注釈アレイ28は対応する予
測注釈エントリ、たとえば38を備える。各予測注釈エ
ントリはr個の予測注釈セット、たとえば48a〜48
* を有する。命令クラスのセット、たとえば47aの内
容と、予測注釈のセット、たとえば48aの内容との対
応する命令分岐予測のセット、たとえば44aに対する
関係が図3〜図4に示されている。
【0020】図3に示すように、命令クラス47の各セ
ットは対応するn個の命令に対してn個の命令クラス
(Iクラス)を備える。n個の命令クラス47は対応す
るn個の命令の命令クラスのための符号化したものを記
憶する。命令クラスの特定の例がプログラム・カウンタ
(PC)相対分岐と、レジスタ間接分岐と、メモリ・ア
クセスと、算術および浮動小数点演算とである。一実施
例においては、命令が複号され、命令クラスの符号化さ
れたものが命令キャッシュによりIクラスに記憶され、
キャッシュ線は命令キャッシュへもたらされる。別の実
施例においては、キャッシュ線が命令キャッシュへもた
らされる前に、命令が複号され、命令クラスの符号化さ
れたものが命令キャッシュによりIクラスに記憶され
る。
【0021】なお図3を参照すると、予測注釈の各セッ
ト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を参照して説明する。
【0022】図4は、命令キャッシュの種々の実施例の
キャッシュ線に対する予測注釈エントリの例の予測注釈
のセットの例のBRPDの内容の例とNFAPDの内容
の例とを備えたある予測注釈のセットにおけるBRPD
の内容とNFAPDの内容を示す。それらの実施例のお
のおのに対してはn=4、m=1、k=1である。更
に、1ビットBRPDが用いられ、その「0」は「分岐
がとられていない」が予測されたことを意味し、「1」
は「分岐がとられた」が予測されたことを意味する。あ
るいは、別の実施例においては、各BRPDを記憶する
ために多数のビットを使用して、各分岐予測についてよ
り精度が高い、より多くの情報を与えることができる。
【0023】BRPDおよびNFAPDの対の最初の例
「0,next seq addr」52は、4つの命
令の対応するセットが分岐命令を持たないような例を示
す。更に、分岐アルゴリズムは「零」分岐が「とられな
い」ことを予測し、次のフェッチ・アドレス・アルゴリ
ズムは次のフェッチ・アドレスが次の順次アドレスであ
ることを予測する。したがって、BRPDは「0」にセ
ットされ、NFAPDは「next seq add
r」へセットされる。あるいは、別の実施例において
は、代わりに分岐命令のない命令のセットに対応するB
RPDフィールドを無視できる。
【0024】BRPDおよびNFAPDの対の第2の例
「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」へセットされる。
【0025】BRPDおよびNFAPDの対の第4の例
「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」へセットされる。
【0026】BRPDおよびNFAPDの対の第6の例
「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」へセットされる。
【0027】本発明を、m個のBRPDとk個のNFA
PDを有する予測注釈の各セットで説明したが、m個の
BRPDだけを有して、NFAPDを持たない予測注釈
の各セットで本発明を実行できることがわかるであろ
う。そのような実施例においては、選択されたBRPD
を基にして、命令プリフェッチおよびディスパッチ装置
によりNFAを計算できる。
【0028】再び図2を参照すると、命令キャッシュ1
6は次のフェッチ・アドレスを命令プリフェッチおよび
ディスパッチ装置から入力として受ける。それに応じ
て、キャッシュ線の1つに記憶されている命令と、それ
らの命令の対応するタグおよび予測注釈エントリがアク
セスされ、選択論理30へ供給される。この選択論理3
0は命令のセットと、分岐予測と、次のフェッチ・アド
レス予測とを選択し、それらを命令プリフェッチおよび
ディスパッチ装置へ供給する。分岐予測および次のフェ
ッチ・アドレス予測は対応する予測注釈セットから選択
される。選択論理30の2つの例が図5に示されてい
る。
【0029】図5は、mとkが1より大きい場合の選択
論理の実施例を示す。それぞれのアレイから検索された
命令セット(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
から選択する。
【0030】セット選択論理66は、1992年6月3
0日に出願され、本願出願人へ譲渡された「従来のアク
セス予測注釈を用いるデータ記憶装置からの迅速データ
検索(Rapid Deta Retrieval F
rom A Deta Storage Using
Prior Access PredictiveAn
notation)」という名称の米国特許出願No.
07/906,699明細書に記載されている選択論理
を含めて、ほとんどのコンピュータ装置において見出さ
れる広い種類の選択論理を表すことを意図するものであ
る。BRPDおよびNFAPD選択論理68は周知の各
種の組合わせ論理で実現できる。
【0031】図5はmとkが1に等しい選択論理の実施
例を示す。この実施例は、mとkが1に等しいためにB
RPDおよびNFAPD選択論理を必要としないことを
除き、図5に示されている実施例とほぼ同じである。B
RPDおよびNFAPD選択論理をなくすことにより、
命令ブロックが選択されると直ちにBRPDおよびNF
APDが選択される。
【0032】mとkの値は設計に依存することがわかる
であろう。mとkがnへ向かって増加するにつれて、分
岐予測と次のフェッチ・アドレス予測が的中する傾向が
高くなるが、分岐予測および次のフェッチ・アドレス予
測を選択するために要する時間が長くなる結果として、
次のフェッチ・アドレス予測フェッチの間の待ち時間も
長くなる。他方、mとrが1へ向かって減少するにつれ
て、分岐予測と次のフェッチ・アドレス予測が的中する
傾向が低くなるが、分岐予測および次のフェッチ・アド
レス予測を選択するために要する時間が短くなる結果と
して、フェッチの間の待ち時間も短くなる。実際に、図
6に示すようにmとkが1に等しいと、BRPDおよび
NFAPD選択論理を無くすことができ、それによりB
RPDおよびNFAPDを命令分岐予測と同時に選択で
きる。以下の説明に基づいて、BRPDおよびNFAP
D選択論理を無くすことにより、命令フェッチ待ち時間
を零まで減少する事が容易になる。いいかえると、現在
のフェッチの命令を考慮することなしに次のフェッチを
続行できることがわかるであろう。
【0033】次に、本発明の命令プリフェッチおよびデ
ィスパッチ装置による分岐予測的中と、次のフェッチ・
アドレス予測的中と、次のフェッチ・アドレス決定とが
示されている図6を参照する。図6に示すように、命令
プリフェッチおよびディスパッチ装置は比較器69を備
える。この比較器69はBRPDとNFAPDを命令キ
ャッシュから入力として受け、実際の分岐決定および次
のフェッチ・アドレス決定をプリフェッチおよびディス
パッチ装置から入力として受ける。それに応じて、比較
器は分岐予測的中/外れ信号および次のフェッチ・アド
レス的中/外れ信号を出力する。実際の分岐決定および
次のフェッチ・アドレス決定は別々に受けることができ
るから、分岐的中/外れ信号および次のフェッチ・アド
レス的中/外れ信号を異なる時刻に発生できることがわ
かるであろう。比較器69はほとんどのコンピュータ装
置において見出される広い種類の比較器を表すことを意
図するものである。比較器の構成および基本的な機能は
周知であるから、それについては説明を省略する。
【0034】また、図6に示すように、命令プリフェッ
チおよびディスパッチ装置は次のフェッチ・アドレス・
レジスタ70を更に備える。命令キャッシュから受けら
れたNFAPDは次のフェッチ・アドレス・レジスタに
直ちに記憶され、次の命令フェッチのためのフェッチ・
アドレス(NFA)として用いられる。図5に示されて
いる実施例の場合におけるように、NFAPDが命令ブ
ロックと同時に選択されるとすると、NFAPDをNF
Aレジスタに直接記憶し、それを次の命令フェッチのN
FAとして用いると、引き続く命令フェッチの間の待ち
時間が零になる結果となる。
【0035】次に、命令キャッシュの動作の流れを示す
流れ図が示されている図7を参照する。命令キャッシュ
はフェッチ・アドレスを命令プリフェッチおよびディス
パッチ装置から受ける(ブロック74)。それに応じ
て、キャッシュ的中があるかどうかを命令キャッシュは
判定する(ブロック76)。先に説明したようにキャッ
シュ的中が存在するものとすると、命令キャッシュは、
命令のセットと、分岐予測と、次のフェッチ・アドレス
予測とを選択し、それらを命令プリフェッチおよびディ
スパッチ装置へ供給する(ブロック78)。
【0036】キャッシュ外れが存在するものとすると、
命令キャッシュはキャッシュ充填を開始する(ブロック
80)。メモリから戻された命令でキャッシュ線が充填
されると、命令は命令プリフェッチおよびディスパッチ
装置へバイパスされる(ブロック82)。あるいは、キ
ャッシュ線が充填された後で命令を命令プリフェッチお
よびディスパッチ装置へ供給できる。先に説明したよう
に、命令が予め記録されず、かつ命令クラスが予め記録
されていないような実施例においては、命令キャッシュ
はキャッシュ線が充填されている間に命令を更に復号
し、命令クラスをIクラスに記憶する(ブロック8
4)。また、充填されているキャッシュ線のn個の命令
のセットに対応するm個のBRPDとk個のNFAPD
が、分岐および次のフェッチ・アドレス予測アルゴリズ
ムの初期化方針に従って初期化される(ブロック8
6)。
【0037】次に、命令プリフェッチおよびディスパッ
チ装置の動作の流れを示す2つの流れ図が示されている
図8〜図9を参照する、図8に示すように、フェッチ/
プリフェッチを開始すべっかどうかを命令プリフェッチ
およびディスパッチ装置は決定する(ブロック94)。
フェッチ/プリフェッチを開始すべきであるとすると、
命令プリフェッチおよびディスパッチ装置はNFAレジ
スタからの次のフェッチ・アドレス(NFA)を命令キ
ャッシュへドライブする(ブロック94)。それに応じ
て、命令キャッシュは命令プリフェッチおよびディスパ
ッチ装置へ求められている命令ブロックを供給し、命令
プリフェッチおよびディスパッチ装置は戻された命令ブ
ロックを待ち行列化する。先に説明したように、NFA
レジスタ内のNFAは、最後のフェッチに対して受けら
れた命令ブロックとともに命令キャッシュから受けられ
た選択されたNFAPDである。その間に、命令待ち行
列が空でないとすると、命令プリフェッチおよびディス
パッチ装置は、システム・アーキテクチャに応じて、1
つまたは複数の命令をディスパッチする(ブロック9
8)。コンピュータ装置が停止されるまで、命令プリフ
ェッチおよびディスパッチ装置は上記のプロセス・ステ
ップを繰り返す(ブロック94〜98)。
【0038】図9に示すように、命令プリフェッチおよ
びディスパッチ装置は分岐決定を決定し、または分岐決
定を実行装置から受ける(ブロック108)。それか
ら、命令プリフェッチおよびディスパッチ装置は分岐予
測抵抗値中が存在するかどうか判定する(ブロック11
0)。選択されたBRPDが分岐の向きを不正確に予測
したとすると、命令プリフェッチおよびディスパッチ装
置は命令キャッシュをアクセスし、以前にアクセスされ
たキャッシュ線内の以前に選択されたBRPDおよびN
FAPDをそれにしたがって更新する(ブロック11
4)。選択されたBRPDが分岐の向きを正確に予測し
たとすると、続いて次のフェッチ・アドレス決定を決定
するか、次のフェッチ・アドレス決定を実行装置から受
けた時に(ブロック111)、次のアドレス的中が存在
するかどうかを命令プリフェッチおよびディスパッチ装
置は判定する(ブロック112)。選択されたNFAP
Dが次のフェッチ・アドレスを不正確に予測したとする
と、命令プリフェッチおよびディスパッチ装置は命令キ
ャッシュをアクセスし、以前にアクセスされたキャッシ
ュ線内の以前に選択されたNFAPDを更新する(ブロ
ック116)。また、選択されたNFAPDが次のフェ
ッチ・アドレスを正確に予測したかどうかとは無関係
に、希望によっては、実行を容易にするために、命令プ
リフェッチおよびディスパッチ装置は、以前にアクセス
されたキャッシュ線内の以前に選択されたBRPDをそ
れでも更新できる(ブロック118)。
【0039】次に、分岐および次のフェッチ・アドレス
予測アルゴリズムの初期化方針および更新方針を示す3
つのブロック図が示されている図10〜図12を参照す
る。分岐および次のフェッチ・アドレス予測アルゴリズ
ムの例は分岐予測が1ビットである。図10には特定の
分岐および次のフェッチ・アドレス予測アルゴリズムの
初期化方針テーブル120が示されている。命令クラス
とは無関係に、「分岐がとられないであろう」ことを予
測するためにBRPDが初期化され、次のフェッチ・ア
ドレスが現在のプログラム・カウンタと次の順次フェッ
チ・ブロック・サイズの和に等しいアドレスであるとい
うことを予測するためにNFAPDが初期化される。実
現に応じて、キャッシュ・ブロック境界整列のために次
の順次フェッチ・ブロック・サイズを調整できるかもし
れないし、調整できないかもしれない。全ての命令に対
してBRPDとNFAPDを命令クラスとは無関係に同
じやり方で初期化することにより、実現が簡単にされる
事がわかるであろう。実現を簡単にすることにより、無
条件PC相対および命令をインデックスしたレジスタに
対するBRPDおよびNFAPDはその最初の予測が外
れるが、後述する更新方針によって、外部の妨害、たと
えば、多数の分岐が同じ予測フィールドを共用するとい
うようなことがなければ、予測は1回だけ外れるだけで
ある。
【0040】図11は特定の分岐および次のフェッチ・
アドレス予測アルゴリズムに対するプログラム・カウン
タ相対的分岐命令のための更新方針を示す。第1の場合
には、選択されたBRPDが分岐が「とられるであろ
う」と予測したのに、分岐がとられないとすると、12
2、選択されたBRPDが正しい予測、すなわち、「と
られないであろう」へ更新され、選択されたNFAPD
は現在のフェッチ・アドレスおよび次の順次フェッチ・
ブロック・サイズの和へ更新される。第2の場合には、
選択されたBRPDが分岐が「とられるであろう」と予
測して、分岐がとられたが、BRPDが外れたとする
と、124、選択されたNFAPDは正しいフェッチ・
アドレス、すなわち、ターゲット・アドレス、へ更新さ
れる。
【0041】第3の場合には、選択されたBRPDが分
岐が「とられないであろう」と予測したのに、分岐がと
られたとすると、126、選択されたBRPDが正しい
予測、すなわち、「とられるであろう」へ更新され、選
択されたNFAPDは正しいフェッチ・アドレスへ更新
される。第4の場合には、選択されたBRPDが分岐が
「とられないであろう」と予測して、分岐がとられなか
ったが、NFAPDが外れたとすると、128、選択さ
れたNFAPDは現在のフェッチ・アドレスおよび次の
順次フェッチ・ブロック・サイズの和へ更新される。
【0042】第5の場合には、選択されたBRPDが分
岐が「とられるであろう」と予測して、分岐がとられ、
NFAPDが次のフェッチ・ターゲット・アドレスの予
測に成功した場合には、130、選択されたBRPDお
よびNFAPDは更新されない。同様に、第6の場合に
は、選択されたBRPDが分岐が「とられないであろ
う」と予測して、分岐がとられず、NFAPDが次のフ
ェッチ順次アドレスの予測に成功したとすると、13
2、選択されたBRPDとNFAPDは更新されない。
【0043】先に説明したように、第1の場合と第3の
倍には、実現に応じて、キャッシュ・ブロック境界の整
列のために次の順次フェッチ・ブロック・サイズを調整
すべきか、調整すべきでないかもしれない。また、第2
の場合、第5の場合、および第6の場合には、BRPD
をそれでも、操作を行う代わりに、実際の分岐の向きで
更新できる。
【0044】図12は、特定の分岐予測アルゴリズムお
よび次のフェッチ・アドレス予測アルゴリズムに対す
る、レジスタ間接制御転送および無条件プログラム・カ
ウンタ相対的制御のための更新方針を示す。第1の場合
および第4の場合には、選択されたBRPDが分岐が
「とられないであろう」と予測したのに、分岐がとられ
たとすると、134、140、選択されたBRPDが正
しい予測、すなわち、「とられるであろう」へ更新さ
れ、選択されたNFAPDは正しい予測、すなわち、
「とられるであろう」へ更新され、選択されたNFAP
Dは正しいフェッチ・アドレス、すなわち、ターゲット
・アドレスへ更新される。
【0045】第2の場合および第5の場合には、選択さ
れたBRPDが分岐が「とられるであろう」と予測し
て、分岐がとられ、NFAPDが外れたとすると、13
6、142、選択されたNFAPDは正しいフェッチ・
アドレス、すなわち、ターゲット・アドレスへ更新され
る。第3の場合および第6の場合には、選択されたBR
PDが分岐が「とられるであろう」と予測して、分岐が
とられ、NFAPDが次のフェッチ・ターゲット・アド
レスの予測に成功すると、140、144、選択された
BRPDとNFAPDは更新されない。同様に、第3の
場合および第6の場合には、何も行わない代わりに、B
RPDをそれでも実際の分岐の向きで更新できる。
【図面の簡単な説明】
【図1】本発明の教示を含むコンピュータ装置の機能図
である。
【図2】本発明の命令キャッシュを示す。
【図3】本発明の命令クラス・フィールド、分岐予測フ
ィールド、次のフェッチ・アドレス予測フィールドを示
す。
【図4】命令キャッシュの一実施例に対する種々のシナ
リオの下におけるセット予測注釈の例に対する分岐予測
フィールドの内容と、次のフェッチ・アドレス予測フィ
ールドの内容との例を示す。
【図5】命令キャッシュの選択論理の2つの実施例を示
す。
【図6】本発明の命令プリフェッチおよびディスパッチ
装置による、分岐予測、次のフェッチ・アドレス予測的
中、および次のフェッチ・アドレス判定を示す。
【図7】本発明の命令キャッシュの動作流れ図を示す。
【図8】本発明のプリフェッチおよびディスパッチ装置
の動作流れ図を示す。
【図9】本発明のプリフェッチおよびディスパッチ装置
の動作流れ図を示す。
【図10】1つの特定の分岐および次のフェッチ・アド
レス予測アルゴリズムの初期化方針および更新方針を示
す。
【図11】1つの特定の分岐および次のフェッチ・アド
レス予測アルゴリズムの初期化方針および更新方針を示
す。
【図12】1つの特定の分岐および次のフェッチ・アド
レス予測アルゴリズムの初期化方針および更新方針を示
す。
【符号の説明】
10 コンピュータ装置 12 プリフェッチおよびディスパッチ装置 14 実行装置 16 命令キャッシュ 18 データ・キャッシュ 20 メモリ 22 メモリ管理装置 30 選択論理 66 セット選択論理 68 BRPDおよびNFAPD選択論理 70 次のフェッチ・アドレス・レジスタ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 キット・サン・タム アメリカ合衆国 94066 カリフォルニ ア州・サン ブルーノ・チェリー アヴ ェニュ・ナンバー71・1126 (72)発明者 アルフレッド・ケイ・ダブリュ・ヨーン アメリカ合衆国 94112 カリフォルニ ア州・サン フランシスコ・アルマニイ ブーレバード・2406 (72)発明者 ウィリアム・エヌ・ジョイ アメリカ合衆国 81612 コロラド州・ アスペン・ピイオーボックス 23・(番 地なし) (56)参考文献 特開 平3−34024(JP,A) 特開 昭64−18842(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/38

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 a)複数の命令セットを命令キャッシュ
    ・アレイの複数のキャッシュ線に記憶する過程と、 b)複数の対応するタグセットおよび関連する制御情報
    を対応するタグ・アレイの対応するタグ・エントリに記
    憶する過程と、 c)前記複数の命令セットの対応するものの命令のため
    の複数の命令クラスを備える命令クラスのセットの対応
    する複数のものを命令クラス・アレイの複数の対応する
    命令クラス・エントリに記憶する過程と、 d)前記命令セットの対応する命令のための少なくとも
    一つの分岐予測を有する予測注釈のセットの対応する複
    数のものを予測注釈アレイの対応する複数の予測注釈エ
    ントリに記憶する過程と、 e)前記記憶されている対応する命令クラス、および前
    記対応する命令クラスの前記命令のための少なくとも1
    つの分岐予測を用いて前記少なくとも1つの実行装置へ
    ディスパッチするために、前記記憶されている命令セッ
    トのうちの選択された命令セットを繰り返しフェッチお
    よびプリフェッチする過程と、 を備える命令を実行する少なくとも1つの実行装置を備
    えるコンピュータ装置で、実行するために命令をその少
    なくとも1つの実行装置へ迅速にディスパッチする方
    法。
  2. 【請求項2】 a)複数の命令セットを記憶する複数の
    キャッシュ線を備える命令アレイ手段と、 b)複数の対応するタグセットおよび関連する制御情報
    を対応するタグ・アレイを記憶するための複数のタグ・
    エントリを備えるタグ・アレイ手段と、 c)前記複数の命令セットの対応するものの命令のため
    の複数の命令クラスを備える命令クラスのセットの対応
    する複数のものを記憶する複数の命令クラス・エントリ
    を備える命令クラス・アレイ手段と、 d)前記複数の命令セットの対応する命令のための少な
    くとも一つの分岐予測を有する予測注釈のセットの対応
    するものを記憶する複数の予測注釈エントリを備える予
    測注釈アレイ手段と、 e)前記命令アレイ手段と、前記タグ・アレイ手段と、
    前記命令クラス・アレイ手段と、前記予測注釈アレイ手
    段とへ結合され、前記記憶されている対応する命令クラ
    ス、および前記対応する命令クラスの前記命令のための
    少なくとも1つの分岐予測を用いて前記少なくとも1つ
    の実行装置へディスパッチするために、前記記憶されて
    いる命令セットのうちの選択された命令セットを繰り返
    しフェッチおよびプリフェッチするフェッチおよびプリ
    フェッチ手段と、 を備える命令を実行する少なくとも1つの実行装置を備
    えるコンピュータ装置で、実行するために命令をその少
    なくとも1つの実行装置へ迅速にディスパッチする装
    置。
JP21921993A 1992-08-31 1993-08-12 命令をその少なくとも1つの実行装置へ迅速にディスパッチする方法および装置 Expired - Lifetime JP3518770B2 (ja)

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)

* Cited by examiner, † Cited by third party
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
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
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
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
US6647490B2 (en) * 1999-10-14 2003-11-11 Advanced Micro Devices, Inc. Training line predictor for branch targets
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
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)

* Cited by examiner, † Cited by third party
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
US5129067A (en) * 1989-06-06 1992-07-07 Advanced Micro Devices, Inc. Multiple instruction decoder for minimizing register port requirements
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
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
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
DE69130588T2 (de) * 1990-05-29 1999-05-27 Nat Semiconductor Corp 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

Also Published As

Publication number Publication date
KR100287628B1 (ko) 2001-06-01
EP0586057A3 (en) 1994-06-22
EP0586057A2 (en) 1994-03-09
DE69327927D1 (de) 2000-04-06
JPH06208463A (ja) 1994-07-26
US6304961B1 (en) 2001-10-16
EP0586057B1 (en) 2000-03-01
US20020124162A1 (en) 2002-09-05
DE69327927T2 (de) 2000-10-12
KR940004436A (ko) 1994-03-15

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
US5774710A (en) Cache line branch prediction scheme that shares among sets of a set associative cache
JPH01169538A (ja) 命令事前取出し装置
JPH0334024A (ja) 分岐予測の方法とそのための装置
JP2009545820A (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

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