データプロセッサ上で実行するソフトウェアプログラムに対する電力プロファイルを決定し使用するためのシステム及び方法
【課題】ソフトウェアプログラムの電力特性を識別し、電力特性を改善するようにプログラムを変更するためのシステムを提供する。
【解決手段】電力測定装置は、データプロセッサに結合され、ソフトウェアプログラムの実行中にデータプロセッサによって使用される電力のプロファイルを決定する。メモリは、電力プロファイルを記憶する。電力測定装置とメモリは、データプロセッサと同じチップ上に集積することができる。システムはプログラムの実行を中断せずに、電力プロファイルを決定して記憶することができる。電力プロファイルは、プログラムの実行中の間隔、しきい値を超えた回数、または他の電力測定基準に関連する複数の電力レベル値を含むことができる。
【解決手段】電力測定装置は、データプロセッサに結合され、ソフトウェアプログラムの実行中にデータプロセッサによって使用される電力のプロファイルを決定する。メモリは、電力プロファイルを記憶する。電力測定装置とメモリは、データプロセッサと同じチップ上に集積することができる。システムはプログラムの実行を中断せずに、電力プロファイルを決定して記憶することができる。電力プロファイルは、プログラムの実行中の間隔、しきい値を超えた回数、または他の電力測定基準に関連する複数の電力レベル値を含むことができる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的に電子装置に関し、特にソフトウェアプログラムの実行の異なる時点で、ソフトウェアプログラムにより使用される電力のプロファイルを決定するためのシステム及び方法に関する。
【背景技術】
【0002】
マイクロプロセッサのような集積回路は益々複雑になっている。これらの装置を形成する回路コンポーネント(例えばトランジスタ、ダイオード、抵抗等)は、同時に益々小型になり、それによりさらに多くの機能を特定の集積回路で実行することができる。回路コンポーネント及び機能の数が増加するにつれて、これらの集積回路により一般的に消費される電力の量も一般的に増加する。回路の電力消費の増加によって、回路内で発生する熱量もまた増加する。この熱は装置の性能に影響する可能性があり、装置に故障を起こす可能性さえもある。
【0003】
電子装置中の増加した熱量の発生により生じる危険性により、これらの装置内の温度の管理は益々重要になっている。装置は、たいてい温度管理を考慮して設計されており、装置中の温度を制御するのに役立つ様々なハードウェア特徴を含むことができる。例えば、装置は温度を検出するための熱感知回路と、温度が非常に高くなった場合に、装置により行われる動作の速さまたは回数を減少させるための制御システムを含むことができる。
【発明の開示】
【発明が解決しようとする課題】
【0004】
温度を感知し制御する装置及びハードウェア特徴の設計に対して、非常に多くの労力が費やされているが、装置によって実行されるソフトウェアの設計に焦点を当てた労力は比較的少ない。例えば、異なるタイプのソフトウェア命令は演算パワーのレベルを変えることを必要とする(例えば、浮動小数点演算は整数演算よりも計算の上で集中的である)が、この情報はソフトウェア設計よりもハードウェア設計を変更するために使用されていることが認識されている。例えば、マイクロプロセッサは重いコンテキストではなく軽いコンテキスト(例えば、主として浮動小数点演算によるコンテキストではなく整数演算によるコンテキスト)を行うためにコンテキストを切り換えるように設計することができる。
【0005】
電力に関連する問題を解決するソフトウェア指向の方法は、広く開発されてはいない。あるものは厄介であり、外部ホストコンピュータまたはテストベンチを必要とする。あるものは、個々の命令に対する電力要求を決定するような、比較的狭い目的のために設計されている。さらに別のあるものは、望まれるほど正確ではない(例えば、これらは単にプログラム全体にわたって平均された電力レベルを提供する)情報を提供する。これらのシステムは、プログラムの実行中に電力レベルが変化する方法など、さらに正確な電力情報を容易に決定するためには十分に設計されていない。
【0006】
ソフトウェアプログラムの電力特性(例えば、時間の関数としての電力要求)を識別し、それらの電力特性を改善するようにプログラムを変更するためのシステム及び方法を提供することが望まれるであろう。
【課題を解決するための手段】
【0007】
上述した1つ以上の問題は、本発明の様々な実施形態によって解決することができる。概説すると、本発明は、ソフトウェアプログラムに関連する電力プロファイルを決定するためのシステム及び方法を含んでいる。電力プロファイルは複数値プロファイルであってもよく、それらは電力使用特性およびプログラムの対応する電力プロファイルを変更するようプログラムを修正するために使用することができる。
【0008】
一実施形態は、データプロセッサ、電力測定装置、およびメモリを含むシステムを備えている。電力測定装置は、データプロセッサに結合され、ソフトウェアプログラムの実行中にデータプロセッサによって使用される電力のプロファイルを決定するように構成されている。メモリは、ソフトウェアプログラムに関連する電力プロファイルを記憶するように構成されている。電力測定装置とメモリは、データプロセッサと同じチップ上に集積されることが好ましい。
【0009】
一実施形態では、システムはプログラムの実行を中断せずに、電力プロファイルを決定して記憶するように構成されている。一実施形態では、電力プロファイルは複数の電力レベル値を含み、それら各値はプログラムの実行中の対応する間隔に関連する。各間隔は1つ以上の命令の実行を含むことができ、その間隔は等しいことが好ましい。一実施形態では、電力測定装置は、データプロセッサにより使用される電力をしきい値レベルと比較するように構成された比較器を含んでいる。これらのしきい値を超える事象は、プログラム全体に対して単一の値で記録されてもよく、あるいはこれらはプログラム内の間隔に対して記録されてもよい。
【0010】
他の実施形態は、データプロセッサ上でソフトウェアプログラムを実行し、プログラムを実行するためにデータプロセッサにより使用される電力を監視して、そのプログラムに対する電力プロファイルを決定し記憶することを含む方法を有する。電力プロファイルはその後、電力使用量特性と結果として生じる電力プロファイルを変更するようプログラムを修正するために使用することができる。
【0011】
一実施形態では、ソフトウェアプログラムの実行を中断せずに、方法が実行される。プログラムに対する電力プロファイルは、複数の電力レベル値を測定することにより決定することができ、それら各値はプログラムの実行中の対応する間隔に関連する。各間隔は複数の命令の実行を含むことができる。間隔は等しいことが好ましいが、必ずしもその必要はない。一実施形態では、プログラムに対する電力プロファイルは、各間隔の間にデータプロセッサにより使用される電力をしきい値電力レベルと比較し、これらのしきい値を超える事象を計数することにより決定することができる。しきい値を超える事象の数は、プログラム内の間隔に対して記録されてもよく、あるいはプログラム全体に対して記録されてもよい。電力プロファイル情報は、ソフトウェアプログラムを実行するプロセッサと一体化されているメモリ中に記憶することができ、あるいは外部メモリに記憶することができる。
【0012】
多くのさらなる実施形態もまた可能である。
【発明を実施するための最良の形態】
【0013】
本発明の他の目的および利点は、以下の詳細な説明を読み、添付図面を参照することでさらに明らかになるであろう。
【0014】
本発明は種々の変形および別の形態が可能であるが、その特定の実施形態を図面と添付の詳細な説明を例として示す。図面および詳細な説明は、記載された特定の実施形態に本発明を限定する意図はないことを理解すべきである。この開示は、添付の特許請求の範囲に規定されている本発明の範囲内に含まれる全ての変形、等価物、および代替をカバーすることを意図している。
【0015】
本発明の1つ以上の好ましい実施形態を以下に説明する。なお、以下に説明するこれらおよび任意の他の実施形態は例示であり、本発明を限定するものではなく、本発明を説明することを意図している。
【0016】
概説すると、本発明は、ソフトウェアプログラムにより使用される電力を決定するためのシステム及び方法を含み、その結果この情報は、例えばプログラムの構造を変更し、それによってプログラムの電力使用特性を改良するために使用することができる。
【0017】
一実施形態では、マイクロプロセッサは、電力測定装置と、プロセッサで実行されるソフトウェアプログラムに関連する電力使用量をプロファイルにするためのメモリとを組み込んでいる。電力測定装置は、ソフトウェアプログラムの命令を実行するためにプロセッサにより使用される電力を監視するように構成されている。プログラムの実行における異なる時点で測定された電力レベルが、メモリに記憶される電力プロファイルを形成する。この情報はその後、プログラムの電力プロファイルを改善するために(例えば、プログラムに関連する電力の使用のピークを減少するために)プログラムの解析と、それに続くプログラムの変更等の目的に使用することができる。
【0018】
この実施形態では、電力測定装置とメモリは両者ともプロセッサに内蔵されている。すなわち、それらはプロセッサと同じチップ上に構成される。電力測定装置とメモリは、本実施形態では、プログラムがプロセッサにより実行されるときにソフトウェアプログラムの電力プロファイルを決定し、記憶するように構成されている。このプロファイルは、特定の実施の要求にしたがって、多かれ少なかれ詳細にされ、例えば各命令に関連する電力レベルの記録から、実行中の一連の間隔に関連する電力レベルの記録、実行中のしきい値超えの発生数の記録に及ぶことがある。
【0019】
この実施形態では、電力測定装置とメモリはプログラムが実行するときに、ソフトウェアプログラムの電力プロファイルを決定し記録するように構成されている。実行を中断し、実行中のプログラムの一部を決定するために、必ずしもプロセッサに割込みを送る必要はない。同様に、電力データオフチップをホストコンピュータまたはテストベンチに転送するため、あるいは命令または電力データをオフチップメモリに記憶するために、必ずしもプログラムの実行を中断する必要はない。
【0020】
図1を参照すると、一実施形態による基本的な方法を示すフロー図が示されている。図1のフロー図は、データプロセッサ中で実施され、プロセッサで実行されるソフトウェアプログラムの特性である電力プロファイルを迅速にかつ容易に提供するように設計された方法を示している。
【0021】
ソフトウェアプログラムの実行が開始する場合、この方法はブロック110で開始する。プログラムが実行されると、プログラムを実行するためにプロセッサにより使用される電力が監視される(ブロック120)。周期的に、プロセッサにより使用される電力の測定値がメモリに記憶されるか、記録される(ブロック130)。電力の監視(ブロック120参照)および電力測定値の記憶(ブロック130参照)がプログラムの実行を通して継続して行われることを示すために、決定ブロック140が図に示されている。プログラムの実行がなされた場合、方法はブロック150へ進み、プログラムの実行は終了する。
【0022】
なお、図1の方法は、プログラムの実行の開始、電力の監視等を別個のブロックとして示しているが、これは説明を簡単にする目的でなされている。方法における異なる動作は、特定の実施に必要とされる場合、不連続に、連続して、またはその他の方法で行うことができる。プロセッサの電力使用量の監視は、典型的には連続的であり、一方、電力測定値の記憶は、典型的にはプログラムの実行中に周期的に行われる不連続な動作であることが考慮されている。プログラムの実際の実行は割込みなしで行われることが好ましい。なお、図に示されているブロックは、動作の厳密な順序を意味するものと解釈するべきではない。例えば、電力使用量の監視は、プログラムの実行前に開始し、プログラムの実行が終了した後まで継続することができる。
【0023】
図1の方法の結果が電力プロファイルである。例示的なプロファイルが図2に示されている。電力プロファイル210は、ソフトウェアプログラムの実行に関連する測定された電力レベルの時間の関数としてのグラフである。プログラムの実行(および対応する電力使用)はt1で開始することが分かる。プログラムを実行するためにプロセッサにより使用される電力の量はp1付近の高い値(時間t2−t3)からp3付近の低い値(例えば時間t4−t5)まで変化する。プロファイルは、プログラムの実行中に行われる複数の測定値から構成される。測定の数と、それらが行われる間隔は、実施形態によって変えることができる。
【0024】
電力プロファイル210に加えて、図2はプログラムを実行するためにプロセッサにより使用される平均電力(220)の表示を含んでいる。平均電力は、典型的には通常の方法により測定される情報に過ぎないので、(電力p2付近である)平均電力は、比較の目的で示されている。平均電力は、プログラムのどの部分が最も多くの(または最も少ない)電力を使用するかについての情報を提供しないことが、図から容易に分かる。それゆえ、この測定基準は、プログラムの高電力使用量部分を識別しようと望むソフトウェア設計者にとっては、ほとんどまたは全く役に立たず、そのためそれらを書き換えて、さらに高い電力効率にすることができる。
【0025】
図3を参照すると、一実施形態によるデータ処理システムのコンポーネントを示す機能ブロック図が示されている。この実施形態では、データ処理システムは、プロセッサコア310、電力測定装置320、およびメモリ330を含んでいる。これらコンポーネントの全ては(これは他の実施形態の場合に必ずしも必要ではないが)、単一のチップ上に構成されている。
【0026】
図3の実施形態では、電力測定装置320はプロセッサコア310に結合され、それによって、ソフトウェアプログラムの実行中にプロセッサコアにより使用されている電力の量を測定することができる。電力測定装置320は様々な方法でプロセッサコア310に結合することができる。例えば、電力測定装置320はプロセッサコア310に直接接続するか、あるいはプロセッサコアに電力を供給する電源に接続することができる。プロセッサコアによって使用される電力を電力測定装置により測定することができる限り、電力測定装置320がプロセッサコア310に結合される正確な方法は重要ではない。
【0027】
プロセッサコア310によるソフトウェアプログラムの実行中のいくつかの時点において、電力測定装置320は、プログラムを実行するためにプロセッサコアにより使用されている電力の量を測定する。電力は時間的な特定の瞬間に対して測定してもよく、あるいはプログラムの実行中の間隔にわたって測定してもよい。これらの電力測定値が電力測定装置320により得られると、これらはメモリ330に記憶される。メモリ330は、任意の適切なタイプのメモリであってもよく、例えばデータプロセッサのキャッシュメモリの一部、あるいは電力測定のために確保することのできる1組のレジスタであってもよい。一実施形態では、電力測定値は規則的な間隔で得られ、それによってメモリ330に記憶される電力測定値は、時間の関数として、ソフトウェアプログラムの電力プロファイルを生成するようにプロットすることができる。
【0028】
図4Aおよび図4Bを参照すると、ソフトウェアプログラムに対する例示的な一組の電力測定値を示す表が、電力データ(電力プロファイル)のグラフと共に示されている。図4Bに示されている表は、3つの列、すなわち時間、電力、およびアドレスを含んでいる。一実施形態では、メモリは電力測定装置により取得される一連の電力測定値だけを記憶する。この実施形態では、電力測定値は規則的な間隔で得られ、それによって各測定値の正確な実時間を記録する必要はない。最初の測定値は初期時間に対応し、連続する測定値は、初期時間といくつかの間隔に対応することが分かる。例えば、最初の電力測定値が時間t0に対応するならば、メモリに記憶されるN番目の測定値は時間t0+(N−1)Δtに対応し、ここでΔtは各間隔の継続時間である。単に読者が理解しやすいようにするために、表には時間が設けられている。
【0029】
図4Aの表からのデータが図4Bにプロットされている。図4Aのデータは垂直のバーとして示されている。前述したように、電力測定値は規則的な間隔で得られるので、バーはt0、t1、t2等で均等に間隔を空けられている。間隔は特定の実施に対して所望の粒度を提供するために、増加または減少することができる。この例では、プロセッサコアにより使用される電力は、典型的には3−4間隔でほぼ同じレベルにあることが分かる。電力がより迅速に変動するならば、またはより詳細な情報が必要とされたならば、電力測定が行われるインターバルを減少させる必要があるであろう。
【0030】
図5を参照すると、別の実施形態によるデータ処理システムを示す機能ブロック図が示されている。この実施形態では、システムはプロセッサコア510、電力測定装置520、比較器540、カウンタ550、およびレジスタ560を含んでいる。これらのコンポーネントも単一のチップ上に構成されている。
【0031】
この実施形態でも、電力測定装置520は、ソフトウェアプログラムが実行されると、プロセッサコア510の電力使用量を監視する。しかしながら、プログラムの実行中に選択された間隔で得られる電力測定値を記憶するよりも、比較器540は、測定された電力レベルをレジスタ560に記憶されたしきい値レベルと比較し、プロセッサコアにより使用された電力がしきい値を超えるか否かの表示を生成するように構成されている。この表示はカウンタ550へ供給され、カウンタ550は電力レベルがしきい値を超える回数を数える。
【0032】
図6Aおよび図6Bを参照すると、プロセッサコアの電力レベルのしきい値に対する比較と、結果として生じるしきい値を超えたプロファイルを表す図が示されている。図6Aは実電力使用量610のグラフを含んでいる。本実施形態では、電力は時間の関数として記録されないので、このグラフは破線を用いて示されている。このグラフは、電力レベルがしきい値620を超えたときを示す参照目的のために提供されており、しきい値は図では水平の実線として示されている。
【0033】
本実施形態では、電力測定装置は、規則的な間隔で電力測定値を比較器に供給するように構成されている。これらの測定値は、時間t0、t1、t2等で得られる。時間t1、t2、およびt3で取得される測定値はしきい値電力レベルを超えることが分かる。他の全ての時間では、電力レベルはしきい値未満である。それゆえカウンタは、時間t1、t2、およびt3でインクリメントされ、最終的にしきい値を超えた回数は3になる。
【0034】
本実施形態では、システムにより生成される電力プロファイルは、図4に示すような電力対時間のプロファイルではなく、ソフトウェアプログラムの実行中にしきい値電力レベルを超える回数を示す単一値プロファイルである。カウンタ550は、本実施形態では、プロファイル値が記憶されるメモリ/レジスタとして作用する。
【0035】
図7を参照すると、別の実施形態によるデータ処理システムを表す機能ブロック図が示されている。この実施形態では、システムは、プロセッサコア710、電力測定装置720、比較器740、カウンタ750、レジスタ760、およびメモリ730を含んでいる。
【0036】
図7に示したシステムの構造は、メモリ730の付加を除いて、図5に示されたものと同じであることが分かる。これらの2つのシステムの動作は非常に類似している。相違点は、図5のシステムは、単一のしきい値を超えた値からなる電力プロファイルを生成するが、図7のシステムは、プログラムの実行中の対応する期間に対するしきい値を超えた回数に対応する複数の値を含んでいるプロファイルを生成するように構成されていることである。
【0037】
本実施形態では、電力測定装置720は、ソフトウェアプログラムが実行されると、プロセッサコア710の電力使用量を監視する。比較器740は電力測定装置720から受信した測定電力レベルを、レジスタ760に記憶されているしきい値レベルと比較し、カウンタ750へ供給されるしきい値超え信号を生成する。カウンタ750の値は、周期的にメモリ730に記憶される。カウンタ値が記憶されるとき、カウンタは0にリセットされる。プログラムの実行後、メモリ730は、プログラムの実行の特定部分の期間に、プロセッサコアの電力使用量がしきい値を超える回数に対応する一連の値を記憶する。
【0038】
図8Aおよび図8Bを参照すると、プロセッサコアの電力レベルとしきい値との比較を示す図と、結果として生じる複数値のしきい値超え電力プロファイルが示されている。図8Aは、実電力使用量810としきい値820のグラフを含んでいる。
【0039】
本実施形態では、電力測定装置は時間t0、t1、t2等で電力測定値を比較器に供給する。システムは、5番目の間隔毎に、しきい値を超えた回数を記憶するように構成されている。したがって、メモリ730は、t0−t4、t5−t9、t10−t14、およびt15−t19についてのしきい値超えの回数を記憶する。この複数値のプロファイルは単一値のプロファイルよりも明らかに多くの情報を提供し、この例では、しきい値超えの発生はプログラムの初期部分(t0−t4)に集中している。
【0040】
背景技術で述べたように、集積回路が複雑になると、回路の電力管理の改善の必要性が生じる。前述したように得られた電力プロファイル情報は、集積回路のソフトウェアプログラムの実行において、可能な制御を改善することにより、電力管理を改善するために使用することができる。
【0041】
図9を参照すると、別の実施形態による、ソフトウェアプログラムに対して電力プロファイルを決定し、この情報をプログラムの修正に使用するための方法を表すフロー図が示されている。この方法は、データプロセッサ上のプログラムの実行によって開始する(ブロック910)。プログラムが実行されると、データプロセッサの電力使用量が監視され(ブロック920)、プロファイルがプロセッサの電力使用量に対して決定される(ブロック930)。電力プロファイルは記憶され(ブロック940)、それによって電力プロファイルを検索することができ、プログラムを修正するための基盤として使用することができる(ブロック950)。
【0042】
前述したように、プログラムの電力プロファイルは、単一値または複数値のしきい値を超えた回数と、電力対時間のデータを含む様々な形態を有することができる。この情報は、プログラムの異なる部分の電力使用量を決定するために、例えばソフトウェア設計者が使用することができる。非常に多くの電力を使用するプログラムの部分があるならば、ソフトウェア設計者はそのプログラムの部分の電力要求を減らすために、さらに効率的な命令またはアルゴリズムを使用することができる。その代わりに、ソフトウェア設計者は、プログラムの電力集中命令のいくつかを他の領域にシフトするか、あるいは電力使用量を減らすためにより少ない電力集中命令を付加することができる。
【0043】
図10を参照すると、修正前及び修正後のソフトウェアプログラムの電力プロファイルを表す図が示されている。この図は、プログラムに対する最初の電力プロファイル(1010)のグラフだけでなく、最初のプロファイルに基づく修正後のプログラムに対する電力プロファイル(1020)のグラフを含む。プログラムに対する修正により、特に最初の電力プロファイルでピークが生じる早期の実行段階(t1−t3周辺)で電力使用量の減少が生じることが分かる。さらに、この変化はプログラムにより使用される平均電力を減らす。また、修正はプログラムの実行を通じて電力変動を少なくし、それは電流の急速な変化(高di/dt)に関連する問題のため有益である。
【0044】
当業者は前述の情報および信号を任意の様々な異なる技術を使用して表すことができることを理解するであろう。例えば、データ、命令、コマンド、情報、信号、ビット、シンボル等は電圧、電流、電磁波、磁界または磁性粒子、光場または光粒子、あるいはそれらの任意の組合せによって表すことができる。情報及び信号は、配線、金属トレース、ビア、光ファイバ等を含む適切な任意の転送媒体を使用して、開示したシステムのコンポーネント間で通信することができる。
【0045】
当業者はさらに、本明細書中で開示した実施形態に関連して述べた様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップが電子ハードウェア、コンピュータソフトウェア、または両者の組合せとして実施することができることを認識するであろう。このハードウェアとソフトウェアとの交換が可能であることを明らかに示すために、様々な例示的なコンポーネント、ブロック、モジュール、回路、およびステップをそれらの機能性の点から一般的に述べた。このような機能性がハードウェアまたはソフトウェアのいずれとして実施されるかは、特定の用途とシステム全体に課された設計制約による。当業者は、各特定の用途に対して、述べられた機能性を様々な方法で実施することができるが、そのような実施の決定は本発明の範囲からの逸脱を生じるものと解釈すべきではない。
【0046】
本明細書中で開示した実施形態に関して述べた様々な例示的な論理ブロック、モジュールおよび回路は、用途特定集積回路(ASIC)、フィールドプログラム可能ゲートアレイ(FPGA)、汎用目的プロセッサ、デジタル信号プロセッサ(DSP)、またはその他のロジックデバイス、ディスクリートゲートまたはトランジスタロジック、ディスクリートハードウェアコンポーネント、あるいは本明細書中で述べた機能を実行するように設計されたそれらの任意の組合せによって実施でき、または実行できる。データ目的プロセッサは、任意の通常のプロセッサ、コントローラ、マイクロコントローラ、状態機械等であってもよい。またプロセッサは、演算装置の組合せとして実施することもできる。メモリは、カウンタ、レジスタ、RAM、オンチップキャッシュ、外部メモリ等を含むことができる。
【0047】
本発明により提供することができる効果および利点を特定の実施形態に関して述べた。これらの効果および利点と、それらを生じさせ、あるいはさらに明白にすることができる任意の構成要素または限定は、任意のまたは全ての請求項の重要な、所要の、あるいは必須の特徴として解釈されるべきではない。本明細書中で使用されるように、用語「備える」、「備えている」またはその任意の変形は、これらの用語に続く構成要素または限定を非排他的に含んでいると解釈されることを意図している。したがって、システム、方法、または1組の構成要素を備える他の実施形態は、これらの構成要素だけに限定されるのではなく、記載されていない、または請求された実施形態に特有ではない他の構成要素を含むことができる。
【0048】
上記の開示された実施形態の説明は、当業者が本発明を構成または使用することを可能にするために提供された。これらの実施形態に対する様々な変形は、当業者には容易に明らかになり、本明細書中で定義されている一般的な原理は、本発明の趣旨または範囲を逸脱せずに他の実施形態に適用することができる。したがって、本発明は本明細書中で示された実施形態に限定されることを意図したものではなく、本明細書中で説明され、特許請求の範囲で挙げられた原理および新規な特徴と一致する最も広い範囲に一致することを意図している。
【図面の簡単な説明】
【0049】
【図1】一実施形態による基本的方法を示すフロー図。
【図2】一実施形態により発生される電力プロファイルを示す図。
【図3】一実施形態によるデータ処理システムのコンポーネントを示す機能ブロック図。
【図4A】ソフトウェアプログラムに対する電力測定値の例示的なセットを示す電力データ(電力プロファイル)のグラフ。
【図4B】ソフトウェアプログラムに対する電力測定値の例示的なセットを示す表。
【図5】別の実施形態によるデータ処理システムを示す機能ブロック図。
【図6A】一実施形態による、プロセッサコアの電力レベルとしきい値の比較を示す結果的なしきい値超えプロファイル。
【図6B】一実施形態による、プロセッサコアの電力レベルとしきい値の比較を示す図。
【図7】別の実施形態によるデータ処理システムを示す機能ブロック図。
【図8A】一実施形態による、プロセッサコアの電力レベルとしきい値の比較を示す結果的な複数値のしきい値超えプロファイル。
【図8B】一実施形態による、プロセッサコアの電力レベルとしきい値の比較を示す図。
【図9】別の実施形態による、ソフトウェアプログラムに対する電力プロファイルを決定し、この情報をプログラムの修正に使用するための方法を示すフロー図。
【図10】一実施形態による、修正前及び修正後のソフトウェアプログラムの電力プロファイルを示す図。
【技術分野】
【0001】
本発明は、一般的に電子装置に関し、特にソフトウェアプログラムの実行の異なる時点で、ソフトウェアプログラムにより使用される電力のプロファイルを決定するためのシステム及び方法に関する。
【背景技術】
【0002】
マイクロプロセッサのような集積回路は益々複雑になっている。これらの装置を形成する回路コンポーネント(例えばトランジスタ、ダイオード、抵抗等)は、同時に益々小型になり、それによりさらに多くの機能を特定の集積回路で実行することができる。回路コンポーネント及び機能の数が増加するにつれて、これらの集積回路により一般的に消費される電力の量も一般的に増加する。回路の電力消費の増加によって、回路内で発生する熱量もまた増加する。この熱は装置の性能に影響する可能性があり、装置に故障を起こす可能性さえもある。
【0003】
電子装置中の増加した熱量の発生により生じる危険性により、これらの装置内の温度の管理は益々重要になっている。装置は、たいてい温度管理を考慮して設計されており、装置中の温度を制御するのに役立つ様々なハードウェア特徴を含むことができる。例えば、装置は温度を検出するための熱感知回路と、温度が非常に高くなった場合に、装置により行われる動作の速さまたは回数を減少させるための制御システムを含むことができる。
【発明の開示】
【発明が解決しようとする課題】
【0004】
温度を感知し制御する装置及びハードウェア特徴の設計に対して、非常に多くの労力が費やされているが、装置によって実行されるソフトウェアの設計に焦点を当てた労力は比較的少ない。例えば、異なるタイプのソフトウェア命令は演算パワーのレベルを変えることを必要とする(例えば、浮動小数点演算は整数演算よりも計算の上で集中的である)が、この情報はソフトウェア設計よりもハードウェア設計を変更するために使用されていることが認識されている。例えば、マイクロプロセッサは重いコンテキストではなく軽いコンテキスト(例えば、主として浮動小数点演算によるコンテキストではなく整数演算によるコンテキスト)を行うためにコンテキストを切り換えるように設計することができる。
【0005】
電力に関連する問題を解決するソフトウェア指向の方法は、広く開発されてはいない。あるものは厄介であり、外部ホストコンピュータまたはテストベンチを必要とする。あるものは、個々の命令に対する電力要求を決定するような、比較的狭い目的のために設計されている。さらに別のあるものは、望まれるほど正確ではない(例えば、これらは単にプログラム全体にわたって平均された電力レベルを提供する)情報を提供する。これらのシステムは、プログラムの実行中に電力レベルが変化する方法など、さらに正確な電力情報を容易に決定するためには十分に設計されていない。
【0006】
ソフトウェアプログラムの電力特性(例えば、時間の関数としての電力要求)を識別し、それらの電力特性を改善するようにプログラムを変更するためのシステム及び方法を提供することが望まれるであろう。
【課題を解決するための手段】
【0007】
上述した1つ以上の問題は、本発明の様々な実施形態によって解決することができる。概説すると、本発明は、ソフトウェアプログラムに関連する電力プロファイルを決定するためのシステム及び方法を含んでいる。電力プロファイルは複数値プロファイルであってもよく、それらは電力使用特性およびプログラムの対応する電力プロファイルを変更するようプログラムを修正するために使用することができる。
【0008】
一実施形態は、データプロセッサ、電力測定装置、およびメモリを含むシステムを備えている。電力測定装置は、データプロセッサに結合され、ソフトウェアプログラムの実行中にデータプロセッサによって使用される電力のプロファイルを決定するように構成されている。メモリは、ソフトウェアプログラムに関連する電力プロファイルを記憶するように構成されている。電力測定装置とメモリは、データプロセッサと同じチップ上に集積されることが好ましい。
【0009】
一実施形態では、システムはプログラムの実行を中断せずに、電力プロファイルを決定して記憶するように構成されている。一実施形態では、電力プロファイルは複数の電力レベル値を含み、それら各値はプログラムの実行中の対応する間隔に関連する。各間隔は1つ以上の命令の実行を含むことができ、その間隔は等しいことが好ましい。一実施形態では、電力測定装置は、データプロセッサにより使用される電力をしきい値レベルと比較するように構成された比較器を含んでいる。これらのしきい値を超える事象は、プログラム全体に対して単一の値で記録されてもよく、あるいはこれらはプログラム内の間隔に対して記録されてもよい。
【0010】
他の実施形態は、データプロセッサ上でソフトウェアプログラムを実行し、プログラムを実行するためにデータプロセッサにより使用される電力を監視して、そのプログラムに対する電力プロファイルを決定し記憶することを含む方法を有する。電力プロファイルはその後、電力使用量特性と結果として生じる電力プロファイルを変更するようプログラムを修正するために使用することができる。
【0011】
一実施形態では、ソフトウェアプログラムの実行を中断せずに、方法が実行される。プログラムに対する電力プロファイルは、複数の電力レベル値を測定することにより決定することができ、それら各値はプログラムの実行中の対応する間隔に関連する。各間隔は複数の命令の実行を含むことができる。間隔は等しいことが好ましいが、必ずしもその必要はない。一実施形態では、プログラムに対する電力プロファイルは、各間隔の間にデータプロセッサにより使用される電力をしきい値電力レベルと比較し、これらのしきい値を超える事象を計数することにより決定することができる。しきい値を超える事象の数は、プログラム内の間隔に対して記録されてもよく、あるいはプログラム全体に対して記録されてもよい。電力プロファイル情報は、ソフトウェアプログラムを実行するプロセッサと一体化されているメモリ中に記憶することができ、あるいは外部メモリに記憶することができる。
【0012】
多くのさらなる実施形態もまた可能である。
【発明を実施するための最良の形態】
【0013】
本発明の他の目的および利点は、以下の詳細な説明を読み、添付図面を参照することでさらに明らかになるであろう。
【0014】
本発明は種々の変形および別の形態が可能であるが、その特定の実施形態を図面と添付の詳細な説明を例として示す。図面および詳細な説明は、記載された特定の実施形態に本発明を限定する意図はないことを理解すべきである。この開示は、添付の特許請求の範囲に規定されている本発明の範囲内に含まれる全ての変形、等価物、および代替をカバーすることを意図している。
【0015】
本発明の1つ以上の好ましい実施形態を以下に説明する。なお、以下に説明するこれらおよび任意の他の実施形態は例示であり、本発明を限定するものではなく、本発明を説明することを意図している。
【0016】
概説すると、本発明は、ソフトウェアプログラムにより使用される電力を決定するためのシステム及び方法を含み、その結果この情報は、例えばプログラムの構造を変更し、それによってプログラムの電力使用特性を改良するために使用することができる。
【0017】
一実施形態では、マイクロプロセッサは、電力測定装置と、プロセッサで実行されるソフトウェアプログラムに関連する電力使用量をプロファイルにするためのメモリとを組み込んでいる。電力測定装置は、ソフトウェアプログラムの命令を実行するためにプロセッサにより使用される電力を監視するように構成されている。プログラムの実行における異なる時点で測定された電力レベルが、メモリに記憶される電力プロファイルを形成する。この情報はその後、プログラムの電力プロファイルを改善するために(例えば、プログラムに関連する電力の使用のピークを減少するために)プログラムの解析と、それに続くプログラムの変更等の目的に使用することができる。
【0018】
この実施形態では、電力測定装置とメモリは両者ともプロセッサに内蔵されている。すなわち、それらはプロセッサと同じチップ上に構成される。電力測定装置とメモリは、本実施形態では、プログラムがプロセッサにより実行されるときにソフトウェアプログラムの電力プロファイルを決定し、記憶するように構成されている。このプロファイルは、特定の実施の要求にしたがって、多かれ少なかれ詳細にされ、例えば各命令に関連する電力レベルの記録から、実行中の一連の間隔に関連する電力レベルの記録、実行中のしきい値超えの発生数の記録に及ぶことがある。
【0019】
この実施形態では、電力測定装置とメモリはプログラムが実行するときに、ソフトウェアプログラムの電力プロファイルを決定し記録するように構成されている。実行を中断し、実行中のプログラムの一部を決定するために、必ずしもプロセッサに割込みを送る必要はない。同様に、電力データオフチップをホストコンピュータまたはテストベンチに転送するため、あるいは命令または電力データをオフチップメモリに記憶するために、必ずしもプログラムの実行を中断する必要はない。
【0020】
図1を参照すると、一実施形態による基本的な方法を示すフロー図が示されている。図1のフロー図は、データプロセッサ中で実施され、プロセッサで実行されるソフトウェアプログラムの特性である電力プロファイルを迅速にかつ容易に提供するように設計された方法を示している。
【0021】
ソフトウェアプログラムの実行が開始する場合、この方法はブロック110で開始する。プログラムが実行されると、プログラムを実行するためにプロセッサにより使用される電力が監視される(ブロック120)。周期的に、プロセッサにより使用される電力の測定値がメモリに記憶されるか、記録される(ブロック130)。電力の監視(ブロック120参照)および電力測定値の記憶(ブロック130参照)がプログラムの実行を通して継続して行われることを示すために、決定ブロック140が図に示されている。プログラムの実行がなされた場合、方法はブロック150へ進み、プログラムの実行は終了する。
【0022】
なお、図1の方法は、プログラムの実行の開始、電力の監視等を別個のブロックとして示しているが、これは説明を簡単にする目的でなされている。方法における異なる動作は、特定の実施に必要とされる場合、不連続に、連続して、またはその他の方法で行うことができる。プロセッサの電力使用量の監視は、典型的には連続的であり、一方、電力測定値の記憶は、典型的にはプログラムの実行中に周期的に行われる不連続な動作であることが考慮されている。プログラムの実際の実行は割込みなしで行われることが好ましい。なお、図に示されているブロックは、動作の厳密な順序を意味するものと解釈するべきではない。例えば、電力使用量の監視は、プログラムの実行前に開始し、プログラムの実行が終了した後まで継続することができる。
【0023】
図1の方法の結果が電力プロファイルである。例示的なプロファイルが図2に示されている。電力プロファイル210は、ソフトウェアプログラムの実行に関連する測定された電力レベルの時間の関数としてのグラフである。プログラムの実行(および対応する電力使用)はt1で開始することが分かる。プログラムを実行するためにプロセッサにより使用される電力の量はp1付近の高い値(時間t2−t3)からp3付近の低い値(例えば時間t4−t5)まで変化する。プロファイルは、プログラムの実行中に行われる複数の測定値から構成される。測定の数と、それらが行われる間隔は、実施形態によって変えることができる。
【0024】
電力プロファイル210に加えて、図2はプログラムを実行するためにプロセッサにより使用される平均電力(220)の表示を含んでいる。平均電力は、典型的には通常の方法により測定される情報に過ぎないので、(電力p2付近である)平均電力は、比較の目的で示されている。平均電力は、プログラムのどの部分が最も多くの(または最も少ない)電力を使用するかについての情報を提供しないことが、図から容易に分かる。それゆえ、この測定基準は、プログラムの高電力使用量部分を識別しようと望むソフトウェア設計者にとっては、ほとんどまたは全く役に立たず、そのためそれらを書き換えて、さらに高い電力効率にすることができる。
【0025】
図3を参照すると、一実施形態によるデータ処理システムのコンポーネントを示す機能ブロック図が示されている。この実施形態では、データ処理システムは、プロセッサコア310、電力測定装置320、およびメモリ330を含んでいる。これらコンポーネントの全ては(これは他の実施形態の場合に必ずしも必要ではないが)、単一のチップ上に構成されている。
【0026】
図3の実施形態では、電力測定装置320はプロセッサコア310に結合され、それによって、ソフトウェアプログラムの実行中にプロセッサコアにより使用されている電力の量を測定することができる。電力測定装置320は様々な方法でプロセッサコア310に結合することができる。例えば、電力測定装置320はプロセッサコア310に直接接続するか、あるいはプロセッサコアに電力を供給する電源に接続することができる。プロセッサコアによって使用される電力を電力測定装置により測定することができる限り、電力測定装置320がプロセッサコア310に結合される正確な方法は重要ではない。
【0027】
プロセッサコア310によるソフトウェアプログラムの実行中のいくつかの時点において、電力測定装置320は、プログラムを実行するためにプロセッサコアにより使用されている電力の量を測定する。電力は時間的な特定の瞬間に対して測定してもよく、あるいはプログラムの実行中の間隔にわたって測定してもよい。これらの電力測定値が電力測定装置320により得られると、これらはメモリ330に記憶される。メモリ330は、任意の適切なタイプのメモリであってもよく、例えばデータプロセッサのキャッシュメモリの一部、あるいは電力測定のために確保することのできる1組のレジスタであってもよい。一実施形態では、電力測定値は規則的な間隔で得られ、それによってメモリ330に記憶される電力測定値は、時間の関数として、ソフトウェアプログラムの電力プロファイルを生成するようにプロットすることができる。
【0028】
図4Aおよび図4Bを参照すると、ソフトウェアプログラムに対する例示的な一組の電力測定値を示す表が、電力データ(電力プロファイル)のグラフと共に示されている。図4Bに示されている表は、3つの列、すなわち時間、電力、およびアドレスを含んでいる。一実施形態では、メモリは電力測定装置により取得される一連の電力測定値だけを記憶する。この実施形態では、電力測定値は規則的な間隔で得られ、それによって各測定値の正確な実時間を記録する必要はない。最初の測定値は初期時間に対応し、連続する測定値は、初期時間といくつかの間隔に対応することが分かる。例えば、最初の電力測定値が時間t0に対応するならば、メモリに記憶されるN番目の測定値は時間t0+(N−1)Δtに対応し、ここでΔtは各間隔の継続時間である。単に読者が理解しやすいようにするために、表には時間が設けられている。
【0029】
図4Aの表からのデータが図4Bにプロットされている。図4Aのデータは垂直のバーとして示されている。前述したように、電力測定値は規則的な間隔で得られるので、バーはt0、t1、t2等で均等に間隔を空けられている。間隔は特定の実施に対して所望の粒度を提供するために、増加または減少することができる。この例では、プロセッサコアにより使用される電力は、典型的には3−4間隔でほぼ同じレベルにあることが分かる。電力がより迅速に変動するならば、またはより詳細な情報が必要とされたならば、電力測定が行われるインターバルを減少させる必要があるであろう。
【0030】
図5を参照すると、別の実施形態によるデータ処理システムを示す機能ブロック図が示されている。この実施形態では、システムはプロセッサコア510、電力測定装置520、比較器540、カウンタ550、およびレジスタ560を含んでいる。これらのコンポーネントも単一のチップ上に構成されている。
【0031】
この実施形態でも、電力測定装置520は、ソフトウェアプログラムが実行されると、プロセッサコア510の電力使用量を監視する。しかしながら、プログラムの実行中に選択された間隔で得られる電力測定値を記憶するよりも、比較器540は、測定された電力レベルをレジスタ560に記憶されたしきい値レベルと比較し、プロセッサコアにより使用された電力がしきい値を超えるか否かの表示を生成するように構成されている。この表示はカウンタ550へ供給され、カウンタ550は電力レベルがしきい値を超える回数を数える。
【0032】
図6Aおよび図6Bを参照すると、プロセッサコアの電力レベルのしきい値に対する比較と、結果として生じるしきい値を超えたプロファイルを表す図が示されている。図6Aは実電力使用量610のグラフを含んでいる。本実施形態では、電力は時間の関数として記録されないので、このグラフは破線を用いて示されている。このグラフは、電力レベルがしきい値620を超えたときを示す参照目的のために提供されており、しきい値は図では水平の実線として示されている。
【0033】
本実施形態では、電力測定装置は、規則的な間隔で電力測定値を比較器に供給するように構成されている。これらの測定値は、時間t0、t1、t2等で得られる。時間t1、t2、およびt3で取得される測定値はしきい値電力レベルを超えることが分かる。他の全ての時間では、電力レベルはしきい値未満である。それゆえカウンタは、時間t1、t2、およびt3でインクリメントされ、最終的にしきい値を超えた回数は3になる。
【0034】
本実施形態では、システムにより生成される電力プロファイルは、図4に示すような電力対時間のプロファイルではなく、ソフトウェアプログラムの実行中にしきい値電力レベルを超える回数を示す単一値プロファイルである。カウンタ550は、本実施形態では、プロファイル値が記憶されるメモリ/レジスタとして作用する。
【0035】
図7を参照すると、別の実施形態によるデータ処理システムを表す機能ブロック図が示されている。この実施形態では、システムは、プロセッサコア710、電力測定装置720、比較器740、カウンタ750、レジスタ760、およびメモリ730を含んでいる。
【0036】
図7に示したシステムの構造は、メモリ730の付加を除いて、図5に示されたものと同じであることが分かる。これらの2つのシステムの動作は非常に類似している。相違点は、図5のシステムは、単一のしきい値を超えた値からなる電力プロファイルを生成するが、図7のシステムは、プログラムの実行中の対応する期間に対するしきい値を超えた回数に対応する複数の値を含んでいるプロファイルを生成するように構成されていることである。
【0037】
本実施形態では、電力測定装置720は、ソフトウェアプログラムが実行されると、プロセッサコア710の電力使用量を監視する。比較器740は電力測定装置720から受信した測定電力レベルを、レジスタ760に記憶されているしきい値レベルと比較し、カウンタ750へ供給されるしきい値超え信号を生成する。カウンタ750の値は、周期的にメモリ730に記憶される。カウンタ値が記憶されるとき、カウンタは0にリセットされる。プログラムの実行後、メモリ730は、プログラムの実行の特定部分の期間に、プロセッサコアの電力使用量がしきい値を超える回数に対応する一連の値を記憶する。
【0038】
図8Aおよび図8Bを参照すると、プロセッサコアの電力レベルとしきい値との比較を示す図と、結果として生じる複数値のしきい値超え電力プロファイルが示されている。図8Aは、実電力使用量810としきい値820のグラフを含んでいる。
【0039】
本実施形態では、電力測定装置は時間t0、t1、t2等で電力測定値を比較器に供給する。システムは、5番目の間隔毎に、しきい値を超えた回数を記憶するように構成されている。したがって、メモリ730は、t0−t4、t5−t9、t10−t14、およびt15−t19についてのしきい値超えの回数を記憶する。この複数値のプロファイルは単一値のプロファイルよりも明らかに多くの情報を提供し、この例では、しきい値超えの発生はプログラムの初期部分(t0−t4)に集中している。
【0040】
背景技術で述べたように、集積回路が複雑になると、回路の電力管理の改善の必要性が生じる。前述したように得られた電力プロファイル情報は、集積回路のソフトウェアプログラムの実行において、可能な制御を改善することにより、電力管理を改善するために使用することができる。
【0041】
図9を参照すると、別の実施形態による、ソフトウェアプログラムに対して電力プロファイルを決定し、この情報をプログラムの修正に使用するための方法を表すフロー図が示されている。この方法は、データプロセッサ上のプログラムの実行によって開始する(ブロック910)。プログラムが実行されると、データプロセッサの電力使用量が監視され(ブロック920)、プロファイルがプロセッサの電力使用量に対して決定される(ブロック930)。電力プロファイルは記憶され(ブロック940)、それによって電力プロファイルを検索することができ、プログラムを修正するための基盤として使用することができる(ブロック950)。
【0042】
前述したように、プログラムの電力プロファイルは、単一値または複数値のしきい値を超えた回数と、電力対時間のデータを含む様々な形態を有することができる。この情報は、プログラムの異なる部分の電力使用量を決定するために、例えばソフトウェア設計者が使用することができる。非常に多くの電力を使用するプログラムの部分があるならば、ソフトウェア設計者はそのプログラムの部分の電力要求を減らすために、さらに効率的な命令またはアルゴリズムを使用することができる。その代わりに、ソフトウェア設計者は、プログラムの電力集中命令のいくつかを他の領域にシフトするか、あるいは電力使用量を減らすためにより少ない電力集中命令を付加することができる。
【0043】
図10を参照すると、修正前及び修正後のソフトウェアプログラムの電力プロファイルを表す図が示されている。この図は、プログラムに対する最初の電力プロファイル(1010)のグラフだけでなく、最初のプロファイルに基づく修正後のプログラムに対する電力プロファイル(1020)のグラフを含む。プログラムに対する修正により、特に最初の電力プロファイルでピークが生じる早期の実行段階(t1−t3周辺)で電力使用量の減少が生じることが分かる。さらに、この変化はプログラムにより使用される平均電力を減らす。また、修正はプログラムの実行を通じて電力変動を少なくし、それは電流の急速な変化(高di/dt)に関連する問題のため有益である。
【0044】
当業者は前述の情報および信号を任意の様々な異なる技術を使用して表すことができることを理解するであろう。例えば、データ、命令、コマンド、情報、信号、ビット、シンボル等は電圧、電流、電磁波、磁界または磁性粒子、光場または光粒子、あるいはそれらの任意の組合せによって表すことができる。情報及び信号は、配線、金属トレース、ビア、光ファイバ等を含む適切な任意の転送媒体を使用して、開示したシステムのコンポーネント間で通信することができる。
【0045】
当業者はさらに、本明細書中で開示した実施形態に関連して述べた様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップが電子ハードウェア、コンピュータソフトウェア、または両者の組合せとして実施することができることを認識するであろう。このハードウェアとソフトウェアとの交換が可能であることを明らかに示すために、様々な例示的なコンポーネント、ブロック、モジュール、回路、およびステップをそれらの機能性の点から一般的に述べた。このような機能性がハードウェアまたはソフトウェアのいずれとして実施されるかは、特定の用途とシステム全体に課された設計制約による。当業者は、各特定の用途に対して、述べられた機能性を様々な方法で実施することができるが、そのような実施の決定は本発明の範囲からの逸脱を生じるものと解釈すべきではない。
【0046】
本明細書中で開示した実施形態に関して述べた様々な例示的な論理ブロック、モジュールおよび回路は、用途特定集積回路(ASIC)、フィールドプログラム可能ゲートアレイ(FPGA)、汎用目的プロセッサ、デジタル信号プロセッサ(DSP)、またはその他のロジックデバイス、ディスクリートゲートまたはトランジスタロジック、ディスクリートハードウェアコンポーネント、あるいは本明細書中で述べた機能を実行するように設計されたそれらの任意の組合せによって実施でき、または実行できる。データ目的プロセッサは、任意の通常のプロセッサ、コントローラ、マイクロコントローラ、状態機械等であってもよい。またプロセッサは、演算装置の組合せとして実施することもできる。メモリは、カウンタ、レジスタ、RAM、オンチップキャッシュ、外部メモリ等を含むことができる。
【0047】
本発明により提供することができる効果および利点を特定の実施形態に関して述べた。これらの効果および利点と、それらを生じさせ、あるいはさらに明白にすることができる任意の構成要素または限定は、任意のまたは全ての請求項の重要な、所要の、あるいは必須の特徴として解釈されるべきではない。本明細書中で使用されるように、用語「備える」、「備えている」またはその任意の変形は、これらの用語に続く構成要素または限定を非排他的に含んでいると解釈されることを意図している。したがって、システム、方法、または1組の構成要素を備える他の実施形態は、これらの構成要素だけに限定されるのではなく、記載されていない、または請求された実施形態に特有ではない他の構成要素を含むことができる。
【0048】
上記の開示された実施形態の説明は、当業者が本発明を構成または使用することを可能にするために提供された。これらの実施形態に対する様々な変形は、当業者には容易に明らかになり、本明細書中で定義されている一般的な原理は、本発明の趣旨または範囲を逸脱せずに他の実施形態に適用することができる。したがって、本発明は本明細書中で示された実施形態に限定されることを意図したものではなく、本明細書中で説明され、特許請求の範囲で挙げられた原理および新規な特徴と一致する最も広い範囲に一致することを意図している。
【図面の簡単な説明】
【0049】
【図1】一実施形態による基本的方法を示すフロー図。
【図2】一実施形態により発生される電力プロファイルを示す図。
【図3】一実施形態によるデータ処理システムのコンポーネントを示す機能ブロック図。
【図4A】ソフトウェアプログラムに対する電力測定値の例示的なセットを示す電力データ(電力プロファイル)のグラフ。
【図4B】ソフトウェアプログラムに対する電力測定値の例示的なセットを示す表。
【図5】別の実施形態によるデータ処理システムを示す機能ブロック図。
【図6A】一実施形態による、プロセッサコアの電力レベルとしきい値の比較を示す結果的なしきい値超えプロファイル。
【図6B】一実施形態による、プロセッサコアの電力レベルとしきい値の比較を示す図。
【図7】別の実施形態によるデータ処理システムを示す機能ブロック図。
【図8A】一実施形態による、プロセッサコアの電力レベルとしきい値の比較を示す結果的な複数値のしきい値超えプロファイル。
【図8B】一実施形態による、プロセッサコアの電力レベルとしきい値の比較を示す図。
【図9】別の実施形態による、ソフトウェアプログラムに対する電力プロファイルを決定し、この情報をプログラムの修正に使用するための方法を示すフロー図。
【図10】一実施形態による、修正前及び修正後のソフトウェアプログラムの電力プロファイルを示す図。
【特許請求の範囲】
【請求項1】
データプロセッサと、
ソフトウェアプログラムの実行中に前記データプロセッサによって使用される電力を測定するように構成された電力測定装置と、
前記ソフトウェアプログラムに関連する電力プロファイルを記憶するように構成されたメモリと、を備え、前記電力プロファイルは前記電力測定装置により決定されるシステム。
【請求項2】
前記電力測定装置は、前記ソフトウェアプログラムの実行中に前記電力プロファイルを決定するように構成され、前記メモリは前記ソフトウェアプログラムの実行を中断せずに前記電力プロファイルを記憶するように構成された請求項1記載のシステム。
【請求項3】
前記電力プロファイルは、複数の電力レベル値を含み、それぞれの前記電力レベル値は、前記ソフトウェアプログラムの実行中の対応する間隔に関連する請求項1記載のシステム。
【請求項4】
各間隔は複数の命令の実行を含む請求項3記載のシステム。
【請求項5】
前記間隔は実質的に等しい請求項3記載のシステム。
【請求項6】
前記電力測定装置は、複数の間隔のそれぞれの間に前記データプロセッサにより使用される電力をしきい値電力レベルと比較するように構成された比較器を含み、前記電力プロファイルは、前記しきい値電力レベルが超過される複数の間隔を示す単一の値を含む請求項1記載のシステム。
【請求項7】
前記電力測定装置は、複数の間隔のそれぞれの間に前記データプロセッサにより使用される電力をしきい値電力レベルと比較するように構成された比較器を含み、前記電力プロファイルは、複数の値を含み、前記各値は間隔のグループに関連し、前記各値は前記しきい値電力レベルが超過される前記グループ中の複数の間隔を示す請求項1記載のシステム。
【請求項8】
前記電力測定装置及び前記メモリはデータプロセッサと一体化されている請求項1記載のシステム。
【請求項9】
データプロセッサ上でソフトウェアプログラムを実行することと、
前記ソフトウェアプログラムの実行中に前記データプロセッサにより使用される電力を監視することと、
前記ソフトウェアプログラムに対する電力プロファイルを決定することと、前記ソフトウェアプログラムに対する前記電力プロファイルを記憶することと、を含む方法。
【請求項10】
前記ソフトウェアプログラムを監視すること、前記電力プロファイルを決定すること、および前記電力プロファイルを記憶することは、前記ソフトウェアプログラムの実行を中断せずに、前記ソフトウェアプログラムの実行中に行われる請求項9記載の方法。
【請求項11】
前記ソフトウェアプログラムに対する前記電力プロファイルを決定することは、複数の電力レベル値を決定することを含み、それぞれの前記電力レベル値は、前記ソフトウェアプログラムの実行中の対応する間隔に関連する請求項9記載の方法。
【請求項12】
各間隔は複数の命令の実行を含む請求項11記載の方法。
【請求項13】
前記間隔は実質的に等しい請求項11記載の方法。
【請求項14】
前記ソフトウェアプログラムに対する前記電力プロファイルを決定することは、複数の間隔のそれぞれの間に前記データプロセッサにより使用される電力をしきい値電力レベルと比較することと、前記しきい値電力レベルが超過される複数の間隔を示す単一の値を供給することとを含む請求項9記載の方法。
【請求項15】
前記ソフトウェアプログラムに対する前記電力プロファイルを決定することは、複数の間隔のそれぞれの間に前記データプロセッサにより使用される電力をしきい値電力レベルと比較することと、複数の値を供給することとを含み、前記各値は間隔のグループに関連し、前記各値は前記しきい値電力レベルが超過される前記グループ中の複数の間隔を示す請求項9記載の方法。
【請求項16】
前記ソフトウェアプログラムの実行中に前記データプロセッサにより使用される前記電力を監視することは、前記データプロセッサと一体化されている電力測定装置を使用して前記電力を監視することを含む請求項9記載の方法。
【請求項17】
前記ソフトウェアプログラムに対する前記電力プロファイルを記憶することは、前記データプロセッサと一体化されているメモリ中に前記電力プロファイルを記憶することを含む請求項9記載の方法。
【請求項18】
さらに、前記電力プロファイルに関連する前記ソフトウェアプログラムの電力使用特性を変更するために、前記ソフトウェアプログラムを修正することを含む請求項9記載の方法。
【請求項19】
集積データプロセッサであり、
単一の半導体チップ上に構成されたプロセッサコアと、
前記半導体チップ上に構成され、ソフトウェアプログラムの実行中に前記データプロセッサにより使用される電力を測定するように構成された電力測定装置と、
前記半導体チップ上に構成され、前記ソフトウェアプログラムに関連する電力プロファイルを記憶するように構成されたメモリと、を備え、前記電力プロファイルは前記電力測定装置により決定される集積データプロセッサ。
【請求項1】
データプロセッサと、
ソフトウェアプログラムの実行中に前記データプロセッサによって使用される電力を測定するように構成された電力測定装置と、
前記ソフトウェアプログラムに関連する電力プロファイルを記憶するように構成されたメモリと、を備え、前記電力プロファイルは前記電力測定装置により決定されるシステム。
【請求項2】
前記電力測定装置は、前記ソフトウェアプログラムの実行中に前記電力プロファイルを決定するように構成され、前記メモリは前記ソフトウェアプログラムの実行を中断せずに前記電力プロファイルを記憶するように構成された請求項1記載のシステム。
【請求項3】
前記電力プロファイルは、複数の電力レベル値を含み、それぞれの前記電力レベル値は、前記ソフトウェアプログラムの実行中の対応する間隔に関連する請求項1記載のシステム。
【請求項4】
各間隔は複数の命令の実行を含む請求項3記載のシステム。
【請求項5】
前記間隔は実質的に等しい請求項3記載のシステム。
【請求項6】
前記電力測定装置は、複数の間隔のそれぞれの間に前記データプロセッサにより使用される電力をしきい値電力レベルと比較するように構成された比較器を含み、前記電力プロファイルは、前記しきい値電力レベルが超過される複数の間隔を示す単一の値を含む請求項1記載のシステム。
【請求項7】
前記電力測定装置は、複数の間隔のそれぞれの間に前記データプロセッサにより使用される電力をしきい値電力レベルと比較するように構成された比較器を含み、前記電力プロファイルは、複数の値を含み、前記各値は間隔のグループに関連し、前記各値は前記しきい値電力レベルが超過される前記グループ中の複数の間隔を示す請求項1記載のシステム。
【請求項8】
前記電力測定装置及び前記メモリはデータプロセッサと一体化されている請求項1記載のシステム。
【請求項9】
データプロセッサ上でソフトウェアプログラムを実行することと、
前記ソフトウェアプログラムの実行中に前記データプロセッサにより使用される電力を監視することと、
前記ソフトウェアプログラムに対する電力プロファイルを決定することと、前記ソフトウェアプログラムに対する前記電力プロファイルを記憶することと、を含む方法。
【請求項10】
前記ソフトウェアプログラムを監視すること、前記電力プロファイルを決定すること、および前記電力プロファイルを記憶することは、前記ソフトウェアプログラムの実行を中断せずに、前記ソフトウェアプログラムの実行中に行われる請求項9記載の方法。
【請求項11】
前記ソフトウェアプログラムに対する前記電力プロファイルを決定することは、複数の電力レベル値を決定することを含み、それぞれの前記電力レベル値は、前記ソフトウェアプログラムの実行中の対応する間隔に関連する請求項9記載の方法。
【請求項12】
各間隔は複数の命令の実行を含む請求項11記載の方法。
【請求項13】
前記間隔は実質的に等しい請求項11記載の方法。
【請求項14】
前記ソフトウェアプログラムに対する前記電力プロファイルを決定することは、複数の間隔のそれぞれの間に前記データプロセッサにより使用される電力をしきい値電力レベルと比較することと、前記しきい値電力レベルが超過される複数の間隔を示す単一の値を供給することとを含む請求項9記載の方法。
【請求項15】
前記ソフトウェアプログラムに対する前記電力プロファイルを決定することは、複数の間隔のそれぞれの間に前記データプロセッサにより使用される電力をしきい値電力レベルと比較することと、複数の値を供給することとを含み、前記各値は間隔のグループに関連し、前記各値は前記しきい値電力レベルが超過される前記グループ中の複数の間隔を示す請求項9記載の方法。
【請求項16】
前記ソフトウェアプログラムの実行中に前記データプロセッサにより使用される前記電力を監視することは、前記データプロセッサと一体化されている電力測定装置を使用して前記電力を監視することを含む請求項9記載の方法。
【請求項17】
前記ソフトウェアプログラムに対する前記電力プロファイルを記憶することは、前記データプロセッサと一体化されているメモリ中に前記電力プロファイルを記憶することを含む請求項9記載の方法。
【請求項18】
さらに、前記電力プロファイルに関連する前記ソフトウェアプログラムの電力使用特性を変更するために、前記ソフトウェアプログラムを修正することを含む請求項9記載の方法。
【請求項19】
集積データプロセッサであり、
単一の半導体チップ上に構成されたプロセッサコアと、
前記半導体チップ上に構成され、ソフトウェアプログラムの実行中に前記データプロセッサにより使用される電力を測定するように構成された電力測定装置と、
前記半導体チップ上に構成され、前記ソフトウェアプログラムに関連する電力プロファイルを記憶するように構成されたメモリと、を備え、前記電力プロファイルは前記電力測定装置により決定される集積データプロセッサ。
【図1】
【図2】
【図3】
【図4A】
【図4B】
【図5】
【図6A】
【図6B】
【図7】
【図8A】
【図8B】
【図9】
【図10】
【図2】
【図3】
【図4A】
【図4B】
【図5】
【図6A】
【図6B】
【図7】
【図8A】
【図8B】
【図9】
【図10】
【公開番号】特開2007−249961(P2007−249961A)
【公開日】平成19年9月27日(2007.9.27)
【国際特許分類】
【外国語出願】
【出願番号】特願2007−40107(P2007−40107)
【出願日】平成19年2月21日(2007.2.21)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
【公開日】平成19年9月27日(2007.9.27)
【国際特許分類】
【出願番号】特願2007−40107(P2007−40107)
【出願日】平成19年2月21日(2007.2.21)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
[ Back to top ]