JP7014778B2 - 動的信頼性品質モニタリング - Google Patents

動的信頼性品質モニタリング Download PDF

Info

Publication number
JP7014778B2
JP7014778B2 JP2019512999A JP2019512999A JP7014778B2 JP 7014778 B2 JP7014778 B2 JP 7014778B2 JP 2019512999 A JP2019512999 A JP 2019512999A JP 2019512999 A JP2019512999 A JP 2019512999A JP 7014778 B2 JP7014778 B2 JP 7014778B2
Authority
JP
Japan
Prior art keywords
functional unit
usage
actual usage
reliability
monitor
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.)
Active
Application number
JP2019512999A
Other languages
English (en)
Other versions
JP2019535061A (ja
Inventor
ヴィー. コソノキー ステファン
ブルド トーマス
クラーク アダム
ディー. ヒューイット ラリー
ヴィンセント ファリセッリ ジョン
ピー. ペトリー ジョン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ATI Technologies ULC
Advanced Micro Devices Inc
Original Assignee
ATI Technologies ULC
Advanced Micro Devices Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ATI Technologies ULC, Advanced Micro Devices Inc filed Critical ATI Technologies ULC
Publication of JP2019535061A publication Critical patent/JP2019535061A/ja
Application granted granted Critical
Publication of JP7014778B2 publication Critical patent/JP7014778B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3209Monitoring remote activity, e.g. over telephone lines or network connections
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/2851Testing of integrated circuits [IC]
    • G01R31/2855Environmental, reliability or burn-in testing
    • G01R31/2856Internal circuit aspects, e.g. built-in test features; Test chips; Measuring material aspects, e.g. electro migration [EM]
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/2851Testing of integrated circuits [IC]
    • G01R31/2855Environmental, reliability or burn-in testing
    • G01R31/2872Environmental, reliability or burn-in testing related to electrical or environmental aspects, e.g. temperature, humidity, vibration, nuclear radiation
    • G01R31/2874Environmental, reliability or burn-in testing related to electrical or environmental aspects, e.g. temperature, humidity, vibration, nuclear radiation related to temperature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Environmental & Geological Engineering (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Health & Medical Sciences (AREA)
  • Toxicology (AREA)
  • Power Sources (AREA)
  • Debugging And Monitoring (AREA)

Description

(関連技術の説明)
最新の集積回路(IC)の消費電力は、各世代の半導体チップに関してますます重要な設計問題となっている。集積回路の消費電力の制約は、ポータブルコンピュータ及び移動体通信装置だけではなく、複数のプロセッサコア及び複数のパイプラインをコア内に含むことができる高性能マイクロプロセッサにとっても問題である。
IC用の電力管理ユニット(PMU)は、ICの一部が所定期間使用されていないことを検出した場合又は通知された場合に、当該一部に対する電力を低減することができる。同様に、電力性能状態(P状態)又は動的電圧及び周波数スケーリング(DVFS)技術は、1つ以上の処理ユニットの使用量フィードバック(usage feedback)に基づいて調整される。通常、電力管理アルゴリズムは、ICの寿命を推定する場合に、最悪の場合の熱的条件及び時間の経過に伴うICの予想使用量を仮定する。これらの仮定を前提として、他の方法で選択されたものよりも(平均して)低い性能状態が選択される。しかしながら、通常使用中に、最悪の場合の熱的条件が実際には満たされない場合がある。したがって、最悪の場合の仮定によってシステムに設定された電力制限は、必要以上に厳しくなる可能性がある。残念なことに、ICの使用量が事前に予測されてシステムに組み込まれているので、当該システムは、予想される寿命の間、そうでなければ達成し得たはずの性能よりも低い性能を提供する可能性がある。
上記を考慮して、信頼性目標を満たしながら、最適な電力及び性能のために半導体チップ内の動作モードを管理するための効率的な方法及びシステムが望まれている。
コンピューティングシステムの一実施形態の全般的な図である。 コンピューティングシステムの性能及び信頼性を高めるために用いられる方法の一実施形態の全般的な図である。 動作パラメータを調整してコンピューティングシステムの信頼性を高める方法の一実施形態の全般的な図である。 システムオンチップ(SOC)の一実施形態の全般的な図である。 半導体チップの性能及び信頼性を向上させる方法の一実施形態の全般的な図である。
本発明は様々な変形及び変更形態を受け入れることができるが、特定の実施形態は、例示として図面に示されており、本明細書で詳細に説明されている。しかしながら、図面及びその詳細な説明は、本発明を開示された特定形態に限定することを意図するものではなく、逆に、本発明は、添付の特許請求の範囲によって定義されたように、本発明の範囲内の全ての修正、均等物及び変形例を包含することを理解されたい。
以下の説明では、本発明の完全な理解を提供するために多数の具体的な詳細が記載されている。しかしながら、当業者であれば、本発明がこれらの具体的な詳細無しに実施され得ることを認識するであろう。場合によっては、本発明を不明瞭にすることを避けるために、周知の回路、構造及び技術を詳細に示していない。さらに、説明を簡単且つ明瞭にするために、図に示す要素は必ずしも一定の縮尺で描かれていないことを理解されたい。例えば、いくつかの要素の寸法は、他の要素に対して誇張されている。
信頼性目標を満たしながら、最適な電力及び性能のために半導体チップ内の動作パラメータを管理するシステム及び方法が考察される。様々な実施形態において、半導体チップは、各々の動作パラメータで動作する1つ以上の機能ユニットを含む。1つ以上の機能ユニットは、対応する信頼性モニタに接続されている。これらの1つ以上の機能ユニットは、実際の使用量の値(使用値)を信頼性モニタに報告する。例えば、1つ以上の機能ユニットは、所定の時間間隔が経過する毎に実際の使用値を報告する。機能ユニットの実際の使用値は、1つ以上の動作パラメータ及び機能ユニットの使用期間(age)に少なくとも基づいている。いくつかの実施形態では、動作パラメータは、所定の機能ユニットに対する電力性能状態(P状態)、複数の機能ユニットに対する動的電圧及び周波数スケーリング(DVFS)パラメータ、アクティビティレベル、所定の時間間隔の間のこのようなパラメータの値、所定の時間間隔に亘るこのようなパラメータの平均等を含む。実際の使用値は、動作温度を含むこともできる。
信頼性モニタは、機能ユニットから実際の使用値を受信し、機能ユニットの使用期間に少なくとも部分的に基づいて、対応する機能ユニットの予想使用値を判別する。例えば、半導体チップの信頼性目標が少なくとも5年の寿命である場合、選択された期間に亘る予想使用値は、5年の寿命の信頼性目標に基づいて設定される。選択された期間は、毎時、毎日、毎週又はこれ以外の場合がある。予想使用値の分布は、必要に応じて設定することができる。例えば、一実施形態では、チップの寿命の間の時間間隔毎にほぼ等しい予想使用値が使用される場合には、一様分布が使用される。他の実施形態では、寿命の初期の段階においてより高い予想使用値が設定され、寿命の後期の段階においてより低い予想使用値が設定され、その逆も同様である。信頼性目標に基づいて予想使用値を設定するための他の分布が可能であり、考えられる。
信頼性モニタは、受信した実際の使用値を予想使用値と比較する。様々な実施形態では、信頼性モニタは、機能ユニットから受信した実際の使用値及び機能ユニットの使用期間に少なくとも基づいて、経時的な累積値として信頼性メトリックを維持する。受信した実際の使用値が予想使用値を超えていると信頼性モニタが判別すると、信頼性モニタは、消費電力及び/又は他の動作パラメータ減らすことによって機能ユニットの信頼性を増加させるための情報(例えば、コマンド等)を生成する。受信した実際の使用値が予想使用値を超えていると信頼性モニタが判別すると、機能ユニットの残りの予想寿命が目標寿命に達しない可能性がある。動作パラメータを減らすことによって、目標寿命に達するように残りの寿命を延ばすことができる。対照的に、信頼性モニタは、受信した実際の使用値が予想使用値未満であると判別したことに応じて、機能ユニットの性能向上を可能にするためのコマンドを生成する。このようにして、信頼性モニタは、実際の使用条件下でフィードバックを使用することによって、予想される使用量を置換し又は変更する。実際の使用量が最初に予想した使用量よりも少ない場合、信頼性モニタによって提供される調整は、依然として機能ユニットの目標寿命を達成しながら、チップの性能を向上させる。
図1を参照すると、コンピューティングシステム100の一実施形態の全般的なブロック図が示されている。図示するように、コンピューティングシステム100は、機能ユニット150と、信頼性モニタ110と、電力マネージャ140と、を含む。機能ユニット150は、それ自体の電圧/クロックドメインを有する任意の回路を表すこともできる。機能ユニット150は、実際の使用値152を信頼性モニタ110及び電力マネージャ140の各々に伝達する。制御ロジック(例えば、電力マネージャ140内のパラメータセレクタ142等)は、受信した実際の使用値を用いて、機能ユニット150の1つ以上の動作パラメータを選択する。また、パラメータセレクタ142は、信頼性モニタ110からの情報を受信及び使用して、機能ユニット150の動作パラメータを更新する。情報は、動作パラメータを調整するために用いられる1つ以上のコマンド、指標、フラグ又は計算値を含む。例えば、信頼性モニタ110からの情報が無ければ、パラメータセレクタ142は、消費電力に関する最悪の場合の最大限界に基づいて異なるパラメータを選択する。いくつかの実施形態では、パラメータセレクタ142によって用いられる1つ以上のアルゴリズムは、熱設計電力(TDP)値を使用する。TDP値は、冷却システムが、チップ内のトランジスタの最大接合温度を超えずに放散することができる電力量を表す。
また、信頼性モニタ110は、機能ユニット150から実際の使用値を受信する。さらに、信頼性モニタは、予想使用値114を記憶する。実際の使用値112及び予想使用値114の1つ以上は、機能ユニット150の使用期間120に依存する。信頼性モニタ110内のコンパレータ130は、実際の使用値112と予想使用値114とを比較する。コンパレータ130による比較は、機能ユニット150の使用量が信頼性目標を満たしているかどうかを判別する。例えば、コンピューティングシステム100の信頼性目標が少なくとも5年の寿命である場合、ある期間に亘る複数の予想使用値は、5年間の寿命の信頼性目標に基づいて設定される。
信頼性モニタ110内の制御ロジックは、コンパレータ130から比較結果を受信し、受信した実際の使用値112が予想使用値114を超えていると判別する。これに応じて、信頼性モニタ110内の制御ロジックは、機能ユニット150の信頼性を高めるように電力マネージャ140に指示するための情報154を提供する。このような場合、情報154は、1つ以上の動作パラメータを減らす必要があることを示すことができる。一実施形態では、動作パラメータの低減された最大値が示される。パラメータセレクタ142によって用いられる低減された最大値は、パラメータセレクタ142に対して、機能ユニット150による消費電力を低減するパラメータを選択させる。機能ユニット150に送信される低減された最大値及び結果として得られる選択された動作パラメータは、機能ユニット150の消耗を減らし、これにより、機能ユニット150の信頼性を向上させる。
上記とは対照的に、コンパレータ130からの比較結果が、受信した実際の使用値112が予想使用値114未満であることを示す場合、信頼性モニタ110は、性能向上が利用であることを示す、電力マネージャ140によって使用される情報を提供する。信頼性モニタ110から電力マネージャ140に送信される情報は、1つ以上の動作パラメータの最大値を維持又は増加させることを示す。パラメータセレクタ142によって用いられる更新された最大値は、パラメータセレクタ142に対して、機能ユニット150の性能を向上するパラメータを選択させる。いくつかの実施形態では、機能ユニット150は、処理ユニット、汎用中央処理装置(CPU)複合体、グラフィック処理装置(GPU)又は別のプロセッサ(例えば、デジタル信号処理(DSP)コア、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)等)を表す。上述したように、機能ユニット150は、それ自体の電圧/クロックドメインを有する任意の回路を表すことができる。例えば、機能ユニット150は、メモリコントローラ、入出力(I/O)ハブコントローラ又は他のものとすることができる。複数の電圧/クロックドメインを有する他の実施形態の説明は後述する。簡単に説明するために、単一の電圧/クロックドメインをここで説明する。いくつかの実施形態では、信頼性モニタ110は、所定の電圧/クロックドメインに対して用いられる。他の実施形態では、信頼性モニタ110は、複数の電圧/クロックドメインに対して用いられる。
機能ユニット150は、実際の使用値を電力マネージャ140及び信頼性モニタ110に提供する。機能ユニット150の実際の使用値は、機能ユニット150の1つ以上の動作パラメータ、動作温度、動作電流及び使用期間に基づいている。様々な実施形態において、機能ユニット150は、アナログ又はデジタル熱センサを利用して、計算動作の増加のためにダイが特定領域でいつ加熱するかに関する情報を提供する。
機能ユニット150の信頼性は重要である場合があり、実際の使用値は、信頼性目標を満たすように機能ユニット150の使用量をモニタし、追跡し、調整するために用いられる。例えば、コンピューティングシステム100は、医療機器、アンチロックブレーキシステム等の自動車システム、バンキング及びビジネスに不可欠な記憶及び処理システム、宇宙旅行システム等に使用することができる。実際の条件下でのテストが困難であるため、使用量及び最悪の条件を予測する式を用いて集積回路(IC)の寿命を予測していた。例えば、機能ユニット150のICは、高温動作寿命試験を経ている可能性があり、実際の条件下での予想寿命は、試験中に収集されたデータから推定されていた。しかしながら、信頼性モニタ110は、予想使用アプローチに代わるものであり、実際の使用条件下でリアルタイムフィードバックを提供し、信頼性目標を満たし且つ利用可能な性能を利用するために、使用量をモニタして調整する。
経時的な動作温度は、機能ユニット150の消耗を示す。機能ユニット150のダイ上のセンサは、1つ以上の動作温度値を電力マネージャ140及び信頼性モニタ110に提供する。1つ以上の経時的な動作温度値は、特定のタイプの回路故障が多かれ少なかれ起こりそうかどうかを示す。例えば、時間に依存した絶縁破壊(TDOB)は、長期間に亘って継続して印加された比較的低い電界の結果としてゲート酸化膜が破壊されたときに起こる。破壊は、ゲート酸化膜を通して基板への導電路を形成する電子トンネル電流の形成によって生じる。通常、金属酸化物半導体(MOS)電界効果トランジスタ(FET)は、その特定の動作電圧の近く又はそれを超えて動作している。
エレクトロマイグレーションが高電流密度の印加中にイオンを導体内で徐々に移動させると、別のタイプの回路故障が発生する。例えば、かなりの時間に亘って長い導線として使用される銅又は他のトレースは、金属原子の拡散に見舞われる。トランジスタ幅とトレース幅とが減少するにつれて、エレクトロマイグレーションの影響が大きくなる。
動作温度値に加えて、機能ユニット150から信頼性モニタ110に送信された実際の使用値は、動作電圧、動作電流及びクロック周波数を含む。これらの値の組み合わせが、電力性能状態(P状態)において使用される。電力マネージャ140は、P状態情報を機能ユニット150に提供する。いくつかの実施形態では、機能ユニット150は、受信したP状態に関連する動作電圧及びクロック周波数のみを使用する。他の実施形態では、機能ユニット150は、内部電力管理技術を含む。例えば、オペレーティングシステム又は特定用途向けプロセスは、動的電圧及び周波数スケーリング(DVFS)技術を使用する。ダウンロードされたドライバは、基本入出力ソフトウェア(BIOS)が提供するテーブルを用いて、特定のプラットフォームに適したクロック周波数、動作電圧、温度及び電流情報を取得する。BIOSがこれらのテーブルを提供しない場合、周波数及び電圧遷移は利用できない可能性がある。
DVFSスケーリング技術に加えて、機能ユニット150の消費電力及び性能のバランスを取るためのマイクロアーキテクチャ及び回路レベル設計技術は、機能ユニット150内の回路及び機能ブロックの消費電力をリアルタイムに推定する努力によって支援され得る。この消費電力をリアルタイムで推定する方法は、回路及び機能ブロックのアクティビティレベルを測定することを含む。機能ユニット150内の回路及び機能ブロックの消費電力を決定するために、様々な技術を利用することができる。
いくつかの実施形態では、機能ユニット150はいくつかの事前に選択された信号をサンプリングする。特定のクロックサイクル中に何れの信号をサンプリングするかの選択は、その選択が機能ユニット150内のスイッチングノードの容量とどの程度相関するかに対応する。例えば、いくつかの実施形態では、様々なクロックイネーブル信号、バスドライバイネーブル、連想メモリ(CAM)のミスマッチライン及びCAMワードライン(WL)ドライバを、サンプリングのために選択することができる。対応する重みは、サンプリングされた信号の各々に対して選択することができる。複数のサンプルを、サンプリング間隔の間に取得することができる。動作中、このような信号のためにカウントを維持することができる。これらのカウントに基づいて、カウントに対応する消費電力の推定値が決定される。サンプリングされた信号から推定される消費電力は、熱的条件又は電流の計測に基づいていない。サンプリングされた信号に加えて又はその代わりに、ダイ上の電流センサからの1つ以上の電流ドロー(current draw)測定値が、機能ユニット150から電力マネージャ140及び信頼性モニタ110に実際の使用値で送信される。
いくつかの実施形態では、信頼性モニタ110は、受信した実際の使用値を記憶し、後でこれらを処理する。他の実施形態では、信頼性モニタ110は、受信した実際の使用値を互いに組み合わせ、これらを信頼性モニタ11内に記憶された他の値と組み合わせ、他の値にアクセスするために1つ以上のテーブルにインデックスする等して前処理する。実際の使用値112は、1つ以上の前処理ステップの後に又は前処理ステップ無しに信頼性モニタ110内の制御ロジックによって用いられる値を表す。
予想使用値は、機能ユニット150の使用期間120に対応する。いくつかの実施形態では、機能ユニット150は、使用期間の指標を実際の使用値と共に信頼性モニタ110に提供する。他の実施形態では、信頼性モニタ110は、使用期間120を維持する。いくつかの実施形態では、信頼性モニタ110は、タイムスタンプ値を使用して使用期間を維持する。他の実施形態では、信頼性モニタ110は、1つ以上のカウンタを使用して使用期間を維持する。1つのカウンタは、1時間毎にインクリメントされ、24時間の終わりに一巡することができるが、他のカウンタは、毎日、毎週、毎月及び毎年インクリメントされる。このような場合、カウンタ値の連結が、機能ユニット150の使用期間を提供する。他の実施形態では、ソフトウェア(例えば、オペレーティングシステム等)が機能ユニット150の使用期間を維持する。
信頼性モニタ110は、使用期間120及び信頼性目標に基づいて機能ユニット150の予想使用値114を決定する。例えば、機能ユニット150の信頼性目標が少なくとも5年の寿命である場合、ある期間に亘る複数の予想使用値114は、5年の寿命である信頼性目標に基づいて設定される。例えば、予想使用値114は、5年間の各日に設定することができる。或いは、他の実施形態は、予想使用値114を、異なる時間間隔(例えば、毎時、毎週、毎月、1年の四半期毎等)に設定することができる。
上記に加えて、予想使用値114の分布は、必要に応じて設定される。例えば、同じ予想使用値114が時間間隔毎に使用される場合、一様分布を使用することができる。寿命の初期の段階では高い予想使用値が設定されるが、寿命の後期の段階では低い予想使用値が設定される。信頼性目標に基づいて予想使用値114を設定するための他の分布も可能であり、考えられる。また、信頼性目標、時間間隔及び分布の各々は、制御及び構成レジスタに記憶されているプログラム可能な値とすることができる。
様々な実施形態において、信頼性モニタ110は、実際の使用値112を組み合わせて単一の信頼性メトリックを生成する。信頼性モニタ110は、少なくとも実際の使用値112及び機能ユニットの使用期間120に基づいて、経時的な累積値として信頼性メトリックを維持することができる。同様に、予想使用値114を組み合わせて、単一の目標メトリックを生成することができる。コンパレータ130は、実際の使用値112から生成された信頼性メトリックと、予想使用値114から生成された目標メトリックと、を比較する。比較結果は、信頼性目標に基づく予想使用量と比較して機能ユニット150が過剰使用されているか、過少使用されているか、又は、目標通りかどうかを示す。
コンパレータ130は、実際の使用値112が予想使用値114を超えていると判別すると、機能ユニット150の信頼性を高めるための情報(又は、指標)を生成する。上述したように、情報は、機能ユニット150の動作パラメータを調整するために使用されるコマンド、指標若しくはフラグ、計算値、及び/又は、その他のもののうち1つ以上を含む。情報は、1つ以上の動作パラメータの最大値を、1つ以上の動作パラメータの現在の最大値よりも小さい値に更新することを示す。
一例として、最初の6ヵ月間の使用中に、コンピューティングシステム100は、予想されたものを超える比較的高いワークロードに見舞われる可能性がある。したがって、例えば次の6か月等の時間間隔中に、信頼性モニタ110は、機能ユニット150の信頼性を高めるために最大値(及び、消費電力)を減少させる情報を生成する。この情報は、上述したように、所定の使用量の分布に基づいて、次の6ヵ月間で今後予想される実際の使用値に対応する。
いくつかの実施形態では、信頼性モニタ110は、情報を電力マネージャ140に提供する。他の実施形態では、信頼性モニタ110は、情報を電力マネージャ140及び機能ユニット150の両方に提供する。電力マネージャ140は、機能ユニット150から受信した実際の使用値と、信頼性モニタ110から受信した情報とに基づいて、機能ユニット150に送信する動作パラメータを更新する。
上記とは対照的に、コンパレータ130は、実際の使用値112が予想使用値114未満であると判別した場合、機能ユニット150の性能を向上させるための情報を生成する。情報は、1つ以上の動作パラメータの最大値を、1つ以上の動作パラメータの現在の最大値よりも大きい値に更新することを示す。例えば、最初の6ヵ月間の使用後に、コンピューティングシステム100は、予想したよりも利用量が少ない場合がある。したがって、信頼性モニタ110は、性能の向上を可能にするために、1つ以上の動作パラメータの最大値を増やすための情報を生成する。
電力マネージャ140は、機能ユニット150の電力管理ポリシーを処理するための回路及びロジックを含む。電力マネージャ140は、機能ユニット150の一部が所定期間使用されていないこと検出した場合又は通知された場合、当該一部を無効又はその消費電力を減らす。同様に、電力性能状態(P状態)又は動的電圧及び周波数スケーリング(DVFS)技術は、機能ユニット150からの使用フィードバックに基づいて調整することができる。電力を管理するための初期アルゴリズムは、最悪の場合の熱的条件を想定している。しかしながら、実際の使用量及び環境条件は、最悪の場合よりも低くなる可能性がある。したがって、信頼性モニタ110からの情報は、より低い性能状態を使用するのではなく、パラメータ選択器142が、可能であれば(例えば、使用量が予想よりも低い場合)高い性能状態を選択し、適切な場合(例えば、使用量が予想よりも高い場合)に低い性能状態を選択するのを支援する。
図2を参照すると、コンピューティングシステムの性能及び信頼性を向上させる方法200の一実施形態が示されている。説明の目的のために、本実施形態(及び、図3、図5)のステップは、順番に示されている。しかしながら、他の実施形態では、いくつかのステップは、図示されている順序とは異なる順序で行われ、いくつかのステップは並行して実行され、いくつかのステップは他のステップと組み合わされ、いくつかのステップは存在しない。
ブロック202において、機能ユニットによってワークロードが処理される。このようなワークロードは、概して、ソフトウェアアプリケーション、オペレーティングシステムプロセス又は他のプロセスの実行を伴う。所定の時間間隔が経過すると(条件付きブロック204)、次にブロック206において、機能ユニットは、実際の使用値を提供するか、このような使用値をアクセス可能にする。いくつかの実施形態では、時間間隔の経過に加えて、このような使用値は、他の場合に提供されてもよい。例えば、ユーザコマンド、プログラムコード又はいくつかのイベントの検出に応答する。一実施形態では、機能ユニットは、実際の使用値を信頼性モニタに提供する。また、機能ユニットは、電力マネージャによる使用のために実際の使用値を提供する。実際の使用値は、動作温度、電流ドロー、電力性能状態(P状態)情報、動的電圧及び周波数スケーリング(DVFS)パラメータ、アクティビティレベル、並びに、他の消費電力のうち1つ以上を含む。いくつかの実施形態では、実際の使用値は、対応する重みも使用する。或いは、重みは、実際の使用値がいつ信頼性モニタで受信されるかに関連付けることができる。使用期間は、1つ以上の累積合計を介して実際の使用値と関連付けることもできる。
ブロック208において、機能ユニットの使用期間に基づく予想使用値が決定される。この決定には、上述したように、機能ユニットの使用期間及び信頼性目標に基づく予想使用値の分布が使用される。様々な実施形態では、受信した実際の使用値は、単一の信頼性メトリックを生成するために組み合わされる。信頼性メトリックは、少なくとも実際の使用値及び機能ユニットの使用期間に基づいて、経時的な累積値として維持することができる。同様に、予想使用値を組み合わせて、単一の目標メトリックを生成することもできる。実際の使用値から生成された信頼性メトリックは、予想使用値から生成された目標メトリックと比較される。比較結果は、機能ユニットが、信頼性目標に基づいて、予想以上に使用されたか、予想より使用されていないか、又は、予想とほぼ等しく使用されたかどうかを示す。
実際の使用値が予想使用値を超える場合(条件付きブロック210)、ブロック212において、機能ユニットの信頼性を高めるためにコマンド又は他の情報が電力マネージャに提供される。いくつかの実施形態では、情報を提供することは、電力マネージャによってアクセスされる位置(例えば、レジスタ又はメモリ位置)に情報を記憶することを含む。他の実施形態では、電力マネージャは、このような情報をモニタ又は他のエンティティに要求してもよく、モニタ又は他のエンティティは、当該要求に応じて要求された情報を提供する。これらの及び他の実施形態が可能であり、考えられる。コマンド又は情報は、1つ以上の動作パラメータの最大値を、1つ以上の動作パラメータの現在の最大値よりも小さい値に更新することを示す。
コマンド又は情報は、機能ユニットによる消費電力の低減を引き起こす。一実施形態では、消費電力を減らすことは、機能ユニットの最大許容電力性能状態を減らすこと、又は、経時的な最大許容平均電力性能状態(P状態)を減らすことを含む。一実施形態では、P状態の「スロットル(throttle)」は、現在選択されているP状態を少なくとも1つのP状態だけ減少させてより低い消費電力P状態にすることを含む。いくつかの例では、電力マネージャが信頼性モニタから追加の情報を受信しなかった場合、電力マネージャは、P状態をスロットルすることを選択しない。例えば、消費電力が比較的高くない場合であっても、機能ユニットは、現在、信頼性目標を超えている場合がある。機能ユニットが、現在、信頼性目標を超えているかどうかを判別するために、少なくともTDDB、エレクトロマイグレーション及び使用期間の影響等の要因を使用することができる。したがって、信頼性モニタからの追加の情報を用いて、P状態がスロットルされる。
実際の使用値が予想使用値を超えず(条件付きブロック210)、実際の使用値が予想使用値未満である場合(条件付きブロック214)、ブロック216において、機能ユニットの性能を向上させるコマンド又は他の情報を電力マネージャに送信することができる。一実施形態では、このようなコマンド又は情報は、1つ以上の動作パラメータの最大値を、1つ以上の動作パラメータの現在の最大値よりも大きい値に更新することを示す。実際の使用値が予想使用値を超えず(条件付きブロック210)、実際の使用値が予想使用値と等しい場合(条件付きブロック214)、ブロック218において、機能ユニットのために選択される動作パラメータを維持するためのコマンド又は他の情報が電力マネージャに送信される。或いは、コマンド又は情報は、電力マネージャに送信されない。このような場合には、電力マネージャは、動作パラメータの現在の設定を単に維持する。
上述したように、信頼性モニタは、受信した実際の使用値を組み合わせて、単一の信頼性メトリックを生成する。信頼性メトリックは、少なくとも実際の使用値及び機能ユニットの使用期間に基づいて、経時的な累積値として維持することができる。信頼性メトリックを累積値として維持することによって、信頼性メトリックは、経時的に受信した実際の使用値の平均に依存する。同様に、予想使用値を組み合わせて、単一の目標メトリックを生成することができる。いくつかの実施形態では、信頼性メトリック及び目標メトリックの更新速度がプログラム可能である。例えば、信頼性メトリックを1ミリ秒毎に更新することができるが、他の期間を選択し、後でおそらく変更することができる。目標メトリックを毎日更新することができるが、他の期間を選択することができ、後で変更することができる。
図3を参照すると、動作パラメータを調整してコンピューティングシステムの信頼性を高める方法300の一実施形態が示されている。ブロック302において、実際の使用値が機能ユニットから受信される。上述したように、実際の使用値の例は、動作温度、ドロー、P状態情報、DVFSパラメータ、アクティビティレベル及び他の消費電力のうち1つ以上を含む。また、ブロック304において、コマンド又は他の情報が信頼性モニタから受信される。
ブロック306において、少なくとも1つ以上の動作パラメータを、受信した実際の使用値に基づいて更新することができる。例えば、受信した実際の使用値を用いて、電力マネージャ又は他のロジックは、P状態をスロットル又はブーストし(上げて)、高性能ソフトウェアアプリケーションの予定を変更し、機能ユニット内の1つ以上の機能ブロックを有効又は無効にする等を決定する。
機能ユニットがアクティブでない場合(条件付きブロック308)、ブロック318において、動作パラメータ及び他の任意の指示情報が機能ユニットに送信される。いくつかの実施形態では、最小のアクティビティレベルは、信頼性モニタからのフィードバック情報をさらに考慮するために電力マネージャによって使用中であることが必要とされる場合がある。いくつかの例では、最小のアクティビティレベルは、非アクティブ又はオフになっているシステムに関連する最低アクティビティレベルを上回る1つ以上のアクティビティレベルであってもよい。
機能ユニットがアクティブであり(条件付きブロック308)、信頼性モニタから受信したフィードバック(例えば、コマンド)が消費電力の減少を示す場合(条件付きブロック310)、ブロック312において、消費電力を減らすために、1つ以上の更新された動作パラメータを、コマンドによって示される量だけ調整することができる。いくつかの実施形態では、電力マネージャは、信頼性モニタからのフィードバックを考慮せずに、ブロック306以前に説明したように1つ以上の動作パラメータを更新する。例えば、アルゴリズム及び制御ロジックは、既存のアルゴリズム及びロジックであってもよく、これらは再利用される。
方法300に示すように、ブロック312において、信頼性モニタからのフィードバック情報に基づいて1つ以上の動作パラメータがさらに調整されるが、他の実施形態では、電力マネージャは、実際の使用値及び信頼性モニタからのフィードバック情報を使用して1つ以上の動作パラメータを同時に更新する。例えば、電力マネージャ又は他のロジックは、信頼性モニタから受信したコマンド又は他の情報を使用して、P状態をさらにスロットルし、高性能ソフトウェアアプリケーションのスケジューリングをさらに遅延させ、機能ユニット内の1つ以上の機能ブロックをさらに無効にする等を決定する。
信頼性モニタからのコマンド又は他の情報が性能を向上させることを示す場合(条件付きブロック314)、ブロック316において、1つ以上の更新された動作パラメータを、コマンド又は他の情報によって示される量だけ調整して性能を向上させることができる。例えば、電力マネージャ又は他のロジックは、信頼性モニタから受信したコマンド又は他の情報を使用して、P状態をさらにブーストし、高性能ソフトウェアアプリケーションのスケジューリングをさらに加速させ、機能ユニット内の1つ以上の機能ブロックをさらに有効にする等を決定する。
ブロック312,316の各々の制御フローはブロック318に移行し、調整された動作パラメータが電力マネージャから機能ユニットに送信される。ブロック312,316におけるさらなる調整は、TDDB、エレクトロマイグレーション及び機能ユニットの使用期間、並びに、機能ユニットが、現在、信頼性目標を超えているどうかの判別の影響を少なくとも考慮する。
図4を参照すると、システムオンチップ(SOC)400の一実施形態の全般的なブロック図が示されている。SOC400は、単一の半導体ダイ上に複数のタイプのIC設計を含む集積回路(IC)であり、各IC設計は、別々の機能を提供する。図示した実施形態では、SOC400は、単一の半導体ダイ上にアクセラレーテッドプロセッシングユニット(APU)410と、プラットフォーム及び入出力(I/O)コントローラハブ420と、の両方を含む。
一実施形態では、APU410は、同じ半導体ダイ上に汎用中央処理装置(CPU)複合体430とグラフィック処理装置(GPU)440とを含む。CPU430及びGPU440に加えて又はこれらの代わりに、他の様々なプロセッサをSOC400に配置することができる。SOC400が使用するダイ上のプロセッサの他の例は、少なくともデジタル信号処理(DSP)コア、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)等を含む。
APU410は、SOC400上のリソースの動作を制御し、リソース間の通信を同期させるためにシステム管理ユニット(SMU)480を利用する。SMU480は、SOC400上の様々なプロセッサの電源投入シーケンスを管理し、PICH420のポートを通して伝達されるリセット、イネーブル及び他の信号を介して、複数のオフチップデバイスを制御する。また、SMU480は、SOC400内の複数のバス上の様々なプロセッサ間の通信を管理する。
SOC400は、1つ以上のクロックソース(例えば、位相同期ループ(PLL)等)を含むが、これは説明を簡単にするために示されていない。クロックソースは、SOC400内の各コンポーネントにクロック信号を供給する。SMU480は、これらのクロックソースを制御する。また、SMU480は、SOC400全体の回路によって用いられる1つ以上の動作電圧を制御する。例えば、SMU480は、電力管理ユニット(図示省略)を含む。
また、SMU480は、1つ以上の信頼性モニタ482を含む。信頼性モニタ482は、少なくともTDDB、エレクトロマイグレーション及び使用期間の影響等の要因に基づいて、フィードバックを電力管理ユニットに提供する。フィードバックは、SOC400が、現在、信頼性目標を超えているかどうかを判別するために用いることができる。いくつかの実施形態では、SMU480は、SOC400の電圧/クロックドメイン毎に1つの信頼性モニタをモニタ482内に含む。
いくつかの実施形態では、SMU480は、モニタ482用の集中コントローラを含む。集中コントローラは、各モニタ482からフィードバックを受信し、電力管理ユニットに送信するためのコマンド又は他の情報の最終セットを決定する。例えば、モニタ482の各々は、他のモニタからのフィードバックの前又は後にフィードバックを優先させるために、関連する重みを有することができる。様々な実施形態では、重みは、対応する電圧/クロックドメインに関連するダイ上の占有(real estate)量によって割り当てられている。他の実施形態では、重みを、電圧/クロックドメイン又は他の要因によって提供される機能に基づいて割り当てることができる。
いくつかの実施形態では、モニタ482のうち所定の信頼性モニタは、SMU480が別々の集中コントローラを含むのではなく、集中コントローラの機能を含む。いくつかの実施形態では、信頼性モニタ482は、各々の電圧/クロックドメイン付近のSOC400に亘って分散される。このような実施形態では、信頼性モニタ482は、SMU480にフィードバックを提供し、SMU480は、集中コントローラにフィードバックを転送する。他の実施形態では、分散した信頼性モニタ482は、集中コントローラの機能によってフィードバック情報を所定の信頼性モニタに提供し、所定の信頼性モニタは、モニタ482から受信したフィードバックを表すフィードバック情報をSMU480に送信する。
APU410は、オフチップメモリ及びビデオカードと直接通信するための統合メモリコントローラ450を含む。オフチップメモリは、少なくともダイナミックランダムアクセスメモリ(DRAM)を含む。また、メモリコントローラ450は、外部メモリバスを介してオフチップディスクメモリに接続することができる。一実施形態では、SMU480は、データ制御及びアクセスのためにプラットフォーム及び入出力(I/O)コントローラハブ420からの信号をCPU複合体430及びGPU440に直接リンクするための統合チャネル回路を含む。いくつかの実施形態では、この機能のためにクロスバースイッチ460が用いられる。他の実施形態では、クロスバースイッチ460が用いられず、この機能がSMU480に含まれる。
SMU480は、信号及びバス制御を調整するために、ファームウェア及び/又は他のマイクロコード等の動作命令を利用する。様々な実施形態では、このような動作命令は、不揮発性メモリに記憶される。同様に、信頼性モニタ482は、対応する電圧/クロックドメインから受信した実際の使用値を特徴付けるため、信頼性目標値を構成するため、又は、実際の使用量及び目標値を使用するアルゴリズム用の動作命令を使用する。上述したように、モニタ482の信頼性モニタは、ファームウェア又は他の方法で実装することができるアルゴリズムを含む。いくつかの実施形態では、アルゴリズムを修正するために動作命令を更新することができる。アルゴリズムは、受信した実際の使用値をフィルタリングし、これらを1つ以上の式に適用する。1つ以上の式は、累積値を介した信頼性メトリックに対する受信した使用値の貢献度を計算する。
また、モニタ482の信頼性モニタのアルゴリズムは、使用期間中に累積する目標信頼性メトリックを追跡する。目標メトリックは、有効期間の仕様に対する累積的な通常の使用事例を表す。アルゴリズムは、PID(比例、積分、微分)コントローラを使用して、実際のシステム使用量に基づいて更新された動作パラメータを経時的に調整し、全体的な信頼性を維持して目標仕様を満たす。
いくつかの実施形態では、SMU480は、実際の使用値(又は、対応する信頼性メトリック)、予想使用値(又は、対応する目標メトリック)、更新された動作パラメータのうち1つ以上を不揮発性メモリに定期的に書き込み、SOC400がシャットダウンする場合に備えてデータを記憶する。例えば、SMU480は、メモリコントローラ450を介してデータをオフチップメモリに定期的に書き込む。データを書き込むための時間間隔は、プログラム可能であってもよい。
プラットフォーム及びI/Oコントローラハブ(PICH)420は、所定のプロトコルに従って異なるI/Oバスとインタフェースすることができる。PICH420は、I/O機能を実行し、USB(Universal Serial Bus)プロトコルに従う周辺機器、PCIe(Peripheral Component Interconnect Express)プロトコルに従う周辺機器及びネットワークカード、読み出し専用メモリ(ROM)に記憶されるシステム基本入出力ソフトウェア(BIOS)、割り込みコントローラ、SATA(Serial Advanced Technology Attachment)デバイス、ネットワークインタフェース、マルチチャネル高精細オーディオコーデック機能及びインタフェース等のデバイス及びソフトウェアと通信することができる。PICH420は、従来のサウスブリッジチップセットによってダイ外部で通常実行される動作をダイ上で実行することができる。
CPU複合体430は、プロセッサコア432及び対応するキャッシュメモリサブシステム434を含む1つ以上の処理ユニット435a~435bを含む。いくつかの実施形態では、CPU430は、処理ユニット435a~435bの各々によってアクセスされる共有キャッシュメモリサブシステム462を含むこともできる。各プロセッサコア432は、所定の命令セットに従って命令を実行するための回路を含む。例えば、SPARC(登録商標)命令セットアーキテクチャ(ISA)を選択することができる。或いは、x86、x86-64(登録商標)、Alpha(登録商標)、PowerPC(登録商標)、MIPS(登録商標)、PA-RISC(登録商標)又は他の任意の命令セットアーキテクチャを選択することができる。
GPU440は、統合メモリコントローラ450を介して、ローカルメモリ434,462と、オフチップメモリとの両方にアクセスすることができる。このような実施形態は、GPU440に対するメモリアクセスのレイテンシを短縮することができ、より高い性能に変換することができる。CPU430及びGPU440の各々の内部のコアが同じメモリにアクセスすることができるので、SMU480は、CPU430及びGPU440のキャッシュコヒーレンシを維持する。メモリコントローラ450及びSMU480のうち1つ以上は、メモリアクセスのためにアドレス変換を実行することができる。
様々な実施形態において、GPU440は、1つ以上のグラフィックプロセッサコア442と、データ記憶バッファ444と、を含む。グラフィックプロセッサコア442は、少なくともグラフィクレンダリング及び三次元(3D)グラフィックアプリケーションのためのデータ中心の動作を実行する。グラフィックプロセッサコア442は、様々な複雑なアルゴリズムに対して汎用CPU430よりも効果的にする高度に並列な構造を有している。
上述したように、各信頼性モニタ482は、電力管理ユニットからSOC400を介して複数の電圧/クロックドメインに送信される動作パラメータを調整する。信頼性モニタ482によるさらなる調整は、少なくともTDDB、エレクトロマイグレーション及びSOC400の使用期間の影響を考慮し、SOC400が、現在、その信頼性目標を超えているかどうかを判別する。
図5を参照すると、半導体チップの性能及び信頼性を向上させる方法500の一実施形態が示されている。ブロック502において、1つ以上のソフトウェアアプリケーションが処理される。ソフトウェアアプリケーションは、プロセッサ、処理ユニット、CPU複合体、GPU、SOC等で処理される。第1時間間隔は、チップ又はユニットの実際の使用値が、どれくらいの頻度で対応する信頼性モニタ及び電力マネージャに送信されるかに対応することができる。例えば、第1時間間隔は1ミリ秒であってもよいが、他の時間間隔が選択され使用され得る。また、第1時間間隔は、プログラム可能であってもよい。
第1時間間隔が経過した場合(条件付きブロック504)、ブロック506において、電圧/クロックドメインからの実際の使用値が各々の信頼性モニタ及び電力マネージャに送信される。信頼性モニタから開始して、ブロック508において、各々の電圧/クロックドメインの信頼性メトリックは、受信した実際の使用値に基づいて更新される。上述したように、信頼性モニタは、受信した実際の使用値を組み合わせて、単一の信頼性メトリックを生成する。信頼性メトリックは、少なくとも電圧/クロックドメイン内の機能ユニットの実際の使用値及び使用期間に基づいて、経時的な累積値として維持することができる。信頼性メトリックを累積値として維持することによって、信頼性メトリックは、経時的に受信した実際の使用値の平均に依存する。同様に、予想使用値を組み合わせて、単一の目標メトリックを生成することができる。
信頼性メトリック及び目標メトリックは、上述した1ミリ秒の例のように、第1時間間隔毎に更新することができる。様々な実施形態では、電圧/クロックドメインの動作パラメータを更新することは、それほど頻繁に行われない。例えば、1日という第2時間間隔を使用することができる。第2時間間隔について他の値を選択して使用することができる。第1時間間隔と同様に、第2時間間隔はプログラム可能であってもよい。
第2時間間隔が経過した場合(条件付きブロック510)、ブロック512において、更新された信頼性メトリックが更新された目標メトリックと比較される。比較結果は、信頼性目標(チップの目標寿命)に基づいて予想される使用量に関して、特定の電圧/クロックドメインが現在過剰使用されているか、過少使用であるか、又は、目標通りかどうかを示す。比較結果は、電圧/クロックドメインの動作パラメータを調整するために使用されるコマンド、指標若しくはフラグ、又は、計算値のうち1つ以上等の情報を含む。この情報は、P状態をスロットル又はブーストすること、1つ以上のソフトウェアアプリケーションのタスク、スレッド又はプロセスのスケジュールを変更すること、及び、電圧/クロックドメイン内の特定の機能ブロック又は機能ユニットを有効又は無効にすることを示す。
ブロック514において、比較結果は、各々の電圧/クロックドメインに対する重みによって更新することができる。上述したように、集中コントローラを複数の信頼性モニタに使用し、各モニタからフィードバックを受信することができる。集中コントローラは、電力マネージャに送信するためのコマンド又は他の情報の最終セットを決定する。例えば、信頼性モニタの各々は、他のモニタからのフィードバックの前又は後にフィードバックを優先させるために、関連する重みを有する。様々な実施形態では、重みは、対応する電圧/クロックドメインに関連するダイ上の占有量によって割り当てられる。他の実施形態では、重みは、電圧/クロックドメイン又は他の任意の要因によって提供される機能に基づいて割り当てることができる。集中コントローラは、複数の信頼性モニタからのフィードバックから生成された情報を電力マネージャに提供する。
ブロック516において、電力マネージャは、受信した実際の使用値と複数の信頼性モニタから受信した実際の使用値とに基づいて電圧/クロックドメインの動作パラメータを決定する。上述したように、コマンド又は他の情報は、P状態をスロットル又はブーストすること、1つ以上のソフトウェアアプリケーションのタスク、スレッド又はプロセスのスケジュールを変更すること、及び、電圧/クロックドメイン内の特定の機能ブロック又は機能ユニットを有効又は無効にすることを示す。いくつかの実施形態では、信頼性モニタからの情報は、電圧/クロックドメインからの情報よりも少ない頻度で受信される。例えば、電力マネージャは、電圧/クロックドメインから情報を1ミリ秒毎に受信するのに対して、電力マネージャは、信頼性モニタから1日毎に情報を受信する。ブロック518において、電力マネージャは、更新された動作パラメータ及び他の指示又はコマンドを電圧/クロックドメインに送信する。
上記の実施形態のうち1つ以上がソフトウェアを含むことに留意されたい。このような実施形態では、方法及び/又はメカニズムを実装するプログラム命令は、コンピュータ可読媒体に伝達又は記憶される。プログラム命令を記憶するように構成された多くのタイプの媒体が利用可能であり、これらには、ハードディスク、フロッピー(登録商標)ディスク、CD-ROM、DVD、フラッシュメモリ、プログラム可能ROM(PROM)、ランダムアクセスメモリ(RAM)及び他の様々な形態の揮発性又は不揮発性記憶装置が含まれる。一般的に言えば、コンピュータアクセス可能な記憶媒体は、命令及び/又はデータをコンピュータに提供するために使用中にコンピュータがアクセス可能な記憶媒体を含む。例えば、コンピュータアクセス可能な記憶媒体は、例えば磁気又は光学媒体(例えば、ディスク(固定若しくは取り外し可能)、テープ、CD-ROM、DVD-ROM、CD-R、CD-RW、DVD-R、DVD-RW、ブルーレイ(登録商標))等の記憶媒体を含む。記憶媒体は、RAM(例えば、同期型ダイナミックRAM(SDRAM)、ダブルデータレート(DDR、DDR2、DDR3等)SDRAM、低電力DDR(LPDDR2等)SDRAM、ラムバスDRAM(RDRAM)、スタティックRAM(SRAM)等)、ROM、フラッシュメモリ、USBインタフェース等の周辺インタフェースを介してアクセス可能な不揮発性メモリ(例えば、フラッシュメモリ)等の揮発性又は不揮発性記憶媒体をさらに含む。記憶媒体は、微小電気機械システム(MEMS)、並びに、ネットワーク及び/又は無線リンク等の通信媒体を介してアクセス可能な記憶媒体を含む。
また、様々な実施形態では、プログラム命令は、C等の高水準プログラミング言語、Verilog、VHDL等の設計言語(HDL)、又は、GDS IIストリームフォーマット(GDSII)等のデータベースフォーマットにおけるハードウェア機能の動作レベル記述又はレジスタ転送レベル(RTL)記述を含む。場合によっては、記述は合成ツールによって読み取られ、合成ツールは、記述を合成して、ゲートのリストを含むネットリストを合成ライブラリから生成する。ネットリストは、システムを含むハードウェアの機能を表すゲートのセットを含む。次に、ネットリストを配置してルーティングし、マスクに適用される幾何学的形状を記述するデータセットを生成する。次いで、マスクを様々な半導体製造工程で使用して、システムに対応する1つ以上の半導体回路を製造する。或いは、コンピュータアクセス可能な記憶媒体上の命令は、必要に応じて、ネットリスト(合成ライブラリを伴う若しくは伴わない)又はデータセットである。さらに、命令は、Cadence(登録商標)、EVE(登録商標)及びMentor Graphics(登録商標)等のベンダからのハードウェアベースタイプのエミュレータによるエミュレーションの目的で利用される。
上記の実施形態をかなり詳細に説明したが、上記の開示が十分に理解されれば、当業者には多くの変形及び修正が明らかになるであろう。添付の特許請求は、このような全ての変形及び修正を包含するように解釈されることを意図している。

