JPH06301538A - 条件分岐命令処理装置 - Google Patents

条件分岐命令処理装置

Info

Publication number
JPH06301538A
JPH06301538A JP10776693A JP10776693A JPH06301538A JP H06301538 A JPH06301538 A JP H06301538A JP 10776693 A JP10776693 A JP 10776693A JP 10776693 A JP10776693 A JP 10776693A JP H06301538 A JPH06301538 A JP H06301538A
Authority
JP
Japan
Prior art keywords
branch
instruction
address
branch instruction
fetch
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
JP10776693A
Other languages
English (en)
Inventor
Kazuya Okabe
和也 岡部
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP10776693A priority Critical patent/JPH06301538A/ja
Publication of JPH06301538A publication Critical patent/JPH06301538A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】 【目的】 分岐予測が外れることによる処理速度の低下
を防止する。 【構成】 プログラムの実行に従って分岐命令が出現す
ると、これが分岐命令テーブル64に格納される。分岐
命令テーブル64には、命令フィールド643の他、分
岐命令のアドレスフィールド642、直前アドレスフィ
ールド641及び分岐命令のオペランドの情報が格納さ
れる。これらのうち、直前アドレスフィールド641
は、分岐命令のアドレスの2命令前のアドレスである。
命令の実行は、命令フェッチ、デコード、演算及び結果
格納の4ステージで行なわれる。従って、パイプライン
処理方式では、あるステージでフェッチされた命令が実
行されるのは2命令後である。このため、命令フェッチ
と同時に分岐命令テーブル64を検索することにより、
次のステージで分岐先を検出し、分岐命令が実行される
前に分岐先を検出することができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、分岐命令が実行される
前に分岐条件を判定し、分岐先を予測する条件分岐命令
処理装置に関するものである。
【0002】
【従来の技術】一般に、計算機における命令の実行は、
以下の手順で行なわれる。まず、命令メモリに格納され
た命令がデコーダのレジスタに転送される。これを命令
フェッチという。次に、デコーダで命令が解読される。
そして、演算部で命令が実行される。最後に、実行結果
がデータメモリに格納される。この場合の命令フェッ
チ、解読、実行、結果格納の各処理を、独立のハードウ
ェアで行なうことにより、各処理を並行して行なうこと
ができる。このような処理方式をパイプライン方式とい
う。
【0003】パイプライン方式では、命令フェッチ、解
読、実行、結果格納の各処理を、各1クロックで行なう
とすると、ある1クロックにおいて、ある命令が実行さ
れるとき、その同じクロックで1つ先の命令が解読さ
れ、また、その同じクロックで2つ先の命令がフェッチ
される。この場合、命令メモリに格納された順に命令が
実行されるときは、順調にパイプライン処理が行なわれ
るが、途中で分岐命令が現われると、パイプライン処理
ができなくなる。つまり、分岐命令では、命令の実行結
果によりその命令の次の命令に進む場合と、分岐先の命
令に進む場合とに分かれる。従って、分岐命令が含まれ
る場合にパイプライン処理を行なうには、分岐命令の実
行前に、分岐先を予測しなければならない。
【0004】このため、従来、次のような分岐予測が行
なわれている。第1の方式としては、予め分岐方向を一
意に決めて予測するものがある。これは、過去の命令実
行結果にかかわらず、常に一方向に予測するものであ
り、分岐すると予測する方式と、分岐しないと予測する
方式とがある。また、第2の方式として、分岐予測テー
ブルに過去の分岐方向を記憶するための情報を格納して
おき、分岐命令の実行前にこの分岐予測テーブルを参照
して次の分岐方向を予測する方式がある。
【0005】図2は、従来技術における分岐予測テーブ
ルを示す図である。図2に示すように、分岐予測テーブ
ルは、分岐命令アドレス21、分岐先アドレス22、分
岐方向予測情報23、有効無効情報24の4つのフィー
ルドから成る。このうち、分岐方向予測情報23は、分
岐予測を行なうための情報で、通常2ビットから成る。
そのうち、1ビットは、前回の分岐予測を示し、他の1
ビットは、前々回の分岐予測を示す。そして、例えば、
2回予測が外れたときに分岐予測を変更する。また、有
効無効情報は、例えば、“1”の時に当該エントリが有
効であることを示し、“0”の時に無効であることを示
す(例えば、Johnny K.F.Lee,Alan Jay Smith “Branch
Prediction Strategies and Branch target Buffer De
sign”IEEE COMPUTER January 1984参照)。
【0006】このような分岐予測テーブルを用いること
によって、分岐命令を実行して分岐条件の判定と、分岐
先アドレスの計算を行なうよりも早く、分岐命令をフェ
ッチしたときに分岐先を予測することが可能となる。こ
れにより、分岐命令実行結果が得られるまでの待ち時間
がなくなる。もし、この予測が成功しなかった場合に
は、先行的に実行した結果を破棄する。この分岐予測テ
ーブルは、分岐命令を処理する度に更新される。つま
り、ある分岐命令を実行したときに分岐命令アドレス2
1に該当するアドレスを持つものがあり、そのエントリ
の有効無効情報24が“1”であれば、そのエントリの
分岐方向予測情報23に分岐命令によって分岐が行なわ
れたか否かによって、あるアルゴリズムによって求めら
れる値を書き込む。例えば、この分岐命令は過去におい
て常に分岐が行なわれていたとすると、分岐方向予測情
報23は“11”であり、新たにこの分岐命令を実行し
た結果分岐が行なわれなければ、このフィールドは“1
0”に変化する。
【0007】更に、当該エントリの分岐先アドレス22
には、分岐命令によって分岐が行なわれたときの分岐先
アドレスを書き込む。もし、分岐命令アドレス21に該
当するアドレスが存在せず、すべてのエントリの有効無
効情報が“1”であれば、最も古くアクセスされた分岐
命令アドレス21を持つエントリを削除して、新しい分
岐命令アドレスに関する情報を書き込む。もし、分岐命
令アドレス21に、該当するアドレスが存在せず、有効
無効情報が“0”であるエントリがあれば、それらのエ
ントリのうちから1つを選び出して用いる。ここで、分
岐予測テーブルにおいて、有効無効情報24が“1”で
あるエントリの分岐命令アドレス21の中に、フェッチ
された分岐命令のアドレスに該当するアドレスが存在し
ないときに、分岐命令を実行した結果、分岐を行なわな
ければならなくなったときの動作について説明する。
【0008】図3に、命令列と命令実行タイミングの例
を示す。図3の例において、(a)の命令「BR Z,
R10」は、フラグレジスタの内容が零の時に分岐を行
ない、分岐先のアドレスがR10に保持されていること
を示す。(b)の命令「ADD R11,R12,R1
3」は、(a)の命令の直後のアドレスの命令であり、
R11とR12の内容の和を求めてR13に書き込むこ
とを示す。(c)の命令「ADD R21,R22,R
23」は、(a)の命令の分岐先のアドレスにある命令
であり、R21とR22の内容の和を求めてR23に書
き込むことを示す。この命令のアドレスは、R10に格
納されている。
【0009】図3に示す例では、fステージ、dステー
ジ、eステージ、wステージの4つのステージでから成
るパイプライン処理を行なう。fステージでは、命令フ
ェッチを行なう。dステージでは、命令デコード及びレ
ジスタからのオペランド読出しを行なう。eステージで
は、命令実行、分岐の条件判断及び分岐先アドレスの計
算を行なう。wステージでは、結果の書き込みを行な
う。(a)の命令「BR Z,R10」をフェッチ中に
分岐予測テーブルの分岐命令アドレスの検索が行なわれ
る。分岐予測テーブルには、プログラム中に出現する各
分岐命令のアドレスが格納されている。ところが、該当
する命令アドレスが存在しないので、次のステージで
は、命令メモリ内の次のアドレスの命令がフェッチされ
る。しかし、命令(a)のeステージで分岐条件判断を
行ない、分岐条件が成立したとする。例えば、フラグレ
ジスタの内容が“0”であったとする。すると、分岐先
アドレスが計算され、その結果、次のステージにおいて
分岐先の命令(c)がフェッチされる。そして、以後、
このアドレスの命令から連続する命令がフェッチされ
る。一方、図3(b)に示すように、命令(b)は、d
ステージまで進んだ時点で実行を取り止める。この時、
2ステージの遅れが生じる。
【0010】
【発明が解決しようとする課題】しかしながら、上述し
た従来の技術には、次のような問題があった。まず、分
岐方向を一定方向のみに予測する第1の方式では、分岐
予測の的中率が低いという問題があった。また、図2に
示すような分岐予測テーブルを用いる第2の方式にも、
以下のような問題があった。即ち、数値演算におけるル
ープ処理のように、同一の命令列を何度も繰り返すよう
な命令列がある時には、連続的に同じ分岐方向となるの
で、必ず予測が当るが、分岐方向が頻繁に変わる場合に
は予測が当らない。従って、分岐命令の分岐先が決定し
た後で分岐先の命令をフェッチし直さなければならな
い。このため、パイプライン処理に時間的なロスが生
じ、処理速度が低下するという問題があった。
【0011】本発明は、以上の点に着目してなされたも
ので、分岐命令の予測が外れた場合の処理速度の低下を
防止できるようにした条件分岐命令処理装置を提供する
ことを目的とするものである。
【0012】
【課題を解決するための手段】本発明の条件分岐命令処
理装置は、分岐命令の一定命令数だけ前のアドレスを示
す直前アドレス、分岐条件を得るための情報及び分岐先
アドレスを計算するための情報を対応させて格納する分
岐命令テーブルと、現在フェッチされている命令のアド
レスを、前記分岐命令テーブルに格納された直前アドレ
スと比較する比較手段と、当該比較手段により、現在フ
ェッチされている命令のアドレスが前記分岐命令テーブ
ルの直前アドレスと一致していることを検出した場合、
当該直前アドレスに対応して前記分岐命令テーブルに格
納された情報から分岐先のアドレスを計算することによ
り、分岐する場合のフェッチアドレスと分岐しない場合
のフェッチアドレスの両方のアドレスを予め用意する命
令フェッチアドレス生成手段と、前記比較手段により、
現在フェッチされている命令のアドレスが前記分岐命令
テーブルの直前アドレスと一致していることを検出した
場合、当該直前アドレスに対応して前記分岐命令テーブ
ルに格納された情報から前記分岐条件を得て分岐すべき
か否かを判定し、当該判定結果に応じて前記命令フェッ
チ生成手段に予め用意されたフェッチアドレスのいずれ
かを選択する分岐条件判定手段とから成ることを特徴と
するものである。
【0013】
【作用】本発明の条件分岐命令処理装置においては、プ
ログラムが実行されるに従って分岐命令が出現すると、
これが分岐命令テーブルに格納される。分岐命令テーブ
ルには、分岐命令の他、分岐命令のアドレス、直前アド
レス及び分岐命令のオペランドの情報が格納される。こ
れらのうち、直前アドレスは、例えば、分岐命令のアド
レスの2命令前のアドレスである。命令の実行は、命令
フェッチ、デコード、演算及び結果格納の4ステージで
行なわれる。従って、パイプライン処理方式では、ある
ステージでフェッチされた命令が実行されるのは2命令
後である。このため、命令フェッチと同時に分岐命令テ
ーブルを検索することにより、次のステージで分岐先を
検出することができる。このようにして、分岐命令が実
行される前に分岐先を検出することができる。従って、
従来のような分岐予測を行なう必要はない。
【0014】
【実施例】以下、本発明の実施例を図面を参照して詳細
に説明する。図1は、本発明の条件分岐命令処理装置の
一実施例のブロック図である。また、図4は、図1の装
置を適用した処理装置を示すブロック図である。図4に
示す装置は、命令メモリ1、デコーダ2、演算部3、レ
ジスタファイル4、フラグレジスタ5、及び条件分岐命
令処理装置6から成る。また、条件分岐命令処理装置6
は、命令フェッチアドレス生成手段61、分岐条件判定
手段62、比較手段63、分岐命令テーブル64から成
る。命令メモリ1は、一連の命令を格納しており、命令
フェッチアドレス生成手段61から与えられるアドレス
で示される命令をデコーダ2に送る。デコーダ2は、そ
の命令を解析する。このデコーダ2により、例えば命令
が分岐命令であるとか加算命令であることが解析され
る。この結果、デコーダ2から演算部3に解読後の命令
が通知され、解読された命令が分岐命令であるときは、
条件分岐命令処理装置6にその旨が通知される。
【0015】演算部3は、デコーダ2から与えられた命
令を判別しその実行を行なう。このとき、演算部3は、
演算ソースとなる値をレジスタファイル4から読み出
し、更に演算結果をレジスタファイル4に書き込むとと
もに、演算が加算のような数値演算であるときにはフラ
グレジスタ5を更新する。例えば、「ADD R1,R
2,R3」の加算命令の場合には、レジスタファイル4
からR1の値とR2の値を読み出し、これらの値を加算
する。そして、加算結果をレジスタファイル4のR3に
書き込む。これとともに、加算結果の符号をフラグレジ
スタ5に書き込む。
【0016】条件分岐命令処理装置6の分岐条件判定手
段62は、分岐命令の実行時に、レジスタファイル4か
ら読み出した2つのデータが同じものであること、又は
フラグレジスタ5の内容が零であることをチェックし、
命令フェッチアドレス生成手段61に通知する。このよ
うに、両方の形式の分岐命令に対応するようにしている
が、いずれか一方のみに対応するようにしてもよい。
【0017】分岐命令テーブル64は、図1に示すよう
に、N個のエントリを持ち、各エントリはそれぞれ8つ
のフィールドに分割されている。各フィールドは、分岐
命令の2命令前の命令のアドレスを保持する直前アドレ
スフィールド641、分岐命令のアドレスを保持するア
ドレスフィールド642、分岐命令を保持する命令フィ
ールド643を備えている。また、2つのレジスタの内
容を比較して分岐を行なう場合に比較する値を保持する
2つのレジスタを示すsrc1フィールド644、sr
c2フィールド645を備えている。更に、分岐先アド
レス生成時に現在のアドレスからの相対値を保持するレ
ジスタの番号を示すsrc3フィールド646、現在の
命令アドレスからの相対値を示す即値を持つ分岐相対値
フィールド647を備えている。更にまた、“1”の時
に当該エントリが有効であることを示す有効フィールド
648を備えている。初期状態での分岐命令テーブル6
4は、すべてのエントリの有効フィールドが“0”であ
り、これにより、分岐命令テーブル64のすべてのエン
トリが無効とされる。
【0018】比較手段63は、分岐命令テーブル64の
各直前アドレスフィールド641の値を取り出して、命
令フェッチアドレス生成手段61から取り出した現在命
令フェッチを行なっているアドレスと比較する。そし
て、この比較の結果、一致するものがあるかどうかを命
令フェッチアドレス生成手段61に通知する。この場
合、図示の例では、比較手段63は、分岐命令テーブル
64の各エントリの数Nと等しい数の比較器631、6
32を備えている。これにより、現在の命令フェッチア
ドレスと分岐命令テーブル64の各エントリの直前アド
レスとが同時に比較される。従って、エントリの数Nが
大きい場合にも迅速な比較が行なえる。
【0019】命令フェッチアドレス生成手段61は、最
新の命令を保持しているPC(プログラムカウンタ)6
11、第1加算器612、第2加算器613、方向制御
部614から成る。通常の場合、分岐を行なわなけれ
ば、第1加算器612でPC611に“4”を加えて
(命令が4バイトの場合)これを命令メモリ1に通知す
ることにより、連続するアドレスの命令をフェッチす
る。分岐する時には、命令で指定されるレジスタファイ
ル4から読み出した現在のアドレスからの相対値(sr
c3)又は命令に含まれている即値(分岐相対値)のい
ずれかかと、現在の命令アドレスを第2加算器613で
加算する。このため、第2加算器613にはレジスタ値
と分岐相対値とがオア回路616を介して入力される。
そして、命令メモリ1から次にフェッチすべき命令のア
ドレスを決定し、命令メモリ1に通知する。更に、命令
フェッチアドレス生成手段61は、比較手段63の出力
を1ステージ遅らせて第1加算器612及び第2加算器
613の結果を選択するための方向制御部614を備え
ている。
【0020】図5、図6及び図7は、図1及び図4に示
す処理装置の動作を示すタイミングチャートである。こ
れらの図に示すように、図4に示す処理装置は、従来の
処理装置と同様に、F,D,E,Wの4つのステージか
ら成るパイプライン処理を行なう。図5は、フラグレジ
スタ5をチェックした結果によって分岐を行なう場合の
タイミングを示し、図6は、レジスタファイル4内の2
つのレジスタ値を比較した結果によって分岐を行なう場
合のタイミングを示す。
【0021】まず、図5の場合の動作を説明する。図示
のように、時刻t1から順に命令をフェッチする。今、
時刻t4に命令C4のフェッチを開始したとする。この
時、比較手段63を用いて、フェッチアドレスを分岐命
令テーブル64の直前アドレスフィールド641と比較
する。ところが、ここでは一致するものがなく、命令C
3は分岐命令でないので、命令フェッチアドレス生成手
段61は第1加算器612で連続したアドレスを生成
し、命令メモリ1に通知する。
【0022】従って、時刻t5で命令C5をフェッチす
るとともに、フェッチアドレスと分岐命令テーブル64
の直前アドレスフィールド641を比較手段63内の比
較器を用いて比較する。そして、もし一致するものがあ
り、当該エントリの有効フィールド648が“1”であ
れば、時刻t5にフェッチした命令C5の2つ後の命令
C7が分岐命令であり、かつ、この分岐命令は分岐命令
テーブル64に登録されていることになる。この分岐命
令が分岐しない時に、分岐命令の直後に実行される命令
のアドレスは、時刻t6でフェッチを行なっている命令
アドレスの2命令後の命令C8である。この命令C8の
アドレスは、時刻t6で第1加算器612で計算され
る。
【0023】一方、時刻t5にフェッチした命令C5の
2つ後の分岐命令が分岐する時のアドレスは、分岐命令
テーブル64内の命令フィールド643を参照してアド
レス決定の方法を取得して計算する。そして、アドレス
決定の方法がレジスタ間接指定の時にはsrc3フィー
ルド646で示されるレジスタを読み出し、即値指定の
時には分岐命令テーブル64の分岐相対値フィールド6
47を読み出す。その後、その読み出した値を命令フェ
ッチアドレス生成手段61に送り、第2加算器613で
いずれかの方法でアドレスを計算する。このようにし
て、時刻t6では第1加算器612及び第2加算器61
3で分岐しない場合と分岐する場合の2つのアドレスが
生成される。
【0024】他方、この時刻t6では、分岐条件判定手
段62でフラグレジスタ5のチェックが行なわれる。そ
して、時刻t6の終りにこのフラグレジスタ5のチェッ
クの結果によって、選択器615により第1加算器61
2又は第2加算器613のいずれかを選択し、次の時刻
t7においてフェッチする命令のアドレスを決定する。
そして、時刻t7では時刻t5にフェッチした命令の2
つ後の分岐命令の分岐先の命令をフェッチする。
【0025】ただし、時刻t5で分岐命令テーブル64
の直前アドレスフィールド641にその時のフェッチア
ドレスに一致するものがなければ、従来と同様に、時刻
t6、時刻t7でも連続するアドレスの命令がフェッチ
される。従って、時刻t7では分岐命令である命令C7
がフェッチされ、この時刻t7のステージで図2に示す
従来と同様の分岐予測テーブルの検索が行なわれる。
【0026】従って、フェッチアドレスが分岐命令テー
ブル64にヒットした時には、分岐しない場合と分岐す
る場合の2つのアドレスが両方とも計算され、いずれか
が選択されるので、処理の遅れが生じることがない。こ
の場合、ヒットした時は、分岐命令である命令C7はフ
ェッチされず、例えば分岐しない場合はその次の命令C
8が時刻t7でフェッチされる。一方、ミスヒットした
時には、時刻t7で命令C7がフェッチされる。従っ
て、ヒットした時はミスヒットの時と比較して1ステー
ジ分処理が速くなる。また、分岐命令テーブル64の更
新を行なうために、まず有効フィールドが“0”である
エントリを検索し、有効フィールドが“0”であるエン
トリがあれば、その中のいずれか1つに分岐命令をデコ
ードする時刻t8で、分岐命令の内容を書き込む。この
場合、有効フィールドが“0”のエントリがなければ、
分岐命令テーブル64内からLRUアルゴリズムによっ
て選ばれたエントリに、分岐命令の内容を書き込む。
【0027】次に、図6の場合の動作を説明する。時刻
t1から順に命令をフェッチしていく。今、図6におい
て時刻t4に命令4のフェッチを開始したとする。この
時の動作は図5に示す場合と同じである。更に、時刻t
5、時刻t6においてもアドレス計算に関しては、図5
の動作と同じであり、時刻t5でレジスタファイル4を
読み出し、時刻t6で2つの値を比較することが異なる
だけである。そして、図6の場合も図5の場合と同様に
時刻t6のアドレス生成終了時には分岐方向が定まって
いる。従って、図6に示す分岐命令においても、分岐命
令テーブル64にヒットした時には、従来技術による分
岐命令の処理よりも1ステージ分高速な処理が行なえ
る。
【0028】ただし、図5、図6に示す例では、分岐条
件となるレジスタ又はフラグレジスタが、分岐命令を予
測した分岐判定のためのフラグレジスタ5、レジスタフ
ァイル4の読み出しのタイミングより後に変更されない
という条件が必要である。これらのレジスタ、フラグレ
ジスタが変更されてはならないタイミングを図5、図6
のA1、A2、A3等で示す。これらのタイミングで書
換えが発生すると、分岐先のすでに実行された結果は破
棄され、再度条件となるレジスタを読み出し、条件判定
を行ない、更にアドレス計算を行なわなければならな
い。尚、すでに実行された結果を破棄するための手段に
ついては、分岐の先行実行、割込み制御などの技術があ
る。
【0029】図7は、フラグレジスタを判定して分岐を
行なう命令を処理する際に、フラグレジスタが図5の命
令C5によりA2のタイミングで書換えられたときのタ
イミングを示す。この時、時刻t4でフェッチされた分
岐先の命令8は時刻t5のステージの開始時に破棄され
る。従って、時刻t5で再度フラグレジスタのチェック
と2つのアドレス生成を行なって正しい分岐先を確定す
る。これと並行して、図2に示すような通常の分岐予測
テーブルによって予測を行なったアドレスの命令をフェ
ッチする。もし、通常の分岐予測テーブルによる予測が
正しければそのまま実行を続け、通常の分岐予測テーブ
ルによる予測が間違っていれば時刻t6において時刻t
5で確定している正しい分岐先の命令をフェッチする。
【0030】尚、上述した実施例においては、図1に示
すような構成の条件分岐命令処理装置としたが、本発明
はこれに限定されることなく、種々の変形が可能であ
る。例えば、分岐命令テーブル64に格納される分岐命
令は、分岐先のアドレスが即値指定と相対値指定の両方
のアドレス指定に対応できるようにしているが、いずれ
か一方に対応するようにしてもよい。また、パイプライ
ン方式は、4つのステージから成るのが一般的である
が、ステージの数が異なってもよい。
【0031】
【発明の効果】以上説明したように、本発明の条件分岐
命令処理装置によれば、一定命令数後に実行される分岐
命令の分岐先アドレスを分岐命令テーブルに格納された
情報により予め計算し、分岐条件判定手段の判定の結
果、分岐命令が分岐することが検出された場合に、予め
計算された分岐先に分岐するようにしたので、次のよう
な効果がある。 (1)分岐方向が頻繁に変わる場合にも常に正しい分岐
方向の命令がフェッチされるようにすることができる。
従って、分岐命令の分岐先が命令のフェッチ後に変更さ
れ、他の分岐方向の命令をフェッチし直すことによるパ
イプライン処理の時間的なロスを防止でき、処理速度の
低下を防止することができる。 (2)分岐命令テーブルに分岐先アドレスを計算するた
めのレジスタ番号と分岐相対値とを格納することによ
り、レジスタによるアドレス指定の分岐命令と、即値に
よるアドレス指定の分岐命令との双方の形式の分岐命令
についての分岐先のアドレス計算を行なうことができ
る。 (3)フラグレジスタによる分岐条件の判定と2つのレ
ジスタによる分岐条件の判定との双方に対応した分岐条
件判定を行なうことにより、いずれの形式の分岐命令に
ついても、分岐方向を検出することができる。 (4)命令フェッチアドレス生成手段において、第1加
算器及び第2加算器により分岐する場合のプログラムカ
ウンタの加算結果と分岐しない場合のプログラムカウン
タの加算結果とを同時に得ることができ、両方の分岐方
向のアドレスを容易に計算することができる。
【図面の簡単な説明】
【図1】本発明の条件分岐命令処理装置の一実施例のブ
ロック図である。
【図2】従来の分岐予測テーブルの説明図である。
【図3】従来の分岐命令実行過程を説明するタイムチャ
ートである。
【図4】図1の装置を適用した処理装置を示すブロック
図である。
【図5】本発明に係る分岐命令実行過程(その1)を説
明するタイムチャートである。
【図6】本発明に係る分岐命令実行過程(その2)を説
明するタイムチャートである。
【図7】本発明に係る分岐命令実行過程(その3)を説
明するタイムチャートである。
【符号の説明】
61 命令フェッチアドレス生成部 62 分岐条件判定部 63 比較部 64 分岐命令テーブル

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 分岐命令の一定命令数だけ前のアドレス
    を示す直前アドレス、分岐条件を得るための情報及び分
    岐先アドレスを計算するための情報を対応させて格納す
    る分岐命令テーブルと、 現在フェッチされている命令のアドレスを、前記分岐命
    令テーブルに格納された直前アドレスと比較する比較手
    段と、 当該比較手段により、現在フェッチされている命令のア
    ドレスが前記分岐命令テーブルの直前アドレスと一致し
    ていることを検出した場合、当該直前アドレスに対応し
    て前記分岐命令テーブルに格納された情報から分岐先の
    アドレスを計算することにより、分岐する場合のフェッ
    チアドレスと分岐しない場合のフェッチアドレスの両方
    のアドレスを予め用意する命令フェッチアドレス生成手
    段と、 前記比較手段により、現在フェッチされている命令のア
    ドレスが前記分岐命令テーブルの直前アドレスと一致し
    ていることを検出した場合、当該直前アドレスに対応し
    て前記分岐命令テーブルに格納された情報から前記分岐
    条件を得て分岐すべきか否かを判定し、当該判定結果に
    応じて前記命令フェッチ生成手段に予め用意されたフェ
    ッチアドレスのいずれかを選択する分岐条件判定手段と
    から成ることを特徴とする条件分岐命令処理装置。
  2. 【請求項2】 分岐命令の一定命令数だけ前のアドレス
    を示す直前アドレス及び分岐条件を得るための情報とと
    もに、分岐先アドレスを計算するためのレジスタ番号及
    び分岐先アドレスを計算するための分岐相対値を対応さ
    せて格納する分岐命令テーブルを備えたことを特徴とす
    る請求項1記載の条件分岐命令処理装置。
  3. 【請求項3】 フラグレジスタに格納された値を所定値
    と比較することにより分岐条件を判定する第1比較器
    と、 2つのレジスタに格納された値を比較することにより分
    岐条件を判定する第2比較器とから成る分岐条件判定手
    段を備えたことを特徴とする請求項1記載の条件分岐命
    令処理装置。
  4. 【請求項4】 命令メモリに格納されたプログラム内の
    命令を順に指定するプログラムカウンタと、 当該プログラムカウンタの値を1命令数だけ進めるため
    の第1加算器と、 当該プログラムカウンタの値に分岐先の相対アドレスを
    加算するための第2加算器と、 当該第1及び第2加算器の出力のいずれかを、分岐命令
    の分岐条件に応じて選択する選択器とから成る命令フェ
    ッチアドレス生成手段を備えたことを特徴とする請求項
    1記載の条件分岐命令処理装置。
