【手続補正書】
【提出日】平成26年11月5日(2014.11.5)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
2又は3以上の実行環境によって共有されるリソースを管理するためのリソース電力マネージャ（RPM）プロセッサを含むマルチコアコンピューティングデバイスにおける電力を節約するための方法であって、
前記マルチコアコンピューティングデバイスの2つ以上のコアによって共有される各低電力リソースモードに関するメモリ内の参照カウントを維持するステップと、
コア実行スレッドとコア実行アイドルスレッドとで共有される変数にアクセスすることによってどのコアがスリープ状態であるかを判断するステップであって、前記共有される変数は、前記アイドルスレッドの進入関数の実行に伴って各コアによって増分されるとともに、前記アイドルスレッドの退出関数の実行に伴って各コアによって減分される、ステップと、
メモリに記憶されている値を、各コアの電力状態およびメモリロケーションに関連する前記低電力リソースの各コアの使用に基づいて独立して調整するステップと、
前記メモリロケーションの前記値を使用していつシステム低電力構成に進入するかを判断するステップと
を含む方法。
【請求項２】
前記マルチコアコンピューティングデバイスの各コアは、前記マルチコアコンピューティングデバイスにおける他のコアのうちの1つまたは複数のオペレーティングシステムとは異なるオペレーティングシステムの下で動作する、請求項1に記載の方法。
【請求項３】
前記マルチコアコンピューティングデバイスのうちの少なくとも1つのコアは、前記コアを少なくとも1つの他のコアの動作に結び付ける少なくとも1つのリソースを共有し、各コアは、他のコアの各々とは関係なく低電力モードに進入し、低電力モードから退出するように構成される、請求項1に記載の方法。
【請求項４】
フラグビット設定に基づいて低電力モードに置かれ得るリソースを識別するステップと、
コア当たりベースまたはグローバルベースでレイテンシ要件を登録するステップと、
前記登録されたレイテンシ要件から最も厳しいレイテンシ要件を選択するステップと、
前記コアに存在するレイテンシ制限に基づいて、前記選択された最も厳しいレイテンシ耐性を上回る複合レイテンシ要件を有するあらゆる低電力リソースモードまたは低電力リソースモードのあらゆる組合せを除去するために、低電力モードに置かれ得る各リソースに関するコンピューティングデバイス低電力モードについて評価するステップと、
潜在的電力節約量を最大化し、現在のコアに対する前記選択された最悪状況レイテンシ要件以下である総合レイテンシ要件を有する低電力リソースモードの組合せを選択するステップと、
前記識別されたリソースの各々に対して前記選択された低電力モードの各々の進入関数を実行することによって、前記選択された低電力リソースモードの組合せに進入するステップと
をさらに含む、請求項1に記載の方法。
【請求項５】
前記識別されたリソースの各々に対して前記選択された低電力モードの各々の進入関数を実行することによって、前記選択された低電力リソースモードの組合せに進入するステップは、共有モードに関して、前記参照カウント値がゼロに等しいときに前記進入関数を実行するステップを含む、請求項4に記載の方法。
【請求項６】
現在の温度における単位時間当たり潜在的電力節約量と期待アイドル時間とを掛けた値に基づいて、前記現在のコアに対して期待される前記アイドル時間における評価された各低電力リソースモードの潜在的電力節約量を判断するステップ
をさらに含む、請求項4に記載の方法。
【請求項７】
自動無効化のためにリソースをマークするステップと、
前記RPMプロセッサにおいて、前記マークされたリソースに関連するスリープセットを無効化するステップと
をさらに含む、請求項1に記載の方法。
【請求項８】
先行トランザクションを無効化して、前記先行トランザクションからのリソースが望ましくない形でそれらのスリープセットに進入しないようにするステップ
をさらに含む、請求項1に記載の方法。
【請求項９】
前記マルチコアコンピューティングデバイスにおける各コアは、そのコアの前記電力状態を制御し、前記コアがその低電力モードに進入するときに前記RPMプロセッサとハンドシェイクするサブシステム電力管理(SPM)ハードウェアブロックを有し、前記方法は、
RPMスリープドライバにおいて、スピンロックが現在保持されていることを検出するステップと、
前記スピンロックが現在保持されていることを検出したことに応答して、トランザクションを無視し、スリープセットトランザクションを送らないステップと、
各コアの前記SPMハードウェアブロックが前記RPMとのハンドシェイクを実行しても、前記RPMプロセッサで前記スリープセットを適用しないステップと
をさらに含む、請求項1に記載の方法。
【請求項１０】
RPMドライバにおいて、アクティブコンテキストでスピンロックを受信するステップと、
前記マルチコアコンピューティングデバイスの第1のコアのスリープモードに進入するステップと、
RPM確認応答割込みを待つ間に前記マルチコアコンピューティングデバイスの第0のコアでアイドルプロセスを開始するステップと、
前記第0のコアでスリープモードについて解き、前記第0のコアが進入するグローバル低電力モードを選択するステップと、
前記第0のコアで前記グローバル低電力モードに進入するステップと、
前記第0のコアで前記RPM確認応答割込みを受信するステップと、
前記スピンロックを解放するステップと
をさらに含む、請求項1に記載の方法。
【請求項１１】
第0のコアでRPMメッセージの送信を開始するステップと、
RPMドライバにおいて、オペレーティングシステムロックを受信するステップと、
前記マルチコアコンピューティングデバイスの第1のコアでスリープモードに進入し、RPMトランザクションを形成するステップと、
前記第1のコアでスリープセットの送信を開始するステップと、
前記第1のコアから前記RPMドライバに対するスリープセットトランザクション要求を受信し、前記オペレーティングシステムロックが保持されているかどうかをチェックして判断するステップと、
前記オペレーティングシステムロックが保持されていると判断された場合に、スリープセットトランザクション要求を無視し、前記第1のコアに割込み信号を送るステップと
をさらに含む、請求項1に記載の方法。
【請求項１２】
スピンロックを使用して、あるコアがRPMトランザクションを開始することを、別のコアが別のRPMトランザクションを送っている間は防止するステップをさらに含む、請求項1に記載の方法。
【請求項１３】
スピンロックを使用して、あるコアがRPMトランザクションを開始することを、別のコアがRPMトランザクションを送っている間は防止するステップは、RPM開始動作中およびRPM停止動作中に前記スピンロックを保持するステップを含む、請求項12に記載の方法。
【請求項１４】
前記マルチコアコンピューティングデバイスにおける各コアは、スリープセットの独立部分に書き込み、スピンロックを使用して、あるコアがRPMトランザクションを開始することを、別のコアがRPMトランザクションを送っている間は防止するステップは、前記スリープセットにリソースを追加するときに前記スピンロックを解放するステップを含む、請求項12に記載の方法。
【請求項１５】
メモリと、
前記メモリに接続された1又は2以上のプロセッサと、を含み、
前記1又は2以上のプロセッサは、2又は3以上の実行環境によって共有されるリソースを管理するためのリソース電力マネージャ（RPM）プロセッサを含むとともに、前記1又は2以上のプロセッサには、マルチコンピューティングデバイスが動作を実行するようにプロセッサ実行可能な命令が設定され、
前記動作は、
前記マルチコアコンピューティングデバイスの2つ以上のコアによって共有される各低電力リソースに関するメモリ内の参照カウントを維持するステップと、
コア実行スレッドとコア実行アイドルスレッドとで共有される変数にアクセスすることによってどのコアがスリープ状態であるかを判断するステップであって、前記共有される変数は、前記アイドルスレッドの進入関数の実行に伴って各コアによって増分されるとともに、前記アイドルスレッドの退出関数の実行に伴って各コアによって減分される、ステップと、
メモリに記憶されている値を、各コアの電力状態および前記メモリロケーションに関連する前記低電力リソースの各コアの使用に基づいて独立して調整するステップと、
前記メモリロケーションの前記値を使用して、いつシステム低電力構成に進入するかを判断するステップと
を含む、マルチコアコンピューティングデバイス。
【請求項１６】
前記マルチコアコンピューティングデバイスの各コアが、前記マルチコアコンピューティングデバイスにおける他のコアのうちの1つまたは複数のオペレーティングシステムとは異なるオペレーティングシステムの下で動作するような動作をマルチコアコンピューティングデバイスに実行させるように、前記1又は2以上のプロセッサには、プロセッサ実行可能な命令が設定される、請求項15に記載のマルチコアコンピューティングデバイス。
【請求項１７】
前記マルチコアコンピューティングデバイスのうちの少なくとも1つのコアが、前記コアを少なくとも1つの他のコアの動作に結び付ける少なくとも1つのリソースを共有し、各コアが、他のコアの各々とは関係なく低電力モードに進入し、低電力モードから退出するように構成されるような動作をマルチコアコンピューティングデバイスに実行させるように、前記1又は2以上のプロセッサには、プロセッサ実行可能な命令が設定される、請求項15に記載のマルチコアコンピューティングデバイス。
【請求項１８】
フラグビット設定に基づいて低電力モードに置かれ得るリソースを識別するステップと、
コア当たりベースまたはグローバルベースでレイテンシ要件を登録するステップと、
前記登録されたレイテンシ要件から最も厳しいレイテンシ要件を選択するステップと、
前記コアに存在するレイテンシ制限に基づいて、前記選択された最も厳しいレイテンシ耐性を上回る複合レイテンシ要件を有するあらゆる低電力リソースモードまたは低電力リソースモードのあらゆる組合せを除去するために、低電力モードに置かれ得る各リソースに関するコンピューティングデバイス低電力モードについて評価するステップと、
潜在的電力節約量を最大化し、現在のコアに対する前記選択された最悪状況レイテンシ要件以下である総合レイテンシ要件を有する低電力リソースモードの組合せを選択するステップと、
前記識別されたリソースの各々に対して前記選択された低電力モードの各々の進入関数を実行することによって、前記選択された低電力リソースモードの組合せに進入するステップと
をさらに含む動作を前記マルチコアコンピューティングデバイスに実行させるように、前記1又は2以上のプロセッサには、プロセッサ実行可能な命令が設定される、請求項15に記載のマルチコアコンピューティングデバイス。
【請求項１９】
前記識別されたリソースの各々に対して前記選択された低電力モードの各々の進入関数を実行することによって前記選択された低電力リソースモードの組合せに進入するステップが、共有モードに関して、前記参照カウント値がゼロに等しいときに前記進入関数を実行するステップを含むような動作をマルチコアコンピューティングデバイスに実行させるように、前記1又は2以上のプロセッサには、プロセッサ実行可能な命令が設定される、請求項18に記載のマルチコアコンピューティングデバイス。
【請求項２０】
現在の温度における単位時間当たり潜在的電力節約量と期待アイドル時間とを掛けた値に基づいて、前記現在のコアに対して期待される前記アイドル時間における評価された各低電力リソースモードの潜在的電力節約量を判断するステップ
をさらに含む動作をマルチコアコンピューティングデバイスに実行させるように、前記1又は2以上のプロセッサには、プロセッサ実行可能な命令が設定される、請求項18に記載のマルチコアコンピューティングデバイス。
【請求項２１】
自動無効化のためにリソースをマークするステップと、
前記RPMプロセッサにおいて、前記マークされたリソースに関連するスリープセットを無効化するステップと
をさらに含む動作をマルチコアコンピューティングデバイスに実行させるように、前記1又は2以上のプロセッサには、プロセッサ実行可能な命令が設定される、請求項15に記載のマルチコアコンピューティングデバイス。
【請求項２２】
先行トランザクションを無効化して、前記先行トランザクションからのリソースが望ましくない形でそれらのスリープセットに進入しないようにするステップ
をさらに含む動作をプロセッサに実行させるように、前記1又は2以上のプロセッサには、プロセッサ実行可能な命令が設定される、請求項15に記載のマルチコアコンピューティングデバイス。
【請求項２３】
前記マルチコアコンピューティングデバイスは、コアの前記電力状態を制御し、前記コアがその低電力モードに進入するときに前記RPMプロセッサとハンドシェイクするように構成されたサブシステム電力管理(SPM)ハードウェアブロックを有し、
前記1又は2以上のプロセッサには、前記マルチコアコンピューティングデバイスが、
RPMスリープドライバにおいて、スピンロックが現在保持されていることを検出するステップと、
前記スピンロックが現在保持されていることを検出したことに応答して、トランザクションを無視し、スリープセットトランザクションを送らないステップと、
各コアの前記SPMハードウェアブロックが前記RPMとのハンドシェイクを実行しても、前記RPMプロセッサで前記スリープセットを適用しないステップと
をさらに含む、
動作を実行するようにプロセッサ実行可能命令が設定される、請求項15に記載のマルチコアコンピューティングデバイス。
【請求項２４】
RPMドライバにおいて、アクティブコンテキストでスピンロックを受信するステップと、
前記マルチコアコンピューティングデバイスの第1のコアのスリープモードに進入するステップと、
RPM確認応答割込みを待つ間に前記マルチコアコンピューティングデバイスの第0のコアでアイドルプロセスを開始するステップと、
前記第0のコアでスリープモードについて解き、前記第0のコアが進入するグローバル低電力モードを選択するステップと、
前記第0のコアで前記グローバル低電力モードに進入するステップと、
前記第0のコアで前記RPM確認応答割込みを受信するステップと、
前記スピンロックを解放するステップと
をさらに含む動作をマルチコアコンピューティングデバイスに実行させるように、前記1又は2以上のプロセッサには、プロセッサ実行可能な命令が設定される、請求項15に記載のマルチコアコンピューティングデバイス。
【請求項２５】
第0のコアでRPMメッセージの送信を開始するステップと、
RPMドライバにおいて、オペレーティングシステムロックを受信するステップと、
前記マルチコアコンピューティングデバイスの第1のコアでスリープモードに進入し、RPMトランザクションを形成するステップと、
前記第1のコアでスリープセットの送信を開始するステップと、
前記第1のコアから前記RPMドライバに対するスリープセットトランザクション要求を受信し、前記オペレーティングシステムロックが保持されているかどうかをチェックして判断するステップと、
前記オペレーティングシステムロックが保持されていると判断された場合に、スリープセットトランザクション要求を無視し、前記第1のコアに割込み信号を送るステップと
をさらに含む動作をマルチコアコンピューティングデバイスに実行させるように、前記1又は2以上のプロセッサには、プロセッサ実行可能な命令が設定される、請求項15に記載のマルチコアコンピューティングデバイス。
【請求項２６】
前記プロセッサには、スピンロックを使用して、あるコアがRPMトランザクションを開始することを、別のコアが別のRPMトランザクションを送っている間は防止するステップをさらに含む動作をマルチコアコンピューティングデバイスに実行させるプロセッサ実行可能命令が設定されるように、前記1又は2以上のプロセッサには、プロセッサ実行可能な命令が設定される、請求項15に記載のマルチコアコンピューティングデバイス。
【請求項２７】
スピンロックを使用して、あるコアがRPMトランザクションを開始することを、別のコアがRPMトランザクションを送っている間は防止するステップが、RPM開始動作中およびRPM停止動作中に前記スピンロックを保持するステップを含むような動作をマルチコアコンピューティングデバイスに実行させるように、前記1又は2以上のプロセッサには、プロセッサ実行可能な命令が設定される、請求項15に記載のマルチコアコンピューティングデバイス。
【請求項２８】
前記マルチコアコンピューティングデバイスにおける各コアが、スリープセットの独立部分に書き込み、スピンロックを使用して、あるコアがRPMトランザクションを開始することを、別のコアがRPMトランザクションを送っている間は防止するステップが、前記スリープセットにリソースを追加するときに前記スピンロックを解放するステップを含むような動作をマルチコアコンピューティングデバイスに実行させるように、前記1又は2以上のプロセッサには、プロセッサ実行可能な命令が設定される、請求項26に記載のマルチコアコンピューティングデバイス。
【請求項２９】
2又は3以上の実行環境によって共有されるリソースを管理するためのリソース電力マネージャ（RPM）プロセッサを含むマルチコアコンピューティングデバイスでの電力を節約するための動作をプロセッサに実行させるように構成されるプロセッサ実行可能なソフトウェア命令を記憶した非一時的コンピュータ記憶媒体であって、
前記動作は、
前記マルチコアコンピューティングデバイスの2つ以上のコアによって共有される各低電力リソースに関するメモリ内の参照カウントを維持するステップと、
コア実行スレッドとコア実行アイドルスレッドとで共有される変数にアクセスることによってどのコアがスリープ状態であるかを判断するステップであって、前記共有される変数は、前記アイドルスレッドの進入関数の実行に伴って各コアによって増分されるとともに、前記アイドルスレッドの退出関数の実行に伴って各コアによって減分される、ステップと、
メモリに記憶されている値を、各コアの電力状態および前記メモリロケーションに関連する前記低電力リソースの各コアの使用に基づいて独立して調整するステップと、
前記メモリロケーションの前記値を使用して、いつシステム低電力構成に進入するかを判断するステップと
を含む、非一時的コンピュータ記憶媒体。
【請求項３０】
前記記憶されたプロセッサ実行可能なソフトウェア命令は、前記マルチコアコンピューティングデバイスの各コアを、前記マルチコアコンピューティングデバイスにおける他のコアのうちの1つまたは複数のオペレーティングシステムとは異なるオペレーティングシステムの下で動作させるように動作をプロセッサに実行させるように構成される、請求項29に記載の非一時的コンピュータ記憶媒体。
【請求項３１】
前記記憶されたプロセッサ実行可能なソフトウェア命令は、前記マルチコアコンピューティングデバイスのうちの少なくとも1つのコアが、前記コアを少なくとも1つの他のコアの動作に結び付ける少なくとも1つのリソースを共有するような、また各コアが、他のコアの各々とは関係なく低電力モードに進入し、低電力モードから退出するように構成されるような動作をプロセッサに実行させるように構成される、請求項29に記載の非一時的コンピュータ記憶媒体。
【請求項３２】
フラグビット設定に基づいて低電力モードに置かれ得るリソースを識別するステップと、
コア当たりベースまたはグローバルベースでレイテンシ要件を登録するステップと、
前記登録されたレイテンシ要件から最も厳しいレイテンシ要件を選択するステップと、
前記コアに存在するレイテンシ制限に基づいて、前記選択された最も厳しいレイテンシ耐性を上回る複合レイテンシ要件を有するあらゆる低電力リソースモードまたは低電力リソースモードのあらゆる組合せを除去するために、低電力モードに置かれ得る各リソースに関するコンピューティングデバイス低電力モードについて評価するステップと、
潜在的電力節約量を最大化し、現在のコアに対する前記選択された最悪状況レイテンシ要件以下である総合レイテンシ要件を有する低電力リソースモードの組合せを選択するステップと、
前記識別されたリソースの各々に対して前記選択された低電力モードの各々の進入関数を実行することによって、前記選択された低電力リソースモードの組合せに進入するステップと
をさらに含む動作を前記マルチコアコンピューティングデバイスに実行させるように、前記1又は2以上のプロセッサには、プロセッサ実行可能な命令が設定される、請求項29に記載の非一時的コンピュータ記憶媒体。
【請求項３３】
前記記憶されたプロセッサ実行可能なソフトウェア命令は、前記識別されたリソースの各々に対して前記選択された低電力モードの各々の進入関数を実行することによって前記選択された低電力リソースモードの組合せに進入するステップが、共有モードに関して、前記参照カウント値がゼロに等しいときに前記進入関数を実行するステップを含むような動作をプロセッサに実行させるように構成される、請求項32に記載の非一時的コンピュータ記憶媒体。
【請求項３４】
前記記憶されたプロセッサ実行可能なソフトウェア命令は、前記識別されたリソースの各々に対して前記選択された低電力モードの各々の進入関数を現在の温度における単位時間当たり潜在的電力節約量と期待アイドル時間とを掛けた値に基づいて、前記現在のコアに対して期待される前記アイドル時間における評価された各低電力リソースモードの潜在的電力節約量を判断するステップ
をさらに含む動作をプロセッサに実行させるように構成される請求項33に記載の非一時的コンピュータ記憶媒体。
【請求項３５】
前記記憶されているプロセッサ実行可能な命令は、自動無効化のためにリソースをマークするステップと、
前記RPMプロセッサにおいて、前記マークされたリソースに関連するスリープセットを無効化するステップと
をさらに含む動作をプロセッサに実行させるように構成される、請求項29に記載の非一時的コンピュータ記憶媒体。
【請求項３６】
前記記憶されているプロセッサ実行可能ソフトウェア命令は、
先行トランザクションを無効化して、前記先行トランザクションからのリソースが望ましくない形でそれらのスリープセットに進入しないようにするステップ
をさらに含む動作をプロセッサに実行させるように構成される、請求項29に記載の非一時的コンピュータ記憶媒体。
【請求項３７】
前記記憶されているプロセッサ実行可能ソフトウェア命令は、前記マルチコアコンピューティングデバイスの各コアが、コアの前記電力状態を制御し、前記コアがその低電力モードに進入するときに前記RPMプロセッサとハンドシェイクするサブシステム電力管理(SPM)ハードウェアブロックを有する動作をプロセッサに実行させるように構成され、
RPMスリープドライバにおいて、スピンロックが現在保持されていることを検出するステップと、
前記スピンロックが現在保持されていることを検出したことに応答して、トランザクションを無視し、スリープセットトランザクションを送らないステップと、
各コアの前記SPMハードウェアブロックが前記RPMとのハンドシェイクを実行しても、前記RPMプロセッサで前記スリープセットを適用しないステップと
をさらに含む、
請求項29に記載の非一時的コンピュータ記憶媒体。
【請求項３８】
前記記憶されているプロセッサ実行可能ソフトウェア命令は、
RPMドライバにおいて、アクティブコンテキストでスピンロックを受信するステップと、
前記マルチコアコンピューティングデバイスの第1のコアのスリープモードに進入するステップと、
RPM確認応答割込みを待つ間に前記マルチコアコンピューティングデバイスの第0のコアでアイドルプロセスを開始するステップと、
前記第0のコアでスリープモードについて解き、前記第0のコアが進入するグローバル低電力モードを選択するステップと、
前記第0のコアで前記グローバル低電力モードに進入するステップと、
前記第0のコアで前記RPM確認応答割込みを受信するステップと、
前記スピンロックを解放するステップと
をさらに含む動作をプロセッサに実行させるように構成される、請求項29に記載の非一時的コンピュータ記憶媒体。
【請求項３９】
前記記憶されているプロセッサ実行可能ソフトウェア命令は、
第0のコアでRPMメッセージの送信を開始するステップと、
RPMドライバにおいて、オペレーティングシステムロックを受信するステップと、
前記マルチコアコンピューティングデバイスの第1のコアでスリープモードに進入し、RPMトランザクションを形成するステップと、
前記第1のコアでスリープセットの送信を開始するステップと、
前記第1のコアから前記RPMドライバに対するスリープセットトランザクション要求を受信し、前記オペレーティングシステムロックが保持されているかどうかをチェックして判断するステップと、
前記オペレーティングシステムロックが保持されていると判断された場合に、スリープセットトランザクション要求を無視し、前記第1のコアに割込み信号を送るステップと、
をさらに含む動作をプロセッサに実行させるように構成される、請求項29に記載の非一時的コンピュータ記憶媒体。
【請求項４０】
前記記憶されているプロセッサ実行可能ソフトウェア命令は、
スピンロックを使用して、あるコアがRPMトランザクションを開始することを、別のコアが別のRPMトランザクションを送っている間は防止するステップをさらに含む動作をプロセッサに実行させるように構成される、請求項29に記載の非一時的コンピュータ記憶媒体。
【請求項４１】
前記記憶されているプロセッサ実行可能ソフトウェア命令は、
スピンロックを使用して、あるコアがRPMトランザクションを開始することを、別のコアがRPMトランザクションを送っている間は防止するステップが、RPM開始動作中およびRPM停止動作中に前記スピンロックを保持するステップを含むような動作をプロセッサに実行させるように構成される、請求項40に記載の非一時的コンピュータ記憶媒体。
【請求項４２】
前記記憶されているプロセッサ実行可能ソフトウェア命令は、
前記マルチコアコンピューティングデバイスにおける各コアが、スリープセットの独立部分に書き込み、スピンロックを使用して、あるコアがRPMトランザクションを開始することを、別のコアがRPMトランザクションを送っている間は防止するステップが、前記スリープセットにリソースを追加するときに前記スピンロックを解放するステップを含むような動作をプロセッサに実行させるように構成される、請求項40に記載の非一時的コンピュータ記憶媒体。
【請求項４３】
リソース電力マネージャ(RPM)プロセッサを介してマルチコアコンピューティングデバイスの2又は3以上の実行環境によって共有されるリソースを管理する手段と、
前記マルチコアコンピューティングデバイスの2つ以上のコアによって共有される各低電力リソースモードに関するメモリ内の参照カウントを維持する手段と、
コア実行スレッドとコア実行アイドルスレッドとで共有される変数にアクセスすることによってどのコアがスリープ状態であるかを判断するステップであって、前記共有される変数は、前記アイドルスレッドの進入関数の実行に伴って各コアによって増分されるとともに、前記アイドルスレッドの退出関数の実行に伴って各コアによって減分される、ステップと、
メモリに記憶されている値を、各コアの電力状態およびメモリロケーションに関連する前記低電力リソースの各コアの使用に基づいて独立して調整する手段と、
前記メモリロケーションの前記値を使用していつシステム低電力構成に進入するかを判断する手段と、を有する
マルチコアコンピューティングデバイス。
【請求項４４】
前記マルチコアコンピューティングデバイスにおける他のコアのうちの1つまたは複数のオペレーティングシステムとは異なるオペレーティングシステムの下で前記マルチコアコンピューティングデバイスの各コアを動作させる手段をさらに含む、請求項43記載のマルチコアコンピューティングデバイス。
【請求項４５】
前記マルチコアコンピューティングデバイスのうちの少なくとも1つのコアは、前記コアを少なくとも1つの他のコアの動作に結び付ける少なくとも1つのリソースを共有し、各コアは、他のコアの各々とは関係なく低電力モードに進入し、低電力モードから退出するように構成される前記マルチコアコンピューティングデバイスを構成する手段を含む、請求項43記載のマルチコアコンピューティングデバイス。
【請求項４６】
フラグビット設定に基づいて低電力モードに置かれ得るリソースを識別する手段と、
コア当たりベースまたはグローバルベースでレイテンシ要件を登録する手段と、
前記登録されたレイテンシ要件から最も厳しいレイテンシ要件を選択する手段と、
前記コアに存在するレイテンシ制限に基づいて、前記選択された最も厳しいレイテンシ耐性を上回る複合レイテンシ要件を有するあらゆる低電力リソースモードまたは低電力リソースモードのあらゆる組合せを除去するために、低電力モードに置かれ得る各リソースに関するコンピューティングデバイス低電力モードについて評価する手段と、
潜在的電力節約量を最大化し、現在のコアに対する前記選択された最悪状況レイテンシ要件以下である総合レイテンシ要件を有する低電力リソースモードの組合せを選択する手段と、
前記識別されたリソースの各々に対して前記選択された低電力モードの各々の進入関数を実行することによって、前記選択された低電力リソースモードの組合せに進入する手段と
をさらに含む、請求項43に記載のマルチコアコンピューティングデバイス。
【請求項４７】
前記識別されたリソースの各々に対して前記選択された低電力モードの各々の進入関数を実行することによって、前記選択された低電力リソースモードの組合せに進入する手段は、共有モードに関して、前記参照カウント値がゼロに等しいときに前記進入関数を実行する手段を含む、請求項46に記載のマルチコアコンピューティングデバイス。
【請求項４８】
現在の温度における単位時間当たり潜在的電力節約量と期待アイドル時間とを掛けた値に基づいて、前記現在のコアに対して期待される前記アイドル時間における評価された各低電力リソースモードの潜在的電力節約量を判断する手段
をさらに含む、請求項46に記載のマルチコアコンピューティングデバイス。
【請求項４９】
自動無効化のためにリソースをマークする手段と、
前記RPMプロセッサにおいて、前記マークされたリソースに関連するスリープセットを無効化する手段と
をさらに含む、請求項43に記載のマルチコアコンピューティングデバイス。
【請求項５０】
先行トランザクションを無効化して、前記先行トランザクションからのリソースが望ましくない形でそれらのスリープセットに進入しないようにする手段
をさらに含む、請求項43に記載のマルチコアコンピューティングデバイス。
【請求項５１】
前記マルチコアコンピューティングデバイスにおける各コアは、そのコアの前記電力状態を制御し、前記コアがその低電力モードに進入するときに前記RPMプロセッサとハンドシェイクするサブシステム電力管理(SPM)ハードウェアブロックを有し、前記マルチコアコンピューティングデバイスは、
RPMスリープドライバにおいて、スピンロックが現在保持されていることを検出する手段と、
前記スピンロックが現在保持されていることを検出したことに応答して、トランザクションを無視し、スリープセットトランザクションを送らない手段と、
各コアの前記SPMハードウェアブロックが前記RPMとのハンドシェイクを実行しても、前記RPMプロセッサで前記スリープセットを適用しない手段と
をさらに含む、請求項43に記載のマルチコアコンピューティングデバイス。
【請求項５２】
RPMドライバにおいて、アクティブコンテキストでスピンロックを受信する手段と、
前記マルチコアコンピューティングデバイスの第1のコアのスリープモードに進入する手段と、
RPM確認応答割込みを待つ間に前記マルチコアコンピューティングデバイスの第0のコアでアイドルプロセスを開始する手段と、
前記第0のコアでスリープモードについて解き、前記第0のコアが進入するグローバル低電力モードを選択する手段と、
前記第0のコアで前記グローバル低電力モードに進入する手段と、
前記第0のコアで前記RPM確認応答割込みを受信する手段と、
前記スピンロックを解放する手段と
をさらに含む、請求項43に記載のマルチコアコンピューティングデバイス。
【請求項５３】
第0のコアでRPMメッセージの送信を開始する手段と、
RPMドライバにおいて、オペレーティングシステムロックを受信する手段と、
前記マルチコアコンピューティングデバイスの第1のコアでスリープモードに進入し、RPMトランザクションを形成する手段と、
前記第1のコアでスリープセットの送信を開始する手段と、
前記第1のコアから前記RPMドライバに対するスリープセットトランザクション要求を受信し、前記オペレーティングシステムロックが保持されているかどうかをチェックして判断する手段と、
前記オペレーティングシステムロックが保持されていると判断された場合に、スリープセットトランザクション要求を無視し、前記第1のコアに割込み信号を送る手段と
をさらに含む、請求項43に記載のマルチコアコンピューティングデバイス。
【請求項５４】
スピンロックを使用して、あるコアがRPMトランザクションを開始することを、別のコアが別のRPMトランザクションを送っている間は防止する手段をさらに含む、請求項43に記載のマルチコアコンピューティングデバイス。
【請求項５５】
スピンロックを使用して、あるコアがRPMトランザクションを開始することを、別のコアがRPMトランザクションを送っている間は防止する手段は、RPM開始動作中およびRPM停止動作中に前記スピンロックを保持する手段を含む、請求項54に記載のマルチコアコンピューティングデバイス。
【請求項５６】
前記マルチコアコンピューティングデバイスにおける各コアは、スリープセットの独立部分に書き込み、スピンロックを使用して、あるコアがRPMトランザクションを開始することを、別のコアがRPMトランザクションを送っている間は防止する手段は、前記スリープセットにリソースを追加するときに前記スピンロックを解放する手段を含む、請求項54に記載のマルチコアコンピューティングデバイス。
【請求項５７】
マルチコアコンピューティングデバイスにおける電力を節約する方法であって、
前記マルチコアコンピューティングデバイスの2つ以上のコアによって共有される各低電力リソースモードに関するメモリ内の参照カウントを維持するステップと、
メモリに記憶されている値を、各コアの電力状態およびメモリロケーションに関連する前記低電力リソースの各コアの使用に基づいて独立して調整するステップと、
前記メモリロケーションの前記値を使用していつシステム低電力構成に進入するかを判断するステップと、
フラグビット設定に基づいて低電力モードに置かれ得るリソースを識別するステップと、
コア当たりベースまたはグローバルベースでレイテンシ要件を登録するステップと、
前記登録されたレイテンシ要件から最も厳しいレイテンシ要件を選択するステップと、
前記コアに存在するレイテンシ制限に基づいて、前記選択された最も厳しいレイテンシ耐性を上回る複合レイテンシ要件を有するあらゆる低電力リソースモードまたは低電力リソースモードのあらゆる組合せを除去するために、低電力モードに置かれ得る各リソースに関するコンピューティングデバイス低電力モードについて評価するステップと、
潜在的電力節約量を最大化し、現在のコアに対する前記選択された最悪状況レイテンシ要件以下である総合レイテンシ要件を有する低電力リソースモードの組合せを選択するステップと、
前記識別されたリソースの各々に対して前記選択された低電力モードの各々の進入関数を実行することによって、前記選択された低電力リソースモードの組合せに進入するステップと、によってシステムの低電力構成に進入するステップと、
を含む方法。
【請求項５８】
前記マルチコアコンピューティングデバイスの各コアは、前記マルチコアコンピューティングデバイスにおける他のコアのうちの1つまたは複数のオペレーティングシステムとは異なるオペレーティングシステムの下で動作する、請求項57に記載の方法。
【請求項５９】
前記マルチコアコンピューティングデバイスのうちの少なくとも1つのコアは、前記コアを少なくとも1つの他のコアの動作に結び付ける少なくとも1つのリソースを共有し、各コアは、他のコアの各々とは関係なく低電力モードに進入し、低電力モードから退出するように構成される、請求項57に記載の方法。
【請求項６０】
前記識別されたリソースの各々に対して前記選択された低電力モードの各々の進入関数を実行することによって、前記選択された低電力リソースモードの組合せに進入するステップは、共有モードに関して、前記参照カウント値がゼロに等しいときに前記進入関数を実行するステップを含む、請求項57に記載の方法。
【請求項６１】
現在の温度における単位時間当たり潜在的電力節約量と期待アイドル時間とを掛けた値に基づいて、前記現在のコアに対して期待される前記アイドル時間における評価された各低電力リソースモードの潜在的電力節約量を判断するステップ
をさらに含む、請求項57に記載の方法。
【請求項６２】
マルチコアコンピューティングデバイスであって、
メモリと、
前記メモリに接続された1又は2以上のプロセッサと、を含み、
前記1又は2以上のプロセッサには、マルチコアコンピューティングデバイスが動作を実行するようにプロセッサ実行可能な命令が設定され、
前記動作は、
前記マルチコアコンピューティングデバイスの2つ以上のコアによって共有される各低電力リソースに関するメモリ内の参照カウントを維持するステップと、
メモリに記憶されている値を、各コアの電力状態および前記メモリロケーションに関連する前記低電力リソースの各コアの使用に基づいて独立して調整するステップと、
前記メモリロケーションの前記値を使用して、いつシステム低電力構成に進入するかを判断するステップと
フラグビット設定に基づいて低電力モードに置かれ得るリソースを識別するステップと、
コア当たりベースまたはグローバルベースでレイテンシ要件を登録するステップと、
前記登録されたレイテンシ要件から最も厳しいレイテンシ要件を選択するステップと、
前記コアに存在するレイテンシ制限に基づいて、前記選択された最も厳しいレイテンシ耐性を上回る複合レイテンシ要件を有するあらゆる低電力リソースモードまたは低電力リソースモードのあらゆる組合せを除去するために、低電力モードに置かれ得る各リソースに関するコンピューティングデバイス低電力モードについて評価するステップと、
潜在的電力節約量を最大化し、現在のコアに対する前記選択された最悪状況レイテンシ要件以下である総合レイテンシ要件を有する低電力リソースモードの組合せを選択するステップと、
前記識別されたリソースの各々に対して前記選択された低電力モードの各々の進入関数を実行することによって、前記選択された低電力リソースモードの組合せに進入するステップと、によってシステムの低電力構成に進入するステップと、
を含む、マルチコアコンピューティングデバイス。
【請求項６３】
前記マルチコアコンピューティングデバイスにおける他のコアのうちの1つまたは複数のオペレーティングシステムとは異なるオペレーティングシステムの下で動作するように、前記マルチコアコンピューティングデバイスに動作を実行させるように、前記1又は2以上のプロセッサには、プロセッサ実行可能な命令が設定される、請求項62に記載のマルチコアコンピューティングデバイス。
【請求項６４】
前記マルチコアコンピューティングデバイスのうちの少なくとも1つのコアは、前記コアを少なくとも1つの他のコアの動作に結び付ける少なくとも1つのリソースを共有し、各コアは、他のコアの各々とは関係なく低電力モードに進入し、低電力モードから退出するように、前記1又は2以上のプロセッサには、前記マルチコアコンピューティングデバイスに動作を実行させるように、プロセッサ実行可能な命令が設定される、請求項62に記載のマルチコアコンピューティングデバイス。
【請求項６５】
前記識別されたリソースの各々に対して前記選択された低電力モードの各々の進入関数を実行することによって、前記選択された低電力リソースモードの組合せに進入するステップは、共有モードに関して、前記参照カウント値がゼロに等しいときに前記進入関数を実行するステップを含むように、前記1又は2以上のプロセッサには、マルチコアコンピューティングデバイスに動作を実行させるプロセッサ実行可能な命令が設定される、請求項62に記載のマルチコアコンピューティングデバイス。
【請求項６６】
現在の温度における単位時間当たり潜在的電力節約量と期待アイドル時間とを掛けた値に基づいて、前記現在のコアに対して期待される前記アイドル時間における評価された各低電力リソースモードの潜在的電力節約量を判断するステップ
をさらに含む動作をマルチコアコンピューティングデバイスに実行させるプロセッサ実行可能な命令が設定される、請求項62に記載のマルチコアコンピューティングデバイス。
【請求項６７】
マルチコアコンピューティングデバイスにおける電力を節約するための動作をプロセッサに実行させるように構成されるプロセッサ実行可能なソフトウェア命令を記憶した非一時的コンピュータ記憶媒体であって、
前記動作は、
前記マルチコアコンピューティングデバイスの2つ以上のコアによって共有される各低電力リソースモードに関するメモリ内の参照カウントを維持するステップと、
メモリに記憶されている値を、各コアの電力状態およびメモリロケーションに関連する前記低電力リソースの各コアの使用に基づいて独立して調整するステップと、
前記メモリロケーションの前記値を使用していつシステム低電力構成に進入するかを判断するステップと、
フラグビット設定に基づいて低電力モードに置かれ得るリソースを識別するステップと、
コア当たりベースまたはグローバルベースでレイテンシ要件を登録するステップと、
前記登録されたレイテンシ要件から最も厳しいレイテンシ要件を選択するステップと、
前記コアに存在するレイテンシ制限に基づいて、前記選択された最も厳しいレイテンシ耐性を上回る複合レイテンシ要件を有するあらゆる低電力リソースモードまたは低電力リソースモードのあらゆる組合せを除去するために、低電力モードに置かれ得る各リソースに関するコンピューティングデバイス低電力モードについて評価するステップと、
潜在的電力節約量を最大化し、現在のコアに対する前記選択された最悪状況レイテンシ要件以下である総合レイテンシ要件を有する低電力リソースモードの組合せを選択するステップと、
前記識別されたリソースの各々に対して前記選択された低電力モードの各々の進入関数を実行することによって、前記選択された低電力リソースモードの組合せに進入するステップと、によってシステムの低電力構成に進入するステップと、
を含む、
非一時的コンピュータ記憶媒体。
【請求項６８】
前記記憶されているプロセッサ実行可能ソフトウェア命令は、
前記マルチコアコンピューティングデバイスの各々が、前記マルチコアコンピューティングデバイスにおける他のコアのうちの1つまたは複数のオペレーティングシステムとは異なるオペレーティングシステムの下で動作するように、前記プロセッサに動作を実行するように構成される、
請求項67に記載の非一時的コンピュータ記憶媒体。
【請求項６９】
前記記憶されているプロセッサ実行可能ソフトウェア命令は、
前記マルチコアコンピューティングデバイスのうちの少なくとも1つのコアは、前記コアを少なくとも1つの他のコアの動作に結び付ける少なくとも1つのリソースを共有し、各コアは、他のコアの各々とは関係なく低電力モードに進入し、低電力モードから退出するように構成され、プロセッサに動作を実行させるように構成される、請求項67に記載の非一時的コンピュータ記憶媒体。
【請求項７０】
前記記憶されているプロセッサ実行可能ソフトウェア命令は、
前記識別されたリソースの各々に対して前記選択された低電力モードの各々の進入関数を実行することによって、前記選択された低電力リソースモードの組合せに進入するステップは、共有モードに関して、前記参照カウント値がゼロに等しいときに前記進入関数を実行するステップを含むように、プロセッサに動作を実行させるように構成される、請求項67に記載の非一時的コンピュータ記憶媒体。
【請求項７１】
前記記憶されているプロセッサ実行可能ソフトウェア命令は、
現在の温度における単位時間当たり潜在的電力節約量と期待アイドル時間とを掛けた値に基づいて、前記現在のコアに対して期待される前記アイドル時間における評価された各低電力リソースモードの潜在的電力節約量を判断するステップ
をさらに含む動作をプロセッサに実行させるように構成される、請求項67に記載の非一時的コンピュータ記憶媒体。
【請求項７２】
マルチコアコンピューティングデバイスの2つ以上のコアによって共有される各低電力リソースに関するメモリ内の参照カウントを維持する手段と、
メモリに記憶されている値を、各コアの電力状態および前記メモリロケーションに関連する前記低電力リソースの各コアの使用に基づいて独立して調整する手段と、
前記メモリロケーションの前記値を使用して、いつシステム低電力構成に進入するかを判断する手段と
フラグビット設定に基づいて低電力モードに置かれ得るリソースを識別する手段と、
コア当たりベースまたはグローバルベースでレイテンシ要件を登録する手段と、
前記登録されたレイテンシ要件から最も厳しいレイテンシ要件を選択する手段と、
前記コアに存在するレイテンシ制限に基づいて、前記選択された最も厳しいレイテンシ耐性を上回る複合レイテンシ要件を有するあらゆる低電力リソースモードまたは低電力リソースモードのあらゆる組合せを除去するために、低電力モードに置かれ得る各リソースに関するコンピューティングデバイス低電力モードについて評価する手段と、
潜在的電力節約量を最大化し、現在のコアに対する前記選択された最悪状況レイテンシ要件以下である総合レイテンシ要件を有する低電力リソースモードの組合せを選択する手段と、
前記識別されたリソースの各々に対して前記選択された低電力モードの各々の進入関数を実行することによって、前記選択された低電力リソースモードの組合せに進入する手段とを含む
マルチコアコンピューティングデバイス。
【請求項７３】
前記マルチコアコンピューティングデバイスの各々が、前記マルチコアコンピューティングデバイスにおける他のコアのうちの1つまたは複数のオペレーティングシステムとは異なるオペレーティングシステムの下で動作するための手段を更に含む
請求項72に記載のマルチコアコンピューティングデバイス。
【請求項７４】
前記マルチコアコンピューティングデバイスのうちの少なくとも1つのコアは、前記コアを少なくとも1つの他のコアの動作に結び付ける少なくとも1つのリソースを共有し、各コアは、他のコアの各々とは関係なく低電力モードに進入し、低電力モードから退出するように前記マルチコアコンピューティングデバイスを構成する手段を更に含む、請求項72に記載のマルチコアコンピューティングデバイス。
【請求項７５】
前記識別されたリソースの各々に対して前記選択された低電力モードの各々の進入関数を実行することによって、前記選択された低電力リソースモードの組合せに進入する手段は、共有モードに関して、前記参照カウント値がゼロに等しいときに前記進入関数を実行する手段を更に含む、請求項72に記載のマルチコアコンピューティングデバイス。
【請求項７６】
現在の温度における単位時間当たり潜在的電力節約量と期待アイドル時間とを掛けた値に基づいて、前記現在のコアに対して期待される前記アイドル時間における評価された各低電力リソースモードの潜在的電力節約量を判断する手段を更に含む、請求項72に記載のマルチコアコンピューティングデバイス。