(57)【要約】【課題】消費電力を高速に算出する。【解決手段】電力見積装置１０が、電力見積対象装置の性能情報の値に応じた消費電力の予測式を算出し（ステップＳ２）、その予測式に、電力見積対象装置でのタスクの実行時のタスクごとの電力見積対象装置の性能情報の実測値を適用して、タスクごとの電力見積対象装置の消費電力を算出する（ステップＳ４）。これにより、タスクごとの性能情報を算出しなくてもよくなり、消費電力を高速に算出できるようになる。【選択図】図１
2015179383.tif 000002
【特許請求の範囲】
【請求項１】
電力見積装置が、
電力見積対象装置の性能情報の値に応じた消費電力の予測式を算出し、
前記予測式に、前記電力見積対象装置でのタスクの実行時の前記タスクごとの前記電力見積対象装置の性能情報の実測値を適用して、前記タスクごとの前記電力見積対象装置の消費電力を算出する、
ことを特徴とする電力見積方法。
【請求項２】
前記電力見積対象装置における前記タスクの動作スケジュールを示す動作情報と、前記タスクごとの前記電力見積対象装置の消費電力に基づき、前記タスクが複数実行されるときの前記電力見積対象装置の消費電力を算出する、ことを特徴とする請求項１に記載の電力見積方法。
【請求項３】
前記電力見積対象装置に含まれる、前記性能情報を取得可能なＩＰごとの、前記タスクごとの前記性能情報の実測値を取得し、前記ＩＰごとに、前記タスクごとの消費電力を算出する、ことを特徴とする請求項１または２に記載の電力見積方法。
【請求項４】
前記電力見積対象装置は、消費電力と前記性能情報を測定する回路を有し、前記回路での測定結果に基づき、前記電力見積装置で算出された前記タスクごとの消費電力を補正し、補正した前記タスクごとの消費電力に基づき、電源電圧または実行する前記タスクの動作スケジュールを制御する、ことを特徴とする請求項１乃至３の何れか一項に記載の電力見積方法。
【請求項５】
プロセッサを有し、
前記プロセッサは、
電力見積対象装置の性能情報の値に応じた消費電力の予測式を算出し、
前記予測式に、前記電力見積対象装置でのタスクの実行時の前記タスクごとの前記電力見積対象装置の性能情報の実測値を適用して、前記タスクごとの前記電力見積対象装置の消費電力を算出する、
ことを特徴とする電力見積装置。
【請求項６】
電力見積対象装置の性能情報の値に応じた消費電力の予測式を算出し、
前記予測式に、前記電力見積対象装置でのタスクの実行時の前記タスクごとの前記電力見積対象装置の性能情報の実測値を適用して、前記タスクごとの前記電力見積対象装置の消費電力を算出する、
処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電力見積方法、電力見積装置及びプログラムに関する。
【背景技術】
【０００２】
ＳｏＣ（System-on-a-Chip）等の半導体装置の設計の際、半導体装置で実行されるタスクのＩＰ（Intellectual Property）への割り当てや、タスクをハードウェアで実現するか、ソフトウェアで実現するかの選択等のアーキテクチャ探索が行われる。
【０００３】
一方、半導体装置を設計する際、前もって消費電力を見積もることが行われている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１５７９０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
消費電力を考慮した適切なアーキテクチャ探索を行うために、タスクごとの消費電力を見積もることが考えられる。シミュレーションでタスクごとの消費電力の見積もりを行う場合、実機で直接消費電力を測定する際に誤差の一要因となる外部要因（チップ温度等）の影響は受けにくいが、タスク数の増加にしたがって計算量が増大し、見積もりに時間がかかってしまう。
【課題を解決するための手段】
【０００６】
発明の一観点によれば、電力見積装置が、電力見積対象装置の性能情報の値に応じた消費電力の予測式を算出し、前記予測式に、前記電力見積対象装置でのタスクの実行時の前記タスクごとの前記電力見積対象装置の性能情報の実測値を適用して、前記タスクごとの前記電力見積対象装置の消費電力を算出する、電力見積方法が提供される。
【発明の効果】
【０００７】
開示の電力見積方法、電力見積装置及びプログラムによれば、消費電力を高速に算出できる。
【図面の簡単な説明】
【０００８】
【図１】第１の実施の形態の電力見積方法及び電力見積装置の一例を示す図である。
【図２】第２の実施の形態に用いる電力見積装置のハードウェア例を示す図である。
【図３】第２の実施の形態の電力見積方法の一例を示す図である。
【図４】電力値の一例を示す図である。
【図５】性能値の一例を示す図である。
【図６】パフォーマンス電力ライブラリに格納される電力モデルの定数項及び係数テーブルの一例を示す図である。
【図７】実機測定結果の取得方法の一例を示す図である。
【図８】取得されたタスクごとの性能値の一例を示す図である。
【図９】タスク電力ライブラリの一例を示す図である。
【図１０】タスクの動作例を示すガントチャートである。
【図１１】ＣＰＵａのタスク動作情報の一例を示す図である。
【図１２】ＣＰＵｂのタスク動作情報の一例を示す図である。
【図１３】ＣＰＵの電力値の一例を示す図である。
【図１４】ＣＰＵの性能値の一例を示す図である。
【図１５】ＧＰＵの電力値の一例を示す図である。
【図１６】ＧＰＵの性能値の一例を示す図である。
【図１７】パフォーマンス電力ライブラリに格納されるＣＰＵの電力モデルの定数項及び係数テーブルの一例を示す図である。
【図１８】パフォーマンス電力ライブラリに格納されるＧＰＵの電力モデルの定数項及び係数テーブルの一例を示す図である。
【図１９】ＣＰＵによるタスク実行時の性能値（実測値）の一例を示す図である。
【図２０】ＧＰＵによるタスク実行時の性能値（実測値）の一例を示す図である。
【図２１】タスク電力ライブラリの一例を示す図である。
【図２２】タスクの動作例を示すガントチャートである。
【図２３】ＣＰＵのタスク動作情報の一例を示す図である。
【図２４】ＧＰＵのタスク動作情報の一例を示す図である。
【図２５】半導体装置の一例を示す図である。
【図２６】半導体装置における電力制御例を説明する図である。
【図２７】電力制御方法の一例の流れを示す図である。
【図２８】簡略パフォーマンス電力ライブラリ及び簡略タスク電力ライブラリの更新処理の一例を説明する図である。
【図２９】電力制御対象の消費電力の見積方法と電力制御方法の流れの一例を示した図である。
【図３０】ネットワーク構成の一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、発明を実施するための形態を、図面を参照しつつ説明する。
（第１の実施の形態）
図１は、第１の実施の形態の電力見積方法及び電力見積装置の一例を示す図である。
【００１０】
電力見積装置１０は、プロセッサ１１と記憶部１２を有している。
プロセッサ１１は、記憶部１２に記憶されているデータ及びプログラムに基づき、電力見積処理を実行する。
【００１１】
記憶部１２は、プロセッサ１１が実行するプログラム、各種データ、プロセッサ１１による計算の結果得られたデータ等を記憶する。例えば、記憶部１２は、以下に説明する電力見積処理に用いる電力見積対象装置（例えば、ＳｏＣ等）の設計データＤ１、プログラム情報Ｄ２、後述する実機測定結果Ｄ３等を記憶する。
【００１２】
まず、プロセッサ１１は、電力見積対象装置の設計データＤ１とプログラム情報Ｄ２を用いてシミュレーションを行い、その結果から、消費電力の値（電力値）及び性能情報の値（性能値）を取得する（ステップＳ１）。
【００１３】
プログラム情報Ｄ２には、シミュレーションにより電力見積対象装置を動作させるプログラムの情報が含まれる。性能値は、例えば、電力見積対象装置の性能情報であるＭＩＰＳ（Million Instructions Per Second;百万命令毎秒）の値（ＭＩＰＳ値）や、１秒当たりのキャッシュミス回数等である。
【００１４】
図１の例では、シミュレーションにより実行されたプログラムＬｉｂ＿ｐｒｏｇ１〜ｋから取得された電力見積対象装置の電力値ＰLP1〜ＰLPkと性能値ＮLP1,1〜ＮLP1,kが示されている。
【００１５】
なお、シミュレーションは別の装置（別のコンピュータやエミュレータ等）で行われるようにしてもよい。その場合、シミュレーション実行結果は、例えば、記憶部１２に予め格納されている。
【００１６】
次に、プロセッサ１１は、ステップＳ１の処理で取得した電力値及び性能値を用いて、性能値の大きさに応じた消費電力の大きさを表す電力予測式（電力モデル）を作成する（ステップＳ２）。
【００１７】
ここで、電力モデルは線形式で表すことができ、図１の例では、Ｐ＝ｐ0＋ｐ1×Ｎ1＋…と表されている。Ｐは消費電力、Ｎ1は性能情報であり、ｐ0は定数項、ｐ1は性能情報Ｎ1の係数である。プロセッサ１１は、電力モデルの定数項及び性能値の係数をステップＳ１の処理で取得した電力値及び性能値を用いた線形回帰や線形計画法等により算出し、電力モデルを作成する。
【００１８】
また、プロセッサ１１は、実機測定結果Ｄ３から、タスクごとの電力見積対象装置の性能値の実測値を取得する（ステップＳ３）。
実機測定結果Ｄ３には、各タスク実行時の、電力見積対象装置の性能情報のタスクごとの実測値が含まれている。実機測定結果Ｄ３は、電力見積対象装置（例えば、設計後の試作品）に対する測定により得られる。また、電力見積対象装置と同様のパラメータを持つ装置に対する測定により得られる性能値を、電力見積対象装置の性能情報の実測値として用いてもよい。
【００１９】
図１では、実機測定結果Ｄ３から、タスク１〜ｎの性能情報の実測値ＮT1,1〜ＮT1,nが取得された例が示されている。
なお、ステップＳ３の処理は、ステップＳ１，Ｓ２の処理の前に予め行ってもよい。
【００２０】
その後、プロセッサ１１は、ステップＳ２の処理で作成した電力予測式に、ステップＳ３の処理で取得したタスクごとの性能値の実測値を適用して、タスクごとの消費電力を算出する（ステップＳ４）。
【００２１】
例えば、プロセッサ１１がタスク１〜ｎの電力値ＰT1〜ＰTnを算出する際には、電力モデルＰ＝ｐ0＋ｐ1×Ｎ1＋…の性能情報Ｎ1に、ステップＳ３の処理により取得されたタスクごとの性能値の実測値ＮT1,1〜ＮT1,nが代入される。
【００２２】
以上のように、本実施の形態では、電力見積対象装置の性能値の大きさに応じた消費電力の大きさを表す電力予測式が作成され、電力予測式に、各タスク実行時の性能情報の実測値が適用され、タスクごとの消費電力が算出される。これにより、プロセッサ１１は、タスクごとの性能情報を計算しなくて済むようになり、高速に消費電力を算出できるようになる。
【００２３】
また、性能情報は、消費電力と比べて外部要因（チップ温度等）の影響を受けにくいため、消費電力の実測値ではなく、性能情報の実測値を用いることで、誤差の少ない電力見積が可能となる。
【００２４】
このように低誤差で高速なタスクレベルの電力見積が可能となることで、消費電力を考慮したアーキテクチャ探索も精度よく高速に行えるようになる。
（第２の実施の形態）
以下、第２の実施の形態の電力見積装置及び電力見積方法の一例を説明する。
【００２５】
（電力見積装置の一例）
図２は、第２の実施の形態に用いる電力見積装置のハードウェア例を示す図である。
電力見積装置は、例えば、図２に示すようなコンピュータ２０で実現できる。コンピュータ２０は、プロセッサ２１によって装置全体が制御されている。プロセッサ２１には、バス２９を介してＲＡＭ（Random Access Memory）２２と複数の周辺機器が接続されている。プロセッサ２１は、マルチプロセッサであってもよい。プロセッサ２１は、例えばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。またプロセッサ２１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００２６】
ＲＡＭ２２は、コンピュータ２０の主記憶装置として使用される。ＲＡＭ２２には、プロセッサ２１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ２２には、プロセッサ２１による処理に必要な各種データが格納される。
【００２７】
バス２９に接続されている周辺機器としては、ＨＤＤ（Hard Disk Drive）２３、グラフィック処理装置２４、入力インタフェース２５、光学ドライブ装置２６、機器接続インタフェース２７及びネットワークインタフェース２８がある。
【００２８】
ＨＤＤ２３は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行う。ＨＤＤ２３は、コンピュータ２０の補助記憶装置として使用される。ＨＤＤ２３には、ＯＳのプログラム、アプリケーションプログラム、及び各種データが格納される。なお、補助記憶装置としては、フラッシュメモリ等の半導体記憶装置を使用することもできる。
【００２９】
グラフィック処理装置２４には、モニタ２４ａが接続されている。グラフィック処理装置２４は、プロセッサ２１からの命令にしたがって、画像をモニタ２４ａの画面に表示させる。モニタ２４ａとしては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置等がある。
【００３０】
入力インタフェース２５には、キーボード２５ａとマウス２５ｂとが接続されている。入力インタフェース２５は、キーボード２５ａやマウス２５ｂから送られてくる信号をプロセッサ２１に送信する。なお、マウス２５ｂは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボール等がある。
【００３１】
光学ドライブ装置２６は、レーザ光等を利用して、光ディスク２６ａに記録されたデータの読み取りを行う。光ディスク２６ａは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク２６ａには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等がある。
【００３２】
機器接続インタフェース２７は、コンピュータ２０に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース２７には、メモリ装置２７ａやメモリリーダライタ２７ｂを接続することができる。メモリ装置２７ａは、機器接続インタフェース２７との通信機能を搭載した記録媒体である。メモリリーダライタ２７ｂは、メモリカード２７ｃへのデータの書き込み、またはメモリカード２７ｃからのデータの読み出しを行う装置である。メモリカード２７ｃは、カード型の記録媒体である。
【００３３】
ネットワークインタフェース２８は、ネットワーク２８ａに接続されている。ネットワークインタフェース２８は、ネットワーク２８ａを介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００３４】
以上のようなハードウェア構成によって、第２の実施の形態の処理機能を実現することができる。なお、第１の実施の形態に示した電力見積装置１０も、図２に示したコンピュータ２０と同様のハードウェアにより実現することができる。
【００３５】
コンピュータ２０は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現する。コンピュータ２０に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、コンピュータ２０に実行させるプログラムをＨＤＤ２３に格納しておくことができる。プロセッサ２１は、ＨＤＤ２３内のプログラムの少なくとも一部をＲＡＭ２２にロードし、プログラムを実行する。またコンピュータ２０に実行させるプログラムを、光ディスク２６ａ、メモリ装置２７ａ、メモリカード２７ｃ等の可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ２１からの制御により、ＨＤＤ２３にインストールされた後、実行可能となる。またプロセッサ２１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００３６】
（電力見積方法の一例）
図３は、第２の実施の形態の電力見積方法の一例を示す図である。
まず、電力を見積もる際に用いる入力データ及びプログラムの例を説明する。
【００３７】
電力モデル作成用プログラム・データＩｎ１は、図１に示したプログラム情報Ｄ２を含むものであり、シミュレーションにより電力見積対象装置ｅｓｔ上で動作させるプログラムの情報や、シミュレーションを行うためのデータが含まれる。
【００３８】
ネットリストＩｎ２は、図１に示した設計データＤ１に相当するものであり、電力見積対象装置ｅｓｔ内の構成要素及び構成要素間の電気的相互接続の情報を含むデータである。
【００３９】
共通プログラム・データＩｎ３には、性能値の実機測定を行うために電力見積対象装置ｅｓｔを動作させる際と、ＥＳＬ（Electronic System Level）シミュレーションを実行させる際に共通して用いられるプログラムやデータが含まれる。共通プログラム・データＩｎ３は、例えば、ブートローダ、ＯＳ、シェル、アプリケーションプログラム等を含んでいる。
【００４０】
ＥＳＬモデルＩｎ４は、ＥＳＬシミュレーションを実行する際に用いられるＥＳＬモデル等を含むデータである。ＥＳＬモデルには、例えば、ＥＳＬツール上で動作するＣ、Ｃ＋＋、ＳｙｓｔｅｍＣといったプログラム言語で記述されたＨＷ（Hard-Ware）モデルや、ＩＳＳ（Instruction Set Simulator）等が含まれる。
【００４１】
実機測定結果Ｄ３には、第１の実施の形態でも説明したように、タスクごとの電力見積対象装置ｅｓｔの性能値の実測値が含まれている。実機測定結果Ｄ３の取得方法については、後述する。
【００４２】
以上のような、入力データ及びプログラムは、例えば、電力見積もりを行う際または前に、図２に示したようなＨＤＤ２３等に格納される。
以下、電力見積方法の一例を図３の各ステップの処理ごとに説明する。
【００４３】
まず、プロセッサ２１は、ＨＤＤ２３等に格納された電力モデル作成用プログラム・データＩｎ１及びネットリストＩｎ２を取得して、シミュレーションを実行する（ステップＳ１１）。なお、シミュレーションは別の装置（別のコンピュータやエミュレータ等）で行われるようにしてもよい。
【００４４】
その後、プロセッサ２１は、シミュレーション実行結果から、電力モデル作成用の電力値と性能値を取得する（ステップＳ１２）。
図４は、電力値の一例を示す図である。
【００４５】
図４には、シミュレーションにより実行されたプログラムＬｉｂ＿ｐｒｏｇ１〜ｋから取得された電力見積対象装置ｅｓｔの電力値ＰLP1〜ＰLPkが示されている。
図５は、性能値の一例を示す図である。
【００４６】
図５には、シミュレーションにより実行されたプログラムＬｉｂ＿ｐｒｏｇ１〜ｋから取得された電力見積対象装置ｅｓｔの性能値が示されている。電力見積対象装置ｅｓｔの性能値として、ＭＩＰＳ値（ＭＩＰＳ）ＮLP1,1〜ＮLP1,kや１秒当たりのキャッシュミス回数（Ｉ＄ｍｉｓｓ／ｓ）ＮLP2,1〜ＮLP2,kが示されている。
【００４７】
次に、プロセッサ２１は、ステップＳ１２の処理で取得した電力値及び性能値を用いて、電力モデル及びパフォーマンス電力ライブラリを作成する（ステップＳ１３）。
ここで、電力モデルとは、以下の式（１）に示すような、消費電力を性能情報であるＭＩＰＳやＩ＄ｍｉｓｓ／ｓ等を用いて表したものである。
【００４８】
【数１】
2015179383.tif 000003
【００４９】
式（１）の定数項ｐ0及び性能値の係数ｐ1，ｐ2，…は、式（１）にステップＳ１２の処理で得られた電力値（図４）及び性能値（図５）を代入した以下の式（２）による線形回帰等により得られる。
【００５０】
【数２】
2015179383.tif 000004
【００５１】
式（２）において添え字ｉは、電力モデル作成用プログラムの番号であり、１からｋまでの値をとる。また、ＰLPiは、ｉ番のプログラムによって得られた電力値であり、ＮLP1,i，ＮLP2,i，…は、ｉ番目のプログラムによって得られたＭＩＰＳ値及び１秒当たりのキャッシュミス回数である。
【００５２】
また、ステップＳ１３の処理では、電力モデルを示す式（１）の定数項及び性能値の係数を格納したパフォーマンス電力ライブラリＤ４が作成される。
図６は、パフォーマンス電力ライブラリに格納される電力モデルの定数項及び係数テーブルの一例を示す図である。
【００５３】
図６には、ステップＳ１３の処理で算出された式（１）の定数項ｐ0、係数ｐ1，ｐ2，…が示されている。
また、プロセッサ２１は、実機測定結果Ｄ３から、タスクごとの電力見積対象装置ｅｓｔの性能情報の実測値を取得する（ステップＳ１４）。
【００５４】
以下に、実機測定結果Ｄ３の取得方法の一例を説明する。
図７は、実機測定結果の取得方法の一例を示す図である。
以下に示す処理は、例えば、テスタ等の図示しない測定装置の制御のもと、電力見積対象装置ｅｓｔ（または電力見積対象装置ｅｓｔと同様のパラメータを持つ装置）の実機上で行われる。
【００５５】
電力見積対象装置ｅｓｔは、タスクごとの性能値測定用起動スクリプトＩｎ５や、前述した共通プログラム・データＩｎ３に基づき、各タスクを実行するとともに、電力見積対象装置ｅｓｔ（または測定装置）は、性能情報の測定を行う（ステップＳ２１）。そして、電力見積対象装置ｅｓｔ（または測定装置）は、測定結果を実機測定結果Ｄ３として出力する（ステップＳ２２）。実機測定結果Ｄ３は、電力見積装置であるコンピュータ２０のＨＤＤ２３に記憶される。
【００５６】
図３の電力見積方法の説明に戻る。
ステップＳ１４の処理では、上記のような実機測定結果Ｄ３から、タスクごとの性能情報の実測値が取得される。
【００５７】
図８は、取得されたタスクごとの性能値の一例を示す図である。
図８には、実機測定結果Ｄ３から取得したタスク１〜ｎごとの性能情報の実測値であるＭＩＰＳ値（ＭＩＰＳ）ＮT1,1〜ＮT1,n、１秒当たりのキャッシュミス回数（Ｉ＄ｍｉｓｓ／ｓ）ＮT2,1〜ＮT2,nが示されている。
【００５８】
なお、図８のようなタスクごとの性能値（実測値）データが、電力見積対象装置ｅｓｔ（または測定装置）から出力される実機測定結果Ｄ３であってもよい。
次に、プロセッサ２１は、ステップＳ１３の処理で作成された電力モデルとステップＳ１４の処理で取得されたタスクごとの性能値（実測値）を用いて、タスクごとの電力値を算出する（ステップＳ１５）。算出されたタスクごとの電力値は、タスク電力ライブラリＤ５として、例えば、ＨＤＤ２３に記憶される。
【００５９】
例えば、タスク番号ｊの電力値ＰTjは、式（１）のＭＩＰＳ、Ｉ＄ｍｉｓｓ／ｓ、…に、ステップＳ１４の処理で取得されたタスク番号ｊにおけるＭＩＰＳ値ＮT1,j、１秒あたりのキャッシュミス回数ＮT2,j、…を、代入して算出される。なお、以下ではタスク番号ｊの電力値ＰTjは、以下の式（３）で表されるものとする。
【００６０】
【数３】
2015179383.tif 000005
【００６１】
図９は、タスク電力ライブラリの一例を示す図である。
図９には、ステップＳ１５の処理で算出されたタスク１〜ｎの電力値ＰT1〜ＰTnが示されている。
【００６２】
なお、上記ステップＳ１５の処理で算出されたタスクごとの電力値は、電力見積対象装置ｅｓｔに含まれる機能ブロックごとに算出されるようにしてもよい。また、電力見積対象装置ｅｓｔのプロセッサがカーネルモードやユーザーモードのような動作モードを持つ場合は、動作モードを引数にしたタスクの電力値のテーブルを作成してもよい。
【００６３】
その後、プロセッサ２１は、共通プログラム・データＩｎ３及びＥＳＬモデルＩｎ４に基づきＥＳＬシミュレーションを実行し（ステップＳ１６）、シミュレーション結果から電力見積対象装置ｅｓｔにおけるタスク動作情報を抽出する（ステップＳ１７）。タスク動作情報は、タスクの動作スケジュールを示す情報であり、各タスクの動作時間や動作タイミング等が含まれる。
【００６４】
図１０は、タスクの動作例を示すガントチャートである。横軸は時間を示している。
図１０では、電力見積対象装置ｅｓｔに同種の２つのプロセッサコア（以下ではＣＰＵａ、ＣＰＵｂと呼ぶ）が含まれており、それぞれがタスクを実行している例が示されている。ＣＰＵａは、タスクｔｓｋ１，ｔｓｋ４，ｔｓｋ６を実行し、ＣＰＵｂは、タスクｔｓｋ２，ｔｓｋ３，ｔｓｋ５を実行している。なお、各タスクｔｓｋ１〜ｔｓｋ６には、タスク番号が付されている。
【００６５】
時間ｔ１，ｔ２，ｔ３，ｔ４，ｔ５，ｔ６，ｔ７は、各タスクｔｓｋ１〜ｔｓｋ６の開始時間、又は、終了時間を示す。例えば、時間ｔ１は、ＣＰＵｂにより実行されるタスクｔｓｋ２の終了時間（タスクｔｓｋ３の開始時間）を示している。
【００６６】
上記のような動作状況であるとき、抽出されるタスク動作情報は、例えば、以下のようになる。
図１１は、ＣＰＵａのタスク動作情報の一例を示す図である。
【００６７】
図１１には、ＣＰＵａにおいて時間ごとに開始または終了するタスクの番号と、イベント（タスクの開始なのか終了なのか）が、動作情報として示されている。
図１２は、ＣＰＵｂのタスク動作情報の一例を示す図である。
【００６８】
図１２には、ＣＰＵｂにおいて時間ごとに開始または終了するタスクの番号と、イベント（タスクの開始なのか終了なのか）が、動作情報として示されている。
なお、ステップＳ１７の処理は、評価チップが存在する場合等は、電力見積対象装置ｅｓｔの実機により行ってもよい。
【００６９】
次に、プロセッサ２１は、ステップＳ１５の処理で算出されたタスクごとの電力値と、ステップＳ１７の処理で抽出したタスク動作情報から求まるタスクごとの動作時間を用いて、電力見積対象装置ｅｓｔの消費電力を算出する（ステップＳ１８）。
【００７０】
前述したＣＰＵａ、ＣＰＵｂのような同種の複数のプロセッサコア（ホモジニアスマルチコアとも呼ばれる）を有する電力見積対象装置ｅｓｔでは、プロセッサコアによる電力の差異は無視できる。よって電力見積対象装置ｅｓｔの消費電力Ｐestは、以下に示す式（４）によって与えられる。
【００７１】
【数４】
2015179383.tif 000006
【００７２】
式（４）において、添え字ｊのうち、ｊ＝１，２，…，ｎは、タスクの番号を示し、ｊ＝０は、タスク非動作時を示す。また、ＰTj（ｊ＝１，２，…，ｎ）は、タスク電力ライブラリＤ５に格納されているタスク番号ｊの電力値を示し、ＰT0は、タスク非動作時の電力値を示している。ＴTj（ｊ＝１，２，…，ｎ）は、各プロセッサコアで実行されたタスク番号ｊのタスクの動作時間の総和を示し、ステップＳ１７の処理で得られるタスク動作情報から算出される。例えば、ＴT3は、タスクｔｓｋ３の動作時間であり、図１０よりＣＰＵｂが処理を実行しているので、図１２よりｔ３−ｔ２と算出される。また、Ｔtotalは、アプリケーション全体の動作時間、ＴT0は、プロセッサコアごとのタスク非動作時間の合計である。タスクの非動作時間ＴT0は、以下の式（５）により算出される。
【００７３】
【数５】
2015179383.tif 000007
【００７４】
式（５）において、ｍはプロセッサコアの数である。図１０〜図１２は、ｍ＝２の場合であるが、ｍ＝１でもｍ≧３であってもよい。
パワーゲーティング機能等により、タスク非動作時の電力値ＰT0が無視できる値であるときは、プロセッサ２１は、式（４）においてＰT0＝０として、消費電力を算出する。また、タスク非動作時の電力値ＰT0が無視できない値であるときは、プロセッサ２１は、タスク非動作時の電力値ＰT0を、例えば、式（３）において、ＰT0＝Ｐ（０，０，…）とする等により求め、消費電力を算出する。
【００７５】
なお、電力見積対象装置ｅｓｔが有する複数のプロセッサコアが、ホモジニアスマルチコアではなくても、プロセッサコア間の電力の差異が無視できる場合にも、式（４）が用いられる。
【００７６】
式（４）により算出された消費電力に基づき、どのようなアーキテクチャで装置を実現すればよいかの検討が行われる。例えば、別の能力のＣＰＵを用いたときのタスクごとの動作時間の変化に応じた消費電力の変化等を、プロセッサ２１が算出し、より消費電力が小さくなるアーキテクチャを探索するようにしてもよい。
【００７７】
以上のような第２の実施の形態の電力見積方法でも、第１の実施の形態の電力見積方法と同様に、プロセッサ２１は、タスクごとの性能情報の実測値に基づきタスクごとの消費電力を算出する。そのため、プロセッサ２１は、タスクごとの性能情報を計算しなくて済むようになり、高速に消費電力を算出できるようになる。
【００７８】
また、前述したように性能情報は、実機測定の際、消費電力と比べて外部要因（チップ温度等）の影響を受けにくいため、消費電力の実測値ではなく、性能情報の実測値を用いて電力見積もりを行うことで、誤差を少なくできる。
【００７９】
また、第２の実施の形態の電力見積方法では、各機能ブロック（上記の例ではＣＰＵａ、ＣＰＵｂ）でのタスクの動作スケジュール（動作情報）と、タスクごとの電力値とに基づき電力見積対象装置の消費電力が算出される。前述のようにタスクごとの消費電力は高速に低誤差で算出されるため、装置全体の消費電力が小さくなるようなアーキテクチャ探索についても高速で精度よく行えるようになる。
【００８０】
（第３の実施の形態）
上記では、図１０に示したように、電力見積対象装置に含まれる同種のプロセッサコアがそれぞれタスクを実行している場合を例にして電力見積方法を説明した。以下では、電力見積対象装置が異種の複数のプロセッサコア（ヘテロジニアスマルチコアとも呼ばれる）を含む場合の電力見積方法について説明する。
【００８１】
異種のプロセッサコアを有する例としては、ＧＰＧＰＵ（General-Purpose computing on Graphics Processing Units）等が挙げられる。以下では、電力見積対象装置に含まれる異種のプロセッサコアをＣＰＵ、ＧＰＵの２つとするが、これに限定されることはなく、３以上の異種のプロセッサコアを有する電力見積対象装置や性能情報を取得可能なＩＰを有する電力見積対象装置についても同様の方法で電力を見積もることができる。また、ＩＰとは、特定の機能を備え、汎用的に用いることができる回路ブロックや論理モジュールのことである。
【００８２】
なお、以下に説明する処理についても、図２に示したコンピュータ２０で実行されるものとして説明する。
（電力見積方法の一例）
第３の実施の形態の電力見積方法を説明する。
【００８３】
まず、プロセッサ２１は、第２の実施の形態の電力見積方法と同様に、図３に示したステップＳ１１、Ｓ１２の処理を行う。ただし、電力見積対象装置ｅｓｔが、異種のプロセッサコア（ＣＰＵ、ＧＰＵ）を有している場合、プロセッサコアにより、性能や取得可能な性能情報が異なるため、プロセッサ２１は、ＣＰＵ、ＧＰＵごとにシミュレーション実行結果から電力値と性能値を取得する。
【００８４】
図１３は、ＣＰＵの電力値の一例を示す図である。
図１３には、シミュレーションにより実行されたプログラムＬｉｂ＿ｐｒｏｇＣ１〜Ｃｋｃから取得された電力見積対象装置ｅｓｔのＣＰＵの電力値ＰLP＿C1〜ＰLP＿Ckcが示されている。
【００８５】
図１４は、ＣＰＵの性能値の一例を示す図である。
図１４には、シミュレーションにより実行されたプログラムＬｉｂ＿ｐｒｏｇＣ１〜Ｃｋｃから取得された電力見積対象装置ｅｓｔのＣＰＵのＭＩＰＳ値ＮLP＿C1,C1〜ＮLP＿C1,Ckcと１秒あたりのキャッシュミス回数ＮLP＿C2,C1〜ＮLP＿C2,Ckcが示されている。
【００８６】
図１５は、ＧＰＵの電力値の一例を示す図である。
図１５には、シミュレーションにより実行されたプログラムＬｉｂ＿ｐｒｏｇＧ１〜Ｇｋｇから取得された電力見積対象装置ｅｓｔのＧＰＵの電力値ＰLP＿G1〜ＰLP＿Gkgが示されている。
【００８７】
図１６は、ＧＰＵの性能値の一例を示す図である。
図１６には、シミュレーションにより実行されたプログラムＬｉｂ＿ｐｒｏｇＧ１〜Ｇｋｇから取得された電力見積対象装置ｅｓｔのＧＰＵの性能値が示されている。ＧＰＵの性能値として、ＧＯＰＳ（Giga Operations Per Second）値ＮLP＿G1,G1〜ＮLP＿G1,Gkgと平均並列実行数（ａｖｇ＿ｐａｒ＿ｎｕｍ）ＮLP＿G2,G1〜ＮLP＿G2,Gkgが示されている。
【００８８】
次に、プロセッサ２１は、図３に示したステップＳ１３の処理を行う。第３の実施の形態の電力見積方法では、ＣＰＵ、ＧＰＵごとに電力モデルが作成される。
ＣＰＵの電力モデルは、以下の式（６）に示すような、消費電力を性能情報であるＭＩＰＳやＩ＄ｍｉｓｓ／ｓ等を用いて表したものである。
【００８９】
【数６】
2015179383.tif 000008
【００９０】
式（６）の定数項ｐC0及び性能値の係数ｐC1，ｐC2，…は、式（６）にステップＳ１２の処理で得られたＣＰＵの電力値及び性能値（図１３、図１４）を代入した以下の式（７）による線形回帰等により得られる。
【００９１】
【数７】
2015179383.tif 000009
【００９２】
式（７）において、添え字ｉは、ＣＰＵの電力モデル作成用プログラムの番号であり、１からｋｃまでの値をとる。また、ＰLP＿Ciは、ｉ番目のプログラムによって得られた電力値であり、ＮLP＿C1,Ci，ＮLP＿C2,Ci，…は、ｉ番目のプログラムによって得られた性能値である。
【００９３】
ＧＰＵの電力モデルは、以下の式（８）に示すような、消費電力を性能情報であるＧＯＰＳやａｖｇ＿ｐａｒ＿ｎｕｍ等を用いて表したものである。
【００９４】
【数８】
2015179383.tif 000010
【００９５】
式（８）の定数項ｐG0及び性能値の係数ｐG1，ｐG2，…は、式（８）にステップＳ１２の処理で得られたＧＰＵの電力値及び性能値（図１５、図１６）を代入した以下の式（９）による線形回帰等により得られる。
【００９６】
【数９】
2015179383.tif 000011
【００９７】
式（９）において、添え字ｉは、ＧＰＵの電力モデル作成用プログラムの番号であり、１からｋｇまでの値をとる。また、ＰLP＿Giは、ｉ番目のプログラムによって得られた電力値であり、ＮLP＿G1,Gi，ＮLP＿G2,Gi，…は、ｉ番目のプログラムによって得られた性能値である。
【００９８】
また、ステップＳ１３の処理で作成されるパフォーマンス電力ライブラリＤ４は、第３の実施の形態の電力見積方法では、ＣＰＵの電力モデルを表す式（６）の定数項及び係数と、ＧＰＵの電力モデルを表す式（８）の定数項及び係数を格納したものとなる。
【００９９】
図１７は、パフォーマンス電力ライブラリに格納されるＣＰＵの電力モデルの定数項及び係数テーブルの一例を示す図である。
図１７には、ステップＳ１３の処理で算出されたＣＰＵの電力モデルを表す式（６）の定数項ｐC0及び性能値の係数ｐC1，ｐC2，…が示されている。
【０１００】
図１８は、パフォーマンス電力ライブラリに格納されるＧＰＵの電力モデルの定数項及び係数テーブルの一例を示す図である。
図１８には、ステップＳ１３の処理で算出されたＧＰＵの電力モデルを表す式（８）の定数項ｐG0及び性能値の係数ｐG1，ｐG2，…が示されている。
【０１０１】
また、図３に示したステップＳ１４の処理と同様に、第３の実施の形態の電力見積方法でも、プロセッサ２１は、実機測定結果Ｄ３から、タスクごとの性能情報の実測値を取得する。ただし、第３の実施の形態の電力見積方法では、ＣＰＵ、ＧＰＵごとにタスクごとの性能情報の実測値が用いられるため、実機測定によりＣＰＵ、ＧＰＵごとの性能情報の実測値が得られるものとする。
【０１０２】
図１９は、ＣＰＵによるタスク実行時の性能値（実測値）の一例を示す図である。
図１９には、実機測定結果Ｄ３から取得したタスク１〜ｎごとの性能値（実測値）であるＭＩＰＳ値ＮT＿C1,1〜ＮT＿C1,n、また、１秒あたりのキャッシュミス回数ＮT＿C2，1〜ＮT＿C2，nが示されている。
【０１０３】
図２０は、ＧＰＵによるタスク実行時の性能値（実測値）の一例を示す図である。
図２０には、実機測定結果Ｄ３から取得したタスク１〜ｎごとの性能値（実測値）であるＧＯＰＳ値ＮT＿G1,1〜ＮT＿G1,n、また、平均並列実行数ＮT＿G2,1〜ＮT＿G2,nが示されている。
【０１０４】
プロセッサ２１は、上記のような実測値を、ステップＳ１３の処理で作成された電力モデルに適用して、タスクの電力値（タスク電力ライブラリ）を作成する。第３の実施の形態の電力見積方法では、以下に示すように、ＣＰＵ、ＧＰＵごとにタスクの電力値が算出される。
【０１０５】
例えば、ＣＰＵにおいて、タスク番号ｊの電力値ＰT＿Cjは、電力モデルを表す式（６）のＭＩＰＳ、Ｉ＄ｍｉｓｓ／ｓ、…に、タスク番号ｊのＭＩＰＳ値ＮT＿C1,j、１秒あたりのキャッシュミス回数ＮT＿C2,j、…を代入して算出される。算出されたＣＰＵのタスク番号ｊの電力値ＰT＿Cjは、以下の式（１０）によって表されるものとする。
【０１０６】
【数１０】
2015179383.tif 000012
【０１０７】
例えば、ＧＰＵにおいて、タスク番号ｊの電力値ＰT＿Gjは、電力モデルを表す式（８）のＧＯＰＳ、ａｖｇ＿ｐａｒ＿ｎｕｍ、…に、タスク番号ｊのＧＯＰＳ値ＮT＿G1,j、平均並列実行数ＮT＿G2,j、…を代入して算出される。算出されたＧＰＵのタスク番号ｊの電力値ＰT＿Gjは、以下の式（１１）によって表されるものとする。
【０１０８】
【数１１】
2015179383.tif 000013
【０１０９】
また、前述したステップＳ１５の処理と同様、算出したタスクの電力値を格納したタスク電力ライブラリＤ５が作成される。
図２１は、タスク電力ライブラリの一例を示す図である。
【０１１０】
図２１には、ステップＳ１５の処理で算出されたタスク１〜ｎ実行時のＣＰＵの電力値ＰT＿C1〜ＰT＿CnとＧＰＵの電力値ＰT＿G1〜ＰT＿Gnが示されている。
なお、電力見積対象装置ｅｓｔにおいて、プロセッサコアごとに処理されるタスクが専用に割りつけられている場合、プロセッサ２１は、ステップＳ１４の処理において、プロセッサごとに対応するタスク実行時の性能値を取得する。そして、その後のステップＳ１５の処理では、プロセッサ２１は、プロセッサごとに対応するタスクの電力値を算出する。
【０１１１】
その後、第２の実施の形態の電力見積方法と同様に、プロセッサ２１は、ＥＳＬシミュレーションを実行し（ステップＳ１６）、ＣＰＵ、ＧＰＵのタスク動作情報を抽出する（ステップＳ１７）。なお、ステップＳ１６の処理は、プラットフォームベースでアーキテクチャ設計を行う場合等は、実機により行ってもよい。
【０１１２】
図２２は、タスクの動作例を示すガントチャートである。横軸は時間を示している。
図２２では、ＣＰＵ、ＧＰＵそれぞれが、タスクを実行している例が示されている。ＣＰＵは、タスクｔｓｋ１０，ｔｓｋ１３，ｔｓｋ１５を実行し、ＧＰＵは、タスクｔｓｋ１１，ｔｓｋ１２，ｔｓｋ１４を実行している。なお、各タスクｔｓｋ１０〜ｔｓｋ１５には、タスク番号が付されている。
【０１１３】
時間ｔ１０，ｔ１１，ｔ１２，ｔ１３，ｔ１４，ｔ１５，ｔ１６は、各タスクｔｓｋ１０〜ｔｓｋ１５の開始時間、又は、終了時間を示す。例えば、時間ｔ１０は、ＧＰＵにより実行されるタスクｔｓｋ１１の終了時間（タスクｔｓｋ１２の開始時間）を示している。
【０１１４】
上記のような動作状況であるとき、抽出されるタスク動作情報は、例えば、以下のようになる。
図２３は、ＣＰＵのタスク動作情報の一例を示す図である。
【０１１５】
図２３には、ＣＰＵにおいて時間ごとに開始または終了するタスクの番号と、イベント（タスクの開始なのか終了なのか）が、動作情報として示されている。
図２４は、ＧＰＵのタスク動作情報の一例を示す図である。
【０１１６】
図２４には、ＧＰＵにおいて時間ごとに開始または終了するタスクの番号と、イベント（タスクの開始なのか終了なのか）が、動作情報として示されている。
次に、プロセッサ２１は、第２の実施の形態の電力見積方法と同様に、ステップＳ１５の処理で算出されたタスクの電力値と、ステップＳ１７の処理で抽出されたタスク動作情報を用いて、電力見積対象装置ｅｓｔの消費電力を算出する（ステップＳ１８）。
【０１１７】
ただし、上記のように第３の実施の形態の電力見積方法では、電力見積対象装置ｅｓｔは異種のプロセッサコアを有しているため、消費電力の算出方法が、第２の実施の形態の電力見積方法とは少し異なっている。以下では、アーキテクチャ構成において、各タスクとそのタスクを実行するプロセッサコアとの対応が決められているとして、消費電力の算出方法の一例を説明する。
【０１１８】
タスク非動作時の電力値が無視できる場合、電力見積対象装置ｅｓｔの予測電力Ｐestは、以下に示す式（１２）によって与えられる。
【０１１９】
【数１２】
2015179383.tif 000014
【０１２０】
式（１２）において、添え字ｊは、タスクの番号を示している。また、ＰTjは、タスク電力ライブラリＤ５に格納されたタスク番号ｊの電力値であり、タスク番号ｊがＣＰＵで処理される場合はＰT＿Cj、ＧＰＵで処理される場合はＰT＿Gjとなる。また、ＴTjは、タスク番号ｊのタスクの動作時間であり、ステップＳ１７の処理で抽出されるタスク動作情報から算出される。例えば、ＴT3は、タスク番号“３”のタスクｔｓｋ１２の動作時間であり、ＧＰＵが処理を実行しているので（図２２）、ＧＰＵの動作情報を示す図２４から、ｔ１２−ｔ１０と算出される。また、Ｔtotalは、アプリケーション全体の動作時間である。
【０１２１】
タスク非動作時の電力値が無視できない場合、電力見積対象装置ｅｓｔの予測消費電力Ｐestは、以下に示す式（１３）によって与えられる。
【０１２２】
【数１３】
2015179383.tif 000015
【０１２３】
式（１３）において、添え字ｊ、タスクの電力値ＰTj、タスク動作時間ＴTj、アプリケーション全体の動作時間Ｔtotalは、式（１２）と同様であるので説明を省略する。ＴC＿T0は、ＣＰＵのタスク非動作時間であり、ＴtotalからＣＰＵで動作するタスクの動作時間合計を減ずることにより求められる。また、ＴG＿T0は、ＧＰＵのタスク非動作時間であり、ＴtotalからＧＰＵで動作するタスクの動作時間合計を減ずることにより求められる。また、タスク非動作時のＣＰＵ、ＧＰＵの電力値ＰC＿T0、ＰG＿T0は、式（１０）、（１１）において、ＰC＿T0＝Ｐ（０，０，…）、ＰG＿T0＝Ｐ（０，０，…）とする等により求める。
【０１２４】
式（１３）により算出された消費電力に基づき、どのようなアーキテクチャで装置を実現すればよいかの検討が行われる。例えば、別の能力のプロセッサコアを用いたときのタスクごとの動作時間の変化に応じた消費電力の変化等を、プロセッサ２１が算出し、より消費電力が小さくなるアーキテクチャを探索するようにしてもよい。
【０１２５】
以上のように、電力見積対象装置が、異種のプロセッサコアを有する場合でも、第２の実施の形態の電力見積方法と同様の効果が得られる。
（第４の実施の形態）
第４の実施の形態では、第２または第３の実施の形態により作成した電力モデル（パフォーマンス電力ライブラリＤ４）及びタスクの電力値（タスク電力ライブラリＤ５）を用いて、電力見積対象装置自身が消費電力を算出する電力見積方法を説明する。
【０１２６】
以下では、電力見積対象装置の例として、図２５に示すような半導体装置を用いて説明する。
（電力見積対象装置（半導体装置）の一例）
図２５は、半導体装置の一例を示す図である。
【０１２７】
図２５に示す半導体装置３０は、性能計測回路３１、電力ライブラリ作成部３２、電力（電流値）計測回路３３、電力制御部３４、電源回路３５、ＣＰＵ３６，３７、ＳＲＡＭ（Static Random Access Memory）３８、ＩＰ３９、ＧＰＵ４０、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）インタフェース４１、周辺回路部４２を有している。また、図２５の例では、上記の各要素は、バス４３に接続されている。
【０１２８】
性能計測回路３１は、半導体装置３０に含まれる要素（ＣＰＵ３６，３７等）の性能情報（周波数等）を計測する。
電力ライブラリ作成部３２は、電力（電流値）計測回路３３で計測された電力値及び、性能計測回路３１で計測された性能情報を用いて、事前に作成された電力モデル及びタスクの電力値を補正する。そして、電力ライブラリ作成部３２は、例えば、ＳＲＡＭ３８に事前に記憶されている、前述した方法により算出されたパフォーマンス電力ライブラリＤ４及びタスク電力ライブラリＤ５を更新する。
【０１２９】
電力（電流値）計測回路３３は、半導体装置３０に含まれる要素の電力を計測する。なお、電力（電流値）計測回路３３は、半導体装置３０に含まれる要素に流れる電流値を計測して、その電流値に基づき電力を算出するものであってもよい。
【０１３０】
電力制御部３４は、各タスクの電力値、タスク動作情報、電力に関する制約情報に基づき、タスクの電力を算出するとともに、電力の制御方法を決め、決定した電力制御方法に基づく電力制御信号を電源回路３５に決定する。また、電力制御部３４は、決定した電力制御方法に基づくタスク制御を行う。
【０１３１】
電源回路３５は、電力制御部３４の制御のもと、半導体装置３０の各要素に供給する電源電圧を生成する。なお、図２５では、電源回路３５から各要素に電源電圧を供給する電源配線については図示を省略している。
【０１３２】
ＣＰＵ３６，３７は、半導体装置３０の各部を制御する。
ＳＲＡＭ３８は、ＣＰＵ３６，３７、ＧＰＵ４０等で用いられるデータやプログラムを格納する。
【０１３３】
ＩＰ３９は、特定の処理を行うための専用回路である。
ＧＰＵ４０は、画像処理等を行う。
ＳＤＲＡＭインタフェース４１は、半導体装置３０に接続された図示しないＳＤＲＡＭと、バス４３との間でデータや信号の送受信を行う。
【０１３４】
周辺回路部４２には、ＰＬＬ（Phase Lock Loop）回路等が含まれる。
なお、性能計測回路３１、電力ライブラリ作成部３２、電力（電流値）計測回路３３、電力制御部３４の機能は、ＣＰＵ３６またはＣＰＵ３７が実行してもよいし、ＣＰＵ３６、３７とは別のプロセッサまたはＩＰが実行するようにしてもよい。
【０１３５】
以下では、上記のような半導体装置３０による電力制御方法を説明する。
図２６は、半導体装置における電力制御例を説明する図である。
まず、電力制御を行う際に用いる情報について説明する。
【０１３６】
電力制約情報Ｉｎ１１は、電力制御対象となる要素が使用できる電力の下限値及び上限値の制約等を含む情報である。
タスク動作情報Ｉｎ１２は、キューイングされている各タスクの動作順序に関する情報、各タスクの動作時間、各タスクと処理を行うプロセッサコアとの対応関係を示す情報等を含む。
【０１３７】
性能情報Ｉｎ１３は、電力制御対象の性能指標となる周波数等を含む情報であり、性能計測回路３１により計測される。
電力情報Ｉｎ１４は、電力（電流値）計測回路３３で計測された電力値（電流値）を含む情報である。
【０１３８】
性能情報Ｉｎ１３及び電力情報Ｉｎ１４は、バス４３（図２５参照）を介して電力ライブラリ作成部３２に送られる。
以上のような情報を用いて電力制御が行われる。
【０１３９】
電力ライブラリ作成部３２は、性能情報Ｉｎ１３及び電力情報Ｉｎ１４を用いて、事前に作成された電力モデル及びタスクの電力値を補正する。そして、電力ライブラリ作成部３２は、ライブラリ格納部３２ａ（例えば、ＳＲＡＭ３８）に格納されたパフォーマンス電力ライブラリＤ４及びタスク電力ライブラリＤ５を更新する。
【０１４０】
電力制御部３４は、更新されたタスク電力ライブラリＤ５、電力制約情報Ｉｎ１１、タスク動作情報Ｉｎ１２を用いて電力制御対象の消費電力を算出し、算出した消費電力に基づいて電力制御を行う。また、電力制御部３４は、電源電圧を変化させて電力制御を行う場合は、電力制御信号を生成し、電源回路３５に出力する。タスク制御により電力制御を行う場合は、電力制御部３４は、ＯＳ等によるタスクスケジューラ３４ａにタスク制御情報を出力する。
【０１４１】
電源回路３５は、電力制御部３４から出力された電力制御信号に基づき、電力制御対象に供給する電源電圧を変化させて電力を制御する。
タスクスケジューラ３４ａは、電力制御部３４から出力されたタスク制御情報に基づき、タスクの実行制御を行うことで、電力制御対象の電力を制御する。
【０１４２】
（電力制御方法の一例）
以下、第４の実施の形態の電力制御方法の一例を図２７により説明する。
図２７は、電力制御方法の一例の流れを示す図である。
【０１４３】
まず、電力制御を行う準備段階として、事前に作成された電力モデルが簡略化され、簡略化された電力モデルに基づいて簡略化したタスクの電力値が算出される（ステップＳ３１）。これは、前述の電力モデルにおいて、性能情報の種類が多い場合には、電力制御を行う際に扱いづらいからである。ステップＳ３１の処理は、例えば、電力見積装置である前述のコンピュータ２０が実行してもよいし、電力見積対象である半導体装置３０自身が行うようにしてもよい。
【０１４４】
電力モデルの簡略化は、例えば、係数が最大の性能パラメータを１つ選択し、電力モデルを性能情報の１次関数とすることにより行うことができる。例えば、電力モデルを表す式（１）において、係数が最大であり選択される性能情報がＭＩＰＳ値ＭＩＰＳである場合、簡略化した電力モデルは、以下に示す式（１４）のようになる。
【０１４５】
【数１４】
2015179383.tif 000016
【０１４６】
また、簡略化した電力モデルを示す式（１４）から算出されるタスク番号ｊのタスクの電力値は、式（３）においてＭＩＰＳ値ＭＩＰＳのみを考慮すればよいので、以下に示す式（１５）のようになる。
【０１４７】
【数１５】
2015179383.tif 000017
【０１４８】
なお、性能情報の選択は、電力値への影響の大きさを表す指標として、例えば、ｔ検定における係数（偏回帰係数）の有意義率を行い、電力値への影響が一番大きい性能情報を選択することにより行うこともできる。
【０１４９】
また、ステップＳ３１の処理では、パラメータ対応情報Ｉｎ１５を用いて、電力モデルの性能情報を、電力制御を行う際に用いられる性能情報に対応させる。これは、電力モデルの性能情報と電力制御を行う際に用いられる性能情報との不整合を解消するためである。
【０１５０】
パラメータ対応情報Ｉｎ１５は、電力モデルに含まれる性能情報と、電力制御を行う際に用いられる性能情報との対応関係を示す情報である。例えば、電力モデルの性能情報がＭＩＰＳであり、電力制御を行う際に用いられる性能情報が周波数値ｆである場合、両者の関係は、ＭＩＰＳ値ＭＩＰＳを周波数値ｆにより表す１次式やテーブル等により与えられる。
【０１５１】
なお、パラメータ対応情報Ｉｎ１５において、電力制御の性能パラメータとの対応関係が得られない、電力モデルの性能情報は使用しないものとする。
パラメータ対応情報Ｉｎ１５に、例えば、電力モデルの性能情報であるＭＩＰＳ値ＭＩＰＳを電力制御用の性能情報である周波数値ｆで表した１次式が与えられている場合、簡略化した電力モデルを示す式（１４）は、式（１６）のようになる。
【０１５２】
【数１６】
2015179383.tif 000018
【０１５３】
式（１６）の定数項ｐ0f、係数ｐ1fが、簡略パフォーマンス電力ライブラリＤ１４に格納される。また、簡略タスク電力ライブラリＤ１５には、上記のようにして簡略化された電力モデルから算出されたタスクの電力値が格納される。簡略パフォーマンス電力ライブラリＤ１４及び簡略タスク電力ライブラリＤ１５は、電力制御を実行する際または前に、ライブラリ格納部３２ａ（図２６）に格納される。
【０１５４】
次に、電力ライブラリ作成部３２は、性能情報Ｉｎ１３及び電力情報Ｉｎ１４を用いて、ライブラリ格納部３２ａに格納された簡略パフォーマンス電力ライブラリＤ１４及び簡略タスク電力ライブラリＤ１５を更新する（ステップＳ３２）。
【０１５５】
なお、各ライブラリの更新は、元のライブラリに対して直接行われるが、図２７では、更新前後でライブラリを区別できるように、更新後の各ライブラリを更新パフォーマンス電力ライブラリＤ２４、更新タスク電力ライブラリＤ２５と記載している。
【０１５６】
電力モデル作成時のシミュレーションは一定条件下（温度、電圧、プロセス依存）で行われるのに対し、実際の半導体装置３０に配置された回路では、使用環境や、配置位置等により温度や電圧の条件が異なる。例えば、電力の消費が大きいチップの中心部に配置された回路では、周囲よりも高温となり、また、電圧も低下すると考えられる。
【０１５７】
そのため、実際の半導体装置３０における消費電力とシミュレーションで得られた消費電力とは異なることが考えられる。より正確な消費電力を算出できるほうが、より効率的に電力制御を行える。本実施の形態の半導体装置３０は、ステップＳ３２の処理を行うことで、電力制御実行時の条件を反映した、より正確な消費電力を算出できるようになるため、より効率的な電力制御を行うことができる。
【０１５８】
以下、図２８を用いて、簡略パフォーマンス電力ライブラリＤ１４と簡略タスク電力ライブラリＤ１５の更新の流れを説明する。
図２８は、簡略パフォーマンス電力ライブラリ及び簡略タスク電力ライブラリの更新処理の一例を説明する図である。
【０１５９】
まず、電力ライブラリ作成部３２は、性能情報Ｉｎ１３及び電力情報Ｉｎ１４を用いて、電力モデルの定数項及び係数の補正を行う（ステップＳ４１）。
例えば、性能情報Ｉｎ１３に周波数値ｆが示され、電力情報Ｉｎ１４に周波数値ｆに応じた電力値が示されている場合、まず、電力値から式（１６）から算出される消費電力を引いて残差を算出する。次に、その残差の平均値、標準偏差を算出し、式（１６）に加算等することで、電力モデルを補正することができる。
【０１６０】
また、ステップＳ４１の処理では、電力ライブラリ作成部３２は、ライブラリ格納部３２ａの簡略パフォーマンス電力ライブラリＤ１４に格納されている電力モデルの定数項及び係数を、補正した電力モデルの定数項及び係数に更新する。これにより更新パフォーマンス電力ライブラリＤ２４が生成される。
【０１６１】
次に、電力ライブラリ作成部３２は、ステップＳ４１の処理により、補正した電力モデルを用いて、タスクの電力値を補正する（ステップＳ４２）。
また、電力ライブラリ作成部３２は、ライブラリ格納部３２ａの簡略タスク電力ライブラリＤ１５に格納されているタスクの電力値を、補正したタスクの電力値に更新する。これにより、更新タスク電力ライブラリＤ２５が生成される。
【０１６２】
なお、性能情報Ｉｎ１３に、電力制御用の性能情報以外に、タスクの電力値を算出するための性能情報（ＭＩＰＳ値等）が含まれている場合は、電力ライブラリ作成部３２は、簡略タスク電力ライブラリＤ１５を用いずに、タスクの電力値を算出してもよい。
【０１６３】
以上のような電力モデルの更新処理が行われると、図２７のステップＳ３３の処理が行われる。
ステップＳ３３の処理では、電力制御部３４は、電力制約情報Ｉｎ１１、タスク動作情報Ｉｎ１２、ステップＳ３２の処理により更新されたタスクの電力値を用いて、電力制御対象の消費電力を算出し、その消費電力に基づいて電力制御を行う。
【０１６４】
以下、電力制御対象の消費電力の見積方法と電力制御方法の流れを図２９により説明する。
図２９は、電力制御対象の消費電力の見積方法と電力制御方法の流れの一例を示した図である。
【０１６５】
まず、電力制御部３４は、ライブラリ格納部３２ａの更新タスク電力ライブラリＤ２５に格納されたタスクの電力値と、タスク動作情報Ｉｎ１２を用いて、電力制御対象の消費電力を算出する（ステップＳ５１）。例えば、電力制御部３４は、タスク動作情報Ｉｎ１２に、各タスクの動作時間、各タスクとそのタスクの処理を行うプロセッサコアとの対応が含まれている場合、まず、各タスクの動作時間とそのタスクの処理を行うプロセッサコアのタスクの電力値を乗じる。次に、電力制御部３４は、それらの和をとり、アプリケーション全体の動作時間で割ることにより消費電力を算出する。
【０１６６】
次に、電力制御部３４は、ステップＳ５１の処理で算出された電力制御対象の予測消費電力と、電力制約情報Ｉｎ１１及びタスク動作情報Ｉｎ１２を用いて電力制御を行うか否か判断し、行う場合は、電力制御方法を決定する（ステップＳ５２）。
【０１６７】
例えば、電力制御部３４は、ステップＳ５１の処理で得られた消費電力より低電力となるように、タスク動作情報Ｉｎ１２に基づいて、タスクの実行順序や同時に実行する組み合わせ等を決める。
【０１６８】
また、例えば、電力制御部３４は、ステップＳ５１の処理で得られた消費電力より低電力となるように、電力制約情報Ｉｎ１１の電力制約の下限値及び上限値を超えない範囲で、電源電圧を変化させることを決める。
【０１６９】
なお、上記の電力制御方法によっても電力制御対象の消費電力が低電力化できない場合は、電力制御部３４は、電力制御を行わないことを決定する。
ステップＳ５２の処理により電力制御を行うことが決定されると、電力制御部３４は、電力制約情報Ｉｎ１１の電力制約を満たす電力制御パラメータ（電圧、時間等）を求め、電力制御信号を生成し、電源回路３５に出力する（ステップＳ５３）。電源回路３５は、電力制御部３４から出力された電力制御信号に基づいて電源電圧を変化させることで、電力制御を行う。
【０１７０】
また、ステップＳ５２の処理によりタスク制御を行うことが決定されると、電力制御部３４は、タスクの実行順序や実行組み合わせ等を求め、タスクスケジューラ３４ａに出力する（ステップＳ５４）。タスクスケジューラ３４ａは、電力制御部３４の出力に従って、タスクの実行制御を行うことで、電力制御を行う。
【０１７１】
以上のように、第４の実施の形態では、半導体装置３０が内部の要素の電力制御を行う際に、事前に作成された電力モデル及びタスクの電力値を、実機上での性能情報や電力値の計測結果に基づき補正する。これにより、電力制御実行時の条件を反映した、より正確な消費電力を算出できるようになるため、より効率的な電力制御を行うことができる。
【０１７２】
また、仮に、半導体装置３０の性能計測回路３１等のモニタリング結果から、直接、電力モデルの作成及びタスクの電力値の算出を行うとすると、多くの性能情報等のデータが必要となるため、より多くの制御等が必要になる。第４の実施の形態では、半導体装置３０は、事前に算出された電力モデル及びタスクの電力値を利用するため、より少ない工数で電力制御を行うことができる。
【０１７３】
（変形例）
第４の実施の形態の変形例として、データセンター内の計算サーバ等の電力制御、ジョブ制御を行う方法を図３０により説明する。
【０１７４】
図３０は、ネットワーク構成の一例を示す図である。
データセンター５０は、計算サーバ５１，５２，５３，５４，５５，５６、計測機５７、ストレージ５８を有する。計算サーバ５１〜５６、計測機５７、ストレージ５８は、ネットワーク５９を介して接続されている。
【０１７５】
計算サーバ５１〜５６は、計算ジョブの実行等を行う計算サーバであり、計測機５７の計測対象及び電力制御の対象となる。
計測機５７は、計算サーバ５１〜５６等の性能計測、電力計測、電力ライブラリ作成、電力及びジョブ制御等を行う装置である。
【０１７６】
ストレージ５８は、計算サーバ等が使用するデータ及びプログラム等を記憶する装置である。
第４の実施の形態の変形例における電力制御方法の一例について説明する。
【０１７７】
まず、事前に、前述の方法により電力モデル（パフォーマンス電力ライブラリ）の作成及びタスクの電力値（タスク電力ライブラリ）の算出が行われる。次に、計測機５７により、データセンターの性能情報及び電力情報の計測が行われ、事前に作成した電力モデル及びタスクの電力値が補正される。その後、計測機５７は、タスク動作情報を抽出し、補正したタスクの電力値を用いて、データセンターの消費電力を算出する。そして、計測機５７は、その予算出したデータセンターの消費電力より低電力となるように、タスクのジョブを制御し、また、電源電圧を変化させて、電力制御を決定する。
【０１７８】
これにより、前述した半導体装置３０による電力制御と同様の効果が得られる。
以上、実施の形態に基づき、本発明の電力見積方法、電力見積装置及びプログラムの一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【符号の説明】
【０１７９】
１０  電力見積装置
１１  プロセッサ
１２  記憶部
Ｄ１  設計データ
Ｄ２  プログラム情報
Ｄ３  実機測定結果
【図１】
2015179383.tif 000019
【図２】
2015179383.tif 000020
【図３】
2015179383.tif 000021
【図４】
2015179383.tif 000022
【図５】
2015179383.tif 000023
【図６】
2015179383.tif 000024
【図７】
2015179383.tif 000025
【図８】
2015179383.tif 000026
【図９】
2015179383.tif 000027
【図１０】
2015179383.tif 000028
【図１１】
2015179383.tif 000029
【図１２】
2015179383.tif 000030
【図１３】
2015179383.tif 000031
【図１４】
2015179383.tif 000032
【図１５】
2015179383.tif 000033
【図１６】
2015179383.tif 000034
【図１７】
2015179383.tif 000035
【図１８】
2015179383.tif 000036
【図１９】
2015179383.tif 000037
【図２０】
2015179383.tif 000038
【図２１】
2015179383.tif 000039
【図２２】
2015179383.tif 000040
【図２３】
2015179383.tif 000041
【図２４】
2015179383.tif 000042
【図２５】
2015179383.tif 000043
【図２６】
2015179383.tif 000044
【図２７】
2015179383.tif 000045
【図２８】
2015179383.tif 000046
【図２９】
2015179383.tif 000047
【図３０】
2015179383.tif 000048