1つまたは複数の中央処理ユニットをリアルタイムで監視する方法であって、前記方法は、1つまたは複数の中央処理ユニットからのアクティブ状態データと、サービスリクエスタとサービスプロバイダとの間に配設された相互接続からのアクティブ状態データとを含む信号を前記1つまたは複数の中央処理ユニットからリアルタイムで受信するステップであって、前記サービスリクエスタと前記サービスプロバイダとがそれぞれ少なくとも1つのそれぞれの中央処理ユニットを含む、ステップと、フィルタ処理された信号を生成するために前記信号をフィルタ処理するステップと、前記1つまたは複数の中央処理ユニットと前記相互接続とへの1つまたは複数の制御入力を選択的に調整するために、前記フィルタ処理された信号を使用するステップとを含む、方法。前記状態データが、アクティブ状態、アイドル状態、またはそれらの組合せを含む、請求項1に記載の方法。選択的に調整するために前記フィルタ処理された信号を使用するステップが、周波数変更、電圧変更、またはそれらの組合せを送信するステップを含む、請求項1に記載の方法。前記フィルタ処理された信号が設定変更条件を満たすかどうかを判断するステップをさらに含む、請求項1に記載の方法。前記フィルタ処理された信号を高しきい値と比較するステップをさらに含む、請求項4に記載の方法。前記フィルタ処理された信号が前記高しきい値を超えた場合、割込み要求を生成するステップをさらに含む、請求項5に記載の方法。前記割込み要求が、周波数変更、電圧変更またはそれらの組合せを送信するコントローラに状態変更を発行するように電力マネージャに指示する、請求項6に記載の方法。前記フィルタ処理された信号を低しきい値と比較するステップをさらに含む、請求項4に記載の方法。前記フィルタ処理された信号が前記低しきい値を超えた場合、割込み要求を生成するステップをさらに含む、請求項8に記載の方法。前記割込み要求が、周波数変更、電圧変更またはそれらの組合せを送信するコントローラに状態変更を発行するように電力マネージャに指示する、請求項9に記載の方法。1つまたは複数の中央処理ユニットからのアクティブ状態データと、サービスリクエスタとサービスプロバイダとの間に配設された相互接続からのアクティブ状態データとを含む信号を前記1つまたは複数の中央処理ユニットからリアルタイムで受信するための手段であって、前記サービスリクエスタと前記サービスプロバイダとがそれぞれ少なくとも1つのそれぞれの中央処理ユニットを含む、手段と、フィルタ処理された信号を生成するために前記信号をフィルタ処理するための手段と、前記1つまたは複数の中央処理ユニットと前記相互接続とへの1つまたは複数の制御入力を選択的に調整するために、前記フィルタ処理された信号を使用するための手段とを含む、ワイヤレスデバイス。前記状態データが、アクティブ状態、アイドル状態、またはそれらの組合せを含む、請求項11に記載のワイヤレスデバイス。前記制御入力が、周波数、電圧、またはそれらの組合せを含む、請求項11に記載のワイヤレスデバイス。前記フィルタ処理された信号が設定変更条件を満たすかどうかを判断するための手段をさらに含む、請求項11に記載のワイヤレスデバイス。前記フィルタ処理された信号を高しきい値と比較するための手段をさらに含む、請求項14に記載のワイヤレスデバイス。前記フィルタ処理された信号が前記高しきい値を超えた場合、割込み要求を生成するための手段をさらに含む、請求項15に記載のワイヤレスデバイス。前記割込み要求が、周波数変更、電圧変更またはそれらの組合せを送信するコントローラに状態変更を発行するように電力マネージャに指示する、請求項16に記載のワイヤレスデバイス。前記フィルタ処理された信号を低しきい値と比較するための手段をさらに含む、請求項14に記載のワイヤレスデバイス。前記フィルタ処理された信号が前記低しきい値を超えた場合、割込み要求を生成するための手段をさらに含む、請求項15に記載のワイヤレスデバイス。前記割込み要求が、周波数変更、電圧変更またはそれらの組合せを送信するコントローラに状態変更を発行するように電力マネージャに指示する、請求項19に記載のワイヤレスデバイス。1つまたは複数の中央処理ユニットからのアクティブ状態データと、サービスリクエスタとサービスプロバイダとの間に配設された相互接続からのアクティブ状態データとを含む信号を前記1つまたは複数の中央処理ユニットからリアルタイムで受信することであって、前記サービスリクエスタと前記サービスプロバイダとがそれぞれ少なくとも1つのそれぞれの中央処理ユニットを含む、受信することと、フィルタ処理された信号を生成するために前記信号をフィルタ処理することと、前記1つまたは複数の中央処理ユニットと前記相互接続とへの1つまたは複数の制御入力を調整するコマンドを選択的に発行するように電力マネージャに指示するために、前記フィルタ処理された信号を使用することとを行うように動作可能であるモニタを含む、ワイヤレスデバイス。前記状態データが、アクティブ状態、アイドル状態、またはそれらの組合せを含む、請求項21に記載のワイヤレスデバイス。前記制御入力が、周波数、電圧、またはそれらの組合せを含む、請求項21に記載のワイヤレスデバイス。前記モニタは、前記フィルタ処理された信号が設定変更条件を満たすかどうかを判断することを行うようにさらに動作可能である、請求項21に記載のワイヤレスデバイス。前記モニタが、前記フィルタ処理された信号を高しきい値と比較することを行うようにさらに動作可能である、請求項24に記載のワイヤレスデバイス。前記モニタは、前記フィルタ処理された信号が前記高しきい値を超えた場合、割込み要求を生成することを行うようにさらに動作可能である、請求項25に記載のワイヤレスデバイス。前記割込み要求が、周波数変更、電圧変更またはそれらの組合せを送信するコントローラに状態変更を発行するように電力マネージャに指示する、請求項26に記載のワイヤレスデバイス。前記モニタが、前記フィルタ処理された信号を低しきい値と比較することを行うようにさらに動作可能である、請求項24に記載のワイヤレスデバイス。前記モニタは、前記フィルタ処理された信号が前記低しきい値を超えた場合、割込み要求を生成することを行うようにさらに動作可能である、請求項25に記載のワイヤレスデバイス。前記割込み要求が、周波数変更、電圧変更またはそれらの組合せを送信するコントローラに状態変更を発行するように電力マネージャに指示する、請求項29に記載のワイヤレスデバイス。1つまたは複数の中央処理ユニットからのアクティブ状態データと、サービスリクエスタとサービスプロバイダとの間に配設された相互接続からのアクティブ状態データとを含む信号を前記1つまたは複数の中央処理ユニットからリアルタイムで受信するための少なくとも1つの命令であって、前記サービスリクエスタと前記サービスプロバイダとがそれぞれ少なくとも1つのそれぞれの中央処理ユニットを含む、命令と、前記信号をフィルタ処理するための少なくとも1つの命令と、前記1つまたは複数の中央処理ユニットと前記相互接続とへの1つまたは複数の制御入力を選択的に調整するために、前記フィルタ処理された信号を使用するための少なくとも1つの命令とを含む、メモリ媒体。前記状態データが、アクティブ状態、アイドル状態、またはそれらの組合せを含む、請求項31に記載のメモリ媒体。前記制御入力が、周波数、電圧、またはそれらの組合せを含む、請求項31に記載のメモリ媒体。前記フィルタ処理された信号が設定変更条件を満たすかどうかを判断するための少なくとも1つの命令をさらに含む、請求項31に記載のメモリ媒体。前記フィルタ処理された信号を高しきい値と比較するための少なくとも1つの命令をさらに含む、請求項34に記載のメモリ媒体。前記フィルタ処理された信号が前記高しきい値を超えた場合、割込み要求を生成するための少なくとも1つの命令をさらに含む、請求項35に記載のメモリ媒体。前記割込み要求が、周波数変更、電圧変更またはそれらの組合せを送信するコントローラに状態変更を発行するように電力マネージャに指示する、請求項36に記載のメモリ媒体。前記フィルタ処理された信号を低しきい値と比較するための少なくとも1つの命令をさらに含む、請求項34に記載のメモリ媒体。前記フィルタ処理された信号が前記低しきい値を超えた場合、割込み要求を生成するための少なくとも1つの命令をさらに含む、請求項35に記載のメモリ媒体。前記割込み要求が、周波数変更、電圧変更またはそれらの組合せを送信するコントローラに状態変更を発行するように電力マネージャに指示する、請求項39に記載のメモリ媒体。したがって、必要なものは、CPUをリアルタイムで監視する改善された方法である。特許請求の範囲に記載の手段によって上記課題を解決する。図において、別段に規定されていない限り、様々な図を通して、同様の参照番号は同様の部分を指す。例示的という単語は、本明細書では、例、事例、または例示の働きをすることを意味するために使用する。例示的として本明細書で説明するいかなる態様も、必ずしも他の態様よりも好適または有利なものと解釈すべきではない。本明細書では、アプリケーションという用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなど、実行可能なコンテンツを有するファイルをも含み得る。さらに、本明細書で言及するアプリケーションは、開く必要があり得るドキュメント、またはアクセスする必要がある他のデータファイルなど、本質的に実行可能でないファイルをも含み得る。コンテンツという用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなど、実行可能なコンテンツを有するファイルをも含み得る。さらに、本明細書で言及するコンテンツは、開く必要があり得るドキュメント、またはアクセスする必要がある他のデータファイルなど、本質的に実行可能でないファイルをも含み得る。本明細書で使用する構成要素、データベース、モジュール、システムなどの用語は、コンピュータ関連のエンティティ、すなわち、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかを指すものとする。たとえば、構成要素は、プロセッサ上で動作されるプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、およびまたはコンピュータであり得るが、これらに限定されない。例として、コンピューティングデバイス上で実行されるアプリケーションと、そのコンピューティングデバイスの両方が構成要素であり得る。1つまたは複数の構成要素がプロセスおよびまたは実行スレッド内に常駐し得、1つの構成要素が1つのコンピュータ上に配置され、およびまたは2つ以上のコンピュータ間に分散され得る。さらに、これらの構成要素は、様々なデータ構造を記憶している様々なコンピュータ可読媒体から実行し得る。これらの構成要素は、1つまたは複数のデータパケットを有する信号によるなど、ローカルプロセスおよびまたはリモートプロセスを介して通信し得る。最初に図1および図2を参照すると、例示的なポータブルコンピューティングデバイスが示されており、全体的に100と称される。図示のように、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キーボードであり得る。下側ハウジング部分106に対して上側ハウジング部分104を動かすと、マルチボタンキーボード120があらわになり得る。図2はさらに、PCD100が下側ハウジング部分106上のリセットボタン122を含み得ることを示している。図3を参照すると、ポータブルコンピューティングデバイスの例示的な非限定的態様が示されており、全体的に320と称される。図示のように、PCD320は、マルチコアCPU324を含むオンチップシステム322を含む。マルチコアCPU324は、第0のコア325と、第1のコア326と、第Nのコア327とを含み得る。図3に示すように、ディスプレイコントローラ328およびタッチスクリーンコントローラ330がマルチコアCPU324に結合される。次に、オンチップシステム322の外部のタッチスクリーンディスプレイ332が、ディスプレイコントローラ328とタッチスクリーンコントローラ330とに結合される。図3はさらに、ビデオエンコーダ334、たとえば、位相反転線エンコーダ、sequentialcouleuramemoireエンコーダ、または全米テレビジョン方式委員会エンコーダが、マルチコア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の様々な構成要素に電力を供給する直流電流電源である。さらに、特定の態様では、電源は、再充電可能なDC電池、または交流電流電源に接続されたACDC変換器から得られるDC電源である。図3はさらに、PCD320が、データネットワーク、たとえば、ローカルエリアネットワーク、パーソナルエリアネットワーク、または他のネットワークにアクセスするために使用され得るネットワークカード388をも含み得ることを示している。ネットワークカード388は、Bluetooth登録商標ネットワークカード、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、またはそれらの組合せは、マルチコアCPU324をリアルタイムで監視し、関係するシステム設定を変更するために、本明細書で説明する方法ステップのうちの1つまたは複数を実行するための手段として働き得る。図4を参照すると、処理システムが示されており、全体的に400と称される。図示のように、処理システム400は、相互接続デバイス406を介してサービスプロバイダ404に接続されたサービスリクエスタ402を含み得る。図4に、サービスリクエスタ402が、少なくとも1つのハードウェアコア410、別名、中央処理ユニットを含み得ることを示す。さらに、サービスリクエスタ402は、HWコア410に接続された入力キュー412を含み得る。出力キュー414もHWコア410に接続され得る。サービスプロバイダ404は、少なくとも1つのハードウェアコア420、別名、中央処理ユニットを含み得る。サービスプロバイダ404は、HWコア420に接続された入力キュー422を含み得る。さらに、出力キュー424もHWコア420に接続され得る。図4に示すように、リアルタイムモニタ430はサービスリクエスタ402とサービスプロバイダ404とに接続され得る。さらに、電力マネージャ432はリアルタイムモニタ430に接続され得る。システム400はまた、電力マネージャ432と、サービスプロバイダ404と、相互接続デバイス406と、サービスリクエスタ402とに接続された電圧およびクロックコントローラ434を含み得る。特定の態様では、リアルタイムモニタ430、電力マネージャ432、電圧およびクロックコントローラ434、コア410、420、またはそれらの任意の組合せは、コア410、420をリアルタイムで監視し、1つまたは複数のシステム設定を変更するために、本明細書で説明する方法ステップを実行するための手段として働き得る。特定の態様では、動作中、リアルタイムモニタ434は、サービスリクエスタ内のHWコア410からの1つまたは複数のHWコアアクティビティ信号、サービスプロバイダ404内のHWコア420からの1つまたは複数のHWコアアクティビティ信号、相互接続デバイス406からの1つまたは複数の相互接続アクティビティ信号、あるいはそれらの組合せを受信し得る。一態様では、リアルタイムモニタ430は、1マイクロ秒から200ミリ秒までの間の長さを有するタイムウィンドウにおいて、HWコア410、420と相互接続406とを周期的に監視し得る。以下で詳細に説明するように、サービスリクエスタ402内のHWコア410のアクティビティ、サービスプロバイダ404内のHWコア420のアクティビティ、相互接続デバイス406のアクティビティ、またはそれらの組合せに基づいて、アクティビティが所定のしきい値よりも大きいとき、または所定のしきい値よりも小さいとき、リアルタイムモニタ430は割込み要求を電力マネージャ432に送信し得る。電力マネージャ432は、1マイクロ秒から100マイクロ秒までの間の時間期間内にリアルタイムモニタ430に応答し得る。リアルタイムモニタ430からの割込み要求に応答して、電力マネージャ432は電圧およびクロックコントローラ434にシステム状態変更を発行し得る。次いで、電圧およびクロックコントローラ434は、周波数変更、電圧変更、またはそれらの組合せを、サービスプロバイダ404、相互接続デバイス406、サービスリクエスタ402、またはそれらの組合せに送信し得る。したがって、サービスリクエスタ402のアクティビティ、サービスプロバイダ404のアクティビティ、相互接続デバイス406のアクティビティ、またはそれらの組合せに基づいて、サービスプロバイダ404、相互接続デバイス406、サービスリクエスタ402に関連する電圧、周波数、またはそれらの組合せは、アクティビティが変化した際にリアルタイムで変更され得る。特定の態様では、図4に示すシステム400はリアルタイム監視のために使用され得る。詳細には、各HWコア410、420は、関連するアクティブ状態データをクロックサイクルごとにリアルタイムモニタ430にシグナリングし得る。リアルタイムモニタ430は、プログラム可能な時間期間にわたって、すなわち、1マイクロ秒から200ミリ秒のウィンドウ内で、このデータを収集し、統合し得る。さらに、リアルタイムモニタ430は、条件が満たされた場合、たとえば、高しきい値を交差した場合、低しきい値を交差した場合など、電力マネージャ432に割り込み得る。次いで、電力マネージャ432は、必要とされるサービス品質を維持するために、必要なシステム変更、たとえば、電圧の変更、周波数の変更、またはそれらの組合せを行うことによって応答し得る。図5に、全体的に500と称される監視システムの第1の態様を示す。監視システム500は、サブサンプリングシステム502と無限インパルス応答フィルタ504とを含み得る。動作中、サブサンプリングシステム502は、コアに関連する状態情報を判断するためにソフトウェアまたはハードウェア制御信号を読み取り得る。状態情報は、アクティブ状態、アイドル状態、何らかの他の状態、またはそれらの組合せを含み得る。さらに、特定の態様では、SWHW信号は単一ビットレジスタであり得る。サブサンプリングシステム502はまたクロック信号を読み取り得る。クロック信号はまた単一ビットレジスタであり得る。サブサンプリングシステム502は、サブサンプリングデータとIIRクロックデータとをIIRフィルタ504に出力し得る。特定の態様では、サブサンプリングデータは単一ビットデータであり得、IIRクロックデータは単一ビットデータであり得る。特定の態様では、以下で説明するように、IIRフィルタ504は、サブサンプリングシステムから状態情報、たとえば、サブサンプリングされたデータを取り出し、低域フィルタ、高域フィルタ、またはそれらの組合せを使用してデータを操作し得る。さらに、IIRフィルタ504は、フィルタ処理されたデータを1つまたは複数のしきい値と比較し得、条件が満たされた場合、たとえば、上限しきい値を交差した場合、下限しきい値を交差した場合、またはそれらの組合せである場合、IIRフィルタ504は割込み要求を生成し得る。割込み要求は電力マネージャに送信され得、電力マネージャは、周波数、電圧、またはそれらの組合せを変更するためにシステム状態変更を発行し得る。特定の態様では、図5に示すシステム500は、レジスタビットを設定することによって所望の信号を生成するためにソフトウェアを利用し得る。ハードウェアフィルタ504は、レジスタビットを非同期でサンプリングし、低域フィルタ、高域フィルタ、またはそれらの組合せへの入力としてレジスタビットを使用し得る。その後、ハードウェアフィルタ504は、フィルタ処理されたデータを、1つまたは複数のコンパレータを使用して処理し得、フィルタ処理されたデータが上限しきい値よりも大きい場合、または下限しきい値よりも小さい場合、ハードウェアフィルタ504は割込みを生成し得る。システム500は、ソフトウェアによって任意の信号が生成されること、またはソフトウェアに代わって何らかの論理エンティティが働くことを可能にし得る。信号はハードウェアでフィルタ処理され得る。システム500は、実質的に低い電力オーバーヘッドと、1マイクロ秒未満から200ミリ秒を超えるまでの非常に広いフィルタ応答範囲とを可能にする。特定の態様では、IIRフィルタ504はハードウェアフィルタまたはソフトウェアフィルタであり得る。次に図6を参照すると、監視システムの第2の態様が示されており、概して600と称される。図示のように、監視システム600は、フィルタ604に接続されたサブサンプリングシステム602を含み得る。特定の態様では、フィルタ604は無限インパルス応答フィルタであり得る。図示のように、フィルタ604は、第1のセレクタ614に接続されたダウンアルファ係数レジスタ610とアップアルファ係数レジスタ612とを含み得る。特定の態様では、ダウンアルファ係数レジスタ610およびアップアルファ係数レジスタ612は4ビット長であり得、各々がそれぞれダウンアルファ係数およびアップアルファ係数を記憶し得る。アルファ係数はユーザによって構成可能であり得る。サブサンプリングシステム602から受信された、サブサンプリングされたデータに応じて、第1のセレクタ614は、ダウンアルファ係数レジスタ610からダウンアルファ係数を選択するか、またはアップアルファ係数レジスタ612からアップアルファ係数を選択し得る。たとえば、サブサンプリングされたデータビットが1に等しい場合、アップアルファ係数が選択され得る。サブサンプリングされたデータビットが0に等しい場合、ダウンアルファ係数が選択され得る。図6に示すように、第1のセレクタ614は、2つの右ビットシフタ616および626にそれぞれ接続され、それらのそれぞれの入力を、選択されたアルファ係数ビットだけ右にシフトするために使用され得る。特に、第1の右シフタ616は、IIRメモリレジスタ632の前のコンテンツを、選択されたアルファ係数ビットだけ右にシフトするために使用され得る。図6に、フィルタ604が、第2のセレクタ624に接続された000000値レジスタ620とFFFFFF値レジスタ622とを含み得ることをさらに示す。000000値レジスタ620は、24ビット長であり得、000000値を含み得る。さらに、FFFFFF値レジスタ622は、24ビット長であり得、FFFFFF値を含み得る。特定の態様では、000000値およびFFFFFF値はユーザ構成可能ではない。サブサンプリングシステム602から受信された、サブサンプリングされたデータに応じて、第2のセレクタ624は、000000値レジスタ620から000000値を選択するか、またはFFFFFF値レジスタ622からFFFFFF値を選択し得る。たとえば、サブサンプリングされたデータビットが1に等しい場合、FFFFFF値が選択され得る。サブサンプリングされたデータビットが0に等しい場合、000000値が選択され得る。図6に示すように、第2のセレクタ624は、選択された値を、選択されたアルファ係数ビットだけ右にシフトするために使用され得る第2の右ビットシフタ626に入力として接続され得る。図6に示すように、フィルタ604は、第1の右ビットシフタ616と第2の右ビットシフタ626とに結合された合計ユニット630を含み得る。さらに、メモリレジスタ632も合計ユニット630に接続され得る。また、第1のコンパレータ634と第2のコンパレータ636とが合計ユニット630に接続され得る。低しきい値レジスタ638が第1の合計ユニット634に接続され得、高しきい値レジスタ640が第2の合計ユニット636に接続され得る。特定の態様では、各しきい値レジスタ638、640は、8ビット長であり得、現在のフィルタ値が比較され得るしきい値を含み得る。各しきい値はユーザ構成可能であり得る。図示のように、割込み要求生成器642がコンパレータ634、636に接続され得る。特定の態様では、合計ユニット630は、メモリレジスタ632から前のフィルタ値を受信し得、合計ユニット630は、メモリレジスタ632に記憶された前のフィルタ値から第1の右ビットシフタ614の値を減算し、その結果に第2の右ビットシフタ626の値を加算し得る。次いで、合計ユニット630は、前のフィルタ値を置き換えるために新しいフィルタ値をメモリレジスタ632に出力し得る。この値は24ビットであり得る。合計ユニット630はまた、現在のフィルタ値の上位8ビットを第1のコンパレータ634と第2のコンパレータ636とに出力し得る。第1のコンパレータ634は、現在のフィルタ値、すなわち、現在のフィルタ値の上位8ビットを、低しきい値レジスタ638に記憶された低しきい値と比較し得る。第2のコンパレータ636は、現在のフィルタ値、すなわち、現在のフィルタ値の上位8ビットを、高しきい値レジスタ640に記憶された高しきい値と比較し得る。現在の値が、低しきい値よりも小さい場合、または高しきい値よりも大きい場合、いずれかのコンパレータはIRQ生成器642にシングルビットインジケータを出力し得る。次いで、IRQ生成器642は、割込み要求を生成し、その割込み要求を電力マネージャに送信し得る。図6に示すシステム600は、1つまたは複数のハードウェアコアのリアルタイム監視のために使用され得る。詳細には、シングルビット入力信号が、固定周波数でサンプリングされ、次いで、プログラム可能なIIRクロック周波数にダウンサンプリングされ得る。IIRは、独立したプログラム可能なアップ係数およびダウン係数、すなわち、アルファ係数をもつ単純な単一レジスタIIRを含み得る。次いで、IIRの出力は、高しきい値および低しきい値と比較され得、いずれかのしきい値を越えた場合、信号が生成される。特定の態様では、システム600は、システム状態の調整をトリガするために下限しきい値と上限しきい値とを使用し得る。監視されたシステム、たとえば、コアがそれらの所望の動作限界を外れたときに、状況を処理するためにソフトウェアが呼び出され得る。システム600は直接入力と直接出力とを使用しており、監視されたシステム、たとえば、コアへの観測上の影響はないことがある。さらに、サンプリングレートを上げることは、監視されたシステムのパフォーマンスに影響を及ぼさないことがある。さらに、システム600は、ソフトウェアソリューションを使用して利用可能であり得る監視よりもかなり高速の監視を可能にし得る。別の特定の態様では、フィルタに特有の入力信号は、クロックビットのないシングルビットであり得、したがって入力信号の平衡化を必要とせず、信号ルーティングが簡略化され得る。クロックビットが利用され、入力が平衡化される場合、入力信号はマルチビットであり得る。さらに、入力信号は、シングルビット入力に変換する必要なしにマルチビット信号が与えられることを可能にし得る。特定の態様では、フィルタ604は、単一のIIRフィルタにおいて独立した昇降レートを使用し得る。したがって、ハードウェアコストが低減され得、昇降レートが異なるときに低しきい値と高しきい値とを同時に交差する可能性がなくされ得る。フィルタ604はまた、低しきい値および高しきい値と比較するために使用され得る単一のユニファイド出力値を与え得る。さらに、フィルタ604は、入力信号への可変ダウンサンプルを与え得る。フィルタ604は、長期間の平均値と可変バケットサイズとを保持し得る。また、フィルタ604は、たとえば、フィルタ604への各入力サンプルが表す持続時間を判断することによって、フィルタ604の広いダイナミックレンジとグラニュラリティの広い範囲を可能にし得る。フィルタ604はまた、可変IIRウィンドウサイズを与え得、フィルタ604は、フィルタ出力が変化し得るレートを設定することによって広範囲の同調を可能にし得る。図6に関連して説明するように、フィルタ604は、2つ以上の独立してプログラム可能な係数、すなわち、アルファ係数610、612を含み得る。係数は、入力、たとえば、高または低である入力信号に基づいて選択され得る。次いで、選択された係数610、612は、マッピングされた入力値と、前の出力値、すなわち、前のフィルタ値の両方をスケーリングするために使用され得、スケーリングされた値は、新しい出力値、すなわち、現在のフィルタ値を形成するために前の出力値に加算され得る。次いで、フィルタの出力、すなわち、現在のフィルタ値は、1つまたは複数のしきい値と比較され得る。フィルタ604は、高低しきい値と比較され得る単一のシームレスな出力値をもつ単一のIIRフィルタを使用して複数の独立した係数を実装する能力を有する。さらに、フィルタ604は、2つ以上の独立した係数を単一のIIRフィルタに適用する能力と、単一のIIRフィルタを使用して2つの独立したしきい値を実装する能力とを有する。フィルタ604は、長期間の平均値における損失のない、入力信号への可変ダウンサンプリングをさらに含む。また、フィルタ604は、増加入力デューティサイクルと減少入力デューティサイクルとの間の遷移点においてリセットされない単一のシームレスな出力信号を与える。フィルタ604は、2つの独立したIIRフィルタを使用する代わりにより低コストの実装形態を可能にし、フィルタ604は、両方の係数を同じ値に設定することによって標準的なIIRフィルタを模倣し得る。次に図7を参照すると、中央処理システムをリアルタイムで監視する第1の態様が示されており、ブロック702において開始する。ブロック702において、コントローラは、1つまたは複数のハードウェアコアに関連する状態データを判断する。状態データは、ビジー、アイドルなどを含み得る。一態様では、コントローラは状態データを実質的にリアルタイムで受信し得る。さらに、一態様では、コントローラはハードウェアコアから状態データを直接受信し得る。代替的に、コントローラはメモリレジスタから状態データを受信し得る。別の態様では、状態データは、ハードウェアコアを監視するソフトウェアによって生成され得る。ブロック704に進むと、コントローラは状態データをフィルタ処理するか、または場合によっては操作する。たとえば、コントローラは、1つまたは複数の低域フィルタ、1つまたは複数の高域フィルタ、1つまたは複数のビットシフタ、1つまたは複数の合計ユニット、1つまたは複数の積分器、1つまたは複数の他の論理演算装置、またはそれらの組合せを使用してデータを処理し得る。ブロック706において、コントローラは、たとえば、1つまたは複数のコンパレータを使用して、フィルタ処理された状態データを1つまたは複数のあらかじめ定義されたしきい値と比較する。決定708に進むと、コントローラは、フィルタ処理されたデータが設定変更条件を満たすかどうかを判断する。特定の態様では、設定変更条件を満たすために、フィルタ処理されたデータは、所定の上限しきい値よりも大きいことがある。別の態様では、設定変更条件を満たすために、フィルタ処理されたデータは、所定の下限しきい値よりも小さいことがある。いずれの場合も、決定708において設定変更条件が満たされない場合、方法700はブロック710に進む。ブロック710において、コントローラは、現在のシステム設定、たとえば、現在のCPU周波数、現在のCPU電圧などを維持する。次いで、方法700は終了する。決定708に戻ると、フィルタ処理されたデータが設定変更条件を満たす場合、方法700はブロック712に進む。ブロック712において、コントローラは、1つまたは複数のシステム設定、たとえば、電圧、周波数などの変更値を判断する。次に、ブロック714において、コントローラは、システムの現在のステータス、すなわち、現在のシステム設定を評価する。ブロック716において、コントローラは、必要に応じて現在のシステム設定のうちの1つまたは複数を、上記で判断されたシステム設定の変更値に従って調整する。次いで、方法700は終了する。図8に、800と称される、データをサブサンプリングする方法を示す。図示のように、方法800は、決定802においてシステムプロファイリングおよび診断監視クロック信号が受信されたときに開始し得る。決定802において、サブサンプリングユニットは、SPDMクロック信号がトグルされたかどうかを判断する。トグルされていない場合、方法800は開始に戻り、サブサンプリングユニットは次のSPDMクロック信号が受信されるのを待つ。SPDMクロック信号がトグルされた場合、方法800はブロック804に進む。ブロック804において、リアルタイムデータが受信され、サブサンプリングユニットはリアルタイムデータを用いてイベントの数を増分する。その後、決定806において、サブサンプリングユニットは、イベントの数がバケットサイズに等しいかどうかを判断する。等しい場合、方法800はブロック808に進み、サブサンプリングユニットはイベントの数をリセットする。ブロック810において、サブサンプリングユニットは、次のサブサンプリングされたデータを高値に設定する。さらに、ブロック812において、サブサンプリングユニットはクロックサイクルの数を増分する。方法800は、ブロック812から決定814に進む。決定806に戻ると、イベントの数がバケットサイズに等しくない場合、方法800は直接ブロック812に進み、サブサンプリングユニットはクロックサイクルの数を増分する。次いで、方法800は決定814に進む。決定814において、サブサンプリングユニットは、クロックサイクルの数がバケットサイズに等しいかどうかを判断する。等しくない場合、方法800は開始に戻り、サブサンプリングユニットは次のSPDMクロック信号が受信されるのを待つ。他の場合、クロックサイクルの数がバケットサイズに等しい場合、方法800はブロック816に進み、サブサンプリングユニットはクロックサイクルの数をリセットする。次に、ブロック818において、サブサンプリングユニットは、次のサブサンプリングされたデータをサブサンプルドデータレジスタにコピーする。また、サブサンプリングユニットは、サブサンプリングされたデータを、フィルタ、たとえば、ハードウェアフィルタ、ソフトウェアフィルタ、またはそれらの組合せに出力する。ブロック820に進むと、サブサンプリングユニットは、次のサブサンプリングされたデータをリセットする。さらに、ブロック822において、サブサンプリングユニットは、IIRクロック出力をトグルし、IIRクロック信号を出力する。その後、方法800は開始に戻り、サブサンプリングユニットは次のSPDMクロック信号が受信されるのを待つ。次に図9を参照すると、中央処理ユニットをリアルタイムで監視する方法の第2の態様が示されており、全体的に900と称される。方法900はブロック902において開始する。ブロック902において、フィルタは、サブサンプリングされたデータを周期的に受信する。特定の態様では、サブサンプリングされたデータは、ダウンサンプリングされ、値0または1を有するシングルビットを含み得る。ブロック904において、フィルタはリアルタイムサンプルを外部モニタに出力する。リアルタイムサンプルは、ブロック902において受信された、サブサンプリングされたデータと同じである。決定906に進むと、フィルタは、サブサンプリングされたデータの値、すなわち、0か1かを判断する。サブサンプリングされたデータの値が0である場合、フィルタはステップ910~914とステップ920~924とを実行する。詳細には、ブロック910において、フィルタはビットセレクタにおいてダウンアルファ係数を選択する。特定の態様では、ダウンアルファ係数は、プログラム可能または構成可能である4ビット値である。ブロック912において、フィルタは、ダウンアルファ係数をシフトサイズとしてビットセレクタから右ビットシフタに出力する。次に、ブロック914において、第1の右ビットシフタは、前のIIRフィルタ値を右にダウンアルファ係数だけシフトする。ブロック914から、方法900は、以下で説明する図10のブロック1002に進む。ブロック920において、フィルタは、ビットセレクタにおいて24ビット長である000000値を選択する。次いで、ブロック922において、フィルタは000000値を第2の右ビットシフタに出力する。ブロック924において、第2の右ビットシフタは000000値を右にダウンアルファ係数ビットだけシフトする。ブロック924から、方法900は、以下で説明する図10のブロック1002に進む。決定906に戻ると、サブサンプリングされたデータの値が1である場合、フィルタはステップ930~934とステップ940~944とを実行する。詳細には、ブロック930において、フィルタはビットセレクタにおいてアップアルファ係数を選択する。特定の態様では、アップアルファ係数は、プログラム可能または構成可能である4ビット値である。ブロック932において、フィルタはアップアルファ係数をシフトサイズとしてビットセレクタから右ビットシフタに出力する。次に、ブロック934において、第1の右ビットシフタは、前のIIRフィルタ値を右にアップアルファ係数だけシフトする。ブロック934から、方法900は、以下で説明する図10のブロック1002に進む。ブロック940において、フィルタはビットセレクタにおいて24ビット長であるFFFFFF値を選択する。次いで、ブロック942において、フィルタは、第2の右ビットシフタにFFFFFF値を出力する。ブロック944において、第2の右ビットシフタはFFFFFF値を右にアップアルファ係数ビットだけシフトする。ブロック944から、方法900は、以下で説明する図10のブロック1006に進む。図10のブロック1006において、フィルタは前のフィルタ値をメモリロケーションから合計ユニットに出力する。ブロック1008において、合計ユニットは、第2の右ビットシフタの値を前のフィルタ値に加算し、結果から第1の右ビットシフタの値を減算する。ブロック1012において、合計ユニットは、新しいフィルタ値を出力する。ブロック1014に進むと、フィルタは、新しいフィルタ値をメモリロケーションに記憶する。メモリロケーションは、24ビットを有するメモリレジスタであり得る。次に、1016において、フィルタは、新しいフィルタ値の上位8ビットを第1のコンパレータに出力する。ブロック1018において、フィルタは、新しいフィルタ値の上位8ビットを第2のコンパレータに出力する。また、ブロック1020において、フィルタは、新しいフィルタ値の上位8ビットを外部モニタに出力する。その後、方法900は、以下で説明する図11のブロック1102に進む。図11のブロック1102において、フィルタ内の第1のコンパレータが、現在のフィルタ値を上限しきい値と比較する。ブロック1104において、フィルタ内の第2のコンパレータがフィルタ値を下限しきい値と比較する。決定1106に進むと、フィルタは、現在のフィルタ値が上限しきい値よりも大きいか、または下限しきい値よりも小さいかを判断する。上限しきい値、下限しきい値、またはそれらの組合せは、プログラム可能または場合によっては構成可能であり得る。現在のフィルタ値が上限しきい値よりも大きくなく、下限しきい値よりも小さくない場合、方法900は終了する。一方、決定1106において、現在のフィルタ値が上限しきい値よりも大きいか、または下限しきい値よりも小さい場合、方法900はブロック1108に進み、フィルタはインジケータを割込み要求生成器に出力する。ブロック1110において、IRQ生成器は割込み要求を生成する。次いで、ブロック1112において、IRQ生成器はIRQを電力コントローラに送信する。次いで、方法900は終了する。本明細書で説明した方法ステップは、必ずしも説明した順序で実行される必要がないことを理解されたい。さらに、その後、次いで、次になどの単語は、ステップの順序を限定するものではない。これらの単語は、単に、読者に方法ステップの説明を案内するために使用される。さらに、本明細書で説明した方法は、ポータブルコンピューティングデバイス上で実行可能であるものとして説明されている。PCDは、携帯電話デバイス、携帯情報端末デバイス、スマートブックコンピューティングデバイス、ネットブックコンピューティングデバイス、ラップトップコンピューティングデバイス、デスクトップコンピューティングデバイス、またはそれらの組合せであり得る。さらに、本明細書で説明した方法ステップは、シングルコアプロセッサ、マルチコアプロセッサ、複数のシングルコアプロセッサ、複数のマルチコアプロセッサ、またはそれらの任意の組合せ上で実行され得る。1つまたは複数の例示的な態様では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装した場合、機能は、1つまたは複数の命令またはコードとして、機械可読媒体、すなわちコンピュータ可読媒体などのコンピュータプログラム製品上に記憶されるか、あるいはコンピュータプログラム製品を介して送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータ記憶媒体とコンピュータ通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされる任意の利用可能な媒体であり得る。限定ではなく、例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CDROMまたは他の光ディスク記憶装置、磁気ディスク記憶デバイスまたは他の磁気記憶デバイス、あるいは命令またはデータ構造の形態で所望のプログラムコードを搬送または記憶するために使用され得、コンピュータによってアクセスできる、任意の他の媒体を含み得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用するディスクおよびディスクは、コンパクトディスク、レーザディスク、光ディスク、デジタル多用途ディスク、フロッピー登録商標ディスクおよびブルーレイディスクを含み、ディスクは、通常、データを磁気的に再生し、ディスクは、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。選択された態様について詳細に図示および説明したが、以下の特許請求の範囲によって規定されるように、本発明の趣旨および範囲から逸脱することなく様々な置換および改変を本明細書で行うことができることを理解されたい。