(57)【要約】【課題】省電力化が可能なソフトウェアを開発するソフトウェア開発方法を提供する。【解決手段】シミュレーション部１１が、ソフトウェアのシミュレーション時に、関数またはタスクからハードウェアリソースへのアクセスを検知すると、予め測定された各ハードウェアリソースの単位消費電力量を格納した消費電力情報テーブルＴ１を参照して、ハードウェアリソースの単位消費電力量をもとに消費電力を計算し、電力情報作成部１２が、消費電力の計算結果をもとに関数またはタスクごとの消費電力を求め、関数またはタスクごとの消費電力をもとにした電力情報を作成し、表示処理部１３が、電力情報を表示装置１３ａに表示させる。【選択図】図１
2009075965.tif 000002
【特許請求の範囲】
【請求項１】
シミュレーション部が、ソフトウェアのシミュレーション時に、関数またはタスクからハードウェアリソースへのアクセスを検知すると、予め測定された各ハードウェアリソースの単位消費電力量を格納した消費電力情報テーブルを参照して、前記ハードウェアリソースの前記単位消費電力量をもとに消費電力を計算し、
電力情報作成部が、前記消費電力の計算結果をもとに前記関数または前記タスクごとの消費電力を求め、前記関数または前記タスクごとの消費電力をもとにした電力情報を作成し、
表示処理部が、前記電力情報を表示装置に表示させることを特徴とするソフトウェア開発方法。
【請求項２】
前記シミュレーション部は、シミュレーション時に、前記ハードウェアリソースのアドレスを参照する変数を認識した場合には、前記アクセスとして検知することを特徴とする請求項１記載のソフトウェア開発方法。
【請求項３】
前記消費電力情報テーブルは、複数の品種の製品の、前記ハードウェアリソースの前記単位消費電力量を格納していることを特徴とする請求項１または２記載のソフトウェア開発方法。
【請求項４】
ソフトウェアのシミュレーション時に、関数またはタスクからハードウェアリソースへのアクセスを検知すると、予め測定された各ハードウェアリソースの単位消費電力量を格納した消費電力情報テーブルを参照して、前記ハードウェアリソースの前記単位消費電力量をもとに消費電力を計算するシミュレーション部と、
前記消費電力の計算結果をもとに前記関数または前記タスクごとの消費電力を求め、前記関数または前記タスクごとの消費電力をもとにした電力情報を作成する電力情報作成部と、
前記電力情報を表示装置に表示させる表示処理部と、
を有することを特徴とするソフトウェア開発装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はソフトウェア開発方法及びソフトウェア開発装置に関し、特に省電力化が可能なソフトウェアを開発するソフトウェア開発方法及びソフトウェア開発装置に関する。
【背景技術】
【０００２】
組み込みシステムなど、ソフトウェアとハードウェアが協調するシステムにおいて、省電力化が必要とされている。その背景として、携帯端末などの電池寿命や待機時間の延長などがある。
【０００３】
従来、ハードウェア設計時において、電圧や周波数、寄生容量やリーク電流などを考慮した省電力設計が試みられている。
たとえば、特許文献１，２には、ハードウェア設計時に手早く消費電力を見積もり、電力設計を行うシミュレーション手法が開示されている。
【０００４】
また、特許文献３には、ソフトウェアとハードウェアが協調するシステムの設計時に、消費電力を見積もり、消費電力を目安にソフトウェアとハードウェアの機能分割を行う手法が開示されている。
【特許文献１】特開２０００−２９３５５７号公報
【特許文献２】特開２００２−３３４１２８号公報
【特許文献３】特開２００１−１４２９２７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、従来では、省電力化設計はハードウェアに対して行われており、ハードウェアの駆動や制御を行うソフトウェアに対しては行われておらず、省電力化が十分ではなかった。
【０００６】
特に、既製の汎用のマイクロコントローラ（以下マイコンと略す）ではハードウェア性能をいかにソフトウェア側で効率よく実行できるかが省電力化の課題であるが、従来ではその手段がなかった。
【０００７】
本発明はこのような点に鑑みてなされたものであり、省電力化が可能なソフトウェアを開発するソフトウェア開発方法及びソフトウェア開発装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明者は、シミュレーション部が、ソフトウェアのシミュレーション時に、関数またはタスクからハードウェアリソースへのアクセスを検知すると、予め測定された各ハードウェアリソースの単位消費電力量を格納した消費電力情報テーブルを参照して、前記ハードウェアリソースの前記単位消費電力量をもとに消費電力を計算し、電力情報作成部が、前記消費電力の計算結果をもとに前記関数または前記タスクごとの消費電力を求め、前記関数または前記タスクごとの消費電力をもとにした電力情報を作成し、表示処理部が、前記電力情報を表示装置に表示させることを特徴とするソフトウェア開発方法を提案する。
【０００９】
上記の方法によれば、ソフトウェアの関数またはタスクごとの消費電力が求まり、その消費電力をもとにした電力情報が表示装置に表示されるので、ユーザは、ソフトウェアのどの関数またはタスクが消費電力に影響を与えているのか認識可能になる。
【発明の効果】
【００１０】
本発明によれば、ソフトウェアのシミュレーション時に、ソフトウェアの関数またはタスクごとの消費電力を求め、その消費電力をもとにした電力情報を表示装置に表示するので、ユーザは、ソフトウェアのどの関数またはタスクが消費電力に影響を与えているのか簡単に認識可能になる。そして、この情報を参照することで、省電力化のためのソフトウェア開発を容易に行うことができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態を図面を参照して詳細に説明する。
図１は、本実施の形態のソフトウェア開発装置の概略を示す図である。
ソフトウェア開発装置１０は、シミュレーション部１１、電力情報作成部１２、表示処理部１３、記憶部１４を有している。
【００１２】
シミュレーション部１１は、ソフトウェア開発の際のシミュレーションを行う。本実施の形態のシミュレーション部１１は、さらに、関数またはタスクからハードウェアリソースへのアクセスを検知すると、記憶部１４に記憶された、各ハードウェアリソースの単位消費電力量を格納した消費電力情報テーブルＴ１を参照する。そして、アクセスされたハードウェアリソースの単位消費電力量をもとに消費電力を計算する。
【００１３】
電力情報作成部１２は、シミュレーション部１１で計算された消費電力の計算結果をもとにソフトウェアの関数またはタスクごとの消費電力を求め、その消費電力をもとにした電力情報を作成する。また、電力情報作成部１２は、シミュレーション部１１で計算された消費電力の計算結果をもとに、使用されたハードウェアリソースごとの消費電力を求めるようにしてもよい。
【００１４】
表示処理部１３は、電力情報作成部１２で作成された電力情報を表示装置１３ａに表示させる。
以下、本実施の形態のソフトウェア開発装置１０の概略の動作を説明する。
【００１５】
図２は、消費電力情報テーブルの例を示す図である。
図のように消費電力情報テーブルＴ１には、各種ハードウェアリソース名と、そのハードウェアリソースの場所を特定するトリガ（レジスタやメモリのアドレスで示される）、単位消費電力量（たとえば１アクセスまたは１サイクルあたりの消費電力量）などが格納されている。
【００１６】
たとえば、ハードウェアリソース名が“ＭＰＥＧ（Motion Picture Expert Group）  Ｄｅｃｏｄｅ”のハードウェアリソースについては、“ｒｅｇ  Ｈ’Ａ０００”がトリガとなり、単位消費電力量は、０．８μＷであることが示されている。
【００１７】
このような消費電力情報テーブルＴ１は、ハードウェア設計時に、公知のハードウェア設計ツールや電力測定ツールにより作成されたものである。このようなツールでは、たとえば、ＲＴＬ（Register Transfer Level）やＣ言語で記述されたハードウェアモデルに、１サイクルまたは１アクセスあたりの電力計算式を埋め込むことで単位消費電力量を計算する。
【００１８】
シミュレーション部１１は、上記のようなハードウェアリソースを用いるソフトウェアを開発する際にシミュレーションを行い、関数またはタスクが、図２のようなトリガを参照した場合には、そのトリガで指定されるハードウェアリソースの単位消費電力量を抽出する。これによって、シミュレーション対象のソフトウェアを用いた場合の消費電力を計算する。
【００１９】
次に、電力情報作成部１２は、消費電力の計算結果をもとに、関数またはタスクごとの消費電力を求め、求めた消費電力をもとにした電力情報を作成し、表示処理部１３は、作成した電力情報を表示装置１３ａに表示する。
【００２０】
図３は、表示装置に表示される電力情報の一例を示す図である。
電力情報は、たとえば、関数と、その関数による消費電力、その関数で使用したハードウェアリソースと、そのハードウェアリソースのトリガにアクセスしたアクセス数（サイクル数）などがあり、これらが表示装置１３ａに表示される。
【００２１】
ここでは、関数ｆｕｎｃ１，ｆｕｎｃ２，ｆｕｎｃ３ごとの消費電力などを表示した例を示しているが、タスク単位で表示するようにしてもよい。また、電力情報作成部１２で、ハードウェアリソースごとの消費電力を求め、それを表示装置１３ａに表示してもよい。
【００２２】
このように、本実施の形態のソフトウェア開発装置１０によれば、ソフトウェアの関数またはタスクごとの消費電力が求まり、その消費電力をもとにした電力情報が表示装置１３ａに表示されるので、ユーザは、ソフトウェアのどの関数またはタスクが消費電力に影響を与えているのかが簡単に認識可能になる。そして、この情報をもとに、消費電力が高くなるような関数やタスクに、省電力化を促す命令（たとえば、周波数を下げる命令や、キャッシュ制御命令）などを自動的に、またはユーザが挿入する。それにより、省電力化のためのソフトウェア開発が可能になる。
【００２３】
以下、本実施のソフトウェア開発装置及びソフトウェア開発方法の詳細を説明する。
図４は、本実施の形態のソフトウェア開発装置の具体的なハードウェア構成例である。
ソフトウェア開発装置１００は、ＣＰＵ（Central Processing Unit）１０１、ＲＯＭ（Read Only Memory）１０２、ＲＡＭ（Random Access Memory）１０３、ＨＤＤ（Hard Disk Drive）１０４、グラフィック処理部１０５、入力Ｉ／Ｆ（Interface）１０６などによって構成され、これらはバス１０７を介して相互に接続されている。
【００２４】
ここで、ＣＰＵ１０１は、ＲＯＭ１０２や、ＨＤＤ１０４に格納されているプログラムや、各種データに応じて、グラフィック処理部１０５など、各部を制御し、図１に示したシミュレーション部１１、電力情報作成部１２、表示処理部１３の機能などを実現する。
【００２５】
ＲＯＭ１０２は、ＣＰＵ１０１が実行する基本的なプログラムやデータを格納している。
ＲＡＭ１０３は、ＣＰＵ１０１が実行途中のプログラムや、演算途中のデータを格納している。
【００２６】
ＨＤＤ１０４は、ＣＰＵ１０１が実行するＯＳ（Operation System）や、ソフトウェアシミュレータなどソフトウェア開発に必要なプログラムなどの各種アプリケーションプログラムや、各種データを格納する。
【００２７】
グラフィック処理部１０５には、表示装置として、ディスプレイ１０５ａが接続されており、ＣＰＵ１０１からの描画命令に従って、ディスプレイ１０５ａ上に、ソフトウェア開発環境の画面や、図３に示したような電力情報などを表示する。
【００２８】
入力Ｉ／Ｆ１０６には、マウス１０６ａやキーボード１０６ｂなどの入力装置が接続されており、ソフトウェア開発者などのユーザにより入力された情報を受信し、バス１０７を介してＣＰＵ１０１に伝送する。
【００２９】
上記のようなハードウェアを用いて実行されるソフトウェア開発において、必要な各機能ブロックの例を以下に示す。
図５は、ソフトウェア開発時に必要な機能の一例を示す機能ブロック図である。
【００３０】
ソフトウェア開発環境は、たとえば、マネージャ部２１０、デバッガ制御部２２０、エディタ部２３０、エミュレータ２４０、シミュレータ２５０、モニタデバッガ２６０及びチューニング制御部２７０を有している。これらは、たとえば、ＤＬＬ（Dynamic Link Library）などで表現され、ＣＰＵ１０１の制御のもと実行されるソフトウェア開発プログラム本体が、必要に応じてライブラリとして呼び出すことによって各機能ブロックの処理が実行される。また、全ての機能ブロックを１つのプログラムとして、ＣＰＵ１０１の制御のもと実行するようにしてもよい。
【００３１】
マネージャ部２１０は、ソフトウェア開発時の情報を管理するプロジェクトファイルと、ソースプログラムとの対応付けや、ビルド時にリンクオプションやコンパイラなどの翻訳ツールを制御する。
【００３２】
デバッガ制御部２２０は、エミュレータ２４０、シミュレータ２５０、モニタデバッガ２６０などのデバッガを管理するとともに、デバッガの実行やブレーク（停止）を制御する。また、デバッガ制御部２２０は、電力情報制御部２２１を有しており、前述した関数またはタスクごとの消費電力を求め、電力情報を作成する。また、ハードウェアリソースごとの消費電力を求め、電力情報に含めてもよい。
【００３３】
エディタ部２３０は、図４で示したマウス１０６ａやキーボード１０６ｂからの入力信号に応じて、ソースプログラムなどの編集を行う。
エミュレータ２４０、シミュレータ２５０、モニタデバッガ２６０は、デバッガ制御部２２０の制御のもと何れかが選択され、ビルドされたターゲットプログラムを取り込んでデバッグ処理を行う。
【００３４】
本実施の形態において、シミュレータ２５０は、たとえば、ＩＳＳ（Instruction Set Simulator）であり、１命令ごとに命令を実行する。また、電力計算部２５１を有し、前述した図１のシミュレーション部１１の機能を有している。すなわち、電力計算部２５１は、ソフトウェアを開発する際にシミュレーションを行い、関数またはタスクが、図２のようなトリガを参照した場合には、そのトリガで指定されるハードウェアリソースの単位消費電力量を抽出する。これによって、シミュレーション対象のソフトウェアを用いた場合の消費電力を計算する。
【００３５】
チューニング制御部２７０は、電力情報表示制御部２７１を有し、デバッガ制御部２２０で作成された電力情報の表示を制御する。
なお、上記のような機能構成は、あくまで一例であり、電力計算部２５１、電力情報制御部２２１、電力情報表示制御部２７１は、１つのＤＬＬに纏めるようにしてもよい。
【００３６】
以下本実施の形態のソフトウェア開発装置１００の動作を説明する。
図６は、ソフトウェア開発の概略の流れを示すフローチャートである。
ソフトウェア開発において、まずプロジェクトや、そのプロジェクトのソースプログラムを、マウス１０６ａやキーボード１０６ｂにより入力された情報をもとに作成する（ステップＳ１）。次に、ビルドしてターゲットファイルを作成する（ステップＳ２）。その後、デバッガを選択し（ステップＳ３）、ターゲットファイルを選択されたデバッガに取り込み（ステップＳ４）、消費電力測定などを実行する（ステップＳ５）。そして、測定結果をディスプレイ１０５ａに表示し（ステップＳ６）、測定結果をもとに、チューニングを行う（ステップＳ７）。チューニングでは、手動または自動でソースプログラムを編集して消費電力が少なくなるような修正を行ったり、ビルドオプションの見直しを行ったり、デバッガ実行条件の見直しなどを行う。
【００３７】
次に、ステップＳ３の処理で、図５のように電力計算機能を有したシミュレータ２５０が選択された場合のソフトウェア開発装置１００の動作を説明する。なお、以下では、ソフトウェア開発装置１００の動作として３つの例を挙げ、第１乃至第３の実施の形態のソフトウェア開発方法として順番に説明する。
【００３８】
図７は、第１の実施の形態のソフトウェア開発方法の流れを示すフローチャートである。
まず、ＣＰＵ１０１は、電力測定を実行するか否かの入力を受け付ける（ステップＳ１０）。たとえば、ユーザによるマウス１０６ａやキーボード１０６ｂの操作で、電力測定を実行しない旨の信号が入力された場合には、シミュレータ２５０の電力計算機能を無効にし（ステップＳ１１）、電力測定を実行する旨の信号が入力された場合には、シミュレータ２５０の電力計算機能を有効にする（ステップＳ１２）。
【００３９】
次に、たとえば、ユーザのマウス１０６ａやキーボード１０６ｂによる操作で、ブレークポイントの挿入などを行うことで、シミュレータ２５０の測定範囲を決定し（ステップＳ１３）、１命令ごとにシミュレーションを実行する（ステップＳ１４）。シミュレータ２５０は、電力計算機能が有効になっているか否かを判断して（ステップＳ１５）、無効になっている場合は、電力計算を行わず、測定範囲のシミュレーションが終了したか否かを判断したのち（ステップＳ１６）、測定範囲が終了していればシミュレーションを終了し、終了していなければ、ステップＳ１４の処理に戻り、次の命令を実行する。
【００４０】
ステップＳ１５の処理で、電力計算機能が有効になっていると判定された場合には、シミュレータ２５０は、トリガを検出したか否かの判定を行う（ステップＳ１７）。トリガを検出しない場合には、ステップＳ１６の処理に移る。
【００４１】
図８は、ハードウェアリソースの例を示す図である。
また、図９は、ハードウェアリソースの消費電力情報テーブルの例を示す図である。
たとえば、図８のように、ハードウェアリソースとして、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）、ＦＲＡＭ（Ferroelectric Random Access Memory）などのメモリを用いた場合、そのアドレスによって、トリガが指定されており、図９のような消費電力情報テーブルＴ２に格納されている。
【００４２】
シミュレータ２５０は、実行した命令に、消費電力情報テーブルＴ２に記載されているアドレスを参照する変数がある場合に、トリガとして検出する。
次に、シミュレータ２５０は、トリガを検出した場合、図９のような消費電力情報テーブルＴ２を参照して、消費電力を計算する（ステップＳ１８）。
【００４３】
図１０は、シミュレータが実行するターゲットファイルの例である。
ここでは、アセンブラ表記で示している。変数ｓｄａ，ｓｄｂ，ｓｄｃがＳＤＲＡＭのアドレスを参照し、変数ｆａ，ｆｂがＦＲＡＭのアドレスを参照する変数の場合、シミュレータ２５０は、それぞれの変数が出現するたびに、消費電力情報テーブルＴ２を参照して、そのトリガで示されるハードウェアリソースの単位消費電力量を積算して消費電力を計算していく。
【００４４】
次に、デバッガ制御部２２０は、電力情報制御部２２１の機能により、関数またはタスクごとの消費電力や、ハードウェアリソースごとの消費電力を求め、電力情報を作成する（ステップＳ１９）。
【００４５】
図１１は、作成された電力情報の一例を示す図である。
ここでは、図１０の関数ｆｕｎｃ１，ｆｕｎｃ２を１回ずつ実行した場合に作成される電力情報の例を示している。
【００４６】
関数ｆｕｎｃ１では、変数ｓｄａ，ｓｄｂ，ｓｄｃがそれぞれ１回出現し、合計３回、ＳＤＲＡＭにアクセスするので、図９の消費電力情報テーブルＴ２より、消費電力は０．３μＷ×３＝０．９μＷとなる。関数ｆｕｎｃ２では、変数ｆａが２回、変数ｆｂが１回出現し、合計３回、ＦＲＡＭにアクセスするので、消費電力情報テーブルＴ２より、消費電力は０．５μＷ×３＝１．５μＷとなる。
【００４７】
そして、チューニング制御部２７０の電力情報表示制御部２７１は、グラフィック処理部１０５を制御して、図１１のような電力情報を、ディスプレイ１０５ａに表示する（ステップＳ２０）。その後、ステップＳ１６の処理に移行し、測定範囲が終了するまで、上記の処理を繰り返す。
【００４８】
このように、第１の実施の形態のソフトウェア開発方法によれば、ユーザは、ソフトウェアのどの関数またはタスクが消費電力に影響を与えているのかが簡単に認識可能になる。そして、この情報をもとに、ステップＳ７のチューニング処理により、消費電力が高くなるような関数やタスクに、省電力化を促す命令（たとえば、周波数を下げる命令や、キャッシュ制御命令）などを自動的に、またはユーザが挿入する。それにより、省電力化のためのソフトウェア開発が可能になる。
【００４９】
また、高価なハードウェア設計ツールやハードウェアシミュレータ、ＣＰＵモデルや周辺ＩＯ（Input Output）のリソースモデルを用いず、安価で手軽なソフトウェアのシミュレータ２５０を用いるので、少ないコストで、省電力化のためのソフトウェア開発が可能になる。
【００５０】
次に、第２の実施の形態のソフトウェア開発方法を説明する。
図１２は、第２の実施の形態のソフトウェア開発方法の流れを示すフローチャートである。
【００５１】
ステップＳ１０〜Ｓ１７の処理は、第１の実施の形態のソフトウェア開発方法の処理と同じであるので説明を省略する。
シミュレータ２５０は、ステップＳ１７の処理でトリガを検出した場合、トリガ数（アクセス数）をカウントする（ステップＳ２１）。たとえば、図１０の関数ｆｕｎｃ１，ｆｕｎｃ２を１回ずつ実行した場合、変数ｓｄａ，ｓｄｂ，ｓｄｃ，ｆｂについては、トリガ数は１回、変数ｆａについては、トリガ数は２回である。このようなトリガ数は、たとえば、シミュレータ２５０内で保持しておく。
【００５２】
次に、シミュレータ２５０は、以下のような消費電力情報テーブルＴ３を参照する。
図１３は、複数品種の製品のハードウェアリソースの単位消費電力量を管理する消費電力情報テーブルの例を示す図である。
【００５３】
消費電力情報テーブルＴ３は、複数品種の製品のハードウェアリソースと、そのトリガと、単位消費電力量を格納している。すなわち、現在の評価対象の製品以外の単位消費電力量も格納している。
【００５４】
シミュレータ２５０は、第１の実施の形態のソフトウェア開発方法と同様に、今回評価対象としている製品の消費電力を、消費電力情報テーブルＴ３を参照して計算するとともに、保持されたトリガ数をもとに、他の製品（品種）における消費電力を予測する（ステップＳ２２）。
【００５５】
たとえば、今回、図１３の品種Ａの製品に対して消費電力を計算している場合、ＳＤＲＡＭにアクセスする変数ｓｄａ，ｓｄｂ，ｓｄｃについては、単位消費電力量は０．３μＷとなるが、品種Ｂの製品では、０．４μＷとなる。また、品種Ａの製品では、ＦＲＡＭにアクセスする変数ｆａ，ｆｂについては、単位消費電力量は０．５μＷとなるが、品種Ｂの製品では、０．６μＷとなる。シミュレータ２５０は、保持していた各変数のトリガ数に応じてこれらの値を積算していき、他の製品における消費電力を予測する。
【００５６】
次に、デバッガ制御部２２０は、電力情報制御部２２１の機能により、今回対象としている製品の関数またはタスクごとの消費電力や、ハードウェアリソースごとの消費電力を求めるとともに、ステップＳ２２で求められた、他の製品の消費電力の予測結果に応じて電力情報を作成する（ステップＳ２３）。
【００５７】
たとえば、図１０のような関数ｆｕｎｃ１，ｆｕｎｃ２を１回ずつ実行した場合の、図１３の品種ＡのＳＤＲＡＭの消費電力は、０．３×３＝０．９μＷ、ＦＲＡＭの消費電力は０．５×３＝１．５μＷであるが、品種ＢのＳＤＲＡＭの消費電力は、０．４×３＝１．２μＷ、ＦＲＡＭの消費電力は０．６×３＝１．８μＷと予測される。
【００５８】
また、上記の例の場合、関数ｆｕｎｃ１，ｆｕｎｃ２ごとの消費電力も同じ値となる。
そして、チューニング制御部２７０の電力情報表示制御部２７１は、グラフィック処理部１０５を制御して、ステップＳ２３の処理で作成した電力情報を、ディスプレイ１０５ａに表示する（ステップＳ２４）。
【００５９】
図１４は、他製品の消費電力予測結果を含む電力情報表示例を示す図である。
ここでは、図１３で示した品種Ａと品種Ｂの製品に対して、図１０の関数ｆｕｎｃ１，ｆｕｎｃ２を１回ずつ実行した場合に表示される電力情報の例を示している。
【００６０】
なお、タスクごとの消費電力やハードウェアリソースごとの消費電力を表示するようにしてもよい。
その後、ステップＳ１６の処理に移行し、測定範囲が終了するまで、上記の処理を繰り返す。
【００６１】
このように、第２の実施の形態のソフトウェア開発方法によれば、ある品種の製品に対してはシミュレーションの実行中にダイナミックに消費電力を計算するが、他の品種の製品に対しては、再実行せずとも、トリガ数をもとに、図１３のような消費電力情報テーブルＴ３を参照することで関数やタスクごと、またはハードウェアリソースごとの消費電力を予測することが可能になる。
【００６２】
次に、第３の実施の形態のソフトウェア開発方法を説明する。
図１５は、第３の実施の形態のソフトウェア開発方法の流れを示すフローチャートである。
【００６３】
ステップＳ１０〜Ｓ１９の処理は、第１及び第２の実施の形態のソフトウェア開発方法の処理と同じであるので説明を省略する。
第３の実施の形態のソフトウェア開発方法では、チューニング制御部２７０は、ステップＳ１９で作成した電力情報をもとに、ユーザに対して、省電力化のためのソフトウェアのチューニングアドバイスを選択して、電力情報表示制御部２７１により、グラフィック処理部１０５を制御して、ディスプレイ１０５ａに表示する（ステップＳ３１）。
【００６４】
図１６は、チューニングアドバイスの表示例を示す図である。
図１６（Ａ）は、ＦＲＡＭへのアクセスが特定の関数に集中しているので、プログラム全体に分散することで、省電力化が可能になることを示唆するチューニングアドバイスを示している。
【００６５】
また、図１６（Ｂ）は、ＳＲＡＭアクセスが分散しているが、省電力化につながるバースト転送モードがあるので、局所的なＳＤＲＡＭアクセスを奨めるチューニングアドバイスを示している。
【００６６】
このようなチューニングアドバイスは、予め品種ごとに用意された閾値などをチューニング制御部２７０が参照して、電力情報（消費電力やトリガ数）に応じて選択して出力する。
【００６７】
図１７は、チューニングアドバイスを表示するためのプログラム例を示す図である。
品種Ａの製品に対して、ＦＲＡＭアクセスが、全ＦＲＡＭアクセスの９０％以上となる関数がある場合に、図１６（Ａ）のようなチューニングアドバイスを表示するプログラムである。チューニング制御部２７０は、このようなプログラムにより、チューニングアドバイスを表示させる。
【００６８】
このように、第３の実施の形態のソフトウェア開発方法では、作成した電力情報にもとづき、チューニングアドバイスを表示するので、ユーザが、ソフトウェアをどのように直せば省電力化が可能かひと目で認識することができ、消費電力の少ないソフトウェアを簡単に開発することが可能になる。
【００６９】
なお、第１の実施の形態のソフトウェア開発方法のように、関数やタスクごとの消費電力を含む電力情報を表示するようにしてもよい。
図１８は、関数ごとの電力情報の表示例を示す図である。
【００７０】
関数ｆｕｎｃ１，ｆｕｎｃ２，ｆｕｎｃ３と、その関数が参照するハードウェアリソースと消費電力、アクセス回数などの電力情報が表示される。さらに、アイコン３００に対して、マウス１０６ａによるクリックやキーボード１０６ｂによる選択がなされたときに、図１７のようなプログラムを実行して、図１６のようなチューニングアドバイスをディスプレイ１０５ａ上に表示するようにしてもよい。
【００７１】
なお、第２の実施の形態のソフトウェア開発方法においても、予測した品種の製品に対して、上記のようなチューニングアドバイスを選択して表示するようにしてもよい。
また、上記の第１乃至第３の実施の形態のソフトウェア開発方法の説明では、トリガを検出するたびに、消費電力を計算し、電力情報を更新して、電力情報の表示を更新することで、リアルタイムに電力情報の変化をユーザが認識できるようにしたが、測定範囲を終了したのちに、電力情報を作成して、関数またはタスクごとの消費電力を表示したり、チューニングアドバイスを表示するようにしてもよい。
【００７２】
（付記１）  シミュレーション部が、ソフトウェアのシミュレーション時に、関数またはタスクからハードウェアリソースへのアクセスを検知すると、予め測定された各ハードウェアリソースの単位消費電力量を格納した消費電力情報テーブルを参照して、前記ハードウェアリソースの前記単位消費電力量をもとに消費電力を計算し、
電力情報作成部が、前記消費電力の計算結果をもとに前記関数または前記タスクごとの消費電力を求め、前記関数または前記タスクごとの消費電力をもとにした電力情報を作成し、
表示処理部が、前記電力情報を表示装置に表示させることを特徴とするソフトウェア開発方法。
【００７３】
（付記２）  前記シミュレーション部は、シミュレーション時に、前記ハードウェアリソースのアドレスを参照する変数を認識した場合には、前記アクセスとして検知することを特徴とする付記１記載のソフトウェア開発方法。
【００７４】
（付記３）  前記消費電力情報テーブルは、複数の品種の製品の、前記ハードウェアリソースの前記単位消費電力量を格納していることを特徴とする付記１または２記載のソフトウェア開発方法。
【００７５】
（付記４）  前記シミュレーション部は、特定の品種の製品の前記消費電力を計算する際に、関数またはタスクからの前記ハードウェアリソースへのアクセス数を保持し、前記アクセス数をもとに、他の品種の製品における前記ハードウェアリソースの前記単位消費電力量を前記消費電力テーブルから参照して、前記他の品種の製品における前記消費電力を予測することを特徴とする付記１乃至３の何れか一項に記載のソフトウェア開発方法。
【００７６】
（付記５）  前記電力情報をもとに、省電力化のための前記ソフトウェアのチューニングアドバイスを作成し、前記表示装置に表示させることを特徴とする付記１乃至４記載のソフトウェア開発方法。
【００７７】
（付記６）  前記電力情報作成部が、前記シミュレーション部による前記消費電力の計算結果をもとに、前記ハードウェアリソースごとの消費電力を求めることを特徴とする付記１乃至５記載のソフトウェア開発方法。
【００７８】
（付記７）  前記シミュレーション部は、前記ハードウェアリソースへのアクセスを検知するたびに、アクセスされた前記ハードウェアリソースの前記単位消費電力量を積算することで前記消費電力を計算し、前記電力情報作成部は、前記電力情報を更新し、前記表示処理部は、前記電力情報の表示を更新することを特徴とする付記１乃至６記載のソフトウェア開発方法。
【００７９】
（付記８）  ソフトウェアのシミュレーション時に、関数またはタスクからハードウェアリソースへのアクセスを検知すると、予め測定された各ハードウェアリソースの単位消費電力量を格納した消費電力情報テーブルを参照して、前記ハードウェアリソースの前記単位消費電力量をもとに消費電力を計算するシミュレーション部と、
前記消費電力の計算結果をもとに前記関数または前記タスクごとの消費電力を求め、前記関数または前記タスクごとの消費電力をもとにした電力情報を作成する電力情報作成部と、
前記電力情報を表示装置に表示させる表示処理部と、
を有することを特徴とするソフトウェア開発装置。
【図面の簡単な説明】
【００８０】
【図１】本実施の形態のソフトウェア開発装置の概略を示す図である。
【図２】消費電力情報テーブルの例を示す図である。
【図３】表示装置に表示される電力情報の一例を示す図である。
【図４】本実施の形態のソフトウェア開発装置の具体的なハードウェア構成例である。
【図５】ソフトウェア開発時に必要な機能の一例を示す機能ブロック図である。
【図６】ソフトウェア開発の概略の流れを示すフローチャートである。
【図７】第１の実施の形態のソフトウェア開発方法の流れを示すフローチャートである。
【図８】ハードウェアリソースの例を示す図である。
【図９】ハードウェアリソースの消費電力情報テーブルの例を示す図である。
【図１０】シミュレータが実行するターゲットファイルの例である。
【図１１】作成された電力情報の一例を示す図である。
【図１２】第２の実施の形態のソフトウェア開発方法の流れを示すフローチャートである。
【図１３】複数品種の製品のハードウェアリソースの単位消費電力量を管理する消費電力情報テーブルの例を示す図である。
【図１４】他製品の消費電力予測結果を含む電力情報表示例を示す図である。
【図１５】第３の実施の形態のソフトウェア開発方法の流れを示すフローチャートである。
【図１６】チューニングアドバイスの表示例を示す図である。
【図１７】チューニングアドバイスを表示するためのプログラム例を示す図である。
【図１８】関数ごとの電力情報の表示例を示す図である。
【符号の説明】
【００８１】
１０  ソフトウェア開発装置
１１  シミュレーション部
１２  電力情報作成部
１３  表示処理部
１３ａ  表示装置
１４  記憶部
Ｔ１  消費電力情報テーブル
【図１】
2009075965.tif 000003
【図２】
2009075965.tif 000004
【図３】
2009075965.tif 000005
【図４】
2009075965.tif 000006
【図５】
2009075965.tif 000007
【図６】
2009075965.tif 000008
【図７】
2009075965.tif 000009
【図８】
2009075965.tif 000010
【図９】
2009075965.tif 000011
【図１０】
2009075965.tif 000012
【図１１】
2009075965.tif 000013
【図１２】
2009075965.tif 000014
【図１３】
2009075965.tif 000015
【図１４】
2009075965.tif 000016
【図１５】
2009075965.tif 000017
【図１６】
2009075965.tif 000018
【図１７】
2009075965.tif 000019
【図１８】
2009075965.tif 000020