JPH04317130A - 分岐命令処理装置 - Google Patents

分岐命令処理装置

Info

Publication number
JPH04317130A
JPH04317130A JP8396291A JP8396291A JPH04317130A JP H04317130 A JPH04317130 A JP H04317130A JP 8396291 A JP8396291 A JP 8396291A JP 8396291 A JP8396291 A JP 8396291A JP H04317130 A JPH04317130 A JP H04317130A
Authority
JP
Japan
Prior art keywords
branch
instruction
address
branch instruction
instructions
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
Application number
JP8396291A
Other languages
English (en)
Inventor
Mitsunori Kori
光則 郡
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP8396291A priority Critical patent/JPH04317130A/ja
Publication of JPH04317130A publication Critical patent/JPH04317130A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、計算機の分岐命令処
理装置に関するものである。
【0002】
【従来の技術】図2は、従来の分岐命令処理装置の一例
である。図において、1は分岐目標バッファ、2は分岐
目標バッファ1の分岐命令アドレス格納部であり、3お
よび4は分岐アドレス格納部2を構成する分岐アドレス
レジスタである。5は分岐目標バッファ1の分岐目標ア
ドレス格納部であり、6および7は分岐目標アドレス格
納部5を構成する分岐目標アドレスレジスタである。8
は比較器、9はセレクタ、10は命令フェッチ装置、1
1は命令デコード装置、12はアドレス計算装置、13
はプログラムカウンタ、14は次命令アドレス計算装置
、15は主記憶装置である。16、17は主記憶装置1
5に格納された無条件分岐命令であり、18は分岐命令
でない命令、19は無条件分岐命令16のアドレス、2
0は無条件分岐命令17のアドレス、21は命令18の
アドレスである。無条件分岐命令16の分岐先アドレス
は20、無条件分岐命令17の分岐先アドレスは21で
ある。22は分岐目標バッファ1の置換対象選択装置、
23はセレクタである。
【0003】次に動作について説明する。無条件分岐命
令16は、命令フェッチ装置10によって主記憶装置1
5から取り出され、命令デコード装置11へ送られる。 命令デコード装置11で無条件分岐命令16がデコード
されると、プログラムカウンタ13の内容に従って、分
岐目標バッファ1が検索される。比較器8によって一致
が検出されると、一致の検出された分岐命令アドレス格
納部2に対応する分岐目標アドレスレジスタが、次命令
アドレスとしてセレクタ9によって選択され、プログラ
ムカウンタ13に格納される。比較器8によって一致が
検出されなかった場合は、アドレス計算装置12によっ
て計算されたアドレスが、次命令アドレスとしてセレク
タ23によって選択され、プログラムカウンタ13に格
納される。これと同時に、置換対象選択装置22によっ
て一対の分岐命令アドレスレジスタと分岐目標アドレス
レジスタが選択される。選択された分岐命令アドレスレ
ジスタを3、分岐目標アドレスレジスタを6とするとき
、プログラムカウンタ13の内容が、分岐命令アドレス
レジスタ3へ、次命令アドレスが分岐目標アドレスレジ
スタ6へ、それぞれ格納される。
【0004】次いで、命令フェッチ部10によって主記
憶装置15から、無条件分岐命令17が取り出され、命
令デコード装置11へ送られる。命令デコード装置11
で無条件分岐命令17がデコードされると、プログラム
カウンタ13の内容に従って、分岐目標バッファ1が検
索される。比較器8によって一致が検出されると、一致
の検出された分岐命令アドレス格納部2に対応する分岐
目標アドレスレジスタが、次命令アドレスとして選択さ
れ、プログラムカウンタ13に格納される。比較器8に
よって一致が検出されなかった場合は、アドレス計算装
置12によって計算されたアドレスが、次命令アドレス
としてセレクタ23によって選択され、プログラムカウ
ンタ13に格納される。これと同時に、置換対象選択装
置22によって一対の分岐命令アドレスレジスタと分岐
目標アドレスレジスタが選択される。選択された分岐命
令アドレスレジスタを4、分岐目標アドレスレジスタを
7とするとき、プログラムカウンタ13の内容が、分岐
命令アドレスレジスタ4へ、次命令アドレスが分岐目標
アドレスレジスタ7へ、それぞれ格納される。
【0005】更にこの後、無条件分岐命令11が再び実
行された場合、以上の処理において、比較器8によって
一致が検出された場合と同一の処理が繰り返される。
【0006】
【発明が解決しようとする課題】従来の分岐命令処理装
置は、以上のように構成されているので、分岐命令が2
命令以上連続した場合でも、連続した分岐命令の実行時
間は個々の分岐命令の実行時間の総和となり、また、連
続する分岐命令の数だけ分岐命令アドレスレジスタおよ
び分岐目標アドレスレジスタが必要となる。
【0007】この発明は上記のような問題点を解決する
ためになされたもので、連続して実行される2命令以上
の分岐命令に対して、その実行時間を1命令分に削減す
るとともに、所要の分岐命令アドレスレジスタおよび分
岐目標アドレスレジスタをそれぞれ1個分に削減し、分
岐目標バッファの利用効率の向上を図るものである。
【0008】
【課題を解決するための手段】この発明に係る分岐命令
処理装置は、2命令以上連続して分岐命令が実行された
場合、最初の分岐命令に対応する分岐目標バッファの分
岐目標アドレスとして、最後に実行される分岐命令の目
標アドレスを保存する。
【0009】この発明に係る連続分岐命令数レジスタは
、分岐命令アドレスレジスタおよび分岐目標アドレスレ
ジスタの更新時に、連続して実行された分岐命令の数を
保存する。
【0010】
【作用】この発明における分岐命令処理装置は、2命令
以上連続した分岐命令が発生した場合、最初の分岐命令
の実行によって最後に実行される分岐命令の目標アドレ
スの命令へ直接分岐させることを可能とする。
【0011】この発明における連続分岐命令数レジスタ
は、連続されて実行される分岐命令の数を保持すること
により、置換対象選択装置が、連続実行される回数の少
ない分岐命令の列に対応する分岐命令アドレスレジスタ
および、分岐目標アドレスレジスタを置換対象として選
択することを可能とする。
【0012】
【実施例】実施例1.以下、この発明の一実施例を図に
ついて説明する。図1において、1は分岐目標バッファ
、2は分岐目標バッファ1の分岐命令アドレス格納部で
あり、3および4は分岐アドレス格納部2を構成する分
岐アドレスレジスタである。5は分岐目標バッファ1の
分岐目標アドレス格納部であり、6および7は分岐目標
アドレス格納部5を構成する分岐目標アドレスレジスタ
である。8は比較器、9はセレクタ、10は命令フェッ
チ装置、11は命令デコード装置、12はアドレス計算
装置、13はプログラムカウンタ、14は次命令アドレ
ス計算装置、15は主記憶装置である。16、17は主
記憶装置15に格納された無条件分岐命令であり、18
は分岐命令でない命令、19は無条件分岐命令16のア
ドレス、20は無条件分岐命令17のアドレス、21は
命令18のアドレスである。無条件分岐命令16の分岐
先アドレスは20、無条件分岐命令17の分岐先アドレ
スは21である。22は分岐目標バッファ1の置換対象
選択装置、23はセレクタである。24は最終分岐命令
アドレスレジスタ、25はセレクタである。26は連続
分岐命令数格納部であり、27は連続分岐命令数格納部
26を構成する連続分岐命令数格納レジスタである。
【0013】次に動作について説明する。無条件分岐命
令16は、命令フェッチ装置10によって主記憶装置1
5から取り出され、命令デコード装置11へ送られる。 命令デコード装置11で無条件分岐命令16がデコード
されると、プログラムカウンタ13の内容に従って、分
岐目標バッファ1が検索される。比較器8によって一致
が検出されると、一致の検出された分岐命令アドレス格
納部2に対応する分岐目標アドレスレジスタが、次命令
アドレスとしてセレクタ9によって選択され、プログラ
ムカウンタ13に格納される。比較器8によって一致が
検出されなかった場合は、アドレス計算装置12によっ
て計算されたアドレスが、次命令アドレスとして選択さ
れ、プログラムカウンタ13に格納される。これと同時
に、置換対象選択装置22によって一対の分岐命令アド
レスレジスタと分岐目標アドレスレジスタが選択される
。選択された分岐命令アドレスレジスタを3、分岐目標
アドレスレジスタを6とするとき、プログラムカウンタ
13の内容が、分岐命令アドレスレジスタ3へ、次命令
アドレスが分岐目標アドレスレジスタ6へ、それぞれ格
納される。
【0014】このとき、連続分岐命令数格納レジスタ2
6には、値0が書き込まれる。
【0015】次いで、命令フェッチ部10によって主記
憶装置15から、無条件分岐命令17が取り出され、命
令デコード装置11へ送られる。命令デコード装置11
で無条件分岐命令17がデコードされると、最終分岐命
令アドレスレジスタ24の内容に従って、分岐目標バッ
ファ1が検索される。このように連続的に分岐命令が実
行された場合は、比較器8によって分岐命令アドレスレ
ジスタ3と一致が検出されるが、アドレス計算装置12
によって計算されたアドレスが、次命令アドレスとして
選択され、プログラムカウンタ13に格納される。これ
と同時に、次命令アドレスが分岐命令アドレスレジスタ
と対である分岐目標アドレスレジスタ6へ格納される。
【0016】このとき、連続命令数格納レジスタ27の
内容には1が加えられる。オーバフローが発生する場合
はその値のままに保つ。
【0017】この後、無条件分岐命令16が実行される
と、無条件分岐命令16は、命令フェッチ装置10によ
って主記憶装置15から取り出され、命令デコード装置
11へ送られる。命令デコード装置11で無条件分岐命
令16がデコードされると、プログラムカウンタ13の
内容に従って、分岐目標バッファ1が検索される。比較
器8によって一致が検出されると、一致の検出された分
岐命令アドレスレジスタ4に対応する分岐目標アドレス
レジスタ7が、次命令アドレスとして選択されプログラ
ムカウンタ13に格納される。分岐目標アドレスレジス
タ7は命令14のアドレス17を保持しているので、無
条件分岐命令17に関する一連の処理を行わずに、アド
レス21への分岐を行う。
【0018】置換対象選択装置22は、連続命令数格納
レジスタの内容の最も小さいものを優先して置換対象を
選択する。
【0019】実施例2.また、上記実施例では、分岐命
令は2命令連続するとしたが、3命令以上任意の数の連
続分岐に対して適用が可能である。
【0020】実施例3.また、上記実施例では、連続命
令数格納レジスタの内容がオーバフローした場合には、
その値を保つとしたが、0に戻してもよい。
【0021】
【発明の効果】以上のように、この発明によれば、連続
して実行される分岐命令に対して、最初の分岐命令に対
応する分岐目標バッファに最後の分岐命令の目標アドレ
スを保存するように構成したので、分岐命令の実行時間
を短縮し、分岐目標バッファの利用効率を高め、その結
果として計算機の高速化を図れる効果がある。
【図面の簡単な説明】
【図1】この発明の一実施例による分岐命令処理装置を
示す図である。
【図2】この発明の一実施例による分岐命令処理装置を
示す図である。
【符号の説明】
1  分岐目標バッファ 2  分岐目標バッファ1の分岐命令アドレス格納部3
  分岐アドレス格納部2を構成する分岐アドレスレジ
