JPH0760386B2 - 分岐予測機能を有するデータ処理装置 - Google Patents
分岐予測機能を有するデータ処理装置Info
- Publication number
- JPH0760386B2 JPH0760386B2 JP26497487A JP26497487A JPH0760386B2 JP H0760386 B2 JPH0760386 B2 JP H0760386B2 JP 26497487 A JP26497487 A JP 26497487A JP 26497487 A JP26497487 A JP 26497487A JP H0760386 B2 JPH0760386 B2 JP H0760386B2
- Authority
- JP
- Japan
- Prior art keywords
- branch
- instruction
- prediction
- register
- branch prediction
- 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
Landscapes
- Advance Control (AREA)
Description
【発明の詳細な説明】 [産業上の利用分野] この発明は分岐予測機能を有するデータ処理装置に関
し、特にパイプライン機構を有し、命令をデコード時
に、分岐するか否かを予測する分岐予測機能を有するデ
ータ処理装置に関するものである。
し、特にパイプライン機構を有し、命令をデコード時
に、分岐するか否かを予測する分岐予測機能を有するデ
ータ処理装置に関するものである。
[従来の技術] 計算機の命令には大きく分けて非分岐命令、無条件分岐
命令、条件分岐命令がある。条件分岐命令は、或る一定
の条件が成立していると分岐を起こす命令であり、パイ
プライン方式の計算機にとって高速化のための障害とな
っている。すなわち、パイプライン方式の計算機におい
て、分岐命令が命令実行部において実行され、実際に分
岐が起こると、その時点においてパイプラインで処理中
の命令はキャンセルされ、新たに分岐先の命令がフェッ
チされる。このため、パイプラインの流れに隙間がで
き、パイプラインが乱れることになる。そこで、条件分
岐命令が与えられたとき、分岐するか否かを予測する分
岐予測方式が採用されている。このような分岐予測方法
については、米国電気電子学会(IEEE)のコンピュータ
部会(COMPUTER SOCIETY)が発行した「コンピュータ
(COMPUTER)」1984年1月号に記載されている。
命令、条件分岐命令がある。条件分岐命令は、或る一定
の条件が成立していると分岐を起こす命令であり、パイ
プライン方式の計算機にとって高速化のための障害とな
っている。すなわち、パイプライン方式の計算機におい
て、分岐命令が命令実行部において実行され、実際に分
岐が起こると、その時点においてパイプラインで処理中
の命令はキャンセルされ、新たに分岐先の命令がフェッ
チされる。このため、パイプラインの流れに隙間がで
き、パイプラインが乱れることになる。そこで、条件分
岐命令が与えられたとき、分岐するか否かを予測する分
岐予測方式が採用されている。このような分岐予測方法
については、米国電気電子学会(IEEE)のコンピュータ
部会(COMPUTER SOCIETY)が発行した「コンピュータ
(COMPUTER)」1984年1月号に記載されている。
第5図は、従来の分岐予測機能を有するデータ処理装置
の概略ブロック図である。まず、第5図を参照して、従
来の分岐予測機能を有するデータ処理装置の構成につい
て説明する。命令レジスタ1はデータバスに出力された
命令を記憶するものである。命令レジスタ1に記憶され
た命令は命令デコーダ2に与えられる。命令デコーダ2
は命令をデコードして、演算指示信号や分岐変位(その
命令が条件分岐命令あるいは無条件分岐命令であれば)
やそのデコードされた命令の命令長を出力するものであ
る。実行機構3は命令デコーダによって、命令がデコー
ドされた結果、出力される演算指示信号に基づいて命令
を実行するものである。
の概略ブロック図である。まず、第5図を参照して、従
来の分岐予測機能を有するデータ処理装置の構成につい
て説明する。命令レジスタ1はデータバスに出力された
命令を記憶するものである。命令レジスタ1に記憶され
た命令は命令デコーダ2に与えられる。命令デコーダ2
は命令をデコードして、演算指示信号や分岐変位(その
命令が条件分岐命令あるいは無条件分岐命令であれば)
やそのデコードされた命令の命令長を出力するものであ
る。実行機構3は命令デコーダによって、命令がデコー
ドされた結果、出力される演算指示信号に基づいて命令
を実行するものである。
分岐予測機構4は命令のアドレスに対応して分岐予測ビ
ットを記憶するものである。この分岐予測ビットは、命
令が実行されたとき、分岐を起こすか否かを予測するた
めのものである。そして、分岐予測機構4は命令がデコ
ードされたとき、その命令に対応するアドレスから分岐
予測ビットを読出して、比較器5と次フェッチ命令アド
レス指示部6とに与える。分岐すると予測してプリブラ
ンチを行なった場合には、比較器5は分岐予測ビットに
基づく予測結果と、分岐すると予測した条件分岐命令の
実行機構3による実行結果とを比較し、一致しないと
き、分岐予測失敗信号を次フェッチ命令アドレス指定部
6に与える。
ットを記憶するものである。この分岐予測ビットは、命
令が実行されたとき、分岐を起こすか否かを予測するた
めのものである。そして、分岐予測機構4は命令がデコ
ードされたとき、その命令に対応するアドレスから分岐
予測ビットを読出して、比較器5と次フェッチ命令アド
レス指示部6とに与える。分岐すると予測してプリブラ
ンチを行なった場合には、比較器5は分岐予測ビットに
基づく予測結果と、分岐すると予測した条件分岐命令の
実行機構3による実行結果とを比較し、一致しないと
き、分岐予測失敗信号を次フェッチ命令アドレス指定部
6に与える。
次フェッチ命令アドレス指定部6は比較器5によって分
岐の予測の失敗が判別されたとき、分岐予測失敗信号に
基づいて、正しい方向の命令をメモリから読出す。この
次フェッチ命令アドレス指定部6は加算器61とデコード
用プログラムカウンタ62とセーブレジスタ63とを含む。
加算器61は命令を実行するごとに命令長をデコード用プ
ログラムカウンタ62の内容に加算して、次にフェッチす
べき命令のアドレス信号を出力するものである。次フェ
ッチ命令アドレス指定部6は分岐予測機構4から分岐予
測ビットが与えられたときには、デコード用プログラム
カウンタ62のアドレスデータをセーブレジスタ63にセー
ブし、加算器61によってデコード用プログラムカウンタ
62の計数しているアドレスデータに分岐変位を加算させ
る。
岐の予測の失敗が判別されたとき、分岐予測失敗信号に
基づいて、正しい方向の命令をメモリから読出す。この
次フェッチ命令アドレス指定部6は加算器61とデコード
用プログラムカウンタ62とセーブレジスタ63とを含む。
加算器61は命令を実行するごとに命令長をデコード用プ
ログラムカウンタ62の内容に加算して、次にフェッチす
べき命令のアドレス信号を出力するものである。次フェ
ッチ命令アドレス指定部6は分岐予測機構4から分岐予
測ビットが与えられたときには、デコード用プログラム
カウンタ62のアドレスデータをセーブレジスタ63にセー
ブし、加算器61によってデコード用プログラムカウンタ
62の計数しているアドレスデータに分岐変位を加算させ
る。
デコード用プログラムカウンタ62のアドレスデータをセ
ーブレジスタ63にセーブするのは、もし分岐予測を失敗
したときには、セーブしたアドレスデータを再びデコー
ド用プログラムカウンタ62にロードし、そのアドレスデ
ータに命令長を加算して、次のアドレスの命令をフェッ
チするためのものである。
ーブレジスタ63にセーブするのは、もし分岐予測を失敗
したときには、セーブしたアドレスデータを再びデコー
ド用プログラムカウンタ62にロードし、そのアドレスデ
ータに命令長を加算して、次のアドレスの命令をフェッ
チするためのものである。
第6図は分岐予測機能を説明するためのメモリ内でのア
ドレスの関係を示す関係図である。次に、第5図および
第6図を参照して、従来の条件分岐命令が与えられたと
きの分岐予測方法について説明する。デコード用プログ
ラムカウンタ62のアドレスデータがアドレス信号として
アドレスバスに出力され、メモリ(図示せず)の或る番
地から命令が読出されて命令レジスタ1にロードされ
る。この命令は命令デコーダ2によってデコードされ、
演算指示信号と命令長が出力される。実行機構3はその
演算指示信号に基づいて処理動作を実行する。
ドレスの関係を示す関係図である。次に、第5図および
第6図を参照して、従来の条件分岐命令が与えられたと
きの分岐予測方法について説明する。デコード用プログ
ラムカウンタ62のアドレスデータがアドレス信号として
アドレスバスに出力され、メモリ(図示せず)の或る番
地から命令が読出されて命令レジスタ1にロードされ
る。この命令は命令デコーダ2によってデコードされ、
演算指示信号と命令長が出力される。実行機構3はその
演算指示信号に基づいて処理動作を実行する。
一方、加算器61は命令デコーダ2によってデコードされ
た命令長をデコード用プログラムカウンタ62の内容に加
算し、次にフェッチすべき命令のアドレス信号をアドレ
スバスに出力する。デコード用プログラムカウンタ62か
ら出力されたアドレス信号が条件分岐命令に対応してい
る場合には、そのアドレスの一部に対応して記憶されて
いる分岐予測ビットが読出されて、次フェッチ命令アド
レス指定部6に与えられる。その命令が分岐すると予測
され、かつその命令をデコードした結果、それが条件分
岐命令であることが判明した場合には、次フェッチ命令
アドレス指定部6はその命令が分岐するものと判断し、
デコード用プログラムカウンタ62の内容をセーブレジス
タ63にセーブする。そして、加算器61はデコード用プロ
グラムカウンタ62の内容に、命令デコーダ2によってデ
コードされた分岐変位を加算する。すなわち、第6図に
示すように、条件分岐命令のアドレスaに対して、分岐
変位bが加算されて、分岐先アドレスa+bを示すアド
レス信号が出力される。このアドレス信号に基づいて、
メモリから分岐先の命令が読出される。
た命令長をデコード用プログラムカウンタ62の内容に加
算し、次にフェッチすべき命令のアドレス信号をアドレ
スバスに出力する。デコード用プログラムカウンタ62か
ら出力されたアドレス信号が条件分岐命令に対応してい
る場合には、そのアドレスの一部に対応して記憶されて
いる分岐予測ビットが読出されて、次フェッチ命令アド
レス指定部6に与えられる。その命令が分岐すると予測
され、かつその命令をデコードした結果、それが条件分
岐命令であることが判明した場合には、次フェッチ命令
アドレス指定部6はその命令が分岐するものと判断し、
デコード用プログラムカウンタ62の内容をセーブレジス
タ63にセーブする。そして、加算器61はデコード用プロ
グラムカウンタ62の内容に、命令デコーダ2によってデ
コードされた分岐変位を加算する。すなわち、第6図に
示すように、条件分岐命令のアドレスaに対して、分岐
変位bが加算されて、分岐先アドレスa+bを示すアド
レス信号が出力される。このアドレス信号に基づいて、
メモリから分岐先の命令が読出される。
他方、実行機構3は条件分岐命令を実行するが、この条
件分岐命令は或る一定の条件が満たされていれば分岐す
るが、条件が満たされていない場合には分岐しない命令
である。たとえば、Z(ゼロ)フラグが立っていれば分
岐するという条件を持つ条件分岐命令を実行する場合
は、Zフラグが立っていれば分岐するが、Zフラグが立
っていなければ分岐しない。実行機構3が条件分岐命令
を実行した結果、分岐しなかった場合には、分岐しなか
ったことを示す実行結果信号が比較器5に与えられる。
この比較器5には分岐予測機構4から分岐予測情報が与
えられているので、比較器5は両者が一致しないことを
判別して、分岐予測失敗信号を次フェッチ命令アドレス
指定部6に与える。次フェッチ命令アドレス指定部6は
条件分岐命令を実行した結果、分岐しなかった場合に
は、第6図に示す条件分岐命令の次のアドレスa+bの
命令を実行する必要がある。しかし、デコード用プログ
ラムカウンタ62は前述したように、条件分岐命令が分岐
すると予測し、分岐先のアドレスa+bを示すアドレス
信号を出力している。このため、次フェッチ命令アドレ
ス指定部6はデコード用プログラムカウンタ62の内容を
キャンセルし、セーブレジスタ63にセーブしたもとのア
ドレスaを読出してデコード用プログラムカウンタ62に
ロードする。さらに、加算器61は命令長cをデコード用
プログラムカウンタ62の内容に加算して、アドレスa+
cを示すアドレス信号を出力させる。それによって、メ
モリからアドレスa+cに対応する命令が読出されて、
実行機構3によって実行される。
件分岐命令は或る一定の条件が満たされていれば分岐す
るが、条件が満たされていない場合には分岐しない命令
である。たとえば、Z(ゼロ)フラグが立っていれば分
岐するという条件を持つ条件分岐命令を実行する場合
は、Zフラグが立っていれば分岐するが、Zフラグが立
っていなければ分岐しない。実行機構3が条件分岐命令
を実行した結果、分岐しなかった場合には、分岐しなか
ったことを示す実行結果信号が比較器5に与えられる。
この比較器5には分岐予測機構4から分岐予測情報が与
えられているので、比較器5は両者が一致しないことを
判別して、分岐予測失敗信号を次フェッチ命令アドレス
指定部6に与える。次フェッチ命令アドレス指定部6は
条件分岐命令を実行した結果、分岐しなかった場合に
は、第6図に示す条件分岐命令の次のアドレスa+bの
命令を実行する必要がある。しかし、デコード用プログ
ラムカウンタ62は前述したように、条件分岐命令が分岐
すると予測し、分岐先のアドレスa+bを示すアドレス
信号を出力している。このため、次フェッチ命令アドレ
ス指定部6はデコード用プログラムカウンタ62の内容を
キャンセルし、セーブレジスタ63にセーブしたもとのア
ドレスaを読出してデコード用プログラムカウンタ62に
ロードする。さらに、加算器61は命令長cをデコード用
プログラムカウンタ62の内容に加算して、アドレスa+
cを示すアドレス信号を出力させる。それによって、メ
モリからアドレスa+cに対応する命令が読出されて、
実行機構3によって実行される。
[発明が解決しようとする問題点] 従来の分岐予測機能を有するデータ処理装置は、上述の
ように構成されているので、分岐の予測が失敗した場合
には、セーブレジスタ63にセーブしたアドレスをデコー
ド用プログラムカウンタ62に転送し、そのアドレスに命
令長を加算するための処理を必要とし、処理が複雑にな
ってしまうという問題点があった。
ように構成されているので、分岐の予測が失敗した場合
には、セーブレジスタ63にセーブしたアドレスをデコー
ド用プログラムカウンタ62に転送し、そのアドレスに命
令長を加算するための処理を必要とし、処理が複雑にな
ってしまうという問題点があった。
そこで、本願発明者の一部らは、このような問題点を解
決したデータ処理装置を発明し、本出願人は、特願昭61
-200557号、特願昭61-204500号において出願し、さらに
それらの日本国内出願に対して優先権を主張して、1987
年8月26日に米国出願を行なっている。その出願におい
て開示された内容は本出願の発明に対する先行技術とし
て以下に説明される。
決したデータ処理装置を発明し、本出願人は、特願昭61
-200557号、特願昭61-204500号において出願し、さらに
それらの日本国内出願に対して優先権を主張して、1987
年8月26日に米国出願を行なっている。その出願におい
て開示された内容は本出願の発明に対する先行技術とし
て以下に説明される。
第3図はこの先行技術の一実施例を示す概略ブロック図
である。まず、第3図を参照して、分岐予測機能を有す
るデータ処理装置の構成について説明する。第3図にお
いて、命令レジスタ1と命令デコーダ2と実行機構3と
分岐予測機構4と加算器61とデコード用プログラムカウ
ンタ62は前述の第5図に示したものと同じものが用いら
れる。レジスタ10は命令デコーダ2によってデコードさ
れた命令の命令長をロードするものであり、レジスタ11
は同じく命令デコーダ2によってデコードされた命令の
分岐変位あるいは命令長をロードするものである。レジ
スタ11には、その命令が無条件分岐命令または条件分岐
命令である場合には、分岐変位がロードされ、その命令
が非分岐命令である場合には、命令長がロードされる。
セレクタ12は分岐予測機構4から読出された分岐予測ビ
ットと、命令が非分岐命令、無条件分岐命令および条件
分岐命令のいずれの命令であるかの情報に基づいて、レ
ジスタ10の出力とレジスタ11の出力とを切替えるもので
ある。すなわち、非分岐命令まは分岐することが予測さ
れない条件分岐命令が読出されたときには、レジスタ10
の出力を選択して命令長を加算器61に与え、無条件分岐
命令または分岐することが予測される条件分岐命令が読
出されたときには、レジスタ11の出力を選択して分岐変
位を加算器61に与える。
である。まず、第3図を参照して、分岐予測機能を有す
るデータ処理装置の構成について説明する。第3図にお
いて、命令レジスタ1と命令デコーダ2と実行機構3と
分岐予測機構4と加算器61とデコード用プログラムカウ
ンタ62は前述の第5図に示したものと同じものが用いら
れる。レジスタ10は命令デコーダ2によってデコードさ
れた命令の命令長をロードするものであり、レジスタ11
は同じく命令デコーダ2によってデコードされた命令の
分岐変位あるいは命令長をロードするものである。レジ
スタ11には、その命令が無条件分岐命令または条件分岐
命令である場合には、分岐変位がロードされ、その命令
が非分岐命令である場合には、命令長がロードされる。
セレクタ12は分岐予測機構4から読出された分岐予測ビ
ットと、命令が非分岐命令、無条件分岐命令および条件
分岐命令のいずれの命令であるかの情報に基づいて、レ
ジスタ10の出力とレジスタ11の出力とを切替えるもので
ある。すなわち、非分岐命令まは分岐することが予測さ
れない条件分岐命令が読出されたときには、レジスタ10
の出力を選択して命令長を加算器61に与え、無条件分岐
命令または分岐することが予測される条件分岐命令が読
出されたときには、レジスタ11の出力を選択して分岐変
位を加算器61に与える。
命令デコーダ2の出力には、分岐条件コードレジスタ7
とレジスタ13とレジスタ14とが接続される。分岐条件コ
ードレジスタ7は命令デコーダ2によってデコードされ
た条件分岐命令の分岐条件コードをロードする。レジス
タ13は同じくデコードされた無条件分岐命令または条件
分岐命令の分岐変位、あるいは非分岐命令に対しては命
令長をロードし、レジスタ14はデコードされた命令の命
令長をロードする。レジスタ13とレジスタ14の各出力は
セレクタ15に与えられる。セレクタ15は分岐予測機構の
分岐予測ビットと、命令が非分岐命令、無条件分岐命令
および条件分岐命令のいずれの命令であるかの情報に基
づいて、レジスタ13の出力とレジスタ14との出力を切替
える。すなわち、非分岐命令、分岐することが予測され
ない条件分岐命令および無条件分岐命令のいずれかの命
令であれば、レジスタ13にロードされたデータを選択
し、分岐することが予測される条件分岐命令であれば、
レジスタ14にロードされた命令長を選択する。このセレ
クタ15によって選択された出力は実行機構3に与えられ
る。
とレジスタ13とレジスタ14とが接続される。分岐条件コ
ードレジスタ7は命令デコーダ2によってデコードされ
た条件分岐命令の分岐条件コードをロードする。レジス
タ13は同じくデコードされた無条件分岐命令または条件
分岐命令の分岐変位、あるいは非分岐命令に対しては命
令長をロードし、レジスタ14はデコードされた命令の命
令長をロードする。レジスタ13とレジスタ14の各出力は
セレクタ15に与えられる。セレクタ15は分岐予測機構の
分岐予測ビットと、命令が非分岐命令、無条件分岐命令
および条件分岐命令のいずれの命令であるかの情報に基
づいて、レジスタ13の出力とレジスタ14との出力を切替
える。すなわち、非分岐命令、分岐することが予測され
ない条件分岐命令および無条件分岐命令のいずれかの命
令であれば、レジスタ13にロードされたデータを選択
し、分岐することが予測される条件分岐命令であれば、
レジスタ14にロードされた命令長を選択する。このセレ
クタ15によって選択された出力は実行機構3に与えられ
る。
分岐条件コードレジスタ7は4ビットで構成されてい
て、上位3ビットで分岐条件を表わし、最下位1ビット
でその分岐条件が成立するときに分岐するのか、それと
も不成立のときに分岐するのかを表わす。たとえば、00
00はZ(ゼロ)フラグ成立、つまり演算の結果が0とな
ると分岐することを表わすのに対して、0001はZフラグ
不成立、つまり演算の結果が0でないと分岐することを
表わす。この分岐条件コードレジスタ7の最下位ビット
の出力はセレクタ9に与えられるとともに、インバータ
8によって反転されてセレクタ9に与えられる。セレク
タ9は分岐することが予測されない条件分岐命令の場合
には、分岐条件コードレジスタ7の最下位ビットを選択
し、分岐することが予測される条件分岐命令であればイ
ンバータ8の出力を選択して実行機構3に与える。非分
岐命令または無条件分岐命令の場合には、分岐条件コー
ドレジスタにどのようなデータが入っていても実行機構
3はこのデータを無視する。
て、上位3ビットで分岐条件を表わし、最下位1ビット
でその分岐条件が成立するときに分岐するのか、それと
も不成立のときに分岐するのかを表わす。たとえば、00
00はZ(ゼロ)フラグ成立、つまり演算の結果が0とな
ると分岐することを表わすのに対して、0001はZフラグ
不成立、つまり演算の結果が0でないと分岐することを
表わす。この分岐条件コードレジスタ7の最下位ビット
の出力はセレクタ9に与えられるとともに、インバータ
8によって反転されてセレクタ9に与えられる。セレク
タ9は分岐することが予測されない条件分岐命令の場合
には、分岐条件コードレジスタ7の最下位ビットを選択
し、分岐することが予測される条件分岐命令であればイ
ンバータ8の出力を選択して実行機構3に与える。非分
岐命令または無条件分岐命令の場合には、分岐条件コー
ドレジスタにどのようなデータが入っていても実行機構
3はこのデータを無視する。
第4図はこの先行技術の一実施例の具体的な動作を説明
するためのフローチャートである。次に、第3図、第4
図および第6図を参照して、この先行技術の一実施例の
具体的な動作について説明する。まず、従来例と同様に
して、デコード用プログラムカウンタ62の内容がアドレ
ス信号としてアドレスバスに出力され、メモリ(図示せ
ず)の或る番地から命令が読出されて命令レジスタ1に
ロードされる。命令レジスタ1にロードされた命令は命
令デコーダ2によってデコードされ、演算指示信号が実
行機構3に与えられるとともに、デコードされた命令の
命令長がレジスタ10とレジスタ14にロードされる。実行
機構3は与えられた演算指示信号に基づいて実行処理す
る。同時に、加算器61はセレクタ12によって選択された
命令長または分岐変位をデコード用プログラムカウンタ
62の内容に加算して、次に実行すべき命令の位置を示す
アドレス信号を出力する。このアドレス信号に基づい
て、メモリから次に実行すべき命令が読出されて命令レ
ジスタ1にロードされる。
するためのフローチャートである。次に、第3図、第4
図および第6図を参照して、この先行技術の一実施例の
具体的な動作について説明する。まず、従来例と同様に
して、デコード用プログラムカウンタ62の内容がアドレ
ス信号としてアドレスバスに出力され、メモリ(図示せ
ず)の或る番地から命令が読出されて命令レジスタ1に
ロードされる。命令レジスタ1にロードされた命令は命
令デコーダ2によってデコードされ、演算指示信号が実
行機構3に与えられるとともに、デコードされた命令の
命令長がレジスタ10とレジスタ14にロードされる。実行
機構3は与えられた演算指示信号に基づいて実行処理す
る。同時に、加算器61はセレクタ12によって選択された
命令長または分岐変位をデコード用プログラムカウンタ
62の内容に加算して、次に実行すべき命令の位置を示す
アドレス信号を出力する。このアドレス信号に基づい
て、メモリから次に実行すべき命令が読出されて命令レ
ジスタ1にロードされる。
次に、メモリから分岐条件コード“0000"を持つ条件分
岐命令が読出されたものとする。分岐条件コード“000
0"はZ(ゼロ)フラグが立っていれば分岐することを意
味している。この命令が読出されると、命令はデコード
され、その命令が条件分岐命令であることが判明し、そ
の命令のアドレスの下位8ビットに対応して分岐予測機
構4に記憶されている分岐予測ビットが分岐することを
示していれば、セレクタ12はレジスタ11の出力を選択
し、セレクタ15はレジスタ14の出力を選択し、セレクタ
9はインバータ8の出力を選択する。セレクタ12はレジ
スタ11の出力を選択するので、加算器61は、第6図に示
す分岐変位bをデコード用プログラムカウンタ62の内容
に加算する。それによって、その条件分岐命令の分岐先
アドレスa+bを指し示すアドレス信号が出力される。
このアドレス信号に基づいてメモリ上の条件分岐命令の
分岐先から、次に実行すべき命令が読出される。すなわ
ち、非分岐命令または分岐することが予測されない条件
分岐命令では、レジスタ10にロードされている命令長c
が加算器61によってデコード用プログラムカウンタ62の
内容に加算されるが、無条件分岐命令または分岐するこ
とが予測される条件分岐命令の場合には、レジスタ11に
ロードされた分岐変位bが加算器61によってデコード用
プログラムカウンタ62の内容に加算される。一方、セレ
クタ15は分岐することが予測される条件分岐命令の場合
にはレジスタ14の命令長cを、非分岐命令、無条件分岐
命令または分岐することが予測されない条件分岐命令の
場合には、レジスタ13の出力を選択する。このようし
て、デコードされた命令が分岐することが予測される条
件分岐命令の場合、入替機構により命令長と分岐変位と
が入替えられることになる。ここで、入替機構とはレジ
スタ10,11,13,14とセレクタ12,15を含む概念上の機構で
ある。
岐命令が読出されたものとする。分岐条件コード“000
0"はZ(ゼロ)フラグが立っていれば分岐することを意
味している。この命令が読出されると、命令はデコード
され、その命令が条件分岐命令であることが判明し、そ
の命令のアドレスの下位8ビットに対応して分岐予測機
構4に記憶されている分岐予測ビットが分岐することを
示していれば、セレクタ12はレジスタ11の出力を選択
し、セレクタ15はレジスタ14の出力を選択し、セレクタ
9はインバータ8の出力を選択する。セレクタ12はレジ
スタ11の出力を選択するので、加算器61は、第6図に示
す分岐変位bをデコード用プログラムカウンタ62の内容
に加算する。それによって、その条件分岐命令の分岐先
アドレスa+bを指し示すアドレス信号が出力される。
このアドレス信号に基づいてメモリ上の条件分岐命令の
分岐先から、次に実行すべき命令が読出される。すなわ
ち、非分岐命令または分岐することが予測されない条件
分岐命令では、レジスタ10にロードされている命令長c
が加算器61によってデコード用プログラムカウンタ62の
内容に加算されるが、無条件分岐命令または分岐するこ
とが予測される条件分岐命令の場合には、レジスタ11に
ロードされた分岐変位bが加算器61によってデコード用
プログラムカウンタ62の内容に加算される。一方、セレ
クタ15は分岐することが予測される条件分岐命令の場合
にはレジスタ14の命令長cを、非分岐命令、無条件分岐
命令または分岐することが予測されない条件分岐命令の
場合には、レジスタ13の出力を選択する。このようし
て、デコードされた命令が分岐することが予測される条
件分岐命令の場合、入替機構により命令長と分岐変位と
が入替えられることになる。ここで、入替機構とはレジ
スタ10,11,13,14とセレクタ12,15を含む概念上の機構で
ある。
また、命令デコーダ2によってデコードされた命令の分
岐条件コード“0000"は分岐条件コードレジスタ7にロ
ードされる。この場合、分岐することが予測されている
ので、この分岐条件コードレジスタ7の上位3ビットは
実行機構3に与えられ、最下位1ビットはインバータ8
によって反転されたものが、セレクタ9を介して実行機
構3に与えられる。すなわち、分岐条件コード“0000"
の最下位1ビットがインバータ8によって反転され、分
岐条件コード“0001"として実行機構3に与えられるこ
とになる。これはZフラグが立っていなければ分岐する
ことを示している。
岐条件コード“0000"は分岐条件コードレジスタ7にロ
ードされる。この場合、分岐することが予測されている
ので、この分岐条件コードレジスタ7の上位3ビットは
実行機構3に与えられ、最下位1ビットはインバータ8
によって反転されたものが、セレクタ9を介して実行機
構3に与えられる。すなわち、分岐条件コード“0000"
の最下位1ビットがインバータ8によって反転され、分
岐条件コード“0001"として実行機構3に与えられるこ
とになる。これはZフラグが立っていなければ分岐する
ことを示している。
実行機構3は、図示されていないが加算器とプログラム
カウンタを有していて、プログラムカウンタは条件分岐
命令のアドレスaを指定し、加算器はレジスタ14にロー
ドされた命令長cをプログラムカウンタに加算する。一
方、命令レジスタ1にはメモリから条件分岐命令に続い
て実行されるべき命令が読出されてロードされている。
この場合、条件分岐命令が分岐すると予測されたもので
あり、命令レジスタ1にはメモリ上のアドレスa+bの
命令がロードされている。実行機構3でZフラグが立っ
ていなかった場合には、分岐条件コード“0001"を持
ち、分岐変位bが命令長cに置換えられた条件分岐命令
が実行機構3で実行され、アドレスa+cに分岐を起こ
す。これは、もともとの条件分岐命令に対する分岐を起
こすという予測が結果的に誤っていたことになる。この
結果、命令レジスタ1にロードされていたメモリ上のア
ドレスa+bに位置する命令はキャンセルされ、メモリ
上のアドレスa+cの命令が読出され、この命令が命令
レジスタ1にロードされる。一方、実行機構3でZフラ
グが立っていた場合には、分岐条件コード“0001"を持
つ条件分岐命令は実行機構3で実行されても分岐しな
い。これは、もともとの条件分岐命令に対する分岐を起
こすという予測が結果的に正しかったことになる。その
結果、命令レジスタ1にロードされていたメモリ上のア
ドレスa+bに位置する命令は有効であり、そのまま命
令デコーダ2、実行機構3の方へ移され、処理される。
カウンタを有していて、プログラムカウンタは条件分岐
命令のアドレスaを指定し、加算器はレジスタ14にロー
ドされた命令長cをプログラムカウンタに加算する。一
方、命令レジスタ1にはメモリから条件分岐命令に続い
て実行されるべき命令が読出されてロードされている。
この場合、条件分岐命令が分岐すると予測されたもので
あり、命令レジスタ1にはメモリ上のアドレスa+bの
命令がロードされている。実行機構3でZフラグが立っ
ていなかった場合には、分岐条件コード“0001"を持
ち、分岐変位bが命令長cに置換えられた条件分岐命令
が実行機構3で実行され、アドレスa+cに分岐を起こ
す。これは、もともとの条件分岐命令に対する分岐を起
こすという予測が結果的に誤っていたことになる。この
結果、命令レジスタ1にロードされていたメモリ上のア
ドレスa+bに位置する命令はキャンセルされ、メモリ
上のアドレスa+cの命令が読出され、この命令が命令
レジスタ1にロードされる。一方、実行機構3でZフラ
グが立っていた場合には、分岐条件コード“0001"を持
つ条件分岐命令は実行機構3で実行されても分岐しな
い。これは、もともとの条件分岐命令に対する分岐を起
こすという予測が結果的に正しかったことになる。その
結果、命令レジスタ1にロードされていたメモリ上のア
ドレスa+bに位置する命令は有効であり、そのまま命
令デコーダ2、実行機構3の方へ移され、処理される。
なお、メモリ上のアドレスaに位置する非分岐命令が読
出された場合には、それが命令レジスタ1にロードさ
れ、命令デコーダ2でデコードされ、非分岐命令である
ことが判明すると、分岐予測機構4で分岐予測を行な
い、分岐予測ビットがどんな値を示しても、デコード用
プログラムカウンタ62には命令長cが加算され、デコー
ド用プログラムカウンタ62はa+cのアドレスを指し示
し、この非分岐命令に続いてメモリ上のアドレスa+c
の命令が読出される。
出された場合には、それが命令レジスタ1にロードさ
れ、命令デコーダ2でデコードされ、非分岐命令である
ことが判明すると、分岐予測機構4で分岐予測を行な
い、分岐予測ビットがどんな値を示しても、デコード用
プログラムカウンタ62には命令長cが加算され、デコー
ド用プログラムカウンタ62はa+cのアドレスを指し示
し、この非分岐命令に続いてメモリ上のアドレスa+c
の命令が読出される。
また、メモリ上のアドレスaに位置する無条件分岐命令
が読出された場合には、それが命令レジスタ1にロード
され、命令デコーダ2でデコードされ、無条件分岐命令
であることが判明すると、分岐予測機構4で分岐予測を
行ない、分岐予測ビットがどんな値を示しても、デコー
ド用プログラムカウンタ62には分岐変位bが加算され、
デコード用プログラムカウンタ62はa+bのアドレスを
指し示し、この無条件分岐命令に続いてメモリ上のアド
レスa+bの命令が読出される。
が読出された場合には、それが命令レジスタ1にロード
され、命令デコーダ2でデコードされ、無条件分岐命令
であることが判明すると、分岐予測機構4で分岐予測を
行ない、分岐予測ビットがどんな値を示しても、デコー
ド用プログラムカウンタ62には分岐変位bが加算され、
デコード用プログラムカウンタ62はa+bのアドレスを
指し示し、この無条件分岐命令に続いてメモリ上のアド
レスa+bの命令が読出される。
以上述べたように、分岐予測機能を用いることにより、
分岐する可能性の高い条件分岐命令をパイプラインのデ
コード段階で判断し、その命令が実行される前に分岐さ
せることにより分岐命令によるパイプラインの乱れを少
なくし、処理効率を上げることができる。
分岐する可能性の高い条件分岐命令をパイプラインのデ
コード段階で判断し、その命令が実行される前に分岐さ
せることにより分岐命令によるパイプラインの乱れを少
なくし、処理効率を上げることができる。
また、上述のような先行技術によれば、条件分岐命令が
分岐することが予測されると、インバータ8によって条
件分岐命令の分岐条件コードの最下位ビットを反転し、
分岐変位と命令長とを入替えて実行機構3で実行する。
そうすることによって、条件分岐命令が分岐することを
予測し、その予測が外れても、実行機構3はプログラム
上の条件分岐命令の次に位置する命令へ分岐するように
しているため、従来例のような複雑な処理を必要とせ
ず、比較的簡単な方法により分岐予測と、それに付随す
る処理を行なうことができる。
分岐することが予測されると、インバータ8によって条
件分岐命令の分岐条件コードの最下位ビットを反転し、
分岐変位と命令長とを入替えて実行機構3で実行する。
そうすることによって、条件分岐命令が分岐することを
予測し、その予測が外れても、実行機構3はプログラム
上の条件分岐命令の次に位置する命令へ分岐するように
しているため、従来例のような複雑な処理を必要とせ
ず、比較的簡単な方法により分岐予測と、それに付随す
る処理を行なうことができる。
しかしながら、システムのリセットなどにより、分岐予
測機構の分岐予測ビットがクリアされた場合、新たに分
岐予測の登録が行なわれるまで、分岐を起こさないと予
測されることになり、分岐予測機能の効果が得られな
い。つまり、上述の従来例および先行技術例で示される
分岐予測機構とは、命令をでデコードした結果、その命
令が条件分岐命令であると判断された場合、その条件分
岐命令が以前に実行されたときに実際に分岐したかどう
かの履歴に従って今回分岐するかを予測し、分岐すると
予測した場合は命令の取込先を分岐先に変更する機構で
ある。そのため、条件分岐命令が実行され、実際に分岐
が起こったときに初めて、分岐予測のテーブルの登録が
行なわれるので、それまでその条件分岐命令に対しては
分岐を予測することができない。
測機構の分岐予測ビットがクリアされた場合、新たに分
岐予測の登録が行なわれるまで、分岐を起こさないと予
測されることになり、分岐予測機能の効果が得られな
い。つまり、上述の従来例および先行技術例で示される
分岐予測機構とは、命令をでデコードした結果、その命
令が条件分岐命令であると判断された場合、その条件分
岐命令が以前に実行されたときに実際に分岐したかどう
かの履歴に従って今回分岐するかを予測し、分岐すると
予測した場合は命令の取込先を分岐先に変更する機構で
ある。そのため、条件分岐命令が実行され、実際に分岐
が起こったときに初めて、分岐予測のテーブルの登録が
行なわれるので、それまでその条件分岐命令に対しては
分岐を予測することができない。
そこで、この発明は上記の問題点を解消するためになさ
れたもので、履歴によって分岐を予測することができな
い場合にも分岐予測を容易に行なうことができるととも
に、高速に処理を行なう分岐予測機能を有するデータ処
理装置を提供することを目的とする。
れたもので、履歴によって分岐を予測することができな
い場合にも分岐予測を容易に行なうことができるととも
に、高速に処理を行なう分岐予測機能を有するデータ処
理装置を提供することを目的とする。
[問題点を解決するための手段] この発明に従って分岐予測機能を有するデータ処理装置
は以下の手段を備えている。
は以下の手段を備えている。
(a)命令を取出し、その命令を解読する命令取出・解
読手段。
読手段。
(b)この命令取出・解読手段によって解読された命令
をパイプライン処理の原理で実行する命令実行手段。
をパイプライン処理の原理で実行する命令実行手段。
(c)この命令取出・解読手段によって取出および解読
されるべき命令が条件分岐命令であって、この条件分岐
命令が分岐を起こすか否かを予測する分岐予測手段。
されるべき命令が条件分岐命令であって、この条件分岐
命令が分岐を起こすか否かを予測する分岐予測手段。
(d)この分岐予測手段の予測結果に基づいて、分岐を
起こすと判断される場合と分岐を起こさないと判断され
る場合とで、条件分岐命令によって示される分岐先の命
令までの変位と、条件分岐命令の命令長とが入替わるよ
うに選択することにより、命令実行手段によって実行す
べき命令を特定する命令特定手段。
起こすと判断される場合と分岐を起こさないと判断され
る場合とで、条件分岐命令によって示される分岐先の命
令までの変位と、条件分岐命令の命令長とが入替わるよ
うに選択することにより、命令実行手段によって実行す
べき命令を特定する命令特定手段。
そして、上記分岐予測手段は、前回までの処理における
分岐結果により分岐を起こすか否かを予測する第1の分
岐予測手段と、命令取出・解読手段によって解読された
命令の分岐条件より分岐を起こすか否かを予測する第2
の分岐予測手段とからなっている。また、この第1の分
岐予測手段によって分岐を起こすか否かを予測すること
ができないとき、第2の分岐予測手段によって分岐を起
こすか否かを予測するものである。
分岐結果により分岐を起こすか否かを予測する第1の分
岐予測手段と、命令取出・解読手段によって解読された
命令の分岐条件より分岐を起こすか否かを予測する第2
の分岐予測手段とからなっている。また、この第1の分
岐予測手段によって分岐を起こすか否かを予測すること
ができないとき、第2の分岐予測手段によって分岐を起
こすか否かを予測するものである。
[作用] この発明における分岐予測機能を有するデータ処理装置
は、命令取出・解読手段によって解読された命令の分岐
条件より分岐を起こすか否かを予測する第2の分岐予測
手段を備えている。この第2の分岐予測手段を付加する
ことにより、履歴による分岐予測が不可能な場合でも分
岐予測を行なうことができる。このため、従来の分岐予
測機能を有するデータ処理装置よりもさらに分岐予測の
的中率が向上する。
は、命令取出・解読手段によって解読された命令の分岐
条件より分岐を起こすか否かを予測する第2の分岐予測
手段を備えている。この第2の分岐予測手段を付加する
ことにより、履歴による分岐予測が不可能な場合でも分
岐予測を行なうことができる。このため、従来の分岐予
測機能を有するデータ処理装置よりもさらに分岐予測の
的中率が向上する。
[発明の実施例] 以下、この発明の一実施例を図について説明する。第1
図はこの発明の一実施例を示す概略ブロック図である。
第2図は第1図に示す履歴による分岐予測機構4の記憶
内容の構成を説明するための図である。次に、第1図お
よび第2図を参照して、この発明の一実施例の構成につ
いて説明する。
図はこの発明の一実施例を示す概略ブロック図である。
第2図は第1図に示す履歴による分岐予測機構4の記憶
内容の構成を説明するための図である。次に、第1図お
よび第2図を参照して、この発明の一実施例の構成につ
いて説明する。
第1図は、本発明による分岐予測機構を備えたパイプラ
イン方式のデータ処理装置を示す概略ブロック図であ
る。図において、先行技術例を示す第3図と同一の符号
は同一または同等の機能部分を示す。履歴による分岐予
測機構4は従来例および先行技術例にもある、履歴によ
って分岐を予測する機構であるが、この発明の実施例に
おいては分岐予測ビットの他に分岐予測不可ビットを有
している。この履歴による分岐予測機構4の構成は第2
図に示されている。この分岐予測機構4によれば、1つ
のエントリは分岐命令の先頭番地の下位8ビットに対応
して分岐予測ビットと分岐予測不可ビットとが対になっ
た形になっている。この分岐予測機構4が初期化される
と、すべてのエントリにおいて分岐予測不可ビットがセ
ットされる。この分岐予測不可ビットが立っている間
は、分岐予測ビットは無意味なものとみなされる。或る
1つの条件分岐命令が実行され、その結果が履歴による
分岐予測機構4に登録されると、その条件分岐命令の先
頭番地の下位8ビットに対応する分岐予測不可ビットは
クリアされる。以上の2種類のビットに対応して、履歴
による分岐予測機構4より第1の分岐予測信号線22と分
岐予測不可信号線23とが出力される。また、このデータ
処理装置は履歴によらない分岐予測機構20も備えてい
る。この履歴によらない分岐予測機構20は、分岐条件コ
ードレジスタ7より4ビットの分岐条件コードを取込
み、そのパターンに応じて第2の分岐予測信号線24を出
力する。この場合、4ビットの条件の組合わせは16通り
であるので、この分岐予測機構20は単純な組合わせ回路
で実現できる。また、回路をアドレス幅4ビットのROM
としても実現できる。分岐条件コードがどのパターンの
ときに分岐が起こると予測するかはチップ設計者が決め
ればよい。あるいは、この分岐予測機構20をRAMで構成
しておき、システム立上げ時にどの条件で分岐を起こす
と予測するかを設定するようにしてもよい。セレクタ21
は、分岐予測不可信号線23からの信号の状態に応じて、
履歴による分岐予測機構4からの第1の分岐予測信号線
22、および履歴によらない分岐予測機構20からの第2の
分岐予測信号線24のいずれかの信号線を選択する。ここ
で選択された結果は、先行技術例と同様に命令デコーダ
2で条件分岐命令がデコードされたときのみ有効とな
る。
イン方式のデータ処理装置を示す概略ブロック図であ
る。図において、先行技術例を示す第3図と同一の符号
は同一または同等の機能部分を示す。履歴による分岐予
測機構4は従来例および先行技術例にもある、履歴によ
って分岐を予測する機構であるが、この発明の実施例に
おいては分岐予測ビットの他に分岐予測不可ビットを有
している。この履歴による分岐予測機構4の構成は第2
図に示されている。この分岐予測機構4によれば、1つ
のエントリは分岐命令の先頭番地の下位8ビットに対応
して分岐予測ビットと分岐予測不可ビットとが対になっ
た形になっている。この分岐予測機構4が初期化される
と、すべてのエントリにおいて分岐予測不可ビットがセ
ットされる。この分岐予測不可ビットが立っている間
は、分岐予測ビットは無意味なものとみなされる。或る
1つの条件分岐命令が実行され、その結果が履歴による
分岐予測機構4に登録されると、その条件分岐命令の先
頭番地の下位8ビットに対応する分岐予測不可ビットは
クリアされる。以上の2種類のビットに対応して、履歴
による分岐予測機構4より第1の分岐予測信号線22と分
岐予測不可信号線23とが出力される。また、このデータ
処理装置は履歴によらない分岐予測機構20も備えてい
る。この履歴によらない分岐予測機構20は、分岐条件コ
ードレジスタ7より4ビットの分岐条件コードを取込
み、そのパターンに応じて第2の分岐予測信号線24を出
力する。この場合、4ビットの条件の組合わせは16通り
であるので、この分岐予測機構20は単純な組合わせ回路
で実現できる。また、回路をアドレス幅4ビットのROM
としても実現できる。分岐条件コードがどのパターンの
ときに分岐が起こると予測するかはチップ設計者が決め
ればよい。あるいは、この分岐予測機構20をRAMで構成
しておき、システム立上げ時にどの条件で分岐を起こす
と予測するかを設定するようにしてもよい。セレクタ21
は、分岐予測不可信号線23からの信号の状態に応じて、
履歴による分岐予測機構4からの第1の分岐予測信号線
22、および履歴によらない分岐予測機構20からの第2の
分岐予測信号線24のいずれかの信号線を選択する。ここ
で選択された結果は、先行技術例と同様に命令デコーダ
2で条件分岐命令がデコードされたときのみ有効とな
る。
次に、この発明の一実施例の具体的な動作について説明
する。デコードされた命令が条件分岐命令でない場合、
またはデコードされた命令が条件分岐命令であり、かつ
履歴による分岐予測機構4からの分岐予測不可信号線23
からの信号がOFF状態の場合は、先行技術例と全く同じ
動作をするので本説明では省略することにする。ここで
は、先行技術例と異なる場合、すなわち、デコードされ
た命令が条件分岐命令であり、かつ履歴による分岐予測
機構4からの分岐予測不可信号線23からの信号がON状態
の場合を説明する。ここで、この分岐予測不可信号線23
からの信号に履歴による分岐予測機構4にまだ分岐予測
が登録されていない場合にはON状態を示し、分岐予測が
登録されているとOFF状態を示す。したがって、分岐予
測不可信号線23からの信号がOFF状態の場合は履歴によ
る分岐予測結果が有効となり、ON状態の場合は本発明に
おける履歴によらない分岐予測結果が有効となる。
する。デコードされた命令が条件分岐命令でない場合、
またはデコードされた命令が条件分岐命令であり、かつ
履歴による分岐予測機構4からの分岐予測不可信号線23
からの信号がOFF状態の場合は、先行技術例と全く同じ
動作をするので本説明では省略することにする。ここで
は、先行技術例と異なる場合、すなわち、デコードされ
た命令が条件分岐命令であり、かつ履歴による分岐予測
機構4からの分岐予測不可信号線23からの信号がON状態
の場合を説明する。ここで、この分岐予測不可信号線23
からの信号に履歴による分岐予測機構4にまだ分岐予測
が登録されていない場合にはON状態を示し、分岐予測が
登録されているとOFF状態を示す。したがって、分岐予
測不可信号線23からの信号がOFF状態の場合は履歴によ
る分岐予測結果が有効となり、ON状態の場合は本発明に
おける履歴によらない分岐予測結果が有効となる。
メモリ(図示せず)から分岐条件コード“0000"を持つ
条件分岐命令が読出されたものとする。分岐条件コード
“0000"はZ(ゼロ)フラグが立っていれば分岐するこ
とを意味している。この命令が読出されると、命令はデ
コードされ、その命令が条件分岐命令であることが判明
する。このとき、履歴による分岐予測機構4の分岐予測
ビットと分岐予測不可ビットとが第1の分岐予測信号線
22および分岐予測不可信号線23に出力される。この場
合、出力された分岐予測不可信号線23からの信号はON状
態になっている。すなわち、履歴による分岐予測機構4
に分岐予測がまだ登録されておらず、この分岐予測機構
4では予測できない状態である。
条件分岐命令が読出されたものとする。分岐条件コード
“0000"はZ(ゼロ)フラグが立っていれば分岐するこ
とを意味している。この命令が読出されると、命令はデ
コードされ、その命令が条件分岐命令であることが判明
する。このとき、履歴による分岐予測機構4の分岐予測
ビットと分岐予測不可ビットとが第1の分岐予測信号線
22および分岐予測不可信号線23に出力される。この場
合、出力された分岐予測不可信号線23からの信号はON状
態になっている。すなわち、履歴による分岐予測機構4
に分岐予測がまだ登録されておらず、この分岐予測機構
4では予測できない状態である。
一方、履歴によらない分岐予測機構20は分岐条件コード
レジスタ7より4ビットの分岐条件コード“0000"を取
出し、この分岐条件コードのパターンより第2の分岐予
測信号線24に出力する信号を決定する。コード“0000"
は分岐を起こすと予測するように設定されているものと
する。
レジスタ7より4ビットの分岐条件コード“0000"を取
出し、この分岐条件コードのパターンより第2の分岐予
測信号線24に出力する信号を決定する。コード“0000"
は分岐を起こすと予測するように設定されているものと
する。
このとき、セレクタ21は分岐予測不可信号線23からの信
号がON状態であるので履歴によらない分岐予測機構20か
らの第2の分岐予測信号線24を選択する。その結果、分
岐が起こると予測されたことになる。この後の処理は、
先行技術例において分岐が起こると予測された場合と同
じである。
号がON状態であるので履歴によらない分岐予測機構20か
らの第2の分岐予測信号線24を選択する。その結果、分
岐が起こると予測されたことになる。この後の処理は、
先行技術例において分岐が起こると予測された場合と同
じである。
以上の述べた実施例においては、セレクタ21によって第
1および第2の分岐予測信号線23,24のいずれが選択さ
れた場合にも、従来の技術の場合と同様に、条件分岐命
令で分岐が起こると予測されない場合、予測される場合
に応じて、次のように動作する。条件分岐命令で分岐が
起こると予測されない場合は、セレクタ12はレジスタ10
を選択し、セレクタ15はレジスタ13を選択する。条件分
岐命令で分岐が起こると予測される場合は、セレクタ12
はレジスタ11を選択し、セレクタ15はレジスタ14を選択
する。この2つのセレクタにより、分岐が起こると予測
されるか否かで、分岐変位と命令長が入替えられること
になる。条件分岐命令で分岐が起こると予測されない場
合は、セレクタ12はレジスタ10を選択し、セレクタ15は
レジスタ13を選択する。すなわち、デコードされた命令
が分岐することを予測される条件分岐命令の場合、分岐
することが予測されない条件分岐命令の場合に対して、
入替機構により命令長と分岐変位とが入替えられること
になる。ここで入替機構とは、上記従来の技術の場合と
同様に、レジスタ10,11,13,14とセレクタ12,15を含む概
念上の機構である。
1および第2の分岐予測信号線23,24のいずれが選択さ
れた場合にも、従来の技術の場合と同様に、条件分岐命
令で分岐が起こると予測されない場合、予測される場合
に応じて、次のように動作する。条件分岐命令で分岐が
起こると予測されない場合は、セレクタ12はレジスタ10
を選択し、セレクタ15はレジスタ13を選択する。条件分
岐命令で分岐が起こると予測される場合は、セレクタ12
はレジスタ11を選択し、セレクタ15はレジスタ14を選択
する。この2つのセレクタにより、分岐が起こると予測
されるか否かで、分岐変位と命令長が入替えられること
になる。条件分岐命令で分岐が起こると予測されない場
合は、セレクタ12はレジスタ10を選択し、セレクタ15は
レジスタ13を選択する。すなわち、デコードされた命令
が分岐することを予測される条件分岐命令の場合、分岐
することが予測されない条件分岐命令の場合に対して、
入替機構により命令長と分岐変位とが入替えられること
になる。ここで入替機構とは、上記従来の技術の場合と
同様に、レジスタ10,11,13,14とセレクタ12,15を含む概
念上の機構である。
このようにして分岐予測機構4または20の予測結果に基
づいて、条件分岐命令の分岐先の命令までの変位と命令
長とを選択することにより、実行機構において実行すべ
き命令が特定される。
づいて、条件分岐命令の分岐先の命令までの変位と命令
長とを選択することにより、実行機構において実行すべ
き命令が特定される。
[発明の効果] 以上のように、この発明によれば、履歴による第1の分
岐予測機構を備えたデータ処理装置において、さらに履
歴によらない分岐条件より分岐を予測する第2の分岐予
測機構を付加することにより、履歴による分岐予測が不
可能な場合でも分岐予測が可能となり、予測が当たる確
率が向上するため、より高速なデータ処理速度が得ら
れ、システムの性能が向上する。
岐予測機構を備えたデータ処理装置において、さらに履
歴によらない分岐条件より分岐を予測する第2の分岐予
測機構を付加することにより、履歴による分岐予測が不
可能な場合でも分岐予測が可能となり、予測が当たる確
率が向上するため、より高速なデータ処理速度が得ら
れ、システムの性能が向上する。
第1図はこの発明の一実施例の概略ブロック図、第2図
は第1図に示す履歴による分岐予測機構の記憶内容の構
成を示す構成図、第3図はこの発明の先行技術例を示す
概略ブロック図、第4図はこの発明の先行技術例の具体
的な動作を説明するためのフローチャート、第5図は従
来の分岐予測機能を有するデータ処理装置を示す概略ブ
ロック図、第6図は分岐予測機能を説明するためのメモ
リ内でのアドレスの関係を示す関係図である。 図において、1は命令レジスタ、2は命令デコーダ、3
は実行機構、4は履歴による分岐予測機構、7は分岐条
件コードレジスタ、8はインバータ、9,12,15,21はセレ
クタ、10,11,13,14はレジスタ、20は履歴によらない分
岐予測機構、61は加算器、62はデコード用プログラムカ
ウンタである。 なお、各図中、同一符号は同一または相当部分を示す。
は第1図に示す履歴による分岐予測機構の記憶内容の構
成を示す構成図、第3図はこの発明の先行技術例を示す
概略ブロック図、第4図はこの発明の先行技術例の具体
的な動作を説明するためのフローチャート、第5図は従
来の分岐予測機能を有するデータ処理装置を示す概略ブ
ロック図、第6図は分岐予測機能を説明するためのメモ
リ内でのアドレスの関係を示す関係図である。 図において、1は命令レジスタ、2は命令デコーダ、3
は実行機構、4は履歴による分岐予測機構、7は分岐条
件コードレジスタ、8はインバータ、9,12,15,21はセレ
クタ、10,11,13,14はレジスタ、20は履歴によらない分
岐予測機構、61は加算器、62はデコード用プログラムカ
ウンタである。 なお、各図中、同一符号は同一または相当部分を示す。
Claims (10)
- 【請求項1】分岐予測機能を有するデータ処理装置であ
って、 命令を取出し、その命令を解読する命令取出・解読手段
と、 前記命令取出・解読手段によって解読された命令をパイ
プライン処理の原理で実行する命令実行手段と、 前記命令取出・解読手段によって取出および解読される
べき命令が条件分岐命令であって、その条件分離命令が
分岐を起こすか否かを予測する分岐予測手段と、 前記分岐予測手段の予測結果に基づいて、分岐を起こす
と判断される場合と分岐を起こさないと判断される場合
とで、前記条件分岐命令によって示される分岐先の命令
までの変位と、前記条件分岐命令の命令長とが入替わる
ように選択することにより、前記命令実行手段によって
実行すべき命令を特定する命令特定手段とを備え、 前記分岐予測手段は、 前回までの処理における分岐結果により分岐を起こすか
否かを予測する第1の分岐予測手段と、 前記第1の分岐予測手段によって分岐を起こすか否かを
予測することができないとき、前記命令取出・解読手段
によって解読された命令の分岐条件より分岐を起こすか
否かを予測する第2の分岐予測手段と を含む、分岐予測機能を有するデータ処理装置。 - 【請求項2】前記第1の分岐予測手段は、前記条件分岐
命令の番地に対応して、 前回までの処理における分岐結果によって前記条件分岐
命令が分岐するか否かを予測するための予測ビットと、 前回までの予測における分岐結果によって前記条件分岐
命令が分岐するか否かを予測することができるか否かを
示す予測不可ビットとを記憶するための手段を備え、さ
らに、 前記予測ビットと前記予測不可ビットとに応じて、第1
の分岐予測信号と分岐予測不可信号とを出力するもので
ある、特許請求の範囲第1項に記載の分岐予測機能を有
するデータ処理装置。 - 【請求項3】前記第2の分岐予測手段は、前記命令取出
・解読手段によって解読された命令の分岐条件コードの
パターンに応じて第2の分岐予測信号を出力するもので
ある、特許請求の範囲第2項に記載の分岐予測機能を有
するデータ処理装置。 - 【請求項4】前記分岐予測手段は、前記第1の分岐予測
手段から出力される前記第1の分岐予測信号と、 前記第2の分岐予測手段から出力される前記第2の分岐
予測信号とのいずれかを、 前記第1の分岐予測手段から出力される前記分岐予測不
可信号に応じて選択するための第1の選択手段を含む、
特許請求の範囲第3項に記載の分岐予測機能を有するデ
ータ処理装置。 - 【請求項5】前記命令取出・解読手段は、前記命令を記
憶するための命令レジスタと、 前記命令レジスタに記憶された命令を解読し、少なくと
も命令長と変位を出力する命令デコーダとを備えるもの
である、特許請求の範囲第1項ないし第4項のいずれか
に記載の分岐予測機能を有するデータ処理装置。 - 【請求項6】前記命令特定手段は、前記命令取出・解読
手段によって解読された命令長を記憶するための第1の
レジスタと、 前記命令取出・解読手段によって解読された変位を記憶
するための第2のレジスタと、 前記分岐予測手段によって分岐が予測されるのに応じ
て、前記第2のレジスタに記憶された変位を選択するた
めの第2の選択手段とを備えるものである、特許請求の
範囲第1項ないし第5項のいずれかに記載の分岐予測機
能を有するデータ処理装置。 - 【請求項7】前記第2の選択手段は、分岐が前記分岐予
測手段によって予測されないとき、または前記命令が非
分岐命令であるとき、前記第1のレジスタに記憶された
命令長を出力するための手段を備えるものである、特許
請求の範囲第6項に記載の分岐予測機能を有するデータ
処理装置。 - 【請求項8】前記命令特定手段は、前記命令取出・解読
手段によって解読された命令長を記憶するための第3の
レジスタと、 前記命令取出・解読手段によって解読された変位を記憶
するための第4のレジスタと、 前記分岐予測手段によって分岐が予測されるのに応じ
て、前記第3のレジスタに記憶された命令長を前記命令
実行手段に付与するための第3の選択手段とを備えるも
のである、特許請求の範囲第1項ないし第7項のいずれ
かに記載の分岐予測機能を有するデータ処理装置。 - 【請求項9】前記第3の選択手段は、分岐が前記分岐予
測手段によって予測されないとき、または前記命令が非
分岐命令であるとき、前記第4のレジスタに記憶された
変位を出力し、その変位を前記命令実行手段に付与する
ための手段を備えるものである、特許請求の範囲第8項
に記載の分岐予測機能を有するデータ処理装置。 - 【請求項10】前記命令特定手段は、前記分岐予測手段
の予測結果に基づいて、前記条件分岐命令の分岐条件を
変更するための分岐条件変更手段を備えるものである、
特許請求の範囲第1項ないし第9項のいずれかに記載の
分岐予測機能を有するデータ処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP26497487A JPH0760386B2 (ja) | 1987-10-20 | 1987-10-20 | 分岐予測機能を有するデータ処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP26497487A JPH0760386B2 (ja) | 1987-10-20 | 1987-10-20 | 分岐予測機能を有するデータ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH01106227A JPH01106227A (ja) | 1989-04-24 |
JPH0760386B2 true JPH0760386B2 (ja) | 1995-06-28 |
Family
ID=17410797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP26497487A Expired - Fee Related JPH0760386B2 (ja) | 1987-10-20 | 1987-10-20 | 分岐予測機能を有するデータ処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0760386B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015107284A1 (fr) | 2014-01-20 | 2015-07-23 | Constellium Neuf-Brisach | Procédé de fabrication d'une boîte-boisson, bouteille métallique ou boîtier d'aérosol en alliage d'aluminium |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4728877B2 (ja) * | 2006-05-29 | 2011-07-20 | エヌイーシーコンピュータテクノ株式会社 | マイクロプロセッサおよびパイプライン制御方法 |
-
1987
- 1987-10-20 JP JP26497487A patent/JPH0760386B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015107284A1 (fr) | 2014-01-20 | 2015-07-23 | Constellium Neuf-Brisach | Procédé de fabrication d'une boîte-boisson, bouteille métallique ou boîtier d'aérosol en alliage d'aluminium |
Also Published As
Publication number | Publication date |
---|---|
JPH01106227A (ja) | 1989-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6647489B1 (en) | Compare branch instruction pairing within a single integer pipeline | |
JP2640454B2 (ja) | ディジタル命令プロセッサ制御装置および1サイクル内で分岐を実行する方法 | |
JP3658101B2 (ja) | データ処理装置 | |
US6611909B1 (en) | Method and apparatus for dynamically translating program instructions to microcode instructions | |
KR100233220B1 (ko) | 파이프라인 처리기 | |
US4739470A (en) | Data processing system | |
EP0094535B1 (en) | Pipe-line data processing system | |
JP4009248B2 (ja) | 分岐予測装置および分岐予測方法 | |
JP3486690B2 (ja) | パイプライン方式プロセッサ | |
US5274777A (en) | Digital data processor executing a conditional instruction within a single machine cycle | |
US5440704A (en) | Data processor having branch predicting function | |
KR930001055B1 (ko) | 가변 단어길이 명령의 병렬해독 및 병렬실행을 하는 데이터 처리장치 | |
US5253349A (en) | Decreasing processing time for type 1 dyadic instructions | |
US5295248A (en) | Branch control circuit | |
JP3725547B2 (ja) | 限定ラン分岐予測 | |
EP0497579B1 (en) | Circuit for executing conditional branch instructions in a pipelined processor | |
US5142630A (en) | System for calculating branch destination address based upon address mode bit in operand before executing an instruction which changes the address mode and branching | |
KR100980076B1 (ko) | 저전력 분기 예측 시스템 및 분기 예측 방법 | |
JPH0760386B2 (ja) | 分岐予測機能を有するデータ処理装置 | |
US6182211B1 (en) | Conditional branch control method | |
KR920006770B1 (ko) | 명령을 페치(fetch)하기 위한 제어 시스템 | |
JP2928680B2 (ja) | 複合条件処理方式 | |
JPH0760385B2 (ja) | 分岐予測機能を有するデ−タ処理装置 | |
JP2772100B2 (ja) | 並列命令フェッチ機構 | |
JPS60231241A (ja) | プログラム先行フエツチ制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |