(57)【要約】【課題】電力的に効率的な命令プリフェッチメカニズム【解決手段】    プロセッサは、重み付き分岐予測値を生成する条件付き分岐命令予測機構を含む。強い重み付き予測よりも正確さが低くなる傾向がある弱い重み付き予測に関しては、推測的にキャッシュを満たしてその後にフラッシュすることと関連する電力は、命令プリフェッチを停止させることによって節約される。命令フェッチは、分岐条件がパイプライン内において評価されさらに実際の次のアドレスが知られているときに継続する。代替として、キャッシュからのプリフェッチが継続することができる。適切なキャッシュデータが誤予測された分岐に基づいてプリフェッチされた命令に置き換えられるのを回避するため、キャッシュミスの場合は弱い重み付き予測に応じてプリフェッチを停止させることができる。【選択図】図２
2008529191.tif 000002
【特許請求の範囲】
【請求項１】
条件付き分岐命令に関する複数の重み付き分岐予測値のうちの１つを生成する分岐予測機構を有するプロセッサ内における命令プリフェッチ方法であって、
強い重み付き予測に関しては、予測された次のアドレスから命令をプリフェッチすることと、
弱い重み付き予測に関しては、前記分岐条件が評価されるまで命令のプリフェッチを停止させること、とを具備する、方法。
【請求項２】
前記分岐予測機構は、少なくとも１つの飽和カウンタを含む請求項１に記載の方法。
【請求項３】
前記飽和カウンタの出力を少なくとも１つの静的予測と結合させて前記重み付き分岐予測値を生成することをさらに具備する請求項２に記載の方法。
【請求項４】
前記飽和カウンタは、ｎビットを具備し、
強い重み付き予測は、ｎの全ビットが一致する予測であると定義することと、
弱い重み付き予測は、いずれかのビットが一致しない予測であると定義すること、とをさらに具備する請求項２に記載の方法。
【請求項５】
前記飽和カウンタは、３つ以上のビットを具備し、
強い重み付き予測は、２つの最上位ビットが一致する予測であると定義することと、
弱い重み付き予測は、２つの最上位ビットが一致しない予測であると定義すること、とをさらに具備する請求項２に記載の方法。
【請求項６】
前記飽和カウンタは、ｎビットの２進カウンタを具備し、
強い重み付き予測は、Ｎ以下でさらに(2n−1)−N以上のカウンタ値であると定義することと、
弱い重み付き予測は、Ｎよりも大きくさらに(2n−1)−N未満のカウンタ値であると定義すること、とをさらに具備し、Ｎは、(2n/2)−2以下の負でない整数である、請求項２に記載の方法。
【請求項７】
前記分岐条件が評価されるまで命令のプリフェッチを停止させることは、前記プロセッサの外部のメモリからの命令のプリフェッチを停止させることを具備する請求項１に記載の方法。
【請求項８】
命令実行パイプラインと、
条件付き分岐命令の評価を予測するため及び重み付き分岐予測値を出力するために動作可能な分岐予測機構と、
前記分岐予測機構からの強い重み付き予測に応じて予測された次のアドレスから推測的に命令をフェッチして前記命令を前記パイプライン内にローディングするため、及び前記分岐予測機構からの弱い重み付き予測に応じて命令のプリフェッチを停止させるために動作可能な命令プリフェッチ機構と、を具備するプロセッサ。
【請求項９】
分岐予測機構は、少なくとも１つの飽和カウンタを含む請求項８に記載のプロセッサ。
【請求項１０】
前記分岐予測機構は、前記飽和カウンタの前記出力を少なくとも１つの静的予測と結合させる請求項９に記載のプロセッサ。
【請求項１１】
前記飽和カウンタは、ｎビットを具備し、ｎの全ビットが一致する場合は、前記予測は強い重み付きであり、いずれかのビットが一致しない場合は、前記予測は弱い重み付きである請求項９に記載のプロセッサ。
【請求項１２】
前記飽和カウンタは、３つ以上のビットを具備し、２つの最上位ビットが一致する場合は、前記予測は強い重み付きであり、２つの最上位ビットが一致しない場合は、前記予測は弱い重み付きである請求項９に記載のプロセッサ。
【請求項１３】
前記命令プリフェッチ機構は、前記予測された分岐ターゲットアドレスが命令を格納するキャッシュメモリ内において見つからない場合のみに弱い重み付き予測に応じて命令のプリフェッチを停止させる請求項８に記載のプロセッサ。
【請求項１４】
パイプライン化されたプロセッサ内における誤予測された分岐に関するキャッシュラインリプレースメントを防止する方法であって、
前記予測及び前記予測の精度の信頼レベルを示す重み付き値を用いて条件付き分岐命令の評価を予測することと、
前記条件付き分岐命令に従って前記予測された次のアドレスに関して推測的にキャッシュメモリにアクセスすることと、
前記アクセスがキャッシュ内においてミスした場合で、前記予測値が低い精度信頼度を示す場合は、前記ミスに応じてキャッシュラインリプレースメントを打ち切ること、とを具備する方法。
【請求項１５】
前記条件付き分岐命令を前記パイプライン内において評価することと、その後に前記条件付き分岐命令に従って前記評価された次のアドレスに関して前記キャッシュメモリにアクセスすること、とをさらに具備する請求項１４に記載の方法。
【請求項１６】
前記予測及び前記予測の精度の信頼レベルを示す重み付き値を用いて条件付き分岐命令の評価を予測することは、前記条件付き分岐命令が成立と評価したときに飽和カウンタの数を増やすことと、前記条件付き分岐命令が不成立と評価したときに前記飽和カウンタの数を減らすこと、とを具備する請求項１４に記載の方法。
【請求項１７】
プロセッサ内における命令プリフェッチ方法であって、
各条件付き分岐命令に関して、成立が強く予測されるから成立が弱く予測されるまでの範囲又は不成立から不成立強く予測されるまでの範囲の評定された分岐予測値を決定することと、前記決定された評定された予測値に基づいて条件付きで命令をプリフェッチすること、とを具備する方法。
【請求項１８】
前記決定された評定された予測が、成立が強く予想されるか又は不成立が強く予想されるである場合は、予測された次のアドレスにおいて命令をプリフェッチし、前記評定された予測値が、成立が弱く予測されるか又は不成立が弱く予測されるである場合は、前記分岐条件が前記パイプライン内において評価されるまで命令のフェッチを遅らせる請求項１７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的には、プロセッサ分野に関するものである。本発明は、より具体的には、電力的に効率的なプロセッサ命令プリフェッチ方法に関するものである。
【背景技術】
【０００２】
携帯型電子デバイスは、非常に様々な組織上、計算上、通信上及び娯楽上のサービスを提供する。これらのデバイスは、ますます普及しさらにますます精巧になってきている。携帯型電子デバイスが発展する上では、機能の向上と小型化に対する要求が熾烈さを極める傾向にある。向上した機能は、向上した計算力、特にこれまでよりもさらに高速かつ強力なプロセッサを要求する。
【０００３】
携帯型電子デバイスは、より高速なプロセッサを要求する高度な特長及び機能を提供するのと同様に、それ自体が小型・軽量化し続けている。この傾向が及ぼす１つの大きな影響は、前記デバイス内のプロセッサ及びその他の電子機器に電力を供給するために用いられる電池の小型化である。電池技術の向上がこの問題を部分的に相殺する一方で、電池の小型化は、携帯型電子デバイスの全ての電子機器、特に埋め込まれたプロセッサに関して厳しい電力収支を依然として課している。
【０００４】
従って、多くの用途、例えばほとんどの携帯型電子デバイス、にとっては、性能を向上させ及び／又は電力消費量を低減させるプロセッサの改良が望ましい。ほとんどの現代のプロセッサは、各々が複数の実行ステップを有する逐次命令が実行の際にオーバーラップするパイプライン化されたアーキテクチャを採用する。最高の性能を確保するためには、これらの命令がパイプライン内を連続的に流れるべきである。命令がパイプラインからフラッシュされ、その後に再始動されることになるようないずれの状況も、性能及び電力消費量に対して悪影響を及ぼす。
【０００５】
実世界のすべてのプログラムは、条件付き分岐命令を含み、これらの命令の実際の分岐行動は、前記命令がパイプラインの奥深くにおいて評価されるまで不明である。ほとんどの現代のプロセッサは、条件付き分岐命令の分岐行動がパイプライン内において早期に予測され、プロセッサが前記分岐予測に基づいて推測的に命令をフェッチ（プリフェッチ）して実行する何らかの形の分岐予測を採用する。実際の分岐行動が決定されたときに、前記分岐が誤予測された場合は、推測的にフェッチされた命令をパイプラインからフラッシュし、新しい命令を正確な次のアドレスからフェッチしなければならない。誤った分岐予測に応じて命令をプリフェッチすることは、プロセッサの性能及び電力消費量に対して悪影響を及ぼす。
【０００６】
既知の分岐予測技術は、静的及び動的の両方の予測を含む。幾つかの分岐命令の起こりうる行動は、プログラマ及び／又はコンパイラによって静的に予測可能である。一例は、エラー検査ルーチンである。ほとんどのコードは適切に実行し、エラーは稀である。従って、「エラー時分岐」関数を実装する分岐命令は、非常に大きな割合の時間において「不成立」と評価する。前記命令は、分岐条件の最も可能性のある結果を知っているプログラマ又はコンパイラによって設定された静的分析予測ビットをオプコード内に含むことができる。その他の分岐命令は、実行時間属性に基づいて静的に予測することができる。例えば、負の変位を有する分岐（すなわち、コード内において「後方に」分岐する分岐）、例えばループ出口評価、が通常は選択され、正の変位を有する分岐（コード内において「前方に」分岐する分岐）はめったに選択されない。従って、前記の分岐は、「成立」、後者の分岐は「不成立」と静的に予測することができる。
【０００７】
動的予測は、一般的には、予測中の分岐命令及び／又は同じコード内のその他の分岐命令の分岐評価歴（及び幾つかの場合は分岐予測精度歴）に基づく。実際のコードの広範な解析は、最近の過去の分岐評価パターンが将来の分岐命令の評価に関する優れた指標であることを示している。単純な分岐歴予測器（ｐｒｅｄｉｃｔｏｒ）の一例として、条件付き分岐命令のアドレスビットによって各々がインデキシングされる複数の１ビットフラグを維持することができる。各フラグは、分岐が「成立」と評価したときにセットされ、分岐が「不成立」と評価したときにリセットされる。このように、分岐予測は、単純に、関連づけられたフラグの値であることができる。幾つかの分岐命令に関しては、この予測器は、正確な性能をもたらすことができる。
【０００８】
分岐予測精度を最高にすることに密接に関連する１つの設計上の最終目標は、誤った分岐予測の悪影響を最小に抑えることである。１ビットフラグが動的分岐予測器となっている上記の「エラー時分岐」条件について検討する。通常は、前記分岐が成立せず、前記関連フラグはゼロの状態であり、この命令の将来の実行に関して「不成立」と予測される。誤りが発生したときには、分岐が誤予測され、誤った命令がパイプライン内にプリフェッチされる。プロセッサは、既知の分岐誤予測回復方法に従って（性能を犠牲にしさらに電力を浪費して）誤った分岐予測から回復し、「成立した」分岐を反映させるようにフラグがセットされる。しかしながら、前記分岐命令の次の実行は「不成立」になる可能性が依然として非常に高い。この場合は、前記の単一ビット分岐評価歴は、各々の異常な分岐評価に関して２つの誤予測、すなわち、前記異常に関する誤予測及び前記分岐命令の次に後続する実行に関する誤予測を引き起こす。
【０００９】
誤予測分岐の評価の悪影響を最小にするための１つの既知の技術は、強予測又は弱予測、すなわち、信頼度（例えば、強予測又は弱予測）によって重みが付けられた予測（すなわち、成立又は不成立）の概念を導入することである。この概念の単純な一例は、メモリアクセス命令アドレスによってインデキシングされた２ビット飽和カウンタのテーブルを具備する２モード分岐予測器である。各カウンタは、以下のように重み付き予測値が各々割り当てられた４つの状態のうちの１つを想定する。
【００１０】
１１−成立が強く予測される
１０−成立が弱く予測される
０１−不成立が弱く予測される
００−不成立が強く予測される
前記カウンタは、対応する分岐命令が「成立」と評価するごとに数字が増え、前記命令が「不成立」と評価するごとに数字が減る。この数字の増加／減少は、０ｂ１１において増加が停止したときに、及び０ｂ００において減少が停止したときに「飽和する」。従って、分岐予測は、結果（成立又は不成立）だけでなく、前記予測の強度又は信頼度を示す重み付け係数も含む。
【００１１】
上記において検討された「エラー時分岐」等の分岐命令は、単一ビットフラグ予測器の場合と同じように２回誤予測するのではなく、飽和カウンタによって１度誤予測するだけであるにすぎない。第１の分岐予測は、予測器を「不成立が強く予測される」から「不成立が弱く予想される」に移行させる。実際の予測は２モードであり、ＭＳＢによって表される。従って、前記分岐命令の次の発生は、依然として「不成立」と予測され、この予測はおそらく正確である。
【００１２】
２モード飽和カウンタは、任意の大きさにすることができる。例えば、３ビットカウンタに予測信頼度を以下のように割り当てることができる。
【００１３】
１１１−成立が非常に強く予測される
１１０−成立が強く予測される
１０１−成立が予測される
１００−成立が中程度で予測される
０１１−不成立が中程度で予測される
０１０−不成立が予測される
００１−不成立が強く予測される
０００−不成立が非常に強く予測される
当然のことであるが、これらのラベルは参照専用であり、前記カウンタの２進値は、分岐予測信頼度を決定し、範囲のいずれかの端部に向かうほど信頼度が高く、範囲の中央に向かうほど信頼度が低くなる。
【００１４】
当業において知られるように、飽和カウンタは、分岐評価に加えて予測精度を追跡することが可能である。飽和カウンタの出力は、「一致」又は「不一致」の重み付き値であることができ、前記出力を静的予測と組み合わせて重み付き予測に至る。一般的には、当業においては非常に広範な分岐予測方法が知られており、分岐をまったく予測せず２つ以上のその他の独立した予測器の中から予測を選択するために予測器が用いられる分岐予測方法を含む。例えば、本明細書において参照されることによってその全体が本明細書に組み入れられているスコット・マッファーリングの１９９３の論文"Combining Branch Predictors," Digital Western Research Laboratory Technical Note TN-36（「分岐予測器の結合」、デジタル・ウェスタン・リサーチ・ラボラトリ技術注記ＴＮ−３６）を参照すること。
【発明の開示】
【発明が解決しようとする課題】
【００１５】
予測における信頼度尺度の導入は、経時での実際の分岐行動を追跡することによって分岐予測精度を向上させる一方で、実際の予測は２モード方式であってＭＳＢによって表される。先行技術においては、分岐は、「成立」又は「不成立」として予測され、分岐ターゲットアドレス又は分岐命令への次の順次アドレスのいずれかである予測された次のアドレスからプリフェッチが進行する。すなわち、予測の重み付け、又はその強度は考慮されない。
【課題を解決するための手段】
【００１６】
一実施形態においては、分岐予測の重み付け、又は強度は、プロセッサが条件付き分岐命令に従って命令をプリフェッチするかどうかを決定する。強い重み付き分岐予測である場合は命令がプリフェッチされる。弱い重み付き予測の場合は、プリフェッチを停止させてパイプライン内における分岐条件の評価を待つことによってプロセッサの資源及び電力が保存される。弱い重み付き分岐予測は、強い重み付き分岐予測よりも正確さが低いため、弱い重み付き予測に応じたプリフェッチは、誤予測及びその後のパイプラインフラッシュが発生する可能性がより高くなる。弱い重み付き予測は、プリフェッチを完全に停止させることができ、代替として、キャッシュミスの場合のみにプリフェッチを停止させることができる。
【００１７】
一実施形態は、複数の重み付き分岐予測値のうちの１つを生成する分岐予測機構を有するプロセッサにおける命令プリフェッチ方法に関連する。強い重み付き予測に関しては、予測された次のアドレスから命令のプリフェッチが開始される。弱い重み付き予測に関しては、分岐条件が評価されるまで命令のプリフェッチが停止される。
【００１８】
他の実施形態は、プロセッサに関連する。前記プロセッサは、命令実行パイプラインと、条件付き分岐命令の評価を予測するため及び重み付き分岐予測値を出力するために動作可能な分岐予測機構と、を含む。前記プロセッサは、前記分岐予測機構からの強い重み付き予測に応じて予測された次のアドレスから推測的に命令をフェッチしてこれらの命令をパイプライン内にローディングするために、及び前記分岐予測機構からの弱い重み付き予測に応じて命令プリフェッチを停止させるために動作可能な命令プリフェッチ機構をさらに含む。
【００１９】
他の実施形態は、パイプライン化されたプロセッサ内での誤予測された分岐に関するキャッシュラインリプレースメントを防止する方法に関連する。条件付き分岐命令の評価は、予測及び前記予測の精度の信頼レベルを示す重み付き値を用いて予測することであり、前記条件付き分岐命令に従って、予測された次のアドレスに関して推測的にキャッシュメモリにアクセスされる。前記アクセスがキャッシュ内においてミスした場合で、前記予測値が、精度信頼度が低いことを示す場合は、前記ミスに応じたキャッシュラインリプレースメントが打ち切られる。
【発明を実施するための最良の形態】
【００２０】
図１は、プロセッサ１０の機能ブロック図を示す。プロセッサ１０は、制御論理１４に従って命令実行パイプライン１２において命令を実行する。幾つかの実施形態においては、パイプライン１２は、複数の並列パイプラインを有するスーパースカラー設計であることができる。パイプライン１２は、パイプステージで構成される様々なレジスタ又はラッチ１６と、１つ以上の算術論理装置（ＡＬＵ）１８と、を含む。汎用レジスタ（ＧＰＲ）ファイル２０は、メモリ階層の最上部を具備するレジスタを提供する。
【００２１】
パイプライン１２は、命令キャッシュ（Ｉ−キャッシュ）２２から命令をフェッチし、メモリアドレスの変換及び許可は命令変換ルックアサイドバッファ（ＩＴＬＢ）２４によって管理される。条件付き分岐命令がパイプライン１２において早期に復号されるときには、分岐予測機構２３は、分岐行動を予測し、前記予測を命令プリフェッチ装置２５に提供する。命令プリフェッチ装置２５は、命令キャッシュ２２から、「成立」分岐予測に関してはパイプライン１２内において計算された分岐ターゲットアドレスから、又は「不成立」と予測された分岐に関しては次の順次アドレスから推測的に命令をフェッチする。いずれの場合においても、前記プリフェッチされた命令は、推測的な実行のためにパイプライン１２内にローディングされる。
【００２２】
データキャッシュ（Ｄ−キャッシュ）２６からデータにアクセスされ、メモリアドレスの変換及び許可は主変換ルックアサイドバッファ（ＴＬＢ）２８によって管理される。様々な実施形態においては、ＩＴＬＢは、ＴＬＢの一部分のコピーを具備することができる。代替として、ＩＴＬＢ及びＴＬＢは、統合することができる。同様に、プロセッサ１０の様々な実施形態においては、Ｉキャッシュ２２及びＤキャッシュ２６は、統合すること、又は統一することができる。Ｉキャッシュ２２及び／又はＤキャッシュ２６内におけるミスは、メモリインタフェース３０の制御の下で主（オフチップ）メモリ３２にアクセスさせる。
【００２３】
プロセッサ１０は、様々な周辺装置３６へのアクセスを制御する入力／出力（Ｉ／Ｏ）インタフェース３４を含むことができる。当業者は、プロセス１０の数多くの変形が可能であることを理解するであろう。例えば、プロセッサ１０は、Ｉキャッシュ又はＤキャッシュ２２、２６のいずれか又は両方に関する第２のレベル（Ｌ２）のキャッシュを含むことができる。さらに、プロセッサ１０において描かれる機能ブロックのうちの１つ以上を特定の実施形態から省くことが可能である。
【００２４】
上述されるように、当業においては非常に様々な分岐予測方法及びアルゴリズムが知られている。様々な分岐予測器の基礎となる構造又は方法にかかわらず、強い重み付き予測は弱い重み付き予測よりも正確であることが直観的に明らかであり、さらに統計的に証明可能である。すなわち、飽和カウンタのより飽和している値は、前記カウンタの重み付け範囲の中央方向の値よりも正確に分岐行動を予測する。中央の値は、その最近の評価歴がフラックス内にある分岐命令を表し、飽和値は、首尾一貫した最近の評価歴を有する分岐命令を表す。
【００２５】
強い重み付き分岐予測と弱い重み付き分岐予測との間におけるこの精度の違いは、強く予測された分岐命令に関する命令のみをプリフェッチすることによって、パイプライン化されたプロセッサ１０内の電力を保存するために利用することができる。典型的な分岐予測方法が図２を参照しつつ説明される。パイプライン１２において条件付き分岐命令が検出される（ブロック４０）。この検出は、通常は、復号パイプステージにおいて行われるが、幾つかの実施形態においては、Ｉキャッシュ２２内にローディングされる前に命令を予め復号することができ、パイプライン制御論理１４は、命令をフェッチ直後に条件付き分岐命令を認識することができる。命令が条件付き分岐命令であることが検出され次第、重み付き値を有する予測を用いてその評価（「成立」又は「不成立」）が予測される（ブロック４２）。この重み付き予測は、例えば分岐予測機構２３によって提供される。分岐予測の重みが評価され（ブロック４４）、強い重み付き予測の場合は、Ｉキャッシュ２２から命令がプリフェッチされてパイプライン１２において推測的に実行される（ブロック４６）。弱い重み付き予測の場合は、命令プリフェッチ装置２５は、いずれの命令もプリフェッチしない（ブロック４８）。逆に、プリフェッチ装置２５は、該当する条件付き分岐命令がパイプライン１２において評価されてその実際の分岐行動が知られるまでプリフェッチを停止させる。その時点においては、既知の適切な次のアドレスから命令フェッチが続く。
【００２６】
実際には、この方法は、第３の状態又はデイレクティブ、すなわち、分岐の成立を予測してプリフェッチする、分岐の不成立を予測してプリフェッチする、又は実際の分岐条件の評価を待つ、を予測に加えることによって、先行技術の２モード方式分岐予測（すなわち、「成立」又は「不成立」）を変換させる。プロセッサ１０は、（強い重み付き分岐結果と比較して）予測が誤りであってプリフェッチされた命令をフラッシュしなければならない可能性が高いときに、弱い重み付き分岐ターゲットから命令をプリフェッチしないことによって、命令をプリフェッチしてその推測的な実行を始めるために要求される電力を浪費しない。
【００２７】
強く予測される分岐の場合は、本発明の方法は、プロセッサの性能に対して影響を有さず、当業においてよく知られるようにプリフェッチが行われて分岐精度が性能に対して影響を与える。弱く予測される分岐の場合は、プリフェッチが停止され、プロセッサの性能に対する影響は、予測精度および可能性のある次のアドレス、すなわち、分岐ターゲットアドレス又は次の順次アドレス、がＩキャッシュ２２内に常駐するかどうかに依存する。性能への影響が下表１において要約されている。
【表１】
2008529191.tif 000003
【００２８】
弱い重み付き分岐予測が正確である場合は、命令のプリフェッチを停止させることは、パイプライン内にストールを導入することによって性能を低下させる。（プリフェッチを行っているのとは相対的に）分岐命令復号と分岐予測との間、そして最終的な分岐条件の評価との間においてパイプステージ数だけ命令の実行がストールされる。この場合は、究極的には同じ命令がフェッチ及び実行されるため電力の節約はない。
【００２９】
しかしながら、弱い重み付き分岐予測が誤っている場合は、本発明のプリフェッチ停止方法は、電力を節約するだけでなく、プロセッサの性能を向上させることもできる。予測されたアドレスがＩキャッシュ２２内に常駐する場合は、プロセッサ１０は、正確な弱い重み付き分岐予測の場合と同じストールを被る。しかしながら、コントローラ１４は、パイプライン１２をフラッシュしてその他の誤予測回復動作に従事する必要がない。誤予測された分岐が回復に関する例外を要求する場合は、命令のプリフェッチを停止させていることは、プリフェッチに対するプロセッサの性能の有意な向上を表す。
【００３０】
弱い重み付き分岐予測が誤っておりさらに予測されたアドレスがＩキャッシュ２２内に常駐しない場合は、本発明のプリフェッチ停止方法は、電力を節約し、プロセッサ性能を大幅に向上させる。この場合は、プリフェッチ動作は、Ｉキャッシュ２２内においてミスし、メモリアクセス及びキャッシュラインリプレースメントを生じさせる。外部メモリへのアクセスは低速で電力を消費し、性能及び電力の両方の管理に対して悪影響を及ぼす。しかしながら、それよりも悪いことに、前記動作は、キャッシュライン全体を、プロセッサ１０が実行する必要のない命令に置き換える。このことは、前記置き換えられた命令が再度フェッチされたときに後続するキャッシュミスを引き起こし、他の外部メモリへのアクセスの遅延及び電力消費を要求する。
【００３１】
本発明の一実施形態においては、弱い重み付き分岐予測に応じて命令プリフェッチが完全に停止されるわけではなく、図３を参照して説明されるように、Ｉキャッシュ２２においてプリフェッチがミスした場合のみに停止される。上述されるように、条件付き分岐命令が検出され（ブロック４０）、その評価が予測される（ブロック４２）。前記予測に強い重みが付けられている場合は、予測された次のアドレスから命令がプリフェッチされる（ブロック４６）。前記予測に弱い重みが付けられている場合は、命令プリフェッチ装置２５は、Ｉキャッシュ２２にアクセスして前記予測された次のアドレスが常駐するかどうかを決定する（ブロック５０）。前記予測されたアドレスがＩキャッシュ２２内においてヒットする場合は、プリフェッチが継続する（ブロック５２）。前記プリフェッチ動作がＩキャッシュ２２内においてミスした場合は、前記プリフェッチ動作は終了され、パイプライン１２において分岐条件が評価されるまでプリフェッチが停止される（ブロック５４）。この実施形態においては、正確な弱い重み付き分岐予測の場合におけるストールが回避され、その一方で、誤った弱い重み付き分岐予測に関してキャッシュラインリプレースメントによって被る有意な性能低下に対して保護する。
【００３２】
Ｉキャッシュミスの場合に弱い重み付き分岐予測が命令のプリフェッチを完全に停止させるか又はプリフェッチを停止させるだけであるかにかかわらず、いずれの所定の実施形態においても、何が「弱い」又は「強い」予測重み付けであるかを定義しなければならない。電力節約に相応の重要性を持たせるとともにある程度の性能劣化は許容可能な用途においては、強い重み付き予測は、飽和カウンタの最も飽和している値のみを具備することができる。すなわち、ハードウェアの観点から、すべてのカウンタビットが一致する場合は、予測は強い重みが付けられてプリフェッチがイネーブルにされ、いずれかのカウンタビットが一致しない場合は、予測は弱い重み付きであるとみなされ、プリフェッチが完全にまたは条件付きでディスエーブルにされる。
【００３３】
電力節約のほうが重要性が低い及び／又は性能のほうが重要である場合は、より柔軟なアプローチ法は、強い重み付きについて定義する際に飽和レベルのカウンタ値に加えて飽和レベルに近いカウンタ値を含むことができる。１つの制限することを意図しない例として、カウンタ値の上位及び下位の２５％を強い重み付きとみなし、中央の５０％を弱い重み付きとみなすことができる。２進カウンタの場合は、この分布に関するハードウェアの観点では、２つの最上位ビットが一致する場合は、予測値は強い重み付きである。代替として、上位又は下位の１／３を強い重み付きとみなし、中央の１／３を弱い重み付きとみなすことができる。強い重み付き予測と弱い重み付き予測の区別は、様々な方法で、特定の用途に応じて適宜定義可能であることを当業者は直ちに理解するであろう。
【００３４】
本明細書において用いられる強い及び弱いという表現、及びその派生表現は、参照表現である。特に、これらの表現は、分岐予測及び該予測の精度の信頼レベルを示す重み付き出力を生成する分岐予測器の出力を指し、ここで、強い重み付きは、高い信頼度を示す出力を指し、弱い重み付きは、低い信頼度を示す出力を指す。弱い重み付き分岐予測に応じて完全にまたは条件付きで命令プリフェッチ及び／又は推測的命令実行を停止させるあらゆるプロセッサ１０は、本発明の適用範囲内である。
【００３５】
本発明は、本明細書においては、本発明の特定の特長、側面及び実施形態に関して説明されているが、数多くの変形、修正、及びその他の条件が本発明の広範な適用範囲内にあることが明確になり、このため、あらゆる変形、修正及び実施形態が本発明の適用範囲内にあるとみなすべきである。従って、本明細書の実施形態は、あらゆる点において例示的な実施形態であって制限するものではないと解釈すべきであり、添付される特許請求項の意味及び同等の意味の範囲内にあるすべての変更は、前記請求項内に包含されることが意図されている。
【図面の簡単な説明】
【００３６】
【図１】プロセッサの機能ブロック図である。
【図２】電力的に効率的な命令プリフェッチ方法の流れ図である。
【図３】電力的に効率的なキャッシュ管理方法の流れ図である。
【図１】
2008529191.tif 000004
【図２】
2008529191.tif 000005
【図３】
2008529191.tif 000006
【国際調査報告】
2008529191.tif 000007
2008529191.tif 000008
2008529191.tif 000009