Claims (23)

  1. 機能ユニットと、
    モニタと、
    電力マネージャと、を備え、
    前記モニタは、
    前記機能ユニットの実際の使用量をモニタすることと、
    前記機能ユニットの前記実際の使用量を、前記機能ユニットの予想使用量であって、前記機能ユニットの使用期間に少なくとも部分的に基づく予想使用量と比較することと、
    前記比較に対応する情報を提供することと、
    を行うように構成されており、
    前記電力マネージャは、
    前記情報に応じて前記機能ユニットの動作パラメータを更新して前記機能ユニットの消費電力を変更することと、
    前記更新された動作パラメータを前記機能ユニットに送信することと、
    を行うように構成されており、
    前記実際の使用量が前記予想使用量よりも少ないと判別したことに応じて、前記更新された動作パラメータは、前記動作パラメータの現在の最大値よりも大きい動作パラメータの最大値を含む、
    半導体チップ。
  2. 前記動作パラメータは、最大性能に関連する動作電圧及び電力性能状態のうち1つ以上を含む、
    請求項の半導体チップ。
  3. 前記実際の使用量が前記予想使用量よりも多いと判別したことに応じて、前記更新された動作パラメータは、前記動作パラメータの現在の最大値よりも小さい動作パラメータの最大値を含む、
    請求項1の半導体チップ。
  4. 前記電力マネージャは、第1コマンドに応じて、前記動作パラメータの最大値を更新するように構成されている、
    請求項1の半導体チップ。
  5. 前記モニタは、前記実際の使用量が前記予想使用量と異なると判別したことに応じて、前記機能ユニットの前記予想使用量を変更するように構成されている、
    請求項1の半導体チップ。
  6. 前記実際の使用量をモニタすることは、動作電圧及び温度測定値のうち1つ以上を含む値を受信することを含む、
    請求項1の半導体チップ。
  7. 前記モニタは、
    少なくとも前記機能ユニットの実際の使用量及び前記機能ユニットの使用期間に基づいて、信頼性メトリックを経時的な累積値として維持することと、
    前記信頼性メトリックを信頼性目標と比較することと、
    を行うように構成されている、
    請求項の半導体チップ。
  8. 前記モニタは、所定の時間間隔が経過したのを検出したことに応じて、前記信頼性メトリックを不揮発性メモリに記憶するように構成されている、
    請求項の半導体チップ。
  9. 動作パラメータによってそれぞれ動作する複数の電圧/クロックドメインと、
    複数のモニタと、を備え、
    前記複数のモニタは、
    前記複数の電圧/クロックドメインのうち1つの電圧/クロックドメインから実際の使用値を受信することと、
    前記実際の使用値を前記電圧/クロックドメインの予想使用値と比較することと、
    を行うように構成されている、
    請求項1の半導体チップ。
  10. 機能ユニットを動作させることと、
    前記機能ユニットの実際の使用量を、前記機能ユニットの予想使用量と比較することであって、前記予想使用量は、前記機能ユニットの使用期間に少なくとも部分的に基づいている、ことと、
    前記実際の使用量が前記予想使用量と異なると判別したことに応じて、前記機能ユニットの動作パラメータを更新して前記機能ユニットの消費電力を変更することと、を含み、
    前記更新することは、前記実際の使用量が前記予想使用量よりも少ないと判別したことに応じて、前記動作パラメータの最大値を、前記動作パラメータの現在の最大値よりも大きくなるように変更することを含む、
    方法。
  11. 前記動作パラメータは、動作電圧及び電力性能状態のうち1つ以上を含む、
    請求項10の方法。
  12. 前記更新することは、前記実際の使用が前記予想使用よりも大きいと判別したことに応じて、前記動作パラメータの最大値を、前記動作パラメータの現在の最大値よりも小さくなるように変更することを含む、
    請求項10の方法。
  13. 前記実際の使用量が前記予想使用量と異なると判別したことに応じて、前記機能ユニットの前記予想使用量を変更することを含む、
    請求項10の方法。
  14. 前記実際の使用量は、動作電圧及びダイ上の温度測定値のうち1つ以上を含む、
    請求項10の方法。
  15. 機能ユニットの実際の使用量を示す情報を受信するように構成された第1インタフェースと、
    前記機能ユニットの実際の使用量を前記機能ユニットの予想使用量と比較し、前記実際の使用量が前記予想使用量と異なると判別したことに応じて、前記機能ユニットの動作パラメータを変更するために使用可能な情報を生成するように構成された制御ロジックと、
    前記情報を電力マネージャに伝達するように構成された第2インタフェースと、を備え
    受信した前記実際の使用量が前記予想使用量よりも少ないと判別したことに応じて、前記情報は、前記動作パラメータの最大値を増加することを示す、
    ダイ上の信頼性モニタ。
  16. 受信した前記実際の使用量が前記予想使用量よりも多いと判別したことに応じて、前記情報は、前記動作パラメータの最大値を減少することを示す、
    請求項15の信頼性モニタ。
  17. 前記実際の使用量を示す前記情報は、動作電圧及びダイ上の温度測定値のうち1つ以上を含む、
    請求項15の信頼性モニタ。
  18. 機能ユニットと、
    動作パラメータを経時的に適合させるためのアルゴリズムを含む動作命令と、
    モニタと、
    電力マネージャと、を備え、
    前記モニタは、
    前記機能ユニットの実際の使用量をモニタすることと、
    前記機能ユニットの前記実際の使用量を、前記機能ユニットの予想使用量であって、前記機能ユニットの使用期間に少なくとも部分的に基づく予想使用量と比較することと、
    前記比較に対応する情報を提供することと、
    を行うように構成されており、
    前記電力マネージャは、
    前記情報及び前記動作命令に応じて、前記機能ユニットの動作パラメータを更新して前記機能ユニットの消費電力を変更することと、
    前記更新された動作パラメータを前記機能ユニットに送信することと、
    を行うように構成されており、
    前記実際の使用量が前記予想使用量よりも少ないと判別したことに応じて、前記更新された動作パラメータは、前記動作パラメータの現在の最大値よりも大きい動作パラメータの最大値を含む、
    システム。
  19. 前記動作命令はファームウェアを含む、
    請求項18のシステム。
  20. 前記動作命令を更新することができる、
    請求項18のシステム。
  21. 前記動作命令は不揮発性メモリに存在する、
    請求項18のシステム。
  22. 前記動作パラメータは、最大性能に関連する動作電圧及び電力性能状態のうち1つ以上を含む、
    請求項18のシステム。
  23. 前記実際の使用量が前記予想使用量よりも多いと判別したことに応じて、前記更新された動作パラメータは、前記動作パラメータの現在の最大値よりも小さい動作パラメータの最大値を含む、
    請求項18のシステム。
