JPH05127897A - 分岐予測制御装置及び制御方法 - Google Patents

分岐予測制御装置及び制御方法

Info

Publication number
JPH05127897A
JPH05127897A JP29131691A JP29131691A JPH05127897A JP H05127897 A JPH05127897 A JP H05127897A JP 29131691 A JP29131691 A JP 29131691A JP 29131691 A JP29131691 A JP 29131691A JP H05127897 A JPH05127897 A JP H05127897A
Authority
JP
Japan
Prior art keywords
instruction
branch
address
stage
unit
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.)
Withdrawn
Application number
JP29131691A
Other languages
English (en)
Inventor
Tsutomu Akasaka
勉 赤坂
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP29131691A priority Critical patent/JPH05127897A/ja
Publication of JPH05127897A publication Critical patent/JPH05127897A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】 【目的】分岐命令なら当該命令に基づき生成された分岐
先アドレスと予測分岐先アドレスとを比較して予測を有
効又は無効とする分岐予測制御装置及び制御方法に関
し、簡単な構成で、命令実行の高速化を図ることを目的
とする。 【構成】次の次に実行される次々段命令が分岐命令か否
かを見て、分岐命令なら予測分岐先アドレス及び命令を
発生させ、予測分岐先命令を次々段命令の直後に実行さ
れるべき命令として待機させ、直前の次段命令入力時又
はその直後に次々段命令のアドレス生成を開始し、次々
段命令が分岐命令で比較結果が一致し且つ演算結果が分
岐条件に合致するなら予測を有効とし、分岐命令ではあ
るが比較結果が不一致又は分岐条件に合致しないなら予
測を無効にし次々段命令から生成したアドレスを用い、
分岐命令でないなら次段命令のアドレスを用いて新たな
アドレスを生成して新たな命令の読出しを行うように構
成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はコンピュータシステムの
分岐予測制御装置及び制御方法に係り、特に、命令が格
納される命令格納部と、命令格納部から読み出され、次
に実行されるべき次段命令から実行順に順次保持出力す
る命令保持部と、命令保持部に保持されている命令に対
応するアドレスを、当該命令に同期して順次保持出力す
る命令アドレス保持部と、命令保持部に保持された命令
に基づいて当該命令の実行対象となるオペランドのアド
レスを生成するアドレス生成部と、命令が分岐命令であ
る場合に、アドレス生成部で生成されたアドレスと予測
された予測アドレスとの比較を行い、一致または不一致
に基づいて、予測された分岐先命令実行の推進または停
止の指示を行う比較部とを有する分岐予測制御装置及び
方法に関する。近年多くのコンピュータシステムにおい
てパイプライン処理を行われるようになり、これによっ
て分岐命令によるパイプラインの流れによる実行速度の
低下が問題となった。分岐予測気候は予め分岐予測バッ
ファに先取りしておいた条件分岐命令を含む分岐命令で
の分岐、非分岐の予測情報、分岐先アドレスの命令列も
しくは分岐先アドレスそのものを用いて分岐命令による
パイプラインの乱れを少なくするものであり、できるだ
け高速に分岐命令が実行できるようにする必要がある。
【0002】
【従来の技術】図8に示すように、従来の分岐予測装置
は、命令が格納される命令キャッシュ21と、当該命令
キャッシュ21から読み出され、次に実行されるべき次
段命令を保持出力する次段命令保持部71 と、当該次段
命令保持部71 に保持されている命令に対応するアドレ
スを、当該命令に同期して順次保持出力する次段命令ア
ドレス保持部81 と、前記次段命令保持部71 に保持さ
れた命令に基づいて当該命令の実行対象となるオペラン
ドのアドレスを生成するアドレス生成部6とを有する。
又、命令が分岐命令である場合に、アドレス生成部6で
生成されたアドレスと予測された予測アドレスとの比較
を行い、一致または不一致に基づいて、予測された分岐
先命令実行の推進または停止の指示を行う比較部3を有
する。さらに、前記次段命令アドレス保持部81 に保持
されたアドレス及び分岐の履歴に基づいて、次段命令が
分岐命令であると判断された場合に、その旨を示す信号
及び予測される予測分岐先アドレスを発生させて命令ア
ドレス生成回路16に送出するとともに、予測分岐先命
令を発生させて次段命令保持部71 等に送出する分岐予
測バッファ部46と、次段命令が分岐命令であり、比較
部3の比較結果が一致し、かつ、分岐をするか否かを決
定するために必要な演算結果が分岐条件に合致している
場合には分岐予測バッファ部46からの予測アドレスを
有効として命令キャッシュ21に新たなアドレスを送出
し、次段命令が分岐命令ではあるが比較結果が不一致で
ある場合、または、演算結果等が分岐条件に合致しない
場合には、予測アドレス及び予測された分岐先命令を無
効にし、アドレス生成部6が次段命令から生成したアド
レスを用いて新たなアドレスを生成し、次段命令が分岐
命令でない場合には、前記次段命令アドレス保持部81
から次段命令に対応するアドレスを入力して新たなアド
レスを生成して命令キャッシュ21から命令の読出しを
行う命令アドレス生成回路16とを有するものである。
【0003】従来例にあっては、命令アドレス生成回路
16で生成されたアドレスが命令キャッシュ21に送出
され、命令キャッシュ21から対応する命令が読み出さ
れる。読み出された命令は次段命令保持部71 に保持さ
れる。当該命令保持部71に保持された順序で順次アド
レス生成部6に送らる。アドレス生成部6は、当該命令
が通常の演算命令であれば、オペランドのアドレスを生
成し、当該命令が分岐命令の場合には、当該生成部6か
ら分岐先命令のアドレスを発生する。その際、前記アド
レス保持部8に保持された命令に対応するその命令のア
ドレスが前記命令保持部7からの送出に同期して送出さ
れ、当該アドレスに基づいて分岐予測バッファ部46か
ら分岐先の予測アドレスが送出され、前記比較部3でそ
の両者が比較されることになる。その一致不一致に基づ
いて命令アドレス生成回路16はその予測アドレスを有
効にして採用し、または予測アドレスを無効にしてアド
レス生成部6により生成したアドレスを採用することに
なる。
【0004】
【発明が解決しようとする課題】ところで、従来例にあ
っては、以上説明したような構成であるため、次段命令
保持部71 に保持されている次に実行されるべき命令が
前記アドレス生成部6を使用しない場合であっても、次
々段命令は、当該次段命令が前記アドレス生成部6でア
ドレスの計算を行うために必要な時間だけ、待機し、当
該アドレス計算に必要な時間の経過後に、当該アドレス
生成部6に入力されて、当該次々段命令に関し、アドレ
ス計算が行われることになる。したがって、次々段命令
が分岐命令であって分岐予測が行われる場合には、分岐
命令の実行前に分岐予測を行うことで分岐命令の実行時
間削減をすることは可能であったが、たとえ分岐予測が
的中した場合であっても、1段(サイクル)分だけ、分
岐予測のために時間が遅れることになる。これは分岐命
令があった場合に、分岐先アドレスの検証のため毎回分
岐先アドレスを計算する必要があり、分岐先アドレス生
成部での競合を防ぐために、通常、アドレス計算実行時
間分だけタイミングを遅らせる必要があるからである。
【0005】そこで、本発明では、アドレス生成部を複
数ポート化して分岐アドレス検証用のアドレス生成用の
ポートを設け、分岐アドレス計算を当該分岐命令前後の
命令と同時に行うことによって分岐予測的中時の分岐命
令の実行時間を見かけ上0サイクルにして、簡単な構成
により、命令実行の高速化を図ることを目的とするもの
である。
【0006】
【課題を解決するための手段】以上の技術的課題を解決
するため、第一の発明は図1に示すように、命令が格納
される命令格納部20と、命令格納部20から読み出さ
れ、次に実行されるべき次段命令から実行順に順次保持
出力する命令保持部70と、命令保持部70に保持され
ている命令に対応するアドレスを、当該命令に同期して
順次保持出力する命令アドレス保持部80と、命令保持
部70に保持された命令に基づいて当該命令の実行対象
となるオペランドのアドレスを生成するアドレス生成部
60と、命令が分岐命令である場合に、アドレス生成部
60で生成されたアドレスと予測された予測アドレスと
の比較を行い、一致または不一致に基づいて、予測され
た分岐先命令を有効または無効とする指示を行う比較部
30とを有する分岐予測制御回路において、命令保持部
70に保持される次段命令の次に実行されるべき次々段
命令が分岐命令であるか否かの検出を行う分岐命令検出
部110と、命令アドレス保持部80に保持された次々
段命令のアドレス及び分岐の履歴に基づいて、次々段命
令が分岐命令であると判断された場合に、その旨を示す
信号及び予測される予測分岐先アドレスを発生させて命
令アドレス生成回路10に送出するとともに、予測分岐
先命令を発生させて命令保持部70に次々段命令の直後
に実行されるべき命令として送出する分岐予測バッファ
部40と、次々段命令が分岐命令である場合には信号線
を切り換えて、直前の次段命令が入力されるべきタイミ
ングでまたは次段命令の入力した直後に、次々段命令を
アドレス生成部60に入力させる切換え部120と、次
々段命令が分岐命令であり、比較部30の比較結果が一
致し、且つ、分岐をするか否かを決定するために必要な
演算結果が分岐条件に合致している場合には分岐予測バ
ッファ部40からの予測アドレスを有効として命令格納
部20に新たなアドレスを送出し、次々段命令が分岐命
令ではあるが比較結果が不一致である場合、または、演
算結果等が分岐条件に合致しない場合には、予測アドレ
ス及び予測された分岐先命令を無効にし、アドレス生成
部60が次々段命令から生成したアドレスを用いて新た
なアドレスを生成し、次々段命令が分岐命令でない場合
には、次段命令に対応するアドレスを入力して新たなア
ドレスを生成して命令格納部20から命令の読出しを行
う命令アドレス生成回路10と、を有するものである。
【0007】また、第二の発明は図2に示すように、順
次命令を読み出し(S1)、順次命令実行の対象となる
オペランドのアドレスを生成し、実行されるべき命令が
分岐命令がある場合には、当該分岐命令に基づいて生成
された分岐先アドレスと予測分岐先アドレスとの比較を
行い(S5)、一致または不一致に基づいて、予測され
た予測分岐先アドレス及び予測分岐先命令を有効または
無効とする指示を行う(S7,S8)、分岐予測制御方
法において、次に実行されるべき次段命令の次に実行さ
れるべき次々段命令が分岐命令であるか否かの検出を行
い(S2)、次々段命令が分岐命令であると判断された
場合に、予測分岐先アドレス及び予測分岐先命令を発生
させ、予測分岐先命令を次々段命令の直後に実行される
べき命令として待機させ(S3)、信号線を切り換え
て、直前の次段命令が入力されるべきタイミングでまた
は次段命令の入力した直後に、次々段命令についてアド
レスの生成を開始し(S4)、次々段命令が分岐命令で
あり、前記比較結果が一致し、かつ、分岐をするか否か
を決定するために必要な演算結果が分岐条件に合致して
いる場合には(S5)、予測分岐先アドレスを有効とし
て(S8)、次々段命令が分岐命令ではあるが比較結果
が不一致である場合、または、演算結果等が分岐条件に
合致しない場合には(S5)、予測分岐先アドレス及び
予測分岐先命令を無効にし(S7)、次々段命令から生
成したアドレスを用いて新たなアドレスを生成し(S
9)、次々段命令が分岐先命令でない場合には、次段命
令に対応するアドレスを入力して新たなアドアレスを生
成して(S6)、各々新たな命令の読み出しを行う(S
10)ものである。
【0008】一方、請求項5には、図3に示すように、
前記アドレス生成部60には、前記分岐命令検出部11
0の検出結果に基づいて信号線を切換えて、次段命令ま
たは次々段命令のどちらか一方の命令のみを選択して入
力させる切換え部120と、入力した順に、順次アドレ
スの計算を行うアドレス計算部160を有する実施態様
が示されている。
【0009】さらに、請求項6には、図4に示すよう
に、前記アドレス生成部60には、前記分岐命令検出部
110の検出結果に基づいて、次段命令及び次々段命令
について信号線を切換えて、分岐命令と分岐命令以外の
命令とを切り分けて入力させる切換え部121と、当該
切換え部121により切り分けられて入力した分岐命令
に対しては、分岐命令で指定された分岐先にある分岐先
命令のためのアドレス計算を行って、比較部30または
命令アドレス生成回路10に送出する分岐命令用アドレ
ス計算部1601 が設けられ、分岐命令でない命令に対
しては、前記分岐命令用アドレス計算部1601 とは並
列的にアドレス計算を行うことができるアドレス計算部
1602 が設けられた他の実施態様が示されている。
【0010】
【作用】続いて、本発明の動作について説明する。前記
命令アドレス生成部10から生成されたアドレスが命令
格納部20と命令アドレス保持部80に送出される。命
令格納部20から、ステップS1で当該アドレスに相当
する命令が読み出され、命令保持部70に保持される。
命令保持部70に保持された命令は、解読され、分岐命
令、演算命令(メモリに格納されたオペランドを必要と
する)等のアドレスの計算を必要とする命令である場合
には、順次、アドレス生成部60に送出され、また、演
算命令の場合には、演算部(図示せず)へ、または分岐
命令の場合には、命令アドレス生成部10等へ制御信号
が送出されることになる。その際、命令保持部70に保
持されている、次に実行されるべき次段命令の次に実行
されるべき次々段命令が、ステップS2で、分岐命令検
出部110により、分岐命令であると検出された場合に
は、切換え部120は次段命令のアドレス生成部60へ
の入力に同期して、次々段命令をアドレス生成部60に
入力されるように信号線の切換えを行うことになる。ス
テップS4で、分岐命令である次々段命令にしたがい、
アドレス生成部60はアドレスの計算を行って、分岐先
のアドレスがアドレス生成部60から出力されることに
なる。その際、前記命令アドレス保持部80からは、命
令保持部70から次々段命令がアドレス生成部60に取
り入れる時刻に同期して、ステップS3で、当該次々段
命令の命令アドレスが分岐予測バッファ部40に入力
し、該当する予測分岐先アドレスが出力される。当該予
測分岐先アドレスは、アドレス生成部60から得られた
分岐先アドレスとともに、同期して、ステップS5で、
前記比較部30に送られ、比較されることになる。比較
の結果、一致し、かつ分岐条件に合致する場合には比較
部30から、前記命令アドレス生成部10に対し、ステ
ップS8で、当該予測分岐先命令アドレスが有効の旨を
通知し、ステップS10で次のアドレスの生成処理がな
されることになる。一方、不一致の場合には、ステップ
S7で、予測分岐先命令が無効の旨が通知され、ステッ
プS9で前記アドレス生成部60から得られた分岐先命
令のアドレスが前記命令アドレス回路10に送出され、
ステップS10で次のアドレスの生成処理がなされるこ
とになる。このようにして、次々段命令が分岐命令であ
る場合に、少なくとも、直前の次段命令が前記アドレス
生成部60を使用しない場合には、当該アドレス生成部
60に次々段命令が入力するのは、通常の場合に比較し
て1段(サイクル)早くなり、その分、比較器30によ
る比較が早く行われ、分岐予測が的中した場合には、見
かけ上分岐命令の実行時間を0サイクルにすることがで
きることになる。また、次々段命令が分岐命令であっ
て、直前の次段命令が前記アドレス生成部60を使用す
る命令であるが、当該次々段命令で指定されて当該命令
の直後に実行される分岐先命令がアドレス生成部60を
使用しない場合にも、アドレス生成部60で、当該次々
段命令の直後に実行されることになる分岐先命令と分岐
命令とが競合することはないので、分岐先命令がある場
合のように、1段(サイクル)分遅らせる必要はなく、
分岐予測が的中した場合には、見かけ上分岐命令の実行
時間を早めることができることになる。
【0011】
【実施例】続いて、本発明の実施例について説明する。
図5に本発明の実施例に係るブロック図を示す。本実施
例に係る分岐予測制御装置にあっては、同図に示すよう
に、命令の格納された命令格納部20である命令キャッ
シュ21と、命令キャッシュ21から読み出され、次に
実行されるべき次段命令から実行順に順次保持する命令
保持部7と、命令保持部7に保持されている命令に対応
するアドレスを、当該命令に同期して順次保持出力する
命令アドレス保持部8と、命令保持部7に保持された命
令に基づいて当該命令の実行対象となるオペランドのア
ドレスを生成するアドレス生成部6と、命令が分岐命令
である場合に、分岐予測の検証を行うものであって、ア
ドレス生成部6で生成されたアドレスと予測された予測
アドレスとの比較を行い、一致または不一致に基づい
て、予測された分岐先命令実行の推進または停止の指示
を行う比較部3とを有するものである。また、当該分岐
予測制御装置にあっては、命令保持部7に保持される次
段命令の次に実行されるべき次々段命令が分岐命令であ
るか否かの検出を行う解読部に相当する分岐命令検出部
11と、命令アドレス保持部8に保持された次々段命令
のアドレス及び分岐の履歴に基づいて、次々段命令が分
岐命令であると判断された場合に、その旨を示す信号及
び予測される予測分岐先アドレスを発生させて命令アド
レス生成回路1に送出するとともに、予測分岐先命令を
発生させて命令保持部7に次々段命令の直後に実行され
るべき命令として送出する分岐予測バッファ部4と、次
々段命令が分岐命令である場合には信号線を切り換え
て、直前の次段命令が入力されるべきタイミングでまた
は次段命令の入力した直後に、次々段命令をアドレス生
成部6に入力させる切換え部12とを有するものであ
る。さらに、次々段命令が分岐命令であり、比較器3の
比較結果が一致し、且つ、分岐をするか否かを決定する
ために必要な演算結果が分岐条件に合致している場合に
は分岐予測バッファ部4からの予測アドレスを有効とし
て命令キャッシュ21に新たなアドレスを送出し、次々
段命令が分岐命令ではあるが比較結果が不一致である場
合、または、演算結果等が分岐条件に合致しない場合に
は、予測アドレス及び予測された分岐先命令を無効に
し、アドレス生成部6が次々段命令から生成したアドレ
スを用いて新たなアドレスを生成し、次々段命令が分岐
命令でない場合には、次段命令に対応するアドレスを入
力して新たなアドレスを生成して命令キャッシュ21か
ら命令の読出し(フェッチ)を行う命令アドレス生成回
路1と、命令アドレス生成回路1に演算結果を送出する
演算ユニット13を有するものである。
【0012】また、前記命令保持部7には次に実行され
るべき次段命令が保持される次段命令保持部であるIR
1 と、次段命令の次に実行されるべき次々段命令が保
持されるべき次々段命令保持部であるNIR72 と、さ
らにその次以降に実行されるべき命令が保持される命令
バッファ73 と、を有するものであり、前記命令アドレ
ス保持部8には、次段命令アドレスを保持するIAR8
1 と次々段命令アドレスを保持するNIAR(NEXT
命令アドレスレジスタ)82 とを有するものである。さ
らに、前記分岐予測バッファ部4は、当該NIAR82
に保持されたアドレスをキーとして参照され分岐先アド
レス、分岐先命令列、分岐予測情報が格納されるもので
ある。さらに、前記アドレス生成部6は同図に示すよう
に、複数のポートを有し、命令から分岐先の参照に必要
なアドレスを生成する通常のアドレス生成回路61と汎
用レジスタ62とを有するものである。分岐予測バッフ
ァ41と、予測分岐アドレスレジスタ42とを有するも
のである。続いて、図6には本実施例に係る分岐予測制
御回路を詳細に示すものである。同図に示すように、本
例にあっては、前記アドレス生成回路61は、前記切換
え回路により選択された命令について、順次、そのアド
レスの計算を行うものであり、アドレス加算器63と、
論理アドレスレジスタであるLAR64と、動的アドレ
ス変換(DAT)を高速に行うための変換索引バッファ
であるTLB65と、物理アドレスレジスタであるPA
R66とを有するものである。さらに、前記切換え部1
2は、同図に示すように次段命令を入力する信号線及び
次々段命令を入力する信号線を各々接続された2つのレ
ジスタWAR1及びWAR2と、マルチプレクサ68と
を有するものである。また、前記予測分岐アドレスレジ
スタ42は同図に示すようにタイミング調整用のレジス
タであるTAR1,TAR2,TAR3とを有するもの
である。
【0013】次に、本実施例に係る分岐予測制御回路の
動作について説明する。図6のNIAR(次々段命令ア
ドレス保持部)に保持された、次々段のサイクルにパイ
プラインに投入されるはずの次々段命令のアドレスをキ
ーとして前記分岐予測バッファ41の該当する番地にあ
る情報を参照する。当該番地にNIAR82 に対応する
エントリが存在する場合には、信号線440により当該
次々段命令が分岐命令である旨の情報を送出するととも
に、信号線410により予測分岐先アドレスが前記命令
アドレス生成回路1に送られ、信号線420により予測
分岐先命令列が前記命令保持部7の次段命令保持部であ
るIR71 、必要な場合にはNIR72 さらに必要な場
合には命令バッファ73 に送られる。同時に当該各予測
分岐先命令に対応する予測分岐先アドレスが命令アドレ
ス保持部であるIAR81 及びNIAR82 に保持さ
れ、前記命令保持部71 ,72 に同期して移動保持され
る。
【0014】IR71 に保持された次段命令が解読され
た結果、前記アドレス生成の必要にない命令、例えば、
オペランドとして、レジスタのみのメモリを必要としな
い命令の場合には、アドレス生成回路6には次段命令が
送出されず、アドレス生成回路6は使用されないことに
なる。その場合、次段命令の次に実行されるべき次々段
命令が前記分岐命令検出部である解読部11により分岐
命令であることが検出された場合には、当該次段命令が
当該アドレス生成回路6に入力されるべきタイミング、
すなわち、通常のタイミングに比較してアドレス計算の
ための時間分だけ早く当該次々段命令がレジスタWAR
2 67に送出されるとともに、前記分岐予測バッファ4
1に信号線120を介して、分岐命令である旨が伝達さ
れ、当該信号の入力のタイミングで、前述した予測分岐
先命令が順次NIR72 等に保持される。図7(a)に
はこの場合のタイミングチャートを示す。すなわち、N
IR72 から送出された命令がWAR2 67に保持さ
れるタイミングに同期して、前記分岐予測バッファ41
から出力された予測分岐先命令のアドレスが前記TAR
1 42a、TAR2 42b、TAR3 42c3 に順次保
持されることになる。
【0015】前記NIR72 から前記WAR2 67に保
持された次々段命令は、前記汎用レジスタ62から出力
されたデータと命令語の一部とが合成され、前記分岐命
令検出部11で分岐命令であると検出されたため、マル
チプレクサ68によりNIR72 からの信号線が選択さ
れ、アドレス加算器63に当該命令が入力されることに
なる。図7(a)の「A」で示されるサイクルでアドレ
ス計算が行われ当該サイクルに同期して、前記分岐予測
バッファ41から出力された予測分岐先命令のアドレス
が前記TAR1 42aに保持される。前記アドレス加算
器63で加算された結果のデータである論理アドレスが
前記LAR64に保持され、当該タイミングに同期して
前記予測分岐先アドレスが前記TAR2 42bに保持さ
れる。
【0016】さらに、当該LAR64に保持された論理
アドレスは前記変換索引バッファ65により物理アドレ
スに変換され、PAR66に保持されることになる。当
該タイミングに同期して、前記分岐予測バッファから出
力された分岐先命令のアドレスがTAR3 42cに保持
され、当該TAR3 42cに保持されたアドレスとPA
R66に保持されたアドレスとが同期した前記比較器3
に送出され当該比較器3により比較される。その際、比
較器3によるアドレス比較の結果が一致した場合であっ
て、さらに、条件分岐の場合には信号線900により演
算ユニットより得られる演算結果の条件コードが分岐を
することを示している場合に限り予測分岐先命令の実行
がそのまま実行される。それ以外の場合には、当該分岐
先命令の実行は阻止されるとともに、実際には分岐命令
ではなく、非分岐命令であった場合にはIAR81 に保
持されているアドレスをもとに、分岐命令ではあるが、
比較結果が一致しない場合には、アドレス生成回路6に
より当該分岐命令から直接計算により得られ信号線60
0を介して入力した正しいアドレスを用いて、前記命令
アドレス生成回路1により新しいアドレスを生成して、
前記命令キャッシュ21から命令がフェッチ(読み出)
されることになる。
【0017】一方、次々段命令が分岐命令であり、その
直前に実行されるべき次段命令はアドレス生成回路6を
使用するが、当該分岐命令で分岐された分岐先命令がア
ドレス生成回路を使用しない場合について説明する。図
7(b)に示すように、前述したように、前記分岐予測
バッファ41は前記NIAR82 に保持された次の次に
実行されるべき次々段命令のアドレスを取り込み、当該
アドレスに基づいて、当該アドレスに対応する次々段命
令が分岐命令であることが検出されると、その旨が前記
命令アドレス生成回路1に通知されるとともに、該当す
る予測分岐先命令を前記IR71 、NIR72 及び命令
バッファ73 等に送出し、かつ、当該予測分岐先命令に
対応する予測分岐先命令アドレスを前記命令アドレス生
成回路1及び前記TAR1 42aに送出する。
【0018】その際、前記切換え部68は前記分岐命令
検出部11により前記次々段命令が分岐命令であり、か
つ、当該次々段命令により予測された分岐先命令が前記
アドレス生成回路6を使用しない命令であることが解読
された場合には、図7(b)に示すように、前記IR7
1 に保持された次段命令を前記アドレス生成回路6に入
力するタイミングと同時に、次々段命令を前記レジスタ
WAR2 に入力保持する。その際、図7(b)に示され
ているように、当該次々段命令の直前に実行されるべき
次段命令がアドレス計算を行うために必要な時間だけ、
当該WAR2 に保持され、直前の次段命令についてアド
レス計算が終了したタイミングで、次々段命令が前記ア
ドレス加算器63に送出されることになる。尚、その
際、前記次段命令は次の段階に進み、論理アドレスから
索引バッファ65により物理アドレスに変換される段階
にあることになる。ところで、前記分岐予測バッファ4
1から予測され、前記NIR72 に保持された予測分岐
先命令は当該アドレス生成回路6を使用しないため、図
7(b)に示すように、予測分岐先命令と次々段命令の
アドレス計算とが競合することはなく、次々段命令に関
する分岐予測の検証が1段階早く実施されることにな
る。以上説明した実施例にあっては、前記アドレス生成
回路内にあっては、前記アドレス計算のための回路は1
つの命令についてのみしか実行することはできないが、
当該場合に限られることなく、当該回路を2個設けるこ
とにより、同時に並行して実施することができることに
なり、常に、次々段命令の分岐予測を1段階早く実行す
ることができることになる。
【0019】
【発明の効果】以上説明したように、本発明にあって
は、分岐予測を行うタイミングを、次段命令の直後に実
行されるべき次々段命令が分岐命令の場合について、次
々段命令の直前に実行されるべき次段命令または、次々
段命令の直後に実行されるべき分岐先命令と同じ段階で
実行することができる。したがって、本発明により、分
岐予測が的中した場合には、見かけ上分岐命令の実行時
間を0サイクルにすることができ、簡単な構成で命令実
行の高速化を図ることができる。
【図面の簡単な説明】
【図1】第一の発明の原理ブロック図
【図2】第二の発明の原理流れ図
【図3】第一の発明の実施態様を示すブロック図
【図4】第一の発明の他の実施態様を示すブロック図
【図5】実施例に係るブロック図
【図6】実施例に係る詳細ブロック図
【図7】実施例に係るタイミングチャート
【図8】従来例に係るブロック図
【符号の説明】
10,1 命令アドレス生成回路 20(21) 命令格納部(命令キャッシュ) 30(3) 比較部(比較器) 40,4 分岐予測バッファ部 60,6 アドレス生成部 70,7 命令保持部 80,8 命令アドレス保持部

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】命令が格納される命令格納部(20)と、
    命令格納部(20)から読み出され、次に実行されるべ
    き次段命令から実行順に命令を順次保持出力する命令保
    持部(70)と、命令保持部(70)に保持されている
    命令に対応する命令アドレスを、当該命令に同期して順
    次保持出力する命令アドレス保持部(80)と、命令保
    持部(70)に保持された命令に基づいて当該命令の実
    行対象となるオペランドのアドレスを生成するアドレス
    生成部(60)と、命令が分岐命令である場合に、アド
    レス生成部(60)で生成された分岐先アドレスと予測
    された予測分岐先アドレスとの比較を行い、一致または
    不一致に基づいて、予測された分岐先命令を有効または
    無効とする指示を行う比較部(30)とを有する分岐予
    測制御装置において、 命令保持部(70)に保持される次段命令の次に実行さ
    れるべき次々段命令が分岐命令であるか否かの検出を行
    う分岐命令検出部(110)と、 命令アドレス保持部(80)に保持された次々段命令の
    アドレス及び分岐の履歴に基づいて、次々段命令が分岐
    命令であると判断された場合に、その旨を示す信号及び
    予測される予測分岐先アドレスを発生させて命令アドレ
    ス生成回路(10)に送出するとともに、予測分岐先命
    令を発生させて命令保持部(70)に次々段命令の直後
    に実行されるべき命令として送出する分岐予測バッファ
    部(40)と、 次々段命令が分岐命令である場合には信号線を切り換え
    て、直前の次段命令が入力されるべきタイミングでまた
    は次段命令の入力した直後に、次々段命令をアドレス生
    成部(60)に入力させる切換え部(120)と、 次々段命令が分岐命令であり、比較部(30)の比較結
    果が一致し、且つ、分岐をするか否かを決定するために
    必要な演算結果が分岐条件に合致している場合には分岐
    予測バッファ部(40)からの予測アドレスを有効とし
    て命令格納部(20)に新たなアドレスを送出し、次々
    段命令が分岐命令ではあるが比較結果が不一致である場
    合、または、演算結果等が分岐条件に合致しない場合に
    は、予測アドレス及び予測された分岐先命令を無効に
    し、アドレス生成部(60)が次々段命令から生成した
    アドレスを用いて新たなアドレスを生成し、次々段命令
    が分岐命令でない場合には、次段命令に対応するアドレ
    スを入力して新たなアドレスを生成して命令格納部(2
    0)から命令の読出しを行う命令アドレス生成回路(1
    0)と、を有することを特徴とする分岐予測制御装置。
  2. 【請求項2】順次命令を読み出し(S1)、順次命令実
    行の対象となるオペランドのアドレスを生成し、実行さ
    れるべき命令が分岐命令がある場合には、当該分岐命令
    に基づいて生成された分岐先アドレスと予測分岐先アド
    レスとの比較を行い(S5)、一致または不一致に基づ
    いて、予測された予測分岐先アドレス及び予測分岐先命
    令を有効または無効とする指示を行う(S7,S8)、
    分岐予測制御方法において、 次に実行されるべき次段命令の次に実行されるべき次々
    段命令が分岐命令であるか否かの検出を行い(S2)、 次々段命令が分岐命令であると判断された場合に、予測
    分岐先アドレス及び予測分岐先命令を発生させ、予測分
    岐先命令を次々段命令の直後に実行されるべき命令とし
    て待機させ(S3)、 信号線を切り換えて、直前の次段命令が入力されるべき
    タイミングでまたは次段命令の入力した直後に、次々段
    命令についてアドレスの生成を開始し(S4)、 次々段命令が分岐命令であり、前記比較結果が一致し、
    かつ、分岐をするか否かを決定するために必要な演算結
    果が分岐条件に合致している場合には(S5)、 予測分岐先アドレスを有効として(S8)、 次々段命令が分岐命令ではあるが比較結果が不一致であ
    る場合、または、演算結果等が分岐条件に合致しない場
    合には(S5)、 予測分岐先アドレス及び予測分岐先命令を無効にし(S
    7)、次々段命令から生成したアドレスを用いて新たな
    分岐先アドレスを生成し(S9)、 次々段命令が分岐命令でない場合には、次段命令に対応
    するアドレスを入力して新たなアドレスを生成して(S
    6)、 各々新たな命令の読出しを行う(S10)ことを特徴と
    する分岐予測制御方法。
  3. 【請求項3】前記切換え部(20)は、次々段命令が分
    岐命令であって、その直前に実行されるべき次段命令が
    アドレス生成部(60)を使用しない場合、または、次
    々段命令により分岐予測バッファ部(40)から発生
    し、次々段命令の直後に実行されるべき予測分岐先命令
    がアドレス生成部(60)を使用しない場合には、直前
    の次段命令が入力されるべきタイミングでまたは次段命
    令の入力した直後に、次々段命令をアドレス生成部(6
    0)に入力させるように信号線を切り換えることを特徴
    とする請求項1記載の分岐予測制御装置。
  4. 【請求項4】前記命令保持部(70)には、少なくと
    も、次に実行されるべき次段命令を保持する次段命令保
    持部(701 )と、次の次に実行されるべき次々段命令
    保持部(702 )とを設け、前記命令アドレス保持部
    (80)には、少なくとも、次に実行されるべき次段命
    令のアドレスを前記次段命令保持部(70 1 )と同期し
    て保持する次段命令アドレス保持部(801 )と、次々
    段命令保持部(702 )と同期して次の次に実行される
    べき次々段命令を保持する次々段命令アドレス保持部
    (802 )とを設けたことを特徴とする請求項1記載の
    分岐予測制御装置。
  5. 【請求項5】前記アドレス生成部(60)には、前記分
    岐命令検出部(110)の検出結果に基づいて信号線を
    切換えて、次段命令または次々段命令のどちらか一方の
    命令のみを選択して入力させる切換え部(120)と、 入力した順に、順次アドレスの計算を行うアドレス計算
    部(160)を有することを特徴とする請求項1、請求
    項3及び請求項4記載の分岐予測制御装置。
  6. 【請求項6】前記アドレス生成部(161)には、前記
    分岐命令検出部(110)の検出結果に基づいて、次段
    命令及び次々段命令について信号線を切換えて、分岐命
    令と分岐命令以外の命令とを切り分けて入力させる切換
    え部(121)と、 当該切換え部(121)により切り分けられて入力した
    分岐命令に対しては、分岐命令で指定された分岐先にあ
    る分岐先命令のためのアドレス計算を行って、比較器
    (30)または命令アドレス生成回路(10)に送出す
    る分岐命令用アドレス計算部(1601 )が設けられ、
    分岐命令でない命令に対しては、前記分岐命令用アドレ
    ス計算部(1601 )とは並列的にアドレス計算を行う
    ことができるアドレス計算部(1602 )が設けられた
    ことを特徴とする請求項1、請求項3、請求項4、及び
    請求項5記載の分岐予測制御装置。
