(57)【要約】  一実施形態では、それぞれが量子期間中のプロセッサ構造の動作に関するプロセッサメトリックに基づいてプロセッサの脆弱性計測値を検出する量子検出器を、脆弱性計測値に基づいて誤り軽減ユニットを制御するコントローラとともに提供する。他の実施形態も記載され請求されている。【選択図】図１
2011515745.tif 000002
【特許請求の範囲】
【請求項１】
量子期間中にプロセッサの格納ユニットの利用値を維持する複数のカウンタと、
前記量子期間中に前記プロセッサの予測ユニットが生じた予測ミス数をカウントする第２のカウンタと、
前記利用値と前記予測ミス数とに少なくとも部分的に基づいて、前記量子期間についての前記プロセッサの少なくとも第１の部分の脆弱性計測値を決定する第１のロジックとを備える装置。
【請求項２】
利用値および予測ミス数の第２のセットに少なくとも部分的に基づいて、前記量子期間についての前記プロセッサの第２の部分の脆弱性計測値を決定する第２のロジックを備える請求項１に記載の装置。
【請求項３】
前記プロセッサの前記少なくとも第１の部分は、前記プロセッサのフロントエンドユニットに対応し、前記プロセッサの前記第２の部分は、前記プロセッサのバックエンドユニットに対応する請求項２に記載の装置。
【請求項４】
前記第１のロジックは、前記利用値を受信し、複数の項を有する一次関数に従って前記脆弱性計測値を決定し、
前記複数の項の各々は、係数と前記利用値のうち１つとを含む請求項１に記載の装置。
【請求項５】
前記脆弱性計測値を受信し、前記脆弱性計測値に基づいて前記プロセッサの少なくとも１つの誤り軽減ユニットを制御する制御信号を生成する第２のロジックをさらに備える請求項４に記載の装置。
【請求項６】
前記第２のロジックは、前記脆弱性計測値が第１の閾値より大きい場合に前記少なくとも１つの誤り軽減ユニットの誤り検出メカニズムをイネーブルし、前記脆弱性計測値が第２の閾値より大きい場合に前記少なくとも１つの誤り軽減ユニットの誤り訂正メカニズムをイネーブルする請求項５に記載の装置。
【請求項７】
前記第２のロジックは、それぞれが複数の量子期間のうち１つに対応する複数の脆弱性計測値を受信し、前記複数の脆弱性計測値に基づいて前記制御信号を生成する請求項５に記載の装置。
【請求項８】
前記第２のロジックは、前記脆弱性計測値が前記第１の閾値より小さい場合に前記少なくとも１つの誤り軽減ユニットをディセーブルし、前記少なくとも１つの誤り軽減ユニットは、前記第２のロジックによりディセーブルされると、非誤り軽減タスクを行うよう構成される請求項６に記載の装置。
【請求項９】
前記第２のロジックは、前記少なくとも１つの誤り軽減ユニットを、第１の複数の量子期間の脆弱性計測値に基づいてプログラムの第１の部分中にイネーブルするよう、および、第２の複数の量子期間の脆弱性計測値に基づいてディセーブルするよう、動的に制御する請求項５に記載の装置。
【請求項１０】
前記装置はプロセッサを備え、
前記複数のカウンタ、前記第２のカウンタ、および前記第１のロジックを有する検出器をさらに備え、
前記検出器は前記プロセッサの第１の部分に関連付けられている請求項１に記載の装置。
【請求項１１】
前記検出器の前記複数のカウンタの少なくとも１つは、前記プロセッサの第２の部分の構造に関連付けられている請求項１０に記載の装置。
【請求項１２】
プロセッサメトリックを利用してプロセッサの少なくとも一部についての量子期間の量子化アーキテクチャ脆弱性係数値（Ｑ−ＡＶＦ値）を決定する段階と、
前記Ｑ−ＡＶＦ値を少なくとも１つの閾値と比較する段階と、
前記比較に基づいて前記プロセッサの少なくとも１つの誤り軽減ユニットを動的に制御する段階とを備える方法。
【請求項１３】
複数の項を有する一次方程式に従って前記Ｑ−ＡＶＦ値を決定する段階をさらに備え、
前記複数の項の各々は、プロセッサメトリック値と重み値とに対応している請求項１２に記載の方法。
【請求項１４】
前記プロセッサメトリック値の各々は、前記プロセッサの複数のフロントエンド構造のいずれか１つについての利用値に対応している請求項１３に記載の方法。
【請求項１５】
第１の利用値は、前記量子期間の各サイクルの構造の有効なエントリの数に対応している請求項１４に記載の方法。
【請求項１６】
前記量子期間に対応する対数値だけ、前記有効なエントリの数をシフトすることにより、前記第１の利用値を決定する段階をさらに備える請求項１５に記載の方法。
【請求項１７】
フロントエンドユニットの命令復号キューのプロセッサメトリック値と、前記フロントエンドユニットの分岐予測器と、前記プロセッサのバックエンドユニットの退避オーダバッファとに基づいて、前記プロセッサの前記フロントエンドユニットの前記Ｑ−ＡＶＦ値を決定する段階をさらに備える請求項１２に記載の方法。
【請求項１８】
複数のコアを有するマルチコアプロセッサと、
前記マルチコアプロセッサに連結されたＤＲＡＭとを備え、
前記複数のコアのうちの第１のコアは、複数のプロセッサメトリック値に基づいて前記第１のコアの脆弱性計測値を検出する検出器と、前記脆弱性計測値に基づいて前記第１のコアの誤り軽減ユニットを制御するコントローラとを含み、
前記複数のプロセッサメトリック値の各々は、第１の期間中のコア構造の動作に関するシステム。
【請求項１９】
前記検出器は、複数のカウンタと、第２のカウンタと、第１のロジックとを含み、
前記複数のカウンタの各々は、前記第１の期間中の前記複数のプロセッサメトリック値を維持し、
前記第２のカウンタは、前記第１の期間中に前記第１のコアの予測ユニットが生じた予測ミス数をカウントし、
前記第１のロジックは、前記複数のプロセッサメトリック値と前記予測ミス数とに少なくとも部分的に基づいて、前記第１の期間の前記第１のコアの少なくとも第１の部分の前記脆弱性計測値を決定する請求項１８に記載のシステム。
【請求項２０】
前記検出器は第２のロジックをさらに含み、
前記第２のロジックは、プロセッサメトリック値および予測ミス数の第２のセットに少なくとも部分的に基づいて、前記第１の期間の前記第１のコアの第２の部分の第２の脆弱性計測値を決定する請求項１９に記載のシステム。
【請求項２１】
前記第１のロジックは前記複数のプロセッサメトリック値を受信し、複数の項を有する一次関数に従って前記脆弱性計測値を決定し、
前記複数の項の各々は、係数と前記複数のプロセッサメトリック値のうち１つとを含む請求項１９に記載のシステム。
【請求項２２】
前記コントローラは、前記脆弱性計測値が第１の閾値より大きい場合に前記誤り軽減ユニットの誤り検出メカニズムをイネーブルし、前記脆弱性計測値が第２の閾値より大きい場合に前記誤り軽減ユニットの誤り訂正メカニズムをイネーブルする請求項１８に記載のシステム。
【請求項２３】
前記コントローラは、それぞれが複数の期間のうち１つに対応する複数の脆弱性計測値を受信し、前記複数の脆弱性計測値に基づいて制御信号を生成する請求項２２に記載のシステム。
【請求項２４】
前記誤り軽減ユニットは、前記コントローラによりディセーブルされると、非誤り軽減タスクを行うよう構成される請求項２２に記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
主に中性子粒子に起因した、放射線が誘発するソフトの誤りはプロセッサの設計者の主要な課題となっている。この種類の誤りは、デバイスの永続的な欠陥を反映したものではないので、ソフトの誤りまたは一時誤りと称されている。一時誤りが生じるビットアップセットは、パッケージ材料およびバンプからのアルファ粒子に起因したものに加えて生じる。単一チップ上のトランジスタ数の指数関数的増加および積極的な電圧スケーリングによって将来のチップ生成においてこの問題は顕著に悪化することが予想される。
【０００２】
宇宙線による襲撃の問題を提起するべく、ある方法ではプロセッサまたは他の半導体デバイスの全ラッチの殆どの割合を、パリティ等のある種の誤り検出で保護しようと試みている。同様に、高性能マイクロプロセッサ内のキャッシュおよびレジスタファイル等の殆どの主要なアレイは、ある種の誤り検出および復帰技術を利用している。単一チップに搭載されるトランジスタ数が今後増えると、後世のプロセッサで同じレベルの信頼性を維持することは益々難しくなっていくことが予期される。
【０００３】
信頼性は経時的欠陥（ＦＩＴ）を尺度としており、１ＦＩＴとは、十億動作時間ごとに１つの欠陥があることを表す。ＦＩＴには３つの主要なコンポーネントが存在する。すなわち、製造プロセスおよびクロックスキームの関数である回路の固有の誤り率、設計パラメータであるマイクロプロセッサのビット数、および、ビットフリップがユーザから見える誤りとなる確率であるアーキテクチャ脆弱性係数（ＡＶＦ）である。ユーザから見える誤りは、マイクロプロセッサのピンに到達して、メインメモリまたは入出力（Ｉ／Ｏ）デバイスへと逃避するビット破損として定義される。ＦＩＴのこれら３つのコンポーネントのうち、ＡＶＦは唯一、経時的に顕著に変化する可能性がある。実際のところ、ＡＶＦは平均値としてプログラムごとに非常に変化が激しいということが研究により分かっている（場合によって９０％を超える）。ＡＶＦは、長期的な平均値ではなく量子期間として知られている短期間のリアルタイム計測において、プログラム内でも激しく変化しうる。
【０００４】
殆どのアーキテクチャおよびマイクロアーキテクチャ誤り検出／復帰メカニズムは、マイクロプロセッサのＡＶＦ平均値を低減させるよう試みており、これにより信頼性全体を向上させようとしている。しかしこのようにして向上した信頼性というのは、電力および性能面の代償をひきかえに達成されるものである。パリティ予測および剰余といったスキームは、主に実行ユニットを保護することを目的としており、高電力消費という代償が伴う。冗長実行等のマイクロアーキテクチャ冗長スキームは、２つの異なる命令の並行演算に利用することのできる実行ユニットを単一の命令を計算する目的で冗長的に利用するので、電力面での代償および性能面での代償両方を伴う。殆どの誤り軽減スキームは、目下のところプログラム実行中にリアルタイムでＡＶＦを計測する信頼できる方法がないために、常時起動状態となる。この結果、これらメカニズムにおける電力および性能面での代償は固定した不利益となっている。
【図面の簡単な説明】
【０００５】
【図１】本発明の一実施形態における方法のフロー図である。
【図２】本発明の一実施形態におけるプロセッサのブロック図である。
【図３】本発明の一実施形態におけるフロントエンドのＱ−ＡＶＦ検出器のブロック図である。
【図４】本発明の一実施形態におけるバックエンドのＱ−ＡＶＦ検出器のブロック図である。
【図５】本発明の一実施形態におけるメモリサブシステムＱ−ＡＶＦ検出器のブロック図である。
【図６】本発明の一実施形態におけるコアＱ−ＡＶＦ検出器のブロック図である。
【図７】本発明の一実施形態におけるシステムのブロック図である。
【発明を実施するための形態】
【０００６】
様々な実施形態において、量子化ＡＶＦ（Ｑ−ＡＶＦ）は、プロセッサ実行中のアーキテクチャ脆弱性のリアルタイム指標を提供しうる。このＱ−ＡＶＦは、ＡＶＦ平均値とは大きく変わる可能性がある。Ｑ−ＡＶＦはアーキテクチャ脆弱性のリアルタイム指標であるので、実施形態は、この情報を利用することで誤り軽減ハードウェアを制御することができる。つまり、実施形態では、量子化ＡＶＦメトリックを計測して、この計測値に基づいて、誤り軽減ハードウェアを利用するべきか否か、およびその利用範囲を決定することができる。例えば、許容範囲にある脆弱性に対して１以上の閾値を設けることができ、Ｑ−ＡＶＦが一定の閾値を超えた場合には軽減ハードウェアを起動することができる。このようにして、誤りハードウェアを動的に制御することが可能となり、脆弱性が低い場合には節電および性能向上を達成することができ、誤り脆弱性が実際に高い場合のみに、これら不利益を代償として信頼性を高めることが可能となる。
【０００７】
これら節電の幾らかの例は、冗長マルチスレッド（ＲＭＴ）、デュアルモード冗長性（ＤＭＲ）等の誤り軽減スキームに見られる。ＲＭＴでは、単一のスレッドの２つのコピーを冗長的に実行し、これらの結果をコミット前にチェックする。ＤＭＲは、同じ命令を２つの別個のハードウェア（２つの対称実行ポート等）で実行して、その結果を比較する。いずれの場合においても、本来冗長なリソースは別個の命令を並行して実行することで性能および全電力利用を向上させることができることから、冗長性に起因して電力および性能両面での代償が生じる。本発明の実施形態を利用することにより、Ｑ−ＡＶＦを計算してソフトの誤り脆弱性が低い期間を特定し、これを、これら誤り軽減技術の利用を動的に制御する目的に利用することができるので、性能、電力、ひいては領域についても節約が可能となる（領域に関しては、冗長実行に利用されてきた領域を利用して性能を向上させることができるからである）。
【０００８】
パリティ予測または剰余等の他の誤り軽減スキームは、処理ごとに固有のコードビットを生成し、結果とともに格納する。結果を読み出す際には、コードを再生成して、格納されていたコードと比較して誤りを検出する。決定されたＱ−ＡＶＦに基づいて、実施形態は、誤り脆弱性が高い場合のみに限ってこのコード生成を行うよう実行を制御することで、問題となっている低脆弱性段階中にはこれら動作を行う電力を節約することができる。パリティおよび誤り訂正符号（ＥＣＣ）も同様にして動的にイネーブルまたはディセーブルが可能であり、これにより本発明の実施形態を利用して節電が可能となる。
【０００９】
別の例では、単一のバイナリＯＮ／ＯＦＦの代わりに多数の脆弱性閾値を提供することができる。この例では、誤り軽減は脆弱性に基づいて増減させることができる。２つの脆弱性閾値を想定する。第１の閾値を下回る値はすべて低脆弱性とみなし、検出または訂正を要しないことにする。第１の閾値および第２の閾値の間の値は中間的脆弱性とみなし、誤り検出を行ってもよいが、訂正は行わないこととする。第２の閾値を超える値は高脆弱性とみなし、誤り検出および訂正の両方を実行することができる。この場合、Ｑ−ＡＶＦメトリックを利用して、プログラムの脆弱性レベルを判断することができる。Ｑ−ＡＶＦが中間であった場合（つまり、２つの閾値の間である場合）、脆弱な構造上にパリティ保護を呼び出すことができる。Ｑ−ＡＶＦが高レベルとなった場合（つまり、第２の閾値を超える場合）、この代わりに誤り訂正メカニズムを利用することができる。この場合、保護スキームの電力の代償は、必要に応じて利用、および必要に応じた量の利用により最適化される。パリティおよび／またはＥＣＣがインライン式ではない場合、（故に性能面での代償を伴う場合）、性能を最適化することができる。
【００１０】
Ｑ−ＡＶＦ情報を利用して誤り軽減ハードウェアを動的に制御する別の例としては、チェックポイントに関するものが挙げられる。チェックポイントは、誤り検出メカニズムが誤りを検出したときに、既知の「良好な」動作点まで戻るのに利用されるアーキテクチャ状態の定期的なスナップショットのことである。チェックポイントは、一般的に、一定のメモリ量を利用し、このことは、特に多数のチェックポイントが必要な場合、大規模マルチコアまたはマルチソケットシステムでは重大になりうる。実施形態を利用することで、チェックポイントを生成および格納する周期を決定することができる。脆弱性が低い場合には、メモリおよび電力を、チェックポイント生成周期を長くすることで節約することができる。逆に脆弱性が高い場合には、チェックポイント生成周期を短くすることができる。最終的には、これにより電力および性能面で最適化を図ることができる。
【００１１】
様々な実施形態では、Ｑ−ＡＶＦを近似する多数の方法が存在する。さらに、プロセッサその他の半導体デバイス内の様々な構造についてこのＱ−ＡＶＦメトリックを決定することができる。幾らかの実装例では、Ｑ−ＡＶＦメトリックを様々な規模で分析することができる。例えば、幾らかの実施形態では、Ｑ−ＡＶＦの計測を全コアベースで行うことができる。この代わりに、またはこれに加えて、誤り検出／訂正メカニズムを制御するために、高度なＱ−ＡＶＦ計測を行う決定をすることができる。 例えば、他の実装例では、プロセッサの様々な箇所（フロントエンド、バックエンド、メモリサブシステム、その他のプロセッサの各部位）において、独立したＱ−ＡＶＦ分析を行うことができる。さらに、これら様々なプロセッサリソースの異なるメトリックを分析してＱ−ＡＶＦを推定することができる。一実装例では、一定のプロセッサメトリックの一次関数を利用して、Ｑ−ＡＶＦを異なる時点で様々な構造について近似することができる。
【００１２】
一実施形態では、プロセッサの重要箇所のＡＶＦおよびＱ−ＡＶＦを近似することのできる直線回帰分析から導出される特定のメトリックを監視することができるハードウェアメカニズムを提供することができる。一次方程式はハードウェアに実装することができるが、本発明の範囲はこの点に限定はされない。ハードウェアメカニズムは、メカニズムが起動した際に一定の期間（本明細書では「量子期間」と称する）の任意のパラメータをカウントする一式のハードウェアカウンタを含むことができる。各量子期間の最後には、各カウンタの値を一次関数により処理することができる。
【００１３】
特定の一次関数は、プロセッサのマイクロアーキテクチャの詳細に依存しており、実際のＡＶＦを任意のメトリックリストと相関付けする際の直線回帰分析による導出が可能である。一実施形態では、ここで記載する様々なロジックが利用する一次関数は、プロセッサ設計時の１以上の直線回帰分析に基づいていてよい。この分析は、プロセッサ自身の設計パラメータに基づいており、これら設計パラメータが変化した場合には、回帰分析を更新して新たな関数を得ることができる。幾らかの実装例では、アーキテクチャの振る舞いにプロセッサファミリにおける根本的な変化がない場合には（例えば、キャッシュサイズ、バッファサイズ等の設計パラメータのサイズのみが異なる場合）、重み付け（つまり係数）には変化がみられるだろうが、同じ関数が複数のプロセッサ設計に対して維持されるだろう。様々な実施形態では、重み（つまり係数）は、制御レジスタからプログラミング可能であり、制御レジスタの初期値を変更することで一次関数を更新することができる。
【００１４】
ハードウェアメカニズムの適切な構築には様々な要素を考慮に入れることができる。例えば、カウンタは有限容量を有するので、オーバフローを伴わずにかなりの長期間にわたるカウントはできない。オーバフローしてしまうと情報が失われる。従って、メカニズム動作中の量子期間は、カウンタのオーバフローを回避するべく極力小さい値（例えば、約１００から約１０００プロセッササイクルのオーダ）に設定することができるが、本発明の範囲はこの点に限定されない。この代わりに、生じさせるＱ−ＡＶＦが一定のレベルのリアルタイム精度を提供することができるような量子サイズを選択するようにしてもよい。この場合には、一次方程式メトリックのカウンタは、量子期間中にオーバフローしないよう保証できるようなサイズとするべきである。
【００１５】
直線回帰分析により、複数の異なるプログラムのＱ−ＡＶＦ値を数千万サイクルに亘り正確に近似することができる。この分析に基づいて、単純なプロセッサメトリックの一次方程式を利用することで、任意のプログラムのランタイム中の脆弱性のリアルタイム変動を正確に推定することができるようになる。この脆弱性の変動は、誤り復帰メカニズムが脆弱性の低い段階には緩和できることを示しており、これによりこれら段階における誤り軽減に伴う電力／性能面での代償を緩和させることができる。プログラムが高脆弱性の段階に入ると、誤り軽減メカニズムが起動して、電力消費を増加させ性能を低減させるが、本当に必要な場合なのでＱ−ＡＶＦをゼロまたは許容できる程度の低レベルにまで落とすことができる。
【００１６】
ハードウェアメカニズムにより、起動時に各量子期間についてＱ−ＡＶＦが生成される。このＱ−ＡＶＦ値が一定の許容値を超えると、誤り軽減ハードウェアを動的に起動してＡＶＦを低減させることができる。Ｑ−ＡＶＦ値が一定の閾値を下回ると、誤り軽減ハードウェアを動的に停止することができる。このようにして、誤り軽減ハードウェアを本当に必要なときにのみ利用して、他の場合には電力および性能面での動作コストを生じさせない。
【００１７】
図１は、本発明の一実施形態における方法のフロー図である。図１に示すように、方法１０を利用して、Ｑ−ＡＶＦ検出器を動作させて、検出器からの情報に基づいて１以上の誤り訂正／検出メカニズムを動的に制御することができる。図１に示すように、方法１０は、Ｑ−ＡＶＦ検出器を起動することにより開始することができる。上述したように、Ｑ−ＡＶＦ検出器は、一式のハードウェアカウンタおよびロジック（制御ロジック、演算ロジック、比較ロジック等）を含むメカニズムであって、これに関しては以下の特定の実装例で説明する。幾らかの実装例では、検出器が利用するカウンタの少なくとも幾つかが、既存のカウンタ（例えばプロセッサの性能監視ユニット等の有するカウンタ）を利用してよい。
【００１８】
図１を再度参照すると、選択的制御可能な（例えば、プログラムの制御、ユーザの制御、オペレーティングシステムの制御等により）起動の後で、任意の量子期間について１以上のプロセッサメトリックを決定することができる（ブロック２０）。例えば、プロセッサメトリックは、任意の量子期間中に利用される異なるプロセッサリソースのカウントに相当していてよい。特定のリソースおよびその利用情報については以下で説明する。任意の量子の期間（実施形態ごとに期間は異なっていてよい）が終了すると、プロセッサメトリックを利用してプロセッサの少なくとも一部についてＱ−ＡＶＦ値を決定してよい（ブロック３０）。例えば、以下で詳述するように、所定の関数（例えば一次方程式）による複数のプロセッサメトリックの組み合わせを利用することにより、Ｑ−ＡＶＦ値を決定することができる。１以上のＱ−ＡＶＦ値を、プロセッサの個々のリソースについて、あるいは、プロセッサの任意の単位に相当するこれらリソースの集合体について、あるいは、全プロセッサ（コア）ベースで決定することができる。
【００１９】
次に、制御はブロック４０に移り、ここではＱ−ＡＶＦ値を少なくとも１つの閾値と比較してよい。上述したように、幾らかの実装例では、単一の閾値を提供することが出来るが、他の実装例では、複数の閾値を提供してもよい。この比較に基づいて、少なくとも１つの誤り検出／訂正メカニズムを動的に制御することができる（ブロック５０）。例えば、Ｑ−ＡＶＦ値が閾値を下回った場合にはこのメカニズムをディセーブルし、一方でＱ−ＡＶＦ値が閾値を上回った場合には１以上のメカニズムをイネーブルしてさらなる保護メカニズムを起動することができる。一実施形態では、Ｑ−ＡＶＦ値と１以上の閾値との比較に少なくとも部分的に基づいて、検出器ロジックにより制御信号を生成することができる。一実施形態ではこの制御信号を利用して誤り軽減ハードウェアを動的に制御することができる。このようにして、検出器は誤り軽減を実装するにあたっての代償を動的に制御することができる。他の実施形態では、検出器ロジックは可変制御を行って、２設定（つまりＯＮまたはＯＦＦ）のみの代わりに多数の設定を実現することができる。例えば、各保護が２以上のプロセッサをカバーするような、複数の冗長または複数の保護を提供することができ、電力および性能面での代償を増加させることもできる。このような実施形態では、複数の制御信号を提供して、異なる保護レベル間での選択を可能とすることができる。その後制御はダイアモンド６０に移り、ここでＱ−ＡＶＦ検出器を停止するか否かを決定してよい。停止する決定を行った場合は、方法１０は終了し、さもなくば上述したように制御をブロック２０に戻す。本発明の範囲は、図１の実施形態のこの特定の実装例に限定はされない。幾らかの実施形態では、検出器はオンラインまたはオフラインでの動作が可能である。オンラインでは、検出および対応する誤り軽減制御をプログラムの実行中に実行することができ、オフラインでは、プログラムの実行中にプロセッサメトリックのカウントを行い、後にＱ−ＡＶＦを決定することができ、これは任意のプログラムについてＱ−ＡＶＦの状態を判断する（例えば、修正可能か、編集可能か、または制御可能かを判断する）際に有用である。
【００２０】
実施形態は、様々なプロセッサその他の半導体デバイスとの利用が可能である。しかし説明の都合上、以下の例示的な実施形態はプロセッサ（例えば、複数のホモジニアスコアまたはヘテロジニアスコアを含むマルチコアプロセッサ）を例にとって説明している。図２は、本発明の一実施形態におけるプロセッサのブロック図である。図２に示すプロセッサ１００は単一のコアを示しているが、この単一のコアを複数回複製することで、完全なマルチコアプロセッサを生成することができる。図２に示すプロセッサ１００は通常、フロントエンド（ＦＥ）１１０、メモリサブシステム（ＭＳ）１２０、および（ＢＥ）バックエンド１３０という３つの部分を含む。ＦＥ１１０は主にインオーダパイプラインであり、命令復号キューおよび命令フェッチユニットを含む。ＢＥ１３０は、予約ステーション、退避バッファ、実行ユニット、レジスタファイル、およびその他のデータ実行の流れを調節するアーキテクチャ構造を含む。アウトオブオーダプロセッサの場合、ＢＥ１３０は、命令がスケジュールされる場所にあってよく、アウトオブオーダ実行されてよい。インテルアーキテクチャ（登録商標）（ＩＡ３２）プロセッサのようなある種のアーキテクチャの場合、ＦＥ１１０およびＢＥ１３０は、さらにＦＥ１１０が主にマクロ処理（アセンブリ命令）を司り、ＢＥ１３０がマクロオペで多数から１つへとマッピングするより単純な命令である復号されたマイクロ処理（μｏｐｓ）を司ることから区別可能である。ＭＳ１２０は、メモリオーダバッファ（ＭＯＢ）および様々なキャッシュ構造を含む。
【００２１】
図２に示すフロントエンド１１０は、下位のキャッシュレベル（例えばメモリサブシステム１２０の一部）から命令情報を取得して、直後の利用または複数回の利用が予期される命令を一時記憶するために、命令キャッシュおよびフェッチロジック１１２を含んでよい。命令キャッシュ１１２には、命令を復号しうる１以上の復号器１１３、待ち状態の命令を記憶する命令キュー１１４、および命令復号キュー１１５が連結されている。さらに、分岐予測ユニット（ＢＰＵ）１１６が、プログラム実行中にとるべき分岐を予測して、予測された分岐に関する命令を前もって取得しておくことができる。図２にはさらに、フロントエンド１１０がフロントエンドＱ−ＡＶＦ検出器１１８を含むことが示されている。さらに以下で詳述するように、検出器１１８は図２に示す様々なフロントエンドコンポーネントに対して（および他の同様のコンポーネントに対して）Ｑ−ＡＶＦ決定を行ってよい。
【００２２】
フロントエンド１１０は、メモリサブシステム１２０と通信する旨記載されている。サブシステム１２０はレベル１（Ｌ１）キャッシュおよびレベル２（Ｌ２）キャッシュであってよいキャッシュ１２２を含み、Ｌ１キャッシュはデータキャッシュであり、Ｌ２キャッシュはデータおよび命令の両方を含む統一キャッシュをキャッシュする。アドレス変換を助けるべく、サブシステム１２０はさらに、データ変換ルックアサイドバッファ（ＤＴＬＢ）１２４およびページミスハンドラ（ＰＭＨ）１２６を含み、エラーがＤＴＬＢ１２４に起こったときにメモリ構造の他のレベルからの、要求された情報へのアクセスを助ける。またさらに、メモリサブシステムは、格納およびロード命令等の保留されているデータ変換命令に関するエントリを格納する格納およびロードバッファを含みうるメモリオーダバッファ（ＭＯＢ）１２８を含んでよい。またさらに、サブシステム１２０は、メモリサブシステムＱ−ＡＶＦ検出器１２９を含む。後述するように検出器１２９は、図２に示す様々なメモリサブシステムコンポーネントに対して（および他の同様のコンポーネントに対して）メモリサブシステムＱ−ＡＶＦ決定を行うことができる。
【００２３】
フロントエンド１１０およびメモリサブシステム１２０両方には、さらに、支障の生じた命令を処理し、このような命令を退避させるべく再度オーダする処理に利用することのできるバックエンド１３０が連結されている。従って図２に示すバックエンド１３０は、退避オーダバッファおよびレジスタファイル１３２と、整数ユニット、浮動小数点ユニット、ベクトルユニット等を含む１以上の実行ユニット１３４とを含む。またさらに、バックエンド１３０は、実行ユニット１３４に命令およびオペランドを提供するのに利用されうる予約ステーション１３６を含んでよい。また予約ステーション１３６へのエントリは、フロントエンド１１０から入力される命令を受信して様々なリソース（実行ユニット１３４およびレジスタファイル１３２等）に割り当て、レジスタファイル１３２内の多数の物理レジスタへの限られた数の論理レジスタを改名する、割り当ておよび改名テーブル１３８により供給されてよい。バックエンド１３０はさらにバックエンドＱ−ＡＶＦ１３９を含む。さらに後述するように、検出器１３９は、図２に示す様々なバックエンドコンポーネントに対して（および他の同様のコンポーネントに対して）Ｑ−ＡＶＦ決定を行うことができる。さらに図２に示すように、コアレベルのＱ−ＡＶＦ検出器１４０がさらにコアベースのＱ−ＡＶＦ決定を処理することができる。
【００２４】
本発明の範囲は図２の実施形態のこの特定の実装例に限定されない。例えば、様々な実装例では、Ｑ−ＡＶＦを異なる粒度で演算することができる。極端な例では、構造ごとに計算する（各構造についてカスタマイズされたＱ−ＡＶＦが必要となる）。またこれとは逆の極端な例では、Ｑ―ＡＶＦは、コアごとに計算されてよく、他の実装例はこの間に属する。ＦＥ、ＢＥ、およびＭＳといったより大きなブロックへと自然に関連付けられる構造を集積して、プロセッサの別個の領域でＱ−ＡＶＦを評価する効率的な方法を提供することができ、一方でハードウェア実装のコストも最低限に抑えることができる。
【００２５】
図２は、プロセッサ１００の各部分が自身の検出器を含み、プロセッサ１００がさらにコアレベルの検出器を含みうるとして描かれているが、特定の実装例にはこれら全ての検出器が存在するわけではないことを理解されたい。例えば、様々な実装例では、任意のプロセッサ内にこれより少ない数の検出器があってもよいし、検出器が１つだけあってもよい。説明の便宜上、図２に示す各検出器の機能を説明する。しかし、任意のプロセッサ実装例では記載した検出器が唯一あっても、あるいはそのサブセットがあっても、あるいは記載した検出器全てが存在してもよい。
【００２６】
上述したように、ＦＥ１１０は、復号されたマクロオペを保持する命令キューと、復号されたマイクロオペを保持する命令復号キューとを含む。一実施形態では、基本プロセッサメトリックの最小セットを利用して、フロントエンドのＱ−ＡＶＦを平均９５パーセントの精度で、最悪でも８０パーセントよりは良好な精度で計算することができる。本実施形態では、Ｆｅ  Ｑ−ＡＶＦ決定の３つのパラメータは、（１）命令復号キュー（ＩＤＱ）利用（量子サイズおよびサイクルごとのＩＤＱの有効なエントリ数に基づいて決定することができる）、退避オーダバッファ（ＲＯＢ）利用（量子サイズおよびサイクルごとのＲＯＢの有効なエントリ数に基づいて決定することができる）、および、量子期間中に生じる分岐の予測ミス数である。
【００２７】
利用は、量子期間中の任意の構造の有効なエントリ数の平均値として定義されてよい。これは本質的に構造の占有率の尺度である。利用メトリックは通常、カウントを時間長で除算したものである。この場合、カウントは各電力サイクルにおいて足し合わせた有効なエントリ総数であり、時間長は、量子サイズとして固定されている。ハードウェア簡略化目的から、量子サイズの値は２の累乗に設定されてよい。このようにして、除算演算は、量子サイズのｌｏｇ２分、カウント値を単純にビットシフトしたものに簡略化することができ、これにより整数値が除算演算の結果となる。
【００２８】
一実施形態では、このｌｏｇ２処理は、量子値のゼロの数を、第１の論理値１になるまで最下位ビットから最上位ビットまでカウントする状態マシンで行うことができる。結果が量子値のｌｏｇ２であり、この演算は量子サイズが変化したときにのみ戻されてよい。次いでこの値を、全ての利用演算に利用するレジスタに格納することができる。特定の量子サイズ値の最上位ビットのみが量子サイズ構成レジスタに書き込まれたことをチェックするだけで、全ての量子サイズ値を２の最低累乗にまで切り捨てることができる。
【００２９】
図３は、本発明の一実施形態におけるフロントエンドのＱ−ＡＶＦ検出器のブロック図である。図３に示す検出器２００は、複数のカウンタ（ＩＤＱ命令カウンタ２１０、ＲＯＢ命令カウンタ２２０、および分岐予測ミスカウンタ２３０）を含んでよい。これらカウンタ各々は、任意の量子期間中に生じる任意のリソースの利用（または分岐の予測ミス）をカウントするのに利用されてよい。量子期間の長さは、量子サイズ構成レジスタ２３５に格納されてよく、これはプロセッサ制御レジスタにより設定されてよい（例えば、オペレーティングシステム（ＯＳ）の制御の下に）。またさらに、上述したように量子ｌｏｇ２構成レジスタ２４５は、量子ｌｏｇ２値を提供してよい。この量子ｌｏｇ２値は、量子サイズ構成レジスタ２３５の値に基づいて、状態マシン２４０を利用して生成することができる。
【００３０】
図３のアーキテクチャ依存ロジック２６０は、プロセッサメトリック情報に基づいてアーキテクチャ依存一次方程式を行うべく適合されてよく、様々な入力を受信するよう連結される。特に、ロジック２６０は、分岐予測ミスカウンタ２３０の出力を、一対のビットシフタ２５０および２５５の出力とともに受信し、これらそれぞれは、利用（つまり、ＲＯＢ利用およびＩＤＱ利用）の尺度を提供するべく適合される。これに提供される情報に基づいて、ロジック２６０はＱ−ＡＶＦ値を生成することができ、これをレジスタ２６５に格納することができる。このＱ−ＡＶＦ値は各量子期間について決定することができる。
【００３１】
ロジック２６０は、それに提供される様々な入力データを考慮する一次方程式を実装することができる。一実施形態では、一次方程式は以下の通りである。
（数１）
ＦＥ  Ｑ−ＡＶＦ＝-6.94888841 + 2.13964287(X) + 0.00000984(Y) - 0.00025137(Z)
本式において、Ｘ＝ＩＤＱ利用、Ｙ＝ＲＯＢ利用、Ｚ＝分岐予測ミス数である。係数は非常に小さい浮動小数点であってよい。しかし、これは、全ての値にゼロを十分にパディングして（または、１０の大きな累乗で乗算して）値が整数になるようにすることで修正可能である。同様の処理は、比較ロジック２７０で比較処理を行う前に閾値にも行うこともできる。この処理はオフラインで行うことができ、あるいは、係数または閾値が変化する毎に１度だけ行うことができる。このようにして、処理は、新たな値が入力されると一度だけ必要になるが、このことが起きるのは通常稀である。
【００３２】
様々な実装例では、係数はプロセッサのアーキテクチャよび設計パラメータに応じて変化し、任意の設計に対する係数の決定には回帰分析を利用することができる。幾らかの実装例では、一定の項を無視してハードウェアを簡略化することができる。係数を省く場合には、それを閾値において考慮することができる。
【００３３】
図３に示すよう、決定されたＱ−ＡＶＦは比較ロジック２７０に提供されてよく、ここでは、１以上のＱ−ＡＶＦ閾値との比較が行われ、閾値レジスタ２７５に格納されてよい。決定されたＱ−ＡＶＦ値が１以上の閾値を越えるか否かに基づいて、制御信号２８０を比較ロジック２７０により生成して、これを上述したように１以上の誤り検出／訂正メカニズムの制御に利用することができる。本発明の範囲は、図３の実施形態の特定の実装例に限定されず、他の実装例も可能である。さらに、検出器２００はハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせにより実装されることで、Ｑ−ＡＶＦ値の決定およびその１以上の誤りメカニズムの制御への利用を行うことができる。
【００３４】
フロントエンド検出器２００に加えて、幾らかの実施形態はさらにバックエンド検出器を含むこともでき、実装例はバックエンド検出器を１つだけ含むことができる。上述したように、バックエンド１３０は、マイクロオペ命令およびデータを保持し、これらを実行ユニットへとスケジューリングする予約ステーションと、インフライトマイクロ処理を保持し、これらを、アーキテクチャ状態にコミットする前に再度オーダするＲＯＢとを含む。一実施形態では、基本プロセッサメトリックの最小セットを利用して、Ｑ−ＡＶＦを平均９５パーセントの精度で、最悪でも７５パーセントよりは良好な精度で計算することができる。バックエンドのＱ−ＡＶＦについては、これらパラメータは、一実施形態では、予約ステーション（ＲＳ）利用（量子サイズおよびサイクルごとのＲＳの有効なエントリ数に基づいて決定することができる）、格納バッファ（ＳＴＢ）利用（量子サイズおよびサイクルごとのＲＯＢの有効なエントリ数に基づいて決定することができる）、分岐予測ミス数、および、命令復号キュー（ＩＤＱ）利用（量子サイズおよびサイクルごとのＩＤＱの有効なエントリ数に基づいて決定することができる）を含むことができる。
【００３５】
図４は、本発明の一実施形態におけるバックエンドのＱ−ＡＶＦ検出器のブロック図である。図４に示す検出器３００は、複数のカウンタ（ＲＳ命令カウンタ３１０、ＳＴＢ命令カウンタ３２０、ＩＤＱ命令カウンタ３３０、および分岐予測ミスカウンタ３３３）を含んでよい。これらカウンタ各々は、任意の量子期間中に生じる任意のリソースの利用（または分岐の予測ミス）をカウントするのに利用されてよい。量子期間の長さは、量子サイズ構成レジスタ３３５に格納されてよい。またさらに、上述したように量子ｌｏｇ２構成レジスタ３４５は、量子ｌｏｇ２値を提供してよい。この量子ｌｏｇ２値は、量子サイズ構成レジスタ３３５の値に基づいて、状態マシン３４０を利用して生成することができる。
【００３６】
図４のアーキテクチャ依存ロジック３６０は、プロセッサメトリック情報に基づいてアーキテクチャ依存一次方程式を行うべく適合されてよく、様々な入力を受信するよう連結される。特に、ロジック３６０は、分岐予測ミスカウンタ３３３の出力を、ビットシフタ３５０、３５５、および３５８の出力とともに受信し、これら各々は、利用（つまり、ＲＳ利用、ＳＴＢ利用、およびＩＤＱ利用）の尺度を提供するべく適合される。これに提供される情報に基づいて、ロジック３６０はＱ−ＡＶＦ値を生成することができ、これをレジスタ３６５に格納することができる。このＱ−ＡＶＦ値は各量子期間について決定することができる。
【００３７】
図４に示すよう、決定されたＱ−ＡＶＦは比較ロジック３７０に提供されてよく、ここでは、１以上のＱ−ＡＶＦ閾値との比較が行われ、閾値レジスタ３７５に格納されてよい。決定されたＱ−ＡＶＦ値が１以上の閾値を越えるか否かに基づいて、制御信号３８０を比較ロジック３７０により生成して、これを上述したように１以上の誤り検出／訂正メカニズムの制御に利用することができる。本発明の範囲は、図４の実施形態の特定の実装例に限定されず、他の実装例も可能である。さらに、検出器３００はハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせにより実装されることで、Ｑ−ＡＶＦ値の決定およびその１以上の誤りメカニズムの制御への利用を行うことができる。
【００３８】
一実施形態では、ロジック３６０は、数２に示すアーキテクチャ依存一次方程式を行うことができる。
（数２）
BEQ - AVF = 5.31777325 + 0.17012719(W) - 0.10485529(X) - 0.00007263(Y) +0.25594201(Z)
本式において、Ｗ＝ＲＳ利用、Ｘ＝ＳＴＢ利用、Ｙ＝分岐予測ミス数、Ｚ＝ＩＤＱ利用である。
【００３９】
ロジック２６０および数１に関して上述したように、係数および／または定数項は、演算の複雑度を緩和するべく前もって操作しておくことができる。本発明の範囲が、図４の実施形態に関するこの特定の式に限定されない点は理解されたい。
【００４０】
また別の実施形態では、ＡＶＦ検出器はメモリサブシステム１２０に関連付けられてよい。このＡＶＦ検出器は、プロセッサに存在する唯一の検出器であっても、上述したフロントエンド検出器およびバックエンド検出器等の他の検出器に追加された検出器であってもよい。上述したように、ＭＯＢ１２８は、仮想アドレスおよび物理アドレス、並びに格納処理用のデータを保持する格納バッファと、ロード処理用のアドレスを保持するロードバッファとを含む。一実施形態では、基本プロセッサメトリックの最小セットを利用して、メモリサブシステムのＱ−ＡＶＦを平均９５パーセントの精度で、最悪でも８０パーセントよりは良好な精度で計算することができる。一実施形態では、ＭＯＢ１２８のＱ−ＡＶＦを決定するのに利用される３つのパラメータは、格納バッファ（ＳＴＢ）利用（量子サイズおよびサイクルごとのＳＴＢの有効なエントリ数に基づいて決定することができる）、予約ステーション（ＲＳ）利用（量子サイズおよびサイクルごとのＲＳの有効なエントリ数に基づいて決定することができる）、および、ＤＴＬＢ応答の前に格納バッファからフラッシュする命令の数（ＤＴＬＢアクセスを開始した後であって応答が返される前にフラッシュされた格納のカウント）であってよい。
【００４１】
図５は、本発明の一実施形態におけるメモリシステムＱ−ＡＶＦ検出器のブロック図である。図５に示す検出器４００は、複数のカウンタ（ＳＴＢ命令カウンタ４１０、ＲＳ命令カウンタ４２０、およびフラッシュ格納カウンタ４３０）を含んでよい。これらカウンタ各々は、任意の量子期間中に生じる任意のリソースの利用（またはフラッシュされた格納）をカウントするのに利用されてよい。量子期間の長さは、量子サイズ構成レジスタ４３５に格納されてよい。量子ｌｏｇ２構成レジスタ４４５は、量子ｌｏｇ２値を提供してよく、これは、量子サイズ構成レジスタ４３５の値に基づいて、状態マシン４４０を利用して生成することができる。
【００４２】
図５のアーキテクチャ依存ロジック４６０は、プロセッサメトリック情報に基づいてアーキテクチャ依存一次方程式を行うべく適合されてよく、様々な入力を受信するよう連結される。特に、ロジック４６０は、フラッシュ格納カウンタ４３０の出力を、一対のビットシフタ４５０および４５５の出力とともに受信し、これらそれぞれは、利用（つまり、ＳＴＢ利用およびＲＳ利用）の尺度を提供するべく適合される。これに提供される情報に基づいて、ロジック４６０はＱ−ＡＶＦ値を生成することができ、これをレジスタ４６５に格納することができる。このＱ−ＡＶＦ値は各量子期間について決定することができる。
【００４３】
図５に示すよう、決定されたＱ−ＡＶＦは比較ロジック４７０に提供されてよく、ここでは、１以上のＱ−ＡＶＦ閾値との比較が行われ、閾値レジスタ４７５に格納されてよい。決定されたＱ−ＡＶＦ値が１以上の閾値を越えるか否かに基づいて、制御信号４８０を比較ロジック４７０により生成して、これを上述したように１以上の誤り検出／訂正メカニズムの制御に利用することができる。本発明の範囲は、図５の実施形態の特定の実装例に限定されず、他の実装例も可能である。さらに、検出器４００はハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせにより実装されることで、Ｑ−ＡＶＦ値の決定およびその１以上の誤りメカニズムの制御への利用を行うことができる。
【００４４】
一実施形態では、ロジック４６０は、数３に従ってＭＯＢについてのＱ−ＡＶＦを決定することができる。
（数３）
MOB Q-AVF = 1.61820419 - 0.09218011(X) + 1.88263525(Y) - 0.0000307(Z)
本式において、Ｘ＝ＲＳ利用、Ｙ＝ＳＴＢ利用、Ｚ＝ＤＴＬＢ応答前のＳＴＢフラッシュ数である。
【００４５】
他の実施形態では、別個のプロセッサパイプラインについて個々に検出器（例えば、上述したフロントエンド検出器およびバックエンド検出器およびメモリサブシステム検出器）を設けるのではなく、図２の検出器１４０等の単一コアまたはフルチップ検出器を設けることができる。幾らかの実装例では、これは、唯一の検出器であってよく、ＦＥおよびＢＥパイプラインは一般的に互いのＱ−ＡＶＦのトレンドをトラックする。さらに上述するように、プロセッサの各ブロックのＱ−ＡＶＦを決定するメトリック同士にかなり重複する部分がある。誤り軽減スキームのなかにはチップ全体のＡＶＦに影響するものがあるので、Ｑ−ＡＶＦ検出器をマイクロプロセッサパイプライン全体について設けることができる。基本プロセッサメトリックの最小セットを利用して、プロセッサのＱ−ＡＶＦを平均９５パーセントの精度で、最悪でも８０パーセントよりは良好な精度で計算することができる。一実施形態では、フルチップＱ−ＡＶＦ決定に関する７つのパラメータは、命令復号キュー（ＩＤＱ）利用、退避オーダバッファ（ＲＯＢ）利用、予約ステーション（ＲＳ）利用、格納バッファ（ＳＴＢ）利用、分岐予測ミス数、ＲＯＢが空であるサイクル数、および、ＤＴＬＢ応答の前に格納バッファからフラッシュされる命令数である。
【００４６】
図６は、本発明の一実施形態におけるバックエンドのＱ−ＡＶＦ検出器のブロック図である。図６に示す検出器５００は、複数のカウンタ（ＩＤＱ命令カウンタ５１０、ＲＯＢ命令カウンタ５１５、ＲＳ命令カウンタ５２０、ＳＴＢ命令カウンタ５２５、ＲＯＢ空カウンタ５３０、分岐予測ミスカウンタ５３３、およびフラッシュ格納カウンタ５３４）を含んでよい。これらカウンタ各々は、任意の量子期間中に生じる任意のリソースの利用（または分岐予測ミスまたはフラッシュされた格納）をカウントするのに利用されてよい。量子期間の長さは、量子サイズ構成レジスタ５３５に格納されてよい。さらに、上述したように、量子ｌｏｇ２構成レジスタ５４５は、量子ｌｏｇ２値を提供してよい。この量子ｌｏｇ２値は、量子サイズ構成レジスタ５３５の値に基づいて、状態マシン５４０を利用して生成することができる。
【００４７】
図６のアーキテクチャ依存ロジック５６０は、プロセッサメトリック情報に基づいてアーキテクチャ依存一次方程式を行うべく適合されてよく、様々な入力を受信するよう連結される。特に、ロジック５６０は、カウンタ（つまり、カウンタ５１０、５１５、５２０、５２５）、ＲＯＢ空カウンタ５３０、分岐予測ミスカウンタ５３３、およびフラッシュ格納カウンタ５３４）の出力を、ビットシフタ５５０、５５２、５５４、および５５６の出力とともに受信する。これに提供される情報に基づいて、ロジック５６０はＱ−ＡＶＦ値を生成することができ、これをレジスタ５６５に格納することができる。このＱ−ＡＶＦ値は各量子期間について決定することができる。
【００４８】
図６に示すよう、決定されたＱ−ＡＶＦは比較ロジック５７０に提供されてよく、ここでは、１以上のＱ−ＡＶＦ閾値との比較が行われ、閾値レジスタ５７５に格納されてよい。決定されたＱ−ＡＶＦ値が１以上の閾値を越えるか否かに基づいて、制御信号５８０を比較ロジック５７０により生成して、これを上述したように１以上の誤り検出／訂正メカニズムの制御に利用することができる。本発明の範囲は、図６の実施形態の特定の実装例に限定されず、他の実装例も可能である。さらに、検出器５００はハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせにより実装されることで、Ｑ−ＡＶＦ値の決定およびその１以上の誤りメカニズムの制御への利用を行うことができる。
【００４９】
フルチップ検出器を利用して、フロントエンド、バックエンド、およびＭＯＢ用に個々のＱ−ＡＶＦ値を、数４−６に従って決定することができる。
（数４）
FE Q-AVF=-10.5340689 + 1.91609831(A) + 0.00279797(B) + 0.29720333(C) + 0.11824924(D) - 0.00026378(E) + 0.00001177(F) + 0.00000496(G)
（数５）
BE Q-AVF=3.1760199 + 0.15379405(A) + 0.06943891(B) + 0.50535518(C) - 0.15898313(D) -0.00007247(E) + 0.00000233(F) - 0.00001199(G)
（数６）
MOB Q-AVF=3.5974914+0.11588197(A)-0.02028408(B)-0.22281406(C)+1.89341998(D)+ 0.00003006(E) - 0.00000246(F) - 0.00006469(G)
これら式において、Ａ＝ＩＤＱ利用、Ｂ＝ＲＯＢ利用、Ｃ＝ＲＳ利用、Ｄ＝ＳＴＢ利用、Ｅ＝分岐予測ミス数、Ｆ＝ＲＯＢ空サイクル数、および、Ｇ＝ＤＴＬＢ応答前のＳＴＢフラッシュ数である。 
【００５０】
またさらに、これら同じプロセッサメトリックを利用して、フルチップのＱ−ＡＶＦ値を、数７に述べるように決定することができる。
（数７）
フルチップQ-AVF = -1.2535192 + 0.728591443(A) + 0.0173176(B) + 0.19324815(C) + 0.61756203(D) - 0.00010206(E) + 0.00000388(F) - 0.00002391(G)
【００５１】
これら特定の式で記載したが、ロジック５６０は他の一次方程式を利用してフルチップＱ−ＡＶＦを（様々なユニットのＱ−ＡＶＦとともに）決定することができる。
【００５２】
このように、様々な実施形態では、Ｑ−ＡＶＦの推定に基づく誤り軽減ハードウェアの動的制御は、誤り軽減ハードウェアを実装する際の電力および性能面での代償を５０％を超える割合で低減することで信頼性、電力、および性能を大いに最適化することができ、一方で信頼性はあまり落ちることはない。従って実施形態は、特定の量子期間中のＡＶＦが、前の、または将来の量子期間から大幅に変化しうるという事実を利用することができる。この結果、プログラムは高脆弱性段階および低脆弱性段階を有する。様々なプロセッサメトリックを利用して、かなりの精度でＱ−ＡＶＦを推定することができ、これにより、誤り軽減メカニズムの振る舞いを直接的または間接的に修正して、電力、性能、および信頼性を最適化することができる制御が可能となる。
【００５３】
実施形態は、多くの異なる種別のシステムにおいて実装可能である。図７は本発明の一実施形態におけるシステムのブロック図である。図７に示すように、マルチプロセッサシステム６００はポイントツーポイントインターコネクトシステムであり、ポイントツーポイントインターコネクト６５０を介して連結されている第１のプロセッサ６７０と第２のプロセッサ６８０とを含む。図７に示すように、プロセッサ６７０および６８０の各々は、マルチコアプロセッサであってよく、これらには第１のプロセッサコアおよび第２のプロセッサコア（プロセッサコア６７４ａおよび６７４ｂ、およびプロセッサコア６８４ａおよび６８４ｂ）が含まれてよいが、さらなるコアが含まれてもよい。各プロセッサコアは、本発明の一実施形態における１以上のＱ−ＡＶＦ検出器を含んでよい。このようにして、コアの様々な誤り軽減ハードウェアは、必要ではないときには電力性能の代償を低減させるよう動的に制御することができる。
【００５４】
図７を参照すると、第１のプロセッサ６７０はさらに、メモリコントローラハブ（ＭＣＨ）６７２と、ポイントツーポイント（Ｐ−Ｐ）インタフェース６７６および６７８とを含む。同様に、第２のプロセッサ６８０は、ＭＣＨ６８２と、Ｐ−Ｐインタフェース６８６および６８８とを含む。図２に示すように、ＭＣＨ６７２および６８２は、プロセッサをそれぞれメモリ（メモリ６３２およびメモリ６３４）に連結させ、これらは、プロセッサにそれぞれローカルに添付されたメインメモリ（例えばＤＲＡＭ）の部分であってよい。第１のプロセッサ６７０および第２のプロセッサ６８０は、Ｐ−Ｐインターコネクト６５２および６５４をそれぞれ介してチップセット６９０に連結されてよい。図７に示すように、チップセット６９０はＰ−Ｐインタフェース６９４および６９８を含む。
【００５５】
さらにチップセット６９０は、Ｐ−Ｐインターコネクト６３９により、チップセット６９０を高性能グラフィックスエンジン６３８に連結するインタフェース６９２を含む。そして、チップセット６９０は、インタフェース６９６を介して第１のバス６１６に連結されてよい。図７に示すように、様々な入出力（Ｉ／Ｏ）デバイス６１４が、第１のバス６１６に、および、第１のバス６１６を第２のバス６２０に連結するバスブリッジ６１８に、連結されてよい。一実施形態では、例えばキーボード／マウス６２２、通信デバイス６２６、および、コード６３０を含んでよいディスクドライブまたは他の大容量記憶デバイス等のデータ記憶ユニット６２８を含む様々なデバイスが、第２のバス６２０に連結されてよい。さらに、音声Ｉ／Ｏ６２４が第２のバス６２０に連結されてよい。
【００５６】
誤り軽減ユニットの制御には、制御情報またはＱ−ＡＶＦ値を直接利用すること、または、情報をバッファリングして複数の量子期間のトレンドを特定し、Ｑ−ＡＶＦが単一の量子期間または幾らかの量子期間の閾値を超えていることが示される場合のみに情報に対して働きかけること、が含まれてよいが、これらに限定はされない。このような制御はさらに、誤り軽減ハードウェアの起動／停止に利用されるだけではなく、高保護モードまたは低保護モードまたは、モードの間で、異なる段階の動作間で誤り軽減ハードウェアを遷移させる際に、および、電力／性能コストが変化する異なる保護スキーム間で選択を行う際に利用することができる。この一例には、チェックポイント生成を利用する誤り軽減スキームが含まれる。チェックポイント生成の周期によって、誤り復帰の際に失われる進捗量が決定される。一実施形態を利用して、Ｑ−ＡＶＦ値が示す実際の重大な誤りの可能性に応じてチェックポイントを取得する周期が増減される。この場合、Ｑ−ＡＶＦ値を多数の閾値と比較して、起動する保護段階を決定する。
【００５７】
一実施形態では、ＯＳベースの制御は、ＯＳに検出器情報を提供することで実現されてよい。この実施形態では、ＯＳは、プログラムが脆弱な領域に入ろうしていることを判断することができ、閾値変更要求を発行することができる。例えば、検出器閾値（例えば第１の閾値）が１０％の閾値辺りにある場合、ＯＳは閾値を異なるレベルとしたり、検出器に自身の量子サイズを変更させたりすることができる。
【００５８】
実施形態は、コードによる実装が可能であり、システムを、命令を行わせるプログラミングに利用されうる命令を格納する記憶媒体上に格納することができる。記憶媒体は、フロッピー（登録商標）ディスク、光学ディスク、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、および光磁気ディスク等の任意の種類のディスク、ＲＯＭ、ＤＲＡＭ等のＲＡＭ、ＳＲＡＭ、ＥＰＲＯＭ、フラッシュメモリ、ＥＥＰＲＯＭ（登録商標）、磁気または光学カードを含む半導体デバイス、または電子命令を格納するのに適した任意の他の種類の媒体を含みうるがこれらに限定はされない。
【００５９】
本発明を限られた数の実施形態に関して記載してきたが、当業者であれば多数の変形例および変更例について想到することができる。添付請求項はこれら全ての変形例および変更例を本発明の真の精神および範囲内に含むことを意図している。
【図１】
2011515745.tif 000003
【図２】
2011515745.tif 000004
【図３】
2011515745.tif 000005
【図４】
2011515745.tif 000006
【図５】
2011515745.tif 000007
【図６】
2011515745.tif 000008
【図７】
2011515745.tif 000009
【国際調査報告】
2011515745.tif 000010
2011515745.tif 000011