(57)【要約】【課題】例示的な諸実施形態において、デジタル回路のパフォーマンスを向上するための方法、システム、およびコンピュータ・プログラム製品を提供する。【解決手段】デジタル回路内の制御ループを用いて、デジタル回路の動作の実周波数が調整され、この実周波数の調整はデジタル回路の動作条件の変化に応答して行われる。デジタル回路に電流を供給している電圧レギュレータから、デジタル回路によって引き出されている電流の測定値が受信される。過電流ターゲット電流値が受信される。電圧レギュレータからデジタル回路への電圧出力が、デジタル回路によって引き出される電流が過電流ターゲット電流値を上回らないように、調整される。【選択図】図３
2014529777.tif 000002
【特許請求の範囲】
【請求項１】
デジタル回路のパフォーマンスを向上するためのコンピュータ実装の方法であって、前記方法は、
前記デジタル回路内の制御ループを用いて前記デジタル回路の動作の実周波数を調整するステップであって、前記実周波数を前記調整するステップは前記デジタル回路の動作条件の変化に応答して行われる、前記調整するステップと、
前記デジタル回路に電力を供給する電圧レギュレータから、前記デジタル回路によって引き出される電流の測定値を受信するステップと、
過電流ターゲット電流値を受信するステップと、
前記電圧レギュレータから前記デジタル回路への電圧出力を、前記デジタル回路によって引き出される前記電流が前記過電流ターゲット電流値を上回らないように、調整するステップと、
を含む、コンピュータ実装の方法。
【請求項２】
前記調整するステップに応答して前記電圧出力を低減するステップが、前記デジタル回路によって引き出される前記電流を低減させる、請求項１に記載のコンピュータ実装の方法。
【請求項３】
前記電圧出力に対する上側閾値を調整して、調整された上側電圧閾値を形成するステップと、
前記デジタル回路の動作の前記実周波数および前記デジタル回路の動作のターゲット周波数を用いて前記電圧出力の調整を計算して、調整された電圧出力を形成するステップと、
前記調整された上側電圧閾値および前記調整された電圧出力のうち、より低い方を選択して、選択された電圧調整を形成するステップと、
前記選択された電圧調整を用いて、前記電圧レギュレータで調整を実行するステップと、
をさらに含む、請求項１に記載のコンピュータ実装の方法。
【請求項４】
電圧出力に対する前記上側閾値を前記調整するステップが、前記引き出される電流が前記過電流ターゲット電流値を上回るのに応答して電圧出力に対する前記上側閾値を低減させるステップを含む、請求項３に記載のコンピュータ実装の方法。
【請求項５】
電圧出力に対する前記上側閾値を前記調整するステップが、前記過電流ターゲット電流値が前記引き出される電流を上回るのに応答して電圧出力に対する前記上側閾値を増昇させるステップを含む、請求項３に記載のコンピュータ実装の方法。
【請求項６】
前記デジタル回路の動作周波数に対する前記上側閾値を前記調整するステップが、前記過電流ターゲット電流値が前記引き出される電流を上回るのに応答して前記デジタル回路の動作周波数に対する前記上側閾値を増昇させるステップを含む、請求項３に記載のコンピュータ実装の方法。
【請求項７】
前記デジタル回路の動作周波数に対する上側閾値を調整して、調整された上側周波数閾値を形成するステップと、
前記調整された上側周波数閾値および前記デジタル回路の動作のターゲット周波数のうち、より低い方を選択して、選択された周波数調整を形成するステップと、
前記デジタル回路の動作の前記実周波数および前記選択された周波数調整を用い、前記電圧出力に対する調整を計算して、調整された電圧出力を形成するステップと、
前記調整された上側電圧閾値および前記調整された電圧出力のうち、より低い方を選択して、選択された電圧調整を形成するステップと、
前記選択された電圧調整を用いて、前記電圧レギュレータで調整を実行するステップと、
をさらに含む、請求項１に記載のコンピュータ実装の方法。
【請求項８】
前記デジタル回路の動作周波数に対する前記上側閾値を前記調整するステップが、前記引き出される電流が前記過電流ターゲット電流値を上回るのに応答して前記デジタル回路の動作周波数に対する前記上側閾値を低減させるステップを含む、請求項７に記載のコンピュータ実装の方法。
【請求項９】
前記制御ループが、クリティカル・パス・モニタおよびデジタル位相ロック・ループを含み、
前記動作条件が、前記デジタル回路への供給電圧と、前記デジタル回路を用いて実行される作業負荷と、前記デジタル回路が動作される周囲条件との組み合わせを含み、
前記制御ループが、数ナノ秒で、前記動作条件の前記変化を検出して前記変化に反応する、
請求項１に記載のコンピュータ実装の方法。
【請求項１０】
デジタル回路のパフォーマンスを向上するためのコンピュータ可用コードを包含するコンピュータ可用ストレージ媒体を含む、コンピュータ可用プログラム製品であって、前記デジタル回路の動作の実周波数は前記デジタル回路内の制御ループを用いて調整され、前記実周波数は、前記デジタル回路の動作条件の変化に応答して調整され、前記コンピュータ可用コードが、
前記デジタル回路に電力を供給する電圧レギュレータから、前記デジタル回路によって引き出される電流の測定値を受信するためのコンピュータ可用コードと、
過電流ターゲット電流値を受信するためのコンピュータ可用コードと、
前記電圧レギュレータから前記デジタル回路への電圧出力を、前記デジタル回路によって引き出される前記電流が前記過電流ターゲット電流値を上回らないように、調整するためのコンピュータ可用コードと、
を含む、コンピュータ可用プログラム製品。
【請求項１１】
前記調整に応じた前記電圧出力の低減が、前記デジタル回路によって引き出される前記電流を低減させる、請求項１０に記載のコンピュータ可用プログラム製品。
【請求項１２】
前記電圧出力に対する上側閾値を調整して、調整された上側電圧閾値を形成するためのコンピュータ可用コードと、
前記デジタル回路の動作の前記実周波数および前記デジタル回路の動作のターゲット周波数を用いて前記電圧出力の調整を計算して、調整された電圧出力を形成するためのコンピュータ可用コードと、
前記調整された上側電圧閾値および前記調整された電圧出力のうち、より低い方を選択して、選択された電圧調整を形成するためのコンピュータ可用コードと、
前記選択された電圧調整を用いて、前記電圧レギュレータで調整を実行するためのコンピュータ可用コードと、
をさらに含む、請求項１０に記載のコンピュータ可用プログラム製品。
【請求項１３】
電圧出力に対する前記上側閾値の前記調整が、前記引き出される電流が前記過電流ターゲット電流値を上回るのに応答して電圧出力に対する前記上側閾値を低減することを含む、請求項１２に記載のコンピュータ可用プログラム製品。
【請求項１４】
電圧出力に対する前記上側閾値の前記調整が、前記過電流ターゲット電流値が前記引き出される電流値を上回るのに応答して電圧出力に対する前記上側閾値を増昇することを含む、請求項１２に記載のコンピュータ可用プログラム製品。
【請求項１５】
前記デジタル回路の動作周波数に対する前記上側閾値の前記調整が、前記過電流ターゲット電流値が前記引き出される電流を上回るのに応答して前記デジタル回路の動作周波数に対する前記上側閾値を増昇することを含む、請求項１２に記載のコンピュータ可用プログラム製品。
【請求項１６】
前記デジタル回路の動作周波数に対する上側閾値を調整して、調整された上側周波数閾値を形成するためのコンピュータ可用コードと、
前記調整された上側周波数閾値および前記デジタル回路の動作のターゲット周波数のうち、より低い方を選択して、選択された周波数調整を形成するためのコンピュータ可用コードと、
前記デジタル回路の動作の前記実周波数および前記選択された周波数調整を用い、前記電圧出力に対する調整を計算して、調整された電圧出力を形成するためのコンピュータ可用コードと、
前記調整された上側電圧閾値および前記調整された電圧出力のうち、より低い方を選択して、選択された電圧調整を形成するためのコンピュータ可用コードと、
前記選択された電圧調整を用いて、前記電圧レギュレータで調整を実行するためのコンピュータ可用コードと、
をさらに含む、請求項１０に記載のコンピュータ可用プログラム製品。
【請求項１７】
前記デジタル回路の動作周波数に対する前記上側閾値の前記調整が、前記引き出される電流が前記過電流ターゲット電流値を上回るのに応答して前記デジタル回路の動作周波数に対する前記上側閾値を低減することを含む、請求項１６に記載のコンピュータ可用プログラム製品。
【請求項１８】
前記コンピュータ可用コードがデータ処理システム内のコンピュータ可読ストレージ媒体中に格納され、前記コンピュータ可用コードが遠隔のデータ処理システムからネットワークを介して転送される、請求項１０に記載のコンピュータ可用プログラム製品。
【請求項１９】
前記コンピュータ可用コードがサーバ・データ処理システム内のコンピュータ可読ストレージ媒体中に格納され、前記コンピュータ可用コードが、遠隔のデータ処理システムに関連するコンピュータ可読ストレージ媒体で用いるため、ネットワークを介して前記遠隔のデータ処理システムにダウンロードされる、請求項１０に記載のコンピュータ可用プログラム製品。
【請求項２０】
デジタル回路のパフォーマンスを向上するためのデータ処理システムであって、前記データ処理システムは、
ストレージ媒体を含むストレージ・デバイスであって、コンピュータ可用プログラム・コードを格納する、前記ストレージ・デバイスと、
プロセッサと、
を含み、
前記プロセッサは前記コンピュータ可用プログラム・コードを実行し、前記コンピュータ可用プログラム・コードが、
前記デジタル回路中の、前記デジタル回路の動作の実周波数を調整するための制御ループであって、前記実周波数の前記調整は、前記デジタル回路の動作条件の変化に応答して行われる、前記制御ループと、
前記デジタル回路に電力を供給する電圧レギュレータから、前記デジタル回路によって引き出される電流の測定値を受信するためのコンピュータ可用コードと、
過電流ターゲット電流値を受信するためのコンピュータ可用コードと、
前記電圧レギュレータから前記デジタル回路への電圧出力を、前記デジタル回路によって引き出される前記電流が前記過電流ターゲット電流値を上回らないように、調整するためのコンピュータ可用コードと、
を含む、データ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、デジタル回路のパフォーマンスを向上するための、コンピュータ実装の方法、システム、およびコンピュータ・プログラム製品に関する。具体的には、本発明は、デジタル回路によって引き出される電流を管理することによってデジタル回路のパフォーマンスを向上するための、コンピュータ実装の方法、システム、およびコンピュータ・プログラム製品に関する。
【背景技術】
【０００２】
現今の電子機器は集積回路を用いたコンポーネントを含む。集積回路は、基板としてシリコンを使い、不純物を添加してトランジスタ、ダイオード、および抵抗素子などの固体電子デバイスを形作ることによって形成される電子回路である。一般に「チップ」として知られる集積回路は、通常、硬質プラスチックのケースに封入される。現今の電子機器中のこれらコンポーネントは、一般に、プラスチック封入体から突き出したコネクタ・ピンを備えた矩形黒色のプラスチック・ペレットの外観をしている。
【０００３】
デジタル回路は、デジタル入力を受け取り、何らかの計算をしてデジタル出力を生成するように設計された電子回路である。デジタル回路は、集積回路の一部であることもあり、あるいは複数の集積回路を含むこともある。
【０００４】
電子回路は、それらに意図されたタスクを実行するために電力を消費する。回路のパフォーマンスは、その回路に供給される電力の特性に左右される。例えば、回路に供給される電圧はその回路が動作できる周波数に対応する。回路の周波数は「サイクル」としても知られ、所与の作業負荷を実行するため回路がその作業を分割する最小の時間単位である。
【０００５】
通常、所与の電子回路に対する限度までは、周波数の増加が電子回路のパフォーマンスの増加をもたらす。言い換えれば、周波数が高いほど電子回路により実行される作業量は大きくなる。但し、このパフォーマンスの増加は必ずしも動作の周波数の増加には比例しない。
【０００６】
回路に印加される電圧と回路が動作できる周波数との間には関係がある。通常、所与の電子回路に対する限度までは、電圧の増大が回路の動作周波数の増加をもたらし、これが電子回路のパフォーマンスの増加をもたらす。再述するが、電圧、周波数、およびパフォーマンスは、相互に比例関係にはないがその関係は単調である。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
例えば電圧の増大には限度がある。最大電圧を上回れば、電子回路中にエラーまたは障害が生じ、システム故障につながり兼ねない。同様に、特定の閾値を下回って電圧を低減すれば類似の結果が生じ得る。
【課題を解決するための手段】
【０００８】
例示的な諸実施形態は、電流管理を用いてデジタル回路のパフォーマンスを向上するための方法、システム、およびコンピュータ・プログラム製品を提供する。ある実施形態は、デジタル回路内の制御ループを用いてデジタル回路の動作の実周波数を調整し、この実周波数の調整はデジタル回路の動作条件の変化に応答して行われる。本実施形態は、デジタル回路に電力を供給している電圧レギュレータから、デジタル回路によって引き出されている電流の測定値を受信する。本実施形態は過電流ターゲット電流値も受信する。本実施形態は、電圧レギュレータからデジタル回路への電圧出力を、デジタル回路によって引き出される電流が過電流ターゲット電流値を上回らないように、調整する。
【０００９】
これら実施形態の特徴と考えられる新規な特質は、添付の特許請求の範囲に示されている。しかしながら、本発明自体の実施形態および好適な使用のモード、さらなる目的およびそれらの利点は、以下の例示的な実施形態の詳細な説明を参照し、添付の図面と併せ読むことによって最善に理解することができよう。
【図面の簡単な説明】
【００１０】
【図１】例示的な諸実施形態が実装され得るデータ処理システムのネットワークの図的表現である。
【図２】例示的な諸実施形態が実装され得るデータ処理システムのブロック図を示す。
【図３】例示的な諸実施形態が実装され得る周波数および電圧の制御ループの事例を示す。
【図４】例示的な実施形態による、電流出力情報を用いて周波数および電圧を調整するための改良された構成を示す。
【図５】例示的な実施形態による、電流出力情報を用いて周波数および電圧を調整するための別の改良された構成を示す。
【図６】例示的な実施形態による、デジタル回路の電流引き出しを用いて該回路のパフォーマンスを向上させるプロセスのフローチャートを示す。
【図７】例示的な実施形態による、デジタル回路の電流引き出しを用いて該回路のパフォーマンスを向上させる別のプロセスのフローチャートを示す。
【発明を実施するための形態】
【００１１】
現在、デジタル回路のパフォーマンスは、デジタル回路の周波数を増加させることによって増大されている。例えば、プロセッサの「ターボ」モードは、プロセッサが、約１０パーセント高い周波数で動作することを可能にする。
【００１２】
デジタル回路に供給される電力は、通常、電圧レギュレータまたはこれと同等なデバイスによって管理される。電圧レギュレータは、デジタル回路に印加される電圧を制御する。印加された電圧および他の特定の要素に応じ、デジタル回路中のコンポーネントが、回路が動作する周波数を調整する。例えば、デジタル回路中のクリティカル・パス・モニタ（ＣＰＭ：ｃｒｉｔｉｃａｌ  ｐａｔｈ  ｍｏｎｉｔｏｒ）コンポーネントは、電圧、作業負荷の特質、温度および高度情報などの周囲条件を用いて、デジタル回路を動作させるのに適切な周波数を算定する。作業負荷、周囲条件、電圧、またはこれらの組み合わせが変化すると、その変化に応じ、ＣＰＭ出力に基づくフィードバック回路が、デジタル位相ロック・ループ（ＤＰＬＬ：Ｄｉｇｉｔａｌ  Ｐｈａｓｅ  Ｌｏｃｋ  Ｌｏｏｐ）の周波数を調整する。
【００１３】
現在、デジタル回路に対しては、周波数、電圧、またはこれらの組み合わせに対し、上側および下側閾値が予め設定されている。通常動作モード、または、一部の回路におけるターボ・モードなどのパフォーマンス・ブースト・モードにおいて、電圧および周波数の調整はこれらの閾値内に制限される。
【００１４】
本発明の諸実施形態では、これらの閾値が、回路の動作条件に対する最悪のシナリオを用いて設定されていると認識されている。例えば、あり得る最悪の利用特性を持つ作業負荷が回路上で、回路の設計上の最悪の周囲条件下で実行された場合にあっても、その回路が機能するように、プロセッサの電圧および周波数の閾値が設定されていることがある。
【００１５】
本諸実施形態では、実際の動作ではほとんどのデジタル回路は生じ得る最悪のベンチマーク条件で動作することはないので、かかる用心深すぎる閾値はデジタル回路のパフォーマンスを大きく限定するものである、と認識されている。本諸実施形態では、生じ得る最悪の動作条件に対して閾値が設計されていることを考えると、回路により引き出される総電流は、システム中の過電流のリスクに対し電圧レギュレータの電流出力をモニタする必要もないほど低い閾値に制限されている、とさらに認識されている。過電流とは、デジタル回路によって引き出される電流が、回路の総電流引き出しの閾値を上回る状態である。デジタル回路で過電流状態が発生すると、電圧レギュレータが応答して要求される電圧設定以下に電圧を低下させ、これがデジタル回路のタイミング故障につながり得る。
【００１６】
本諸実施形態では、周波数を１０パーセント増加する典型的な「ターボ」モードを大きく超えて、デジタル回路のパフォーマンスをなお向上させることが可能である、とさらに認識されている。現在使われているいくつかの技法は、チップの熱的状態をモニタし、チップが１０パーセントのターボ・ブーストを超える一時的な加速に短期の間耐えることができるかどうかを判定する。かかる技法は、チップの低レベルの稼働度とそれによる温度低下を利用して、短期の持続時間、１０パーセントを超えて周波数を日和見的に増加させる。チップの温度が閾値に近くなるとすぐに、この加速はターボまたは通常動作レベルに落ちる。
【００１７】
本諸実施形態では、長期の間、回路の周波数を１０パーセントを超えて増加できるスーパー・ターボ・モードの動作が実現可能である、と認識されている。本諸実施形態では、電圧レギュレータの電流出力を電圧出力と同時にモニタすることによって、電圧および周波数調整の「制御ノブ」だけでなく、電流出力「制御ノブ」を用いて関連するデジタル回路のパフォーマンスを向上できる、と認識されている。
【００１８】
本発明を説明するために用いられる例示的な実施形態は、一般に、デジタル回路のパフォーマンス向上に関する前述の問題および他の問題に対処しこれらを解決する。これら例示的な実施形態は、デジタル回路が引き出す電流を管理することによって、デジタル回路のパフォーマンスを向上するための方法、システム、およびコンピュータ・プログラム製品を提供する。
【００１９】
ある実施形態は、デジタル回路に電力を供給している電圧レギュレータの電流出力を測定する。本実施形態は、デジタル回路が通常モードまたはターボ・モードより高い電流値で動作することができ、過電流閾値を上回ることなく、現在利用可能なターボ・モードのパフォーマンス指標を上回るパフォーマンスを実現するように、測定された電流値を用いて電圧閾値、周波数閾値、またはこれらの組み合わせを調整する。
【００２０】
単なる事例として特定のデバイスまたはコンポーネントに関連させて、例示的な諸実施形態を説明する。かかる説明は、例示の実施形態に限定することを意図するものではない。例えば、プロセッサに関連させて説明した例示的な実施形態を、その例示的な実施形態の範囲内で他の任意のデジタル回路を用いて実装することが可能である。
【００２１】
さらに、これら例示的な実施形態は、電圧レギュレータに限らないがこれを含め、任意の種類の電力源に関連させて実装することができる。本発明の実施形態の範囲内で、任意の種類の電力源が、データ処理システムでローカルにもしくはデータ・ネットワークを介して、本発明の実施形態に電流データを提供することが可能である。
【００２２】
単なる事例として特定のアプリケーションに関連させて、例示的な諸実施形態をさらに説明する。かかる説明は、本発明の実施形態を限定することを意図するものではない。本発明の一実施形態は、例えば、所与のアプリケーション、任意の種類のサーバ・アプリケーションのインスタンス、プラットフォーム・アプリケーション、スタンドアローン・アプリケーション、管理アプリケーション、またはこれらの組み合わせなど、任意の種類のアプリケーションに関連させて実装することができる。
【００２３】
ある実施形態の全部または一部を実装するアプリケーションを含め、アプリケーションには、データ・オブジェクト、コード・オブジェクト、カプセル化された命令、アプリケーション・フラグメント、サービス、およびデータ処理環境において利用可能な他の種類のリソースをさらに含めることができる。例えば、本発明の実施形態を実装できるアプリケーションとしては、Ｊａｖａ（Ｒ）オブジェクト、エンタープライズ・ジャバ・ビーンズ（ＥＪＢ：Ｅｎｔｅｒｐｒｉｓｅ  ＪａｖａＢｅａｎｓ）（Ｒ）、サーブレット、またはアプレットを挙げることができる。（ＪａｖａおよびＪａｖａベースの全ての商標およびロゴは、オラクルもしくはその関係会社またはその両方の商標または登録商標である。）
【００２４】
ある例示的な実施形態は、ハードウェア、ソフトウェア、またはこれらの組み合わせ中に実装することができる。ある例示的な実施形態は、物理的または仮想のデータ・ストレージ・デバイスなど、所与のデータ処理システム構成で利用可能な任意の種類のデータ・ストレージ・リソースに対しさらに実装することが可能である。
【００２５】
本開示中の事例は、説明の明確化のためだけに用いるものであり例示の実施形態を限定するものではない。本開示から、さらなるデータ、オペレーション、アクション、タスク、アクティビティ、および操作を考え出すことが可能で、それらは例示的な諸実施形態の範囲内であると見なされる。
【００２６】
これら例示的な実施形態は、単なる例として、特定のコード、設計、アーキテクチャ、レイアウト、図式、およびツールを用いて説明され、それらは例示的な実施形態を限定するものではない。さらに、場合によっては、これら例示的な実施形態は、単に説明の明確化のための例として特定のソフトウェア、ツール、およびデータ処理環境を用いて説明される。これら例示的な実施形態は、他の同等または類似の目的を持つ構造体、システム、アプリケーション、またはアーキテクチャと併せて用いることができる。
【００２７】
本明細書に記載された一切の利点は単なる例であって、これらの例示的な実施形態を限定することは意図されていない。特定の例示的な実施形態によって、追加的または異なった利点を実現することが可能である。さらに、特定の例示的な実施形態は、前述した利点の一部または全部を有することもあるいは全く有さないこともある。
【００２８】
図面を、具体的には図１および２を参照すると、これらの図は、例示的な諸実施形態の実装が可能なデータ処理環境の例の図である。図１および２は、単なる例であって、各種実施形態の実装が可能な環境に関して、いかなる限定を主張することも暗示することも意図していない。特定の一実装では、以下の説明に基づいて、示された環境に多くの変更を加えることが可能である。
【００２９】
図１は、例示的な諸実施形態の実装が可能なデータ処理システムのネットワークの図的表現を示す。データ処理環境１００は、これら例示的な実施形態の実装が可能なコンピュータのネットワークである。データ処理環境１００はネットワーク１０２を含む。ネットワーク１０２は、データ処理環境１００内で一緒に接続されたさまざまなデバイスおよびコンピュータの間に通信リンクを提供するため用いられる媒体である。ネットワーク１０２は、有線、無線通信リンク、または光ファイバ・ケーブルなどの接続体を含み得る。サーバ１０４およびサーバ１０６が、ストレージ・ユニット１０８とともにネットワーク１０２に連結している。データ処理環境１００内のどのコンピュータ上でもソフトウエア・アプリケーションを実行することができる。
【００３０】
さらに、クライアント１１０、１１２、および１１４がネットワーク１０２に連結している。サーバ１０４または１０６、あるいはクライアント１１０、１１２、または１１４などのデータ処理システムは、データを収容し、これらの上で実行されるソフトウエア・アプリケーションまたはソフトウエア・ツールを有することができる。
【００３１】
アプリケーション１０５は、実施形態のロジックまたは計算を実行するため使用可能な、任意の適切なソフトウエア・アプリケーション、ハードウェア回路、またはこれらの組み合わせ、例えばファームウエアなどとすることができる。
【００３２】
サーバ１０４および１０６、ストレージ・ユニット１０８、並びにクライアント１１０、１１２．および１１４は、有線接続、無線通信プロトコル、または他の適切なデータ接続機能を用いて、ネットワーク１０２に連結することが可能である。クライアント１１０、１１２、および１１４は、例えばパーソナル・コンピュータまたはネットワーク・コンピュータとすることができる。
【００３３】
図示の事例において、サーバ１０４は、起動ファイル、オペレーティング・システム・イメージ、およびアプリケーションのようなデータを、クライアント１１０、１１２、および１１４に提供することができる。この例では、クライアント１１０、１１２、および１１４はサーバ１０４に対するクライアントとすればよい。クライアント１１０、１１２、１１４またはこれらの何らかの組み合わせは、それら自体のデータ、起動ファイル、オペレーティング・システム・イメージ、およびアプリケーションを包含することができる。データ処理環境１００には、図示されていないさらなるサーバ、クライアント、および他のデバイスを含めることができる。
【００３４】
図示の事例において、データ処理環境１００はインターネットであり得る。ネットワーク１０２は、相互に通信するために通信制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ：Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）および他のプロトコルを用いる、ネットワークおよびゲートウエイの集合を表し得る。インターネットの中心は、データおよびメッセージを送達する、何千もの民間、政府機関、教育機関、およびその他のコンピュータ・システム群を含む、主要ノード間またはホスト・コンピュータ間のデータ通信リンクの基幹である。当然ながら、データ処理環境１００は、例えば、イントラネット、ローカル・エリア・ネットワーク（ＬＡＮ：ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、または広域ネットワーク（ＷＡＮ：ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）など多くの異なった種類のネットワークとして実装することも可能である。図１は、例として意図されたものであり、各種の例示的な実施形態に対するアーキテクチャ上の限定を意図したものでない。
【００３５】
データ処理環境１００は、他の用途もあるが、特に例示的な諸実施形態を実装することが可能なクライアント−サーバ環境を実装するために用いることができる。クライアント−サーバ環境は、ソフトウエア・アプリケーションおよびデータをネットワークを介して配信し、クライアント・データ処理システムとサーバ・データ処理システムとの間の双方向性を用いてアプリケーションを機能させることを可能にする。また、データ処理環境１００では、サービス指向型アーキテクチャを用いることもでき、ネットワークを介して配信された相互運用が可能なソフトウエア・コンポーネント群を、一貫したビジネス・アプリケーションとして一緒にパッケージすることが可能である。
【００３６】
図２を参照すると、この図は、例示的な諸実施形態の実装が可能なデータ処理システムのブロック図を示している。データ処理システム２００は、図１中のサーバ１０４またはクライアント１１０などのコンピュータの一例であり、その中には、例示的な諸実施形態のために、これら例示的な実施形態のプロセスを実装するコンピュータ可用プログラム・コードまたは命令を配置することができる。
【００３７】
図示の例において、データ処理システム２００は、ノースブリッジ・メモリ・コントローラ・ハブ（ＮＢ／ＭＣＨ：ｎｏｒｔｈｂｒｉｄｇｅ／ｍｅｍｏｒｙ  ｃｏｎｔｒｏｌｌｅｒ  ｈｕｂ）２０２と、サウスブリッジ入力／出力（Ｉ／Ｏ：ｉｎｐｕｔ／ｏｕｔｐｕｔ）コントローラ・ハブ（ＳＢ／ＩＣＨ：ｓｏｕｔｈｂｒｉｄｇｅ／Ｉ／Ｏ  ｃｏｎｔｒｏｌｌｅｒ  ｈｕｂ）２０４とを含む、ハブ・アーキテクチャを用いている。プロセシング・ユニット２０６、主メモリ２０８、およびグラフィックス・プロセッサ２１０が、ノースブリッジ・メモリ・コントローラ・ハブ（ＮＢ／ＭＣＨ）２０２に連結されている。プロセシング・ユニット２０６は、一つ以上のプロセッサを包含することができ、一つ以上の異種プロセッサ・システムを用いて実装され得る。特定の諸実装において、グラフィックス・プロセッサ２１０は、アクセラレーテッド・グラフィックス・ポート（ＡＧＰ：ａｃｃｅｌｅｒａｔｅｄ  ｇｒａｐｈｉｃｓ  ｐｏｒｔ）を介してＮＢ／ＭＣＨに連結することができる。
【００３８】
図示の例において、ローカル・エリア・ネットワーク（ＬＡＮ）アダプタ２１２が、サウスブリッジＩ／Ｏコントローラ・ハブ（ＳＢ／ＩＣＨ）２０４に連結されている。オーディオ・アダプタ２１６、キーボードおよびマウス・アダプタ２２０、モデム２２２、読み取り専用メモリ（ＲＯＭ：ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）２２４、ユニバーサル・シリアル・バス（ＵＳＢ：ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ）および他のポート２３２、並びにＰＣＩ／ＰＣＩｅデバイス２３４が、バス２３８を介してサウスブリッジＩ／Ｏコントローラ・ハブ２０４に連結されている。ハード・ディスク・ドライブ（ＨＤＤ：ｈａｒｄ  ｄｉｓｋ  ｄｒｉｖｅ）２２６およびＣＤ−ＲＯＭ２３０が、バス２４０を介してサウスブリッジＩ／Ｏコントローラ・ハブ２０４に連結されている。ＰＣＩ／ＰＣＩｅデバイスには、例えば、イーサネット（Ｒ）アダプタ、アドイン・カード、およびノート型コンピュータのためのＰＣカードを含めることが可能である。ＰＣＩはカード・バス・コントローラを用いるが、ＰＣＩｅは用いない。ＲＯＭ２２４は、例えば、フラッシュ・バイナリ入力／出力システム（ＢＩＯＳ：ｂｉｎａｒｙ  ｉｎｐｕｔ／ｏｕｔｐｕｔ  ｓｙｓｔｅｍ）とすることができる。ハード・ディスク・ドライブ２２６およびＣＤ−ＲＯＭ２３０には、例えば、インテグレーテッド・ドライブ・エレクトロニクス（ＩＤＥ：ｉｎｔｅｇｒａｔｅｄ  ｄｒｉｖｅ  ｅｌｅｃｔｒｏｎｉｃｓ）またはシリアル・アドバンスト・テクノロジー・アタッチメント（ＳＡＴＡ：ｓｅｒｉａｌ  ａｄｖａｎｃｅｄ  ｔｅｃｈｎｏｌｏｇｙ  ａｔｔａｃｈｍｅｎｔ）インターフェースを用いることが可能である。スーパーＩ／Ｏ（ＳＩＯ：ｓｕｐｅｒ  Ｉ／Ｏ）デバイス２３６を、サウスブリッジＩ／Ｏコントローラ・ハブ（ＳＢ／ＩＣＨ）２０４に連結することができる。
【００３９】
オペレーティング・システムがプロセシング・ユニット２０６上で実行される。オペレーティング・システムは、図２中のデータ処理システム２００内のさまざまなコンポーネントを調整しそれらの制御を提供する。オペレーティング・システムは、Ｍｉｃｒｏｓｏｆｔ（Ｒ）のＷｉｎｄｏｗｓ（Ｒ）（ＭｉｃｒｏｓｏｆｔおよびＷｉｎｄｏｗｓは、米国、他の国またはその双方におけるＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎの商標である）またはＬｉｎｕｘ（Ｒ）（Ｌｉｎｕｘは、米国、他の国またはその双方におけるＬｉｎｕｓ  Ｔｏｒｖａｌｄｓの商標である）など、市販のオペレーティング・システムとすることができる。Ｊａｖａ（Ｒ）プログラミング・システムなどのオブジェクト指向プログラミング・システムをオペレーティング・システムとともに実行し、データ処理システム２００上で実行されているＪａｖａ（Ｒ）プログラムまたはアプリケーションからオペレーティング・システムに呼び出しを提供することが可能である（Ｊａｖａおよび全てのＪａｖａベースの商標およびロゴは、Ｏｒａｃｌｅもしくはその関係会社またはその双方の商標または登録商標である）。
【００４０】
オペレーティング・システム、オブジェクト指向プログラミング・システム、例示的な諸実施形態のプロセス、およびアプリケーションまたはプログラムのためのプログラム命令は、ハード・ディスク・ドライブ２２６などのストレージ・デバイスに配置し、プロセシング・ユニット２０６による実行のため、例えば、主メモリ２０８、読み取り専用メモリ２２４、または一つ以上の周辺デバイスなどのメモリにロードすることができる。また、プログラム命令は、不揮発性メモリ中に恒久的に格納し、そこからロードしたりもしくはそこで実行することも可能である。例えば、ある実施形態による合成プログラムを不揮発性メモリに格納し、そこからＤＲＡＭ中にロードすることができる。
【００４１】
図１〜図２のハードウェアは、実装の如何によって変わり得る。図１〜２中に示されたハードウェアに加えまたはそれに代えて、フラッシュ・メモリ、同等な不揮発性メモリ、または光ディスク・ドライブおよび同類のものなど、他の内部ハードウェアまたは周辺デバイスを用いることができる。さらに、例示的な諸実施形態のプロセスは、マルチプロセッサ・データ処理システムに適用することが可能である。
【００４２】
いくつかの例示の事例において、データ処理システム２００は、携帯情報端末（ＰＤＡ：ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ）とすることができ、これは、通常、オペレーティング・システム・ファイルもしくはユーザ生成のデータまたはその両方を格納する不揮発性メモリを提供するためのフラッシュ・メモリを用いて構成される。バス・システムには、システム・バス、Ｉ／Ｏバス、およびＰＣＩバスなど、一つ以上のバスを含めることができる。当然ながら、このバス・システムは、任意の種類の通信ファブリックまたはアーキテクチャに接続された各種のコンポーネントまたはデバイスの間のデータの移動を提供する、当該ファブリックまたはアーキテクチャを用いて実装することが可能である。
【００４３】
通信ユニットには、モデムまたはネットワーク・アダプタなど、データを送受信するために使われる一つ以上のデバイスを含めることができる。メモリは、例えば、主メモリ２０８、または、ノースブリッジ・メモリ・コントローラ・ハブ２０２中に含まれたキャッシュなどのキャッシュであり得る。プロセシング・ユニットには、一つ以上のプロセッサまたはＣＰＵを含めることができる。
【００４４】
図１〜図２に示された例および前述の例は、アーキテクチャ上の限定を暗示するものではない。例えば、データ処理システム２００は、ＰＤＡの形態をとるのに加えて、タブレット・コンピュータ、ラップ・トップ・コンピュータ、また電話デバイスとすることもできる。
【００４５】
図３を参照すると、この図は、例示的な実施形態が実装され得る周波数および電圧制御ループについての例を示している。マイクロコントローラ３０２、電圧レギュレータ３０４、およびデジタル回路３０６は、図１のサーバ１０４など一つのデータ処理システム中に配置された、あるいは複数のデータ処理システムを介して配信された、コンポーネントとすることができる。
【００４６】
マイクロコントローラ３０２は、電圧レギュレータ３０４の電流出力の電圧を調整するための制御ループを含む。電圧レギュレータ３０４は、安定かつ選択された電圧で電流を供給する役割を有する。デジタル回路３０６は、デジタル回路３０６の動作周波数を調整するための制御ループを含む。デジタル回路３０６中の制御ループはＣＰＭ３０８およびＤＰＬＬ３１０を含む。ＣＰＭ３０８およびＤＰＬＬ３１０は、所与の供給電圧、所与の実行中のまたは予定された作業負荷３１２、および、周囲温度、高度、製造ばらつき、または摩耗などの所与の周囲条件３１４に対し、デジタル回路３０６がその動作周波数を調整することを可能にするフィードバック・ループの中に構成される。
【００４７】
一般に、デジタル回路３０６中の制御ループは、所与の条件の下でデジタル回路３０６が動作可能な最高の安全周波数を連続して設定する。この制御ループは、通常、所与の条件の変化に対し、その所与の条件の変化の検出から数ナノ秒以内に、周波数を変化させて応答する。デジタル回路３０６中にかかる制御ループが無ければ、マイクロコントローラ３０２によって電圧が変更されたときに回路の実際の周波数は調整されることがなくなり、マイクロコントローラによってなされた供給電圧の変更が、デジタル回路にタイミング故障を生じさせることになる。
【００４８】
マイクロコントローラ３０２中の制御ループは、測定されたデジタル回路３０６の平均パフォーマンスを、望ましいデジタル回路３０６のパフォーマンスと比較する。この制御ループは、周波数が閾値を上回ったとき電圧を低下させ、周波数が閾値を下回ったときは電圧を増昇させる。
【００４９】
マイクロコントローラ３０２中の制御ループは、デジタル回路３０６から実周波数３１６を受信する。実周波数は測定された周波数であり、デジタル回路３０６は所与の時間にその周波数で動作していてよい。マイクロコントローラ３０２中の制御ループは、さらにターゲット周波数３１８を受信する。ターゲット周波数３１８は、ターボ・ブーストのための周波数など、デジタル回路３０６を動作するために望ましくあり得る周波数である。
【００５０】
マイクロコントローラ３０２中の制御ループは、電圧レギュレータ３０４の電圧出力の調整を計算するためのロジック３２０を含む。ロジック３２０は、電圧レギュレータ３０４に命令し、電圧出力を、その時点で使われている実周波数値と望ましいターゲット周波数値とに基づいて計算された値に調整させる。
【００５１】
この図に示すように、デジタル回路３０６のパフォーマンスは、２つの制御、すなわち周波数制御と電圧制御とによって制御される。先に述べたように、周波数変動および電圧変動の閾値は、電圧レギュレータ３０４の電流出力が過電流閾値を決して上回らないように設定される。
【００５２】
ある実施形態は、以下に説明するように、この二重制御ループ構成を、電圧レギュレータ３０４の電流出力を要素として加えるように改造する。ある実施形態の改造された構成には、デジタル回路３０６の周波数範囲を、ターボ・モードの上側および下側閾値を超えて、より高い上側閾値、より低い下側閾値、またはこれらの組み合わせに調整するための第三の制御ループが加えられる。ある実施形態は、例えば、現在利用できるデジタル回路および同じ電圧レギュレータを、電圧レギュレータ３０４の電流出力の測定値を用いて、従来技術の上側閾値周波数より高い周波数で動作させ、そのより高い周波数から減速させることを可能にする。
【００５３】
図４を参照すると、この図は、ある例示的な実施形態による、電流出力情報を用いて周波数および電圧を調整するための改良型構成を示している。アーチファクト４０２〜４２０は、それぞれ、図３中のアーチファクト３０２〜３２０に対応し、同様に実装されている。
【００５４】
マイクロコントローラ４０２は、電圧レギュレータ４０４からの実際の電圧レギュレータ・モジュール（ＶＲＭ：ｖｏｌｔａｇｅ  ｒｅｇｕｌａｔｏｒ  ｍｏｄｕｌｅ）電流値４２２を受信するように改造されている。また、マイクロコントローラ４０２は、過電流ターゲット電流４２４の値も受信する。
【００５５】
なお、過電流ターゲット電流４２４は、過電流ターゲット電流４２４が、デジタル回路４０６の動作状態によって設定が可能または変更が可能であるという点で、「軟ターゲット」値である。この点で、過電流ターゲット電流４２４は、電圧および周波数に対する閾値を設定する際に、従来技術では必然的に設定される過電流値とは異なる。図示のように、過電流ターゲット電流４２４は、電圧または周波数のいかなる閾値とも関係なく設定または提供することができる。
【００５６】
マイクロコントローラ４０２は、最大電圧閾値を調整するためのロジック４２６をさらに含む。動作において、ロジック４２６は、実際のＶＲＭ電流測定値４２２および過電流ターゲット電流４２４を用い、デジタル回路４０６に供給すべき電圧に対する、望ましい上側（最大）閾値を計算する。電圧に対する望ましい上側閾値は、デジタル回路４０６の動作の間に、このようなやり方でおそらく何度も変更されることになる。
【００５７】
例えば、ある時点で、ロジック４２６が、実際のＶＲＭ電流測定値４２２が過電流ターゲット電流よりも大きいと判定した場合、ロジック４２６は、電圧に対する上側閾値を電圧レギュレータ４０４の電圧値よりも低く設定することができる。ロジック４２８は、ロジック４２０およびロジック４２６からの調整電圧のうち、より低い（最小の）方を選択し、それに沿って、電圧レギュレータ４０４にデジタル回路４０６に供給する電圧を調整するよう命令する。
【００５８】
逆に、実際のＶＲＭ電流測定値４２２が、過電流ターゲット電流４２４よりも低い場合、ロジック４２６は、電圧に対する上側閾値を増昇させることができる。次いで、ロジック４２８が、ロジック４２６からの増昇された上側閾値電圧およびロジック４２０からの調整された電圧のうち、より低い方を選択し、それに沿って電圧レギュレータ４０４に命令することができる。
【００５９】
このように動作し、従来技術の二重制御ループ構成に対する本改良には、デジタル回路４０６によって引き出される電流に基づく第三制御ループが加えられる。前述のように、ロジック４２８は、２つの電圧調整値のより低い方を選択することによって過電流状態を防止する。さらに、第三制御ループは、デジタル回路４０６中の高速応答の周波数制御ループに依存するので、大きな電流変化および結果として生じる電流スパイクも回避され、一時的過電流状態が避けられる。
【００６０】
図５を参照すると、この図は、ある例示的な実施形態による、電流出力情報を用いて周波数および電圧を調整するための別の改良型構成を示している。アーチファクト５０２〜５２０は、それぞれ、図４中のアーチファクト４０２〜４２０に対応し、同様に実装されている。
【００６１】
マイクロコントローラ５０２は、電圧レギュレータ５０４からの実際のＶＲＭ電流測定値５２２を受信するように改造されている。また、マイクロコントローラ５０２は、過電流ターゲット電流５２４の値も受信する。図４と同様に、過電流ターゲット電流５２４は、「軟ターゲット」値であり、デジタル回路５０６の動作条件に応じて設定可能または変更可能である。
【００６２】
マイクロコントローラ５０２は、最大周波数閾値を調整するためのロジック５２６をさらに含む。動作において、ロジック５２６は、実際のＶＲＭ電流測定値５２２および過電流ターゲット電流５２４を用い、デジタル回路５０６が動作すべき周波数に対する、望ましい上側（最大）閾値を計算する。周波数に対する望ましい上側閾値は、デジタル回路５０６の動作の間に、このようなやり方でおそらく何度も変更されることになる。
【００６３】
例えば、ある時点で、ロジック５２６が、実際のＶＲＭ電流測定値５２２が過電流ターゲット電流よりも大きいと判定した場合、ロジック５２６は、周波数に対する上側閾値を、ＤＰＬＬ５１０によって測定された実周波数５１６よりも低く設定することができる。逆に、実際のＶＲＭ電流測定値５２２が、過電流ターゲット電流５２４よりも低い場合、ロジック５２６は、周波数に対する上側閾値を増昇させ、デジタル回路がより高い周波数で動作できるようにしてもよい。
【００６４】
ロジック５２８は、ロジック５２６からの調整された最大周波数（計算された上側周波数閾値）およびターゲット周波数５１８のうち、より低い（最小の）方を選択する。ロジック５２０は、ロジック５２８からの周波数および実周波数５１６の、２つの周波数値のうち、より低い方を用い、デジタル回路５０６に供給される電圧の調整を算定する。ロジック５２０は、それに沿って、電圧レギュレータ５０４にデジタル回路５０６に供給する電圧を調整するよう命令する。
【００６５】
このように動作し、従来技術の二重制御ループ構成に対する本改良には、デジタル回路５０６によって引き出される電流に基づく第三制御ループの別のバリエーションが加えられる。前述のように、ロジック５２８は、２つの周波数上側閾値のより低い方を選択することによって過電流状態を防止する。さらに、図４と同様に、第三制御ループの本バリエーションは、デジタル回路５０６中の高速応答の周波数制御ループに依存するので、大きな電流変化および結果として生じる電流スパイクも回避され、一時的過電流状態が避けられる。
【００６６】
図６を参照すると、この図は、ある例示的な実施形態による、電子回路の電流引き出しを用いて該回路のパフォーマンスを向上するプロセスのフローチャートを示している。プロセス６００は、図４中のマイクロコントローラ４０２など、改造されたマイクロコントローラ中に実装することができる。
【００６７】
プロセス６００は、デジタル回路の電圧レギュレータの電流出力の測定値を受信することによって開始される（ステップ６０２）。プロセス６００は、電流出力が過電流ターゲット電流を上回っているかどうかを判定する（ステップ６０４）。
【００６８】
電流出力が過電流ターゲット電流を上回っている場合（ステップ６０４の「はい」経路）、プロセス６００は、デジタル回路に対する最大（上側）電圧閾値の低減分を計算する（ステップ６０６）。プロセス６００は、デジタル回路のターゲット周波数と現在周波数との間の差に基づいて電圧調整を計算する（ステップ６０８）。
【００６９】
プロセス６００は、低減された最大電圧閾値およびステップ６０８の電圧調整のうち、より低い方を使って、デジタル回路に供給される電圧を調整する（ステップ６１０）。その後、プロセス６００は、終了するかあるいはさらなる繰り返しのためステップ６０２に戻ることができる。
【００７０】
電流出力が過電流ターゲット電流を上回っていない場合（ステップ６０４の「いいえ」経路）、プロセス６００は、デジタル回路に対する最大（上側）電圧閾値の増昇分を計算する（ステップ６１２）。プロセス６００は、デジタル回路のターゲット周波数と現在周波数との間の差に基づいて、電圧調整を計算する（ステップ６１４）。
【００７１】
プロセス６００は、増大された最大電圧閾値およびステップ６１４の電圧調整のうち、より低い方を使って、デジタル回路に供給される電圧を調整する（ステップ６１６）。その後、プロセス６００は、終了するかあるいはさらなる繰り返しのためステップ６０２に戻ることができる。
【００７２】
図７を参照すると、この図は、ある例示的な実施形態による、デジタル回路の電流引き出しを用いて該回路のパフォーマンスを向上する別のプロセスのフローチャートを示している。プロセス７００は、図５中のマイクロコントローラ５０２など、改造されたマイクロコントローラ中に実装することができる。
【００７３】
プロセス７００は、デジタル回路の電圧レギュレータの電流出力の測定値を受信することによって開始される（ステップ７０２）。プロセス７００は、電流出力が過電流ターゲット電流を上回っているかどうかを判定する（ステップ７０４）。
【００７４】
電流出力が過電流ターゲット電流を上回っている場合（ステップ７０４の「はい」経路）、プロセス７００は、デジタル回路に対する最大（上側）周波数閾値の低減分を計算する（ステップ７０６）。プロセス７００は、低減された最大周波数およびデジタル回路に対するターゲット周波数のうち、より低い方を選択する（ステップ７０８）。
【００７５】
プロセス７００は、ステップ７０８の選択およびデジタル回路の動作の実周波数を用いて、デジタル回路に供給される電圧を調整する（ステップ７１０）。その後、プロセス７００は、終了するかあるいはさらなる繰り返しのためステップ７０２に戻ることができる。
【００７６】
電流出力が過電流ターゲット電流を上回っていない場合（ステップ７０４の「いいえ」経路）、プロセス７００は、デジタル回路に対する最大（上側）周波数閾値の増昇分を計算する（ステップ７１２）。プロセス７００は、増大された最大周波数およびデジタル回路に対するターゲット周波数のうち、より低い方を選択する（ステップ７１４）。
【００７７】
プロセス７００は、ステップ７１４の選択およびデジタル回路の動作の実周波数を使って、デジタル回路に供給される電圧を調整する（ステップ７１６）。その後、プロセス７００は、終了するかあるいはさらなる繰り返しのためステップ７０２に戻ることができる。
【００７８】
図面中のフローチャートおよびブロック図は、本発明のさまざまな実施形態による、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、およびオペレーションを例示している。この点に関し、フローチャートまたはブロック図中の各ブロックは、規定の論理機能（群）を実装するための一つ以上の実行可能命令を含む、コードのモジュール、セグメント、または部分を表し得る。また、一部の別の実装においては、ブロック中に記載された機能が、図面に記載された順序を外れて行われ得ることに留意すべきである。例えば、連続して示された２つのブロックが、関与する機能によって実際にはほぼ同時に実行されることも、時にはこれらのブロックが逆の順序で実行されることもあり得る。さらに、ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方中のブロック群の組み合わせは、特定の機能または動作を実施する、特殊用途ハードウェア・ベースのシステム、または特殊用途ハードウェアとコンピュータ命令との組み合わせによって実装可能なことにも留意すべきである。
【００７９】
上に述べたように、デジタル回路の動作電圧および周波数と、それらの各閾値とに加え、電流引き出し情報を用いて、デジタル回路のパフォーマンスを向上するための例示的な実施形態において、コンピュータ実装の方法、システム、およびコンピュータ・プログラム製品が提供される。本発明の実施形態を用い、デジタル回路によって引き出される電流に関する情報が動作周波数と組み合わされ、電圧、周波数、またはその両方の上側閾値が調整される。例えば、図４および５は、第三の電流ベース制御ループの２つのバリエーションを示しているが、ある実装は、これら２つのバリエーションを組み合わせ、電圧閾値および周波数閾値の両方と共に電流引き出しを要素として加えた、第三制御ループを生成する。
【００８０】
従来技術と違って、過電流ターゲット電流は軟ターゲットとして設定でき、デジタル回路の動作条件の変化に従って変更することができる。ある実施形態は、フレキシブル（軟）過電流ターゲット電流を用いていても、高速動作の周波数調整フィードバック・ループを利用することによって、過電流状態を防止する。
【００８１】
当業者には当然のことながら、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として具現化することができる。従って、本発明の態様は、全体がハードウェアの実施形態、全体がソフトウェアの実施形態（ファームウエア、常駐ソフトウェア、マイクロコードなどを含む）、あるいは、一般に本明細書では全て「回路」、「モジュール」、または「システム」といわれることもある、ソフトウェアおよびハードウェア態様を組み合わせた実施形態の形を取ることができる。さらに、本発明の態様は、一つ以上のコンピュータ可読ストレージ・デバイス（群）または媒体上に具体化されたコンピュータ可読プログラム・コードを有するコンピュータ可読媒体、の中に具現化されたコンピュータ・プログラム製品の形を取ることもできる。
【００８２】
一つ以上のコンピュータ可読ストレージ・デバイス（群）またはコンピュータ可読媒体の任意の組み合わせを用いることが可能である。コンピュータ可読ストレージ媒体は、コンピュータ可読信号媒体、またはコンピュータ可読ストレージ媒体とすることができる。コンピュータ可読ストレージ・デバイスは、例えば、以下に限らないが、電子的、磁気的、光学的、電磁気的、赤外的、または半導体の、システム、装置、もしくはデバイス、あるいはこれらの任意の適切な組み合わせとすることができる。コンピュータ可読ストレージ・デバイスのさらに具体的な例（非包括的リスト）には、一つ以上の配線を有する電気接続、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、読み取り専用メモリ（ＲＯＭ：ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、消去可能プログラム可能読み取り専用メモリ（ＥＰＲＯＭ：ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙまたはフラッシュ・メモリ）、光ファイバ、携帯型コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ：ｃｏｍｐａｃｔ  ｄｉｓｃ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、光ストレージ・デバイス、磁気ストレージ・デバイス、または前述の任意の適切な組み合わせが含まれよう。本文書の文脈において、コンピュータ可読ストレージ・デバイスは、命令実行システム、装置、またはデバイスによってあるいはこれらに関連させて使用するためのプログラムを、包含または格納できる任意の有形デバイスまたは媒体とすることができる。
【００８３】
コンピュータ可読ストレージ・デバイスまたはコンピュータ可読媒体上に具現化されたプログラム・コードは、以下に限らないが、無線、有線、光ファイバ・ケーブル、ＲＦなど、または前述の任意の適した組み合わせを含め、任意の適切な媒体を用いて送信することができる。
【００８４】
本発明の態様のオペレーションを実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および、“Ｃ”プログラミング言語または類似のプログラミング言語などの従来式手続き型プログラミング言語を含め、一つ以上のプログラミング言語の任意の組み合わせで記述することができる。このプログラム・コードは、スタンドアロン・ソフトウェア・パッケージとしてユーザのコンピュータで専ら実行することも、ユーザのコンピュータで部分的に実行することもでき、一部をユーザのコンピュータで一部を遠隔コンピュータで実行することもでき、あるいは遠隔のコンピュータまたはサーバで専ら実行することもできる。後者の場合は、ローカル・エリア・ネットワーク（ＬＡＮ）または広域ネットワーク（ＷＡＮ）を含む任意の種類のネットワークを介して、遠隔コンピュータをユーザのコンピュータに接続することもでき、あるいは（例えばインターネット・サービス・プロバイダを使いインターネットを介し）外部のコンピュータへの接続を行うこともできる。
【００８５】
本発明の実施形態による方法、装置（システム）およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照しながら、本発明の態様を本明細書で説明している。当然のことながら、フローチャート図もしくはブロック図またはその両方の各ブロック、および、フローチャート図もしくはブロック図またはその両方中のブロックの組み合わせは、コンピュータ・プログラム命令によって実装することが可能である。これらのコンピュータ・プログラム命令を、一つ以上の汎用コンピュータ、特殊用途コンピュータ、またはマシンを形成する他のプログラム可能データ処理装置の一つ以上のプロセッサに供給し、それらコンピュータまたは他のプログラム可能データ処理装置の一つ以上のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に規定された機能群／動作群を実装するための手段を生成するようにすることができる。
【００８６】
また、これらのコンピュータ・プログラム命令を、一つ以上のコンピュータ、一つ以上の他のプログラム可能データ処理装置、または一つ以上の他のデバイスに対し特定の仕方で機能するよう命令できる、一つ以上のコンピュータ可読ストレージ・デバイスまたはコンピュータ可読媒体に格納し、それら一つ以上のコンピュータ可読ストレージ・デバイスまたはコンピュータ可読媒体に格納された命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に規定された機能／動作を実装する命令群を包含する製造品を生成するようにすることができる。
【００８７】
さらに、コンピュータ・プログラム命令を、一つ以上のコンピュータ、一つ以上の他のプログラム可能データ処理装置、または一つ以上の他のデバイスにロードし、これら一つ以上のコンピュータ上、一つ以上の他のプログラム可能データ処理装置上、または一つ以上の他のデバイス上で一連のオペレーション・ステップを実行させて、コンピュータ実装のプロセスを生成し、これら一つ以上のコンピュータ上、一つ以上の他のプログラム可能データ処理装置上、または一つ以上の他のデバイスで実行される命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に規定された機能群／動作群を実装するためのプロセスを提供するようにすることも可能である。
【００８８】
本明細書で使用する用語は、単に特定の実施形態を説明する目的のためのものであり、本発明を限定することは意図されていない。本明細書で用いられる、単数形「ある（“ａ”、“ａｎ”）」、および「該（“ｔｈｅ”）」は、文脈上明確に別途に示されていなければ、複数形も同じように含むことが意図されている。さらに、当然のことながら本明細書で用いられる「含む（“ｃｏｍｐｒｉｓｅ”）」もしくは「含んでいる（“ｃｏｍｐｒｉｓｉｎｇ”）」またはその両方は、述べられた機能、整数、ステップ、オペレーション、エレメント、もしくはコンポーネント、またはこれらの組み合わせの存在を特定するが、一つ以上の他の機能、整数、ステップ、オペレーション、エレメント、コンポーネント、もしくはこれらの群、または上記の組み合わせの存在または追加を排除するものではない。
【００８９】
添付の特許請求の範囲のミーンズ・プラス・ファンクションまたはステップ・プラス・ファンクションの要素全ての、対応する構造、材料、動作および均等物は、具体的に請求された他の請求要素と組み合わせてその機能を実行するための、一切の構造、材料または動作を包含することが意図されている。本発明の記述は、例示および説明の目的で提示されたもので、網羅的であることも、または本発明を開示した形態に限定することも意図されていない。当業者には、本発明の範囲から逸脱することのない多くの修改および変形が明白であろう。本実施形態は、本発明の原理および実際的な応用を最善に説明し、他の当業者が、意図する特定の用途に適したさまざまな修改を加えたさまざまな実施形態に関して、本発明を理解できるように選択し説明されたものである。
【図１】
2014529777.tif 000003
【図２】
2014529777.tif 000004
【図３】
2014529777.tif 000005
【図４】
2014529777.tif 000006
【図５】
2014529777.tif 000007
【図６】
2014529777.tif 000008
【図７】
2014529777.tif 000009
【国際調査報告】
2014529777.tif 000010
2014529777.tif 000011