JPS62293434A - 分岐先予測制御方式 - Google Patents
分岐先予測制御方式Info
- Publication number
- JPS62293434A JPS62293434A JP13739786A JP13739786A JPS62293434A JP S62293434 A JPS62293434 A JP S62293434A JP 13739786 A JP13739786 A JP 13739786A JP 13739786 A JP13739786 A JP 13739786A JP S62293434 A JPS62293434 A JP S62293434A
- Authority
- JP
- Japan
- Prior art keywords
- branch
- instruction
- address
- destination address
- branch destination
- 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
- 238000000034 method Methods 0.000 claims description 2
- 230000000694 effects Effects 0.000 description 2
- 235000009508 confectionery Nutrition 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Landscapes
- Advance Control (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
3、発明の詳細な説明
〔産業上の利用分野〕
本発明は分岐先予測制御方式、特に、命令先取り処理方
式を採用した情報処理装置における分岐予測テーブルに
よる分岐先予測iti!I御刀式に関する。
式を採用した情報処理装置における分岐予測テーブルに
よる分岐先予測iti!I御刀式に関する。
分岐命令は出現頻度が高い一刀で、後続する命令の流れ
の方向を変えるという基本機能の故に、パイプライン地
理等におけるように、命令を先取りする処理方式にはな
じまない性質をもっている。
の方向を変えるという基本機能の故に、パイプライン地
理等におけるように、命令を先取りする処理方式にはな
じまない性質をもっている。
この問題を解決するため分岐予測テーブルが使われてい
る(例えば日経エレクトロニクス、1985年7月15
日号No、373 PP 256〜257)。分岐予測
テーブルには分岐命令が実行されその分岐が成功した場
合にその分岐命令アドレスと分岐先アドレスが対で登録
され、品令語の読み出しと同時にその命令語アドレスで
検索される。この慣索がヒツトする(命令語アドレスと
一致する分岐先アドレスが登録されている)と、次に読
み出す命令語のアドレスとしてヒツトしたエントリの分
岐先アドレスを使うようにして、命令実行時間を短縮し
ている0 〔発明が解決しようとする問題点〕 上述した従来の分岐先予測1lilI@刀式においては
、分岐予測が成功するのは、その分岐命令が前回実行さ
れたときと同じアドレスに分岐する場合である。ところ
が次のようなケースでは分岐予測が失敗する確率が高く
、実効的な分岐命令実行時間の増大となり性能が低下す
るという欠点がある。
る(例えば日経エレクトロニクス、1985年7月15
日号No、373 PP 256〜257)。分岐予測
テーブルには分岐命令が実行されその分岐が成功した場
合にその分岐命令アドレスと分岐先アドレスが対で登録
され、品令語の読み出しと同時にその命令語アドレスで
検索される。この慣索がヒツトする(命令語アドレスと
一致する分岐先アドレスが登録されている)と、次に読
み出す命令語のアドレスとしてヒツトしたエントリの分
岐先アドレスを使うようにして、命令実行時間を短縮し
ている0 〔発明が解決しようとする問題点〕 上述した従来の分岐先予測1lilI@刀式においては
、分岐予測が成功するのは、その分岐命令が前回実行さ
れたときと同じアドレスに分岐する場合である。ところ
が次のようなケースでは分岐予測が失敗する確率が高く
、実効的な分岐命令実行時間の増大となり性能が低下す
るという欠点がある。
m主プログラム各所からコールされるサブルーチンのリ
ターン用分岐命令のように分岐先アドレスの変る分岐命
令 (2)データあるいは計算結果で分岐成功と不成功又は
分岐先アドレスが変る分岐命令 (3)初めて実行される分岐命令 (4)実行されてから次に実行されるまでの間の長い分
岐命令(実行頻度の低い分岐命令)上記のうち(4)は
、登録されても次に実行されるまでに分岐予測テーブル
から追い出されている可能性が鳥いため、分肢予測が失
敗する確率が尚くなるのである。
ターン用分岐命令のように分岐先アドレスの変る分岐命
令 (2)データあるいは計算結果で分岐成功と不成功又は
分岐先アドレスが変る分岐命令 (3)初めて実行される分岐命令 (4)実行されてから次に実行されるまでの間の長い分
岐命令(実行頻度の低い分岐命令)上記のうち(4)は
、登録されても次に実行されるまでに分岐予測テーブル
から追い出されている可能性が鳥いため、分肢予測が失
敗する確率が尚くなるのである。
本発明の方式は、分岐予測テーブルに分岐命令アドレス
及び分岐先アドレスをロードする分岐先アドレスロード
命令を設け、分岐命令の実行前の命令ステップに、この
命令ステ、グのアドレスと加算すると上記分岐命令のア
ドレスとなるようなり1」11σを有しかつ上記分岐命
令の分岐先アドレスを指足した分岐先アドレスロード命
令を実行するようにしたことを特徴とする。
及び分岐先アドレスをロードする分岐先アドレスロード
命令を設け、分岐命令の実行前の命令ステップに、この
命令ステ、グのアドレスと加算すると上記分岐命令のア
ドレスとなるようなり1」11σを有しかつ上記分岐命
令の分岐先アドレスを指足した分岐先アドレスロード命
令を実行するようにしたことを特徴とする。
次に本発明について図面を奈照して説明する。
第1図、第2図およびah 3図は不発明の第1゜第2
および第3の各実施例であシ、分岐先アドレスロード命
令(図/)LB)L、LB、1.L3C命舎)を使用し
た命令列を示す。尚、各図の命令列内の伝線)す以下の
説明に特に必資のない命令列部分の猶帖表示である。
および第3の各実施例であシ、分岐先アドレスロード命
令(図/)LB)L、LB、1.L3C命舎)を使用し
た命令列を示す。尚、各図の命令列内の伝線)す以下の
説明に特に必資のない命令列部分の猶帖表示である。
第】図はサブルーチンのリターン用の分岐命令BCRの
分岐先アドレスを分岐先アドレスロード命令LBRで分
岐予測テーブルにロードしている例である。
分岐先アドレスを分岐先アドレスロード命令LBRで分
岐予測テーブルにロードしている例である。
LAi3EL A、のロード命令りで主プログラムの
リターン先アドレス(LABEL A、の内容)がR
1レジスタにロードされる。分岐先アドレスロード命令
LB几は現命令アドレス(LABELAlの対応アドレ
ス)と即値工1を加算して分岐命令アドレスとし、レジ
スタR1の内容を分岐先アドレスとして分岐予測テーブ
ルにロードする。
リターン先アドレス(LABEL A、の内容)がR
1レジスタにロードされる。分岐先アドレスロード命令
LB几は現命令アドレス(LABELAlの対応アドレ
ス)と即値工1を加算して分岐命令アドレスとし、レジ
スタR1の内容を分岐先アドレスとして分岐予測テーブ
ルにロードする。
分岐先アドレスロード詰合LBR,の即値I、はこの分
岐先アドレスロード命令LBRのアドレスを加えると分
岐命令B CI(、のアドレスになる値を設定する0こ
れによってLABEL A、の詰合飴の読み出しと同
時に実行される分岐予測テーブルの@索はヒ、トシ、そ
の分岐先アドレスは分岐fra 令B CRのリターン
アドレス(Rxの内容)と−gする。従って主グログラ
ムのも所からこのサブルーチンがコールされ、リターン
アドレスが毎回変る場合でもこのリターン用分岐命令の
分岐予ll111は成功する。
岐先アドレスロード命令LBRのアドレスを加えると分
岐命令B CI(、のアドレスになる値を設定する0こ
れによってLABEL A、の詰合飴の読み出しと同
時に実行される分岐予測テーブルの@索はヒ、トシ、そ
の分岐先アドレスは分岐fra 令B CRのリターン
アドレス(Rxの内容)と−gする。従って主グログラ
ムのも所からこのサブルーチンがコールされ、リターン
アドレスが毎回変る場合でもこのリターン用分岐命令の
分岐予ll111は成功する。
第2図はアドレスLABEL A、〜A、のループ処
理の以前に分岐先アドレスロード命令しBを適用した例
を示す。分岐先アドレスロード命令LB此とLBの差異
は、前者の分岐先アドレスがレジスタR1にあるか後者
のそれはメモリに対するアドレスLABEL A、に
ある点のみである。
理の以前に分岐先アドレスロード命令しBを適用した例
を示す。分岐先アドレスロード命令LB此とLBの差異
は、前者の分岐先アドレスがレジスタR1にあるか後者
のそれはメモリに対するアドレスLABEL A、に
ある点のみである。
アドレスLABEL A、〜A、のループが以前に実
行されていても、ループ終了時の計数用の分岐命令BC
Tは分岐不成功で終了している。分岐予測テーブルの登
録は分岐不成功時にその分岐66今に対応するエンドI
Jを無効化する。従って、アドレスLABEL A3
−人、ループが再実行される場合、分岐命令BCTは分
岐予測テーブル上になく、その1まルーズの実行を開始
すると1回目のループ時かならず分岐命令BCTの分岐
予測失敗となる。これを防ぐため分岐先アドレスロード
命令LBで分岐命令BCTのアドレス及び分岐先アドレ
スを分岐予測テーブルにロードしている0 第3図は条件付の分岐命令BCに対する分岐先アドレス
ロード命令LBCの通用例を示している。
行されていても、ループ終了時の計数用の分岐命令BC
Tは分岐不成功で終了している。分岐予測テーブルの登
録は分岐不成功時にその分岐66今に対応するエンドI
Jを無効化する。従って、アドレスLABEL A3
−人、ループが再実行される場合、分岐命令BCTは分
岐予測テーブル上になく、その1まルーズの実行を開始
すると1回目のループ時かならず分岐命令BCTの分岐
予測失敗となる。これを防ぐため分岐先アドレスロード
命令LBで分岐命令BCTのアドレス及び分岐先アドレ
スを分岐予測テーブルにロードしている0 第3図は条件付の分岐命令BCに対する分岐先アドレス
ロード命令LBCの通用例を示している。
分岐先アドレスロード命令LBCの昨値I 1及び分岐
先のアドレスLABEL A3は分岐先アドレスロー
ド命令LBと同じで、即値■lは分岐先アドレスロード
命令LBCのアドレスに加算すると分岐命令BCのアド
レスを指すように設定される0 マスク指定M1の値は分岐命令BCのマスク指定M1と
同じ値を設定し、条件コードを調べるために使用する。
先のアドレスLABEL A3は分岐先アドレスロー
ド命令LBと同じで、即値■lは分岐先アドレスロード
命令LBCのアドレスに加算すると分岐命令BCのアド
レスを指すように設定される0 マスク指定M1の値は分岐命令BCのマスク指定M1と
同じ値を設定し、条件コードを調べるために使用する。
分岐先アドレスロード命令LBCではマスク指定〜11
と条件コードの値により、条件分岐が成功する条件の
場合には分岐命令アドレス及び分岐先アドレスを分岐予
測テーブルに登録する。マスク指定M1と条件コードの
値により条件分岐が不成功となる場合には、分岐命令ア
ドレスで分岐予測テーブルを検索し登録されている場合
はそのエン) IJを無効化する0 以上の処理により条件分岐の分岐成功、不成功が変化す
る場合にも分岐予測は成功する0但し、分岐先アドレス
ロード命令LBCの追加により、その実行時間が発生す
るため、分岐成功、不成功の変化の多い条件分岐命令で
かつ条件分岐命令の命令語読み出し時点までに分岐光ア
ドレスロード命令LBCの実行を完了させることができ
る場合(分岐先アドレスロード分合LBCと分岐命令B
Cの間の他の命令実行時間がバイ124フ段数程;説あ
る場合)に性能改善が大きくなる。
と条件コードの値により、条件分岐が成功する条件の
場合には分岐命令アドレス及び分岐先アドレスを分岐予
測テーブルに登録する。マスク指定M1と条件コードの
値により条件分岐が不成功となる場合には、分岐命令ア
ドレスで分岐予測テーブルを検索し登録されている場合
はそのエン) IJを無効化する0 以上の処理により条件分岐の分岐成功、不成功が変化す
る場合にも分岐予測は成功する0但し、分岐先アドレス
ロード命令LBCの追加により、その実行時間が発生す
るため、分岐成功、不成功の変化の多い条件分岐命令で
かつ条件分岐命令の命令語読み出し時点までに分岐光ア
ドレスロード命令LBCの実行を完了させることができ
る場合(分岐先アドレスロード分合LBCと分岐命令B
Cの間の他の命令実行時間がバイ124フ段数程;説あ
る場合)に性能改善が大きくなる。
以上説明したように本発明は、分岐予測テーブルに分岐
命令アドレス及び分岐先アドレスをロードする分岐先ア
ドレスロード命令を有し、分岐予測失敗確率の高い分岐
命令の実行前に分岐先アドレスロード命令実行をさせる
ことによシ分岐予測を成功濱せて性能を向上させる効果
がある。
命令アドレス及び分岐先アドレスをロードする分岐先ア
ドレスロード命令を有し、分岐予測失敗確率の高い分岐
命令の実行前に分岐先アドレスロード命令実行をさせる
ことによシ分岐予測を成功濱せて性能を向上させる効果
がある。
第1図、第2図および第3図は本発明の第1゜第2およ
び第3の各実施例を示す命令列である。 LB几、LB、LBC・・・・・・分岐先アドレスロー
ド命令、BCR,BCT、BC・・・・・・分岐命令、
L・・・・・・ロード命令、LTR・・・・・ロード・
テスト命令、A6〜A3−−アドレスLABEL、R1
、R。
び第3の各実施例を示す命令列である。 LB几、LB、LBC・・・・・・分岐先アドレスロー
ド命令、BCR,BCT、BC・・・・・・分岐命令、
L・・・・・・ロード命令、LTR・・・・・ロード・
テスト命令、A6〜A3−−アドレスLABEL、R1
、R。
Claims (1)
- 分岐予測テーブルに分岐命令アドレス及び分岐先アドレ
スをロードする分岐先アドレスロード命令を設け、分岐
命令の実行前の命令ステップに、該命令ステップのアド
レスと加算すると前記分岐命令のアドレスとなるような
即値を有しかつ前記分岐命令の分岐先アドレスを指定し
た前記分岐先アドレスロード命令を実行するようにした
ことを特徴とする分岐先予測制御方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP13739786A JPS62293434A (ja) | 1986-06-12 | 1986-06-12 | 分岐先予測制御方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP13739786A JPS62293434A (ja) | 1986-06-12 | 1986-06-12 | 分岐先予測制御方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPS62293434A true JPS62293434A (ja) | 1987-12-21 |
Family
ID=15197705
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP13739786A Pending JPS62293434A (ja) | 1986-06-12 | 1986-06-12 | 分岐先予測制御方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS62293434A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH01216427A (ja) * | 1988-02-24 | 1989-08-30 | Mitsubishi Electric Corp | データ処理装置 |
| JPH04233632A (ja) * | 1990-07-27 | 1992-08-21 | Internatl Business Mach Corp <Ibm> | デイジタルデータプロセツサ作動方法及び分岐履歴テーブル |
| JP2001147807A (ja) * | 1999-10-01 | 2001-05-29 | Hitachi Ltd | 改良された分岐制御命令を利用するためのマイクロプロセッサ、分岐目標命令メモリ、命令ロード制御回路、パイプラインへの命令供給維持方法、分岐制御メモリ、およびプロセッサ |
| WO2009004709A1 (ja) * | 2007-07-02 | 2009-01-08 | Fujitsu Limited | 間接分岐処理プログラムおよび間接分岐処理方法 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5991554A (ja) * | 1982-11-17 | 1984-05-26 | Nec Corp | 分岐方向予測を行なう命令先取り装置 |
| JPS6051948A (ja) * | 1983-08-31 | 1985-03-23 | Hitachi Ltd | 情報処理装置 |
| JPS60164842A (ja) * | 1984-02-08 | 1985-08-27 | Nec Corp | 命令先取り装置 |
-
1986
- 1986-06-12 JP JP13739786A patent/JPS62293434A/ja active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5991554A (ja) * | 1982-11-17 | 1984-05-26 | Nec Corp | 分岐方向予測を行なう命令先取り装置 |
| JPS6051948A (ja) * | 1983-08-31 | 1985-03-23 | Hitachi Ltd | 情報処理装置 |
| JPS60164842A (ja) * | 1984-02-08 | 1985-08-27 | Nec Corp | 命令先取り装置 |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH01216427A (ja) * | 1988-02-24 | 1989-08-30 | Mitsubishi Electric Corp | データ処理装置 |
| JPH04233632A (ja) * | 1990-07-27 | 1992-08-21 | Internatl Business Mach Corp <Ibm> | デイジタルデータプロセツサ作動方法及び分岐履歴テーブル |
| JP2001147807A (ja) * | 1999-10-01 | 2001-05-29 | Hitachi Ltd | 改良された分岐制御命令を利用するためのマイクロプロセッサ、分岐目標命令メモリ、命令ロード制御回路、パイプラインへの命令供給維持方法、分岐制御メモリ、およびプロセッサ |
| WO2009004709A1 (ja) * | 2007-07-02 | 2009-01-08 | Fujitsu Limited | 間接分岐処理プログラムおよび間接分岐処理方法 |
| JPWO2009004709A1 (ja) * | 2007-07-02 | 2010-08-26 | 富士通株式会社 | 間接分岐処理プログラムおよび間接分岐処理方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2752094B2 (ja) | 論理型言語におけるバックトラック処理方式 | |
| US9436466B2 (en) | Blank bit and processor instructions employing the blank bit | |
| JPH0810437B2 (ja) | 仮想計算機システムのゲスト実行制御方式 | |
| JPH0877021A (ja) | 割込処理装置および方法 | |
| JP3461185B2 (ja) | ロードモジュールへのソースコード行番号登録方法および装置 | |
| US11334627B2 (en) | Data processing | |
| JPS62262146A (ja) | 処理装置 | |
| JPH04239338A (ja) | マイクロプログラム網羅率測定方式 | |
| JPS5856153A (ja) | サブル−チンリタ−ン方式 | |
| JPS6242301B2 (ja) | ||
| JPS63251835A (ja) | ベクトル処理装置 | |
| JPH033037A (ja) | マイクロプログラム制御方式 | |
| JPH10240627A (ja) | セクタ管理方法及び装置 | |
| JP3021697B2 (ja) | プログラミング言語における例外処理方法 | |
| JPH0337722A (ja) | 情報処理装置 | |
| JP3015565B2 (ja) | 複数命令の並列実行機能を持つ情報処理装置 | |
| Warren | Prolog Engine | |
| JPH05265755A (ja) | 並列命令実行方式 | |
| JPH0426496B2 (ja) | ||
| JPS63634A (ja) | 並列論理型言語実行方式 | |
| JPH04357527A (ja) | 並列論理型言語の処理方法 | |
| JPH04347730A (ja) | マイクロ・プロセッサの命令処理方式 | |
| JPH0740226B2 (ja) | 分岐命令制御方式 | |
| JPS61245233A (ja) | ビツト処理方法及び装置 | |
| JPS62205430A (ja) | マイクロ命令制御回路 |