(57)【要約】  システムおよび方法は、処理システムにおける電圧偏差を制御することに関する。スケジューラは、トランザクションを受信し、それらのトランザクションをパイプラインにおいて実行されるように発行する。パイプラインにおいて特定のトランザクションが実行される場合に生じる電圧偏差が、トランザクションが発行される前に推定される。推定された電圧偏差が指定されたしきい値を超えて電圧オーバーシュートまたは電圧アンダーシュートを生じさせるかどうかを判定するためにしきい値比較器が使用される。スケジューラは、トランザクションがパイプラインにおいて実行されるように発行される前に、生じ得る電圧オーバーシュートまたは電圧アンダーシュートを軽減するようにパイプラインにおけるエネルギーを増減させることなどの1つまたは複数の訂正措置を実施するように構成される。
2018529169.tif 000002
【特許請求の範囲】
【請求項１】
処理システムにおける電圧偏差を制御する方法であって、
前記処理システムのパイプラインにおいてトランザクションが実行される場合に生じる電圧偏差を推定するステップと、
前記推定された電圧偏差が指定されたしきい値を超えるかどうかを判定するステップと、
前記推定された電圧偏差が前記指定されたしきい値を超える場合、前記トランザクションを前記パイプラインにおいて実行されるように発行する前に、電圧偏差を軽減するための1つまたは複数の訂正措置を実施するステップと
を含む、方法。
【請求項２】
少なくとも、前記トランザクションに関連するエネルギー、および前記パイプラインにおいて実行されるように前に発行された1つまたは複数のトランザクションに関連するエネルギーに基づいて前記電圧偏差を推定するステップを含む、請求項1に記載の方法。
【請求項３】
前記トランザクションの1つまたは複数の属性に基づいて前記トランザクションに関連するエネルギーを判定するステップを含む、請求項2に記載の方法。
【請求項４】
テーブルから前記1つまたは複数の属性の各々に関連するエネルギー値を判定し、かつ前記1つまたは複数の属性の前記エネルギー値を合計するステップをさらに含む、請求項3に記載の方法。
【請求項５】
前記推定された電圧偏差が負方向において負の電圧偏差しきい値を超える場合に前記推定された電圧偏差がアンダーシュートであると判定するステップを含む、請求項1に記載の方法。
【請求項６】
前記訂正措置は、前記パイプラインのエネルギーを低減させることを含む、請求項5に記載の方法。
【請求項７】
前記パイプラインにおいて実行すべきトランザクションの発行をストールさせるステップを含む、請求項6に記載の方法。
【請求項８】
前記トランザクションをスケジューリングする前に、前記訂正措置が前記電圧偏差を軽減したかどうかを判定するステップをさらに含む、請求項6に記載の方法。
【請求項９】
前記推定された電圧偏差が正方向において正の電圧偏差しきい値を超える場合に前記推定された電圧偏差がオーバーシュートであると判定するステップを含む、請求項1に記載の方法。
【請求項１０】
前記訂正措置は、前記パイプラインのエネルギーを増大させることを含む、請求項9に記載の方法。
【請求項１１】
前記パイプラインにおいて実行すべきダミートランザクションまたはノーオペレーション(NOP)を発行するステップを含む、請求項10に記載の方法。
【請求項１２】
前記トランザクションをスケジューリングする前に、前記訂正措置が前記電圧偏差を軽減したかどうかを判定するステップをさらに含む、請求項10に記載の方法。
【請求項１３】
処理システムであって、
トランザクションを受信し、かつ前記トランザクションをパイプラインにおいて実行されるように発行するように構成されるスケジューラと、
前記パイプラインにおいてトランザクションが実行される場合に生じる電圧偏差を推定するように構成されるフィルタと、
前記推定された電圧偏差が指定されたしきい値を超えるかどうかを判定するためのしきい値比較器と
を備え、
前記スケジューラは、前記トランザクションが前記パイプラインにおいて実行されるように発行される前に、電圧偏差を軽減するように1つまたは複数の訂正措置を実施するように構成される、
処理システム。
【請求項１４】
前記スケジューラは、1つまたは複数の受信されたトランザクションおよび前記1つまたは複数の受信されたトランザクションに関連する対応するエネルギーを蓄積するように構成される発行キューを備える、請求項13に記載の処理システム。
【請求項１５】
前記1つまたは複数の受信されたトランザクションの1つまたは複数の属性に基づいて前記1つまたは複数の受信されたトランザクションに関連するエネルギーを判定するように構成される論理をさらに備える、請求項14に記載の処理システム。
【請求項１６】
前記1つまたは複数の属性の各々に関連するエネルギー値を含むテーブルをさらに備え、前記論理は、前記テーブルから前記1つまたは複数の属性に関連するエネルギー値を判定し、前記1つまたは複数の属性に関連する前記エネルギー値を合計するように構成される、請求項15に記載の処理システム。
【請求項１７】
前記フィルタは、少なくとも、前記トランザクションに関連するエネルギー、および前記パイプラインにおいて実行されるように前に発行された1つまたは複数のトランザクションに関連するエネルギーに基づいて前記電圧偏差を推定するように構成される、請求項13に記載の処理システム。
【請求項１８】
前記しきい値比較器は、前記推定された電圧偏差が負方向において負の電圧偏差しきい値を超える場合に前記推定された電圧偏差がアンダーシュートであると判定するように構成されるアンダーシュートしきい値比較器である、請求項13に記載の処理システム。
【請求項１９】
前記スケジューラは、前記パイプラインにおけるエネルギーを低減させるように構成される、請求項18に記載の処理システム。
【請求項２０】
前記スケジューラは、前記パイプラインにおいて実行すべきトランザクションの発行をストールさせるように構成される、請求項19に記載の処理システム。
【請求項２１】
前記スケジューラは、前記訂正措置によって前記電圧偏差が軽減された場合に前記トランザクションをスケジューリングするように構成される、請求項18に記載の処理システム。
【請求項２２】
前記しきい値比較器は、前記推定された電圧偏差が正方向において正の電圧偏差しきい値を超える場合に前記推定された電圧偏差がオーバーシュートであると判定するように構成されるオーバーシュートしきい値比較器である、請求項13に記載の処理システム。
【請求項２３】
前記スケジューラは、前記パイプラインにおけるエネルギーを増大させるように構成される、請求項22に記載の処理システム。
【請求項２４】
前記スケジューラは、前記パイプラインにおいて実行すべきダミートランザクションまたはノーオペレーション(NOP)を発行するように構成される、請求項23に記載の処理システム。
【請求項２５】
前記スケジューラは、前記訂正措置によって前記電圧偏差が軽減された場合に前記トランザクションをスケジューリングするように構成される、請求項13に記載の処理システム。
【請求項２６】
セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、携帯情報端末(PDA)、固定ロケーションデータユニット、およびコンピュータからなるグループから選択されたデバイスに組み込まれる、請求項13に記載の処理システム。
【請求項２７】
処理システムであって、
前記処理システムのパイプラインにおいてトランザクションが実行される場合に生じる電圧偏差を推定するための手段と、
前記推定された電圧偏差が指定されたしきい値を超えるかどうかを判定するための手段と、
前記推定された電圧偏差が指定されたしきい値を超える場合、前記トランザクションが前記パイプラインにおいて実行されるように発行される前に、電圧偏差を軽減するための1つまたは複数の訂正措置を実施するための手段と
を備える、処理システム。
【請求項２８】
少なくとも、前記トランザクションに関連するエネルギー、および前記パイプラインにおいて実行されるように前に発行された1つまたは複数のトランザクションに関連するエネルギーに基づいて前記電圧偏差を推定するための手段を備える、請求項27に記載の処理システム。
【請求項２９】
前記トランザクションの1つまたは複数の属性に基づいて前記トランザクションに関連するエネルギーを判定するための手段を備える、請求項27に記載の処理システム。
【請求項３０】
プロセッサによって実行されたときに、前記プロセッサに、処理システムにおける電圧偏差を制御するための動作を実行させるコードを備える、非一時的コンピュータ可読記憶媒体であって、
前記処理システムのパイプラインにおいてトランザクションが実行される場合に生じる電圧偏差を推定するためのコードと、
前記推定された電圧偏差が指定されたしきい値を超えるかどうかを判定するためのコードと、
前記推定された電圧偏差が前記指定されたしきい値を超える場合、前記トランザクションを前記パイプラインにおいて実行されるように発行する前に、電圧偏差を軽減するための1つまたは複数の訂正措置を実施するためのコードと
を備える、非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
開示される態様は、処理システムにおける電圧偏差を制御することに関する。より詳細には、例示的な態様は、電圧偏差を事前に推定し、トランザクションをスケジューリングする前に電圧オーバーシュートまたは電圧アンダーシュートを軽減するための訂正措置を実施するように構成されるスケジューラに関する。
【背景技術】
【０００２】
プロセッサおよびマイクロプロセッサにおける電力消費量を管理することは、重要な設計上の検討事項である。たとえば、電力消費量が増加したとき、より詳細には、プロセッサが集積される場合があるチップまたはダイ上での電力分配において偏差またはノイズが生じたときに起こる問題の例として、バッテリ寿命が短くなることと熱発生量が増えることが挙げられる。
【０００３】
いくつかのプロセッサは、電圧調整器およびカスタマイズされた電力供給/分配ネットワーク(PDN)を使用して、システムオンチップ(SoC)上のそれぞれに異なる構成要素およびサブシステムの様々な電力値および電圧値を確保する。プロセ
ッサ上でプログラムを実行する間、電圧偏差および電力偏差が生じるのを防止または軽減することが望ましい。しかし、様々なプログラムがSoCの構成要素にそれぞれに異なるようにストレスをかけることがあるので、様々なプログラムにわたってそのような偏差を制御することは困難である場合がある。様々な構成要素への供給電流は、非常に短い期間内で著しく変動する場合がある。電流の変動は、微分式dI/dtによって測定され、この場合、Iは電流であり、tは時間である。所与のインダクタンスLに関して、電圧降下Vは式V=L(dI/dt)によって与えられる。したがって、dI/dtを制御することによって、電圧偏差を管理し、それに応じて(電力はV*Iであるため)電力変動を管理することが可能である。
【０００４】
この目的で、電圧偏差を制御するためのいくつかの取り組みでは、たとえば、プロセッサの個々のクロックサイクルの間プロセッサまたはSoCの機能ブロックのアクティビティレベルを監視することを重視している。たとえば、クロックゲーティング技法を使用して、各クロックサイクルにおける機能ブロックの特定の特性に基づいて特定の機能ブロックをオンまたはオフにすることができる。各機能ブロックのアクティブ状態およびアイドル状態(すなわち、オン/オフ状態)における電流消費量は、たとえば低レベル回路シミュレーションに基づいて事前に判明する。プロセッサは、たとえば、機能ブロックがその特定のクロックサイクルにおいてアクティブであるかどうかに基づいて、特定のクロックサイクルにおける機能ブロックの電流消費量を判定するために、モニタ(ハードウェアおよび/またはソフトウェアの適切な組合せを使用して実装することができる)を含むことができる。モニタは、各クロックサイクルにおける様々な機能ブロックの電流消費量を判定し、得られた電流消費量を合計してクロックサイクルにおけるプロセッサの全体的な電流消費量を判定することができる。モニタは、(たとえば、PDNの所与のインダクタンス/キャパシタンスに関して)ステップ応答またはインパルス応答を算出し、クロックサイクルにおける電圧偏差を得るように構成することができる。
【０００５】
モニタには、許容できる最大電圧偏差しきい値/正の電圧偏差しきい値および許容できる最小電圧偏差しきい値/負の電圧偏差しきい値が与えられてもよい。正の電圧偏差しきい値または負の電圧偏差しきい値に対する電圧オーバーシュートまたは電圧アンダーシュートが生じる場合、モニタは、そのようなオーバーシュートまたはアンダーシュートに反応するように構成することができる。たとえば、負の電圧偏差しきい値に対するアンダーシュートが生じる(すなわち、電圧偏差が負の電圧偏差しきい値よりも小さくなる(または負方向において負の電圧偏差しきい値を超える))場合、モニタは、電圧偏差を軽減するために電流を小さくする措置を講じさせてもよい。たとえば、命令処理をストールさせること、クロックゲーティングを実施することなどが行われる場合がある。一方、正の電圧偏差しきい値に対するオーバーシュートが生じる(すなわち、電圧偏差が正の電圧偏差しきい値よりも大きくなる(または正方向において正の電圧偏差しきい値を超える))場合、モニタは、電圧偏差を軽減するために電流を消費するように、ダミー演算(たとえば、ノーオペレーションまたは"NOP")を導入することなどの、電流消費量を増やす処置を講じさせてもよい。
【０００６】
したがって、モニタは、電圧偏差に反応して訂正処置を実施するためにフィードバックループまたは他の制御システムを含んでもよい。しかし、電圧偏差が生じたときから訂正処置を実施することができるようになるまで時間遅延が生じる。したがって、プロセッサまたはSoCは、電圧偏差が生じてからシステムが反応して訂正措置を実施することができるようになるまでの中間持続時間において大きい電圧偏差の悪影響を受けることがある。この中間持続時間は、上述のように、制御論理に関与するレイテンシおよび訂正措置の実施に関与するフィードバック経路に起因して、場合によっては著しく長くなることがある。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
したがって、従来の技法が直面する前述の問題の影響を受けずに電圧偏差および電力変動を効果的に制御することができる解決策が必要である。
【課題を解決するための手段】
【０００８】
本発明の例示的な実施形態は、処理システムにおける電圧偏差を制御するためのシステムおよび方法を対象とする。例示的な態様では、スケジューラは、トランザクションを受信し、それらのトランザクションをパイプラインにおいて実行されるようにスケジューリングする。パイプラインにおいて特定のトランザクションが実行される場合に生じる電圧偏差が、トランザクションがスケジューリングされる前に推定される。推定される電圧偏差が指定されたしきい値を超えて電圧オーバーシュートまたは電圧アンダーシュートを生じさせるかどうかを判定するためにしきい値比較器が使用される。スケジューラは、トランザクションがパイプラインにおいて実行されるようにスケジューリングされる前に、生じ得る電圧オーバーシュートまたは電圧アンダーシュートを軽減するようにパイプラインにおけるエネルギーを増減させることなどの1つまたは複数の訂正措置を実施するように構成される。
【０００９】
したがって、例示的な態様は、処理システムにおいて電圧偏差を制御する方法であって、処理システムのパイプラインにおいてトランザクションが実行される場合に生じる電圧偏差を推定するステップと、推定された電圧偏差が指定されたしきい値を超えるかどうかを判定するステップと、推定された電圧偏差が指定されたしきい値を超える場合に、トランザクションをパイプラインにおいて実行されるように発行する前に電圧偏差を軽減するための1つまたは複数の訂正措置を実施するステップとを含む方法を対象とする。
【００１０】
別の例示的な態様は、トランザクションを受信し、トランザクションをパイプラインにおいて実行されるようにスケジューリングするように構成されるスケジューラと、パイプラインにおいてトランザクションが実行される場合に生じる電圧偏差を推定するように構成されるフィルタと、推定された電圧偏差が指定されたしきい値を超えるかどうかを判定するためのしきい値比較器とを備え、スケジューラが、トランザクションがパイプラインにおいて実行されるように発行される前に、電圧偏差を軽減するように1つまたは複数の訂正措置を実施するように構成される処理システムを対象とする。
【００１１】
また別の例示的な態様は、処理システムであって、処理システムのパイプラインにおいてトランザクションが実行される場合に生じる電圧偏差を推定するための手段と、推定された電圧偏差が指定されたしきい値を超えるかどうかを判定するための手段と、推定された電圧偏差が指定されたしきい値を超える場合にトランザクションがパイプラインにおいて実行されるように発行される前に、電圧偏差を軽減するように1つまたは複数の訂正措置を実施するための手段とを備える処理システムを対象とする。
【００１２】
また別の例示的な態様は、プロセッサによって実行されたときに、プロセッサに、処理システムにおける電圧偏差を制御するための動作を実行させるコードを含む非一時的コンピュータ可読記憶媒体であって、処理システムのパイプラインにおいてトランザクションが実行される場合に生じる電圧偏差を推定するためのコードと、推定された電圧偏差が指定されたしきい値を超えるかどうかを判定するためのコードと、推定された電圧偏差が指定されたしきい値を超える場合にトランザクションをパイプラインにおいて実行されるように発行する前に、電圧偏差を軽減するように1つまたは複数の訂正措置を実施するためのコードとを含む非一時的コンピュータ可読記憶媒体を対象とする。
【００１３】
添付の図面は、本発明の態様について説明するのを助けるために提示され、態様の例示のためだけに提供され、態様を制限する意図はない。
【図面の簡単な説明】
【００１４】
【図１】従来の処理システムの概略図である。
【図２】例示的な処理システムの概略図である。
【図３】例示的な態様による、処理システムにおいて電圧偏差を制御する方法を示すフローチャートである。
【図４】本開示の態様が有利に使用される場合がある例示的なコンピューティングデバイス400を示す図である。
【発明を実施するための形態】
【００１５】
本発明の態様が、本発明の特定の態様を対象とする以下の説明および関連する図面において開示される。本発明の範囲から逸脱することなく、代替の態様を考案することができる。さらに、本発明の関連する詳細を不明瞭にしないように、本発明のよく知られている要素は、詳細に説明せず、または省略されることになる。
【００１６】
「例示的」という単語は、本明細書では、「例、実例、または例証として機能する」を意味するために使用される。「例示的」として本明細書において説明するいずれの態様も、必ずしも他の態様よりも好ましいか、または有利であると解釈されるべきでない。同様に、「本発明の態様」という用語は、本発明のすべての態様が、論じられる特徴、利点、または動作モードを含むことを必要としない。
【００１７】
本明細書で使用する用語は、特定の態様のみを説明する目的のためのものであり、本発明の態様の限定であることを意図しない。本明細書において使用される単数形"a"、"an"、および"the"は、文脈が別段に明確に示さない限り、複数形も含むものとする。さらに、「備える(comprises)」、「備えている(comprising)」、「含む(includes)」、および/または「含んでいる(including)」という用語は、本明細書で使用されるとき、述べられた特徴、整数、ステップ、動作、要素、および/または構成要素の存在を明示するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、および/またはそれらのグループの存在または追加を排除しないことが理解されよう。
【００１８】
さらに、多くの態様について、たとえば、コンピューティングデバイスの要素によって実行すべき動作のシーケンスに関して説明する。本明細書において説明する種々の動作は、特定の回路(たとえば、特定用途向け集積回路(ASIC))によって実行することも、1つまたは複数のプロセッサによって実行されるプログラム命令によって実行することも、あるいは両方の組合せによって実行することもできることが認識されよう。さらに、本明細書において説明される動作のこれらのシーケンスは、実行時に関連するプロセッサに本明細書において説明される機能を実行させるコンピュータ命令の対応するセットを記憶している任意の形態のコンピュータ可読記憶媒体内で完全に具現化されると考えることができる。したがって、本発明の種々の態様は、そのすべてが特許請求される主題の範囲内にあると考えられているいくつかの異なる形において具現化される場合がある。加えて、本明細書において説明する態様の各々について、任意のそのような態様の対応する形態が、たとえば、説明する動作を実行する「ように構成される論理」として、本明細書において説明される場合がある。
【００１９】
概して、開示される態様は、プロセッサまたはSoCなどのシステムの動的プロセスモデルを使用するモデル予測コントローラ(MPC)を含む。MPCを使用して、たとえば、将来のタイムスロットのアクティビティを予測することができる。将来のタイムスロットの予測を使用して、検討中の現在のタイムスロットを管理しかつ最適化することができる。現在のタイムスロットおよび将来のタイムスロットは、場合によってはプロセッサのクロックサイクルであってもよい。したがって、MPCを使用して、将来のクロックサイクルの電圧偏差および電力偏差を予測または推定することができ、推定された電圧偏差および電力偏差を軽減するように訂正処置を講じることができる。
【００２０】
たとえば、本開示の態様では、将来のイベントが予測され、この予測が、望ましくない電圧ノイズまたは電圧偏差、電力スパイク/サージ、大きい電流変動、温度差などを軽減するために使用される。例示的な態様によれば、プロセッサのスケジューラが、プロセッサの命令パイプラインを先読みし、将来のトランザクションをスケジューリングすることによって上記の偏差のうちの1つまたは複数が生じる可能性があるかどうかを判定することによってトランザクションをスケジューリングするように構成される。例示的なスケジューラは、予測された偏差を軽減することができるように前もって訂正措置を実施させることができる。
【００２１】
まず、図1を参照しながら、従来のスケジューラについて説明する。図1は、任意の汎用または専用処理システム(たとえば、デジタル信号プロセッサ(DSP))またはシステムオンチップ(SoC)であってもよい処理システム100を示す。処理システム100には、命令を記憶することができ、かつ命令を取り出すことができる命令キャッシュ(I-キャッシュ)102などのメモリ構造を含めることができる。本開示では、「トランザクション」という用語は、パイプライン110などの命令パイプラインによって処理できる1つまたは複数の命令を指すのに使用される。スケジューラ106は、I-キャッシュ102から命令または着信トランザクション104を受信し、パイプライン110において処理すべき発行対象トランザクション108を生成するように構成される。
【００２２】
パイプライン110に与えられた発行対象トランザクション108はまた、発行対象トランザクション108をパイプライン110において実施または実行する際に電圧偏差および電力偏差が生じることがあるかどうかを検出するために監視される。前述のように、パイプライン110は、発行対象トランザクション108を1つまたは複数のクロックサイクルにおいて実行するためのそれぞれに異なる機能ブロックを含むことができる。個々のトランザクションの特定の特性または属性に基づいて、どの機能ブロックが使用されるか、またはより具体的には様々なクロックサイクルにわたってどれだけの電流が消費されるかを事前に判定することが可能である。したがって、発行対象トランザクションのいくつかの属性(たとえば、命令セマンティクス、命令コード)などを、発行対象属性112〜フィルタ114として示されるバス上に抽出しかつ供給することができる。発行対象属性112は、対応する発行対象トランザクション108の電流消費量を、パイプライン110においてそれらのトランザクションを実行する間に判定するために使用することができる。
【００２３】
フィルタ114は、前述のモニタの一部であってもよく、その場合、フィルタ114は、発行対象属性112に基づいて電圧偏差値を判定するように構成されてもよい。たとえば、フィルタ114は、有限インパルス応答(FIR)フィルタ、無限インパルス応答(IIR)フィルタ、ステップ関数応答などのデジタルフィルタを、発行対象属性112から判定された電流消費量、またはより具体的には経時的な電流変動に対して実施して、電圧偏差値を出力することが可能であってもよい。しきい値比較器116および118はそれぞれ、電圧偏差が負の電圧偏差しきい値よりも小さくなる(または負方向において負の電圧偏差しきい値を超える)(すなわち、電圧が前の値から負の電圧偏差しきい値を超える分だけ低くなる)かどうか、あるいは電圧偏差が正の電圧偏差しきい値よりも大きくなる(または正方向において正の電圧偏差しきい値を超える)(すなわち、電圧が前の値から正の電圧偏差しきい値を超える分だけ高くなる)かどうかを判定するために設けられてもよい。
【００２４】
しきい値比較器116が、電圧偏差が負の電圧偏差しきい値よりも小さくなっている(または負方向において負の電圧偏差しきい値を超える)ことを検出した場合、アンダーシュート117が検出されたと言う。スケジューラ106は、アンダーシュート117の通知が与えられる。スケジューラ106は、負の電圧偏差またはアンダーシュートを軽減するように、トランザクションの発行をストールすること、パイプライン110においてクロックゲーティングを実施させることなどの訂正措置を実施するかまたは実施させることができる。
【００２５】
しきい値比較器118が、電圧偏差が正の電圧偏差しきい値よりも大きくなる(または正方向において超える)ことを検出した場合、オーバーシュート119が検出されたと言う。スケジューラ106は、オーバーシュート119の通知が与えられる。スケジューラ106は、正の電圧偏差またはオーバーシュートを軽減するように、発行対象トランザクション108上でNOPを発行すること、またはパイプライン110においてダミートランザクションを実施させることなどの訂正措置を実施するかまたは実施させることができる。
【００２６】
アンダーシュート117およびオーバーシュート119の場合、通知を生成してスケジューラ106に提供する際、ならびにたとえば、訂正措置を実施させることによってこれらの通知に応答する際に顕著なレイテンシが生じることがある。関連するレイテンシにわたる中間持続時間において、処理システム100は、大きい電圧偏差および電力偏差の悪影響を受けることがある。
【００２７】
次に図2を参照すると、例示的な処理システム200が示される。処理システム200のスケジューラ206は、たとえばI-キャッシュ202から着信トランザクション204を受信してもよく、スケジューラ206は、発行対象トランザクション208をパイプライン210に提供するように構成されてもよい。このコンテキストでは、トランザクションは、実施または実行されたときにエネルギーを消費する場合がある1つまたは複数の命令、プログラム、または任意の他のタスクを指すことがある。場合によっては、トランザクションには、1つまたは複数の命令を含めることができ、たとえば、処理システム200は、スーパースカラ処理または超長命令語(VLIW)の処理をサポートするように構成されてもよく、2つ以上の命令をフェッチして並行して実行することができる。これに応じて、パイプライン210は、1つまたは複数の命令を含む発行対象トランザクション208の実行をサポートすることができるいくつかの機能ブロックを備えてもよい。
【００２８】
処理システム200の一実装形態では、着信属性220として示されるバス上で着信トランザクション204の1つまたは複数の属性(たとえば、セマンティクス、命令コードなど)が抽出されてもよい。たとえば、特定の着信トランザクション204は、2つの乗算命令および2つの加算命令などの4成分演算命令を含むVLIW命令であってもよい。これらの4成分命令に関する属性には、命令コード(または「オペコード」)、オペランド(たとえば、ソースレジスタおよびデスティネーションレジスタ)の数、演算モード(たとえば、精度、符号付き/符号なし、丸めモードなど)などの各成分命令の特性を含めることができる。着信トランザクション204を実行するためにパイプライン210によって消費されるエネルギーは、これらの属性に依存することがある。
【００２９】
したがって、トランザクションの様々な属性に関連するエネルギーを事前に判定し、かつエネルギーテーブル225に記憶することができる。たとえば、様々な属性を有する乗算命令および加算命令を実行する際にパイプライン210によって消費されるエネルギーを(たとえば、特定の属性に関与する様々な機能ブロックによって消費される電流の分析に基づいて)事前に判定し、エネルギーテーブル225に記憶することができる。電流使用量を判定することは、低レベル回路シミュレーションモデルに基づいてもよい。1つまたは複数の命令を対応する属性に基づいて実行する際に1つまたは複数のサイクルまたはパイプラインステージに関してパイプライン210の1つまたは複数の機能ブロック(明示的に図示されてはいない)がオンにされるかそれともゲートオフされるかを判定するためにクロックゲーティングモデルを使用することができる。アクティブ状態およびアイドル状態における電流消費量を示すために機能ブロックの各々に重みを関連付けることができる。パイプラインステージごとの電流消費量またはdI/dtは、各機能ブロックの消費量に対応する重みを重み付けし(乗算し)、次いで得られた各積を合計することによって得ることができる。これによって、様々なクロックサイクルにわたって電流消費量またはdI/dtを分散させることができる。電流消費量に関連するエネルギーは、たとえば、機能ブロックに関連する抵抗性負荷に基づいて判定することができる(たとえば、式E=I2Rtに基づいて判定することができる。この場合、Eはエネルギーであり、Iは電流であり、Rは抵抗であり、tはエネルギーが測定される期間である)。したがって、各属性に関連するエネルギーを判定し、エネルギーテーブル225に記憶することができる。
【００３０】
エネルギーテーブル225は、属性によってインデックス付けることができ、着信属性220における属性ごとにエネルギーテーブル225から属性当たりのエネルギー224を得ることができる。エネルギーテーブル225は、エネルギー値によってプログラムすることができ、たとえば、対応する属性によってインデックス付けすることができる任意の適切なメモリ構造(たとえば、読取り専用メモリ(ROM))であってもよい。場合によっては、エネルギーテーブル225は、2つ以上の属性に関する2つ以上のエネルギー値を探して提供するための複数のポートをサポートしてもよい(それに応じて、属性当たりのエネルギー224として示されるバスは、着信属性220の2つ以上の属性に関するエネルギー値を搬送する2つ以上のバスを備えてもよい)。
【００３１】
乗算器222は、各着信属性220に、属性当たりのエネルギー224から得られた着信属性に対応するエネルギー値を乗算または重み付けするように構成される1つまたは複数の乗算器を備えることができる。加算器226は、乗算器222の1つまたは複数の乗算器からのエネルギーを総計する(たとえば、重み付けされた値の合計または積の合計を実行する)ように構成されてもよい。加算器226によって生成される積の和は、着信トランザクション204の累積エネルギーを表す着信エネルギー228に対応する。スケジューラ206は、1つまたは複数の着信トランザクション204を受信し、それらに対応する着信エネルギー228とともに、発行のために発行キュー207に入れる。
【００３２】
発行キュー207は、1つまたは複数のエントリを含んでもよく、各エントリは、少なくとも着信トランザクション204と対応する着信エネルギー228とを含む。処理システム200がトランザクションのインオーダー処理をサポートする実装形態では、スケジューラ206は、トランザクションを、着信トランザクション204が受信されたときと同じ順序で(発行対象トランザクション208として示されるバス上で)パイプライン210に発行してもよい。したがって、インオーダー処理の場合、発行対象トランザクション208が、発行キュー207に着信トランザクション204(および対応する着信エネルギー228)が充填されたのと同じ順序で発行キュー207から発行されてもよい。場合によっては、処理システム200は、アウトオブオーダー処理をサポートすることができ、この場合、発行対象トランザクション208は、ばらばらの順序で発行されてもよく、発行対象トランザクション208上でトランザクションが発行される順序は、発行キュー207に着信トランザクション204(および対応する着信エネルギー228)が充填された順序に対応しなくてもよい。
【００３３】
スケジューラ206は、インオーダー処理が実施されるかそれともアウトオブオーダー処理が実施されるかどうかにかかわらず、発行対象トランザクション208がスケジューリングされる順序を発行キュー207から決定するように構成されてもよい。言い換えれば、スケジューラ206は、発行対象トランザクション208上で第1のトランザクションが発行される場合に、第1のトランザクションの次に発行対象トランザクション208上で発行される次のトランザクション、たとえば、第2のトランザクションを選択するように構成されてもよい。同様に、スケジューラ206は、発行対象トランザクション208上で発行される1つまたは複数の将来のトランザクションを決定することができる。前述のように、発行された第1のトランザクションに対応するエネルギーならびに次のトランザクションまたは将来のトランザクション(たとえば、第2のトランザクションおよび1つまたは複数の将来のトランザクション)に対応するエネルギーを発行キュー207から決定することもできる。
【００３４】
図2において、発行対象トランザクション208上の1つまたは複数の前に発行されたトランザクション(たとえば、すでに発行された第1のトランザクション)に対応するエネルギーが発行対象エネルギー212として示され、一方次のトランザクションまたは将来のトランザクションに対応するエネルギーが次の/将来のエネルギー230として示される。例示的な態様では、発行対象エネルギー212および次の/将来のエネルギー230に基づいて生じ得る将来の電圧偏差を推定することができる。例示のために単純なケースを考えると、第1のトランザクションに対応する発行対象エネルギー212と第2のトランザクションに対応する次の/将来のエネルギー230が実質的に同じである場合、第1のトランザクションの後に第2のトランザクションを発行しても、パイプライン210によって消費されるエネルギーに顕著な偏差は生じない。しかし、第2のトランザクションの次の/将来のエネルギー230が第1のトランザクションの発行対象エネルギー212よりも著しく(たとえば、それぞれの正のしきい値または負のしきい値よりも大きい量だけ)高いかまたは低い場合、第2のトランザクションを発行すると、パイプライン210によって消費されるエネルギーに対応する顕著な偏差が生じる。スケジューラ206は、第2のトランザクションをスケジューリングする前に偏差が生じると推定することによって、発行対象トランザクション208上の第2のトランザクションをパイプライン210において実行されるようにスケジューリングする前に訂正措置を実施して偏差を低減させることができる。
【００３５】
さらに詳細に、たとえば、パイプライン210において第1のトランザクションが実行されたときに、(たとえば、パイプライン210における、特に図示されていない1つまたは複数の代表的なノードの電圧に基づいて)パイプライン210において第1の電圧レベルが確立されると考える。同様に、第2のトランザクションを実行すると、パイプライン210において第2の電圧レベルが確立される場合がある。この説明では、正の電圧偏差しきい値と負の電圧偏差しきい値もまた仮定される。
【００３６】
第1の例では、第2の電圧レベルは、第1の電圧レベルよりも、正の電圧偏差しきい値を超える量だけ大きい(または正方向において正の電圧偏差しきい値を超える)場合がある。この例では、第2の電圧レベルが、オーバーシュート、または電圧偏差が正の電圧偏差しきい値よりも大きいことに基づいて許容できないほど大きい正の電圧偏差を生じさせると仮定する。オーバーシュートを軽減するには、第2のトランザクションをスケジューリングする前に1つまたは複数の訂正処置を講じることができる。例示的な訂正処置には、パイプライン210の電圧レベルを第1の電圧レベルよりも高い場合がある中間電圧レベルにする(しかし、正の電圧偏差しきい値よりも大きい正の電力偏差を生じさせることはない)1つまたは複数の中間トランザクションをスケジューリングすることを含めることができる。エネルギーに関して、これらの中間トランザクションは、パイプライン210のエネルギーを増大させ、第2のトランザクションがスケジューリングされる前により高い中間電圧レベルをもたらす高エネルギートランザクションと呼ばれる場合がある。したがって、第2のトランザクションがスケジューリングされるとき、生じる場合がある任意の生じ得る正の電圧偏差は(第1の電圧レベルよりも高い場合がある)中間電圧レベルに対して相対的な電圧偏差である。中間電圧レベルに対する第2の電圧レベルの正の電圧偏差が正の電圧偏差しきい値よりも小さい場合、パイプライン210において第2のトランザクションが実行されるときに許容できないほど大きい正の電圧偏差またはオーバーシュートが回避される。
【００３７】
同様の技法を使用して第2の例における負方向の電圧偏差を軽減することができ、この場合、第2の電圧レベルは、アンダーシュートを生じさせるか、または第1の電圧レベルよりも、負の電圧偏差しきい値を許容できないほど超える量だけ低くなる(または負方向において第1の電圧レベルを超える)場合がある。この場合にアンダーシュートを軽減するために、1つまたは複数の訂正処置に、パイプライン210の電圧レベルを第1の電圧レベルよりも低い場合がある中間電圧レベルにする(しかし、許容できないほど大きい負の電圧偏差を生じさせることはない)1つまたは複数の中間トランザクションをスケジューリングすることを含めることができる。エネルギーに関して、これらの中間トランザクションは、パイプライン210のエネルギーを低減させ、第2のトランザクションがスケジューリングされる前により低い中間電圧レベルをもたらす低エネルギートランザクションである場合がある。したがって、第2のトランザクションがスケジューリングされるとき、生じる場合がある任意の生じ得る負の電圧偏差は(第1の電圧レベルよりも低い場合がある)中間電圧レベルに対して相対的な電圧偏差である。中間電圧レベルに対する第2の電圧レベルの負の電圧偏差が負の電圧偏差しきい値よりも小さい場合、パイプライン210において第2のトランザクションが実行されるときに許容できないほど大きい負の電圧偏差またはアンダーシュートが回避される。
【００３８】
したがって、上述の第1および第2の例では、訂正措置には、第2のトランザクションおよびさらなるトランザクションをスケジューリングする前にパイプライン210のエネルギーを増減させて推定された電圧オーバーシュートまたは電圧アンダーシュートを軽減することを含めることができる。場合によっては、スケジューラ206はまた、たとえば、第2のトランザクションおよび将来のトランザクションをスケジューリングする際に比較的長期間(たとえば、いくつかのクロックサイクル)にわたってエネルギーを記憶または保持するために処理システムのいくつかの構成要素の特性に基づくこともできる。たとえば、パイプライン210内に存在する場合がある、インダクタおよびキャパシタのような受動素子は、複数のクロックサイクルにわたって放出されることがあるエネルギーを蓄積してもよい。したがって、次の/将来のエネルギー230と発行対象エネルギー212との単純な比較に基づいて正/負の電圧偏差を正確に推定するのは困難である場合がある。したがって、精度を向上させるためにフィルタ214が設けられてもよい。
【００３９】
フィルタ214は、発行対象エネルギー212および次の/将来のエネルギー230の知識に基づいて電圧偏差を推定するように構成することができる。フィルタ214には、当技術分野で知られているような有限インパルス応答(FIR)、無限インパルス応答(IIR)、非線形フィルタなどのデジタルフィルタを含めてもよく、これらのフィルタは、たとえば、エネルギー変動を電荷の関数として得る(一般に、V=E/Qであることが認識されよう。この場合、Vは電圧(たとえば、ボルト単位)であり、Eはエネルギー(たとえば、ジュール単位)であり、Qは電荷(たとえば、クーロン単位)である)ために使用されるパイプライン210のシミュレーションモデルに基づいて電圧偏差を得るために使用することができる。したがって、フィルタ214は、たとえば、エネルギーの様々なサンプルポイント(第1および第2のトランザクションに関連するエネルギーを含む)およびパイプライン210内の電荷の分布を考慮に入れて対応する電圧偏差を判定するように構成することができる。図示のように、フィルタ214は、対応する次の/将来のエネルギー230を含む1つまたは複数の将来のトランザクションが、パイプライン210において実行されるように発行される場合に生じる電圧偏差の推定値である次の/将来の電圧偏差232を判定するように構成されてもよい。
【００４０】
これに応じて、処理システム200はまた、次の/将来の電圧偏差232が指定されたしきい値を超えるかどうか、または言い換えると、1つまたは複数の将来のトランザクションを(たとえば、最初に、スケジューラ206によって発行キュー207からスケジューリングすることが決定された順序で)スケジューリングした場合に顕著な電圧偏差が発生するかどうかを判定するためのしきい値比較器216および218を備えることもできる。図示のように、しきい値比較器216および218はそれぞれ、次の/将来の電圧偏差232が(正方向において)正の電圧偏差しきい値を超えるかどうか、または(負方向において)負の電圧偏差しきい値を超えるかどうかをスケジューラ206に(たとえば、それぞれアンダーシュート217およびオーバーシュート219として示されるバス上で)通知することができる。いずれの場合も、すなわち、アンダーシュート217が報告されるかどうか、またはオーバーシュート219が報告されるかどうかにかかわらず、スケジューラ206は、将来のトランザクション(たとえば、第2のトランザクション)をパイプライン210において実行されるようにスケジューリングする前に、推定された電圧偏差(次の/将来の電圧偏差232)を軽減するための1つまたは複数の訂正措置を実施することができる。このようにして、スケジューラ206は、オーバーシュートおよびアンダーシュートを回避または軽減する訂正措置を実施した後(または実施させた後)にトランザクションをスケジューリングすることができる。実施される訂正措置は、オーバーシュートが生じるかそれともアンダーシュートが生じるかによって決まってもよく、これについて以下にさらに詳細に説明する。
【００４１】
しきい値比較器216は、次の/将来の電圧偏差232が指定された負の電圧偏差しきい値よりも小さくなるか(または負方向において負の電圧偏差しきい値を超えるか)どうかを判定するように構成されるアンダーシュートしきい値比較器である。負の電圧偏差しきい値は、処理システム200に関する許容可能な電圧偏差に基づいてもよく、その場合、負の電圧偏差しきい値よりも小さくなった電圧偏差は許容できない場合がある(すなわち、対応するノイズが性能を損なうほど顕著である場合がある)。たとえば、しきい値比較器216は、当技術分野で知られているローパスフィルタを備えてもよく、このローパスフィルタは、次の/将来の電圧偏差232が負方向において負の電圧偏差しきい値よりも小さくなった場合にアンダーシュート217として示される信号を報告またはアサートする。アンダーシュート217は、スケジューラ206への入力として設けられる。スケジューラ206は、アンダーシュート217がアサートされた場合に発行対象トランザクション208上で第2のトランザクションを発行する前に次のように1つまたは複数の訂正措置を実施してもよい。
【００４２】
前述のように、アンダーシュートに関する訂正措置には、パイプライン210のエネルギーを低減させ、それによって、第2のトランザクション(および場合によっては、1つまたは複数のさらなる将来のトランザクション)がスケジューリングされるときに、顕著な負の電圧偏差が生じなくなるほどエネルギー偏差が小さくなるようにする措置を含めてもよい。言い換えれば、第2のトランザクションおよび将来のトランザクションの前にパイプライン210のエネルギーを低下させる場合、第2のトランザクションおよび将来のトランザクションが実行されるときのエネルギー偏差が小さくなり、それに応じて負の電圧偏差が小さくなり、したがって、アンダーシュートを防止または軽減することができる。したがって、エネルギーを低減させるための訂正措置には、たとえば、1つまたは複数のクロックサイクルにわたる発行対象トランザクション208上でのトランザクションの発行をストールさせることを含めることができる。
【００４３】
場合によっては、エネルギーを低減させることには、発行対象トランザクション208上の発行キュー207から低エネルギートランザクションを発行することを含めることもできる。たとえば、発行キュー207上で発行されるのを待っている第2のトランザクションよりも低いエネルギーの1つまたは複数のトランザクション(たとえば、第3のトランザクション)があり、処理システム200がアウトオブオーダー処理をサポートする場合、スケジューラ206は、1つまたは複数のクロックサイクルにわたってトランザクションの発行を完全にストールするのではなく、第2のトランザクションを発行する前に1つまたは複数のより低いエネルギーのトランザクションを発行するように構成されてもよい。
【００４４】
上記のように1つまたは複数の訂正措置を実施する1つまたは複数のクロックサイクルの後で、次の/将来の電圧偏差232が小さくなる場合がある。それに応じて、しきい値比較器216は、次の/将来の電圧偏差232が負の電圧偏差しきい値よりも小さくなるのをストールした後にアンダーシュート207をアサート解除することができ、このことが、スケジューラ206が第2のトランザクション(およびまだ発行キュー207において発行されるのを待っており、かつ上述のようにばらばらの順序で発行されていない場合がある1つまたは複数の将来のトランザクション)を発行するきっかけとなってもよい。このようにして、将来のアンダーシュートが事前に推定されてもよく、エネルギーを低減させるための訂正措置(たとえば、トランザクションの発行をストールすること、または発行キュー207からより低いエネルギーのトランザクションを発行すること)によって将来のアンダーシュートを軽減または回避することができる。
【００４５】
次に、しきい値比較器218について説明する。しきい値比較器218は、次の/将来の電圧偏差232が指定された正の電圧偏差しきい値よりも大きくなるか(または正方向において正の電圧偏差しきい値を超えるか)どうかを判定するように構成されるオーバーシュートしきい値比較器である。正の電圧偏差しきい値は、処理システム200に関する許容可能な電圧偏差に基づいてもよく、その場合、正の電圧偏差しきい値よりも大きくなった電圧偏差は許容できない場合がある(すなわち、対応するノイズが性能を損なうほど顕著である場合がある)。たとえば、しきい値比較器218は、当技術分野で知られているハイパスフィルタを備えてもよく、ハイパスフィルタは、次の/将来の電圧偏差232が正方向において正の電圧偏差しきい値よりも大きくなった場合にオーバーシュート219として示される信号を報告またはアサートする。オーバーシュート219はまた、スケジューラ206への入力としても設けられる。スケジューラ206は、オーバーシュート219がアサートされた場合に発行対象トランザクション208上で第2のトランザクションを発行する前に次のように1つまたは複数の訂正措置を実施してもよい。
【００４６】
前述のように、オーバーシュートに関する訂正措置には、パイプライン210のエネルギーを増大させ、それによって、第2のトランザクション(および場合によっては、1つまたは複数のさらなる将来のトランザクション)がスケジューリングされるときに、顕著な正の電圧偏差が生じなくなるほどエネルギー偏差が小さくなるようにする措置を含めてもよい。言い換えれば、第2のトランザクションおよび将来のトランザクションが実行されるようにスケジューリングされる前にパイプライン210のエネルギーを増大させる場合、第2のトランザクションおよび将来のトランザクションが実行されるときのエネルギー偏差が小さくなり、それに応じて正の電圧偏差が小さくなり、したがって、オーバーシュートを防止または軽減することができる。したがって、エネルギーを増大させるための訂正措置には、たとえば、1つまたは複数のクロックサイクルにわたって発行対象トランザクション208上でダミー演算またはNOP(結果がたとえばレジスタファイルに記録されることも書き込まれることもない演算)を発行することを含めることができる。
【００４７】
場合によっては、エネルギーを増大させることには、発行対象トランザクション208上の発行キュー207から高エネルギートランザクション(たとえば、NOP以外のトランザクション)を発行することを含めることもできる。たとえば、発行キュー207上で発行されるのを待っている第2のトランザクションよりも高いエネルギーの1つまたは複数のトランザクション(たとえば、第3のトランザクション)があり、処理システム200がアウトオブオーダー処理をサポートする場合、スケジューラ206は、第2のトランザクションを発行する前に1つまたは複数のより高いエネルギーのトランザクションを発行するように構成されてもよい。
【００４８】
上記のように1つまたは複数の訂正措置を実施する1つまたは複数のクロックサイクルの後で、次の/将来の電圧偏差232が小さくなる場合がある。それに応じて、しきい値比較器218は、次の/将来の電圧偏差232が正の電圧偏差しきい値よりも大きくなるのをストールした後にオーバーシュート209をアサート解除することができ、このことが、スケジューラ206が第2のトランザクション(およびまだ発行キュー207において発行されるのを待っており、かつ上述のようにばらばらの順序で発行されていない場合がある1つまたは複数の将来のトランザクション)を発行するきっかけとなってもよい。このようにして、将来のオーバーシュートが事前に推定されてもよく、エネルギーを増大させるための訂正措置(たとえば、NOPまたは発行キュー207からより高いエネルギーのトランザクションを発行すること)によって将来のオーバーシュートを軽減または回避することができる。
【００４９】
詳細には説明しないが、図2を参照しながら説明した機能ブロックのいくつかが、本開示の範囲から逸脱することなく異なるように構成されてもよい処理システム200の代替実装形態が可能である。たとえば、着信エネルギー228を事前に算出し、着信エネルギー228を発行キュー207に蓄積するのではなく、たとえば、次の/将来のエネルギー230および発行対象エネルギー212を、たとえば、それらに対応するトランザクションの属性を使用してエネルギーテーブル225にアクセスすることに基づいてオンザフライで算出することができる。そのような代替実装形態は、(着信エネルギー228を蓄積するための)発行キュー207におけるストレージスペースを狭くする場合があるが、次の/将来のエネルギー230および発行対象エネルギー212をオンザフライで算出するためのレイテンシを伴うことがある。クロック速度、システム電力消費量などに関する特定の設計上の検討事項に基づいて処理システム200の他の変更形態もまた可能である。
【００５０】
したがって、各態様は、本明細書において開示したプロセス、機能、および/またはアルゴリズムを実施するための様々な方法を含むことが了解されよう。たとえば、図3に示すように、一態様が、処理システム(たとえば、処理システム200)における電圧偏差を制御する方法300を含むことができる。
【００５１】
方法300は、ブロック302において、処理システムのパイプライン(たとえば、パイプライン210)においてトランザクションが実行される場合に生じる電圧偏差を推定することを含む。たとえば、ブロック302において、受信されたトランザクション(たとえば、前述の第1および第2のトランザクションを含む着信トランザクション204)に関連するエネルギーを、たとえば対応する受信されたトランザクションの1つまたは複数の着信属性220に基づいて判定することができる。エネルギーテーブル225から属性当たりのエネルギー224を得ることができ、着信トランザクション204に関する着信エネルギー228を判定するように論理(たとえば、乗算器222の1つまたは複数の乗算器および加算器226)を構成することができる。着信トランザクション204および対応する着信エネルギー228を発行キュー207に蓄積することができる。トランザクション(たとえば、第2のトランザクション)がパイプライン210において実行されるように発行される場合にトランザクションに関して生じる電圧偏差を、フィルタ214を使用して、少なくとも、トランザクション(たとえば、第2のトランザクションおよび場合によっては1つまたは複数のさらなる将来のトランザクションの次の/将来のエネルギー230)に関連するエネルギーおよび1つまたは複数の前に発行されたトランザクションに関連するエネルギー(たとえば、発行対象トランザクション208上で前に発行された第1のトランザクションなどの1つまたは複数のトランザクションの発行対象エネルギー212)に基づいて推定することができる。
【００５２】
ブロック304は、推定された電圧偏差が指定されたしきい値を超えるかどうかを判定することを含む。たとえば、しきい値比較器216/218を使用して、推定された電圧偏差がそれぞれ、指定された最小電圧偏差しきい値/正の電圧偏差しきい値を超えるかどうかを判定する(たとえば、それぞれ、アンダーシュート217/オーバーシュート219がアサートされるかどうかを判定する)ことができる。
【００５３】
ブロック306は、推定された電圧偏差が指定されたしきい値を超える場合、トランザクションをパイプラインにおいて実行されるように発行する前に、電圧偏差を軽減するための1つまたは複数の訂正措置を実施することを含む。たとえば、アンダーシュート217が生じる場合、訂正措置には、発行対象トランザクション208上でトランザクションを発行する前に、パイプライン210におけるエネルギーを低減させること(たとえば、発行対象トランザクション208をストールさせることまたはクロックゲーティング)を含めることができ、オーバーシュート219が生じる場合、訂正措置には、発行対象トランザクション208上でトランザクションを発行する前に、パイプライン210においてエネルギーを増大させること(たとえば、発行対象トランザクション208上でNOPを発行すること)を含めることができる。
【００５４】
さらなる態様では、(たとえば、推定された電圧偏差がそれぞれの最小電圧偏差しきい値または正の電圧偏差しきい値を超えることに起因してアンダーシュート217またはオーバーシュート219がアサートされた対応する場合に関して、発行対象トランザクション208の発行対象エネルギー212によってアンダーシュート217またはオーバーシュート219がアサート解除されるかどうかを判定することに基づいて)ブロック306において、トランザクションを発行する前に実施された訂正措置が有効であったかどうか、すなわち、電圧偏差が小さくなったかどうかを判定することができる。
【００５５】
本開示の態様が、本明細書で説明する機能を実行するための様々な機能ブロックまたは手段を含むことが了解されよう。たとえば、スケジューラ206のための手段は、エネルギーテーブル225、フィルタ214、および処理システム200の関連する態様とともに、処理システムのパイプラインにおいてトランザクションが実行される場合に生じる電圧偏差を推定するための手段を構成することができる。しきい値比較器216および218は、推定された電圧偏差が指定されたしきい値を超えるかどうかを判定するための手段を構成することができる。例示的な態様では、(発行キュー207を備える)スケジューラ206は、推定された電圧偏差が指定されたしきい値を超える場合、トランザクションがパイプラインにおいて実行されるように発行される前に、電圧偏差を軽減するための1つまたは複数の訂正措置を実施するための手段を構成することもできる。
【００５６】
図4には、例示的な態様によるコンピューティングデバイス400の特定の例示的な態様のブロック図が示される。コンピューティングデバイス400は、いくつかの態様では、図3の方法300を実行するように構成されてもよい。コンピューティングデバイス400は、図2の処理システム200と同様であってもよいシステムインパッケージデバイスまたはシステムオンチップデバイス422を含む。図2における処理システム200の選択された態様のみが図4におけるコンピューティングデバイス400の図に示され、一方、他の特徴は図を明快にするために省略される。図示のように、コンピューティングデバイス400は、図2のスケジューラ206と、エネルギーテーブル225、フィルタ214、およびパイプライン210を備えるように示されるプロセッサ402を含む(エネルギーテーブル225とスケジューラ206との間の接続線は、エネルギーテーブル225からの情報が、図2を参照しながら説明したようにスケジューラ206に供給される着信エネルギー228を導出するために使用される場合があることを示すように点線で示される)。本明細書には示されていないが、処理システム200の様々な他の機能ブロックおよび関連する配線がコンピューティングデバイス400に実装されてもよいことに留意されたい。図4に示すように、プロセッサ402は、メモリ432と通信してもよい。図示されていないが、1つもしくは複数のキャッシュ(たとえば、I-キャッシュ202)または他のメモリ構造もコンピューティングデバイス400に含まれてもよい。
【００５７】
図4はまた、プロセッサ402およびディスプレイ428に結合されたディスプレイコントローラ426を示す。符号器/復号器(コーデック)434(たとえば、オーディオおよび/または音声コーデック)をプロセッサ402に結合することができる。ワイヤレスコントローラ440(モデムを含んでもよい)などの他の構成要素もまた示される。スピーカ436およびマイクロフォン438をコーデック434に結合することができる。図4はまた、ワイヤレスコントローラ440を、ワイヤレスアンテナ442に結合できることを示している。特定の態様において、プロセッサ402、ディスプレイコントローラ426、メモリ432、コーデック434、およびワイヤレスコントローラ440は、前述のシステムインパッケージまたはシステムオンチップデバイス422に含まれる。
【００５８】
ある特定の態様では、入力デバイス430および電源444が、システムオンチップデバイス422に結合される。さらに、ある特定の態様では、図4に示すように、ディスプレイ428、入力デバイス430、スピーカ436、マイクロフォン438、ワイヤレスアンテナ442、および電源444は、システムオンチップデバイス422の外部に位置する。ただし、ディスプレイ428、入力デバイス430、スピーカ436、マイクロフォン438、ワイヤレスアンテナ442、および電源444の各々は、インターフェースまたはコントローラのような、システムオンチップデバイス422の構成要素に結合することができる。
【００５９】
図4はワイヤレス通信デバイスを示すが、プロセッサ402およびメモリ432は、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、携帯情報端末(PDA)、固定ロケーションデータユニット、またはコンピュータに組み込まれる場合もあることに留意されたい。さらに、コンピューティングデバイス400の少なくとも1つまたは複数の例示的な態様は、少なくとも1つの半導体ダイに統合されてもよい。
【００６０】
情報および信号が、様々な異なる技術および技法のいずれを使用して表現されてもよいことが、当業者には理解されよう。たとえば、上記の説明全体にわたって言及される場合があるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表現される場合がある。
【００６１】
さらに、本明細書において開示される態様に関連して説明する種々の例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップが、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実装されてもよいことを、当業者には理解されよう。ハードウェアおよびソフトウェアのこの互換性を明確に示すために、種々の例示的な構成要素、ブロック、モジュール、回路、およびステップについて、上記では概してそれらの機能に関して説明してきた。そのような機能が、ハードウェアとして実施されるか、ソフトウェアとして実施されるのかは、特定の適用例と、システム全体に課される設計制約とによって決まる。当業者は、説明した機能を特定の適用例ごとに様々な方法で実施してもよいが、そのような実施態様決定は、本発明の範囲からの逸脱を引き起こすものと解釈されるべきではない。
【００６２】
本明細書において開示される態様に関して説明される方法、シーケンスおよび/またはアルゴリズムは、直接ハードウェアにおいて具現化されても、プロセッサによって実行されるソフトウェアモジュールにおいて具現化されても、あるいはその2つの組合せにおいて具現化されてもよい。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られている任意の他の形態の記憶媒体内に存在してもよい。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取ること、および記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体はプロセッサに一体化される場合がある。
【００６３】
したがって、本発明の態様は、プロセッサを動作させ、より詳細には、プロセッサにおける電圧偏差を制御する方法を具現化するコンピュータ可読媒体を含むことができる。したがって、本発明は例示される例に限定されず、本明細書において説明する機能を実施するための任意の手段が、本発明の態様に含まれる。
【００６４】
上記の開示は本発明の例示的な態様を示すが、添付の特許請求の範囲によって規定されるような、本発明の範囲から逸脱することなく、本明細書において種々の変形および変更を行うことができることに留意されたい。本明細書において説明される本発明の態様による方法クレームの機能、ステップ、および/または動作は、任意の特定の順序で実行される必要はない。さらに、本発明の要素は、単数形で記載されるか、または特許請求される場合があるが、単数形に限ることが明確に言及されない限り、複数形を意図している。
【符号の説明】
【００６５】
100  処理システム
102  命令キャッシュ
104  着信トランザクション
106  スケジューラ
108  発行対象トランザクション
110  パイプライン
112  発行対象属性
114  フィルタ
116  しきい値比較器
117  アンダーシュート
118  しきい値比較器
119  オーバーシュート
200  処理システム
202  I-キャッシュ
204  着信トランザクション
206  スケジューラ
207  発行キュー
208  発行対象トランザクション
210  パイプライン
212  発行対象エネルギー
214  フィルタ
216  しきい値比較器
217  アンダーシュート
218  しきい値比較器
219  オーバーシュート
220  着信属性
222  乗算器
224  属性当たりのエネルギー
225  エネルギーテーブル
226  加算器
228  着信エネルギー
230  次の/将来のエネルギー
232  次の/将来の電圧偏差
400  コンピューティングデバイス
402  プロセッサ
422  システムインパッケージデバイスまたはシステムオンチップデバイス
426  ディスプレイコントローラ
428  ディスプレイ
430  入力デバイス
432  メモリ
434  コーダ/デコーダ(コーデック)
436  スピーカ
438  マイクロフォン
440  ワイヤレスコントローラ
442  ワイヤレスアンテナ
444  電源
【図１】
2018529169.tif 000003
【図２】
2018529169.tif 000004
【図３】
2018529169.tif 000005
【図４】
2018529169.tif 000006
【手続補正書】
【提出日】平成30年3月23日(2018.3.23)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
処理システムにおける電圧偏差を制御する方法であって、
前記処理システムのパイプラインにおいてトランザクションが実行される場合に生じる電圧偏差を推定するステップであって、前記処理システムが、前記トランザクションのアウトオブオーダー処理をサポートする、ステップと、
前記推定された電圧偏差が指定されたしきい値を超えるかどうかを判定するステップと、
前記推定された電圧偏差が前記指定されたしきい値を超える場
合、前記トランザクションを前記パイプラインにおいて実行されるように発行する前に、電圧偏差を軽減するための1つまたは複数の訂正措置を実施するステップであって、前記1つまたは複数の訂正措置が、少なくとも1つのアウトオブオーダートランザクションを発行することを含む、ステップと
を含む、方法。
【請求項２】
少なくとも、前記トランザクションに関連するエネルギー、および前記パイプラインにおいて実行されるように前に発行された1つまたは複数のトランザクションに関連するエネルギーに基づいて前記電圧偏差を推定するステップを含む、請求項1に記載の方法。
【請求項３】
前記トランザクションの1つまたは複数の属性に基づいて前記トランザクションに関連するエネルギーを判定するステップを含む、請求項2に記載の方法。
【請求項４】
テーブルから前記1つまたは複数の属性の各々に関連するエネルギー値を判定し、かつ前記1つまたは複数の属性の前記エネルギー値を合計するステップをさらに含む、請求項3に記載の方法。
【請求項５】
前記推定された電圧偏差が負方向において負の電圧偏差しきい値を超える場合に前記推定された電圧偏差がアンダーシュートであると判定するステップを含む、請求項1に記載の方法。
【請求項６】
前記少なくとも1つのアウトオブオーダートランザクションは、前記パイプラインにおいて実行すべき前記トランザクションよりも低いエネルギーを有し、前記1つまたは複数の訂正措置を実施するステップは、前記パイプラインのエネルギーを低減させるステップを含む、請求項5に記載の方法。
【請求項７】
前記1つまたは複数の訂正措置は、前記パイプラインにおいて実行すべきトランザクションの発行をストールさせることをさらに含む、請求項6に記載の方法。
【請求項８】
前記トランザクションをスケジューリングする前に、前記1つまたは複数の訂正措置を実施するステップによって前記電圧偏差が軽減されたかどうかを判定するステップをさらに含む、請求項6に記載の方法。
【請求項９】
前記推定された電圧偏差が正方向において正の電圧偏差しきい値を超える場合に前記推定された電圧偏差がオーバーシュートであると判定するステップを含む、請求項1に記載の方法。
【請求項１０】
前記少なくとも1つのアウトオブオーダートランザクションは、前記パイプラインにおいて実行すべき前記トランザクションよりも高いエネルギーを有し、前記1つまたは複数の訂正措置を実施するステップは、前記パイプラインのエネルギーを増大させるステップを含む、請求項9に記載の方法。
【請求項１１】
前記1つまたは複数の訂正措置は、前記パイプラインにおいて実行すべきダミートランザクションまたはノーオペレーション(NOP)を発行することをさらに含む、請求項10に記載の方法。
【請求項１２】
前記トランザクションをスケジューリングする前に、前記1つまたは複数の訂正措置を実施するステップによって前記電圧偏差が軽減されたかどうかを判定するステップをさらに含む、請求項10に記載の方法。
【請求項１３】
処理システムであって、
トランザクションを受信し、かつ前記トランザクションをパイプラインにおいて実行されるように発行するように構成されるスケジューラであって、前記処理システムが、前記トランザクションのアウトオブオーダー処理をサポートする、スケジューラと、
前記パイプラインにおいてトランザクションが実行される場合に生じる電圧偏差を推定するように構成されるフィルタと、
前記推定された電圧偏差が指定されたしきい値を超えるかどうかを判定するためのしきい値比較器と
を備え、
前記スケジューラは、前記トランザクションが前記パイプラインにおいて実行されるように発行される前に、電圧偏差を軽減するように1つまたは複数の訂正措置を実施するように構成され、前記1つまたは複数の訂正措置は、少なくとも1つのアウトオブオーダートランザクションを発行することを含む、
処理システム。
【請求項１４】
請求項1から12のいずれか一項に記載の方法を実行するための手段を備える、装置。
【請求項１５】
プロセッサによって実行されたときに、前記プロセッサに、請求項1から12のいずれか一項に記載の方法を実行させるコードを備える、非一時的コンピュータ可読記憶媒体。
【国際調査報告】
2018529169.tif 000007
2018529169.tif 000008
2018529169.tif 000009