JPH01106227A - 分岐予測機能を有するデータ処理装置 - Google Patents

分岐予測機能を有するデータ処理装置

Info

Publication number
JPH01106227A
JPH01106227A JP26497487A JP26497487A JPH01106227A JP H01106227 A JPH01106227 A JP H01106227A JP 26497487 A JP26497487 A JP 26497487A JP 26497487 A JP26497487 A JP 26497487A JP H01106227 A JPH01106227 A JP H01106227A
Authority
JP
Japan
Prior art keywords
branch
instruction
branch prediction
prediction
register
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.)
Granted
Application number
JP26497487A
Other languages
English (en)
Other versions
JPH0760386B2 (ja
Inventor
Tatsuya Ueda
達也 上田
Toyohiko Yoshida
豊彦 吉田
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 JP26497487A priority Critical patent/JPH0760386B2/ja
Publication of JPH01106227A publication Critical patent/JPH01106227A/ja
Publication of JPH0760386B2 publication Critical patent/JPH0760386B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 [産業上の利用分野] この発明は分岐予測機能を有するデータ処理装置に関し
、特にパイプライン機構を有し、命令をデコード時に、
分岐するか否かを予測する分岐に測機能を有するデータ
処理装置に関するものである。
[従来の技術] 計算機の命令には大きく分けて非分岐命令、無条件分岐
命令、条件分岐命令がある。条件分岐命令は、成る一定
の条件が成立していると分岐を起こす命令であり、パイ
プライン方式の計算機にとって高速化のための障害とな
っている。すなわち、パイプライン方式の計算機におい
て、分岐命令が命令実行部において実行され、実際に分
岐が起こると、その時点においてパイプラインで処理中
の命令はキャンセルされ、新たに分岐先の命令がフェッ
チされる。このため、パイプラインの流れに隙間ができ
、パイプラインが乱れることになる。
そこで、条件分岐命令が与えられたとき、分岐するか否
かを予測する分岐予測方式が採用されている。このよう
な分岐予測方法については、米国電気電子学会(IEE
E)のコンピュータ部会(COMPUTERSOCI 
ETY) が発行シた「コンピュータ(COMPUTE
R)J 1984年1月号に記載されている。
第5図は、従来の分岐r測機能を有するデータ処理装置
の概略ブロック図である。まず、第5図を参照して、従
来の分岐p4−1機能を有するデータ処理装置の構成に
ついて説明する。命令レジスタ1はデータバスに出力さ
れた命令を記憶するものである。命令レジスタ1に記憶
された命令は命令デコーダ2に与えられる。命令デコー
ダ2は命令をデコードして、演算指示信号や分岐変位(
その命令が条件分岐命令あるいは無条件分岐命令であれ
ば)やそのデコードされた命令の命令長を出力するもの
である。実行機構3は命令デコーダによって、命令がデ
コードされた結果、出力される演算指示信号に基づいて
命令を実行するものである。
分岐予測機構4は命令のアドレスに対応して分岐予測ビ
ットを記憶するものである。この分岐子alビットは、
命令が実行されたとき、分岐を起こすか否かを予測する
ためのものである。そして、分岐予測機構4は命令がデ
コードされたとき、その命令に対応するアドレスから分
岐r測ビットを読出して、比較器5と次フェッチ命令ア
ドレス指定部6とに与える。分岐すると予測してブリブ
ランチを行なった場合には、比較器5は分岐予測ビット
に基づく予測結果と、分岐すると予1111 した条件
分岐命令の実行機構3−による実行結果とを比較し、一
致しないとき、分岐予測失敗信号を次フェッチ命令アド
レス指定部6に与える。
次フェッチ命令アドレス指定部6は比較器5によって分
岐の予測の失敗が判別されたとき、分岐予測失敗信号に
基づいて、正しい方向の命令をメモリから読出す。この
次フェッチ命令アドレス指定部6は加算器61とデコー
ド用プログラムカウンタ62とセーブレジスタ63とを
含む。加算器61は命令を実行するごとに命令長をデコ
ード用プログラムカウンタ62の内容に加算して、次に
フェッチすべき命令のアドレス信号を出力するものであ
る。次フェッチ命令アドレス指定部6は分岐予測機構4
から分岐予測ビットが与えられたときには、デコード用
プログラムカウンタ62のアドレスデータをセーブレジ
スタ63にセーブし、加算器61によってデコード用プ
ログラムカウンタ62の計数しているアドレスデータに
分岐変位を加算させる。
デコード用プログラムカウンタ62のアドレスデータを
セーブレジスタ63にセーブするのは、もし分岐予測を
失敗したときには、セーブしたアドレスデータを再びデ
コード用プログラムカウンタ62に、ロードし、そのア
ドレスデータに命令長を加算して、次のアドレスの命令
をフェッチする−ためのものである。
第6図は分岐子7Tl11機能を説明するためのメモリ
内でのアドレスの関係を示す関係図である。次に、第5
図および第6図を参照して、従来の条件分岐命令が与え
られたときの分岐子a1方法について説明する。デコー
ド用プログラムカウンタ62のアドレスデータがアドレ
ス信号としてアドレスバスに出力され、メモリ(図示せ
ず)の成る番地から命令が読出されて命令レジスタ1に
ロードされる。
この命令は命令デコーダ2によってデコードされ、演算
指示信号と命令長が出力される。実行機構3はその演算
指示信号に基づいて処理動作を実行する。
一方、加算器61は命令デコーダ2によってデコードさ
れた命令長をデコード用プログラムカウンタ62の内容
に加算し、次にフェッチすべき命令のアドレス信号をア
ドレスバスに出力する。デコード用プログラムカウンタ
62から出力されたアドレス信号が条件分岐命令に対応
している場合には、そのアドレスの一部に対応して記憶
されている分岐子a1ビットが読出されて、次フェッチ
命令アドレス指定部6に与えられる。その命令が分岐す
ると予測され、かつその命令をデコードした結果、それ
が条件分岐命令であることが判明した場合には、次フェ
ッチ命令アドレス指定部6はその命令が分岐するものと
判断し、デコード用プログラムカウンタ62の内容をセ
ーブレジスタ63にセーブする。そして、加算器61は
デコード用プログラムカウンタ62の内容に、命令デコ
ーダ2によってデコードされた分岐変位を加算する。
すなわち、第6図に示すように、条件分岐命令のアドレ
スaに対して、分岐変位すが加算されて、分岐先アドレ
スa+bを示すアドレス信号が出力される。このアドレ
ス信号に基づいて、メモリから分岐先の命令が読出され
る。
他方、実行機構3は条件分岐命令を実行するが、この条
件分岐命令は成る一定の条件が満たされていれば分岐す
るが、条件が満たされていない場合には分岐しない命令
である。たとえば、2(ゼロ)フラグが立っていれば分
岐するという条件を持つ条件分岐命令を実行する場合は
、Zフラグが立っていれば分岐するが、2フラグが立っ
ていなければ分岐しない。実行機構3が条件分岐命令を
実行した結果、分岐しなかった場合には、分岐しなかっ
たことを示す実行結果信号が比較器5に与えられる。こ
の比較器5には分岐子a−1機構4から分岐子ilN情
報が与えられているので、比較器5は両者が一致しない
ことを判別して、分岐予測失敗信号を次フェッチ命令ア
ドレス指定部6に与える。次フェッチ命令アドレス指定
部6は条件分岐命令を実行した結果、分岐しなかった場
合には、第6図に示す条件分岐命令の次のアドレスa+
cの命令を実行する必要がある。しかし、デコード用プ
ログラムカウンタ62は前述したように、条件分岐命令
が分岐するとT−謝し、分岐先のアドレスa十すを示す
アドレス信号を出力している。このため、次フェッチ命
令アドレス指定部6はデコード用プログラムカウンタ6
2の内容をキャンセルし、セーブレジスタ63にセーブ
したもとのアドレスaを読出してデコード用プログラム
カウンタ62にロードする。さらに、加算器61は命令
長Cをデコード用プログラムカウンタ62の内容に加算
して、アドレスa+cを示すアドレス信号を出力させる
。それによって、メモリからアドレスa+Cに対応する
命令が読出されて、実行機構3によって実行される。
[発明が解決しようとする問題点] 従来の分岐予測機能ををするデータ処理装置は、上述の
ように構成されているので、分岐の予測が失敗した場合
には、セーブレジスタ63にセーブしたアドレスをデコ
ード用プログラムカウンタ62に転送し、そのアドレス
に命令長を加算するための処理を必要とし、処理が複雑
になってしまうという問題点があった。
そこで、本願発明者の一部らは、このような問題点を解
決したデータ処理装置を発明し、本出願人は、特願昭6
1−200557号、特願昭204500号において出
願し、さらにそれらの日本国内出願に対して優先権を主
張して、1987年8月26日に米国出願を行なってい
る。その出願において開示された内容は本出願の発明に
対する先行技術として以下に説明される。
第3図はこの先行技術の一実施例を示す概略ブロック図
である。まず、第3図を参照して、分岐予測機能を杓°
するデータ処理装置の構成について説明する。第3図に
おいて、命令レジスタ1と命令デコーダ2と実行機構)
と分岐予測機構4と加算器61とデコード用プログラム
カウンタ62は前述の第5図に示したものと同じものが
用いられる。レジスタ10は命令デコーダ2によってデ
コードされた命令の命令長をロードするものであり、レ
ジスタ11は同じく命令デコーダ2によってデコードさ
れた命令の分岐変位あるいは命令長をロードするもので
ある。レジスタ11には、その命令が無条件分岐命令ま
たは条件分岐命令である場合には、分岐変位がロードさ
れ、その命令が非分岐命令である場合には、命令長がロ
ードされる。
セレクタ12は分岐予測機構4から読出された分岐予測
ビットと、命令が非分岐命令、無条件分岐命令および条
件分岐命令のいずれの命令であるかの情報に基づいて、
レジスタ10の出力とレジスタ11の出力とを切替える
ものである。すなわち、非分岐命令または分岐すること
が予ilNされない条件分岐命令が読出されたときには
、レジスタ10の出力を選択して命令長を加算器61に
与え、無条件分岐命令または分岐することが予測される
条件分岐命令が読出されたときには、レジスタ11の出
力を選択して分岐変位を加算器61に与える。
命令デコーダ2の出力には、分岐条件コードレジスタ7
とレジスタ13とレジスタ14とが接続サレル。分岐条
件コードレジスタ7は命令デコーダ2によってデコード
された条件分岐命令の分岐条件コードをロードする。レ
ジスタ13は同じくデコードされた無条件分岐命令また
は条件分岐命令の分岐変位、あるいは非分岐命令に対し
ては命令長をロードし、レジスタ14はデコードされた
命令の命令長をロードする。レジスタ13とレジスタ1
4の各出力はセレクタ15に与えられる。
セレクタ15は分岐予測機構の分岐予測ビットと、命令
が非分岐命令、無条件分岐命令および条件分岐命令のい
ずれの命令であるかの情報に基づいて、レジスタ13の
出力とレジスタ14との出力を切替える。すなわち、非
分岐命令、分岐することが予測されない条件分岐命令お
よび無条件分岐命令のいずれかの命令であれば、レジス
タ13にロードされたデータを選択し、分岐することが
予測される条件分岐命令であれば、レジスタ14にロー
ドされた命令長を選択する。このセレクタ15によって
選択された出力は実行機構3に与えられる。
分岐条件コードレジスタ7は4ビツトで構成されていて
、上位3ビツトで分岐条件を表わし、最下位1ビツトで
その分岐条件が成立するときに分岐するのか、それとも
不成立のときに分岐するのかを表わす。たとえば、00
00はZ(ゼロ)フラグ成立、つまり演算の結果が0と
なると分岐することを表わすのに対して、0001は2
フラグ不成立、つまり演算の結果が0でないと分岐する
ことを表わす。この分岐条件コードレジスタフの最下位
ビットの出力はセレクタ9に与えられるとともに、イン
バータ8によって反転されてセレクタ9に与えられる。
セレクタ9は分岐することが予n1されない条件分岐命
令の場合には、分岐条件コードレジスタ7の最下位ビッ
トを選択し、分岐することが予811される条件分岐命
令であればインバータ8の出力を選択して実行機構3に
与える。
非分岐命令または無条件分岐命令の゛場合には、分岐条
件コードレジスタにどのようなデータが人?ていても実
行機構3はこのデータを無視する。
第4図はこの先行技術の一実施例の具体的な動作を説明
するためのフローチャートである。次に、第3図、第4
図および第6図を参照して、この先行技術の一実施例の
具体的な動作について説明する。まず、従来例と同様に
して、デコード用プログラムカウンタ62の内容がアド
レス信号としてアドレスバスに出力され、メモリ(図示
せず)の成る番地から命令が読出されて命令レジスタ1
にロードされる。命令レジスタ1にロードされた命令は
命令デコーダ2によってデコードされ、演算指示信号が
実行機構3に与えられるとともに、デコードされた命令
の命令長がレジスタ10とレジスタ14にロードされる
。実行機構3は与えられた演算指示信号に基づいて実行
処理する。同時に、加算器61はセレクタ12によって
選択された命令長または分岐変位をデコード用プログラ
ムカウンタ62の内容に加算して、次に実行すべき命令
の位置を示すアドレス信号を出力する。このアドレス信
号に基づいて、メモリから次に実行すべき命令が読出さ
れて命令レジスタ1にロードされる。
次に、メモリから分岐条件コード“0000”を持つ条
件分岐命令が読出されたものとする。分岐条件コード“
0000”はZ(ゼロ)フラグが立っていれば分岐する
ことを意味している。この命令が読出されると、命令は
デコードされ、その命令が条件分岐命令であることが判
明し、その命令のアドレスの上位8ビツトに対応して分
岐予測機構4に記憶されている分岐予測ビットが分岐す
ることを示していれば、セレクタ12はレジスタ11の
出力を選択し、セレクタ15はレジスタ14の出力を選
択し、セレクタ9はインバータ8の出力を選択する。セ
レクタ12はレジスタ11の出力を選択するので、加算
器61は、第6図に示゛ す分岐変位すをデコード用プ
ログラムカウンタ62の内容に加算する。それによって
、その条件分岐命令の分岐先アドレスa +、bを指し
示すアドレス信号が出力される。このアドレス信号にU
づいてメモリ上の条件分岐命令の分岐先から、次に実行
すべき命令が読出される。すなわち、非分岐命令または
分岐することが予11111されない条件分岐命令では
、レジスタ10にロードされている命令長Cが加算器6
1によってデコード用プログラムカウンタ62の内容に
加算されるが、無条件分岐命令または分岐することが予
測される条件分岐命令の場合には、レジスタ11にロー
ドされた分岐度′位すが加算器61によってデコード用
プログラムカウンタ62の内容に加算される。一方、セ
レクタ15は分岐することが予測される条件分岐命令の
場合にはレジスタ14の命令長Cを、非分岐命令、無条
件分岐命令または分岐することが予測されない条件分岐
命令の場合には、レジスタ13の出力を選択する。この
ようして、デコードされた命令が分岐することが予測さ
れる条件分岐命令の場合、入替機構により命令長と分岐
変位とが入替えられることになる。ここで、入替機構と
はレジスタ10.11.13.14とセレクタ12,1
5を含む概念上の機構である。
また、命令デコーダ2によってデコードされた命令の分
岐条件コード゛0000“は分岐条件コードレジスタ7
にロードされる。この場合、分岐することが予測されて
いるので、この分、岐条件コードレジスタ7の上位3ビ
ツトは実行機構3に与えられ、最下位1ビツトはインバ
ータ8によって反転されたものが、セレクタ9を介して
実行機構3に与えられる。すなわち、分岐条件コード“
00001の最下位1ビツトがインバータ8によって反
転され、分岐条件コード′0001”として実行機構3
にり、えられることになる。これはZフラグが立ってい
なければ分岐することを示している。
実行機構3は、図示されていないが加算器とプログラム
カウンタを有していて、プログラムカウンタは条件分岐
命令のアドレスaを指定し、加算器はレジスタ14にロ
ードされた命令長Cをプログラムカウンタに加算する。
一方、命令レジスタ1にはメモリから条件分岐命令に続
いて実行されるべき命令が読出されてロードされている
。この場合、条件分岐命令が分岐すると予測されたもの
であり、命令レジスタ1にはメモリ上のアドレスa+b
の命令がロードされている。実行機構3でZフラグが立
っていなかった場合には、分岐条件コード“0001”
を持ち、分岐食位すが命令長Cに置換えられた条件分岐
命令が実行機構3で実行され、アドレスa+Cに分岐を
起こす。これは、もともとの条件分岐命令に対する分岐
を起こすという予測が結果的に誤っていたことになる。
この結果、命令レジスタ1にロードされていたメモリ上
のアドレスa十すに位置する命令はキャンセルされ、メ
モリ上のアドレスa十Cの命令が読出され、この命令が
命令レジスタ1にロードされる。
一方、実行機構3でZフラグが立っていた場合には、分
岐条件コード“0001″を持つ条件分岐命令は実行機
構3で実行されても分岐しない。これは、もともとの条
件分岐命令に対する分岐を起こすという予aPIが結果
的に正しかったことになる。
その結果、命令レジスタ1にロードされていたメモリ上
のアドレスa+bに位置する命令は有効であり、そのま
ま命令デコーダ2、実行機構3の方へ移され、処理され
る。
なお、メモリ上のアドレスaに位置する非分岐命令が読
出された場合には、それが命令レジスタ1にロードされ
、命令デコーダ2でデコードされ、非分岐命令であるこ
とが判明すると、分岐予測機構4で分岐Ta1llを行
ない、分岐?’ilF+ビットがどんな値を示しても、
デコード用プログラムカウンタ62には命令長Cが加算
され、デコード用プログラムカウンタ62はa+Cのア
ドレスを指し示し、この非分岐命令に続いてメモリ上の
アドレスa+Cの命令が読出される。
また、メモリ上のアドレスaに位置する無条件゛ 分岐
命令が読出された場合には、それが命令レジスタ1にロ
ードされ、命令デコーダ2でデコードされ、無条件分岐
命令であることが判明すると、分岐予測機構4で分岐r
測を行ない、分岐予測ビットがどんな値を示しても、デ
コード用プログラムカウンタ62には分岐変位すが加算
され、デコード用プログラムカウンタ62はa+bのア
ドレスを指し示し、この無条件分岐命令に続いてメモリ
上のアドレスa十すの命令が読出される。
以上述べたように、分岐予測機能を用いることにより、
分岐する可能性の高い条件分岐命令をパイプラインのデ
コード段階で判断し、その命令が実行される前に分岐さ
せることにより分岐命令によるパイプラインの乱れを少
なくし、処理効率を上げることができる。
また、上述のような先行技術によれば、条件分岐命令が
分岐することが予測されると、インバータ8によって条
件分岐命令の分岐条件コードの最下位ビットを反転し、
分岐変位と命令長とを入替えて実行機構3で実行する。
そうすることによって、条件分岐命令が分岐することを
予測し、その子n1が外れても、実行機構3はプログラ
ム上の条件分岐命令の次に位置する命令へ分岐するよう
にしているため、従来例のような複雑な処理を必要とせ
ず、比較的簡単な方法により分岐予測と、それに付随す
る処理を行なうことができる。
しかしながら、システムのリセットなどにより、分岐子
Δ11機構の分岐予測ビットがクリアされた場合、新た
に分岐や1lFIの登録が行なわれるまで、分岐を起こ
さないと千aされることになり、分岐予測機能の効果が
得られない。つまり、上述の従来例および先行技術例で
示される分岐r瀾機構とは、命令をデコードした結果、
その命令が条件分岐命令であると判断された場合、その
条−件分岐命令が以前に実行されたときに実際に分岐し
たかどうかの履歴に従って合同分岐するかを予測し、分
岐すると予測した場合は命令の取込光を分岐先に変更す
る機構である。そのため、条件分岐命令が実行され、実
際に分岐が起こったときに初めて、分岐予測のテーブル
の登録が行なわれるので、それまではその条件分岐命令
に対しては分岐を予測することができない。
そこで、この発明は上記の問題点を解消するためになさ
れたもので、履歴に°よって分岐を予−−1することが
できない場合にも分岐予測を容品に行なうことができる
とともに、高速に処理を行なう分岐’j’DI機能を有
するデータ処理装置を提供することを目的とする。
[問題点を解決するための手段] この発明に従った分岐予測機能を有するデータ処理装置
は以下の手段を備えている。
(ム)  命令を取出し、その命令を解読する命令取出
・解読手段。
(b)  この命令取出・解読手段によって解読された
命令をバイブライン処理の原理で実行する命令実行手段
(c)  この命令取出・解読手段によって取出および
解読されるべき命令が条件分岐命令であって、その条件
分岐命令が分岐を起こすか否かをY・測する分岐子11
11手段。
(d)  この分岐予測手段の予測結果に基づいて、条
件分岐命令によって示される分岐先の命令までの変位と
、条件分岐命令の命令長とを入替える入替手段。
そして、上記分岐子7IP1手段は、前回までの処理に
おける分岐結果により分岐を起こすか否かを予測する第
1の分岐予測手段と、命令取出・解読手段によって解読
された命令の分岐条件より分岐を起こすか否かを予測す
る第2の分岐予測手段とからなっている。また、この第
1の分岐予測手段によって分岐を起こすか否かを予測す
ることができないとき、第2の分岐予測手段によって分
岐を起こすか否かを予測するものである。
[作用] この発明における分岐子aP1機能を有するデータ処理
装置は、命令取出・解読手段によって解読された命令の
分岐条件より分岐を起こすか否かを予測する第2の分岐
子n1手段を備えている。この第2の分岐予測手段を付
加することにより、履歴による分岐予測が不可能な場合
でも分岐予測を行なうことができる。このため、従来の
分岐予測機能を有するデータ処理装置よりもさらに分岐
子111Jの的中率が向上する。
[発明の実施例] 以上、この発明の一実施例を図について説明する。第1
図はこの発明の一実施例を示す概略ブロック図である。
第2図は第1図に示す履歴による分岐]−測機構4の記
憶内容の構成を説明するための図である。次に、第1図
および第2図を参照して、この発明の一実施例の構成に
ついて説明する。
第1図は、本発明による分岐予測機構を備えたパイプラ
イン方式のデータ処理装置を示す概略ブロック図である
。図において、先行技術例を示す第3図と同一の符号は
同一または同等の機能部分を示す。履歴による分岐予測
機構4は従来例および先行技術例にもある、履歴によっ
て分岐を予測する機構であるが、この発明の実施例にお
いては分岐予測ビットの他に分岐子11111不n1ビ
ットを有している。この履歴による分岐]’ ilN機
構4の構成は第2図に示されている。この分岐]’ M
FI機構4によれば、1つのエントリは分岐命令の先頭
番地の下位8ビツトに対応して分岐]−測ビットと分岐
1−静1不可ビットとが対になった形になっている。こ
の分岐予測機構4が初期化されると、すべてのエントリ
において分岐予測不可ビットがセットされる。
この分岐予測不可ビットが立っている間は、分岐予測ビ
ットは無意味なものとみなされる。成る1つの条件分岐
命令が実行され、その結果が履歴による分岐予測機構4
に登録されると、その条件分岐命令の先頭番地の下位8
ビツトに対応する分岐子apl不可ビットはクリアされ
る。以上の2種類のビットに対応して、履歴による分岐
子a−1機構4より第1の分岐予測信号線22と分岐予
測不可信号線23とが出力される。また、このデータ処
理装置は履歴によらない分岐予測機構20も備えている
。この履歴によらない分岐予測機構20は、分岐条件コ
ードレジスタ7より4ビツトの分岐条件コードを取込み
、そのパターンに応じて第2の分岐予測信号線24を出
力する。この場合、4ビツトの条件の組合わせは16通
りであるので、この分岐予測機構20は単純な組合わせ
回路で実現できる。また、回路をアドレス幅4ビツトの
ROMとしても実現できる。分岐条件コードがどのパタ
ーンのときに分岐が起こると予測するかはチップ設計者
が決めればよい。あるいは、この分岐予測機構20をR
AMで構成しておき、システム立上げ時にどの条件で分
岐を起こすと予測するかを設定するようにしてもよい。
セレクタ21は、分岐予測不可信号線23からの信号の
状態に応じて、履歴による分岐予測機構4からの第1の
分岐予測f二号線22、および履歴によらない分岐予測
機構20からの第2の分岐r−611,i帰線24のい
ずれかの信号線を選択する。ここで選択された結果は、
先行技術例と同様に命令デコーダ2で条件分岐命令がデ
コードされたときのみ有効となる。
次に、この発明の一実施例の具体的な動作について説明
する。デコードされた命令が条件分岐命令でない場合、
またはデコードされた命令が条件分岐命令であり、かつ
履歴による分岐子al1機構4からの分岐予測不可信号
線23からの信号がOFF状態の場合は、先行技術例と
全く同じ動作をするので本説明では省略することにする
。ここでは、先行技術例と異なる場合、すなわち、デコ
ードされた命令が条件分岐命令であり、かつ履歴による
分岐予測機構4からの分岐予測不可信号線23からの信
号がON状態の場合を説明する。ここで、この分岐予測
不可信号線23からの信号は履歴による分岐子111J
機構4にまだ分岐予測が登録されていない場合にはON
状態を示し、分岐予測が登録されているとOFF状態を
示す。したがって、分岐子1lF1不可信号線23から
の信号がOFF状態の場合は履歴による分岐予測結果が
有効となり、ON状態の場合は本発明における履歴によ
らない分岐予測結果が有効となる。
メモリ(図示せず)から分岐条件コード“0000゛を
持つ条件分岐命令が読出されたものとする。分岐条件コ
ード“0000”は2(ゼロ)フラグが立っていれば分
岐することを意味している。
この命令が読出されると、命令はデコードされ、その命
令が条件分岐命令であることが判明する。
このとき、履歴による分岐予測機構4の分岐予測ビット
と分岐予測不可ビットとが第1の分岐子71p3信号線
22および分岐子ハ1不可信号線23に出力される。こ
の場合、出力された分岐子1I−1不可信号線23から
の信号はON状態になっている。すなわち、履歴による
分岐予測機構4に分岐予測がまだ登録されておらず、こ
の分岐予測機構4では予測lJできない状態である。
一方、履歴によらない分岐予測機構20は分岐条件コー
ドレジスタ7より4ビツトの分岐条件コード“0000
“を取出し、この分岐条件コードのパターンより第2の
分岐予測信号線24に出力する信号を決定する。コード
“0000”は分岐を起こすと’?’ilF+するよう
に設定されているものとする。
このとき、セレクタ21は分岐子ΔIII不r予測信号
線23からの信号がON状態であるので履歴によらない
分岐予測機構20からの第2の分岐]′−δp1信号線
24を選択する。その結果、分岐が起こると予測された
ことになる。この後の処理は、先行技術例において分岐
が起こると予測された場合と同じである。
[発明の効果] 以上のように、この発明によれば、履歴による第1の分
岐予測機構を備えたデータ処理装置において、さらに履
歴によらない分岐条件より分岐を予測する第2の分岐予
測機構を付加することにより、履歴による分岐予測が不
可能な場合でも分岐予測が可能となり、予測が当たる確
率が向上するため、より高速なデータ処理速度が得られ
、システムの性能が向上する。
【図面の簡単な説明】
第1図はこの発明の一実施例の概略ブロック図、第2図
は第1図に示す履歴による分岐r測機構の記憶内容の構
成を示す構成図、第3図はこの発明の先行技術例を示す
概略ブロック図、第4図はこの発明の先行技術例の具体
的な動作を説明するためのフローチャート、第5図は従
来の分岐予測機能を有するデータ処理装置を示す概略ブ
ロック図、第6図は分岐予測機能を説明するためのメモ
リ内でのアドレスの関係を示す関係図である。 図において、1は命令レジスタ、2は命令デコーダ、3
は実行機構、4は履歴による分岐予測機構、7は分岐条
件コードレジスタ、8はインバータ、9,12,15.
21はセレクタ、10,11.13.14はレジスタ、
20は履歴によらない分岐子1N機構、61は加算器、
62はデコード用プログラムカウンタである。 なお、各図中、同一符号は同一または相当部分を示す。

