JP6739652B2 - マイクロプロセッサに関連する電圧に基づいたクロック制御 - Google Patents

マイクロプロセッサに関連する電圧に基づいたクロック制御 Download PDF

Info

Publication number
JP6739652B2
JP6739652B2 JP2019534635A JP2019534635A JP6739652B2 JP 6739652 B2 JP6739652 B2 JP 6739652B2 JP 2019534635 A JP2019534635 A JP 2019534635A JP 2019534635 A JP2019534635 A JP 2019534635A JP 6739652 B2 JP6739652 B2 JP 6739652B2
Authority
JP
Japan
Prior art keywords
frequency
clock
voltage
microprocessor
controller
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
JP2019534635A
Other languages
English (en)
Other versions
JP2019532448A (ja
Inventor
デイヴィッド・オリヴァー
マシュー・ダブリュー・アッシュクラフト
ルカ・ラヴェッツィ
アルフレッド・イェン
ジョン・グレゴリー・フェイヴァー
Original Assignee
アンペア・コンピューティング・エルエルシー
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 アンペア・コンピューティング・エルエルシー filed Critical アンペア・コンピューティング・エルエルシー
Publication of JP2019532448A publication Critical patent/JP2019532448A/ja
Application granted granted Critical
Publication of JP6739652B2 publication Critical patent/JP6739652B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/125Discriminating pulses
    • H03K5/1252Suppression or limitation of noise or interference
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • 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/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
    • G06F1/305Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations in the event of power-supply fluctuations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/003Modifications for increasing the reliability for protection
    • H03K19/00346Modifications for eliminating interference or parasitic voltages or currents
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/003Modifications for increasing the reliability for protection
    • H03K19/00369Modifications for compensating variations of temperature, supply voltage or other physical parameters
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Nonlinear Science (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)

Description

本開示は、一般的に、マイクロプロセッサシステムに関し、より詳細には、マイクロプロセッサに関連する電圧に基づいてクロックを制御することに関する。
マイクロプロセッサへの電圧供給は、マイクロプロセッサの故障および/または性能低下を防止するために、ある動作範囲内に保たれなければならない。しかし、回路のスイッチング活動における(たとえば、割込コマンドを受け取るとアイドル状態から遷移することといった)急激な変化は、マイクロプロセッサでは通常である。電流におけるこの急激な変化は、マイクロプロセッサのトランジスタに提供される電圧レベルにノイズをもたらすことが多い。従来では、そのようなイベントの期間に、マイクロプロセッサのための電圧レベルに、あるマージンが維持される。一例では、マイクロプロセッサは、そのようなイベントを補償するために、より高い電圧で動作する場合がある。しかし、より高い電圧でマイクロプロセッサを動作させることによって、マイクロプロセッサの性能が低下することが多い。
上記の記載は、単に、現在のマイクロプロセッサシステムの文脈上の概要を提供することが意図されており、網羅的であることは意図していない。
例示的な実施形態では、システムは、マイクロプロセッサとコントローラとを備える。マイクロプロセッサは、クロックバッファによって提供されるクロックを受け取るように構成される。コントローラは、マイクロプロセッサに関連する電圧に基づいて、クロックバッファによって提供されるクロックの周波数を制御するように構成される。一態様では、コントローラは、電圧が規定された閾値より低いという判定に応じて、クロックの周波数を低下させるように構成される。別の態様では、コントローラは、電圧が規定された閾値より低くなった後に規定された閾値以上となったという別の判定に応じて、クロックの周波数を徐々に増加させるように構成される。
別の例示的な実施形態では、システムは、電圧検出器回路とコントローラとを備える。電圧検出器回路は、マイクロプロセッサに関連する電圧を監視するように構成される。コントローラは、電圧が規定された基準を満足するという判定に応じて、マイクロプロセッサに関連するクロックの周波数を低下させ、電圧が規定された基準を満足した後に別の規定された基準を満足しているという別の判定に応じて、クロックの周波数を徐々に増加させるように構成される。
さらに別の例示的な実施形態では、方法が、マイクロプロセッサに関連する電圧を監視するステップと、電圧降下イベントの検出に応じてマイクロプロセッサに提供されるクロックの周波数を低下させるステップと、電圧降下イベントが終了したという別の判定に応じてクロックの周波数を徐々に増加させるステップとを含む。
本明細書に記載される様々な態様にしたがった、マイクロプロセッサシステムの例示的で非限定の実施形態を図示するブロック図である。 本明細書に記載される様々な態様にしたがった、マイクロプロセッサシステムに含まれるコントローラの例示的で非限定の実施形態を図示するブロック図である。 本明細書に記載される様々な態様にしたがった、マイクロプロセッサシステムに含まれるコントローラの別の例示的で非限定の実施形態を図示するブロック図である。 本明細書に記載される様々な態様にしたがった、マイクロプロセッサシステムに含まれるコントローラのさらに別の例示的で非限定の実施形態を図示するブロック図である。 本明細書に記載される様々な態様にしたがった、マイクロプロセッサシステムの別の例示的で非限定の実施形態を図示するブロック図である。 本明細書に記載される様々な態様にしたがった、降下緩和ロジックを含むシステムの例示的で非限定の実施形態を図示するブロック図である。 本明細書に記載される様々な態様にしたがった、電圧降下緩和のための状態図の例示的で非限定の実施形態を図示する図である。 マイクロプロセッサに関連する電圧降下を緩和するための方法の例示的で非限定の実施形態を図示する流れ図である。 マイクロプロセッサに関連する電圧降下を緩和するための方法の、別の例示的で非限定の実施形態を図示する流れ図である。 マイクロプロセッサに関連する電圧降下を緩和するための方法の、さらに別の例示的で非限定の実施形態を図示する流れ図である。 本明細書に記載される1つまたは複数の態様と組み合わせて実装できる、例示的な電子コンピューティング環境を図示するブロック図である。 本明細書に記載される様々な態様と組み合わせて動作可能な、例示的なデータ通信ネットワークを図示するブロック図である。
本明細書における開示は、図面を参照して記載されており、図面では、全体を通して、同様の番号が同様の要素のことをいうために使用される。以下の記載では、説明のために、本発明の完全な理解を実現するために、多くの具体的な詳細が記載される。しかし、様々な開示された態様は、これらの具体的な詳細なしに実施できることが明らかであってよい。他の事例では、本発明を記載することを容易にするため、よく知られている構造およびデバイスは、ブロック図の形式で示される。
本開示の様々な態様は、マイクロプロセッサに関連する電圧降下の緩和を(たとえば、マイクロプロセッサに関連するクロックを制御することによって)可能にする。たとえば、マイクロプロセッサに関連する電圧降下イベントは、電圧検出器回路によって検出することができる。電圧検出器回路による電圧降下イベントの検出に応じて、マイクロプロセッサに提供されるクロックを、クロックの通常の周波数(たとえば、現在の周波数)よりも遅い、規定されたクロック周波数に切り替えることができる。電圧降下イベントが一度終了すると(たとえば、マイクロプロセッサに提供される電圧が、電圧降下イベントの前にマイクロプロセッサに提供されていた電圧レベルに戻ると)、クロックのクロック周波数が電圧降下イベントの前のクロックの通常の周波数に戻るまで、クロックの規定されたクロック周波数を徐々に増加することができる。一態様では、電圧降下イベントが発生したとき、コントローラが、マイクロプロセッサに提供されるクロックの周波数を低下させることができる。さらに、コントローラは、電圧降下イベントが一度終了すると(たとえば、マイクロプロセッサに提供される電圧が一度通常の電圧レベルに戻ると)、クロックの周波数を徐々に増加させることができる。したがって、マイクロプロセッサに関連する電圧降下の緩和を達成することができ、および/またはマイクロプロセッサシステム中の電圧供給ノイズに対する許容範囲を改善することができる。したがって、マイクロプロセッサの故障を回避するのに必要な電圧マージンを改善することができる。さらに、マイクロプロセッサの動作電圧を(たとえば、エネルギーを節約するために)下げることができ、および/またはマイクロプロセッサの動作周波数を(たとえば、マイクロプロセッサの性能を改善するため)増やすことができる。
図1を次に参照すると、本明細書に記載される様々な態様にしたがった、システム100の例示的で非限定の実施形態を図示するブロック図が示される。システム100は、マイクロプロセッサ102を含むマイクロプロセッサシステムであってよい。一例では、システム100は、システムオンチップ(SoC)に関連してよい。マイクロプロセッサ102は、クロックバッファ104に関連する(たとえば、提供される)クロック(たとえば、図1に示されるCLOCK)を受け取ることができる。たとえば、マイクロプロセッサ102に提供されるクロックは、クロックバッファ104によって駆動することができる。クロックバッファ104は、たとえば、マイクロプロセッサクロックバッファであってよい。一態様では、クロックバッファ104は、クロックのセット(たとえば、予め規定されたクロック値のセット)から、クロック(たとえば、マイクロプロセッサ102に提供されるクロック)を選択することができる。マイクロプロセッサ102は、たとえば、マイクロプロセッサ102に提供される少なくともクロック(たとえば、CLOCK)に基づいて出力(たとえば、図1に示されるOUTPUT)を生成することができる。
システム100は、コントローラ106も含む。コントローラ106は、システム100中の電圧降下の緩和を容易にするために採用することができる。たとえば、コントローラ106は、システム100の中の電圧降下を検出する、および/または電圧降下に応答するように構成される電圧降下緩和ロジックを含むことができる。コントローラ106は、マイクロプロセッサ102に関連する電圧(たとえば、図1に示されるVOLTAGE)に基づいてクロックバッファ104を制御することができる。たとえば、コントローラ106は、クロックバッファ104に制御信号(たとえば、図1に示されるCONTROL)を提供することができる。クロックバッファ104に提供される制御信号は、少なくとも部分的に電圧(たとえば、マイクロプロセッサ102に関連する電圧)に基づいて(たとえば、コントローラ106によって)構成することができる。したがって、コントローラ106は、電圧(たとえば、マイクロプロセッサ102に関連する電圧)に関連する電圧降下の検出に応じて、クロックバッファ104(たとえば、クロックバッファ104によって提供されるクロックの周波数)を制御することができる。一例では、電圧(たとえば、マイクロプロセッサ102に関連する電圧)は、マイクロプロセッサ102によって受け取られた供給電圧(たとえば、電源電圧、集積回路供給電圧など)であってよい。追加または代替として、コントローラ106は、電圧(たとえば、マイクロプロセッサ102に関連する電圧)に関連するノイズのレベルに基づいてクロックバッファ104を制御することができる。たとえば、コントローラ106と通信する回路(図示せず)は、1つまたは複数のノイズ検出技法を介して、電圧に関連するノイズのレベルを検出するように構成することができる。したがって、コントローラ106は、システム100の中の電圧ノイズ(たとえば、電圧供給ノイズ)を検出することができる。
一実施形態では、クロックバッファ104が入力クロック(たとえば、図1に示される、INPUT CLOCK)を受け取ることができる。クロックバッファ104は、コントローラ106によって生成される制御信号に基づいて、入力クロックをクロック(たとえば、マイクロプロセッサ102によって受け取られるクロック)へと変換することができる。たとえば、クロックバッファ104は、電圧に応じて、コントローラ106によって提供される情報に基づいて、入力クロックをクロック(たとえば、マイクロプロセッサ102によって受け取られるクロック)へと変換することができる。コントローラ106は、入力クロックおよび/または同期クロック分割に基づいてクロックバッファ104によって提供されるクロックの周波数を変更することができる。一態様では、コントローラ106は、電圧(たとえば、マイクロプロセッサに関連する電圧)が規定された検出基準を満足するという判定に応じて、入力クロックの周波数を低下させること(たとえば、クロックバッファ104によって提供されるクロックを入力クロックより低くすることができる)、および/またはクロックバッファ104によって提供されるクロックの周波数を低下させることができる。コントローラ106は、電圧(たとえば、マイクロプロセッサに関連する電圧)が規定された閾値より低いという判定に応じて、入力クロックの周波数を低下させること、および/またはより低い周波数でクロックを提供することができる。クロックの周波数(たとえば、入力クロックの周波数)は、クロックの速度に対応することができる。規定された閾値は、ある電圧振幅(たとえば、ノイズに関連する電圧振幅)に関連する電圧閾値であってよい。したがって、電圧が規定された閾値より低いとき、クロックバッファ104によって提供されるクロックがより遅いクロック周波数に切り替えられるように、コントローラ106がクロックバッファ104を制御できる(たとえば、コントローラ106は、電圧が規定された閾値より低いという判定に応じてクロックバッファ104によって提供されるクロックを一時的に遅くすることができる)。さらに、規定された閾値より低い電圧値を、電圧降下イベントと関連づけることができる。電圧降下イベントは、電圧ノイズのある量(たとえば、不要な量)に関連する場合がある。したが
って、コントローラ106は、電圧降下イベントに応じて、クロック(たとえば、クロックバッファ104によって提供されるクロック)の周波数を低下させることができる。別の実装形態では、コントローラ106は、電圧(たとえば、マイクロプロセッサに関連する電圧)が、電圧の時間平均バージョンに関連する規定された基準(たとえば、規定された閾値)を満足するという判定に応じて、入力クロックの周波数を低下させること、および/またはクロックバッファ104によって提供されるクロックの周波数を低下させることができる。さらに別の実装形態では、コントローラ106は、電圧(たとえば、マイクロプロセッサに関連する電圧)が、フィルタ処理した参照電圧に関連する規定された基準(たとえば、規定された閾値)を満足するという判定に応じて、入力クロックの周波数を低下させること、および/またはクロックバッファ104によって提供されるクロックの周波数を低下させることができる。さらに別の実装形態では、コントローラ106は、電圧(たとえば、マイクロプロセッサに関連する電圧)に関連する電圧降下勾配が規定された基準を満足するという判定に応じて、入力クロックの周波数を低下させること、および/またはクロックバッファ104によって提供されるクロックの周波数を低下させることができる。したがって、コントローラ106は、速い電圧降下イベントまたは遅い電圧降下イベントに応じて、入力クロックの周波数を低下させる、および/またはクロックバッファ104によって提供されるクロックの周波数を低下させるように構成することができる。別の態様では、入力クロックの周波数、および/またはクロックバッファ104によって提供されるクロックの周波数を低下させることに加えて、コントローラ106は、電圧が規定された検出基準を満足するという判定に応じて、入力クロックおよび/またはクロックバッファ104によって提供されるクロックの高いクロック位相を変更することができる。さらに、コントローラ106は、電圧が規定された検出基準を満足するという判定に応じて、入力クロックおよび/またはクロックバッファ104によって提供されるクロックの低いクロック位相を変更することができる。そのため、コントローラ106は、入力クロックおよび/またはクロックバッファ104によって提供されるクロックの、高
いクロック位相および低いクロック位相を増加させることができる。
コントローラ106は、電圧(たとえば、マイクロプロセッサに関連する電圧)が、規定された閾値より低いという判定に応じて、入力クロック、および/またはクロックバッファ104によって提供されるクロックの周波数を規定された周波数値(たとえば、第1の周波数)に低下させることができる。一例では、コントローラ106は、入力クロックの周波数を分割することによって、入力クロック、および/またはクロックバッファ104によって提供されるクロックの周波数を低下させることができる(たとえば、コントローラ106は、クロックの周波数を半分に分割することによって、入力クロックの周波数を低下させることができるなど)。たとえば、コントローラ106は、入力クロックの周波数を分割する(たとえば、入力クロックの速度を低下させる)ように構成できるクロックデバイダロジックを含むことができる。別の例では、コントローラ106は、電圧が規定された閾値より低いという判定に応じて、クロックバッファ104のための制御信号(たとえば、CONTROL)を生成することができる。さらに別の例では、コントローラ106は、第1のクロック周波数(たとえば、最大限度の周波数クロック)に関連する第1のクロック値と、第2のクロック周波数(たとえば、より遅いクロック)に関連する第2のクロック値との間で選択するようにクロックバッファ104を制御することができる。第1のクロック周波数は、低下される前(たとえば、電圧降下イベントの前)のクロックの周波数値に対応することができる。第2のクロック周波数は、電圧(たとえば、マイクロプロセッサに関連する電圧)が規定された閾値より低いという判定の後の、低下させた周波数値に対応することができる。一実装形態では、コントローラ106は、電圧(たとえば、マイクロプロセッサに関連する電圧)が、規定された閾値より低いという判定に応じて、入力クロック、および/またはクロックバッファ104によって提供されるクロックの周波数を規定された周波数値(たとえば、第1の周波数)に徐々に低下させることができる。
さらに、コントローラ106は、電圧が規定された閾値より低くなった後に規定された閾値以上となったという別の判定に応じて、入力クロック、および/またはクロックバッファ104によって提供されるクロックの周波数を徐々に増加させることができる。たとえば、電圧が規定された閾値より低くなった後に規定された閾値以上となったという別の判定に応じて、コントローラ106は、周波数が規定された周波数レベルに到達するまで、入力クロック、および/またはクロックバッファ104によって提供されるクロックの周波数を徐々に増加させることができる。規定された周波数レベルは、低下される前(たとえば、電圧降下イベントの前)の、入力クロックおよび/またはクロックバッファ104によって提供されるクロックの周波数に対応することができる。たとえば、コントローラ106は、電圧が規定された閾値より低くなった後に規定された閾値以上となることに応じて、クロックの元の周波数に到達するまで、クロックの周波数を繰り返し徐々に増加させることができる。一例では、規定された閾値以上の電圧値を、通常の電圧レベル(たとえば、電圧降下イベントと関連しない電圧レベル)と関連づけることができる。規定された周波数レベルは、たとえば、クロックバッファ104のクロックが電圧降下イベントの前に動作していた通常の周波数であってよい。
コントローラ106は、代わりに、電圧(たとえば、マイクロプロセッサに関連する電圧)が、規定された閾値より高いという判定に応じて、入力クロック、および/またはクロックバッファ104によって提供されるクロックの周波数を低下させることができることを理解されたい。したがって、コントローラ106は、代わりに、電圧が規定された閾値より高くなった後に規定された閾値以下となったという別の判定に応じて、入力クロック、および/またはクロックバッファ104によって提供されるクロックの周波数を徐々に増加させることができる。
一例では、コントローラ106は、タイマに基づいて、入力クロック、および/またはクロックバッファ104によって提供されるクロックの周波数を徐々に増加させることができる。入力クロック、および/またはクロックバッファ104によって提供されるクロックの周波数を徐々に増加させることによって、電圧に関連する電圧降下が繰り返す可能性を低下させることができる。一態様では、コントローラ106は、マイクロプロセッサに提供される電圧に関連する電圧降下イベントの頻度および/または平均の長さを監視するカウンタを含むことができる。たとえば、コントローラ106は、電圧が規定された閾値より低いという判定に応じて、カウンタを増分させることができる。さらに、コントローラは、電圧が規定された閾値以上である電圧値に戻る前に規定された閾値より低い時間の長さを判定することができる。
一実装形態では、コントローラ106は、電圧が規定された閾値より低いという判定に応じて、クロックバッファ104によって提供されるクロックの周波数をクロックの周波数より低い第1の周波数に低下させることができる。さらに、コントローラ106は、電圧が規定された閾値より低くなった後に規定された閾値以上になったという他の判定に応じて、クロックバッファ104によって提供されるクロックの第1の周波数を第1の周波数より高い第2の周波数に増加させることができる。次いで、コントローラ106は、電圧が規定された閾値より低くなった後に規定された閾値以上になったという他の判定に応じて、クロックの第2の周波数を第2の周波数より高い第3の周波数に増加させることができる。一例では、コントローラ106は、規定された時間期間の後に、クロックの第2の周波数を第2の周波数より高い第3の周波数に増加させることができる。たとえば、タイマが規定された時間期間を設定することができる。電圧降下の前のクロックの周波数が達成されるまで、コントローラが第3の周波数を第4の周波数に増加できることも理解されたい。
非限定の例では、電圧降下イベントの前にマイクロプロセッサ102に提供されたクロックの周波数(たとえば、クロックの通常の周波数)は、Sに等しくてよい。マイクロプロセッサ102に提供される電圧が規定された電圧閾値より低いという判定に応じて、コントローラ106は、クロックの周波数を、S/2に等しいクロック周波数に低下させることができる。しかし、クロックの周波数(たとえば、クロックの速度)を、異なる値に低下できることを理解されたい。次いで、電圧が規定された電圧閾値以上に増加されたという別の判定に応じて、コントローラ106は、クロック周波数が再びSに等しくなるまで、クロック周波数を徐々に増加させることができる。たとえば、コントローラ106は、最初に、クロック周波数を5S/8に増加させることができる。次いで、コントローラ106は、クロック周波数を6S/8に、次に7S/8に、最終的にSに増加させることができる。しかし、クロックの周波数(たとえば、クロックの速度)を、異なる量で徐々に増加できることを理解されたい。一例では、クロックの周波数(たとえば、クロックの速度)を、等しい量で徐々に増加させることができる。別の例では、クロックの周波数(たとえば、クロックの速度)を、同じでない量で徐々に増加させることができる。
したがって、システム100は、マイクロプロセッサ(たとえば、マイクロプロセッサ102)に関連する電圧ノイズ(たとえば、電源ノイズ)に対する許容範囲の改善を実現することができる。また、システム100では、マイクロプロセッサの故障(たとえば、マイクロプロセッサ102の故障、マイクロプロセッサ102に関連するセットアップ時間違反、マイクロプロセッサ102に関連する電気回路の障害など)を回避するのに必要な電圧マージン(たとえば、周波数/電圧ガードバンド)を改善することができる。さらに、システム100では、マイクロプロセッサ(たとえば、マイクロプロセッサ102)の動作電圧を(たとえば、エネルギーを節約するために)下げることができ、および/またはマイクロプロセッサ(たとえば、マイクロプロセッサ102)の動作周波数を(たとえば、マイクロプロセッサの性能を改善するために)増加させることができる。
図2をここで参照すると、本明細書に記載される様々な態様にしたがった、システム200の例示的で非限定の実施形態を図示するブロック図が示される。システム200は、マイクロプロセッサ102、クロックバッファ104、およびコントローラ106を含む。コントローラ106は、電圧検出器202を含む。別の実装形態では、電圧検出器202は、コントローラ106とは別個であり、および/またはコントローラ106と通信してよい。
電圧検出器202は、電圧検出器回路であってよい。一例では、電圧検出器202は、ハードウェア製電圧検出器回路(たとえば、アナログ電圧検出器回路)であってよい。別の例では、電圧検出器202は、電圧を検出するためのソフトウェア機能性を含むことができる。さらに別の例では、電圧検出器202は、ハードウェア製電圧検出器回路と電圧を検出するためのソフトウェア機能性との組合せであってよい。一実装形態では、電圧検出器202は、電圧検出器回路のセット(たとえば、アナログ電圧検出器回路のセット)と関連してよい。たとえば、電圧検出器202は、第1の電圧検出器回路(たとえば、第1の降下検出器回路)および第2の電圧検出器回路(たとえば、第2の降下検出器回路)と関連してよい。第1の電圧検出器回路は、マイクロプロセッサ102によって受け取られる電圧と関連する通信線に接続することができる。さらに、第1の電圧検出器回路は、マイクロプロセッサ102によって受け取られる電圧と関連するノイズを測定できる。第2の電圧検出器回路は、マイクロプロセッサ102によって受け取られる電圧と異なる参照電圧を受け取ることができる。さらに、第2の電圧検出器回路は、マイクロプロセッサ102によって受け取られる電圧と関連する電圧降下(たとえば、絶対電圧降下)が現れたことを提供することができる。
電圧検出器202は、マイクロプロセッサ102と関連する(たとえば、提供される)電圧を監視すること(たとえば、連続監視すること)ができる。一例では、電圧検出器202は、マイクロプロセッサ102によって受け取られる電圧と関連する通信線を監視することができる。したがって、コントローラ106は、電圧検出器202によって監視される電圧が規定された閾値より低いという判定に応じて、マイクロプロセッサ102に提供されるクロックの周波数(たとえば、クロックの速度)を低下させることができる。さらに、コントローラ106は、電圧検出器202によって監視される電圧が、規定された閾値より低くなった後に規定された閾値以上となったという別の判定に応じて、マイクロプロセッサ102に提供されるクロックの周波数(たとえば、クロックの速度)を徐々に増加させることができる。
一態様では、電圧検出器202によって監視される電圧が、規定された閾値より低くなった後に規定された閾値以上となったという他の判定に応じて、コントローラ106は、低下される前のクロックが以前設定された周波数(たとえば、クロックについての以前設定された速度)に周波数が到達するまで、マイクロプロセッサ102に提供されるクロックの周波数(たとえば、クロックの速度)を徐々に増加させることができる。別の態様では、電圧検出器202によって監視される電圧が規定された閾値より低いという判定に応じて、コントローラ106は、クロックの周波数(たとえば、クロックの速度)を、クロックの周波数(たとえば、クロックの速度)より低い第1の周波数(たとえば、第1の速度)に低下させることができる。加えて、電圧検出器202によって監視される電圧が、規定された閾値より低くなった後に規定された閾値以上となったという他の判定に応じて、コントローラ106は、クロック(たとえば、マイクロプロセッサ102に提供されるクロック)の第1の周波数(たとえば、第1の速度)を、第1の周波数(たとえば、第1の速度)より高い第2の周波数(たとえば、第2の速度)に増加させることができる。次いで、コントローラ106は、クロックの第2の周波数(たとえば、第2の速度)を、第2の周波数(たとえば、第2の速度)より高い第3の周波数(たとえば、第3の速度)に増加させることができる。
図3をここで参照すると、本明細書に記載される様々な態様にしたがった、システム300の例示的で非限定の実施形態を図示するブロック図が示される。システム300は、マイクロプロセッサ102、クロックバッファ104、およびコントローラ106を含む。コントローラ106は、電圧検出器202および/またはクロックロジック302を含む。
クロックロジック302は、クロックバッファ104に提供される制御信号を構成することができ、および/または電圧検出器202に関連する情報に基づいて、クロックバッファ104によって提供されるクロックを構成することができる。たとえば、クロックロジック302は、本明細書により完全に開示されるように、電圧検出器202によって監視される電圧が規定された閾値より低いという判定に応じて、マイクロプロセッサ102に提供されるクロックの周波数(たとえば、クロックの速度)を低下させることができる。さらに、クロックロジック302は、本明細書により完全に開示されるように、電圧検出器202によって監視される電圧が、規定された閾値より低くなった後に規定された閾値以上となったという別の判定に応じて、マイクロプロセッサ102に提供されるクロックの周波数(たとえば、クロックの速度)を徐々に増加させることができる。一態様では、クロックロジック302は、(たとえば、図7に示されるように)状態図に関連してよい。たとえば、クロックロジック302は、状態図に関連するロジックに基づいて、マイクロプロセッサ102に提供されるクロックの周波数(たとえば、クロックの速度)を徐々に増加させることができる。
図4をここで参照すると、本明細書に記載される様々な態様にしたがった、システム400の例示的で非限定の実施形態を図示するブロック図が示される。システム400は、マイクロプロセッサ102、クロックバッファ104、およびコントローラ106を含む。コントローラ106は、電圧検出器202、クロックロジック302、および/またはタイマ402を含む。
コントローラ106(たとえば、クロックロジック302)は、追加または代替として、タイマ402に基づいて、マイクロプロセッサ102に提供されるクロックの周波数(たとえば、クロックの速度)を徐々に増加させることができる。たとえば、タイマ402は、クロックの周波数を徐々に増加させることに関して、規定された時間期間を判定することができる。一例では、電圧検出器202によって監視される電圧が規定された閾値より低いという判定に応じて、コントローラ106(たとえば、クロックロジック302)は、クロックバッファ104によって提供されるクロックの周波数(たとえば、クロックの速度)を、クロックの周波数(たとえば、クロックの速度)より低い第1の周波数(たとえば、第1の速度)に低下させることができる。加えて、電圧検出器202によって監視される電圧が、規定された閾値より低くなった後に規定された閾値以上となったという他の判定に応じて、コントローラ106(たとえば、クロックロジック302)は、クロックバッファ104によって提供されるクロックの第1の周波数(たとえば、第1の速度)を、第1の周波数(たとえば、第1の速度)より高い第2の周波数(たとえば、第2の速度)に増加させることができる。次いで、コントローラ106(たとえば、クロックロジック302)は、クロックバッファ104によって提供されるクロックの第2の周波数(たとえば、第2の速度)を、第2の周波数(たとえば、第2の速度)より高い第3の周波数(たとえば、第3の速度)に増加させることができる。コントローラ106(たとえば、クロックロジック302)は、タイマ402によって規定され、および/または管理される、規定された時間期間後に、第2の周波数を第3の周波数に増加させることができる。ある実装形態では、コントローラ106(たとえば、クロックロジック302)は、タイマ402によって規定され、および/または管理される別の規定された時間期間後に、第3の周波数を第4の周波数に増加させることもできる。他の規定された時間期間は、規定された時間期間と等しくてよい。あるいは、他の規定された時間期間は、規定された時間期間と異なってよい。一例では、規定された時間期間は、システム400に関連するデバイス(たとえば、チップ、回路、パッケージ、ダイなど)の周波数応答に一致するよ
うに調整することができる。別の例では、(たとえば、図7に示されるように)タイマ402が状態図に関連してよい。
図5をここで参照すると、本明細書に記載される様々な態様にしたがった、システム500の例示的で非限定の実施形態を図示するブロック図が示される。システム500は、マイクロプロセッサ102、クロックバッファ104、およびコントローラ106を含む。コントローラ106は、クロックロジック302および/またはタイマ402を含む。電圧検出器202は、コントローラ106、およびマイクロプロセッサ102によって受け取られる電圧(たとえば、VOLTAGE)に関連する通信線に結合することができる。一例では、電圧検出器202は、ハードウェア製電圧検出器回路(たとえば、アナログ電圧検出器回路)であってよい。別の例では、電圧検出器202は、電圧を検出するためのソフトウェア機能性を含むことができる。さらに別の例では、電圧検出器202は、ハードウェア製電圧検出器回路と電圧を検出するためのソフトウェア機能性との組合せであってよい。
図6をここで参照すると、本明細書に記載される様々な態様にしたがった、システム600の例示的で非限定の実施形態を図示するブロック図が示される。システム600は、クロックバッファ104、コントローラ106、第1の電圧検出器602、および第2の電圧検出器604を含む。一実装形態では、第1の電圧検出器602、および第2の電圧検出器604は、電圧検出器202に関連する、および/または電圧検出器202に含まれる場合がある。
クロックバッファ104は、第1のクロックバッファ構成要素606および第2のクロックバッファ構成要素608を含むことができる。第1のクロックバッファ構成要素606は、第1の入力クロック(たとえば、図6に示されるCLK_PLL)および第2の入力クロック(たとえば、図6に示されるCLK_SCAN)を受け取ることができる。第1の入力クロック(たとえば、CLK_PLL)は、オフチップで(たとえば、クロックバッファ104に関連するチップ上に含まれていないデバイスから)受け取られる入力クロックであってよい。第2の入力クロック(たとえば、CLK_SCAN)は、位相ロックループ(PLL)から受け取られる入力クロックであってよい。
第1の電圧検出器602および第2の電圧検出器604は、電圧(たとえば、VOLTAGE)に関連する電圧異常を検出するように構成することができる。たとえば、第1の電圧検出器602と第2の電圧検出器604が同じ電圧供給を受け取る場合がある。一態様では、第1の電圧検出器602および/または第2の電圧検出器604は、電圧および/またはマイクロプロセッサ102に関連する通信線に接続することができる。第1の電圧検出器602および第2の電圧検出器604は、電圧(たとえば、同じ供給電圧)に応じて、第1の電圧検出器602が第2の電圧検出器604と異なる電圧イベントを検出するように、バイアスをかけることができる。第1の電圧検出器602は、電圧(たとえば、VOLTAGE)に関連する、相対電圧降下を検出するように構成することができる。一例では、第1の電圧検出器602は、電圧(たとえば、VOLTAGE)を、電圧のフィルタ処理したバージョン(たとえば、電圧の低域通過フィルタ処理したバージョンなど)と比較することができる。たとえば、第1の電圧検出器602は、電圧のフィルタ処理したバージョンを生成できるフィルタ(たとえば、低域通過フィルタ)を含むことができる。別の例では、第1の電圧検出器602は、電圧のフィルタ処理したバージョンを生成できるフィルタ(たとえば、低域通過フィルタ)に結合することができる。
第2の電圧検出器604は、第1の電圧検出器602と異なる電圧プロファイル(たとえば、異なるノイズプロファイル)を観測するように構成することができる。第2の電圧検出器604は、電圧(たとえば、VOLTAGE)に関連する絶対電圧降下を検出するように構成することができる。一例では、第2の電圧検出器604は、電圧(たとえば、VOLTAGE)を参照電圧(たとえば、オフダイから受け取られた参照電圧など)と比較することができる。たとえば、第2の電圧検出器604は、参照電圧を受け取ることができる。あるいは、第2の電圧検出器604は、参照電圧についての値を記憶することができる。
コントローラ106は、降下緩和ロジック610を含むことができる。たとえば、降下緩和ロジック610は、クロックロジック302および/もしくはタイマ402に関連することができ、ならびに/またはクロックロジック302および/もしくはタイマ402を含むことができる。降下緩和ロジック610は、第1の電圧検出器602および/または第2の電圧検出器604を介して電圧降下イベントを検出することができる。加えて、降下緩和ロジック610は、電圧降下イベントに応答することができる。たとえば、第1の電圧検出器602および/または第2の電圧検出器604からのフィードバックに基づいて、降下緩和ロジック610は、第1のクロックバッファ構成要素606のための第1の制御信号(たとえば、図6に示されるFIRST CONTROL)、および/または第2のクロックバッファ構成要素608のための第2の制御信号(たとえば、図6に示されるSECOND CONTROL)を生成することができる。第1の制御信号は、クロックバッファ104によって生成されるクロック値の構成に関連する制御信号であってよい。第2の制御信号は、第2のクロックバッファ構成要素608に関連するマルチプレクサ機能性を制御するための制御信号であってよい。
第1のクロックバッファ構成要素606は、第1の入力クロック(たとえば、CLK_PLL)、第2の入力クロック(たとえば、CLK_SCAN)、および/または第1の制御信号(たとえば、FIRST CONTROL)に基づいて、第1の規定されたクロック(たとえば、図6に示されたCLK_SLOW)および第2の規定されたクロック(たとえば、図6に示されたCLK_FAST)を生成することができる。第1の規定されたクロック(たとえば、CLK_SLOW)は、第2の規定されたクロックよりも遅いクロック周波数に関連することができる。第2の規定されたクロック(たとえば、CLK_FAST)は、たとえば、マイクロプロセッサ102に提供される通常のクロック周波数であってよい。第2のクロックバッファ構成要素608は、第2の制御信号(たとえば、SECOND CONTROL)に基づいて、第1の規定されたクロック(たとえば、CLK_SLOW)または第2の規定されたクロック(たとえば、CLK_FAST)を選択することができる。したがって、第1の規定されたクロック(たとえば、CLK_SLOW)または第2の規定されたクロック(たとえば、CLK_FAST)のいずれかを、マイクロプロセッサ102に提供されるクロック(たとえば、CLOCK)として出力することができる。一態様では、第2の入力クロック(たとえば、CLK_SCAN)および/または第2の規定されたクロック(たとえば、CLK_FAST)を、コントローラ106にフィードバックとして提供することができる。
図7は、本明細書に記載される様々な態様にしたがった、状態図700の例示的で非限定の実施形態が示されるのを図示する。状態図700は、電圧降下緩和を容易にすることができる。一態様では、状態図700は、コントローラ106、クロックロジック302、タイマ402、および/または降下緩和ロジック610に関連することができる。状態図700は、アイドル状態702(たとえば、図7に示されるIDLE)、第1の状態704(たとえば、図7に示されるSTATE 1)、第2の状態706(たとえば、図7に示されるSTATE 2)、第3の状態708(たとえば、図7に示されるSTATE 3)、および第4の状態710(たとえば、図7に示されるSTATE 4)を含む。
アイドル状態702は、マイクロプロセッサ102に提供される電圧についての通常の電圧レベルに関連することができる。たとえば、アイドル状態702は、規定された閾値以上の電圧レベル(たとえば、電圧降下イベントに関連しない電圧レベル)に関連することができる。電圧に関連するイベント(たとえば、電圧降下イベント)に応じて、状態図700は、アイドル状態702を出ることができ、経路712を介して第1の状態704に進むことができる。たとえば、電圧が規定された閾値より低いという判定に応じて、状態図700は、アイドル状態702を出ることができ、経路712を介して第1の状態704に進むことができる。第1の状態704において、クロックバッファ104に関連するクロックを、第1の値(たとえば、図7に示されるCLK=VALUE_1)に設定することができる。たとえば、クロックバッファ104に関連するクロックの周波数を(たとえば、図6の第1の周波数に、第1の規定されたクロックに、など)低下させることができる。電圧がもはやイベント(たとえば、電圧降下イベント)に関連していないという判定に応じて、状態図700は、第1の状態704を出ることができ、経路714を介して第2の状態706に進むことができる。たとえば、電圧が規定された閾値以上であるという判定に応じて、状態図700は、第1の状態704を出ることができ、経路714を介して第2の状態706に進むことができる。
第2の状態706では、第1の状態704に関連するクロックの第1の値を、第2の値(たとえば、図7に示されるCLK=VALUE_2)に増加させることができる。クロックの第2の値は、クロックの第1の値よりも大きいが、アイドル状態702に関連するクロックの値よりも小さくてよい。たとえば、第2の状態706では、アイドル状態702のときのクロックの周波数の値よりもクロックの周波数の現在の値が小さいように、第1の状態704に関連するクロックの周波数を、ある量だけ増加させることができる。状態図700は、(たとえば、タイマ402によって決定される)第1の規定された時間期間の間、第2の状態706であってよい。電圧がもはやイベント(たとえば、電圧降下イベント)に関連しておらず、第1の規定された時間期間に到達したという判定に応じて、状態図700は、第2の状態706を出ることができ、経路716を介して第3の状態708に進むことができる。たとえば、電圧が依然として規定された閾値以上であり、第1の規定された時間期間に到達したという判定に応じて、状態図700は、第2の状態706を出ることができ、経路716を介して第3の状態708に進むことができる。追加または代替として、電圧がもはやイベント(たとえば、電圧降下イベント)に関連しておらず、第1の規定された時間期間に到達していないという判定に応じて、状態図700は、経路718を介して第2の状態706のままでいることができる。しかし、電圧が再びイベント(たとえば、電圧降下イベント)に関連しているという判定に応じて、状態図700は、第2の状態706を出ることができ、経路720を介して第1の状態704に戻ることができる。たとえば、電圧が規定された閾値より低いという判定に応じて、状態図700は、第2の状態706を出ることができ、経路720を介して第1の状態704に戻ることができる。
第3の状態708では、第2の状態706に関連するクロックの第2の値を、第3の値(たとえば、図7に示されるCLK=VALUE_3)に増加させることができる。クロックの第3の値は、クロックの第2の値よりも大きいが、アイドル状態702に関連するクロックの値よりも小さくてよい。たとえば、第3の状態708では、アイドル状態702のときのクロックの周波数の値よりもクロックの周波数の現在の値が小さいように、第2の状態706に関連するクロックの周波数を、ある量だけ増加させることができる。状態図700は、(たとえば、タイマ402によって決定される)第2の規定された時間期間の間、第3の状態708であってよい。一例では、第2の規定された時間期間は、第1の規定された時間期間と同じであってよい。別の例では、第2の規定された時間期間は、第1の規定された時間期間と異なってよい。電圧がもはやイベント(たとえば、電圧降下イベント)に関連しておらず、第2の規定された時間期間に到達したという判定に応じて、状態図700は、第3の状態708を出ることができ、経路722を介して第4の状態710に進むことができる。たとえば、電圧が依然として規定された閾値以上であり、第2の規定された時間期間に到達したという判定に応じて、状態図700は、第3の状態708を出ることができ、経路718を介して第4の状態710に進むことができる。追加または代替として、電圧がもはやイベント(たとえば、電圧降下イベント)に関連しておらず、第2の規定された時間期間に到達していないという判定に応じて、状態図700は、経路724を介して第3の状態708のままでいることができる。しかし、電圧が再びイベント(たとえば、電圧降下イベント)に関連しているという判定に応じて、状態図700は、第3の状態708を出ることができ、経路720を介して第1の状態704に戻ることができる。たとえば、電圧が規定された閾値より低いという判定に応じて、状態図700は、第3の状態708を出ることができ、経路720を介して第1の状態704に戻ることができる。
第4の状態710では、第3の状態708に関連するクロックの第3の値を、第4の値(たとえば、図7に示されるCLK=VALUE_4)に増加させることができる。クロックの第4の値は、クロックの第3の値よりも大きいが、アイドル状態702に関連するクロックの値よりも小さくてよい。たとえば、第4の状態710では、アイドル状態702のときのクロックの周波数の値よりもクロックの周波数の現在の値が小さいように、第3の状態708に関連するクロックの周波数を、ある量だけ増加させることができる。状態図700は、(たとえば、タイマ402によって決定される)第3の規定された時間期間の間、第4の状態710であってよい。一例では、第3の規定された時間期間は、第1の規定された時間期間および/または第2の規定された時間期間と同じであってよい。別の例では、第3の規定された時間期間は、第1の規定された時間期間および/または第2の規定された時間期間と異なってよい。電圧がもはやイベント(たとえば、電圧降下イベント)に関連しておらず、第3の規定された時間期間に到達したという判定に応じて、状態図700は、第4の状態710を出ることができ、経路726を介してアイドル状態702に進むことができる。たとえば、電圧が依然として規定された閾値以上であり、第3の規定された時間期間に到達したという判定に応じて、状態図700は、第4の状態710を出ることができ、経路724を介してアイドル状態702に進むことができる。追加または代替として、電圧がもはやイベント(たとえば、電圧降下イベント)に関連しておらず、第3の規定された時間期間に到達していないという判定に応じて、状態図700は、経路728を介して第4の状態710のままでいることができる。しかし、電圧が再びイベント(たとえば、電圧降下イベント)に関連しているという判定に応じて、状態図700は、第4の状態710を出ることができ、経路720を介して第1の状態704に戻ることができる。たとえば、電圧が規定された閾値より低いという判定に応じて、状態図700は、第4の状態710を出ることができ、経路720を介して第1の状態704に戻ることができる。状態図700がアイドル状態702に戻ると、第4の状態710に関連するクロックの第4の値を、第1の状態704に入る前(たとえば、電圧降下イベントの前)の元のクロック値に増加させることができる。
ある実装形態では、本開示に説明されたシステム、装置、またはプロセスの態様は、機械内で具現化される、たとえば、1つまたは複数の機械に関連する1つまたは複数のコンピュータ可読媒体で具現化される機械実行可能な構成要素を構成することができる。そのような構成要素は、1つまたは複数の機械、たとえば、コンピュータ、コンピューティングデバイス、仮想機械などによって実行されると、記載した動作を機械に実施させることができる。たとえば、システムは、コンピュータ実行可能構成要素および命令を記憶するためのメモリを含むことができる。さらに、システムは、プロセッサを含み、システムによる命令(たとえば、コンピュータ実行可能構成要素および命令)の動作を容易にすることができる。
上で記載した例示的なシステムに鑑みて、記載した主題にしたがって実装できる方法は、図8〜図10のフローチャートを参照するとより良好に理解することができる。説明を簡単にするため、方法が一連のブロックとして示され、記載されるが、いくつかのブロックは、本明細書に描かれ記載されるものと異なる順番で、および/または他のブロックと同時に行われることができるため、特許請求される主題はブロックの順番によって限定されないことを理解して了解されたい。さらに、以降で記載される方法を実装するため、すべての図示されるブロックが必要とはならない場合がある。
図8を参照すると、マイクロプロセッサに関連する電圧降下を緩和するための方法の例示的で非限定の実施形態の流れ図が示される。方法800は、ブロック802で開始し、ブロック802では、マイクロプロセッサに関連する電圧降下イベントが検出される。たとえば、マイクロプロセッサに提供される電圧(たとえば、供給電圧)が規定された閾値(たとえば、規定された電圧レベル)より低いときに、電圧降下イベントを検出することができる。ブロック804において、マイクロプロセッサに提供されるクロックの周波数が、電圧降下イベントに応じて下げられる。たとえば、マイクロプロセッサに提供されるクロックの周波数を、電圧降下イベントの前のクロックの周波数より低い、規定されたクロック周波数に下げることができる。別の例では、クロックの周波数は、入力クロックを下げることによって下げることができる。ブロック806において、クロックの周波数は、電圧降下イベントが終了したという判定に応じて、電圧降下イベントの前のクロックの値に、徐々に増加される。たとえば、マイクロプロセッサに提供されるクロックの周波数は、電圧降下イベントの前のクロックの周波数に対応する規定されたクロック周波数にクロックの周波数が到達するまで、徐々に増加することができる。
図9を参照すると、マイクロプロセッサに関連する電圧降下を緩和するための方法の別の例示的で非限定の実施形態の流れ図が示される。方法900は、ブロック902で開始し、ブロック902では、マイクロプロセッサに提供される電圧が監視される。たとえば、1つまたは複数の電圧検出回路が、マイクロプロセッサに提供される電圧、および/またはマイクロプロセッサに提供される電圧に関連する通信線を連続監視することができる。
ブロック904において、マイクロプロセッサに提供されるクロックの周波数は、電圧が規定された閾値より低いという判定に応じて、低下される。たとえば、マイクロプロセッサに提供されるクロックの周波数を、電圧が規定された閾値に到達する前のクロックの周波数より低い、規定されたクロック周波数に低下させることができる。電圧が規定された閾値より低いことを、1つまたは複数の電圧検出回路が、判定することができる。
ブロック906において、電圧が規定された閾値に戻った、または規定された閾値より高いという判定に応じて、クロックの周波数が徐々に増加される。たとえば、マイクロプロセッサに提供されるクロックの周波数は、電圧が規定された閾値に到達する前のクロックの周波数に対応する規定されたクロック周波数にクロックの周波数が到達するまで、徐々に増加することができる。電圧が規定された閾値に戻ったこと、または規定された閾値より高いことを、1つまたは複数の電圧検出回路が、判定することができる。
代替の実装形態では、ブロック904において、電圧が規定された閾値より高いという判定に応じて、マイクロプロセッサに提供されるクロックの周波数を低下させることができる。したがって、ブロック906において、電圧が規定された閾値に戻った、または規定された閾値より低いという判定に応じて、クロックの周波数を徐々に増加させることができる。
図10を参照すると、マイクロプロセッサに関連する電圧降下を緩和するための方法のさらに別の例示的で非限定の実施形態の流れ図が示される。方法1000は、ブロック1002で開始し、ブロック1002では、マイクロプロセッサに提供される電圧が監視される。たとえば、1つまたは複数の電圧検出回路が、マイクロプロセッサに提供される電圧、および/またはマイクロプロセッサに提供される電圧に関連する通信線を連続監視することができる。
ブロック1004において、マイクロプロセッサに提供されるクロックの周波数は、電圧が規定された閾値より低いという判定に応じて、低下される。たとえば、クロックの周波数を、クロックの周波数より低い第1の周波数に低下させることができる。一態様では、クロックの周波数は、クロックの周波数を低下させるために分割することができる。電圧が規定された閾値より低いことを、1つまたは複数の電圧検出回路が、判定することができる。
ブロック1006において、電圧が規定された閾値より低くなった後に規定された閾値以上となったという別の判定に応じて、クロックの周波数が規定された周波数値と等しくなるまで、クロックの周波数が徐々に増加される。たとえば、クロックの周波数は、電圧が規定された閾値に到達する前のクロックの周波数に対応する周波数レベルに周波数が到達するまで、徐々に増加することができる。一態様では、クロックの第1の周波数は、第1の周波数より高く、電圧が規定された閾値に到達する前のクロックの周波数より低い、第2の周波数に増加させることができる。加えて、規定された時間期間の後に、クロックの第2の周波数を第2の周波数より高い第3の周波数に増加させることができる。電圧が規定された閾値に到達する前のクロックの周波数に第3の周波数が対応しない場合、電圧が規定された閾値に到達する前のクロックの周波数に対応する周波数レベルに周波数が到達するまで、第3の周波数より高い第4の周波数に第3の周波数を増加させることなどができる。電圧が規定された閾値に戻ったこと、または規定された閾値より高いことを、1つまたは複数の電圧検出回路が、判定することができる。
代替の実装形態では、ブロック1004において、電圧が規定された閾値より高いという判定に応じて、マイクロプロセッサに提供されるクロックの周波数を低下させることができる。したがって、ブロック1006において、電圧が規定された閾値より高くなった後に規定された閾値以下となったという別の判定に応じて、クロックの周波数が規定された周波数値と等しくなるまでクロックの周波数を徐々に増加させることができる。
例示的なコンピューティング環境
前述のように、有利なことに、本明細書に記載した技法は、マイクロプロセッサに関連する電圧降下および/または電圧ノイズを緩和することが望ましい任意のデバイスに適用することができる。したがって、ハンドヘルド型、携帯型、および他のコンピューティングデバイスならびにすべての種類のコンピューティングオブジェクトが、様々な非限定の実施形態に関して、すなわちマイクロプロセッサに関連する電圧降下および/または電圧ノイズを緩和することをデバイスが望む任意の場面で使用することが企図されると理解されたい。したがって、下の図11で記載される、下の汎用リモートコンピュータは一例に過ぎず、開示される主題は、ネットワーク/バスの相互運用性および相互作用を有する任意のクライアントで実装することができる。こうして、開示される主題は、たとえば、クライアントデバイスが、単に、機器の中に配置されるオブジェクトなどといったネットワーク/バスに対するインターフェースとして機能するネットワーク環境といった、非常に少ないまたは最小限のクライアントリソースが関係するネットワークでホストされるサービスの環境に実装することができる。
必要ではないが、開示される主題のいくつかの態様は、部分的に、デバイスまたはオブジェクトのためのサービスの開発者が使用するため、オペレーティングシステムを介して実装すること、および/または開示される主題の構成要素に関して動作するアプリケーションソフトウェア内に含むことができる。ソフトウェアは、投写型表示デバイス、視覚デバイス、または他のデバイスなどといった、1つまたは複数のコンピュータによって実行されるプログラムモジュールまたは構成要素などの、コンピュータ実行可能命令の一般的な内容で記載することができる。当業者は、開示される主題が他のコンピュータシステム構成およびプロトコルで実行できることを了解されよう。
図11は、こうして、開示される主題のいくつかの態様を実装できる好適なコンピューティングシステム環境1100の例を図示しており、上で明瞭にされたが、コンピューティングシステム環境1100は、デバイスにとっての好適なコンピューティング環境の単なる一例であり、開示される主題の使用または機能性の範囲についての限定を示唆することは意図していない。またコンピューティング環境1100は、例示的な動作環境1100に図示される構成要素のうちの任意の1つまたは構成要素の組合せに関係する何らかの依存性または要件を有すると解釈されるべきでない。
図11を参照すると、開示される主題を実装するための例示的なデバイスは、コンピュータ1110の形で、汎用コンピューティングデバイスを含む。コンピュータ1110の構成要素は、限定しないが、処理ユニット1120、システムメモリ1130、およびシステムメモリを含む様々なシステム構成要素を処理ユニット1120に結合するシステムバス1121を含むことができる。システムバス1121は、メモリバスまたはメモリコントローラ、ペリフェラルバス、および様々なバスアーキテクチャのいずれかを使用するローカルバスを含む、いくつかのタイプのバス構造のうちのいずれかであってよい。
コンピュータ1110は、典型的には、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ1110がアクセスできる任意の利用可能な媒体であってよい。限定ではなく例として、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体としては、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどといった情報の記憶のため、任意の方法または技術で実装される、揮発性および不揮発性、取外し可能および取外し不可能な媒体が挙げられる。コンピュータ記憶媒体としては、限定しないが、RAM、ROM、EEPROM、フラッシュメモリ、もしくは他のメモリ技術、CDROM、デジタル多用途ディスク(DVD)、もしくは他の光学ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、もしくは他の磁気記憶デバイス、または所望の情報を記憶するために使用でき、コンピュータ1110がアクセスできる任意の他の媒体が挙げられる。通信媒体は、典型的には、コンピュータ可読命令、データ構造、プログラムモジュール、または搬送波もしくは他の移送メカニズムなどといった変調したデータ信号中の他のデータを具現化し、任意の情報配信媒体を含む。
システムメモリ1130としては、読取り専用メモリ(ROM)および/またはランダムアクセスメモリ(RAM)などといった、揮発性および/または不揮発性メモリの形でのコンピュータ記憶媒体が挙げられる。スタートアップ期間などにコンピュータ1110内の要素間で情報を転送する役に立つ基本ルーチンを含む基本入出力システム(BIOS)を、メモリ1130に記憶することができる。メモリ1130は、典型的には、処理ユニット1120に直接アクセス可能であり、および/または処理ユニット1120によって現在動作している、データおよび/またはプログラムモジュールをやはり含む。限定でなく例として、メモリ1130としては、オペレーティングシステム、アプリケーションプログラム、他のプログラムモジュール、およびプログラムデータがやはり挙げられる。
コンピュータ1110は、他の取外し可能/取外し不可能、揮発性/不揮発性のコンピュータ記憶媒体を含むこともできる。たとえば、コンピュータ1110は、取外し不可能な不揮発性磁気媒体との間で読取りもしくは書込みをするハードディスクドライブ、取外し可能な不揮発性磁気ディスクとの間で読取りもしくは書込みをする磁気ディスクドライブ、および/またはCD-ROMもしくは他の光学媒体などといった取外し可能な不揮発性光学ディスクとの間で読取りもしくは書込みをする光学ディスクドライブを含むことができる。例示的な動作環境で使用できる他の取外し可能/取外し不可能、揮発性/不揮発性のコンピュータ記憶媒体としては、限定しないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、固体RAM、固体ROMなどが挙げられる。ハードディスクドライブは、典型的には、インターフェースなどの取外し不可能なメモリインターフェースを介してシステムバス1121に接続され、磁気ディスクドライブまたは光学ディスクドライブは、典型的には、インターフェースなどの取外し可能なメモリインターフェースによってシステムバス1121に接続される。
ユーザは、キーボード、および通常はマウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイスなどの入力デバイスを介してコンピュータ1110に、コマンドおよび情報を入力することができる。他の入力デバイスとしては、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナ、ワイヤレスデバイスキーパッド、音声コマンドなどが挙げられる。これらおよび他の入力デバイスは、システムバス1121に結合されるユーザ入力1140および関連するインターフェースを介して処理ユニット1120に接続されることが多いが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)などといった、他のインターフェースおよびバス構造物によって接続することができる。グラフィックスサブシステムもシステムバス1121に接続することができる。投影型表示デバイス中の投影ユニット、視覚デバイス中のHUD、または他のタイプのディスプレイデバイスも、出力インターフェース1150などといったインターフェースを介してシステムバス1121に接続することができ、システムバス1121が今度はビデオメモリと通信することができる。モニタに加えて、コンピュータは、出力インターフェース1150を介して接続することができるスピーカなどといった、他の周辺出力デバイスも含むことができる。
コンピュータ1110は、リモートコンピュータ1170などといった、1つまたは複数の他のリモートコンピュータへの論理接続を使用して、ネットワーク環境または分散型環境で動作することができ、リモートコンピュータ1170が、今度は、コンピュータ1110と異なる媒体対応機能を有することができる。リモートコンピュータ1170は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、携帯情報端末(PDA)、セルフォン、ハンドヘルドコンピューティングデバイス、投影型表示デバイス、視覚デバイス、または他の一般的なネットワークノード、または任意の他の遠隔媒体消費デバイスもしくは伝送デバイスであってよく、コンピュータ1110に対して上で記載された要素の一部または全部を含むことができる。図11に描かれる論理接続は、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)などのネットワーク1171を含むが、有線接続または無線接続のいずれかの他のネットワーク/バスも含むことができる。そのようなネットワーク環境は、家庭用、オフィス用、企業規模のコンピュータネットワーク、イントラネット、およびインターネットで珍しくない。
LANネットワーク環境で使用するとき、コンピュータ1110は、ネットワークインターフェースまたはアダプタを介してLAN1171に接続することができる。WANネットワーク環境で使用するとき、コンピュータ1110は、典型的には、モデムなどの通信構成要素、またはインターネットなどのWANによる通信を確立するための他の手段を含むことができる。内部または外部であってよいワイヤレス通信構成要素、モデムなどといった通信構成要素は、入力1140のユーザ入力インターフェース、または他の好適なメカニズムを介してシステムバス1121に接続することができる。ネットワーク環境において、コンピュータ1110に対して描かれたプログラムモジュールまたはその部分は、リモートメモリ記憶デバイスに記憶することができる。示され、記載されたネットワーク接続は例示であり、コンピュータ間に通信リンクを確立する他の手段を使用できることを理解されよう。
例示的なネットワーク環境
図12は、例示的なネットワーク環境または分散型コンピューティング環境の概略図を提供する。分散型コンピューティング環境は、アプリケーション1230、1232、1234、1236、1238、およびデータストア1240で表されるような、プログラム、方法、データストア、プログラム可能ロジックなどを含むことができる、コンピューティングオブジェクト1210、1212などおよびコンピューティングオブジェクトまたはデバイス1220、1222、1224、1226、1228などを含む。コンピューティングオブジェクト1210、1212などおよびコンピューティングオブジェクトまたはデバイス1220、1222、1224、1226、1228などは、図に描かれるマルチメディア表示デバイスもしくは同様のデバイス、またはモバイルフォン、携帯情報端末(PDA)、オーディオ/ビデオデバイス、MP3プレーヤ、パーソナルコンピュータ、ラップトップなどといった他のデバイスを含む、異なるデバイスを含むことができることを理解することができる。データストア1240が、メモリまたは本明細書に開示されるような他の同様のデータストアを含むことができることをさらに理解されたい。
各コンピューティングオブジェクト1210、1212などおよびコンピューティングオブジェクトまたはデバイス1220、1222、1224、1226、1228などは、直接または間接のいずれかの通信ネットワーク1242によって、1つまたは複数の他のコンピューティングオブジェクト1210、1212などおよびコンピューティングオブジェクトまたはデバイス1220、1222、1224、1226、1228などと通信することができる。図12には単一の要素として図示されるが、通信ネットワーク1242は、図12のシステムにサービスを提供する他のコンピューティングオブジェクトおよびコンピューティングデバイスを含むことができ、ならびに/または図示されない複数の相互接続されたネットワークを表すことができる。各コンピューティングオブジェクト1210、1212などまたはコンピューティングオブジェクトもしくはデバイス1220、1222、1224、1226、1228などは、APIまたは本明細書に記載される技法および開示との通信もしくは実装に好適な他のオブジェクト、ソフトウェア、ファームウェア、および/もしくはハードウェアを使用する場合があるアプリケーション1230、1232、1234、1236、1238などといったアプリケーションを含むこともできる。
分散型コンピューティング環境をサポートする様々なシステム、構成要素、およびネットワーク構成がある。たとえば、コンピューティングシステムは、有線またはワイヤレスシステムによるローカルネットワークまたは広く分散したネットワークによって一緒に接続することができる。現在では、多くのネットワークがインターネットに結合され、インターネットは、広く分散したコンピューティングのためのインフラストラクチャを提供して、多くの異なるネットワークを包含するが、本明細書の様々な実施形態に記載されるような例示的な通信のために、任意のネットワークインフラストラクチャを使用することができる。
したがって、クライアント/サーバ、ピアツーピア、またはハイブリッドアーキテクチャなどといった、ネットワークトポロジーおよびネットワークインフラストラクチャのホストを利用することができる。「クライアント」は、関係していない別のクラスまたはグループのサービスを使用するクラスまたはグループのメンバーである。クライアントとは、プロセス、すなわち、大まかには、別のプログラムまたはプロセスによって提供されるサービスを要求する命令またはタスクのセットであってよい。クライアントプロセスは、要求されたサービスを利用し、いくつかの場合には、他のプログラムまたはサービス自体について何ら実際の詳細を「知っている」必要はない。
クライアント/サーバアーキテクチャ、特にネットワークシステムでは、クライアントは、通常、別のコンピュータ、たとえば、サーバによって提供される共有ネットワークリソースにアクセスするコンピュータである。図12の図では、非限定の例として、コンピューティングオブジェクトまたはデバイス1220、1222、1224、1226、1228などはクライアントと考えることができ、コンピューティングオブジェクト1210、1212などはサーバと考えることができ、ここで、サーバとして機能するコンピューティングオブジェクト1210、1212などは、クライアントコンピューティングオブジェクトまたはデバイス1220、1222、1224、1226、1228などからデータを受け取ること、データの記憶、データの処理、クライアントコンピューティングオブジェクトまたはデバイス1220、1222、1224、1226、1228などにデータを送信することなどといったデータサービスを提供するが、環境に依存して、任意のコンピュータをクライアント、サーバ、または両方と考えることができる。
サーバは、典型的には、インターネットまたはワイヤレスネットワークインフラストラクチャなどといった、リモートまたはローカルネットワークを介してアクセス可能な、リモートコンピュータシステムである。クライアントプロセスは、第1のコンピュータシステム中でアクティブであってよく、サーバプロセスは、通信媒体を介して互いに通信する第2のコンピュータシステム中でアクティブであってよく、したがって、分散機能性が実現し、複数のクライアントが、サーバの情報収集能力を利用することが可能になる。本明細書に記載される技法にしたがって利用される任意のソフトウェアオブジェクトは、スタンドアロンで提供されて、または複数のコンピューティングデバイスもしくはオブジェクトにわたって分散されてよい。
通信ネットワーク1242またはバスがインターネットであるネットワーク環境では、たとえば、コンピューティングオブジェクト1210、1212は、ウェブサーバであってよく、ウェブサーバを用いて、他のコンピューティングオブジェクトまたはデバイス1220、1222、1224、1226、1228などが、ハイパーテキスト転送プロトコル(HTTP)などのいくつかの知られているプロトコルのいずれかを介して通信する。サーバとして機能するコンピューティングオブジェクト1210、1212などは、分散型コンピューティング環境の特性であってよいが、たとえば、コンピューティングオブジェクトまたはデバイス1220、1222、1224、1226、1228などのクライアントとしても働くことができる。
本明細書全体にわたる「一実施形態」、「実施形態」、「例」、「開示される態様」、または「態様」への言及は、本開示の少なくとも一実施形態または態様に含まれる実施形態または態様に関して記載される特定の特徴、構造、または特性を意味する。したがって、本明細書の全体にわたる様々な場所における、「一実施形態において」、「一態様において」または「実施形態では」といった語句が現れる箇所は、必ずしもすべてが同じ実施形態のことをいっていない。さらに、特定の特徴、構造、または特性は、様々な開示される実施形態において、任意の好適な方法で組み合わせることができる。
本明細書で使用する、「構成要素」、「システム」、「エンジン」、「アーキテクチャ」などの用語は、ハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア(たとえば、実行中の)、またはファームウェアのいずれかの、コンピュータまたは電子に関係した実体のことをいうことが意図される。たとえば、構成要素は、1つまたは複数のトランジスタ、メモリセル、トランジスタもしくはメモリセルの配置構成、ゲートアレイ、プログラム可能ゲートアレイ、特定用途向け集積回路、コントローラ、プロセッサ、半導体メモリ、コンピュータなどとアクセスするもしくは相互作用するプロセッサ上で走るプロセス、オブジェクト、実行可能、プログラム、またはアプリケーション、またはそれらの好適な組合せであってよい。構成要素は、消去可能プログラミング(たとえば、少なくとも部分的に消去可能メモリに記憶されるプロセス命令)またはハードプログラミング(たとえば、製造において消去不可能メモリに焼かれたプロセス命令)を含むことができる。
例として、メモリから実行されるプロセスとプロセッサから実行されるプロセスの両方が構成要素となることができる。別の例として、アーキテクチャは、電子ハードウェアの配置構成(たとえば、並列または直列トランジスタ)、処理命令、および電子ハードウェアの配置構成に好適な方法で処理命令を実装するプロセッサを含むことができる。加えて、アーキテクチャは、単一の構成要素(たとえば、トランジスタ、ゲートアレイ、…)または構成要素の配置構成(たとえば、トランジスタの直列または並列配置構成、プログラム回路で接続されるゲートアレイ、電源リード、電気的接地、入力信号線、および出力信号線など)を含むことができる。システムは、1つまたは複数の構成要素ならびに1つまたは複数のアーキテクチャを含むことができる。1つの例示的なシステムは、交差した入出力線およびパスゲートトランジスタを備えるスイッチングブロックアーキテクチャ、ならびに電源、信号生成器、通信バス、コントローラ、I/Oインターフェース、アドレスレジスタなどを含むことができる。規定に何らかの重複が予想されること、アーキテクチャまたはシステムがスタンドアロン構成要素または別のアーキテクチャ、システムなどの構成要素であってよいことを理解されたい。
上記に加えて、開示される主題は、典型的な製造、プログラミング、またはエンジニアリング技法を使用する方法、装置、または製造品として実装して、ハードウェア、ファームウェア、ソフトウェア、またはそれらの任意の好適な組合せを製造し、電子デバイスを制御して、開示される主題を実装することができる。本明細書で使用する「装置」および「製造品」という用語は、電子デバイス、半導体デバイス、コンピュータ、または任意のコンピュータ可読デバイスからアクセス可能なコンピュータプログラム、キャリア、または媒体を包含することが意図される。コンピュータ可読媒体は、ハードウェア媒体またはソフトウェア媒体を含むことができる。加えて、媒体は、非一時的媒体または移送媒体を含むことができる。一例では、非一時的媒体は、コンピュータ可読ハードウェア媒体を含むことができる。コンピュータ可読ハードウェア媒体の具体的な例としては、限定しないが、磁気記憶デバイス(たとえば、ハードディスク、フロッピー(登録商標)ディスク、磁気ストリップ…)、光学ディスク(たとえば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)…)、スマートカード、およびフラッシュメモリデバイス(たとえば、カード、スティック、キードライブ…)が挙げられる。コンピュータ可読移送媒体としては、搬送波などが挙げられる。もちろん、当業者なら、開示される主題の範囲または精神から逸脱することなく、本構成に対する多くの変更形態を行うことができると認識するであろう。
上で記載してきたことは、本発明の例を含む。もちろん、本発明を記載するために、構成要素または方法論のあらゆる想到できる組合せを記載するのは可能でないが、当業者なら、本発明の多くのさらなる組合せおよび並び替えを認識することができる。したがって、開示される主題は、本開示の精神および範囲に入る、すべてのそのような改変形態、変更形態、および変形形態を含むことが意図される。さらに、「含む(includes)」、「含んでいる(including)」、「有する(has)」、または「有している(having)」といった用語およびそれらの変形形態が、詳細な説明または請求項のいずれかで使用される限り、そのような用語は、「備えている、含んでいる(comprising)」が請求項中の移行句として採用されるときに解釈されるときの、「備えている、含んでいる(comprising)」という用語と同様の方法で、包括的であることが意図される。
さらに、「例示的(exemplary)」という言葉は、本明細書では、例、事例、または説明として働くことを意味するように使用される。本明細書で「例示的」と記載される任意の態様または設計は、必ずしも、他の態様または設計よりも好ましい、または有利であると解釈されるべきではない。むしろ、例示的という言葉の使用は、具体的な形で概念を表すことを意図する。本明細書で使用する、「または、もしくは(or)」という用語は、排他的な「または、もしくは(or)」ではなく、包括的な「または、もしくは(or)」を意味することが意図される。すなわち、別段に記載されていない、または文脈から明らかでない限り、「XがAまたはBを採用する」とは、自然で包括的な並び替えのいずれかを意味することが意図される。すなわち、XがAを採用する、XがBを採用する、またはXがAとBの両方を採用する場合、上記の事例のいずれかの元で、「XがAまたはBを採用する」が満足される。加えて、本明細書および添付の請求項で使用される、冠詞「a」および「an」は、単数形のことを指すという別段の記載または文脈から明らかでない限り、「1つまたは複数」を意味すると一般的にみなすべきである。
加えて、詳細な記載のいくつかの部分は、電子メモリ内のデータビットに対する、アルゴリズムまたはプロセス動作の点から提示されている。これらのプロセスの記載または表現は、当業者の仕事の本質を他の同様の当業者に効果的に伝達するため、当業者によって採用されるメカニズムである。プロセスは、本明細書では、一般的に、所望の結果へと導く行為の自己矛盾のないシーケンスであると考えられる。行為は、物理量の物理的操作を必要とするものである。典型的には、必ずしもそうではないが、これらの量は、記憶、伝達、組合せ、比較、および/または操作することができる電気および/または磁気信号の形をとる。
これらの信号をビット、値、要素、シンボル、記号、項、数などと呼ぶことは、原理的に一般的な用法という理由で、便利であることが証明された。しかし、これらおよび同様の用語のすべては、適切な物理量に関連づけられ、これらの量に適用される単なる便利なラベルであることを念頭に置くべきである。別段に明記されない、または上記の議論から明らかでない限り、開示される主題の全体にわたって、処理、コンピューティング、計算、判定、または表示などといった用語を利用した議論は、電子デバイスのレジスタまたはメモリ内の物理(電気および/または電子)量として表されるデータを、機械および/もしくはコンピュータシステムのメモリもしくはレジスタ、または他のそのような情報記憶、伝送、および/もしくは表示デバイス内の物理量として同様に表される他のデータへと操作または変換する、処理システムおよび/または同様の民生用もしくは産業用電子デバイスもしくは機械の行為およびプロセスのことをいうことが理解される。
上記の構成要素、アーキテクチャ、回路、プロセスなどによって実施される様々な機能に関して、そのような構成要素を記載するのに使用される(「手段」への言及を含む)用語は、別段の指示がない限り、たとえ開示される構造と構造的に等価でない場合であっても、本明細書に説明される例示的な実施形態の態様における機能を実施する、記載した構成要素の具体的な機能(たとえば、機能的な等価物)を実施する任意の構成要素に対応することが意図される。加えて、具体的な特徴が、いくつかの実装形態のうちのただ1つに関して開示される場合があるが、そのような特徴は、任意の所与の、または特定の用途にとって望ましく有利な場合があるので、他の実装形態の1つまたは複数の他の特徴と組み合わせることができる。本実施形態が、システムならびに様々なプロセスの行為および/またはイベントを実施するためのコンピュータ実行可能命令を有するコンピュータ可読媒体を含むことも理解されよう。
100 システム
102 マイクロプロセッサ
104 クロックバッファ
106 コントローラ
200 システム
202 電圧検出器
300 システム
302 クロックロジック
400 システム
402 タイマ
500 システム
600 システム
602 第1の電圧検出器
604 第2の電圧検出器
606 第1のクロックバッファ構成要素
608 第2のクロックバッファ構成要素
610 降下緩和ロジック
700 状態図
702 アイドル状態
704 第1の状態
706 第2の状態
708 第3の状態
710 第4の状態
712 経路
714 経路
716 経路
718 経路
720 経路
722 経路
724 経路
726 経路
728 経路
1100 コンピューティングシステム環境、動作環境
1110 コンピュータ
1120 処理ユニット
1121 システムバス
1130 システムメモリ
1140 入力
1150 出力、たとえば、ディスプレイ
1160 ネットワークインターフェース
1170 リモートコンピュータ
1171 LAN
1210 コンピューティングオブジェクト、サーバオブジェクト
1212 コンピューティングオブジェクト、サーバオブジェクト
1220 コンピューティングオブジェクト、コンピューティングデバイス
1222 コンピューティングオブジェクト、コンピューティングデバイス
1224 コンピューティングオブジェクト、コンピューティングデバイス
1226 コンピューティングオブジェクト、コンピューティングデバイス
1228 コンピューティングオブジェクト、コンピューティングデバイス
1230 アプリケーション
1232 アプリケーション
1234 アプリケーション
1236 アプリケーション
1238 アプリケーション
1240 データストア
1242 通信ネットワーク/バス

