JP2570859B2 - データ処理装置 - Google Patents
データ処理装置Info
- Publication number
- JP2570859B2 JP2570859B2 JP1132321A JP13232189A JP2570859B2 JP 2570859 B2 JP2570859 B2 JP 2570859B2 JP 1132321 A JP1132321 A JP 1132321A JP 13232189 A JP13232189 A JP 13232189A JP 2570859 B2 JP2570859 B2 JP 2570859B2
- Authority
- JP
- Japan
- Prior art keywords
- branch
- instruction
- address
- history table
- destination address
- 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 - Fee Related
Links
- 238000001514 detection method Methods 0.000 claims description 56
- 230000003287 optical effect Effects 0.000 claims 1
- 238000000034 method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000004044 response Effects 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)
Description
【発明の詳細な説明】 技術分野 本発明はデータ処理装置に関し、特に命令の先取りを
行うデータ処理装置において用いられる分岐ヒストリテ
ーブルの読出し制御に関する。
行うデータ処理装置において用いられる分岐ヒストリテ
ーブルの読出し制御に関する。
従来技術 従来、この種のデータ処理装置においては、分岐予測
の方法として、「米国特許第3559183号公報」および
「特公昭50−22384号公報」に詳述されている分岐ヒス
トリテーブルを用いた方法と、「米国特許第4477872号
公報」に詳述されているデコードヒストリテーブルを用
いた方法とがある。
の方法として、「米国特許第3559183号公報」および
「特公昭50−22384号公報」に詳述されている分岐ヒス
トリテーブルを用いた方法と、「米国特許第4477872号
公報」に詳述されているデコードヒストリテーブルを用
いた方法とがある。
分岐ヒストリテーブルを用いた方法では、テーブル上
に対象の命令アドレスと一致したアドレスが検出される
と、それに対応する分岐先アドレスがテーブルから読出
され、該アドレスにより命令の先取りが再開されてい
た。
に対象の命令アドレスと一致したアドレスが検出される
と、それに対応する分岐先アドレスがテーブルから読出
され、該アドレスにより命令の先取りが再開されてい
た。
デコードヒストリテーブルを用いた方法では、テーブ
ル上に対象の命令アドレスと一致したアドレスが検出さ
れると、そのアドレスに対応する情報により分岐の成功
または失敗が予測されていた。
ル上に対象の命令アドレスと一致したアドレスが検出さ
れると、そのアドレスに対応する情報により分岐の成功
または失敗が予測されていた。
このような従来のデータ処理装置では、分岐予測に分
岐ヒストリテーブルを用いた方法の場合、制御上命令の
予測され得る先取り方向にしか予測を行うことできない
という欠点がある。
岐ヒストリテーブルを用いた方法の場合、制御上命令の
予測され得る先取り方向にしか予測を行うことできない
という欠点がある。
また、分岐予測にデコードヒストリテーブルを用いた
方法の場合、実際の分岐先の命令の取出しが分岐命令の
デコード後となってしまうため、分岐先の命令の開始が
遅れてしまうという欠点がある。
方法の場合、実際の分岐先の命令の取出しが分岐命令の
デコード後となってしまうため、分岐先の命令の開始が
遅れてしまうという欠点がある。
発明の目的 本発明は上記のような従来のものの欠点を除去すべく
なされたもので、命令の予測されえない先取り方向に対
しても予測を行うことができ、効率のよい分岐命令の制
御を行うことができるデータ処理装置の提供を目的とす
る。
なされたもので、命令の予測されえない先取り方向に対
しても予測を行うことができ、効率のよい分岐命令の制
御を行うことができるデータ処理装置の提供を目的とす
る。
発明の構成 本発明によるデータ処理装置は、分岐命令のアドレス
と該分岐命令の分岐先アドレスとが各々対応して格納さ
れた分岐ヒストリテーブルを用いた命令の先取りを行う
データ処理装置であって、上位装置からの命令取出し要
求のアドレスが前記分岐ヒストリテーブルに存在するか
否かを検出する検出手段と、前記上位装置から送出され
かつ前記検出手段で前記命令取出し要求のアドレスが存
在することが検出された時に前記分岐ヒストリテーブル
から前記分岐先アドレスを読出すか否かを示す検出モー
ドを保持する検出モード保持手段と、前記検出モードが
前記分岐ヒストリテーブルから前記分岐先アドレスを読
出すことを示す時に前記検出手段の前記結果に応じて該
命令取出し要求のアドレスを基に前記分岐ヒストリテー
ブルから読出された前記分岐先アドレスで命令の先取り
を行うか否かを示す情報を保持する第1の保持手段と、
前記検出モードが前記分岐ヒストリテーブルから前記分
岐先アドレスを読出さないことを示す時に前記検出手段
の検出結果に応じて前記命令取出し要求のアドレスに一
致する分岐命令があるか否かを示す情報を保持する第2
の保持手段とを備えている。
と該分岐命令の分岐先アドレスとが各々対応して格納さ
れた分岐ヒストリテーブルを用いた命令の先取りを行う
データ処理装置であって、上位装置からの命令取出し要
求のアドレスが前記分岐ヒストリテーブルに存在するか
否かを検出する検出手段と、前記上位装置から送出され
かつ前記検出手段で前記命令取出し要求のアドレスが存
在することが検出された時に前記分岐ヒストリテーブル
から前記分岐先アドレスを読出すか否かを示す検出モー
ドを保持する検出モード保持手段と、前記検出モードが
前記分岐ヒストリテーブルから前記分岐先アドレスを読
出すことを示す時に前記検出手段の前記結果に応じて該
命令取出し要求のアドレスを基に前記分岐ヒストリテー
ブルから読出された前記分岐先アドレスで命令の先取り
を行うか否かを示す情報を保持する第1の保持手段と、
前記検出モードが前記分岐ヒストリテーブルから前記分
岐先アドレスを読出さないことを示す時に前記検出手段
の検出結果に応じて前記命令取出し要求のアドレスに一
致する分岐命令があるか否かを示す情報を保持する第2
の保持手段とを備えている。
本発明による他のデータ処理装置は、上記の構成のほ
かに、前記分岐ヒストリテーブルを用いて分岐予測を行
う時に予測されうる第1の命令列と、前記分岐ヒストリ
テーブルを用いて分岐予測を行う時に予測されない第2
の命令列とを具備し、前記第1の命令列の命令取出しに
対しては前記分岐先アドレスを読出すよう前記検出モー
ドを設定し、前記第2の命令列の命令取出しに対しては
前記分岐先アドレスを読出さないよう前記検出モードを
設定するようにしている。
かに、前記分岐ヒストリテーブルを用いて分岐予測を行
う時に予測されうる第1の命令列と、前記分岐ヒストリ
テーブルを用いて分岐予測を行う時に予測されない第2
の命令列とを具備し、前記第1の命令列の命令取出しに
対しては前記分岐先アドレスを読出すよう前記検出モー
ドを設定し、前記第2の命令列の命令取出しに対しては
前記分岐先アドレスを読出さないよう前記検出モードを
設定するようにしている。
実施例 次に、本発明の一実施例について図面を参照して説明
する。
する。
第1図は本発明の一実施例の構成を示すブロック図で
ある。図において、命令アドレスレジスタ(IAR)1は
命令取出しのアドレスを保持するレジスタであり、信号
線101を介して送られてくるアドレス生成回路(図示せ
ず)からの命令アドレスを受取って保持し、その命令ア
ドレスの一部を信号線102を介して分岐命令アドレス記
憶回路(TAA)2および分岐先アドレス記憶回路(TAB)
3に送出するとともに、その命令アドレスの他の部分を
信号線103を介して命令アドレス比較回路(TAC)4に命
令アドレスの比較用として送出する。
ある。図において、命令アドレスレジスタ(IAR)1は
命令取出しのアドレスを保持するレジスタであり、信号
線101を介して送られてくるアドレス生成回路(図示せ
ず)からの命令アドレスを受取って保持し、その命令ア
ドレスの一部を信号線102を介して分岐命令アドレス記
憶回路(TAA)2および分岐先アドレス記憶回路(TAB)
3に送出するとともに、その命令アドレスの他の部分を
信号線103を介して命令アドレス比較回路(TAC)4に命
令アドレスの比較用として送出する。
分岐命令アドレス記憶回路2は過去に分岐した分岐命
令のアドレスの一部を記憶するメモリであり、信号線10
2を介して送られてくる命令アドレスレジスタ1からの
命令アドレスの一部により索引され、その命令アドレス
の一部に対応する過去の分岐命令のアドレスの一部を信
号線104を介して命令アドレス比較回路4に送出する。
令のアドレスの一部を記憶するメモリであり、信号線10
2を介して送られてくる命令アドレスレジスタ1からの
命令アドレスの一部により索引され、その命令アドレス
の一部に対応する過去の分岐命令のアドレスの一部を信
号線104を介して命令アドレス比較回路4に送出する。
分岐先アドレス記憶回路3は分岐命令アドレス記憶回
路2に記憶された分岐命令のアドレスの一部に対応する
分岐先アドレスを記憶するメモリであり、信号線102を
介して送られてくる命令アドレスレジスタ1からの命令
アドレスの一部により索引され、その命令アドレスの一
部に対応する分岐先アドレスを信号線105を介して予測
分岐先アドレスレジスタ(TAR)5に送出する。
路2に記憶された分岐命令のアドレスの一部に対応する
分岐先アドレスを記憶するメモリであり、信号線102を
介して送られてくる命令アドレスレジスタ1からの命令
アドレスの一部により索引され、その命令アドレスの一
部に対応する分岐先アドレスを信号線105を介して予測
分岐先アドレスレジスタ(TAR)5に送出する。
命令アドレス比較回路4は命令取出しのアドレスと過
去の分岐命令のアドレスとが一致するかどうかを検出す
る比較回路であり、信号線103を介して送られてくる命
令アドレスレジスタ1からの命令アドレスの他の部分
と、信号線104を介して送られてくる分岐命令アドレス
記憶回路2からの過去の分岐命令のアドレスの一部とを
比較し、その比較結果を信号線106を介してアンド回路1
0,11に送出する。
去の分岐命令のアドレスとが一致するかどうかを検出す
る比較回路であり、信号線103を介して送られてくる命
令アドレスレジスタ1からの命令アドレスの他の部分
と、信号線104を介して送られてくる分岐命令アドレス
記憶回路2からの過去の分岐命令のアドレスの一部とを
比較し、その比較結果を信号線106を介してアンド回路1
0,11に送出する。
予測分岐先アドレスレジスタ5は命令取出しのアドレ
スと過去の分岐命令のアドレスとが一致した場合に対応
する分岐先アドレスを受取るレジスタであり、信号線10
9を介して送られてくるアンド回路11からの検出信号に
応じて、信号線105を介して送られてくる分岐先アドレ
ス記憶回路3からの分岐先アドレスを受取り、信号線11
1を介してアドレス生成回路に予測分岐先アドレスとし
て送出する。
スと過去の分岐命令のアドレスとが一致した場合に対応
する分岐先アドレスを受取るレジスタであり、信号線10
9を介して送られてくるアンド回路11からの検出信号に
応じて、信号線105を介して送られてくる分岐先アドレ
ス記憶回路3からの分岐先アドレスを受取り、信号線11
1を介してアドレス生成回路に予測分岐先アドレスとし
て送出する。
検出モードフラグ(TSM)6は命令アドレスレジスタ
1と対応して、命令アドレスレジスタ1に保持された命
令アドレスと分岐命令アドレス記憶回路2に記憶された
過去の分岐命令のアドレスとが一致したときに分岐先ア
ドレスを読出すか否かのモードを保持するフリップフロ
ップであり、信号線107を介して送られてくる命令先取
り制御回路(図示せず)からの検出モードを受取り、そ
の検出モードを信号線108を介してノット回路9および
アンド回路11に送出する。
1と対応して、命令アドレスレジスタ1に保持された命
令アドレスと分岐命令アドレス記憶回路2に記憶された
過去の分岐命令のアドレスとが一致したときに分岐先ア
ドレスを読出すか否かのモードを保持するフリップフロ
ップであり、信号線107を介して送られてくる命令先取
り制御回路(図示せず)からの検出モードを受取り、そ
の検出モードを信号線108を介してノット回路9および
アンド回路11に送出する。
検出フラグ(TH)7は命令アドレスレジスタ1に保持
された命令アドレスと一致する分岐命令のアドレスが検
出され、予測分岐先アドレスが予測分岐先アドレスレジ
スタ5に読出されたことを示す予測分岐先アドレス読出
し情報を保持するフリップフロップであり、信号線109
を介して送られてくるアンド回路11からの予測分岐先ア
ドレス読出し情報を受取り、該予測分岐先アドレス読出
し情報を信号線112を介して命令先取り制御回路に送出
する。
された命令アドレスと一致する分岐命令のアドレスが検
出され、予測分岐先アドレスが予測分岐先アドレスレジ
スタ5に読出されたことを示す予測分岐先アドレス読出
し情報を保持するフリップフロップであり、信号線109
を介して送られてくるアンド回路11からの予測分岐先ア
ドレス読出し情報を受取り、該予測分岐先アドレス読出
し情報を信号線112を介して命令先取り制御回路に送出
する。
検出フラグ(TH)8は命令アドレスレジスタ1に保持
された命令アドレスと一致する分岐命令のアドレスが検
出されても、予測分岐先アドレスが予測分岐先アドレス
レジスタ5に読出されなかったことを示す分岐命令アド
レス一致情報を保持するフリップフロップであり、信号
線110を介して送られてくるアンド回路10からの分岐命
令アドレス一致情報を受取り、該分岐命令アドレス一致
情報を信号線113を介して命令先取り制御回路に送出す
る。
された命令アドレスと一致する分岐命令のアドレスが検
出されても、予測分岐先アドレスが予測分岐先アドレス
レジスタ5に読出されなかったことを示す分岐命令アド
レス一致情報を保持するフリップフロップであり、信号
線110を介して送られてくるアンド回路10からの分岐命
令アドレス一致情報を受取り、該分岐命令アドレス一致
情報を信号線113を介して命令先取り制御回路に送出す
る。
ノット回路9は否定の論理を作成する回路であり、信
号線108を介して送られてくる検出モードフラグ6から
の検出モードの反転値を信号線114を介してアンド回え
回路に送出する。
号線108を介して送られてくる検出モードフラグ6から
の検出モードの反転値を信号線114を介してアンド回え
回路に送出する。
アンド回路10は理論積を作成する回路であり、信号線
106を介して送られてくる命令アドレス比較回路4から
の比較結果と、信号線114を介して送られてくるノット
回路9からの検出モードの反転値との論理積をとり、分
岐命令アドレス一致情報を信号線110を介して検出フラ
グ8に送出する。
106を介して送られてくる命令アドレス比較回路4から
の比較結果と、信号線114を介して送られてくるノット
回路9からの検出モードの反転値との論理積をとり、分
岐命令アドレス一致情報を信号線110を介して検出フラ
グ8に送出する。
アンド回路11は論理積を作成する回路であり、信号線
106を介して送られてくる命令アドレス比較回路4から
の比較結果と、信号線108を介して送られてくる検出モ
ードフラグ6からの検出モードとの論理積をとり、信号
線109を介して予測分岐先アドレスレジスタ5にストロ
ーブ信号を送出し、信号線109を介して検出フラグ7に
予測分岐先アドレス読出し情報を送出する。
106を介して送られてくる命令アドレス比較回路4から
の比較結果と、信号線108を介して送られてくる検出モ
ードフラグ6からの検出モードとの論理積をとり、信号
線109を介して予測分岐先アドレスレジスタ5にストロ
ーブ信号を送出し、信号線109を介して検出フラグ7に
予測分岐先アドレス読出し情報を送出する。
次に、第1図を用いて本発明の一実施例の動作につい
て説明する。
て説明する。
まず、通常の命令取出し時には、命令アドレスレジス
タ1に命令取出しアドレスがセットされるとともに、検
出モードフラグ6に検出モードとして“1"がセットされ
る。
タ1に命令取出しアドレスがセットされるとともに、検
出モードフラグ6に検出モードとして“1"がセットされ
る。
この命令アドレスレジスタ1にセットされた命令取出
しアドレスの一部により分岐命令アドレス記憶回路2か
ら過去の分岐命令のアドレスが読出されると、命令アド
レスレジスタ1の命令取出しアドレスと分岐命令アドレ
ス記憶回路2からの過去の分岐命令のアドレスとが命令
アドレス比較回路4で比較される。
しアドレスの一部により分岐命令アドレス記憶回路2か
ら過去の分岐命令のアドレスが読出されると、命令アド
レスレジスタ1の命令取出しアドレスと分岐命令アドレ
ス記憶回路2からの過去の分岐命令のアドレスとが命令
アドレス比較回路4で比較される。
それらのアドレスが一致すると、信号線106を介して
命令アドレス比較回路4からアンド回路10,11に比較結
果として“1"が出力される。
命令アドレス比較回路4からアンド回路10,11に比較結
果として“1"が出力される。
このとき、検出モードフラグ6には、“1"がセットさ
れているので、アンド回路11に“1"が入力され、アンド
回路10にノット回路9を介して“0"が入力される。
れているので、アンド回路11に“1"が入力され、アンド
回路10にノット回路9を介して“0"が入力される。
よって、アンド回路10から検出フラグ8には“0"が出
力され、アンド回路11から予測分岐先アドレスレジスタ
5および検出フラグ7には“1"が出力される。
力され、アンド回路11から予測分岐先アドレスレジスタ
5および検出フラグ7には“1"が出力される。
これにより、予測分岐先アドレスレジスタ5には分岐
先アドレス記憶回路3から読出された分岐先アドレスが
保持される。
先アドレス記憶回路3から読出された分岐先アドレスが
保持される。
検出フラグ7に“1"がセットされることにより、予測
分岐先アドレスレジスタ5に保持された分岐先アドレス
によって命令の先取りが開始されるが、その予測方向以
外の命令取出しでは命令アンドレスレジスタ1に命令取
出しアドレスがセットされるときに検出モードフラグ6
に検出モードとして“0"がセットされる。
分岐先アドレスレジスタ5に保持された分岐先アドレス
によって命令の先取りが開始されるが、その予測方向以
外の命令取出しでは命令アンドレスレジスタ1に命令取
出しアドレスがセットされるときに検出モードフラグ6
に検出モードとして“0"がセットされる。
この場合、上述の処理動作と同様に、命令アドレス比
較回路4で命令アドレスレジスタ1の命令取出しアドレ
スと分岐命令アドレス記憶回路2からの過去の分岐命令
のアドレスとが比較され、それらのアドレスが一致する
と、命令アドレス比較回路4からアンド回路10,11に比
較結果として“1"が出力される。
較回路4で命令アドレスレジスタ1の命令取出しアドレ
スと分岐命令アドレス記憶回路2からの過去の分岐命令
のアドレスとが比較され、それらのアドレスが一致する
と、命令アドレス比較回路4からアンド回路10,11に比
較結果として“1"が出力される。
このとき、検出モードフラグ6には“0"がセットされ
ているので、アンド回路11に“0"が入力され、アンド回
路10にノット回路9を介して“1"が入力される。
ているので、アンド回路11に“0"が入力され、アンド回
路10にノット回路9を介して“1"が入力される。
よって、アンド回路10から検出フラグ8には“1"が出
力され、アンド回路11から予測分岐先アドレスレジスタ
5および検出フラグ7には“0"が出力される。
力され、アンド回路11から予測分岐先アドレスレジスタ
5および検出フラグ7には“0"が出力される。
これにより、予測分岐先アドレスレジスタ5に分岐先
アドレス記憶回路3から読出された分岐先アドレスが保
持されることはない。
アドレス記憶回路3から読出された分岐先アドレスが保
持されることはない。
この場合には、検出フラグ8にセットされた内容が分
岐の成功または失敗を予測するための情報として使用さ
れる。
岐の成功または失敗を予測するための情報として使用さ
れる。
第2図は本発明の一実施例の動作を示す図である。図
において、(A)〜(C)は夫々条件分岐命令(TZE)
を示しており、〜は夫々命令列を示している。
において、(A)〜(C)は夫々条件分岐命令(TZE)
を示しており、〜は夫々命令列を示している。
通常、分岐ヒストリテーブルを用いて分岐予測を行う
とき、その予測される命令列上の分岐命令と分岐先アド
レスとを予測するため、条件分岐命令(A),(B)が
分岐ヒストリテーブルにヒットした場合には命令列に
対して予測を行う。この場合、条件分岐命令(A)の分
岐失敗側や条件分岐命令(B)の分岐失敗側に対して予
測はされない。
とき、その予測される命令列上の分岐命令と分岐先アド
レスとを予測するため、条件分岐命令(A),(B)が
分岐ヒストリテーブルにヒットした場合には命令列に
対して予測を行う。この場合、条件分岐命令(A)の分
岐失敗側や条件分岐命令(B)の分岐失敗側に対して予
測はされない。
すなわち、実際に条件分岐命令(A)が実行されたと
きに分岐が失敗すると、条件分岐の命令(C)は予測さ
れていないため、命令列が処理されることになる。
きに分岐が失敗すると、条件分岐の命令(C)は予測さ
れていないため、命令列が処理されることになる。
しかしながら、命令列の命令取出しに対しては検出
モードフラグ6に“1"をセットし、それ以外は検出モー
ドフラグ6に“0"をセットする。
モードフラグ6に“1"をセットし、それ以外は検出モー
ドフラグ6に“0"をセットする。
すると、予測分岐先の命令の取出しは行われないが、
条件分岐命令(C)に対してもその命令アドレスが分岐
ヒストリテーブルに存在するか否かを検出することがで
きる。
条件分岐命令(C)に対してもその命令アドレスが分岐
ヒストリテーブルに存在するか否かを検出することがで
きる。
つまり、その検出結果によりヒットが示されたときに
は条件分岐命令(C)に対して分岐成功を予測し、ミス
ヒットが示されたときには条件分岐命令(C)に対して
分岐失敗を予測して分岐命令を処理することができる。
は条件分岐命令(C)に対して分岐成功を予測し、ミス
ヒットが示されたときには条件分岐命令(C)に対して
分岐失敗を予測して分岐命令を処理することができる。
このように、分岐先予測のための分岐命令アドレス記
憶回路2および分岐先アドレス記憶回路3からなる分岐
ヒストリテーブルへのアクセスに対応して検出モードを
設定し、その検出モードが分岐ヒストリテーブルからの
分岐先アドレスの読出しを示し、命令取出しアドレスが
分岐ヒストリテーブルに存在することが検出されたとき
に、該命令取出しアドレスにより分岐ヒストリテーブル
から読出された分岐先アドレスで命令の先取りを行い、
その検出モードが分岐ヒストリテーブルからの分岐先ア
ドレスの読出しを示さず、該命令取出しアドレスが分岐
ヒストリテーブルに存在することが検出されたときに、
該命令取出しアドレスに一致する分岐命令があることを
示すようにすることによって、分岐ヒストリテーブルの
機能と同時に、分岐命令検出のためのデコードヒストリ
テーブル同様の能力を持たせることができる。
憶回路2および分岐先アドレス記憶回路3からなる分岐
ヒストリテーブルへのアクセスに対応して検出モードを
設定し、その検出モードが分岐ヒストリテーブルからの
分岐先アドレスの読出しを示し、命令取出しアドレスが
分岐ヒストリテーブルに存在することが検出されたとき
に、該命令取出しアドレスにより分岐ヒストリテーブル
から読出された分岐先アドレスで命令の先取りを行い、
その検出モードが分岐ヒストリテーブルからの分岐先ア
ドレスの読出しを示さず、該命令取出しアドレスが分岐
ヒストリテーブルに存在することが検出されたときに、
該命令取出しアドレスに一致する分岐命令があることを
示すようにすることによって、分岐ヒストリテーブルの
機能と同時に、分岐命令検出のためのデコードヒストリ
テーブル同様の能力を持たせることができる。
よって、分岐予測失敗側の先取りに関しても、予測分
岐先命令の先取りは行わないが、分岐命令が存在し、か
つその分岐命令が分岐するという情報を命令先取り制御
回路に伝達することができるので、命令の予測されえな
い先取り方向に対しても予測を行うことができ、効率の
よい分岐命令の制御を行うことができる。
岐先命令の先取りは行わないが、分岐命令が存在し、か
つその分岐命令が分岐するという情報を命令先取り制御
回路に伝達することができるので、命令の予測されえな
い先取り方向に対しても予測を行うことができ、効率の
よい分岐命令の制御を行うことができる。
また、検出モードを常に“1"または“0"にしておくこ
とにより、上記の回路を分岐ヒストリテーブルまたはデ
コードヒストリテーブルのうちどちらか一方の能力だけ
を持たせることも可能である。
とにより、上記の回路を分岐ヒストリテーブルまたはデ
コードヒストリテーブルのうちどちらか一方の能力だけ
を持たせることも可能である。
発明の効果 以上説明したように本発明によれば、検出モードが分
岐ヒストリテーブルからの分岐先アドレスの読出しを示
し、命令取出しアドレスが分岐ヒストリテーブルに存在
することが検出されたときに、該命令取出しアドレスに
より分岐ヒストリテーブルから読出された分岐先アドレ
スで命令の先取りを行い、検出モードが分岐ヒストリテ
ーブルからの分岐先アドレスの読出しを示さず、該命令
取出しアドレスが分岐ヒストリテーブルに存在すること
が検出されたときに、該命令取出しアドレスに一致する
分岐命令があることを示すようにすることによって、命
令の予測されえない先取方向に対しても予測を行うこと
ができ、効率のよい分岐命令の制御を行うことができる
という効果がある。
岐ヒストリテーブルからの分岐先アドレスの読出しを示
し、命令取出しアドレスが分岐ヒストリテーブルに存在
することが検出されたときに、該命令取出しアドレスに
より分岐ヒストリテーブルから読出された分岐先アドレ
スで命令の先取りを行い、検出モードが分岐ヒストリテ
ーブルからの分岐先アドレスの読出しを示さず、該命令
取出しアドレスが分岐ヒストリテーブルに存在すること
が検出されたときに、該命令取出しアドレスに一致する
分岐命令があることを示すようにすることによって、命
令の予測されえない先取方向に対しても予測を行うこと
ができ、効率のよい分岐命令の制御を行うことができる
という効果がある。
第1図は本発明の一実施例の構成を示すブロック図、第
2図は本発明の一実施例の動作を示す図である。 主要部分の符号の説明 2……分岐命令アドレス記憶回路 3……分岐先アドレス記憶回路 4……命令アドレス比較回路 5……予測分岐先アドレスレジスタ 6……検出モードフラグ 7,8……検出フラグ 9……ノット回路 10,11……アンド回路
2図は本発明の一実施例の動作を示す図である。 主要部分の符号の説明 2……分岐命令アドレス記憶回路 3……分岐先アドレス記憶回路 4……命令アドレス比較回路 5……予測分岐先アドレスレジスタ 6……検出モードフラグ 7,8……検出フラグ 9……ノット回路 10,11……アンド回路
Claims (2)
- 【請求項1】分岐命令のアドレスと該分岐命令の分岐先
アドレスとが各々対応して格納された分岐ヒストリテー
ブルを用いて命令の先取りを行うデータ処理装置であっ
て、 上位装置からの命令取出し要求のアドレスが前記分岐ヒ
ストリテーブルに存在するか否かを検出する検出手段
と、 前記上位装置から送出されかつ前記検出手段で前記命令
取出し要求のアドレスが存在することが検出された時に
前記分岐ヒストリテーブルから前記分岐先アドレスを読
出すか否かを示す検出モードを保持する検出モード保持
手段と、 前記検出モードが前記分岐ヒストリテーブルから前記分
岐光アドレスを読出すことを示す時に前記検出手段の検
出結果に応じて該命令取出し要求のアドレスを基に前記
分岐ヒストリテーブルから読出された前記分岐先アドレ
スで命令の先取りを行うか否かを示す情報を保持する第
1の保持手段と、 前記検出モードが前記分岐ヒストリテーブルから前記分
岐先アドレスを読出さないことを示す時に前記検出手段
の検出結果に応じて前記命令取出し要求のアドレスに一
致する分岐命令があるか否かを示す情報を保持する第2
の保持手段とを有することを特徴とするデータ処理装
置。 - 【請求項2】前記分岐ヒストリテーブルを用いて分岐予
測を行う時に予測されうる第1の命令列と、前記分岐ヒ
ストリテーブルを用いて分岐予測を行う時に予測されな
い第2の命令列とを含み、前記第1の命令列の命令取出
しに対しては前記分岐先アドレスを読出すよう前記検出
モードを設定し、前記第2の命令列の命令取出しに対し
ては前記分岐先アドレスを読出さないよう前記検出モー
ドを設定するようにしたことを特徴とする請求項1記載
のデータ処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1132321A JP2570859B2 (ja) | 1989-05-25 | 1989-05-25 | データ処理装置 |
US07/527,911 US5317702A (en) | 1989-05-25 | 1990-05-24 | Device for effectively controlling a branch history table for an instruction prefetching system even if predictions are branch unsuccessful |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1132321A JP2570859B2 (ja) | 1989-05-25 | 1989-05-25 | データ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH02310624A JPH02310624A (ja) | 1990-12-26 |
JP2570859B2 true JP2570859B2 (ja) | 1997-01-16 |
Family
ID=15078583
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1132321A Expired - Fee Related JP2570859B2 (ja) | 1989-05-25 | 1989-05-25 | データ処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5317702A (ja) |
JP (1) | JP2570859B2 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5394530A (en) * | 1991-03-15 | 1995-02-28 | Nec Corporation | Arrangement for predicting a branch target address in the second iteration of a short loop |
US5434985A (en) * | 1992-08-11 | 1995-07-18 | International Business Machines Corporation | Simultaneous prediction of multiple branches for superscalar processing |
JP3211423B2 (ja) * | 1992-10-13 | 2001-09-25 | ソニー株式会社 | 分岐命令実行方法および分岐命令実行装置 |
US5740417A (en) * | 1995-12-05 | 1998-04-14 | Motorola, Inc. | Pipelined processor operating in different power mode based on branch prediction state of branch history bit encoded as taken weakly not taken and strongly not taken states |
US6055621A (en) * | 1996-02-12 | 2000-04-25 | International Business Machines Corporation | Touch history table |
US5887174A (en) * | 1996-06-18 | 1999-03-23 | International Business Machines Corporation | System, method, and program product for instruction scheduling in the presence of hardware lookahead accomplished by the rescheduling of idle slots |
US6044222A (en) * | 1997-06-23 | 2000-03-28 | International Business Machines Corporation | System, method, and program product for loop instruction scheduling hardware lookahead |
US6275918B1 (en) | 1999-03-16 | 2001-08-14 | International Business Machines Corporation | Obtaining load target operand pre-fetch address from history table information upon incremented number of access indicator threshold |
US7085915B1 (en) | 2000-02-29 | 2006-08-01 | International Business Machines Corporation | Programmable prefetching of instructions for a processor executing a non-procedural program |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3559183A (en) * | 1968-02-29 | 1971-01-26 | Ibm | Instruction sequence control |
US4477872A (en) * | 1982-01-15 | 1984-10-16 | International Business Machines Corporation | Decode history table for conditional branch instructions |
EP0109655B1 (en) * | 1982-11-17 | 1991-07-24 | Nec Corporation | Instruction prefetching device with prediction of a branch destination address |
WO1985000453A1 (en) * | 1983-07-11 | 1985-01-31 | Prime Computer, Inc. | Data processing system |
JPH0769818B2 (ja) * | 1984-10-31 | 1995-07-31 | 株式会社日立製作所 | デ−タ処理装置 |
JPS623339A (ja) * | 1985-06-28 | 1987-01-09 | Nec Corp | 中央処理装置の高速化方式に於ける命令先取り方式 |
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 |
DE3752100T2 (de) * | 1986-01-07 | 1997-12-11 | Nippon Electric Co | Befehlsvorabrufgerät mit einer Schaltung zum Prüfen der Vorhersage eines Verzweigungsbefehls vor seiner Ausführung |
US4991080A (en) * | 1986-03-13 | 1991-02-05 | International Business Machines Corporation | Pipeline processing apparatus for executing instructions in three streams, including branch stream pre-execution processor for pre-executing conditional branch instructions |
JPS62226232A (ja) * | 1986-03-28 | 1987-10-05 | Toshiba Corp | 分岐先アドレス算出回路 |
GB2188759B (en) * | 1986-04-05 | 1990-09-05 | Burr Brown Ltd | Data processing with op code early comparison |
JPS63147230A (ja) * | 1986-12-10 | 1988-06-20 | Nec Corp | 命令の先取りを行なうデ−タ処理装置 |
US4943908A (en) * | 1987-12-02 | 1990-07-24 | International Business Machines Corporation | Multiple branch analyzer for prefetching cache lines |
GB8728493D0 (en) * | 1987-12-05 | 1988-01-13 | Int Computers Ltd | Jump prediction |
-
1989
- 1989-05-25 JP JP1132321A patent/JP2570859B2/ja not_active Expired - Fee Related
-
1990
- 1990-05-24 US US07/527,911 patent/US5317702A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5317702A (en) | 1994-05-31 |
JPH02310624A (ja) | 1990-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2603626B2 (ja) | データ処理装置 | |
EP0118828B1 (en) | Instruction fetch apparatus and method of operating same | |
US8171260B2 (en) | Fetching all or portion of instructions in memory line up to branch instruction based on branch prediction and size indicator stored in branch target buffer indexed by fetch address | |
US20080294867A1 (en) | Arithmetic processor, information procesing apparatus and memory access method in arithmetic processor | |
EP0381447A2 (en) | Method and apparatus for controlling the conversion of virtual to physical memory addresses in a digital computer system | |
JPS61243536A (ja) | デ−タ処理装置における先行制御装置 | |
JPH06110683A (ja) | マイクロプロセッサの拡張ブランチターゲット方法及びその装置 | |
JPS63503177A (ja) | 命令先取制御装置 | |
US7343477B1 (en) | Efficient read after write bypass | |
JPH07281895A (ja) | 分岐キャッシュ | |
US6760835B1 (en) | Instruction branch mispredict streaming | |
JP2570859B2 (ja) | データ処理装置 | |
JP3499135B2 (ja) | 情報処理装置 | |
JPH02287626A (ja) | パイプライン方式の分岐命令制御装置 | |
JPS5991551A (ja) | 分岐先アドレス予測を行なう命令先取り装置 | |
JPS6312030A (ja) | 情報処理装置のエラ−処理機構 | |
JPS6236258B2 (ja) | ||
JPH04245334A (ja) | 情報処理装置の命令先読み制御方式 | |
JP2001154845A (ja) | キャッシュミスした後のメモリバスアクセス制御方式 | |
JPH10154072A (ja) | パイプライン処理装置 | |
JPH0248733A (ja) | 情報処理装置 | |
JP2658342B2 (ja) | データ処理装置 | |
JPH06119238A (ja) | 主記憶制御方法および装置 | |
JPS63311438A (ja) | ストア命令不一致制御回路 | |
JPH0553798A (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |