(57)【要約】信頼性目標を満たしながら、最適な電力及び性能のために半導体チップ内の動作モードを管理するシステム及び方法が説明される。半導体チップは、機能ユニットと、対応する信頼性モニタと、を含む。機能ユニットは、実際の使用値を信頼性モニタに提供する。信頼性モニタは、信頼性目標及び半導体チップの使用期間に基づいて予想使用値を決定する。信頼性モニタは、実際の使用値と予想使用値とを比較する。この比較の結果は、現在の動作パラメータを増減するために用いられる。【選択図】図１
2019535061.tif 000002
【特許請求の範囲】
【請求項１】
機能ユニットと、
モニタと、
電力マネージャと、を備え、
前記モニタは、
前記機能ユニットの実際の使用量をモニタすることと、
前記機能ユニットの前記実際の使用量を、前記機能ユニットの予想使用量であって、前記機能ユニットの使用期間に少なくとも部分的に基づく予想使用量と比較することと、
前記比較に対応する情報を提供することと、
を行うように構成されており、
前記電力マネージャは、
前記情報に応じて前記機能ユニットの動作パラメータを更新して前記機能ユニットの消費電力を変更することと、
前記更新された動作パラメータを前記機能ユニットに送信することと、
を行うように構成されている、
半導体チップ。
【請求項２】
前記実際の使用量が前記予想使用量よりも少ないと判別したことに応じて、前記更新された動作パラメータは、前記動作パラメータの現在の最大値よりも大きい動作パラメータの最大値を含む、
請求項１の半導体チップ。
【請求項３】
前記動作パラメータは、最大性能に関連する動作電圧及び電力性能状態のうち１つ以上を含む、
請求項２の半導体チップ。
【請求項４】
前記実際の使用量が前記予想使用量よりも多いと判別したことに応じて、前記更新された動作パラメータは、前記動作パラメータの現在の最大値よりも小さい動作パラメータの最大値を含む、
請求項１の半導体チップ。
【請求項５】
前記電力マネージャは、第１コマンドに応じて、前記動作パラメータの最大値を更新するように構成されている、
請求項１の半導体チップ。
【請求項６】
前記モニタは、前記実際の使用量が前記予想使用量と異なると判別したことに応じて、前記機能ユニットの前記予想使用量を変更するように構成されている、
請求項１の半導体チップ。
【請求項７】
前記実際の使用量をモニタすることは、動作電圧及び温度測定値のうち１つ以上を含む値を受信することを含む、
請求項１の半導体チップ。
【請求項８】
前記モニタは、
少なくとも前記機能ユニットの実際の使用量及び前記機能ユニットの使用期間に基づいて、信頼性メトリックを経時的な累積値として維持することと、
前記信頼性メトリックを信頼性目標と比較することと、
を行うように構成されている、
請求項７の半導体チップ。
【請求項９】
前記モニタは、所定の時間間隔が経過したのを検出したことに応じて、前記信頼性メトリックを不揮発性メモリに記憶するように構成されている、
請求項８の半導体チップ。
【請求項１０】
動作パラメータによってそれぞれ動作する複数の電圧／クロックドメインと、
複数のモニタと、を備え、
前記複数のモニタは、
前記複数の電圧／クロックドメインのうち１つの電圧／クロックドメインから実際の使用値を受信することと、
前記実際の使用値を前記電圧／クロックドメインの予想使用値と比較することと、
を行うように構成されている、
請求項１の半導体チップ。
【請求項１１】
機能ユニットを動作させることと、
前記機能ユニットの実際の使用量を、前記機能ユニットの予想使用量と比較することであって、前記予想使用量は、前記機能ユニットの使用期間に少なくとも部分的に基づいている、ことと、
前記実際の使用量が前記予想使用量と異なると判別したことに応じて、前記機能ユニットの動作パラメータを更新して前記機能ユニットの消費電力を変更することと、を含む、
方法。
【請求項１２】
前記更新することは、前記実際の使用量が前記予想使用量よりも少ないと判別したことに応じて、前記動作パラメータの最大値を、前記動作パラメータの現在の最大値よりも大きくなるように変更することを含む、
請求項１１の方法。
【請求項１３】
前記動作パラメータは、動作電圧及び電力性能状態のうち１つ以上を含む、
請求項１２の方法。
【請求項１４】
前記更新することは、前記受信した実際の使用値が前記予想使用値よりも大きいと判別したことに応じて、前記動作パラメータの最大値を、前記動作パラメータの現在の最大値よりも小さくなるように変更することを含む、
請求項１１の方法。
【請求項１５】
前記実際の使用量が前記予想使用量と異なると判別したことに応じて、前記機能ユニットの前記予想使用量を変更することを含む、
請求項１０の方法。
【請求項１６】
前記実際の使用量は、動作電圧及びダイ上の温度測定値のうち１つ以上を含む、
請求項１１の方法。
【請求項１７】
機能ユニットの実際の使用量を示す情報を受信するように構成された第１インタフェースと、
前記機能ユニットの実際の使用量を前記機能ユニットの予想使用量と比較し、前記実際の使用量が前記予想使用量と異なると判別したことに応じて、前記機能ユニットの動作パラメータを変更するために使用可能な情報を生成するように構成された制御ロジックと、
前記情報を電力マネージャに伝達するように構成された第２インタフェースと、を備える、
ダイ上の信頼性モニタ。
【請求項１８】
受信した前記実際の使用量が前記予想使用量よりも少ないと判別したことに応じて、前記情報は、前記動作パラメータの最大値を増加することを示す、
請求項１７の信頼性モニタ。
【請求項１９】
受信した前記実際の使用量が前記予想使用量よりも多いと判別したことに応じて、前記情報は、前記動作パラメータの最大値を減少することを示す、
請求項１７の信頼性モニタ。
【請求項２０】
前記実際の使用量を示す前記情報は、動作電圧及びダイ上の温度測定値のうち１つ以上を含む、
請求項１７の信頼性モニタ。
【請求項２１】
機能ユニットと、
動作パラメータを経時的に適合させるためのアルゴリズムを含む動作命令と、
モニタと、
電力マネージャと、を備え、
前記モニタは、
前記機能ユニットの実際の使用量をモニタすることと、
前記機能ユニットの前記実際の使用量を、前記機能ユニットの予想使用量であって、前記機能ユニットの使用期間に少なくとも部分的に基づく予想使用量と比較することと、
前記比較に対応する情報を提供することと、
を行うように構成されており、
前記電力マネージャは、
前記情報及び前記動作命令に応じて、前記機能ユニットの動作パラメータを更新して前記機能ユニットの消費電力を変更することと、
前記更新された動作パラメータを前記機能ユニットに送信することと、
を行うように構成されている、
システム。
【請求項２２】
前記動作命令はファームウェアを含む、
請求項２１のシステム。
【請求項２３】
前記動作命令を更新することができる、
請求項２１のシステム。
【請求項２４】
前記動作命令は不揮発性メモリに存在する、
請求項２１のシステム。
【請求項２５】
前記実際の使用量が前記予想使用量よりも少ないと判別したことに応じて、前記更新された動作パラメータは、前記動作パラメータの現在の最大値よりも大きい動作パラメータの最大値を含む、
請求項２１のシステム。
【請求項２６】
前記動作パラメータは、最大性能に関連する動作電圧及び電力性能状態のうち１つ以上を含む、
請求項２１のシステム。
【請求項２７】
前記実際の使用量が前記予想使用量よりも多いと判別したことに応じて、前記更新された動作パラメータは、前記動作パラメータの現在の最大値よりも小さい動作パラメータの最大値を含む、
請求項２１のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
（関連技術の説明）
最新の集積回路（ＩＣ）の消費電力は、各世代の半導体チップに関してますます重要な設計問題となっている。集積回路の消費電力の制約は、ポータブルコンピュータ及び移動体通信装置だけではなく、複数のプロセッサコア及び複数のパイプラインをコア内に含むことができる高性能マイクロプロセッサにとっても問題である。
【０００２】
ＩＣ用の電力管理ユニット（ＰＭＵ）は、ＩＣの一部が所定期間使用されていないことを検出した場合又は通知された場合に、当該一部に対する電力を低減することができる。同様に、電力性能状態（Ｐ状態）又は動的電圧及び周波数スケーリング（ＤＶＦＳ）技術は、１つ以上の処理ユニットの使用量フィードバック（usage feedback）に基づいて調整される。通常、電力管理アルゴリズムは、ＩＣの寿命を推定する場合に、最悪の場合の熱的条件及び時間の経過に伴うＩＣの予想使用量を仮定する。これらの仮定を前提として、他の方法で選択されたものよりも（平均して）低い性能状態が選択される。しかしながら、通常使用中に、最悪の場合の熱的条件が実際には満たされない場合がある。したがって、最悪の場合の仮定によってシステムに設定された電力制限は、必要以上に厳しくなる可能性がある。残念なことに、ＩＣの使用量が事前に予測されてシステムに組み込まれているので、当該システムは、予想される寿命の間、そうでなければ達成し得たはずの性能よりも低い性能を提供する可能性がある。
【０００３】
上記を考慮して、信頼性目標を満たしながら、最適な電力及び性能のために半導体チップ内の動作モードを管理するための効率的な方法及びシステムが望まれている。
【図面の簡単な説明】
【０００４】
【図１】コンピューティングシステムの一実施形態の全般的な図である。
【図２】コンピューティングシステムの性能及び信頼性を高めるために用いられる方法の一実施形態の全般的な図である。
【図３】動作パラメータを調整してコンピューティングシステムの信頼性を高める方法の一実施形態の全般的な図である。
【図４】システムオンチップ（ＳＯＣ）の一実施形態の全般的な図である。
【図５】半導体チップの性能及び信頼性を向上させる方法の一実施形態の全般的な図である。
【発明を実施するための形態】
【０００５】
本発明は様々な変形及び変更形態を受け入れることができるが、特定の実施形態は、例示として図面に示されており、本明細書で詳細に説明されている。しかしながら、図面及びその詳細な説明は、本発明を開示された特定形態に限定することを意図するものではなく、逆に、本発明は、添付の特許請求の範囲によって定義されたように、本発明の範囲内の全ての修正、均等物及び変形例を包含することを理解されたい。
【０００６】
以下の説明では、本発明の完全な理解を提供するために多数の具体的な詳細が記載されている。しかしながら、当業者であれば、本発明がこれらの具体的な詳細無しに実施され得ることを認識するであろう。場合によっては、本発明を不明瞭にすることを避けるために、周知の回路、構造及び技術を詳細に示していない。さらに、説明を簡単且つ明瞭にするために、図に示す要素は必ずしも一定の縮尺で描かれていないことを理解されたい。例えば、いくつかの要素の寸法は、他の要素に対して誇張されている。
【０００７】
信頼性目標を満たしながら、最適な電力及び性能のために半導体チップ内の動作パラメータを管理するシステム及び方法が考察される。様々な実施形態において、半導体チップは、各々の動作パラメータで動作する１つ以上の機能ユニットを含む。１つ以上の機能ユニットは、対応する信頼性モニタに接続されている。これらの１つ以上の機能ユニットは、実際の使用量の値（使用値）を信頼性モニタに報告する。例えば、１つ以上の機能ユニットは、所定の時間間隔が経過する毎に実際の使用値を報告する。機能ユニットの実際の使用値は、１つ以上の動作パラメータ及び機能ユニットの使用期間（age）に少なくとも基づいている。いくつかの実施形態では、動作パラメータは、所定の機能ユニットに対する電力性能状態（Ｐ状態）、複数の機能ユニットに対する動的電圧及び周波数スケーリング（ＤＶＦＳ）パラメータ、アクティビティレベル、所定の時間間隔の間のこのようなパラメータの値、所定の時間間隔に亘るこのようなパラメータの平均等を含む。実際の使用値は、動作温度を含むこともできる。
【０００８】
信頼性モニタは、機能ユニットから実際の使用値を受信し、機能ユニットの使用期間に少なくとも部分的に基づいて、対応する機能ユニットの予想使用値を判別する。例えば、半導体チップの信頼性目標が少なくとも５年の寿命である場合、選択された期間に亘る予想使用値は、５年の寿命の信頼性目標に基づいて設定される。選択された期間は、毎時、毎日、毎週又はこれ以外の場合がある。予想使用値の分布は、必要に応じて設定することができる。例えば、一実施形態では、チップの寿命の間の時間間隔毎にほぼ等しい予想使用値が使用される場合には、一様分布が使用される。他の実施形態では、寿命の初期の段階においてより高い予想使用値が設定され、寿命の後期の段階においてより低い予想使用値が設定され、その逆も同様である。信頼性目標に基づいて予想使用値を設定するための他の分布が可能であり、考えられる。
【０００９】
信頼性モニタは、受信した実際の使用値を予想使用値と比較する。様々な実施形態では、信頼性モニタは、機能ユニットから受信した実際の使用値及び機能ユニットの使用期間に少なくとも基づいて、経時的な累積値として信頼性メトリックを維持する。受信した実際の使用値が予想使用値を超えていると信頼性モニタが判別すると、信頼性モニタは、消費電力及び／又は他の動作パラメータ減らすことによって機能ユニットの信頼性を増加させるための情報（例えば、コマンド等）を生成する。受信した実際の使用値が予想使用値を超えていると信頼性モニタが判別すると、機能ユニットの残りの予想寿命が目標寿命に達しない可能性がある。動作パラメータを減らすことによって、目標寿命に達するように残りの寿命を延ばすことができる。対照的に、信頼性モニタは、受信した実際の使用値が予想使用値未満であると判別したことに応じて、機能ユニットの性能向上を可能にするためのコマンドを生成する。このようにして、信頼性モニタは、実際の使用条件下でフィードバックを使用することによって、予想される使用量を置換し又は変更する。実際の使用量が最初に予想した使用量よりも少ない場合、信頼性モニタによって提供される調整は、依然として機能ユニットの目標寿命を達成しながら、チップの性能を向上させる。
【００１０】
図１を参照すると、コンピューティングシステム１００の一実施形態の全般的なブロック図が示されている。図示するように、コンピューティングシステム１００は、機能ユニット１５０と、信頼性モニタ１１０と、電力マネージャ１４０と、を含む。機能ユニット１５０は、それ自体の電圧／クロックドメインを有する任意の回路を表すこともできる。機能ユニット１５０は、実際の使用値１５２を信頼性モニタ１１０及び電力マネージャ１４０の各々に伝達する。制御ロジック（例えば、電力マネージャ１４０内のパラメータセレクタ１４２等）は、受信した実際の使用値を用いて、機能ユニット１５０の１つ以上の動作パラメータを選択する。また、パラメータセレクタ１４２は、信頼性モニタ１１０からの情報を受信及び使用して、機能ユニット１５０の動作パラメータを更新する。情報は、動作パラメータを調整するために用いられる１つ以上のコマンド、指標、フラグ又は計算値を含む。例えば、信頼性モニタ１１０からの情報が無ければ、パラメータセレクタ１４２は、消費電力に関する最悪の場合の最大限界に基づいて異なるパラメータを選択する。いくつかの実施形態では、パラメータセレクタ１４２によって用いられる１つ以上のアルゴリズムは、熱設計電力（ＴＤＰ）値を使用する。ＴＤＰ値は、冷却システムが、チップ内のトランジスタの最大接合温度を超えずに放散することができる電力量を表す。
【００１１】
また、信頼性モニタ１１０は、機能ユニット１５０から実際の使用値を受信する。さらに、信頼性モニタは、予想使用値１１４を記憶する。実際の使用値１１２及び予想使用値１１４の１つ以上は、機能ユニット１５０の使用期間１２０に依存する。信頼性モニタ１１０内のコンパレータ１３０は、実際の使用値１１２と予想使用値１１４とを比較する。コンパレータ１３０による比較は、機能ユニット１５０の使用量が信頼性目標を満たしているかどうかを判別する。例えば、コンピューティングシステム１００の信頼性目標が少なくとも５年の寿命である場合、ある期間に亘る複数の予想使用値は、５年間の寿命の信頼性目標に基づいて設定される。
【００１２】
信頼性モニタ１１０内の制御ロジックは、コンパレータ１３０から比較結果を受信し、受信した実際の使用値１１２が予想使用値１１４を超えていると判別する。これに応じて、信頼性モニタ１１０内の制御ロジックは、機能ユニット１５０の信頼性を高めるように電力マネージャ１４０に指示するための情報１５４を提供する。このような場合、情報１５４は、１つ以上の動作パラメータを減らす必要があることを示すことができる。一実施形態では、動作パラメータの低減された最大値が示される。パラメータセレクタ１４２によって用いられる低減された最大値は、パラメータセレクタ１４２に対して、機能ユニット１５０による消費電力を低減するパラメータを選択させる。機能ユニット１５０に送信される低減された最大値及び結果として得られる選択された動作パラメータは、機能ユニット１５０の消耗を減らし、これにより、機能ユニット１５０の信頼性を向上させる。
【００１３】
上記とは対照的に、コンパレータ１３０からの比較結果が、受信した実際の使用値１１２が予想使用値１１４未満であることを示す場合、信頼性モニタ１１０は、性能向上が利用であることを示す、電力マネージャ１４０によって使用される情報を提供する。信頼性モニタ１１０から電力マネージャ１４０に送信される情報は、１つ以上の動作パラメータの最大値を維持又は増加させることを示す。パラメータセレクタ１４２によって用いられる更新された最大値は、パラメータセレクタ１４２に対して、機能ユニット１５０の性能を向上するパラメータを選択させる。いくつかの実施形態では、機能ユニット１５０は、処理ユニット、汎用中央処理装置（ＣＰＵ）複合体、グラフィック処理装置（ＧＰＵ）又は別のプロセッサ（例えば、デジタル信号処理（ＤＳＰ）コア、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）等）を表す。上述したように、機能ユニット１５０は、それ自体の電圧／クロックドメインを有する任意の回路を表すことができる。例えば、機能ユニット１５０は、メモリコントローラ、入出力（Ｉ／Ｏ）ハブコントローラ又は他のものとすることができる。複数の電圧／クロックドメインを有する他の実施形態の説明は後述する。簡単に説明するために、単一の電圧／クロックドメインをここで説明する。いくつかの実施形態では、信頼性モニタ１１０は、所定の電圧／クロックドメインに対して用いられる。他の実施形態では、信頼性モニタ１１０は、複数の電圧／クロックドメインに対して用いられる。
【００１４】
機能ユニット１５０は、実際の使用値を電力マネージャ１４０及び信頼性モニタ１１０に提供する。機能ユニット１５０の実際の使用値は、機能ユニット１５０の１つ以上の動作パラメータ、動作温度、動作電流及び使用期間に基づいている。様々な実施形態において、機能ユニット１５０は、アナログ又はデジタル熱センサを利用して、計算動作の増加のためにダイが特定領域でいつ加熱するかに関する情報を提供する。
【００１５】
機能ユニット１５０の信頼性は重要である場合があり、実際の使用値は、信頼性目標を満たすように機能ユニット１５０の使用量をモニタし、追跡し、調整するために用いられる。例えば、コンピューティングシステム１００は、医療機器、アンチロックブレーキシステム等の自動車システム、バンキング及びビジネスに不可欠な記憶及び処理システム、宇宙旅行システム等に使用することができる。実際の条件下でのテストが困難であるため、使用量及び最悪の条件を予測する式を用いて集積回路（ＩＣ）の寿命を予測していた。例えば、機能ユニット１５０のＩＣは、高温動作寿命試験を経ている可能性があり、実際の条件下での予想寿命は、試験中に収集されたデータから推定されていた。しかしながら、信頼性モニタ１１０は、予想使用アプローチに代わるものであり、実際の使用条件下でリアルタイムフィードバックを提供し、信頼性目標を満たし且つ利用可能な性能を利用するために、使用量をモニタして調整する。
【００１６】
経時的な動作温度は、機能ユニット１５０の消耗を示す。機能ユニット１５０のダイ上のセンサは、１つ以上の動作温度値を電力マネージャ１４０及び信頼性モニタ１１０に提供する。１つ以上の経時的な動作温度値は、特定のタイプの回路故障が多かれ少なかれ起こりそうかどうかを示す。例えば、時間に依存した絶縁破壊（ＴＤＯＢ）は、長期間に亘って継続して印加された比較的低い電界の結果としてゲート酸化膜が破壊されたときに起こる。破壊は、ゲート酸化膜を通して基板への導電路を形成する電子トンネル電流の形成によって生じる。通常、金属酸化物半導体（ＭＯＳ）電界効果トランジスタ（ＦＥＴ）は、その特定の動作電圧の近く又はそれを超えて動作している。
【００１７】
エレクトロマイグレーションが高電流密度の印加中にイオンを導体内で徐々に移動させると、別のタイプの回路故障が発生する。例えば、かなりの時間に亘って長い導線として使用される銅又は他のトレースは、金属原子の拡散に見舞われる。トランジスタ幅とトレース幅とが減少するにつれて、エレクトロマイグレーションの影響が大きくなる。
【００１８】
動作温度値に加えて、機能ユニット１５０から信頼性モニタ１１０に送信された実際の使用値は、動作電圧、動作電流及びクロック周波数を含む。これらの値の組み合わせが、電力性能状態（Ｐ状態）において使用される。電力マネージャ１４０は、Ｐ状態情報を機能ユニット１５０に提供する。いくつかの実施形態では、機能ユニット１５０は、受信したＰ状態に関連する動作電圧及びクロック周波数のみを使用する。他の実施形態では、機能ユニット１５０は、内部電力管理技術を含む。例えば、オペレーティングシステム又は特定用途向けプロセスは、動的電圧及び周波数スケーリング（ＤＶＦＳ）技術を使用する。ダウンロードされたドライバは、基本入出力ソフトウェア（ＢＩＯＳ）が提供するテーブルを用いて、特定のプラットフォームに適したクロック周波数、動作電圧、温度及び電流情報を取得する。ＢＩＯＳがこれらのテーブルを提供しない場合、周波数及び電圧遷移は利用できない可能性がある。
【００１９】
ＤＶＦＳスケーリング技術に加えて、機能ユニット１５０の消費電力及び性能のバランスを取るためのマイクロアーキテクチャ及び回路レベル設計技術は、機能ユニット１５０内の回路及び機能ブロックの消費電力をリアルタイムに推定する努力によって支援され得る。この消費電力をリアルタイムで推定する方法は、回路及び機能ブロックのアクティビティレベルを測定することを含む。機能ユニット１５０内の回路及び機能ブロックの消費電力を決定するために、様々な技術を利用することができる。
【００２０】
いくつかの実施形態では、機能ユニット１５０はいくつかの事前に選択された信号をサンプリングする。特定のクロックサイクル中に何れの信号をサンプリングするかの選択は、その選択が機能ユニット１５０内のスイッチングノードの容量とどの程度相関するかに対応する。例えば、いくつかの実施形態では、様々なクロックイネーブル信号、バスドライバイネーブル、連想メモリ（ＣＡＭ）のミスマッチライン及びＣＡＭワードライン（ＷＬ）ドライバを、サンプリングのために選択することができる。対応する重みは、サンプリングされた信号の各々に対して選択することができる。複数のサンプルを、サンプリング間隔の間に取得することができる。動作中、このような信号のためにカウントを維持することができる。これらのカウントに基づいて、カウントに対応する消費電力の推定値が決定される。サンプリングされた信号から推定される消費電力は、熱的条件又は電流の計測に基づいていない。サンプリングされた信号に加えて又はその代わりに、ダイ上の電流センサからの１つ以上の電流ドロー（current draw）測定値が、機能ユニット１５０から電力マネージャ１４０及び信頼性モニタ１１０に実際の使用値で送信される。
【００２１】
いくつかの実施形態では、信頼性モニタ１１０は、受信した実際の使用値を記憶し、後でこれらを処理する。他の実施形態では、信頼性モニタ１１０は、受信した実際の使用値を互いに組み合わせ、これらを信頼性モニタ１１内に記憶された他の値と組み合わせ、他の値にアクセスするために１つ以上のテーブルにインデックスする等して前処理する。実際の使用値１１２は、１つ以上の前処理ステップの後に又は前処理ステップ無しに信頼性モニタ１１０内の制御ロジックによって用いられる値を表す。
【００２２】
予想使用値は、機能ユニット１５０の使用期間１２０に対応する。いくつかの実施形態では、機能ユニット１５０は、使用期間の指標を実際の使用値と共に信頼性モニタ１１０に提供する。他の実施形態では、信頼性モニタ１１０は、使用期間１２０を維持する。いくつかの実施形態では、信頼性モニタ１１０は、タイムスタンプ値を使用して使用期間を維持する。他の実施形態では、信頼性モニタ１１０は、１つ以上のカウンタを使用して使用期間を維持する。１つのカウンタは、１時間毎にインクリメントされ、２４時間の終わりに一巡することができるが、他のカウンタは、毎日、毎週、毎月及び毎年インクリメントされる。このような場合、カウンタ値の連結が、機能ユニット１５０の使用期間を提供する。他の実施形態では、ソフトウェア（例えば、オペレーティングシステム等）が機能ユニット１５０の使用期間を維持する。
【００２３】
信頼性モニタ１１０は、使用期間１２０及び信頼性目標に基づいて機能ユニット１５０の予想使用値１１４を決定する。例えば、機能ユニット１５０の信頼性目標が少なくとも５年の寿命である場合、ある期間に亘る複数の予想使用値１１４は、５年の寿命である信頼性目標に基づいて設定される。例えば、予想使用値１１４は、５年間の各日に設定することができる。或いは、他の実施形態は、予想使用値１１４を、異なる時間間隔（例えば、毎時、毎週、毎月、１年の四半期毎等）に設定することができる。
【００２４】
上記に加えて、予想使用値１１４の分布は、必要に応じて設定される。例えば、同じ予想使用値１１４が時間間隔毎に使用される場合、一様分布を使用することができる。寿命の初期の段階では高い予想使用値が設定されるが、寿命の後期の段階では低い予想使用値が設定される。信頼性目標に基づいて予想使用値１１４を設定するための他の分布も可能であり、考えられる。また、信頼性目標、時間間隔及び分布の各々は、制御及び構成レジスタに記憶されているプログラム可能な値とすることができる。
【００２５】
様々な実施形態において、信頼性モニタ１１０は、実際の使用値１１２を組み合わせて単一の信頼性メトリックを生成する。信頼性モニタ１１０は、少なくとも実際の使用値１１２及び機能ユニットの使用期間１２０に基づいて、経時的な累積値として信頼性メトリックを維持することができる。同様に、予想使用値１１４を組み合わせて、単一の目標メトリックを生成することができる。コンパレータ１３０は、実際の使用値１１２から生成された信頼性メトリックと、予想使用値１１４から生成された目標メトリックと、を比較する。比較結果は、信頼性目標に基づく予想使用量と比較して機能ユニット１５０が過剰使用されているか、過少使用されているか、又は、目標通りかどうかを示す。
【００２６】
コンパレータ１３０は、実際の使用値１１２が予想使用値１１４を超えていると判別すると、機能ユニット１５０の信頼性を高めるための情報（又は、指標）を生成する。上述したように、情報は、機能ユニット１５０の動作パラメータを調整するために使用されるコマンド、指標若しくはフラグ、計算値、及び／又は、その他のもののうち１つ以上を含む。情報は、１つ以上の動作パラメータの最大値を、１つ以上の動作パラメータの現在の最大値よりも小さい値に更新することを示す。
【００２７】
一例として、最初の６ヵ月間の使用中に、コンピューティングシステム１００は、予想されたものを超える比較的高いワークロードに見舞われる可能性がある。したがって、例えば次の６か月等の時間間隔中に、信頼性モニタ１１０は、機能ユニット１５０の信頼性を高めるために最大値（及び、消費電力）を減少させる情報を生成する。この情報は、上述したように、所定の使用量の分布に基づいて、次の６ヵ月間で今後予想される実際の使用値に対応する。
【００２８】
いくつかの実施形態では、信頼性モニタ１１０は、情報を電力マネージャ１４０に提供する。他の実施形態では、信頼性モニタ１１０は、情報を電力マネージャ１４０及び機能ユニット１５０の両方に提供する。電力マネージャ１４０は、機能ユニット１５０から受信した実際の使用値と、信頼性モニタ１１０から受信した情報とに基づいて、機能ユニット１５０に送信する動作パラメータを更新する。
【００２９】
上記とは対照的に、コンパレータ１３０は、実際の使用値１１２が予想使用値１１４未満であると判別した場合、機能ユニット１５０の性能を向上させるための情報を生成する。情報は、１つ以上の動作パラメータの最大値を、１つ以上の動作パラメータの現在の最大値よりも大きい値に更新することを示す。例えば、最初の６ヵ月間の使用後に、コンピューティングシステム１００は、予想したよりも利用量が少ない場合がある。したがって、信頼性モニタ１１０は、性能の向上を可能にするために、１つ以上の動作パラメータの最大値を増やすための情報を生成する。
【００３０】
電力マネージャ１４０は、機能ユニット１５０の電力管理ポリシーを処理するための回路及びロジックを含む。電力マネージャ１４０は、機能ユニット１５０の一部が所定期間使用されていないこと検出した場合又は通知された場合、当該一部を無効又はその消費電力を減らす。同様に、電力性能状態（Ｐ状態）又は動的電圧及び周波数スケーリング（ＤＶＦＳ）技術は、機能ユニット１５０からの使用フィードバックに基づいて調整することができる。電力を管理するための初期アルゴリズムは、最悪の場合の熱的条件を想定している。しかしながら、実際の使用量及び環境条件は、最悪の場合よりも低くなる可能性がある。したがって、信頼性モニタ１１０からの情報は、より低い性能状態を使用するのではなく、パラメータ選択器１４２が、可能であれば（例えば、使用量が予想よりも低い場合）高い性能状態を選択し、適切な場合（例えば、使用量が予想よりも高い場合）に低い性能状態を選択するのを支援する。
【００３１】
図２を参照すると、コンピューティングシステムの性能及び信頼性を向上させる方法２００の一実施形態が示されている。説明の目的のために、本実施形態（及び、図３、図５）のステップは、順番に示されている。しかしながら、他の実施形態では、いくつかのステップは、図示されている順序とは異なる順序で行われ、いくつかのステップは並行して実行され、いくつかのステップは他のステップと組み合わされ、いくつかのステップは存在しない。
【００３２】
ブロック２０２において、機能ユニットによってワークロードが処理される。このようなワークロードは、概して、ソフトウェアアプリケーション、オペレーティングシステムプロセス又は他のプロセスの実行を伴う。所定の時間間隔が経過すると（条件付きブロック２０４）、次にブロック２０６において、機能ユニットは、実際の使用値を提供するか、このような使用値をアクセス可能にする。いくつかの実施形態では、時間間隔の経過に加えて、このような使用値は、他の場合に提供されてもよい。例えば、ユーザコマンド、プログラムコード又はいくつかのイベントの検出に応答する。一実施形態では、機能ユニットは、実際の使用値を信頼性モニタに提供する。また、機能ユニットは、電力マネージャによる使用のために実際の使用値を提供する。実際の使用値は、動作温度、電流ドロー、電力性能状態（Ｐ状態）情報、動的電圧及び周波数スケーリング（ＤＶＦＳ）パラメータ、アクティビティレベル、並びに、他の消費電力のうち１つ以上を含む。いくつかの実施形態では、実際の使用値は、対応する重みも使用する。或いは、重みは、実際の使用値がいつ信頼性モニタで受信されるかに関連付けることができる。使用期間は、１つ以上の累積合計を介して実際の使用値と関連付けることもできる。
【００３３】
ブロック２０８において、機能ユニットの使用期間に基づく予想使用値が決定される。この決定には、上述したように、機能ユニットの使用期間及び信頼性目標に基づく予想使用値の分布が使用される。様々な実施形態では、受信した実際の使用値は、単一の信頼性メトリックを生成するために組み合わされる。信頼性メトリックは、少なくとも実際の使用値及び機能ユニットの使用期間に基づいて、経時的な累積値として維持することができる。同様に、予想使用値を組み合わせて、単一の目標メトリックを生成することもできる。実際の使用値から生成された信頼性メトリックは、予想使用値から生成された目標メトリックと比較される。比較結果は、機能ユニットが、信頼性目標に基づいて、予想以上に使用されたか、予想より使用されていないか、又は、予想とほぼ等しく使用されたかどうかを示す。
【００３４】
実際の使用値が予想使用値を超える場合（条件付きブロック２１０）、ブロック２１２において、機能ユニットの信頼性を高めるためにコマンド又は他の情報が電力マネージャに提供される。いくつかの実施形態では、情報を提供することは、電力マネージャによってアクセスされる位置（例えば、レジスタ又はメモリ位置）に情報を記憶することを含む。他の実施形態では、電力マネージャは、このような情報をモニタ又は他のエンティティに要求してもよく、モニタ又は他のエンティティは、当該要求に応じて要求された情報を提供する。これらの及び他の実施形態が可能であり、考えられる。コマンド又は情報は、１つ以上の動作パラメータの最大値を、１つ以上の動作パラメータの現在の最大値よりも小さい値に更新することを示す。
【００３５】
コマンド又は情報は、機能ユニットによる消費電力の低減を引き起こす。一実施形態では、消費電力を減らすことは、機能ユニットの最大許容電力性能状態を減らすこと、又は、経時的な最大許容平均電力性能状態（Ｐ状態）を減らすことを含む。一実施形態では、Ｐ状態の「スロットル（throttle）」は、現在選択されているＰ状態を少なくとも１つのＰ状態だけ減少させてより低い消費電力Ｐ状態にすることを含む。いくつかの例では、電力マネージャが信頼性モニタから追加の情報を受信しなかった場合、電力マネージャは、Ｐ状態をスロットルすることを選択しない。例えば、消費電力が比較的高くない場合であっても、機能ユニットは、現在、信頼性目標を超えている場合がある。機能ユニットが、現在、信頼性目標を超えているかどうかを判別するために、少なくともＴＤＤＢ、エレクトロマイグレーション及び使用期間の影響等の要因を使用することができる。したがって、信頼性モニタからの追加の情報を用いて、Ｐ状態がスロットルされる。
【００３６】
実際の使用値が予想使用値を超えず（条件付きブロック２１０）、実際の使用値が予想使用値未満である場合（条件付きブロック２１４）、ブロック２１６において、機能ユニットの性能を向上させるコマンド又は他の情報を電力マネージャに送信することができる。一実施形態では、このようなコマンド又は情報は、１つ以上の動作パラメータの最大値を、１つ以上の動作パラメータの現在の最大値よりも大きい値に更新することを示す。実際の使用値が予想使用値を超えず（条件付きブロック２１０）、実際の使用値が予想使用値と等しい場合（条件付きブロック２１４）、ブロック２１８において、機能ユニットのために選択される動作パラメータを維持するためのコマンド又は他の情報が電力マネージャに送信される。或いは、コマンド又は情報は、電力マネージャに送信されない。このような場合には、電力マネージャは、動作パラメータの現在の設定を単に維持する。
【００３７】
上述したように、信頼性モニタは、受信した実際の使用値を組み合わせて、単一の信頼性メトリックを生成する。信頼性メトリックは、少なくとも実際の使用値及び機能ユニットの使用期間に基づいて、経時的な累積値として維持することができる。信頼性メトリックを累積値として維持することによって、信頼性メトリックは、経時的に受信した実際の使用値の平均に依存する。同様に、予想使用値を組み合わせて、単一の目標メトリックを生成することができる。いくつかの実施形態では、信頼性メトリック及び目標メトリックの更新速度がプログラム可能である。例えば、信頼性メトリックを１ミリ秒毎に更新することができるが、他の期間を選択し、後でおそらく変更することができる。目標メトリックを毎日更新することができるが、他の期間を選択することができ、後で変更することができる。
【００３８】
図３を参照すると、動作パラメータを調整してコンピューティングシステムの信頼性を高める方法３００の一実施形態が示されている。ブロック３０２において、実際の使用値が機能ユニットから受信される。上述したように、実際の使用値の例は、動作温度、ドロー、Ｐ状態情報、ＤＶＦＳパラメータ、アクティビティレベル及び他の消費電力のうち１つ以上を含む。また、ブロック３０４において、コマンド又は他の情報が信頼性モニタから受信される。
【００３９】
ブロック３０６において、少なくとも１つ以上の動作パラメータを、受信した実際の使用値に基づいて更新することができる。例えば、受信した実際の使用値を用いて、電力マネージャ又は他のロジックは、Ｐ状態をスロットル又はブーストし（上げて）、高性能ソフトウェアアプリケーションの予定を変更し、機能ユニット内の１つ以上の機能ブロックを有効又は無効にする等を決定する。
【００４０】
機能ユニットがアクティブでない場合（条件付きブロック３０８）、ブロック３１８において、動作パラメータ及び他の任意の指示情報が機能ユニットに送信される。いくつかの実施形態では、最小のアクティビティレベルは、信頼性モニタからのフィードバック情報をさらに考慮するために電力マネージャによって使用中であることが必要とされる場合がある。いくつかの例では、最小のアクティビティレベルは、非アクティブ又はオフになっているシステムに関連する最低アクティビティレベルを上回る１つ以上のアクティビティレベルであってもよい。
【００４１】
機能ユニットがアクティブであり（条件付きブロック３０８）、信頼性モニタから受信したフィードバック（例えば、コマンド）が消費電力の減少を示す場合（条件付きブロック３１０）、ブロック３１２において、消費電力を減らすために、１つ以上の更新された動作パラメータを、コマンドによって示される量だけ調整することができる。いくつかの実施形態では、電力マネージャは、信頼性モニタからのフィードバックを考慮せずに、ブロック３０６以前に説明したように１つ以上の動作パラメータを更新する。例えば、アルゴリズム及び制御ロジックは、既存のアルゴリズム及びロジックであってもよく、これらは再利用される。
【００４２】
方法３００に示すように、ブロック３１２において、信頼性モニタからのフィードバック情報に基づいて１つ以上の動作パラメータがさらに調整されるが、他の実施形態では、電力マネージャは、実際の使用値及び信頼性モニタからのフィードバック情報を使用して１つ以上の動作パラメータを同時に更新する。例えば、電力マネージャ又は他のロジックは、信頼性モニタから受信したコマンド又は他の情報を使用して、Ｐ状態をさらにスロットルし、高性能ソフトウェアアプリケーションのスケジューリングをさらに遅延させ、機能ユニット内の１つ以上の機能ブロックをさらに無効にする等を決定する。
【００４３】
信頼性モニタからのコマンド又は他の情報が性能を向上させることを示す場合（条件付きブロック３１４）、ブロック３１６において、１つ以上の更新された動作パラメータを、コマンド又は他の情報によって示される量だけ調整して性能を向上させることができる。例えば、電力マネージャ又は他のロジックは、信頼性モニタから受信したコマンド又は他の情報を使用して、Ｐ状態をさらにブーストし、高性能ソフトウェアアプリケーションのスケジューリングをさらに加速させ、機能ユニット内の１つ以上の機能ブロックをさらに有効にする等を決定する。
【００４４】
ブロック３１２，３１６の各々の制御フローはブロック３１８に移行し、調整された動作パラメータが電力マネージャから機能ユニットに送信される。ブロック３１２，３１６におけるさらなる調整は、ＴＤＤＢ、エレクトロマイグレーション及び機能ユニットの使用期間、並びに、機能ユニットが、現在、信頼性目標を超えているどうかの判別の影響を少なくとも考慮する。
【００４５】
図４を参照すると、システムオンチップ（ＳＯＣ）４００の一実施形態の全般的なブロック図が示されている。ＳＯＣ４００は、単一の半導体ダイ上に複数のタイプのＩＣ設計を含む集積回路（ＩＣ）であり、各ＩＣ設計は、別々の機能を提供する。図示した実施形態では、ＳＯＣ４００は、単一の半導体ダイ上にアクセラレーテッドプロセッシングユニット（ＡＰＵ）４１０と、プラットフォーム及び入出力（Ｉ／Ｏ）コントローラハブ４２０と、の両方を含む。
【００４６】
一実施形態では、ＡＰＵ４１０は、同じ半導体ダイ上に汎用中央処理装置（ＣＰＵ）複合体４３０とグラフィック処理装置（ＧＰＵ）４４０とを含む。ＣＰＵ４３０及びＧＰＵ４４０に加えて又はこれらの代わりに、他の様々なプロセッサをＳＯＣ４００に配置することができる。ＳＯＣ４００が使用するダイ上のプロセッサの他の例は、少なくともデジタル信号処理（ＤＳＰ）コア、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）等を含む。
【００４７】
ＡＰＵ４１０は、ＳＯＣ４００上のリソースの動作を制御し、リソース間の通信を同期させるためにシステム管理ユニット（ＳＭＵ）４８０を利用する。ＳＭＵ４８０は、ＳＯＣ４００上の様々なプロセッサの電源投入シーケンスを管理し、ＰＩＣＨ４２０のポートを通して伝達されるリセット、イネーブル及び他の信号を介して、複数のオフチップデバイスを制御する。また、ＳＭＵ４８０は、ＳＯＣ４００内の複数のバス上の様々なプロセッサ間の通信を管理する。
【００４８】
ＳＯＣ４００は、１つ以上のクロックソース（例えば、位相同期ループ（ＰＬＬ）等）を含むが、これは説明を簡単にするために示されていない。クロックソースは、ＳＯＣ４００内の各コンポーネントにクロック信号を供給する。ＳＭＵ４８０は、これらのクロックソースを制御する。また、ＳＭＵ４８０は、ＳＯＣ４００全体の回路によって用いられる１つ以上の動作電圧を制御する。例えば、ＳＭＵ４８０は、電力管理ユニット（図示省略）を含む。
【００４９】
また、ＳＭＵ４８０は、１つ以上の信頼性モニタ４８２を含む。信頼性モニタ４８２は、少なくともＴＤＤＢ、エレクトロマイグレーション及び使用期間の影響等の要因に基づいて、フィードバックを電力管理ユニットに提供する。フィードバックは、ＳＯＣ４００が、現在、信頼性目標を超えているかどうかを判別するために用いることができる。いくつかの実施形態では、ＳＭＵ４８０は、ＳＯＣ４００の電圧／クロックドメイン毎に１つの信頼性モニタをモニタ４８２内に含む。
【００５０】
いくつかの実施形態では、ＳＭＵ４８０は、モニタ４８２用の集中コントローラを含む。集中コントローラは、各モニタ４８２からフィードバックを受信し、電力管理ユニットに送信するためのコマンド又は他の情報の最終セットを決定する。例えば、モニタ４８２の各々は、他のモニタからのフィードバックの前又は後にフィードバックを優先させるために、関連する重みを有することができる。様々な実施形態では、重みは、対応する電圧／クロックドメインに関連するダイ上の占有（real estate）量によって割り当てられている。他の実施形態では、重みを、電圧／クロックドメイン又は他の要因によって提供される機能に基づいて割り当てることができる。
【００５１】
いくつかの実施形態では、モニタ４８２のうち所定の信頼性モニタは、ＳＭＵ４８０が別々の集中コントローラを含むのではなく、集中コントローラの機能を含む。いくつかの実施形態では、信頼性モニタ４８２は、各々の電圧／クロックドメイン付近のＳＯＣ４００に亘って分散される。このような実施形態では、信頼性モニタ４８２は、ＳＭＵ４８０にフィードバックを提供し、ＳＭＵ４８０は、集中コントローラにフィードバックを転送する。他の実施形態では、分散した信頼性モニタ４８２は、集中コントローラの機能によってフィードバック情報を所定の信頼性モニタに提供し、所定の信頼性モニタは、モニタ４８２から受信したフィードバックを表すフィードバック情報をＳＭＵ４８０に送信する。
【００５２】
ＡＰＵ４１０は、オフチップメモリ及びビデオカードと直接通信するための統合メモリコントローラ４５０を含む。オフチップメモリは、少なくともダイナミックランダムアクセスメモリ（ＤＲＡＭ）を含む。また、メモリコントローラ４５０は、外部メモリバスを介してオフチップディスクメモリに接続することができる。一実施形態では、ＳＭＵ４８０は、データ制御及びアクセスのためにプラットフォーム及び入出力（Ｉ／Ｏ）コントローラハブ４２０からの信号をＣＰＵ複合体４３０及びＧＰＵ４４０に直接リンクするための統合チャネル回路を含む。いくつかの実施形態では、この機能のためにクロスバースイッチ４６０が用いられる。他の実施形態では、クロスバースイッチ４６０が用いられず、この機能がＳＭＵ４８０に含まれる。
【００５３】
ＳＭＵ４８０は、信号及びバス制御を調整するために、ファームウェア及び／又は他のマイクロコード等の動作命令を利用する。様々な実施形態では、このような動作命令は、不揮発性メモリに記憶される。同様に、信頼性モニタ４８２は、対応する電圧／クロックドメインから受信した実際の使用値を特徴付けるため、信頼性目標値を構成するため、又は、実際の使用量及び目標値を使用するアルゴリズム用の動作命令を使用する。上述したように、モニタ４８２の信頼性モニタは、ファームウェア又は他の方法で実装することができるアルゴリズムを含む。いくつかの実施形態では、アルゴリズムを修正するために動作命令を更新することができる。アルゴリズムは、受信した実際の使用値をフィルタリングし、これらを１つ以上の式に適用する。１つ以上の式は、累積値を介した信頼性メトリックに対する受信した使用値の貢献度を計算する。
【００５４】
また、モニタ４８２の信頼性モニタのアルゴリズムは、使用期間中に累積する目標信頼性メトリックを追跡する。目標メトリックは、有効期間の仕様に対する累積的な通常の使用事例を表す。アルゴリズムは、ＰＩＤ（比例、積分、微分）コントローラを使用して、実際のシステム使用量に基づいて更新された動作パラメータを経時的に調整し、全体的な信頼性を維持して目標仕様を満たす。
【００５５】
いくつかの実施形態では、ＳＭＵ４８０は、実際の使用値（又は、対応する信頼性メトリック）、予想使用値（又は、対応する目標メトリック）、更新された動作パラメータのうち１つ以上を不揮発性メモリに定期的に書き込み、ＳＯＣ４００がシャットダウンする場合に備えてデータを記憶する。例えば、ＳＭＵ４８０は、メモリコントローラ４５０を介してデータをオフチップメモリに定期的に書き込む。データを書き込むための時間間隔は、プログラム可能であってもよい。
【００５６】
プラットフォーム及びＩ／Ｏコントローラハブ（ＰＩＣＨ）４２０は、所定のプロトコルに従って異なるＩ／Ｏバスとインタフェースすることができる。ＰＩＣＨ４２０は、Ｉ／Ｏ機能を実行し、ＵＳＢ（Universal Serial Bus）プロトコルに従う周辺機器、ＰＣＩｅ（Peripheral Component Interconnect Express）プロトコルに従う周辺機器及びネットワークカード、読み出し専用メモリ（ＲＯＭ）に記憶されるシステム基本入出力ソフトウェア（ＢＩＯＳ）、割り込みコントローラ、ＳＡＴＡ（Serial Advanced Technology Attachment）デバイス、ネットワークインタフェース、マルチチャネル高精細オーディオコーデック機能及びインタフェース等のデバイス及びソフトウェアと通信することができる。ＰＩＣＨ４２０は、従来のサウスブリッジチップセットによってダイ外部で通常実行される動作をダイ上で実行することができる。
【００５７】
ＣＰＵ複合体４３０は、プロセッサコア４３２及び対応するキャッシュメモリサブシステム４３４を含む１つ以上の処理ユニット４３５ａ〜４３５ｂを含む。いくつかの実施形態では、ＣＰＵ４３０は、処理ユニット４３５ａ〜４３５ｂの各々によってアクセスされる共有キャッシュメモリサブシステム４６２を含むこともできる。各プロセッサコア４３２は、所定の命令セットに従って命令を実行するための回路を含む。例えば、ＳＰＡＲＣ（登録商標）命令セットアーキテクチャ（ＩＳＡ）を選択することができる。或いは、ｘ８６、ｘ８６−６４（登録商標）、Ａｌｐｈａ（登録商標）、ＰｏｗｅｒＰＣ（登録商標）、ＭＩＰＳ（登録商標）、ＰＡ−ＲＩＳＣ（登録商標）又は他の任意の命令セットアーキテクチャを選択することができる。
【００５８】
ＧＰＵ４４０は、統合メモリコントローラ４５０を介して、ローカルメモリ４３４，４６２と、オフチップメモリとの両方にアクセスすることができる。このような実施形態は、ＧＰＵ４４０に対するメモリアクセスのレイテンシを短縮することができ、より高い性能に変換することができる。ＣＰＵ４３０及びＧＰＵ４４０の各々の内部のコアが同じメモリにアクセスすることができるので、ＳＭＵ４８０は、ＣＰＵ４３０及びＧＰＵ４４０のキャッシュコヒーレンシを維持する。メモリコントローラ４５０及びＳＭＵ４８０のうち１つ以上は、メモリアクセスのためにアドレス変換を実行することができる。
【００５９】
様々な実施形態において、ＧＰＵ４４０は、１つ以上のグラフィックプロセッサコア４４２と、データ記憶バッファ４４４と、を含む。グラフィックプロセッサコア４４２は、少なくともグラフィクレンダリング及び三次元（３Ｄ）グラフィックアプリケーションのためのデータ中心の動作を実行する。グラフィックプロセッサコア４４２は、様々な複雑なアルゴリズムに対して汎用ＣＰＵ４３０よりも効果的にする高度に並列な構造を有している。
【００６０】
上述したように、各信頼性モニタ４８２は、電力管理ユニットからＳＯＣ４００を介して複数の電圧／クロックドメインに送信される動作パラメータを調整する。信頼性モニタ４８２によるさらなる調整は、少なくともＴＤＤＢ、エレクトロマイグレーション及びＳＯＣ４００の使用期間の影響を考慮し、ＳＯＣ４００が、現在、その信頼性目標を超えているかどうかを判別する。
【００６１】
図５を参照すると、半導体チップの性能及び信頼性を向上させる方法５００の一実施形態が示されている。ブロック５０２において、１つ以上のソフトウェアアプリケーションが処理される。ソフトウェアアプリケーションは、プロセッサ、処理ユニット、ＣＰＵ複合体、ＧＰＵ、ＳＯＣ等で処理される。第１時間間隔は、チップ又はユニットの実際の使用値が、どれくらいの頻度で対応する信頼性モニタ及び電力マネージャに送信されるかに対応することができる。例えば、第１時間間隔は１ミリ秒であってもよいが、他の時間間隔が選択され使用され得る。また、第１時間間隔は、プログラム可能であってもよい。
【００６２】
第１時間間隔が経過した場合（条件付きブロック５０４）、ブロック５０６において、電圧／クロックドメインからの実際の使用値が各々の信頼性モニタ及び電力マネージャに送信される。信頼性モニタから開始して、ブロック５０８において、各々の電圧／クロックドメインの信頼性メトリックは、受信した実際の使用値に基づいて更新される。上述したように、信頼性モニタは、受信した実際の使用値を組み合わせて、単一の信頼性メトリックを生成する。信頼性メトリックは、少なくとも電圧／クロックドメイン内の機能ユニットの実際の使用値及び使用期間に基づいて、経時的な累積値として維持することができる。信頼性メトリックを累積値として維持することによって、信頼性メトリックは、経時的に受信した実際の使用値の平均に依存する。同様に、予想使用値を組み合わせて、単一の目標メトリックを生成することができる。
【００６３】
信頼性メトリック及び目標メトリックは、上述した１ミリ秒の例のように、第１時間間隔毎に更新することができる。様々な実施形態では、電圧／クロックドメインの動作パラメータを更新することは、それほど頻繁に行われない。例えば、１日という第２時間間隔を使用することができる。第２時間間隔について他の値を選択して使用することができる。第１時間間隔と同様に、第２時間間隔はプログラム可能であってもよい。
【００６４】
第２時間間隔が経過した場合（条件付きブロック５１０）、ブロック５１２において、更新された信頼性メトリックが更新された目標メトリックと比較される。比較結果は、信頼性目標（チップの目標寿命）に基づいて予想される使用量に関して、特定の電圧／クロックドメインが現在過剰使用されているか、過少使用であるか、又は、目標通りかどうかを示す。比較結果は、電圧／クロックドメインの動作パラメータを調整するために使用されるコマンド、指標若しくはフラグ、又は、計算値のうち１つ以上等の情報を含む。この情報は、Ｐ状態をスロットル又はブーストすること、１つ以上のソフトウェアアプリケーションのタスク、スレッド又はプロセスのスケジュールを変更すること、及び、電圧／クロックドメイン内の特定の機能ブロック又は機能ユニットを有効又は無効にすることを示す。
【００６５】
ブロック５１４において、比較結果は、各々の電圧／クロックドメインに対する重みによって更新することができる。上述したように、集中コントローラを複数の信頼性モニタに使用し、各モニタからフィードバックを受信することができる。集中コントローラは、電力マネージャに送信するためのコマンド又は他の情報の最終セットを決定する。例えば、信頼性モニタの各々は、他のモニタからのフィードバックの前又は後にフィードバックを優先させるために、関連する重みを有する。様々な実施形態では、重みは、対応する電圧／クロックドメインに関連するダイ上の占有量によって割り当てられる。他の実施形態では、重みは、電圧／クロックドメイン又は他の任意の要因によって提供される機能に基づいて割り当てることができる。集中コントローラは、複数の信頼性モニタからのフィードバックから生成された情報を電力マネージャに提供する。
【００６６】
ブロック５１６において、電力マネージャは、受信した実際の使用値と複数の信頼性モニタから受信した実際の使用値とに基づいて電圧／クロックドメインの動作パラメータを決定する。上述したように、コマンド又は他の情報は、Ｐ状態をスロットル又はブーストすること、１つ以上のソフトウェアアプリケーションのタスク、スレッド又はプロセスのスケジュールを変更すること、及び、電圧／クロックドメイン内の特定の機能ブロック又は機能ユニットを有効又は無効にすることを示す。いくつかの実施形態では、信頼性モニタからの情報は、電圧／クロックドメインからの情報よりも少ない頻度で受信される。例えば、電力マネージャは、電圧／クロックドメインから情報を１ミリ秒毎に受信するのに対して、電力マネージャは、信頼性モニタから１日毎に情報を受信する。ブロック５１８において、電力マネージャは、更新された動作パラメータ及び他の指示又はコマンドを電圧／クロックドメインに送信する。
【００６７】
上記の実施形態のうち１つ以上がソフトウェアを含むことに留意されたい。このような実施形態では、方法及び／又はメカニズムを実装するプログラム命令は、コンピュータ可読媒体に伝達又は記憶される。プログラム命令を記憶するように構成された多くのタイプの媒体が利用可能であり、これらには、ハードディスク、フロッピー（登録商標）ディスク、ＣＤ−ＲＯＭ、ＤＶＤ、フラッシュメモリ、プログラム可能ＲＯＭ（ＰＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）及び他の様々な形態の揮発性又は不揮発性記憶装置が含まれる。一般的に言えば、コンピュータアクセス可能な記憶媒体は、命令及び／又はデータをコンピュータに提供するために使用中にコンピュータがアクセス可能な記憶媒体を含む。例えば、コンピュータアクセス可能な記憶媒体は、例えば磁気又は光学媒体（例えば、ディスク（固定若しくは取り外し可能）、テープ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ブルーレイ（登録商標））等の記憶媒体を含む。記憶媒体は、ＲＡＭ（例えば、同期型ダイナミックＲＡＭ（ＳＤＲＡＭ）、ダブルデータレート（ＤＤＲ、ＤＤＲ２、ＤＤＲ３等）ＳＤＲＡＭ、低電力ＤＤＲ（ＬＰＤＤＲ２等）ＳＤＲＡＭ、ラムバスＤＲＡＭ（ＲＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）等）、ＲＯＭ、フラッシュメモリ、ＵＳＢインタフェース等の周辺インタフェースを介してアクセス可能な不揮発性メモリ（例えば、フラッシュメモリ）等の揮発性又は不揮発性記憶媒体をさらに含む。記憶媒体は、微小電気機械システム（ＭＥＭＳ）、並びに、ネットワーク及び／又は無線リンク等の通信媒体を介してアクセス可能な記憶媒体を含む。
【００６８】
また、様々な実施形態では、プログラム命令は、Ｃ等の高水準プログラミング言語、Ｖｅｒｉｌｏｇ、ＶＨＤＬ等の設計言語（ＨＤＬ）、又は、ＧＤＳ  ＩＩストリームフォーマット（ＧＤＳＩＩ）等のデータベースフォーマットにおけるハードウェア機能の動作レベル記述又はレジスタ転送レベル（ＲＴＬ）記述を含む。場合によっては、記述は合成ツールによって読み取られ、合成ツールは、記述を合成して、ゲートのリストを含むネットリストを合成ライブラリから生成する。ネットリストは、システムを含むハードウェアの機能を表すゲートのセットを含む。次に、ネットリストを配置してルーティングし、マスクに適用される幾何学的形状を記述するデータセットを生成する。次いで、マスクを様々な半導体製造工程で使用して、システムに対応する１つ以上の半導体回路を製造する。或いは、コンピュータアクセス可能な記憶媒体上の命令は、必要に応じて、ネットリスト（合成ライブラリを伴う若しくは伴わない）又はデータセットである。さらに、命令は、Ｃａｄｅｎｃｅ（登録商標）、ＥＶＥ（登録商標）及びＭｅｎｔｏｒ  Ｇｒａｐｈｉｃｓ（登録商標）等のベンダからのハードウェアベースタイプのエミュレータによるエミュレーションの目的で利用される。
【００６９】
上記の実施形態をかなり詳細に説明したが、上記の開示が十分に理解されれば、当業者には多くの変形及び修正が明らかになるであろう。添付の特許請求は、このような全ての変形及び修正を包含するように解釈されることを意図している。
【図１】
2019535061.tif 000003
【図２】
2019535061.tif 000004
【図３】
2019535061.tif 000005
【図４】
2019535061.tif 000006
【図５】
2019535061.tif 000007
【国際調査報告】
2019535061.tif 000008