(57)【要約】【課題】プロセッサ・コアにおける電圧ドループ低減または軽減あるいはその両方を容易にする技術を提供する。【解決手段】１つの例において、システムは、コンピュータ実行可能コンポーネントを格納するメモリ、およびコンピュータ実行可能コンポーネントを実行するプロセッサを備えることができる。コンピュータ実行可能コンポーネントは、プロセッサ・パイプラインの第１のステージにおける１つまたは複数のイベントを検出する監視コンポーネントを備えることができる。１つまたは複数のイベントの１つのイベントは、プロセッサ・パイプラインの第２のステージの中で消費される電力レベルを増加させることを決定された定義済イベントであり得る。コンピュータ実行可能コンポーネントは、プロセッサ・パイプラインの第２のステージの中で消費される電力レベルの増加の前に、電圧ドループ軽減対策を適用する命令コンポーネント、および電圧ドループ軽減対策の結果について成功または失敗を示す通知を命令コンポーネントに行うフィードバック・コンポーネントも備えることもできる。【選択図】図１
2020537236.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ実行可能コンポーネントを格納するメモリと、
前記メモリに格納された前記コンピュータ実行可能コンポーネントを実行するプロセッサと
を備え、前記コンピュータ実行可能コンポーネントは、
プロセッサ・パイプラインの第１のステージにおける１つまたは複数のイベントを検出する監視コンポーネントであって、前記１つまたは複数のイベントの１つのイベントが、前記プロセッサ・パイプラインの第２のステージの中で消費される電力レベルを増加させることを決定された定義済イベントである、前記監視コンポーネント、
前記イベントが前記定義済イベントであることに基づいて、前記プロセッサ・パイプラインの前記第２のステージの中で消費される前記電力レベルの前記増加の前に、電圧ドループ軽減対策を適用する命令コンポーネント、および
前記命令コンポーネントへの通知を行うフィードバック・コンポーネントであって、前記通知が、前記命令コンポーネントによって適用された前記電圧ドループ軽減対策の結果について成功または失敗を示す、前記フィードバック・コンポーネント
を含む、システム。
【請求項２】
前記命令コンポーネントは、活動レベルが、前記第２のステージにおいて、定義された活動レベルを満たし、リモート・ノイズ・レベルが、前記第２のステージにおいて、定義されたリモート・ノイズ・レベルを満たすという判定に基づいて、前記電圧ドループ軽減対策としてスロットル指示を生成する、請求項１に記載のシステム。
【請求項３】
前記監視コンポーネントは、前記定義された活動レベルを前記活動レベルが満たし続けると判定し、
前記システムは、ローカル・ノイズ・レベルを測定する測定コンポーネントをさらに備え、
前記命令コンポーネントは、前記ローカル・ノイズ・レベルが定義されたローカル・ノイズ・レベルの量を上回るという判定に基づいて、前記スロットル指示を生成し続け、
前記命令コンポーネントは、前記ローカル・ノイズ・レベルが前記定義されたローカル・ノイズ・レベルの量を下回るという判定に基づいて、前記スロットル指示において示されたスロットル・レベルを低減させる、
請求項２に記載のシステム。
【請求項４】
ローカル・ノイズ・レベルを測定するローカル・ノイズ・インジケータと、
リモート・ノイズ・レベルを測定するリモート・ノイズ・インジケータと、
前記ローカル・ノイズ・レベルと前記リモート・ノイズ・レベルの組合せに基づいて、全体ノイズ・スコアを計算するノイズ・レベル判定コンポーネントと
をさらに含み、
前記命令コンポーネントは、前記全体ノイズ・スコアによって定義されたスロットル値に基づいてスロットル・レベルを決定する、
請求項１に記載のシステム。
【請求項５】
前記第２のステージにおける電圧ドループ・イベントの発生を判定する検出コンポーネントと、
前記１つまたは複数のイベントの前記イベントが前記定義済イベントであり、前記第２のステージにおける前記電圧ドループ・イベントの前記発生であるという前記判定に関する情報を、履歴診断情報として保持する追跡コンポーネントと
をさらに備える、請求項１に記載のシステム。
【請求項６】
１つまたは複数のノイズ・インジケータをさらに含み、
前記１つまたは複数のノイズ・インジケータの個々の出力に適用された個々の重みに基づいてトータル値を決定するスコアリング・コンポーネントを前記システムは備え、
前記命令コンポーネントは、前記トータル値に基づいてスロットル・レベルを適用する、
請求項１に記載のシステム。
【請求項７】
前記命令コンポーネントによって適用された前記電圧ドループ軽減対策が、前記プロセッサの処理効率を高める、請求項１に記載のシステム。
【請求項８】
コンピュータ実行方法であって、
プロセッサ・パイプラインの第１のステージにおいて発生している定義済イベントの検出に基づいて、電圧ドループ・イベントをプロセッサ・コアによって予測することであって、前記定義済イベントが、前記プロセッサ・パイプラインの第２のステージの中で電力消費量を増加させることを決定されたイベントである、前記予測することと、
前記予測に基づいて電圧ドループ軽減対策を前記プロセッサ・コアによって適用することであって、前記第２のステージが、前記第１のステージの後、定義数のサイクルを発生させ、前記電圧ドループ軽減対策を前記適用することが、前記第２のステージの中で前記電力消費量の前記増加の前に行われる、前記適用することと
を含む、コンピュータ実行方法。
【請求項９】
前記電圧ドループ軽減対策を前記適用することは、活動レベルが、前記第２のステージにおいて、定義された活動レベルを満たし、リモート・ノイズ・レベルが、前記第２のステージにおいて、定義されたリモート・ノイズ・レベルを満たすという判定に基づいて、スロットル信号を前記プロセッサ・コアによって生成することを含む、請求項８に記載のコンピュータ実行方法。
【請求項１０】
ローカル・ノイズ・レベルを前記プロセッサ・コアによって測定することと、
前記ローカル・ノイズ・レベルが定義済ノイズ・レベルを上回るという判定に基づいて、前記スロットル信号の中で示されたスロットル・レベルを前記プロセッサ・コアによって維持すること、または
前記ローカル・ノイズ・レベルが前記定義済ノイズ・レベルを下回るという判定に基づいて、前記スロットル信号の中で示された前記スロットル・レベルを前記プロセッサ・コアによって低減すること
のうちの少なくとも１つを行うことと
をさらに含む、請求項９に記載のコンピュータ実行方法。
【請求項１１】
前記電圧ドループ軽減対策を前記適用することは、
ローカル・ノイズ・インジケータからの第１のノイズ・スコアおよびリモート・ノイズ・インジケータからの第２のノイズ・スコアを前記プロセッサ・コアによって受信することであって、負のスコアはノイズ無しが検出されたことを示し、正のスコアはノイズが検出されたことを示す、前記受信することと、
前記第１のノイズ・スコアと前記第２のノイズ・スコアの組合せに基づいて、全体ノイズ・スコアを前記プロセッサ・コアによって決定することと、
前記全体ノイズ・スコアと定義済スロットル・レベルとの間の相関性に基づいて、スロットル・レベルを前記プロセッサ・コアによって計算することと
を含む、請求項８に記載のコンピュータ実行方法。
【請求項１２】
前記プロセッサ・パイプラインの前記第２のステージの中で前記電力消費量が増加しなかったという判定に基づいて、前記電圧ドループ軽減対策を前記プロセッサ・コアによって終わらせること
をさらに含む、請求項８に記載のコンピュータ実行方法。
【請求項１３】
オフライン診断モード中に、前記電圧ドループ軽減対策を前記適用することは、
前記電圧ドループ・イベントの予測の指示を前記プロセッサ・コアによって記録することと、
前記電圧ドループ・イベントが発生したかどうかを前記プロセッサ・コアによって判定することであって、スロットル信号が、オフライン診断モード中に生成されなかった、前記判定することと、
前記判定の前記指示および結果を履歴診断情報として前記プロセッサ・コアによって保持することと
を含む、請求項８に記載のコンピュータ実行方法。
【請求項１４】
オンライン・モード中に、前記予測することは、ノイズ・レベルに基づき、
前記電圧ドループ軽減対策を前記適用することは、
生成されたスロットル信号を前記プロセッサ・パイプラインに前記プロセッサ・コアによって挿入することと、
前記生成されたスロットル信号の結果として緩和されたノイズの量を前記プロセッサ・コアによって推定することと、
緩和されたノイズの前記量とローカルの検出された電圧変化情報との間の相違が定義範囲を超えたという判定に基づいて、前記電圧ドループ軽減対策が、前記第２のステージの中で前記電力消費量の影響を緩和しなかったという判定に基づいて、前記生成されたスロットル信号を前記プロセッサ・コアによって継続することと、
緩和されたノイズの前記量とローカルの検出された電圧変化情報との間の相違が定義範囲を超えなかったという判定に基づいて、前記電圧ドループ軽減対策が前記第２のステージの中で前記電力消費量の影響を緩和したという判定に基づいて、前記生成されたスロットル信号を前記プロセッサ・コアによって停止することと
を含む、請求項８に記載のコンピュータ実行方法。
【請求項１５】
前記定義済イベントは、１つまたは複数の定義済イベントから選択され、前記１つまたは複数の定義済イベントは、前記プロセッサ・パイプラインの前記第２のステージの中で前記電力消費量を増加させるために決定される、請求項８に記載のコンピュータ実行方法。
【請求項１６】
前記予測することは、第１のインジケータからの第１の加重値と少なくとも第２のインジケータからの少なくとも第２の加重値との組合せにスコアを付けることを含み、
前記電圧ドループ軽減対策を前記適用することは、前記第１の加重値と少なくとも前記第２の加重値との組合せに基づいて、スロットル・レベルを計算することを含む、
請求項８に記載のコンピュータ実行方法。
【請求項１７】
事前対応型電圧ドループ軽減を容易にするコンピュータ・プログラム製品であって、プログラム命令を具体化するコンピュータ可読ストレージ媒体を備え、前記プログラム命令は、
プロセッサ・パイプラインの第１のステージにおける１つまたは複数のイベントを検出することであって、前記１つまたは複数のイベントの１つのイベントが、前記プロセッサ・パイプラインの第２のステージの中で消費される電力レベルを増加させることを決定された定義済イベントである、前記検出することと、
前記イベントが前記定義済イベントであることに基づいて、前記プロセッサ・パイプラインの前記第２のステージの中で消費される前記電力レベルの前記増加の前に、電圧ドループ軽減対策を適用することと、
適用された前記電圧ドループ軽減対策の結果について成功または失敗を示す通知を行うことと
をプロセッサに行わせるように前記プロセッサによって実行可能である、コンピュータ・プログラム製品。
【請求項１８】
前記プログラム命令は、
ローカル・ノイズ・インジケータによって測定されたローカル・ノイズ・レベルとリモート・ノイズ・インジケータによって測定されたリモート・ノイズ・レベルとの組合せに基づいて、全体ノイズ・スコアを計算することと、
前記全体ノイズ・スコアによって定義されたスロットル値に基づいて、スロットル・レベルを決定することと
を前記プロセッサに行わせる、請求項１７に記載のコンピュータ・プログラム製品。
【請求項１９】
前記プログラム命令は、
オフライン診断モード中に、電圧ドループ・イベントの予測の指示を記録することと、
前記電圧ドループ・イベントが発生したかどうかを判定することであって、スロットル信号が、前記オフライン診断モード中に生成されなかった、前記判定することと、
前記判定の前記指示および結果を履歴診断情報として保持することと
を前記プロセッサに行わせる、請求項１７に記載のコンピュータ・プログラム製品。
【請求項２０】
前記プログラム命令は、
オンライン・モード中に、生成されたスロットル信号を前記プロセッサ・パイプラインに挿入することと、
前記生成されたスロットル信号の結果として緩和されたノイズの量を推定することと、
緩和されたノイズの前記量とローカルの検出された電圧変化情報との間の相違が定義範囲を超えなかったという判定に基づいて、前記電圧ドループ軽減対策が前記第２のステージの中で消費された電力の影響を緩和したと判定することと
を前記プロセッサに行わせる、請求項１７に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、オンチップ電源ノイズ電圧の低減または軽減あるいはその両方に関し、より詳細には、プロセッサ・コアにおける事前対応型電圧ドループ低減または軽減あるいはその両方に関する。
【発明の概要】
【発明が解決しようとする課題】
【０００２】
プロセッサ・コアにおける電圧ドループ低減または軽減あるいはその両方を容易にする技術を提供する。
【課題を解決するための手段】
【０００３】
以下は、本発明の１つまたは複数の実施形態についての基本的理解を提供するために概要を提示する。本概要は、主要もしくは重要な要素を識別すること、または特定の実施形態のいずれかの範囲、もしくは特許請求の範囲のいずれかの範囲を詳しく説明することを意図するものではない。この唯一の目的は、後で提示される、より詳細な説明への前置きとして概念を単純化した形で提示することである。本明細書において説明される１つまたは複数の実施形態において、事前対応型電圧ドループ低減または軽減あるいはその両方を容易にするシステム、コンピュータ実行方法、装置、またはコンピュータ・プログラム製品、あるいはその組合せが説明される。
【０００４】
１つの実施形態によれば、システムは、コンピュータ実行可能コンポーネントを格納するメモリ、およびメモリに格納されたコンピュータ実行可能コンポーネントを実行するプロセッサを備えることができる。コンピュータ実行可能コンポーネントは、プロセッサ・パイプラインの第１のステージにおける１つまたは複数のイベントを検出する監視コンポーネントを備えることができる。１つまたは複数のイベントの１つのイベントは、プロセッサ・パイプラインの第２のステージの中で消費される電力レベルを増加させることを決定された定義済イベントであり得る。コンピュータ実行可能コンポーネントは、イベントが定義済イベントであることに基づいて、プロセッサ・パイプラインの第２のステージの中で消費される電力レベルの増加の前に、電圧ドループ軽減対策を適用することができる命令コンポーネントを備えることもできる。さらに、コンピュータ実行可能コンポーネントは、命令コンポーネントへの通知を行うことができるフィードバック・コンポーネントを備えることができる。通知は、命令コンポーネントによって適用された電圧ドループ軽減対策の結果について成功または失敗を示すことができる。
【０００５】
１つの実施形態によれば、コンピュータ実行方法は、プロセッサ・パイプラインの第１のステージにおいて発生している定義済イベントの検出に基づいて、電圧ドループ・イベントをプロセッサ・コアによって予測することを含むことができる。定義済イベントは、プロセッサ・パイプラインの第２のステージの中で電力消費量を増加させることを決定されたイベントであり得る。さらに、コンピュータ実行方法は、予測に基づいて電圧ドループ軽減対策をプロセッサ・コアによって適用することを含むことができる。第２のステージは、第１のステージの後、定義数のサイクルを発生させることができる。さらに、電圧ドループ軽減対策を適用することは、第２のステージの中で電力消費量の増加の前に行われることが可能である。
【０００６】
別の実施形態によれば、事前対応型電圧ドループ軽減を容易にするコンピュータ・プログラム製品は、プログラム命令を具体化するコンピュータ可読ストレージ媒体を備えることができる。プログラム命令は、プロセッサによって実行されることが可能である。プログラム命令は、プロセッサ・パイプラインの第１のステージにおける１つまたは複数のイベントを検出することをプロセッサに行わせることができる。１つまたは複数のイベントの１つのイベントは、プロセッサ・パイプラインの第２のステージの中で消費される電力レベルを増加させることを決定された定義済イベントであり得る。プログラム命令は、イベントが定義済イベントであることに基づいて、プロセッサ・パイプラインの第２のステージの中で消費される電力レベルの増加の前に、電圧ドループ軽減対策を適用することをプロセッサに行わせることもできる。さらに、プログラム命令は、適用された電圧ドループ軽減対策の結果について成功または失敗を示す通知を行うことをプロセッサに行わせることができる。
【０００７】
本発明の実施形態は、添付の図面を参照しながら、ほんの一例として、これから説明される。
【図面の簡単な説明】
【０００８】
【図１】本明細書において説明される１つまたは複数の実施形態による、プロセッサ・コアにおける事前対応型電圧ドループ低減または軽減あるいはその両方を容易にするシステムの非限定的な例のブロック図である。
【図２】本明細書において説明される１つまたは複数の実施形態による、プロセッサのコアの間で共有される事前対応型電圧ドループ低減または軽減あるいはその両方のためのシステムの非限定的な例を示す図である。
【図３】本明細書において説明される１つまたは複数の実施形態による、プロセッサのコアの間で共有される事前対応型電圧ドループ低減または軽減あるいはその両方の代替実装形態のシステムの非限定的な例を示す図である。
【図４】事後対応型軽減アクションの使用に基づくタイムラインの非限定的な例を示す図である。
【図５】本明細書において説明される１つまたは複数の実施形態による、事前対応型軽減アクションが適用されるときのタイムラインの非限定的な例を示す図である。
【図６】本明細書において説明される１つまたは複数の実施形態による、事前対応型軽減アクションが実行されるが、イベントが発生しないときのタイムラインの非限定的な例を示す図である。
【図７】本明細書において説明される１つまたは複数の実施形態による、プロセッサ・コアにおけるローカル・ノイズ・レベルに基づいて電圧ドループ軽減対策を実行するためのシステムの非限定的な例を示す図である。
【図８】本明細書において説明される１つまたは複数の実施形態による、プロセッサ・コアにおけるローカル・ノイズ・レベル、および１つまたは複数のリモート・ノイズ・レベルに基づいて、電圧ドループ軽減対策を実行するためのシステムの非限定的な例を示す図である。
【図９】本明細書において説明される１つまたは複数の実施形態による、スロットル・レベルを決定するために、重みを付けられたスコアを１つまたは複数のノイズ・レベルに適用するためのシステムの非限定的な例を示す図である。
【図１０】本明細書において説明される１つまたは複数の実施形態による、様々なノイズ・インジケータから受信した情報に基づいて、連続的な（または間断ない）スロットル・レベルを実行するシステムの非限定的な例を示す図である。
【図１１】本明細書において説明される１つまたは複数の実施形態による、プロセッサ・コアにおいて実行された１つまたは複数の事前対応型ドループ軽減対策に基づいてフィードバック・ループを提供するためのシステムの非限定的な例を示す図である。
【図１２】本明細書において説明される１つまたは複数の実施形態による、電力プレディクタ信号を利用する実装形態の非限定的な例を示す図である。
【図１３】本明細書において説明される１つまたは複数の実施形態による、電力プレディクタ信号を利用する実装形態の非限定的な別の例を示す図である。
【図１４】本明細書において説明される１つまたは複数の実施形態による、中間周波数ドループ軽減のための論理フローの非限定的な例を示す図である。
【図１５】本明細書において説明される１つまたは複数の実施形態による、論理フローの非限定的な例を示す図である。
【図１６】本明細書において説明される１つまたは複数の実施形態による、論理フローの非限定的な別の例を示す図である。
【図１７】本明細書において説明される１つまたは複数の実施形態による、プロセッサ・コアにおける事前対応型電圧ドループ低減または軽減あるいはその両方のためのコンピュータ実行方法の非限定的な例の流れ図を示す図である。
【図１８】本明細書において説明される１つまたは複数の実施形態による、ローカル・ノイズ・レベルを測定することに基づいて事前対応型軽減対策を選択的に調節するためのコンピュータ実行方法の非限定的な例の流れ図を示す図である。
【図１９】本明細書において説明される１つまたは複数の実施形態による、ローカル・ノイズ・レベルおよびリモート・ノイズ・レベルに基づいて事前対応型軽減対策を選択的に調節するためのコンピュータ実行方法の非限定的な例の流れ図を示す図である。
【図２０】本明細書において説明される１つまたは複数の実施形態による、オフライン診断モード中に電圧ドループ軽減対策を選択的に適用するためのコンピュータ実行方法の非限定的な例の流れ図を示す図である。
【図２１】本明細書において説明される１つまたは複数の実施形態による、オンライン・モード中に電圧ドループ軽減対策を選択的に適用するためのコンピュータ実行方法の非限定的な例の流れ図を示す図である。
【図２２】本明細書において説明される１つまたは複数の実施形態が容易にされることが可能な動作環境の非限定的な例のブロック図を示す図である。
【発明を実施するための形態】
【０００９】
以下の詳細な説明は例証的なものにすぎず、実施形態、または実施形態の用途もしくは使用、あるいはその両方を限定することを意図するものではない。さらに、先述の背景もしくは概要セクションにおいて、または詳細な説明セクションにおいて提示された、いずれかの表現される情報もしくは示される情報によって束縛されることを意図するものではない。
【００１０】
図面を参照しながら１つまたは複数の実施形態がこれから説明され、全体を通して同様の要素を指すために同様の参照番号が使用される。以下の説明において、説明のために、１つまたは複数の実施形態についてのより完全な理解をもたらすために非常に多くの具体的詳細が示される。しかし、様々なケースにおいて、１つまたは複数の実施形態は、これらの具体的詳細がなくても実践され得ることは明らかである。
【００１１】
集積回路（例えばプロセッサ）は、関連付けられた回路構成にソース電圧を提供するために、電源などの電力源から電力を受け取ることができる。電流量および回路負荷量は、関連付けられた回路構成および電源電圧の動作速度の関数であり得る。回路の活動中の性質により回路負荷は変化する可能性があり、これは、供給電圧レベルが定義済電圧レベルより下に降下するか、下がる原因となる可能性がある。定義済電圧レベルからの電圧降下は、「電圧ドループ」と呼ばれる。例えば、電源ノイズは、電力源から生成される可能性があり、さらに、関連付けられた回路構成に伝搬される可能性があり、これは、プロセッサの様々な経路またはユニットにおける電圧ドループの原因となる可能性がある。電圧ドループ（または２つ以上の電圧ドループ）は、プロセッサが動作する速度に影響を及ぼす可能性がある。
【００１２】
本明細書において論じられる様々な態様は、負荷電流における勾配が一時的に大きくなる場合に、プロセッサ・コアにおける事前対応型電圧ドループ低減または軽減あるいはその両方を容易にすることに関する。本明細書において論じられる事前対応型アプローチは、将来の電力変化を予測することでこれらの将来の電力変化の阻止または緩和あるいはその両方を行うことを、プロセッサ・パイプラインのより早いステージの中でプロセッサの挙動を調査することによって可能にされ得る。
【００１３】
本明細書において論じられる事前対応型ドループ軽減は、ディープ・パイプライン・プロセッサのより早いステージから選択されたイベントをプレディクタとして利用し、短期間の電力の急激な変化を判定することができる。選択されたイベントの早期情報は、急激な電力変化が起こる前に急激な電力変化を阻止するために、パイプラインを通じてフローをスロットルするために使用されることが可能である。したがって、電圧ドループは、低減または緩和あるいはその両方が行われることが可能である。
【００１４】
本明細書において論じられる様々な実装形態によれば、プロセッサ・パイプラインには、比較的大量の電力を消費する様々なユニット（例えばコア）が存在する可能性がある。プロセッサ・パイプラインにおける様々なユニットの１つ（または複数）が普通より多くの電力量を消費すると予想されることを示すイベントが、先を見越して判定されることが可能であり、したがって、電流ノイズまたは電圧ノイズあるいはその両方の観点から変動を作り出すことができる。事前対応型判定に基づいて、電圧ノイズは、急激な電力変化が起こる前に急激な電力変化の阻止または緩和あるいはその両方を行うために、できるだけ早期に実行されるスロットルするという命令に基づいて、低減または緩和あるいはその両方が行われることが可能である。
【００１５】
図１は、本明細書において説明される１つまたは複数の実施形態による、プロセッサ・コアにおける事前対応型電圧ドループ低減または軽減あるいはその両方を容易にするシステム１００の非限定的な例のブロック図を示す。本開示において説明されるシステム（例えば、システム１００および同様のもの）、装置、または処理の態様は、機械内で具体化された機械実行可能コンポーネント、例えば、１つまたは複数の機械と関連付けられた１つまたは複数のコンピュータ可読媒体の中で具体化された機械実行可能コンポーネントの本質を成すことができる。このようなコンポーネントは、例えば、コンピュータ、コンピューティング・デバイス、仮想マシン、等といった１つまたは複数の機械によって実行されるとき、説明された動作を機械に行わせることができる。
【００１６】
様々な実施形態において、システム１００は、プロセッサを備えるコンポーネント、機械、デバイス、設備、装置、もしくは計器、またはその組合せのいずれかのタイプにおいて用いられること、あるいは有線ネットワークもしくはワイヤレス・ネットワークまたはその両方との効果的もしくは動作的またはその両方の通信を行う能力があること、あるいはその両方が可能である。システム１００を備えることができるコンポーネント、機械、装置、デバイス、設備、または道具、あるいはその組合せは、タブレット・コンピューティング・デバイス、ハンドヘルド・デバイス、サーバ・クラス・コンピューティング・マシンまたはデータベースあるいはその両方、ラップトップ・コンピュータ、ノートブック・コンピュータ、デスクトップ・コンピュータ、携帯電話、スマート・フォン、消費財または運転器具一式あるいはその両方、産業用または市販用あるいはその両方のデバイス、ハンドヘルド・デバイス、デジタル・アシスタント、マルチメディア・インターネット対応電話、マルチメディア・プレーヤ、および同様のものを含むことができる。図示のように、システム１００は、監視コンポーネント１０２、命令コンポーネント１０４、フィードバック・コンポーネント１０６、少なくとも１つのメモリ１０８、および少なくとも１つのプロセッサ１１０を備えることができる。
【００１７】
負荷電流における勾配が一時的に大きくなることよって生じるイベントが存在する可能性がある。これらのイベントに基づいて、プロセッサ・コアにおいて突然浪費される電流または電力あるいはその両方が多くなる可能性がある。電流または電力あるいはその両方の浪費に基づいて、供給電圧が降下する電圧ドループ・イベントが存在する可能性がある。場合によっては、電圧ドループ・イベントから保護するために増加した供給電圧量が投入されることが可能であるべく、静的保護帯域（static guard band）が設定される可能性がある。開示された態様によって、より低い電圧設定点が利用されることが可能である（例えば、静的保護帯域がない、または静的保護帯域が小さくなる）。静的保護帯域の値が小さくなることは、静的保護帯域の値のために利用される高い方の電圧でプロセッサが動作する必要がないので、性能または節電あるいはその両方につなげることができる。
【００１８】
監視コンポーネント１０２は、プロセッサ・パイプラインの第１のステージにおける１つまたは複数のイベントを検出することができる。例えば、プロセッサ・パイプラインは複数のステージを有することができ、ここで、第１のステージは、第２のステージより早い時間に発生する。第２のステージは、第３のステージより早い時間に発生する可能性がある、などである。１つまたは複数のイベントは、プロセッサ・パイプラインの第２のステージ（またはその後のステージ）の中で電力消費量を増加させることを決定される可能性のあるイベントであり得る。例えば、監視コンポーネント１０２は、ノイズ・センサなどの１つまたは複数のセンサから入力データ１１２を受信することができる。したがって、監視コンポーネント１０２は、プロセッサ・コアに対するローカルのノイズ発生、またはプロセッサ・コアに対するリモートのノイズ発生（例えば、他のプロセッサ・コアにおけるノイズ発生）、あるいはその両方に関する情報を、入力データ１１２として受信することができる。例えば、電力増加または電力減少が存在する場合、電力の変化は、電圧ノイズ・イベントを作り出す可能性があり、これは、１つまたは複数のセンサによって検出されることが可能である。
【００１９】
１つの例において、監視コンポーネント１０２は、論理的挙動を分析することができ、論理パイプラインの方向への数サイクルのうちの活動の増加（および電力消費量の増加）を生じる可能性のあるイベントを識別するために使用されることが可能である。例えば、パイプラインにおいて命令が実行されるときに多量の電力が浪費される可能性があり、これは、多量の電力変動が発生する可能性のある場合である。したがって、５または１０サイクルの中に大量の命令が存在する場合、例えば、これは、大きい電力イベントを示すことができ、電圧降下を阻止するための事前対応型インジケータとして使用されることが可能である。
【００２０】
したがって、プロセッサにおける１つまたは複数の異なるコンポーネントの活動は、将来の電力変化を識別するために使用されることが可能である。例は、正しくない分岐予測、出口待ち状態／休止、キャッシュ・ミス・レスポンス、スロー命令ストリームからファスト命令ストリームへの遷移、ＸＣＯＮＤ（例えば、全ての現在の実行をキャンセルし、ラッチをクリアし、最後に完了され、チェックされ、セーブされた状態にプロセッサを復元する即時リセット条件）、などに続くフラッシュを含むがこれらに限定されない。別の例において、待ち行列内の（in queue）（ｉｎＱ）書込み／ディスパッチ／発行の急激な増加は、まもなく起こる電力の増加に対するプレディクタとして利用されることが可能である。
【００２１】
監視コンポーネント１０２による、イベントが定義済イベントであるという検出に基づいて、命令コンポーネント１０４は、プロセッサ・パイプラインの第２のステージの中で消費される電力レベルの増加の前に、電圧ドループ軽減対策を適用することができる。したがって、システム１００は、事前対応型電圧ドループ軽減に基づいて、事後対応型事前対応型電圧ドループ軽減と比較して、より早く複数のサイクルのスロットルを始めることができる。
【００２２】
電圧ドループ軽減対策は、出力データ１１４として、命令コンポーネント１０４によって出力されることが可能である。命令コンポーネント１０４によって適用される電圧ドループ軽減対策は、プロセッサの処理効率を高めることができる。さらに、処理効率は、消費される電力を低減させること、またはプロセッサの性能を向上させること、あるいはその両方を行うことができる。したがって、命令コンポーネント１０４によって適用される電圧ドループ軽減対策は事前対応型であることが可能であり、または実際の電圧ドループ・イベントの前に発生することが可能である。
【００２３】
１つの例として、１．０ボルト（Ｖ）（１０００ミリボルト（ｍＶ））が、設定電圧であり、１００ｍＶという最悪のケースの電圧ドループが１０ナノ秒（ｎｓ）のうちに起こると仮定する。例えば、１ｎｓのうちに１０ｍＶ降下する。事後対応型電圧ドループ軽減手順について、定義される閾値電圧の値は、演繹的に決定されることが可能である。この例において、定義される閾値電圧は６０ｍＶである。したがって、システム１００は、（例えば、電圧ドループ軽減が実行されることが可能になる前に）スロットルすることを決定するために、電圧が６０ｍＶに降下するまで待たなければならない。定義される閾値電圧の値を小さくすることは、スロットルしすぎることにつながる可能性があり、性能に影響を及ぼす可能性がある。図示のように、スロットルの指示がプロセッサ・コアにおいて受信されるのに、さらに２ｎｓ（１０サイクル）かかる可能性がある。したがって、電圧は、戻る前に２０ｍＶ多く降下する。１００ｍＶのドループが８０ｍＶまで低減される場合、これは、２０ｍＶの全体的な保護帯域の低減（例えば、２％の利益）をもたらすことができる。
【００２４】
本明細書において論じられる様々な態様によれば、事前対応型電圧ドループ軽減について、スロットルすることを決定するためのドループが−２０ｍＶにおいて検出される場合、およびスロットルの指示がプロセッサ・コアに達するのに２ｎｓかかる場合、電圧は、戻る前に、２０ｍＶ多く降下したであろう。したがって、達する最低電圧は−４０ｍＶであり、これは、本明細書において提供される様々な態様によれば、約６０ｍＶの利得（例えば、およそ６％の利益）を生じる可能性がある。
【００２５】
図１への参照を続けると、フィードバック・コンポーネント１０６は、プロセッサ・パイプラインの第２のステージにおいて電圧ドループ軽減対策が電圧ドループ低減または軽減あるいはその両方を生じたかどうかに関する情報を、入力データ１１２として受信することができる。フィードバック・コンポーネント１０６は、電圧ドループ軽減対策の実行時または実行後に、命令コンポーネント１０４への通知を行うことができる。通知は、電圧ドループ低減または軽減あるいはその両方の対策の結果について成功または失敗を示すことができる。したがって、フィードバック・コンポーネント１０６は、将来の事前対応型電圧ドループ軽減対策を調節するために利用されることが可能なフィードバック・ループを提供することができる。いくつかの実装形態によれば、フィードバック・コンポーネント１０６は、軽減対策への変更、現在の軽減対策の継続、または軽減対策の中止を生じる可能性のある、現在の電圧ドループ軽減対策に関する情報を提供するために、フィードバック・ループを提供することができる。
【００２６】
少なくとも１つのメモリ１０８は、少なくとも１つのプロセッサ１１０（またはプロセッサ・コア）によって実行されることが可能な、コンピュータ実行可能コンポーネントまたはコンピュータ実行可能命令あるいはその両方を格納することができる。少なくとも１つのメモリ１０８は、本明細書において論じられるような、事前対応型電圧ドループ低減または軽減あるいはその両方を実行することと関連付けられたプロトコルを格納することができる。さらに、少なくとも１つのメモリ１０８は、本明細書において説明されるような、事前対応型電圧ドループ低減または軽減あるいはその両方を実現するために、格納されたプロトコルまたはアルゴリズムあるいはその両方をシステム１００が用いることができるように、通信を制御するというアクションを容易にすることができる。
【００２７】
図２は、本明細書において説明される１つまたは複数の実施形態による、プロセッサのコアの間で共有される事前対応型電圧ドループ低減または軽減あるいはその両方のためのシステム２００の非限定的な例を示す。本明細書において説明される他の実施形態において用いられる同様の要素を繰返し説明することは、簡潔さのために省略される。システム２００は、システム１００のコンポーネントまたは機能あるいはその両方の１つまたは複数を有することができ、逆もまた同様である。
【００２８】
図示のように、プロセッサは、第１のコア２０２、第２のコア２０４、第３のコア２０６、および第４のコア２０８として示された多数のコアを有することができる。４つのコアが示され、説明されるが、プロセッサは、様々な態様に応じて、４つのコア、４つより少ないコア、または４つより多いコアを有することができるということに留意されたい。
【００２９】
１つの例によれば、マルチ・コア・プロセッサにおいて、最大ｄ（ｉ）／ｄ（ｔ）およびＲＬＣ（レジスタ、インダクタ、キャパシタ）の設計特性に応じて、ただ１つのコアの電力の急激な変化が、ドループ軽減対策の実行の必要性を生じるほど十分に大きくないというものであり得る。この場合、本明細書において論じられる電力管理ロジックは、コア間の活動レベルに関する知識を共有することができる。
【００３０】
例えば、図２において、中央事前対応型軽減システム２１０（例えば、図１のシステム１００）が、複数のコア間のスロットル命令２１２および電力プロキシ情報２１４を共有するために利用されることが可能である。したがって、電力管理ロジックは、全てのコアに共通のもの（例えばグローバル）であり得る。
【００３１】
図３は、本明細書において説明される１つまたは複数の実施形態による、プロセッサのコアの間で共有される事前対応型電圧ドループ低減または軽減あるいはその両方の代替実装形態のシステム３００の非限定的な例を示す。本明細書において説明される他の実施形態において用いられる同様の要素を繰返し説明することは、簡潔さのために省略される。システム３００は、システム１００のコンポーネントまたは機能あるいはその両方の１つまたは複数を有することができ、逆もまた同様である。
【００３２】
図３において示されるように、ローカル事前対応型軽減システム３０２（例えば、図１のシステム１００）が、コア間のスロットル命令２１２および電力プロキシ情報２１４を共有するために利用されることが可能である。さらに、他のコアとの間の活動インデックス３０４が、システム３００に含まれることが可能である。したがって、電力管理ロジックは、コア（例えば、第１のコア２０２）にローカルなものであり、他のコア（例えば、第２のコア２０４、第３のコア２０６、第４のコア２０８、など）に通信されることが可能である。
【００３３】
図４は、事後対応型軽減アクションの使用に基づくタイムラインの非限定的な例を示す。本タイムライン４００において、軽減アクション（例えば、これは、事後対応型軽減アクションである）を適用する前に利用される予測はない。時間は、水平軸に沿って表現されている。図示のように、イベント４０２が第１の時間において発生し、イベント４０２の発生時または発生後に、イベントの検出４０４が発生する。検出４０４と同時またはその後に、軽減アクション４０８が発生する可能性がある前に、遅延４０６がある可能性がある。遅延４０６は、どの軽減対策を適用するべきか、伝送されることになる命令信号、プロセッサ・コアにおいて受信されることになる命令信号、およびプロセッサ・コアが軽減アクション４０８を実行することについての決定にかかる可能性のある時間に基づくことが可能である。
【００３４】
図５は、本明細書において説明される１つまたは複数の実施形態による、事前対応型軽減アクション（例えば、対策）が適用されるときのタイムラインの非限定的な例を示す。本明細書において説明される他の実施形態において用いられる同様の要素を繰返し説明することは、簡潔さのために省略される。
【００３５】
時間は、水平軸に沿って表現されている。第１の時間において示されるように、イベントの予測５０２が（例えば、監視コンポーネント１０２を介して）発生し、命令が（例えば、命令コンポーネント１０４を介して）送信されることが可能である。遅延４０６と同時またはその後（例えば、命令が伝送／受信されることになる時間）、軽減アクション４０８は、プロセッサ・コアにおいて適用されることが可能である。軽減対策の実行が事前対応型なので、イベント４０２は遅延４０６の中で発生するということに留意されたい。したがって、軽減アクション４０８は、図４において表現されたケースより速く行われることが可能である。
【００３６】
図６は、本明細書において説明される１つまたは複数の実施形態による、事前対応型軽減アクションが実行されるが、イベントが発生しないときのタイムラインの非限定的な例を示す。本明細書において説明される他の実施形態において用いられる同様の要素を繰返し説明することは、簡潔さのために省略される。
【００３７】
時間は、水平軸に沿って表現されている。図示のように、予測５０２が発生し、軽減対策を実行するための信号が伝送されることが可能である。しかし、イベントが発生しなかった６０２ということが判定されることが可能である。例えば、イベントが電圧ドループ・イベントを示したということがプロセッサ・パイプラインにおいて早く判定されたが、プロセッサ・コアは、電圧ドループ・イベントに遭遇しなかった。したがって、６０４において、軽減対策を反転するために、または軽減対策を実行しないために、あるいはその両方のために、別の命令が伝送されることが可能である。したがって、行われるアクションはなく６０６、または、アクションが行われた場合、このアクションは反転または停止されることが可能である。
【００３８】
図７は、本明細書において説明される１つまたは複数の実施形態による、プロセッサ・コアにおけるローカル・ノイズ・レベルに基づいて電圧ドループ軽減対策を実行するためのシステム７００の非限定的な例を示す。本明細書において説明される他の実施形態において用いられる同様の要素を繰返し説明することは、簡潔さのために省略される。システム７００は、システム１００、システム２００、システム３００のコンポーネントまたは機能あるいはその両方の１つまたは複数を含むことができ、逆もまた同様である。いくつかの実装形態によれば、命令コンポーネント１０４は、電圧ドループ軽減対策としてスロットル指示（またはスロットル命令）を生成することができる。例えば、スロットル指示は、活動レベルが、プロセッサ・パイプラインの第２のステージにおいて、定義された活動レベルを満たし、リモート・ノイズ・レベルが、第２のステージにおいて、定義されたリモート・ノイズ・レベルを満たすという判定に基づいて、命令コンポーネント１０４によって生成されることが可能である。
【００３９】
本実装形態に関連して、測定コンポーネント７０２は、ローカル・ノイズ・レベルを測定することができる。例えば、ローカル・ノイズ・レベルは、（例えば、プロセッサ・コアにおいて）ローカルに測定されたノイズであり得る。測定コンポーネント７０２は、ローカル・ノイズ・レベルを直接的に測定すること、またはローカル・ノイズ・レベルを示す性質をもつ情報を受信するために、１つもしくは複数のローカル・ノイズ・センサまたはインジケータとインターフェースすること、あるいはその両方を行うことができる。
【００４０】
測定コンポーネント７０２によって提供されたローカル・ノイズ・レベルに基づいて、ノイズ・レベル分析コンポーネント７０４は、定義されたローカル・ノイズ・レベルの量をローカル・ノイズ・レベルが上回るか下回るかを判定することができる。定義されたローカル・ノイズ・レベルの量は、軽減対策が実行される前の、許容される可能性のあるノイズの量に基づくことが可能である。ローカル・ノイズ・レベルが、定義されたローカル・ノイズ・レベルの量を上回る場合、命令コンポーネント１０４はスロットル命令を生成することができ、またはスロットル命令が既に伝送されていた場合、スロットル命令を生成し続けることができる。しかし、ローカル・ノイズ・レベルが、定義されたローカル・ノイズ・レベルの量を下回る場合、命令コンポーネント１０４は、スロットル命令において示されたスロットル・レベルを低減させることが可能である。いくつかの実装形態において、ローカル・ノイズ・レベルが、定義されたローカル・ノイズ・レベルの量を下回る場合、命令コンポーネント１０４は、スロットルを停止するという命令を送信することができる。
【００４１】
図８は、本明細書において説明される１つまたは複数の実施形態による、プロセッサ・コアにおけるローカル・ノイズ・レベル、および１つまたは複数のリモート・ノイズ・レベルに基づいて、電圧ドループ軽減対策を実行するためのシステムの非限定的な例を示す。本明細書において説明される他の実施形態において用いられる同様の要素を繰返し説明することは、簡潔さのために省略される。
【００４２】
システム８００は、システム１００、システム２００、システム３００、またはシステム７００、あるいはその組合せのコンポーネントまたは機能あるいはその両方の１つまたは複数を含むことができ、逆もまた同様である。少なくとも１つのローカル・ノイズ・インジケータ８０２（またはローカル・ノイズ・センサ）は、プロセッサ・コアにおいてローカル・ノイズ・レベルを測定することができ、測定コンポーネント７０２は、ローカル・ノイズ・レベルの指示を入力データ１１２として受信することができる。さらに、１つまたは複数のリモート・ノイズ・インジケータ８０４（またはリモート・ノイズ・センサ）は、１つまたは複数のリモート・ノイズ・レベルを測定することができる。例えば、ローカル・ノイズ・インジケータ８０２は、第１のプロセッサ・コアにおけるノイズ・レベルを測定することができ、１つまたは複数のリモート・ノイズ・インジケータ８０４の少なくとも第１のリモート・ノイズ・インジケータは、第１のプロセッサ・コアに隣接していることが可能な第２のプロセッサ・コアにおける第１のリモート・ノイズ・レベルを測定することができる。さらに、１つまたは複数のリモート・ノイズ・インジケータ８０４の少なくとも第２のリモート・ノイズ・インジケータは、第１のプロセッサ・コアまたは第２のプロセッサ・コアあるいはその両方に隣接していることが可能な第３のプロセッサ・コアにおける第２のリモート・ノイズ・レベルを測定することができる。１つまたは複数のリモート・ノイズ・インジケータ８０４のその後のリモート・ノイズ・インジケータは、実装形態に応じて、プロセッサの次のプロセッサ・コアにおける次のリモート・ノイズ・レベルを測定することができる。
【００４３】
入力データ１１２として受信された測定値に基づいて、ノイズ・レベル判定コンポーネント８０６は、全体ノイズ・スコアを計算することができる。例えば、全体ノイズ・スコアは、ローカル・ノイズ・インジケータ８０２によって判定されたローカル・ノイズ・レベルと、リモート・ノイズ・インジケータ８０４によって判定されたリモート・ノイズ・レベルとの組合せであり得る。いくつかの実装形態において、２つ以上のローカル・ノイズ・インジケータによって測定された２つ以上のローカル・ノイズ・レベル、または２つ以上のリモート・ノイズ・インジケータによって測定された２つ以上のリモート・ノイズ・レベル、あるいはその両方は、全体ノイズ・スコアを計算するために、ノイズ・レベル判定コンポーネント８０６によって利用されることが可能である。
【００４４】
さらに、いくつかの実装形態において、重み付けコンポーネント７０６は、１つまたは複数のローカル・ノイズ・レベルまたはリモート・ノイズ・レベルあるいはその両方に個々の重みを適用することができ、ノイズ・レベル判定コンポーネント８０６によって計算された全体ノイズ・スコアは、加重値に基づくことが可能である。例えば、重み付けコンポーネント７０６によって適用された個々の重みは、様々なノイズ・インジケータの正確性または信頼性あるいはその両方の関数であり得る。
【００４５】
命令コンポーネント１０４は、全体ノイズ・スコアによって定義されたスロットル値に基づいてスロットル・レベルを決定することができる。いくつかの実装形態によれば、命令コンポーネント１０４は、スロットル作動テーブルを参照してスロットル・レベルを決定することができる。したがって、命令コンポーネント１０４は、全体的なスコアをスロットル・レベルにつなげるテーブル（または２つ以上のテーブル）に基づいてスロットル・レベルを計算することができる。例えば、下記のテーブル１は、実装形態に応じてスロットルを発動するために利用されることが可能なスロットルテーブルの非限定的な例を示す。
【００４６】
【表１】
2020537236.tif 000003
【００４７】
上記のテーブル１の例によれば、予測型ノイズ・センサ（例えば、ローカル・ノイズ・インジケータ８０２）が、プロセッサ・コアにおける低いノイズ値を示すとき、スロットル信号は、命令コンポーネント１０４によって送信されない。さらに、予測型ノイズ・センサが高いローカル・ノイズ値を示すが、リモート・ノイズ値が低いとき、命令コンポーネント１０４は、スロットル信号を伝送しない。しかし、テーブル１によれば、予測型ノイズ・センサが高い活動レベルを示し、リモート・ノイズ・インジケータ８０４によって判定されたリモート・ノイズも高いノイズ値を示す場合、命令コンポーネント１０４によってスロットルが発動されることが可能である。
【００４８】
別の例において、下記のテーブル２は、開示された態様に応じて利用されることが可能なスロットルテーブルの非限定的な例を示す。
【００４９】
【表２】
2020537236.tif 000004
【００５０】
したがって、テーブル２の例によれば、スロットル信号の遅延バージョンが、ローカル・ノイズによってチェックされることが可能であり、ローカル・ノイズも高い場合、スロットルは維持されることが可能である。しかし、ローカル・ノイズが低い場合、スロットルは下げられる（または訂正される）ことが可能である。１つの例において、テーブル２によれば、ローカル・ノイズが低く、システムが既にスロットルしていない場合、命令コンポーネント１０４は、スロットルしないことを続けることができる。別の例において、ローカル・ノイズが低く、スロットルが行われている場合、スロットルは停止されることが可能である。ローカル・ノイズが高く、スロットルが行われていない場合、システムは、スロットルしないことを続けることができる。しかし、ローカル・ノイズが高く、スロットルが行われている場合、問題は訂正されておらず、したがって、命令コンポーネント１０４は、より多くスロットルするための信号を送信することができる。
【００５１】
図９は、本明細書において説明される１つまたは複数の実施形態による、スロットル・レベルを決定するために、重みを付けられたスコアを１つまたは複数のノイズ・レベルに適用するためのシステム９００の非限定的な例を示す。本明細書において説明される他の実施形態において用いられる同様の要素を繰返し説明することは、簡潔さのために省略される。
【００５２】
システム９００は、システム１００、システム２００、システム３００、システム７００、またはシステム８００、あるいはその組合せのコンポーネントまたは機能あるいはその両方の１つまたは複数を含むことができ、逆もまた同様である。１つまたは複数のノイズ・インジケータ（例えば、ローカル・ノイズ・インジケータ８０２、リモート・ノイズ・インジケータ８０４、１つもしくは複数の他のローカル・ノイズ・インジケータ、または１つもしくは複数の他のリモート・ノイズ・インジケータ、あるいはその組合せ）は、個々のノイズ・レベルを判定することができる。スコアリング・コンポーネント９０２は、（例えば、重み付けコンポーネント７０６を介して）１つまたは複数のノイズ・インジケータの個々の出力に適用された個々の重みに基づいて、ノイズ・レベルの全てに対するトータル値（例えば単一の値）を決定することができる。命令コンポーネント１０４は、スコアリング・コンポーネント９０２によって決定されたトータル値に基づいてスロットル・レベルを適用することができる。
【００５３】
さらに詳細に、図１０は、本明細書において説明される１つまたは複数の実施形態による、様々なノイズ・インジケータから受信した情報に基づいて、連続的な（または間断ない）スロットル・レベルを実行するシステム１０００の非限定的な例を示す。本明細書において説明される他の実施形態において用いられる同様の要素を繰返し説明することは、簡潔さのために省略される。
【００５４】
システム１０００は、システム１００、システム２００、システム３００、システム７００、システム８００、またはシステム９００、あるいはその組合せのコンポーネントまたは機能あるいはその両方の１つまたは複数を含むことができ、逆もまた同様である。システム１０００は、少なくとも１つのローカル事後対応型ノイズ・センサ１００２、少なくとも１つのローカル事前対応型ノイズ・センサ１００４、および少なくとも１つのローカル・クリティカル・パス・モニタ１００６（例えば、ローカル・ノイズ・インジケータ８０２）を備えることができる。さらに、システム１０００は、１つまたは複数の事後対応型リモート・ノイズ・センサ１００８、１つもしくは複数の事前対応型リモート・ノイズ・センサ１０１０、または１つもしくは複数のリモート・クリティカル・パス・モニタ１０１２（例えば、リモート・ノイズ・インジケータ８０４）、あるいはその組合せを備えることができる。１つまたは複数のセンサまたはインジケータは、ノイズ情報（例えば入力データ１１２）として表現されるノイズを測定することができる。様々なセンサからの個々のノイズ情報は、（例えば、重み付けコンポーネント７０６およびスコアリング・コンポーネント９０２を介して）重みを付けられ、スコアを付けられることが可能である。
【００５５】
このようにして、少なくとも１つのローカル事後対応型ノイズ・センサ１００２によって測定された情報は、第１の重み１０１４１を割り当てられることが可能であり、第１の重み１０１４１を乗じた測定の結果は、少なくとも１つのローカル事後対応型ノイズ・センサ１００２に対する第１のスコア１０１６１を生じることができる。さらに、少なくとも１つのローカル事前対応型ノイズ・センサ１００４によって測定された情報は、第２の重み１０１４２を割り当てられることが可能であり、第２の重み１０１４２を乗じた測定の結果は、少なくとも１つのローカル事前対応型ノイズ・センサ１００４に対する第２のスコア１０１６２を生じることができる。少なくとも１つのローカル・クリティカル・パス・モニタ１００６によって測定された情報は、第３の重み１０１４３を割り当てられることが可能であり、第３の重み１０１４３を乗じた測定の結果は、少なくとも１つのローカル・クリティカル・パス・モニタ１００６に対する第３のスコア１０１６３を生じることができる。
【００５６】
さらに、１つまたは複数の事後対応型リモート・ノイズ・センサ１００８によって測定された情報は、個々の第４の重み１０１４４を割り当てられることが可能であり、１つまたは複数の事後対応型リモート・ノイズ・センサ１００８に対する結果として生じる第４のスコア１０１６４が決定されることが可能である。１つまたは複数の事前対応型リモート・ノイズ・センサ１０１０によって測定された情報は、個々の第５の重み１０１４５を割り当てられることが可能であり、１つまたは複数の事前対応型リモート・ノイズ・センサ１０１０に対する結果として生じる第５のスコア１０１６５が決定されることが可能である。さらに、１つまたは複数のリモート・クリティカル・パス・モニタ１０１２によって測定された情報は、個々の第６の重み１０１４６を割り当てられることが可能であり、１つまたは複数のリモート・クリティカル・パス・モニタ１０１２に対する結果として生じる第６のスコア１０１６６が決定されることが可能である。
【００５７】
１つまたは複数のセンサに適用される重みは、個々のセンサの正確性または信頼性あるいはその両方に基づくことが可能である。スコアは、負または正であり得る。実装形態によれば、負のスコアは、ノイズ無し（または定義済ノイズ・レベルを下回るノイズ）が測定されたことを示すことができ、正のスコアは、ノイズの存在を示すことができる。しかし、いくつかの実装形態において、負のスコアは、ノイズの存在を示すことができ、一方で、正のスコアは、ノイズ無しが測定されたことを示すことができる。
【００５８】
第１のスコア１０１６１、第２のスコア１０１６２、第３のスコア１０１６３、第４のスコア１０１６４、第５のスコア１０１６５、または第６のスコア１０１６６、あるいはその組合せは、例えば、スコアリング・コンポーネント９０２によって総スコア１０１８として組み合わせられることが可能である。総スコア１０１８に少なくとも部分的に基づいて、選択されたスロットル・レベル１０２０が、（例えば、命令コンポーネント１０４を介して）適用されることが可能である。例えば、スロットル・レベル１０２０は、全体的なスコアをスロットル・レベルにつなげることができるテーブル１０２２に基づいて計算されることが可能である。例として、また限定ではなく、上記で論じられたテーブル１の例またはテーブル２の例あるいはその両方が利用されることが可能である。
【００５９】
図１１は、本明細書において説明される１つまたは複数の実施形態による、プロセッサ・コアにおいて実行された１つまたは複数の事前対応型ドループ軽減対策に基づいてフィードバック・ループを提供するためのシステム１１００の非限定的な例を示す。本明細書において説明される他の実施形態において用いられる同様の要素を繰返し説明することは、簡潔さのために省略される。
【００６０】
システム１１００は、システム１００、システム２００、システム３００、システム７００、システム８００、システム９００、またはシステム１０００、あるいはその組合せのコンポーネントまたは機能あるいはその両方の１つまたは複数を含むことができ、逆もまた同様である。検出コンポーネント１１０２は、プロセッサ・コアの第２のステージにおける電圧ドループ・イベントの発生を判定することができる。例えば、監視コンポーネント１０２が、プロセッサ・パイプラインの第１のステージにおいて１つまたは複数のイベントを検出した。第１のステージにおけるイベントは、第２のステージにおいて電圧ドループが発生すると予想されることを予測するために使用された。したがって、検出コンポーネント１１０２は、プロセッサ・コアの第２のステージにおいて予想される電圧ドループが実際に発生したかどうかを判定することができる。
【００６１】
検出コンポーネント１１０２による判定は、プロセッサ・パイプラインの第２のステージにおいて、電圧測定コンポーネント１１０４によって測定電圧に基づいて行われることが可能である。測定電圧は、電圧比較コンポーネント１１０６によって予想電圧と比較されることが可能である。測定電圧が、定義済電圧レベルによる予想電圧とは異なる場合、これは、例えば、電圧ドループが発生しなかったということ、または電圧ドループが予想より大きかったということを示すことができる。
【００６２】
追跡コンポーネント１１０８は、検出コンポーネント１１０２による判定に関する情報を保持することができる。例えば、保持される情報は、イベント（または１つもしくは複数のイベント）が定義済イベントであり、第２のステージにおける予想される電圧ドループの原因となったという判定であり得る。情報は、（例えば、少なくとも１つのメモリ１０８に）履歴情報として保持されることが可能である。履歴情報は、本明細書において論じられる様々な態様に応じて、その後の事前対応型予測および電圧低減または電圧軽減あるいはその両方の対策中に利用されることが可能である。
【００６３】
図１２は、本明細書において説明される１つまたは複数の実施形態による、論理フロー１２００に対する電力プレディクタ信号を利用する実装形態の非限定的な例を示す。本明細書において説明される他の実施形態において用いられる同様の要素を繰返し説明することは、簡潔さのために省略される。
【００６４】
図示のように、入力は、個々の電力プレディクタ信号、すなわち、第１の電力プレディクタ信号１２０２１、第２の電力プレディクタ信号１２０２２から、第Ｎの電力プレディクタ信号１２０２Ｎまでを含むことができ、ここで、Ｎは整数である。個々の電力プレディクタ信号１２０２１、１２０２２から１２０２Ｎまでは、（例えば、プロセッサ・コアの第２のステージにおける）将来の活動の早期のパイプライン指示である信号であり得る。
【００６５】
電力予測信号１２０２１、１２０２２から１２０２Ｎまでは、（正方形のボックス内の「Ｄ」によって示された）１つまたは複数のプログラム可能な遅延を通じて処理されることが可能である。様々な電力プレディクタに対して４つのプログラム可能な遅延が示されているが、任意の数のプログラム可能な遅延が利用されることが可能であり、開示された態様は、４つのプログラム可能な遅延に限定されない。
【００６６】
１つまたは複数のプログラム可能な遅延の出力が選択されることが可能であり、重みが適用されることが可能である。例えば、第１の電力プレディクタ信号１２０２１の出力が選択されること１２０４１が可能であり、第１の重み１２０６１が第１の値を決定するために適用されることが可能である。さらに、第２の電力プレディクタ信号１２０２２の出力が選択されること１２０４２が可能であり、第２の重み１２０６２が第２の値を決定するために適用されることが可能である。さらに、第Ｎの電力プレディクタ信号１２０２Ｎの出力が選択されること１２０４Ｎが可能であり、第Ｎの重み１２０６Ｎが第Ｎの値を決定するために適用されることが可能である。
【００６７】
第１の値、第２の値から第Ｎの値までの合計１２０８が決定されることが可能である。合計１２０８は、（正方形のボックス内の「Ｄ」によって示された）１つまたは複数のさらなるプログラム可能な遅延、および（正方形のボックス内の「Ｍ」によって示された）１つまたは複数のマスクを通じて処理されることが可能である。プログラム可能な遅延は、より良い使用可能性のためにポスト・シリコンにおいてロジックを同調させるために利用されることが可能である。例えば、プログラム可能であることは、ポスト・シリコンにおける訂正に柔軟性をもたらすことができる。
【００６８】
プログラム可能な遅延およびマスクの出力と関連付けられた個々の合計が決定されることが可能である。例えば、第１の合計１２１０および第２の合計１２１２が決定されることが可能であり、第１の合計１２１０と第２の合計１２１２との間の相違１２１４が評価されることが可能である。相違１２１４が定義値１２１６より小さい場合、事前対応型スロットル１２１８が適用されることが可能である（例えば、スロットルするという命令が出力されることが可能である）。したがって、構成可能なロジックは、結果の較正を可能にすることができ、事前対応型スロットルのための新しい設定が定義されることが可能である。さらなる詳細は、図１３〜図１６について下記において提供される。
【００６９】
図１３は、本明細書において説明される１つまたは複数の実施形態による、電力プレディクタ信号を利用する実装形態の非限定的な別の例を示す。本明細書において説明される他の実施形態において用いられる同様の要素を繰返し説明することは、簡潔さのために省略される。論理フロー１３００のサイクル毎の活動が図１３において示される。
【００７０】
図示のように、論理フロー１２００の結果（例えば、定義値１２１６と比較したときの第１の合計１２１０と第２の合計１２１２との間の相違１２１４）は、事後対応型軽減ロジックからの結果とともに論理ゲートに入力されることが可能である。例えば、１つまたは複数のリモート事後対応型センサ１３０２（例えば、リモート・ノイズ・インジケータ８０４、事後対応型ノイズ・センサ、など）からの結果は、１３０４において、個々のプログラム可能な遅延を通じて入力され、相互に追加されることが可能である。１つまたは複数のリモート事後対応型センサの結果として生じた値１３０４は、図１２の論理フロー１２００の結果と組み合わされることが可能である。
【００７１】
さらに、ローカル・ノイズ値１３０６およびクリティカル・パス・モニタ１３０８からの値が利用されることが可能であり、スロットル訂正１３１０が適用されることが可能である。スロットル訂正１３１０の結果は、スロットル１３１２のためのサイクル数を決定するために、ｘ回のプロセッサ・ユニット・サイクル（Ｄｘ）の遅延を通じて処理された、論理フロー１２００と１つまたは複数のリモート事後対応型センサ１３０２からの情報との組合せとともに含まれることが可能である。図１２および図１３のプログラム可能な遅延は、ロジックのための時間がハードウェアにおいて実行され、行われることを可能にするために利用されることが可能である。さらなる詳細は、図１４〜図１６について下記において提供される。
【００７２】
図１４は、本明細書において説明される１つまたは複数の実施形態による、中間周波数ドループ軽減のための論理フロー１４００の非限定的な例を示す。本明細書において説明される他の実施形態において用いられる同様の要素を繰返し説明することは、簡潔さのために省略される。
【００７３】
事後対応型センサ１４０２（例えば、事後対応型実装形態）は、１つまたは複数の電力プロキシ・イベント１４０４を受信することができる。さらに、事前対応型センサ１４０６（例えば、事前対応型実装形態）は、１つまたは複数の電力プロキシ・イベント１４０８を受信することができる。電力プロキシ・イベント１４０４および電力プロキシ・イベント１４０８は同じイベントであることが可能であり、またはプロキシ・イベントのうちの少なくともいくつかは、異なるイベントであり得る。
【００７４】
第１の比較１４１０は、事後対応型センサ１４０２の出力と定義値との間で行われることが可能である。第１の比較１４１０に基づいて、スロットルは、１４１２において、第１の定義数のサイクル（例えば、Ｍ３サイクル）に対して行われることが可能である。事前対応型センサ１４０６の出力は、２つの異なる方式で評価されることが可能である。第１に、事前対応型センサ１４０６の出力は、傾き１４１４、および定義値と比較１４１６を行われた出力に入力されることが可能である。スロットルは、１４１８において、第２の定義数のサイクル（例えば、Ｍ２サイクル）に対して行われることが可能である。第２の実装形態において、事前対応型センサ１４０６の出力は、定義値と比較１４２０を行われることが可能であり、比較に基づいて、スロットルは、１４２２において、第３の定義数のサイクル（例えば、Ｍ１サイクル）に対して行われることが可能である。
【００７５】
１４１２、１４１８、および１４２２におけるスロットル判定は、ＯＲ判定ブロック１４２４を通じて処理されることが可能であり、ロジックに対応するスロットル信号は、１つまたは複数のプロセッサ・コアに送信されることが可能である。例えば、スロットル判定は、例えば図３について示され、説明されたように、プロセッサ・コアに送信されることが可能である。
【００７６】
図１５は、本明細書において説明される１つまたは複数の実施形態による、論理フロー１５００の非限定的な別の例を示す。本明細書において説明される他の実施形態において用いられる同様の要素を繰返し説明することは、簡潔さのために省略される。
【００７７】
図示のように、事後対応型センサ１４０２は、１つまたは複数の電力プロキシ・イベント１４０４を受信することができる。事前対応型センサ１４０６は、１つまたは複数の事前対応型イベント１５０２を受信することができる。本実装形態において、事前対応型センサ１４０６は、実際のｄ（ｉ）／ｄ（ｔ）イベントより前のサイクルの定義数あたりの電圧ドループを、事前対応型センサ１４０６が予測することができる場合に有益である可能性がある。したがって、事前対応型センサ１４０６は、コア・レベルにおいて実行されることが可能である。サイクルの定義数は、情報がコアからネストに移送され、コアに戻ることになるサイクル数に基づいて決定されることが可能であるということに留意されたい。例えば、第１の比較１４１０は、Ｍ２サイクルに対するスロットル１５０４を生じることが可能であり、第２の比較１４２０は、Ｍ１サイクルに対するスロットル１５０６を生じることが可能である。スロットル判定１５０４および１５０６は、ＯＲ判定ブロック１５０８を通じて処理されることが可能であり、スロットル命令は伝送されることが可能である。非限定的な例において、情報移送のためのサイクル数は約２５サイクルであることが可能であり、したがって、サイクルの定義数は１０から２０サイクルであり得る。しかし、開示された態様は、これらのサイクル数に限定されない。
【００７８】
図１６は、本明細書において説明される１つまたは複数の実施形態による、論理フロー１６００の非限定的な別の例を示す。本明細書において説明される他の実施形態において用いられる同様の要素を繰返し説明することは、簡潔さのために省略される。
【００７９】
図示のように、事前対応型成功インジケータ１６０２が利用されることが可能である。事前対応型成功インジケータ１６０２は、異常な事前対応型エンゲージメントから保護することができる。事前対応型成功インジケータ１６０２は、フィードバック・ループの一部であり得る。例えば、事前対応型成功インジケータ１６０２は、図１のフィードバック・コンポーネント１０６であり得る。
【００８０】
オフライン診断モードおよびオンライン・モードという、事前対応型成功インジケータが動作することができる２つのモードが存在することが可能である。オフライン診断モードにおいて、ノイズが予測されている場合、これは記録されることが可能であるが、スロットル信号は生成されない。ローカル・クリティカル・パス・モニタ（ＣＰＭ：critical path monitor）情報は、次に、ノイズが実際に発生したかどうかを検証するために使用されることが可能である。
【００８１】
オンライン・モードについて、ノイズが予測されている場合、スロットル信号は生成され、パイプラインに挿入されることが可能である。このスロットル信号の結果として緩和されたノイズの量は推定され、後でローカルＣＰＭ情報と比較されることが可能である。両方の情報がマッチするか、定義されたエラー量の範囲内にある場合、成功が宣言されることが可能である。
【００８２】
図１７は、本明細書において説明される１つまたは複数の実施形態による、プロセッサ・コアにおける事前対応型電圧ドループ低減または軽減あるいはその両方のためのコンピュータ実行方法１７００の非限定的な例の流れ図を示す。本明細書において説明される他の実施形態において用いられる同様の要素を繰返し説明することは、簡潔さのために省略される。いくつかの実装形態によれば、コンピュータ実行方法１７００は、プロセッサ・コア、またはプロセッサを備えるシステム、あるいはその両方によって実行されることが可能である。
【００８３】
本明細書において論じられる様々な態様は、短期間の電力の急激な変化を予測するためのプレディクタ（またはインジケータ）として、ディープ・パイプライン・プロセッサの早期のステージから選択されたイベントを利用する事前対応型ドループ軽減に関する。選択されたイベントの早期情報は、パイプラインを通じてフローをスロットルし、急激な電力変化が実際に起こる前に急激な電力変化を阻止することで電圧ドループの低減または緩和あるいはその両方を行うことを可能にする。したがって、様々な態様は、実際の電力変化または電圧ドループが起こる前に軽減の開始を行い、したがって、電圧ドループの規模の低減または最小化あるいはその両方を行うことが可能である。
【００８４】
コンピュータ実行方法１７００の１７０２において、（例えば、監視コンポーネント１０２を介して）プロセッサ・パイプラインの第１のステージにおいて発生している定義済イベントの検出に基づいて、電圧ドループ・イベントが予測されることが可能である。定義済イベントは、プロセッサ・パイプラインの第２のステージの中で電力消費量を増加させることを決定されたイベントであり得る。実装形態によれば、定義済イベントは、１つまたは複数の定義済イベントから選択されることが可能である。さらに、本実装形態に対して、１つまたは複数の定義済イベントは、プロセッサ・パイプラインの第２のステージの中で電力消費量を増加させるために決定されることが可能である。
【００８５】
電圧ドループ軽減対策は、コンピュータ実行方法１７００の１７０４において、（例えば、命令コンポーネント１０４を介して）コンピュータ実行方法１７００の１７０２における予測に基づいて適用されることが可能である。第２のステージは、第１のステージと同時またはその後に定義数のサイクルを発生させる。実装形態によれば、電圧ドループ軽減対策を適用することは、第２のステージの中で電力消費量の増加の前に行われることが可能である。
【００８６】
いくつかの実装形態によれば、電圧ドループ軽減対策を適用することは、（例えば、ノイズ・レベル分析コンポーネント７０４または電圧比較コンポーネント１１０６あるいはその両方を介して）活動レベルが、第２のステージにおいて、定義された活動レベルを満たし、リモート・ノイズ・レベルが、第２のステージにおいて、定義されたリモート・ノイズを満たすという判定に基づいて、スロットル信号を生成することを含むことができる。
【００８７】
いくつかの実装形態によれば、予測することは、（例えば、スコアリング・コンポーネント９０２を介して）第１のインジケータからの第１の加重値と、少なくとも第２のインジケータからの少なくとも第２の加重値との組合せにスコアを付けることを含むことができる。さらに、本実装形態に対して、電圧ドループ軽減対策を適用することは、第１の加重値と少なくとも第２の加重値との組合せに基づいて、スロットル・レベルを計算することを含むことができる。
【００８８】
いくつかの実装形態において、予測された電力消費量が発生しなかったという判定が行われることが可能である。したがって、これらの実装形態によれば、コンピュータ実行方法１７００は、（例えば、電圧比較コンポーネント１１０６を介して）プロセッサ・パイプラインの第２のステージの中で電力消費量が増加しなかったという判定に基づいて、電圧ドループ軽減対策を終わらせることを含むことができる。
【００８９】
図１８は、本明細書において説明される１つまたは複数の実施形態による、ローカル・ノイズ・レベルを測定することに基づいて事前対応型軽減対策を選択的に調節するためのコンピュータ実行方法１８００の非限定的な例の流れ図を示す。本明細書において説明される他の実施形態において用いられる同様の要素を繰返し説明することは、簡潔さのために省略される。いくつかの実装形態によれば、コンピュータ実行方法１８００は、プロセッサ・コア、またはプロセッサを備えるシステム、あるいはその両方によって実行されることが可能である。
【００９０】
コンピュータ実行方法１８００の１８０２において、（例えば、監視コンポーネント１０２を介して）プロセッサ・パイプラインの第１のステージにおいて発生している定義済イベントの検出に基づいて、電圧ドループ・イベントが予測されることが可能である。定義済イベントは、プロセッサ・パイプラインの第２の（または後の）ステージの中で電力消費量を増加させることを決定されたイベントであり得る。コンピュータ実行方法１８００の１８０４において、予測に基づいて、（例えば、命令コンポーネント１０４を介して）電圧ドループ軽減対策が適用されることが可能である。
【００９１】
１８０６において、（例えば、測定コンポーネント７０２を介して）ローカル・ノイズ・レベルが測定されることが可能であり、コンピュータ実行方法１８００の１８０８において、（例えば、ノイズ・レベル分析コンポーネント７０４を介して）定義済ノイズ・レベルをローカル・ノイズ・レベルが上回るかどうかについての判定が行われることが可能である。定義済ノイズ・レベルをローカル・ノイズ・レベルが上回ると判定された場合（「はい」）、コンピュータ実行方法１８００の１８１０において、スロットル信号の中で示されたスロットル・レベルは、（例えば、命令コンポーネント１０４を介して）維持されることが可能である。しかし、定義済ノイズ・レベルをローカル・ノイズ・レベルが上回らないと１８０８において判定された場合（「いいえ」）、コンピュータ実行方法１８００の１８１２において、スロットル信号の中で示されたスロットル・レベルは、（例えば、命令コンポーネント１０４を介して）低減されることが可能である。
【００９２】
図１９は、本明細書において説明される１つまたは複数の実施形態による、ローカル・ノイズ・レベルおよびリモート・ノイズ・レベルに基づいて事前対応型軽減対策を選択的に調節するためのコンピュータ実行方法１９００の非限定的な例の流れ図を示す。本明細書において説明される他の実施形態において用いられる同様の要素を繰返し説明することは、簡潔さのために省略される。いくつかの実装形態によれば、コンピュータ実行方法１９００は、プロセッサ・コア、またはプロセッサを備えるシステム、あるいはその両方によって実行されることが可能である。
【００９３】
コンピュータ実行方法１９００の１９０２において、（例えば、監視コンポーネント１０２を介して）プロセッサ・パイプラインの第１のステージにおいて発生している定義済イベントの検出に基づいて、電圧ドループ・イベントが予測されることが可能である。定義済イベントは、プロセッサ・パイプラインの第２の（または後の）ステージの中で電力消費量を増加させることを決定されたイベントであり得る。コンピュータ実行方法１９００の１９０４において、予測に基づいて、（例えば、命令コンポーネント１０４を介して）電圧ドループ軽減対策が適用されることが可能である。
【００９４】
コンピュータ実行方法１９００の１９０６において、（例えば、ノイズ・レベル判定コンポーネント８０６を介して）第１のノイズ・スコアがローカル・ノイズ・インジケータから受信されることが可能であり、第２のノイズ・スコアがリモート・ノイズ・インジケータから受信されることが可能である。負のスコアは、ノイズが検出されなかったことを示すことができ、正のスコアは、ノイズが検出されたことを示すことができる。しかし、開示された態様は、この実装形態に限定されない。
【００９５】
コンピュータ実行方法１９００の１９０８において、（例えば、スコアリング・コンポーネント９０２を介して）第１のノイズ・スコアと第２のノイズ・スコアの組合せに基づいて、全体ノイズ・スコアが決定されることが可能である。スロットル・レベルは、（例えば、命令コンポーネント１０４を介して）全体ノイズ・スコアと定義済スロットル・レベルとの間の相関性に基づいて、コンピュータ実行方法１９００の１９１０において計算されることが可能である。
【００９６】
図２０は、本明細書において説明される１つまたは複数の実施形態による、オフライン診断モード中に電圧ドループ軽減対策を選択的に適用するためのコンピュータ実行方法２０００の非限定的な例の流れ図を示す。本明細書において説明される他の実施形態において用いられる同様の要素を繰返し説明することは、簡潔さのために省略される。いくつかの実装形態によれば、コンピュータ実行方法２０００は、プロセッサ・コア、またはプロセッサを備えるシステム、あるいはその両方によって実行されることが可能である。
【００９７】
コンピュータ実行方法２０００の２００２において、（例えば、監視コンポーネント１０２を介して）プロセッサ・パイプラインの第１のステージにおいて発生している定義済イベントの検出に基づいて、電圧ドループ・イベントが予測されることが可能である。定義済イベントは、プロセッサ・パイプラインの第２の（または後の）ステージの中で電力消費量を増加させることを決定されたイベントであり得る。コンピュータ実行方法２０００の２００４において、予測に基づいて、（例えば、命令コンポーネント１０４を介して）電圧ドループ軽減対策が適用されることが可能である。
【００９８】
電圧ドループ・イベントの予測の指示は、コンピュータ実行方法２０００の２００６において、（例えば、追跡コンポーネント１１０８を介して）記録されることが可能である。コンピュータ実行方法２０００の２００８において、（例えば、検出コンポーネント１１０２を介して）電圧ドループ・イベントが発生したかどうかが判定されることが可能である。スロットル信号は、オフライン診断モード中に生成されなかった。さらに、コンピュータ実行方法２０００の２０１０において、判定の指示および結果は、（例えば、追跡コンポーネント１１０８を介して）履歴診断情報として保持されることが可能である。
【００９９】
図２１は、本明細書において説明される１つまたは複数の実施形態による、オンライン・モード中に電圧ドループ軽減対策を選択的に適用するためのコンピュータ実行方法２１００の非限定的な例の流れ図を示す。本明細書において説明される他の実施形態において用いられる同様の要素を繰返し説明することは、簡潔さのために省略される。いくつかの実装形態によれば、コンピュータ実行方法２１００は、プロセッサ・コア、またはプロセッサを備えるシステム、あるいはその両方によって実行されることが可能である。
【０１００】
コンピュータ実行方法２１００の２１０２において、（例えば、監視コンポーネント１０２を介して）プロセッサ・パイプラインの第１のステージにおいて発生している定義済イベントの検出に基づいて、電圧ドループ・イベントが予測されることが可能である。定義済イベントは、プロセッサ・パイプラインの第２の（または後の）ステージの中で電力消費量を増加させることを決定されたイベントであり得る。いくつかの実装形態によれば、オンライン・モード中に、予測は、ノイズ・レベルに基づいて行われることが可能である。コンピュータ実行方法２１００の２１０４において、予測に基づいて、（例えば、命令コンポーネント１０４を介して）電圧ドループ軽減対策が適用されることが可能である。
【０１０１】
コンピュータ実行方法２１００の２１０６において、生成されたスロットル信号は、（例えば、命令コンポーネント１０４を介して）プロセッサ・パイプラインに挿入されることが可能である。生成されたスロットル信号の結果として緩和されるノイズの量は、コンピュータ実行方法２１００の２１０８において、（例えば、ノイズ・レベル判定コンポーネント８０６を介して）推定されることが可能である。コンピュータ実行方法２１００の２１１０において、（例えば、フィードバック・コンポーネント１０６を介して）緩和されたノイズの量とローカルの検出された電圧変化情報との間の相違が、定義範囲内にあるかどうかについての判定が行われることが可能である。
【０１０２】
相違が定義範囲内にない場合（「いいえ」）、コンピュータ実行方法２１００は、２１１０において、第２のステージの中で電力消費量の影響を電圧ドループ軽減対策が緩和しなかったという判定に基づいてスロットル信号を生成し続けることができる。代替として、相違が定義範囲内にある場合（「はい」）、コンピュータ実行方法２１００は、２１１２において、第２のステージの中で電力消費量の影響を電圧ドループ軽減対策が緩和したという判定に基づいて、生成されたスロットル信号を停止することができる。
【０１０３】
さらに、コンピュータ実行方法２１００の２１１０において、（例えば、フィードバック・コンポーネント１０６を介して）緩和されたノイズの量とローカルの検出された電圧変化情報との間の相違が定義範囲を超えなかったという判定に基づいて、第２のステージの中で電力消費量の影響を電圧ドループ軽減対策が緩和したということが判定されることが可能である。
【０１０４】
説明の簡略化のために、コンピュータ実行方法は、一連の行為として描写され、説明される。本発明は、示された行為によって、または行為の順序によって、あるいはその両方によって限定されず、例えば、行為は、様々な順序で、または並行に、あるいはその両方で、また、本明細書において提示も説明も行われていない他の行為で、発生することが可能であるということが理解され、正しく認識されよう。さらに、全ての示された行為が、開示の主題によるコンピュータ実行方法を実行するために必要とされる可能性があるわけではない。さらに、コンピュータ実行方法は、代替として、状態図またはイベントを介して一連の相関状態として表現されることが可能であるということを、当業者は理解し、正しく認識するであろう。追加として、以下に、また、全体を通して本明細書において開示されたコンピュータ実行方法は、このようなコンピュータ実行方法をコンピュータに輸送および移送することを容易にするために、製品に格納されることができるということがさらに正しく認識されよう。製品という用語は、本明細書において使用されるように、任意のコンピュータ可読デバイスまたはストレージ媒体からアクセス可能なコンピュータ・プログラムを包含することを意図するものである。
【０１０５】
開示の主題の様々な態様に関するコンテキストを提供するために、図２２ならびに以下の議論は、開示の主題の様々な態様が実行されることが可能な適切な環境の全体的な説明を行うことを意図するものである。図２２は、本明細書において説明される１つまたは複数の実施形態が容易にされることが可能な動作環境の非限定的な例のブロック図を示す。本明細書において説明される他の実施形態において用いられる同様の要素を繰返し説明することは、簡潔さのために省略される。図２２について、本開示の様々な態様を実行するのに適した動作環境２２００は、コンピュータ２２１２を含むこともできる。コンピュータ２２１２は、処理ユニット２２１４、システム・メモリ２２１６、およびシステム・バス２２１８を含むこともできる。システム・バス２２１８は、システム・メモリ２２１６を含むがこれらに限定されないシステム・コンポーネントを、処理ユニット２２１４に連結する。処理ユニット２２１４は、様々な利用可能なプロセッサのいずれかであり得る。デュアル・マイクロプロセッサおよび他のマルチプロセッサ・アーキテクチャも、処理ユニット２２１４として用いられることが可能である。システム・バス２２１８は、メモリ・バスもしくはメモリ・コントローラ、周辺機器バスもしくは外部バス、または、インダストリアル・スタンダード・アーキテクチャ（ＩＳＡ）、マイクロチャネル・アーキテクチャ（ＭＳＡ）、拡張ＩＳＡ（ＥＩＳＡ）、インテリジェント・ドライブ・エレクトロニクス（ＩＤＥ）、ＶＥＳＡローカル・バス（ＶＬＢ）、ペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）、カード・バス、ユニバーサル・シリアル・バス（ＵＳＢ）、アドバンスト・グラフィックス・ポート（ＡＧＰ）、Ｆｉｒｅｗｉｒｅ（ＩＥＥＥ１３９４）、およびスモール・コンピュータ・システム・インターフェース（ＳＣＳＩ）を含むがこれらに限定されない任意の様々な利用可能なバス・アーキテクチャを使用するローカル・バス、あるいはその組合せを含むいくつかのタイプのバス構造のいずれかであり得る。システム・メモリ２２１６は、揮発性メモリ２２２０および不揮発性メモリ２２２２を含むこともできる。スタート・アップなどの間にコンピュータ２２１２内の要素間で情報を移送するための基本ルーチンを収めるベーシック・インプット／アウトプット・システム（ＢＩＯＳ）は、不揮発性メモリ２２２２に格納される。限定ではなく例証として、不揮発性メモリ２２２２は、リード・オンリ・メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、電気的プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、または不揮発性ランダム・アクセス・メモリ（ＲＡＭ）（例えば、強誘電体ＲＡＭ（ＦｅＲＡＭ））を含むことができる。揮発性メモリ２２２０は、外部キャッシュ・メモリとして機能するランダム・アクセス・メモリ（ＲＡＭ）を含むこともできる。限定ではなく例証として、ＲＡＭは、スタティックＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、ダブル・データ・レートＳＤＲＡＭ（ＤＤＲ  ＳＤＲＡＭ）、エンハンストＳＤＲＡＭ（ＥＳ���ＲＡＭ）、シンクリンクＤＲＡＭ（ＳＬＤＲＡＭ）、ダイレクトＲａｍｂｕｓ  ＲＡＭ（ＤＲＲＡＭ）、ダイレクトＲａｍｂｕｓダイナミックＲＡＭ（ＤＲＤＲＡＭ）、およびＲａｍｂｕｓダイナミックＲＡＭなどの多くの形式で利用可能である。
【０１０６】
コンピュータ２２１２は、取外し可能な／取外し不能な、揮発性の／不揮発性のコンピュータ・ストレージ媒体を含むこともできる。図２２は、例えば、ディスク・ストレージ２２２４を示す。ディスク・ストレージ２２２４は、磁気ディスク・ドライブ、フロッピー（Ｒ）・ディスク・ドライブ、テープ・ドライブ、Ｊａｚドライブ、Ｚｉｐドライブ、ＬＳ−１００ドライブ、フラッシュ・メモリ・カード、またはメモリ・スティックのようなデバイスを含むこともできるがこれらに限定されない。ディスク・ストレージ２２２４は、コンパクト・ディスクＲＯＭデバイス（ＣＤ−ＲＯＭ）、ＣＤレコーダブル・ドライブ（ＣＤ−Ｒドライブ）、ＣＤリライタブル・ドライブ（ＣＤ−ＲＷドライブ）、またはデジタル多用途ディスクＲＯＭドライブ（ＤＶＤ−ＲＯＭ）などの光ディスク・ドライブを含むがこれらに限定されないストレージ媒体を別々に、または他のストレージ媒体と組み合わせて含むこともできる。ディスク・ストレージ２２２４からシステム・バス２２１８への接続を容易にするために、インターフェース２２２６などの取外し可能または取外し不能なインターフェースが典型的に使用される。図２２は、ユーザと、適切な動作環境２２００において説明された基本的なコンピュータ・リソースとの間の中間体として機能するソフトウェアも描写する。このようなソフトウェアは、例えば、オペレーティング・システム２２２８を含むこともできる。オペレーティング・システム２２２８は、ディスク・ストレージ２２２４に格納されることが可能であり、コンピュータ２２１２のリソースを制御し、配分するように機能する。システム・アプリケーション２２３０は、例えば、システム・メモリ２２１６またはディスク・ストレージ２２２４に格納されたプログラム・モジュール２２３２およびプログラム・データ２２３４を通じてオペレーティング・システム２２２８によるリソースの管理を利用する。本開示は、様々なオペレーティング・システム、またはオペレーティング・システムの組合せによって実行されることが可能であるということが正しく認識されよう。ユーザは、入力デバイス２２３６を通じてコマンドまたは情報をコンピュータ２２１２にエンターする。入力デバイス２２３６は、マウス、トラックボール、スタイラス、タッチ・パッド、キーボード、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星パラボラ・アンテナ、スキャナ、ＴＶチューナ・カード、デジタル・カメラ、デジタル・ビデオ・カメラ、ウェブ・カメラ、および同様のものなどのポインティング・デバイスを含むがこれらに限定されない。これらおよび他の入力デバイスは、インターフェース・ポート２２３８を介してシステム・バス２２１８を通じて処理ユニット２２１４に接続する。インターフェース・ポート２２３８は、例えば、シリアル・ポート、パラレル・ポート、ゲーム・ポート、およびユニバーサル・シリアル・バス（ＵＳＢ）を含む。出力デバイス２２４０は、入力デバイス２２３６と同じタイプのポートのうちのいくつかを使用する。したがって、例えば、ＵＳＢポートは、コンピュータ２２１２への入力を行うため、およびコンピュータ２２１２から出力デバイス２２４０に情報を出力するために使用されることが可能である。出力アダプタ２２４２は、出力デバイス２２４０の中でも、モニタ、スピーカ、およびプリンタのようないくつかの出力デバイス２２４０があることを示すために提供され、出力デバイス２２４０は特殊なアダプタを必要とする。出力アダプタ２２４２は、限定ではなく例証として、出力デバイス２２４０とシステム・バス２２１８との間の接続の方法を提供するビデオおよびサウンド・カードを含む。他のデバイスまたはデバイスのシステムあるいはその両方は、リモート・コンピュータ２２４４などの入力と出力の両方の能力を提供するということに留意されたい。
【０１０７】
コンピュータ２２１２は、リモート・コンピュータ２２４４などの１つまたは複数のリモート・コンピュータへの論理接続を使用してネットワーク化された環境において動作することができる。リモート・コンピュータ２２４４は、コンピュータ、サーバ、ルータ、ネットワークＰＣ、ワークステーション、マイクロプロセッサ・ベースの機器、ピア・デバイスまたは他の共通のネットワーク・ノード、および同様のものであることが可能であり、典型的には、コンピュータ２２１２に関して説明された要素の多くまたは全てを含むこともできる。簡潔さのために、メモリ・ストレージ・デバイス２２４６だけが、リモート・コンピュータ２２４４とともに示されている。リモート・コンピュータ２２４４は、ネットワーク・インターフェース２２４８を通じてコンピュータ２２１２に論理接続され、次に、通信接続２２５０を介して物理接続される。ネットワーク・インターフェース２２４８は、ローカル・エリア・ネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、セルラー・ネットワーク、等などのワイヤ通信ネットワークまたはワイヤレス通信ネットワークあるいはその両方を包含する。ＬＡＮ技術は、Ｆｉｂｅｒ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄａｔａ  Ｉｎｔｅｒｆａｃｅ（ＦＤＤＩ）、Ｃｏｐｐｅｒ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄａｔａ  Ｉｎｔｅｒｆａｃｅ（ＣＤＤＩ）、イーサネット（Ｒ）、トークン・リング、および同様のものを含む。ＷＡＮ技術は、ポイント・ツー・ポイント・リンク、統合サービス・デジタル・ネットワーク（ＩＳＤＮ）およびその変形物のような回線交換ネットワーク、パケット交換ネットワーク、ならびにデジタル加入者線（ＤＳＬ）を含むがこれらに限定されない。通信接続２２５０は、ネットワーク・インターフェース２２４８をシステム・バス２２１８に接続するために用いられるハードウェア／ソフトウェアを指す。通信接続２２５０は、例証的明瞭さのために、コンピュータ２２１２の中に示されているが、コンピュータ２２１２の外にあることも可能である。ネットワーク・インターフェース２２４８への接続のためのハードウェア／ソフトウェアは、例示的な目的のためだけに、通常の電話グレードのモデム、ケーブル・モデムおよびＤＳＬモデム、ＩＳＤＮアダプタ、ならびにイーサネット（Ｒ）・カードを含むモデムなどの内部技術および外部技術を含むこともできる。
【０１０８】
本発明は、統合の任意の可能な技術詳細レベルにおけるシステム、方法、装置、またはコンピュータ・プログラム製品、あるいはその組合せであり得る。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読ストレージ媒体を含むことができる。コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持および格納することができる有形デバイスであり得る。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、または前述のいずれかの適切な組合せであり得るがこれらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の完全に網羅されていないリストは、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリ・メモリ（ＲＯＭ）、消去可能プログラマブル・リード・オンリ・メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク・リード・オンリ・メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピー（Ｒ）・ディスク、パンチ・カードまたは命令が記録された溝の中の隆起構造などの機械的にエンコードされたデバイス、および前述のいずれかの適切な組合せを含むこともできる。コンピュータ可読ストレージ媒体は、本明細書において使用されるように、電波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体を通じて伝搬する電磁波（例えば、光ファイバ・ケーブルを通過する光パルス）、またはワイヤを通じて伝送される電気信号など、それ自体が一過性の信号であると解釈されるべきではない。
【０１０９】
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から個々のコンピューティング・デバイス／処理デバイスに、あるいは、例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、もしくはワイヤレス・ネットワーク、またはその組合せといったネットワークを介して外部コンピュータもしくは外部ストレージ・デバイスに、ダウンロードされることが可能である。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを含むことができる。各コンピューティング・デバイス／処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令をネットワークから受信し、個々のコンピューティング・デバイス／処理デバイス内のコンピュータ可読ストレージ媒体に格納するためにコンピュータ可読プログラム命令を転送する。本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ（ＩＳＡ）命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路構成のための構成データ、またはＳｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋、もしくは同様のものなどのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語もしくは類似のプログラミング言語などの手続型プログラミング言語を含む１つもしくは複数のプログラミング言語の任意の組合せで書かれたソース・コードもしくはオブジェクト・コードであり得る。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全面的に、ユーザのコンピュータ上で部分的に、スタンド・アロン・ソフトウェア・パッケージとして、ユーザのコンピュータ上で部分的におよびリモート・コンピュータ上で部分的にまたはリモート・コンピュータもしくはサーバ上で全面的に実行することができる。後者のシナリオにおいて、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）もしくは広域ネットワーク（ＷＡＮ）を含むネットワークのいずれかのタイプを通じてユーザのコンピュータに接続されることが可能であり、または接続は、（例えば、インターネット・サービス・プロバイダを使用してインターネットを通じて）外部コンピュータに対して行われることが可能である。いくつかの実施形態において、例えば、プログラマブル・ロジック回路構成、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはプログラマブル・ロジック・アレイ（ＰＬＡ）を含む電子回路構成は、本発明の態様を行うために、電子回路構成を個別化するためのコンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行することができる。
【０１１０】
本発明の態様は、本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品の流れ図またはブロック図あるいはその両方を参照しながら本明細書において説明される。流れ図またはブロック図あるいはその両方の各ブロック、および流れ図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実行されることが可能であるということが理解されよう。これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサによって実行する命令が、流れ図またはブロック図あるいはその両方の１つまたは複数のブロックにおいて指定された機能／行為を実行するための方法を作り出すべく、汎用コンピュータ、専用コンピュータ、または機械を生み出す他のプログラム可能データ処理装置のプロセッサに提供されることが可能である。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読ストレージ媒体が、流れ図またはブロック図あるいはその両方の１つまたは複数のブロックにおいて指定された機能／行為の態様を実行する命令を含む製品を備えるべく、特定の手法で機能するように、コンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはその組合せに指図することができるコンピュータ可読ストレージ媒体に格納されることも可能である。コンピュータ可読プログラム命令は、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行する命令が、流れ図またはブロック図あるいはその両方の１つまたは複数のブロックにおいて指定された機能／行為を実行するべく、コンピュータ実行処理を生み出すコンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作行為を行わせるために、コンピュータ、他のプログラム可能データ処理装置、または他のデバイス上にロードされることも可能である。
【０１１１】
図中の流れ図およびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実施形態のアーキテクチャ、機能、および動作を示す。この点に関して、流れ図およびブロック図の中の各ブロックは、指定された論理機能を実行するための１つまたは複数の実行可能命令を含む命令のモジュール、セグメント、または一部を表現することができる。いくつかの代替実施形態において、ブロック内に記された機能は、図中に記された順序とは異なる順序で発生することができる。例えば、連続して示された２つのブロックは、実際には、実質的に並行に実行されることが可能であり、またはブロックは、時には、関連する機能に応じて逆の順序で実行されることが可能である。ブロック図または流れ図あるいはその両方の各ブロック、およびブロック図または流れ図あるいはその両方におけるブロックの組合せは、指定された機能または行為を行うか、専用ハードウェアとコンピュータ命令の組合せを実行する専用ハードウェア・ベースのシステムによって実行されることが可能であるということにも留意されたい。
【０１１２】
１つのコンピュータまたは複数のコンピュータあるいはその両方で動くコンピュータ・プログラム製品のコンピュータ実行可能命令の一般的な背景の中で主題が上述されたが、本開示は、他のプログラム・モジュールと組み合わせて実行されることも可能であり、または実行されることが可能であるということを当業者は認識するであろう。一般に、プログラム・モジュールは、特定のタスクを行うこと、または特定の抽象データ型を実行すること、あるいはその両方を行うルーチン、プログラム、コンポーネント、データ構造、等を含む。その上、本発明のコンピュータ実行方法は、シングル・プロセッサまたはマルチプロセッサ・コンピュータ・システム、ミニ・コンピューティング・デバイス、メインフレーム・コンピュータ、ならびにコンピュータ、ハンドヘルド・コンピューティング・デバイス（例えば、ＰＤＡ、電話）、マイクロプロセッサ・ベースのまたはプログラム可能な消費者用または商業用電子機器、および同様のものを含む他のコンピュータ・システム構成で実践されることが可能であるということを当業者は理解するであろう。示された態様は、通信ネットワークを通じてリンクされたリモート処理デバイスによってタスクが行われる分散コンピューティング環境において実践されることも可能である。しかし、本開示の全てとはいわないまでもいくつかの態様は、スタンド・アロン・コンピュータ上で実践されることが可能である。分散コンピューティング環境において、プログラム・モジュールは、ローカルとリモート両方のメモリ・ストレージ・デバイス内にあることが可能である。
【０１１３】
本出願において使用されるように、用語「コンポーネント」、「システム」、「プラットフォーム」、「インターフェース」、および同様のものは、コンピュータ関連エンティティ、または１つもしくは複数の固有の機能を有する動作機械に関するエンティティを指すこと、または含むこと、あるいはその両方を行うことができる。本明細書において開示されたエンティティは、ハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアであり得る。例えば、コンポーネントは、プロセッサ上で動く処理、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、またはコンピュータ、あるいはその組合せであり得るがこれらに限定されない。例証のために、サーバ上で動くアプリケーションとサーバの両方がコンポーネントであり得る。１つまたは複数のコンポーネントは、実行の処理またはスレッドあるいはその両方において常駐することができ、コンポーネントは、１つのコンピュータ上に局所化されること、または２つ以上のコンピュータの間に分散されること、あるいはその両方を行うことが可能である。別の例において、個々のコンポーネントは、様々なデータ構造を格納した様々なコンピュータ可読媒体から実行することができる。コンポーネントは、１つまたは複数のデータ・パケット（例えば、ローカル・システム、分散型システムにおける別のコンポーネントと、またはインターネットなどのネットワークにわたって信号を介して他のシステムと、あるいはその両方と対話する１つのコンポーネントからのデータ）を有する信号などに応じて、ローカルまたはリモートあるいはその両方の処理を介して通信することができる。別の例として、コンポーネントは、プロセッサによって実行されるソフトウェアまたはファームウェア・アプリケーションによって動作される電気または電子回路構成によって動作される機械部品によって提供された固有の機能を有する装置であり得る。このようなケースにおいて、プロセッサは、装置の内部または外部にあることが可能であり、ソフトウェアまたはファームウェア・アプリケーションの少なくとも一部を実行することができる。さらに別の例として、コンポーネントは、機械部品のない電子コンポーネントを通じて固有の機能を提供する装置であることが可能であり、電子コンポーネントは、プロセッサ、または電子コンポーネントの機能を少なくとも部分的に授けるソフトウェアまたはファームウェアを実行するための他の方法、を含むことができる。１つの態様において、コンポーネントは、例えば、クラウド・コンピューティング・システムなどにおいて、仮想マシンを介して電子コンポーネントをエミュレートすることができる。
【０１１４】
さらに、用語「または」は、排他的な「または」ではなく、包括的な「または」を意味することを意図するものである。すなわち、別途指定されない限り、または文脈から明らかでない限り、「Ｘは、ＡまたはＢを用いる」は、自然の包括的な入替えのいずれかを意味することを意図するものである。すなわち、ＸがＡを用いる場合、ＸがＢを用いる場合、またはＸがＡとＢの両方を用いる場合、「ＸはＡまたはＢを用いる」は、前述の実例のいずれかの下で満たされる。その上、本明細書および添付の図面において使用されるような冠詞「ａ」および「ａｎ」は、一般に、別途指定されない限り、または文脈から明らかでない限り、単数形を対象とするものとして「１つまたは複数」を意味すると解釈されるべきである。本明細書において使用されるように、用語「例」または「例示的な」あるいはその両方は、例、実例、または例証としての役割を果たすということを意味するために利用される。誤解を避けるために、本明細書において開示された主題は、このような例によって限定されない。さらに、「例」または「例示的な」あるいはその両方として本明細書において説明されるいずれかの態様または設計は、他の態様または設計に対して好ましいまたは有利なものとして必ずしも解釈されず、当業者に知られた同等の例示的な構造および技術を排除することは意味されない。
【０１１５】
本明細書において用いられるように、用語「プロセッサ」は、シングル・コア・プロセッサ、ソフトウェア・マルチスレッド実行能力のあるシングル・プロセッサ、マルチ・コア・プロセッサ、ソフトウェア・マルチスレッド実行能力のあるマルチ・コア・プロセッサ、ハードウェア・マルチスレッド技術を伴うマルチ・コア・プロセッサ、並列プラットフォーム、および分散型共有メモリを伴う並列プラットフォームを含むがこれらに限定されない任意のコンピューティング処理ユニットまたはデバイスを実質的に指すことができる。追加として、プロセッサは、本明細書において説明される機能を行うように設計された、集積回路、特定用途向け集積回路（ＡＳＩＣ）、デジタル・シグナル・プロセッサ（ＤＳＰ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、プログラマブル・ロジック・コントローラ（ＰＬＣ）、コンプレックス・プログラマブル・ロジック・デバイス（ＣＰＬＤ）、ディスクリート・ゲートもしくはトランジスタ・ロジック、ディスクリート・ハードウェアコンポーネント、またはこれらのいずれかの組合せ、を指すことができる。さらに、プロセッサは、スペース使用量を最適化するため、またはユーザ機器の性能を向上させるために、分子および量子ドット・ベースのトランジスタ、スイッチ、およびゲートなどであるがこれらに限定されないナノ・スケール・アーキテクチャを活用することができる。プロセッサは、コンピューティング処理ユニットの組合せとして実装されることも可能である。本開示において、「ストア」、「ストレージ」、「データ・ストア」、「データ・ストレージ」、「データベース」、ならびにコンポーネントの動作および機能に関する実質的に他の任意の情報ストレージ・コンポーネントなどの用語は、「メモリ・コンポーネント」、「メモリ」に含まれるエンティティ、またはメモリを含むコンポーネントを指すために利用される。本明細書において説明されるメモリまたはメモリ・コンポーネントあるいはその両方は、揮発性メモリもしくは不揮発性メモリであることが可能であり、または揮発性メモリと不揮発性メモリの両方を含むことができるということが正しく認識されよう。限定ではなく例証として、不揮発性メモリは、リード・オンリ・メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、電気的プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、または不揮発性ランダム・アクセス・メモリ（ＲＡＭ）（例えば、強誘電体ＲＡＭ（ＦｅＲＡＭ））を含むことができる。揮発性メモリはＲＡＭを含むことができ、ＲＡＭは、例えば外部キャッシュ・メモリとして機能することができる。限定ではなく例証として、ＲＡＭは、シンクロナスＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、ダブル・データ・レートＳＤＲＡＭ（ＤＤＲ  ＳＤＲＡＭ）、エンハンストＳＤＲＡＭ（ＥＳＤＲＡＭ）、シンクリンクＤＲＡＭ（ＳＬＤＲＡＭ）、ダイレクトＲａｍｂｕｓ  ＲＡＭ（ＤＲＲＡＭ）、ダイレクトＲａｍｂｕｓダイナミックＲＡＭ（ＤＲＤＲＡＭ）、およびＲａｍｂｕｓダイナミックＲＡＭ（ＲＤＲＡＭ）などの多��の形式で利用可能である。追加として、本明細書におけるシステムまたはコンピュータ実行方法の開示されたメモリ・コンポーネントは、これらおよび他の任意の適切なタイプのメモリを含むことを限定されずに含むことを意図するものである。
【０１１６】
連邦政府による資金提供を受けた研究開発の記載
本発明は、米国国防高等研究計画局（ＤＡＲＰＡ）によって付与されたＨＲ００１１−１３−Ｃ−００２２の下、政府の支援により行われたものである。政府は本発明に対して一定の権利を有する。
【０１１７】
上述されたものは、システムおよびコンピュータ実行方法の単なる例を含む。当然、本開示を説明するためにコンポーネントまたはコンピュータ実行方法のあらゆる想像可能な組合せを説明することは不可能ではないが、本開示の多くのさらなる組合せおよび入替えが可能であるということを当業者は認識することができる。さらに、用語「含む（ｉｎｃｌｕｄｅｓ）」、「有する（ｈａｓ）」、「保有する（ｐｏｓｓｅｓｓｅｓ）」、および同様のものが、詳細な説明、特許請求の範囲、補遺、および図面において使用される範囲において、このような用語は、「備える（ｃｏｍｐｒｉｓｉｎｇ）」が請求項において移行語として用いられる際に解釈されるように、用語「備える（ｃｏｍｐｒｉｓｉｎｇ）」と同じように包括的なものであることを意図するものである。様々な実施形態の説明は例証のために提示されたが、網羅的なものであること、または開示された実施形態に限定されたものであることを意図するものではない。多くの修正および変更が、説明された実施形態の範囲および思想から逸脱することなく、当業者には明らかであろう。本明細書において使用される専門用語は、実施形態の原理、実用的な用途、もしくは市場において見つかる技術に対する技術的な改善を最もよく説明するように、または本明細書において開示された実施形態を当業者が理解することを可能にするように選ばれた。
【図１】
2020537236.tif 000005
【図２】
2020537236.tif 000006
【図３】
2020537236.tif 000007
【図４】
2020537236.tif 000008
【図５】
2020537236.tif 000009
【図６】
2020537236.tif 000010
【図７】
2020537236.tif 000011
【図８】
2020537236.tif 000012
【図９】
2020537236.tif 000013
【図１０】
2020537236.tif 000014
【図１１】
2020537236.tif 000015
【図１２】
2020537236.tif 000016
【図１３】
2020537236.tif 000017
【図１４】
2020537236.tif 000018
【図１５】
2020537236.tif 000019
【図１６】
2020537236.tif 000020
【図１７】
2020537236.tif 000021
【図１８】
2020537236.tif 000022
【図１９】
2020537236.tif 000023
【図２０】
2020537236.tif 000024
【図２１】
2020537236.tif 000025
【図２２】
2020537236.tif 000026
【国際調査報告】
2020537236.tif 000027
2020537236.tif 000028