中央処理装置内のデータをサンプリングする方法であって、CPU活動を監視するステップと、前記CPUがアイドル状態に入っているか否かを判断するステップと、前記CPUがアイドル状態に入っている場合に、動的クロックおよび電圧スイッチングアルゴリズムを実行するステップとを含む方法。前記CPUがアイドル状態から抜け出ているか否かを判断するステップをさらに含む、請求項1に記載の方法。前記CPUがアイドル状態から抜け出ている場合に、前記DCVSアルゴリズムの実行を中止するステップをさらに含む、請求項2に記載の方法。前記CPUがアイドル状態から抜け出ていない場合に、前記DCVSアルゴリズムの実行を続けるステップをさらに含む、請求項2に記載の方法。前記CPUがアイドル状態に入っている場合に、現在時間を書き留めるステップと、前回のビジーサイクルの長さを判断するステップと、前記前回のビジーサイクルの前記長さを記録するステップとをさらに含む、請求項1に記載の方法。前記CPUがアイドル状態から抜け出ている場合に、現在時間を書き留めるステップと、前回のアイドル期間の長さを判断するステップと、前記前回のアイドルサイクルの前記長さを記録するステップとをさらに含む、請求項2に記載の方法。前記CPUがアイドル状態に入っていない場合に、タイマーが始動しているか否かを判断するステップと、前記タイマーが始動している場合に、前記CPUが通常モードで動作しているか、それともサービス品質モードで動作しているかを判断するステップとをさらに含む、請求項1に記載の方法。前記CPUがサービス品質モードで動作しているときに、CPU周波数を最大値に引き上げるステップとタイマーを解除するステップとをさらに含む、請求項7に記載の方法。前記CPUが通常モードで動作しているときに、CPU周波数を1増分ステップ引き上げるステップをさらに含む、請求項7に記載の方法。前記CPU周波数が最大値に等しいか否かを判断するステップと、前記CPU周波数が前記最大値に等しい場合に、タイマーを解除するステップとをさらに含む、請求項9に記載の方法。CPU活動を監視するための手段と、前記CPUがアイドル状態に入っているか否かを判断するための手段と、前記CPUがアイドル状態に入っている場合に、動的クロックおよび電圧スイッチングアルゴリズムを実行するための手段とを含むワイヤレスデバイス。前記CPUがアイドル状態から抜け出ているか否かを判断するための手段をさらに含む、請求項11に記載のワイヤレスデバイス。前記CPUがアイドル状態から抜け出ている場合に、前記DCVSアルゴリズムの実行を中止するための手段をさらに含む、請求項12に記載のワイヤレスデバイス。前記CPUがアイドル状態から抜け出ていない場合に、前記DCVSアルゴリズムの実行を続けるための手段をさらに含む、請求項12に記載のワイヤレスデバイス。前記CPUがアイドル状態に入っている場合に、現在時間を書き留めるための手段と、前回のビジーサイクルの長さを判断するための手段と、前記前回のビジーサイクルの前記長さを記録するための手段とをさらに含む、請求項11に記載のワイヤレスデバイス。前記CPUがアイドル状態から抜け出ている場合に、現在時間を書き留めるための手段と、前回のアイドル期間の長さを判断するための手段と、前記前回のアイドルサイクルの前記長さを記録するための手段とをさらに含む、請求項12に記載のワイヤレスデバイス。前記CPUがアイドル状態に入っていない場合に、タイマーが始動しているか否かを判断するための手段と、前記タイマーが始動している場合に、前記CPUが通常モードで動作しているか、それともサービス品質モードで動作しているかを判断するための手段とをさらに含む、請求項11に記載のワイヤレスデバイス。前記CPUがサービス品質モードで動作しているときに、CPU周波数を最大値に引き上げるための手段と、タイマーを解除するための手段とをさらに含む、請求項17に記載のワイヤレスデバイス前記CPUが通常モードで動作しているときに、CPU周波数を1増分ステップ引き上げるための手段をさらに含む、請求項17に記載のワイヤレスデバイス。前記CPU周波数が最大値に等しいか否かを判断するための手段と、前記CPU周波数が前記最大値に等しい場合に、タイマーを解除するための手段とをさらに含む、請求項19に記載のワイヤレスデバイス。プロセッサを含み、前記プロセッサが、CPU活動を監視し、前記CPUがアイドル状態に入っているか否かを判断し、前記CPUがアイドル状態に入っている場合に、動的クロックおよび電圧スイッチングアルゴリズムを実行するように動作可能な、ワイヤレスデバイス。前記プロセッサが、前記CPUがアイドル状態から抜け出ているか否かを判断するようにさらに動作可能な、請求項21に記載のワイヤレスデバイス。前記プロセッサが、前記CPUがアイドル状態から抜け出ている場合に、前記DCVSアルゴリズムの実行を中止するようにさらに動作可能な、請求項22に記載のワイヤレスデバイス。前記プロセッサが、前記CPUがアイドル状態から抜け出ていない場合に、前記DCVSアルゴリズムの実行を続けるようにさらに動作可能な、請求項22に記載のワイヤレスデバイス。前記プロセッサが、前記CPUがアイドル状態に入っている場合に、現在時間を書き留め、前回のビジーサイクルの長さを判断し、前記前回のビジーサイクルの前記長さを記録するようにさらに動作可能な、請求項21に記載のワイヤレスデバイス。前記プロセッサが、前記CPUがアイドル状態から抜け出ている場合に、現在時間を書き留め、前回のアイドル期間の長さを判断し、前記前回のアイドルサイクルの前記長さを記録するようにさらに動作可能な、請求項22に記載のワイヤレスデバイス。前記プロセッサが、前記CPUがアイドル状態に入っていない場合に、タイマーが始動しているか否かを判断し、前記タイマーが始動している場合に、前記CPUが通常モードで動作しているか、それともサービス品質モードで動作しているかを判断するようにさらに動作可能な、請求項21に記載のワイヤレスデバイス。前記プロセッサが、前記CPUがサービス品質モードで動作しているときに、CPU周波数を最大値に引き上げ、タイマーを解除するようにさらに動作可能な、請求項27に記載のワイヤレスデバイス。前記プロセッサが、前記CPUが通常モードで動作しているときに、CPU周波数を1増分ステップ引き上げるようにさらに動作可能な、請求項27に記載のワイヤレスデバイス。前記プロセッサが、前記CPU周波数が最大値に等しいか否かを判断し、前記CPU周波数が前記最大値に等しい場合に、タイマーを解除するようにさらに動作可能な、請求項29に記載のワイヤレスデバイス。プロセッサにより実行可能な命令を記録したプロセッサ読み取り可能な記録媒体であって、CPU活動を監視するための少なくとも1つの命令と、前記CPUがアイドル状態に入っているか否かを判断するための少なくとも1つの命令と、前記CPUがアイドル状態に入っている場合に、動的クロックおよび電圧スイッチングアルゴリズムを実行するための少なくとも1つの命令とを記録する記録媒体。前記CPUがアイドル状態から抜け出ているか否かを判断するための少なくとも1つの命令をさらに記録する、請求項31に記載の記録媒体。前記CPUがアイドル状態から抜け出ている場合に、前記DCVSアルゴリズムの実行を中止するための少なくとも1つの命令をさらに記録する、請求項32に記載の記録媒体。前記CPUがアイドル状態から抜け出ていない場合に、前記DCVSアルゴリズムの実行を続けるための少なくとも1つの命令をさらに記録する、請求項32に記載の記録媒体。前記CPUがアイドル状態に入っている場合に、現在時間を書き留めるための少なくとも1つの命令と、前回のビジーサイクルの長さを判断するための少なくとも1つの命令と、前記前回のビジーサイクルの前記長さを記録するための少なくとも1つの命令とをさらに記録する、請求項31に記載の記録媒体。前記CPUがアイドル状態から抜け出ている場合に、現在時間を書き留めるための少なくとも1つの命令と、前回のアイドル期間の長さを判断するための少なくとも1つの命令と、前記前回のアイドルサイクルの前記長さを記録するための少なくとも1つの命令とをさらに記録する、請求項32に記載の記録媒体。前記CPUがアイドル状態に入っていない場合に、タイマーが始動しているか否かを判断するための少なくとも1つの命令と、前記タイマーが始動している場合に、前記CPUが通常モードで動作しているか、それともサービス品質モードで動作しているかを判断するための少なくとも1つの命令とをさらに記録する、請求項31に記載の記録媒体。前記CPUがサービス品質モードで動作しているときに、CPU周波数を最大値に引き上げるための少なくとも1つの命令と、タイマーを解除するための少なくとも1つの命令とをさらに記録する、請求項37に記載の記録媒体。前記CPUが通常モードで動作しているときに、CPU周波数を1増分ステップ引き上げるための少なくとも1つの命令をさらに記録する、請求項37に記載の記録媒体。前記CPU周波数が最大値に等しいか否かを判断するための少なくとも1つの命令と、前記CPU周波数が前記最大値に等しい場合に、タイマーを解除するための少なくとも1つの命令とをさらに記録する、請求項39に記載の記録媒体。したがって、中央処理装置内のデータをサンプリングする改善された方法が必要とされている。図では、別段に規定されていない限り、様々な視点を通じて同じ参照番号は同じ部分を指す。例示的なという語は、一例、実例または例としてを意味するために本明細書で使用される。例示的なものとして本明細書で説明する態様は、必ずしも他の態様よりも好ましい、または有利であると解釈されるわけではない。本明細書では、アプリケーションという用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイルおよびパッチなど、実行可能コンテンツを有するファイルを含むこともある。加えて、本明細書で言及するアプリケーションは、オープンされる必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルなど、本質的に実行可能ではないファイルを含むこともある。コンテンツという用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、パッチなど、実行可能コンテンツを有するファイルを含むこともある。加えて、本明細書で言及するコンテンツは、オープンされる必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルなど、本質的に実行可能ではないファイルを含むこともある。本明細書で使用される構成要素、データベース、モジュール、システムなどの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、実行中のソフトウェアを問わず、コンピュータ関連のエンティティを指すことが意図されている。たとえば構成要素は、プロセッサ上で作動しているプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラムおよびまたはコンピュータであってよいが、これらであることに限定されない。例を挙げると、コンピューティングデバイス上で作動しているアプリケーションとコンピューティングデバイスの両方が構成要素であり得る。1つまたは複数の構成要素は、プロセスおよびまたは実行スレッドの中に存在してよく、1つの構成要素を1つのコンピュータに局在化すること、およびまたは2つ以上のコンピュータに分散することが可能である。加えて、これらの構成要素は、様々なデータ構造を記憶している様々なコンピュータ可読媒体から実行することができる。構成要素は、1つまたは複数のデータパケットを有する信号に従うなどしてローカルプロセスおよびまたはリモートプロセスの方法により通信することができる。最初に図1および図2を参照すると、例示的なポータブルコンピューティングデバイスが示されており、全体的に指定されている。図示のように、PCD100はハウジング102を含むことができる。ハウジング102は、上位ハウジング部分104および下位ハウジング部分106を含むことができる。図1は、上位ハウジング部分104がディスプレイ108を含み得ることを示している。特定の態様では、ディスプレイ108はタッチスクリーンディスプレイであり得る。上位ハウジング部分104は、トラックボール入力デバイス110も含むことができる。さらに、図1に示すように、上位ハウジング部分104は電源投入ボタン112および電源切断ボタン114を含むことができる。図1に示すように、PCD100の上位ハウジング部分104は、複数の表示灯116およびスピーカー118を含むことができる。各表示灯116は、発光ダイオードであってよい。特定の態様では、図2に示すように、上位ハウジング部分104は下位ハウジング部分106との関係で移動可能である。具体的には、上位ハウジング部分104は下位ハウジング部分106との関係でスライド可能であってよい。図2に示すように、下位ハウジング部分106はマルチボタン型キーボード120を含むことができる。特定の態様では、マルチボタン型キーボード120は標準型QWERTYキーボードであり得る。マルチボタン型キーボード120は、上位ハウジング部分104が下位ハウジング部分106との関係で移動したときに現れ得る。図2は、PCD100が下位ハウジング部分106上にリセットボタン122を含み得ることをさらに示している。図3を参照すると、ポータブルコンピューティングデバイスの例示的な非限定的態様が示されており、全体的に指定されている。図示のように、PCD320はマルチコアCPU324を含むオンチップシステム322を含む。マルチコアCPU324は、第0のコア325、第1のコア326および第Nのコア327を含むことができる。図3に示すように、ディスプレイコントローラ328およびタッチスクリーンコントローラ330がマルチコアCPU324に結合される。次に、オンチップシステム322の外部にあるタッチスクリーンディスプレイ332が、ディスプレイコントローラ328およびタッチスクリーンコントローラ330に結合される。図3は、ビデオエンコーダ334、たとえば位相反転線エンコーダ、順次式カラーメモリエンコーダまたは全国テレビジョン方式委員会エンコーダがマルチコアCPU324に結合されることをさらに示している。さらに、ビデオ増幅器336がビデオエンコーダ334およびタッチスクリーンディスプレイ332に結合される。また、ビデオポート338がビデオ増幅器336に結合される。図3に示すように、ユニバーサルシリアルバスコントローラ340がマルチコアCPU324に結合される。また、USBポート342がUSBコントローラ340に結合される。メモリ344および加入者識別モジュールカード346も、マルチコアCPU324に結合され得る。さらに、図3に示すように、デジタルカメラ348がマルチコアCPU324に結合され得る。例示的な態様では、デジタルカメラ348は、電荷結合デバイスカメラまたは相補型金属酸化物半導体カメラである。図3にさらに示すように、ステレオオーディオコーデック350がマルチコアCPU324に結合され得る。さらに、オーディオ増幅器352がステレオオーディオコーデック350に結合され得る。例示的な態様では、第1のステレオスピーカー354および第2のステレオスピーカー356がオーディオ増幅器352に結合される。図3は、マイクロフォン増幅器358もステレオオーディオコーデック350に結合され得ることを示している。加えて、マイクロフォン360がマイクロフォン増幅器358に結合され得る。特定の態様では、周波数変調無線チューナー362がステレオオーディオコーデック350に結合され得る。また、FMアンテナ364がFM無線チューナー362に結合される。さらに、ステレオヘッドフォン366がステレオオーディオコーデック350に結合され得る。図3は、無線周波数トランシーバ368がマルチコアCPU324に結合され得ることをさらに示している。RFスイッチ370がRFトランシーバ368およびRFアンテナ372に結合され得る。図3に示すように、キーパッド374がマルチコアCPU324に結合され得る。また、マイクロフォンを備えたモノヘッドセット376がマルチコアCPU324に結合され得る。さらに、バイブレータデバイス378がマルチコアCPU324に結合され得る。図3は、電源380がオンチップシステム322に結合され得ることも示している。特定の態様では、電源380は電力を必要とするPCD320の様々な構成要素に電力を供給する直流電源である。さらに、特定の態様では、電源は、AC電源に接続された交流DC変換器から導出される充電式DCバッテリまたはDC電源である。図3は、PCD320がデータネットワーク、たとえばローカルエリアネットワーク、パーソナルエリアネットワーク、その他のネットワークにアクセスするために使用できるネットワークカード388も含み得ることをさらに示している。ネットワークカード388は、ブルートゥースネットワークカード、WiFiネットワークカード、パーソナルエリアネットワークカード、パーソナルエリアネットワーク超低電力技術ネットワークカード、当技術分野でよく知られているその他のネットワークカードであってよい。さらに、ネットワークカード388はチップに組み込まれ得る、すなわち、ネットワークカード388はチップ内のフルソリューションであってよく、別個のネットワークカード388ではないこともある。図3に示すように、タッチスクリーンディスプレイ332、ビデオポート338、USBポート342、カメラ348、第1のステレオスピーカー354、第2のステレオスピーカー356、マイクロフォン360、FMアンテナ364、ステレオヘッドフォン366、RFスイッチ370、RFアンテナ372、キーパッド374、モノヘッドセット376、バイブレータ378および電源380は、オンチップシステム322の外部にある。特定の態様では、本明細書で説明する方法ステップのうちの1つまたは複数は、コンピュータプログラム命令としてメモリ344に記憶できる。これらの命令は、本明細書で説明する方法を実施するためにマルチコアCPU324によって実行可能である。さらに、マルチコアCPU324、メモリ344またはそれらの組合せは、中央処理装置内のデータをサンプリングするために本明細書で説明する方法ステップのうちの1つまたは複数を実行するための手段として働くことができる。図4を参照すると、処理システムが示され、全体的に指定されている。特定の態様では、処理システム400は、図3に関して上述したPCD320に組み込まれ得る。図示のように、処理システム400はマルチコア中央処理装置402、およびマルチコアCPU402に接続されたメモリ404を含むことができる。マルチコアCPU402は、第0のコア410、第1のコア412および第Nのコア414を含むことができる。第0のコア410は、その上で実行される第0の動的クロックおよび電圧スケーリングアルゴリズム416を含むことができる。第1のコア412は、その上で実行される第1のDCVSアルゴリズム417を含むことができる。さらに、第Nのコア414は、その上で実行される第NのDCVSアルゴリズム418を含むことができる。特定の態様では、各DCVSアルゴリズム416、417、418は、それぞれのコア410、412、414上で独立して実行することができる。さらに、図示のように、メモリ404は、その上に記憶されたオペレーティングシステム420を含むことができる。オペレーティングシステム420はスケジューラ422を含むことができ、スケジューラ422は第1の実行キュー424、第2の実行キュー426、第Nの実行キュー428を含むことができる。メモリ404は、その上に記憶された第1のアプリケーション430、第2のアプリケーション432および第Nのアプリケーション434を含むことができる。特定の態様では、アプリケーション430、432、434が1つまたは複数のタスク436をオペレーティングシステム420に送って、マルチコアCPU402内のコア410、412、414で処理することができる。タスク436は、単一のタスク、スレッド、またはそれらの組合せとして処理または実行できる。さらに、スケジューラ422は、マルチコアCPU402内で実行するタスク、スレッド、またはそれらの組合せをスケジュールすることができる。加えて、スケジューラ422は、実行キュー424、426、428にタスク、スレッド、またはそれらの組合せを配置することができる。コア410、412、414は、タスク、スレッド、またはそれらの組合せを、たとえばオペレーティングシステム420によってコア410、412、414でそれらのタスクおよびスレッドを処理または実行するよう命令された場合、実行キュー424、426、428から取り出すことができる。図4は、メモリ404がその上に記憶されたコントローラ440を含み得ることも示している。コントローラ440は、オペレーティングシステム420およびマルチコアCPU402に接続可能である。具体的には、コントローラ440は、オペレーティングシステム420内のスケジューラ422に接続可能である。本明細書で説明するように、コントローラ440は、コア410、412、414の作業負荷を監視することができ、さらにコントローラ440は、後述のようにコア410、412、414からデータをサンプリングすることができる。特定の態様では、コントローラ440はソフトウェアプログラムであり得る。しかし、代替態様では、コントローラ440はメモリ404の外部にあるハードウェアコントローラであり得る。いずれの場合も、コントローラ440、メモリ404、コア410、412、414またはそれらの組合せは、コア410、412、414からデータをサンプリングするために本明細書で説明する方法ステップのうちの1つまたは複数を実行するための手段として働くことができる。図5を参照すると、動的クロックおよび電圧スケーリングアルゴリズムを実行する方法が示され、全体的に指定されている。方法500は、ブロック502で始まり、これはデバイスの電源が投入されているときに以下のステップを実施できるDOループを伴う。ブロック504では、コントローラはCPU活動を監視することができる。この活動は、単一コアCPU、マルチコアCPU、複数の単一コアCPU、複数のマルチコアCPUまたはそれらの組合せの活動であってよい。さらに、コントローラはソフトウェアコントローラ、ハードウェアコントローラまたはそれらの組合せであってよい。判断506に移動して、コントローラは、CPUまたはCPUのコアがアイドル状態に入っているか否か判断することができる。アイドル状態に入っている場合、本方法はブロック508に進み、コントローラはDCVSアルゴリズムを実行することができる。その後、判断510では、コントローラは、CPUまたはCPUのコアがアイドル状態から抜け出ているか否か判断することができる。アイドル状態から抜け出ていない場合、方法500はブロック511に進むことができ、CPUはアイドル状態にとどまることができる。次いで、本方法は判断510に戻ることができ、方法500は本明細書で説明するように継続することができる。そうではなく、CPUまたはCPUのコアがアイドル状態から抜け出ている場合、方法500はブロック512に進むことができ、コントローラはDCVSアルゴリズムの実行を中止することができる。その後、コントローラはデバイスの電源が切断されているか否かを判断することができる。デバイスの電源が切断されている場合、方法500は終了することができる。反対に、デバイスの電源投入が続いている場合、方法500はブロック504に戻ることができ、方法500はここで説明するように継続することができる。判断506に戻ると、CPUまたはCPUのコアがアイドル状態に入っていない場合、方法500は判断516に進むことができる。判断516では、コントローラはタイマーが始動しているか否かを判断することができる。タイマーが始動していない場合、方法500はブロック504に戻ることができ、方法500はここで説明するように継続することができる。タイマーが始動している場合、方法500はブロック518に移動することができ、コントローラはCPU周波数を1ステップ引き上げることができる。次に、判断520では、コントローラはCPU周波数が最大CPU周波数にあるか否かを判断することができる。CPU周波数が最大CPU周波数にある場合、ブロック522でタイマーを解除することができる。次いで、方法500は判断514に進むことができ、方法500はここで説明するように継続することができる。CPU周波数が最大CPU周波数にない場合、方法500は判断514に直接移動することができ、方法500はここで説明するように継続することができる。特定の態様では、前回のアイドル時間に非常に近接してアイドル状態に入っている場合には、DCVSアルゴリズムの実行を省略することができる。これは、所望のDCVS応答時間に依存することがある。図6を参照すると、動的クロックおよび電圧スケーリングアルゴリズムを実行する方法の第2の態様が示され、全体的に指定されている。方法600は、ブロック602で始まり、これはデバイスの電源が投入されているときに以下のステップを実行できるDOループを伴う。ブロック604では、コントローラは応答性期限Rを決定することができる。たとえば、応答性期限Rは90ミリ秒に設定され得る。ブロック606に移動し、コントローラはCPU活動を監視することができる。この活動は、単一コアCPU、マルチコアCPU、複数の単一コアCPU、複数のマルチコアCPUまたはそれらの組合せの活動であってよい。さらに、コントローラはソフトウェアコントローラ、ハードウェアコントローラまたはそれらの組合せであってよい。判断608に移動して、コントローラは、CPUまたはCPUのコアがアイドル状態に入っているか否か判断することができる。CPUがアイドル状態に入っていない場合、方法600は後述する図8の判断802に直接進むことができる。一方、CPUがアイドル状態に入っている場合、方法600はブロック610に進むことができ、コントローラは時間を書き留めることできる。次に、ブロック612では、コントローラは前回のビジーサイクルの長さを判断することができる。ブロック614では、コントローラは前回のサイクルの長さを記録することができる。さらに、ブロック616では、コントローラはビジーサイクル中のCPU周波数を記録することができる。その後、方法600は図7のブロック702に進むことができる。ブロック610~ブロック616で収集された情報をDCVSアルゴリズムに提供することができる。図7のブロック702では、方法600はタイマーを解除することができる。ブロック704に移動し、コントローラは動的クロックおよび電圧スケーリングアルゴリズムを実行することができる。次に、判断706では、コントローラは、CPUまたはCPUのコアがアイドル状態から抜け出ているか否か判断することができる。アイドル状態から抜け出ていない場合、方法600はブロック707に進むことができ、CPUはアイドル状態にとどまることができる。次いで、本方法は判断706に戻ることができ、ここで説明するように継続することができる。CPUまたはそのコアがアイドル状態から抜け出ている場合、方法600はブロック708に進むことができる。ブロック708では、コントローラは時間を書き留めることができる。ブロック710では、コントローラは前回のアイドル期間またはアイドルサイクルの長さを判断することができる。次に、ブロック712では、コントローラは現在時間応答性期限に等しくなるようにタイマーを設定することができる。ブロック714では、コントローラは前回のアイドル期間の長さを記録することができる。その後、方法600は図6のブロック606に戻ることができ、方法600はここで説明するように継続することができる。ブロック710~ブロック714で収集された情報をDCVSアルゴリズムに提供することができる。図6の判断608に戻ると、CPUまたはそのコアがアイドル状態に入っていない場合、方法600は図8の判断802に進むことができる。図8の判断802では、コントローラはタイマーが始動しているか否かを判断することができる。タイマーが始動していない場合、方法600は図6のブロック606に戻ることができ、方法600はここで説明するように継続することができる。一方、判断802で、タイマーが始動している場合、方法600は判断804に進むことができる。判断804では、コントローラは、コントローラが通常モードで動作しているか、それともサービス品質モードで動作しているかを判断することができる。コントローラが通常モードで動作している場合、方法600はブロック806に進むことができ、コントローラはCPU周波数を1ステップ引き上げることができる。次に、判断808では、コントローラはCPU周波数が最大CPU周波数にあるか否かを判断することができる。CPU周波数が最大CPU周波数にある場合、ブロック810でタイマーを解除することができる。次いで、方法600は図6のブロック606に戻ることができる。その後、方法600はここで説明するように継続することができる。CPU周波数が最大CPU周波数にない場合、方法600は図7のブロック712に戻ることができ、方法600はここで説明するように継続することができる。判断804に戻り、コントローラがサービス品質モードで動作している場合、方法600はブロック812に進むことができ、コントローラはCPU周波数を最大CPU周波数に引き上げることができる。次いで、方法600は図7のブロック712に戻ることができる。図9は、中央処理装置内のデータをサンプリングする方法の1つの動作態様を示すタイムラインである。この例では、応答性期限は90ミリ秒に等しくなるように設定され得る。t0から、CPUはアイドル状態に入ることができる。時間を書き留めることができる。すなわち、CPUはt1からt0まで、またはの時間にビジーであったことになる。さらに、タイマーを解除することができる。t1で、CPUはアイドル状態から抜け出るか離れることができる。時間を書き留めることができる。すなわち、CPUはt0からt1まで、またはの時間にアイドル状態であったことになる。次に、タイマーはt190ミリ秒に設定され得る。t2で、CPUは再びアイドル状態に入ることができる。時間を書き留めることができる。すなわち、CPUはt1からt2まで、またはの時間にビジーであったことになる。次いで、タイマーを解除することができる。t3で、CPUはアイドル状態から抜け出ることができる。時間を書き留めることができる。すなわち、CPUはt2からt3まで、またはの時間にアイドル状態であったことになる。次に、タイマーはt390ミリ秒に設定され得る。t390ミリ秒でタイマーは始動し、CPU周波数が引き上げられる。CPUが通常モードにある場合、CPU周波数を1増分周波数ステップ引き上げることができる。CPUがQoS状態にある場合、CPU周波数を最大CPU周波数に引き上げることができる。さらに、CPU周波数が最大CPU周波数にはない場合、タイマーを90ミリ秒、すなわち現在時間から90ミリ秒に再スケジュールすることができる。t4で、CPUは再びアイドル状態に入る。時間を書き留めることができる。すなわち、CPUはt3からt4まで、またはの時間にビジーであり、からt4までは周波数が引き上げられていたことになる。次いで、タイマーを解除することができる。特定の態様では、上記で収集されるすべてのデータポイントにおいて、DCVSアルゴリズムは、t390ミリ秒における場合を除いて、通常処理の中断なしに正確なCPUアイドル時間およびCPU使用の情報にアクセスすることができ、判断がアイドル時間において事前計算されているので、中断は最小限の作業ですむ。DCVSアルゴリズムはまた、アイドル作業分布の履歴にアクセスすることもできる。本明細書で説明する方法ステップは、必ずしも説明どおりの順序で実施する必要はないことを理解されたい。さらに、その後、次いで、次になどの語は、ステップの順序を限定することを意図していない。これらの語は、方法ステップの説明を通じて読者を案内するために使用されているにすぎない。さらに、本明細書で説明する方法はポータブルコンピューティングデバイス上で実行可能なものとして説明している。PCDはモバイル電話デバイス、携帯情報端末デバイス、スマートブックコンピューティングデバイス、ネットブックコンピューティングデバイス、ラップトップコンピューティングデバイス、デスクトップコンピューティングデバイス、またはそれらの組合せであってよい。本明細書で説明するシステムおよび方法は、サンプルレート独立であり得るサンプリング方法を提供する。また、応答性、サービス品質、またはそれらの組合せは第1級の入力パラメータであり得る。さらに、DCVSアルゴリズム処理は実際の作業を中断せず、システムが完全にロードされているときにオーバーヘッドをゼロにすることができる。加えて、クロックの変更は既存の電力縮小にピギーバックすることができる。特定の態様では、本明細書で説明する構成において、データのサンプリングは機会主義的と考えることができる。機会主義的サンプリング方法は、固定間隔でCPUロードアイドル時間をサンプリングするわけではない。代わりに、機会主義的サンプリング方法は、CPUがいつアイドル状態に入り、アイドル状態から離れたかを書き留めることによって、CPUのアイドルを直接測定する。これにより、周期的サンプリングに関連付けられた中断コンテキスト切替えオーバーヘッドが減る。そこで、DCVSアルゴリズムはシステムが休止しているアイドル時間に実行可能であり、これは、DCVSアルゴリズムが有用な作業を妨害せず、DCVSアルゴリズムのオーバーヘッドが所望のDCVS応答性から独立していることを意味する。一般に、本方法は1サンプルにつき1つの中断および2つのコンテキスト切替えを省くことができる。加えて、これによりCPUクロック周波数変更を、クロック変更が必要なことの多い現存するアイドル状態の頃にスケジュールすることができる。特定の態様では、CPUが完全利用状態になった、すなわち100になった場合、アイドル時間はなくなる。アイドル時間がない場合、サンプルを取り出してDCVSアルゴリズムを実行する機会はない。この枯渇問題を回避するために、DCVSアルゴリズム向けに最悪のビジー時間にタイムアウトコールバックが登録される。このタイムアウトが終了する前にCPUがアイドルになっていない場合、システムはクロック周波数を変更することができる。このタイムアウトは、DCVSアルゴリズムが存在する場合でもパフォーマンスの範囲を定める。クロック周波数の変更は、クロック周波数の通常の引き上げ、または必要とされ得るQoS保証を提供するためのより大きな変更を含むことができる。いずれの場合も、この完全利用状態では、アイドルデータのサンプリングまたはDCVSアルゴリズムの実行の必要性がない、すなわち、判断ロジックが事前計算されているので、オーバーヘッドは最小限に抑えられる。CPUが最大周波数に達すると、システムが最終状態となり、タイムアウトを解除することができる。そのため、本システムおよび方法は、ロード状態において上手くスケーリングすることができる。システムのロードが大きくなった場合、DCVSアルゴリズムのオーバーヘッドはゼロになる。この特性は、所望のDCVS応答性感度とは無関係であり得る。さらに、本システムおよび方法は、任意のDCVSアルゴリズムをサポートする。1つまたは複数の例示的な態様では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せで実装できる。ソフトウェアで実装した場合、これらの機能を機械可読媒体すなわちコンピュータ可読媒体などのコンピュータプログラム製品に記憶すること、またはそのようなコンピュータプログラム製品上の1つもしくは複数の命令あるいはコードとして送信することができる。コンピュータ可読媒体は、コンピュータ記憶媒体と通信媒体の両方を含み、1つの場所から別の場所へのコンピュータプログラムの転送を容易にするあらゆる媒体を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であってよい。限定ではなく、例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CDROM、または他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または命令もしくはデータ構造の形式で所望のプログラムコードを伝送もしくは記憶するために使用でき、コンピュータによってアクセスされ得るその他の媒体を含むことができる。また、あらゆる接続がコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアがウェブサイト、サーバ、または他のリモートソースから同軸ケーブル、光ファイバーケーブル、より対線、デジタル加入者回線、または赤外線、ラジオおよびマイクロ波などのワイヤレス技術を使用して送信される場合、同軸ケーブル、光ファイバーケーブル、より対線、DLS、または赤外線、ラジオおよびマイクロ波などのワイヤレス技術は、媒体の定義に含まれ得る。本明細書で使用するディスクは、コンパクトディスク、レーザディスク、光ディスク、デジタル多目的ディスク、フレキシブルディスクおよびブルーレイディスクを含み、diskは通常、磁気的にデータを再生し、discはレーザで光学的にデータを再生する。上記の組合せも、コンピュータ可読媒体の範囲内に含まれる。選択された態様について詳細に説明し、詳述してきたが、以下の請求項によって定められた本発明の趣旨および範囲から離れることなく、本明細書において様々な代替および改変を実施できることが理解されよう。