Claims (11)

    【特許請求の範囲】
  1. (1)分岐予測機能を有するデータ処理装置であって、 命令を取出し、その命令を解読する命令取出・解読手段
    と、 前記命令取出・解読手段によって解読された命令をパイ
    プライン処理の原理で実行する命令実行手段と、 前記命令取出・解読手段によって取出および解読される
    べき命令が条件分岐命令であって、その条件分岐命令が
    分岐を起こすか否かを予測する分岐予測手段と、 前記分岐予測手段の予測結果に基づいて、前記条件分岐
    命令によって示される分岐先の命令までの変位と、前記
    条件分岐命令の命令長とを入替える入替手段とを備え、
    さらに 前記分岐予測手段は、前回までの処理における分岐結果
    により分岐を起こすか否かを予測する第1の分岐予測手
    段と、前記命令取出・解読手段によって解読された命令
    の分岐条件より分岐を起こすか否かを予測する第2の分
    岐予測手段とからなり、 前記第1の分岐予測手段によって分岐を起こすか否かを
    予測することができないとき、前記第2の分岐予測手段
    によって分岐を起こすか否かを予測するものである、分
    岐予測機能を有するデータ処理装置。
  2. (2)前記第1の分岐予測手段は、前記条件分岐命令の
    番地に対応して、 前回までの処理における分岐結果によって前記条件分岐
    命令が分岐するか否かを予測するための予測ビットと、 前回までの処理における分岐結果によって前記条件分岐
    命令が分岐するか否かを予測することができるか否かを
    示す予測不可ビットとを記憶するための手段を備え、さ
    らに、 前記予測ビットと前記予測不可ビットとに応じて、第1
    の分岐予測信号と分岐予測不可信号とを出力するもので
    ある、特許請求の範囲第1項に記載の分岐予測機能を有
    するデータ処理装置。
  3. (3)前記第2の分岐予測手段は、前記命令取出・解読
    手段によって解読された命令の分岐条件コードのパター
    ンに応じて第2の分岐予測信号を出力するものである、
    特許請求の範囲第2項に記載の分岐予測機能を有するデ
    ータ処理装置。
  4. (4)前記分岐予測手段は、前記第1の分岐予測手段か
    ら出力される前記第1の分岐予測信号と、 前記第2の分岐予測手段から出力される前記第2の分岐
    予測信号とのいずれかを、 前記第1の分岐予測手段から出力される前記分岐予測不
    可信号に応じて選択するための第1の選択手段を含む、
    特許請求の範囲第3項に記載の分岐予測機能を有するデ
    ータ処理装置。
  5. (5)前記命令取出・解読手段は、前記命令を記憶する
    ための命令レジスタと、 前記命令レジスタに記憶された命令を解読し、少なくと
    も命令長と変位を出力する命令デコーダとを備えるもの
    である、特許請求の範囲第1項ないし第4項のいずれか
    に記載の分岐予測機能を有するデータ処理装置。
  6. (6)前記入替手段は、前記命令取出・解読手段によっ
    て解読された命令長を記憶するための第1のレジスタと
    、 前記命令取出・解読手段によって解読された変位を記憶
    するための第2のレジスタと、 前記分岐予測手段によって分岐が予測されるのに応じて
    、前記第2のレジスタに記憶された変位を選択するため
    の第2の選択手段とを備えるものである、特許請求の範
    囲第1項ないし第5項のいずれかに記載の分岐予測機能
    を有するデータ処理装置。
  7. (7)当該データ処理装置は、次の命令の番地を計算す
    るための番地計算手段と、 前記第2の選択手段によって選択された変位を前記番地
    計算手段に付与し、前記番地計算手段によって示された
    アドレス値にその変位を加算するための加算手段とをさ
    らに備えているものである、特許請求の範囲第6項に記
    載の分岐予測機能を有するデータ処理装置。
  8. (8)前記第2の選択手段は、分岐が前記分岐予測手段
    によって予測されないとき、または前記命令が非分岐命
    令であるとき、前記第1のレジスタに記憶された命令長
    を出力するための手段を備えるものである、特許請求の
    範囲第6項または第7項に記載の分岐予測機能を有する
    データ処理装置。
  9. (9)前記入替手段は、前記命令取出・解読手段によっ
    て解読された命令長を記憶するための第3のレジスタと
    、 前記命令取出・解読手段によって解読された変位を記憶
    するための第4のレジスタと、 前記分岐予測手段によって分岐が予測されるのに応じて
    、前記第3のレジスタに記憶された命令長を前記命令実
    行手段に付与するための第3の選択手段とを備えるもの
    である、特許請求の範囲第1項ないし第8項のいずれか
    に記載の分岐予測機能を有するデータ処理装置。
  10. (10)前記第3の選択手段は、分岐が前記分岐予測手
    段によって予測されないとき、または前記命令が非分岐
    命令であるとき、前記第4のレジスタに記憶された変位
    を出力し、その変位を前記命令実行手段に付与するため
    の手段を備えるものである、特許請求の範囲第9項に記
    載の分岐予測機能を有するデータ処理装置。
  11. (11)前記入替手段は、前記分岐予測手段の予測結果
    に基づいて、前記条件分岐命令の分岐条件を変更するた
    めの分岐条件変更手段を備えるものである、特許請求の
    範囲第1項ないし第10項のいずれかに記載の分岐予測
    機能を有するデータ処理装置。
