JPS63503177A - 命令先取制御装置 - Google Patents
命令先取制御装置Info
- Publication number
- JPS63503177A JPS63503177A JP62501486A JP50148687A JPS63503177A JP S63503177 A JPS63503177 A JP S63503177A JP 62501486 A JP62501486 A JP 62501486A JP 50148687 A JP50148687 A JP 50148687A JP S63503177 A JPS63503177 A JP S63503177A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- branch
- address
- register
- line
- 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
Links
- 230000004044 response Effects 0.000 claims description 13
- 238000010586 diagram Methods 0.000 description 6
- 238000000034 method Methods 0.000 description 5
- 241000255925 Diptera Species 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 210000002784 stomach Anatomy 0.000 description 1
Classifications
-
- 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/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
- G06F9/3806—Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。
Description
【発明の詳細な説明】
命令先取制御装置
技術分野
本発明は命令先取可能なデータ処理システムにおいて用いられ背景の分野
命令シーケンスの形で少なくとも1つの分岐命令を含む命令群を格納するデータ
処理システムにおいて、分岐命令の処理は以下のように実行される。
まず分岐命令はデータ処理装置に供給される。それから、この分岐命令に続く命
令が先取りされ、引続いて実行されるべき命令が分岐命令の実行により決定され
る。このようなシステムの例は米国特許第4,200,927号に開示される。
しかし、開示されたシステムでは、分岐命令の実行結果が明らかになるまで命令
先取制御が一時停止されるという事実に従ってデータ処理速度が制限される。
この問題を解決するため、分岐命令の実行結果が予測されその予測に基いて命令
先取が遂行されるシステムが提案されている。
予測が正しいのならデータ処理装置は最小の処理遅延で実行できる。上述のよう
に遂行される予測システムとして、従来各種の例がある。
それらのうちの第1の例では、各分岐命令に対する予測分岐先の成功側または不
成功側のいずれか一方のみが予測される。
他の例では、分岐先が過去における事実を基礎に予測される。
すなわち、分岐命令に対して分岐先が同じ分岐命令の以前の結果で明らかにされ
、現在の分岐先が予測の的中率を高めるため従来の結果を基礎として予測される
という事実をこのシステムは採用する。このようなシステムの代表例が米国特許
第4,477,872号に開示される。
他の一つの例として、分岐命令に対応する分岐先を予測するための多くの分岐命
令フラグを有し、分岐先を予測するため分岐命令の発生に応答してフラグが参照
されるシステムがある。
しかし、これらのシステムのいずれも分岐命令の読出および解読が要求され、デ
ータ処理は予測が正しい時でさえ読出および解読時間により遅延される。
米国特許第4,604,691号は上述の問題を解決するため予測システムを開
示する。このシステムにおいて、主記憶の命令部の写しである命令キャッシュメ
モリのブロックに含まれる分岐命令の分岐先アドレスが、命令キャッシュメモリ
のブロックに対応する以前のブロックに引続いてフェッチされるブロックのアド
レスとして記憶手段に保持されている。命令ブリフェッチにおいて、記憶手段は
命令キャッシュメモリへのアクセスと同1時にアクセスされ分岐先アドレスを読
出し、先取命令アドレスは読出された分岐先アドレスにより決定される。
このシステムは、上述のシステムと異なりデータ処理の迅速化に有効である。し
かし、このシステムにおいて、予測は命令キャッシュメモリのブロック対ブロッ
ク対応の使用により遂行される。
そのため、1つのブロックに複数の分岐命令が存在する時、各分岐命令に対応し
て予測することはできない。このように、このシステムにおける予測の的中率は
比較的低い。
1984年5月30日に発行されたヨーロッパ特許出願公報第0109655A
2号は高い的中率の予測システムを開示する。このシステムは一般に分岐ヒスト
リテーブルを活用する。このシステムにおいて、分岐命令のアドレスと分岐先ア
ドレスは一対にされテーブルに格納される。命令先取における命令先取アドレス
でテーブルをサーチすることによシ、引続いて実行されるべき分岐先アドレスを
得ることができる。
主記憶の領域管理に多くのシステムがある。その1つはセグメントディスクリブ
タによ#)表示されたセグメント手段によシ管理することである。各セグメント
記述子は、セグメント管理に対して必要なペースアドレス、バウンドおよびフラ
グのような情報を記述する。ベースアドレスとバウンドは領域の下限と上限を示
し、フラグはセグメントアクセスモードを与える。
主記憶を管理するだめのセグメントを使用するデータ処理システムにおいて、分
岐先アドレスによシアドレスされた命令を抽出することにおいてセグメントサイ
ズを指示するセグメント記述子は、分岐命令が完全に解読されるまで知られてい
ない。そのために、セグメントゾーンの境界領域周辺に分岐されるとき、セグメ
ントゾーンの外側領域にアクセスされる時でさえ命令先取が発生する。
その上、このシステムでは、分岐先命令の先取が分岐命令の解読ステージに先立
って遂行される。分岐命令が先取される時から分岐命令が解読される時まで複数
の命令が存在する。メモリ手段に対するアクセスモードチェンジを指示する命令
が複数の命令において含まれる時、メモリ手段は誤ったアクセスモードでアクセ
スされうる。
発明の開示
そのため、発明の目的は上述の欠点から除かれた命令先取制御装置を提供するこ
とにある。
この発明の第1の実施例に従い、分岐命令アドレスとその分岐命令の分岐先アド
レスとを一対として格納するだめの分岐ヒストリテーブルを含む命令先取制御装
置を備えている。その上制御装置は、命令先取アドレスを有する分岐ヒストリテ
ーブルをサーチするだめのサーチ手段と、分岐先アドレスに対応する分岐先から
命令先取動作可能な数を指示する残余命令数を分岐ヒストリテーブルに格納する
だめの手段と、分岐ヒストリテーブルから得られた残余命令数情報を格納するた
めの残余命令数情報格納手段と、および残余命令数情報手段からの残余命令数情
報に応答して予測された分岐先の命令先取数を制御する数制御手段とを含む。
本発明の第2の実施例に従い、命令先取を実行するため分岐命令の分岐先アドレ
スと対にされた分岐命令を格納するだめの分岐ヒス) IJテーブルを有する命
令先取制御装置を有する。
その上、制御装置は、命令先取アドレスに従って分岐ヒストリテーブルをサーチ
するためのサーチ手段、分岐先アドレスに従い分岐ヒストリテーブルにおける分
岐先メモリアクセス制御情報を格納するだめの手段と、前記分岐ヒスl−IJテ
ーブルから読出されたアクセス制御情報に基いて命令先取のメモリアクセスをチ
ェックするための手段とを含む。
図面の簡単な記述
本発明は、添付の図面を参照して詳細に記述される。
第1図は本発明の実施例のブロックダイアグラムである。
第2図は第1図に示される分岐先アドレス加算器の詳細なブロックダイアグラム
である。
第3図は第1図に示される分岐先取制御デバイス2の詳細ブロックダイアグラム
である。
第4図は第3図における命令先取アドレス加算器3の詳細なブロックダイアグラ
ムである。
第5図は第1図における命令アドレススタック4の詳細なブロックダイアグラム
である。
第6図は分岐先予測バッファ5の詳細なブロックダイアグラムである。
図において、同一参照数字は同一構成要素をそれぞれ示し、データおよびアドレ
スはビット並列またはビット直列の形で各ラインに供給される。
発明を実施するためのベストモード
第1図を参照すると、本発明のよりよい実施例は、現実の分岐先アドレスを計算
するための分岐先アドレス加算器1、予測された分岐先の先取制御を遂行するた
めの分岐先先取制御器2、命令先取アドレス計算を遂行するだめの命令先取アド
レス加算器3、命令アドレスを格納する命令アドレススタック4および予測され
た分岐先の命令アドレスが分岐先予測バッファである命令アドレススタック4に
格納された命令アドレスである分岐命令のアドレスと同一であるか否かを検出す
るだめの分岐先予測バッファ5から構成されている。
本発明の実施例の動作は第1図から第6図を参照して詳細に述べられる。
まず、書込動作における命令先取処理が第1図から第4図を参照して詳細に述べ
られる。
以前の先取アドレスは第4図に示す命令先取アドレスレジスタ34から引出され
る。レジスタ34は第1図に示す命令先取アドレス加算器3に含まれ、有効命令
先取アドレス加算器35に供給される。先取アドレス加算器3は、以前の先取ア
ドレスにnバイトを加え、結果は実効命令先取アドレスレジスタ40にセレクタ
3貸介して格納されている。一方、ベースアドレスはセグメント記述子のレジス
タファイル36から線227、セレクタ38および線229を介して命令先取ベ
ースレジスタ41に供給され格納される。
レジスタ40からの命令先取用実効アドレスは線223を介してアドレスレジス
タ34に格納され、同時に仮想命令ブリフェッチアドレス加算器44に供給され
る。加算器44は、レジスタ40から供給された命令ブリフェッチとレジスタ4
1から与えられるベースアドレスとを加算し、命令先取用仮想アドレスを発生す
る。仮想アドレスは線236、セレクタ46および線110を介して命令アドレ
ススタック4内にある仮想アドレスレジスタ(第5図における49)に格納され
るとともに主記憶(図示せず)に供給され格納される。この仮想アドレスに応答
して主記憶から線100を介して命令がとシ出され、分岐先アドレス加算器1に
供給される。
それから制御は書込動作の命令処理に移る。
第1図および第2図を参照すると、主記憶から線100を介して与えられた命令
は命令レジスタ10に格納される。命令レジスタ10に格納された分岐先アドレ
スは線201を介して加算器11に与えられ、実効分岐先アドレスを生成し、線
202を介して実効分岐先アドレスレジスタ13に格納される。
一方、この命令レジスタ10から線200を介して与えられるオペレーション(
オプ)コードに応答して、線203を介してレジスタファイル12から読出され
たセグメント記述子のベースアドレスはレジスタ14に格納される。この格納動
作と同時に、セグメント記述子のパウンドアドレスが線209を介して、レジス
タ15に供給され、そこに格納され、セグメント記述子のモード情報は、線20
5を介してレジスタ16に供給されそこに格納される。
モード情報は、例えばマスタモード、特権モード、およびキャッシュバイパスモ
ードを含みうる。レジスタ13に格納された有効分岐先アドレスは線115を介
して命令先取アドレスレジスタ34に配られ、次の命令を先取するために使われ
る。仮想分岐先アドレス加算器17はレジスタ13から与えられる実効分岐先ア
ドレスとレジスタ14から与えられるベースアドレスとを加算し、仮想分岐先ア
ドレスを線101に送出する。未使用残分枝先命令数計算用アダー18は、レジ
スタ13により配られた有効分岐先アドレスをレジスタ15から配られたバウン
ドから減算し、与えられた数を線210を介してアライナ−19に与える。アラ
イナ−19はレジスタ16から線209を介して与えられたモード情報と未使用
残分岐先命令数とを併せて線102に送出する。
第1図および第4図を参照すると、線101を介して配られた仮想分岐先アドレ
スは、セレクタ46を介して線110に送出される。
同時に未使用残分岐先命令数およびモード情報は、セレクタ47を介して線11
1に送出される。
第1図および第5図において、線110を介して配られた仮想分岐先アドレスは
、命令アドレススタック4内の仮想アドレスレジスタ49に格納される。レジス
タ49に格納された仮想分岐先アドレスは、分岐先アドレスを格納するレジスタ
ファイル51に線237を介してシフトされる。使用可能な分岐先命令の数およ
び線111を介して配られるモード情報はレジスタ50に一時的に格納され、そ
こから線238を介してレジスタファイル52にシフトされそこに格納される。
上述の命令先取処理において、仮想アドレスレジスタ49を介してレジスタファ
イル51に供給され、そこに格納された仮想命令先取アドレスは線239、セレ
クタ53および線240を介してシフトされ格納される。レジスタ54の仮想命
令先取アドレスは線112を介して、レジスタファイル51に格納された仮想分
岐先アドレスは線113を介して、レジスタファイル52に格納される使用可能
な分岐先命令数およびモード情報は線114を介して分岐先予測バッファ5に与
えられる。
第1図および第6図を参照すると、線112を介して配られた仮想命令先取アド
レスは、分岐先予測バッファ5のセレクタ56および線245を介してレジスタ
57にシフトされ格納される。レジスタ57は分岐ヒストリテーブルの書込アド
レスを格納する。レジスタ57に格納された仮想分岐命令アドレスは線246を
介して配られた下位ビットに応答してアドレス格納用ランダムアクセスメモリ5
8にシフトされ格納される。また、下位ビットに応答して線113を介して配ら
れた仮想分岐先アドレスはシフトされ、分岐命令の分岐先アドレス記憶用ランダ
ムアクセスメモリ59に格納される。
線114を介して配られた使用可能な分岐命令の数およびモード情報も下位ビッ
トに応答してシフトされ、分岐命令の分岐先情報記憶用ランダムアクセスメモリ
60に格納される。
このようにして書込動作は完了する。
次に読出動作が記述される。
まず読出動作の命令先取処理が第1図および第4図を参照して記述される。
第1図に示される分岐先取アドレス加算器3内の命令先取アドレスレジスタ(第
4図)からの以前の先取アドレスが実効命令先取アドレス加算器35に供給され
る。先取アドレス加算器3は以前の先取アドレスにnバイトを加える。加算結果
は線225、セレクター37および線226を介して実効命令先取アドレスレジ
スタ40に供給され格納される。
アドレスは線227、セレクタ38および線228を介して命令先取ペースレジ
スタ41に供給され格納される。
仮想命令先取アドレス加算器44は、レジスタ40によシ与えられた実効命令先
取アドレスとレジスタ41により与えられたペースアドレスとを加算し、命令先
取用仮想アドレスを発生する。この仮想アドレスは線236、セレクタ46およ
び線110を介して命令アドレススタック4内の仮想アドレスレジスタ(第5図
の49)に供給され格納される。仮想アドレスも主記憶(図示せず)に送られる
。仮想アドレスに応答して、命令は主記憶から線100を介して取出される。
仮想アドレスも線110を介して分岐先予測バッファ5に供給される。
次に読出動作の予測された分岐先先取処理が詳細に記述される。
第1図および第6図を参照すると、線110を介して与えられた仮想アドレスは
セレクタ56および線245を介して分岐ヒストリテーブル読出アドレス記憶用
レジスタ57に供給され格納される。
レジスタ57に格納された仮想アドレスの下位ビットは、線246を介して分岐
命令アドレス格納用ランダムアクセスメモリ58にアドレスとして送出される。
そのアドレスに応答して、メモリ58は線248に命令アドレスを提供する。比
較器61は線248を介して与えられる命令アドレスと線247を介して与えら
れる仮想アドレスとを比較する。
一方、線246を介して与えられる命令先取用仮想アドレスの下位ビットに応答
して、分岐命令の仮想分岐先アドレスがメモリ59から線249に提供され、そ
してメモリ60からの使用可能な分岐先命令の数およびモード情報の少なくとも
一方が線250に供給される。
比較器61の比較結果はフリップフロップ(F/F)62に表示され、同時に予
測された分岐先情報レジスタ64に供給される。
比較結果が一致を示す時、F/F 62はセントされ、予測された分岐先アドレ
スおよび使用可能な分岐先命令数またはモード情報のどちらか一方が線108お
よび109に提供されるレジスタ63および64に線249および250を介し
てセットされる。
第1図および第3図を参照すると、線104を介して与えられるモード情報はセ
ットされ、予測された分岐先の後続要求用モード情報レジスタ21に格納され、
セレクタ22を介して線107に与えられる。線104を介して与えられる残余
命令数はアライナ−304を介して線105に出力される。残余分岐命令数が“
1″の時、線104、アライナ−20および線212を介してゲート23に与え
られる信号が101であシ、線213を介してゲート24に与えられを介してア
ンドゲート27に送られるべき信号は”0′となり、要求数カウンタ30の有効
ビット用フリップフロップ28はセットが抑止される。このように第2およびそ
れ以後の要求は抑止される。残りの命令数が「2」の時、線104、アライナ−
20および線212を介してゲート23に送られるべき信号は”0”であり、線
213を介して送られるべき信号は“1″であシアンドゲート25の出力が“1
″となシ、残シの命令数が“2”であることを示す有効ビット用フリップフロッ
プ(F/F)65はセントされる。
第1図および第4図を参照すると、線107を介して与えられるモード情報はセ
レクタ39および線230を介してリクエストモードレジスタ42に送られ格納
される。線105を介して与えられる残シの命令数は計算用残り命令数レジスタ
43に格納される。アライナ−45は線233を介して与えられるモード情報と
線234を介して与えられる残シの命令数を線235およびセレクタ47を介し
て線111に送出する。
分岐先予測バッファ5のF/F (第6図の62)の出力は、第3図に示す分岐
先予測制御装置2のオアゲート29および線222を介してリクエスト数カウン
タ30に与えられ、そのカウンタ3゜を活性化する。カウンタ30には、その初
期値として0”が設定される。その値は線106を介して命令先取アドレスアダ
ー3に送られる。
カウンタ30の内容の最初の取出しでは、内容はリクエスト数カウンタ用+1加
算器33で値”1″によシ加算され、その結果は線220を介してカウンタ30
に送られ格納される。 カウンタ30の値は線106を介して命令先取アドレス
加算器3に送られる。
第4図に示す命令先取アドレス加算器3において、線106を介して与えられる
初期値“0″は、セレクター38および線229を介して命令先取用ベースレジ
スタ41にセットされる。線108を介して与えられる予測分岐先アドレスは、
セレクター37および線226を介して命令先取用実効アドレスレジスタ40に
送られ格納される。仮想命令先取アドレスレジスタ44はレジスタ40からの予
測分岐先アドレスとレジスタ41からの初期値”0”とを加え、予測分岐先アド
レスを線238、セレクタ46および線110を介して主記憶に送る。これとと
もに、レジスタ42に格納されたモード情報は線233、アライナ−45、線2
35、セレクタ47、アライナ−48および線109を介して主記憶に与えられ
、分岐予測光命令が読出される。このようにして読出動作の主な部分は完了する
。予測分岐先アドレスおよび残りの命令数は、以下のように処理される。
第1図および第5図において、線110を介して与えられる予測分岐先アドレス
は仮想アドレスレジスタ49に格納され、線237を介してレジスタファイル5
1に格納される。一方、線111を介して与えられる残りの命令数はレジスタ5
0に格納され、線238を介してレジスタファイル52に格納される。
さて、予測分岐先命令の第2回目の先取動作を第1図から第4図を参照して詳細
に説明する。
第3図および第4図を参照すると、2回目の取出時、分岐予測光後続リクエスト
用モード情報レジスタ21の内容は線216、セレクタ22、線107、セレク
タ39および線230を介してリクエストモードレジスタ42に供給される。予
測分岐先命令の最初の先取によシ与えられるリクエスト回数カウンタ30におけ
る値“1″が、線106、セレクタ38および線229を介して命令先取用ベー
スレジスタ41に“n”として送られる。この時点で最初の先取で用いられた仮
想アドレスが命令先取用実効アドレスレジスタ40に保持されるため、先取アド
レス加算器44ではnが仮想アドレスに加算され、その結果が線236、セレク
タ46および線110を介して主記憶に送出される。この送出動作と並行して、
メモリアクセスモード信号がリクエストモードレジスタ42から線233、アラ
イナ−45、線235、セレクタ47、アライナ−48および線109を介して
主記憶に送られる。
第2回目の要求時、リクエスト回数カウンタ30用有効ビツトフリツプフロツプ
(F/F)28の出力“1”は、線215、オアゲート29および線222を介
してリクエスト回数カウンタ30に与えられ、カウンタ30が活性化される。カ
ウンタ30の内容に対して値“1″がリクエスト回数カウンタ30用加算器33
で加算され、結果が線220を介してカウンタ30に戻される。この時点でVピ
ッ)F/F65の出力は残シの命令数が2“であることを示す“1”であり、ア
ンドゲート32およびオアゲート66を介してリクエスト回数カウンタ30用V
ビツトF/F 28をリセットする。
これによシ33回目リクエストは抑止される。3回目のリクエスト時、予測分岐
先の後続リクエスト用モード情報レジスタ21の内容が、線216、セレクタ2
2、線107、セレクタ39および線230を介してリクエストモードレジスタ
42に供給される。リクエスト回数カウンタ30の値″2”が信号線106、セ
レクタ38および線229を介して命令先取用ベースレジスタ41に送られ、ベ
ースアドレス“2n″として格納される。 仮想命令先取アドレス加jEi44
はベースレジスタ41内のベースアドレス「2n」と命令先取用実効アドレスレ
ジスタ40内の予測分岐先仮想アドレスとを加算し、結果は線236、セレクタ
46および線110を介して主記憶に送出される。リクエスト回数カウンタ30
の出力“2”はけ線219を介してアライナ−31に与えられ、信号゛1#とじ
てオアゲート66および線252を介してリクエスト回数カウンタ30用Vピツ
トF/F 28に与えられ、フリップフロッグ28がリセットされる。このリセ
ットで、リクエスト回数が「3」になる時リクエスト発生は終了する。残りの命
令数は、命令先取制御装置2において、予測される分岐先の命令取出回数もしく
は量を制御するため、この実施例で用いられる。このため、残りの命令数とは、
命令先取数、残りバイト数またはセグメントを記述するバウンドのいずれでもよ
い。このように本発明は分岐予測の分岐先命令の先取の回数または量を制限する
ことによシ、セグメントを越えるような余分な命令先取を有効に制限できる。そ
の上、本発明は分岐先アドレスに対応する分岐ヒストリテーブルにおける分岐先
のメモリアクセスモード情報を保持することにより予測された分岐先の命令先取
動作においてメモリアクセスを正しく行なうことができる。
C) でに
国WAill査報告
・酎−・na′jl Aml“1′”””0CTIj? 87100122
Claims (2)
- 1.命令の先取制御を行なうため、分岐命令とこの分岐命令の分岐先アドレスと の対を格納する分岐ヒストリテーブルを有する命令先取制御装置において、命令 先取アドレスで前記分岐ヒストリテーブルを索引するための索引手段と、前記分 岐先アドレスにより前記分岐ヒストリテーブルに分岐先から命令先取可能回数を 示す残命令数を格納する手段と、前記分岐ヒストリテーブルから得られた残命令 数情報を格納する残命令数情報格納手段と、この残命令数情報格納手段からの残 命令数情報にもとづいて予測された分岐先命令先取回数を制御する回数制御手段 とを含むことを特徴とする命令先取制御システム。
- 2.命令の先取制御を遂行するため、分岐命令アドレスとこの分岐命令の分岐先 アドレスとの対を格納する分岐ヒストリテーブルを有する命令先取制御装置にお いて、命令先取アドレスで分岐ヒストリテーブルを索引するための索引手段と、 前記分岐先アドレスに対応して前記分岐ヒストリテーブルに分岐先メモリアクセ ス制御情報を格納するための手段と、前記分岐ヒストリテーブルから読出された アクセス制御情報に応答して命令先取メモリアクセスをチェックする手段とを含 むことを特徴とする命令先取制御装置。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4447986 | 1986-02-28 | ||
JP4447886 | 1986-02-28 | ||
JP61-44479 | 1986-02-28 | ||
JP61-44478 | 1986-02-28 | ||
PCT/JP1987/000122 WO1987005417A1 (en) | 1986-02-28 | 1987-02-26 | Instruction prefetch control apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS63503177A true JPS63503177A (ja) | 1988-11-17 |
Family
ID=26384404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP62501486A Pending JPS63503177A (ja) | 1986-02-28 | 1987-02-26 | 命令先取制御装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US4881170A (ja) |
EP (1) | EP0258453B1 (ja) |
JP (1) | JPS63503177A (ja) |
DE (1) | DE3785897T2 (ja) |
WO (1) | WO1987005417A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016157371A (ja) * | 2015-02-26 | 2016-09-01 | ルネサスエレクトロニクス株式会社 | プロセッサおよび命令コード生成装置 |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2610122B1 (fr) * | 1987-01-22 | 1992-03-13 | Nec Corp | Systeme de controle d'ecriture dans une table historique des branchements |
GB8728493D0 (en) * | 1987-12-05 | 1988-01-13 | Int Computers Ltd | Jump prediction |
JP2723238B2 (ja) * | 1988-01-18 | 1998-03-09 | 株式会社東芝 | 情報処理装置 |
DE68927292T2 (de) * | 1988-11-25 | 1997-05-07 | Nippon Electric Co | Mikrorechner, geeignet zur Schnellverarbeitung eines Verzweigungsbefehlskodes |
US5689670A (en) * | 1989-03-17 | 1997-11-18 | Luk; Fong | Data transferring system with multiple port bus connecting the low speed data storage unit and the high speed data storage unit and the method for transferring data |
JPH0795271B2 (ja) * | 1989-06-20 | 1995-10-11 | 富士通株式会社 | 分岐命令実行装置 |
JP2508280B2 (ja) * | 1989-07-28 | 1996-06-19 | 日本電気株式会社 | 分岐ヒストリテ―ブル制御方式 |
JP2682217B2 (ja) * | 1989-08-28 | 1997-11-26 | 日本電気株式会社 | マイクロプロセッサ |
US5210831A (en) * | 1989-10-30 | 1993-05-11 | International Business Machines Corporation | Methods and apparatus for insulating a branch prediction mechanism from data dependent branch table updates that result from variable test operand locations |
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 |
EP0457403B1 (en) * | 1990-05-18 | 1998-01-21 | Koninklijke Philips Electronics N.V. | Multilevel instruction cache and method for using said cache |
US5212794A (en) * | 1990-06-01 | 1993-05-18 | Hewlett-Packard Company | Method for optimizing computer code to provide more efficient execution on computers having cache memories |
US5317703A (en) * | 1990-06-29 | 1994-05-31 | Hitachi, Ltd. | Information processing apparatus using an advanced pipeline control method |
US5530941A (en) * | 1990-08-06 | 1996-06-25 | Ncr Corporation | System and method for prefetching data from a main computer memory into a cache memory |
US5895489A (en) * | 1991-10-16 | 1999-04-20 | Intel Corporation | Memory management system including an inclusion bit for maintaining cache coherency |
US5333283A (en) * | 1991-10-29 | 1994-07-26 | International Business Machines Corporation | Case block table for predicting the outcome of blocks of conditional branches having a common operand |
US5285527A (en) * | 1991-12-11 | 1994-02-08 | Northern Telecom Limited | Predictive historical cache memory |
US5434986A (en) * | 1992-01-09 | 1995-07-18 | Unisys Corporation | Interdependency control of pipelined instruction processor using comparing result of two index registers of skip instruction and next sequential instruction |
JP2761688B2 (ja) * | 1992-02-07 | 1998-06-04 | 三菱電機株式会社 | データ処理装置 |
CA2124333A1 (en) * | 1992-02-27 | 1993-09-02 | John A. Saba | Cpu having pipelined instruction unit and effective address calculation unit with retained virtual address capability |
US5442756A (en) * | 1992-07-31 | 1995-08-15 | Intel Corporation | Branch prediction and resolution apparatus for a superscalar computer processor |
US5692167A (en) * | 1992-07-31 | 1997-11-25 | Intel Corporation | Method for verifying the correct processing of pipelined instructions including branch instructions and self-modifying code in a microprocessor |
US5434985A (en) * | 1992-08-11 | 1995-07-18 | International Business Machines Corporation | Simultaneous prediction of multiple branches for superscalar processing |
US5423048A (en) * | 1992-08-27 | 1995-06-06 | Northern Telecom Limited | Branch target tagging |
JP2596712B2 (ja) * | 1993-07-01 | 1997-04-02 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 近接した分岐命令を含む命令の実行を管理するシステム及び方法 |
JP3639927B2 (ja) * | 1993-10-04 | 2005-04-20 | 株式会社ルネサステクノロジ | データ処理装置 |
EP0649084A1 (en) * | 1993-10-18 | 1995-04-19 | Cyrix Corporation | Microprocessor branch processing |
JP2801135B2 (ja) * | 1993-11-26 | 1998-09-21 | 富士通株式会社 | パイプラインプロセッサの命令読み出し方法及び命令読み出し装置 |
US5574871A (en) * | 1994-01-04 | 1996-11-12 | Intel Corporation | Method and apparatus for implementing a set-associative branch target buffer |
JPH08106387A (ja) * | 1994-10-06 | 1996-04-23 | Oki Electric Ind Co Ltd | 命令プリフェッチ回路及びキャッシュ装置 |
EP0771442A1 (en) * | 1995-05-06 | 1997-05-07 | National Semiconductor Corporation | Instruction memory limit check in microprocessor |
US5905881A (en) * | 1995-11-30 | 1999-05-18 | Unisys Corporation | Delayed state writes for an instruction processor |
US5867699A (en) * | 1996-07-25 | 1999-02-02 | Unisys Corporation | Instruction flow control for an instruction processor |
US6195735B1 (en) * | 1996-12-31 | 2001-02-27 | Texas Instruments Incorporated | Prefetch circuity for prefetching variable size data |
US5887151A (en) * | 1997-07-10 | 1999-03-23 | Emc Corporation | Method and apparatus for performing a modified prefetch which sends a list identifying a plurality of data blocks |
US6058265A (en) * | 1997-10-21 | 2000-05-02 | Hewlett Packard Company | Enabling troubleshooting of subroutines with greatest execution time/input data set size relationship |
JP3606435B2 (ja) * | 1999-09-29 | 2005-01-05 | 富士通株式会社 | モードを変更する分岐命令を制御する命令処理装置および方法 |
US7085915B1 (en) | 2000-02-29 | 2006-08-01 | International Business Machines Corporation | Programmable prefetching of instructions for a processor executing a non-procedural program |
US8185721B2 (en) * | 2008-03-04 | 2012-05-22 | Qualcomm Incorporated | Dual function adder for computing a hardware prefetch address and an arithmetic operation value |
US9921814B2 (en) * | 2015-08-24 | 2018-03-20 | International Business Machines Corporation | Control flow graph analysis |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4200927A (en) * | 1978-01-03 | 1980-04-29 | International Business Machines Corporation | Multi-instruction stream branch processing mechanism |
SU942018A1 (ru) * | 1979-12-25 | 1982-07-07 | Предприятие П/Я А-3162 | Устройство дл формировани команд с аппаратной организацией циклических программ |
US4477872A (en) * | 1982-01-15 | 1984-10-16 | International Business Machines Corporation | Decode history table for conditional branch instructions |
US4604691A (en) * | 1982-09-07 | 1986-08-05 | Nippon Electric Co., Ltd. | Data processing system having branch instruction prefetching performance |
US4594659A (en) * | 1982-10-13 | 1986-06-10 | Honeywell Information Systems Inc. | Method and apparatus for prefetching instructions for a central execution pipeline unit |
EP0109655B1 (en) * | 1982-11-17 | 1991-07-24 | Nec Corporation | Instruction prefetching device with prediction of a branch destination address |
JPH061441B2 (ja) * | 1983-09-12 | 1994-01-05 | モトロ−ラ・インコ−ポレ−テツド | 先取り確認装置 |
US4764861A (en) * | 1984-02-08 | 1988-08-16 | Nec Corporation | Instruction fpefetching device with prediction of a branch destination for each branch count instruction |
US4691277A (en) * | 1984-10-24 | 1987-09-01 | International Business Machines Corp. | Small instruction cache using branch target table to effect instruction prefetch |
US4679141A (en) * | 1985-04-29 | 1987-07-07 | International Business Machines Corporation | Pageable branch history table |
US4763245A (en) * | 1985-10-30 | 1988-08-09 | International Business Machines Corporation | Branch prediction mechanism in which a branch history table is updated using an operand sensitive branch table |
-
1987
- 1987-02-26 EP EP87901654A patent/EP0258453B1/en not_active Expired - Lifetime
- 1987-02-26 JP JP62501486A patent/JPS63503177A/ja active Pending
- 1987-02-26 WO PCT/JP1987/000122 patent/WO1987005417A1/en active IP Right Grant
- 1987-02-26 DE DE87901654T patent/DE3785897T2/de not_active Expired - Fee Related
- 1987-10-23 US US07/117,152 patent/US4881170A/en not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016157371A (ja) * | 2015-02-26 | 2016-09-01 | ルネサスエレクトロニクス株式会社 | プロセッサおよび命令コード生成装置 |
US10540182B2 (en) | 2015-02-26 | 2020-01-21 | Renesas Electronics Corporation | Processor and instruction code generation device |
Also Published As
Publication number | Publication date |
---|---|
DE3785897T2 (de) | 1993-09-30 |
WO1987005417A1 (en) | 1987-09-11 |
DE3785897D1 (de) | 1993-06-24 |
EP0258453A1 (en) | 1988-03-09 |
EP0258453B1 (en) | 1993-05-19 |
US4881170A (en) | 1989-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPS63503177A (ja) | 命令先取制御装置 | |
EP0084114B1 (en) | Instruction prefetching data processing apparatus including a conditional branch instruction predictor | |
US4086629A (en) | Hierarchical data store with look-ahead action | |
CA1325288C (en) | Method and apparatus for controlling the conversion of virtual to physical memory addresses in a digital computer system | |
JPH0283735A (ja) | 命令先取り装置 | |
EP0180725A2 (en) | Instruction prefetch operation for branch instructions | |
JPH04225431A (ja) | 命令キャッシュ効率を増大するコンピュータ命令をコンパイルする方法 | |
JP2714952B2 (ja) | 計算機システム | |
CN110291507B (zh) | 用于提供对存储器系统的加速访问的方法和装置 | |
US5146570A (en) | System executing branch-with-execute instruction resulting in next successive instruction being execute while specified target instruction is prefetched for following execution | |
JP2570859B2 (ja) | データ処理装置 | |
KR20010050703A (ko) | 정보 처리 장치 | |
JPS5987566A (ja) | メモリアクセス検出方式 | |
JPS5991551A (ja) | 分岐先アドレス予測を行なう命令先取り装置 | |
JPS59132047A (ja) | デ−タ処理ユニツト | |
EP0156307A2 (en) | Pipelined processor having dual cache memories | |
JPS60164842A (ja) | 命令先取り装置 | |
JPS6236575B2 (ja) | ||
JPS6236258B2 (ja) | ||
JPS6051947A (ja) | 仮想記憶計算機における命令先取方式 | |
JPS6032220B2 (ja) | 情報処理装置 | |
JPH0342723A (ja) | データ処理装置 | |
JPS5991554A (ja) | 分岐方向予測を行なう命令先取り装置 | |
JPS5991552A (ja) | セツトアソシアテイブ型分岐ヒストリテ−ブルを有する命令先取り装置 | |
JPS59112479A (ja) | キヤツシユメモリの高速アクセス方式 |