スタ 4  分岐アドレス格納部2を構成する分岐アドレスレ
ジスタ 5  分岐目標バッファ1の分岐目標アドレス格納部6
  分岐目標アドレス格納部5を構成する分岐目標アド
レスレジスタ 7  分岐目標アドレス格納部5を構成する分岐目標ア
ドレスレジスタ 8  比較器 9  セレクタ 10  命令フェッチ装置 11  命令デコード装置 12  アドレス計算装置 13  プログラムカウンタ 14  次命令アドレス計算装置 15  主記憶装置 16  主記憶装置15に格納された分岐命令17  
主記憶装置15に格納された分岐命令18  分岐命令
でない命令 19  分岐命令16のアドレス 20  分岐命令17のアドレス 21  命令18のアドレス 22  置換対象命令選択装置 23  セレクタ 24  最終分岐命令アドレスレジスタ25  セレク
タ 26  連続分岐命令数格納部 27  連続分岐命令数格納レジスタ

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】  分岐目標バッファを備えたデータ処理
    装置において、直前に実行された分岐命令のアドレスを
    格納する記憶装置と、分岐命令アドレスとして現分岐命
    令アドレスまたは直前に実行された分岐命令のアドレス
    のいずれかを選択する選択手段を備えることを特徴とす
    る、データ処理装置。
  2. 【請求項2】  分岐目標バッファ内に連続して実行さ
    れた分岐命令数を格納することを特徴とする請求項1記
    載の分岐命令処理装置。