JP10776693A 1993-04-09 1993-04-09 条件分岐命令処理装置 Pending JPH06301538A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10776693A JPH06301538A (ja) 1993-04-09 1993-04-09 条件分岐命令処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10776693A JPH06301538A (ja) 1993-04-09 1993-04-09 条件分岐命令処理装置

Publications (1)

Publication Number Publication Date
JPH06301538A true JPH06301538A (ja) 1994-10-28

Family

ID=14467463

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10776693A Pending JPH06301538A (ja) 1993-04-09 1993-04-09 条件分岐命令処理装置

Country Status (1)

Country Link
JP (1) JPH06301538A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6427205B1 (en) 1998-06-30 2002-07-30 Kabushiki Kaisha Toshiba Digital signal processor and processor reducing the number of instructions upon processing condition execution instructions

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6427205B1 (en) 1998-06-30 2002-07-30 Kabushiki Kaisha Toshiba Digital signal processor and processor reducing the number of instructions upon processing condition execution instructions

Similar Documents

Publication Publication Date Title
US4858104A (en) Preceding instruction address based branch prediction in a pipelined processor
US4827402A (en) Branch advanced control apparatus for advanced control of a branch instruction in a data processing system
US7055023B2 (en) Apparatus and method for branch prediction where data for predictions is selected from a count in a branch history table or a bias in a branch target buffer
US5530825A (en) Data processor with branch target address cache and method of operation
US5210831A (en) Methods and apparatus for insulating a branch prediction mechanism from data dependent branch table updates that result from variable test operand locations
US5805877A (en) Data processor with branch target address cache and method of operation
JP5209633B2 (ja) ワーキング・グローバル・ヒストリ・レジスタを備えるシステム及び方法
JPH0334024A (ja) 分岐予測の方法とそのための装置
KR20070108939A (ko) 포워드 룩킹 브렌치 타겟 어드레스 캐싱
JPH06236268A (ja) 命令の長さを判定する装置と方法
JP2006520964A (ja) 分岐ターゲットに基づいて分岐予測をするための方法および装置
JP2006520964A5 (ja)
EP0655679B1 (en) Method and apparatus for controlling instruction in pipeline processor
JP3486690B2 (ja) パイプライン方式プロセッサ
KR930003124B1 (ko) 파이프라인방식의 분기명령제어장치
EP0423726B1 (en) Branch control circuit
JP2001060152A (ja) 分岐予測を抑止する情報処理装置および方法
JPWO2004068337A1 (ja) 情報処理装置
JPH06301538A (ja) 条件分岐命令処理装置
EP0666538A2 (en) Data processor with branch target address cache and method of operation
JP2001022577A (ja) 情報処理装置
JP3108512B2 (ja) 分岐予測装置
JP3493110B2 (ja) 高速分岐処理装置
JP4049490B2 (ja) 情報処理装置
JPH0248733A (ja) 情報処理装置