(57)【要約】【課題】高精度な分岐予測の信頼度見積もりを行なう。【解決手段】入力されたプログラムをパイプライン処理する命令処理パイプライン３０と、プログラム内に含まれる条件分岐命令の分岐方向を予測する分岐予測器４０と、条件分岐命令に対する予測の信頼性の有無に応じて命令の投機処理実行の可否を決めるパイプラインゲーティング回路２０と、を有するプロセッサにおける分岐予測の信頼度見積もり回路であって、条件分岐命令に対する予測の信頼度から該予測の信頼性の有無を判定する信頼性判定手段と、条件分岐命令に対する予測の信頼度を更新する信頼度更新手段と、信頼性の判定に用いる許容閾値を記憶する許容閾値記憶回路１２と、を備え、信頼性判定手段は、許容閾値記憶回路１２から入力された許容閾値と信頼度とを比較して信頼性の有無を判定する。【選択図】図３
2010152843.tif 000002
【特許請求の範囲】
【請求項１】
入力されたプログラムをパイプライン処理する命令処理パイプラインと、プログラム内に含まれる条件分岐命令の分岐方向を予測する分岐予測器と、前記条件分岐命令に対する予測の信頼性の有無に応じて命令の投機処理実行の可否を決めるパイプラインゲーティング回路と、を有するプロセッサにおける分岐予測の信頼度見積もり回路であって、
前記条件分岐命令に対する予測の信頼度から該予測の信頼性の有無を判定する信頼性判定手段と、
前記条件分岐命令に対する前記予測の前記信頼度を更新する信頼度更新手段と、
前記信頼性の判定に用いる許容閾値を記憶する許容閾値記憶回路と、
を備え、
前記信頼性判定手段は、前記許容閾値記憶回路から入力された前記許容閾値と前記信頼度とを比較して前記信頼性の有無を判定することを特徴とする分岐予測の信頼度見積もり回路。
【請求項２】
前記信頼度更新手段は、前記信頼度の値を増減させることで更新を行い、前記予測に成功した場合に前記信頼度を増加させ、前記予測に失敗かつ前記信頼度が前記許容閾値よりも高い場合に前記信頼度を減少させ、前記予測に失敗かつ前記許容閾値以下の場合に前記信頼度を最も低い値に再設定することを特徴とする請求項１に記載の分岐予測の信頼度見積もり回路。
【請求項３】
前記信頼度更新手段は、前記予測に成功した場合に前記信頼度が最大値である場合を除いて前記信頼度を１増加させ、前記予測に失敗かつ前記信頼度が前記許容閾値よりも高い場合に信頼度を１減少させ、前記予測に失敗かつ前記信頼度が前記許容閾値以下の場合に前記信頼度を０に再設定することを特徴とする請求項２に記載の分岐予測の信頼度見積もり回路。
【請求項４】
入力されたプログラムをパイプライン処理する命令処理パイプラインと、条件分岐命令に対する予測の信頼性の有無に応じて命令の投機処理実行の可否を決めるパイプラインゲーティング回路と、を有するプロセッサにおける分岐予測の信頼度見積もり回路であって、
前記命令処理パイプラインから入力されるアドレスと前記条件分岐命令の分岐結果とから前記条件分岐命令の分岐の予測の方向を分岐成立から分岐不成立又は分岐不成立から分岐成立へ更新する分岐予測更新手段と、
前記条件分岐命令に対する前記予測の信頼度から該予測の信頼性の有無を判定する信頼性判定手段と、
前記条件分岐命令に対する前記予測の前記信頼度を更新する信頼度更新手段と、
前記信頼性の判定に用いる許容閾値を記憶する許容閾値記憶回路と、
を備え、
前記信頼性判定手段は、前記許容閾値記憶回路から入力された前記許容閾値と前記信頼度とを比較して前記信頼性の有無を判定することを特徴とする分岐予測の信頼度見積もり回路。
【請求項５】
前記信頼度更新手段は、分岐成立又は分岐不成立のそれぞれで、前記信頼度の値を増減させることで更新を行い、前記予測に成功した場合に前記信頼度を増加させ、前記予測に失敗かつ前記信頼度が前記許容閾値よりも高い場合に前記信頼度を減少させ、前記予測に失敗かつ前記許容閾値以下の場合に前記信頼度を最も低い値に再設定し、
前記分岐予測更新手段は、前記信頼度を最も低い値に再設定した後に前記予測を失敗したときは、前記分岐成立の場合から前記分岐不成立の場合又は前記分岐不成立の場合から前記分岐成立の場合にそれぞれ反転し、
前記信頼度更新手段は、該反転後に、前記信頼度の値を増減させることで前記信頼度の更新を行うことを特徴とする請求項４に記載の分岐予測の信頼度見積もり回路。
【請求項６】
前記信頼度更新手段は、前記予測に成功した場合に前記信頼度が最大値である場合を除いて前記信頼度を１増加させ、前記予測に失敗かつ前記信頼度が前記許容閾値よりも高い場合に信頼度を１減少させ、前記予測に失敗かつ前記信頼度が前記許容閾値以下の場合に前記信頼度を０に再設定することを特徴とする請求項５に記載の分岐予測の信頼度見積もり回路。
【請求項７】
外部環境の変化を計測する計測手段と、
前記分岐命令の信頼性を判定する閾値の値を動的に変更する閾値更新手段と、
を備え、
前記閾値更新手段は、前記プロセッサの速度と消費電力を動的に制御することを特徴とする請求項１に記載の分岐予測の信頼度見積もり回路。
【請求項８】
前記計測手段は、システムの温度を計測し、前記閾値更新手段は、前記計測手段から入力された温度から前記分岐命令の信頼性を判定する閾値の値を動的に変更することを特徴とする請求項７に記載の分岐予測の信頼度見積もり回路。
【請求項９】
入力されたプログラムをパイプライン処理する命令処理パイプラインと、プログラム内に含まれる条件分岐命令の分岐方向を予測する分岐予測器と、前記条件分岐命令に対する予測の信頼性の有無に応じて命令の投機処理実行の可否を決めるパイプラインゲーティング回路と、を有するプロセッサにおける分岐予測の信頼度見積もり方法であって、
前記条件分岐命令に対する予測の信頼度から該予測の信頼性の有無を判定する際に用いる許容閾値を記憶する許容閾値記憶手順と、
前記信頼性の有無を判定する信頼性判定手順と、
前記条件分岐命令に対する前記予測の前記信頼度を更新する信頼度更新手順と、
を備え、
前記信頼性判定手順は、前記許容閾値記憶手順から入力された前記許容閾値と前記信頼度とを比較して前記信頼性の有無を判定することを特徴とする分岐予測の信頼度見積もり方法。
【請求項１０】
前記信頼度更新手順は、前記信頼度の値を増減させることで更新を行い、前記予測に成功した場合に前記信頼度を増加させ、前記予測に失敗かつ前記信頼度が前記許容閾値よりも高い場合に前記信頼度を減少させ、前記予測に失敗かつ前記許容閾値以下の場合に前記信頼度を最も低い値に再設定することを特徴とする請求項９に記載の分岐予測の信頼度見積もり方法。
【請求項１１】
前記信頼度更新手順は、前記予測に成功した場合に前記信頼度が最大値である場合を除いて前記信頼度を１増加させ、前記予測に失敗かつ前記信頼度が前記許容閾値よりも高い場合に信頼度を１減少させ、前記予測に失敗かつ前記信頼度が前記許容閾値以下の場合に前記信頼度を０に再設定することを特徴とする請求項１０に記載の分岐予測の信頼度見積もり方法。
【請求項１２】
入力されたプログラムをパイプライン処理する命令処理パイプラインと、条件分岐命令に対する予測の信頼性の有無に応じて命令の投機処理実行の可否を決めるパイプラインゲーティング回路と、を有するプロセッサにおける分岐予測の信頼度見積もり方法であって、
前記命令処理パイプラインから入力されるアドレスと前記条件分岐命令の分岐結果とから前記条件分岐命令の分岐の予測の方向を分岐成立から分岐不成立又は分岐不成立から分岐成立へ更新する分岐予測更新手順と、
前記条件分岐命令に対する予測の信頼度から該予測の信頼性の有無を判定する際に用いる許容閾値を記憶する許容閾値記憶手順と、
前記信頼性の有無を判定する信頼性判定手順と、
前記条件分岐命令に対する前記予測の前記信頼度を更新する信頼度更新手順と、
を備え、
前記信頼性判定手順は、前記許容閾値記憶手順から入力された前記許容閾値と前記信頼度とを比較して前記信頼性の有無を判定することを特徴とする分岐予測の信頼度見積もり方法。
【請求項１３】
前記信頼度更新手順は、分岐成立又は分岐不成立のそれぞれで、前記信頼度の値を増減させることで更新を行い、前記予測に成功した場合に前記信頼度を増加させ、前記予測に失敗かつ前記信頼度が前記許容閾値よりも高い場合に前記信頼度を減少させ、前記予測に失敗かつ前記許容閾値以下の場合に前記信頼度を最も低い値に再設定し、
前記分岐予測更新手順は、前記信頼度を最も低い値に再設定した後に前記予測を失敗したときは、前記分岐成立の場合から前記分岐不成立の場合又は前記分岐不成立の場合から前記分岐成立の場合にそれぞれ反転し、
前記信頼度更新手順は、該反転後に、前記信頼度の値を増減させることで前記信頼度の更新を行うことを特徴とする請求項１２に記載の分岐予測の信頼度見積もり方法。
【請求項１４】
前記信頼度更新手順は、前記予測に成功した場合に前記信頼度が最大値である場合を除いて前記信頼度を１増加させ、前記予測に失敗かつ前記信頼度が前記許容閾値よりも高い場合に信頼度を１減少させ、前予測に失敗かつ前信頼度が前記許容閾値以下の場合に前記信頼度を０に再設定することを特徴とする請求項１３に記載の分岐予測の信頼度見積もり方法。
【請求項１５】
外部環境の変化を計測する計測手順と、
前記分岐命令の信頼性を判定する閾値の値を動的に変更する閾値更新手順と、
を備え、
前記閾値更新手順は、前記プロセッサの速度と消費電力を動的に制御することを特徴とする請求項９に記載の分岐予測の信頼度見積もり方法。
【請求項１６】
前記計測手順は、システムの温度を計測し、前記閾値更新手順は、前記計測手順から入力された温度から前記分岐命令の信頼性を判定する閾値の値を動的に変更することを特徴とする請求項１５に記載の分岐予測の信頼度見積もり方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサ、特にパイプライン構造を持ち、かつ投機処理を行うプロセッサにおける分岐予測の信頼度見積もり回路及びその方法に関する。
【背景技術】
【０００２】
従来、プロセッサは命令レベル並列性を高めることで処理能力を向上させてきた。プロセッサのパイプライン構造は命令レベル並列性を得る為の方法の１つである。しかし、条件分岐命令は命令が実行させるまで後続の命令が不明なため、パイプライン構造による性能向上の妨げとなる。この問題を解決するために必要となるのが分岐予測器である。分岐予測器は条件分岐命令の分岐方向を予測し、プロセッサは分岐予測器の予測を元に投機的に後続の命令列を処理する。分岐予測器による予測が成功した場合、プロセッサは条件分岐命令による性能低下の影響を受けない。
【０００３】
しかし、分岐予測器が予測に失敗すると間違って投機実行された命令列は実行が中止され、消去される。間違った命令の投機実行ために消費された電力は無駄となり、プロセッサの電力効率は低下してしまう。
【０００４】
これに対し、パイプラインゲーティングと呼ばれる方法は予測の信頼性が低い条件分岐命令の投機処理を停止させる。無駄な投機実行を削減することによりプロセッサの電力効率を改善する。ただし、予測に成功する条件分岐命令を信頼できないと判断してその後続命令の投機処理を行わない場合、投機処理を行った場合と比較してプロセッサの処理時間が延び、電力効率向上の効果は薄れてしまう。このように、パイプラインゲーティングの効果は予測の信頼性の判定に依存しており、より高精度に信頼度を見積もる方法が必要とされている。
【０００５】
予測の信頼度を見積もる技術は、Jacobsen, Rotenberg, and Smith Confidence Estimator（ＪＲＳ Ｅｓｔｉｍａｔｏｒ）と呼ばれる方法や、飽和型カウンタを持つ分岐予測器の内部状態を利用する方法で分岐予測の信頼度を見積もる方法が提案されている。
【０００６】
ＪＲＳ Ｅｓｔｉｍａｔｏｒは、Correct/Incorrect Register History Table にｎビットの１つないし複数の信頼度を記憶している。分岐予測が行われる時に１つの信頼度が選択され、Reduction Function と呼ばれる装置で選択された信頼度から信頼性の有無を判断する。非特許文献１では、複数の信頼度見積もり方法が試されているが、中でもリセッティングカウンタを用いた方法が最も高い見積もり精度を示すとしている。
【０００７】
リセッティングカウンタを用いた方法による信頼度の更新は、分岐予測器が予測に成功した場合に信頼度の値に１を加算し、予測に失敗した場合に信頼度の値を０に再設定する。
【０００８】
信頼性は信頼度が閾値以上であれば信頼性がある、閾値未満であれば信頼性が無いと判定する。ただし、予測に失敗すると信頼度は最小値である０に再設定されるため、信頼度を閾値より大きい値に更新することは実装上の問題であり、信頼性を見積もる精度に影響を与えない。
【０００９】
図２はリセッティングカウンタを用いた方法による信頼度更新手段と信頼性判定手段の一例である。状態名である２進数は信頼度の値を表す。図２では７（１１１）、すなわち信頼度が最大値の時のみ、予測は信頼できると判定される。予測に成功した場合は信頼度に１が加算され、予測に失敗した場合は信頼度が０に再設定される。
【００１０】
又、特許文献１には、飽和型カウンタを持つ分岐予測器を用いた方法が開示されているが、これは非特許文献１でリセッティングカウンタを用いた方法と比較された飽和型カウンタを用いた方法と原理は同じであり、信頼度の見積もり精度の点でリセッティングカウンタを用いた方法に劣る。
【特許文献１】特表２００８−５２９１９１号公報
【非特許文献１】E. Jacobsen, E. Rotenberg, and J. E.Smith; Assigning Confidence to Conditional Branch Predictions.1996.  Proc. of 29th Annual International Symposium on Microarchitecture (MICRO-29)p.142-152
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、上記の関連する技術に係る発明は、信頼度の見積もり精度が低いという問題点がある。この問題点により、投機処理の誤停止を招き、プロセッサの処理速度を低下させてしまう。
【００１２】
その理由は、リセッティングカウンタを用いた方法が条件分岐命令の特異な振る舞いを許容できない点にある。リセッティングカウンタを用いた方法は、ある条件分岐命令に対する分岐予測が失敗すると信頼度は０に再設定される。このため、次にこの条件分岐命令に対する分岐予測が行われると予測は信頼できないと判定される。
【００１３】
しかし、プログラム内には一時的に特異な振る舞いをする条件分岐命令が多数存在する。例えば、プログラム内に数多く存在するループ処理は必ず最後にループを抜ける処理が必要となる。このループを抜ける処理はループを構築する条件分岐命令がループを行なう分岐方向とは逆の方向へ分岐することにより実現される。
【００１４】
このため、ループ処理は通常の分岐方向とは異なる、特異な分岐の振る舞いが起こると、リセッティングカウンタを用いた方法は信頼度を再設定する。しかし、この特異な振る舞いは一時的なものであり、予測は再び成功するようになる。予測に成功するにも関わらず、このループ処理を構成する条件分岐命令に対する予測が信頼を取り戻すには多くの信頼度の更新機会を要する。信頼性を取り戻すまでの間、プロセッサの投機処理が誤停止することでプロセッサの処理能力は低下する。
【００１５】
本発明は上記に鑑みてなされたものであり、関連技術に係る発明よりも高精度な分岐予測の信頼度見積もりを行なう分岐予測の信頼度見積もり回路及びその方法を提供することを目的とする。
【課題を解決するための手段】
【００１６】
上述の問題を解決するため、本発明に係る分岐予測の信頼度見積もり回路は、入力されたプログラムをパイプライン処理する命令処理パイプラインと、プログラム内に含まれる条件分岐命令の分岐方向を予測する分岐予測器と、前記条件分岐命令に対する予測の信頼性の有無に応じて命令の投機処理実行の可否を決めるパイプラインゲーティング回路と、を有するプロセッサにおける分岐予測の信頼度見積もり回路であって、前記条件分岐命令に対する予測の信頼度から該予測の信頼性の有無を判定する信頼性判定手段と、前記条件分岐命令に対する前記予測の前記信頼度を更新する信頼度更新手段と、前記信頼性の判定に用いる許容閾値を記憶する許容閾値記憶回路と、を備え、前記信頼性判定手段は、前記許容閾値記憶回路から入力された前記許容閾値と前記信頼度とを比較して前記信頼性の有無を判定することを特徴とする。
【００１７】
上述の問題を解決するため、本発明に係る分岐予測の信頼度見積もり方法は、入力されたプログラムをパイプライン処理する命令処理パイプラインと、プログラム内に含まれる条件分岐命令の分岐方向を予測する分岐予測器と、前記条件分岐命令に対する予測の信頼性の有無に応じて命令の投機処理実行の可否を決めるパイプラインゲーティング回路と、を有するプロセッサにおける分岐予測の信頼度見積もり方法であって、前記条件分岐命令に対する予測の信頼度から該予測の信頼性の有無を判定する際に用いる許容閾値を記憶する許容閾値記憶手順と、前記信頼性の有無を判定する信頼性判定手順と、前記条件分岐命令に対する前記予測の前記信頼度を更新する信頼度更新手順と、を備え、前記信頼性判定手順は、前記許容閾値記憶手順から入力された前記許容閾値と前記信頼度とを比較して前記信頼性の有無を判定することを特徴とする。
【発明の効果】
【００１８】
本発明によれば、信頼性判定手段により、予測の一定の失敗を許容することで条件分岐命令の特異な分岐の振る舞いを許容し、正常な分岐の振る舞いに対しての予測の信頼性を正しく判定することができる。併せて、信頼度更新手段により、予測の失敗数が許容できない場合に信頼度を最も低い状態に再設定することで、信頼を一度失った条件分岐命令が短期間で信頼を取り戻すことを避けることにより、高精度な分岐予測の信頼度見積もりを行なう分岐予測の信頼度見積もり回路及びその方法を提供することができる。
【発明を実施するための最良の形態】
【００１９】
［第１の実施の形態の構成］
図３を用いて本発明の第１の実施の形態を説明する。ここで、図３は、本発明の第１の実施の形態の構成を示すブロック図である。
【００２０】
図３によると、本発明の第１の実施の形態は、本発明の条件分岐命令に対する予測の信頼性を判定する手段と、条件分岐命令に対する予測の信頼度を更新する手段を有する信頼度見積もり回路１０、信頼度記憶回路１１、許容閾値記憶回路１２、パイプラインゲーティング回路２０、命令処理パイプライン３０及び分岐予測器４０を備える。
【００２１】
命令処理パイプライン３０は、プロセッサに入力された命令列を処理する装置であり、信頼度見積もり回路１０、信頼度記憶回路１１、パイプラインゲーティング回路２０及び分岐予測器４０と接続されている。
【００２２】
命令処理パイプライン３０は条件分岐命令の入力時に分岐予測器４０と信頼度記憶回路１１とに条件分岐命令のアドレスを出力する。又、命令処理パイプライン３０は、条件分岐命令の実行が完了した際にこの条件分岐命令のアドレスと分岐結果とを分岐予測器４０と信頼度見積もり回路１０とに出力する。
【００２３】
分岐予測器４０は、命令処理パイプライン３０接続されており、分岐の予測を行い、その結果を命令処理パイプライン３０に出力する。又、分岐予測器４０は、条件分岐命令の分岐結果が入力された際に予測の更新を行なう。
【００２４】
信頼度記憶回路１１は、命令処理パイプライン３０と、信頼度見積もり回路１０とに接続されており、入力された条件分岐命令のアドレスから信頼度を読み出し、信頼度見積もり回路１０に出力する。又、信頼度記憶回路１１は、信頼度見積もり回路１０から条件分岐命令のアドレスと更新された信頼度とを受け取り記憶する。
【００２５】
信頼度見積もり回路１０は、信頼度記憶回路１１、許容閾値記憶回路１２、パイプラインゲーティング回路２０及び命令処理パイプライン３０と接続されており、信頼度記憶回路１１から信頼度が入力されると、許容閾値記憶回路１２から入力された許容閾値と信頼度とを比較して信頼性の有無を判定し、判定結果をパイプラインゲーティング装置２０に出力する。又、信頼度見積もり回路１０は、命令処理パイプライン３０から実行された条件分岐命令のアドレスと分岐結果が入力された際に許容閾値記憶回路１２から入力された許容閾値とを用いて信頼度を更新し、信頼度記憶回路１１に出力する。
【００２６】
許容閾値記憶回路１２は、信頼度見積もり回路１０での信頼性の判定に用いる許容閾値を記憶する。
【００２７】
パイプラインゲーティング回路２０は、信頼度見積もり回路１０及び命令処理パイプライン３０と接続されており、信頼度見積もり回路１０から入力された条件分岐命令の信頼性の情報と、命令処理パイプライン３０から入力された実行された条件分岐命令との情報から命令処理パイプライン３０による命令フェッチの停止と再開を制御する。
【００２８】
［第１の実施の形態の動作］
図１は信頼度見積もり回路１０で行なわれる信頼度更新手段及び信頼性判定手段の一例である。状態名である２進数は信頼度の値を表す。図１の許容閾値は４（１００）であり、信頼度見積もり回路１０は、例えば許容閾値記憶回路１２から入力された信頼度が４（１００）の場合は信頼できると判定し、許容閾値記憶回路１２から入力された信頼度が3（０１１）の時は信頼できないと判定する。
【００２９】
又、状態の更新を行なう時は、信頼度見積もり回路１０は、例えば信頼度が５（１０１）で予測に成功した場合は信頼度を６（１１０）に更新して条件分岐命令のアドレスと共に許容閾値記憶回路１２に出力し、信頼度が５（１０１）で予測に失敗した場合は信頼度を４（１００）に更新して条件分岐命令のアドレスと共に許容閾値記憶回路１２に出力し、信頼度が４（１００）で予測に失敗した場合は信頼度を０（０００）に再設定して条件分岐命令のアドレスと共に許容閾値記憶回路１２に出力する。
【００３０】
［他の実施の形態］
次に、本発明の第２の実施の形態について図面を参照して説明する。第１の実施の形態と同様の構成要素については図と同様の符号を付し、詳細な説明を省略する。ここで、図４は、第２の実施の形態の構成を示すブロック図である。
【００３１】
図４を参照すると、第２の実施の形態は、第１の実施の形態の分岐予測器の代わりに分岐予測記憶回路４１を備える。
【００３２】
分岐予測記憶回路４１は１つ又は複数のエントリを持つテーブルであり、１つのエントリは1ビットで構成される。前記エントリは、例えば1ならば分岐成立、０ならば分岐不成立というように分岐の予測の方向を記憶している。
【００３３】
分岐予測記憶回路４１は信頼度見積もり回路１０と、命令処理パイプライン３０とに接続されており、命令処理パイプライン３０から入力されたアドレスに応じて、読み出した分岐の予測を命令処理パイプライン３０に出力する。
【００３４】
命令処理パイプライン３０は信頼度見積もり回路１０に実行が完了した条件分岐命令のアドレスを出力する。
【００３５】
信頼度見積もり回路１０は第１の実施の形態における接続に加えて、分岐予測記憶回路４１に接続されている。信頼度見積もり回路１０は、条件分岐命令に対する予測の信頼度から予測の信頼性の有無を判定し、入力されたアドレスと分岐結果とから信頼度と分岐の予測の方向とを更新する。信頼度見積もり回路１０は信頼度が０で、かつ予測に失敗した場合に分岐予測の方向を反転し分岐予測記憶回路４１に記憶する。
【００３６】
すなわち、信頼度更新手段は、信頼度の値を増減させることで更新を行い、予測に成功した場合に信頼度を増加させ、予測に失敗かつ信頼度が許容閾値よりも高い場合に信頼度を減少させ、予測に失敗かつ許容閾値以下の場合に信頼度を最も低い値に設定する。
【００３７】
信頼度を最も低い値に設定した後に予測を失敗したときは、分岐予測更新手段が分岐成立の場合から分岐不成立の場合又は分岐不成立の場合から分岐成立の場合にそれぞれ分岐の予測の方向を反転する。その後、信頼度更新手段は信頼度の値を増減させることで更新を行う。
【００３８】
図６は第２の実施の形態における信頼度更新手段と信頼性判定手段の一例を示す図である。状態名は１ビットの分岐の予測の方向と３ビットの信頼度の値の組み合わせである。分岐の予測は分岐成立を１、分岐不成立を０で表している。分岐の予測は信頼度が０で、かつ予測に失敗した場合にのみ値が反転される。又、分岐の予測の値に応じて複数の前記許容閾値を使用する事も可能である。図６では、分岐成立と予測する場合の前記許容閾値を５（１０１）、分岐不成立と予測する場合の前記許容閾値を４（１００）と設定している。
【００３９】
なお、分岐予測記憶回路４１は信頼度記憶回路１１と統合することができる。
【００４０】
次に、本発明の第３の実施の形態について図面を参照して説明する。第１の実施の形態と同様の構成要素については図と同様の符号を付し、詳細な説明を省略する。ここで、図５は、第３の実施の形態の構成を示すブロック図である。
【００４１】
図５を参照すると、第１の実施の形態の構造に加えて、許容閾値更新回路１３と温度計測回路５０とが設けられている。
【００４２】
温度計測回路５０の情報は接続されている許容閾値更新回路１３に逐次送信されている。
【００４３】
許容閾値更新回路１３は温度が予め設定された温度閾値より高い場合に許容閾値記憶回路１２から入力された前述の許容閾値の値を小さくし、許容閾値記憶回路１２に出力する。なお、この温度閾値は複数でもよい。更新された許容閾値の値は信頼度見積もり回路１０で使用される。
【００４４】
前述の許容閾値を小さくすると信頼性があると判定される条件分岐命令が増え、フェッチが停止する回数が増加する。消費する電力が減り、プロセッサの温度を下げる効果が期待できる。
【００４５】
温度計回路５０から許容閾値更新回路１３に入力される信号は他のプロセッサからの減速命令や、システム上で動作するオペレーティングシステムやソフトウェアからの減速命令で代用できることを当業者は容易に想像できる。
【００４６】
又、信頼性見積もりの精度を向上させることで、パイプラインゲーティングによる投機処理の誤停止を削減する。この結果、プロセッサの性能低下を抑制し、電力効率を向上させることができる。信頼性が低いと判定される条件分岐命令の集合に予測に成功する条件分岐命令の含有率を減らし、処理速度の低下を抑える。
【産業上の利用可能性】
【００４７】
本発明は、プロセッサ、特にパイプライン構造を持ち、かつ投機処理を行うプロセッサに適用することでプロセッサの電力効率を改善することができる。
【図面の簡単な説明】
【００４８】
【図１】第１の実施の形態の信頼度見積もり回路で行なわれる信頼度更新手段及び信頼性判定手段の一例を示す図である。
【図２】リセッティングカウンタを用いた方法による信頼度更新手段と信頼性判定手段の一例を示す図である。
【図３】第１の実施の形態の構成を示すブロック図である。
【図４】第２の実施の形態の構成を示すブロック図である。
【図５】第３の実施の形態の構成を示すブロック図である。
【図６】第２の実施の形態における信頼度更新手段及び信頼性判定手段の一例を示す図である。
【符号の説明】
【００４９】
１０  信頼度見積もり回路
１１  信頼度記憶回路
１２  許容閾値記憶回路
１３  許容閾値更新回路
２０  パイプラインゲーティング回路
３０  命令処理パイプライン
４０  分岐予測器
４１  分岐予測記憶回路
５０  温度計測回路
【図１】
2010152843.tif 000003
【図２】
2010152843.tif 000004
【図３】
2010152843.tif 000005
【図４】
2010152843.tif 000006
【図５】
2010152843.tif 000007
【図６】
2010152843.tif 000008