Claims (15)

  1. 電圧降下との関連でクロックバッファの周波数を制御するためのシステムであって、
    前記クロックバッファによって提供されるクロックを受け取るように構成されるマイクロプロセッサと、
    低域通過フィルタを備える電圧検出器であって、前記マイクロプロセッサに関連する電圧を、前記マイクロプロセッサに関連する前記電圧の低域通過フィルタ処理したバージョンと比較するように構成される、電圧検出器と、
    前記マイクロプロセッサに関連する前記電圧の前記低域通過フィルタ処理したバージョンと前記マイクロプロセッサに関連する前記電圧の前記比較に基づいて、前記クロックバッファによって提供される前記クロックの前記周波数を制御するように構成されるコントローラであって、前記電圧に関連する規定された基準が満足されたことに応じて前記クロックの前記周波数を低下させ、前記電圧に関連する別の規定された基準が満足されたことに応じて前記クロックの前記周波数を徐々に増加させるようにさらに構成される、コントローラと
    を備える、システム。
  2. 前記コントローラが、前記クロックバッファによって受け取られる入力信号の変更を制御するように構成される、請求項1に記載のシステム。
  3. 前記コントローラが、前記電圧が規定された閾値より低いという判定に応じて、前記クロックの前記周波数を低下させ、前記電圧が前記規定された閾値より低くなった後に前記規定された閾値以上となったという別の判定に応じて、前記クロックの前記周波数を徐々に増加させるように構成される、請求項1に記載のシステム。
  4. 前記電圧が前記規定された閾値より低くなった後に前記規定された閾値以上となったという前記別の判定に応じて、前記周波数が規定された周波数レベルに到達するまで、前記クロックの前記周波数を徐々に増加させるように前記コントローラが構成される、請求項3に記載のシステム。
  5. 前記電圧が前記規定された閾値より低くなった後に前記規定された閾値以上となることに応じて、前記クロックの元の周波数に到達するまで、前記クロックの前記周波数を徐々に増加させることを繰り返すように前記コントローラが構成される、請求項3に記載のシステム。
  6. 前記電圧が規定された閾値より低いという判定に応じて、前記コントローラが、前記クロックの前記周波数を、前記クロックの前記周波数より低い第1の周波数に低下させるように構成され、
    前記電圧が前記規定された閾値より低くなった後に前記規定された閾値以上となったという別の判定に応じて、前記コントローラが、前記クロックの前記第1の周波数を前記第1の周波数より高い第2の周波数に増加させ、規定された時間期間の後に、前記クロックの前記第2の周波数を前記第2の周波数より高い第3の周波数に増加させるように構成される、請求項1に記載のシステム。
  7. 前記コントローラが、前記クロックの前記周波数を分割することによって、前記クロックの前記周波数を低下させるように構成される、請求項1に記載のシステム。
  8. 前記コントローラが、前記クロックの前記周波数をタイマに基づいて徐々に増加させるように構成される、請求項1に記載のシステム。
  9. 電源ノイズに対する許容範囲を改善するためのシステムであって、
    相対電圧降下検出器および絶対電圧降下検出器を備える電圧検出器回路であって、
    前記相対電圧降下検出器が、低域通過フィルタを備え、マイクロプロセッサに関連する電圧を、前記マイクロプロセッサに関連する前記電圧の低域通過フィルタ処理したバージョンと比較するように構成され、
    前記絶対電圧降下検出器が、前記マイクロプロセッサに関連する前記電圧を参照電圧と比較するように構成される、電圧検出回路と、
    前記電圧が規定された基準を満足するという判定に応じて、前記マイクロプロセッサに関連するクロックの周波数を低下させ、前記電圧が前記規定された基準を満足した後に別の規定された基準を満足しているという別の判定に応じて、前記クロックの前記周波数を徐々に増加させるように構成される、コントローラと
    を備える、システム。
  10. 前記コントローラが、前記電圧が規定された閾値より低いという判定に応じて、前記クロックの前記周波数を低下させ、前記電圧が前記規定された閾値より低くなった後に前記規定された閾値以上となったという別の判定に応じて、前記クロックの前記周波数を徐々に増加させるように構成される、請求項9に記載のシステム。
  11. 前記電圧が規定された閾値より低いという判定に応じて、前記コントローラが、前記クロックの前記周波数を、前記クロックの前記周波数より低い第1の周波数に低下させるように構成され、
    前記電圧が前記規定された閾値より低くなった後に前記規定された閾値以上となったという別の判定、前記コントローラが、前記クロックの前記第1の周波数を前記第1の周波数より高い第2の周波数に増加させ、前記クロックの前記第2の周波数を前記第2の周波数より高い第3の周波数に増加させるように構成される、請求項9に記載のシステム。
  12. 電源ノイズに対する許容範囲を改善するための方法であって、
    マイクロプロセッサに関連する電圧を監視するステップと、
    前記電圧を前記電圧の低域通過フィルタ処理したバージョンと比較することによって相対的な電圧降下イベントを検出するステップと、
    前記相対的な電圧降下イベントの検出に応じて、前記マイクロプロセッサに提供されるクロックの周波数を低下させるステップと、
    前記電圧降下イベントが終了したという別の判定に応じて前記クロックの前記周波数を徐々に増加させるステップと
    を含む、方法。
  13. 前記クロックの前記周波数を徐々に増加させるステップが、前記周波数が規定された周波数レベルに到達するまで、または前記クロックの元の周波数に到達するまで前記クロックの前記周波数を徐々に増加させるステップを含む、請求項12に記載の方法。
  14. 前記クロックの前記周波数を低下させるステップが、前記クロックの前記周波数を前記クロックの前記周波数より低い第1の周波数に低下させるステップを含み、
    前記クロックの前記周波数を増加させる前記ステップが、前記クロックの前記第1の周波数を前記第1の周波数より高い第2の周波数に増加させるステップと、規定された時間期間の後に、前記クロックの前記第2の周波数を前記第2の周波数より高い第3の周波数に増加させるステップとを含む、請求項12に記載の方法。
  15. 前記クロックの前記周波数を低下させるステップが、前記クロックの前記周波数を分割するステップを含む、請求項12に記載の方法。
