JP2687765B2 - 分岐予測方式 - Google Patents
分岐予測方式Info
- Publication number
- JP2687765B2 JP2687765B2 JP3163262A JP16326291A JP2687765B2 JP 2687765 B2 JP2687765 B2 JP 2687765B2 JP 3163262 A JP3163262 A JP 3163262A JP 16326291 A JP16326291 A JP 16326291A JP 2687765 B2 JP2687765 B2 JP 2687765B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- branch
- address
- base
- absolute 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
- 238000000034 method Methods 0.000 title claims description 14
- 238000006073 displacement reaction Methods 0.000 claims description 10
- 230000010365 information processing Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000007796 conventional method Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Advance Control (AREA)
Description
【0001】
【産業上の利用分野】本発明は、分岐予測方式、特に仮
想記憶空間を有するパイプライン構成の情報処理装置に
使用される分岐予測方式に関する。
想記憶空間を有するパイプライン構成の情報処理装置に
使用される分岐予測方式に関する。
【0002】
【従来の技術】従来、この種の情報処理装置の分岐予測
方式には、分岐命令が格納されている絶対アドレス単位
に、前回分岐命令を実行したときに求まった分岐先の絶
対アドレスを記憶しそのアドレスに基づいて次命令の先
取りを行う方式や、前回分岐命令を実行したときの分岐
方向を記憶し、その方向に基づき分岐成功側を先取りす
る場合は、パイプラインの下位ユニットで分岐先の絶対
アドレスが求まるのを待って次命令の先取りを行う方式
がある。
方式には、分岐命令が格納されている絶対アドレス単位
に、前回分岐命令を実行したときに求まった分岐先の絶
対アドレスを記憶しそのアドレスに基づいて次命令の先
取りを行う方式や、前回分岐命令を実行したときの分岐
方向を記憶し、その方向に基づき分岐成功側を先取りす
る場合は、パイプラインの下位ユニットで分岐先の絶対
アドレスが求まるのを待って次命令の先取りを行う方式
がある。
【0003】
【発明が解決しようとする課題】上述した従来技術のう
ち分岐先の絶対アドレスを記憶する方式では、ハードウ
ェア量が非常に多くなるという問題点がある。
ち分岐先の絶対アドレスを記憶する方式では、ハードウ
ェア量が非常に多くなるという問題点がある。
【0004】また、分岐の方向を記憶する方式では、分
岐先の絶対アドレスを記憶する方式に比べればハードウ
ェア量は少なくて済むものの、分岐先の絶対アドレスが
求まる迄の間は次命令の先取りができない為、性能が劣
るという問題点がある。
岐先の絶対アドレスを記憶する方式に比べればハードウ
ェア量は少なくて済むものの、分岐先の絶対アドレスが
求まる迄の間は次命令の先取りができない為、性能が劣
るという問題点がある。
【0005】
【課題を解決するための手段】本発明の分岐予測方式
は、仮想記憶空間を有し、分岐命令の分岐先アドレス
が、命令語中で指定されるベースレジスタの内容とディ
スプレースメントの加算結果によって定義され、且つ命
令の先取りを行うパイプライン構成の情報処理装置にお
ける分岐予測方式において、先取りした命令が分岐命令
であることをデコードするデコーダと、ベースレジスタ
の番号単位にベースアドレスの絶対アドレスを記憶する
ベース絶対アドレスバッファと、前記デコーダによりデ
コードの結果、先取りした命令が分岐命令であった場合
に、該分岐命令の命令語中で指定されるベーシレジスタ
番号に対応し前記ベース絶対アドレスバッファにより記
憶されているベースアドレスの絶対アドレスと、命令語
中で指定されるディスプレースメントを加算する加算器
とを有し、前記加算器による加算結果に基づき分岐先の
命令の先取りを行うことを特徴とする。
は、仮想記憶空間を有し、分岐命令の分岐先アドレス
が、命令語中で指定されるベースレジスタの内容とディ
スプレースメントの加算結果によって定義され、且つ命
令の先取りを行うパイプライン構成の情報処理装置にお
ける分岐予測方式において、先取りした命令が分岐命令
であることをデコードするデコーダと、ベースレジスタ
の番号単位にベースアドレスの絶対アドレスを記憶する
ベース絶対アドレスバッファと、前記デコーダによりデ
コードの結果、先取りした命令が分岐命令であった場合
に、該分岐命令の命令語中で指定されるベーシレジスタ
番号に対応し前記ベース絶対アドレスバッファにより記
憶されているベースアドレスの絶対アドレスと、命令語
中で指定されるディスプレースメントを加算する加算器
とを有し、前記加算器による加算結果に基づき分岐先の
命令の先取りを行うことを特徴とする。
【0006】
【実施例】以下本発明の実施例について図面を参照しな
がら説明する。尚、本実施例に於いては、簡略化の為、
命令長は一律4バイトであり、命令の形式は図2に示す
様に上位1バイトで命令コード2−1,続く3ビットが
ベースレジスタ番号2−2,残る21ビットがディスプ
レースメントであるとする。
がら説明する。尚、本実施例に於いては、簡略化の為、
命令長は一律4バイトであり、命令の形式は図2に示す
様に上位1バイトで命令コード2−1,続く3ビットが
ベースレジスタ番号2−2,残る21ビットがディスプ
レースメントであるとする。
【0007】図1は本発明の一実施例を示す命令取り出
し制御部のブロック図である。
し制御部のブロック図である。
【0008】1−1は命令キャッシュであり、アドレス
レジスタ1−2によりセレクタ1−13を経由してアド
レスが与えられる。読み出された命令は命令レジスタ1
−3にセットされる。通常の命令取り出し制御はアドレ
ス1−2にセレクタ1−11により命令長である+4ず
つ加算された結果がセットされることにより行われる。
レジスタ1−2によりセレクタ1−13を経由してアド
レスが与えられる。読み出された命令は命令レジスタ1
−3にセットされる。通常の命令取り出し制御はアドレ
ス1−2にセレクタ1−11により命令長である+4ず
つ加算された結果がセットされることにより行われる。
【0009】1−5は、ベースレジスタの番号毎にベー
スアドレスの絶対アドレスを記憶するベース絶対アドレ
スバッファであり、1−6は命令レジスタ1−3にセッ
トされた命令のベースレジスタ番号2−2をスタックす
るFIFO形式のベースレジスタバッファである。
スアドレスの絶対アドレスを記憶するベース絶対アドレ
スバッファであり、1−6は命令レジスタ1−3にセッ
トされた命令のベースレジスタ番号2−2をスタックす
るFIFO形式のベースレジスタバッファである。
【0010】また、1−7は命令レジスタ1−3のディ
スプレースメント2−3と、ベース絶対アドレスバッフ
ァ1−5を命令レジスタ1−3のベースレジスタ番号2
−2をアドレスとしてセレクタ1−12を介して読み出
したベースアドレスの絶対アドレスと各々入力とする加
算器1−8の出力をスタックするFIFO形式の分岐先
予測絶対アドレスバッファである。
スプレースメント2−3と、ベース絶対アドレスバッフ
ァ1−5を命令レジスタ1−3のベースレジスタ番号2
−2をアドレスとしてセレクタ1−12を介して読み出
したベースアドレスの絶対アドレスと各々入力とする加
算器1−8の出力をスタックするFIFO形式の分岐先
予測絶対アドレスバッファである。
【0011】1−4はパイプラインの下位ユニットによ
り求められた分岐先の絶対アドレスを保持する分岐先絶
対アドレスレジスタ、1−9,1−10は減算器、1−
15は比較器、1−14は命令レジスタ1−3の命令コ
ードをデコードするデコーダである。
り求められた分岐先の絶対アドレスを保持する分岐先絶
対アドレスレジスタ、1−9,1−10は減算器、1−
15は比較器、1−14は命令レジスタ1−3の命令コ
ードをデコードするデコーダである。
【0012】図3は、本実施例の情報処理装置のパイプ
ライン構成図である。3−1は命令取り出し制御部であ
り、その詳細が図1に示す通りである。3−2はオペラ
ンドのアドレス展開部、3−3はアドレス展開部3−2
で展開されたアドレスを絶対アドレスに変換するアドレ
ス変換部、3−4はアドレス変換部3−3で変換された
絶対アドレスに基づいてオペランドキャッシュを索引し
オペランドのデータを得るオペランドキャッシュ部、3
−5は演算部である。
ライン構成図である。3−1は命令取り出し制御部であ
り、その詳細が図1に示す通りである。3−2はオペラ
ンドのアドレス展開部、3−3はアドレス展開部3−2
で展開されたアドレスを絶対アドレスに変換するアドレ
ス変換部、3−4はアドレス変換部3−3で変換された
絶対アドレスに基づいてオペランドキャッシュを索引し
オペランドのデータを得るオペランドキャッシュ部、3
−5は演算部である。
【0013】以下命令レジスタ1−3に分岐命令がセッ
トされた場合の動作について説明する。
トされた場合の動作について説明する。
【0014】デコーダ1−14により分岐命令であるこ
とがデコードされると、次命令の命令キャッシュ1−1
の読み出しアドレスとしてセレクタ1−13に於いて加
算器1−8の出力が選択される。加算器1−8の出力
は、命令レジスタ1−3にセットされた命令が分岐命令
であれば、ディスプレースメント2−3とベースレジス
タ番号2−2によって読み出されたベース絶対アドレス
バッファ1−5の値、即ち対応するベースアドレスレジ
スタの絶対アドレスとの加算結果であり、分岐先の絶対
アドレスを示す。従って次命令の読み出しは加算器1−
8の出力を命令キャッシュ1−1のアドレスとして行わ
れる。
とがデコードされると、次命令の命令キャッシュ1−1
の読み出しアドレスとしてセレクタ1−13に於いて加
算器1−8の出力が選択される。加算器1−8の出力
は、命令レジスタ1−3にセットされた命令が分岐命令
であれば、ディスプレースメント2−3とベースレジス
タ番号2−2によって読み出されたベース絶対アドレス
バッファ1−5の値、即ち対応するベースアドレスレジ
スタの絶対アドレスとの加算結果であり、分岐先の絶対
アドレスを示す。従って次命令の読み出しは加算器1−
8の出力を命令キャッシュ1−1のアドレスとして行わ
れる。
【0015】ここでベース絶対アドレスバッファ1−5
に記憶されている各ベースレジスタ番号毎の絶対アドレ
スの値は、前回、該当するベースレジスタ番号を使用す
る任意の分岐命令が実行されたときに求められたもので
ある。従ってその後、ベースレジスタを更新する命令が
実行されたり、アドレス空間が切り換わった場合には正
しい値とは限らない。この為、次命令の取り出しに使用
したベースレジスタの絶対アドレスが正しい値であった
か否かを検証する必要が生じる。
に記憶されている各ベースレジスタ番号毎の絶対アドレ
スの値は、前回、該当するベースレジスタ番号を使用す
る任意の分岐命令が実行されたときに求められたもので
ある。従ってその後、ベースレジスタを更新する命令が
実行されたり、アドレス空間が切り換わった場合には正
しい値とは限らない。この為、次命令の取り出しに使用
したベースレジスタの絶対アドレスが正しい値であった
か否かを検証する必要が生じる。
【0016】命令レジスタ1−3にセットされた分岐命
令は、パイプラインの下位ユニットである図3のアドレ
ス展開部3−2に供給され、分岐先アドレスの展開が行
われ、さらにアドレス変換部3−3に於いて分岐先の絶
対アドレス変換が行われる。アドレス変換部3−3に於
いて求められた分岐先の絶対アドレスは命令取り出し制
御部3−1に送られ、図1の分岐先予測絶対アドレスレ
ジスタ1−4にセットされる。
令は、パイプラインの下位ユニットである図3のアドレ
ス展開部3−2に供給され、分岐先アドレスの展開が行
われ、さらにアドレス変換部3−3に於いて分岐先の絶
対アドレス変換が行われる。アドレス変換部3−3に於
いて求められた分岐先の絶対アドレスは命令取り出し制
御部3−1に送られ、図1の分岐先予測絶対アドレスレ
ジスタ1−4にセットされる。
【0017】分岐命令の次命令の取り出しに使用した絶
対アドレスは分岐先予測絶対アドレスバッファ1−7に
スタックされている為、分岐先予測絶対アドレスバッフ
ァ1−7の出力と分岐先予測絶対アドレスレジスタ1−
4の出力を比較器1−15により比較することにより前
記検証が行われる。
対アドレスは分岐先予測絶対アドレスバッファ1−7に
スタックされている為、分岐先予測絶対アドレスバッフ
ァ1−7の出力と分岐先予測絶対アドレスレジスタ1−
4の出力を比較器1−15により比較することにより前
記検証が行われる。
【0018】比較器1−15により比較結果により一致
が検出されれば、分岐命令の次命令の取り出しは正しい
アドレスで行われたことになり、そのまま動作は続けら
れる。
が検出されれば、分岐命令の次命令の取り出しは正しい
アドレスで行われたことになり、そのまま動作は続けら
れる。
【0019】逆に比較器1−15により不一致が検出さ
れると、比較器1−15の出力CAN信号が“1”とな
り、パイプライン下位ユニットに対し分岐命令の次命令
以降の処理をキャンセルするとともに、セレクタ1−1
1に於いて分岐先予測絶対アドレスレジスタ1−4の値
を選択し、アドレスレジスタ1−2にセットすることに
より、分岐命令の次命令からの再取り出しを行う。ま
た、この場合、先に使用したベース絶対アドレスバッフ
ァ1−5の内容は、正しくなかったことになる為、以下
の様にベース絶対アドレスバッファ1−5の更新を行
う。
れると、比較器1−15の出力CAN信号が“1”とな
り、パイプライン下位ユニットに対し分岐命令の次命令
以降の処理をキャンセルするとともに、セレクタ1−1
1に於いて分岐先予測絶対アドレスレジスタ1−4の値
を選択し、アドレスレジスタ1−2にセットすることに
より、分岐命令の次命令からの再取り出しを行う。ま
た、この場合、先に使用したベース絶対アドレスバッフ
ァ1−5の内容は、正しくなかったことになる為、以下
の様にベース絶対アドレスバッファ1−5の更新を行
う。
【0020】ベースレジスタ番号バッファ1−6には先
に使用したベースレジスタ番号2−2がスタックされて
おり、CAN信号が“1”となることによりセレクタ1
−12に於いてベースレジスタ番号バッファ1−6の出
力を選択し、先に使用したベースアドレスの絶対アドレ
スをベース絶対アドレスバッファ1−5の出力に読み出
し演算器1−9に入力する。
に使用したベースレジスタ番号2−2がスタックされて
おり、CAN信号が“1”となることによりセレクタ1
−12に於いてベースレジスタ番号バッファ1−6の出
力を選択し、先に使用したベースアドレスの絶対アドレ
スをベース絶対アドレスバッファ1−5の出力に読み出
し演算器1−9に入力する。
【0021】一方、分岐先予測絶対アドレスバッファ1
−7にはベース絶対アドレスバッファ1−5の出力と該
分岐命令のディスプレースメントとの加算結果がスタッ
クされている為、分岐先予測絶対アドレスバッファ1−
7の出力を減算器1−9の他方に入力することにより、
該分岐命令のディスプレースメント2−3の値が得られ
る。
−7にはベース絶対アドレスバッファ1−5の出力と該
分岐命令のディスプレースメントとの加算結果がスタッ
クされている為、分岐先予測絶対アドレスバッファ1−
7の出力を減算器1−9の他方に入力することにより、
該分岐命令のディスプレースメント2−3の値が得られ
る。
【0022】次に、減算器1−9で求められたディスプ
レースメント2−3の値と分岐先予測絶対アドレスレジ
スタ1−4の値を減算器1−10に入力することにより
該当するベースレジスタ番号2−2のベースアドレスの
絶対アドレスを求め、この値を新たにベース絶対アドレ
スバッファ1−5に登録することにより、更新を行い次
に任意の分岐命令が該ベースレジスタを指定したときに
使用する。
レースメント2−3の値と分岐先予測絶対アドレスレジ
スタ1−4の値を減算器1−10に入力することにより
該当するベースレジスタ番号2−2のベースアドレスの
絶対アドレスを求め、この値を新たにベース絶対アドレ
スバッファ1−5に登録することにより、更新を行い次
に任意の分岐命令が該ベースレジスタを指定したときに
使用する。
【0023】
【発明の効果】以上説明したように、本発明の分岐予測
方式は、ベースレジスタ番号単位にベースアドレスの絶
対アドレスを記憶することにより、従来の分岐先の方向
を記憶する方法に比べて少ないハードウェア量でしかも
高い性能を得ることができ、また、従来の分岐先の絶対
アドレスを記憶する方法に比べて極端に少ないハードウ
ェア量でかつ同一の性能が得られる効果がある。
方式は、ベースレジスタ番号単位にベースアドレスの絶
対アドレスを記憶することにより、従来の分岐先の方向
を記憶する方法に比べて少ないハードウェア量でしかも
高い性能を得ることができ、また、従来の分岐先の絶対
アドレスを記憶する方法に比べて極端に少ないハードウ
ェア量でかつ同一の性能が得られる効果がある。
【図1】本発明による命令取り出し制御部のブロック
図。
図。
【図2】命令形式図である。
【図3】本発明によるパイプライン構成図である。
1−1 命令キャッシュ 1−2 アドレスレジスタ 1−3 命令レジスタ 1−4 分岐先絶対アドレスレジスタ 1−5 ベース絶対アドレスレジスタ 1−6 ベースレジスタ番号バッファ 1−7 分岐先予測絶対アドレスバッファ 1−8 加算器 1−9,1−10 減算器 1−11,12,13 セレクタ 1−14 デコーダ 1−15 比較器 2−1 命令コード 2−2 ベースレジスタ番号 2−3 ディスプレースメント 3−1 命令取り出し制御部 3−2 アドレス展開部 3−3 アドレス変換部 3−4 オペランドキャッシュ部 3−5 演算部
Claims (1)
- 【請求項1】 仮想記憶空間を有し、分岐命令の分岐先
アドレスが、命令語中で指定されるベースレジスタの内
容とディスプレースメントの加算結果によって定義さ
れ、且つ命令の先取りを行うパイプライン構成の情報処
理装置における分岐予測方式において、 先取りした命令が分岐命令であることをデコードするデ
コーダと、 ベースレジスタの番号単位に分岐予測先のベースアドレ
スの絶対アドレスを記憶するベース絶対アドレスバッフ
ァと、 前記デコーダによりデコードの結果、先取りした命令が
分岐命令であった場合には該分岐命令の命令語中で指定
されるベースレジスタ番号に対応し前記ベース絶対アド
レスバッファにより記憶されているベースアドレスの絶
対アドレスと命令語中で指定されるディスプレースメン
トとを加算する加算器とを有し、 前記加算器による加算結果に基づき分岐先の命令の先取
りを行うことを特徴とした分岐予測方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3163262A JP2687765B2 (ja) | 1991-07-04 | 1991-07-04 | 分岐予測方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3163262A JP2687765B2 (ja) | 1991-07-04 | 1991-07-04 | 分岐予測方式 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0512010A JPH0512010A (ja) | 1993-01-22 |
| JP2687765B2 true JP2687765B2 (ja) | 1997-12-08 |
Family
ID=15770467
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3163262A Expired - Fee Related JP2687765B2 (ja) | 1991-07-04 | 1991-07-04 | 分岐予測方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2687765B2 (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4287799B2 (ja) | 2004-07-29 | 2009-07-01 | 富士通株式会社 | プロセッサシステムおよびスレッド切り替え制御方法 |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS4979744A (ja) * | 1972-12-08 | 1974-08-01 | ||
| JPS6047618B2 (ja) * | 1980-08-08 | 1985-10-22 | 日本電気株式会社 | 情報処理装置 |
| JPS62126442A (ja) * | 1985-11-27 | 1987-06-08 | Hitachi Ltd | デ−タ処理装置 |
| JPH01271842A (ja) * | 1988-04-22 | 1989-10-30 | Nec Corp | 情報処理装置 |
| JPH0228724A (ja) * | 1988-07-18 | 1990-01-30 | Fujitsu Ltd | 分岐命令制御方式 |
-
1991
- 1991-07-04 JP JP3163262A patent/JP2687765B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JPH0512010A (ja) | 1993-01-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2992223B2 (ja) | コンピュータシステム、命令ビット長圧縮方法、命令発生方法、及びコンピュータシステム動作方法 | |
| JP3182438B2 (ja) | データプロセッサ | |
| US6654871B1 (en) | Device and a method for performing stack operations in a processing system | |
| EP1241567A2 (en) | Method and apparatus for executing coprocessor instructions | |
| US6237083B1 (en) | Microprocessor including multiple register files mapped to the same logical storage and inhibiting sychronization between the register files responsive to inclusion of an instruction in an instruction sequence | |
| EP1125192A1 (en) | A method for writing data into data storage units | |
| US5459847A (en) | Program counter mechanism having selector for selecting up-to-date instruction prefetch address based upon carry signal of adder which adds instruction size and LSB portion of address register | |
| JPH1049369A (ja) | データ処理装置 | |
| JP4955149B2 (ja) | ビットfifoを有するディジタル信号プロセッサ | |
| JPH07239780A (ja) | 1クロック可変長命令実行処理型命令読み込み電子計 算機 | |
| EP1125195B1 (en) | Method for executing memory read requests | |
| JP2002229778A (ja) | 高速ディスプレースメント付きpc相対分岐方式 | |
| JP2687765B2 (ja) | 分岐予測方式 | |
| JPS6211736B2 (ja) | ||
| JPH02157939A (ja) | 命令処理方法及び命令処理装置 | |
| JPH0544049B2 (ja) | ||
| JPS60117335A (ja) | 情報処理装置 | |
| JPH07191911A (ja) | アドレス変換装置及びマイクロプロセッサ算出方法 | |
| US7308555B2 (en) | Processor-based structure and method for loading unaligned data | |
| JPH0816392A (ja) | コンピュータシステム、コンピュータシステム動作方法、及びコンピュータ命令シーケンス実行方法 | |
| JPH05173778A (ja) | データ処理装置 | |
| JPH0248733A (ja) | 情報処理装置 | |
| US20030177339A1 (en) | Optimization of a pipelined processor system | |
| JPH09311787A (ja) | データ処理装置 | |
| JPS60179844A (ja) | 命令再読出し制御方式 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 19970225 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 19970722 |
|
| LAPS | Cancellation because of no payment of annual fees |