(57)【要約】      （修正有）【課題】ソフトウェアプログラムの電力特性を識別し、電力特性を改善するようにプログラムを変更するためのシステムを提供する。【解決手段】電力測定装置は、データプロセッサに結合され、ソフトウェアプログラムの実行中にデータプロセッサによって使用される電力のプロファイルを決定する。メモリは、電力プロファイルを記憶する。電力測定装置とメモリは、データプロセッサと同じチップ上に集積することができる。システムはプログラムの実行を中断せずに、電力プロファイルを決定して記憶することができる。電力プロファイルは、プログラムの実行中の間隔、しきい値を超えた回数、または他の電力測定基準に関連する複数の電力レベル値を含むことができる。【選択図】図３
2007249961.tif 000002
【特許請求の範囲】
【請求項１】
データプロセッサと、
ソフトウェアプログラムの実行中に前記データプロセッサによって使用される電力を測定するように構成された電力測定装置と、
前記ソフトウェアプログラムに関連する電力プロファイルを記憶するように構成されたメモリと、を備え、前記電力プロファイルは前記電力測定装置により決定されるシステム。
【請求項２】
前記電力測定装置は、前記ソフトウェアプログラムの実行中に前記電力プロファイルを決定するように構成され、前記メモリは前記ソフトウェアプログラムの実行を中断せずに前記電力プロファイルを記憶するように構成された請求項１記載のシステム。
【請求項３】
前記電力プロファイルは、複数の電力レベル値を含み、それぞれの前記電力レベル値は、前記ソフトウェアプログラムの実行中の対応する間隔に関連する請求項１記載のシステム。
【請求項４】
各間隔は複数の命令の実行を含む請求項３記載のシステム。
【請求項５】
前記間隔は実質的に等しい請求項３記載のシステム。
【請求項６】
前記電力測定装置は、複数の間隔のそれぞれの間に前記データプロセッサにより使用される電力をしきい値電力レベルと比較するように構成された比較器を含み、前記電力プロファイルは、前記しきい値電力レベルが超過される複数の間隔を示す単一の値を含む請求項１記載のシステム。
【請求項７】
前記電力測定装置は、複数の間隔のそれぞれの間に前記データプロセッサにより使用される電力をしきい値電力レベルと比較するように構成された比較器を含み、前記電力プロファイルは、複数の値を含み、前記各値は間隔のグループに関連し、前記各値は前記しきい値電力レベルが超過される前記グループ中の複数の間隔を示す請求項１記載のシステム。
【請求項８】
前記電力測定装置及び前記メモリはデータプロセッサと一体化されている請求項１記載のシステム。
【請求項９】
データプロセッサ上でソフトウェアプログラムを実行することと、
前記ソフトウェアプログラムの実行中に前記データプロセッサにより使用される電力を監視することと、
前記ソフトウェアプログラムに対する電力プロファイルを決定することと、前記ソフトウェアプログラムに対する前記電力プロファイルを記憶することと、を含む方法。
【請求項１０】
前記ソフトウェアプログラムを監視すること、前記電力プロファイルを決定すること、および前記電力プロファイルを記憶することは、前記ソフトウェアプログラムの実行を中断せずに、前記ソフトウェアプログラムの実行中に行われる請求項９記載の方法。
【請求項１１】
前記ソフトウェアプログラムに対する前記電力プロファイルを決定することは、複数の電力レベル値を決定することを含み、それぞれの前記電力レベル値は、前記ソフトウェアプログラムの実行中の対応する間隔に関連する請求項９記載の方法。
【請求項１２】
各間隔は複数の命令の実行を含む請求項１１記載の方法。
【請求項１３】
前記間隔は実質的に等しい請求項１１記載の方法。
【請求項１４】
前記ソフトウェアプログラムに対する前記電力プロファイルを決定することは、複数の間隔のそれぞれの間に前記データプロセッサにより使用される電力をしきい値電力レベルと比較することと、前記しきい値電力レベルが超過される複数の間隔を示す単一の値を供給することとを含む請求項９記載の方法。
【請求項１５】
前記ソフトウェアプログラムに対する前記電力プロファイルを決定することは、複数の間隔のそれぞれの間に前記データプロセッサにより使用される電力をしきい値電力レベルと比較することと、複数の値を供給することとを含み、前記各値は間隔のグループに関連し、前記各値は前記しきい値電力レベルが超過される前記グループ中の複数の間隔を示す請求項９記載の方法。
【請求項１６】
前記ソフトウェアプログラムの実行中に前記データプロセッサにより使用される前記電力を監視することは、前記データプロセッサと一体化されている電力測定装置を使用して前記電力を監視することを含む請求項９記載の方法。
【請求項１７】
前記ソフトウェアプログラムに対する前記電力プロファイルを記憶することは、前記データプロセッサと一体化されているメモリ中に前記電力プロファイルを記憶することを含む請求項９記載の方法。
【請求項１８】
さらに、前記電力プロファイルに関連する前記ソフトウェアプログラムの電力使用特性を変更するために、前記ソフトウェアプログラムを修正することを含む請求項９記載の方法。
【請求項１９】
集積データプロセッサであり、
単一の半導体チップ上に構成されたプロセッサコアと、
前記半導体チップ上に構成され、ソフトウェアプログラムの実行中に前記データプロセッサにより使用される電力を測定するように構成された電力測定装置と、
前記半導体チップ上に構成され、前記ソフトウェアプログラムに関連する電力プロファイルを記憶するように構成されたメモリと、を備え、前記電力プロファイルは前記電力測定装置により決定される集積データプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的に電子装置に関し、特にソフトウェアプログラムの実行の異なる時点で、ソフトウェアプログラムにより使用される電力のプロファイルを決定するためのシステム及び方法に関する。
【背景技術】
【０００２】
マイクロプロセッサのような集積回路は益々複雑になっている。これらの装置を形成する回路コンポーネント（例えばトランジスタ、ダイオード、抵抗等）は、同時に益々小型になり、それによりさらに多くの機能を特定の集積回路で実行することができる。回路コンポーネント及び機能の数が増加するにつれて、これらの集積回路により一般的に消費される電力の量も一般的に増加する。回路の電力消費の増加によって、回路内で発生する熱量もまた増加する。この熱は装置の性能に影響する可能性があり、装置に故障を起こす可能性さえもある。
【０００３】
電子装置中の増加した熱量の発生により生じる危険性により、これらの装置内の温度の管理は益々重要になっている。装置は、たいてい温度管理を考慮して設計されており、装置中の温度を制御するのに役立つ様々なハードウェア特徴を含むことができる。例えば、装置は温度を検出するための熱感知回路と、温度が非常に高くなった場合に、装置により行われる動作の速さまたは回数を減少させるための制御システムを含むことができる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
温度を感知し制御する装置及びハードウェア特徴の設計に対して、非常に多くの労力が費やされているが、装置によって実行されるソフトウェアの設計に焦点を当てた労力は比較的少ない。例えば、異なるタイプのソフトウェア命令は演算パワーのレベルを変えることを必要とする（例えば、浮動小数点演算は整数演算よりも計算の上で集中的である）が、この情報はソフトウェア設計よりもハードウェア設計を変更するために使用されていることが認識されている。例えば、マイクロプロセッサは重いコンテキストではなく軽いコンテキスト（例えば、主として浮動小数点演算によるコンテキストではなく整数演算によるコンテキスト）を行うためにコンテキストを切り換えるように設計することができる。
【０００５】
電力に関連する問題を解決するソフトウェア指向の方法は、広く開発されてはいない。あるものは厄介であり、外部ホストコンピュータまたはテストベンチを必要とする。あるものは、個々の命令に対する電力要求を決定するような、比較的狭い目的のために設計されている。さらに別のあるものは、望まれるほど正確ではない（例えば、これらは単にプログラム全体にわたって平均された電力レベルを提供する）情報を提供する。これらのシステムは、プログラムの実行中に電力レベルが変化する方法など、さらに正確な電力情報を容易に決定するためには十分に設計されていない。
【０００６】
ソフトウェアプログラムの電力特性（例えば、時間の関数としての電力要求）を識別し、それらの電力特性を改善するようにプログラムを変更するためのシステム及び方法を提供することが望まれるであろう。
【課題を解決するための手段】
【０００７】
上述した１つ以上の問題は、本発明の様々な実施形態によって解決することができる。概説すると、本発明は、ソフトウェアプログラムに関連する電力プロファイルを決定するためのシステム及び方法を含んでいる。電力プロファイルは複数値プロファイルであってもよく、それらは電力使用特性およびプログラムの対応する電力プロファイルを変更するようプログラムを修正するために使用することができる。
【０００８】
一実施形態は、データプロセッサ、電力測定装置、およびメモリを含むシステムを備えている。電力測定装置は、データプロセッサに結合され、ソフトウェアプログラムの実行中にデータプロセッサによって使用される電力のプロファイルを決定するように構成されている。メモリは、ソフトウェアプログラムに関連する電力プロファイルを記憶するように構成されている。電力測定装置とメモリは、データプロセッサと同じチップ上に集積されることが好ましい。
【０００９】
一実施形態では、システムはプログラムの実行を中断せずに、電力プロファイルを決定して記憶するように構成されている。一実施形態では、電力プロファイルは複数の電力レベル値を含み、それら各値はプログラムの実行中の対応する間隔に関連する。各間隔は１つ以上の命令の実行を含むことができ、その間隔は等しいことが好ましい。一実施形態では、電力測定装置は、データプロセッサにより使用される電力をしきい値レベルと比較するように構成された比較器を含んでいる。これらのしきい値を超える事象は、プログラム全体に対して単一の値で記録されてもよく、あるいはこれらはプログラム内の間隔に対して記録されてもよい。
【００１０】
他の実施形態は、データプロセッサ上でソフトウェアプログラムを実行し、プログラムを実行するためにデータプロセッサにより使用される電力を監視して、そのプログラムに対する電力プロファイルを決定し記憶することを含む方法を有する。電力プロファイルはその後、電力使用量特性と結果として生じる電力プロファイルを変更するようプログラムを修正するために使用することができる。
【００１１】
一実施形態では、ソフトウェアプログラムの実行を中断せずに、方法が実行される。プログラムに対する電力プロファイルは、複数の電力レベル値を測定することにより決定することができ、それら各値はプログラムの実行中の対応する間隔に関連する。各間隔は複数の命令の実行を含むことができる。間隔は等しいことが好ましいが、必ずしもその必要はない。一実施形態では、プログラムに対する電力プロファイルは、各間隔の間にデータプロセッサにより使用される電力をしきい値電力レベルと比較し、これらのしきい値を超える事象を計数することにより決定することができる。しきい値を超える事象の数は、プログラム内の間隔に対して記録されてもよく、あるいはプログラム全体に対して記録されてもよい。電力プロファイル情報は、ソフトウェアプログラムを実行するプロセッサと一体化されているメモリ中に記憶することができ、あるいは外部メモリに記憶することができる。
【００１２】
多くのさらなる実施形態もまた可能である。
【発明を実施するための最良の形態】
【００１３】
本発明の他の目的および利点は、以下の詳細な説明を読み、添付図面を参照することでさらに明らかになるであろう。
【００１４】
本発明は種々の変形および別の形態が可能であるが、その特定の実施形態を図面と添付の詳細な説明を例として示す。図面および詳細な説明は、記載された特定の実施形態に本発明を限定する意図はないことを理解すべきである。この開示は、添付の特許請求の範囲に規定されている本発明の範囲内に含まれる全ての変形、等価物、および代替をカバーすることを意図している。
【００１５】
本発明の１つ以上の好ましい実施形態を以下に説明する。なお、以下に説明するこれらおよび任意の他の実施形態は例示であり、本発明を限定するものではなく、本発明を説明することを意図している。
【００１６】
概説すると、本発明は、ソフトウェアプログラムにより使用される電力を決定するためのシステム及び方法を含み、その結果この情報は、例えばプログラムの構造を変更し、それによってプログラムの電力使用特性を改良するために使用することができる。
【００１７】
一実施形態では、マイクロプロセッサは、電力測定装置と、プロセッサで実行されるソフトウェアプログラムに関連する電力使用量をプロファイルにするためのメモリとを組み込んでいる。電力測定装置は、ソフトウェアプログラムの命令を実行するためにプロセッサにより使用される電力を監視するように構成されている。プログラムの実行における異なる時点で測定された電力レベルが、メモリに記憶される電力プロファイルを形成する。この情報はその後、プログラムの電力プロファイルを改善するために（例えば、プログラムに関連する電力の使用のピークを減少するために）プログラムの解析と、それに続くプログラムの変更等の目的に使用することができる。
【００１８】
この実施形態では、電力測定装置とメモリは両者ともプロセッサに内蔵されている。すなわち、それらはプロセッサと同じチップ上に構成される。電力測定装置とメモリは、本実施形態では、プログラムがプロセッサにより実行されるときにソフトウェアプログラムの電力プロファイルを決定し、記憶するように構成されている。このプロファイルは、特定の実施の要求にしたがって、多かれ少なかれ詳細にされ、例えば各命令に関連する電力レベルの記録から、実行中の一連の間隔に関連する電力レベルの記録、実行中のしきい値超えの発生数の記録に及ぶことがある。
【００１９】
この実施形態では、電力測定装置とメモリはプログラムが実行するときに、ソフトウェアプログラムの電力プロファイルを決定し記録するように構成されている。実行を中断し、実行中のプログラムの一部を決定するために、必ずしもプロセッサに割込みを送る必要はない。同様に、電力データオフチップをホストコンピュータまたはテストベンチに転送するため、あるいは命令または電力データをオフチップメモリに記憶するために、必ずしもプログラムの実行を中断する必要はない。
【００２０】
図１を参照すると、一実施形態による基本的な方法を示すフロー図が示されている。図１のフロー図は、データプロセッサ中で実施され、プロセッサで実行されるソフトウェアプログラムの特性である電力プロファイルを迅速にかつ容易に提供するように設計された方法を示している。
【００２１】
ソフトウェアプログラムの実行が開始する場合、この方法はブロック１１０で開始する。プログラムが実行されると、プログラムを実行するためにプロセッサにより使用される電力が監視される（ブロック１２０）。周期的に、プロセッサにより使用される電力の測定値がメモリに記憶されるか、記録される（ブロック１３０）。電力の監視（ブロック１２０参照）および電力測定値の記憶（ブロック１３０参照）がプログラムの実行を通して継続して行われることを示すために、決定ブロック１４０が図に示されている。プログラムの実行がなされた場合、方法はブロック１５０へ進み、プログラムの実行は終了する。
【００２２】
なお、図１の方法は、プログラムの実行の開始、電力の監視等を別個のブロックとして示しているが、これは説明を簡単にする目的でなされている。方法における異なる動作は、特定の実施に必要とされる場合、不連続に、連続して、またはその他の方法で行うことができる。プロセッサの電力使用量の監視は、典型的には連続的であり、一方、電力測定値の記憶は、典型的にはプログラムの実行中に周期的に行われる不連続な動作であることが考慮されている。プログラムの実際の実行は割込みなしで行われることが好ましい。なお、図に示されているブロックは、動作の厳密な順序を意味するものと解釈するべきではない。例えば、電力使用量の監視は、プログラムの実行前に開始し、プログラムの実行が終了した後まで継続することができる。
【００２３】
図１の方法の結果が電力プロファイルである。例示的なプロファイルが図２に示されている。電力プロファイル２１０は、ソフトウェアプログラムの実行に関連する測定された電力レベルの時間の関数としてのグラフである。プログラムの実行（および対応する電力使用）はｔ１で開始することが分かる。プログラムを実行するためにプロセッサにより使用される電力の量はｐ１付近の高い値（時間ｔ２−ｔ３）からｐ３付近の低い値（例えば時間ｔ４−ｔ５）まで変化する。プロファイルは、プログラムの実行中に行われる複数の測定値から構成される。測定の数と、それらが行われる間隔は、実施形態によって変えることができる。
【００２４】
電力プロファイル２１０に加えて、図２はプログラムを実行するためにプロセッサにより使用される平均電力（２２０）の表示を含んでいる。平均電力は、典型的には通常の方法により測定される情報に過ぎないので、（電力ｐ２付近である）平均電力は、比較の目的で示されている。平均電力は、プログラムのどの部分が最も多くの（または最も少ない）電力を使用するかについての情報を提供しないことが、図から容易に分かる。それゆえ、この測定基準は、プログラムの高電力使用量部分を識別しようと望むソフトウェア設計者にとっては、ほとんどまたは全く役に立たず、そのためそれらを書き換えて、さらに高い電力効率にすることができる。
【００２５】
図３を参照すると、一実施形態によるデータ処理システムのコンポーネントを示す機能ブロック図が示されている。この実施形態では、データ処理システムは、プロセッサコア３１０、電力測定装置３２０、およびメモリ３３０を含んでいる。これらコンポーネントの全ては（これは他の実施形態の場合に必ずしも必要ではないが）、単一のチップ上に構成されている。
【００２６】
図３の実施形態では、電力測定装置３２０はプロセッサコア３１０に結合され、それによって、ソフトウェアプログラムの実行中にプロセッサコアにより使用されている電力の量を測定することができる。電力測定装置３２０は様々な方法でプロセッサコア３１０に結合することができる。例えば、電力測定装置３２０はプロセッサコア３１０に直接接続するか、あるいはプロセッサコアに電力を供給する電源に接続することができる。プロセッサコアによって使用される電力を電力測定装置により測定することができる限り、電力測定装置３２０がプロセッサコア３１０に結合される正確な方法は重要ではない。
【００２７】
プロセッサコア３１０によるソフトウェアプログラムの実行中のいくつかの時点において、電力測定装置３２０は、プログラムを実行するためにプロセッサコアにより使用されている電力の量を測定する。電力は時間的な特定の瞬間に対して測定してもよく、あるいはプログラムの実行中の間隔にわたって測定してもよい。これらの電力測定値が電力測定装置３２０により得られると、これらはメモリ３３０に記憶される。メモリ３３０は、任意の適切なタイプのメモリであってもよく、例えばデータプロセッサのキャッシュメモリの一部、あるいは電力測定のために確保することのできる１組のレジスタであってもよい。一実施形態では、電力測定値は規則的な間隔で得られ、それによってメモリ３３０に記憶される電力測定値は、時間の関数として、ソフトウェアプログラムの電力プロファイルを生成するようにプロットすることができる。
【００２８】
図４Ａおよび図４Ｂを参照すると、ソフトウェアプログラムに対する例示的な一組の電力測定値を示す表が、電力データ（電力プロファイル）のグラフと共に示されている。図４Ｂに示されている表は、３つの列、すなわち時間、電力、およびアドレスを含んでいる。一実施形態では、メモリは電力測定装置により取得される一連の電力測定値だけを記憶する。この実施形態では、電力測定値は規則的な間隔で得られ、それによって各測定値の正確な実時間を記録する必要はない。最初の測定値は初期時間に対応し、連続する測定値は、初期時間といくつかの間隔に対応することが分かる。例えば、最初の電力測定値が時間ｔ０に対応するならば、メモリに記憶されるＮ番目の測定値は時間ｔ０＋（Ｎ−１）Δｔに対応し、ここでΔｔは各間隔の継続時間である。単に読者が理解しやすいようにするために、表には時間が設けられている。
【００２９】
図４Ａの表からのデータが図４Ｂにプロットされている。図４Ａのデータは垂直のバーとして示されている。前述したように、電力測定値は規則的な間隔で得られるので、バーはｔ０、ｔ１、ｔ２等で均等に間隔を空けられている。間隔は特定の実施に対して所望の粒度を提供するために、増加または減少することができる。この例では、プロセッサコアにより使用される電力は、典型的には３−４間隔でほぼ同じレベルにあることが分かる。電力がより迅速に変動するならば、またはより詳細な情報が必要とされたならば、電力測定が行われるインターバルを減少させる必要があるであろう。
【００３０】
図５を参照すると、別の実施形態によるデータ処理システムを示す機能ブロック図が示されている。この実施形態では、システムはプロセッサコア５１０、電力測定装置５２０、比較器５４０、カウンタ５５０、およびレジスタ５６０を含んでいる。これらのコンポーネントも単一のチップ上に構成されている。
【００３１】
この実施形態でも、電力測定装置５２０は、ソフトウェアプログラムが実行されると、プロセッサコア５１０の電力使用量を監視する。しかしながら、プログラムの実行中に選択された間隔で得られる電力測定値を記憶するよりも、比較器５４０は、測定された電力レベルをレジスタ５６０に記憶されたしきい値レベルと比較し、プロセッサコアにより使用された電力がしきい値を超えるか否かの表示を生成するように構成されている。この表示はカウンタ５５０へ供給され、カウンタ５５０は電力レベルがしきい値を超える回数を数える。
【００３２】
図６Ａおよび図６Ｂを参照すると、プロセッサコアの電力レベルのしきい値に対する比較と、結果として生じるしきい値を超えたプロファイルを表す図が示されている。図６Ａは実電力使用量６１０のグラフを含んでいる。本実施形態では、電力は時間の関数として記録されないので、このグラフは破線を用いて示されている。このグラフは、電力レベルがしきい値６２０を超えたときを示す参照目的のために提供されており、しきい値は図では水平の実線として示されている。
【００３３】
本実施形態では、電力測定装置は、規則的な間隔で電力測定値を比較器に供給するように構成されている。これらの測定値は、時間ｔ０、ｔ１、ｔ２等で得られる。時間ｔ１、ｔ２、およびｔ３で取得される測定値はしきい値電力レベルを超えることが分かる。他の全ての時間では、電力レベルはしきい値未満である。それゆえカウンタは、時間ｔ１、ｔ２、およびｔ３でインクリメントされ、最終的にしきい値を超えた回数は３になる。
【００３４】
本実施形態では、システムにより生成される電力プロファイルは、図４に示すような電力対時間のプロファイルではなく、ソフトウェアプログラムの実行中にしきい値電力レベルを超える回数を示す単一値プロファイルである。カウンタ５５０は、本実施形態では、プロファイル値が記憶されるメモリ／レジスタとして作用する。
【００３５】
図７を参照すると、別の実施形態によるデータ処理システムを表す機能ブロック図が示されている。この実施形態では、システムは、プロセッサコア７１０、電力測定装置７２０、比較器７４０、カウンタ７５０、レジスタ７６０、およびメモリ７３０を含んでいる。
【００３６】
図７に示したシステムの構造は、メモリ７３０の付加を除いて、図５に示されたものと同じであることが分かる。これらの２つのシステムの動作は非常に類似している。相違点は、図５のシステムは、単一のしきい値を超えた値からなる電力プロファイルを生成するが、図７のシステムは、プログラムの実行中の対応する期間に対するしきい値を超えた回数に対応する複数の値を含んでいるプロファイルを生成するように構成されていることである。
【００３７】
本実施形態では、電力測定装置７２０は、ソフトウェアプログラムが実行されると、プロセッサコア７１０の電力使用量を監視する。比較器７４０は電力測定装置７２０から受信した測定電力レベルを、レジスタ７６０に記憶されているしきい値レベルと比較し、カウンタ７５０へ供給されるしきい値超え信号を生成する。カウンタ７５０の値は、周期的にメモリ７３０に記憶される。カウンタ値が記憶されるとき、カウンタは０にリセットされる。プログラムの実行後、メモリ７３０は、プログラムの実行の特定部分の期間に、プロセッサコアの電力使用量がしきい値を超える回数に対応する一連の値を記憶する。
【００３８】
図８Ａおよび図８Ｂを参照すると、プロセッサコアの電力レベルとしきい値との比較を示す図と、結果として生じる複数値のしきい値超え電力プロファイルが示されている。図８Ａは、実電力使用量８１０としきい値８２０のグラフを含んでいる。
【００３９】
本実施形態では、電力測定装置は時間ｔ０、ｔ１、ｔ２等で電力測定値を比較器に供給する。システムは、５番目の間隔毎に、しきい値を超えた回数を記憶するように構成されている。したがって、メモリ７３０は、ｔ０−ｔ４、ｔ５−ｔ９、ｔ１０−ｔ１４、およびｔ１５−ｔ１９についてのしきい値超えの回数を記憶する。この複数値のプロファイルは単一値のプロファイルよりも明らかに多くの情報を提供し、この例では、しきい値超えの発生はプログラムの初期部分（ｔ０−ｔ４）に集中している。
【００４０】
背景技術で述べたように、集積回路が複雑になると、回路の電力管理の改善の必要性が生じる。前述したように得られた電力プロファイル情報は、集積回路のソフトウェアプログラムの実行において、可能な制御を改善することにより、電力管理を改善するために使用することができる。
【００４１】
図９を参照すると、別の実施形態による、ソフトウェアプログラムに対して電力プロファイルを決定し、この情報をプログラムの修正に使用するための方法を表すフロー図が示されている。この方法は、データプロセッサ上のプログラムの実行によって開始する（ブロック９１０）。プログラムが実行されると、データプロセッサの電力使用量が監視され（ブロック９２０）、プロファイルがプロセッサの電力使用量に対して決定される（ブロック９３０）。電力プロファイルは記憶され（ブロック９４０）、それによって電力プロファイルを検索することができ、プログラムを修正するための基盤として使用することができる（ブロック９５０）。
【００４２】
前述したように、プログラムの電力プロファイルは、単一値または複数値のしきい値を超えた回数と、電力対時間のデータを含む様々な形態を有することができる。この情報は、プログラムの異なる部分の電力使用量を決定するために、例えばソフトウェア設計者が使用することができる。非常に多くの電力を使用するプログラムの部分があるならば、ソフトウェア設計者はそのプログラムの部分の電力要求を減らすために、さらに効率的な命令またはアルゴリズムを使用することができる。その代わりに、ソフトウェア設計者は、プログラムの電力集中命令のいくつかを他の領域にシフトするか、あるいは電力使用量を減らすためにより少ない電力集中命令を付加することができる。
【００４３】
図１０を参照すると、修正前及び修正後のソフトウェアプログラムの電力プロファイルを表す図が示されている。この図は、プログラムに対する最初の電力プロファイル（１０１０）のグラフだけでなく、最初のプロファイルに基づく修正後のプログラムに対する電力プロファイル（１０２０）のグラフを含む。プログラムに対する修正により、特に最初の電力プロファイルでピークが生じる早期の実行段階（ｔ１−ｔ３周辺）で電力使用量の減少が生じることが分かる。さらに、この変化はプログラムにより使用される平均電力を減らす。また、修正はプログラムの実行を通じて電力変動を少なくし、それは電流の急速な変化（高ｄｉ／ｄｔ）に関連する問題のため有益である。
【００４４】
当業者は前述の情報および信号を任意の様々な異なる技術を使用して表すことができることを理解するであろう。例えば、データ、命令、コマンド、情報、信号、ビット、シンボル等は電圧、電流、電磁波、磁界または磁性粒子、光場または光粒子、あるいはそれらの任意の組合せによって表すことができる。情報及び信号は、配線、金属トレース、ビア、光ファイバ等を含む適切な任意の転送媒体を使用して、開示したシステムのコンポーネント間で通信することができる。
【００４５】
当業者はさらに、本明細書中で開示した実施形態に関連して述べた様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップが電子ハードウェア、コンピュータソフトウェア、または両者の組合せとして実施することができることを認識するであろう。このハードウェアとソフトウェアとの交換が可能であることを明らかに示すために、様々な例示的なコンポーネント、ブロック、モジュール、回路、およびステップをそれらの機能性の点から一般的に述べた。このような機能性がハードウェアまたはソフトウェアのいずれとして実施されるかは、特定の用途とシステム全体に課された設計制約による。当業者は、各特定の用途に対して、述べられた機能性を様々な方法で実施することができるが、そのような実施の決定は本発明の範囲からの逸脱を生じるものと解釈すべきではない。
【００４６】
本明細書中で開示した実施形態に関して述べた様々な例示的な論理ブロック、モジュールおよび回路は、用途特定集積回路（ＡＳＩＣ）、フィールドプログラム可能ゲートアレイ（ＦＰＧＡ）、汎用目的プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、またはその他のロジックデバイス、ディスクリートゲートまたはトランジスタロジック、ディスクリートハードウェアコンポーネント、あるいは本明細書中で述べた機能を実行するように設計されたそれらの任意の組合せによって実施でき、または実行できる。データ目的プロセッサは、任意の通常のプロセッサ、コントローラ、マイクロコントローラ、状態機械等であってもよい。またプロセッサは、演算装置の組合せとして実施することもできる。メモリは、カウンタ、レジスタ、ＲＡＭ、オンチップキャッシュ、外部メモリ等を含むことができる。
【００４７】
本発明により提供することができる効果および利点を特定の実施形態に関して述べた。これらの効果および利点と、それらを生じさせ、あるいはさらに明白にすることができる任意の構成要素または限定は、任意のまたは全ての請求項の重要な、所要の、あるいは必須の特徴として解釈されるべきではない。本明細書中で使用されるように、用語「備える」、「備えている」またはその任意の変形は、これらの用語に続く構成要素または限定を非排他的に含んでいると解釈されることを意図している。したがって、システム、方法、または１組の構成要素を備える他の実施形態は、これらの構成要素だけに限定されるのではなく、記載されていない、または請求された実施形態に特有ではない他の構成要素を含むことができる。
【００４８】
上記の開示された実施形態の説明は、当業者が本発明を構成または使用することを可能にするために提供された。これらの実施形態に対する様々な変形は、当業者には容易に明らかになり、本明細書中で定義されている一般的な原理は、本発明の趣旨または範囲を逸脱せずに他の実施形態に適用することができる。したがって、本発明は本明細書中で示された実施形態に限定されることを意図したものではなく、本明細書中で説明され、特許請求の範囲で挙げられた原理および新規な特徴と一致する最も広い範囲に一致することを意図している。
【図面の簡単な説明】
【００４９】
【図１】一実施形態による基本的方法を示すフロー図。
【図２】一実施形態により発生される電力プロファイルを示す図。
【図３】一実施形態によるデータ処理システムのコンポーネントを示す機能ブロック図。
【図４Ａ】ソフトウェアプログラムに対する電力測定値の例示的なセットを示す電力データ（電力プロファイル）のグラフ。
【図４Ｂ】ソフトウェアプログラムに対する電力測定値の例示的なセットを示す表。
【図５】別の実施形態によるデータ処理システムを示す機能ブロック図。
【図６Ａ】一実施形態による、プロセッサコアの電力レベルとしきい値の比較を示す結果的なしきい値超えプロファイル。
【図６Ｂ】一実施形態による、プロセッサコアの電力レベルとしきい値の比較を示す図。
【図７】別の実施形態によるデータ処理システムを示す機能ブロック図。
【図８Ａ】一実施形態による、プロセッサコアの電力レベルとしきい値の比較を示す結果的な複数値のしきい値超えプロファイル。
【図８Ｂ】一実施形態による、プロセッサコアの電力レベルとしきい値の比較を示す図。
【図９】別の実施形態による、ソフトウェアプログラムに対する電力プロファイルを決定し、この情報をプログラムの修正に使用するための方法を示すフロー図。
【図１０】一実施形態による、修正前及び修正後のソフトウェアプログラムの電力プロファイルを示す図。
【図１】
2007249961.tif 000003
【図２】
2007249961.tif 000004
【図３】
2007249961.tif 000005
【図４Ａ】
2007249961.tif 000006
【図４Ｂ】
2007249961.tif 000007
【図５】
2007249961.tif 000008
【図６Ａ】
2007249961.tif 000009
【図６Ｂ】
2007249961.tif 000010
【図７】
2007249961.tif 000011
【図８Ａ】
2007249961.tif 000012
【図８Ｂ】
2007249961.tif 000013
【図９】
2007249961.tif 000014
【図１０】
2007249961.tif 000015
【手続補正書】
【提出日】平成19年5月1日(2007.5.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データプロセッサと、
ソフトウェアプログラムの実行中に前記データプロセッサによって使用される電力を測定するように構成された電力測定装置と、
前記ソフトウェアプログラムに関連する電力プロファイルを記憶するように構成されたメモリと、を備え、前記電力プロファイルは前記電力測定装置により決定されるシステム。
【請求項２】
前記電力測定装置は、前記ソフトウェアプログラムの実行中に前記電力プロファイルを決定するように構成され、前記メモリは前記ソフトウェアプログラムの実行を中断せずに前記電力プロファイルを記憶するように構成された請求項１記載のシステム。
【請求項３】
前記電力プロファイルは、複数の電力レベル値を含み、それぞれの前記電力レベル値は、前記ソフトウェアプログラムの実行中の対応する間隔に関連する請求項１記載のシステム。
【請求項４】
データプロセッサ上でソフトウェアプログラムを実行することと、
前記ソフトウェアプログラムの実行中に前記データプロセッサにより使用される電力を監視することと、
前記ソフトウェアプログラムに対する電力プロファイルを決定することと、前記ソフトウェアプログラムに対する前記電力プロファイルを記憶することと、を含む方法。
【請求項５】
集積データプロセッサであり、
単一の半導体チップ上に構成されたプロセッサコアと、
前記半導体チップ上に構成され、ソフトウェアプログラムの実行中に前記データプロセッサにより使用される電力を測定するように構成された電力測定装置と、
前記半導体チップ上に構成され、前記ソフトウェアプログラムに関連する電力プロファイルを記憶するように構成されたメモリと、を備え、前記電力プロファイルは前記電力測定装置により決定される集積データプロセッサ。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的に電子装置に関し、特にソフトウェアプログラムの実行の異なる時点で、ソフトウェアプログラムにより使用される電力のプロファイルを決定するためのシステム及び方法に関する。
【背景技術】
【０００２】
マイクロプロセッサのような集積回路は益々複雑になっている。これらの装置を形成する回路コンポーネント（例えばトランジスタ、ダイオード、抵抗等）は、同時に益々小型になり、それによりさらに多くの機能を特定の集積回路で実行することができる。回路コンポーネント及び機能の数が増加するにつれて、これらの集積回路により一般的に消費される電力の量も一般的に増加する。回路の電力消費の増加によって、回路内で発生する熱量もまた増加する。この熱は装置の性能に影響する可能性があり、装置に故障を起こす可能性さえもある。
【０００３】
電子装置中の増加した熱量の発生により生じる危険性により、これらの装置内の温度の管理は益々重要になっている。装置は、たいてい温度管理を考慮して設計されており、装置中の温度を制御するのに役立つ様々なハードウェア特徴を含むことができる。例えば、装置は温度を検出するための熱感知回路と、温度が非常に高くなった場合に、装置により行われる動作の速さまたは回数を減少させるための制御システムを含むことができる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
温度を感知し制御する装置及びハードウェア特徴の設計に対して、非常に多くの労力が費やされているが、装置によって実行されるソフトウェアの設計に焦点を当てた労力は比較的少ない。例えば、異なるタイプのソフトウェア命令は演算パワーのレベルを変えることを必要とする（例えば、浮動小数点演算は整数演算よりも計算の上で集中的である）が、この情報はソフトウェア設計よりもハードウェア設計を変更するために使用されていることが認識されている。例えば、マイクロプロセッサは重いコンテキストではなく軽いコンテキスト（例えば、主として浮動小数点演算によるコンテキストではなく整数演算によるコンテキスト）を行うためにコンテキストを切り換えるように設計することができる。
【０００５】
電力に関連する問題を解決するソフトウェア指向の方法は、広く開発されてはいない。あるものは厄介であり、外部ホストコンピュータまたはテストベンチを必要とする。あるものは、個々の命令に対する電力要求を決定するような、比較的狭い目的のために設計されている。さらに別のあるものは、望まれるほど正確ではない（例えば、これらは単にプログラム全体にわたって平均された電力レベルを提供する）情報を提供する。これらのシステムは、プログラムの実行中に電力レベルが変化する方法など、さらに正確な電力情報を容易に決定するためには十分に設計されていない。
【０００６】
ソフトウェアプログラムの電力特性（例えば、時間の関数としての電力要求）を識別し、それらの電力特性を改善するようにプログラムを変更するためのシステム及び方法を提供することが望まれるであろう。
【課題を解決するための手段】
【０００７】
上述した１つ以上の問題は、本発明の様々な実施形態によって解決することができる。概説すると、本発明は、ソフトウェアプログラムに関連する電力プロファイルを決定するためのシステム及び方法を含んでいる。電力プロファイルは複数値プロファイルであってもよく、それらは電力使用特性およびプログラムの対応する電力プロファイルを変更するようプログラムを修正するために使用することができる。
【０００８】
一実施形態は、データプロセッサ、電力測定装置、およびメモリを含むシステムを備えている。電力測定装置は、データプロセッサに結合され、ソフトウェアプログラムの実行中にデータプロセッサによって使用される電力のプロファイルを決定するように構成されている。メモリは、ソフトウェアプログラムに関連する電力プロファイルを記憶するように構成されている。電力測定装置とメモリは、データプロセッサと同じチップ上に集積されることが好ましい。
【０００９】
一実施形態では、システムはプログラムの実行を中断せずに、電力プロファイルを決定して記憶するように構成されている。一実施形態では、電力プロファイルは複数の電力レベル値を含み、それら各値はプログラムの実行中の対応する間隔に関連する。各間隔は１つ以上の命令の実行を含むことができ、その間隔は等しいことが好ましい。一実施形態では、電力測定装置は、データプロセッサにより使用される電力をしきい値レベルと比較するように構成された比較器を含んでいる。これらのしきい値を超える事象は、プログラム全体に対して単一の値で記録されてもよく、あるいはこれらはプログラム内の間隔に対して記録されてもよい。
【００１０】
他の実施形態は、データプロセッサ上でソフトウェアプログラムを実行し、プログラムを実行するためにデータプロセッサにより使用される電力を監視して、そのプログラムに対する電力プロファイルを決定し記憶することを含む方法を有する。電力プロファイルはその後、電力使用量特性と結果として生じる電力プロファイルを変更するようプログラムを修正するために使用することができる。
【００１１】
一実施形態では、ソフトウェアプログラムの実行を中断せずに、方法が実行される。プログラムに対する電力プロファイルは、複数の電力レベル値を測定することにより決定することができ、それら各値はプログラムの実行中の対応する間隔に関連する。各間隔は複数の命令の実行を含むことができる。間隔は等しいことが好ましいが、必ずしもその必要はない。一実施形態では、プログラムに対する電力プロファイルは、各間隔の間にデータプロセッサにより使用される電力をしきい値電力レベルと比較し、これらのしきい値を超える事象を計数することにより決定することができる。しきい値を超える事象の数は、プログラム内の間隔に対して記録されてもよく、あるいはプログラム全体に対して記録されてもよい。電力プロファイル情報は、ソフトウェアプログラムを実行するプロセッサと一体化されているメモリ中に記憶することができ、あるいは外部メモリに記憶することができる。
【００１２】
多くのさらなる実施形態もまた可能である。
【発明を実施するための最良の形態】
【００１３】
本発明の他の目的および利点は、以下の詳細な説明を読み、添付図面を参照することでさらに明らかになるであろう。
【００１４】
本発明は種々の変形および別の形態が可能であるが、その特定の実施形態を図面と添付の詳細な説明を例として示す。図面および詳細な説明は、記載された特定の実施形態に本発明を限定する意図はないことを理解すべきである。この開示は、添付の特許請求の範囲に規定されている本発明の範囲内に含まれる全ての変形、等価物、および代替をカバーすることを意図している。
【００１５】
本発明の１つ以上の好ましい実施形態を以下に説明する。なお、以下に説明するこれらおよび任意の他の実施形態は例示であり、本発明を限定するものではなく、本発明を説明することを意図している。
【００１６】
概説すると、本発明は、ソフトウェアプログラムにより使用される電力を決定するためのシステム及び方法を含み、その結果この情報は、例えばプログラムの構造を変更し、それによってプログラムの電力使用特性を改良するために使用することができる。
【００１７】
一実施形態では、マイクロプロセッサは、電力測定装置と、プロセッサで実行されるソフトウェアプログラムに関連する電力使用量をプロファイルにするためのメモリとを組み込んでいる。電力測定装置は、ソフトウェアプログラムの命令を実行するためにプロセッサにより使用される電力を監視するように構成されている。プログラムの実行における異なる時点で測定された電力レベルが、メモリに記憶される電力プロファイルを形成する。この情報はその後、プログラムの電力プロファイルを改善するために（例えば、プログラムに関連する電力の使用のピークを減少するために）プログラムの解析と、それに続くプログラムの変更等の目的に使用することができる。
【００１８】
この実施形態では、電力測定装置とメモリは両者ともプロセッサに内蔵されている。すなわち、それらはプロセッサと同じチップ上に構成される。電力測定装置とメモリは、本実施形態では、プログラムがプロセッサにより実行されるときにソフトウェアプログラムの電力プロファイルを決定し、記憶するように構成されている。このプロファイルは、特定の実施の要求にしたがって、多かれ少なかれ詳細にされ、例えば各命令に関連する電力レベルの記録から、実行中の一連の間隔に関連する電力レベルの記録、実行中のしきい値超えの発生数の記録に及ぶことがある。
【００１９】
この実施形態では、電力測定装置とメモリはプログラムが実行するときに、ソフトウェアプログラムの電力プロファイルを決定し記録するように構成されている。実行を中断し、実行中のプログラムの一部を決定するために、必ずしもプロセッサに割込みを送る必要はない。同様に、電力データオフチップをホストコンピュータまたはテストベンチに転送するため、あるいは命令または電力データをオフチップメモリに記憶するために、必ずしもプログラムの実行を中断する必要はない。
【００２０】
図１を参照すると、一実施形態による基本的な方法を示すフロー図が示されている。図１のフロー図は、データプロセッサ中で実施され、プロセッサで実行されるソフトウェアプログラムの特性である電力プロファイルを迅速にかつ容易に提供するように設計された方法を示している。
【００２１】
ソフトウェアプログラムの実行が開始する場合、この方法はブロック１１０で開始する。プログラムが実行されると、プログラムを実行するためにプロセッサにより使用される電力が監視される（ブロック１２０）。周期的に、プロセッサにより使用される電力の測定値がメモリに記憶されるか、記録される（ブロック１３０）。電力の監視（ブロック１２０参照）および電力測定値の記憶（ブロック１３０参照）がプログラムの実行を通して継続して行われることを示すために、決定ブロック１４０が図に示されている。プログラムの実行がなされた場合、方法はブロック１５０へ進み、プログラムの実行は終了する。
【００２２】
なお、図１の方法は、プログラムの実行の開始、電力の監視等を別個のブロックとして示しているが、これは説明を簡単にする目的でなされている。方法における異なる動作は、特定の実施に必要とされる場合、不連続に、連続して、またはその他の方法で行うことができる。プロセッサの電力使用量の監視は、典型的には連続的であり、一方、電力測定値の記憶は、典型的にはプログラムの実行中に周期的に行われる不連続な動作であることが考慮されている。プログラムの実際の実行は割込みなしで行われることが好ましい。なお、図に示されているブロックは、動作の厳密な順序を意味するものと解釈するべきではない。例えば、電力使用量の監視は、プログラムの実行前に開始し、プログラムの実行が終了した後まで継続することができる。
【００２３】
図１の方法の結果が電力プロファイルである。例示的なプロファイルが図２に示されている。電力プロファイル２１０は、ソフトウェアプログラムの実行に関連する測定された電力レベルの時間の関数としてのグラフである。プログラムの実行（および対応する電力使用）はｔ１で開始することが分かる。プログラムを実行するためにプロセッサにより使用される電力の量はｐ１付近の高い値（時間ｔ２−ｔ３）からｐ３付近の低い値（例えば時間ｔ４−ｔ５）まで変化する。プロファイルは、プログラムの実行中に行われる複数の測定値から構成される。測定の数と、それらが行われる間隔は、実施形態によって変えることができる。
【００２４】
電力プロファイル２１０に加えて、図２はプログラムを実行するためにプロセッサにより使用される平均電力（２２０）の表示を含んでいる。平均電力は、典型的には通常の方法により測定される情報に過ぎないので、（電力ｐ２付近である）平均電力は、比較の目的で示されている。平均電力は、プログラムのどの部分が最も多くの（または最も少ない）電力を使用するかについての情報を提供しないことが、図から容易に分かる。それゆえ、この測定基準は、プログラムの高電力使用量部分を識別しようと望むソフトウェア設計者にとっては、ほとんどまたは全く役に立たず、そのためそれらを書き換えて、さらに高い電力効率にすることができる。
【００２５】
図３を参照すると、一実施形態によるデータ処理システムのコンポーネントを示す機能ブロック図が示されている。この実施形態では、データ処理システムは、プロセッサコア３１０、電力測定装置３２０、およびメモリ３３０を含んでいる。これらコンポーネントの全ては（これは他の実施形態の場合に必ずしも必要ではないが）、単一のチップ上に構成されている。
【００２６】
図３の実施形態では、電力測定装置３２０はプロセッサコア３１０に結合され、それによって、ソフトウェアプログラムの実行中にプロセッサコアにより使用されている電力の量を測定することができる。電力測定装置３２０は様々な方法でプロセッサコア３１０に結合することができる。例えば、電力測定装置３２０はプロセッサコア３１０に直接接続するか、あるいはプロセッサコアに電力を供給する電源に接続することができる。プロセッサコアによって使用される電力を電力測定装置により測定することができる限り、電力測定装置３２０がプロセッサコア３１０に結合される正確な方法は重要ではない。
【００２７】
プロセッサコア３１０によるソフトウェアプログラムの実行中のいくつかの時点において、電力測定装置３２０は、プログラムを実行するためにプロセッサコアにより使用されている電力の量を測定する。電力は時間的な特定の瞬間に対して測定してもよく、あるいはプログラムの実行中の間隔にわたって測定してもよい。これらの電力測定値が電力測定装置３２０により得られると、これらはメモリ３３０に記憶される。メモリ３３０は、任意の適切なタイプのメモリであってもよく、例えばデータプロセッサのキャッシュメモリの一部、あるいは電力測定のために確保することのできる１組のレジスタであってもよい。一実施形態では、電力測定値は規則的な間隔で得られ、それによってメモリ３３０に記憶される電力測定値は、時間の関数として、ソフトウェアプログラムの電力プロファイルを生成するようにプロットすることができる。
【００２８】
図４Ａおよび図４Ｂを参照すると、ソフトウェアプログラムに対する例示的な一組の電力測定値を示す表が、電力データ（電力プロファイル）のグラフと共に示されている。図４Ｂに示されている表は、３つの列、すなわち時間、電力、およびアドレスを含んでいる。一実施形態では、メモリは電力測定装置により取得される一連の電力測定値だけを記憶する。この実施形態では、電力測定値は規則的な間隔で得られ、それによって各測定値の正確な実時間を記録する必要はない。最初の測定値は初期時間に対応し、連続する測定値は、初期時間といくつかの間隔に対応することが分かる。例えば、最初の電力測定値が時間ｔ０に対応するならば、メモリに記憶されるＮ番目の測定値は時間ｔ０＋（Ｎ−１）Δｔに対応し、ここでΔｔは各間隔の継続時間である。単に読者が理解しやすいようにするために、表には時間が設けられている。
【００２９】
図４Ａの表からのデータが図４Ｂにプロットされている。図４Ａのデータは垂直のバーとして示されている。前述したように、電力測定値は規則的な間隔で得られるので、バーはｔ０、ｔ１、ｔ２等で均等に間隔を空けられている。間隔は特定の実施に対して所望の粒度を提供するために、増加または減少することができる。この例では、プロセッサコアにより使用される電力は、典型的には３−４間隔でほぼ同じレベルにあることが分かる。電力がより迅速に変動するならば、またはより詳細な情報が必要とされたならば、電力測定が行われるインターバルを減少させる必要があるであろう。
【００３０】
図５を参照すると、別の実施形態によるデータ処理システムを示す機能ブロック図が示されている。この実施形態では、システムはプロセッサコア５１０、電力測定装置５２０、比較器５４０、カウンタ５５０、およびレジスタ５６０を含んでいる。これらのコンポーネントも単一のチップ上に構成されている。
【００３１】
この実施形態でも、電力測定装置５２０は、ソフトウェアプログラムが実行されると、プロセッサコア５１０の電力使用量を監視する。しかしながら、プログラムの実行中に選択された間隔で得られる電力測定値を記憶するよりも、比較器５４０は、測定された電力レベルをレジスタ５６０に記憶されたしきい値レベルと比較し、プロセッサコアにより使用された電力がしきい値を超えるか否かの表示を生成するように構成されている。この表示はカウンタ５５０へ供給され、カウンタ５５０は電力レベルがしきい値を超える回数を数える。
【００３２】
図６Ａおよび図６Ｂを参照すると、プロセッサコアの電力レベルのしきい値に対する比較と、結果として生じるしきい値を超えたプロファイルを表す図が示されている。図６Ａは実電力使用量６１０のグラフを含んでいる。本実施形態では、電力は時間の関数として記録されないので、このグラフは破線を用いて示されている。このグラフは、電力レベルがしきい値６２０を超えたときを示す参照目的のために提供されており、しきい値は図では水平の実線として示されている。
【００３３】
本実施形態では、電力測定装置は、規則的な間隔で電力測定値を比較器に供給するように構成されている。これらの測定値は、時間ｔ０、ｔ１、ｔ２等で得られる。時間ｔ１、ｔ２、およびｔ３で取得される測定値はしきい値電力レベルを超えることが分かる。他の全ての時間では、電力レベルはしきい値未満である。それゆえカウンタは、時間ｔ１、ｔ２、およびｔ３でインクリメントされ、最終的にしきい値を超えた回数は３になる。
【００３４】
本実施形態では、システムにより生成される電力プロファイルは、図４に示すような電力対時間のプロファイルではなく、ソフトウェアプログラムの実行中にしきい値電力レベルを超える回数を示す単一値プロファイルである。カウンタ５５０は、本実施形態では、プロファイル値が記憶されるメモリ／レジスタとして作用する。
【００３５】
図７を参照すると、別の実施形態によるデータ処理システムを表す機能ブロック図が示されている。この実施形態では、システムは、プロセッサコア７１０、電力測定装置７２０、比較器７４０、カウンタ７５０、レジスタ７６０、およびメモリ７３０を含んでいる。
【００３６】
図７に示したシステムの構造は、メモリ７３０の付加を除いて、図５に示されたものと同じであることが分かる。これらの２つのシステムの動作は非常に類似している。相違点は、図５のシステムは、単一のしきい値を超えた値からなる電力プロファイルを生成するが、図７のシステムは、プログラムの実行中の対応する期間に対するしきい値を超えた回数に対応する複数の値を含んでいるプロファイルを生成するように構成されていることである。
【００３７】
本実施形態では、電力測定装置７２０は、ソフトウェアプログラムが実行されると、プロセッサコア７１０の電力使用量を監視する。比較器７４０は電力測定装置７２０から受信した測定電力レベルを、レジスタ７６０に記憶されているしきい値レベルと比較し、カウンタ７５０へ供給されるしきい値超え信号を生成する。カウンタ７５０の値は、周期的にメモリ７３０に記憶される。カウンタ値が記憶されるとき、カウンタは０にリセットされる。プログラムの実行後、メモリ７３０は、プログラムの実行の特定部分の期間に、プロセッサコアの電力使用量がしきい値を超える回数に対応する一連の値を記憶する。
【００３８】
図８Ａおよび図８Ｂを参照すると、プロセッサコアの電力レベルとしきい値との比較を示す図と、結果として生じる複数値のしきい値超え電力プロファイルが示されている。図８Ａは、実電力使用量８１０としきい値８２０のグラフを含んでいる。
【００３９】
本実施形態では、電力測定装置は時間ｔ０、ｔ１、ｔ２等で電力測定値を比較器に供給する。システムは、５番目の間隔毎に、しきい値を超えた回数を記憶するように構成されている。したがって、メモリ７３０は、ｔ０−ｔ４、ｔ５−ｔ９、ｔ１０−ｔ１４、およびｔ１５−ｔ１９についてのしきい値超えの回数を記憶する。この複数値のプロファイルは単一値のプロファイルよりも明らかに多くの情報を提供し、この例では、しきい値超えの発生はプログラムの初期部分（ｔ０−ｔ４）に集中している。
【００４０】
背景技術で述べたように、集積回路が複雑になると、回路の電力管理の改善の必要性が生じる。前述したように得られた電力プロファイル情報は、集積回路のソフトウェアプログラムの実行において、可能な制御を改善することにより、電力管理を改善するために使用することができる。
【００４１】
図９を参照すると、別の実施形態による、ソフトウェアプログラムに対して電力プロファイルを決定し、この情報をプログラムの修正に使用するための方法を表すフロー図が示されている。この方法は、データプロセッサ上のプログラムの実行によって開始する（ブロック９１０）。プログラムが実行されると、データプロセッサの電力使用量が監視され（ブロック９２０）、プロファイルがプロセッサの電力使用量に対して決定される（ブロック９３０）。電力プロファイルは記憶され（ブロック９４０）、それによって電力プロファイルを検索することができ、プログラムを修正するための基盤として使用することができる（ブロック９５０）。
【００４２】
前述したように、プログラムの電力プロファイルは、単一値または複数値のしきい値を超えた回数と、電力対時間のデータを含む様々な形態を有することができる。この情報は、プログラムの異なる部分の電力使用量を決定するために、例えばソフトウェア設計者が使用することができる。非常に多くの電力を使用するプログラムの部分があるならば、ソフトウェア設計者はそのプログラムの部分の電力要求を減らすために、さらに効率的な命令またはアルゴリズムを使用することができる。その代わりに、ソフトウェア設計者は、プログラムの電力集中命令のいくつかを他の領域にシフトするか、あるいは電力使用量を減らすためにより少ない電力集中命令を付加することができる。
【００４３】
図１０を参照すると、修正前及び修正後のソフトウェアプログラムの電力プロファイルを表す図が示されている。この図は、プログラムに対する最初の電力プロファイル（１０１０）のグラフだけでなく、最初のプロファイルに基づく修正後のプログラムに対する電力プロファイル（１０２０）のグラフを含む。プログラムに対する修正により、特に最初の電力プロファイルでピークが生じる早期の実行段階（ｔ１−ｔ３周辺）で電力使用量の減少が生じることが分かる。さらに、この変化はプログラムにより使用される平均電力を減らす。また、修正はプログラムの実行を通じて電力変動を少なくし、それは電流の急速な変化（高ｄｉ／ｄｔ）に関連する問題のため有益である。
【００４４】
当業者は前述の情報および信号を任意の様々な異なる技術を使用して表すことができることを理解するであろう。例えば、データ、命令、コマンド、情報、信号、ビット、シンボル等は電圧、電流、電磁波、磁界または磁性粒子、光場または光粒子、あるいはそれらの任意の組合せによって表すことができる。情報及び信号は、配線、金属トレース、ビア、光ファイバ等を含む適切な任意の転送媒体を使用して、開示したシステムのコンポーネント間で通信することができる。
【００４５】
当業者はさらに、本明細書中で開示した実施形態に関連して述べた様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップが電子ハードウェア、コンピュータソフトウェア、または両者の組合せとして実施することができることを認識するであろう。このハードウェアとソフトウェアとの交換が可能であることを明らかに示すために、様々な例示的なコンポーネント、ブロック、モジュール、回路、およびステップをそれらの機能性の点から一般的に述べた。このような機能性がハードウェアまたはソフトウェアのいずれとして実施されるかは、特定の用途とシステム全体に課された設計制約による。当業者は、各特定の用途に対して、述べられた機能性を様々な方法で実施することができるが、そのような実施の決定は本発明の範囲からの逸脱を生じるものと解釈すべきではない。
【００４６】
本明細書中で開示した実施形態に関して述べた様々な例示的な論理ブロック、モジュールおよび回路は、用途特定集積回路（ＡＳＩＣ）、フィールドプログラム可能ゲートアレイ（ＦＰＧＡ）、汎用目的プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、またはその他のロジックデバイス、ディスクリートゲートまたはトランジスタロジック、ディスクリートハードウェアコンポーネント、あるいは本明細書中で述べた機能を実行するように設計されたそれらの任意の組合せによって実施でき、または実行できる。データ目的プロセッサは、任意の通常のプロセッサ、コントローラ、マイクロコントローラ、状態機械等であってもよい。またプロセッサは、演算装置の組合せとして実施することもできる。メモリは、カウンタ、レジスタ、ＲＡＭ、オンチップキャッシュ、外部メモリ等を含むことができる。
【００４７】
本発明により提供することができる効果および利点を特定の実施形態に関して述べた。これらの効果および利点と、それらを生じさせ、あるいはさらに明白にすることができる任意の構成要素または限定は、任意のまたは全ての請求項の重要な、所要の、あるいは必須の特徴として解釈されるべきではない。本明細書中で使用されるように、用語「備える」、「備えている」またはその任意の変形は、これらの用語に続く構成要素または限定を非排他的に含んでいると解釈されることを意図している。したがって、システム、方法、または１組の構成要素を備える他の実施形態は、これらの構成要素だけに限定されるのではなく、記載されていない、または請求された実施形態に特有ではない他の構成要素を含むことができる。
【００４８】
上記の開示された実施形態の説明は、当業者が本発明を構成または使用することを可能にするために提供された。これらの実施形態に対する様々な変形は、当業者には容易に明らかになり、本明細書中で定義されている一般的な原理は、本発明の趣旨または範囲を逸脱せずに他の実施形態に適用することができる。したがって、本発明は本明細書中で示された実施形態に限定されることを意図したものではなく、本明細書中で説明され、特許請求の範囲で挙げられた原理および新規な特徴と一致する最も広い範囲に一致することを意図している。
【００４９】
本発明によれば、例えば、以下の視点１乃至１９に記載されるようなシステム及び方法が提供可能である。
【００５０】
［視点１］
データプロセッサと、
ソフトウェアプログラムの実行中に前記データプロセッサによって使用される電力を測定するように構成された電力測定装置と、
前記ソフトウェアプログラムに関連する電力プロファイルを記憶するように構成されたメモリと、を備え、前記電力プロファイルは前記電力測定装置により決定されるシステム。
【００５１】
［視点２］
前記電力測定装置は、前記ソフトウェアプログラムの実行中に前記電力プロファイルを決定するように構成され、前記メモリは前記ソフトウェアプログラムの実行を中断せずに前記電力プロファイルを記憶するように構成された視点１記載のシステム。
【００５２】
［視点３］
前記電力プロファイルは、複数の電力レベル値を含み、それぞれの前記電力レベル値は、前記ソフトウェアプログラムの実行中の対応する間隔に関連する視点１記載のシステム。
【００５３】
［視点４］
各間隔は複数の命令の実行を含む視点３記載のシステム。
【００５４】
［視点５］
前記間隔は実質的に等しい視点３記載のシステム。
【００５５】
［視点６］
前記電力測定装置は、複数の間隔のそれぞれの間に前記データプロセッサにより使用される電力をしきい値電力レベルと比較するように構成された比較器を含み、前記電力プロファイルは、前記しきい値電力レベルが超過される複数の間隔を示す単一の値を含む視点１記載のシステム。
【００５６】
［視点７］
前記電力測定装置は、複数の間隔のそれぞれの間に前記データプロセッサにより使用される電力をしきい値電力レベルと比較するように構成された比較器を含み、前記電力プロファイルは、複数の値を含み、前記各値は間隔のグループに関連し、前記各値は前記しきい値電力レベルが超過される前記グループ中の複数の間隔を示す視点１記載のシステム。
【００５７】
［視点８］
前記電力測定装置及び前記メモリはデータプロセッサと一体化されている視点１記載のシステム。
【００５８】
［視点９］
データプロセッサ上でソフトウェアプログラムを実行することと、
前記ソフトウェアプログラムの実行中に前記データプロセッサにより使用される電力を監視することと、
前記ソフトウェアプログラムに対する電力プロファイルを決定することと、前記ソフトウェアプログラムに対する前記電力プロファイルを記憶することと、を含む方法。
【００５９】
［視点１０］
前記ソフトウェアプログラムを監視すること、前記電力プロファイルを決定すること、および前記電力プロファイルを記憶することは、前記ソフトウェアプログラムの実行を中断せずに、前記ソフトウェアプログラムの実行中に行われる視点９記載の方法。
【００６０】
［視点１１］
前記ソフトウェアプログラムに対する前記電力プロファイルを決定することは、複数の電力レベル値を決定することを含み、それぞれの前記電力レベル値は、前記ソフトウェアプログラムの実行中の対応する間隔に関連する視点９記載の方法。
【００６１】
［視点１２］
各間隔は複数の命令の実行を含む視点１１記載の方法。
【００６２】
［視点１３］
前記間隔は実質的に等しい視点１１記載の方法。
【００６３】
［視点１４］
前記ソフトウェアプログラムに対する前記電力プロファイルを決定することは、複数の間隔のそれぞれの間に前記データプロセッサにより使用される電力をしきい値電力レベルと比較することと、前記しきい値電力レベルが超過される複数の間隔を示す単一の値を供給することとを含む視点９記載の方法。
【００６４】
［視点１５］
前記ソフトウェアプログラムに対する前記電力プロファイルを決定することは、複数の間隔のそれぞれの間に前記データプロセッサにより使用される電力をしきい値電力レベルと比較することと、複数の値を供給することとを含み、前記各値は間隔のグループに関連し、前記各値は前記しきい値電力レベルが超過される前記グループ中の複数の間隔を示す視点９記載の方法。
【００６５】
［視点１６］
前記ソフトウェアプログラムの実行中に前記データプロセッサにより使用される前記電力を監視することは、前記データプロセッサと一体化されている電力測定装置を使用して前記電力を監視することを含む視点９記載の方法。
【００６６】
［視点１７］
前記ソフトウェアプログラムに対する前記電力プロファイルを記憶することは、前記データプロセッサと一体化されているメモリ中に前記電力プロファイルを記憶することを含む視点９記載の方法。
【００６７】
［視点１８］
さらに、前記電力プロファイルに関連する前記ソフトウェアプログラムの電力使用特性を変更するために、前記ソフトウェアプログラムを修正することを含む視点９記載の方法。
【００６８】
［視点１９］
集積データプロセッサであり、
単一の半導体チップ上に構成されたプロセッサコアと、
前記半導体チップ上に構成され、ソフトウェアプログラムの実行中に前記データプロセッサにより使用される電力を測定するように構成された電力測定装置と、
前記半導体チップ上に構成され、前記ソフトウェアプログラムに関連する電力プロファイルを記憶するように構成されたメモリと、を備え、前記電力プロファイルは前記電力測定装置により決定される集積データプロセッサ。
【図面の簡単な説明】
【００６９】
【図１】一実施形態による基本的方法を示すフロー図。
【図２】一実施形態により発生される電力プロファイルを示す図。
【図３】一実施形態によるデータ処理システムのコンポーネントを示す機能ブロック図。
【図４Ａ】ソフトウェアプログラムに対する電力測定値の例示的なセットを示す電力データ（電力プロファイル）のグラフ。
【図４Ｂ】ソフトウェアプログラムに対する電力測定値の例示的なセットを示す表。
【図５】別の実施形態によるデータ処理システムを示す機能ブロック図。
【図６Ａ】一実施形態による、プロセッサコアの電力レベルとしきい値の比較を示す結果的なしきい値超えプロファイル。
【図６Ｂ】一実施形態による、プロセッサコアの電力レベルとしきい値の比較を示す図。
【図７】別の実施形態によるデータ処理システムを示す機能ブロック図。
【図８Ａ】一実施形態による、プロセッサコアの電力レベルとしきい値の比較を示す結果的な複数値のしきい値超えプロファイル。
【図８Ｂ】一実施形態による、プロセッサコアの電力レベルとしきい値の比較を示す図。
【図９】別の実施形態による、ソフトウェアプログラムに対する電力プロファイルを決定し、この情報をプログラムの修正に使用するための方法を示すフロー図。
【図１０】一実施形態による、修正前及び修正後のソフトウェアプログラムの電力プロファイルを示す図。
【外国語明細書】
2007249961000001.pdf