JP2019534635A 2016-09-06 2017-08-08 マイクロプロセッサに関連する電圧に基づいたクロック制御 Active JP6739652B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/256,787 2016-09-06
US15/256,787 US10348281B1 (en) 2016-09-06 2016-09-06 Clock control based on voltage associated with a microprocessor
PCT/US2017/045825 WO2018048550A1 (en) 2016-09-06 2017-08-08 Clock control based on voltage associated with a microprocessor

Publications (2)

Publication Number Publication Date
JP2019532448A JP2019532448A (ja) 2019-11-07
JP6739652B2 true JP6739652B2 (ja) 2020-08-12

Family

ID=61562834

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019534635A Active JP6739652B2 (ja) 2016-09-06 2017-08-08 マイクロプロセッサに関連する電圧に基づいたクロック制御

Country Status (5)

Country Link
US (1) US10348281B1 (ja)
EP (1) EP3510468A4 (ja)
JP (1) JP6739652B2 (ja)
CN (1) CN109964198A (ja)
WO (1) WO2018048550A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10860051B2 (en) * 2018-09-10 2020-12-08 Qualcomm Incorporated Proactive clock gating system to mitigate supply voltage droops
JP7187267B2 (ja) * 2018-10-31 2022-12-12 キヤノン株式会社 情報処理装置及びその制御方法
US10996738B2 (en) * 2018-12-18 2021-05-04 Marvell Asia Pte, Ltd. System and method for compensating for a droop event
US10901018B2 (en) 2018-12-18 2021-01-26 Marvell Asia Pte, Ltd. System and method for droop detection
US10686582B1 (en) * 2019-02-25 2020-06-16 Intel Corporation Clock phase compensation apparatus and method
US11209886B2 (en) * 2019-09-16 2021-12-28 Microsoft Technology Licensing, Llc Clock frequency adjustment for workload changes in integrated circuit devices
US11442082B2 (en) 2019-12-23 2022-09-13 Graphcore Limited Droop detection
GB2590660B (en) * 2019-12-23 2022-01-05 Graphcore Ltd Reactive droop limiter
JP2022168364A (ja) * 2021-04-26 2022-11-08 富士通株式会社 半導体装置及びクロック制御方法
US11239846B1 (en) * 2021-06-01 2022-02-01 SambaNova Systems, Inc. Variable-length clock stretcher with correction for glitches due to phase detector offset

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6311287B1 (en) * 1994-10-11 2001-10-30 Compaq Computer Corporation Variable frequency clock control for microprocessor-based computer systems
JP2001125690A (ja) * 1999-10-26 2001-05-11 Mitsubishi Electric Corp マイクロコンピュータの誤動作防止装置及びマイクロコンピュータの誤動作防止方法
US6532574B1 (en) 2000-08-17 2003-03-11 International Business Machines Corporation Post-manufacture signal delay adjustment to solve noise-induced delay variations
JP2002202829A (ja) * 2000-12-28 2002-07-19 Fujitsu Ltd マイクロコンピュータ
US6489834B2 (en) * 2001-03-16 2002-12-03 Hewlett-Packard Company System and method utilizing on-chip voltage monitoring to manage power consumption
US6876239B2 (en) 2001-07-11 2005-04-05 Micron Technology, Inc. Delay locked loop “ACTIVE command” reactor
US6922111B2 (en) 2002-12-20 2005-07-26 Intel Corporation Adaptive frequency clock signal
US7225349B2 (en) 2003-07-25 2007-05-29 Intel Corporation Power supply voltage droop compensated clock modulation for microprocessors
US7703073B2 (en) 2004-06-08 2010-04-20 Covia Labs, Inc. Device interoperability format rule set and method for assembling interoperability application package
US7599808B2 (en) 2007-08-31 2009-10-06 International Business Machines Corporation Application of multiple voltage droop detection and instruction throttling instances with customized thresholds across a semiconductor chip
US7772889B2 (en) 2008-04-09 2010-08-10 Globalfoundries Inc. Programmable sample clock for empirical setup time selection
US7937563B2 (en) 2008-05-27 2011-05-03 Advanced Micro Devices, Inc. Voltage droop mitigation through instruction issue throttling
US8949666B2 (en) 2009-02-12 2015-02-03 President And Fellows Of Harvard College Adaptive event-guided system and method for avoiding voltage emergencies
US8060766B2 (en) 2009-03-06 2011-11-15 Oracle America, Inc. Microprocessor performance and power optimization through inductive voltage droop monitoring and correction
US8775854B2 (en) * 2009-11-13 2014-07-08 Marvell World Trade Ltd. Clock turn-on strategy for power management
US8497694B2 (en) 2010-02-10 2013-07-30 Qualcomm Incorporated On-chip sensor for measuring dynamic power supply noise of the semiconductor chip
US8648645B2 (en) 2010-05-25 2014-02-11 Oracle International Corporation Microprocessor performance and power optimization through self calibrated inductive voltage droop monitoring and correction
US8510582B2 (en) 2010-07-21 2013-08-13 Advanced Micro Devices, Inc. Managing current and power in a computing system
US8892922B2 (en) * 2010-11-30 2014-11-18 Apple Inc. Voltage detection
US20120187991A1 (en) 2011-01-25 2012-07-26 Advanced Micro Devices, Inc. Clock stretcher for voltage droop mitigation
US8587357B2 (en) 2011-08-25 2013-11-19 International Business Machines Corporation AC supply noise reduction in a 3D stack with voltage sensing and clock shifting
US8862909B2 (en) 2011-12-02 2014-10-14 Advanced Micro Devices, Inc. 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
US8924758B2 (en) 2011-12-13 2014-12-30 Advanced Micro Devices, Inc. Method for SOC performance and power optimization
TWI470906B (zh) * 2012-07-04 2015-01-21 Leadtrend Tech Corp 適用於一次側控制之定電流控制單元以及相關之控制方法
US10020931B2 (en) 2013-03-07 2018-07-10 Intel Corporation Apparatus for dynamically adapting a clock generator with respect to changes in power supply
US8933737B1 (en) * 2013-06-28 2015-01-13 Stmicroelectronics International N.V. System and method for variable frequency clock generation
US9298250B2 (en) 2013-08-06 2016-03-29 Globalfoundries Inc. Reconfigurable circuit to emulate system critical paths
US9689917B2 (en) 2014-08-01 2017-06-27 Oracle International Corporation Digital voltage droop monitor with clock jitter adjustment
US9413344B2 (en) 2014-09-08 2016-08-09 Qualcomm Incorporated Automatic calibration circuits for operational calibration of critical-path time delays in adaptive clock distribution systems, and related methods and systems
US9634676B2 (en) * 2015-07-01 2017-04-25 Qualcomm Incorporated Circuits and methods providing clock frequency adjustment in response to supply voltage changes