JP29131691A 1991-11-07 1991-11-07 分岐予測制御装置及び制御方法 Withdrawn JPH05127897A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP29131691A JPH05127897A (ja) 1991-11-07 1991-11-07 分岐予測制御装置及び制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP29131691A JPH05127897A (ja) 1991-11-07 1991-11-07 分岐予測制御装置及び制御方法

Publications (1)

Publication Number Publication Date
JPH05127897A true JPH05127897A (ja) 1993-05-25

Family

ID=17767328

Family Applications (1)

Application Number Title Priority Date Filing Date
JP29131691A Withdrawn JPH05127897A (ja) 1991-11-07 1991-11-07 分岐予測制御装置及び制御方法

Country Status (1)

Country Link
JP (1) JPH05127897A (ja)

Similar Documents

Publication Publication Date Title
US4827402A (en) Branch advanced control apparatus for advanced control of a branch instruction in a data processing system
US5961637A (en) Split branch system utilizing separate set branch, condition and branch instructions and including dual instruction fetchers
US4476525A (en) Pipeline-controlled data processing system capable of performing a plurality of instructions simultaneously
JP2845646B2 (ja) 並列演算処理装置
JPH0557616B2 (ja)
JPH02287626A (ja) パイプライン方式の分岐命令制御装置
US5386521A (en) Instruction prefetching circuit with a next physical address precalculating circuit
JPH05127897A (ja) 分岐予測制御装置及び制御方法
JP2001100994A (ja) モードを変更する分岐命令を制御する命令処理装置および方法
JP4092112B2 (ja) 演算処理装置
JP2005215946A (ja) 情報処理装置
JPH07262006A (ja) 分岐ターゲットアドレスキャッシュを備えたデータプロセッサ
JPH06131180A (ja) 命令処理方式および命令処理装置
JPH0991139A (ja) 情報処理装置
US5524221A (en) Next instruction pointer calculation system for a microcomputer
JPH0248733A (ja) 情報処理装置
JP2629479B2 (ja) 情報処理装置
JP3419276B2 (ja) 命令プリフェッチ装置、および命令プリフェッチ方法
JPH04213727A (ja) 情報処理装置
JPH05143362A (ja) 割込み処理方式
JP2545594B2 (ja) オペランドデータ先取り方式
JPH03265931A (ja) 命令取出し方式
JPH0348535B2 (ja)
JPH0774992B2 (ja) データ処理装置
JPH01147723A (ja) 情報処理装置のパイプライン処理方式

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19990204