(57)【要約】【課題】電気デバイスの電力消費を最適化する方法を提供する。【解決手段】本方法は、プロセッサによって、待機状態に入るための命令を受信することと、プロセッサによって、待機状態に入るための命令に関連付けられたパラメータを識別することと、を含む。本方法は、プロセッサによって、パラメータに基づいて低電力モードに入るための命令を開始することと、プロセッサによって、パラメータに基づいて低電力モードから抜け出るための命令を開始することと、ユーザ・インタフェースを介してプロセッサの現在の状態の通知をユーザに提供することと、を続ける。パラメータは、実行時間情報、命令情報、およびスケジュールされた動作を含む。【選択図】図１
2020505696.tif 000002
【特許請求の範囲】
【請求項１】
電気デバイスにおける電力消費を最適化する方法であって、
プロセッサによって、待機状態に入るための命令を受信することと、
前記プロセッサによって、待機状態に入るための前記命令に関連付けられたパラメータを識別することと、
前記プロセッサによって、前記パラメータに基づいて低電力モードに入るための命令を開始することと、
前記プロセッサによって、前記パラメータに基づいて前記低電力モードから抜け出るための命令を開始することと、
ユーザ・インタフェースを介して、前記プロセッサの現在の状態の通知をユーザに提供することと、
を含む、方法。
【請求項２】
前記パラメータが実行時間情報、命令情報、およびスケジュールされた動作を含む、請求項１に記載の方法。
【請求項３】
前記パラメータが以前のイベントまたは状態の履歴に基づいてしきい値を動的に変更することを含む、請求項１に記載の方法。
【請求項４】
低電力モードに入るためのおよび抜け出るための前記命令が前記電気デバイスの所定の回路に送信される、請求項１に記載の方法。
【請求項５】
前記プロセッサが、識別された前記パラメータに基づいて低電力モードに入るためのおよび抜け出るための所定の命令セットを含む、請求項１に記載の方法。
【請求項６】
前記パラメータが遠隔地からアクセスされる、請求項１に記載の方法。
【請求項７】
低電力モードに入るためのおよび抜け出るための前記命令が、所定の時間、イベントの開始を遅延させることを含む、請求項１に記載の方法。
【請求項８】
低電力モードに入るための前記命令が、所定の期間の後に、ハードウェア・デバイスに低電力モードからルーチン動作に移行するように命令することを含む、請求項１に記載の方法。
【請求項９】
前記パラメータを前記命令のオペランドとして渡すことができる、請求項１に記載の方法。
【請求項１０】
低電力モードに入るためのおよび抜け出るための前記命令が、低電力モードに入るまたは抜け出る前に、所定の時間量、遅延動作を実行することを含む、請求項１に記載の方法。
【請求項１１】
電気デバイスにおける電力消費を最適化するシステムであって、
コンピュータ可読命令を有するメモリと、
前記コンピュータ可読命令を実行するためのプロセッサであり、前記コンピュータ可読命令が、
待機状態に入るための命令を受信すること、
待機状態に入るための前記命令に関連付けられたパラメータを識別すること、
前記パラメータに基づいて低電力モードに入るための命令を開始すること、
前記パラメータに基づいて低電力モードから抜け出るための命令を開始すること、および
ユーザ・インタフェースを介して前記プロセッサの現在の状態の通知をユーザに提供すること、を含む、前記プロセッサと、
を備える、システム。
【請求項１２】
低電力モードに入るためのおよび抜け出るための前記命令が前記電気デバイスの所定の回路に送信される、請求項１１に記載のシステム。
【請求項１３】
前記プロセッサが、識別された前記パラメータに基づいて低電力モードに入るためのおよび抜け出るための所定の命令セットを含む、請求項１１に記載のシステム。
【請求項１４】
低電力モードに入るためのおよび抜け出るための前記命令が、所定の時間、イベントの開始を遅延させることを含む、請求項１１に記載のシステム。
【請求項１５】
低電力モードに入るための前記命令が、低電力モードに入る前に、所定の時間量、遅延動作を実行することを含む、請求項１１に記載のシステム。
【請求項１６】
電気デバイスにおける電力消費を最適化するためのコンピュータ・プログラムであって、前記プログラムがコンピュータに、
プロセッサによって、待機状態に入るための命令を受信することと、
前記プロセッサによって、待機状態に入るための前記命令に関連付けられたパラメータを識別することと、
前記パラメータに基づいて低電力モードに入るための命令を開始することと、
前記パラメータに基づいて低電力モードから抜け出るための命令を開始することと、
ユーザ・インタフェースを介して前記プロセッサの現在の状態の通知をユーザに提供することと、
を実行させる、コンピュータ・プログラム。
【請求項１７】
低電力モードに入るためのおよび抜け出るための前記命令が前記電気デバイスの所定の回路に送信される、請求項１６に記載のコンピュータ・プログラム。
【請求項１８】
前記プロセッサが、識別された前記パラメータに基づいて低電力モードに入るためのおよび抜け出るための所定の命令セットを含む、請求項１６に記載のコンピュータ・プログラム。
【請求項１９】
低電力モードに入るためのおよび抜け出るための前記命令が、所定の時間、イベントの開始を遅延させることを含む、請求項１６に記載のコンピュータ・プログラム。
【請求項２０】
低電力モードに入るための前記命令が、低電力モードに入る前に、所定の時間量、遅延動作を実行することを含む、請求項１６に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、動作時に電力を消費する集積回路（ＩＣ）に存在する多くのトランジスタを含むコンピュータ・システムまたはプロセッサにおいて熱放散および電力消費を低減および制御することに関する。
【背景技術】
【０００２】
典型的には、電気デバイスは、動作時の電力消費を減らすためにクロック・ゲーティングおよびサイクル・ステアリングを用いている。ＩＣサイズが縮小し、回路密度が増加するにつれ、対応する電力消費および熱放散要件も増加する。特に、回路および電力を消費する論理ブロックが待機状態にあるとき、電力消費を最小限に抑えることが非常に望ましい。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
したがって、本発明が解決しようとする課題は、待機イベント中のプロセッサを省電力化する方法、システム、およびコンピュータ・プログラムを提供することである。
【課題を解決するための手段】
【０００４】
実施形態は、電気デバイスにおける電力消費を最適化するための方法を対象とする。本方法は、プロセッサによって、待機状態に入るための命令を受信することと、プロセッサによって、待機状態に入るための命令に関連付けられたパラメータを識別することと、を含む。また、本方法は、プロセッサによって、パラメータに基づいて低電力モードに入るための命令を開始することと、プロセッサによって、パラメータに基づいて低電力モードから抜け出るための命令を開始することと、ユーザ・インタフェースを介してプロセッサの現在の状態の通知をユーザに提供することと、を含む。
【０００５】
また、実施形態は、コンピュータ可読命令を有するメモリと、コンピュータ可読命令を実行するためのプロセッサと、を含むシステムを対象とする。コンピュータ可読命令は、待機状態に入るための命令を受信することと、待機状態に入るための命令に関連付けられたパラメータを識別することと、を含む。また、コンピュータ可読命令は、パラメータに基づいて低電力モードに入るための命令を開始することと、プロセッサによって、パラメータに基づいて低電力モードから抜け出るための命令を開始することと、ユーザ・インタフェースを介してプロセッサの現在の状態の通知をユーザに提供することと、を含む。
【０００６】
また、実施形態は、プログラム命令を含むコンピュータ可読記憶媒体を含むコンピュータ・プログラム製品を対象とし、ここでコンピュータ可読記憶媒体は、それ自体一時的な信号ではない。プログラム命令は、コンピュータ・プロセッサによって実行可能であり、コンピュータ・プロセッサに方法を実行させる。本方法は、プロセッサによって、待機状態に入るための命令を受信することと、プロセッサによって、待機状態に入るための命令に関連付けられたパラメータを識別することと、を含む。また、本方法は、パラメータに基づいて低電力モードに入るための命令を開始することと、プロセッサによって、パラメータに基づいて低電力モードから抜け出るための命令を開始することと、ユーザ・インタフェースを介してプロセッサの現在の状態の通知をユーザに提供することと、を含む。
【０００７】
本発明の主題は、本明細書の結びの特許請求の範囲において具体的に指摘されかつ明確に定義される。前述のおよび他の特徴ならびに利点は、添付図面と併せて以下の詳細な説明を考慮することによって明らかになる。
【図面の簡単な説明】
【０００８】
【図１】本発明の１つまたは複数の実施形態による電力消費を制御するための省電力イベント・プロセスを示すフローチャートである。
【図２】本発明の１つまたは複数の実施形態による符号化された待機イベント命令セットを表す図である。
【図３】本発明の１つまたは複数の実施形態による待機イベント命令セットのスリープ判定インデックスフィールドを表す図である。
【図４】本発明の１つまたは複数の実施形態によるトリガ・イベントの発生によってトリガされた代替命令のチャートである。
【図５】本発明の１つまたは複数の実施形態によるコンピュータ・システムの高水準のブロック図である。
【図６】本発明の１つまたは複数の実施形態によるコンピュータ可読記憶媒体およびプログラム命令を含むコンピュータ・プログラム製品を表す図である。
【発明を実施するための形態】
【０００９】
本発明の様々な実施形態は、関連する図面を参照して本明細書に記載される。本発明の範囲から逸脱することなく代替の実施形態を考案することができる。以下の説明および図面において、要素間の様々な接続および位置関係（例えば、上に、下に、隣接してなど）が記載されていることに留意されたい。これらの接続または位置関係あるいはその両方は、別段の規定がない限り、直接的または間接的であってもよく、本発明は、この点に関して限定的であることは意図されていない。したがって、エンティティの結合は、直接的または間接的な結合のいずれかを指すことができ、エンティティ間の位置関係は、直接的または間接的な位置関係であってもよい。間接的な位置関係の例として、層「Ｂ」の上に層「Ａ」を形成することに対する本明細書における言及は、層「Ａ」および層「Ｂ」の関連する特徴および機能性が中間層によって実質的に変化しない限り、１つまたは複数の中間層（例えば層「Ｃ」）が層「Ａ」と層「Ｂ」との間にある状況を含む。
【００１０】
以下の定義および略語は、特許請求の範囲および本明細書の解釈に使用されるべきである。本明細書で使用されるとき、用語「備える」、「備えている」、「含む」、「含んでいる」、「有する」、「有している」、「含有する」もしくは「含有している」、またはそれらの任意の他の変形は、非排他的な包含を含むことが意図されている。例えば、要素の列挙を含む組成物、混合物、プロセス、方法、物品、または装置は、必ずしもそれらの要素だけに限定されず、明示的に列挙されていない、あるいはそのような組成物、混合物、プロセス、方法、物品、または装置に固有の他の要素を含むことができる。
【００１１】
さらに、用語「例示的」は、本明細書では、「例、実例、または例示として役立つ」ことを意味するために使用される。「例示的」として本明細書に記載される任意の実施形態または設計は、他の実施形態または設計よりも好ましいもしくは有利であると必ずしも解釈されるべきではない。用語「１つまたは複数」は、１以上の任意の整数、すなわち１、２、３、４などを含むと理解される。用語「複数」は、２以上の任意の整数、すなわち２、３、４、５などを含むと理解される。用語「接続」は、間接的な「接続」および直接的な「接続」を含むことができる。
【００１２】
「一実施形態」、「実施形態」、「例示的実施形態」などへの本明細書における言及は、記載された実施形態が特定の特徴、構造、または特性を含むことを示すが、すべての実施形態が特定の特徴、構造、または特性を含むことができる。さらに、そのような言い回しは、必ずしも同じ実施形態に言及しているわけではない。さらに、特定の特徴、構造、または特性が実施形態に関連して記載されている場合、明示的に記載されているかどうかにかかわらず、他の実施形態に関連してそのような特徴、構造、または特性に影響を与えることは当業者の知識の範囲内であると思われる。
【００１３】
以降の説明の目的のために、用語「上部」、「下部」、「右」、「左側」、「垂直」、「水平」、「頂部」、「底部」およびそれらの派生語は、図面内で方向付けされているように、記載された構造および方法に関連しているものとする。用語「上にある」、「頂部に（atop）」、「頂部に（on top）」、「上に配置された」、または「頂部に配置された」は、第１の構造などの第１の要素が第２の構造などの第２の要素の上に存在し、第１の要素と第２の要素との間に界面構造などの介在する要素が存在してもよいことを意味する。用語「直接接触」は、第１の要素（第１の構造など）および第２の要素（第２の構造など）が、２つの要素の界面に中間層なしで互いに接続されていることを意味する。
【００１４】
ここで本発明の概要に目を向けると、本明細書に記載された方法およびデバイスは、電力消費を制御するための省電力イベント・プロセスを含む。本発明は、既に待機状態にあるコンピュータ・システム（プロセッサ）であって、低電力（省電力）状態入って電力を節約し発熱を減らすようにプロセッサの要素に命令を送るコンピュータ・システム（プロセッサ）を含む。省電力状態を開始するために、プロセッサは、最初に待機状態にある必要がある。プロセッサは、現在の作業負荷およびプログラムフローに応じて待機状態に入り、電力消費パラメータには依存しない。
【００１５】
ここで本発明の実施形態のより詳細な説明に目を向けると、図１は、本発明の１つまたは複数の実施形態による電力消費を制御するための省電力プロセスを示すフローチャート１００を表す。プロセス１００は、（待機状態に入る）「待機」命令１０２と、待機状態を継続する条件が満たされるどうかの判定ブロック１０４と、ブロック１０４での条件が満たされない場合にブロック１０６でプログラム実行を継続するためのプロセスと、ブロック１０４の条件が満たされた場合にブロック１０８でプログラム実行を停止するステップと、ブロック１１０で低電力モード開始条件を監視することと、を実行するプロセッサを含む。フローチャート１００は、ブロック１１２でスリープ・オペレーション・コード（図２でさらに説明する）および現在の状態に基づいて低電力モードに入るための判定と、待機命令がブロック１１４で終了したかどうかを判定する判定ブロックと、ブロック１１２での判定が「はい」である場合、ブロック１１６で選択された機能ユニットをシャット・ダウンするプロセスと、ブロック１１８で低電力モード終了条件を監視するためのプロセスと、スリープ・オペレーション・コード（図２で論じる）および現在の状態に基づいて低電力モードから抜け出るべきかどうかを判定するためのブロック１２０の判定ブロックと、を続ける。フローチャート１００は、ブロック１２０からの「いいえ」応答に基づいて待機命令が終了したかどうかを尋ねるブロック１２２の判定ブロックと、判定ブロック１２０での答えが「はい」である場合、ブロック１２４で電源オフの機能ユニットを再起動するプロセスと、待機命令が終了したかどうかを尋ねる判定ブロック１２６と、判定ブロック１２６に対する答えが「いいえ」である場合、ブロック１２８で待機命令が終了するのを監視するプロセスと、判定ブロック１２６に対する答えが「はい」である場合、ブロック１３０でプログラム実行を再開するプロセスと、を続ける。
【００１６】
ブロック１０８でプロセッサが待機状態になると、ブロック１１２でプロセッサは、省電力状態または低電力モードに入る判定を下す。これは、ブロック１１６において、プロセッサが選択された回路および論理ブロックの電力を落とすまたは電力消費を削減するための命令を送信することによって達成される。ブロック１１６に示されるように省電力状態に入る判定は、図３に記載されるようないくつかのパラメータに基づく。プロセッサが省電力状態に入るか否かの判定にかかわらず、プロセッサは、待機状態で動作を継続する。プロセッサは、省電力状態で動作することとは無関係に待機状態に入る能力を有する。しかしながら、プロセッサが既に待機状態にある場合にのみ、プロセッサは、省電力状態に入ることができる。さらに、プロセッサが待機状態から抜け出た場合は、省電力状態も終了する。フローチャート１００は、待機状態を継続すべきか終了すべきかを判定するために、コンピュータ・システムがシステム・パラメータを監視することを含むブロック１１２に続く。プロセスは、ブロック１１６に続き、ここで予め選択された回路および論理ブロックがシャット・ダウンされるか、または省電力状態に入るように指示される。フローチャート１００は、判定ブロック１２０も含み、ここでプロセッサは、省電力状態を継続すべきか省電力状態から抜け出るべきかを判定する。ブロック１２０でのこの判定は、ブロック１１８でコンピュータ・システム・パラメータを分析することを含む。ブロック１１８で１組の監視されたパラメータが状態を変えるときまで、例えば、トリガ・イベントが消えるときまで、プロセッサが省電力状態から抜け出るための命令を送るときまで、またはプロセッサがブロック１２２で待機状態から抜け出るときまで、プロセッサは、ブロック１２０の省電力状態を有効にし続ける。ブロック１２０で低電力状態から抜け出る判定が下されると、ブロック１２４でプロセスは、電源オフの機能ユニットを再起動し、次いで、ブロック１２６で待機状態を終了するためのコマンドを監視する。ブロック１２６で待機状態から抜け出るコマンドが受信されると、プログラム実行は、１３０で再開し、プロセスは、ブロック１０２で再始動する。
【００１７】
図２は、本発明の１つまたは複数の実施形態による符号化された待機イベント命令セット２００を表す。例示的な命令セット２００は、オペコード・フィールド２０２、分岐フィールド２０４、オプション・フィールド２０６、マスクフィールド２０８、時間フィールド２１０、ヒント・フィールド（スリープ判定インデックス（ＳＤＩ）としても知られている）２１２、および予約フィールド２１４としてラベル付けされた複数のフィールドを有する。オペコード・フィールド２０２は、命令セット２００内の待機イベント命令セットを一意に識別する。待機イベントには、レジスタを参照するオペランド、即値オペランドを受け取って処理するオペランドなどを含むいくつかのバリエーションがあり得る。分岐フィールド２０４は、エラーが発生するたびに、プログラムが分岐すべき場所を指定する。１つの例示的なエラーは、タイムアウト・イベントである。分岐フィールド２０４は、絶対アドレス指定または相対アドレス指定を含むこともできる。オプション・フィールド２０６は、待機しているトリガ・イベントのセットがどのように処理されるかを符号化する。一部の実施形態では、利用可能なリソースを表すビットが設定またはクリアされるまで、一定期間待機することが望ましい。一部の実施形態では、いくつかのリソースを表すすべてのビットまたは単一のビットのみが状態を変えるまで待機することが望ましい。以下でさらに説明されるように、いくつかのリソースは、単一ビットによって表すことができ、マスクを必要としない。それらの実施形態では、そのようなリソースは、オプション・フィールド２０６内で簡潔に表すことができる。一方、マスクフィールド２０８は、豊富なリソースを符号化する。例として、入力／出力（ＩＯ）コントローラは、一度に未解決の複数の直接メモリ・アクセス（ＤＭＡ）動作を有することができる。各ＤＭＡ動作が単一ビットとして符号化される場合、１番目および３番目のＤＭＡ動作に対して待機が存在してもよい。一方、２番目のＤＭＡ動作は、無視される。マスクフィールド２０８は、「１０１ｂ」マスク（「ｂ」はバイナリマスクを意味する）で符号化することもできる。マスクフィールド２０８の使用は、動作を妨げず、むしろ、待機状態から抜け出るための判定において考慮されないそれらの動作を識別する。待機イベント命令２００は、プロセッサが待機する最大時間間隔を符号化する時間フィールド２１０も含む。システムが、設定された時間量、トリガ・イベントが発生するのを待ったとき、システムは、分岐フィールド２０４オペランドを参照する。次いで、分岐フィールド２０４オペランドを使用して、プログラムカウンタをロードする。一部の実施形態では、ゼロのプログラムカウンタは、永遠に待機するように符号化され得る。また、一部の実施形態では、時間フィールド２１０も永遠に待機するために０に設定され得る。ＳＤＩフィールド２１２は、限定されることなく、「常に節電」、「決して節電しない」などを含むオプションを選択するためのビットを含む。ＳＤＩフィールド２１２は、省電力状態の開始および終了を制御するために使用され、ソフトウェア開発者がハードウェアに渡したい追加の情報を含み、図３でより詳細に論じられる。
【００１８】
図３は、本発明の１つまたは複数の実施形態による待機イベント命令セットのスリープ判定インデックス（ＳＤＩ）フィールド３００を表す。ＳＤＩフィールド（テーブル）３００は、図２の待機イベント命令２００の一フィールドである。ＳＤＩテーブル３００は、スリープ・オペレーション（Ｏｐ）コード３０２、パラメータ３０４、および状態３０６を含む。テーブル・エントリのそれぞれは、ＳＤＩテーブル３００のエントリに関連付けられたステートマシンを制御する。特定のＳＤＩテーブル３００のエントリの情報は、いつ省電力状態に入るか、およびいつ省電力状態から抜け出るかを制御する。プログラマは、待機イベント命令２００にＳＤＩテーブル３００の値を設定する。また、プログラマは、ＳＤＩテーブル３００の各エントリに対してスリープ・オペレーション・コード３０２およびパラメータ３０４を構成する。所与のＳＤＩテーブル３００のエントリは、必要に応じて２つ以上の待機イベント命令によって参照されてもよい。スリープ・オペレーション・コード３０２は、どのアルゴリズムを適用すべきかを指定する。いくつかの例示的なアルゴリズムは、限定されることなく、以下のノーオペレーション（ＮＯＰ）３０８を含み、ここでは、デバイスは、なんらかの理由で省電力状態に入らず、パラメータ（なし）および状態（なし）を含む。別の例示的なアルゴリズムは、時間遅延３１０であり、ここでＳＤＩフィールド３００は、前の連続したＮ個の待機状態が特定のしきい値パラメータよりも長くかかった場合に省電力状態に入る命令を送信する。パラメータは、オペレーションの数およびしきい値を含む。状態は、しきい値を超える以前の連続オペレーションの現在の数を含む。別の例示的なアルゴリズムは、平均しきい値を超えること３１２を含む。このＳＤＩフィールドは、待機イベント時間の指数移動平均がしきい値を超えた場合に、省電力状態に入ることを指定するスリープ・オペコード３０２を有する。指数移動平均は、
「最後に測定された待機時間＊ａ＋（１−ａ）＊前に計算された指数平均」    式１
として、定義される。
パラメータは、重み付けパラメータ「ａ」およびしきい値を含む。状態は、以前に計算された平均を含む。別の例示的なアルゴリズムは、別の時間遅延２３１４を含み、ここで、所定の時間（前の待機時間−Ｋタイマ・ティック）後に省電力状態から抜け出る。この値が≦０の場合、デバイスは、省電力状態に入らず、その現在の状態を無期限に維持する。パラメータは、値「Ｋ」を含むが、状態は、前の待機時間を含む。別の例示的なアルゴリズムは、前の連続するＮ回のオペレーションの数が所定のしきい値３１６を超えない場合、省電力状態に入らないことを含む。パラメータは、オペレーションの数Ｎおよびしきい値を含む。状態は、しきい値未満の現在の連続オペレーション数を含む。最後に、別の例示的なアルゴリズムは、指数移動平均がしきい値３１８未満である場合に省電力状態に入らないことを含む。パラメータは、重み付けパラメータ「ａ」および所定のしきい値を含む。状態は、以前に計算された平均を含む。これらは、可能なアルゴリズムの見本にすぎず、限定するものではない。使用されているシステム、およびオペレータまたはプログラマの要求に応じて、他の実施形態が可能である。ＳＤＩフィールド３００アルゴリズム３０８、３１０、３１２、３１４、３１６、および３１８は、処理要素のマイクロコードによって、またはハードウェア・ステートマシン上に実装することができる。省電力状態の開始および終了は、アクティブな待機状態間隔内の任意の時点で発生してもよい。他のアルゴリズムが可能であり、上記の実施形態に限定されない。
【００１９】
図４は、本発明の１つまたは複数の実施形態によるトリガ・イベントの発生によってトリガされる代替の命令セット４００のフローチャートを表す。オプションのマスクフィールド、時間フィールド、およびＳＤＩフィールドのオペランドはすべて、ハードウェアが電力を節約し、発熱を減らすために使用する情報を符号化する。情報の中には暗黙的なものもあれば、明示的なものもある（例えば、ＳＤＩフィールド・オペランド）。省電力状態の開始をトリガするいくつかのトリガ・イベント４０２は、しきい値よりも長い時間待機すること４０４、永遠に待機すること４０６、アプリケーションが新しい仕事を探していると見なされるリソースを待機すること４０８、遅すぎるリソースを待機すること４１０、複数のイベントが発生するのを待機すること４１２、「常に電力節約」コマンドを用いること４１４、および「オフチップ」信号を待機すること４１６を含む。異なる条件は、省電力状態への異なる開始をトリガすることができる。例として、「永遠に待機する４０６」トリガ・イベントは、プロセッサ回路の一部またはすべてをクロックゲートすることができる。あるいは、高速バス上で待機することは、プロセッサのクロック速度を押さえるだけである場合がある。一部の条件は、既に発生したイベントを待機する、設定されたしきい値未満の時間待機する、「決して節電しない」コマンドが有効な間待機するなど、省電力イベントをトリガしないように設定することができる。本実施形態は、待機イベント命令である。しかしながら、他の実施形態も同様に可能である。これらは、限定されることなく、システムコール、ミューテックス（複数のプログラム・スレッドがファイル・アクセスなどの同じリソースを共有することを可能にするプログラムオブジェクト）などの他のソフトウェア構成、ロック、条件変数などを含む。これらおよび他の実施形態は、等価な機能を実施することができ、そうするためにさらに多くの命令を使用することができる。
【００２０】
図５は、１つまたは複数の実施形態を実施するために使用することができるコンピュータ・システム５００の高水準のブロック図を表す。より具体的には、コンピュータ・システム５００は、本明細書に記載された方法を実施することができるシステムのハードウェア構成要素を実装するために使用することができる。１つの例示的なコンピュータ・システム５００が示されているが、コンピュータ・システム５００は、コンピュータ・システム５００を追加のシステム（図示せず）に接続する通信経路５２６を含み、インターネット、イントラネット、またはワイヤレス通信ネットワーク、あるいはその組合せなどの、１つもしくは複数のワイド・エリア・ネットワーク（ＷＡＮ）またはローカル・エリア・ネットワーク（ＬＡＮ）あるいはその両方を含むことができる。コンピュータ・システム５００および追加のシステムは、例えばそれらの間でデータを通信するために、通信経路５２６を介して通信している。
【００２１】
コンピュータ・システム５００は、プロセッサ５０２などの１つまたは複数のプロセッサを含む。プロセッサ５０２は、通信インフラストラクチュア５０４（例えば、通信バス、クロスオーバーバー、またはネットワーク）に接続されている。コンピュータ・システム５００は、表示ユニット５０８に表示するために通信インフラストラクチュア５０４から（または図示しないフレームバッファから）グラフィックス、テキストコンテンツ、および他のデータを転送する表示インタフェース５０６を含むことができる。また、コンピュータ・システム５００は、メイン・メモリ５１０、好ましくはランダム・アクセス・メモリ（ＲＡＭ）を含み、二次メモリ５１２も含むことができる。二次メモリ５１２は、例えば、ハードディスク・ドライブ５１４、または例えば、フロッピー（Ｒ）・ディスク・ドライブ、磁気テープ・ドライブもしくは光ディスク・ドライブを表すリムーバブル・ストレージ・ドライブ５１６、あるいはその両方を含むことができる。ハードディスク・ドライブ５１４は、ソリッド・ステート・ドライブ（ＳＳＤ）、従来の磁気ディスク・ドライブ、またはその２つのハイブリッドの形態であってもよい。また、二次メモリ５１２内に２つ以上のハードディスク・ドライブ５１４が含まれていてもよい。リムーバブル・ストレージ・ドライブは、当業者にはよく知られているやり方でリムーバブル・ストレージ・ユニット５１８から読み出し、または書込み、あるいはその両方を行う。リムーバブル・ストレージ・ユニット５１８は、例えば、リムーバブル・ストレージ・ドライブ５１６によって読み書きされるフロッピー（Ｒ）・ディスク、コンパクト・ディスク、磁気テープ、または光ディスクなどを表す。理解されるように、リムーバブル・ストレージ・ユニット５１８は、コンピュータ・ソフトウェア、またはデータ、あるいはその両方を記憶しているコンピュータ可読媒体を含む。
【００２２】
代替の実施形態では、二次メモリ５１２は、コンピュータ・プログラムまたは他の命令をコンピュータ・システムにロードすること可能にする他の同様の手段を含むことができる。そのような手段は、例えば、リムーバブル・ストレージ・ユニット５２０およびインタフェース５２２を含むことができる。そのような手段の例は、プログラムパッケージおよびパッケージのインタフェース（ビデオ・ゲーム・デバイスに見られるような）、リムーバブルメモリ・チップ（ＥＰＲＯＭ、セキュア・デジタル・カード（ＳＤカード）、コンパクト・フラッシュカード（ＣＦカード）、ユニバーサル・シリアル・バス（ＵＳＢ）メモリ、またはＰＲＯＭなど）、および関連付けられたソケット、ならびにソフトウェアおよびデータをリムーバブル・ストレージ・ユニット５２０からコンピュータ・システム５００に転送することを可能にする他のリムーバブル・ストレージ・ユニット５２０およびインタフェース５２２を含むことができる。
【００２３】
また、コンピュータ・システム５００は、通信インタフェース５２４を含むことができる。通信インタフェース５２４は、ソフトウェアおよびデータがコンピュータ・システムと外部デバイスとの間で転送されることを可能にする。通信インタフェース５２４の例は、モデム、ネットワーク・インタフェース（イーサネット（Ｒ）・カードなど）、通信ポート、またはＰＣカードスロットおよびカード、ユニバーサル・シリアル・バス・ポート（ＵＳＢ）などを含むことができる。通信インタフェース５２４を介して転送されるソフトウェアおよびデータは、例えば、通信インタフェース５２４によって受信することができる電子的、電磁気的、光学的、または他の信号であってもよい信号の形態である。これらの信号は、通信経路（すなわちチャネル）５２６を介して通信インタフェース５２４に提供される。通信経路５２６は、信号を搬送し、ワイヤもしくはケーブル、光ファイバ、電話線、携帯電話リンク、ＲＦリンク、または他の通信チャネル、あるいはその組合せを使用して実施することができる。
【００２４】
本明細書では、用語「コンピュータ・プログラム媒体」、「コンピュータ使用可能媒体」、および「コンピュータ可読媒体」は、メイン・メモリ５１０および二次メモリ５１２、リムーバブル・ストレージ・ドライブ５１６、ならびにハードディスク・ドライブ５１４に据え付けられたハードディスクなどの媒体を指すために使用される。コンピュータ・プログラム（コンピュータ制御ロジックとも呼ばれる）は、メイン・メモリ５１０または二次メモリ５１２あるいはその両方に記憶される。コンピュータ・プログラムは、通信インタフェース５２４を介して受信することもできる。そのようなコンピュータ・プログラムは、実行されると、コンピュータ・システムが本明細書で論じた機能を実行することを可能にする。特に、コンピュータ・プログラムは、実行されると、プロセッサ５０２がコンピュータ・システムの機能を実行することを可能にする。したがって、そのようなコンピュータ・プログラムは、コンピュータ・システムのコントローラを表す。したがって、前述の詳細な説明から、１つまたは複数の実施形態が技術的な恩恵および利点を提供することが分かる。
【００２５】
ここで図６を参照すると、コンピュータ可読記憶媒体６０２およびプログラム命令６０４を含む実施形態によるコンピュータ・プログラム製品６００が概略的に示されている。
【００２６】
実施形態は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであってもよい。コンピュータ・プログラム製品は、プロセッサに本発明の実施形態の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体（または複数の媒体）を含むことができる。
【００２７】
コンピュータ可読記憶媒体は、命令実行デバイスが使用するための命令を保持し記憶することができる有形のデバイスとすることができる。コンピュータ可読記憶媒体は、例えば、限定されることなく、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、または前述の任意の適切な組合せとすることができる。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピー（Ｒ）・ディスク、パンチカードなどの機械的に符号化されたデバイス、または命令が記録された溝の中の隆起構造、および前述の任意の適切な組合せが含まれる。本明細書で使用されるようなコンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝送媒体を通って伝播する電磁波（例えば、光ファイバケーブルを通過する光パルス）、またはワイヤを通して送信される電気信号などの、それ自体一時的な信号であると解釈されるべきではない。
【００２８】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング／処理デバイスに、あるいは、ネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、またはワイヤレス・ネットワーク、あるいはその組合せを介して外部コンピュータもしくは外部記憶デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを含むことができる。各コンピューティング／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング／処理デバイス内部のコンピュータ可読記憶媒体に記憶するためにコンピュータ可読プログラム命令を転送する。
【００２９】
実施形態を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ（ＩＳＡ）命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語もしくは同様のプログラミング言語などの従来の手続き型プログラミング言語を含む、１つもしくは複数のプログラミング言語の任意の組合せで書かれたソース・コードもしくはオブジェクトコードのいずれかを含むことができる。コンピュータ可読プログラム命令は、全面的にオペレータのコンピュータ上で、部分的にオペレータのコンピュータ上で、独立型のソフトウェアパッケージとして、部分的にオペレータのコンピュータおよび部分的に遠隔コンピュータ上で、または全面的に遠隔コンピュータもしくはサーバ上で実行することができる。後者のシナリオでは、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを介してオペレータのコンピュータに接続することができ、あるいは外部コンピュータに（例えばインターネット・サービス・プロバイダーを使用してインターネットを介して）接続を行うことができる。一部の実施形態では、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）、またはプログラマブル・ロジック・アレイ（ＰＬＡ）を含む電子回路は、本発明の実施形態を実行するために、電子回路を個人専用にするコンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行することができる。
【００３０】
様々な実施形態の態様は、様々な実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して本明細書に記載されている。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方のブロックの組合せは、コンピュータ可読プログラム命令によって実施することができることを理解されよう。
【００３１】
これらのコンピュータ可読プログラム命令は、汎用コンピュータ、特殊目的コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されて、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックにおいて指定された機能／行為を実施するための手段を生成するように、マシンを製造することができる。また、これらのコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体に記憶され得て、命令が内部に記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方のブロックにおいて指定された機能／行為の態様を実施する命令を含む製品を含むように、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組合せが特定のやり方で機能するように指図することができる。
【００３２】
また、コンピュータ可読プログラム命令をコンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードして、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを実行させて、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックにおいて指定された機能／行為を実施するように、コンピュータ実施プロセスを生成することができる。
【００３３】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態による、システム、方法およびコンピュータ・プログラム製品の可能な実施態様のアーキテクチャ、機能性、ならびに動作を示す。この点に関して、フローチャートまたはブロック図の各ブロックは、指定された論理機能を実施するための１つまたは複数の実行可能命令を含むモジュール、セグメント、または命令の一部を表すことができる。一部の代替の実施態様では、ブロックに示された機能は、図に示された順序から外れて行われてもよい。例えば、連続して示されている２つのブロックは、実際には、実質的に同時に実行することができ、またはブロックは、含まれている機能性に応じて、時には逆の順序で実行することができる。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方のブロックの組合せは、指定された機能もしくは行為を実行する、または特殊目的のハードウェアおよびコンピュータ命令の組合せを実行する特殊目的のハードウェア・ベースのシステムによって実施することができることも留意されたい。
【００３４】
本明細書で使用される術語は、特定の実施形態を説明することのみを目的とし、限定的であることは意図されていない。本明細書で使用されるように、単数形「１つの（a）」、「１つの（an）」および「その（the）」は、文脈上そうでないと明白に示さない限り、複数形を同様に含むことが意図されている。用語「備える」または「備えている」あるいはその両方は、本明細書で使用される場合、述べられた特徴、整数、ステップ、動作、要素、または構成要素、あるいはその組合せの存在を特定するが、１つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、またはそれらのグループ、あるいはその組合せの存在もしくは追加を排除するものではないことをさらに理解されよう。
【００３５】
以下の特許請求の範囲における、対応する構造、材料、行為、およびすべての手段またはステップに加えて機能要素の均等物は、特に請求されるような他の請求される要素と組み合わせて機能を実行するための任意の構造、材料、または行為を含むことが意図されている。本明細書に提示された説明は、例示および説明を目的としたものであるが、網羅的または限定的であることは意図されていない。本発明の実施形態の範囲および思想から逸脱することなく、多くの修正形態および変形形態が当業者には明らかであろう。実施形態は、動作原理および実際の応用を最もよく説明し、企図された特定の使用に適するように、様々な修正形態とともに様々な実施形態について本発明の実施形態を他の当業者が理解することができるように選択され説明された。
【００３６】
一部の実施形態では、様々な機能または行為は、所与の場所で、または１つもしくは複数の装置もしくはシステムの動作と関連して、あるいはその両方で行うことができる。一部の実施形態では、所与の機能または行為の一部は、第１のデバイスまたは場所で実行することができ、機能または行為の残りの部分は、１つもしくは複数の追加のデバイスまたは場所で実行することができる。
【００３７】
以下の特許請求の範囲における、対応する構造、材料、行為、およびすべての手段またはステップに加えて機能要素の均等物は、特に請求されるような他の請求される要素と組み合わせて機能を実行するための任意の構造、材料、または行為を含むことが意図されている。本発明は、例示および説明の目的のために提示されたものであるが、網羅的であることまたは記載された形態に限定的であることは意図されていない。本発明の範囲および思想から逸脱することなく、多くの修正形態および変形形態が当業者には明らかであろう。実施形態は、本発明の原理および実際の応用を最もよく説明し、企図された特定の使用に適するように、様々な修正形態とともに様々な実施形態について本発明を他の当業者が理解することができるように選択され説明された。
【００３８】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステムおよび方法の可能な実施態様の機能性ならびに動作を示す。一部の代替の実施態様では、ブロックに示された機能は、図に示された順序から外れて行われてもよい。例えば、連続して示されている２つのブロックは、実際には、実質的に同時に実行することができ、またはブロックは、含まれている機能性に応じて、時には逆の順序で実行することができる。行為は、異なる順番で実行することができ、または行為は、追加、削除、または修正することができる。また、用語「結合された」は、２つの要素間に信号経路を有することを表し、それらの間に介在する要素／接続がない状態での要素間の直接接続を意味するものではない。これらの変形形態はすべて、本発明の一部と考えられる。
【００３９】
用語「約」、「実質的に」、「およそ」、およびそれらの変形形態は、出願を申請する時点で利用可能な機器上に常駐（host）する特定の量の測定に関連付けられた誤差の程度を含むことが意図されている。例えば、「約」は、所与の値の±８％もしくは５％、または２％の範囲を含むことができる。
【００４０】
本明細書で使用される術語は、特定の実施形態を説明することのみを目的とし、本発明を限定することは意図されていない。本明細書で使用されるように、単数形「１つの（a）」、「１つの（an）」および「その（the）」は、文脈上そうでないと明白に示さない限り、複数形を同様に含むことが意図されている。用語「備える」または「備えている」あるいはその両方は、本明細書で使用される場合、述べられた特徴、整数、ステップ、動作、要素、または構成要素、あるいはその組合せの存在を特定するが、１つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、またはそれらのグループ、あるいはその組合せの存在もしくは追加を排除するものではないことをさらに理解されよう。
【００４１】
本発明は、限られた数の実施形態のみに関連して詳細に説明されたが、本発明は、そのような説明された実施形態には限定されないことを容易に理解されるはずである。むしろ、本発明は、これまでに説明されてないが、本発明の思想および範囲に相応する、任意の数の変形形態、代替形態、置換形態または等価な構成を組み込むように修正することができる。加えて、本発明の様々な実施形態が説明されたが、本発明の態様は、説明された実施形態のうちの一部のみを含むことができることを理解されたい。したがって、本発明は、前述の説明によって限定されると見なされるべきではなく、添付の特許請求の範囲によってのみ限定される。
【図１】
2020505696.tif 000003
【図２】
2020505696.tif 000004
【図３】
2020505696.tif 000005
【図４】
2020505696.tif 000006
【図５】
2020505696.tif 000007
【図６】
2020505696.tif 000008
【国際調査報告】
2020505696.tif 000009
2020505696.tif 000010