(57)【要約】【課題】  プロセッサ上で実行するソフトウェア命令の電力消費量をプロファイルするためのシステムおよび方法を提供すること。【解決手段】  電力測定回路は、様々なソフトウェア命令を実行するプロセッサの電力消費量レベルを記録する。プロファイリングツールは、プロセッサ上で実行中の命令を追跡および識別し、これらの命令と、これらの命令の実行中に消費された電力の間の関連付けを生成する。この電力プロファイルにより、これらの命令の実行中に消費された電力の量に対して、命令の正確な分離および識別が可能となる。【選択図】  図４
2005025754.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサ読み取り可能媒体であって、
プロセッサ上で実行する命令を識別すること、
電力消費量データを電力測定回路から受信すること、および、
前記電力消費量データを前記識別された命令と相関させることを行うために構成されたプロセッサ実行可能命令を備えることを特徴とするプロセッサ読み取り可能媒体。
【請求項２】
前記識別することは、
前記プロセッサに割り込むこと、
前記プロセッサのプログラムカウンタをサンプリングすること、
ルックアップテーブルをスキャンして、前記プログラムカウンタによって指示されたアドレスを発見すること、および
前記アドレスに位置する命令を決定することを備えることを特徴とする請求項１に記載のプロセッサ読み取り可能媒体。
【請求項３】
前記受信することは、
前記電力測定回路に問い合わせること、および、
デジタル電力読み取りを前記電力測定回路から、前記問合せに基づいて受信することを備えることを特徴とする請求項１に記載のプロセッサ読み取り可能媒体。
【請求項４】
前記受信することは、デジタル電力の読み取りを前記電力測定回路から、あらかじめ設定された時間間隔で受信することを備えることを特徴とする請求項１に記載のプロセッサ読み取り可能媒体。
【請求項５】
前記相関させることは、識別された命令と、前記プロセッサ上で前記識別された命令の実行中に消費された電力の測定量を関連付けることを備えることを特徴とする請求項１に記載のプロセッサ読み取り可能媒体。
【請求項６】
前記相関させることは、複数の電力消費量値および複数の識別された命令を含む電力プロファイルを生成することを備え、各電力消費量値は前記電力プロファイルにおいて、識別された命令に関連付けられることを備えることを特徴とする請求項１に記載のプロセッサ読み取り可能媒体。
【請求項７】
前記電力プロファイルは、
データのペアを有するテーブルであって、データの各ペアは、電力消費量値および識別された命令を備えるテーブルと、
電力消費量値を、識別された命令と相関させるグラフとを備えるグループから選択されることを特徴とする請求項６に記載のプロセッサ読み取り可能媒体。
【請求項８】
前記電力消費量データは、前記プロセッサ上の前記命令の実行中に測定された電力消費量値を備えることを特徴とする請求項１に記載のプロセッサ読み取り可能媒体。
【請求項９】
前記プロセッサは、
バッテリ電力により動作可能な埋め込みモバイルＰＤＡ（携帯情報端末）コンピューティング装置と、
携帯電話と、
スマートフォンと、
ノートブックコンピュータと、
デスクトップＰＣ（パーソナルコンピュータ）と、
ワークステーションと、
サーバーと、
メインフレームコンピュータと、
インターネットアプライアンスとを備えるグループから選択された装置のコンポーネントであることを特徴とする請求項１に記載のプロセッサ読み取り可能媒体。
【請求項１０】
ソフトウェア命令を、前記ソフトウェア命令を実行することによって消費された電力の量と関連付けるために構成された、プロセッサ実行可能命令を備えることを特徴とするプロセッサ読み取り可能媒体。
【請求項１１】
前記関連付けることは、埋め込み装置上で実行するソフトウェア命令を、前記ソフトウェア命令の実行中に測定された対応する電力消費量値とマッチさせる、電力プロファイルを生成することを備えることを特徴とする請求項１０に記載のプロセッサ読み取り可能媒体。
【請求項１２】
プロセッサ読み取り可能媒体であって、
ターゲットコンピューティング装置上で実行するソフトウェア命令の電力消費量を測定すること、
アナログ電力測定値をデジタル電力測定値に変換すること、および、
前記デジタル電力測定値をホストコンピュータに送信することを行うために構成されたプロセッサ実行可能命令を備えることを特徴とするプロセッサ読み取り可能媒体。
【請求項１３】
前記デジタル電力測定値を、前記変換の後にメモリに格納するために構成されたプロセッサ実行可能命令をさらに備えることを特徴とする請求項１２に記載のプロセッサ読み取り可能媒体。
【請求項１４】
前記送信することは、
前記デジタル電力測定値についてのリクエストを前記ホストコンピュータから受信すること、および、
前記デジタル電力測定値を前記ホストコンピュータに、前記リクエストに基づいて送信することを備えることを特徴とする請求項１２に記載のプロセッサ読み取り可能媒体。
【請求項１５】
前記送信することは、前記デジタル電力測定値を前記ホストコンピュータに、あらかじめ設定された時間間隔で送信することを備えることを特徴とする請求項１２に記載のプロセッサ読み取り可能媒体。
【請求項１６】
前記ターゲットコンピューティング装置は、
埋め込みモバイルＰＤＡ（携帯情報端末）と、
携帯電話と、
スマートフォンと、
ノートブックコンピュータと、
デスクトップＰＣ（パーソナルコンピュータ）と、
ワークステーションと、
サーバーと、
メインフレームコンピュータと、
インターネットアプライアンスとを備えるグループから選択されることを特徴とする請求項１２に記載のプロセッサ読み取り可能媒体。
【請求項１７】
ソフトウェア命令を、前記ソフトウェア命令の実行中に消費された電力の量に関連付ける、電力プロファイルを生成するステップを備えることを特徴とする方法。
【請求項１８】
前記ソフトウェア命令の前記実行は、ターゲットコンピューティング装置上のプロセッサによって実行され、前記消費された電力の量は、前記プロセッサによって消費された電力の量であることを特徴とする請求項１７に記載の方法。
【請求項１９】
前記生成するステップは、
プロセッサ上で実行する前記ソフトウェア命令を識別するステップと、
電力消費量データを電力測定回路から受信するステップと、
前記電力消費量データを前記識別されたソフトウェア命令と相関させるステップとを備えることを特徴とする請求項１７に記載の方法。
【請求項２０】
プロセッサ上で実行するソフトウェア命令を識別し、電力消費量データを受信し、前記電力消費量データを前記ソフトウェア命令と相関させて、各ソフトウェア命令が、前記ソフトウェア命令の前記実行中に消費された電力の量を指示する電力消費量値に関連付けられるようにするように構成された、電力プロファイラを備えることを特徴とするコンピュータ。
【請求項２１】
ルックアップテーブルをさらに備え、前記電力プロファイラは、前記プロセッサ上のプログラムカウンタを監視するように、かつ、前記ソフトウェア命令を、前記ルックアップテーブルを通じて、前記プログラムカウンタに基づいて識別するようにさらに構成されることを特徴とする請求項２０に記載のコンピュータ。
【請求項２２】
それぞれが、対応するソフトウェア命令とペアにされて、前記対応するソフトウェア命令の実行中に消費された電力の量を指示する、複数の電力消費量値を有する電力プロファイルをさらに備えることを特徴とする請求項２０に記載のコンピュータ。
【請求項２３】
ソフトウェア命令を、前記ソフトウェア命令の実行中に消費された電力と相関させる、電力プロファイルを生成するように構成された電力プロファイラを備えることを特徴とするコンピュータ。
【請求項２４】
コンピュータであって、
プロセッサ上で実行する命令を識別する手段と、
電力消費量データを電力測定回路から受信する手段と、
前記電力消費量データを前記識別された命令と相関させる、電力プロファイルを生成する手段とを備えることを特徴とするコンピュータ。
【請求項２５】
前記命令を識別する手段は、
前記プロセッサに割り込む手段と、
前記プロセッサのプログラムカウンタをサンプリングする手段と、
前記プログラムカウンタに基づいて命令を決定する手段とを備えることを特徴とする請求項２４に記載のコンピュータ。
【請求項２６】
前記受信する手段は、
前記電力測定回路を問い合わせる手段と、
デジタル電力読み取りを前記電力測定回路から、前記問合せに基づいて受信する手段とを備えることを特徴とする請求項２４に記載のコンピュータ。
【請求項２７】
電力測定回路であって、
埋め込み装置上で実行するソフトウェア命令の電力消費量を測定する手段と、
アナログ電力測定値をデジタル電力測定値に変換する手段と、
前記デジタル電力測定値をホストコンピュータへ、前記ホストコンピュータからの問合せに応答して送信する手段とを備えることを特徴とする電力測定回路。
【請求項２８】
前記デジタル電力測定値を格納するための手段をさらに備えることを特徴とする請求項２７に記載の電力測定回路。
【請求項２９】
コンピュータであって、
プロセッサと、
メモリに格納され、前記プロセッサ上で実行可能な命令と、
前記プロセッサによって、各命令の実行中に消費された電力を測定するように構成された電力測定回路とを備えることを特徴とするコンピュータ。
【請求項３０】
前記電力測定回路の一部として統合され、アナログ電力信号をデジタル電力消費量データに変換するように構成された、アナログ−デジタルコンバータをさらに備えることを特徴とする請求項２９に記載のコンピュータ。
【請求項３１】
埋め込みモバイルＰＤＡ（携帯情報端末）と、
携帯電話と、
スマートフォンと、
ノートブックコンピュータと、
デスクトップＰＣ（パーソナルコンピュータ）と、
ワークステーションと、
サーバーと、
メインフレームコンピュータと、
インターネットアプライアンスとを備えるグループから選択された装置として実施されることを特徴とする請求項２９に記載のコンピュータ。
【請求項３２】
システムであって、
識別されたソフトウェア命令を、前記識別されたソフトウェア命令の実行中に消費された電力の量と相関させるように構成された電力プロファイラと、
前記識別されたソフトウェア命令を識別するための情報を有するルックアップテーブルと、
前記電力プロファイラによって生成され、電力消費量値および識別されたソフトウェア命令を有する電力プロファイルであって、各電力消費量値は、対応する識別されたソフトウェア命令とペアにされる電力プロファイルとを備えることを特徴とするシステム。
【請求項３３】
前記識別されたソフトウェア命令の実行中に消費された前記電力の量を測定するように構成された電力測定回路と、
前記電力測定回路の一部として、アナログ電力消費量測定値をデジタル電力消費量データに変換するように構成された、アナログ−デジタルコンバータとをさらに備えることを特徴とする請求項３２に記載のシステム。
【請求項３４】
前記電力測定回路は、その上で前記識別されたソフトウェア命令が実行されるターゲットコンピューティング装置のコンポーネントであることを特徴とする請求項３３に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にモバイル装置におけるバッテリ寿命を延ばすことに関し、より詳細には、そのような装置上で実行する命令の電力消費量のプロファイリングに関する。
【背景技術】
【０００２】
ポータブル装置（例えば、ノートブックコンピュータ、サブノートブックコンピュータ、携帯電話、ＰＤＡなど）における電力消費量は、ユーザーにとって大変重要である。結局、このような装置上で得られる電力の程度は、これらの装置をポータブルであると見なすことができる程度である。この一般化の時々発生する例外は、デスクトップの代替コンピュータとして使用されるノートブックコンピュータである可能性がある。このシナリオでは、何人かのユーザーは単にこのようなノートブックコンピュータをある電力コンセントから別の電力コンセントへと移動させることを期待し、したがって、信頼できるポータブル電力についての必要性が減る。しかし、大多数のユーザーは一般に、ノートブックコンピュータおよび他のポータブル装置をモバイル設定において使用することを期待し、この設定では電力コンセントが使用できない。
【０００３】
このような装置において使用されるコンポーネントは、著しい電力を引き出す可能性がある。例えば、通常のノートブックにおけるコンポーネントは、ノートブックがあるアプリケーションを実行する間に２５ワット以上を引き出す可能性がある。電力消費量は重要であり、これは、電力消費量によりどのくらい長くバッテリが持続するかが決定され、かつ、どのくらい多くの熱をノートブックのケースが放散し、なお快適に触れることができる状態であるかの制限があるからでもある。熱は、ＰＤＡおよび携帯電話に関してそれほど問題ではないが、これらの装置は、はるかに長いバッテリ寿命を有することが期待され、そのため電力消費量はなお主要な懸念である。
【０００４】
このようなポータブル装置のためのコンポーネントを提供するコンポーネントメーカは継続的に、バッテリ電力を節約するためにそれらのコンポーネントが必要とする電力量を削減しようと努めている。例えば、ノートブックコンピュータ向けのチップメーカは、ノートブックコンピュータが「スリープ」モードであるとき、あるいは、ＡＣ電力からバッテリ電力に切り替えられるとき、プロセッサのクロック速度および電圧レベルを自動的に低減する能力など、省電力機能を組み込むことができる。他の省電力機能には、あるソフトウェア機能を別のハードウェアチップに埋め込むこと、回路のブロック（例えば、携帯電話内のチップの無線部分）を使用中でないときにシャットダウンすること、ハードウェアコンポーネントを、ある期間に渡って使用されていないときにオフにすること（例えば、表示画面をオフにすること）などが含まれる可能性がある。
【０００５】
これらの省電力機能はいくつかの利点を提供するが、これらは一般に、通常の「ランタイム」環境における電力消費量をどのように削減するかという問題に対処することができず、かつ／または、これらは他の欠点を有する。例えば、ノートブックコンピュータがスリープモードであるか、バッテリ電力上で実行中であるとき、プロセッサのクロック速度および電圧レベルを下げることは、あるアプリケーションのパフォーマンスに悪影響を与える可能性がある。あるソフトウェア機能を埋め込むための追加のハードウェアの使用には、ハードウェアのための追加のスペースおよびコストが必要となる。ある期間に渡って使用中でない回路のブロックおよび他のハードウェア（例えば、表示画面）をシャットダウンすることは、これらのコンポーネントが使用中でないときにのみ、省電力となる。したがって、現在の方法は、このようなポータブル装置の通常のランタイム電力消費量を削減する問題に対処しないだけでなく、装置上で実行するどのようなソフトウェアが電力を消費するのかについてのいかなる有用な情報も提供しない。
【０００６】
さらに、現在のモバイルアプリケーションおよび埋め込み開発ツールは、このようなモバイル装置上で実行するソフトウェアの電力消費量をプロファイルするためのメカニズムを提供しない。このような装置における電力消費量を監視および最適化するための従来の技術は、オシロスコープおよびロジックアナライザを使用した、労働集約的なハードウェアトレーシングおよびソフトウェアデバッギングを必要とする。このような技術は、ソフトウェアコードにおいて電力消費量が過剰になる可能性のある厳密な位置を分離する助けとならない。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
したがって、埋め込みのバッテリ電力の装置における電力消費量を削減する助けとするために、特定のソフトウェアが実行されるときの電力消費量をプロファイルするための方法についての必要性が存在する。
【０００８】
本明細書では、ソフトウェア実行の電力プロファイリングを説明する。
【課題を解決するための手段】
【０００９】
一実施態様によれば、プロセッサ上で実行する命令が識別される。電力消費量データが電力測定回路から受信され、識別された命令と相関される。
【００１０】
もう１つの実施態様によれば、電力プロファイルが生成される。電力プロファイルは、複数の電力消費量値および複数の識別された命令を含む。電力消費量の各値は、電力プロファイルにおいて、識別された命令に関連付けられる。
【００１１】
同じ参照番号は、図面の全体に渡って、類似のコンポーネントおよび特徴を参照するために使用される。
【発明を実施するための最良の形態】
【００１２】
（概観）
以下の考察は、プロセッサ上で実行するソフトウェア命令の電力消費量をプロファイルするためのシステムおよび方法を対象とする。電力測定回路は、様々なソフトウェア命令を実行するプロセッサの電力消費量レベルを記録する。プロファイリングツールは、プロセッサ上で実行中の命令を追跡および識別し、これらの命令と、これらの命令の実行中に消費された電力の間の関連付けを生成する。この関連付けは、プロファイルであり、例えば、プロセッサ上で実行された各命令について消費された電力の量を相関させるテーブルまたはグラフとして表現される。この電力プロファイルは、これらの命令の実行中に消費された電力の量に対応した命令の正確な分離および識別を可能とする。
【００１３】
開示するシステムおよび方法の利点には、ソフトウェア開発者が、実行中に過剰な電力量を消費するコードのセクションを分離する方法を提供することが含まれる。過剰な電力量を消費するコードセクションは、同じ機能を実行してなお実行中に消費される電力量を削減する構成への代替が容易にできる。特に、これらのコードセクションを繰り返しを基調として実行する場合、このようなコードセクションの識別および再構成を通じて、著しい省電力をモバイルの埋め込みおよび他の装置上で実現することができる。
【００１４】
（例示的環境）
図１は、電力プロファイリングを実施するために適切である例示的開発環境１００を例示する。例示的環境１００では、ターゲット装置１０２がホストコンピュータ１０４および電力測定回路１０６に、データ通信バス１０８を介して結合される。例示的環境１００では、ホストコンピュータ１０４および電力測定回路１０６もまた、バス１０８を介して結合される。バス１０８は、様々な汎用データ通信バスのいずれかを表すように意図され、これには例えば、Ｉ２Ｃ（Ｉｎｔｅｒ−ＩＣ）バス、ＳＰＩ（シリアル周辺インターフェイス）バス、ＵＳＢ（ユニバーサルシリアルバス）などが含まれる。バス１０８は単一のバスではないが、むしろ、装置１０２、１０４および１０６を相互接続する、１０８（ａ）、１０８（ｂ）および１０８（ｃ）として例示するいくつかのバスインスタンスで構成される。
【００１５】
ターゲット装置１０２は、様々な従来のコンピューティング装置のいずれかを表すように意図される。このような装置１０２は、例えば、デスクトップＰＣ、ノートブックまたは他のポータブル／ハンドヘルドコンピュータ、ワークステーション、サーバー、メインフレームコンピュータ、インターネットアプライアンスなどが含むことができる。しかし、電力プロファイリングは特に、バッテリ電力上で機能することができるモバイル／ポータブルコンピューティング装置の開発において有益である可能性がある。したがって、ターゲット装置１０２を一般に、この開示の全体に渡って、バッテリ電力上で機能することができるモバイルコンピューティング装置であるとして論じる。
【００１６】
このようなモバイル装置１０２には通常、埋め込みのハンドヘルド／モバイル装置、ＰＤＡ（例えば、Ｈｅｗｌｅｔｔ−ＰａｃｋａｒｄのｉＰＡＱ、３ＣｏｍのＰａｌｍＰｉｌｏｔ、ＲＩＭのＢｌａｃｋｂｅｒｒｙ）、携帯電話、スマートフォンなどが含まれる。このような埋め込みのハンドヘルド／モバイル装置は一般に、通常のパーソナルコンピュータよりも制限されたコンピューティング能力を備える。このような能力には例えば、個人またはビジネス使用のための情報格納および検索能力が含まれる可能性があり、これには、スケジュールカレンダおよびアドレス帳情報の保持が含まれる。このような装置は通常、例えばＷｉｎｄｏｗｓ（登録商標）ＣＥなど、あるバージョンのオペレーティングシステムを提供する。様々なアプリケーションがこのような装置で使用でき、これらのアプリケーションは、通常のパーソナルコンピュータで使用できる完全なバージョンと比較して制限された機能性を提供する。したがって、モバイル、埋め込みのターゲット装置１０２は、制限されたバージョンの電子メール、電話、ＳＭＳ（ショートメッセージサービス）、オーガナイザおよびウェブアプリケーションを含むことができる。ターゲット装置１０２にはまた、ラップトップまたはノートブックコンピュータも含まれる可能性がある。したがって、ターゲット装置１０２をノートブックコンピュータとして実施することができる。そしてこのノートブックコンピュータは、Ｍｉｃｒｏｓｏｆｔ（登録商標）から提供されるＷｉｎｄｏｗｓ（登録商標）ブランドのオペレーティングシステムなどのオープンプラットフォームオペレーティングシステム、および、電子メール、カレンダリング、タスクの編成、文書処理、ウェブブラウジングなど、一般的なコンピューティング機能を実行するための様々なアプリケーションを実行する。ターゲット装置１０２の様々な実施態様を実施するための例示的コンピューティング環境を、本明細書でより詳細に以下で図９を参照しながら説明する。
【００１７】
電力測定回路１０６は、ターゲット装置１０２上の電力消費量を測定することができるカスタム回路である。電力測定回路１０６は、有効電力消費量をアナログフォーマットにおいて測定すること、および、アナログ電力消費量測定値をデジタルフォーマットに変換することを可能にする。電力測定回路１０６は、通常、このようなデジタルフォーマットの電力消費量情報の格納、および、この情報をホストコンピュータ１０４へ、データ通信バス１０８（ｃ）を介して通信することも可能にする。
【００１８】
ホストコンピュータ１０４は、様々な従来のコンピューティング装置のいずれにすることもできる。このホストコンピュータ１０４は、デスクトップＰＣ、ノートブックまたはポータブルコンピュータ、ワークステーション、サーバー、メインフレームコンピュータ、インターネットアプライアンスなどを含む。ホストコンピュータ１０４は一般に、ターゲット装置１０２上の電力消費量を、装置１０２上で実行するソフトウェア命令に対してプロファイルするように構成される。ホストコンピュータ１０４は、どのソフトウェア命令がターゲット装置１０２上でその時々に実行中であるかを追跡および識別し、電力消費量情報を電力測定回路１０６から受信する。ホストコンピュータ１０４は、電力プロファイルを生成する。その電力プロファイルは、ターゲット装置１０２上の電力消費量を、装置１０２上の特定のソフトウェア命令の実行と相関させる。ホストコンピュータ１０４を実施するための例示的コンピューティング環境を、本明細書でより詳細に以下で図９を参照して説明する。
【００１９】
（例示的実施形態）
図２は、電力プロファイリングを実施するように構成されたターゲット装置１０２、ホストコンピュータ１０４、および電力測定回路１０６の例示的実施形態を例示する。ターゲット装置１０２は埋め込み装置１０２として実施され、プロセッサ２００およびメモリ２０２を含む。プロセッサ２００はプログラムカウンタ２０４を含む。プログラムカウンタ２０４はプロセッサ２００内のレジスタであり、メモリ２０２からの実行されるべき次の命令２０６のアドレスを含む。プロセッサ２００を後続の命令２０６に向けさせるために、各命令２０６が取得された後、プログラムカウンタ２０４は、自動的に増分される。加えて、特殊命令を提供することができ、これは、命令２０６の実行のシーケンスを、新しい値をプログラムカウンタ２０４に書き込むことによって変更する。このような命令２０６には例えば、ＪＵＭＰ命令、ＣＡＬＬ命令およびＲＴＳ（サブルーチンからの戻り）命令が含まれる。メモリ２０２内の命令２０６には、オペレーティングシステム、様々なアプリケーションプログラム、装置ドライバなどの一部であるいずれかの実行可能な命令が含まれる可能性がある。
【００２０】
電力測定回路１０６は、典型的には、アナログ−デジタルコンバータ（ＡＤＣ）２０８、通信インターフェイス２１０およびメモリ２１２を含む。ＡＤＣ２０８は好ましくは高精度のアナログ−デジタルコンバータであり、これは例えば、Ｎａｔｉｏｎａｌ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ  ＡＤＣ１２６６２などである。ＡＤＣ２０８は通常、埋め込み装置１０２上の命令２０６を実行するプロセッサ２００の有効電力消費量を測定するように構成される。別法として、ＡＤＣ２０８を、埋め込み装置１０２全体の有効電力消費量を装置１０２上の命令２０６の実行中に測定するように構成することができる。電力消費量は通常、ミリアンペアまたはミリワット（それぞれ、ｍＡまたはｍＷ）において測定される。
【００２１】
図３は、回路１０６上の通常のＡＤＣ２０８を埋め込み装置１０２に結合させて電力消費量を測定することができる方法の一実施例を例示する。図３は、埋め込み装置１０２の電力消費量を測定するように構成されたＡＤＣ２０８を例示するが、これをまた、プロセッサ２００など、埋め込み装置１０２の様々なコンポーネントの電力消費量を測定するように構成することもできる。ＡＤＣ２０８は通常、装置１０２からの連続的に可変（すなわち、アナログ）の電力消費量信号をデジタル（離散的）形式に変換する。装置１０２からのアナログ電力消費量信号は、通常、命令２０６が埋め込み装置１０２上のプロセッサ２００によって実行されている時のレート以上のレートでサンプリングされる。この電力サンプルレートは、ホストコンピュータ１０４上のプロファイラ２２０が埋め込み装置１０２のプロセッサ２００上のプログラムカウンタ２０４をサンプリングするレートにすることもできる。このことについて以下でより詳細に論じる。ＡＤＣ２０８のデジタル出力状態の数は、ＡＤＣ２０８の精度によって定義される。例えば、１アンペア／１２ビットのＡＤＣ２０８は、４０９６の異なる離散出力値を提供することができ、それぞれが０．２ミリアンペア（すなわち、１アンペア／４０９６）の分解能を表す。
【００２２】
ＡＤＣ２０８によってデジタル形式に変換された各電力消費量値は通常、ホストコンピュータ１０４に転送される前に、電力消費量データ２１４として電力測定回路１０６上のメモリ２１２に格納される。通信インターフェイス２１０は、メモリ２１２に格納された電力消費量データ２１４をリクエストするホストコンピュータ１０４からの問合せに応答するように構成される。したがって、通信インターフェイス２１０は、ホストコンピュータ１０４からリクエストを受信し、そのリクエストへの応答としてメモリ２１２からホストコンピュータ１０４へ電力消費量データ２１４を返す。通信インターフェイス２１０は、一般に、バス１０８（ｃ）を介してホストコンピュータ１０４と通信することができる、様々なシリアルおよび／またはパラレルインターフェイスのいずれか１つとして実施される。
【００２３】
ホストコンピュータ１０４は、プロセッサ２１６およびメモリ２１８を含み、一般に、本明細書でより詳細に以下で図９を参照して説明する例示的コンピューティング環境によって表すことができる。メモリ２１８は、電力プロファイラ２２０モジュールを含み、この電力プロファイラ２２０は、プロセッサ２１６上で実行して、埋め込み装置１０２上で実行するソフトウェア命令２０６を追跡および識別するように構成される。この点で、電力プロファイラ２２０は一般に、現在使用可能なプロファイラ開発ツールに似ている。このプロファイラ開発ツールは、統計的方法を使用してどのソフトウェア命令およびコンポーネント（すなわち、命令のグループ）がその時々に実行中であるか、ならびに、どのくらい長くソフトウェア命令およびコンポーネントが実行するかを決定する。
【００２４】
使用頻度の高いプロファイリング方法の１つのよく知られている例は、モンテカルロプロファイリングである。モンテカルロプロファイリングでは、プロファイラ（例えば、電力プロファイラ２２０）は、システム（例えば、埋め込み装置１０２上のプロセッサ２００）に非常に高いレートで割り込み、どのソフトウェア命令２０６が現在実行中であるかを調査する。この調査は、割り込まれているプロセッサ２００のプログラムカウンタ２０４のサンプリングを通じて実施される。プログラムカウンタ２０４のサンプリングされた値を使用して、プロファイラ２２０は命令ルックアップテーブル２２２をスキャンして、プログラムカウンタ２０４に関連付けられたメモリアドレスを探し出す。一般に、ルックアップテーブル２２２は、メモリロケーション／アドレスと、コンパイラがソースコードをマシンコードにコンパイルするときに生成されたコンパイル済コードとの間のマッピングである。メモリアドレスから、プロファイラ２２０は、プロセッサ２００が割り込まれたときに実行されていたソフトウェア命令を識別する。ある期間の後、各ソフトウェア命令またはコンポーネントについての「ヒット」の数が表にされ、ソフトウェア開発者は、どのソフトウェアが計算時間の大部分を利用しているかをよりよく理解することができる。
【００２５】
電力プロファイラ２２０は加えて、電力測定回路１０６に問い合わせて、埋め込み装置１０２のその時々の電力消費量レベルを決定するように構成される。電力プロファイラ２２０が電力測定回路１０６に送信する問合せに応答して、電力プロファイラ２２０は、電力測定回路１０６から電力消費量データ２１４を受信する。プログラムカウンタ２０４のサンプルを上述のように取得する度、電力プロファイラ２２０は、電力測定回路１０６に問い合わせるように適合される。したがって、電力プロファイラ２２０がプログラムカウンタ２０４をサンプリングして、プロセッサ２００上で実行するソフトウェア命令を識別する度に、電力プロファイラ２２０は電力測定回路１０６に問い合わせ、プロセッサ２００上のソフトウェア命令の実行中に測定されている電力消費量データ２１４からの値を受信する。別法として、電力プロファイラ２２０は、間隔を置いて電力測定回路１０６に問い合わせ、電力消費量データ２１４の値のグループを受信することができ、次いでこの電力消費量データ２１４が、プロセッサ２００上で実行された識別されたソフトウェア命令と相関する。したがって、電力消費量データ２１４は、電力プロファイラ２２０からリアルタイムで送信された問合せにつき１つの値として受信することができ、あるいはこの電力消費量データ２１４を、電力測定回路１０６上のメモリ２１２に以前から格納されている電力消費量値のグループとして受信することができる。
【００２６】
電力プロファイラ２２０はまた、電力測定回路１０６から受信された電力消費量データ２１４を、埋め込み装置１０２のプロセッサ２００上で実行するソフトウェア命令２０６と相関させるようにも構成される。電力プロファイラ２２０は、電力プロファイル２２４を生成し、これは、埋め込み装置１０２のプロセッサ２００上で実行する正確なソフトウェア命令のために消費された電力を定量化する。電力プロファイル２２４を様々な形式において表すことができ、これには例えば、表またはグラフが含まれる。これは、ソフトウェア命令を識別する情報と、識別されたソフトウェア命令の実行中に測定された、対応する電力消費量値とのペアを提供する。
【００２７】
図４は、グラフィカルユーザーインターフェイスの一実施例を例示したもので、これは電力プロファイラ２２０によって、電力プロファイル２２４内の情報を開発者に伝達するために生成することができる。図４に例示された電力プロファイル２２４は、グラフの形式において示され、そのグラフは電力消費量のレベル４００と、埋め込み装置１０２上で実行する様々なアプリケーションからの様々なソフトウェア命令４０２の間の相関を示す。グラフの上半分４０４における太い横線は、どのソフトウェア命令４０２が現在実行中であるかを示すように意図される。グラフの下半分４０６における太い横線は、グラフの上半分に示したような現在実行中のソフトウェア命令の実行中に消費された電力のレベルを示すように意図される。例えば、命令「ｓｈｅｌｌ．ｅｘｅ＜＜０ｘ２ＤＦＤ０９８Ｅ＞＞」４０８が実行するとき、電力消費量は約９０ｍＡ４１０であるが、命令「ＣＥＭＧＲＣ．ｅｘｅ＜＜０ｘ６ＤＤＥ７６＞＞」４１２が実行するとき、電力消費量は約５０ｍＡ４１４である。
【００２８】
一般に、図４に示されたものなど、電力プロファイル２２４において開発者に提示された電力プロファイリング情報は、開発者がモバイル装置１０２上のランタイム電力消費量の増大があるコードの中に「ホットスポット」を識別する助けとなることが可能である。例えば、図４のプロファイルにおいて、「ｒｅａｄｄｒ．ｅｘｅ＜＜０ｘＣＤ０７Ａ２ＣＥ＞＞」４１６が実行中であるとき、電力消費量は、「ＮＫ．ｅｘｅ＜＜０ｘ０ＤＦＦＦ００２＞＞」４１８へのファンクションコールのために劇的に増大する。したがって、もし省電力のために可能であるなら、「ＮＫ．ｅｘｅ＜＜０ｘ０ＤＦＦＦ００２＞＞」４１８ファンクションコールを除去することが有利であることに開発者は気づくことができる。
【００２９】
図４に示す電力プロファイル２２４などを用いて、開発者が、それらのソフトウェアモジュールのランタイム電力消費量をプロファイルするとき、開発者は、他のものよりも電力使用の少ない、ある特定の汎用プログラミング構成体およびアルゴリズムを識別することができるはずである。例えば、再帰を用いて頻繁に実行するアルゴリズムは、反復を使用するものよりも多くの電力を消費する可能性がある。同様に、ポーリングは割り込みのために待機するよりも少ない電力を消費する可能性があり、あるいは、不要なコンテキストスイッチの防止は、電力を劇的に削減する可能性などがある。さらに、非常に高い精度のプロファイリングデータを使用することによって、他のものより多くの電力を使用する、特定のハードウェア依存型ＣＰＵ命令を識別できる可能性がある。
【００３０】
図５は、電力プロファイリングを実施するように構成されたターゲット装置１０２、ホストコンピュータ１０４、および電力測定回路１０６のもう１つの例示的実施形態を例示する。図２の、前の実施形態の場合、ターゲット装置１０２は、埋め込み装置１０２として実施される。加えて、図５の埋め込み装置１０２は一般に、上述のように動作するように構成される。しかし、図５の実施形態では、埋め込み装置１０２は電力測定回路１０６を含む。電力測定回路１０６は、図２の実施形態に関して上述したものに類似の方法で機能する。しかし、電力測定回路１０６が埋め込み装置１０２に統合されるので、一実施態様において、電力測定回路１０６は、メモリ２０２など、埋め込み装置１０２の様々なコンポーネントを共有することができる。一実施例として、図５は、埋め込み装置１０２上のメモリ２０２に、電力消費量データ２１４を電力測定回路１０６によって格納されるものとして例示する。
【００３１】
（例示的方法）
図１の例示的開発環境１００などの環境において電力プロファイリングを実施するための方法の実施例を、このとき主に図６〜８の流れ図を参照して説明する。これらの方法は一般に、図２〜５に関して上述した例示的実施形態に適用される。説明する方法の要素は、いかなる適切な手段によって実行することもできる。これらの手段には、例えば、ＡＳＩＣ上のハードウェアロジックブロックよる手段、あるいは、プロセッサ読み取り可能媒体上に定義された、プロセッサ読み取り可能命令の実行による手段などが含まれる。
【００３２】
「プロセッサ読み取り可能媒体」は、本明細書で使用されるとき、プロセッサによる使用またはそれによる実行のための命令を含み、格納し、通信し、伝搬し、あるいは移送することができる、いかなる手段にすることもできる。プロセッサ読み取り可能媒体を、限定なしに、電子、磁気、光、電磁気、赤外線、または半導体のシステム、装置、装置または伝搬媒体にすることができる。プロセッサ読み取り可能媒体のより具体的な実施例には、特に、１つまたは複数のワイヤを有する電気接続（電子）、ポータブルコンピュータディスケット（磁気）、ランダムアクセスメモリ（ＲＡＭ）（磁気）、読み取り専用メモリ（ＲＯＭ）（磁気）、消去可能なプログラマブルな読み取り専用メモリ（ＥＰＲＯＭまたはフラッシュメモリ）、光ファイバ（光）、再書き込み可能なコンパクトディスク（ＣＤ−ＲＷ）（光）、および、ポータブルなコンパクトディスク読み取り専用メモリ（ＣＤＲＯＭ）（光）が含まれる。
【００３３】
図６は、プロセッサ上で実行するソフトウェア命令の電力プロファイリングを実施するための例示的方法６００を示す。プロセッサは一般に、バッテリ電力上で動作することができる、埋め込み装置１０２のコンポーネントである。ブロック６０２で、プロセッサ上で実行する命令が識別される。識別プロセスを一般に以下で方法７００に関して論じる。但し、方法７００は方法６００の拡張である。
【００３４】
方法６００のブロック６０４で、電力消費量データは、電力測定回路１０６から受信される。電力測定回路１０６は通常、ソフトウェア開発ボードの一部であり、あるいはこれは埋め込み装置１０２自体の上に存在することができる。電力測定回路１０６は通常、埋め込み装置１０２上で様々なソフトウェア命令を実行するために実施されている処理回路の電力消費量を測定するように構成される。しかし、埋め込み装置１０２全体の電力消費量を測定するように構成することもできる。電力プロファイラ２２０を実行するホストコンピュータ１０４は通常、電力消費量データを、電力測定回路に問い合わせることにより受信する。しかし、ホストコンピュータ１０４は電力消費量データを電力測定回路から、ある固定された間隔で自動的に受信することができる。
【００３５】
ブロック６０６で、電力消費量データは、識別された命令と相関される。ホストコンピュータ１０４上で実行する電力プロファイラ２２０は、埋め込み装置１０２上で実行する各命令を、各識別された命令の実行中に埋め込み装置１０２の処理回路によって消費される電力の測定量（すなわち、電力測定回路１０６によって測定された量）と関連付ける。電力プロファイラ２２０は電力プロファイルを生成し、この電力プロファイルが、埋め込み装置１０２上で、ソフトウェア命令の実行のために消費される電力を追跡する。したがって、電力プロファイルは通常、埋め込み装置１０２上で実行された、識別されたソフトウェア命令にそれぞれ関連付けられた、多数の電力消費量値を含む。電力プロファイルは、様々な形式において実施することが可能で、これには例えば、電力消費量値と識別されたソフトウェア命令を一致させるデータのペアを有する表、または、電力消費量値を識別されたソフトウェア命令と視覚的に相関させるグラフが含まれる。
【００３６】
図７は、方法６００の拡張である、ソフトウェア命令の電力プロファイリングを実施するための例示的方法７００を示す。方法７００は方法６００のブロック６０２から拡張し、一般に、プロセッサ上で実行するソフトウェア命令の識別を説明する。プロセッサは一般に、バッテリ電力上で動作することができる、埋め込み装置１０２のコンポーネントである。方法７００のブロック７０２で、プロセッサが割り込まれる。通常、プロセッサが割り込まれるとき、プロセッサはソフトウェア命令をランタイム環境で実行中である。割り込みは、電力プロファイラ２２０を実行するホストコンピュータ１０４から来る。
【００３７】
ブロック７０４で、プロセッサ上のプログラムカウンタがサンプリングされる。プログラムカウンタはプロセッサ内のレジスタであり、メモリからの実行されるべき次のソフトウェア命令のアドレスを含む。一般に、ホストコンピュータ１０４上で実行する電力プロファイラ２２０が、プロセッサが割り込まれるときにどの命令が実行中であるかを識別することを可能にするものは、プログラムカウンタの値である。ブロック７０６で、ルックアップテーブルは、読み取とられ、プログラムカウンタによって示されたメモリ内のアドレスが決定する。ルックアップテーブルは、埋め込み装置上に格納されるソフトウェア命令の、以前のコンパイル中に生成された表である。ホストコンピュータ１０４は通常、埋め込み装置１０２のソフトウェアをコンパイルするコンピュータである。したがって、ルックアップテーブルはホストコンピュータ１０４上に存在し、埋め込み装置１０２上のプロセッサが割り込まれてそのプログラムカウンタがサンプリングされるとき、埋め込み装置１０２上で実行する正確な命令の識別を可能にする。
【００３８】
ブロック７０８で、プログラムカウンタから決定されたメモリアドレスに存在するソフトウェア命令が識別される。そのソフトウェア命令は、埋め込み装置１０２上で実行するいかなる数のルーチンまたはアプリケーションからの命令にすることができる。
【００３９】
図８は、もう１つの例示的方法８００を示しており、これは埋め込み装置のプロセッサ上で実行するソフトウェア命令の電力プロファイリングを実施するための方法である。ブロック８０２で、埋め込み装置上で実行するソフトウェア命令の電力消費量は測定される。電力測定回路１０６は通常、ソフトウェア命令を実行するプロセッサの電力消費量を測定するように構成される。しかし、電力測定回路１０６はまた、埋め込み装置上のプロセッサによるソフトウェア命令の実行中に、埋め込み装置１０２全体の電力消費量を測定するように構成することもできる。電力測定回路を埋め込み装置に統合することができ、あるいはこれを、ソフトウェア開発テストボードの一部にすることができる。
【００４０】
ブロック８０４で、埋め込み装置１０２からのアナログ電力消費量測定値は、デジタル測定値に変換される。アナログ−デジタル変換は通常、高精度のアナログ−デジタルコンバータ（ＡＤＣ）２０８によって実施される。この様なＡＤＣにはＮａｔｉｏｎａｌ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ  ＡＤＣ１２６６２などがある。ブロック８０６で、デジタル電力測定値が電力測定回路１０６上のメモリに格納される。ブロック８０８で、電力測定回路１０６は、ホストコンピュータ１０４からリクエストを受信し、電力消費量データを送信する。リクエストを、埋め込み装置１０２のプロセッサ２００上の各命令の実行と同じ程度に頻繁に受信することができる。リクエストをまた、間を置いて受信することもできる。ブロック８１０で、電力測定回路１０６は、デジタル電力消費量測定値をホストコンピュータ１０４に送信することによってリクエストに応答する。転送された電力消費量データを一度に１測定値で、あるいは測定値のグループで送信することができる。送信は、ホストコンピュータ１０４からのリクエストの性質によって決めることが可能である。
【００４１】
１つまたは複数の方法を、流れ図、および、流れ図のブロックに関連付けられたテキストを用いて開示したが、これらのブロックは必ずしも、それらが提示された順序で実行されなければならないとは限らず、代替順序は結果として類似の利点を生じる可能性があることを理解されたい。さらに、これらの方法は排他的ではなく、単独で、あるいは互いとの組み合わせにおいて実行することができる。
【００４２】
（例示的コンピュータ）
図９は、ターゲット装置１０２およびホストコンピュータ１０４の様々な実施形態を実施するために適切な例示的コンピューティング環境を例示する。１つの特定の構成を示すが、ターゲット装置１０２およびホストコンピュータ１０４を他のコンピューティング構成において実施することができる。例えば、図９の例示的コンピューティング環境は一般に、ターゲット装置１０２の特定の実施態様のために通常使用することができるよりもさらに発展したコンピューティング環境である。
【００４３】
コンピューティング環境９００は、汎用コンピューティングシステムをコンピュータ９０２の形態において含む。コンピュータ９０２のコンポーネントには、それだけに限定されないが、１つまたは複数の処理装置９０４、システムメモリ９０６、および、システムバス９０８を含むことができる。このシステムバス９０８は、プロセッサ９０４を含む様々なシステムコンポーネントをシステムメモリ９０６に結合する。
【００４４】
システムバス９０８は、いくつかのタイプのバス構造のいずれかの１つまたは複数を表し、これには、様々なバスアーキテクチャのいずれかを使用する、メモリバスまたはメモリコントローラ、周辺バス、ａｃｃｅｌｅｒａｔｅｄ  ｇｒａｐｈｉｃｓ  ｐｏｒｔ、およびプロセッサまたはローカルバスが含まれる。システムバス９０８の一例は、メザニンバスとしても知られる、Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔｓ（ＰＣＩ）バスである。
【００４５】
コンピュータ９０２は通常、様々なコンピュータ読み取り可能媒体を含む。このような媒体は、コンピュータ９０２によってアクセス可能であるいかなる使用可能な媒体にすることができ、これには、揮発性および不揮発性のメディア、リムーバブルおよび非リムーバブルのメディアが含まれる。システムメモリ９０６は、ランダムアクセスメモリ（ＲＡＭ）９１０などの揮発性メモリ、および／または、読み取り専用メモリ（ＲＯＭ）９１２などの不揮発性メモリの形態におけるコンピュータ読み取り可能媒体を含む。基本入出力システム（ＢＩＯＳ）９１４は、ＲＯＭ９１２に格納され、起動中など、コンピュータ９０２内の複数の要素の間で情報を転送する助けとなる基本ルーチンを含む。ＲＡＭ９１０は通常、処理装置９０４によって即時アクセス可能および／または現在操作されているデータおよび／またはプログラムモジュールを含む。
【００４６】
コンピュータシステム９０２はまた、他のリムーバブル／非リムーバブル、揮発性／不揮発性のコンピュータストレージメディアも含むことができる。例として、図９は、非リムーバブル、不揮発性の磁気メディア（図示せず）に対する読み書きを行うためのハードディスクドライブ９１６、リムーバブル、不揮発性磁気ディスク９２０（例えば「フロッピー（登録商標）ディスク」）に対する読み書きを行うための磁気ディスクドライブ９１８、および、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭまたは他の光メディアなど、リムーバブル、不揮発性の光ディスク９２４に対する読み書きを行うための光ディスクドライブ９２２を例示する。ハードディスクドライブ９１６、磁気ディスクドライブ９１８、および光ディスクドライブ９２２はそれぞれシステムバス９０８に、１つまたは複数のデータメディアインターフェイス９２５によって接続される。別法として、ハードディスクドライブ９１６、磁気ディスクドライブ９１８、および光ディスクドライブ９２２をシステムバス９０８に、ＳＣＳＩインターフェイス（図示せず）によって接続することができる。
【００４７】
ディスクドライブおよびそれらの関連付けられたコンピュータ読み取り可能媒体は、コンピュータ９０２用のコンピュータ読み取り可能命令、データ構造、プログラムモジュールおよび他のデータの不揮発性のストレージを提供する。この実施例は、ハードディスク９１６、リムーバブル磁気ディスク９２０およびリムーバブル光ディスク９２４を例示するが、コンピュータによってアクセス可能であるデータを格納することができる他のタイプのコンピュータ読み取り可能媒体を利用して、例示的コンピューティングシステムおよび環境を実施することもできる。これらのコンピュータ読み取り可能媒体は、磁気カセットまたは他の磁気ストレージ装置、フラッシュメモリカード、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光ストレージ、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、電気的に消去可能なプログラマブルな読み取り専用メモリ（ＥＥＰＲＯＭ）などである。
【００４８】
いかなる数のプログラムモジュールもハードディスク９１６、磁気ディスク９２０、光ディスク９２４、ＲＯＭ９１２および／またはＲＡＭ９１０上に格納することができる。このプログラムモジュールには、例として、オペレーティングシステム９２６、１つまたは複数のアプリケーションプログラム９２８、他のプログラムモジュール９３０およびプログラムデータ９３２が含まれる。このようなオペレーティングシステム９２６、１つまたは複数のアプリケーションプログラム９２８、他のプログラムモジュール９３０およびプログラムデータ９３２の各々（またはそのある組み合わせ）は、ユーザーネットワークアクセス情報のための格納計画の一実施形態を含むことができる。
【００４９】
コンピュータ９０２は、通信メディアとして識別された様々なコンピュータ／プロセッサ読み取り可能媒体を含むことができる。通信メディアは通常、コンピュータ読み取り可能命令、データ構造、プログラムモジュールまたは他のデータを、搬送波または他の移送メカニズムなどの変調データ信号として実施し、いかなる情報配信メディアも含む。「変調データ信号」という用語は、信号における情報を符号化するような方法によってその特性の１つまたは複数が設定または変更されている信号を意味する。限定ではないが、例として、通信メディアは、有線ネットワークまたは直接有線接続などの有線メディア、ならびに、音響、ＲＦ、赤外線および他の無線メディアなどの無線メディアを含ふくむ。上記のいずれの組み合わせも、コンピュータ読み取り可能媒体の範囲内に含まれる。
【００５０】
ユーザーはコマンドおよび情報をコンピュータシステム９０２へ、キーボード９３４およびポインティング装置９３６（例えば「マウス」）などの入力装置を介して入力することができる。他の入力装置９３８（具体的に図示せず）には、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、シリアルポート、スキャナなどが含まれる可能性がある。これらおよび他の入力装置は処理装置９０４へ、システムバス９０８に結合される入力／出力インターフェイス９４０を介して接続されるが、これらを、パラレルポート、ゲームポートまたはユニバーサルシリアルバス（ＵＳＢ）など、他のインターフェイスおよびバス構造によって接続することができる。
【００５１】
モニタ９４２または他のタイプの表示装置もまた、システムバス９０８へ、ビデオアダプタ９４４などのインターフェイスを介して接続することができる。モニタ９４２に加えて、他の出力周辺装置には、スピーカ（図示せず）およびプリンタ９４６など、入力／出力インターフェイス９４０を介してコンピュータ９０２に接続することができるコンポーネントが含まれる可能性がある。
【００５２】
コンピュータ９０２は、ネットワーク環境において、リモートコンピューティング装置９４８など、１つまたは複数のリモートコンピュータへの論理接続を使用して動作することができる。例として、リモートコンピューティング装置９４８は、パーソナルコンピュータ、ポータブルコンピュータ、サーバー、ルータ、ネットワークコンピュータ、ピア装置または他の共通ネットワークノードなどにすることができる。リモートコンピューティング装置９４８を、ポータブルコンピュータとして例示する。このポータブルコンピュータは、本明細書でコンピュータシステム９０２に関連して上述した要素および特徴の多数またはすべてを含むことができる。
【００５３】
コンピュータ９０２とリモートコンピュータ９４８の間の論理接続を、ローカルエリアネットワーク（ＬＡＮ）９５０および一般的なワイドエリアネットワーク（ＷＡＮ）９５２として示す。このようなネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネットおよびインターネットにおいて一般的である。ＬＡＮネットワーキング環境において実施するとき、コンピュータ９０２は、ローカルネットワーク９５０へ、ネットワークインターフェイスまたはアダプタ９５４を介して接続される。ＷＡＮネットワーキング環境において実施するとき、コンピュータ９０２は通常、モデム９５６、またはワイドネットワーク９５２を介して通信を確立するための他の手段を含む。モデム９５６は、コンピュータ９０２の内部または外部にすることができ、システムバス９０８へ、入力／出力インターフェイス９４０または他の適切なメカニズムを介して接続することができる。例示したネットワーク接続は例示的であり、コンピュータ９０２および９４８の間で通信リンクを確立する他の手段を使用できることは理解されよう。
【００５４】
コンピューティング環境９００により例示したものなど、ネットワーク環境では、コンピュータ９０２に関連して示したプログラムモジュールまたはその一部を、リモートメモリストレージ装置に格納することができる。例として、リモートアプリケーションプログラム９５８は、リモートコンピュータ９４８のメモリ装置上に存在する。例示のため、アプリケーションプログラム、および、オペレーティングシステムなどの他の実行可能プログラムコンポーネントを、本明細書で離散ブロックとして例示するが、このようなプログラムおよびコンポーネントは様々な時間にコンピュータシステム９０２の異なるストレージコンポーネント内に存在し、コンピュータのデータプロセッサによって実行されることを理解されたい。
【００５５】
（結論）
本発明を構造的特徴および／または方法的動作に特有の言語において説明したが、付属の特許請求の範囲において定義された本発明が必ずしも、説明した特定の特徴または動作に限定されないことを理解されたい。むしろ、特定の特徴および動作は、特許請求の範囲に記載された本発明を実施する例示的形態として開示される。
【図面の簡単な説明】
【００５６】
【図１】電力プロファイリングを実施するために適切である例示的開発環境１００を例示する図である。
【図２】電力プロファイリングを実施するように構成されたターゲット装置、ホストコンピュータ、および電力測定回路の例示的実施形態を例示する図である。
【図３】埋め込み装置の電力消費量を測定するように構成された電力測定回路のアナログ−デジタルコンバータを例示する図である。
【図４】電力プロファイラによって、電力消費量情報を通信するために生成することができる、グラフィカルユーザーインターフェイスの一実施例を例示する図である。
【図５】電力プロファイリングを実施するように構成されたターゲット装置、ホストコンピュータ、および電力測定回路のもう１つの例示的実施形態を例示する図である。
【図６】プロセッサ上で実行するソフトウェア命令の電力プロファイリングを実施するための例示的方法のブロック図を例示する図である。
【図７】プロセッサ上で実行するソフトウェア命令の電力プロファイリングを実施するための例示的方法のブロック図を例示する図である。
【図８】プロセッサ上で実行するソフトウェア命令の電力プロファイリングを実施するための例示的方法のブロック図を例示する図である。
【図９】ターゲット埋め込み装置およびホストコンピュータを実施するために適切な例示的コンピューティング環境を例示する図である。
【符号の説明】
【００５７】
１０２  ターゲット装置
１０４  ホストコンピュータ
１０６  電力測定回路
１０８  データ通信バス
２００  プロセッサ
２０２  メモリ
２０４  プログラムカウンタ
２０６  命令
２０８  アナログ−デジタルコンバータ（ＡＤＣ）
２１０  通信インターフェイス
２１２  メモリ
２１４  電力消費量データ
２１６  プロセッサ
２１８  メモリ
２２０  電力プロファイラ
２２２  命令ルックアップテーブル
２２４  電力プロファイル
【図１】
2005025754.tif 000003
【図２】
2005025754.tif 000004
【図３】
2005025754.tif 000005
【図４】
2005025754.tif 000006
【図５】
2005025754.tif 000007
【図６】
2005025754.tif 000008
【図７】
2005025754.tif 000009
【図８】
2005025754.tif 000010
【図９】
2005025754.tif 000011