JP5922816B2 - 中央処理ユニットをリアルタイムで監視するシステムおよび方法 - Google Patents

中央処理ユニットをリアルタイムで監視するシステムおよび方法 Download PDF

Info

Publication number
JP5922816B2
JP5922816B2 JP2015038004A JP2015038004A JP5922816B2 JP 5922816 B2 JP5922816 B2 JP 5922816B2 JP 2015038004 A JP2015038004 A JP 2015038004A JP 2015038004 A JP2015038004 A JP 2015038004A JP 5922816 B2 JP5922816 B2 JP 5922816B2
Authority
JP
Japan
Prior art keywords
processing unit
central processing
value
sub
threshold
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015038004A
Other languages
English (en)
Other versions
JP2015122111A (ja
Inventor
スティーブン・エス・トムソン
アリ・イランリ
マイケル・ジェー・ドロップ
ヴィノド・アール・クップ
クリストファー・コング・イー・チュン
タオ・シュエ
ハウ−ジン・ロ
モイヌル・エイチ・カーン
Original Assignee
クアルコム,インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2015122111A publication Critical patent/JP2015122111A/ja
Application granted granted Critical
Publication of JP5922816B2 publication Critical patent/JP5922816B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Power Sources (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)

Description

本発明は、中央処理ユニットをリアルタイムで監視するシステムおよび方法に関する。
関連出願
本出願は、その内容が参照により完全に組み込まれる、2010年1月11日に出願されたSYSTEM AND METHOD OF MONITORING A CENTRAL PROCESSING UNIT IN REAL TIMEと題する米国仮特許出願第61/294,006号の優先権を主張する。
ポータブルコンピューティングデバイス(PCD)はユビキタスである。これらのデバイスは、セルラー電話、携帯情報端末(PDA)、ポータブルゲーム機、パームトップコンピュータ、および他のポータブル電子デバイスを含み得る。これらのデバイスの主要機能に加えて、多くは周辺機能を含む。たとえば、セルラー電話は、セルラー通話を行うという主要機能と、スチールカメラ、ビデオカメラ、全地球測位システム(GPS)ナビゲーション、ウェブブラウジング、電子メールの送信および受信、テキストメッセージの送信および受信、プッシュツートーク機能などの周辺機能とを含み得る。そのようなデバイスの機能が増加するにつれて、そのような機能をサポートするために必要とされる計算能力または処理能力も増加する。さらに、計算能力が増加するにつれて、計算能力を与える1つまたは複数のプロセッサを効果的に管理する必要が高まっている。
したがって、必要なものは、CPUをリアルタイムで監視する改善された方法である。
特許請求の範囲に記載の手段によって上記課題を解決する。
図において、別段に規定されていない限り、様々な図を通して、同様の参照番号は同様の部分を指す。
閉位置におけるポータブルコンピューティングデバイス(PCD)の第1の態様の正面図である。 開位置におけるPCDの第1の態様の正面図である。 PCDの第2の態様のブロック図である。 処理システムの第2の態様のブロック図である。 監視システムの第1の態様のブロック図である。 監視システムの第2の態様のブロック図である。 中央処理ユニットをリアルタイムで監視する方法の第1の態様を示すフローチャートである。 データをサブサンプリングする方法を示すフローチャートである。 中央処理ユニットをリアルタイムで監視する方法の第2の態様の第1の部分を示すフローチャートである。 中央処理ユニットをリアルタイムで監視する方法の第2の態様の第2の部分を示すフローチャートである。 中央処理ユニットをリアルタイムで監視する方法の第2の態様の第3の部分を示すフローチャートである。
「例示的」という単語は、本明細書では、「例、事例、または例示の働きをすること」を意味するために使用する。「例示的」として本明細書で説明するいかなる態様も、必ずしも他の態様よりも好適または有利なものと解釈すべきではない。
本明細書では、「アプリケーション」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなど、実行可能なコンテンツを有するファイルをも含み得る。さらに、本明細書で言及する「アプリケーション」は、開く必要があり得るドキュメント、またはアクセスする必要がある他のデータファイルなど、本質的に実行可能でないファイルをも含み得る。
「コンテンツ」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなど、実行可能なコンテンツを有するファイルをも含み得る。さらに、本明細書で言及する「コンテンツ」は、開く必要があり得るドキュメント、またはアクセスする必要がある他のデータファイルなど、本質的に実行可能でないファイルをも含み得る。
本明細書で使用する「構成要素」、「データベース」、「モジュール」、「システム」などの用語は、コンピュータ関連のエンティティ、すなわち、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかを指すものとする。たとえば、構成要素は、プロセッサ上で動作されるプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、および/またはコンピュータであり得るが、これらに限定されない。例として、コンピューティングデバイス上で実行されるアプリケーションと、そのコンピューティングデバイスの両方が構成要素であり得る。1つまたは複数の構成要素がプロセスおよび/または実行スレッド内に常駐し得、1つの構成要素が1つのコンピュータ上に配置され、および/または2つ以上のコンピュータ間に分散され得る。さらに、これらの構成要素は、様々なデータ構造を記憶している様々なコンピュータ可読媒体から実行し得る。これらの構成要素は、1つまたは複数のデータパケット(たとえば、ローカルシステム、分散システム内の別の構成要素と対話する、および/またはインターネットなどのネットワーク上で信号を介して他のシステムと対話する、1つの構成要素からのデータ)を有する信号によるなど、ローカルプロセスおよび/またはリモートプロセスを介して通信し得る。
最初に図1および図2を参照すると、例示的なポータブルコンピューティングデバイス(PCD)が示されており、全体的に100と称される。図示のように、PCD100はハウジング102を含み得る。ハウジング102は、上側ハウジング部分104と下側ハウジング部分106とを含み得る。図1は、上側ハウジング部分104がディスプレイ108を含み得ることを示している。特定の態様では、ディスプレイ108はタッチスクリーンディスプレイであり得る。上側ハウジング部分104はトラックボール入力デバイス110をも含み得る。さらに、図1に示すように、上側ハウジング部分104は、電源投入ボタン112と電源切断ボタン114とを含み得る。図1に示すように、PCD100の上側ハウジング部分104は、複数のインジケータライト116とスピーカー118とを含み得る。各インジケータライト116は発光ダイオード(LED)であり得る。
特定の態様では、図2に示すように、上側ハウジング部分104は下側ハウジング部分106に対して可動である。詳細には、上側ハウジング部分104は、下側ハウジング部分106に対してスライド可能であり得る。図2に示すように、下側ハウジング部分106はマルチボタンキーボード120を含み得る。特定の態様では、マルチボタンキーボード120は標準QWERTYキーボードであり得る。下側ハウジング部分106に対して上側ハウジング部分104を動かすと、マルチボタンキーボード120があらわになり得る。図2はさらに、PCD100が下側ハウジング部分106上のリセットボタン122を含み得ることを示している。
図3を参照すると、ポータブルコンピューティングデバイス(PCD)の例示的な非限定的態様が示されており、全体的に320と称される。図示のように、PCD320は、マルチコアCPU324を含むオンチップシステム322を含む。マルチコアCPU324は、第0のコア325と、第1のコア326と、第Nのコア327とを含み得る。
図3に示すように、ディスプレイコントローラ328およびタッチスクリーンコントローラ330がマルチコアCPU324に結合される。次に、オンチップシステム322の外部のタッチスクリーンディスプレイ332が、ディスプレイコントローラ328とタッチスクリーンコントローラ330とに結合される。
図3はさらに、ビデオエンコーダ334、たとえば、位相反転線(PAL)エンコーダ、sequential couleur a memoire(SECAM)エンコーダ、または全米テレビジョン方式委員会(NTSC)エンコーダが、マルチコアCPU324に結合されることを示している。さらに、ビデオ増幅器336が、ビデオエンコーダ334とタッチスクリーンディスプレイ332とに結合される。また、ビデオポート338がビデオ増幅器336に結合される。図3に示すように、ユニバーサルシリアルバス(USB)コントローラ340がマルチコアCPU324に結合される。また、USBポート342がUSBコントローラ340に結合される。メモリ344および加入者識別モジュール(SIM)カード346もマルチコアCPU324に結合され得る。さらに、図3に示すように、デジタルカメラ348がマルチコアCPU324に結合され得る。例示的な一態様では、デジタルカメラ348は電荷結合デバイス(CCD)カメラまたは相補型金属酸化物半導体(CMOS)カメラである。
図3にさらに示すように、ステレオオーディオコーデック350がマルチコアCPU324に結合され得る。さらに、オーディオ増幅器352がステレオオーディオコーデック350に結合され得る。例示的な一態様では、第1のステレオスピーカー354および第2のステレオスピーカー356がオーディオ増幅器352に結合される。図3は、マイクロフォン増幅器358もステレオオーディオコーデック350に結合され得ることを示している。さらに、マイクロフォン360がマイクロフォン増幅器358に結合され得る。特定の態様では、周波数変調(FM)ラジオチューナー362がステレオオーディオコーデック350に結合され得る。また、FMアンテナ364がFMラジオチューナー362に結合される。さらに、ステレオヘッドフォン366がステレオオーディオコーデック350に結合され得る。
図3はさらに、無線周波数(RF)トランシーバ368がマルチコアCPU324に結合され得ることを示している。RFスイッチ370が、RFトランシーバ368とRFアンテナ372とに結合され得る。図3に示すように、キーパッド374がマルチコアCPU324に結合され得る。また、マイクロフォン付きモノヘッドセット376がマルチコアCPU324に結合され得る。さらに、バイブレータデバイス378がマルチコアCPU324に結合され得る。図3はまた、電源380がオンチップシステム322に結合され得ることを示している。特定の態様では、電源380は、電力を必要とするPCD320の様々な構成要素に電力を供給する直流電流(DC)電源である。さらに、特定の態様では、電源は、再充電可能なDC電池、または交流電流(AC)電源に接続されたAC-DC変換器から得られるDC電源である。
図3はさらに、PCD320が、データネットワーク、たとえば、ローカルエリアネットワーク、パーソナルエリアネットワーク、または他のネットワークにアクセスするために使用され得るネットワークカード388をも含み得ることを示している。ネットワークカード388は、Bluetooth(登録商標)ネットワークカード、WiFiネットワークカード、パーソナルエリアネットワーク(PAN)カード、パーソナルエリアネットワーク超低電力技術(PeANUT)ネットワークカード、または当技術分野でよく知られている他のネットワークカードであり得る。さらに、ネットワークカード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つのハードウェア(HW)コア410、別名、中央処理ユニットを含み得ることを示す。さらに、サービスリクエスタ402は、HWコア410に接続された入力キュー412を含み得る。出力キュー414もHWコア410に接続され得る。サービスプロバイダ404は、少なくとも1つのハードウェア(HW)コア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ミリ秒までの間(1μs〜200ms)の長さを有するタイムウィンドウにおいて、HWコア410、420と相互接続406とを周期的に監視し得る。
以下で詳細に説明するように、サービスリクエスタ402内のHWコア410のアクティビティ、サービスプロバイダ404内のHWコア420のアクティビティ、相互接続デバイス406のアクティビティ、またはそれらの組合せに基づいて、アクティビティが所定のしきい値よりも大きいとき、または所定のしきい値よりも小さいとき、リアルタイムモニタ430は割込み要求を電力マネージャ432に送信し得る。電力マネージャ432は、1マイクロ秒から100マイクロ秒までの間(1〜100μSec)の時間期間内にリアルタイムモニタ430に応答し得る。リアルタイムモニタ430からの割込み要求に応答して、電力マネージャ432は電圧およびクロックコントローラ434にシステム状態変更を発行し得る。次いで、電圧およびクロックコントローラ434は、周波数変更、電圧変更、またはそれらの組合せを、サービスプロバイダ404、相互接続デバイス406、サービスリクエスタ402、またはそれらの組合せに送信し得る。したがって、サービスリクエスタ402のアクティビティ、サービスプロバイダ404のアクティビティ、相互接続デバイス406のアクティビティ、またはそれらの組合せに基づいて、サービスプロバイダ404、相互接続デバイス406、サービスリクエスタ402に関連する電圧、周波数、またはそれらの組合せは、アクティビティが変化した際にリアルタイムで変更され得る。
特定の態様では、図4に示すシステム400はリアルタイム監視のために使用され得る。詳細には、各HWコア410、420は、関連するアクティブ状態データをクロックサイクルごとにリアルタイムモニタ430にシグナリングし得る。リアルタイムモニタ430は、プログラム可能な時間期間にわたって、すなわち、1マイクロ秒から200ミリ秒(1μs〜200ms)のウィンドウ内で、このデータを収集し、統合し得る。さらに、リアルタイムモニタ430は、条件が満たされた場合、たとえば、高しきい値を交差した場合、低しきい値を交差した場合など、電力マネージャ432に割り込み得る。次いで、電力マネージャ432は、必要とされるサービス品質(QoS)を維持するために、必要なシステム変更、たとえば、電圧の変更、周波数の変更、またはそれらの組合せを行うことによって応答し得る。
図5に、全体的に500と称される監視システムの第1の態様を示す。監視システム500は、サブサンプリングシステム502と無限インパルス応答(IIR)フィルタ504とを含み得る。動作中、サブサンプリングシステム502は、コアに関連する状態情報を判断するためにソフトウェア(SW)またはハードウェア(HW)制御信号を読み取り得る。状態情報は、アクティブ状態、アイドル状態、何らかの他の状態、またはそれらの組合せを含み得る。さらに、特定の態様では、SW/HW信号は単一ビットレジスタであり得る。サブサンプリングシステム502はまたクロック信号を読み取り得る。クロック信号はまた単一ビットレジスタであり得る。サブサンプリングシステム502は、サブサンプリングデータとIIRクロックデータとをIIRフィルタ504に出力し得る。特定の態様では、サブサンプリングデータは単一ビットデータであり得、IIRクロックデータは単一ビットデータであり得る。
特定の態様では、以下で説明するように、IIRフィルタ504は、サブサンプリングシステムから状態情報、たとえば、サブサンプリングされたデータを取り出し、低域フィルタ、高域フィルタ、またはそれらの組合せを使用してデータを操作し得る。さらに、IIRフィルタ504は、フィルタ処理されたデータを1つまたは複数のしきい値と比較し得、条件が満たされた場合、たとえば、上限しきい値を交差した場合、下限しきい値を交差した場合、またはそれらの組合せである場合、IIRフィルタ504は割込み要求を生成し得る。割込み要求は電力マネージャに送信され得、電力マネージャは、周波数、電圧、またはそれらの組合せを変更するためにシステム状態変更を発行し得る。
特定の態様では、図5に示すシステム500は、レジスタビットを設定することによって所望の信号を生成するためにソフトウェアを利用し得る。ハードウェアフィルタ504は、レジスタビットを非同期でサンプリングし、低域フィルタ、高域フィルタ、またはそれらの組合せへの入力としてレジスタビットを使用し得る。その後、ハードウェアフィルタ504は、フィルタ処理されたデータを、1つまたは複数のコンパレータを使用して処理し得、フィルタ処理されたデータが上限しきい値よりも大きい場合、または下限しきい値よりも小さい場合、ハードウェアフィルタ504は割込みを生成し得る。システム500は、ソフトウェアによって任意の信号が生成されること、またはソフトウェアに代わって何らかの論理エンティティが働くことを可能にし得る。信号はハードウェアでフィルタ処理され得る。システム500は、実質的に低い電力オーバーヘッドと、1マイクロ秒(1μs)未満から200ミリ秒(200ms)を超えるまでの非常に広いフィルタ応答範囲とを可能にする。特定の態様では、IIRフィルタ504はハードウェアフィルタまたはソフトウェアフィルタであり得る。
次に図6を参照すると、監視システムの第2の態様が示されており、概して600と称される。図示のように、監視システム600は、フィルタ604に接続されたサブサンプリングシステム602を含み得る。特定の態様では、フィルタ604は無限インパルス応答(IIR)フィルタであり得る。図示のように、フィルタ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ビット長であり得、現在のフィルタ値が比較され得るしきい値を含み得る。各しきい値はユーザ構成可能であり得る。図示のように、割込み要求(IRQ)生成器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フィルタにおいて独立した昇降レート(rise and fall rate)を使用し得る。したがって、ハードウェアコストが低減され得、昇降レートが異なるときに低しきい値と高しきい値とを同時に交差する可能性がなくされ得る。フィルタ604はまた、低しきい値および高しきい値と比較するために使用され得る単一のユニファイド出力値を与え得る。さらに、フィルタ604は、入力信号への可変ダウンサンプルを与え得る。フィルタ604は、長期間の平均値と可変バケットサイズとを保持し得る。また、フィルタ604は、たとえば、フィルタ604への各入力サンプルが表す持続時間を判断することによって、フィルタ604の広いダイナミックレンジとグラニュラリティの広い範囲を可能にし得る。フィルタ604はまた、可変IIRウィンドウサイズを与え得、フィルタ604は、フィルタ出力が変化し得るレートを設定することによって広範囲の同調を可能にし得る。
図6に関連して説明するように、フィルタ604は、2つ以上の独立してプログラム可能な係数、すなわち、アルファ係数610、612を含み得る。係数は、入力、たとえば、高(1)または低(0)である入力信号に基づいて選択され得る。次いで、選択された係数610、612は、(たとえば、入力が高である場合は0xFFFFFFにマッピングされ、入力が低である場合は0x000000にマッピングされる)マッピングされた入力値と、前の出力値、すなわち、前のフィルタ値の両方をスケーリングするために使用され得、スケーリングされた値は、新しい出力値、すなわち、現在のフィルタ値を形成するために前の出力値に加算され得る。次いで、フィルタの出力、すなわち、現在のフィルタ値は、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においてシステムプロファイリングおよび診断監視(SPDM)クロック信号が受信されたときに開始し得る。決定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に進み、フィルタはインジケータを割込み要求(IRQ)生成器に出力する。ブロック1110において、IRQ生成器は割込み要求を生成する。次いで、ブロック1112において、IRQ生成器はIRQを電力コントローラに送信する。次いで、方法900は終了する。
本明細書で説明した方法ステップは、必ずしも説明した順序で実行される必要がないことを理解されたい。さらに、「その後」、「次いで」、「次に」などの単語は、ステップの順序を限定するものではない。これらの単語は、単に、読者に方法ステップの説明を案内するために使用される。さらに、本明細書で説明した方法は、ポータブルコンピューティングデバイス(PCD)上で実行可能であるものとして説明されている。PCDは、携帯電話デバイス、携帯情報端末デバイス、スマートブックコンピューティングデバイス、ネットブックコンピューティングデバイス、ラップトップコンピューティングデバイス、デスクトップコンピューティングデバイス、またはそれらの組合せであり得る。さらに、本明細書で説明した方法ステップは、シングルコアプロセッサ、マルチコアプロセッサ、複数のシングルコアプロセッサ、複数のマルチコアプロセッサ、またはそれらの任意の組合せ上で実行され得る。
1つまたは複数の例示的な態様では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装した場合、機能は、1つまたは複数の命令またはコードとして、機械可読媒体、すなわちコンピュータ可読媒体などのコンピュータプログラム製品上に記憶されるか、あるいはコンピュータプログラム製品を介して送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータ記憶媒体とコンピュータ通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされる任意の利用可能な媒体であり得る。限定ではなく、例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMまたは他の光ディスク記憶装置、磁気ディスク記憶デバイスまたは他の磁気記憶デバイス、あるいは命令またはデータ構造の形態で所望のプログラムコードを搬送または記憶するために使用され得、コンピュータによってアクセスできる、任意の他の媒体を含み得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
選択された態様について詳細に図示および説明したが、以下の特許請求の範囲によって規定されるように、本発明の趣旨および範囲から逸脱することなく様々な置換および改変を本明細書で行うことができることを理解されたい。
320 ポータブルコンピューティングデバイス(PCD)
322 オンチップシステム
324 マルチコアCPU
325 第0のコア
326 第1のコア
327 第Nのコア
328 ディスプレイコントローラ
330 タッチスクリーンコントローラ
332 タッチスクリーンディスプレイ
334 ビデオエンコーダ
336 ビデオ増幅器
338 ビデオポート
340 ユニバーサルシリアルバス(USB)コントローラ
342 USBポート
344 メモリ
346 加入者識別モジュール(SIM)カード
348 デジタルカメラ
350 ステレオオーディオコーデック
352 オーディオ増幅器
354 第1のステレオスピーカー
356 第2のステレオスピーカー
358 マイクロフォン増幅器
360 マイクロフォン
362 周波数変調(FM)ラジオチューナー
364 FMアンテナ
366 ステレオヘッドフォン
368 RFトランシーバ
370 RFスイッチ
372 RFアンテナ
374 キーパッド
376 マイクロフォン付きモノヘッドセット
378 バイブレータデバイス
380 電源
388 ネットワークカード

Claims (24)

  1. 中央処理ユニットをリアルタイムで監視する方法であって、前記方法は、
    サブサンプリングシステムにおいて前記中央処理ユニットからハードウェアコア信号を受信するステップと、
    前記受信されたハードウェアコア信号の少なくとも一部に基づいて前記中央処理ユニットの状態を判断するステップと、
    前記判断された中央処理ユニットの状態の少なくとも一部に基づいてサブサンプリングデータを生成するステップと、
    前記サブサンプリングデータを無限インパルス応答フィルタに送信するステップと、
    フィルタ処理されたデータを生成するために前記無限インパルス応答フィルタにおいて前記サブサンプリングデータをフィルタ処理するステップと、
    前記フィルタ処理されたデータを前記無限インパルス応答フィルタにおけるしきい値と比較するステップと、
    前記比較の結果に基づいて前記中央処理ユニットの電圧または周波数を調整するステップと
    を含む、方法。
  2. 前記フィルタ処理されたデータを前記無限インパルス応答フィルタにおけるしきい値と比較するステップは、
    前記フィルタ処理されたデータが前記無限インパルス応答フィルタにおける高しきい値よりも高い値であるか否かを判断するステップと、
    前記フィルタ処理されたデータが前記無限インパルス応答フィルタにおける低しきい値よりも低い値であるか否かを判断するステップと
    を含み、
    前記比較の結果に基づいて前記中央処理ユニットの電圧または周波数を調整するステップは、前記フィルタ処理されたデータが、前記高しきい値よりも高い場合、または前記低しきい値よりも低い場合、前記中央処理ユニットの電圧または周波数を調整するステップを含む、請求項1に記載の方法。
  3. 前記比較の結果に基づいて前記中央処理ユニットの電圧または周波数を調整するステップは、
    前記比較の結果が設定変更条件を満たすか否かを判断するステップと、
    前記比較の結果が前記設定変更条件を満たす場合、前記中央処理ユニットの電圧または周波数についての変更される値を判断するステップと、
    前記判断された変更される値になるように、前記中央処理ユニットの電圧または周波数を調整するステップと
    を含む、請求項1に記載の方法。
  4. 前記中央処理ユニットの状態は、アクティブ状態またはアイドル状態である、請求項1に記載の方法。
  5. サブサンプリングシステムにおいて前記中央処理ユニットからハードウェアコア信号を受信するステップは、前記中央処理ユニットのクロックサイクルごとに、サブサンプリングシステムにおいて前記中央処理ユニットからハードウェアコア信号を受信するステップを含む、請求項1に記載の方法。
  6. 前記フィルタ処理されたデータを生成するために前記無限インパルス応答フィルタにおいて前記サブサンプリングデータをフィルタ処理するステップは、
    前記サブサンプリングデータの値に基づいてアルファ係数を選択するステップと、
    フィルタ処理されたデータを生成するために、前記選択されたアルファ係数を使用して前記無限インパルス応答フィルタにおいて前記サブサンプリングデータをフィルタ処理するステップと
    を含む、請求項1に記載の方法。
  7. 前記サブサンプリングデータの値に基づいてアルファ係数を選択するステップは、
    前記サブサンプリングデータの状態が高いか低いか判断するステップと、
    前記サブサンプリングデータの状態が高いとき、アップアルファ係数を選択するステップと、
    前記サブサンプリングデータの状態が低いとき、ダウンアルファ係数を選択するステップと
    を含む、請求項6に記載の方法。
  8. 前記サブサンプリングデータを無限インパルス応答フィルタに送信するステップは、
    前記サブサンプリングシステムにおいて、クロックサイクルの数がパケットサイズと等しいか否か判断するステップと、
    前記クロックサイクルの数が前記パケットサイズと等しいとき、前記サブサンプリングデータを前記無限インパルス応答フィルタに送信するステップと
    を含む、請求項6に記載の方法。
  9. 前記パケットサイズと前記アルファ係数と前記しきい値とは、ユーザによって構成可能である、請求項8に記載の方法。
  10. サブサンプリングシステムにおいて中央処理ユニットからハードウェアコア信号を受信するための手段と、
    前記受信されたハードウェアコア信号の少なくとも一部に基づいて前記中央処理ユニットの状態を判断するための手段と、
    前記判断された中央処理ユニットの状態の少なくとも一部に基づいてサブサンプリングデータを生成するための手段と、
    前記サブサンプリングデータを無限インパルス応答フィルタに送信するための手段と、
    フィルタ処理されたデータを生成するために前記無限インパルス応答フィルタにおいて前記サブサンプリングデータをフィルタ処理するための手段と、
    前記フィルタ処理されたデータを前記無限インパルス応答フィルタにおけるしきい値と比較するための手段と、
    前記比較の結果に基づいて前記中央処理ユニットの電圧または周波数を調整するための手段と
    を含む、ワイヤレスデバイス。
  11. 前記フィルタ処理されたデータを前記無限インパルス応答フィルタにおけるしきい値と比較するための手段は、
    前記フィルタ処理されたデータが前記無限インパルス応答フィルタにおける高しきい値よりも高い値であるか否かを判断するための手段と、
    前記フィルタ処理されたデータが前記無限インパルス応答フィルタにおける低しきい値よりも低い値であるか否かを判断するための手段と
    を含み、
    前記比較の結果に基づいて前記中央処理ユニットの電圧または周波数を調整するための手段は、前記フィルタ処理されたデータが、前記高しきい値よりも高い場合、または前記低しきい値よりも低い場合、前記中央処理ユニットの電圧または周波数を調整するための手段を含む、請求項10に記載のワイヤレスデバイス。
  12. 前記比較の結果に基づいて前記中央処理ユニットの電圧または周波数を調整するための手段は、
    前記比較の結果が設定変更条件を満たすか否かを判断するための手段と、
    前記比較の結果が前記設定変更条件を満たす場合、前記中央処理ユニットの電圧または周波数についての変更される値を判断するための手段と、
    前記判断された変更される値になるように、前記中央処理ユニットの電圧または周波数を調整するための手段と
    を含む、請求項10に記載のワイヤレスデバイス。
  13. 前記中央処理ユニットの状態は、アクティブ状態またはアイドル状態である、請求項10に記載のワイヤレスデバイス。
  14. サブサンプリングシステムにおいて前記中央処理ユニットからハードウェアコア信号を受信するための手段は、前記中央処理ユニットのクロックサイクルごとに、サブサンプリングシステムにおいて前記中央処理ユニットからハードウェアコア信号を受信するための手段を含む、請求項10に記載のワイヤレスデバイス。
  15. 前記フィルタ処理されたデータを生成するために前記無限インパルス応答フィルタにおいて前記サブサンプリングデータをフィルタ処理するための手段は、
    前記サブサンプリングデータの値に基づいてアルファ係数を選択するための手段と、
    フィルタ処理されたデータを生成するために、前記選択されたアルファ係数を使用して前記無限インパルス応答フィルタにおいて前記サブサンプリングデータをフィルタ処理するための手段と
    を含む、請求項10に記載のワイヤレスデバイス。
  16. 前記サブサンプリングデータの値に基づいてアルファ係数を選択するための手段は、
    前記サブサンプリングデータの状態が高いか低いか判断するための手段と、
    前記サブサンプリングデータの状態が高いとき、アップアルファ係数を選択するための手段と、
    前記サブサンプリングデータの状態が低いとき、ダウンアルファ係数を選択するための手段と
    を含む、請求項15に記載のワイヤレスデバイス。
  17. 前記サブサンプリングデータを無限インパルス応答フィルタに送信するための手段は、
    前記サブサンプリングシステムにおいて、クロックサイクルの数がパケットサイズと等しいか否か判断するための手段と、
    前記クロックサイクルの数が前記パケットサイズと等しいとき、前記サブサンプリングデータを前記無限インパルス応答フィルタに送信するための手段と
    を含む、請求項15に記載のワイヤレスデバイス。
  18. 前記パケットサイズと前記アルファ係数と前記しきい値とは、ユーザによって構成可能である、請求項17に記載のワイヤレスデバイス。
  19. 中央処理ユニットを監視するためのデバイスであって、
    前記中央処理ユニットからハードウェアコア信号を受信するとともに、中央処理ユニット状態提示信号を出力するように構成されたサブサンプリング回路と、
    前記サブサンプリング回路に接続されるように構成されているとともに、前記サブサンプリング回路から前記中央処理ユニット状態提示信号を受信するように構成された無限インパルス応答フィルタと
    を含み、
    前記無限インパルス応答フィルタは、
    第1のアルファ係数レジスタおよび第2のアルファ係数レジスタに接続された第1のセレクタであって、前記中央処理ユニット状態提示信号に基づいて前記第1のアルファ係数レジスタまたは前記第2のアルファ係数レジスタからアルファ係数を選択するとともに、選択されたアルファ係数を出力するように構成された第1のセレクタと、
    第1の値レジスタおよび第2の値レジスタに接続された第2のセレクタであって、前記中央処理ユニット状態提示信号に基づいて前記第1の値レジスタまたは前記第2の値レジスタから値を選択するとともに、選択された値を出力するように構成された第2のセレクタと、
    前記第1のセレクタおよびメモリレジスタに接続された第1のシフタであって、前記メモリレジスタから前のフィルタ値を受信し、第1のセレクタから前記選択されたアルファ係数を受信し、前記選択されたアルファ係数だけ前記前のフィルタ値をシフトさせた、シフトされた前のフィルタ値を出力するように構成された第1のシフタと、
    前記第1のセレクタおよび前記第2のセレクタに接続された第2のシフタであって、前記第2のセレクタから前記選択された値を受信し、前記第1のセレクタから前記選択されたアルファ係数を受信し、前記選択されたアルファ係数だけ前記選択された値をシフトさせた、シフトされた選択された値を出力するように構成された第2のシフタと、
    前記第1のシフタと前記第2のシフタと前記メモリレジスタとに接続された合計ユニットであって、前記メモリレジスタから前記前のフィルタ値を受信し、前記シフトされた選択された値を前記第2のシフタから受信し、前記シフトされた前のフィルタ値を前記第1のシフタから受信し、前記前のフィルタ値から前記シフトされた前のフィルタ値を減算した結果に、前記シフトされた選択された値を加算した結果である現在のフィルタ値を出力するように構成された合計ユニットと、
    前記合計ユニットおよび第1のしきい値レジスタに接続された第1のコンパレータであって、前記合計ユニットから前記現在のフィルタ値の少なくとも一部を受信し、前記第1のしきい値レジスタから第1のしきい値を受信し、第1の比較結果信号を出力するように構成された第1のコンパレータと、
    前記第1のコンパレータに接続された割込み生成器であって、前記第1のコンパレータから前記第1の比較結果信号を受信し、前記第1の比較結果信号を受信することに対応して前記中央処理ユニットの電圧または周波数を調整するための割込み要求を出力するように構成された割込み生成器と
    を含む、デバイス。
  20. 前記第1のアルファ係数レジスタは、アップアルファ係数を保持するアップアルファ係数レジスタであり、
    前記第2のアルファ係数レジスタは、ダウンアルファ係数を保持するダウンアルファ係数レジスタである、請求項19に記載のデバイス。
  21. 前記無限インパルス応答フィルタは、前記合計ユニットおよび第2のしきい値レジスタに接続された第2のコンパレータをさらに含み、前記第2のコンパレータは、前記合計ユニットから前記現在のフィルタ値の少なくとも一部を受信し、前記第2のしきい値レジスタから前記第2のしきい値を受信し、第2の比較結果信号を出力するように構成されており、
    割込み生成器は、前記第2のコンパレータにさらに接続されているとともに、前記第2のコンパレータから前記第2の比較結果信号を受信し、前記第1の比較結果信号または第2の比較結果信号を受信することに対応して前記中央処理ユニットの電圧または周波数を調整するための割込み要求を出力するように構成されている、請求項19に記載のデバイス。
  22. 前記第1のしきい値は、高しきい値であり、
    前記第2のしきい値は、低しきい値であり、
    前記第1のコンパレータは、前記現在のフィルタ値が前記高しきい値よりも大きいとき、前記第1の比較結果信号を出力するように構成されており、
    前記第2のコンパレータは、前記現在のフィルタ値が前記低しきい値よりも小さいとき、前記第2の比較結果信号を出力するように構成されている、請求項21に記載のデバイス。
  23. 前記サブサンプリング回路は、クロックサイクル提示信号を受信し、前記クロックサイクルの数がパケットサイズを超えているとき、前記中央処理ユニット状態提示信号を出力するようにさらに構成されている、請求項21に記載のデバイス。
  24. 前記第1のアルファ係数レジスタと、前記第2のアルファ係数レジスタと、前記第1のしきい値と、前記第2のしきい値と、前記パケットサイズとは、前記デバイスの動作中にユーザによって構成可能である、請求項23に記載のデバイス。
JP2015038004A 2010-01-11 2015-02-27 中央処理ユニットをリアルタイムで監視するシステムおよび方法 Active JP5922816B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US29400610P 2010-01-11 2010-01-11
US61/294,006 2010-01-11
US12/859,424 2010-08-19
US12/859,424 US8352759B2 (en) 2010-01-11 2010-08-19 System and method of monitoring a central processing unit in real time

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2013259985A Division JP5710740B2 (ja) 2010-01-11 2013-12-17 中央処理ユニットをリアルタイムで監視するシステムおよび方法

Publications (2)

Publication Number Publication Date
JP2015122111A JP2015122111A (ja) 2015-07-02
JP5922816B2 true JP5922816B2 (ja) 2016-05-24

Family

ID=44259390

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2012548211A Expired - Fee Related JP5484593B2 (ja) 2010-01-11 2011-01-10 中央処理ユニットをリアルタイムで監視するシステムおよび方法
JP2013259985A Expired - Fee Related JP5710740B2 (ja) 2010-01-11 2013-12-17 中央処理ユニットをリアルタイムで監視するシステムおよび方法
JP2015038004A Active JP5922816B2 (ja) 2010-01-11 2015-02-27 中央処理ユニットをリアルタイムで監視するシステムおよび方法

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2012548211A Expired - Fee Related JP5484593B2 (ja) 2010-01-11 2011-01-10 中央処理ユニットをリアルタイムで監視するシステムおよび方法
JP2013259985A Expired - Fee Related JP5710740B2 (ja) 2010-01-11 2013-12-17 中央処理ユニットをリアルタイムで監視するシステムおよび方法

Country Status (6)

Country Link
US (2) US8352759B2 (ja)
EP (1) EP2524301B1 (ja)
JP (3) JP5484593B2 (ja)
KR (1) KR101388837B1 (ja)
CN (2) CN102713789B (ja)
WO (1) WO2011085323A2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8352759B2 (en) 2010-01-11 2013-01-08 Qualcomm Incorporated System and method of monitoring a central processing unit in real time
US8880070B1 (en) * 2012-11-07 2014-11-04 Sprint Communications Company L.P. Time integration of active-mode events and idle-mode events into communication data records
WO2015038478A1 (en) * 2013-09-13 2015-03-19 Marvell World Trade Ltd. Dynamic clock regulation
TWI625622B (zh) 2013-10-31 2018-06-01 聯想企業解決方案(新加坡)有限公司 在多核心處理器系統與運作多核心處理器系統的電腦實施方法
US9560654B1 (en) 2014-06-19 2017-01-31 Sprint Communications Company L.P. Indication of mode transitions of a wireless communication device
US9811142B2 (en) * 2014-09-29 2017-11-07 Apple Inc. Low energy processor for controlling operating states of a computer system
KR102599653B1 (ko) * 2015-11-20 2023-11-08 삼성전자주식회사 냉각 알고리즘을 수행하는 집적 회로와 이를 포함하는 모바일 장치
US10877547B2 (en) 2016-11-18 2020-12-29 Ati Technologies Ulc Application profiling for power-performance management
CN108628726B (zh) * 2017-03-22 2021-02-23 比亚迪股份有限公司 Cpu状态信息记录方法和装置
US11036275B2 (en) * 2019-03-29 2021-06-15 Intel Corporation Detection of known workload patterns
KR20240072682A (ko) 2022-11-17 2024-05-24 고려대학교 산학협력단 Cpu의 이상을 탐지하는 방법 및 이를 위한 장치

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0351902A (ja) * 1989-07-20 1991-03-06 Tokyo Electric Co Ltd データ処理装置
CA2186349C (en) 1994-05-12 2008-09-23 James C. Bunnell Cpu activity monitoring through cache watching
US6175849B1 (en) * 1998-02-10 2001-01-16 Lucent Technologies, Inc. System for digital filtering in a fixed number of clock cycles
FI117523B (fi) * 1998-10-07 2006-11-15 Nokia Corp Menetelmä tehonkulutuksen säätämiseksi
US6272642B2 (en) 1998-12-03 2001-08-07 Intel Corporation Managing a system's performance state
US6647349B1 (en) 2000-03-31 2003-11-11 Intel Corporation Apparatus, method and system for counting logic events, determining logic event histograms and for identifying a logic event in a logic environment
US7032119B2 (en) 2000-09-27 2006-04-18 Amphus, Inc. Dynamic power and workload management for multi-server system
US6941480B1 (en) 2000-09-30 2005-09-06 Intel Corporation Method and apparatus for transitioning a processor state from a first performance mode to a second performance mode
GB0113844D0 (en) * 2001-06-07 2001-08-01 Marconi Comm Ltd Real time processing
US7111179B1 (en) * 2001-10-11 2006-09-19 In-Hand Electronics, Inc. Method and apparatus for optimizing performance and battery life of electronic devices based on system and application parameters
JP4061888B2 (ja) * 2001-11-08 2008-03-19 ソニー株式会社 周波数制御回路
US6804632B2 (en) 2001-12-06 2004-10-12 Intel Corporation Distribution of processing activity across processing hardware based on power consumption considerations
US7337334B2 (en) 2003-02-14 2008-02-26 International Business Machines Corporation Network processor power management
US7240228B2 (en) * 2003-05-05 2007-07-03 Microsoft Corporation Method and system for standby auxiliary processing of information for a computing device
US7240223B2 (en) 2003-05-07 2007-07-03 Apple Inc. Method and apparatus for dynamic power management in a processor system
US7093036B2 (en) 2003-12-11 2006-08-15 International Business Machines Corporation Processor state aware interrupts from peripherals
US7770034B2 (en) * 2003-12-16 2010-08-03 Intel Corporation Performance monitoring based dynamic voltage and frequency scaling
WO2005096634A1 (ja) * 2004-03-30 2005-10-13 Kanazawa University Technolgy Licensing Organization Ltd. マルチタスク処理システム、及び、マルチタスク処理方法
US7594128B2 (en) * 2004-08-04 2009-09-22 Hewlett-Packard Development Company, L.P. Systems and methods to determine processor utilization
US7711966B2 (en) * 2004-08-31 2010-05-04 Qualcomm Incorporated Dynamic clock frequency adjustment based on processor load
CN100412814C (zh) 2005-04-12 2008-08-20 鸿富锦精密工业(深圳)有限公司 中央处理器超频系统及方法
US7594132B2 (en) * 2005-05-18 2009-09-22 Lg Electronics Inc. Computer system with power-saving capability and method for implementing power-saving mode in computer system
US7490254B2 (en) * 2005-08-02 2009-02-10 Advanced Micro Devices, Inc. Increasing workload performance of one or more cores on multiple core processors
US7337339B1 (en) 2005-09-15 2008-02-26 Azul Systems, Inc. Multi-level power monitoring, filtering and throttling at local blocks and globally
WO2007049100A1 (en) 2005-10-27 2007-05-03 Freescale Semiconductor, Inc. System and method for controlling voltage level and clock frequency supplied to a system
US7613941B2 (en) * 2005-12-29 2009-11-03 Intel Corporation Mechanism for self refresh during advanced configuration and power interface (ACPI) standard C0 power state
US8954045B2 (en) * 2006-09-29 2015-02-10 Qualcomm Incorporated Method and apparatus for managing resources at a wireless device
US8869152B1 (en) * 2007-01-11 2014-10-21 Marvell International Ltd. Methods and procedures to dynamically adjust processor frequency
US7945804B2 (en) * 2007-10-17 2011-05-17 International Business Machines Corporation Methods and systems for digitally controlled multi-frequency clocking of multi-core processors
US9459679B2 (en) * 2008-05-13 2016-10-04 Synopsys, Inc. Power manager and method for managing power
US7519843B1 (en) * 2008-05-30 2009-04-14 International Business Machines Corporation Method and system for dynamic processor speed control to always maximize processor performance based on processing load and available power
AR073129A1 (es) * 2008-08-26 2010-10-13 Spx Corp Modulo de osciloscopio digital con deteccion de fallas en la recepcion de la senal.
US8352759B2 (en) 2010-01-11 2013-01-08 Qualcomm Incorporated System and method of monitoring a central processing unit in real time

Also Published As

Publication number Publication date
US20130061069A1 (en) 2013-03-07
CN102713789B (zh) 2015-03-18
US9086877B2 (en) 2015-07-21
JP2013516713A (ja) 2013-05-13
KR20120105049A (ko) 2012-09-24
US8352759B2 (en) 2013-01-08
KR101388837B1 (ko) 2014-04-23
CN104615229A (zh) 2015-05-13
CN104615229B (zh) 2018-01-05
JP2014096158A (ja) 2014-05-22
JP5484593B2 (ja) 2014-05-07
WO2011085323A2 (en) 2011-07-14
EP2524301B1 (en) 2016-11-30
WO2011085323A3 (en) 2011-12-22
JP5710740B2 (ja) 2015-04-30
EP2524301A2 (en) 2012-11-21
US20110173360A1 (en) 2011-07-14
JP2015122111A (ja) 2015-07-02
CN102713789A (zh) 2012-10-03

Similar Documents

Publication Publication Date Title
JP5922816B2 (ja) 中央処理ユニットをリアルタイムで監視するシステムおよび方法
KR101518163B1 (ko) 멀티 코어 중앙 처리 장치에서의 코어 클록들을 비동기적으로 및 독립적으로 제어하는 시스템 및 방법
KR101553201B1 (ko) 포터블 컴퓨팅 디바이스에서 프로세서를 지원하는 인터럽트 레이턴시 임계 및 리소스의 동적 조정
JP5660643B2 (ja) 保証された遷移期限で中央処理装置電力を制御するためのシステムおよび方法
KR101516859B1 (ko) 보장된 정상 상태 데드라인을 가진 중앙 처리 장치 전력을 제어하는 시스템 및 방법
JP5593404B2 (ja) プロセッサにおいてスレッドを実行するシステムおよび方法
EP2524272B1 (en) System and method of sampling data within a central processing unit
JP5460883B2 (ja) ワークロードの要求に基づいて動的なクロックおよび電圧切替えアルゴリズムを調整するシステムおよび方法
CN117407133A (zh) 一种任务处理方法、装置及计算机可读存储介质

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160310

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160318

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160414

R150 Certificate of patent or registration of utility model

Ref document number: 5922816

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250