少なくとも1つのプロセッサおよび複数のプロセッサリソースを有するポータブルコンピューティングデバイスのアプリケーション状態を管理するための方法であって、メモリで第1のリソース状態セットおよび第2のリソース状態セットを維持するステップと、前記第1のリソース状態セットに対応する第1のアプリケーション状態で動作するプロセッサに対し、前記第1のアプリケーション状態から前記第2のリソース状態セットに対応する第2のアプリケーション状態に移行することを求める要求を出すステップと、前記第2のリソース状態セットで示される状態へのリソース移行を始める開始時間を、前記第2のリソース状態セットで示される状態へのリソース移行を完了させるまでの推定処理時間量に基づいてスケジュールするステップと、スケジュールされた開始時間に、1つまたは複数のリソースの状態を、前記第1のリソース状態セットによって示される状態から前記第2のリソース状態セットによって示される状態に切り替えるプロセスを始めるステップとを含む方法。前記第1のリソース状態セットは、前記プロセッサのスリープアプリケーション状態に対応するスリープリソース状態セットであり、前記第2のリソース状態セットは、前記プロセッサのアクティブアプリケーション状態に対応するアクティブリソース状態セットである、請求項1に記載の方法。開始時間をスケジュールする前記ステップ、および状態を切り替える前記プロセスを始める前記ステップは、コントローラによって実行される、請求項1に記載の方法。開始時間をスケジュールするステップは、第1のプロセッサに対して出される第1の要求に関連する状態を切り替える第1のプロセスと第2のプロセッサに対して出される第2の要求に関連する状態を切り替える第2のプロセスとの間に競合状態が存在するか否かを判断するステップと、競合状態が存在すると判断された場合に、開始時間を修正することによって前記競合状態を緩和するステップとを含む、請求項1に記載の方法。開始時間を修正するステップは、前記第1のプロセスおよび前記第2のプロセスのうちの1つの開始時間を修正して、前記第1のプロセスに関連する処理時間が、前記第2のプロセスに関連する処理時間と重複しないようにするステップを含む、請求項4に記載の方法。開始時間を修正するステップは、前記第1のプロセスおよび前記第2のプロセスのうちの1つの開始時間を修正して、前記第2のプロセスのうちのいずれかが実行される前に前記第1のプロセスの第1の部分が実行され、前記第2のプロセスの少なくとも一部分が実行された後に前記第1のプロセスの第2の部分が実行されるようにするステップを含む、請求項5に記載の方法。前記ポータブルコンピューティングデバイスは、セルラー電話、衛星電話、ページャ、携帯情報端末、スマートフォン、ナビゲーションデバイス、スマートブックまたはリーダー、メディアプレーヤ、およびワイヤレス接続を有するラップトップコンピュータのうちの少なくとも1つを含む、請求項1に記載の方法。少なくとも1つのプロセッサおよび複数のプロセッサリソースを有するポータブルコンピューティングデバイスのアプリケーション状態を管理するためのコンピュータシステムであって、処理エンティティを含み、前記処理エンティティは、メモリで第1のリソース状態セットおよび第2のリソース状態セットを維持するステップと、前記第1のリソース状態セットに対応する第1のアプリケーション状態で動作するプロセッサに対し、前記第1のアプリケーション状態から前記第2のリソース状態セットに対応する第2のアプリケーション状態に移行することを求める要求を出すステップと、前記第2のリソース状態セットで示される状態へのリソース移行を始める開始時間を、前記第2のリソース状態セットで示される状態へのリソース移行を完了させるまでの推定処理時間量に基づいてスケジュールするステップと、スケジュールされた開始時間に、1つまたは複数のリソースの状態を、前記第1のリソース状態セットによって示される状態から前記第2のリソース状態セットによって示される状態に切り替えるプロセスを始めるステップとを行うように動作可能である、コンピュータシステム。前記第1のリソース状態セットは、前記プロセッサのスリープアプリケーション状態に対応するスリープリソース状態セットであり、前記第2のリソース状態セットは、前記プロセッサのアクティブアプリケーション状態に対応するアクティブリソース状態セットである、請求項8に記載のコンピュータシステム。開始時間をスケジュールする前記ステップ、および状態を切り替える前記プロセスを始める前記ステップは、コントローラによって実行される、請求項8に記載のコンピュータシステム。開始時間をスケジュールするステップは、第1のプロセッサに対して出される第1の要求に関連する状態を切り替える第1のプロセスと第2のプロセッサに対して出される第2の要求に関連する状態を切り替える第2のプロセスとの間に競合状態が存在するか否かを判断するステップと、競合状態が存在すると判断された場合に、開始時間を修正することによって前記競合状態を緩和するステップとを含む、請求項8に記載のコンピュータシステム。開始時間を修正するステップは、前記第1のプロセスおよび前記第2のプロセスのうちの1つの開始時間を修正して、前記第1のプロセスに関連する処理時間が、前記第2のプロセスに関連する処理時間と重複しないようにするステップを含む、請求項11に記載のコンピュータシステム。開始時間を修正するステップは、前記第1のプロセスおよび前記第2のプロセスのうちの1つの開始時間を修正して、前記第2のプロセスのうちのいずれかが実行される前に前記第1のプロセスの第1の部分が実行され、前記第2のプロセスの少なくとも一部分が実行された後に前記第1のプロセスの第2の部分が実行されるようにするステップを含む、請求項11に記載のコンピュータシステム。前記ポータブルコンピューティングデバイスは、セルラー電話、衛星電話、ページャ、携帯情報端末、スマートフォン、ナビゲーションデバイス、スマートブックまたはリーダー、メディアプレーヤ、およびワイヤレス接続を有するラップトップコンピュータのうちの少なくとも1つを含む、請求項8に記載のコンピュータシステム。少なくとも1つのプロセッサおよび複数のプロセッサリソースを有するポータブルコンピューティングデバイスのアプリケーション状態を管理するためのコンピュータシステムであって、少なくとも1つのプロセッサおよび複数のプロセッサリソースを有するポータブルコンピューティングデバイスのアプリケーション状態を管理するための手段を含み、前記手段は、メモリで第1のリソース状態セットおよび第2のリソース状態セットを維持するための手段と、前記第1のリソース状態セットに対応する第1のアプリケーション状態で動作するプロセッサに対し、前記第1のアプリケーション状態から前記第2のリソース状態セットに対応する第2のアプリケーション状態に移行することを求める要求を出すための手段と、前記第2のリソース状態セットで示される状態へのリソース移行を始める開始時間を、前記第2のリソース状態セットで示される状態へのリソース移行を完了させるまでの推定処理時間量に基づいてスケジュールするための手段と、スケジュールされた開始時間に、1つまたは複数のリソースの状態を、前記第1のリソース状態セットによって示される状態から前記第2のリソース状態セットによって示される状態に切り替えるプロセスを始めるための手段とを含む、コンピュータシステム。前記第1のリソース状態セットは、前記プロセッサのスリープアプリケーション状態に対応するスリープリソース状態セットであり、前記第2のリソース状態セットは、前記プロセッサのアクティブアプリケーション状態に対応するアクティブリソース状態セットである、請求項15に記載のコンピュータシステム。開始時間をスケジュールするための前記手段、および状態を切り替える前記プロセスを始めるための前記手段は、コントローラを含む、請求項15に記載のコンピュータシステム。開始時間をスケジュールするための前記手段は、第1のプロセッサに対して出される第1の要求に関連する状態を切り替える第1のプロセスと第2のプロセッサに対して出される第2の要求に関連する状態を切り替える第2のプロセスとの間に競合状態が存在するか否かを判断するための手段と、競合状態が存在すると判断された場合に、開始時間を修正することによって前記競合状態を緩和するための手段とを含む、請求項15に記載のコンピュータシステム。開始時間を修正するための前記手段は、前記第1のプロセスおよび前記第2のプロセスのうちの1つの開始時間を修正して、前記第1のプロセスに関連する処理時間が、前記第2のプロセスに関連する処理時間と重複しないようにするための手段を含む、請求項18に記載のコンピュータシステム。開始時間を修正するための前記手段は、前記第1のプロセスおよび前記第2のプロセスのうちの1つの開始時間を修正して、前記第2のプロセスのうちのいずれかが実行される前に前記第1のプロセスの第1の部分が実行され、前記第2のプロセスの少なくとも一部分が実行された後に前記第1のプロセスの第2の部分が実行されるようにするための手段を含む、請求項19に記載のコンピュータシステム。前記ポータブルコンピューティングデバイスは、セルラー電話、衛星電話、ページャ、携帯情報端末、スマートフォン、ナビゲーションデバイス、スマートブックまたはリーダー、メディアプレーヤ、およびワイヤレス接続を有するラップトップコンピュータのうちの少なくとも1つを含む、請求項15に記載のコンピュータシステム。コンピュータ可読プログラムコードからなるコンピュータプログラムであって、前記コンピュータ可読プログラムコードは、少なくとも1つのプロセッサおよび複数のプロセッサリソースを有するポータブルコンピューティングデバイスのアプリケーション状態を管理するための方法を実施するために実行されるように適合される、コンピュータプログラムにおいて、前記方法は、メモリで第1のリソース状態セットおよび第2のリソース状態セットを維持するステップと、前記第1のリソース状態セットに対応する第1のアプリケーション状態で動作するプロセッサに対し、前記第1のアプリケーション状態から前記第2のリソース状態セットに対応する第2のアプリケーション状態に移行することを求める要求を出すステップと、前記第2のリソース状態セットで示される状態へのリソース移行を始める開始時間を、前記第2のリソース状態セットで示される状態へのリソース移行を完了させるまでの推定処理時間量に基づいてスケジュールするステップと、スケジュールされた開始時間に、1つまたは複数のリソースの状態を、前記第1のリソース状態セットによって示される状態から前記第2のリソース状態セットによって示される状態に切り替えるプロセスを始めるステップとを含む、コンピュータプログラム。前記第1のリソース状態セットは、前記プロセッサのスリープアプリケーション状態に対応するスリープリソース状態セットであり、前記第2のリソース状態セットは、前記プロセッサのアクティブアプリケーション状態に対応するアクティブリソース状態セットである、請求項22に記載のコンピュータプログラム。開始時間をスケジュールする前記ステップ、および状態を切り替える前記プロセスを始める前記ステップは、コントローラによって実行される、請求項22に記載のコンピュータプログラム。開始時間をスケジュールするステップは、第1のプロセッサに対して出される第1の要求に関連する状態を切り替える第1のプロセスと第2のプロセッサに対して出される第2の要求に関連する状態を切り替える第2のプロセスとの間に競合状態が存在するか否かを判断するステップと、競合状態が存在すると判断された場合に、開始時間を修正することによって前記競合状態を緩和するステップとを含む、請求項22に記載のコンピュータプログラム。開始時間を修正するステップは、前記第1のプロセスおよび前記第2のプロセスのうちの1つの開始時間を修正して、前記第1のプロセスに関連する処理時間が、前記第2のプロセスに関連する処理時間と重複しないようにするステップを含む、請求項25に記載のコンピュータプログラム。開始時間を修正するステップは、前記第1のプロセスおよび前記第2のプロセスのうちの1つの開始時間を修正して、前記第2のプロセスのうちのいずれかが実行される前に前記第1のプロセスの第1の部分が実行され、前記第2のプロセスの少なくとも一部分が実行された後に前記第1のプロセスの第2の部分が実行されるようにするステップを含む、請求項26に記載のコンピュータプログラム。前記ポータブルコンピューティングデバイスは、セルラー電話、衛星電話、ページャ、携帯情報端末、スマートフォン、ナビゲーションデバイス、スマートブックまたはリーダー、メディアプレーヤ、およびワイヤレス接続を有するラップトップコンピュータのうちの少なくとも1つを含む、請求項22に記載のコンピュータプログラム。したがって、当技術分野で必要なものは、PCDのプロセッサがソフトウェアハンドシェイクなしでスリープ状態に入れるようにするための方法およびシステムである。ポータブルコンピューティングデバイスのスリープ状態およびアクティブ状態などのアプリケーション状態を管理するための方法およびシステムについて説明する。アプリケーション状態に対応するリソース状態セットがメモリで維持される。第1のリソース状態セットに対応する第1のアプリケーション状態で動作するプロセッサに対し、第1のアプリケーション状態から第2のリソース状態セットに対応する第2のアプリケーション状態に移行することを求める要求が出され得る。第2のリソース状態セットで示される状態へのリソース移行を始める開始時間が、リソース移行を完了させるまでの推定処理時間量に基づいてスケジュールされる。スケジュールされた開始時間に、1つまたは複数のリソースの状態が、第1のリソース状態セットによって示される状態から第2のリソース状態セットによって示される状態に切り替えられるプロセスが始まる。リソース状態を移行させるプロセスを、プロセッサが第2のアプリケーション状態に入り次第リソース状態を利用できるようにジャストインタイムでプロセスを完了させることができる時間に始めるようにスケジュールすることは、リソース待ち時間の悪影響を最小化するのに寄与する。図中、別段に規定されていない限り、同様の参照番号は、様々な図の全体を通じて、同様の部分を指す。102Aまたは102Bのような文字指定を伴う参照番号について、文字指定は、同じ図に存在する2つの同様の部分または要素を区別し得る。参照番号の文字指定は、参照番号が、すべての図において同じ参照番号を有するすべての部分を包含することが意図される場合には、省略されることがある。例示的なという語は、例、実例、または具体例としての役割を果たすことを意味するように本明細書において用いられている。例示的なものとして本明細書で説明する何らかの態様は、必ずしも他の態様よりも好ましい、または有利であると解釈されるわけではない。本明細書では、アプリケーションという用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなど、実行可能なコンテンツを有するファイルを含むこともある。加えて、本明細書で言及するアプリケーションは、開封される必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルなど、本質的に実行可能ではないファイルを含むこともある。コンテンツという用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなど、実行可能なコンテンツを有するファイルを含むこともある。加えて、本明細書で言及するコンテンツは、開封される必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルなど、本質的に実行可能ではないファイルを含むこともある。本明細書で使用される場合、構成要素、データベース、モジュール、システムなどの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、実行中のソフトウェアを問わず、コンピュータ関連のエンティティを指すことが意図されている。たとえば構成要素は、プロセッサ上で作動しているプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラムおよびまたはコンピュータであってよいが、これらであることに限定されない。例を挙げると、コンピューティングデバイス上で作動しているアプリケーションとコンピューティングデバイスの両方が構成要素であり得る。1つまたは複数の構成要素は、プロセスおよびまたは実行スレッドの中に存在してよく、1つの構成要素を1つのコンピュータに局在化すること、およびまたは2つ以上のコンピュータ間に分散することが可能である。加えて、これらの構成要素は、様々なデータ構造を記憶している様々なコンピュータ可読媒体から実行することができる。各構成要素は、1つまたは複数のデータパケットを有する信号に従うなどしてローカルプロセスおよびまたはリモートプロセスを介して通信することができる。本明細書では、通信デバイス、ワイヤレスデバイス、ワイヤレス電話、ワイヤレス通信デバイス、およびワイヤレスハンドセットという用語は交換可能に用いられる。第3世代および第4世代のワイヤレス技術が出現したことによって、利用可能な帯域が拡大されたので、より多くのワイヤレス機能を備えたより携帯が容易なコンピューティングデバイスが利用可能になっている。本明細書では、ポータブルコンピューティングデバイスという用語は、バッテリーなど限られた容量の電源で動作する任意のデバイスを説明するために使用される。何十年もの間バッテリー式PCDが使用されてきたが、第3世代および第4世代ワイヤレス技術の出現とともにもたらされた充電式バッテリーの技術的進歩は、複数の機能を有する多数のPCDを可能にした。したがって、PCDは、中でも、セルラー電話、衛星電話、ページャ、PDA、スマートフォン、ナビゲーションデバイス、スマートブックまたはリーダー、メディアプレーヤ、上述したデバイスの組合せ、およびワイヤレス接続を有するラップトップコンピュータであってよい。図1プロセッサアプリケーション状態間のリソース待ち時間を最小化するためのPCD100の要素図1を参照すると、この図は、PCD100内のプロセッサ110、126の迅速なスリープ状態を管理するための方法およびシステムを実現するためのワイヤレス電話の形態によるPCD100の例示的で非限定的な態様の機能ブロック図である。図示のように、PCD100は、マルチコアである第1の中央処理装置110A、シングルコアタイプである第2のCPU110B、およびアナログ信号プロセッサ126を含むオンチップシステム102を含む。これらの3つのプロセッサ110A、110B、および126は連結され得る。第1のCPU110Aは、当業者によって理解されるように第0のコア222、第1のコア224、および第Nのコア230を含むことができる。代替実施形態では、2つのCPU110を使用する代わりに、当業者によって理解されるように2つのデジタル信号プロセッサを用いることもできる。さらなる例示的な実施形態では、当業者によって理解されるように前述のいずれかを組み合わせて使用することができる。図1は、1つまたは複数のコントローラモジュール101を含む。この説明の残り部分では、コントローラモジュール101を複数形ではなく単数形でコントローラ101と呼ぶ。当業者は、本発明から逸脱することなく、コントローラ101を様々な部分に分割し、異なるプロセッサ110、126によって実行することができることを認識されよう。代替的に、コントローラ101を、単一の要素として編成し、単一のプロセッサ110または126によって実行することができる。図1はまた、システムパワーマネージャ157を示している。システムパワーマネージャ157は、CPU110Aおよびコントローラ101に結合される。SPM157は一般に、プロセッサのようなハードウェアを含む。ただし、当業者によって理解されるように、SPM157にソフトウェアおよびまたはファームウェアを用いてもよい。SPM157は、プロセッサ110、126、および母線の状態を監視する役目を果たすことができる。SPM157は、プロセッサ110、126がスリープ状態に入ろうとしているとき、またはスリープ状態から出ようとしているときを検出することができる。SPM157はコントローラ101に対し、プロセッサ110、126のこれらの状態を通信することができる。より一般的には、SPM157は、プロセッサ110、126が1つのアプリケーション状態から別のアプリケーション状態に移行しようとしているときを検出することができる。プロセッサ110、126のアプリケーション状態は、プロセッサ110、126が事実上アイドル状態であるか、アプリケーションプログラムを実行していないスリープ状態、および1つまたは複数のアプリケーションプログラムを実行しているアウェイク状態またはアクティブ状態だけでなく、または代替的に、以下の状態のいずれかを含むことができる。プロセッサ110、126が動作している状態であって、別の状態で動作する場合よりも速いスピードまたは遅いスピードで動作している状態。アプリケーションプログラムを実行しているプロセッサ110、126によって定義される状態であって、別のアプリケーションプログラムを実行しているプロセッサ110、126によって定義される別の状態とは異なる状態。ある数のアプリケーションプログラムを同時に実行しているプロセッサ110、126によって定義される状態であって、異なる数のアプリケーションプログラムを同時に実行しているプロセッサ110、126によって定義される別の状態とは異なる状態。コントローラ101は、CPU110によって実行されるソフトウェアを含むことができる。ただし、コントローラ101は、当業者によって理解されるように、ハードウェアおよびまたはファームウェアから形成されてもよい。一般に、コントローラ101は、プロセッサ110、126がスリープ状態に迅速に入ること、およびスリープ状態から迅速に出ることを促進する役目を果たすことができる。コントローラ101は、図3に関して以下でさらに詳細に説明するように、リソースセットおよびトリガセットを備える1つまたは複数のテーブルを含むことができる。コントローラ101は、PCD100におけるすべての他のハードウェア要素が低電力状態に置かれ、機能していないときのために、それ自体の割込みコントローラを有してもよい。コントローラ101はまた、1つまたは複数のマスタプロセッサ110、126の間のリソース要求を管理する。リソース要求は、リソース105によるアクションまたは機能を要求するマスタプロセッサ110によって出され得る。リソース105は、以下でより一般的に説明するが、たとえば、1つまたは複数のマスタプロセッサ110、126によって実行されるソフトウェアアプリケーションのタスク、コマンド、および特徴をサポートするクロックおよび他の低レベルプロセッサを含むことができる。コントローラ101は、複数のマスタプロセッサ110、126の間のリソース要求競合を防ぐように設計され得る。図1は、PCD100がメモリ112を含み得ることを示している。CPU110上で作動しているコントローラ101は、以下でさらに詳細に説明するように、迅速なスリープ状態を促進するために、またスリープ状態から迅速に出ることを促進するためにメモリ112にアクセスすることができる。特定の態様において、本明細書で説明する方法ステップのうちの1つまたは複数は、コントローラ101を形成するメモリ112に記憶された実行可能命令およびパラメータによって実施され得る。コントローラ101を形成するこれらの命令は、CPU110、アナログ信号プロセッサ126、または別のプロセッサによって実行され得る。さらに、プロセッサ110、126、メモリ112、メモリ112に記憶された命令、またはそれらの組合せは、本明細書で説明する方法ステップのうちの1つまたは複数を実行するための手段として動作し得る。図1PCD100の他の要素図1に示されるように、ディスプレイコントローラ128およびタッチスクリーンコントローラ130が、デジタル信号プロセッサ110に結合される。オンチップシステム102の外部にあるタッチスクリーンディスプレイ132が、ディスプレイコントローラ128およびタッチスクリーンコントローラ130に結合される。図1は、ビデオコーダデコーダ134、たとえば、位相反転線エンコーダ、順次式カラーメモリエンコーダ、全国テレビジョン方式委員会エンコーダ、または任意の他のタイプのビデオエンコーダ134を含むポータブルコンピューティングデバイスの一実施形態を示す概略図である。ビデオコーデック134は、マルチコア中央処理装置110に結合される。ビデオ増幅器136が、ビデオエンコーダ134およびタッチスクリーンディスプレイ132に結合される。ビデオポート138がビデオ増幅器136に結合される。図1に示すように、ユニバーサルシリアルバスコントローラ140がCPU110に結合される。また、USBポート142がUSBコントローラ140に結合される。加入者識別モジュールカード146も、CPU110に結合され得る。さらに、図1に示すように、デジタルカメラ148がCPU110に結合され得る。例示的な態様では、デジタルカメラ148は、電荷結合デバイスカメラまたは相補型金属酸化膜半導体カメラである。図1にさらに示すように、ステレオオーディオコーデック150がアナログ信号プロセッサ126に結合され得る。さらに、オーディオ増幅器152がステレオオーディオコーデック150に結合され得る。例示的な態様では、第1のステレオスピーカー154および第2のステレオスピーカー156がオーディオ増幅器152に結合される。図1は、マイクロフォン増幅器158もステレオオーディオコーデック150に結合され得ることを示している。加えて、マイクロフォン160がマイクロフォン増幅器158に結合され得る。特定の態様では、周波数変調ラジオチューナー162がステレオオーディオコーデック150に結合され得る。また、FMアンテナ164がFMラジオチューナー162に結合される。さらに、ステレオヘッドフォン166がステレオオーディオコーデック150に結合され得る。図1は、高周波トランシーバ168がアナログ信号プロセッサ126に結合され得ることをさらに示している。RFスイッチ170がRFトランシーバ168およびRFアンテナ172に結合され得る。図1に示されるように、キーパッド174がアナログ信号プロセッサ126に結合され得る。また、マイクロフォンを備えたモノヘッドセット176がアナログ信号プロセッサ126に結合され得る。さらに、バイブレータデバイス178がアナログ信号プロセッサ126に結合され得る。図1は、たとえばバッテリーなどの電源180がオンチップシステム102に結合されることも示している。特定の態様では、電源180は、充電式DCバッテリー、または交流電源に接続されたACDC変換器から導かれるDC電源を含む。図1に示されるように、タッチスクリーンディスプレイ132、ビデオポート138、USBポート142、カメラ148、第1のステレオスピーカー154、第2のステレオスピーカー156、マイクロフォン160、FMアンテナ164、ステレオヘッドフォン166、RFスイッチ170、RFアンテナ172、キーパッド174、モノヘッドセット176、バイブレータ178、熱センサ157B、および電源180は、オンチップシステム102の外部にある。PCD100の上記の要素の中には、ハードウェアを含み得るものがある一方、ソフトウェアを含み得るものもあり、さらに、ハードウェアとソフトウェアの組合せを含み得るものもある。リソースという用語は、本明細書において、ハードウェアであるか、ソフトウェアであるか、それらの組合せであるかを問わず、プロセッサによって制御可能な任意のそのような要素を指すために使用される。リソースは、一態様において、そのような要素の機能のカプセル化として定義され得る。別途示される場合を除いて、プロセッサまたはマスタプロセッサという用語は、本明細書において、第1のCPU110A、第2のCPU110B、アナログ信号プロセッサ126のようなプロセッサを指すために、またはソフトウェア、ファームウェアもしくは同様の制御論理の支配下で動作する任意の他のプロセッサ、コントローラもしくは同様の要素を指すために使用される。以下でさらに詳細に説明するように、リソースの一例は、プロセッサに対し実行するソフトウェア要素である。たとえば、実行アプリケーションプログラムに関係するスレッドなどのプロセッサに対する実行のスレッドが、リソースに対する要求を出させることによって、リソースにアクセスすることができる。異なるアプリケーション状態では、リソースの様々な構成または状態を要求することがプロセッサにとって必要であること、または望ましいことがある。たとえば、バスリソースは、バスクロックの速度を制御することができる。1つのアプリケーション状態では、プロセッサは、たとえば100MIPSのペースでプロセッサが動作することを許容するバスクロックを要求することができる一方、別のアプリケーション状態では、プロセッサは、たとえば150MIPSのペースでプロセッサが動作することを許容するバスクロックを要求することができる。スリープ状態であるアプリケーション状態に入る準備をしているプロセッサの場合、プロセッサはゼロMIPSのバスクロックを要求することができる。同様に、第1のアプリケーションプログラムを実行するプロセッサによって定義される1つのアプリケーション状態では、プロセッサは100MIPSを要求することができる一方、第2のアプリケーションプログラムを実行するプロセッサによって定義される別のアプリケーション状態では、プロセッサは150MIPSを要求することができる。同様に、一定数のアプリケーションプログラムを同時に実行するプロセッサによって定義される1つのアプリケーション状態では、プロセッサは100MIPSを要求することができる一方、異なる数のアプリケーションプログラムを同時に実行するプロセッサによって定義される第2のアプリケーション状態では、プロセッサは150MIPSを要求することができる。上記のバスクロックは、リソース要求を出すプロセッサによって構成され得るリソースの一例としてのみ意図されていること、また、数字100および150は、処理速度の任意の例として意図されていることを理解されたい。リソース構成または状態は、リソース状態セットにグループ化され得る。リソース状態セットは、あるプロセッサアプリケーション状態においてプロセッサによって一緒に使用される1つまたは複数のリソースの構成または状態を定義する。たとえば、あるリソース状態セットは、一定数のMIPSの処理速度をプロセッサにもたらすバスクロックリソースに関する構成または状態情報、およびプロセッサに復号機能を提供するデコーダに関する構成または状態情報を含むことができる。図2は、システム103を形成するコントローラ101、システムパワーマネージャ157、マスタプロセッサ110、126、低レベルドライバ103、共用リソース105A~C、およびローカルリソース105D~Hの間の関係を示す機能ブロック図である。図2はまた、どのようにタッチスクリーン132がタッチスクリーンドライバコントローラ130に結合され得るかを示している。タッチスクリーンドライバコントローラ130は、第1のマスタプロセッサ110Aのクロックコード113Aに結合され得る。システム103は、リソース待ち時間を最小化するように、プロセッサ110によって望まれるリソース状態セット間で切り替えることができる。リソース待ち時間という用語は、マスタプロセッサ110、126が別のリソース状態セットに移行させるためにコントローラ101およびシステムパワーマネージャ157を準備し始めた時間から、当該セットのリソースが指定の状態に構成されるようになり、プロセッサが使用できるように準備できるまでの時間に生じる遅延または待ち時間を指す。後述のように、リソース状態セットは、以下に大別され得る。プロセッサがアプリケーションプログラムを実行し、別の方法で処理能力を提供するのを支援するように構成されたリソースをプロセッサが提供されるアクティブリソース状態セット。およびプロセッサがスリープ状態、すなわちプロセッサがアプリケーションプログラムを実行していないか、別の方法で処理能力を提供していない状態を維持するのを支援するリソースのみをプロセッサが提供されるスリープリソース状態。スリープ状態にあるプロセッサは、低レベル機能を維持するが、プロセッサは、当業者によってアプリケーションプログラムであると理解されるソフトウェアを実行することはない。後述する次のアクティブ状態の特徴は、アクティブセットであるか、スリープセットであるかにかかわらず、任意のリソース状態セット間の移行に当てはまり得ることを理解されたい。図2に示す例示的な実施形態では、第1のマスタプロセッサ110Aは、システムパワーマネージャ157およびコントローラ101に結合され得る。コントローラ101は、第1のマスタプロセッサ110Aのクロックコード113Aに結合され得る。コントローラ101は、1つまたは複数の低レベルドライバ103を含むことができる。1つまたは複数の低レベルドライバ103は、1つまたは複数の共用リソース105A~Cと通信する役目を果たすことができる。共用リソース105A~Cは、マスタプロセッサ110のタスクまたは機能をサポートする任意のタイプのデバイスを含むことができる。共用リソース105A~Cは、グラフィカルプロセッサ、デコーダなどの単一の機能要素および他のプロセッサのクロックのようなデバイスを含むことができる。共用リソース105A~Cは、1つまたは複数のローカルリソース105D~Hに結合され得る。1つまたは複数のローカルリソース105D~Hは、マスタプロセッサ110のタスクまたは機能をサポートまたは支援する任意のタイプのデバイスを含み得るという点で、共用リソース105A~Cに類似していてよい。ローカルリソース105D~Hは、グラフィカルプロセッサ、デコーダなどの単一の機能要素および他のプロセッサのクロックのようなデバイスを含むことができる。ローカルリソース105D~Hは、リーフノードを含むことができる。リーフノードは、他の従属リソース105を通常は参照せず、または含まないローカルリソース105D~Hとして、当業者には理解されよう。コントローラ101は、1つまたは複数のマスタプロセッサ110、126から出される要求を管理する役目を果たすことができる。たとえば、コントローラ101は、第1のマスタプロセッサ110Aから生じる要求を管理することができる。第1のマスタプロセッサ110Aは、オペレータがタッチスクリーン132を操作したことに応答して、この要求を出すことができる。タッチスクリーン132は、タッチスクリーンドライバコントローラ130に信号を出すことができる。そして、タッチスクリーンドライバコントローラ130は、第1のマスタプロセッサ110Aのクロックコード113Aに信号を出すことができる。コントローラ101はまた、特定のプロセッサ110のスリープ状態を管理する役目を果たすことができる。スリープ状態に入る前に、プロセッサ110は、スリープ状態を管理するための情報を提供する。スリープ状態を管理するための情報は、スリープ状態に入ること、およびスリープ状態から出ることを含む。スリープ状態を管理するためのこの情報を、以下ではトリガおよびリソース状態と呼ぶ。リソース状態セットは、プロセッサのスリープ状態をサポートするように1つまたは複数のリソースを構成するためのリソース情報を含むことができる。トリガは、スリープ状態に入ること、またはスリープ状態から出ることのいずれかをプロセッサ110に行わせるイベントを定義することができる。トリガは一般に、コントローラ101内に含まれているか、コントローラ101によってアクセス可能なリソース状態を参照する。リソース状態は、特定のプロセッサ110が必要とするリソース105の所望の状態を定義する。例示的な実施形態では、各プロセッサ110はコントローラ101に対し、少なくとも2つのリソース状態セット、すなわち、リソース状態のアクティブセットおよびリソース状態のスリープセットを提供することができる。ただし、他の実施形態では、プロセッサは、単一のアクティブセットおよび単一のスリープセットに加えてリソース状態セットを、または単一のアクティブセットおよび単一のスリープセットとは異なるリソース状態セットを提供することができる。そのような他のリソース状態セットは、上記のプロセッサアプリケーション状態うちの1つまたは複数に対応することができる。すなわち、任意のアプリケーション状態について、プロセッサは対応するリソース状態セットを提供することができる。例示的な実施形態では、リソース状態のアクティブセットは、プロセッサ110がアクティブに処理機能を実行し、リソース105からのアクション機能を要求しているときに関するリソース105の状態を定義することができる。リソース状態のスリープセットは、プロセッサ110がスリープ状態またはアイドル状態にあるときのリソース105の状態を定義することができる。トリガおよびリソース状態については、図3に関連して以下でさらに詳しく説明する。図3は、コントローラ101、リソースセット304、およびトリガセット314に関する詳細を示す機能ブロック図である。前述のように、コントローラ101は、PCD100のプロセッサ110、126のうちの1つまたは複数によって実行されるソフトウェアを含むことができる。コントローラ101は、メモリ112に、または当業者によって理解されるようにローカルストレージのようなコントローラ101内のエリアに、情報を記憶することができる。この情報は、コントローラ101によってサービスされる各マスタプロセッサ110に割り当てられるリソースセット304を含むリソーステーブル302を含むことができる。この情報はまた、同じく各マスタプロセッサ110に割り当てられる、各マスタプロセッサ110に固有であり得るトリガセット314を含むことができる。各リソースセット304は一般に、特定のマスタプロセッサ110によって望まれるリソース105の状態に関係する情報を含む。特定のマスタプロセッサ110に割り当てられる各リソースセット304は、アクティブリソースセット306およびスリープリソースセット308を含むことができる。アクティブリソースセット306は、特定のマスタプロセッサ110がアクティブであるか、正常に機能しているときのリソース105の状態を定義または記述することができる。スリープリソースセット308は、特定のマスタプロセッサが当業者によって理解されるようにスリープ状態または休止状態にあるときのリソース105の状態を定義または記述することができる。各リソースセット304はまた、図3に示す例示的な実施形態において、第1のマスタプロセッサ110に割り当てられるセット1およびセット2のような追加セットを含むことができる。一例として、図3に示す第1のマスタプロセッサ110Aのアクティブリソースセット306は、リソース105の各々に以下の値を割り当てている。第1の共用リソース105Aの場合には値は1であり、第2の共用リソース105Bの値は1であり、第Nの共用リソース105Cの値は1である一方、第1のローカルリソース105Dの4つの値は1、0、1、および1である。前述のように、リソース105の状態は単一の値に限定されず、複数の値を含むことができる。さらに、リソースの状態は、いくつかの異なるタイプのパラメータのいずれかを含むことができる。たとえば、状態は、リソース105として機能することができる特定のクロックのクロック速度の量について数百メガヘルツを指定することができる。別の例として、図3に示す第1のマスタプロセッサ110Aのスリープリソースセット308Aは、リソース105の各々に以下の値を割り当てている。第1の共用リソース105Aの場合、このリソースは0の値を割り当てられており、第2の共用リソース105Bは0の割当て値を有する一方、第Nの共用リソース105Cは0の割当て値を有する。第1のローカルリソース105Dは、0、1、0および0の割当て値を有し得る。特定のマスタプロセッサ110に割り当てられる各トリガセット314は、少なくとも3つのフィールド、すなわち、割込みフィールド316、セットから318、およびセットへ320を含むことができる。トリガセット314のこれら3つのフィールドの各々はまた、3つの列、すなわち、トリガ開始列322、クリア列324、およびタイマー列326からなる対応する1セットを含むことができる。割込みフィールド316は、システムパワーマネージャ157によって生成およびまたは検出され得るアクションまたは活動を記述する。割込みフィールド316は一般に、トリガイベントと特徴付けることができ、これによりコントローラ101は、SPM157によって検出されるトリガイベントに基づいて特定のプロセッサ110によって望まれる指定のリソースセット304を選択することができる。コントローラ101によるリソースセット304の選択は、背景技術セクションで上述した時間のかかるソフトウェアハンドシェイクを回避することができる。第1のマスタプロセッサ110Aについて図3の第1のトリガセットを調べるにあたり、セットのフィールドについて列ごとに順に論じる。トリガセット314Aの第1の列から始めると、トリガ開始列322は割込みフィールド316に対応する第1の行に復号割込みと記載されたアクションを有する。前述のように、割込みフィールド316は、トリガ開始フィールド322の検出に応答してリソースセット304の状態をアクティブ化することをコントローラ101に行わせるパラメータを定義することができる。図3に示す例示的な実施形態では、割込みフィールド316Aは、復号割込みと定義または記述されており、これは、システムパワーマネージャ110が復号割込みを検出したとき、たとえば、PCD100がビデオを復号しているとき、このイベントがコントローラ101に対し、トリガ開始列にある第1の列322A1におけるセットからフィールド318を調べるように警告し得ることを意味する。セットからフィールド318は、コントローラ101によって調べられている特定のマスタプロセッサ110に当てはまる現在のリソースセット304を示す値を含むことができる。このフィールド318は、リソースセット304をその識別子、たとえばアクティブセット、スリープセット、またはセット1もしくはセット2のようなセット番号によって記載することができる。フィールド320は、アスタリスクのようなワイルドカードを含むこともある。セットからフィールド318におけるワイルドカード指定により、コントローラ101は、特定のマスタプロセッサ101によって使用されていた最後の既知のアクティブリソースセット304を取り出すことができる。図3に示す例示的な実施形態では、セットから行318Aのトリガ開始列322A1は、アスタリスクまたはワイルドカードの値を有する。セットへ320は、セットから318と同様に、識別子、たとえばアクティブセット、スリープセット、またはセット1もしくはセット2のようなセット番号によるリソースセット304の記載を含むことができる。フィールド320はまた、プロセッサ110によって利用されている最後のリソースセット304を意味するアスタリスクのようなワイルドカードを含むことができる。図3に示す例示的な実施形態では、セットへフィールド320Aのトリガ開始列322A1は、第1のリソースセット304Aの列310Aに記載されているリソースセット1であるセット1の値を有する。図3に示す例では、復号割込みイベントは、SPM157によって検出されたとき、コントローラ101に警告する。コントローラ101は、第1のマスタプロセッサ110の第1のトリガセットを調べる。トリガ開始列322A1は、マッチング値を記載しているので、コントローラ101は、セットからフィールド318Aを調べて、値がワイルドカード値またはアスタリスクであると判断する。次いでコントローラ101は、特定のリソースセット304Aを指定するセット1の値を有するセットへフィールド320Aを調べる。コントローラ101によって調べられたこの情報に基づき、コントローラ101は、第1のマスタプロセッサ110Aの現在のリソースセット304Aを、現在のセットからリソースセットセット1に切り替える。リソースセット1は、第1のマスタプロセッサ110Aに割り当てられているリソースセット304Aの列310Aに記載されている。さらに、SPM157またはコントローラ101が、第1のトリガセットのクリア列324A1に示すような非復号イベントを検出したとき、コントローラ101はセットからフィールド318Aを調べ、この値がセット1を含むと判断する。次いで、コントローラ101は、この例ではワイルドカードまたはアスタリスクの値を有するセットへフィールド320を調べる。これは、コントローラ101が、第1のマスタプロセッサ110Aのリソースセット304Aを、セット1のリソースセットから、プロセッサ110Aによって使用された最後のアクティブリソースセットに切り替えることを意味する。トリガセットのタイマーフィールド326は、特定のリソースセット304がコントローラ101によって使用され得る時間量を示すことができる。そのため、図3に示す例示的な実施形態では、第1のトリガセットのタイマーフィールド326A1の場合、このフィールドは3ミリ秒の値を有する。これは、復号割込みイベントが第1のトリガセットのトリガ開始フィールド322A1とマッチしたときに、コントローラ101が、セットへフィールド320Aに指定されたリソースセット304を3ミリ秒だけ利用することを意味する。他の例示的な実施形態では、タイマーフィールド326に情報がない状況、またはこの移行のタイマートリガ326がないこと、および移行が非復号フィールドにのみ適用されることを示す値に対応するように値が定義される状況が発生または存在し得る。図3に示すようなタイマーフィールド、すなわちタイマーフィールド326A1および326A2が定義される状況では、タイマーフィールド326とクリアフィールド324との間でどちらのイベントが最初に生じても、たいてい移行が始まる。図4は、プロセッサ110の例示的なアクティブスリープトリガセット314を示している。この例示的な実施形態では、第1の列322における割込みフィールド316は、シャットダウンイベントを、特定のプロセッサ110のスリープセット308を開始するアクションと定義する。シャットダウンイベントは、オペレータがPCD100をシャットダウンするためにオンオフボタンを選択するようなアクションを含むことができる。図4の例示的な実施形態では、シャットダウンイベントが検出されたとき、コントローラ101は、現在のアクティブリソースセット306をスリープセット308に移行させる。スリープセット308は、図3のテーブル302のマスタリソースセット304に記載されている。コントローラ101が、PCD100のオペレータによって開始されるパワーオンイベントのような立ち上げイベントが生じていることを示すメッセージをSPM157から受信したとき、コントローラは、トリガセット314のセットへフィールド320に記載されているワイルドカードまたはアスタリスク値に基づいて、プロセッサ110をスリープセット308から最後のアクティブリソースセット304に移行させる。上記のように、システム103は、アクティブセット306およびスリープセット308に限定されない。システム103は、図3に示すように、スリープ状態に入ること、またはスリープ状態から出ること以外のイベントにおけるリソースセット304間の切替えに使用され得る。図5は、プロセッサ110をスリープ状態に置くためのトリガセット314を管理するための方法500を示す論理フローチャートである。ブロック505が、方法500の最初のステップである。ブロック505において、各プロセッサ110は、PCD100の先行使用事例からのデータに基づいて必要に応じて、コントローラ101内のトリガセット314およびリソースセット304を更新することができる。ブロック510において、プロセッサ110はSPM157に対し、コントローラ101へのシャットダウン信号を生成するように要求することができる。ブロック515において、SPM157はシャットダウン信号をコントローラ101に送ることができる。コントローラ101は、ブロック520においてシャットダウン信号を受信することができ、図4に示すようにシャットダウンイベントに割り当てられ得るトリガセット314をアクティブ化することができる。図4に示す例示的な実施形態では、シャットダウン信号は、トリガセット314の割込みフィールド316と突き合わせられる。トリガセット314はコントローラ101に対し、セットへフィールド320に示されているようにスリープセット308にアクセスするように指示する。ブロック525において、コントローラ101は早急に、確認応答信号をSPM157に送ることができ、コントローラ101は引き続き、シャットダウン信号イベントとマッチするトリガセット314によって参照されるリソースセット304をアクティブ化することができる。ブロック530において、図4に示す対応する割込みフィールド316にシャットダウンイベントを記載しているマッチングトリガセット314のような各マッチングトリガセット314について、コントローラ101は、現在のリソースセット304を、図3のマスタプロセッサ110Aの第1のリソースセット304Aのスリープセット308Aのようなスリープセット308に切り替えることができる。次に、ブロック535において、コントローラ101は、図2に示すような低レベルドライバ103にスリープ要求状態を伝えることができる。低レベルドライバ103は、要求された状態を、対応するリソース105に伝達することができる。ブロック540において、各リソース105はシャットダウン信号確認応答をコントローラ101およびSPM157に出すことができる。そして、方法500は終了することができる。図6は、プロセッサ110をスリープ状態からアクティブ状態に置くためのトリガセット314を管理するための方法600を示す論理フローチャートである。ブロック605が、方法600の最初のステップである。ブロック605において、ウェイクアップ状態またはウェイクアップイベントが、SPM157により検出されるか、ウェイクアップイベントが、それ自体の割込みコントローラを有し得るコントローラ101によって直接検出される。例示的な実施形態は、ウェイクアップ割込みがSPM157によって検出可能ではないように設計され得る。そのような例示的な実施形態では、コントローラ101はその割込みコントローラを使用して、それらを検出し、これらをマスタプロセッサ110のスリープセット要件にマッピングさせることができる。次に、ブロック610において、SPM157はウェイクアップ信号をコントローラ101に送ることができる。ブロック615において、コントローラ101は、SPM157からウェイクアップ信号を受信し、ウェイクアップ信号とマッチした1つまたは複数のトリガセット314をアクティブ化することができる。たとえば、コントローラ101はウェイクアップ信号を、図4のトリガセット314のアクティブ列内の割込みフィールド316に記載されている立ち上げイベントと突き合わせることができる。図4の例示的な実施形態では、アクティブ列324内のセットへフィールド320はコントローラを、現在のプロセッサ110によって使用された最後のリソースセット304に案内する。そのため、ブロック620において、コントローラ101は、このマッチングトリガセット314に基づいて、プロセッサ110の現在のリソースセット304を変更する。当業者は、コントローラ101が図3に示すように維持するそのトリガセットのすべてを巡回することを認識する。次に、ブロック625において、コントローラ101はSPM157に対し、どのマスタプロセッサ110がスリープ状態からアウェイクしたかを識別するウェイクアップ確認応答を送ることができる。次に、ブロック630において、マッチングウェイクアップトリガセット314を有する各プロセッサ110は、スリープ状態から解放され、SPM157によって電力を供給されてアクティブ状態に戻される。そして、方法600は終了する。図7~10は、本明細書では次のアクティブリソース状態セットまたは次のアクティブセットと呼ばれる別の特徴を示している。次のアクティブセットの一例は、次のアウェイクセットである。次のアウェイクセットまたは他の次のアクティブセットは、図6およびウェイクアップイベントに伴うコントローラ101による切替え後のリソースセット304に関して上記で説明したのと同じ方法で使用され得る。図7は、コントローラ101に記憶された情報を表すという点で、図3と同様である。例示的な実施形態では、コントローラ101は、本明細書では便宜上Aメモリバッファ702、Bメモリバッファ704およびCメモリバッファ706と呼ばれる3つのメモリバッファを含むことができる。図8は、プロセッサをスリープ状態に置くための方法800を示しているという点で、図5と同様の論理フローチャートである。ブロック805が、方法800の最初のステップであり、図5に関して上述したブロック505に類似している。ブロック805は、プロセッサ110がアクティブまたはアウェイクリソース状態セットおよびスリープリソース状態セットだけでなく、次のアウェイクリソース状態セットも更新し得ることを示している。図8に示すように、プロセッサは、アクティブセットをコントローラ101のAバッファ702に記憶させ、スリープセットをコントローラ101のBバッファ704に記憶させ、次のアウェイクセットをコントローラ101のCバッファ706に記憶させることができる。ブロック805の他の態様は、ブロック505に関して上述したのと同じであるので、ここでは説明しない。ブロック810、815、820、825、830、835および840は、それぞれ図5のブロック510、515、520、525、530、535および540と同じであるので、ここでは説明しない。プロセッサは、シャットダウンを始めるとき、Aバッファ702に記憶されているアウェイクセットに対応するアウェイクアプリケーション状態にあることに留意されたい。次いでプロセッサは、図5に関して上述したのと同様に、Bバッファ704に記憶されているスリープセットに対応するスリープアプリケーション状態に入る。プロセッサは、Cバッファ706に記憶されている次のアウェイクセットに対応する次のアウェイクアプリケーション状態においてスリープアプリケーション状態からアウェイクする。Cバッファ706に次のアウェイクセット更新を事前記憶し、それらをできるだけ早く適用することによって、コントローラ101はウェイクアップイベントに伴い、かかる次のアウェイクセットによって指定されたリソースを直ちに構成し始めることができ、それによってリソース待ち時間を最小化することができる。図9は、別の例示的な実施形態に関係し、ここでは、コントローラ101は上述のリソース状態セットの3つすべてを同時に記憶するのに十分なメモリを有していない。この実施形態では、コントローラ101はAバッファ902およびBバッファ904のみを有し、Cバッファのために利用可能なメモリ空間がない。そのような場合、Aバッファ902は、異なる時間にアウェイクセットおよび次のアウェイクセットを記憶するように再利用される。図10は、プロセッサをスリープ状態に置くための方法1000を示しているという点で、図5および図9と同様の論理フローチャートである。ブロック1005が、方法800の最初のステップであり、図8に関して上述したブロック805に類似しているが、Cバッファに次のアウェイクセットを記憶するステップを含まない。実際にはプロセッサは、アクティブセットをコントローラ101のAバッファ902に記憶させ、スリープセットをコントローラ101のBバッファ904に記憶させることができるが、プロセッサは、次のアウェイクセットを記憶するためにAバッファを再利用する前に、スリープアプリケーション状態に移行するステップで復帰不能点に達するまで待つ。ブロック1005の他の態様は、ブロック505に関して上述したのと同じであるので、ここでは説明しない。ブロック1008において、プロセッサは、次のアウェイクセットの擬更新または仮想更新と呼ばれ得るステップを実行する。上述のブロック1005において、プロセッサは、コントローラ101のAバッファ902およびBバッファ904にリソース状態セットを書き込むことによって、リソース状態セットの実際の更新を実行し得ることに留意されたい。コントローラ101は、バッファコンテンツが更新されていることを通知する割込みをプロセッサから受信するので、更新は実際のものであり、コントローラ101は、更新に伴うアクションまたは更新の適用を行うことになる。コントローラ101は、使用できるように更新リソース状態セット情報を準備するのに必要であり得る様々なタスクを実行することによって、更新を適用する。バッファBにおけるスリープセットが更新された場合、コントローラ101は、リソース状態セットの切替えを必要とするシャットダウンイベントまたは同様のイベントが後に生じた場合に使用できるように更新スリープセット情報を準備することができる。Aバッファ902におけるアクティブセットが更新された場合、コントローラ101はリソースを相応に調整させることができる。プロセッサがブロック1008で実行する擬更新は、コントローラ101に割込みを送ることなしに、Aバッファ902に次のアウェイクセットのための更新を記憶するステップを含む。コントローラ101は割込みを受信していないので、Aバッファ902で生じた更新をまだ適用しない。この擬更新は、プロセッサ110がSPM157に対し、コントローラ101にシャットダウンを知らせるように要求する復帰不能点の後に生じ、Aバッファ902におけるその時点のアクティブリソースセット状態情報に対するさらなる更新を行わないことが保証される。ブロック1010、1015、1020、および1025は、それぞれ図5のブロック510、515、520、および525に関して上述したのと同じであるので、ここでは説明しない。次いで、ブロック1027において、コントローラ101は、更新に関してAバッファ902をチェックすることによって、コントローラ101とプロセッサとの間で生じるハンドシェイクに応答し、図6のウェイクアップ方法で使用される更新を記憶する。したがって、Aバッファ902に次のアウェイクセットを事前記憶することによって、コントローラ101はウェイクアップイベントに伴い、かかる次のアウェイクセットによって指定されたリソースを直ちに構成し始めることができ、それによってリソース待ち時間を最小化することができる。ブロック1030、1035、および1040は、それぞれ図5のブロック530、535、および540と同じであるので、ここでは説明しない。次いでプロセッサは相応に、図5に関して上述したのと同様に、Bバッファ904に記憶されているスリープセットに対応するスリープアプリケーション状態に入る。プロセッサは、Bバッファ904に記憶されている次のアウェイクセットに対応する次のアウェイクアプリケーション状態においてスリープアプリケーション状態からアウェイクする。次のアウェイクセットを事前記憶し、それをできるだけ早く適用することによって、コントローラ101はウェイクアップイベントに伴い、かかる次のアウェイクセットによって指定されたリソースを直ちに構成し始めることができ、それによってリソース待ち時間を最小化することができる。図11~図23は、上記のリソースセット移行をスケジュールすることに関係する別の特徴を示している。当業者は、多くの場合にプロセッサアプリケーションプログラム状態の上記変更が比較的予測可能な周期で生じ得ることを理解している。たとえば、PCD100において、ビデオプレーヤアプリケーションプログラムを実行しているプロセッサが、プロセッサが周期的にビデオデータのフレームを復号し得る状態において、あるいはかかる状態に移行中にウェイクアップすることが必要であり得る。同様に、PCD100のセルラー電話機能を制御しているプロセッサが、たとえば、プロセッサが周期的にRF通信信号を検査し得る状態において、あるいはかかる状態に移行中にウェイクアップすることが必要であり得る。アプリケーションプログラム状態の周期的変更が生じる時間は予測され得るので、またリソースが次のアプリケーションプログラム状態に対応する状態への移行を完了させるのに必要な時間量は実質的に固定されているか、一定であるので、リソース状態セットを切り替えるプロセスを始めるのに必要な時間は予測され得る。たとえば、プロセッサは時間tdeadlineに例示的なリソース状態セットによって示される状態におけるリソースのセットを有する必要があると予測され得る。この例示的なリソース状態セットRは、バスクロックリソースをたとえば100MHzに変更し、電源リソースをたとえば3Vに変更することを指定することがある。バスクロックリソースおよび電源リソースがこれらの移行を完了させたことをコントローラ101が確認するのに要する時間量が判断され得る。したがって、リソースが時間tdeadlineまでにリソース状態セットRによって示される状態にあるようにするために、この例ではコントローラ101は、tdeadlineの前の時間量が少なくとも作業時間に等しくなる時間までに、バスクロックおよび電源リソースを移行させるプロセスを開始する必要がある。PCD100において、2つ以上のプロセッサは互いにかなり接近した時間にリソース状態セット移行を要求することがあり、それによりコントローラ101は1つのプロセッサのリソースを移行させる作業を行う一方で、別のプロセッサのリソースを移行させる作業を同時に行う必要がある。同様に、コントローラ101がリソースを移行させる作業を行っているか、リソースを移行させる作業を行う予定である間に、SPM157のような別の要素は、リソース状態セット移行を要求し得る。例示的な実施形態では、コントローラ101はこれらのタスクを同時に実行することができないので、そのような競合状態は望ましくない。図11は、上記の競合状態の一例を示すタイムラインである。コントローラ101が下記のスケジューリング方法を始め、競合状態を検出するおおよその時間はtnowと標示される。図11に示す例では、コントローラ101は、リソースが時間tdeadline0に、第1のプロセッサによって要求される状態にあるために、コントローラ101が時間tstart0に、要求された状態にこれらのリソースを移行させるプロセスまたは作業を開始する必要があると判断する。同様に、コントローラ101は、リソースが時間tdeadline1に、第2のプロセッサによって要求される状態にあるために、コントローラ101が時間tstart1に、要求された状態にこれらのリソースを移行させるプロセスまたは作業を開始する必要があると判断する。作業0と作業1との間の重複が競合状態を表すことが留意され得る。図12は、図11に示す競合状態を緩和するための方法をタイムライン形式で示している。競合を緩和するために、コントローラは作業0を、作業1を始める前に完了させるようにスケジュールし得る。したがってコントローラ101は、tstart1の前に作業0を完了させるために、これらのリソースを要求された状態に移行させるステップを開始する修正時間tstart0を、以下の式で計算する。tstart0tdeadline0上記の計算のtstart0はtnowと対比されていることが留意され得る。図13は、プロセッサ110をスリープリソース状態セットに対応するスリープアプリケーション状態からアクティブリソース状態セットに対応するアクティブアプリケーション状態に移行させるための方法1300を示す論理フローチャートである。方法1300が、コントローラ101がリソース状態の変更または移行のために実行する処理または作業をスケジュールするステップを含むことを除いて、方法1300は、図6の上記の方法600と同様である。ブロック1305、1310、および1315は、それぞれ図6のブロック605、610、および615と同じであるので、ここでは説明しない。ブロック1318において、コントローラ101は、コントローラ101の判断により周期的にアプリケーション状態を変更する1つまたは複数のプロセッサのリソース状態セット移行をスケジュールする。上述のように、アプリケーション状態の予測される変更は、次のアプリケーション状態に対応するリソースセットのリソースが完全に移行する関連最終期限を有する。このスケジュールするステップは、リソース状態セット移行が完了するのに要する時間量、ひいてはコントローラ101が最終期限までに移行を完了させるために移行プロセスまたは作業を開始する必要がある時間を計算するステップを含むことができる。このスケジュールするステップはまた、上記で説明した方法で、または代替方法を使用してスケジューリング競合を緩和するステップを含むことができる。ブロック1320、1325および1330は、それぞれブロック620、625および630と同じであるので、ここでは説明しない。図14は、リソース状態セット移行をスケジュールする図13のブロック1318に含まれ得る方法1400を示す論理フローチャートである。ブロック1405は、コントローラ101が次の式を評価し得ることを示している。tdeadlinex作業xyである。式が偽であると評価した場合、2つの要求間に競合状態がなく、本方法は終了する。式が真であると評価した場合、図11に関して上述したタイプの競合状態がある。競合状態が存在すると判断された場合、コントローラ101は競合を緩和するために修正開始時間を次の式で計算することができる。tstartxtdeadlinexコントローラ101は、当初スケジュールされたリソース状態セット移行開始時間の代わりに、修正開始時間を使用することができる。スケジューリング競合を緩和するための方法はまた、スケジュールされていないリソース状態セット移行要求を考慮することができる。上記のように、スケジュールされたリソース状態セット移行要求は、周期的に生じるか、あるいは予測可能な要求を含む。スケジュールされていないリソース状態セット移行要求は、ユーザがタッチスクリーン132を使用して、PCD100に1つまたは複数のプロセッサをウェイクアップさせるアクションを実行するなど、予測不可能なイベントの結果として生じ得る。スケジュールされていない要求は、リソース状態セット移行が完了しなければならない関連最終期限を有さない。実際にはそれは、リソース状態セット移行が特定の時間に開始された場合に完了する時間を指すことに関係するだけである。図15は、コントローラ101がスケジュールされていないリソース状態セット移行要求に対する処理、すなわち作業を、要求がtnonscheduled1で生じるとすぐに始め、リソース状態セット移行がtdone1に完了するまで要求に対する作業を続けた場合に、競合状態が生じ得ることを示すタイムラインである。tstart0に始まりtdeadline0に終わるスケジュールされた要求の処理が、スケジュールされていない要求の処理と重複することに留意されたい。図16は、図15の競合状態を緩和するための簡単な例示的な方法を示すタイムラインである。競合状態を緩和するために、コントローラ101は、最初に、スケジュールされた要求に関連するリソースを移行させ、次いで、スケジュールされていない要求に関連するリソースを移行させることができる。図17は、図15の競合状態を緩和するための第2の簡単な例示的な方法を示すタイムラインである。競合状態を緩和するために、コントローラ101は、最初に、スケジュールされた要求に関連するリソースを移行させ、次いで、スケジュールされていない要求に関連するリソースを移行させることができる。ただし、図16に示す方法とは異なり、作業0の開始tstart0をtstart0へと早めて、作業1が早期に完了できるようにすることで、スケジュールされていない作業の遅延を回避する。図18は、図15の競合状態を緩和するための別の例示的な方法を示すタイムラインである。競合状態を緩和するために、コントローラ101は最初に、修正開始時間を次の式で計算することができる。tstart1tnowコントローラ101は修正開始時間tstart1に、スケジュールされていない要求に関連するリソースを移行させる作業のサブセットまたは部分を始めることができる。次いでtstart0において、コントローラ101は、スケジュールされていない要求に関連するリソースを移行させる作業を停止し、代わりに、スケジュールされた要求に関連するリソースの移行に切り替える。コントローラ101がtdeadline0に、スケジュールされた要求に関連するリソースの移行を完了させた後、コントローラ101は、スケジュールされていない要求に関連するリソースを移行させる作業に戻ることができる。図19は、リソース状態セット変更要求に関連するリソースの移行に関わる作業または処理が、多くの場合、サブセットまたは部分作業0~作業Nに分割され得ることを示している。リソース状態セット変更に関連するリソースの移行に関わる作業または処理は、多くの個別のタスクを伴い得る。したがって、コントローラ101は容易に、そのような個別のタスク間で別のリソース状態セットに移行するプロセスを一時的に停止させることができる。たとえば、図18のtstart1とtstart0との間で生じる処理または作業の部分は、1つまたは複数のそのような個別のタスクを含むことができる。図20は、作業のサブセットまたは部分が予定よりも早く完了することがあり、結果的に、作業が最終期限tdeadlineよりも早くtdoneに終了することがあることを示すタイムラインである。そのため、最終期限を守るために必要な時間よりも早く電力を消費する作業にリソースが関わった結果、電力が浪費され得る。図21は、図20の浪費された電力状態を緩和するための例示的な方法を示している。状態を緩和するために、早く完了した作業のサブセットまたは部分の後に続く作業のサブセットまたは部分を延期または先延ばしすることができる。作業N1は、作業Nの後の作業でリソースを変更することによる電力の影響を回避するために、作業Nの完了予定時間まで延期され得る。図22は、個別のタスクのコンセプトをより十分に示しており、たとえば、部分である作業21がtstart1とtstart0との間に実行され得ることを示している。リソース状態セットのリソースの移行に関わる個別のタスクのいくつかが他のタスクに依存しないので、そのようなタスクが任意の適切な順序で実行され得ることに留意されたい。したがって、たとえば、作業は図19において連続的なタスクに関わるとして示され得るが、作業01の前に作業21を実行するように、タスクを非連続的に実行しても悪影響がない場合もある。個別のタスクまたは部分の長さが互いに等しくないことがあることにも留意されたい。したがって、作業21のような個別のタスクまたは部分のうちの1つが、図22に示す例のtstart1とtstart0との間の時間間隔に、当該リソース状態セット移行の他の部分よりも上手く適合する場合、コントローラ101は、そのような順序で部分を実行することによって、方法を最適化することができる。一般に、できるだけ早くリソース状態セット移行に対する可能な最も多くの作業を実行するのが望ましいことがある。したがって、図22に示す例のtstart1とtstart0との間の時間間隔にちょうど適合するより長い部分を実行する方が、当該間隔でより短い部分を実行し、その結果、tstart0の直前に作業が実行されずに隙間が残るよりも望ましいことがある。図23は、リソース状態移行の処理をスケジュールするための方法2300を示す論理フローチャートである。方法2300は、スケジュールされたかスケジュールされていない3つ以上の要求が同時に処理される必要があり得るというコンセプトをより一般的に伝える。方法2300は状態2305に始まり、この状態は、以下の状態のいずれかが生じた結果として到達し得る。コントローラ101が、要求に応答してリソース状態を移行させることに関わる処理または作業を終えている。コントローラ101が、スケジュールされていないリソース状態セット移行要求を受信する。またはコントローラ101が、リソース状態移行を処理するスケジュールされた開始時間が迫っていると判断する。方法2300の始まりを表すブロック2310において、コントローラ101は、何らかの処理または作業がスケジュールされているか否かを判断する。上記のように、そのような処理または作業を周期的間隔で開始するようにスケジュールできるが、競合状態を緩和するためにスケジュールされた開始時間を修正することができる。コントローラ101が、そのようなスケジュールされた処理または作業を実行する時間であると判断した場合、コントローラ101は、ブロック2315によって示されるように処理または作業を実行する。コントローラ101が、何らかのスケジュールされた処理または作業を実行する時間ではないと判断した場合、コントローラ101は、ブロック2320によって示されるように保留中のスケジュールされていない要求を処理することができる。保留中のスケジュールされていない要求が2つ以上存在することがある。また、スケジュールされていない要求は、それらに関連する優先順位を有し得る。2つ以上のスケジュールされていない要求が保留中である場合、コントローラ101は、そのときから次のスケジュールされた作業開始時間まで、最優先の保留中のスケジュールされていない要求の部分に対する作業を行う。次の開始時間tstartnextは以下の通りである。tstartnexttnow上記の計算のtstartnextはtnowと対比されていることに留意されたい。コントローラ101がスケジュールされていない要求に関連する作業の一部分に対する処理または作業を完了させると、コントローラ101は、ブロック2325によって示されるように、処理または作業がさらなる部分を含むか否かを判断する。さらなる部分が存在する場合、コントローラ101は、ブロック2320に関して上述したのと同様に次の部分に対する作業を行う。上記の最優先という用語は、一部の実施形態に含まれ得る優先順位付け方式を指す。たとえば、ユーザがPCD100をオフにすること、すなわち、タッチスクリーン132を通じて低電力状態を開始することから生じるスケジュールされていない要求には、他のスケジュールされていない要求よりも低い優先順位が割り当てられ得る。本発明が説明通りに機能するように、本明細書で説明したプロセスまたはプロセスの流れの特定のステップが他のステップよりも前に行われるのは当然である。しかしながら、そのようなステップの順序または順番によって本発明の機能が変わることがない場合、本発明は説明したステップの順序に限定されない。つまり、開示されたシステムおよび方法から逸脱することなく、一部のステップを他のステップの前に実行しても、後に実行してもよく、あるいは各ステップを並行して実行してもよいことを認識されたい。場合によっては、当業者によって理解されるように方法から逸脱することなく、特定のステップを省略してよく、実行しなくてもよい。さらに、その後、次いで、次になどの語は、ステップの順序を限定することを意図していない。これらの語は、単に例示的な方法の説明を通じて読者を導くために使用されている。上記の開示に鑑みて、プログラミングの当業者は、たとえば本明細書のフローチャートおよび関連する説明に基づいて、コンピュータコードを書くか、または適切なハードウェアおよびもしくは回路を特定し、開示された発明を容易に実施することができる。したがって、特定の1組のプログラムコード命令または詳細なハードウェアデバイスの開示が、本発明をどのように製作し使用すべきかについて適切に理解するうえで必要であるとはみなされない。コンピュータによって実施される特許請求されるプロセスの発明性のある機能が、上の説明において、かつ、様々なプロセスの流れを示し得る各図面に関連して、より詳細に説明される。1つまたは複数の例示的な態様では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装することができる。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶され得る。コンピュータ可読媒体は、コンピュータによってアクセスされ得る任意の利用可能な非一時的媒体を含み得る。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CDROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形式で所望のプログラムコードを搬送もしくは記憶するために使用され得るとともに、コンピュータによってアクセスされ得る任意の他の媒体を含み得る。本明細書で使用する場合、ディスクおよびディスクは、コンパクトディスク、レーザディスク、光ディスク、デジタル多用途ディスク、フレキシブルディスク、およびブルーレイディスクを含み、ディスクは、通常、磁気的にデータを再生し、ディスクは、レーザで光学的にデータを再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。選択された態様について詳細に図示し説明したが、以下の特許請求の範囲によって定義されるような本発明の趣旨および範囲から逸脱することなく、各態様において様々な置換および改変を実施できることが理解されよう。