JP2019512999A 2016-09-07 2017-09-06 動的信頼性品質モニタリング Active JP7014778B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/258,816 2016-09-07
US15/258,816 US10120430B2 (en) 2016-09-07 2016-09-07 Dynamic reliability quality monitoring
PCT/US2017/050343 WO2018048950A1 (en) 2016-09-07 2017-09-06 Dynamic reliability quality monitoring

Publications (2)

Publication Number Publication Date
JP2019535061A JP2019535061A (ja) 2019-12-05
JP7014778B2 true JP7014778B2 (ja) 2022-02-01

Family

ID=57796103

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019512999A Active JP7014778B2 (ja) 2016-09-07 2017-09-06 動的信頼性品質モニタリング

Country Status (6)

Country Link
US (1) US10120430B2 (ja)
EP (1) EP3293609B1 (ja)
JP (1) JP7014778B2 (ja)
KR (1) KR102547292B1 (ja)
CN (1) CN109642924B (ja)
WO (1) WO2018048950A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10318363B2 (en) 2016-10-28 2019-06-11 Advanced Micro Devices, Inc. System and method for energy reduction based on history of reliability of a system
US10775876B2 (en) * 2017-12-29 2020-09-15 Advanced Micro Devices, Inc. Method and apparatus for controlling power consumption of an integrated circuit
KR102639095B1 (ko) 2018-10-29 2024-02-23 삼성전자주식회사 열화도를 관리하기 위한 전자 장치
US11105856B2 (en) 2018-11-13 2021-08-31 International Business Machines Corporation Detection of performance degradation in integrated circuits
US11250195B2 (en) * 2020-02-24 2022-02-15 Ansys, Inc. Method and system for ROM based dynamic thermal management analysis and control
FR3123468B1 (fr) * 2021-05-31 2024-04-19 St Microelectronics Srl Système sur puce

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110265090A1 (en) 2010-04-22 2011-10-27 Moyer William C Multiple core data processor with usage monitoring
WO2013124880A1 (ja) 2012-02-20 2013-08-29 富士通株式会社 情報処理装置および冷却プログラム
US20130326269A1 (en) 2012-05-29 2013-12-05 Fusion-Io, Inc. Apparatus, system and method for managing solid-state retirement
US20130346774A1 (en) 2012-03-13 2013-12-26 Malini K. Bhandaru Providing energy efficient turbo operation of a processor
US20140176116A1 (en) 2012-12-20 2014-06-26 Nvidia Corporation Quantifying silicon degradation in an integrated circuit
US20150377955A1 (en) 2014-06-30 2015-12-31 Intel Corporation Apparatus and method for a user configurable reliability control loop

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6418459B1 (en) 1998-06-09 2002-07-09 Advanced Micro Devices, Inc. Isochronous task scheduling structure for a non-real-time operating system
US6760852B1 (en) 2000-08-31 2004-07-06 Advanced Micro Devices, Inc. System and method for monitoring and controlling a power-manageable resource based upon activities of a plurality of devices
US6826704B1 (en) 2001-03-08 2004-11-30 Advanced Micro Devices, Inc. Microprocessor employing a performance throttling mechanism for power management
US7283919B2 (en) * 2006-03-06 2007-10-16 Sun Microsystems, Inc. Determining the quality and reliability of a component by monitoring dynamic variables
CN100501644C (zh) * 2006-12-05 2009-06-17 中兴通讯股份有限公司 动态降低cpu功耗的方法
GB0709113D0 (en) * 2007-05-11 2007-06-20 Univ Leicester Monitoring device
US7934123B2 (en) * 2008-09-05 2011-04-26 Oracle America, Inc. Prolonging the remaining useful life of a power supply in a computer system
US8271809B2 (en) * 2009-04-15 2012-09-18 International Business Machines Corporation On-chip power proxy based architecture
JP5585097B2 (ja) * 2010-01-25 2014-09-10 ソニー株式会社 電力管理装置及び電子機器登録方法
IT1400576B1 (it) * 2010-06-17 2013-06-14 St Microelectronics Grenoble 2 Circuito integrato con dispositivo per la variazione del valore di un parametro operativo di un circuito elettronico e con lo stesso circuito elettronico.
US8495395B2 (en) * 2010-09-14 2013-07-23 Advanced Micro Devices Mechanism for controlling power consumption in a processing node
WO2013160723A1 (en) * 2012-04-23 2013-10-31 Freescale Semiconductor, Inc. A semiconductor device arrangement, a method of analysing a performance of a functional circuit on a semiconductor device and a device analysis system
US9823990B2 (en) * 2012-09-05 2017-11-21 Nvidia Corporation System and process for accounting for aging effects in a computing device
US9746849B2 (en) * 2012-11-09 2017-08-29 Tokyo Electron Limited Method and apparatus for autonomous tool parameter impact identification system for semiconductor manufacturing
US20140181768A1 (en) * 2012-12-21 2014-06-26 Advanced Micro Devices, Inc. Automated performance verification for integrated circuit design
US20140306837A1 (en) 2013-02-13 2014-10-16 Veedims, Llc System and method for qualitative indication of cumulative wear status
US20140375658A1 (en) 2013-06-25 2014-12-25 Ati Technologies Ulc Processor Core to Graphics Processor Task Scheduling and Execution
CN107110898B (zh) * 2014-12-22 2022-06-07 美高森美公司 对数线性功率检测器
US20160378168A1 (en) 2015-06-26 2016-12-29 Advanced Micro Devices, Inc. Dynamic power management optimization
CN105630132A (zh) * 2015-12-23 2016-06-01 深圳市万普拉斯科技有限公司 功耗控制方法和系统、终端

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110265090A1 (en) 2010-04-22 2011-10-27 Moyer William C Multiple core data processor with usage monitoring
WO2013124880A1 (ja) 2012-02-20 2013-08-29 富士通株式会社 情報処理装置および冷却プログラム
US20130346774A1 (en) 2012-03-13 2013-12-26 Malini K. Bhandaru Providing energy efficient turbo operation of a processor
US20130326269A1 (en) 2012-05-29 2013-12-05 Fusion-Io, Inc. Apparatus, system and method for managing solid-state retirement
US20140176116A1 (en) 2012-12-20 2014-06-26 Nvidia Corporation Quantifying silicon degradation in an integrated circuit
US20150377955A1 (en) 2014-06-30 2015-12-31 Intel Corporation Apparatus and method for a user configurable reliability control loop

