JPH06332698A - 情報処理装置 - Google Patents
情報処理装置Info
- Publication number
- JPH06332698A JPH06332698A JP12380793A JP12380793A JPH06332698A JP H06332698 A JPH06332698 A JP H06332698A JP 12380793 A JP12380793 A JP 12380793A JP 12380793 A JP12380793 A JP 12380793A JP H06332698 A JPH06332698 A JP H06332698A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- branch
- condition
- register
- branching
- 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
Links
Landscapes
- Advance Control (AREA)
Abstract
(57)【要約】
【目的】命令アドレスを用いない分岐予測機構によっ
て、初めて実行される分岐命令に対しても分岐予測を可
能にする。 【構成】デコーダ402は条件コード設定命令を認識
し、制御線408によって、レジスタ410に条件コー
ド設定命令を記憶し、条件分岐命令を認識し、レジスタ
416に分岐条件指示子と条件分岐命令に先行する条件
コード設定命令とをセットする。分岐条件履歴表は、分
岐条件指示子と条件分岐命令に先行する条件コード設定
命令との組に対応させて前回の分岐の結果を記憶してい
る。レジスタ416にセットされた内容に対応するエン
トリを検索した結果、対応するエントリが存在する場合
には、分岐予測可能信号102Aをセットし、履歴情報
を読出して分岐予測信号104Aに出力する。
て、初めて実行される分岐命令に対しても分岐予測を可
能にする。 【構成】デコーダ402は条件コード設定命令を認識
し、制御線408によって、レジスタ410に条件コー
ド設定命令を記憶し、条件分岐命令を認識し、レジスタ
416に分岐条件指示子と条件分岐命令に先行する条件
コード設定命令とをセットする。分岐条件履歴表は、分
岐条件指示子と条件分岐命令に先行する条件コード設定
命令との組に対応させて前回の分岐の結果を記憶してい
る。レジスタ416にセットされた内容に対応するエン
トリを検索した結果、対応するエントリが存在する場合
には、分岐予測可能信号102Aをセットし、履歴情報
を読出して分岐予測信号104Aに出力する。
Description
【0001】
【産業上の利用分野】本発明は、パイプライン処理を行
う情報処理装置に係り、特に、分岐予測機構を有する情
報処理装置に関する。
う情報処理装置に係り、特に、分岐予測機構を有する情
報処理装置に関する。
【0002】
【従来の技術】パイプライン方式の計算機では、一つの
命令の処理を部分処理に分解し、個々の部分処理を実行
する専用の独立なユニットを用意し、連続した複数の命
令をオーバーラップして実行することにより高速処理を
行っている。これによって、理想的には、所与の命令の
全てが完了に数マシンサイクルを要する場合でも、各マ
シンサイクル毎に一つの命令を取り扱うことが可能にな
る。
命令の処理を部分処理に分解し、個々の部分処理を実行
する専用の独立なユニットを用意し、連続した複数の命
令をオーバーラップして実行することにより高速処理を
行っている。これによって、理想的には、所与の命令の
全てが完了に数マシンサイクルを要する場合でも、各マ
シンサイクル毎に一つの命令を取り扱うことが可能にな
る。
【0003】この理想的なオーバーラップはいくつかの
理由で常に可能なわけではない。主な理由は条件分岐命
令の煩雑な発生である。条件分岐命令はある一定の条件
が成立している場合に分岐を生じる命令であり、条件分
岐命令が命令実行部で実行され、実際に分岐が起こる
と、その時点でパイプラインで処理中の命令はキャンセ
ルされ、新たに分岐先の命令がフェッチされる。このた
め、パイプラインの流れに隙間ができ、パイプラインが
乱れることになる。そこで、条件分岐命令が与えられた
とき、分岐するか否かを予測する分岐予測機構が採用さ
れている。
理由で常に可能なわけではない。主な理由は条件分岐命
令の煩雑な発生である。条件分岐命令はある一定の条件
が成立している場合に分岐を生じる命令であり、条件分
岐命令が命令実行部で実行され、実際に分岐が起こる
と、その時点でパイプラインで処理中の命令はキャンセ
ルされ、新たに分岐先の命令がフェッチされる。このた
め、パイプラインの流れに隙間ができ、パイプラインが
乱れることになる。そこで、条件分岐命令が与えられた
とき、分岐するか否かを予測する分岐予測機構が採用さ
れている。
【0004】図6は分岐予測機構を有する情報処理装置
の一例を示すブロック図であり、以下、この図を参照し
て分岐予測機構を説明する。図6において、100は分
岐予測機構、206は命令レジスタ、208は命令アド
レスレジスタ、210は命令レジスタ206に記憶され
ている命令を解読するデコーダ、218はデコーダ21
0によって解読された命令が分岐命令の場合に分岐先ア
ドレスを生成する分岐先アドレス生成回路、220はデ
コーダ210によって解読された命令に後続する命令の
命令アドレスを生成する加算器、226は分岐先アドレ
ス生成回路で生成された分岐先アドレス222と加算器
224で生成された後続命令アドレス224とを選択す
るセレクタ、228はセレクタ226を制御する命令読
出し制御部、300は命令を命令レジスタ206に供給
する命令キャッシュ、306は算術論理演算装置(以
下、ALUという)である。
の一例を示すブロック図であり、以下、この図を参照し
て分岐予測機構を説明する。図6において、100は分
岐予測機構、206は命令レジスタ、208は命令アド
レスレジスタ、210は命令レジスタ206に記憶され
ている命令を解読するデコーダ、218はデコーダ21
0によって解読された命令が分岐命令の場合に分岐先ア
ドレスを生成する分岐先アドレス生成回路、220はデ
コーダ210によって解読された命令に後続する命令の
命令アドレスを生成する加算器、226は分岐先アドレ
ス生成回路で生成された分岐先アドレス222と加算器
224で生成された後続命令アドレス224とを選択す
るセレクタ、228はセレクタ226を制御する命令読
出し制御部、300は命令を命令レジスタ206に供給
する命令キャッシュ、306は算術論理演算装置(以
下、ALUという)である。
【0005】図6に示す分岐予測機構を有する情報処理
装置において、条件分岐命令の処理は次のように行われ
る。
装置において、条件分岐命令の処理は次のように行われ
る。
【0006】まず、命令解読のマシンサイクルが実行さ
れる。
れる。
【0007】命令レジスタ206に格納された条件分岐
命令は、デコーダ210と分岐予測機構100とに転送
される。また、命令アドレスレジスタ208に格納され
た条件分岐命令の命令アドレスは、加算器220と分岐
予測機構100とに転送される。デコーダ210は命令
を解読して、命令長216を加算器220へ転送すると
ともに、解読結果をALU306に転送する。また、デ
コーダ210は、解読している命令が条件分岐命令であ
る場合には、解読結果を分岐先アドレス生成回路218
に転送する。分岐先アドレス生成回路218は、デコー
ダ210の解読結果をもとに条件分岐命令の分岐先アド
レスを生成し、セレクタ226に転送する。加算器22
0は、条件分岐命令の命令アドレス204と命令長21
6とを加算して、条件分岐命令に後続する命令の命令ア
ドレスを生成し、セレクタ226に転送する。
命令は、デコーダ210と分岐予測機構100とに転送
される。また、命令アドレスレジスタ208に格納され
た条件分岐命令の命令アドレスは、加算器220と分岐
予測機構100とに転送される。デコーダ210は命令
を解読して、命令長216を加算器220へ転送すると
ともに、解読結果をALU306に転送する。また、デ
コーダ210は、解読している命令が条件分岐命令であ
る場合には、解読結果を分岐先アドレス生成回路218
に転送する。分岐先アドレス生成回路218は、デコー
ダ210の解読結果をもとに条件分岐命令の分岐先アド
レスを生成し、セレクタ226に転送する。加算器22
0は、条件分岐命令の命令アドレス204と命令長21
6とを加算して、条件分岐命令に後続する命令の命令ア
ドレスを生成し、セレクタ226に転送する。
【0008】一方、分岐予測機構100は、命令レジス
タ206より転送された条件分岐命令と命令アドレスレ
ジスタ208より転送された条件分岐命令の命令アドレ
スとを利用して、分岐予測が可能であることを示す分岐
予測可能信号102と分岐予測信号104とを命令読出
し制御部228に出力する。命令読出し制御部228
は、分岐予測可能信号102が分岐予測可能であること
を示しており、かつ分岐予測信号104が分岐すると予
測していることを示している場合に、セレクタ制御線2
30によってセレクタ226の出力が分岐先アドレス2
22となるように制御し、そうでない場合には、セレク
タ226の出力を後続命令アドレス224となるように
制御する。セレクタ226は、セレクタ制御線230に
よって分岐先アドレス222か後続命令アドレス224
を出力し、命令キャッシュ300および命令アドレスレ
ジスタ208に転送される。命令キャッシュ300は、
セレクタ226の出力であるアドレスに格納されている
命令を読出し、次のマシンサイクルに解読されるべき命
令を命令レジスタ206に転送する。
タ206より転送された条件分岐命令と命令アドレスレ
ジスタ208より転送された条件分岐命令の命令アドレ
スとを利用して、分岐予測が可能であることを示す分岐
予測可能信号102と分岐予測信号104とを命令読出
し制御部228に出力する。命令読出し制御部228
は、分岐予測可能信号102が分岐予測可能であること
を示しており、かつ分岐予測信号104が分岐すると予
測していることを示している場合に、セレクタ制御線2
30によってセレクタ226の出力が分岐先アドレス2
22となるように制御し、そうでない場合には、セレク
タ226の出力を後続命令アドレス224となるように
制御する。セレクタ226は、セレクタ制御線230に
よって分岐先アドレス222か後続命令アドレス224
を出力し、命令キャッシュ300および命令アドレスレ
ジスタ208に転送される。命令キャッシュ300は、
セレクタ226の出力であるアドレスに格納されている
命令を読出し、次のマシンサイクルに解読されるべき命
令を命令レジスタ206に転送する。
【0009】次の命令実行のマシンサイクルでは次の処
理が実行される。
理が実行される。
【0010】ALU306は、デコーダ210から転送
された命令解読結果212にもとづいて、各種の演算を
実行する。ALU306は、条件分岐命令に対しては、
以前のマシンサイクルまでの演算結果に応じて設定され
る条件コードと条件分岐命令の分岐条件指示子とを比較
して実行中の条件分岐命令が分岐を起こすか否かを示す
分岐判定信号308を出力し、分岐予測機構100およ
び命令読出し制御部228へ転送する。分岐予測機構1
00は、分岐判定信号308によって、必要に応じて内
部に記憶している情報を更新する。命令読出し制御部2
28は、分岐予測信号104と分岐判定信号308とを
比較し、不一致の場合には、分岐予測が誤っていたこと
を示しており、現在命令解読のマシンサイクルにある命
令をキャンセルし、正しい命令を命令キャッシュ300
から読み出し、命令レジスタ206に転送する。
された命令解読結果212にもとづいて、各種の演算を
実行する。ALU306は、条件分岐命令に対しては、
以前のマシンサイクルまでの演算結果に応じて設定され
る条件コードと条件分岐命令の分岐条件指示子とを比較
して実行中の条件分岐命令が分岐を起こすか否かを示す
分岐判定信号308を出力し、分岐予測機構100およ
び命令読出し制御部228へ転送する。分岐予測機構1
00は、分岐判定信号308によって、必要に応じて内
部に記憶している情報を更新する。命令読出し制御部2
28は、分岐予測信号104と分岐判定信号308とを
比較し、不一致の場合には、分岐予測が誤っていたこと
を示しており、現在命令解読のマシンサイクルにある命
令をキャンセルし、正しい命令を命令キャッシュ300
から読み出し、命令レジスタ206に転送する。
【0011】これによって、分岐予測が正しい場合に
は、条件分岐命令の実行にともなうパイプラインの隙間
をなくすことができ、これによる性能低下を防ぐことが
できる。
は、条件分岐命令の実行にともなうパイプラインの隙間
をなくすことができ、これによる性能低下を防ぐことが
できる。
【0012】図5は従来技術による分岐予測機構の一例
を示すブロック図であり、以下、この図を参照して従来
技術を説明する。図5において、502はデコーダ、5
06はデコーダ502で解読された命令が条件分岐命令
の場合に条件分岐命令アドレスを記憶するレジスタ、5
10はレジスタ506の内容を記憶するレジスタ、51
4は条件分岐命令の命令アドレスに対応してその条件分
岐命令が最後に実行された時に分岐を起こしたか否かを
記憶する復号履歴表(以下、DHTという)である。
を示すブロック図であり、以下、この図を参照して従来
技術を説明する。図5において、502はデコーダ、5
06はデコーダ502で解読された命令が条件分岐命令
の場合に条件分岐命令アドレスを記憶するレジスタ、5
10はレジスタ506の内容を記憶するレジスタ、51
4は条件分岐命令の命令アドレスに対応してその条件分
岐命令が最後に実行された時に分岐を起こしたか否かを
記憶する復号履歴表(以下、DHTという)である。
【0013】図5に示す従来技術において、分岐予測の
処理は次のように行われる。
処理は次のように行われる。
【0014】まず、命令解読のマシンサイクルが実行さ
れる。
れる。
【0015】命令レジスタ206から命令202がデコ
ーダ502に転送され、命令アドレスレジスタ208か
ら命令アドレス204がレジスタ506に転送される。
デコーダ502は、命令202が条件分岐命令である場
合には、信号線504によって、レジスタ506に命令
アドレスを記憶する。これによって、レジスタ506に
は条件分岐命令の命令アドレスがセットされる。レジス
タ506は条件分岐命令アドレス508をDHT514
およびレジスタ510に転送する。DHT514は条件分岐命
令アドレス508に対応するエントリを探し、対応する
エントリが見つかった場合には、分岐予測が可能である
ことを示す分岐予測可能信号102Bをセットし、エン
トリに記憶されている条件分岐命令が最後に実行された
時に分岐を起こしたか否かを示す履歴情報を読出して分
岐予測信号104Bとして出力する。対応するエントリ
が見つからなかった場合には、分岐予測可能信号102
Bをセットしない。
ーダ502に転送され、命令アドレスレジスタ208か
ら命令アドレス204がレジスタ506に転送される。
デコーダ502は、命令202が条件分岐命令である場
合には、信号線504によって、レジスタ506に命令
アドレスを記憶する。これによって、レジスタ506に
は条件分岐命令の命令アドレスがセットされる。レジス
タ506は条件分岐命令アドレス508をDHT514
およびレジスタ510に転送する。DHT514は条件分岐命
令アドレス508に対応するエントリを探し、対応する
エントリが見つかった場合には、分岐予測が可能である
ことを示す分岐予測可能信号102Bをセットし、エン
トリに記憶されている条件分岐命令が最後に実行された
時に分岐を起こしたか否かを示す履歴情報を読出して分
岐予測信号104Bとして出力する。対応するエントリ
が見つからなかった場合には、分岐予測可能信号102
Bをセットしない。
【0016】次の命令実行のマシンサイクルでは次の処
理が実行される。
理が実行される。
【0017】ALU306から条件分岐命令が実際に分
岐を起こしたか否かを示す分岐判定信号308がDHT514
に転送される。DHT514はレジスタ510に記憶されてい
る条件分岐命令アドレスに対応するエントリを探し、対
応するエントリが見つかった場合には、そのエントリに
分岐判定信号308の内容を履歴情報として記憶し、対
応するエントリが見つからなかった場合には、新たにエ
ントリを作成してそのエントリに分岐判定信号308の
内容を履歴情報として記憶する。
岐を起こしたか否かを示す分岐判定信号308がDHT514
に転送される。DHT514はレジスタ510に記憶されてい
る条件分岐命令アドレスに対応するエントリを探し、対
応するエントリが見つかった場合には、そのエントリに
分岐判定信号308の内容を履歴情報として記憶し、対
応するエントリが見つからなかった場合には、新たにエ
ントリを作成してそのエントリに分岐判定信号308の
内容を履歴情報として記憶する。
【0018】これによって、同一の命令アドレスを持つ
条件分岐命令の前回の処理の結果を予測とする分岐予測
が可能である。
条件分岐命令の前回の処理の結果を予測とする分岐予測
が可能である。
【0019】この種の分岐予測方法に関する従来技術と
して、例えば、米国特許第4477872号に記載された技術
が知られている。
して、例えば、米国特許第4477872号に記載された技術
が知られている。
【0020】図5に示す従来技術において、同一の命令
アドレスを持つ条件分岐命令の前回の処理の結果のみを
用いて分岐を予測しているが、さらに、同一の命令アド
レスを持つ条件分岐命令の前々回の処理の結果を用いて
分岐を予測することができる。これは、DHT514の1エン
トリの履歴情報として、前回および前々回の条件分岐命
令の処理の結果を記憶し、この履歴情報から簡単な組合
せ回路によって分岐予測信号104Bを生成することに
よって可能である。
アドレスを持つ条件分岐命令の前回の処理の結果のみを
用いて分岐を予測しているが、さらに、同一の命令アド
レスを持つ条件分岐命令の前々回の処理の結果を用いて
分岐を予測することができる。これは、DHT514の1エン
トリの履歴情報として、前回および前々回の条件分岐命
令の処理の結果を記憶し、この履歴情報から簡単な組合
せ回路によって分岐予測信号104Bを生成することに
よって可能である。
【0021】この種の分岐予測方法に関する従来技術と
して、例えば、米国電気電子学会(IEEE)のコンピ
ュータ部会が発行した「コンピュータ(COMPUTER)」19
84年1月号等に記載された技術が知られている。
して、例えば、米国電気電子学会(IEEE)のコンピ
ュータ部会が発行した「コンピュータ(COMPUTER)」19
84年1月号等に記載された技術が知られている。
【0022】
【発明が解決しようとする課題】このように従来技術
は、同一の命令アドレスを持つ分岐命令の前回の処理の
結果を利用して分岐予測を行うため、初めて実行される
分岐命令に対しては正確な分岐予測が行えず、予測が当
たる確率が低く、分岐命令を高速に処理できないという
問題点を有している。
は、同一の命令アドレスを持つ分岐命令の前回の処理の
結果を利用して分岐予測を行うため、初めて実行される
分岐命令に対しては正確な分岐予測が行えず、予測が当
たる確率が低く、分岐命令を高速に処理できないという
問題点を有している。
【0023】本発明の目的は、初めて実行される分岐命
令に対しても正確な分岐予測を行うことができ、処理の
高速化を図ることのできる分岐予測機能を有する情報処
理装置を提供することにある。
令に対しても正確な分岐予測を行うことができ、処理の
高速化を図ることのできる分岐予測機能を有する情報処
理装置を提供することにある。
【0024】
【課題を解決するための手段】本発明によれば上記の目
的は、分岐命令に先行する命令の命令コードを記憶する
記憶手段と、記憶手段に記憶された命令コードと分岐命
令の分岐指示子とを用いて前記分岐命令が分岐を起こす
か否かを予測する分岐予測手段を備えることによって達
成される。
的は、分岐命令に先行する命令の命令コードを記憶する
記憶手段と、記憶手段に記憶された命令コードと分岐命
令の分岐指示子とを用いて前記分岐命令が分岐を起こす
か否かを予測する分岐予測手段を備えることによって達
成される。
【0025】本発明は、これにより、命令アドレスを用
いずに分岐予測を行うことができる。
いずに分岐予測を行うことができる。
【0026】また、上記目的は、条件コード設定命令を
認識する手段を備え、条件コード設定命令の命令コード
のみを前記記憶手段に記憶することによって達成され
る。
認識する手段を備え、条件コード設定命令の命令コード
のみを前記記憶手段に記憶することによって達成され
る。
【0027】また、上記目的は、前記記憶手段に記憶さ
れた命令コードと分岐命令の分岐指示子とに対応して分
岐命令の処理の結果を記憶する分岐条件履歴表(以下、
CHTという)を備え、分岐予測のための情報を動的に更
新することによって達成される。
れた命令コードと分岐命令の分岐指示子とに対応して分
岐命令の処理の結果を記憶する分岐条件履歴表(以下、
CHTという)を備え、分岐予測のための情報を動的に更
新することによって達成される。
【0028】さらに、上記目的は、命令アドレスを用い
る第2の分岐予測手段を備え、第2の分岐予測手段にお
いて分岐予測が可能な場合には、第2の分岐予測手段に
よる分岐予測を行うことによって達成される。
る第2の分岐予測手段を備え、第2の分岐予測手段にお
いて分岐予測が可能な場合には、第2の分岐予測手段に
よる分岐予測を行うことによって達成される。
【0029】
【作用】本発明は、分岐命令が分岐を起こすか否かの分
岐判定は、条件コード設定命令によって設定される条件
コードと分岐命令の分岐指示子との比較によって決定さ
れるので、条件コード設定命令および分岐条件指示子と
分岐判定との間に相関関係があるという統計的性質にも
とづいている。
岐判定は、条件コード設定命令によって設定される条件
コードと分岐命令の分岐指示子との比較によって決定さ
れるので、条件コード設定命令および分岐条件指示子と
分岐判定との間に相関関係があるという統計的性質にも
とづいている。
【0030】本発明による分岐予測機能を有する情報処
理装置において、条件コード設定命令が解読されると、
その命令コードを命令コード記憶手段に記憶する。次に
条件分岐命令が解読されると、命令コード記憶手段に記
憶されている命令コードと分岐条件指示子とはCHTに
転送され、対応するエントリから履歴情報が読出され、
履歴情報から予測が生成される。
理装置において、条件コード設定命令が解読されると、
その命令コードを命令コード記憶手段に記憶する。次に
条件分岐命令が解読されると、命令コード記憶手段に記
憶されている命令コードと分岐条件指示子とはCHTに
転送され、対応するエントリから履歴情報が読出され、
履歴情報から予測が生成される。
【0031】一方、CHTには、条件コード設定命令の
命令コードと分岐条件指示子とに対応して、条件分岐命
令の結果が記憶される。
命令コードと分岐条件指示子とに対応して、条件分岐命
令の結果が記憶される。
【0032】本発明は、条件分岐命令の命令アドレスを
分岐予測に使用しないため、初めて実行される条件分岐
命令に対しても分岐予測が可能になる。
分岐予測に使用しないため、初めて実行される条件分岐
命令に対しても分岐予測が可能になる。
【0033】
【実施例】図1は本発明の一実施例の構成を示すブロッ
ク図、図2は本発明の一実施例の処理のフローチャート
であり、以下、これらの図を参照して本発明を説明す
る。図1において、402はデコーダ、410はデコー
ダ402で解読された命令が条件コード設定命令の場合
に条件コード設定命令の命令コードを記憶するレジス
タ、416はデコーダ402で解読された命令が条件分
岐命令の場合にその条件分岐命令に先行する条件コード
設定命令と条件分岐命令の分岐条件指示子とを連結する
レジスタ、420はレジスタ416の内容を記憶するレ
ジスタ、424は条件分岐命令に先行する条件コード設
定命令と条件分岐命令の分岐条件指示子とに対応してそ
の条件分岐命令が最後に実行された時に分岐を起こした
か否かを記憶する分岐条件履歴表(CHT)である。
ク図、図2は本発明の一実施例の処理のフローチャート
であり、以下、これらの図を参照して本発明を説明す
る。図1において、402はデコーダ、410はデコー
ダ402で解読された命令が条件コード設定命令の場合
に条件コード設定命令の命令コードを記憶するレジス
タ、416はデコーダ402で解読された命令が条件分
岐命令の場合にその条件分岐命令に先行する条件コード
設定命令と条件分岐命令の分岐条件指示子とを連結する
レジスタ、420はレジスタ416の内容を記憶するレ
ジスタ、424は条件分岐命令に先行する条件コード設
定命令と条件分岐命令の分岐条件指示子とに対応してそ
の条件分岐命令が最後に実行された時に分岐を起こした
か否かを記憶する分岐条件履歴表(CHT)である。
【0034】なお、CHTには多くの設計があることに
注意しなければならない。ここで示すものは、最適な設
計というよりはむしろ説明を簡単にするために選んだも
のである。例えば、ここでは完全連想記憶装置を仮定し
ているが、実際の装置で多く用いられるセット連想記憶
装置、あるいは、単純に、条件コード設定命令の命令コ
ードと分岐条件指示子とを連結したものでアドレス付け
される記憶装置でもよい。
注意しなければならない。ここで示すものは、最適な設
計というよりはむしろ説明を簡単にするために選んだも
のである。例えば、ここでは完全連想記憶装置を仮定し
ているが、実際の装置で多く用いられるセット連想記憶
装置、あるいは、単純に、条件コード設定命令の命令コ
ードと分岐条件指示子とを連結したものでアドレス付け
される記憶装置でもよい。
【0035】図1に示す本発明において、分岐予測の処
理は図2で示すように、次のように行われる。
理は図2で示すように、次のように行われる。
【0036】まず、命令解読のマシンサイクルが実行さ
れる。
れる。
【0037】命令レジスタ206から命令202がデコ
ーダ402とレジスタ410とレジスタ416とに転送
される。デコーダ402は、命令202が条件コード設
定命令である場合には、信号線408によって、レジス
タ410に条件コード設定命令の命令コードを記憶す
る。これにより、レジスタ410には、もっとも最近に
実行された条件コード設定命令の命令コードが記憶され
る。また、デコーダ402は、命令202が条件分岐命令
である場合には、信号線414によって、レジスタ41
6にレジスタ410の内容と条件分岐命令の分岐条件指
示子とを記憶する。これによって、レジスタ416には
条件分岐命令に先行する条件コード設定命令の命令コー
ドと条件分岐命令の分岐条件指示子とがセットされる。
レジスタ416の内容はCHT424およびレジスタ420に
転送される。CHT424は条件分岐命令に先行する条件コー
ド設定命令の命令コードと条件分岐命令の分岐条件指示
子とに対応するエントリを探し、対応するエントリが見
つかった場合には、分岐予測が可能であることを示す分
岐予測可能信号102Aをセットし、エントリに記憶さ
れている条件分岐命令が最後に実行された時に分岐を起
こしたか否かを示す履歴情報を読出して分岐予測信号1
04Aとして出力する。対応するエントリが見つからな
かった場合には、分岐予測可能信号102Aをセットし
ない。
ーダ402とレジスタ410とレジスタ416とに転送
される。デコーダ402は、命令202が条件コード設
定命令である場合には、信号線408によって、レジス
タ410に条件コード設定命令の命令コードを記憶す
る。これにより、レジスタ410には、もっとも最近に
実行された条件コード設定命令の命令コードが記憶され
る。また、デコーダ402は、命令202が条件分岐命令
である場合には、信号線414によって、レジスタ41
6にレジスタ410の内容と条件分岐命令の分岐条件指
示子とを記憶する。これによって、レジスタ416には
条件分岐命令に先行する条件コード設定命令の命令コー
ドと条件分岐命令の分岐条件指示子とがセットされる。
レジスタ416の内容はCHT424およびレジスタ420に
転送される。CHT424は条件分岐命令に先行する条件コー
ド設定命令の命令コードと条件分岐命令の分岐条件指示
子とに対応するエントリを探し、対応するエントリが見
つかった場合には、分岐予測が可能であることを示す分
岐予測可能信号102Aをセットし、エントリに記憶さ
れている条件分岐命令が最後に実行された時に分岐を起
こしたか否かを示す履歴情報を読出して分岐予測信号1
04Aとして出力する。対応するエントリが見つからな
かった場合には、分岐予測可能信号102Aをセットし
ない。
【0038】命令実行のマシンサイクルでは次の処理が
実行される。
実行される。
【0039】ALU306から条件分岐命令が実際に分
岐を起こしたか否かを示す分岐判定信号308がCHT424
に転送される。CHT424はレジスタ420に記憶されてい
る条件分岐命令に先行する条件コード設定命令の命令コ
ードと条件分岐命令の分岐条件指示子とに対応するエン
トリを探し、対応するエントリが見つかった場合には、
そのエントリに分岐判定信号308の内容を履歴情報と
して記憶し、対応するエントリが見つからなかった場合
には、新たにエントリを作成してそのエントリに分岐判
定信号308の内容を履歴情報として記憶する。
岐を起こしたか否かを示す分岐判定信号308がCHT424
に転送される。CHT424はレジスタ420に記憶されてい
る条件分岐命令に先行する条件コード設定命令の命令コ
ードと条件分岐命令の分岐条件指示子とに対応するエン
トリを探し、対応するエントリが見つかった場合には、
そのエントリに分岐判定信号308の内容を履歴情報と
して記憶し、対応するエントリが見つからなかった場合
には、新たにエントリを作成してそのエントリに分岐判
定信号308の内容を履歴情報として記憶する。
【0040】図3は命令順序の一例を示す説明図であ
り、以下、この図を参照して本発明をさらに詳しく説明
する。
り、以下、この図を参照して本発明をさらに詳しく説明
する。
【0041】図3において、Lはロード命令、TMはテ
スト・アンダー・マスク命令、BCは条件分岐命令、A
は加算命令である。またBCの分岐条件指示子が“100
0”であるということは、条件コードが“0”である時
にのみ分岐を起こすことを示している。
スト・アンダー・マスク命令、BCは条件分岐命令、A
は加算命令である。またBCの分岐条件指示子が“100
0”であるということは、条件コードが“0”である時
にのみ分岐を起こすことを示している。
【0042】本発明の一実施例において、図3は命令順
序が初めて処理される場合を考える。簡単のため、CH
Tには一つのエントリも登録されていないと仮定する。
まず、アドレスが1004番地のTMが解読されると、
TMは条件コード設定命令であるので、この命令コード
をレジスタ410に記憶する。次に、1008番地のB
Cが解読されると、BCは条件分岐命令であるので、レ
ジスタ410に記憶されているTMの命令コードと分岐
条件指示子“1000”に対応するエントリをCHT424か
ら検索する。CHTには一つのエントリも登録されてい
ないので、分岐予測可能信号102Aはセットされな
い。1008番地のBCが、ALU306で実行され、分岐が
起きることが確定されると、分岐判定信号308がCHT4
24に転送され、TMの命令コードと分岐条件指示子“1
000”に対応するエントリを作成し、履歴情報“分岐
する”を記憶する。
序が初めて処理される場合を考える。簡単のため、CH
Tには一つのエントリも登録されていないと仮定する。
まず、アドレスが1004番地のTMが解読されると、
TMは条件コード設定命令であるので、この命令コード
をレジスタ410に記憶する。次に、1008番地のB
Cが解読されると、BCは条件分岐命令であるので、レ
ジスタ410に記憶されているTMの命令コードと分岐
条件指示子“1000”に対応するエントリをCHT424か
ら検索する。CHTには一つのエントリも登録されてい
ないので、分岐予測可能信号102Aはセットされな
い。1008番地のBCが、ALU306で実行され、分岐が
起きることが確定されると、分岐判定信号308がCHT4
24に転送され、TMの命令コードと分岐条件指示子“1
000”に対応するエントリを作成し、履歴情報“分岐
する”を記憶する。
【0043】1208番地のBCが解読されると、この
時、レジスタ410に記憶されているのは、1204番
地のTMの命令コードであるので、TMの命令コードと
分岐条件指示子“1000”に対応するエントリがCHT4
24から検索される。今回は、1008番地のBCによっ
て作成されたエントリが存在しているので、対応するエ
ントリが見つかり、分岐予測可能信号102Aがセット
され、記憶されている履歴情報“分岐する”を分岐予測
信号104Aに出力する。
時、レジスタ410に記憶されているのは、1204番
地のTMの命令コードであるので、TMの命令コードと
分岐条件指示子“1000”に対応するエントリがCHT4
24から検索される。今回は、1008番地のBCによっ
て作成されたエントリが存在しているので、対応するエ
ントリが見つかり、分岐予測可能信号102Aがセット
され、記憶されている履歴情報“分岐する”を分岐予測
信号104Aに出力する。
【0044】本発明の一実施例は、条件分岐命令が分岐
を起こすか否かの分岐判定は、条件コード設定命令によ
って設定される条件コードと条件分岐命令の分岐条件指
示子との比較によって決定されることに着目し、条件コ
ード設定命令および分岐条件指示子と分岐判定との相関
関係によって分岐予測を行うようにしたものである。
を起こすか否かの分岐判定は、条件コード設定命令によ
って設定される条件コードと条件分岐命令の分岐条件指
示子との比較によって決定されることに着目し、条件コ
ード設定命令および分岐条件指示子と分岐判定との相関
関係によって分岐予測を行うようにしたものである。
【0045】これにより、本発明の一実施例は、条件分
岐命令の命令アドレスを使用することなく分岐予測を行
うことができる。
岐命令の命令アドレスを使用することなく分岐予測を行
うことができる。
【0046】なお、前述において、システム立上げ時に
は、CHTには有効なエントリが登録されていないため
に分岐予測ができないが、条件コード設定命令と分岐条
件指示子との組み合せの総数は小さいため、十分早く分
岐予測可能な状態になるので問題ない。あるいは、シス
テム立上げ時に、どの組み合せの場合で分岐を起こすと
予測するかを設定するようにしてもよい。
は、CHTには有効なエントリが登録されていないため
に分岐予測ができないが、条件コード設定命令と分岐条
件指示子との組み合せの総数は小さいため、十分早く分
岐予測可能な状態になるので問題ない。あるいは、シス
テム立上げ時に、どの組み合せの場合で分岐を起こすと
予測するかを設定するようにしてもよい。
【0047】また、本発明の一実施例において、デコー
ダ402は条件コード設定命令を認識せず、全てのマシ
ンサイクルにおいてレジスタ410に命令コードを設定
するようにしてもよい。これは、条件分岐命令の直前に
条件コード設定命令が実行されることが多いという観察
によるものである。
ダ402は条件コード設定命令を認識せず、全てのマシ
ンサイクルにおいてレジスタ410に命令コードを設定
するようにしてもよい。これは、条件分岐命令の直前に
条件コード設定命令が実行されることが多いという観察
によるものである。
【0048】また、さらに望ましい形態として、CHT
とDHTとを組み合せてもよい。
とDHTとを組み合せてもよい。
【0049】図4は本発明のさらに望ましい一実施例の
ブロック図であり、以下、この図を参照して本発明を説
明する。図4において、100AはCHTによる分岐予
測機構、100BはDHTによる分岐予測機構、610
は二つの分岐予測機構の予測を調停する予測調停回路、
612はOR回路、614はセレクタである。
ブロック図であり、以下、この図を参照して本発明を説
明する。図4において、100AはCHTによる分岐予
測機構、100BはDHTによる分岐予測機構、610
は二つの分岐予測機構の予測を調停する予測調停回路、
612はOR回路、614はセレクタである。
【0050】図4に示す本発明のさらに望ましい一実施
例において、分岐予測の処理は次のように行われる。
例において、分岐予測の処理は次のように行われる。
【0051】まず、命令解読のマシンサイクルが実行さ
れる。
れる。
【0052】命令レジスタ206から命令202がCH
Tによる分岐予測機構100AおよびDHTによる分岐
予測機構100Bに入力され、命令アドレスレジスタ2
08から命令アドレス204がDHTによる分岐予測機
構100Bに入力される。
Tによる分岐予測機構100AおよびDHTによる分岐
予測機構100Bに入力され、命令アドレスレジスタ2
08から命令アドレス204がDHTによる分岐予測機
構100Bに入力される。
【0053】CHTによる分岐予測機構100Aは前述
した処理を行い、分岐予測可能信号102Aと分岐予測
信号104Aとを予測調停回路610へ転送する。同様
に、DHTによる分岐予測機構100Bは前述した処理
を行い、分岐予測可能信号102Bと分岐予測信号10
4Bとを予測調停回路610へ転送する。予測調停回路
610では、二つの分岐予測可能信号102Aおよび1
02Bの論理和をとり、分岐予測可能信号102Cとし
て命令読取り制御部228へ転送するとともに、分岐予
測可能信号102Bがセットされている場合には分岐予
測信号104Bを、そうでない場合には分岐予測信号104
Aを選択し、分岐予測信号104Cとして命令読取り制
御部228へ転送する。
した処理を行い、分岐予測可能信号102Aと分岐予測
信号104Aとを予測調停回路610へ転送する。同様
に、DHTによる分岐予測機構100Bは前述した処理
を行い、分岐予測可能信号102Bと分岐予測信号10
4Bとを予測調停回路610へ転送する。予測調停回路
610では、二つの分岐予測可能信号102Aおよび1
02Bの論理和をとり、分岐予測可能信号102Cとし
て命令読取り制御部228へ転送するとともに、分岐予
測可能信号102Bがセットされている場合には分岐予
測信号104Bを、そうでない場合には分岐予測信号104
Aを選択し、分岐予測信号104Cとして命令読取り制
御部228へ転送する。
【0054】次の命令実行のマシンサイクルでは次の処
理が実行される。
理が実行される。
【0055】ALU306から条件分岐命令が実際に分岐を起
こしたか否かを示す分岐判定信号308がCHTによる
分岐予測機構100AおよびDHTによる分岐予測機構
100Bに入力される。CHTによる分岐予測機構10
0AおよびDHTによる分岐予測機構100Bは、それ
ぞれ、前述した履歴情報の更新処理を行う。
こしたか否かを示す分岐判定信号308がCHTによる
分岐予測機構100AおよびDHTによる分岐予測機構
100Bに入力される。CHTによる分岐予測機構10
0AおよびDHTによる分岐予測機構100Bは、それ
ぞれ、前述した履歴情報の更新処理を行う。
【0056】本発明のさらに望ましい一実施例は、DH
Tによる分岐予測機構100Bが予測可能な場合にはD
HTによる分岐予測を選択し、そうでない場合にはCH
Tによる分岐予測を選択するようにしたものである。
Tによる分岐予測機構100Bが予測可能な場合にはD
HTによる分岐予測を選択し、そうでない場合にはCH
Tによる分岐予測を選択するようにしたものである。
【0057】これにより、本発明のさらに望ましい一実
施例は、DHTによる分岐予測が当たる確率を下げるこ
となく、初めて実行される条件分岐命令に対しても分岐
予測を行うことができる。
施例は、DHTによる分岐予測が当たる確率を下げるこ
となく、初めて実行される条件分岐命令に対しても分岐
予測を行うことができる。
【0058】なお、前述において、予測調停回路610
は、必ずしもDHTによる分岐予測を優先しなくてもよ
く、設計者が決めればよい。例えば、CHTによる分岐
予測およびDHTによる分岐予測の論理積をとってもよ
い。
は、必ずしもDHTによる分岐予測を優先しなくてもよ
く、設計者が決めればよい。例えば、CHTによる分岐
予測およびDHTによる分岐予測の論理積をとってもよ
い。
【0059】
【発明の効果】本発明によれば、初めて実行される条件
分岐命令に対しても分岐予測が可能になり、分岐予測が
当たる確率が向上するため、より高速な分岐命令処理速
度が得られ、システムの性能が向上する。
分岐命令に対しても分岐予測が可能になり、分岐予測が
当たる確率が向上するため、より高速な分岐命令処理速
度が得られ、システムの性能が向上する。
【図1】本発明の一実施例の構成を示すブロック図。
【図2】本発明の一実施例の分岐予測処理手順を示すフ
ローチャート。
ローチャート。
【図3】命令順序の一例を示す説明図。
【図4】本発明のさらに望ましい一実施例を示すブロッ
ク図。
ク図。
【図5】従来技術の一例を示す説明図。
【図6】分岐予測機構を有する情報処理装置の一例を示
すブロック図。
すブロック図。
100A…分岐条件履歴表(CHT)による分岐予測機
構、100B…復号履歴表(DHT)による分岐予測機
構、100C…CHTおよびDHTによる分岐予測機
構、102A…分岐予測可能信号、104A…分岐予測
信号、202…命令、206…命令レジスタ、308…
分岐判定信号、404…分岐条件指示子、406…命令
コード、410…先行命令保存レジスタ、416…CH
T参照キーレジスタ、420…退避レジスタ、424…
CHT。
構、100B…復号履歴表(DHT)による分岐予測機
構、100C…CHTおよびDHTによる分岐予測機
構、102A…分岐予測可能信号、104A…分岐予測
信号、202…命令、206…命令レジスタ、308…
分岐判定信号、404…分岐条件指示子、406…命令
コード、410…先行命令保存レジスタ、416…CH
T参照キーレジスタ、420…退避レジスタ、424…
CHT。
Claims (4)
- 【請求項1】命令を取出す命令取出し手段と、前記命令
取出し手段によって取出された命令を解読する解読手段
と、前記命令解読手段によって解読された命令をパイプ
ライン処理の原理で実行する命令実行手段と、前記命令
解読手段によって解読されるべき命令が分岐命令である
場合に前記分岐命令が分岐を起こすか否かを予測する分
岐予測手段とを含む情報処理装置において、 前記分岐予測手段は、前記分岐命令に先だって実行され
る先行命令を記憶する第1手段と、前記第1手段によっ
て記憶された命令と前記分岐命令の分岐指示子とを入力
とし、前記分岐命令が分岐を起こすか否かの分岐予測信
号を出力する第2手段からなることを特徴とする情報処
理装置。 - 【請求項2】請求項1において、前記命令実行手段は、
前記先行命令の実行において条件コードを設定し、前記
分岐命令の実行において分岐指示子と前記条件コードと
を比較して分岐を起こすか否かを決定する情報処理装置
であって、 前記第1手段は、前記命令解読手段によって解読される
べき命令が条件コードを設定する条件コード設定命令で
あるときに前記条件コード設定命令を記憶する情報処理
装置。 - 【請求項3】請求項1または2において、前記第2手段
は、前記第1手段に記憶された命令と前記分岐命令の分
岐指示子とに対応して前回までの処理における分岐結果
を記憶するための記憶手段を備え、前記記憶手段に記憶
されている履歴情報にもとづいて前記分岐命令が分岐す
るか否かを予測し、前記分岐予測信号を出力する情報処
理装置。 - 【請求項4】請求項1,2または3において、前記分岐
予測手段は、前記分岐命令の命令アドレスを入力として
前記分岐命令が分岐を起こすか否かの第2の分岐予測信
号を出力する第3手段と、前記第2手段によって出力さ
れる第1の分岐予測信号と前記第2の分岐予測信号とを
入力として前記分岐命令が分岐を起こすか否かの分岐予
測信号を出力する第4手段とを備える情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12380793A JPH06332698A (ja) | 1993-05-26 | 1993-05-26 | 情報処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12380793A JPH06332698A (ja) | 1993-05-26 | 1993-05-26 | 情報処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH06332698A true JPH06332698A (ja) | 1994-12-02 |
Family
ID=14869820
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP12380793A Pending JPH06332698A (ja) | 1993-05-26 | 1993-05-26 | 情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH06332698A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5790845A (en) * | 1995-02-24 | 1998-08-04 | Hitachi, Ltd. | System with reservation instruction execution to store branch target address for use upon reaching the branch point |
JP2015122056A (ja) * | 2013-11-22 | 2015-07-02 | 株式会社半導体エネルギー研究所 | 半導体装置 |
-
1993
- 1993-05-26 JP JP12380793A patent/JPH06332698A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5790845A (en) * | 1995-02-24 | 1998-08-04 | Hitachi, Ltd. | System with reservation instruction execution to store branch target address for use upon reaching the branch point |
US5878254A (en) * | 1995-02-24 | 1999-03-02 | Hitachi, Ltd. | Instruction branching method and a processor |
JP2015122056A (ja) * | 2013-11-22 | 2015-07-02 | 株式会社半導体エネルギー研究所 | 半導体装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0021399B1 (en) | A method and a machine for multiple instruction execution | |
US5687360A (en) | Branch predictor using multiple prediction heuristics and a heuristic identifier in the branch instruction | |
US6553488B2 (en) | Method and apparatus for branch prediction using first and second level branch prediction tables | |
KR100395763B1 (ko) | 멀티프로세싱 마이크로프로세서에 적합한 분기 예측기 | |
US5276882A (en) | Subroutine return through branch history table | |
US6647489B1 (en) | Compare branch instruction pairing within a single integer pipeline | |
US5530825A (en) | Data processor with branch target address cache and method of operation | |
US4943908A (en) | Multiple branch analyzer for prefetching cache lines | |
JP3599409B2 (ja) | 分岐予測装置 | |
US6081887A (en) | System for passing an index value with each prediction in forward direction to enable truth predictor to associate truth value with particular branch instruction | |
US5577217A (en) | Method and apparatus for a branch target buffer with shared branch pattern tables for associated branch predictions | |
JP2539974B2 (ja) | 情報処理装置におけるレジスタの読出制御方式 | |
KR100346515B1 (ko) | 수퍼파이프라인된수퍼스칼라프로세서를위한임시파이프라인레지스터파일 | |
JP2006520964A (ja) | 分岐ターゲットに基づいて分岐予測をするための方法および装置 | |
US4739470A (en) | Data processing system | |
EP0094535A2 (en) | Pipe-line data processing system | |
KR100317240B1 (ko) | 분기 예측 정확도 히스토리를 이용한 분기 예측기 | |
JPH08320788A (ja) | パイプライン方式プロセッサ | |
JPH03286332A (ja) | デジタルデータ処理装置 | |
JP3725547B2 (ja) | 限定ラン分岐予測 | |
KR100431975B1 (ko) | 분기에의한중단이없는파이프라인방식의마이크로프로세서를위한다중명령디스패치시스템 | |
JP2580396B2 (ja) | パイプラインにおける分岐命令制御方式 | |
US6237087B1 (en) | Method and apparatus for speeding sequential access of a set-associative cache | |
US20050027921A1 (en) | Information processing apparatus capable of prefetching instructions | |
JPH06332698A (ja) | 情報処理装置 |