(57)【特許請求の範囲】
【請求項１】
システムを構成する部品の状態と、該状態における前記部品の消費電力と、を記憶する消費電力記憶手段と、
前記部品の前記状態が遷移する条件を記憶する条件記憶手段と、
前記システムを模擬するシミュレータから、前記部品の前記状態を示す情報が通知されない場合に、前記条件記憶手段に記憶される条件に従う遷移の順に、前記状態が配列されてなる状態列を生成する生成手段と、
前記状態列を構成する前記状態毎に、単位時間あたりに前記部品が前記状態となる時間の割合を算出する割合算出手段と、
前記割合算出手段によって算出された前記割合と、前記消費電力記憶手段に記憶される消費電力との積を、前記状態列を構成する前記状態毎に求め、求められた積の総和を前記部品の消費電力として推定する推定手段と、
を備える消費電力推定装置。
【請求項２】
システムを構成する部品の状態と、該状態における前記部品の消費電力と、を記憶する消費電力記憶手段と、
前記部品の前記状態が遷移する条件を記憶する条件記憶手段と、
前記システムを観測する観測手段から、前記部品の消費電力を示す情報が通知されない場合に、前記条件記憶手段に記憶される条件に従う遷移の順に、前記状態が配列されてなる状態列を生成する生成手段と、
前記状態列を構成する前記状態毎に、単位時間あたりに前記部品が前記状態となる時間の割合を算出する割合算出手段と、
前記割合算出手段によって算出された前記割合と、前記消費電力記憶手段に記憶される消費電力との積を、前記状態列を構成する前記状態毎に求め、求められた積の総和を前記部品の消費電力として推定する推定手段と、
を備える消費電力推定装置。
【請求項３】
前記観測手段によって観測される前記部品の消費電力に基づいて、前記消費電力記憶手段に記憶される消費電力を更新する更新手段、
を備える請求項２に記載の消費電力推定装置。
【請求項４】
前記状態列を抽出する抽出手段、
を備え、
前記生成手段は、複数の前記状態列を生成し、
前記割合算出手段は、複数の前記状態列それぞれを構成する前記状態毎に、前記割合を算出し、
前記推定手段は、前記状態列毎に、前記部品の消費電力を推定し、
前記抽出手段は、複数の前記状態列のうち、前記推定手段によって推定される消費電力が最小となる前記状態列を抽出する、
請求項１乃至３のいずれか１項に記載の消費電力推定装置。
【請求項５】
前記抽出手段によって抽出された前記状態列を、前記システムの動作に適用する適用手段、
を備える請求項４に記載の消費電力推定装置。
【請求項６】
前記消費電力記憶手段は、
前記部品の消費電力の最大値、最小値、平均値、及び最頻値のうちの少なくとも１つの統計量を記憶する、
請求項１乃至５のいずれか１項に記載の消費電力推定装置。
【請求項７】
状態が遷移する部品を有するシステムと、
前記部品の消費電力を推定する請求項２又は３に記載の消費電力推定装置と、
を備える電子機器。
【請求項８】
システムを模擬するシミュレータから、前記システムを構成する部品の状態を示す情報が通知されない場合に、所定の条件に従う遷移の順に前記状態が配列されてなる状態列を生成する生成ステップと、
前記状態列を構成する前記状態毎に、単位時間あたりに前記部品が前記状態となる時間の割合を算出する割合算出ステップと、
前記割合算出ステップにおいて算出された前記割合と、前記状態における前記部品の消費電力との積を、前記状態列を構成する前記状態毎に求め、求められた積の総和を前記部品の消費電力として推定する推定ステップと、
を含む消費電力推定方法。
【請求項９】
システムを観測する観測手段から、前記システムを構成する部品の消費電力を示す情報が通知されない場合に、所定の条件に従う遷移の順に前記部品の状態が配列されてなる状態列を生成する生成ステップと、
前記状態列を構成する前記状態毎に、単位時間あたりに前記部品が前記状態となる時間の割合を算出する割合算出ステップと、
前記割合算出ステップにおいて算出された前記割合と、前記状態における前記部品の消費電力との積を、前記状態列を構成する前記状態毎に求め、求められた積の総和を前記部品の消費電力として推定する推定ステップと、
を含む消費電力推定方法。
【請求項１０】
コンピュータを、
システムを構成する部品の状態と、該状態における前記部品の消費電力と、を記憶する消費電力記憶手段、
前記部品の前記状態が遷移する条件を記憶する条件記憶手段、
前記システムを模擬するシミュレータから、前記部品の前記状態を示す情報が通知されない場合に、前記条件記憶手段に記憶される条件に従う遷移の順に、前記状態が配列されてなる状態列を生成する生成手段、
前記状態列を構成する前記状態毎に、単位時間あたりに前記部品が前記状態となる時間の割合を算出する割合算出手段、
前記割合算出手段によって算出された前記割合と、前記消費電力記憶手段に記憶される消費電力との積を、前記状態列を構成する前記状態毎に求め、求められた積の総和を前記部品の消費電力として推定する推定手段、
として機能させるためのプログラム。
【請求項１１】
コンピュータを、
システムを構成する部品の状態と、該状態における前記部品の消費電力と、を記憶する消費電力記憶手段、
前記部品の前記状態が遷移する条件を記憶する条件記憶手段、
前記システムを観測する観測手段から、前記部品の消費電力を示す情報が通知されない場合に、前記条件記憶手段に記憶される条件に従う遷移の順に、前記状態が配列されてなる状態列を生成する生成手段、
前記状態列を構成する前記状態毎に、単位時間あたりに前記部品が前記状態となる時間の割合を算出する割合算出手段、
前記割合算出手段によって算出された前記割合と、前記消費電力記憶手段に記憶される消費電力との積を、前記状態列を構成する前記状態毎に求め、求められた積の総和を前記部品の消費電力として推定する推定手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、消費電力推定装置、電子機器、消費電力推定方法、及びプログラムに関する。
【背景技術】
【０００２】
携帯端末に代表される電子機器等（以下、システムという）の消費電力は、少ないことが望ましい。そのため、システムの消費電力を低減する技術が盛んに開発されている。このような技術を開発するためには、システムを構成する種々の部品（以下、単に部品という）の消費電力を求める必要がある。
【０００３】
通常、システムの部品すべての消費電力を直接測定することは困難である。そこで、各部品のデータシート（仕様書）に記載されている消費電力の最大値等を、消費電力の推定値として用いることがある。しかしながら、消費電力が最大値に等しい状態を、各部品が常に保つことは稀である。このため、データシートに記載の最大値等は、消費電力の推定値として不向きであった。
【０００４】
また、データシートに記載の最大値等を推定値として利用することなく、各部品の消費電力を推定する技術が提案されている（例えば、特許文献１を参照）。特許文献１に記載の技術では、シミュレータがシステムの動作を模擬することで、部品（命令）によって消費される電力が推定される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−２３２１４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、一般的に、システムの動作を模擬するシミュレータは、システムの部品すべての動作まで模擬するとは限らない。シミュレータによって動作が模擬されない部品をシステムが含む場合に、特許文献１に記載の技術では、システムを構成する部品の消費電力を正確に推定することができないおそれがあった。
【０００７】
本発明は、上記の事情に鑑みてなされたもので、システムを構成する部品の消費電力を正確に推定することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明の消費電力推定装置は、
システムを構成する部品の状態と、該状態における前記部品の消費電力と、を記憶する消費電力記憶手段と、
前記部品の前記状態が遷移する条件を記憶する条件記憶手段と、
前記システムを模擬するシミュレータから、前記部品の前記状態を示す情報が通知されない場合に、前記条件記憶手段に記憶される条件に従う遷移の順に、前記状態が配列されてなる状態列を生成する生成手段と、
前記状態列を構成する前記状態毎に、単位時間あたりに前記部品が前記状態となる時間の割合を算出する割合算出手段と、
前記割合算出手段によって算出された前記割合と、前記消費電力記憶手段に記憶される消費電力との積を、前記状態列を構成する前記状態毎に求め、求められた積の総和を前記部品の消費電力として推定する推定手段と、
を備える。
【発明の効果】
【０００９】
本発明によれば、システムを構成する部品の消費電力を正確に推定することができる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態に係る推定装置の構成を示す図である。
【図２】対象システムの構成を示す図である。
【図３】消費電力の推移と状態列との関係を示す図である。
【図４】推定装置の機能を示す図である。
【図５】性能値ＤＢに記憶される性能値データを示す図である。
【図６】仮想システムの構成を示す図である。
【図７】条件ＤＢに記憶される条件データを示す図である。
【図８】演算部によって実行される処理を示すフロー図である。
【図９】状態列生成処理を示すフロー図である。
【図１０】状態列生成処理によって生成された状態列の例を示す図である。
【図１１】性能値推定処理を示すフロー図である。
【図１２】性能値推定処理を説明するための図である。
【図１３】性能値推定処理における演算を説明するための模式図である。
【図１４】性能値推定処理による推定の結果を示す図である。
【図１５】最適な状態列の抽出結果を示す図である。
【図１６】対象システム及び部品の性能値の推定結果を示す図である。
【図１７】第２の実施形態に係る推定装置の構成を示す図である。
【図１８】演算部によって実行される処理を示すフロー図である。
【図１９】第３の実施形態に係る電子機器の構成を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態を、図面を参照しつつ詳細に説明する。
【００１２】
（第１の実施形態）
本実施形態に係る推定装置１０は、図１に示されるように、プロセッサ１１、主記憶部１２、補助記憶部１３、入力部１４、出力部１５、及びインタフェース部１６を有している。主記憶部１２、補助記憶部１３、入力部１４、出力部１５、及びインタフェース部１６はいずれも内部バス１７を介してプロセッサ１１に接続されている。
【００１３】
プロセッサ１１は、例えばＣＰＵ（Central Processing Unit）等から構成され、補助記憶部１３に記憶されるプログラム１８に従って、後述の処理を実行する。主記憶部１２は、例えばＲＡＭ（Random Access Memory）等から構成され、補助記憶部１３に記憶されるプログラム１８をロードし、プロセッサ１１の作業領域として用いられる。
【００１４】
補助記憶部１３は、例えばフラッシュメモリ、ハードディスク等の不揮発性メモリから構成され、プログラム１８や種々のデータを記憶する。補助記憶部１３は、プロセッサ１１の指示に従って、プロセッサ１１が利用するデータをプロセッサ１１に供給し、プロセッサ１１から供給されたデータを記憶する。
【００１５】
入力部１４は、キーボードやマウス等のポインティングデバイス等から構成される。入力部１４は、推定装置１０の使用者によって入力された情報を、プロセッサ１１へ通知する。出力部１５は、例えばＬＣＤ（Liquid Crystal Display）やスピーカ等から構成される。出力部１５は、プロセッサ１１の指示に従って、推定装置１０の使用者に対して種々の情報を提示する。
【００１６】
インタフェース部１６は、例えば、モデム又は網終端装置、及びそれらと接続するＬＡＮ（Local Area Network）インタフェース等から構成される。インタフェース部１６は、例えば、ネットワークを介して、推定装置１０の外部にある装置と通信を行う。
【００１７】
プロセッサ１１、主記憶部１２、補助記憶部１３、入力部１４、出力部１５、及びインタフェース部１６が協働することにより、推定装置１０は、所定のシステム及びこのシステムを構成する部品の性能値を推定する。所定のシステムは、例えば、電池で駆動する電子機器や、電子機器に含まれる電子回路、ＡＳＩＣ（Application Specific Integrated Circuit）等である。また、本実施形態において、性能は消費電力を意味し、性能値は消費電力の大きさを意味する。
【００１８】
以下では、推定装置１０による推定の対象となる所定のシステムを、対象システムＸ０という。また、説明の理解のために、対象システムＸ０は、簡素な構成を有するものとする。具体的には、対象システムＸ０は、図２に示されるように、第１部品Ｘ１及び第２部品Ｘ２を含む第１ユニットＸ１０、並びに第３部品Ｘ３及び第４部品Ｘ４を含む第２ユニットＸ２０から構成されるものとする。
【００１９】
第１部品Ｘ１〜第４部品Ｘ４それぞれは、あらかじめ設計された複数の状態のうちのいずれかの状態となる。この状態は、例えば、電力が供給／遮断されている状態や、種々の動作モードに対応する状態である。また、第１部品Ｘ１〜第４部品Ｘ４それぞれの状態は、対象システムＸ０の動作に応じて、時間の経過とともに所定の状態に遷移する。この遷移の順に従って配列された状態からなる系列を、以下では状態列という。
【００２０】
図３には、状態列と消費電力の推移との関係を示す一例として、第１部品Ｘ１が状態Ｓｔ１Ａ、Ｓｔ１Ｂへ交互に遷移する場合における消費電力の推移が示されている。図３に示されるように、状態Ｓｔ１Ａにおける消費電力は、状態Ｓｔ１Ｂにおける消費電力よりも小さく、おおよそ一定の値となる。また、状態Ｓｔ１Ｂにおける消費電力もおおよそ一定の値となる。ただし、各状態における消費電力は、厳密に一定になるとは限らず、例えば外来ノイズに起因して変動し得る。
【００２１】
図４には、推定装置１０の機能が示されている。図４に示される機能は、プロセッサ１１、主記憶部１２、補助記憶部１３、入力部１４、出力部１５、及びインタフェース部１６が協働することによって実現される。図４に示されるように、推定装置１０は、性能値ＤＢ２１、性能値ＤＢ管理部２２、条件ＤＢ２３、条件ＤＢ管理部２４、及び演算部２５を有している。演算部２５は、性能値推定部２６、及び最適状態列抽出部２７を有している。
【００２２】
性能値ＤＢ２１は、第１部品Ｘ１〜第４部品Ｘ４の性能値に関するデータが格納されたデータベースである。性能値ＤＢ２１は、図５に示されるように、複数の性能値データを記憶する。性能値データそれぞれは、テーブル形式の固定長データであって、複数のフィールドを有している。
【００２３】
図５に示されるフィールドＦ１１は、性能値データを識別するための識別子（ＩＤ）を示す。また、フィールドＦ１２は、対象システムＸ０の部品を示す。また、フィールドＦ１３は、フィールドＦ１２に示される部品の状態を示す。また、フィールドＦ１４は、性能の類別を示し、本実施形態では消費電力を示すこととなる。
【００２４】
フィールドＦ１５は、フィールドＦ１３に示される状態における部品の性能値、又はこの性能値を求めるための式を示す。なお、性能値は厳密に一定の値になるとは限らないため、フィールドＦ１５は、性能値の統計量を示している。フィールドＦ１６は、この統計量の種別を示す。統計量の種別は、例えば、最大値、最小値、平均値、中央値又は最頻値等である。また、フィールドＦ１５が式を示す場合には、この式に用いられるパラメータが、フィールドＦ１７に示される。式は、数式に限定されず、性能値を求めるための演算方法を示す文であってもよい。
【００２５】
例えば、図５に示される「性能値データ１」は、状態Ｓｔ１Ａにおける第１部品Ｘ１の消費電力の最大値が２ｍＷであることを示している。
【００２６】
性能値ＤＢ２１に格納される性能値データは、第１部品Ｘ１〜第４部品Ｘ４それぞれのデータシートや実測結果を用いて、推定装置１０の使用者によってあらかじめ用意される。例えば、データシートの記載が不十分な場合に、推定装置１０の使用者は、可能な限り小さい構成要素（部品）や状態の単位で多くの測定を行うことにより、多数の性能値データを作成する。
【００２７】
また、性能値ＤＢ２１の性能値データは、図４に示されるように、推定装置１０の外部のシミュレータ５０へ通知される。シミュレータ５０は、通知された性能値データに基づいて、対象システムＸ０の動作のシミュレーションを行い、シミュレーションの結果を演算部２５へ出力する。
【００２８】
シミュレータ５０は、仮想システムＹ０を動作させることで、シミュレーションを行う。仮想システムＹ０は、シミュレータ５０のソフトウェア処理によって仮想的に構築される。なお、仮想システムＹ０は、ハードウェアによりシミュレータ５０に実装されてもよい。
【００２９】
仮想システムＹ０は、図６に示されるように、仮想ユニットＹ１０、並びに第３部品Ｙ３及び第４部品Ｙ４を含む第２ユニットＹ２０から構成される。仮想ユニットＹ１０は、対象システムＸ０の第１部品Ｘ１及び第２部品Ｘ２の動作を模擬しないが、第１ユニットＸ１０の動作を模擬する。一方、第３部品Ｙ３は、第３部品Ｘ３の動作を模擬し、弟４部品Ｙ４は、第４部品Ｘ４の動作を模擬する。
【００３０】
図４に戻り、性能値ＤＢ管理部２２は、いわゆるデータベース管理システムと同等の機能を有している。具体的には、性能値ＤＢ管理部２２は、性能値ＤＢ２１に記憶されている性能値データを修正したり変更したりすることで、性能値ＤＢ２１を管理する。例えば、対象システムＸ０から第４部品Ｘ４が取り除かれた場合に、性能値ＤＢ管理部２２は、第４部品Ｘ４に関連する性能値データを削除して、性能値ＤＢ２１に格納されているデータを更新する。
【００３１】
性能値ＤＢ管理部２２は、出力部１５にＧＵＩ（Graphical User Interface）を表示させて、推定装置１０の使用者によって入力された情報を取得する。また、性能値ＤＢ管理部２２は、インタフェース部１６を介してネットワークから情報を取得してもよいし、補助記憶部１３に格納されたファイルから情報を取得してもよい。そして、性能値ＤＢ管理部２２は、取得した情報に基づいて、性能値ＤＢ２１を管理する。
【００３２】
条件ＤＢ２３は、第１部品Ｘ１〜第４部品Ｘ４それぞれの状態が満たさなければならない条件を記憶するデータベースである。条件は、例えば、複数の状態それぞれが互いに満たすべき依存関係や、包含関係、論理関係（ＡＮＤ／ＯＲ）、同時性、時間的順序等である。条件ＤＢ２３は、図７に示されるように、複数の条件データを記憶する。条件データそれぞれは、テーブル形式の可変長データであって、複数のフィールドを有している。
【００３３】
図７に示されるフィールドＦ２１は、条件データを識別するための識別子（ＩＤ）を示す。また、フィールドＦ２２は、条件を示す。条件は、部品と状態の組を用いて定義される。この定義に用いられた１つ目の組の部品及び状態それぞれが、フィールドＦ２３及びフィールドＦ２４それぞれに示される。また、２つ目の組の部品及び状態それぞれが、フィールドＦ２５及びフィールドＦ２６それぞれに示される。
【００３４】
例えば、図７に示される「条件データ１」は、第１部品Ｘ１が状態Ｓｔ１Ａにある場合に、第２部品Ｘ２が状態Ｓｔ２Ａとなる、という依存関係を示している。なお、条件を示すために用いられる部品と状態の組は、２組に限定されず、１組であってもよいし、３組以上であってもよい。条件ＤＢ２３に格納される条件データは、性能値ＤＢ２１と同様に、推定装置１０の使用者によってあらかじめ用意される。
【００３５】
条件ＤＢ管理部２４は、いわゆるデータベース管理システムと同等の機能を有している。具体的には、条件ＤＢ管理部２４は、条件ＤＢ２３に記憶されている条件データを修正したり変更したりすることで、条件ＤＢ２３を管理する。例えば、各部品が満たすべき条件が新たに明らかになった場合に、条件ＤＢ管理部２４は、この条件を示す条件データを、条件ＤＢ２３に追加する。条件ＤＢ管理部２４は、性能値ＤＢ管理部２２と同様に情報を取得し、取得した情報に基づいて条件ＤＢ２３を管理する。
【００３６】
演算部２５は、性能値データ、条件データ、及びシミュレータ５０によるシミュレーションの結果に基づいて、種々の演算処理を実行する。例えば、演算部２５に含まれる性能値推定部２６は、第１部品Ｘ１及び第２部品Ｘ２の性能値を推定する。また、演算部２５に含まれる最適状態列抽出部２７は、対象システムＸ０の性能値を最適化するための状態列を抽出する。以下、演算部２５によって実行される処理について、図８を用いて説明する。
【００３７】
まず、演算部２５は、対象システムＸ０を構成する部品を１つ選択する（ステップＳ１０１）。例えば、ステップＳ１０１が最初に実行される場合に、演算部２５は、第１部品Ｘ１を選択する。なお、ステップＳ１０１にて選択された部品を、以下では部品Ｐという。
【００３８】
次に、演算部２５は、部品Ｐの状態列をシミュレータ５０から取得可能であるか否かを判定する（ステップＳ１０２）。例えば、部品Ｐが第１部品Ｘ１であるときに、第１部品Ｘ１の動作はシミュレータ５０によって模擬されないため、演算部２５は、部品Ｐの状態列を取得することができない。
【００３９】
状態列を取得することができないと判定された場合（ステップＳ１０２；Ｎｏ）、演算部２５は、状態列生成処理を実行する（ステップＳ１０３）。状態列生成処理は、部品Ｐの状態列として実現する可能性があるものをすべて生成する処理である。
【００４０】
状態列生成処理では、図９に示されるように、演算部２５は、まず、部品Ｐを含む条件データをすべて特定する（ステップＳ２０１）。具体的には、演算部２５は、条件ＤＢ２３に格納される条件データのうち、部品Ｐを示すフィールドを有する条件データをすべて特定する。
【００４１】
次に、演算部２５は、特定された条件データに含まれる条件をすべて列挙する（ステップＳ２０２）。そして、演算部２５は、列挙された条件すべてを満たす状態列を生成する（ステップＳ２０３）。例えば、部品Ｐが第１部品Ｘ１であるときには、図１０に示されるように、状態列Ｎｏ．１、Ｎｏ．２・・・を含む一覧が作成される。そして、演算部２５は、状態列生成処理を終了する。
【００４２】
図８に戻り、状態列生成処理に続いて、演算部２５は、生成された状態列を１つ選択する（ステップＳ１０４）。ステップＳ１０４にて選択された状態列を、以下では状態列Ｑという。
【００４３】
次に、演算部２５は、性能値推定処理を実行する（ステップＳ１０５）。この性能値推定処理では、状態列Ｑに従って部品Ｐの状態が遷移するときにおける、部品Ｐの性能値が推定される。この性能値推定処理について、図１１を用いて説明する。
【００４４】
まず、演算部２５は、状態列Ｑを構成する状態を抽出する（ステップＳ３０１）。例えば、状態列Ｑが、図１０に示される状態列Ｎｏ．１であるときに、演算部２５は、状態列Ｎｏ．１を構成する状態Ｓｔ１Ａと状態Ｓｔ１Ｂとを抽出する。
【００４５】
次に、演算部２５は、抽出された各状態に関連する性能値、統計量の種別、及びパラメータを、性能値ＤＢ２１から取得する（ステップＳ３０２）。例えば、演算部２５は、図５に示される「性能値データ１」から、状態Ｓｔ１Ａに関連する「２ｍＷ」、「最大値」及び「（パラメータ）なし」という情報を取得する。同様に、演算部２５は、状態Ｓｔ１Ａに関連する他の性能値、統計量の種別、及びパラメータを取得する。さらに、演算部２５は、状態Ｓｔ１Ａと同様に、状態Ｓｔ１Ｂに関連する情報を取得する。演算部２５は、ステップＳ３０２の結果として、例えば図１２に示される情報を取得する。
【００４６】
次に、演算部２５は、ステップＳ３０２にて取得された統計量の種別を１つ選択する（ステップＳ３０３）。例えば、演算部２５は、図１２に示される「最大値」を選択する。
【００４７】
次に、演算部２５は、ステップＳ３０１にて抽出された状態を１つ選択する（ステップＳ３０４）。例えば、演算部２５は、図１２に示される状態Ｓｔ１Ａを選択する。
【００４８】
次に、演算部２５は、性能値が式で与えられるか否かを判定する（ステップＳ３０５）。具体的には、演算部２５は、図１２に示される性能値のうち、ステップＳ３０３にて選択された種別と、ステップＳ３０４にて選択された状態とによって規定される性能値が、式で与えられるか否かを判定する。
【００４９】
性能値が式で与えられないと判定された場合（ステップＳ３０５；Ｎｏ）、演算部２５は、ステップＳ３１０へ処理を移行する。
【００５０】
性能値が式で与えられると判定された場合（ステップＳ３０５；Ｙｅｓ）、演算部２５は、式のパラメータが状態であるか否かを判定する（ステップＳ３０６）。
【００５１】
式のパラメータが状態ではないと判定された場合（ステップＳ３０６；Ｎｏ）、演算部２５は、パラメータの値を入力部１４等から取得する（ステップＳ３０７）。例えば、演算部２５は、出力部１５にパラメータを入力するための画面を表示させることで、推定装置１０の使用者によって入力されるパラメータを取得する。その後、演算部２５は、ステップＳ３０９へ処理を移行する。
【００５２】
式のパラメータが状態であると判定された場合（ステップＳ３０６；Ｙｅｓ）、演算部２５は、パラメータとなる状態を取得する（ステップＳ３０８）。例えば、演算部２５は、パラメータとともに性能値データに含まれる状態を取得する。
【００５３】
そして、演算部２５は、パラメータを用いて、式に従って性能値を算出する（ステップＳ３０９）。
【００５４】
次に、演算部２５は、未選択の状態があるか否かを判定する（ステップＳ３１０）。具体的には、演算部２５は、ステップＳ３０１にて抽出された状態のうち、ステップＳ３０４にて選択されていないものがあるか否かを判定する。
【００５５】
未選択の状態があると判定された場合（ステップＳ３１０；Ｙｅｓ）、演算部２５は、ステップＳ３０４以降の処理を繰り返す。なお、２回目以降のステップＳ３０４において、演算部２５は、未選択の状態を１つ選択する。これにより、図１２に示される性能値のうち、ステップＳ３０３にて選択された種別の性能値すべてが求められる。
【００５６】
未選択の状態がないと判定された場合（ステップＳ３１０；Ｎｏ）、演算部２５は、状態列Ｑに基づいて、各状態の状態頻度を算出する（ステップＳ３１１）。状態頻度は、状態列Ｑを構成する状態それぞれの個数を意味する。例えば、図１３に示されるように、状態列Ｑが状態列Ｎｏ．１であるときに、演算部２５は、状態Ｓｔ１Ａ、Ｓｔ１Ｂの状態頻度を、ともに２回と算出する。
【００５７】
次に、演算部２５は、各状態の時間率を算出する（ステップＳ３１２）。時間率は、単位時間あたりに、部品Ｐが各状態にある時間の割合を意味する。例えば、図１３に示される場合に、演算部２５は、状態Ｓｔ１Ａ、Ｓｔ１Ｂの時間率を、ともに５０％と算出する。
【００５８】
次に、演算部２５は、性能値と、各状態の時間率とを乗算する（ステップＳ３１３）。例えば、図１３に示される場合に、演算部２５は、状態Ｓｔ１Ａにおける部品Ｐの性能値「２ｍＷ」と状態Ｓｔ１Ａの時間率「５０％」とを乗算して、「１ｍＷ」という性能値を算出する。同様に、演算部２５は、状態Ｓｔ１Ｂの性能値と時間率とを乗算する。これにより、各状態における部品Ｐの性能値が算出される。
【００５９】
次に、演算部２５は、性能値の総和を算出することで、状態列Ｑに従って動作する部品Ｐの性能値を推定する（ステップＳ３１４）。例えば、演算部２５は、図１３に示される場合に、状態Ｓｔ１Ａ、Ｓｔ１Ｂにおける第１部品Ｘ１の性能値の総和を「４ｍＷ」と算出する。
【００６０】
次に、演算部２５は、未選択の統計量の種別があるか否かを判定する（ステップＳ３１５）。具体的には、演算部２５は、ステップＳ３０２にて取得された種別のうち、ステップＳ３０３にて選択されていないものがあるか否かを判定する。
【００６１】
未選択の統計量の種別があると判定された場合（ステップＳ３１５；Ｙｅｓ）、演算部２５は、ステップＳ３０３以降の処理を繰り返す。なお、２回目以降のステップＳ３０３において、演算部２５は、未選択の種別を１つ選択する。これにより、状態列Ｑに従って動作する部品Ｐの、統計量の種別すべての性能値が推定される。例えば、状態列Ｑが状態列Ｎｏ．１であるときには、図１４のテーブル４１に示される性能値が推定される。
【００６２】
そして、演算部２５は、性能値推定処理を終了する。なお、図８に示されるステップＳ１０４の処理、及びステップＳ１０５の性能値推定処理は、性能値推定部２６によって実行される処理に相当する。
【００６３】
ステップＳ１０５に続いて、演算部２５は、未選択の状態列があるか否かを判定する（ステップＳ１０６）。未選択の状態列があると判定された場合（ステップＳ１０６；Ｙｅｓ）、演算部２５は、ステップＳ１０４以降の処理を繰り返す。なお、２回目以降のステップＳ１０４において、演算部２５は、未選択の状態列を１つ選択する。これにより、状態列生成処理にて生成された状態列それぞれに従って動作する部品Ｐの性能値が算出される。例えば、部品Ｐが第１部品Ｘ１であるときには、図１４のテーブル群４２に示される値が算出される。
【００６４】
次に、演算部２５は、各状態列と、推定された性能値との一覧を作成する（ステップＳ１０７）。具体的には、演算部２５は、図１４のテーブル群４２を整理して、一覧を作成する。この際に、演算部２５は、条件ＤＢ２３を再度参照して、条件ＤＢ２３に記憶される条件を満たさない状態列及び性能値を一覧から除外してもよい。
【００６５】
次に、演算部２５は、統計量の種別毎に部品Ｐの最適な状態列を抽出する（ステップＳ１０８）。本実施形態に係る性能値は消費電力の大きさであるため、演算部２５は、統計量の種別毎に消費電力が最小となる状態列を抽出する。これにより、例えば図１５に示されるように、統計量の種別毎に最適な状態列が抽出される。
【００６６】
なお、ステップＳ１０３〜Ｓ１０８の処理は、最適状態列抽出部２７によって実行される処理に相当する。
【００６７】
次に、演算部２５は、未選択の部品があるか否かを判定する（ステップＳ１０９）。具体的には、演算部２５は、対象システムＸ０を構成する部品のうち、ステップＳ１０１にて選択されていない部品の有無を判定する。未選択の部品があると判定された場合（ステップＳ１０９；Ｙｅｓ）、演算部２５は、ステップＳ１０１以降の処理を繰り返す。そして、２回目以降のステップＳ１０１において、演算部２５は、未選択の部品を１つ選択する。
【００６８】
なお、ステップＳ１０２にて、シミュレータ５０から状態列を取得することができると判定された場合（ステップＳ１０２；Ｙｅｓ）、演算部２５は、性能値算出処理を実行する（ステップＳ１１０）。この性能値算出処理は、ステップＳ１０５の性能値推定処理における状態列Ｑに代えて、ステップＳ１０２にて取得した状態列を用いる処理に等しい。その後、演算部２５は、ステップＳ１０９へ処理を移行する。
【００６９】
ステップＳ１０１〜Ｓ１１０の処理が繰り返されることにより、演算部２５は、例えば図１６のテーブル４３に示される情報を取得する。なお、テーブル４３のうちの列４４に示される情報は、図１５に示されたものに等しい。また、第３部品Ｘ３及び第４部品Ｘ４の状態列は、統計量のいずれの種別でも、演算部２５がシミュレータ５０から取得したものとなる。
【００７０】
図８に戻り、演算部２５は、対象システムＸ０の性能値を算出する（ステップＳ１１１）。具体的には、演算部２５は、統計量の種別毎に、第１部品Ｘ１〜第４部品Ｘ４の性能値の総和を、対象システムＸ０の性能値として算出する。これにより、例えば図１６の列４５に示される性能値が算出される。なお、演算部２５は、対象システムＸ０の性能値と同様に、第１ユニットＸ１０及び第２ユニットＸ２０の性能値を算出してもよい。算出された性能値は、出力部１５から出力される。そして、演算部２５は、処理を終了する。
【００７１】
以上説明したように、演算部２５は、シミュレータ５０によって動作が模擬されない部品の状態列を、条件データに含まれる条件を満たすように生成する。そして、演算部２５は、生成された状態列に従って動作する部品の性能値を、性能値データを用いて推定する。これにより、演算部２５は、対象システムＸ０を構成する各部品の性能値を正確に推定することができる。
【００７２】
また、演算部２５は、統計量の種別毎に性能値を算出する。したがって、例えば外来ノイズ等の影響による性能値の変動幅も推定することができる。これにより、推定装置１０は、推定された性能値の精度を使用者に対して示すことができる。
【００７３】
また、演算部２５は、部品の状態列として実現する可能性があるものをすべて生成し、生成された状態列のうち最適なものを抽出する。これにより、推定装置１０の使用者は、性能値が最適となるときの状態列を認識して、対象システムＸ０の性能値の改善を図ることができる。
【００７４】
また、推定装置１０は、性能値ＤＢ管理部２２、及び条件ＤＢ管理部２４を有する。これにより、推定装置１０の使用者は、性能値ＤＢ管理部２２、及び条件ＤＢ管理部２４を用いて、性能値ＤＢ２１及び条件ＤＢ２３に記憶されるデータを任意に修正・変更することができる。
【００７５】
また、シミュレータ５０は、性能値ＤＢ２１に記憶される性能値データに基づいて、シミュレーションを行う。これにより、推定装置１０の使用者は、シミュレータ５０を直接操作することなく、性能値ＤＢ２１に記憶される最新の性能値データに基づくシミュレーションを実行させることができる。
【００７６】
また、推定装置１０の使用者は、推定装置１０の結果に基づくシミュレーションと、シミュレータ５０の動作に基づく性能値の推定とを、容易に繰り返すことができる。ひいては、対象システムＸ０の性能値の改善を容易に図ることができる。
【００７７】
また、対象システムＸ０の構成要素は、階層構造をなしていた。すなわち、対象システムＸ０は、２個のユニットから構成され、各ユニットは複数の部品を含んでいた。シミュレータ５０の動作だけでは、この階層構造のうち最下層に属する第１部品Ｘ１及び第２部品Ｘ２の性能値を推定することは困難であった。しかしながら、本実施形態に係る性能値推定処理により、これらの性能値が正確に推定される。これにより、階層構造のうち同一の階層に属する第１部品Ｘ１〜第４部品Ｘ４すべての性能値を推定することができる。
【００７８】
（第２の実施形態）
続いて、第２の実施形態について、上述の第１の実施形態との相違点を中心に説明する。なお、上記実施形態と同一又は同等の構成については、同等の符号を用いるとともに、その説明を省略又は簡略する。
【００７９】
本実施形態に係る推定装置１０は、図１７に示されるように、測定部２８を有する点で、第１の実施形態に係るものと異なっている。また、推定装置１０は、シミュレータ５０に代えて、対象システムＸ０に接続される。
【００８０】
測定部２８は、対象システムＸ０を構成する部品のうち、第３部品Ｘ３及び第４部品Ｘ４の性能値を測定するが、第１部品Ｘ１及び第２部品Ｘ２の性能値を測定しない。なお、測定部２８は、第１ユニットＸ１０、第２ユニットＸ２０及び対象システムＸ０の性能値を測定してもよい。また、測定部２８は、性能値に限らず、第１部品Ｘ１〜第４部品Ｘ４それぞれの状態や状態列を観測して、演算部２５へ通知してもよい。
【００８１】
また、測定部２８は、性能値の測定結果と、性能値ＤＢ２１に記憶される性能値データとが互いに異なる場合に、性能値ＤＢ管理部２２へ所定の情報を通知する。この情報は、性能値ＤＢ２１に記憶される性能値データに、対象システムＸ０の動作を反映するための情報である。性能値ＤＢ管理部２２は、通知された情報に従って、性能値ＤＢ２１を修正する。
【００８２】
例えば、状態Ｓｔ３Ａにおける第３部品Ｘ３の消費電力の最大値が１０ｍＷであることを示す性能値データが、性能値ＤＢ２１に格納されている場合を仮定する。この場合において、状態Ｓｔ３Ａにおける第３部品Ｘ３の消費電力が１２ｍＷとなったことが測定されたときに、測定部２８は、性能値データのうちの「１０ｍＷ」という性能値を「１２ｍＷ」に修正するための指示を、性能値ＤＢ管理部２２へ通知する。
【００８３】
続いて、本実施形態に係る演算部２５によって実行される処理について、図１８を用いて説明する。
【００８４】
まず、演算部２５は、第１の実施形態に係るステップＳ１０１と同様の処理を実行する。次に、演算部２５は、部品Ｐの性能値を測定部２８から取得可能であるか否かを判定する（ステップＳ４０１）。状態列を取得することができないと判定された場合（ステップＳ４０１；Ｎｏ）、演算部２５は、ステップＳ１０３を実行する。一方、状態列を取得することができると判定された場合（ステップＳ４０１；Ｙｅｓ）、演算部２５は、ステップＳ１０９を実行する。
【００８５】
また、ステップＳ１０７にて状態列及び性能値の一覧が作成されるときに、演算部２５は、対象システムＸ０の現在の状態の遷移を示す状態列、及び性能値を一覧から除外する。
【００８６】
また、ステップＳ１１１の処理に続いて、演算部２５は、統計量の種別を１つ選択する（ステップＳ４０２）。例えば、演算部２５は、推定装置１０の使用者によって入力された統計量の種別を選択する。
【００８７】
次に、演算部２５は、選択された種別の性能値が最適となる状態列を、対象システムＸ０のスケジューリングに適用する（ステップＳ４０３）。例えば、ステップＳ１１１にて図１６に示される値が算出され、かつステップＳ４０２にて「最大値」が選択された場合に、演算部２５は、第１部品Ｘ１及び第２部品Ｘ２それぞれのスケジューリングに、状態列Ｎｏ．１、Ｎｏ．２１それぞれを適用する。これにより、対象システムＸ０は、最適な状態列に従って動作することとなる。
【００８８】
そして、演算部２５は、ステップＳ４０３の後に、ステップＳ１０１以降の処理を繰り返す。なお、この繰り返しによって対象システムＸ０の本来の動作に大きな負荷がかからないように、演算部２５は、ステップＳ１０１以降の処理を一定時間ごとに実行する。
【００８９】
以上説明したように、本実施形態に係る推定装置１０は、シミュレータ５０に代えて、対象システムＸ０自体によって消費される電力を測定しつつ、性能値を推定する。これにより、第１の実施形態に係る場合よりも正確に性能値を推定することができる。
【００９０】
また、推定装置１０は、最適な状態列を対象システムＸ０の動作に適用する。これにより、対象システムＸ０の性能値の改善を迅速に実行することができる。
【００９１】
（第３の実施形態）
続いて、第３の実施形態について、上述の第２の実施形態との相違点を中心に説明する。なお、上記実施形態と同一又は同等の構成については、同等の符号を用いるとともに、その説明を省略又は簡略する。
【００９２】
本実施形態に係る推定装置１０及び対象システムＸ０は、図１９に示されるように、電子機器６０に内蔵される。
【００９３】
以上のように構成することで、電子機器６０は、外部から操作されることなく、最適な状態列に従って対象システムＸ０を動作させることができる。
【００９４】
（他の実施形態）
以上、本発明の実施形態について説明したが、本発明は上記実施形態によって限定されるものではない。
【００９５】
例えば、上記実施形態に係る状態に代えて、状態遷移を用いることができる。例えば、ＯＮ状態とＯＦＦ状態それぞれでは電力を消費しないが、ＯＮ状態とＯＦＦ状態の間を遷移するときに電力を消費するスイッチを対象システムＸ０が含む場合に、この状態遷移に基づいて、上記実施形態と同様の推定装置１０を構成することができる。また、状態及び状態遷移の双方を用いて推定装置１０を構成することもできる。
【００９６】
また、上記実施形態に係るステップＳ３０９において、式のパラメータは、演算部２５が入力部から取得する値、又は状態であった。これには限定されず、式のパラメータは複数であってもよい。また、図１２の「最頻値」に示されるように、他の種別（「中央値」）の性能値をパラメータとしてもよい。図１２に示される場合に、ステップＳ３０４〜Ｓ３１０の反復処理は、中央値が先に算出された後に最頻値が算出されるように実行される。
【００９７】
また、上記実施形態に係る性能値データのフィールドＦ１６は、統計量の種別を示した。統計量の種別は、最大値、最小値、平均値、中央値、又は最頻値に限定されない。例えば、四分位点、分散、尖度、歪度等を統計量の種別として用いてもよい。また、フィールドＦ１６は、性能値の範囲や集合等、性能値の分布を示すものとしてもよい。
【００９８】
また、上記実施形態では、対象システムＸ０の構成を簡素なものと仮定したが、これには限定されない。例えば、推定装置１０は、第１部品Ｘ１が備える複数のチップそれぞれの性能値を、第１部品Ｘ１〜第４部品Ｘ４の性能値とともに推定してもよい。
【００９９】
また、上記実施形態に係る条件として、部品同士の位置関係を規定することもできる。
【０１００】
また、上記実施形態に係る性能値データは、７個のフィールドから構成されたが、これには限定されない。例えば、部品の単位や個数、データシートにおける性能値の記載の有無、性能値が実測結果であるか否か、又は統計的処理レベル等を示すフィールドを、性能値データに追加してもよい。
【０１０１】
また、対象システムＸ０及び各部品が、ソフトウェア及びソフトウェア・モジュールである場合にも推定装置１０を構成することができる。この場合には、ソフトウェア及びソフトウェア・モジュールの実行により消費される電力等が推定される。
【０１０２】
また、上記実施形態に係る性能値は消費電力の大きさを意味したが、これには限定されない。例えば、対象システムＸ０及び各部品の発熱量や、ソフトウェア・モジュールの実行時間を性能とすることもできる。
【０１０３】
上述の実施形態に係る推定装置１０の機能は、専用のハードウェアによっても、また、通常のコンピュータシステムによっても実現することができる。
【０１０４】
例えば、補助記憶部１３に記憶されているプログラム１８を、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disk Read-Only Memory）、ＤＶＤ（Digital Versatile Disk）、ＭＯ（Magneto-Optical disk）等のコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムをコンピュータにインストールすることにより、上述の処理を実行する装置を構成することができる。
【０１０５】
また、プログラム１８をインターネット等の通信ネットワーク上の所定のサーバ装置が有するディスク装置等に格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するようにしてもよい。
【０１０６】
また、通信ネットワークを介してプログラム１８を転送しながら起動実行することによっても、上述の処理を達成することができる。
【０１０７】
更に、プログラム１８の全部又は一部をサーバ装置上で実行させ、その処理に関する情報をコンピュータが通信ネットワークを介して送受信しながらプログラム１８を実行することによっても、上述の処理を達成することができる。
【０１０８】
なお、上述の機能を、ＯＳ（Operating System）が分担して実現する場合又はＯＳとアプリケーションとの協働により実現する場合等には、ＯＳ以外の部分のみを媒体に格納して配布してもよく、また、コンピュータにダウンロード等してもよい。
【０１０９】
また、プロセッサ１１の機能を実現する手段は、ソフトウェアに限られず、その一部又は全部を専用のハードウェア（回路等）によって実現してもよい。
【０１１０】
本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
【産業上の利用可能性】
【０１１１】
本発明の消費電力推定装置、電子機器、消費電力推定方法、及びプログラムは、電子機器等の消費電力を低減するための技術に適している。
【符号の説明】
【０１１２】
１０    推定装置
１１    プロセッサ
１２    主記憶部
１３    補助記憶部
１４    入力部
１５    出力部
１６    インタフェース部
１７    内部バス
１８    プログラム
２１    性能値ＤＢ
２２    性能値ＤＢ管理部
２３    条件ＤＢ
２４    条件ＤＢ管理部
２５    演算部
２６    性能値推定部
２７    最適状態列抽出部
２８    測定部
４１、４３  テーブル
４２    テーブル群
４４、４５  列
５０    シミュレータ
６０    電子機器
Ｆ１１、Ｆ１２、Ｆ１３、Ｆ１４、Ｆ１５、Ｆ１６、Ｆ１７、Ｆ２１、Ｆ２２、Ｆ２３、Ｆ２４、Ｆ２５、Ｆ２６  フィールド
Ｘ０    対象システム
Ｘ１    第１部品
Ｘ２    第２部品
Ｘ３、Ｙ３  第３部品
Ｘ４、Ｙ４  第４部品
Ｘ１０  第１ユニット
Ｘ２０、Ｙ２０  第２ユニット
Ｙ０    仮想システム
Ｙ１０    仮想ユニット
【図１】
0005854924.tif 000002
【図２】
0005854924.tif 000003
【図３】
0005854924.tif 000004
【図４】
0005854924.tif 000005
【図５】
0005854924.tif 000006
【図６】
0005854924.tif 000007
【図７】
0005854924.tif 000008
【図８】
0005854924.tif 000009
【図９】
0005854924.tif 000010
【図１０】
0005854924.tif 000011
【図１１】
0005854924.tif 000012
【図１２】
0005854924.tif 000013
【図１３】
0005854924.tif 000014
【図１４】
0005854924.tif 000015
【図１５】
0005854924.tif 000016
【図１６】
0005854924.tif 000017
【図１７】
0005854924.tif 000018
【図１８】
0005854924.tif 000019
【図１９】
0005854924.tif 000020