Also Published As

Publication number Publication date
WO2018048550A1 (en) 2018-03-15
US10348281B1 (en) 2019-07-09
CN109964198A (zh) 2019-07-02
JP2019532448A (ja) 2019-11-07
EP3510468A4 (en) 2020-04-22
EP3510468A1 (en) 2019-07-17

Similar Documents

Publication Publication Date Title
JP6739652B2 (ja) マイクロプロセッサに関連する電圧に基づいたクロック制御
US20230359263A1 (en) Current control for a multicore processor
RU2644536C2 (ru) Управление колебаниями инициатора ввода/вывода при передаче
US8195970B2 (en) System and method for adapting a power usage of a server during a data center cooling failure
US9830954B2 (en) Method and system for dynamic power management of memories
US10198059B2 (en) Adaptive doze to hibernate
KR102430865B1 (ko) 멀티 메모리 다이 구조에서 외부 파워에 대한 피크 전류 감소 기능을 갖는 반도체 메모리 장치
US10536322B2 (en) Resource management for services
JP7279013B2 (ja) プロセッサ・コアにおいてローカル検出ループを使用するオンチップ電源ノイズ電圧の低減または軽減
US20090323452A1 (en) Dual Mode Memory System for Reducing Power Requirements During Memory Backup Transition
US10437321B2 (en) Low power state implementation in a power management integrated circuit
US8543960B1 (en) Power and timing optimization for an integrated circuit by voltage modification across various ranges of temperatures
CN105024933A (zh) 请求包发送频率的控制方法及装置
CN113126892A (zh) 控制存储系统方法、电子设备和计算机程序产品
US20140006813A1 (en) System for Combined Input Output Module and Zero Power Optical Disk Drive with Advanced Integration and Power
KR20200137981A (ko) 하드 기입 스로틀 다운을 갖는 nvram 메모리 모듈
US11435932B1 (en) Data relocation system
US20170102761A1 (en) Multi-Core Dynamic Frequency Control System
US9367442B2 (en) Allocating memory usage based on voltage regulator efficiency
US10489189B2 (en) Selection of maintenance tasks
US8943341B2 (en) Minimizing power consumption for fixed-frequency processing unit operation
CN110825199A (zh) 信息处理方法及其装置、电子设备和介质
US20150161070A1 (en) Method and system for managing bandwidth demand for a variable bandwidth processing element in a portable computing device
US9996095B2 (en) Semiconductor integrated circuit device having bulk bias control function and method of driving the same
US10908811B1 (en) System and method for improving a graphical menu

Legal Events

Date Code Title Description
A529 Written submission of copy of amendment under article 34 pct

Free format text: JAPANESE INTERMEDIATE CODE: A529

Effective date: 20190425

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190425

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200617

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200622

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200721

R150 Certificate of patent or registration of utility model

Ref document number: 6739652

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250