Also Published As

Publication number Publication date
KR20190042564A (ko) 2019-04-24
EP3293609A1 (en) 2018-03-14
US10120430B2 (en) 2018-11-06
CN109642924B (zh) 2022-02-18
EP3293609B1 (en) 2019-01-30
CN109642924A (zh) 2019-04-16
WO2018048950A1 (en) 2018-03-15
JP2019535061A (ja) 2019-12-05
US20180067535A1 (en) 2018-03-08
KR102547292B1 (ko) 2023-06-23

Similar Documents

Publication Publication Date Title
JP7014778B2 (ja) 動的信頼性品質モニタリング
US8510582B2 (en) Managing current and power in a computing system
US8924758B2 (en) Method for SOC performance and power optimization
US8862909B2 (en) System and method for determining a power estimate for an I/O controller based on monitored activity levels and adjusting power limit of processing units by comparing the power estimate with an assigned power limit for the I/O controller
US9652019B2 (en) System and method for adjusting processor performance based on platform and ambient thermal conditions
US9261949B2 (en) Method for adaptive performance optimization of the soc
US9671767B2 (en) Hybrid system and method for determining performance levels based on thermal conditions within a processor
US8793512B2 (en) Method and apparatus for thermal control of processing nodes
US8942932B2 (en) Determining transistor leakage for an integrated circuit
JP2016506576A (ja) 集積回路のアイドルフェーズ予測
JP2013533548A (ja) 安定した仮想周波数のための複数の動作点の管理
US11675409B2 (en) Power sense correction for power budget estimator
CN118202319A (zh) 电源电压下降期间的性能管理
EP3472709B1 (en) Apparatus and method for setting clock speed of cache memory based on memory request information
US20240111351A1 (en) Frequency/State Based Power Management Thresholds

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200904

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210826

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210914

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211206

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211221

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220120