JP26497487A 1987-10-20 1987-10-20 分岐予測機能を有するデータ処理装置 Expired - Fee Related JPH0760386B2 (ja)

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 true JPH01106227A (ja) 1989-04-24
JPH0760386B2 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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007317083A (ja) * 2006-05-29 2007-12-06 Nec Computertechno Ltd マイクロプロセッサおよびパイプライン制御方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3016538B1 (fr) 2014-01-20 2016-07-15 Constellium France Procede de fabrication d'une boite-boisson, bouteille metallique ou boitier d'aerosol en alliage d'aluminium

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007317083A (ja) * 2006-05-29 2007-12-06 Nec Computertechno Ltd マイクロプロセッサおよびパイプライン制御方法

Also Published As

Publication number Publication date
JPH0760386B2 (ja) 1995-06-28

Similar Documents

Publication Publication Date Title
JP2987308B2 (ja) 情報処理装置
US6338136B1 (en) Pairing of load-ALU-store with conditional branch
AU618142B2 (en) Tightly coupled multiprocessor instruction synchronization
US6647489B1 (en) Compare branch instruction pairing within a single integer pipeline
JP3599409B2 (ja) 分岐予測装置
JP3494736B2 (ja) 分岐先バッファを用いた分岐予測システム
JP2640454B2 (ja) ディジタル命令プロセッサ制御装置および1サイクル内で分岐を実行する方法
US6247122B1 (en) Method and apparatus for performing branch prediction combining static and dynamic branch predictors
JP2840444B2 (ja) 算術パイプラインをオペレーティングする方法及びデータプロセッシング装置
JPH1124929A (ja) 演算処理装置およびその方法
JPH0769818B2 (ja) デ−タ処理装置
JP3163045B2 (ja) 分岐解決方法及びプロセッサ
JP2002073330A (ja) データ処理装置
JP3486690B2 (ja) パイプライン方式プロセッサ
JP2002527798A (ja) ストアアドレス生成およびユニバーサルな依存性ベクトルに基づくロードブロックのためのメカニズム
JP3749233B2 (ja) パイプラインでの命令実行方法及び装置
JP5136405B2 (ja) 演算処理装置及び演算処理装置の制御方法
US8578135B2 (en) Apparatus for calculating and prefetching a branch target address
JP2008165589A (ja) 情報処理装置
US5295248A (en) Branch control circuit
US11403110B2 (en) Storing a result of a first instruction of an execute packet in a holding register prior to completion of a second instruction of the execute packet
US5440704A (en) Data processor having branch predicting function
JP3345787B2 (ja) データ処理装置
JP7205174B2 (ja) 演算処理装置および演算処理装置の制御方法
JPH01106227A (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