JPH0876999A - 分岐予測装置 - Google Patents
分岐予測装置Info
- Publication number
- JPH0876999A JPH0876999A JP20950194A JP20950194A JPH0876999A JP H0876999 A JPH0876999 A JP H0876999A JP 20950194 A JP20950194 A JP 20950194A JP 20950194 A JP20950194 A JP 20950194A JP H0876999 A JPH0876999 A JP H0876999A
- Authority
- JP
- Japan
- Prior art keywords
- branch
- address
- instruction
- holding circuit
- entry
- 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
Links
Landscapes
- Advance Control (AREA)
Abstract
(57)【要約】
【目的】 分岐予測処理の高速化を図ると共に、分岐制
御における不正動作を防止する。 【構成】 分岐予測テーブルへの分岐先予測アドレスの
登録を、分岐命令のM命令前の命令アドレスをキーとし
て行う。分岐生起時には、プリフェッチ命令カウンタ入
力選択制御回路16によって、分岐先予測アドレス有効
レジスタ6を強制的にリセットする。これにより、分岐
先予測アドレスレジスタ7の分岐先予測アドレスは無効
化され、分岐後M命令分の分岐予測が禁止される。
御における不正動作を防止する。 【構成】 分岐予測テーブルへの分岐先予測アドレスの
登録を、分岐命令のM命令前の命令アドレスをキーとし
て行う。分岐生起時には、プリフェッチ命令カウンタ入
力選択制御回路16によって、分岐先予測アドレス有効
レジスタ6を強制的にリセットする。これにより、分岐
先予測アドレスレジスタ7の分岐先予測アドレスは無効
化され、分岐後M命令分の分岐予測が禁止される。
Description
【0001】
【産業上の利用分野】本発明は、データ処理装置におけ
る分岐命令の分岐先を予測する分岐予測装置に関する。
る分岐命令の分岐先を予測する分岐予測装置に関する。
【0002】
【従来の技術】従来この種の技術では、分岐命令自身の
アドレスと分岐が生起した場合の分岐先予測アドレスと
を対にして分岐予測テーブルに記憶しておくことによ
り、フェッチした命令のアドレスをキーとして上記テー
ブルを索引して分岐先予測アドレスを得ている。この従
来の技術では、プロセッサの性能向上のために、動作周
波数の改善及び登録可能な分岐予測テーブルのエントリ
の増加を図る場合には、以下の問題が発生する。すなわ
ち、命令フェッチアドレスを保持するレジスタにおい
て、分岐命令の命令アドレスが確定してから、分岐予測
テーブルを索引して得た分岐先予測アドレスが確定する
までの時間が、分岐生起予測成功時の実効的な分岐命令
処理時間となる。そして、この処理に要する回路的な遅
延時間が分岐命令の処理を高速化する上での障壁とな
る。
アドレスと分岐が生起した場合の分岐先予測アドレスと
を対にして分岐予測テーブルに記憶しておくことによ
り、フェッチした命令のアドレスをキーとして上記テー
ブルを索引して分岐先予測アドレスを得ている。この従
来の技術では、プロセッサの性能向上のために、動作周
波数の改善及び登録可能な分岐予測テーブルのエントリ
の増加を図る場合には、以下の問題が発生する。すなわ
ち、命令フェッチアドレスを保持するレジスタにおい
て、分岐命令の命令アドレスが確定してから、分岐予測
テーブルを索引して得た分岐先予測アドレスが確定する
までの時間が、分岐生起予測成功時の実効的な分岐命令
処理時間となる。そして、この処理に要する回路的な遅
延時間が分岐命令の処理を高速化する上での障壁とな
る。
【0003】この問題を解決するために、分岐予測テー
ブルにキーとして記憶するアドレスとして、分岐命令の
命令アドレスを使用するのではなく、分岐命令の直前の
命令の命令アドレスを使用する技術が提案されている。
たとえば、特開昭63−1124135号公報には、分
岐命令の直前の命令の命令アドレスと分岐先アドレスと
を分岐予測テーブルに記憶しておき、分岐命令の直前の
アドレスで分岐予測テーブルの索引を行って分岐予測を
高速に行う技術が記載されている。
ブルにキーとして記憶するアドレスとして、分岐命令の
命令アドレスを使用するのではなく、分岐命令の直前の
命令の命令アドレスを使用する技術が提案されている。
たとえば、特開昭63−1124135号公報には、分
岐命令の直前の命令の命令アドレスと分岐先アドレスと
を分岐予測テーブルに記憶しておき、分岐命令の直前の
アドレスで分岐予測テーブルの索引を行って分岐予測を
高速に行う技術が記載されている。
【0004】
【発明が解決しようとする課題】しかしながら、特開昭
63−1124135号公報の従来技術では、以下のよ
うな問題がある。図8を参照すると、分岐予測テーブル
は、分岐命令のM命令前の命令アドレスをキーとして記
憶しており、分岐予測の方向として分岐の生起を予測す
る「T」または分岐が生起しない旨を予測する「N」を
記憶するフィールドと、分岐先予測アドレスを記憶する
フィールドとを含んでいる。ここでは、過去の分岐状況
として、アドレス「AAA」の分岐命令1から命令アド
レス「BBB」に分岐し、さらにアドレス「BBB+
1」の分岐命令2から命令アドレス「CCC」に分岐す
るシーケンスが事前に実行されていたと仮定する。この
場合、分岐予測テーブルに、分岐命令の命令アドレスか
らM命令分前に実行していた命令の命令アドレスをキー
としてアドレスの登録を行い、アドレス「AAA−M」
をキーとして分岐先予測アドレス「BBB」が登録さ
れ、アドレス「AAA−M+2」をキーとして分岐先予
測アドレス「CCC」が登録されている状態となる。
63−1124135号公報の従来技術では、以下のよ
うな問題がある。図8を参照すると、分岐予測テーブル
は、分岐命令のM命令前の命令アドレスをキーとして記
憶しており、分岐予測の方向として分岐の生起を予測す
る「T」または分岐が生起しない旨を予測する「N」を
記憶するフィールドと、分岐先予測アドレスを記憶する
フィールドとを含んでいる。ここでは、過去の分岐状況
として、アドレス「AAA」の分岐命令1から命令アド
レス「BBB」に分岐し、さらにアドレス「BBB+
1」の分岐命令2から命令アドレス「CCC」に分岐す
るシーケンスが事前に実行されていたと仮定する。この
場合、分岐予測テーブルに、分岐命令の命令アドレスか
らM命令分前に実行していた命令の命令アドレスをキー
としてアドレスの登録を行い、アドレス「AAA−M」
をキーとして分岐先予測アドレス「BBB」が登録さ
れ、アドレス「AAA−M+2」をキーとして分岐先予
測アドレス「CCC」が登録されている状態となる。
【0005】この状態において、分岐命令1を再度実行
した結果、実際の分岐先アドレスが「DDD」となる
と、アドレス「AAA−M」をキーとして登録されてい
た分岐先予測アドレスは「BBB」から「DDD」に変
更される。このとき問題となるのは、アドレス「AAA
−M+2」をキーとして登録されている分岐先予測アド
レス「CCC」である。変更後の実行シーケンスにおい
ては、アドレス「AAA−M+2」をキーとして得られ
るのはアドレス「DDD+1」の命令11に対応する分
岐先予測アドレスである。しかし、命令11が分岐命令
であるとは限らない。命令11が分岐命令でないのにも
拘わらず分岐先予測アドレスに分岐させてしまうと、不
正動作に陥るおそれが生ずる。また、例え命令11が分
岐命令であったとしてもその分岐先が「CCC」である
とは限らず、この場合にも何らかのリカバリ処理が必要
となる。
した結果、実際の分岐先アドレスが「DDD」となる
と、アドレス「AAA−M」をキーとして登録されてい
た分岐先予測アドレスは「BBB」から「DDD」に変
更される。このとき問題となるのは、アドレス「AAA
−M+2」をキーとして登録されている分岐先予測アド
レス「CCC」である。変更後の実行シーケンスにおい
ては、アドレス「AAA−M+2」をキーとして得られ
るのはアドレス「DDD+1」の命令11に対応する分
岐先予測アドレスである。しかし、命令11が分岐命令
であるとは限らない。命令11が分岐命令でないのにも
拘わらず分岐先予測アドレスに分岐させてしまうと、不
正動作に陥るおそれが生ずる。また、例え命令11が分
岐命令であったとしてもその分岐先が「CCC」である
とは限らず、この場合にも何らかのリカバリ処理が必要
となる。
【0006】従って、特開昭63−1124135号公
報の従来技術では、上述のような場合に正常な動作が保
証できず、また分岐制御の複雑化もしくは性能の低下を
招いていた。
報の従来技術では、上述のような場合に正常な動作が保
証できず、また分岐制御の複雑化もしくは性能の低下を
招いていた。
【0007】本発明の目的は、上述の問題を解決して、
分岐予測処理の高速化を図ると共に、分岐制御における
不正動作を防止することにある。
分岐予測処理の高速化を図ると共に、分岐制御における
不正動作を防止することにある。
【0008】また、分岐先を予測するタイミングを柔軟
に設定できるようにすることにより、システムの仕様に
応じた構成を採用できるようにすることにある。
に設定できるようにすることにより、システムの仕様に
応じた構成を採用できるようにすることにある。
【0009】
【課題を解決するための手段】上記課題を解決するため
に本発明の分岐予測装置は、分岐命令の分岐履歴をこの
分岐命令のM(Mは正の整数)個前の命令と関連付けて
保持する分岐履歴保持手段と、この分岐履歴保持手段を
検索して次に分岐し得るアドレスを予測する分岐予測ア
ドレス検索手段と、この分岐予測アドレス検索手段によ
って検索された分岐予測に関する情報を保持する分岐予
測情報保持手段と、直前に実行したM個の命令中に分岐
の生起した分岐命令が存在する場合には前記分岐予測情
報保持手段に保持された分岐予測結果を使用しないよう
に制御する分岐予測制御手段とを含む。
に本発明の分岐予測装置は、分岐命令の分岐履歴をこの
分岐命令のM(Mは正の整数)個前の命令と関連付けて
保持する分岐履歴保持手段と、この分岐履歴保持手段を
検索して次に分岐し得るアドレスを予測する分岐予測ア
ドレス検索手段と、この分岐予測アドレス検索手段によ
って検索された分岐予測に関する情報を保持する分岐予
測情報保持手段と、直前に実行したM個の命令中に分岐
の生起した分岐命令が存在する場合には前記分岐予測情
報保持手段に保持された分岐予測結果を使用しないよう
に制御する分岐予測制御手段とを含む。
【0010】また、本発明の分岐予測装置において、前
記分岐履歴保持手段は、少なくとも一つのエントリを有
し各エントリに分岐命令の前回分岐したアドレスを保持
する分岐履歴アドレス保持回路と、この分岐履歴アドレ
ス保持回路の各エントリに対応して分岐命令の直前の命
令の命令アドレスを保持する命令アドレス保持回路と、
この命令アドレス保持回路の各エントリに対応してその
エントリの内容が有効なものであるか否かを保持するエ
ントリ有効性保持回路と、前記分岐履歴アドレス保持回
路の各エントリに対応して前記分岐命令により前回分岐
が生起したか否かを保持する分岐生起保持回路とを有
し、前記分岐予測アドレス検索手段は、分岐命令の前記
直前の命令の命令アドレスによって前記命令アドレス保
持回路を検索するアドレス比較器と、このアドレス比較
器における比較結果によって前記エントリ有効性保持回
路と前記分岐履歴アドレス保持回路と前記分岐生起保持
回路とに保持された情報を選択する選択器とを有し、前
記分岐予測情報保持手段は、前記選択器により選択され
た前記エントリ有効性保持回路からの情報を保持する分
岐予測有効性保持回路と、前記選択器により選択された
前記分岐履歴アドレス保持回路からの情報を保持する分
岐予測アドレス保持回路と、前記分岐生起保持回路から
の情報を保持する分岐予測生起保持回路とを有し、前記
分岐予測制御手段は、前記分岐予測有効性保持回路が有
効である旨を保持し、かつ、前記分岐予測生起保持回路
が生起である旨を保持している場合には、直前に実行し
た命令が分岐の生起した分岐命令であると判断して前記
分岐予測アドレス保持回路に保持されたアドレスを分岐
予測結果として使用しないように制御する。
記分岐履歴保持手段は、少なくとも一つのエントリを有
し各エントリに分岐命令の前回分岐したアドレスを保持
する分岐履歴アドレス保持回路と、この分岐履歴アドレ
ス保持回路の各エントリに対応して分岐命令の直前の命
令の命令アドレスを保持する命令アドレス保持回路と、
この命令アドレス保持回路の各エントリに対応してその
エントリの内容が有効なものであるか否かを保持するエ
ントリ有効性保持回路と、前記分岐履歴アドレス保持回
路の各エントリに対応して前記分岐命令により前回分岐
が生起したか否かを保持する分岐生起保持回路とを有
し、前記分岐予測アドレス検索手段は、分岐命令の前記
直前の命令の命令アドレスによって前記命令アドレス保
持回路を検索するアドレス比較器と、このアドレス比較
器における比較結果によって前記エントリ有効性保持回
路と前記分岐履歴アドレス保持回路と前記分岐生起保持
回路とに保持された情報を選択する選択器とを有し、前
記分岐予測情報保持手段は、前記選択器により選択され
た前記エントリ有効性保持回路からの情報を保持する分
岐予測有効性保持回路と、前記選択器により選択された
前記分岐履歴アドレス保持回路からの情報を保持する分
岐予測アドレス保持回路と、前記分岐生起保持回路から
の情報を保持する分岐予測生起保持回路とを有し、前記
分岐予測制御手段は、前記分岐予測有効性保持回路が有
効である旨を保持し、かつ、前記分岐予測生起保持回路
が生起である旨を保持している場合には、直前に実行し
た命令が分岐の生起した分岐命令であると判断して前記
分岐予測アドレス保持回路に保持されたアドレスを分岐
予測結果として使用しないように制御する。
【0011】また、本発明の他の分岐予測装置におい
て、前記分岐履歴保持手段は、少なくとも一つのエント
リを有し各エントリに分岐命令の前回分岐したアドレス
を保持する分岐履歴アドレス保持回路と、この分岐履歴
アドレス保持回路の各エントリに対応して分岐命令の直
前の命令の命令アドレスを保持する命令アドレス保持回
路と、この命令アドレス保持回路の各エントリに対応し
てそのエントリの内容が有効なものであるか否かを保持
するエントリ有効性保持回路とを有し、前記分岐予測ア
ドレス検索手段は、分岐命令の前記直前の命令の命令ア
ドレスによって前記命令アドレス保持回路を検索するア
ドレス比較器と、このアドレス比較器における比較結果
によって前記エントリ有効性保持回路と前記分岐履歴ア
ドレス保持回路とに保持された情報を選択する選択器と
を有し、前記分岐予測情報保持手段は、前記選択器によ
り選択された前記エントリ有効性保持回路からの情報を
保持する分岐予測有効性保持回路と、前記選択器により
選択された前記分岐履歴アドレス保持回路からの情報を
保持する分岐予測アドレス保持回路とを有し、前記分岐
予測制御手段は、前記分岐予測有効性保持回路が有効で
ある旨を保持している場合には、直前に実行した命令が
分岐の生起した分岐命令であると判断して前記分岐予測
アドレス保持回路に保持されたアドレスを分岐予測結果
として使用しないように制御する。
て、前記分岐履歴保持手段は、少なくとも一つのエント
リを有し各エントリに分岐命令の前回分岐したアドレス
を保持する分岐履歴アドレス保持回路と、この分岐履歴
アドレス保持回路の各エントリに対応して分岐命令の直
前の命令の命令アドレスを保持する命令アドレス保持回
路と、この命令アドレス保持回路の各エントリに対応し
てそのエントリの内容が有効なものであるか否かを保持
するエントリ有効性保持回路とを有し、前記分岐予測ア
ドレス検索手段は、分岐命令の前記直前の命令の命令ア
ドレスによって前記命令アドレス保持回路を検索するア
ドレス比較器と、このアドレス比較器における比較結果
によって前記エントリ有効性保持回路と前記分岐履歴ア
ドレス保持回路とに保持された情報を選択する選択器と
を有し、前記分岐予測情報保持手段は、前記選択器によ
り選択された前記エントリ有効性保持回路からの情報を
保持する分岐予測有効性保持回路と、前記選択器により
選択された前記分岐履歴アドレス保持回路からの情報を
保持する分岐予測アドレス保持回路とを有し、前記分岐
予測制御手段は、前記分岐予測有効性保持回路が有効で
ある旨を保持している場合には、直前に実行した命令が
分岐の生起した分岐命令であると判断して前記分岐予測
アドレス保持回路に保持されたアドレスを分岐予測結果
として使用しないように制御する。
【0012】また、本発明の他の分岐予測装置におい
て、前記分岐履歴保持手段は、少なくとも一つのエント
リを有し各エントリに分岐命令の前回分岐したアドレス
を保持する分岐履歴アドレス保持回路と、この分岐履歴
アドレス保持回路の各エントリに対応して分岐命令の前
記M個前の命令の命令アドレスを保持する命令アドレス
保持回路と、この命令アドレス保持回路の各エントリに
対応してそのエントリの内容が有効なものであるか否か
を保持するエントリ有効性保持回路と、前記分岐履歴ア
ドレス保持回路の各エントリに対応して前記分岐命令に
より前回分岐が生起したか否かを保持する分岐生起保持
回路とを有し、前記分岐予測アドレス検索手段は、分岐
命令の前記M個前の命令の命令アドレスによって前記命
令アドレス保持回路を検索するアドレス比較器と、この
アドレス比較器における比較結果によって前記エントリ
有効性保持回路と前記分岐履歴アドレス保持回路と前記
分岐生起保持回路とに保持された情報を選択する選択器
とを有し、前記分岐予測情報保持手段は、前記選択器に
より選択された前記エントリ有効性保持回路からの情報
を保持する分岐予測有効性保持回路と、前記選択器によ
り選択された前記分岐履歴アドレス保持回路からの情報
を保持する分岐予測アドレス保持回路と、前記分岐生起
保持回路からの情報を保持する分岐予測生起保持回路と
を有し、前記分岐予測制御手段は、分岐生起後(M−
1)命令分を計数する命令数カウンタをさらに有し、こ
の命令数カウンタが(M−1)命令分を計数している途
中である場合、もしくは、前記分岐予測有効性保持回路
が有効である旨を保持し、かつ、前記分岐予測生起保持
回路が生起である旨を保持している場合には、直前に実
行したM個の命令中に分岐の生起した分岐命令が存在す
ると判断して前記分岐予測アドレス保持回路に保持され
たアドレスを分岐予測結果として使用しないように制御
する。
て、前記分岐履歴保持手段は、少なくとも一つのエント
リを有し各エントリに分岐命令の前回分岐したアドレス
を保持する分岐履歴アドレス保持回路と、この分岐履歴
アドレス保持回路の各エントリに対応して分岐命令の前
記M個前の命令の命令アドレスを保持する命令アドレス
保持回路と、この命令アドレス保持回路の各エントリに
対応してそのエントリの内容が有効なものであるか否か
を保持するエントリ有効性保持回路と、前記分岐履歴ア
ドレス保持回路の各エントリに対応して前記分岐命令に
より前回分岐が生起したか否かを保持する分岐生起保持
回路とを有し、前記分岐予測アドレス検索手段は、分岐
命令の前記M個前の命令の命令アドレスによって前記命
令アドレス保持回路を検索するアドレス比較器と、この
アドレス比較器における比較結果によって前記エントリ
有効性保持回路と前記分岐履歴アドレス保持回路と前記
分岐生起保持回路とに保持された情報を選択する選択器
とを有し、前記分岐予測情報保持手段は、前記選択器に
より選択された前記エントリ有効性保持回路からの情報
を保持する分岐予測有効性保持回路と、前記選択器によ
り選択された前記分岐履歴アドレス保持回路からの情報
を保持する分岐予測アドレス保持回路と、前記分岐生起
保持回路からの情報を保持する分岐予測生起保持回路と
を有し、前記分岐予測制御手段は、分岐生起後(M−
1)命令分を計数する命令数カウンタをさらに有し、こ
の命令数カウンタが(M−1)命令分を計数している途
中である場合、もしくは、前記分岐予測有効性保持回路
が有効である旨を保持し、かつ、前記分岐予測生起保持
回路が生起である旨を保持している場合には、直前に実
行したM個の命令中に分岐の生起した分岐命令が存在す
ると判断して前記分岐予測アドレス保持回路に保持され
たアドレスを分岐予測結果として使用しないように制御
する。
【0013】また、本発明の他の分岐予測装置におい
て、前記分岐履歴保持手段は、少なくとも一つのエント
リを有し各エントリに分岐命令の前回分岐したアドレス
を保持する分岐履歴アドレス保持回路と、この分岐履歴
アドレス保持回路の各エントリに対応して分岐命令の前
記M個前の命令の命令アドレスを保持する命令アドレス
保持回路と、この命令アドレス保持回路の各エントリに
対応してそのエントリの内容が有効なものであるか否か
を保持するエントリ有効性保持回路とを有し、前記分岐
予測アドレス検索手段は、分岐命令の前記M個前の命令
の命令アドレスによって前記命令アドレス保持回路を検
索するアドレス比較器と、このアドレス比較器における
比較結果によって前記エントリ有効性保持回路と前記分
岐履歴アドレス保持回路とに保持された情報を選択する
選択器とを有し、前記分岐予測情報保持手段は、前記選
択器により選択された前記エントリ有効性保持回路から
の情報を保持する分岐予測有効性保持回路と、前記選択
器により選択された前記分岐履歴アドレス保持回路から
の情報を保持する分岐予測アドレス保持回路とを有し、
前記分岐予測制御手段は、分岐生起後(M−1)命令分
を計数する命令数カウンタをさらに有し、この命令数カ
ウンタが(M−1)命令分を計数している途中である場
合、もしくは、前記分岐予測有効性保持回路が有効であ
る旨を保持している場合には、直前に実行したM個の命
令中に分岐の生起した分岐命令が存在すると判断して前
記分岐予測アドレス保持回路に保持されたアドレスを分
岐予測結果として使用しないように制御する。
て、前記分岐履歴保持手段は、少なくとも一つのエント
リを有し各エントリに分岐命令の前回分岐したアドレス
を保持する分岐履歴アドレス保持回路と、この分岐履歴
アドレス保持回路の各エントリに対応して分岐命令の前
記M個前の命令の命令アドレスを保持する命令アドレス
保持回路と、この命令アドレス保持回路の各エントリに
対応してそのエントリの内容が有効なものであるか否か
を保持するエントリ有効性保持回路とを有し、前記分岐
予測アドレス検索手段は、分岐命令の前記M個前の命令
の命令アドレスによって前記命令アドレス保持回路を検
索するアドレス比較器と、このアドレス比較器における
比較結果によって前記エントリ有効性保持回路と前記分
岐履歴アドレス保持回路とに保持された情報を選択する
選択器とを有し、前記分岐予測情報保持手段は、前記選
択器により選択された前記エントリ有効性保持回路から
の情報を保持する分岐予測有効性保持回路と、前記選択
器により選択された前記分岐履歴アドレス保持回路から
の情報を保持する分岐予測アドレス保持回路とを有し、
前記分岐予測制御手段は、分岐生起後(M−1)命令分
を計数する命令数カウンタをさらに有し、この命令数カ
ウンタが(M−1)命令分を計数している途中である場
合、もしくは、前記分岐予測有効性保持回路が有効であ
る旨を保持している場合には、直前に実行したM個の命
令中に分岐の生起した分岐命令が存在すると判断して前
記分岐予測アドレス保持回路に保持されたアドレスを分
岐予測結果として使用しないように制御する。
【0014】また、本発明の他の分岐予測装置におい
て、前記分岐予測制御手段は、分岐予測が誤った場合に
も分岐が生起したものとみなして前記分岐予測アドレス
保持回路に保持されたアドレスを分岐予測結果として使
用しないように制御する。
て、前記分岐予測制御手段は、分岐予測が誤った場合に
も分岐が生起したものとみなして前記分岐予測アドレス
保持回路に保持されたアドレスを分岐予測結果として使
用しないように制御する。
【0015】また、本発明の他の分岐予測装置におい
て、前記前記分岐履歴保持手段は、分岐命令に対する分
岐予測が誤った場合で、かつ、その分岐命令の直前に実
行したM個の命令中に分岐の生起した他の分岐命令が存
在しない場合には、前記分岐予測が誤った分岐命令の命
令アドレスよりもM命令前の命令の命令アドレス前記を
命令アドレス保持回路に保持すると共にその対応するエ
ントリについて前記分岐履歴アドレス保持回路に最も最
近に分岐した際の分岐先命令アドレスを保持する。
て、前記前記分岐履歴保持手段は、分岐命令に対する分
岐予測が誤った場合で、かつ、その分岐命令の直前に実
行したM個の命令中に分岐の生起した他の分岐命令が存
在しない場合には、前記分岐予測が誤った分岐命令の命
令アドレスよりもM命令前の命令の命令アドレス前記を
命令アドレス保持回路に保持すると共にその対応するエ
ントリについて前記分岐履歴アドレス保持回路に最も最
近に分岐した際の分岐先命令アドレスを保持する。
【0016】
【実施例】次に本発明の分岐予測装置の第一の実施例に
ついて図面を参照して詳細に説明する。
ついて図面を参照して詳細に説明する。
【0017】図1を参照すると、本発明の対象とするデ
ータ処理装置は、パイプライン動作する処理装置18
と、命令キャッシュ17を有している。命令キャッシュ
17は、プリフェッチ命令カウンタ1の値に基づいてア
クセスされ、命令キャッシュロードデータ19の書込
み、または、命令レジスタ3への読出しが行われる。プ
リフェッチ命令カウンタ1の値はフェッチ命令カウンタ
2に保持され、命令レジスタ3の命令と共に処理装置1
8に与えられる。命令レジスタ3は有効な命令語を含ん
でいるか否かを表すバリッドビットをも保持している。
処理装置18は、各種演算命令を実行する他、分岐命令
の実行も行う。この処理装置18の分岐命令の実行の際
には、分岐命令の分岐が生起したか否か、もしくは分岐
予測が成功したか否かが判断され、分岐命令の実行結果
としての分岐先アドレスを生成する。分岐予測失敗の旨
は信号線38により、分岐先アドレスは信号線23によ
り、出力される。また、処理装置18は必要に応じてホ
ールド信号を信号線37により出力する。
ータ処理装置は、パイプライン動作する処理装置18
と、命令キャッシュ17を有している。命令キャッシュ
17は、プリフェッチ命令カウンタ1の値に基づいてア
クセスされ、命令キャッシュロードデータ19の書込
み、または、命令レジスタ3への読出しが行われる。プ
リフェッチ命令カウンタ1の値はフェッチ命令カウンタ
2に保持され、命令レジスタ3の命令と共に処理装置1
8に与えられる。命令レジスタ3は有効な命令語を含ん
でいるか否かを表すバリッドビットをも保持している。
処理装置18は、各種演算命令を実行する他、分岐命令
の実行も行う。この処理装置18の分岐命令の実行の際
には、分岐命令の分岐が生起したか否か、もしくは分岐
予測が成功したか否かが判断され、分岐命令の実行結果
としての分岐先アドレスを生成する。分岐予測失敗の旨
は信号線38により、分岐先アドレスは信号線23によ
り、出力される。また、処理装置18は必要に応じてホ
ールド信号を信号線37により出力する。
【0018】一方、分岐予測テーブルは、それぞれNエ
ントリからなる比較アドレスレジスタ群4及び分岐先予
測アドレスレジスタ群5により構成され、分岐命令自身
のアドレスを比較アドレスとして比較アドレスレジスタ
群4に、分岐が生起した場合の分岐先予測アドレスを分
岐先予測アドレスレジスタ群5に、それぞれ対応するア
ドレス同士が対になるように記憶している。比較アドレ
スレジスタ群4は、各エントリに有効な命令語を含んで
いるか否かを表すバリッドビットフィールドを含んでい
る。また、分岐先予測アドレスレジスタ群5は、分岐予
測の方向として分岐の生起を予測する「T」または分岐
が生起しない旨を予測する「N」を記憶するT/Nフィ
ールドを含んでいる。分岐予測テーブルへの新規登録時
には、登録活性化信号20がデコーダ9を介して送ら
れ、登録アドレス21及び分岐先予測アドレス22がそ
れぞれ比較アドレスレジスタ群4及び分岐先予測アドレ
スレジスタ群5の対応するエントリに格納される。
ントリからなる比較アドレスレジスタ群4及び分岐先予
測アドレスレジスタ群5により構成され、分岐命令自身
のアドレスを比較アドレスとして比較アドレスレジスタ
群4に、分岐が生起した場合の分岐先予測アドレスを分
岐先予測アドレスレジスタ群5に、それぞれ対応するア
ドレス同士が対になるように記憶している。比較アドレ
スレジスタ群4は、各エントリに有効な命令語を含んで
いるか否かを表すバリッドビットフィールドを含んでい
る。また、分岐先予測アドレスレジスタ群5は、分岐予
測の方向として分岐の生起を予測する「T」または分岐
が生起しない旨を予測する「N」を記憶するT/Nフィ
ールドを含んでいる。分岐予測テーブルへの新規登録時
には、登録活性化信号20がデコーダ9を介して送ら
れ、登録アドレス21及び分岐先予測アドレス22がそ
れぞれ比較アドレスレジスタ群4及び分岐先予測アドレ
スレジスタ群5の対応するエントリに格納される。
【0019】比較器11は、分岐予測テーブルの比較ア
ドレスレジスタ群4の各エントリとプリフェッチ命令カ
ウンタ1の値との一致比較を行う回路であり、その比較
結果は分岐予測テーブル出力選択制御回路14に送られ
る。これにより登録アドレスによる分岐予測テーブルの
索引が行われる。
ドレスレジスタ群4の各エントリとプリフェッチ命令カ
ウンタ1の値との一致比較を行う回路であり、その比較
結果は分岐予測テーブル出力選択制御回路14に送られ
る。これにより登録アドレスによる分岐予測テーブルの
索引が行われる。
【0020】分岐予測テーブル出力選択制御回路14
は、比較器11の比較結果28と、処理装置18からの
ホールド信号37とを入力として、セレクタ12および
13の制御信号39と、分岐先予測アドレス有効レジス
タ6のマスク信号41とを生成する。
は、比較器11の比較結果28と、処理装置18からの
ホールド信号37とを入力として、セレクタ12および
13の制御信号39と、分岐先予測アドレス有効レジス
タ6のマスク信号41とを生成する。
【0021】図2を参照すると、処理装置18によるホ
ールド指示37があった場合、すなわちホールド信号3
7が「1」である場合には、分岐予測テーブル出力選択
制御回路14によって、分岐先予測アドレス有効レジス
タ6及び分岐先予測アドレスレジスタ7がそれぞれ現在
の状態を維持するようにセレクタ12及び13の制御が
なされる。また、ホールド指示37がない場合には比較
器11の比較結果28で一致が検出されたエントリをセ
レクタ12及び13で選択する。ホールド指示37がな
く比較器11の比較結果28で一致が検出されなかった
場合には、マスク信号41が「0」となり、アンドゲー
ト15により分岐先予測アドレス有効レジスタ6が
「0」、すなわち無効状態とされる。なお、図中、
「×」はドントケア、すなわちどのような値でもかまわ
ないことを意味する。
ールド指示37があった場合、すなわちホールド信号3
7が「1」である場合には、分岐予測テーブル出力選択
制御回路14によって、分岐先予測アドレス有効レジス
タ6及び分岐先予測アドレスレジスタ7がそれぞれ現在
の状態を維持するようにセレクタ12及び13の制御が
なされる。また、ホールド指示37がない場合には比較
器11の比較結果28で一致が検出されたエントリをセ
レクタ12及び13で選択する。ホールド指示37がな
く比較器11の比較結果28で一致が検出されなかった
場合には、マスク信号41が「0」となり、アンドゲー
ト15により分岐先予測アドレス有効レジスタ6が
「0」、すなわち無効状態とされる。なお、図中、
「×」はドントケア、すなわちどのような値でもかまわ
ないことを意味する。
【0022】プリフェッチ命令カウンタ入力選択制御回
路(以下、「PIC選択制御回路」という)16は、命
令レジスタ3の有効ビットフィールド出力信号36と、
分岐先予測アドレス有効レジスタ6の出力信号30と、
分岐先予測アドレスレジスタ7の分岐予測方向フィール
ドの出力信号40と、処理装置18からのホールド指示
信号37と、処理装置18からの分岐予測失敗信号38
とを入力として、PIC入力セレクタ10への制御信号
32と、分岐先予測アドレス有効レジスタ6のマスク信
号42とを生成する。
路(以下、「PIC選択制御回路」という)16は、命
令レジスタ3の有効ビットフィールド出力信号36と、
分岐先予測アドレス有効レジスタ6の出力信号30と、
分岐先予測アドレスレジスタ7の分岐予測方向フィール
ドの出力信号40と、処理装置18からのホールド指示
信号37と、処理装置18からの分岐予測失敗信号38
とを入力として、PIC入力セレクタ10への制御信号
32と、分岐先予測アドレス有効レジスタ6のマスク信
号42とを生成する。
【0023】図3を参照すると、PIC選択制御回路1
6は、分岐予測失敗時にはリカバリアドレス23を、ホ
ールド時には現プリフェッチアドレス25を、予測可能
時には予測アドレス26を、それ以外の場合には次の命
令アドレス24を、それぞれPIC1にセットするよう
にセレクタ10を制御する。そして、上記においてリカ
バリアドレス23または予測アドレス26を選択した場
合には、PIC選択制御回路16は、マスク信号42を
「0」にすることによって分岐先予測アドレス有効レジ
スタ6を無効状態とする。すなわち、リカバリアドレス
23または予測アドレス26が選択された場合というの
は、命令のシーケンスが連続しなくなる場合であり、こ
の場合には分岐後M命令分については分岐先予測アドレ
スを得ることができなくなる。但し、この第一の実施例
ではM=1と仮定している。
6は、分岐予測失敗時にはリカバリアドレス23を、ホ
ールド時には現プリフェッチアドレス25を、予測可能
時には予測アドレス26を、それ以外の場合には次の命
令アドレス24を、それぞれPIC1にセットするよう
にセレクタ10を制御する。そして、上記においてリカ
バリアドレス23または予測アドレス26を選択した場
合には、PIC選択制御回路16は、マスク信号42を
「0」にすることによって分岐先予測アドレス有効レジ
スタ6を無効状態とする。すなわち、リカバリアドレス
23または予測アドレス26が選択された場合というの
は、命令のシーケンスが連続しなくなる場合であり、こ
の場合には分岐後M命令分については分岐先予測アドレ
スを得ることができなくなる。但し、この第一の実施例
ではM=1と仮定している。
【0024】なお、予測失敗信号38が「1」とは分岐
予測失敗の旨を、ホールド信号37が「1」とは処理装
置18においてホールドが発生した旨を、予測有効信号
30が「1」とは分岐先予測アドレスレジスタ7の分岐
先予測アドレスが有効である旨を、分岐生起予測信号4
0が「1」とは分岐が生起する方向を予測する旨を、命
令有効信号36が「1」とは命令レジスタ3の命令語が
有効である旨をそれぞれ意味する。また、命令語は全て
4バイトであるものと仮定している。
予測失敗の旨を、ホールド信号37が「1」とは処理装
置18においてホールドが発生した旨を、予測有効信号
30が「1」とは分岐先予測アドレスレジスタ7の分岐
先予測アドレスが有効である旨を、分岐生起予測信号4
0が「1」とは分岐が生起する方向を予測する旨を、命
令有効信号36が「1」とは命令レジスタ3の命令語が
有効である旨をそれぞれ意味する。また、命令語は全て
4バイトであるものと仮定している。
【0025】次に本発明の上記第一の実施例の動作につ
いて図面を参照して説明する。
いて図面を参照して説明する。
【0026】図4を参照すると、本実施例ではM=1と
仮定しているため、分岐命令の1つ前の命令の命令アド
レスをキーとして分岐予測テーブルへの登録がなされて
いる。また、メモリまたは命令キャッシュ中の命令の並
びに対して、矢印に従って命令の実行が進むことを想定
している。さらに、各命令においては後続命令に対する
ホールドは発生しないことを仮定している。
仮定しているため、分岐命令の1つ前の命令の命令アド
レスをキーとして分岐予測テーブルへの登録がなされて
いる。また、メモリまたは命令キャッシュ中の命令の並
びに対して、矢印に従って命令の実行が進むことを想定
している。さらに、各命令においては後続命令に対する
ホールドは発生しないことを仮定している。
【0027】図5を参照すると、図4の命令シーケンス
を実行した場合の動作を示す図において、プリフェッチ
命令カウンタ1の値と、命令レジスタ3の命令語と、分
岐先予測アドレス有効レジスタ6の値と、分岐先予測ア
ドレスレジスタ7の分岐先予測アドレスとが示される。
を実行した場合の動作を示す図において、プリフェッチ
命令カウンタ1の値と、命令レジスタ3の命令語と、分
岐先予測アドレス有効レジスタ6の値と、分岐先予測ア
ドレスレジスタ7の分岐先予測アドレスとが示される。
【0028】まず、時刻0において、プリフェッチ命令
カウンタ1には初期値「AAA」が、分岐先予測アドレ
ス有効レジスタ6には初期値「0」が保持されているも
のとする。以降、時刻5まではプリフェッチ命令カウン
タ1は順次インクリメントされ、これに対応して命令レ
ジスタ3には1T遅れで対応する命令が保持される。
カウンタ1には初期値「AAA」が、分岐先予測アドレ
ス有効レジスタ6には初期値「0」が保持されているも
のとする。以降、時刻5まではプリフェッチ命令カウン
タ1は順次インクリメントされ、これに対応して命令レ
ジスタ3には1T遅れで対応する命令が保持される。
【0029】時刻4では分岐先予測アドレスとしてアド
レスBBBが索引されて、この結果時刻5で分岐先予測
アドレスレジスタ7に「BBB」が保持されると共に分
岐先予測アドレス有効レジスタ6に「1」が保持され
る。これにより、PIC選択制御回路16はセレクタ1
0に対し予測アドレス26を選択するよう指示し、この
結果時刻6ではプリフェッチ命令カウンタ1は「BB
B」を保持する。また、時刻5においてPIC選択制御
回路16がマスク信号42を「0」にするため、時刻6
における分岐先予測アドレス有効レジスタ6の値は強制
的に「0」とされる。この強制的な処理は、命令アドレ
スBBBの命令6において誤った動作をしないために必
要である。なぜなら、時刻6において分岐先予測アドレ
スレジスタ7に得られるアドレスは、命令アドレス「X
XX+4」の命令が分岐命令であった場合の分岐先予測
アドレスであり、本実行シーケンスのように命令アドレ
ス「XXX」から命令アドレス「BBB」に分岐が発生
した場合には、分岐先予測アドレスとして使用してはな
らないものだからである。
レスBBBが索引されて、この結果時刻5で分岐先予測
アドレスレジスタ7に「BBB」が保持されると共に分
岐先予測アドレス有効レジスタ6に「1」が保持され
る。これにより、PIC選択制御回路16はセレクタ1
0に対し予測アドレス26を選択するよう指示し、この
結果時刻6ではプリフェッチ命令カウンタ1は「BB
B」を保持する。また、時刻5においてPIC選択制御
回路16がマスク信号42を「0」にするため、時刻6
における分岐先予測アドレス有効レジスタ6の値は強制
的に「0」とされる。この強制的な処理は、命令アドレ
スBBBの命令6において誤った動作をしないために必
要である。なぜなら、時刻6において分岐先予測アドレ
スレジスタ7に得られるアドレスは、命令アドレス「X
XX+4」の命令が分岐命令であった場合の分岐先予測
アドレスであり、本実行シーケンスのように命令アドレ
ス「XXX」から命令アドレス「BBB」に分岐が発生
した場合には、分岐先予測アドレスとして使用してはな
らないものだからである。
【0030】以降、同様にして、命令が実行されていく
が、アドレス「YYY」の分岐命令によりアドレス「C
CC」の分岐命令に分岐が発生した際、前述のように、
アドレス「CCC」の分岐命令においては分岐先予測ア
ドレスを得ることはできない。従って、分岐は生起しな
いものとして考え、以降、アドレス「CCC+4」、
「CCC+8」と進んでいく。このように誤った分岐予
測を行った場合には、処理装置18において、その分岐
予測失敗を検出して、実行すべきでない命令をキャンセ
ルすると共にリカバリアドレスを送出することにより、
アドレスDDDの命令から実行を再開する。
が、アドレス「YYY」の分岐命令によりアドレス「C
CC」の分岐命令に分岐が発生した際、前述のように、
アドレス「CCC」の分岐命令においては分岐先予測ア
ドレスを得ることはできない。従って、分岐は生起しな
いものとして考え、以降、アドレス「CCC+4」、
「CCC+8」と進んでいく。このように誤った分岐予
測を行った場合には、処理装置18において、その分岐
予測失敗を検出して、実行すべきでない命令をキャンセ
ルすると共にリカバリアドレスを送出することにより、
アドレスDDDの命令から実行を再開する。
【0031】このように、本発明の第一の実施例である
分岐予測装置によれば、分岐予測テーブルへの登録のキ
ーとして分岐命令の1つ前のアドレスを使用することに
よって、分岐予測処理を高速化すると同時に、分岐が発
生する場合にマスク信号42で分岐先予測アドレス有効
レジスタ6を強制的にリセットすることによって、分岐
生起直後の分岐予測を抑止して不正動作を防止すること
ができる。
分岐予測装置によれば、分岐予測テーブルへの登録のキ
ーとして分岐命令の1つ前のアドレスを使用することに
よって、分岐予測処理を高速化すると同時に、分岐が発
生する場合にマスク信号42で分岐先予測アドレス有効
レジスタ6を強制的にリセットすることによって、分岐
生起直後の分岐予測を抑止して不正動作を防止すること
ができる。
【0032】次に本発明の分岐予測装置の第二の実施例
について図面を参照して詳細に説明する。
について図面を参照して詳細に説明する。
【0033】本発明の第二の実施例は、分岐先予測アド
レスレジスタ群5において分岐予測の方向を指定するフ
ィールドを含まない点を除いて、第一の実施例のものと
同様である。本実施例では、比較アドレスレジスタ群4
における有効ビットフィールドの値が「有効」を示して
いれば対応する分岐先予測アドレスレジスタ群5のエン
トリが分岐生起方向に予測されているものとして動作す
る。
レスレジスタ群5において分岐予測の方向を指定するフ
ィールドを含まない点を除いて、第一の実施例のものと
同様である。本実施例では、比較アドレスレジスタ群4
における有効ビットフィールドの値が「有効」を示して
いれば対応する分岐先予測アドレスレジスタ群5のエン
トリが分岐生起方向に予測されているものとして動作す
る。
【0034】図6を参照すると、本発明の第二の実施例
におけるPIC選択制御回路16は、図3の第一の実施
例のものと異なり、分岐予測方向を考慮しない。従っ
て、第一の実施例では分岐が生起しないものとして予測
している場合には次アドレス24を選択していたが、本
実施例では予測方向に拘わらず予測アドレス26を選択
することになる。
におけるPIC選択制御回路16は、図3の第一の実施
例のものと異なり、分岐予測方向を考慮しない。従っ
て、第一の実施例では分岐が生起しないものとして予測
している場合には次アドレス24を選択していたが、本
実施例では予測方向に拘わらず予測アドレス26を選択
することになる。
【0035】このように、本発明の第二の実施例である
分岐予測装置によれば、分岐が生起する場合のみ分岐予
測テーブルに登録するようにしたことにより、分岐予測
テーブルの構成を簡略化し、さらに、命令アドレスの制
御を簡単化して、より効率的に分岐予測処理の高速化と
動作の安定を確保することができる。
分岐予測装置によれば、分岐が生起する場合のみ分岐予
測テーブルに登録するようにしたことにより、分岐予測
テーブルの構成を簡略化し、さらに、命令アドレスの制
御を簡単化して、より効率的に分岐予測処理の高速化と
動作の安定を確保することができる。
【0036】次に本発明の分岐予測装置の第三の実施例
について図面を参照して詳細に説明する。
について図面を参照して詳細に説明する。
【0037】本発明の第三の実施例は、命令数カウンタ
を設けて、分岐後の命令数をカウントする点を除いて、
第一の実施例のものと同様である。つまり、第一の実施
例では分岐命令の1つ前の命令の命令アドレスをキーに
して分岐先予測アドレスを登録していたが、本実施例で
は、これを分岐命令のM命令分前の命令の命令アドレス
をキーにして登録する。このため、本実施例では、分岐
発生後M命令分の間、分岐先予測アドレスを使用しない
ようにさせるために、値(M−1)を1命令毎に減算し
ていく命令数カウンタを設ける。
を設けて、分岐後の命令数をカウントする点を除いて、
第一の実施例のものと同様である。つまり、第一の実施
例では分岐命令の1つ前の命令の命令アドレスをキーに
して分岐先予測アドレスを登録していたが、本実施例で
は、これを分岐命令のM命令分前の命令の命令アドレス
をキーにして登録する。このため、本実施例では、分岐
発生後M命令分の間、分岐先予測アドレスを使用しない
ようにさせるために、値(M−1)を1命令毎に減算し
ていく命令数カウンタを設ける。
【0038】図7を参照すると、本発明の第三の実施例
におけるPIC選択制御回路16は、命令数カウンタの
値を入力して、この値が1以上の場合にはマスク信号4
2を強制的に「0」にしている。また、分岐が発生する
場合においては、この命令数カウンタに値(M−1)を
セットすることによって、分岐後M命令分の分岐予測を
抑止している。
におけるPIC選択制御回路16は、命令数カウンタの
値を入力して、この値が1以上の場合にはマスク信号4
2を強制的に「0」にしている。また、分岐が発生する
場合においては、この命令数カウンタに値(M−1)を
セットすることによって、分岐後M命令分の分岐予測を
抑止している。
【0039】このように、本発明の第三の実施例である
分岐予測装置によれば、分岐予測テーブルへの登録のキ
ーとして分岐命令のM命令分前のアドレスを使用するこ
とによって、分岐予測処理の高速化と動作の安定化をよ
り柔軟に実現することができる。
分岐予測装置によれば、分岐予測テーブルへの登録のキ
ーとして分岐命令のM命令分前のアドレスを使用するこ
とによって、分岐予測処理の高速化と動作の安定化をよ
り柔軟に実現することができる。
【0040】なお、上記実施例においては、フルアソシ
アティブな分岐予測テーブルの構成を前提としたが、こ
れはセットアソシアティブな構成を採ることも考えられ
る。さらに、セットアソシアティブな構成においては、
比較対象となるアドレスアレイを命令キャッシュのアド
レスアレイと共用する構成を採ることも考えられる。
アティブな分岐予測テーブルの構成を前提としたが、こ
れはセットアソシアティブな構成を採ることも考えられ
る。さらに、セットアソシアティブな構成においては、
比較対象となるアドレスアレイを命令キャッシュのアド
レスアレイと共用する構成を採ることも考えられる。
【0041】
【発明の効果】以上の説明で明らかなように、本発明に
よると、分岐予測テーブルへの登録のキーとして分岐命
令のM命令分前のアドレスを使用することによって分岐
予測処理を高速化すると同時に、分岐が発生する場合に
分岐生起後M命令分の分岐予測を抑止して不正動作を防
止することができる。
よると、分岐予測テーブルへの登録のキーとして分岐命
令のM命令分前のアドレスを使用することによって分岐
予測処理を高速化すると同時に、分岐が発生する場合に
分岐生起後M命令分の分岐予測を抑止して不正動作を防
止することができる。
【図1】本発明の分岐予測装置の一実施例の構成を示す
ブロック図である。
ブロック図である。
【図2】本発明の第一の実施例における分岐予測テーブ
ル出力選択制御回路の動作を表す図である。
ル出力選択制御回路の動作を表す図である。
【図3】本発明の第一の実施例におけるプリフェッチ命
令カウンタ入力選択制御回路の動作を表す図である。
令カウンタ入力選択制御回路の動作を表す図である。
【図4】本発明の第一の実施例の分岐予測装置における
命令シーケンスを説明するための図である。
命令シーケンスを説明するための図である。
【図5】本発明の第一の実施例の分岐予測装置の動作を
表す図である。
表す図である。
【図6】本発明の第二の実施例における分岐予測テーブ
ル出力選択制御回路の動作を表す図である。
ル出力選択制御回路の動作を表す図である。
【図7】本発明の第三の実施例における分岐予測テーブ
ル出力選択制御回路の動作を表す図である。
ル出力選択制御回路の動作を表す図である。
【図8】従来技術における問題点を説明するための図で
ある。
ある。
1 プリフェッチ命令カウンタ 2 フェッチ命令カウンタ 3 命令レジスタ 4 比較アドレスレジスタ群 5 分岐先予測アドレスレジスタ群 6 分岐先予測アドレス有効レジスタ 7 分岐先予測アドレスレジスタ 8 加算器 9 登録エントリ選択デコーダ 10 セレクタ 11 比較器 12,13 セレクタ 14 分岐予測テーブル出力選択制御回路 15 アンドゲート 16 プリフェッチ命令カウンタ入力選択制御回路 17 命令キャッシュ 18 処理装置
Claims (5)
- 【請求項1】 分岐命令の分岐履歴をこの分岐命令のM
(Mは正の整数)個前の命令と関連付けて保持する分岐
履歴保持手段と、 この分岐履歴保持手段を検索して次に分岐し得るアドレ
スを予測する分岐予測アドレス検索手段と、 この分岐予測アドレス検索手段によって検索された分岐
予測に関する情報を保持する分岐予測情報保持手段と、 直前に実行したM個の命令中に分岐の生起した分岐命令
が存在する場合には前記分岐予測情報保持手段に保持さ
れた分岐予測結果を使用しないように制御する分岐予測
制御手段とを含むことを特徴とする分岐予測装置。 - 【請求項2】 前記分岐履歴保持手段は、少なくとも一
つのエントリを有し各エントリに分岐命令の前回分岐し
たアドレスを保持する分岐履歴アドレス保持回路と、こ
の分岐履歴アドレス保持回路の各エントリに対応して分
岐命令の直前の命令の命令アドレスを保持する命令アド
レス保持回路と、この命令アドレス保持回路の各エント
リに対応してそのエントリの内容が有効なものであるか
否かを保持するエントリ有効性保持回路と、前記分岐履
歴アドレス保持回路の各エントリに対応して前記分岐命
令により前回分岐が生起したか否かを保持する分岐生起
保持回路とを有し、 前記分岐予測アドレス検索手段は、分岐命令の前記直前
の命令の命令アドレスによって前記命令アドレス保持回
路を検索するアドレス比較器と、このアドレス比較器に
おける比較結果によって前記エントリ有効性保持回路と
前記分岐履歴アドレス保持回路と前記分岐生起保持回路
とに保持された情報を選択する選択器とを有し、 前記分岐予測情報保持手段は、前記選択器により選択さ
れた前記エントリ有効性保持回路からの情報を保持する
分岐予測有効性保持回路と、前記選択器により選択され
た前記分岐履歴アドレス保持回路からの情報を保持する
分岐予測アドレス保持回路と、前記分岐生起保持回路か
らの情報を保持する分岐予測生起保持回路とを有し、 前記分岐予測制御手段は、前記分岐予測有効性保持回路
が有効である旨を保持し、かつ、前記分岐予測生起保持
回路が生起である旨を保持している場合には、直前に実
行した命令が分岐の生起した分岐命令であると判断して
前記分岐予測アドレス保持回路に保持されたアドレスを
分岐予測結果として使用しないように制御することを特
徴とする請求項1記載の分岐予測装置。 - 【請求項3】 前記分岐履歴保持手段は、少なくとも一
つのエントリを有し各エントリに分岐命令の前回分岐し
たアドレスを保持する分岐履歴アドレス保持回路と、こ
の分岐履歴アドレス保持回路の各エントリに対応して分
岐命令の直前の命令の命令アドレスを保持する命令アド
レス保持回路と、この命令アドレス保持回路の各エント
リに対応してそのエントリの内容が有効なものであるか
否かを保持するエントリ有効性保持回路とを有し、 前記分岐予測アドレス検索手段は、分岐命令の前記直前
の命令の命令アドレスによって前記命令アドレス保持回
路を検索するアドレス比較器と、このアドレス比較器に
おける比較結果によって前記エントリ有効性保持回路と
前記分岐履歴アドレス保持回路とに保持された情報を選
択する選択器とを有し、 前記分岐予測情報保持手段は、前記選択器により選択さ
れた前記エントリ有効性保持回路からの情報を保持する
分岐予測有効性保持回路と、前記選択器により選択され
た前記分岐履歴アドレス保持回路からの情報を保持する
分岐予測アドレス保持回路とを有し、 前記分岐予測制御手段は、前記分岐予測有効性保持回路
が有効である旨を保持している場合には、直前に実行し
た命令が分岐の生起した分岐命令であると判断して前記
分岐予測アドレス保持回路に保持されたアドレスを分岐
予測結果として使用しないように制御することを特徴と
する請求項1記載の分岐予測装置。 - 【請求項4】 前記分岐履歴保持手段は、少なくとも一
つのエントリを有し各エントリに分岐命令の前回分岐し
たアドレスを保持する分岐履歴アドレス保持回路と、こ
の分岐履歴アドレス保持回路の各エントリに対応して分
岐命令の前記M個前の命令の命令アドレスを保持する命
令アドレス保持回路と、この命令アドレス保持回路の各
エントリに対応してそのエントリの内容が有効なもので
あるか否かを保持するエントリ有効性保持回路と、前記
分岐履歴アドレス保持回路の各エントリに対応して前記
分岐命令により前回分岐が生起したか否かを保持する分
岐生起保持回路とを有し、 前記分岐予測アドレス検索手段は、分岐命令の前記M個
前の命令の命令アドレスによって前記命令アドレス保持
回路を検索するアドレス比較器と、このアドレス比較器
における比較結果によって前記エントリ有効性保持回路
と前記分岐履歴アドレス保持回路と前記分岐生起保持回
路とに保持された情報を選択する選択器とを有し、 前記分岐予測情報保持手段は、前記選択器により選択さ
れた前記エントリ有効性保持回路からの情報を保持する
分岐予測有効性保持回路と、前記選択器により選択され
た前記分岐履歴アドレス保持回路からの情報を保持する
分岐予測アドレス保持回路と、前記分岐生起保持回路か
らの情報を保持する分岐予測生起保持回路とを有し、 前記分岐予測制御手段は、分岐生起後(M−1)命令分
を計数する命令数カウンタをさらに有し、この命令数カ
ウンタが(M−1)命令分を計数している途中である場
合、もしくは、前記分岐予測有効性保持回路が有効であ
る旨を保持し、かつ、前記分岐予測生起保持回路が生起
である旨を保持している場合には、直前に実行したM個
の命令中に分岐の生起した分岐命令が存在すると判断し
て前記分岐予測アドレス保持回路に保持されたアドレス
を分岐予測結果として使用しないように制御することを
特徴とする請求項1記載の分岐予測装置。 - 【請求項5】 前記分岐履歴保持手段は、少なくとも一
つのエントリを有し各エントリに分岐命令の前回分岐し
たアドレスを保持する分岐履歴アドレス保持回路と、こ
の分岐履歴アドレス保持回路の各エントリに対応して分
岐命令の前記M個前の命令の命令アドレスを保持する命
令アドレス保持回路と、この命令アドレス保持回路の各
エントリに対応してそのエントリの内容が有効なもので
あるか否かを保持するエントリ有効性保持回路とを有
し、 前記分岐予測アドレス検索手段は、分岐命令の前記M個
前の命令の命令アドレスによって前記命令アドレス保持
回路を検索するアドレス比較器と、このアドレス比較器
における比較結果によって前記エントリ有効性保持回路
と前記分岐履歴アドレス保持回路とに保持された情報を
選択する選択器とを有し、 前記分岐予測情報保持手段は、前記選択器により選択さ
れた前記エントリ有効性保持回路からの情報を保持する
分岐予測有効性保持回路と、前記選択器により選択され
た前記分岐履歴アドレス保持回路からの情報を保持する
分岐予測アドレス保持回路とを有し、 前記分岐予測制御手段は、分岐生起後(M−1)命令分
を計数する命令数カウンタをさらに有し、この命令数カ
ウンタが(M−1)命令分を計数している途中である場
合、もしくは、前記分岐予測有効性保持回路が有効であ
る旨を保持している場合には、直前に実行したM個の命
令中に分岐の生起した分岐命令が存在すると判断して前
記分岐予測アドレス保持回路に保持されたアドレスを分
岐予測結果として使用しないように制御することを特徴
とする請求項1記載の分岐予測装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6209501A JP2629613B2 (ja) | 1994-09-02 | 1994-09-02 | 分岐予測装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6209501A JP2629613B2 (ja) | 1994-09-02 | 1994-09-02 | 分岐予測装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0876999A true JPH0876999A (ja) | 1996-03-22 |
JP2629613B2 JP2629613B2 (ja) | 1997-07-09 |
Family
ID=16573854
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6209501A Expired - Fee Related JP2629613B2 (ja) | 1994-09-02 | 1994-09-02 | 分岐予測装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2629613B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100498425B1 (ko) * | 1998-02-04 | 2005-09-08 | 삼성전자주식회사 | 분기 예측 장치 |
US8006078B2 (en) | 2007-04-13 | 2011-08-23 | Samsung Electronics Co., Ltd. | Central processing unit having branch instruction verification unit for secure program execution |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63124135A (ja) * | 1986-11-13 | 1988-05-27 | Mitsubishi Electric Corp | デ−タ処理装置 |
JPS648445A (en) * | 1987-06-30 | 1989-01-12 | Mitsubishi Electric Corp | Data processor equipped with branching predictive function |
JPH06110683A (ja) * | 1990-12-10 | 1994-04-22 | Intel Corp | マイクロプロセッサの拡張ブランチターゲット方法及びその装置 |
-
1994
- 1994-09-02 JP JP6209501A patent/JP2629613B2/ja not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63124135A (ja) * | 1986-11-13 | 1988-05-27 | Mitsubishi Electric Corp | デ−タ処理装置 |
JPS648445A (en) * | 1987-06-30 | 1989-01-12 | Mitsubishi Electric Corp | Data processor equipped with branching predictive function |
JPH06110683A (ja) * | 1990-12-10 | 1994-04-22 | Intel Corp | マイクロプロセッサの拡張ブランチターゲット方法及びその装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100498425B1 (ko) * | 1998-02-04 | 2005-09-08 | 삼성전자주식회사 | 분기 예측 장치 |
US8006078B2 (en) | 2007-04-13 | 2011-08-23 | Samsung Electronics Co., Ltd. | Central processing unit having branch instruction verification unit for secure program execution |
Also Published As
Publication number | Publication date |
---|---|
JP2629613B2 (ja) | 1997-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0084114B1 (en) | Instruction prefetching data processing apparatus including a conditional branch instruction predictor | |
CN105980993B (zh) | 数据处理设备和方法 | |
US5210831A (en) | Methods and apparatus for insulating a branch prediction mechanism from data dependent branch table updates that result from variable test operand locations | |
US5297281A (en) | Multiple sequence processor system | |
EP0125855B1 (en) | Buffer-storage control system | |
EP1612670A2 (en) | Secure task management in a computer | |
US5634119A (en) | Computer processing unit employing a separate millicode branch history table | |
JP3486690B2 (ja) | パイプライン方式プロセッサ | |
JP2020501242A (ja) | ストリーム長予測を使用する分岐予測器検索限定 | |
JP3798998B2 (ja) | 分岐予測装置および分岐予測方法 | |
US6993638B2 (en) | Memory access device and method using address translation history table | |
JP2629613B2 (ja) | 分岐予測装置 | |
US5732254A (en) | Pipeline system branch history table storing branch instruction addresses and target addresses with inhibit bits | |
JPS5991551A (ja) | 分岐先アドレス予測を行なう命令先取り装置 | |
JPH0877021A (ja) | 割込処理装置および方法 | |
JP2778610B2 (ja) | パイプライン演算制御方法およびシステム | |
JPH046983B2 (ja) | ||
JP2542565B2 (ja) | 分岐予測制御方式 | |
JP3558481B2 (ja) | データ処理装置 | |
JP2658342B2 (ja) | データ処理装置 | |
JPH06301537A (ja) | 命令フェッチ回路 | |
JP4049490B2 (ja) | 情報処理装置 | |
JPH06332698A (ja) | 情報処理装置 | |
JPH04348430A (ja) | データ処理装置 | |
JPS5991554A (ja) | 分岐方向予測を行なう命令先取り装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 19970225 |
|
LAPS | Cancellation because of no payment of annual fees |