(57)【特許請求の範囲】
【請求項１】
処理部が、対象のハードウェアに搭載された複数のデバイスに含まれるプロセッサが実行する、タスクを呼び出すＡＰＩ（Application Programming Interface）ごとに、前記
ＡＰＩのパラメータが参照する前記デバイスの情報を有する第１の情報と、前記デバイスの仕様情報を有する第２の情報とに基づいて、前記パラメータに対応する前記デバイスの消費電力値を示す追加項を抽出し、前記タスクの消費電力値を算出する算出式に前記追加項を追加する算出式生成工程と、
前記処理部が、前記算出式の前記追加項の値を算出し、前記タスクの消費電力値を算出するライブラリ生成工程と、
を有する電力ライブラリの生成方法。
【請求項２】
請求項１において、
前記算出式生成工程は、前記処理部が、前記第２の情報に基づいて、前記追加項に対応する前記デバイスの動作パターンを抽出し、さらに、
前記処理部が、前記ＡＰＩを呼び出すシナリオにしたがって前記タスクを実行し、前記追加項に対応する前記デバイスの動作履歴を生成するシミュレーション工程と、
前記処理部が、前記動作履歴に基づいて、前記動作パターンを含むように前記シナリオを修正するシナリオ修正工程と、を有し、
前記ライブラリ生成工程は、前記処理部が、前記修正したシナリオに基づいて、前記算出式の前記追加項の値を算出する、電力ライブラリの生成方法。
【請求項３】
請求項２において、
前記シナリオは、複数の前記タスクを実行させ、
前記ライブラリ生成工程は、前記処理部が、前記シナリオの消費電力値の実測値と、前記タスクごとの動作時間とに基づいて、前記タスクそれぞれの前記算出式の前記追加項の値を算出する、電力ライブラリの生成方法。
【請求項４】
請求項２または３において、
前記シナリオ修正工程では、前記処理部が、前記追加項に対応する前記デバイスの動作パターンと、前記動作履歴に基づく前記デバイスの動作パターンとの対応関係を表示する、電力ライブラリの生成方法。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記第１の情報は、前記ＡＰＩのパラメータの種別と、前記種別に応じて前記パラメータが参照する前記デバイスの情報との対応関係とを有し、前記種別はモード、アドレス、データのいずれかを有する、電力ライブラリの生成方法。
【請求項６】
請求項５において、
前記第２の情報は、前記種別、前記パラメータの値のいずれかと、前記デバイスの動作パターンとの対応関係を有し、前記種別はモード、アドレス、データのいずれかを有する、電力ライブラリの生成方法。
【請求項７】
請求項１乃至６のいずれかにおいて、
前記算出式の前記追加項の値は、単位時間当たりの消費電力値である、電力ライブラリの生成方法。
【請求項８】
請求項１乃至７のいずれかにおいて、
前記対象のハードウェアは、前記プロセッサと、メモリと、前記ハードウェアの専用回路とを有する、電力ライブラリの生成方法。
【請求項９】
対象のハードウェアに搭載された複数のデバイスに含まれるプロセッサが実行する、タスクを呼び出すＡＰＩ（Application Programming Interface）ごとに、前記ＡＰＩのパ
ラメータが参照する前記デバイスの情報を有する第１の情報と、前記デバイスの仕様情報を有する第２の情報とを記憶する記憶部と、
前記記憶部に記憶された前記第１の情報と前記第２の情報とに基づいて、前記パラメータに対応する前記デバイスの消費電力値を示す追加項を抽出し、前記タスクの消費電力値を算出する算出式に前記追加項を追加し、前記算出式の前記追加項の値を算出し、前記タスクの消費電力値を算出する処理部と、を有する電力ライブラリ生成装置。
【請求項１０】
対象のハードウェアに搭載された複数のデバイスに含まれるプロセッサが実行する、タスクを呼び出すＡＰＩ（Application Programming Interface）ごとに、前記ＡＰＩのパ
ラメータが参照する前記デバイスの情報を有する第１の情報と、前記デバイスの仕様情報を有する第２の情報とに基づいて、前記パラメータに対応する前記デバイスの消費電力値を示す追加項を抽出し、前記タスクの消費電力値を算出する算出式に前記追加項を追加し、
前記算出式の前記追加項の値を算出し、前記タスクの消費電力値を算出する、
処理をコンピュータに実行させる電力ライブラリの生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電力ライブラリの生成方法、電力ライブラリ生成装置、及び、電力ライブラリの生成プログラムに関する。
【背景技術】
【０００２】
ＳｏＣ（System-on-a-Chip：ＳＯＣ）等の半導体装置の設計の早期の段階で、消費電力値の見積もりが行われる。また、半導体装置の設計時に、半導体装置で実行されるタスクのＩＰ（Intellectual Property：ＩＰ）への割り当てや、タスクをハードウェアまたはソフトウェアのいずれかで実現するかの選択等の、アーキテクチャ探索が行われる。消費電力値を考慮した適切なアーキテクチャ探索を行うために、消費電力値の見積もり処理を行う。この消費電力値の見積り処理は、消費電力値を抽象化した消費電力モデル式を構成する、タスクごとの消費電力値を算出する。
【０００３】
消費電力値の見積もりについては、例えば、特許文献１〜３に記載される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−２２５１３３号公報
【特許文献２】特開平１１−２３２１４７号公報
【特許文献３】特開２００８−２０４３５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
消費電力値を見積もる、基本的な消費電力モデル式は提案されている。しかしながら、タスクの実行による消費電力値を見積もる場合における、タスクごとの消費電力モデル式を構成する項は、ユーザが、ハードウェアまたはソフトウェアの機能や仕様に基づいて抽出している。近年の半導体装置は様々な仕様を有する。したがって、ユーザが、各タスクについて、タスクの消費電力モデル式を構成する項を適切に選択することは容易ではない。このため、タスクの実行による半導体装置の消費電力値を正確に見積もることは容易ではなかった。
【０００６】
本発明は、タスクの実行による装置の消費電力値をより正確に算出する電力ライブラリの生成方法、電力ライブラリ生成装置、及び、電力ライブラリの生成プログラムを提供することにある。
【課題を解決するための手段】
【０００７】
第１の側面は、処理部が、対象のハードウェアに搭載された複数のデバイスに含まれるプロセッサが実行する、タスクを呼び出すＡＰＩ（Application Programming Interface：ＡＰＩ）ごとに、前記ＡＰＩのパラメータが参照する前記デバイスの情報を有する第１の情報と、前記デバイスの仕様情報を有する第２の情報とに基づいて、前記パラメータに対応する前記デバイスの消費電力値を示す追加項を抽出し、前記タスクの消費電力値を算出する算出式に前記追加項を追加する算出式生成工程と、前記処理部が、前記算出式の前記追加項の値を算出し、前記タスクの消費電力値を算出するライブラリ生成工程と、を有する。
【発明の効果】
【０００８】
第１の側面によれば、タスクの実行による装置の消費電力値をより正確に算出する。
【図面の簡単な説明】
【０００９】
【図１】本実施の形態例における電力ライブラリ生成装置のハードウェア構成を説明する図である。
【図２】図１に示す電力ライブラリ生成装置の電力の見積もり対象の半導体装置の一例を示す図である。
【図３】電力ライブラリ生成装置が生成する、タスク電力ライブラリテーブルの一例を示す図である。
【図４】タスク電力ライブラリテーブルの生成処理の概要を説明するフローチャート図である。
【図５】図１に示す電力ライブラリ生成装置のソフトウェアモジュール構成図である。
【図６】タスクＡＰＩ仕様ファイルの一例を説明する図である。
【図７】レジスタアドレス情報と、ヘッダーファイルとを例示する図である。
【図８】ハードウェア仕様ファイルの中のＩＰ仕様の一例を説明する図である。
【図９】ハードウェア仕様ファイルの中のメモリマップの一例を説明する図である。
【図１０】ハードウェア仕様ファイルの中のキャッシュ仕様及びメモリ仕様の一例を説明する図である。
【図１１】タスクＡＰＩ項追加モジュールの処理を説明するフローチャート図である。
【図１２】追加項に関連するハードウェア情報ファイルの生成処理の具体例を説明する図である。
【図１３】追加項に関連するハードウェア情報ファイルを例示する図である。
【図１４】シナリオ確認モジュールの処理を説明するフローチャート図である。
【図１５】シナリオ確認モジュールの処理の具体例を説明する図である。
【図１６】追加項に関連するハードウェア情報ファイルに基づくカバレッジ表の一例を説明する図である。
【発明を実施するための形態】
【００１０】
以下、図面にしたがって本発明の実施の形態を説明する。ただし、本発明の技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。
【００１１】
［電力ライブラリ生成装置の構成］
図１は、本実施の形態例における電力ライブラリ生成装置１０のハードウェア構成を説明する図である。電力ライブラリ生成装置１０は、ＣＰＵ（Central Processing Unit：ＣＰＵ）１０１、メモリ１０２、通信インタフェース部１０３、表示部１０５、入力部１０６、外部記憶装置１０７を有する。各部は、バス１０４を介して相互に接続する。
【００１２】
また、メモリ１０２は、ＲＡＭ（Random Access Memory：ＲＡＭ）２０１、不揮発性メモリ２０２を有する。不揮発性メモリ２０２は、ＨＤＤ（Hard disk drive：ＨＤＤ）、不揮発性半導体メモリ等で構成される。表示部１０５は、例えば、ディスプレイ等の表示画面を示し、入力部１０６は、例えば、キーボードやマウス等を示す。外部記憶装置１０７は、ＨＤＤ等の外付けの不揮発性メモリである。
【００１３】
ＣＰＵ１０１は、バス１０４を介してメモリ１０２等と接続すると共に、電力ライブラリ生成装置１０全体の制御を行う。通信インタフェース部１０３は、ネットワーク５０を介して、外部の通信機器と接続する。ＲＡＭ２０２は、ＣＰＵ１０１が処理を行うデータ等を記憶する。不揮発性メモリ２０２は、ＣＰＵ１０１が実行するＯＳ（Operating System：ＯＳ）のプログラムを格納する領域（図示せず）や、電力ライブラリ生成プログラムを格納する領域２１０を備える。
【００１４】
電力ライブラリ生成プログラム領域２１０に記憶された電力ライブラリ生成プログラム（以下、電力ライブラリ生成プログラム２１０と称する）は、ＣＰＵ１０１の実行によって、本実施の形態例における電力ライブラリの生成処理を実現する。本実施の形態例の電力ライブラリ生成プログラム２１０が生成する電力ライブラリは、見積もり対象の半導体装置上で実行される、タスクごとの消費電力値を有する。
【００１５】
［見積もり対象の半導体装置］
図２は、図１に示す電力ライブラリ生成装置１０が、消費電力値の見積もりの対象とする半導体装置２０の一例を示す図である。図２に示す半導体装置２０はＳＯＣ（System-on-a-Chip：ＳＯＣ）を示し、ＣＰＵ（Central Processing Unit：ＣＰＵ）２１、ＲＯＭ（Read Only Memory：ＲＯＭ）２２、ＳＲＡＭ（Static Random Access Memory：ＳＲＡＭ）２３、ＩＰ（Intellectual Property core：ＩＰ）２４、２５、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory：ＳＤＲＡＭ）インタフェース部２６、周辺回路（Ｐｅｒｉｐｈｅｒａｌｓという）２７を有する。また、バス３０は、各部を相互に接続する。
【００１６】
ＣＰＵ２１は、ＣＰＵコア３１、キャッシュメモリ３２を有する。キャッシュメモリ３２は、例えば、Ｌ１（Ｌｅｖｅｌ１）キャッシュである。なお、この例に限定されるものではなく、ＣＰＵ２１は複数のＣＰＵコア３１を有していてもよい。
【００１７】
ＲＯＭ２２は、例えば、ＢＩＯＳ（Basic Input/Output System：ＢＩＯＳ）やファームウェアを記憶する。ＳＲＡＭ２３は、例えば、ＣＰＵ２１が実行するＯＳやプログラムを格納する。ＩＰ２４、２５は、ＳＯＣの機能を決める専用の回路ブロックである。例えば、画像処理用のＳＯＣの場合、ＩＰ２４は、画像処理用の専用回路、即ち、ＧＰＵ（Graphics Processing Unit：ＧＰＵ）である。また、ＩＰ２５は、装置間のＤＭＡ（Direct Memory Access：ＤＭＡ）転送を制御する専用回路である。ＳＤＲＡＭインタフェース部２６は、半導体装置２０と接続する外部のＳＤＲＡＭ（不図示）と、バス３０との間のデータ及び信号の送受信を制御する。周辺回路（Ｐｅｒｉｐｈｅｒａｌｓ）２７は、タイマや通信インタフェース等の回路である。
【００１８】
ＣＰＵ２１は、ＯＳやライブラリ、ドライバ等のプログラムが含むアプリケーションプログラミングインタフェース（Application Programming Interface：ＡＰＩ）を呼び出すことによって、タスクの処理を実現する。ここで、ＡＰＩとは、ＯＳやアプリケーションプログラミングソフトが、他のアプリケーションプログラミングソフトに対し、共通で使える機能を提供するためのソフトウェアインターフェースを意味する。ＯＳやライブラリ、ドライバ等のプログラムは、例えば、半導体装置３０のＲＯＭ２２、ＳＲＡＭ２３、ＳＤＲＡＭ（不図示）等に記憶される。以下、タスクの実行を指示するＡＰＩを、タスクＡＰＩと称する。
【００１９】
ここで、タスクＡＰＩの例を説明する。本実施の形態例では、以下に示す、４つのタスクＡＰＩａｐｉ１〜ａｐｉ４を例示する。図２のＣＰＵ２１は、タスクＡＰＩａｐｉ１〜ａｐｉ４を呼び出すことによって、図２の半導体装置２０が搭載する各デバイス（ＣＰＵ２１、ＲＯＭ２２、ＩＰ２４、２５等）を使用した処理を実現する。
ａｐｉ１（）;
ａｐｉ２（ｍｏｄｅ）;
ａｐｉ３（ａｄｄｒ, ｄａｔａ）;
ａｐｉ４（ｍｏｄｅ, ａｄｄｒ, ｄａｔａ）;
タスクＡＰＩａｐｉ１〜ａｐｉ４は、パラメータの形態の代表的な事例である。つまり、タスクＡＰＩａｐｉ１〜ａｐｉ４は、パラメータを有しないタスクＡＰＩ、パラメータ「ｍｏｄｅ」にしたがって機能を指定するタスクＡＰＩ、パラメータ「ａｄｄｒ」「ｄａｔａ」にしたがってアドレス及びデータを指定するタスクＡＰＩ、パラメータ「ｍｏｄｅ」「ａｄｄｒ」「ｄａｔａ」の組み合わせを有するタスクＡＰＩを示す。なお、タスクＡＰＩは、タスクＡＰＩａｐｉ１〜ａｐｉ４以外のパラメータの形態を有していてもよい。ただし、タスクＡＰＩが他のパラメータの形態を有する場合であっても、タスクＡＰＩａｐｉ１〜ａｐｉ４の事例を適用することが可能である。
【００２０】
タスクＡＰＩａｐｉ１「ａｐｉ１（）;」は、タスク１を呼び出すタスクＡＰＩである。タスクＡＰＩａｐｉ１は、パラメータを有していない。したがって、タスクＡＰＩａｐｉ１を実行する毎に、半導体装置２０は同様の処理を行う。
【００２１】
タスクＡＰＩａｐｉ２「ａｐｉ２（ｍｏｄｅ）;」は、タスク２を呼び出すタスクＡＰＩである。タスクＡＰＩａｐｉ２は、パラメータ「ｍｏｄｅ」を有する。パラメータ「ｍｏｄｅ」は、例えば、動作モードを指定するパラメータである。図２の半導体装置２０は、例えば、パラメータ「ｍｏｄｅ」が値「ａ」を有する場合には第１の機能の処理を、パラメータ「ｍｏｄｅ」が値「ｂ」を有する場合には第２の機能の処理を行う。
【００２２】
タスクＡＰＩａｐｉ３「ａｐｉ３（ａｄｄｒ, ｄａｔａ）;」は、タスク３を呼び出すタスクＡＰＩである。タスクＡＰＩａｐｉ３は、２つのパラメータ「ａｄｄｒ」「ｄａｔａ」を有する。パラメータ「ａｄｄｒ」は、タスクがアクセスするデバイスのアドレスを示し、図２の半導体装置２０が搭載するデバイス、及び、ＳＤＲＡＭのいずれかのアドレスを示す。また、パラメータ「ｄａｔａ」は、タスクがメモリ等のデバイスに書き込むデータを示す。
【００２３】
同様にして、タスクＡＰＩａｐｉ４「ａｐｉ４（ｍｏｄｅ, ａｄｄｒ, ｄａｔａ）;」は、タスク４を呼び出すタスクＡＰＩである。タスクＡＰＩａｐｉ４は、３つのパラメータ「ｍｏｄｅ」「ａｄｄｒ」「ｄａｔａ」を有する。それぞれのパラメータは、タスクＡＰＩａｐｉ２、ａｐｉ３で前述したとおりである。
【００２４】
［タスク電力ライブラリテーブル］
図３は、図１に示す電力ライブラリ生成装置１０が生成する、タスク電力ライブラリテーブルＬＤの一例を示す図である。図３のタスク電力ライブラリテーブルＬＤは、図２に示す半導体装置２０の仕様に基づいて見積もった、タスクごとの単位時間当たりの消費電力値を有する。図３の例において、タスクＡＰＩａｐｉ１によって呼び出される、タスク１の単位時間当たりの消費電力値は１００ｍＷである。また、タスクＡＰＩａｐｉ２によって呼び出される、単位時間当たりのタスク２の消費電力値は５０ｍＷである。また、タスクＡＰＩａｐｉ３によって呼び出される、単位時間当たりのタスク３の消費電力値は２００ｍＷであって、タスクＡＰＩａｐｉ４によって呼び出される、単位時間当たりのタスク４の消費電力値は１５０ｍＷである。
【００２５】
次に、図３に示すような、タスク電力ライブラリテーブルＬＤの生成処理の概要を説明する。
【００２６】
図４は、タスク電力ライブラリテーブルＬＤの生成処理の概要を説明するフローチャート図である。まず、シミュレータが、シナリオにしたがって、タスクをシミュレート実行する（Ｓ１）。シナリオは、１つまたは複数のタスクＡＰＩ（例えば、ａｐｉ１〜ａｐｉ４）を呼び出すプログラムである。シミュレータは、例えば、見積もり対象の半導体装置２０と同様のハードウェア構成を有する半導体装置（以下、実機と称する）や、ＥＳＬ（Electronic System Level：ＥＳＬ）シミュレータ等である。
【００２７】
シミュレータは、シナリオに１つまたは複数のタスクＡＰＩを呼び出させ、シミュレートの結果として、時間に応じた、各タスクの実行履歴を有するタスク実行情報ファイルＤｔを生成する。また、シナリオの実行時に消費電力値が計測され、消費電力データファイルＤｄが生成される。タスク実行情報ファイルＤｔ及び消費電力データファイルＤｄは、例えば、電力ライブラリ生成装置１０の外部記憶装置１０７（図１）に記憶される。
【００２８】
次に、電力ライブラリ生成装置１０は、ベース消費電力モデル式に基づいて、タスクごとの消費電力値の見積もり値を算出する（Ｓ２）。具体的に、電力ライブラリ生成装置１０は、ベース消費電力モデル式と、タスク実行情報ファイルＤｔ及び消費電力データファイルＤｄとに基づいて、回帰分析等にしたがって、各タスクの消費電力値を算出する。ベース消費電力モデル式は、例えば、次の数式１で示される数式である。
Ｐｉ＝ｐ０+Σｊ∈Ｔａｓｋｓ ｐｊ×Ｔｉ,ｊ／Ｔｉ（ｉ∈Ｓｃｅｎａｒｉｏｓ）…式１
式１のベース消費電力モデル式は、見積もり対象の半導体装置２０で動作する、シナリオｉの実行時の複数のタスクによる平均の、単位時間当たりの消費電力値Ｐｉを算出する式である。電力ライブラリ生成装置１０は、式１に示すベース消費電力モデル式の係数である、タスクｊの単位時間当たりの消費電力値ｐｊを算出する。そして、電力ライブラリ生成装置１０は、式１に示すベース消費電力モデル式に、算出した、タスクｊの単位時間当たりの消費電力値ｐｊを代入することにより、見積もり対象の半導体装置２０で一連のタスクが実行された場合における、単位時間当たりの平均の消費電力値を算出する。
【００２９】
工程Ｓ２では、電力ライブラリ生成装置１０は、タスク実行情報ファイルＤｔ及び消費電力データファイルＤｄに基づいて取得した値をベース消費電力モデル式（式１）に代入し、回帰分析等の方法にしたがって、式１の係数であるタスクの単位時間当たりの消費電力値ｐｊを算出する。
【００３０】
式１における、値Ｔｉ,ｊは、シナリオｉ実行時のタスクｊの動作時間を示す。また、値Ｔｉは、シナリオｉの合計の実行時間を示す。また、値ｐ０は、定数項であって、タスク非動作時の消費電力値を示す。集合Ｔａｓｋｓは、タスクｊを含むタスクの集合を示し、集合Ｓｃｅｎａｒｉｏｓは、シナリオｉを含むシナリオの集合を示す。シナリオｉは、タスクｊを含む、１つまたは複数のタスクを実行させる。つまり、式１は、タスクｊの単位時間当たりの消費電力値ｐｊに、シナリオｉの全実行時間Ｔｉにおけるタスクｊの動作時間Ｔｉ,ｊの割合を乗じた値を、複数のタスク分、累計し、タスク非動作時の消費電力値ｐ０を加算して、シナリオｉの実行時の平均の、単位時間当たりの消費電力値Ｐｉを算出する式である。
【００３１】
電力ライブラリ生成装置１０は、タスク実行情報ファイルＤｔに基づいて、シナリオｉの合計の動作時間Ｔｉ、及び、シナリオｉ動作時のタスクｊの動作時間Ｔｉ,ｊを取得する。また、電力ライブラリ生成装置１０は、消費電力データファイルＤｄに基づいて、シナリオｉ動作時の平均消費電力値Ｐｉを取得する。
【００３２】
次に、電力ライブラリ生成装置１０は、工程Ｓ２で算出した各タスクの単位時間当たりの消費電力値ｐｊに基づいて、タスク電力ライブラリテーブルＬＤを生成し、外部記憶装置１０７に記憶する（Ｓ３）。即ち、電力ライブラリ生成装置１０は、図３に示すような、タスク電力ライブラリテーブルＬＤを生成する。
【００３３】
前述したとおり、電力ライブラリ生成装置１０は、各タスクの単位時間当たりの消費電力値ｐｊを、ベース消費電力モデル式（式１）に代入し、見積もり対象の半導体装置２０上で一連のタスクが実行された場合における、単位時間当たりの平均の消費電力値を見積もる。例えば、図２の半導体装置２０上で、タスク１を「１０ｍｓ」、タスク２を「３００ｍｓ」、タスク３を「１５０ｍｓ」実行する場合を例示する。図３のタスク電力ライブラリテーブルＬＤによると、タスク１の消費電力値ｐ１は１００ｍＷ、タスク２の消費電力値ｐ２は５０ｍＷ、タスク３の消費電力値ｐ３は２００ｍＷである。したがって、タスク１〜３実行時の平均の消費電力値Ｐｉは、式「｛１００ｍＷ（ｐ１）×１０ｍｓ＋２００ｍＷ（ｐ２）×３００ｍｓ＋５０ｍＷ（ｐ３）×１５０ｍｓ｝／４６０ｍｓ（全実行時間）」にしたがって、算出可能である。これにより、電力ライブラリ生成装置１０は、一連のタスクの実行時の、単位時間当たりの平均の消費電力値を見積もることができる。
【００３４】
一連のタスクの実行時の、単位時間当たりの平均の消費電力値は、タスク電力ライブラリテーブルＬＤの精度が高いことにより、より正確に算出可能になる。消費電力値を正確に見積もるために、ベース消費電力モデル式（式１）における、タスクごとの、単位時間当たりの消費電力値ｐｊを適切に算出することが求められる。ただし、見積もり対象の半導体装置２０（図２）は、様々な仕様を有する。したがって、ユーザが、見積もり対象の半導体装置２０の仕様に基づいて、単位時間当たりの消費電力値を算出する対象のタスクを抽出することは容易ではない。
【００３５】
また、タスクごとの、単位時間当たりの消費電力値ｐｊをより正確に算出するために、タスクごとの消費電力値ｐｊを細分化し、１つまたは複数の項を有する消費電力モデル式が生成される。タスクごとの、単位時間当たりの消費電力値ｐｊを細分化した消費電力モデル式を構成する各項を、追加項と称する。しかしながら、ユーザが、タスクごとに、消費電力モデル式を構成する追加項を選択することは容易ではない。
【００３６】
したがって、本実施の形態例における電力ライブラリ生成装置１０は、タスクＡＰＩのパラメータが参照するデバイスの情報を有する、タスクＡＰＩ仕様ファイルと、デバイスの仕様情報を有するハードウェア仕様ファイルとに基づいて、タスクごとの単位時間当たりの消費電力値ｐｊを細分化した、消費電力モデル式を構成する追加項を抽出する。そして、電力ライブラリ生成装置１０は、追加項を有する消費電力モデル式を生成する。また、電力ライブラリ生成装置１０は、タスクごとの消費電力モデル式を構成する、１つまたは複数の追加項の係数（単位時間当たりの消費電力）に基づいて、タスクごとの単位時間当たりの消費電力値ｐｊを算出する。
【００３７】
これにより、本実施の形態例における電力ライブラリ生成装置１０は、タスクＡＰＩ仕様ファイルと、ハードウェア仕様ファイルとに基づいて、消費電力値を算出する対象のタスクを抽出することができる。また、電力ライブラリ生成装置１０は、タスクごとの単位時間当たりの消費電力値ｐｊを細分化した消費電力モデル式を構成する、１つまたは複数の追加項を抽出することができる。これにより、電力ライブラリ生成装置１０は、タスクの消費電力モデル式における有効な項を、正確に抽出することができる。したがって、電力ライブラリ生成装置１０は、消費電力モデル式を構成する追加項の係数を算出することにより、タスクごとの、単位時間当たりの消費電力値ｐｊをより正確に算出することができる。
【００３８】
また、本実施の形態例における電力ライブラリ生成装置１０は、見積もり対象の半導体装置の設計の早期段階に取得可能な仕様情報を利用することにより、タスクの消費電力モデル式における有効な項を、正確に抽出することができる。したがって、電力ライブラリ生成装置１０は、見積もり対象の半導体装置の設計の早期段階に、当該半導体装置で動作する各タスクの、単位時間当たりの消費電力値ｐｊを正確に見積もることができる。
【００３９】
［タスク電力ライブラリテーブルの生成処理］
次に、本実施の形態例の電力ライブラリ生成装置１０のソフトウェアモジュール構成図を説明する。
【００４０】
図５は、図１に示す電力ライブラリ生成装置１０のソフトウェアモジュール構成図である。図５に示すように、電力ライブラリ生成装置１０の電力ライブラリ生成プログラム２１０（図１）は、タスクＡＰＩ項追加モジュール２１１、シナリオ確認モジュール２１２、及び、係数取得モジュール２１３を有する。また、ベース消費電力モデル式Ｄ１、見積もり対象の半導体装置２０（図２）に対する、タスクＡＰＩ仕様ファイルＤ２及びハードウェア仕様ファイルＤ３、電力ライブラリ作成候補シナリオファイルＤ６は、例えば、電力ライブラリ生成装置１０の外部記憶装置１０７に記憶される。
【００４１】
タスクＡＰＩ項追加モジュール２１１は、タスクＡＰＩ仕様ファイルＤ２とハードウェア仕様ファイルＤ３とに基づいて、タスクの実行による、単位時間当たりの消費電力値ｐｊを細分化した消費電力モデル式を構成する追加項を抽出する。また、タスクＡＰＩ項追加モジュール２１１は、抽出した追加項に関連するハードウェア情報ファイルを生成し、シナリオ確認モジュール２１２に出力する。
【００４２】
また、タスクＡＰＩ項追加モジュール２１１は、ベース消費電力モデル式Ｄ１（式１）が有するタスクごとの、単位時間当たりの消費電力値ｐｊを、抽出した追加項を有する、タスクごとの消費電力モデル式に置き換える。これにより、タスクＡＰＩ項追加モジュール２１１は、タスクＡＰＩ込み消費電力モデル式を生成し、係数取得モジュール２１３に出力する。処理の詳細は、図１１〜図１３にしたがって、後述する。
【００４３】
ここで、タスクＡＰＩ仕様ファイルＤ２、及び、ハードウェア仕様ファイルＤ３を説明する。
【００４４】
図６は、タスクＡＰＩ仕様ファイルＤ２の一例を説明する図である。タスクＡＰＩ仕様ファイルＤ２は、ユーザが、見積もり対象のＳＯＣの設計時に作成した、ソフトウェアのための仕様である。タスクＡＰＩ仕様ファイルＤ２は、タスクＡＰＩそれぞれのパラメータに関する仕様の情報を有する。
【００４５】
図６に示す、タスクＡＰＩ仕様ファイルＤ２は、ＡＰＩのパラメータに対応して、電力タイプ、値、参照するハードウェア情報を有する。電力タイプは、パラメータの種別である。値は、パラメータに指定される値の範囲を示す。また、参照するハードウェア情報は、パラメータの指定にしたがって参照されるハードウェア（図２の半導体装置２０の各デバイス）の情報に対応する。
【００４６】
図６に示す、タスクＡＰＩ仕様ファイルＤ２は、タスクＡＰＩａｐｉ２、タスクＡＰＩａｐｉ３のＡＰＩの仕様情報を例示する。初めに、タスクＡＰＩａｐｉ２のタスクＡＰＩ仕様ファイルＤ２を説明する。
【００４７】
タスクＡＰＩａｐｉ２「ａｐｉ２（ｍｏｄｅ）;」は、パラメータ「ｍｏｄｅ」を有する。図６に示す、タスクＡＰＩ仕様ファイルＤ２によると、タスクＡＰＩａｐｉ２のパラメータ「ｍｏｄｅ」の電力タイプは、「モード」である。これは、パラメータの値により、機能が異なることを示している。そして、パラメータ「ｍｏｄｅ」に指定される値は、値「ａ」または値「ｂ」である。また、パラメータ「ｍｏｄｅ」が値「ａ」の場合、タスクＡＰＩａｐｉ２は、機能Ｘに関するハードウェア情報を参照する。一方、パラメータ「ｍｏｄｅ」が値「ｂ」の場合、タスクＡＰＩａｐｉ２は、機能Ｙに関するハードウェア情報を参照する。
【００４８】
次に、タスクＡＰＩａｐｉ３のタスクＡＰＩ仕様ファイルＤ２を説明する。タスクＡＰＩａｐｉ３「ａｐｉ３（ａｄｄｒ, ｄａｔａ）;」は、パラメータ「ａｄｄｒ」「ｄａｔａ」を有する。図６に示す、タスクＡＰＩ仕様ファイルＤ２によると、タスクＡＰＩａｐｉ３のパラメータ「ａｄｄｒ」の電力タイプは、「アドレス」である。これは、パラメータの値により、異なるデバイスが動作する可能性があることを示している。動作するデバイスが異なるかは、メモリマップ、キャッシュ仕様中のキャッシュ有効アドレス等のハードウェア情報に依存する。したがって、タスクＡＰＩａｐｉ３は、パラメータ「ａｄｄｒ」に対応して、メモリマップ、キャッシュ仕様中のキャッシュ有効アドレス等のハードウェア情報を参照する。また、タスクＡＰＩａｐｉ３のパラメータ「ｄａｔａ」の電力タイプは、「データ」である。これは、パラメータの値により、処理量が変化することを示している。したがって、タスクＡＰＩａｐｉ３は、パラメータ「ｄａｔａ」に対応して、メモリ仕様中のトランザクション量等のハードウェア情報を参照する。
【００４９】
なお、タスクＡＰＩ仕様ファイルＤ２は、ＡＰＩの仕様情報の付加情報として、図７に示すレジスタアドレス情報ＲＦをさらに有する。
【００５０】
図７は、レジスタアドレス情報ＲＦと、ヘッダーファイルＨＦとを例示する図である。図７に示すように、レジスタアドレス情報ＲＦは、プログラム上で記述されるレジスタの定義名と、レジスタの絶対アドレスとの対応情報を有する。具体的に、レジスタ「ＤＭＡＣ＿ＤＳＳＡ０」は、絶対アドレス「０ｘ６００４」に対応する。同様にして、レジスタ「ＤＭＡＣ＿ＤＤＳＡ１」は、絶対アドレス「０ｘ６００８」に対応する。レジスタアドレス情報ＲＦは、ヘッダーファイルＨＦで指定される記述に対応する。
【００５１】
タスクＡＰＩを呼び出すプログラムでは、レジスタのアドレスが、レジスタの定義名（例えば、ＤＭＡＣ＿ＤＳＳＡ０）にしたがって指定される。プログラムに指定されたレジスタの定義名は、プログラムのコンパイル時に、図７に示すヘッダーファイルＨＦにしたがって、絶対アドレス（例えば、０ｘ６００４）に変換される。このように、タスクＡＰＩのパラメータに、レジスタの定義名が指定されることがある。したがって、タスクＡＰＩ仕様ファイルＤ２は、レジスタアドレス情報ＲＦを含む。
【００５２】
図８〜図１０は、ハードウェア仕様ファイルＤ３（Ｄ３−１〜Ｄ３−３）の一例を説明する図である。ハードウェア仕様ファイルＤ３は、ユーザが、見積もり対象のＳＯＣの設計時に作成した、ハードウェアのための仕様である。図８〜図１０では、ハードウェア仕様ファイルＤ３が有する情報として、ＩＰ仕様Ｄ３−１、メモリマップＤ３−２、キャッシュ仕様及びメモリ仕様Ｄ３−３を説明する。
【００５３】
図８は、ハードウェア仕様ファイルＤ３の中の、ＩＰ仕様Ｄ３−１の一例を説明する図である。図８のＩＰ仕様Ｄ３−１は、見積もり対象の半導体装置２０が搭載するＩＰの機能情報を有する。具体的に、ＩＰ仕様Ｄ３−１は、機能とＩＰとの対応情報を有する。図８の例によると、機能Ｘに関連するＩＰは、図２の半導体装置２０のＩＰ（ＤＭＡＣ）２５である。また、機能Ｙに関連するＩＰは、図２の半導体装置２０のＣＰＵ２１である。
【００５４】
図９は、ハードウェア仕様ファイルＤ３の中の、メモリマップＤ３−２の一例を説明する図である。つまり、図９のメモリマップＤ３−２は、見積もり対象の半導体装置２０のメモリ空間のサイズ及びアドレスの情報を有する。
【００５５】
図９のメモリマップによると、開始アドレス「０ｘ００００」から終了アドレス「０ｘ１ＦＦＦ」のアドレスは、図２のＲＯＭ２２に対応する。また、開始アドレス「０ｘ２０００」から終了アドレス「０ｘ５ＦＦＦ」のアドレスは、図２のＳＲＡＭ２３に対応する。また、開始アドレス「０ｘ６０００」から終了アドレス「０ｘ６ＦＦＦ」のアドレスは、図２のＩＰ（ＤＭＡＣ）２５に対応する。そして、開始アドレス「０ｘ７０００」から終了アドレス「０ｘ７ＦＦＦ」のアドレスは、図２の周辺回路（Ｐｅｒｉｐｈｅｒａｌｓ）２７に、開始アドレス「０ｘ８０００」から終了アドレス「０ｘＦＦＦＦ」のアドレスは、図２の半導体装置２０が接続する外部のＳＤＲＡＭ（メインメモリ、図２に図示せず）に対応する。
【００５６】
図１０は、ハードウェア仕様ファイルＤ３の中の、キャッシュ仕様及びメモリ仕様Ｄ３−３の一例を説明する図である。図１０のキャッシュ仕様Ｄ３−３は、キャッシュ有効アドレス、キャッシュヒット率の情報を有する。図１０のキャッシュ仕様Ｄ３−３によると、図２の半導体装置２０におけるキャッシュ有効アドレスは、アドレス「０ｘ８０００〜０ｘＦＦＦＦ」を示す。したがって、メインメモリのメモリ空間「０ｘ８０００〜０ｘＦＦＦＦ」にアクセスする場合に、キャッシュメモリを使用することを示す。
【００５７】
また、図１０のキャッシュ仕様Ｄ３−３によると、図２の半導体装置２０におけるキャッシュヒット率は、９０％に指定される。したがって、キャッシュメモリを使用する場合、アクセス対象のデータがキャッシュメモリに記憶されている確率が９０％であることを示す。キャッシュヒット率は、例えば、顧客が指定する見積もり対象の半導体装置２０の仕様に基づいて、ＥＳＬシミュレーション等を行うことによって特定される。
【００５８】
また、図１０のメモリ仕様Ｄ３−３は、メモリ種類、トランザクション量の情報を有する。メモリ種類は、見積もり対象の半導体装置２０が備えるメモリの種類を示す。図１０のキャッシュ仕様Ｄ３−３によると、見積もり対象の半導体装置２０におけるメモリの種類は、「ＳＲＡＭ、ＳＤＲＡＭ、ＲＯＭ」である。また、トランザクション量は、見積もり対象の半導体装置２０の仕様に対応するトランザクション量である。図１０のキャッシュ仕様Ｄ３−３によると、見積もり対象の半導体装置２０におけるトランザクション量は、「５０ＭＢ／ｓ、１００ＭＢ／ｓ、２００ＭＢ／ｓ」である。トランザクション量は、例えば、顧客が指定する見積もり対象の半導体装置２０の仕様に基づいて、必要なメモリ帯域量に対応して設定される。
【００５９】
図５に戻り、シナリオ確認モジュール２１２を説明する。電力ライブラリ作成候補シナリオファイルＤ６は、予め、ユーザによって用意された、１つまたは複数のシナリオを有する。シナリオ確認モジュール２１２は、電力ライブラリ作成候補シナリオファイルＤ６のシナリオが、タスクＡＰＩ項追加モジュール２１１が生成した、追加項に関連するハードウェア情報を網羅するように、シナリオを修正する。シナリオ確認モジュール２１２は、修正したシナリオを、電力ライブラリ作成シナリオファイルＤ７として生成する。処理の詳細については、図１４〜図１６にしたがって後述する。
【００６０】
図５の係数取得モジュール２１３は、タスクＡＰＩ込み消費電力モデル式が有する、タスクごとの消費電力モデル式の追加項の係数を算出する。追加項の係数は、単位時間当たりの消費電力値である。
【００６１】
具体的に、係数取得モジュール２１３は、タスクＡＰＩ項追加モジュール２１１が生成したタスクＡＰＩ込み消費電力モデル式と、タスク実行情報ファイルＤｔ及び消費電力データファイルＤｄとに基づいて、回帰分析等の手法にしたがって、タスクごとの消費電力モデル式の追加項の係数を算出する。そして、係数取得モジュール２１３は、算出した、タスクごとの消費電力モデル式の追加項の係数に基づいて、タスクごとの単位時間当たりの消費電力値ｐｊを算出する。係数取得モジュール２１３は、タスクごとの単位時間当たりの消費電力値ｐｊを有する、タスク電力ライブラリテーブルＬＤを生成する。
【００６２】
タスク実行情報ファイルＤｔ及び消費電力データファイルＤｄは、シナリオ確認モジュール２１２によって生成された電力ライブラリ作成シナリオファイルＤ７を、実機５０がシミュレーションすることによって生成される。実機５０は、例えば、見積もり対象の半導体装置２０の試作製品等である。また、タスク実行情報ファイルＤｔは、電力ライブラリ作成シナリオファイルＤ７を実行した時の、時間に対応するタスクの実行履歴を有する。消費電力データファイルＤｄは、電力ライブラリ作成シナリオファイルＤ７を実行した時の消費電力値を有する。
【００６３】
次に、図５に示す、タスクＡＰＩ項追加モジュール２１１、及び、シナリオ確認モジュール２１２の処理の詳細を説明する。まず、タスクＡＰＩ項追加モジュール２１１の処理の詳細を説明する。
【００６４】
［タスクＡＰＩ項追加処理］
図１１は、タスクＡＰＩ項追加モジュール２１１の処理を説明するフローチャート図である。タスクＡＰＩ項追加モジュール２１１は、それぞれのタスクについて、タスクＡＰＩ仕様ファイルＤ２とハードウェア仕様ファイルＤ３とに基づいて、タスクの実行による、単位時間当たりの消費電力値ｐｊを細分化した消費電力モデル式を構成する追加項を抽出する（Ｓ１１）。
【００６５】
ここでは、追加項を抽出する処理を、前述した、タスクＡＰＩａｐｉ１〜ａｐｉ４にしたがって説明する。初めに、タスクＡＰＩａｐｉ１について説明する。タスクＡＰＩａｐｉ１「ａｐｉ１（）;」は、パラメータを有していない。即ち、タスク１が実行する度に、同一のデバイスが動作する。したがって、タスクＡＰＩ項追加モジュール２１１は、タスク１について追加項を抽出しない。
【００６６】
次に、タスクＡＰＩａｐｉ２「ａｐｉ２（ｍｏｄｅ）;」は、パラメータ「ｍｏｄｅ」を有する。図６のタスクＡＰＩ仕様ファイルＤ２によると、パラメータ「ｍｏｄｅ」は、機能Ｘに対応する値「ａ」、または機能Ｙに対応する値「ｂ」をとる。また、図８のＩＰ仕様Ｄ３−１によると、機能ＸはＩＰ（ＤＭＡＣ）２５（図２）に、機能ＹはＣＰＵ２１（図２）に対応する。即ち、タスク２では、パラメータ「ｍｏｄｅ」の値によって、異なるデバイスが動作する。したがって、タスクＡＰＩ項追加モジュール２１１は、追加項として、パラメータ「ｍｏｄｅ」が値「ａ」の場合の消費電力を示す追加項Ｐｔａｓｋａｐｉ２,ａ、パラメータ「ｍｏｄｅ」が値「ｂ」の場合の消費電力を示す追加項Ｐｔａｓｋａｐｉ２,ｂを抽出する。
【００６７】
タスクＡＰＩａｐｉ３「ａｐｉ３（ａｄｄｒ, ｄａｔａ）;」は、パラメータ「ａｄｄｒ」「ｄａｔａ」を有する。図６のタスクＡＰＩ仕様ファイルＤ２、及び、図９のメモリマップＤ３−２によると、パラメータ「ａｄｄｒ」は、図２の半導体装置２０が搭載する各デバイス、及び、ＳＤＲＡＭに対応する。また、図６のタスクＡＰＩ仕様ファイルＤ２、及び、図９のメモリ仕様Ｄ３−３によると、パラメータ「ｄａｔａ」は、複数のメモリ種類、及び、複数のトランザクション量のケースに対応する。
【００６８】
即ち、タスク３では、実行時のパラメータ「ａｄｄｒ」「ｄａｔａ」の値によって、異なるデバイスが動作するとともに、デバイスの処理量も異なる。したがって、タスクＡＰＩ項追加モジュール２１１は、パラメータ「ａｄｄｒ」に対応する追加項Ｐａｄｄｒａｐｉ３（ａｄｄｒ）、及び、パラメータ「ｄａｔａ」に対応する追加項Ｐｄａｔａａｐｉ３（ｄａｔａ）を抽出する。
【００６９】
タスクＡＰＩａｐｉ４「ａｐｉ４（ｍｏｄｅ, ａｄｄｒ, ｄａｔａ）;」は、パラメータ「ｍｏｄｅ」「ａｄｄｒ」「ｄａｔａ」を有する。各パラメータは、タスクＡＰＩａｐｉ２、タスクＡＰＩａｐｉ３の説明で述べたとおりである。他のタスクと同様にして、タスク４でも、実行時のパラメータ「ｍｏｄｅ」「ａｄｄｒ」「ｄａｔａ」の値によって、異なるデバイスが動作するとともに、デバイスの処理量も異なる。
【００７０】
したがって、タスクＡＰＩ項追加モジュール２１１は、パラメータ「ｍｏｄｅ」の値が「ａ」である場合の、パラメータ「ａｄｄｒ」に対応する追加項Ｐａｄｄｒａｐｉ４.ａ（ａｄｄｒ）を抽出する。同様にして、タスクＡＰＩ項追加モジュール２１１は、パラメータ「ｍｏｄｅ」の値が「ｂ」である場合の、パラメータ「ａｄｄｒ」に対応する追加項Ｐａｄｄｒａｐｉ４.ｂ（ａｄｄｒ）を抽出する。同様にして、タスクＡＰＩ項追加モジュール２１１は、パラメータ「ｍｏｄｅ」の値が「ａ」、「ｂ」それぞれである場合のパラメータ「ｄａｔａ」に対応する追加項Ｐｄａｔａａｐｉ４.ａ（ｄａｔａ）、Ｐｄａｔａａｐｉ４.ｂ（ｄａｔａ）を抽出する。
【００７１】
このように、タスクＡＰＩ項追加モジュール２１１は、タスクＡＰＩ仕様ファイルＤ２（図６）と、ハードウェア仕様ファイルＤ３−１〜Ｄ３−３（図８〜図１０）とに基づいて、タスクＡＰＩのパラメータに対応する、タスクの消費電力モデル式を構成する追加項を抽出する。タスクＡＰＩ仕様ファイルＤ２（図６）と、ハードウェア仕様ファイルＤ３−１〜Ｄ３−３（図８〜図１０）とは、見積もり対象の半導体装置２０の設計の早期段階に、予め用意される仕様情報である。したがって、タスクＡＰＩ項追加モジュール２１１は、設計の早期段階に取得可能な仕様情報を利用することにより、タスクの消費電力モデル式が有する項を、正確に抽出することができる。
【００７２】
また、図１１の工程Ｓ１１において、タスクＡＰＩ項追加モジュール２１１は、抽出した追加項に関連するハードウェア情報ファイルＤ５を生成する。タスクＡＰＩ項追加モジュール２１１は、タスクＡＰＩ仕様ファイルＤ２、ＲＦ（図７）と、ハードウェア仕様ファイルＤ３−１〜Ｄ３−３とに基づいて、追加項に関連するハードウェア情報ファイルＤ５を生成する。
【００７３】
図１２は、追加項に関連するハードウェア情報ファイルＤ５の生成処理の具体例を説明する図である。図１２のタスクＡＰＩ仕様ファイルＤ２は、図６に示すタスクＡＰＩ仕様ファイルＤ２と同一である。また、図１２のレジスタアドレス情報ＲＦは、図７に示すレジスタアドレス情報ＲＦと同一である。同様にして、図１２のハードウェア仕様ファイルＤ３（Ｄ３−１〜Ｄ３−３）は、図８〜図１０に示すハードウェア仕様ファイルＤ３（Ｄ３−１〜Ｄ３−３）と同一である。
【００７４】
まず、タスクＡＰＩａｐｉ２について説明する。前述したとおり、タスクＡＰＩ仕様ファイルＤ２によると、追加項に対応するパラメータ「ｍｏｄｅ」は、値「ａ」の場合に機能Ｘに対応し、値「ｂ」の場合に機能Ｙに対応する。また、ハードウェア仕様ファイルＤ３−１によると、機能Ｘは、見積もり対象の半導体装置２０（図２）のＩＰ（ＤＭＡＣ）２５に対応し、機能Ｙは、見積もり対象の半導体装置２０（図２）のＣＰＵ２１に対応する。したがって、図１２のハードウェア情報Ｄ５−１に示すように、タスクＡＰＩ項追加モジュール２１１は、パラメータ「ｍｏｄｅ」に対応して、値「ａ」に「ＩＰ（ＤＭＡＣ）」２５が対応し、値「ｂ」に「ＣＰＵ」２１が対応する旨の情報を生成する。
【００７５】
次に、タスクＡＰＩａｐｉ３について説明する。タスクＡＰＩ仕様ファイルＤ２によると、追加項に対応するパラメータ「ａｄｄｒ」は、メモリマップ、キャッシュ仕様、キャッシュ有効アドレスを参照する。一方、ハードウェア仕様ファイルＤ３のメモリマップＤ３−２は、アドレス範囲と、アクセス対象のデバイス（ＲＯＭ２２、ＳＲＡＭ２３、ＩＰ（ＤＭＡＣ）２５、周辺回路（Ｐｅｒｉｐｈｅｒａｌｓ）２７、ＳＤＲＡＭ）との対応関係を有する。したがって、図１２のハードウェア情報Ｄ５−２に示すように、タスクＡＰＩ項追加モジュール２１１は、パラメータ「ａｄｄｒ」に対応して、アドレス範囲と、アクセス対象のデバイスとの対応情報を生成する。
【００７６】
また、ハードウェア仕様ファイルＤ３のキャッシュ有効アドレスＤ３−３によると、キャッシュ有効アドレスは、アドレス「０ｘ８０００」からアドレス「０ｘＦＦＦＦ」に対応する。したがって、図１２のハードウェア情報Ｄ５−２に示すように、タスクＡＰＩ項追加モジュール２１１は、アドレス「０ｘ８０００〜０ｘＦＦＦＦ」に対応して、キャッシュ有効アドレスである旨の情報を追加する。
【００７７】
また、タスクＡＰＩ仕様ファイルＤ２のレジスタアドレス情報ＲＦによると、レジスタのアドレス「０ｘ６００４」「０ｘ６００８」は、ＩＰ（ＤＭＡＣ）２５のアドレス範囲に対応する。したがって、タスクＡＰＩ項追加モジュール２１１は、ＩＰ（ＤＭＡＣ）２４のアドレス範囲「０ｘ６０００〜０ｘ６ＦＦＦ」に、レジスタの定義名「ＤＭＡＣ＿ＤＳＳＡ０」「ＤＭＡＣ＿ＤＤＳＡ１」を追加する。
【００７８】
また、タスクＡＰＩ仕様ファイルＤ２によると、追加項に対応するパラメータ「ｄａｔａ」は、メモリ仕様、トランザクション量を参照する。一方、ハードウェア仕様ファイルＤ３のメモリ仕様Ｄ３−３によると、メモリ種類が「ＳＲＡＭ、ＳＤＲＡＭ、ＲＯＭ」であって、トランザクション量が「５０ＭＢ／ｓ、１００ＭＢ／ｓ、２００ＭＢ／ｓ」である。したがって、図１２のハードウェア情報Ｄ５−３に示すように、タスクＡＰＩ項追加モジュール２１１は、パラメータ「ｄａｔａ」に対応して、メモリ種類とトランザクション量の情報を生成する。他のタスクＡＰＩについても、同様である。
【００７９】
図１３は、追加項に関連するハードウェア情報ファイルＤ５を例示する図である。図１２で説明したように、追加項に関連するハードウェア情報ファイルＤ５は、それぞれのタスクＡＰＩについて、パラメータに対応する追加項のハードウェアの情報を有する。図１３に示すように、ハードウェアの情報は、例えば、パラメータに対応するデバイスパターン、及び、パラメータに対応するデバイスの動作パターンである。追加項に関連するハードウェア情報ファイルＤ５は、後述するシナリオ確認モジュール２１２によって参照される。
【００８０】
図１１のフローチャート図に戻り、タスクＡＰＩ項追加モジュール２１１は、抽出した追加項に基づいて、抽出した追加項を有する、タスクごとの消費電力モデル式を生成する。そして、タスクＡＰＩ項追加モジュール２１１は、ベース消費電力モデル式Ｄ１（式１）における各タスクの消費電力値ｐｊを、抽出した追加項を追加した消費電力モデル式に置き換える。これにより、タスクＡＰＩ項追加モジュール２１１は、タスクＡＰＩ込み消費電力モデル式Ｄ４を生成する（Ｓ１２）。
【００８１】
まず、各タスクの、抽出した追加項を有する消費電力モデル式を説明する。初めに、タスク１の消費電力モデル式を説明する。タスクＡＰＩａｐｉ１が呼び出す、タスク１の消費電力値Ｐａｐｉ１を算出する消費電力モデル式は、次の式２で示される。式２における変数Ｐ０は、タスクの実行によらず、発生する消費電力値を示す。変数Ｐｔａｓｋａｐｉ１は、タスク１の実行に伴う消費電力値を示し、ベース消費電力モデル式Ｄ１の消費電力値ｐ１に対応する。
Ｐａｐｉ１＝Ｐ０＋Ｐｔａｓｋａｐｉ１  …式２
次に、タスク２の消費電力モデル式を説明する。タスクＡＰＩａｐｉ２が呼び出す、タスク２の消費電力値Ｐａｐｉ２を算出する基本の消費電力モデル式は、次の式３で示される。変数Ｐ０は、式２と同様である。変数Ｐｔａｓｋａｐｉ２は、タスク２の実行に伴う消費電力値を示し、ベース消費電力モデル式Ｄ１の消費電力値ｐ２に対応する。
Ｐａｐｉ２＝Ｐ０＋Ｐｔａｓｋａｐｉ２  …式３
前述したとおり、タスクＡＰＩ項追加モジュール２１１は、タスク２について、パラメータ「ｍｏｄｅ」が値「ａ」の場合の消費電力を示す追加項Ｐｔａｓｋａｐｉ２,ａ、パラメータ「ｍｏｄｅ」が値「ｂ」の場合の消費電力を示す追加項Ｐｔａｓｋａｐｉ２,ｂを抽出する。したがって、タスクＡＰＩ項追加モジュール２１１は、抽出した項を式３に追加し、タスク２の消費電力モデル式として、式４を生成する。
ｉｆ（ｍｏｄｅ＝＝ａ）｛
Ｐａｐｉ２＝Ｐ０＋Ｐｔａｓｋａｐｉ２,ａ
｝ｅｌｓｅｉｆ（ｍｏｄｅ＝＝ｂ）｛
Ｐａｐｉ２＝Ｐ０＋Ｐｔａｓｋａｐｉ２,ｂ
｝  …式４
次に、タスク３の消費電力モデル式を説明する。タスクＡＰＩａｐｉ３が呼び出す、タスク３の消費電力値Ｐａｐｉ３を算出する基本の消費電力モデル式は、次の式５で示される。変数Ｐ０は、式２と同様である。変数Ｐｔａｓｋａｐｉ３は、タスク３の実行に伴う消費電力値を示し、ベース消費電力モデル式Ｄ１の消費電力値ｐ３に対応する。
Ｐａｐｉ３＝Ｐ０＋Ｐｔａｓｋａｐｉ３  …式５
前述したとおり、タスクＡＰＩ項追加モジュール２１１は、タスク３について、パラメータ「ａｄｄｒ」に対応する追加項Ｐａｄｄｒａｐｉ３（ａｄｄｒ）、及び、パラメータ「ｄａｔａ」に対応する追加項Ｐｄａｔａａｐｉ３（ｄａｔａ）を抽出する。したがって、タスクＡＰＩ項追加モジュール２１１は、抽出した項を式５に追加し、タスク３の消費電力モデル式として、式６を生成する。
Ｐａｐｉ３＝Ｐ０＋Ｐｔａｓｋａｐｉ３＋Ｐａｄｄｒａｐｉ３（ａｄｄｒ）＋Ｐｄａｔａａｐｉ３（ｄａｔａ）  …式６
次に、タスク４の消費電力モデル式を説明する。タスクＡＰＩａｐｉ４が呼び出す、タスク４の消費電力値Ｐａｐｉ４を算出する基本の消費電力モデル式は、次の式７で示される。変数Ｐ０は、式２と同様である。変数Ｐｔａｓｋａｐｉ４は、タスク４の実行に伴う消費電力値を示し、ベース消費電力モデル式Ｄ１の消費電力値ｐ４に対応する。
Ｐａｐｉ４＝Ｐ０＋Ｐｔａｓｋａｐｉ４  …式７
前述したとおり、タスクＡＰＩ項追加モジュール２１１は、タスク４について、パラメータ「ｍｏｄｅ」の値が「ａ」「ｂ」である場合の、パラメータ「ａｄｄｒ」に対応する追加項Ｐａｄｄｒａｐｉ４.ａ（ａｄｄｒ）、Ｐａｄｄｒａｐｉ４.ｂ（ａｄｄｒ）を抽出する。また、タスクＡＰＩ項追加モジュール２１１は、パラメータ「ｍｏｄｅ」の値が「ａ」、「ｂ」である場合のパラメータ「ｄａｔａ」に対応する追加項Ｐｄａｔａａｐｉ４.ａ（ｄａｔａ）、Ｐｄａｔａａｐｉ４.ｂ（ｄａｔａ）を抽出する。したがって、タスクＡＰＩ項追加モジュール２１１は、抽出した項を式７に追加し、タスク４の消費電力モデル式として、式８を生成する。
ｉｆ（ｍｏｄｅ＝＝ａ）｛
Ｐａｐｉ４＝Ｐ０＋Ｐｔａｓｋａｐｉ４,ａ＋Ｐａｄｄｒａｐｉ４,ａ（ａｄｄｒ）＋Ｐｄａｔａａｐｉ４,ａ（ｄａｔａ）
｝ｅｌｓｅｉｆ（ｍｏｄｅ＝＝ｂ）｛
Ｐａｐｉ４＝Ｐ０＋Ｐｔａｓｋａｐｉ４,ｂ＋Ｐａｄｄｒａｐｉ４,ｂ（ａｄｄｒ）＋Ｐｄａｔａａｐｉ４,ｂ（ｄａｔａ）
｝  …式８
このように、タスクＡＰＩ項追加モジュール２１１は、各タスクについて、タスクＡＰＩのパラメータに対応し、デバイスの消費電力値を示す追加項を有する消費電力モデル式（式４、６、８）を生成する。タスクＡＰＩ項追加モジュール２１１は、タスクＡＰＩのパラメータと、ハードウェアの仕様とに基づくことにより、パラメータの値に応じて動作が変動するデバイスの消費電力値を示す追加項を有する、各タスクの消費電力モデル式を生成することができる。
【００８２】
次に、タスクＡＰＩ項追加モジュール２１１は、ベース消費電力モデル式「Ｐｉ＝ｐ０+Σｊ∈Ｔａｓｋｓ ｐｊ×Ｔｉ,ｊ／Ｔｉ  （ｉ∈Ｓｃｅｎａｒｉｏｓ）」Ｄ１（式１）における各タスクの消費電力値ｐｊを、抽出した追加項を有する消費電力モデル式（式４、式６、式８）に置き換える。この置き換えにより、タスクＡＰＩ項追加モジュール２１１は、タスクＡＰＩ込み消費電力モデル式Ｄ４を生成する。
【００８３】
ベース消費電力モデル式Ｄ１におけるタスク２の消費電力値に関する部分式は、「ｐａｐｉ２×Ｔｉ, ａｐｉ２／Ｔｉ」に該当する。したがって、タスクＡＰＩ項追加モジュール２１１は、部分式「ｐａｐｉ２×Ｔｉ, ａｐｉ２／Ｔｉ」を、抽出した追加項を有する式４に基づく部分式「Σｋ∈｛ａ,ｂ｝ｐａｐｉ２，ｋ×Ｔｉ, ａｐｉ２．ｋ／Ｔｉ」に置き換える。
【００８４】
同様にして、タスクＡＰＩ項追加モジュール２１１は、タスク３の部分式「ｐａｐｉ３×Ｔｉ, ａｐｉ３／Ｔｉ」を、抽出した追加項を有する式６に基づく部分式「ｐａｐｉ３（ａｄｄｒ,ｄａｔａ）×Ｔｉ, ａｐｉ３／Ｔｉ」に置き換える。また、タスクＡＰＩ項追加モジュール２１１は、タスク４の部分式「ｐａｐｉ４×Ｔｉ, ａｐｉ４／Ｔｉ」を、抽出した追加項を有する式８に基づく部分式「Σｋ∈｛ａ,ｂ｝ｐａｐｉ４，ｋ（ａｄｄｒ,ｄａｔａ）×Ｔｉ, ａｐｉ４．ｋ／Ｔｉ」に置き換える。
【００８５】
このように、タスクＡＰＩ項追加モジュール２１１は、ベース消費電力モデル式Ｄ１に、各タスクの、抽出した追加項を有する消費電力モデル式を適用することによって、タスクＡＰＩ込み消費電力モデル式Ｄ４を生成する。したがって、タスクＡＰＩ項追加モジュール２１１は、タスクごとに、タスクＡＰＩのパラメータに応じて動作が異なるデバイスの消費電力値を示す追加項を有する、タスクＡＰＩ込み消費電力モデル式Ｄ４を生成できる。係数取得モジュール２１３は、タスクＡＰＩ込み消費電力モデル式Ｄ４に基づいて、係数を算出することによって、設計の早期段階で、各タスクの消費電力をより正確に見積もることができる。
【００８６】
［シナリオ確認処理］
次に、図５に示すシナリオ確認モジュール２１２の処理の詳細を説明する。タスクＡＰＩ込み消費電力モデル式Ｄ４の各項の係数は、シナリオ実行時の消費電力値と、各タスクの実行時間、及び、シナリオの実行時間に基づいて、回帰分析等にしたがって求められる。タスクＡＰＩ込み消費電力モデル式Ｄ４の各項の係数を正確に算出するためには、シナリオ実行時の消費電力値が、適切なシナリオにしたがって計測されていることが求められる。ただし、タスクのシナリオについても、ユーザによって予め用意される。ユーザが、適切なシナリオを用意することは容易ではない。
【００８７】
適切なシナリオとは、追加項に関連するハードウェア情報ファイルＤ５（図１３）、即ち、タスクＡＰＩのパラメータに対応する、デバイスの動作パターンが網羅されたシナリオである。例えば、追加項がパラメータ「ｍｏｄｅ」に対応する場合、適切なシナリオとは、パラメータ「ｍｏｄｅ」がとる値「ａ」「ｂ」に対応する各機能を実行するシナリオである。また、追加項がパラメータ「ａｄｄｒ」に対応する場合、適切なシナリオとは、パラメータ「ａｄｄｒ」に対応するすべてのデバイスにアクセスするシナリオである。また、追加項にパラメータ「ｄａｔａ」が対応する場合、適切なシナリオとは、パラメータ「ｄａｔａ」に対応するデバイスの動作パターン（アクセスするメモリ種類、トランザクション量）を行うシナリオである。
【００８８】
したがって、電力ライブラリ生成装置１０は、ハードウェア仕様ファイルに基づいて、追加項に対応するデバイスの動作パターンを抽出する。そして、電力ライブラリ生成装置１０は、シナリオを実行することによって生成されるデバイスの動作履歴に基づいて、抽出した動作パターンを含むようにシナリオを修正する。
【００８９】
図１４は、シナリオ確認モジュール２１２の処理を説明するフローチャート図である。実機５０等のシミュレータは、電力ライブラリ作成候補シナリオファイルＤ６が有するシナリオにしたがって、複数のタスクをシミュレーションする（Ｓ２１）。前述したとおり、電力ライブラリ作成候補シナリオファイルＤ６は、ユーザによって用意される。この例において、電力ライブラリ作成候補シナリオファイルＤ６は、シナリオＡ〜シナリオＣを含む。例えば、シナリオＡは、タスク１、タスク３（パラメータ「ａｄｄｒ」＝「０ｘ３０００」）、タスク２（パラメータ「ｍｏｄｅ」＝「ａ」）、タスク３（パラメータ「ａｄｄｒ」＝「０ｘ２０００」）の順に、タスクを実行させるシナリオである。
【００９０】
シミュレータは、シミュレーションの結果、プロファイルテーブルＰＦを生成する。プロファイルテーブルＰＦは、タスクトレースと、ハードウェアのプロファイル結果とを有する。タスクトレースは、例えば、シナリオによって実行された各タスクの実行時間と、タスク実行時のパラメータの値を有する。ハードウェアのプロファイル結果は、例えば、キャッシュヒット率やメモリに対するトランザクション量を有する。
【００９１】
シナリオ確認モジュール２１２は、例えば、電力ライブラリ作成候補シナリオファイルＤ６の各シナリオの実行によるプロファイルテーブルＰＦを、電力ライブラリ生成装置１０の表示部１０５（図１）に表示する。ユーザは、プロファイルテーブルＰＦに基づいて、電力ライブラリ作成候補シナリオファイルＤ６のシナリオが、追加項に関連するハードウェア情報ファイルＤ５のパターンを網羅するか否かを確認する（Ｓ２２）。
【００９２】
または、シナリオ確認モジュール２１２は、追加項に関連するハードウェア情報ファイルＤ５のパターンを有するカバレッジ表（図１６）を、表示部１０５（図１）に表示する。ユーザは、例えば、プロファイルテーブルＰＦに基づいて、電力ライブラリ作成候補シナリオファイルＤ６のシナリオによって実行されたパターンを確認し、表示されたカバレッジ表を更新する。ユーザは、カバレッジ表に基づいて、電力ライブラリ作成候補シナリオファイルＤ６のシナリオが、追加項に関連するハードウェア情報ファイルＤ５のパターンを網羅するか否かを確認する（Ｓ２２）。
【００９３】
追加項に関連するハードウェア情報ファイルＤ５のパターンを網羅していない場合（Ｓ２２のＮＯ）、電力ライブラリ作成候補シナリオファイルＤ６のシナリオは、追加項に関連するハードウェア情報ファイルＤ５のパターンを含むように修正される。そして、シミュレータは、修正した電力ライブラリ作成候補シナリオファイルＤ６にしたがって、再度、シミュレーションする（Ｓ２１）。シミュレーション後の処理は、工程Ｓ２２と同様である。
【００９４】
一方、追加項に関連するハードウェア情報ファイルＤ５のパターンを網羅している場合（Ｓ２２のＹＥＳ）、シナリオ確認モジュール２１２は、電力ライブラリ作成候補シナリオファイルＤ６を、電力ライブラリ作成シナリオファイルＤ７とし、処理を終了する。即ち、シナリオ確認モジュール２１２は、電力ライブラリ作成候補シナリオファイルＤ６のシナリオを、タスクＡＰＩ込み消費電力モデル式Ｄ４の項の係数を算出するためのシナリオとする。
【００９５】
そして、係数取得モジュール２１３は、図４で説明したとおり、電力ライブラリ作成シナリオファイルＤ７にしたがってシミュレーションを行うことによって計測した、シナリオ動作時の平均消費電力値Ｐｉと、タスクの実行時間Ｔｉ、Ｔｉ,ｊとを取得する。そして、係数取得モジュール２１３は、取得した情報と、タスクＡＰＩ込み消費電力モデル式Ｄ４とに基づいて、回帰分析等の方法にしたがって、タスクＡＰＩ込み消費電力モデル式Ｄ４における、各タスクの消費電力モデル式の追加項の係数を算出する。前述したとおり、追加項の係数は、単位時間当たりの消費電力値を示す。そして、係数取得モジュール２１３は、各タスクの消費電力モデル式が有する追加項の係数（単位時間当たりの消費電力値）に基づいて、タスクごとの単位時間当たりの消費電力値ｐｊを算出する。
【００９６】
図１５は、シナリオ確認モジュール２１２の処理の具体例を説明する図である。図１５は、電力ライブラリ作成候補シナリオファイルＤ６のうち、シナリオＡを実行した場合のプロファイルテーブルＰＦの一例を示す。図１５のプロファイルテーブルＰＦは、タスクトレースＰＦｔと、ハードウェアのプロファイル結果ＰＦｄとを有する。前述したとおり、シナリオＡは、タスク１、タスク３（パラメータ「ａｄｄｒ」＝「０ｘ３０００」）、タスク２（パラメータ「ｍｏｄｅ」＝「ａ」）、タスク３（パラメータ「ａｄｄｒ」＝「０ｘ２０００」）の順に、タスクを実行させるシナリオである。
【００９７】
図１５のタスクトレースＰＦｔは、シナリオＡ実行時の、各タスクの実行時間とタスク実行時のパラメータ情報とを有する。図１５のタスクトレースＰＦｔは、時間ｔ０〜ｔ１に、タスク１が実行された旨の情報を有する。また、タスクトレースＰＦｔは、時間ｔ１〜ｔ２に、タスク３がパラメータ「ａｄｄｒ」の値「０ｘ３０００」にしたがって、時間ｔ３〜ｔ４に、タスク３がパラメータ「ａｄｄｒ」の値「０ｘ２０００」にしたがって実行された旨の情報を有する。同様にして、時間ｔ２に、タスク２がパラメータ「ｍｏｄｅ」の値「ａ」にしたがって実行された旨の情報を有する。
【００９８】
また、図１５のハードウェアのプロファイル結果ＰＦｄは、シナリオＡ実行時の、時間に対応した、ＣＰＵのキャッシュヒット率、及び、ＳＲＡＭのトランザクション量、及び、ＳＤＲＡＭのトランザクション量の情報を有する。図１５のハードウェアのプロファイル結果ＰＦｄは、時間ｔ１〜ｔ２のＳＲＡＭ２３のトランザクション量が「５０ＭＢ／ｓ」であって、時間ｔ３〜ｔ４のＳＲＡＭ２３のトランザクション量が「１００ＭＢ／ｓ」である旨の情報を有する。
【００９９】
例えば、ユーザは、図１５のタスクトレースＰＦｔ及びハードウェアのプロファイル結果ＰＦｄに基づいて、タスク３がＳＲＡＭ２３（図２）にアクセスし、トランザクション量「５０ＭＢ／ｓ」、「１００ＭＢ／ｓ」に基づいて処理を実行したことを確認できる。また、ユーザは、タスク２がＩＰ（ＤＭＡＣ）２５の処理を実行したことを確認できる。これにより、シナリオＡが網羅している追加項に関連するハードウェア情報ファイルＤ５の動作パターンを確認することができる。
【０１００】
または、例えば、シナリオ確認モジュール２１２は、図１５のプロファイルテーブルＰＦに基づいて、電力ライブラリ作成候補シナリオファイルＤ６のシナリオＡ〜Ｃによる、追加項に関連するハードウェア情報ファイルＤ５（図１３）のパターンの網羅状態を示すカバレッジ表（図１６）を表示する。
【０１０１】
図１６は、追加項に関連するハードウェア情報ファイルＤ５に基づくカバレッジ表ＣＶの一例を説明する図である。ユーザは、カバレッジ表ＣＶを参照することによって、電力ライブラリ作成候補シナリオファイルＤ６が含んでいない動作ケースを容易に検出することができる。
【０１０２】
図１５に示すタスクトレースＰＦｔに基づくと、シナリオＡは、パラメータ「ａｄｄｒ」の値「０ｘ３０００」、及び、パラメータ「ａｄｄｒ」の値「０ｘ２０００」によるタスク３の実行パターンを有する。「ａｄｄｒ」の値「０ｘ２０００」「０ｘ３０００」は、ＳＲＡＭ２３（図２）のアドレスを示す。したがって、カバレッジ表ＣＶにおける、シナリオＡとＳＲＡＭ２３に対応する項目ｃ１がマークされる。
【０１０３】
また、図１５に示すプロファイルテーブルＰＦに基づくと、シナリオＡは、タスク３を、トランザクション量「５０ＭＢ／ｓ」、「１００ＭＢ／ｓ」に基づいて実行するパターンを有する。したがって、カバレッジ表ＣＶにおける、シナリオＡとトランザクション量「５０ＭＢ／ｓ」、「１００ＭＢ／ｓ」に対応する項目ｃ２がマークされる。同様にして、シナリオＡの実行時のプロファイルテーブルＰＦ（図１５）に基づいて、カバレッジ表ＣＶの各項目がマークされる。これにより、シナリオＡ〜Ｃの実行によって、追加項に関連するハードウェア情報ファイルＤ５の各パターンが網羅されているか否かが判定可能になる。
【０１０４】
図１６のカバレッジ表ＣＶによると、電力ライブラリ作成候補シナリオファイルＤ６のシナリオＡ〜Ｃは、パラメータ「ｍｏｄｅ」が値「ｂ」である動作項目ｃ３を網羅していない。したがって、ユーザは、電力ライブラリ作成候補シナリオファイルＤ６に、タスクＡＰＩａｐｉ２のパラメータ「ｍｏｄｅ」に値「ｂ」を指定して実行するパターンを追加する。これにより、追加項に関連するハードウェア情報ファイルＤ５の動作パターンを網羅したシナリオを有する、電力ライブラリ作成シナリオファイルＤ７が生成される。
【０１０５】
［変形例］
本実施の形態例では、ユーザが、プロファイルＰＦ（図１５）やカバレッジ表ＣＶ（図１６）に基づいて、電力ライブラリ作成候補シナリオファイルＤ６の各シナリオによる、追加項に関連するハードウェア情報ファイルＤ５の動作パターンの網羅状態を確認する。ただし、シナリオ確認モジュール２１２が、プロファイルＰＦを解析して、電力ライブラリ作成候補シナリオファイルＤ６のシナリオが含む動作パターンを自動的に検出してもよい。また、シナリオ確認モジュール２１２は、追加項に関連するハードウェア情報ファイルＤ５の動作パターンであって、プロファイルＰＦが含んでいない動作パターンを解析することによって、カバレッジ表ＣＶを生成し表示する。
【０１０６】
ユーザは、カバレッジ表ＣＶに基づいて、不足しているパターンを、電力ライブラリ作成候補シナリオファイルＤ６に追加することができる。これにより、シナリオ確認モジュール２１２は、より効率的に、電力ライブラリ作成シナリオファイルＤ７を生成することができる。
【０１０７】
なお、本実施の形態例では、電力ライブラリ生成装置１０が見積もりの対象とする半導体装置として、図２に示す半導体装置２０を例示した。ただし、この例に限定されるものではない。見積もり対象の半導体装置は、図２の半導体装置２０と異なるデバイスを有する半導体装置であってもよい。
【０１０８】
以上のように、本実施の形態例における電力ライブラリの生成方法は、対象のハードウェアに搭載された複数のデバイスに含まれるプロセッサが実行するタスクを呼び出すＡＰＩごとに、ＡＰＩのパラメータが参照するデバイスの情報を有する第１の情報と、デバイスの仕様情報を有する第２の情報とに基づいて、パラメータに対応するデバイスの消費電力値を示す追加項を抽出し、タスクの消費電力値を算出する算出式に追加項を追加する算出式生成工程を有する。また、電力ライブラリの生成方法は、算出式の追加項の値を算出し、タスクの消費電力値を算出する、ライブラリ生成工程を有する。
【０１０９】
これにより、本実施の形態例における電力ライブラリの生成方法によると、見積もり対象の半導体装置の設計の早期段階に用意される仕様情報を利用することにより、適切にタスクを抽出可能になるとともに、タスクの消費電力値の算出式を構成する有効な項を適切に抽出可能になる。したがって、タスクごとの消費電力値を正確に見積もる算出式を生成することが可能になる。したがって、見積もり対象の半導体装置の設計の早期段階で、タスクごとの消費電力値をより正確に見積もることが可能になる。
【０１１０】
また、本実施の形態例における電力ライブラリの生成方法によると、算出式生成工程は、第２の情報に基づいて、追加項に対応するデバイスの動作パターンを抽出する。そして、電力ライブラリの生成方法は、さらに、ＡＰＩを呼び出すシナリオにしたがってタスクを実行し、追加項に対応するデバイスの動作履歴を生成するシミュレーション工程と、動作履歴に基づいて、動作パターンを含むようにシナリオを修正するシナリオ修正工程と、を有する。また、ライブラリ生成工程は、修正したシナリオに基づいて、算出式の追加項の値を算出する。
【０１１１】
これにより、本実施の形態例における電力ライブラリの生成方法によると、見積もり対象の半導体装置の設計の早期段階に取得可能な仕様情報に基づいて、追加項に対応するデバイスの動作パターンを網羅する、適切なシナリオを生成することが可能になる。適切なシナリオに基づくことによって、追加項の係数をより正確に算出することが可能になる。したがって、タスクごとの消費電力値をより正確に見積もることが可能になる。
【０１１２】
また、本実施の形態例における電力ライブラリの生成方法によると、シナリオは、複数のタスクを実行させ、ライブラリ生成工程は、シナリオの消費電力値の実測値と、タスクごとの動作時間とに基づいて、タスクそれぞれの算出式の追加項の値を算出する。これにより、複数のタスクが一連に動作する半導体装置における、タスクごとの消費電力値をより正確に算出することが可能になる。
【０１１３】
また、本実施の形態例における電力ライブラリの生成方法によると、シナリオ修正工程では、追加項に対応するデバイスの動作パターンと、動作履歴に基づくデバイスの動作パターンとの対応関係を表示する。これにより、ユーザは、シナリオが含んでいない、追加項に対応するパターンを容易に検出することができる。したがって、追加項に対応するデバイスの動作パターンを網羅する適切なシナリオを生成することが可能になり、タスクごとの消費電力値をより正確に見積もることが可能になる。
【０１１４】
以上の実施の形態をまとめると、次の付記のとおりである。
【０１１５】
（付記１）
処理部が、対象のハードウェアに搭載された複数のデバイスに含まれるプロセッサが実行する、タスクを呼び出すＡＰＩ（Application Programming Interface）ごとに、前記ＡＰＩのパラメータが参照する前記デバイスの情報を有する第１の情報と、前記デバイスの仕様情報を有する第２の情報とに基づいて、前記パラメータに対応する前記デバイスの消費電力値を示す追加項を抽出し、前記タスクの消費電力値を算出する算出式に前記追加項を追加する算出式生成工程と、
前記処理部が、前記算出式の前記追加項の値を算出し、前記タスクの消費電力値を算出するライブラリ生成工程と、
を有する電力ライブラリの生成方法。
【０１１６】
（付記２）
付記１において、
前記算出式生成工程は、前記処理部が、前記第２の情報に基づいて、前記追加項に対応する前記デバイスの動作パターンを抽出し、さらに、
前記処理部が、前記ＡＰＩを呼び出すシナリオにしたがって前記タスクを実行し、前記追加項に対応する前記デバイスの動作履歴を生成するシミュレーション工程と、
前記処理部が、前記動作履歴に基づいて、前記動作パターンを含むように前記シナリオを修正するシナリオ修正工程と、を有し、
前記ライブラリ生成工程は、前記処理部が、前記修正したシナリオに基づいて、前記算出式の前記追加項の値を算出する、電力ライブラリの生成方法。
【０１１７】
（付記３）
付記２において、
前記シナリオは、複数の前記タスクを実行させ、
前記ライブラリ生成工程は、前記処理部が、前記シナリオの消費電力値の実測値と、前記タスクごとの動作時間とに基づいて、前記タスクそれぞれの前記算出式の前記追加項の値を算出する、電力ライブラリの生成方法。
【０１１８】
（付記４）
付記２または３において、
前記シナリオ修正工程では、前記処理部が、前記追加項に対応する前記デバイスの動作パターンと、前記動作履歴に基づく前記デバイスの動作パターンとの対応関係を表示する、電力ライブラリの生成方法。
【０１１９】
（付記５）
付記１乃至４のいずれかにおいて、
前記第１の情報は、前記ＡＰＩのパラメータの種別と、前記種別に応じて前記パラメータが参照する前記デバイスの情報との対応関係とを有し、前記種別はモード、アドレス、データのいずれかを有する、電力ライブラリの生成方法。
【０１２０】
（付記６）
付記１乃至５のいずれかにおいて、
前記第２の情報は、前記種別、前記パラメータの値のいずれかと、前記デバイスの動作パターンとの対応関係を有し、前記種別はモード、アドレス、データのいずれかを有する、電力ライブラリの生成方法。
【０１２１】
（付記７）
付記１乃至６のいずれかにおいて、
前記算出式の前記追加項の値は、単位時間当たりの消費電力値である、電力ライブラリの生成方法。
【０１２２】
（付記８）
付記１乃至７のいずれかにおいて、
前記対象のハードウェアは、前記プロセッサと、メモリと、前記ハードウェアの専用回路とを有する、電力ライブラリの生成方法。
【０１２３】
（付記９）
対象のハードウェアに搭載された複数のデバイスに含まれるプロセッサが実行する、タスクを呼び出すＡＰＩ（Application Programming Interface）ごとに、前記ＡＰＩのパラメータが参照する前記デバイスの情報を有する第１の情報と、前記デバイスの仕様情報を有する第２の情報とを記憶する記憶部と、
前記記憶部に記憶された前記第１の情報と前記２の情報とに基づいて、前記パラメータに対応する前記デバイスの消費電力値を示す追加項を抽出し、前記タスクの消費電力値を算出する算出式に前記追加項を追加し、前記算出式の前記追加項の値を算出し、前記タスクの消費電力値を算出する処理部と、を有する電力ライブラリ生成装置。
【０１２４】
（付記１０）
付記９において、
前記処理部は、前記第２の情報に基づいて、前記追加項に対応する前記デバイスの動作パターンを抽出し、前記ＡＰＩを呼び出すシナリオにしたがって前記タスクを実行し、前記追加項に対応する前記デバイスの動作履歴を生成し、前記動作履歴に基づいて前記動作パターンを含むように前記シナリオを修正し、前記修正したシナリオに基づいて前記算出式の前記追加項の値を算出する、電力ライブラリ生成装置。
【０１２５】
（付記１１）
付記１０において、
前記シナリオは、複数の前記タスクを実行させ、
前記処理部は、前記シナリオの消費電力値の実測値と、前記タスクごとの動作時間とに基づいて、前記タスクそれぞれの前記算出式の前記追加項の値を算出する、電力ライブラリ生成装置。
【０１２６】
（付記１２）
付記１０または１１において、
前記処理部は、前記追加項に対応する前記デバイスの動作パターンと、前記動作履歴に基づく前記デバイスの動作パターンとの対応関係を表示する、電力ライブラリ生成装置。
【０１２７】
（付記１３）
付記９乃至１２のいずれかにおいて、
前記第１の情報は、前記ＡＰＩのパラメータの種別と、前記種別に応じて前記パラメータが参照する前記デバイスの情報との対応関係とを有し、前記種別はモード、アドレス、データのいずれかを有する、電力ライブラリ生成装置。
【０１２８】
（付記１４）
付記９乃至１３のいずれかにおいて、
前記第２の情報は、前記種別、前記パラメータの値のいずれかと、前記デバイスの動作パターンとの対応関係を有し、前記種別はモード、アドレス、データのいずれかを有する、電力ライブラリ生成装置。
【０１２９】
（付記１５）
対象のハードウェアに搭載された複数のデバイスに含まれるプロセッサが実行する、タスクを呼び出すＡＰＩ（Application Programming Interface）ごとに、前記ＡＰＩのパラメータが参照する前記デバイスの情報を有する第１の情報と、前記デバイスの仕様情報を有する第２の情報とに基づいて、前記パラメータに対応する前記デバイスの消費電力値を示す追加項を抽出し、前記タスクの消費電力値を算出する算出式に前記追加項を追加し、
前記算出式の前記追加項の値を算出し、前記タスクの消費電力値を算出する、
処理をコンピュータに実行させる電力ライブラリの生成プログラム。
【０１３０】
（付記１６）
付記１５において、
前記第２の情報に基づいて、前記追加項に対応する前記デバイスの動作パターンを抽出し、
さらに、前記ＡＰＩを呼び出すシナリオにしたがって前記タスクを実行し、前記追加項に対応する前記デバイスの動作履歴を生成し、前記動作履歴に基づいて、前記動作パターンを含むように前記シナリオを修正し、
前記修正したシナリオに基づいて、前記算出式の前記追加項の値を算出する、電力ライブラリの生成プログラム。
【０１３１】
（付記１７）
付記１６において、
前記シナリオは、複数の前記タスクを実行させ、
前記シナリオの消費電力値の実測値と、前記タスクごとの動作時間とに基づいて、前記タスクそれぞれの前記算出式の前記追加項の値を算出する、電力ライブラリの生成プログラム。
【０１３２】
（付記１８）
付記１６または１７において、
前記追加項に対応する前記デバイスの動作パターンと、前記動作履歴に基づく前記デバイスの動作パターンとの対応関係を表示する、電力ライブラリの生成プログラム。
【０１３３】
（付記１９）
付記１５乃至１８のいずれかにおいて、
前記第１の情報は、前記ＡＰＩのパラメータの種別と、前記種別に応じて前記パラメータが参照する前記デバイスの情報との対応関係とを有し、前記種別はモード、アドレス、データのいずれかを有する、電力ライブラリの生成プログラム。
【０１３４】
（付記２０）
付記１５乃至１９のいずれかにおいて、
前記第２の情報は、前記種別、前記パラメータの値のいずれかと、前記デバイスの動作パターンとの対応関係を有し、前記種別はモード、アドレス、データのいずれかを有する、電力ライブラリの生成プログラム。
【符号の説明】
【０１３５】
１０：電力ライブラリ生成装置、１０１：ＣＰＵ、１０２：メモリ、１０３：通信インタフェース部、１０５：表示部、１０６：入力部、１０７：外部記憶装置、２０：半導体装置、２１：ＣＰＵ、２２：ＲＯＭ、２３：ＳＲＡＭ、２４：ＩＰ、２５：ＩＰ（ＤＭＡＣ）、２６：ＳＤＲＡＭインタフェース部、２７：周辺回路（Ｐｅｒｉｐｈｅｒａｌｓ）
【図１】
0006369158.tif 000002
【図２】
0006369158.tif 000003
【図３】
0006369158.tif 000004
【図４】
0006369158.tif 000005
【図５】
0006369158.tif 000006
【図６】
0006369158.tif 000007
【図７】
0006369158.tif 000008
【図８】
0006369158.tif 000009
【図９】
0006369158.tif 000010
【図１０】
0006369158.tif 000011
【図１１】
0006369158.tif 000012
【図１２】
0006369158.tif 000013
【図１３】
0006369158.tif 000014
【図１４】
0006369158.tif 000015
【図１５】
0006369158.tif 000016
【図１６】
0006369158.tif 000017