JP8396291A 1991-04-16 1991-04-16 分岐命令処理装置 Pending JPH04317130A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8396291A JPH04317130A (ja) 1991-04-16 1991-04-16 分岐命令処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8396291A JPH04317130A (ja) 1991-04-16 1991-04-16 分岐命令処理装置

Publications (1)

Publication Number Publication Date
JPH04317130A true JPH04317130A (ja) 1992-11-09

Family

ID=13817187

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8396291A Pending JPH04317130A (ja) 1991-04-16 1991-04-16 分岐命令処理装置

Country Status (1)

Country Link
JP (1) JPH04317130A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0773104A (ja) * 1993-07-01 1995-03-17 Internatl Business Mach Corp <Ibm> キャッシュ・システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0773104A (ja) * 1993-07-01 1995-03-17 Internatl Business Mach Corp <Ibm> キャッシュ・システム

Similar Documents

Publication Publication Date Title
US6898699B2 (en) Return address stack including speculative return address buffer with back pointers
US5276882A (en) Subroutine return through branch history table
EP0448499B1 (en) Instruction prefetch method and system for branch-with-execute instructions
JP2015133126A (ja) プロシージャリターンシーケンスを加速するための方法およびシステム
US5146570A (en) System executing branch-with-execute instruction resulting in next successive instruction being execute while specified target instruction is prefetched for following execution
EP0201833A2 (en) Instruction processor
JPH08320788A (ja) パイプライン方式プロセッサ
JPH04317130A (ja) 分岐命令処理装置
JP2772100B2 (ja) 並列命令フェッチ機構
JPS60231241A (ja) プログラム先行フエツチ制御方式
US8046569B2 (en) Processing element having dual control stores to minimize branch latency
JPS6116334A (ja) デ−タ処理装置
KR100329780B1 (ko) 인터럽트 응답 시간을 줄인 인터럽트 처리 장치
JP3647930B2 (ja) 動的ハイパースカラ・プロセッサ
JP2597744B2 (ja) 分岐制御方法
JP3431503B2 (ja) 情報処理装置およびプログラム制御方法
JPH0922307A (ja) シーケンサ
JPH05334081A (ja) パイプライン処理方式
US20060294345A1 (en) Methods and apparatus for implementing branching instructions within a processor
JPH06301537A (ja) 命令フェッチ回路
JPH05165640A (ja) マイクロプロセッサ
JPH0353322A (ja) 情報処理装置
JPH04167026A (ja) 分岐制御装置
KR19990026795A (ko) 마이크로프로세서
JPH04101219A (ja) 命令分岐予測方式