(57)【特許請求の範囲】
【請求項１】
システムの仕様からソフトウェアとハードウェアとを用いてそれぞれ実行される処理を仮決定したソフトウェアモデルとハードウェアモデルとに対して、シミュレーションを実行して性能を評価する性能評価シミュレーション装置であって、
前記ソフトウェアモデルを実機またはシミュレーションソフトウェアで実行して得られた実行履歴である実行ログに基づいて、前記ソフトウェアモデルで実行される処理の実行単位である基本処理単位に分割する基本処理単位分割手段と、
前記基本処理単位分割手段により分割された基本処理単位の処理量を、前記実行ログに保持される命令アドレス列の数またはデータアクセスのアドレス列の数から算出する処理量算出手段と、
前記処理量算出手段により算出された処理量と所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更する配置構成変更手段と、
前記配置構成変更手段によりハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行し、命令実行時間、命令フェッチ時間およびデータアクセス時間のいずれか１つまたは複数を計測して、性能評価の基となる統計情報を作成する統計情報作成手段と、
を備えたことを特徴とする性能評価シミュレーション装置。
【請求項２】
前記統計情報作成手段は、前記配置構成変更手段によりハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを所定の回数分実行し、命令実行時間、命令フェッチ時間およびデータアクセス時間のいずれか１つまたは複数を計測して、性能評価の基となる統計情報を作成することを特徴とする請求項１に記載の性能評価シミュレーション装置。
【請求項３】
前記基本処理単位は、当該基本処理単位を複数組み合わせたプロセス処理単位に応じて各基本処理単位固有の機能を記述する第一のブロックと、前記統計情報を収集するための処理を行う第二のブロックとから構成されるものであって、
前記統計情報作成手段は、前記配置構成変更手段によりハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とを複数組み合わせたプロセス処理において、前記第一のブロックにより各基本処理単位固有の機能が実行されて第二のブロックを呼出し、呼出された第二のブロックにおいて当該プロセス処理の実行によってシステムに負荷をかけて、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行して、命令実行時間、命令フェッチ時間およびデータアクセス時間のいずれか１つまたは複数を計測して、性能評価の基となる統計情報を作成することを特徴とする請求項１に記載の性能評価シミュレーション装置。
【請求項４】
前記性能評価シミュレーションを実行するターゲットプロセッサの性能評価結果の判定条件を設定する判定条件設定手段をさらに備え、
前記配置構成変更手段は、前記性能評価シミュレーション実行後に得られた統計情報が前記判定条件設定手段により設定される判定条件を満たさない場合に、所定の閾値を変更し、前記処理量算出手段により算出された処理量と当該変更された所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更し、
前記統計情報作成手段は、前記配置構成変更手段によりハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行して、命令実行時間、命令フェッチ時間およびデータアクセス時間のいずれか１つまたは複数を計測して、性能評価の基となる統計情報を作成することを特徴とする請求項１に記載の性能評価シミュレーション装置。
【請求項５】
前記性能評価シミュレーションを実行するターゲットプロセッサの性能評価結果の判定条件を設定する判定条件設定手段をさらに備え、
前記処理量算出手段は、前記基本処理単位分割手段により分割された基本処理単位を複数組み合わせたプロセス処理単位の処理量を、前記実行ログに保持される命令アドレス列の数またはデータアクセスのアドレス列の数から算出し、
前記配置構成変更手段は、前記性能評価シミュレーション実行後に得られた統計情報が前記判定条件設定手段により設定される判定条件を満たさない場合に、所定の閾値を変更し、前記処理量算出手段により算出された処理量と当該変更された所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更し、
前記統計情報作成手段は、前記配置構成変更手段によりハードウェアモデルに配置構成を変更されたプロセス処理単位と、ソフトウェアモデルに配置構成されているプロセス処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行して、命令実行時間、命令フェッチ時間およびデータアクセス時間のいずれか１つまたは複数を計測して、性能評価の基となる統計情報を作成することを特徴とする請求項１に記載の性能評価シミュレーション装置。
【請求項６】
前記配置構成変更手段において用いられる所定の閾値は、前記統計情報作成手段から得られる統計情報から算出する基本処理単位毎の性能評価結果と、当該基本処理単位の各実行ログのファイルサイズとに基づいて決定されるものであって、
前記配置構成変更手段は、前記処理量算出手段により算出された処理量と前記決定された所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更することを特徴とする請求項１に記載の性能評価シミュレーション装置。
【請求項７】
システムの仕様からソフトウェアとハードウェアとを用いてそれぞれ実行される処理を仮決定したソフトウェアモデルとハードウェアモデルとに対して、シミュレーションを実行して性能を評価する性能評価シミュレーション装置であって、
前記評価シミュレーション装置は、第一の装置と第二の装置とを有し、
前記第一の装置は、
前記ソフトウェアモデルを実機またはシミュレーションソフトウェアで実行して得られた実行履歴である実行ログに基づいて、前記ソフトウェアモデルで実行される処理の実行単位である基本処理単位に分割する基本処理単位分割手段と、
前記基本処理単位分割手段により分割された基本処理単位の処理量を、前記実行ログに保持される命令アドレス列の数またはデータアクセスのアドレス列の数から算出する処理量算出手段と、
前記処理量算出手段により算出された処理量と所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位を前記第二の装置に配置構成を変更する配置構成変更手段と、
ソフトウェアモデルに配置構成されている基本処理単位であって前記配置構成変更手段により当該所定の閾値を超えない処理量を有する基本処理単位に対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行し、前記システムの動作解析に必要なデータを計測して、性能評価の基となる統計情報を作成する第一の統計情報作成手段とを備え、
前記第二の装置は、
前記配置構成配置手段により配置構成を変更された基本処理単位に対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行し、前記システムの動作解析に必要なデータを計測して、性能評価の基となる統計情報を作成する第二の統計情報作成手段を
備えたことを特徴とする性能評価シミュレーション装置。
【請求項８】
システムの仕様からソフトウェアとハードウェアとを用いてそれぞれ実行される処理を仮決定したソフトウェアモデルとハードウェアモデルとに対して、シミュレーションを実行して性能を評価する性能評価シミュレーション装置が実行する性能評価シミュレーション方法であって、
前記ソフトウェアモデルを実機またはシミュレーションソフトウェアで実行して得られた実行履歴である実行ログに基づいて、前記ソフトウェアモデルで実行される処理の実行単位である基本処理単位に分割する基本処理単位分割工程と、
前記基本処理単位分割工程により分割された基本処理単位の処理量を、前記実行ログに保持される命令アドレス列の数またはデータアクセスのアドレス列の数から算出する処理量算出工程と、
前記処理量算出工程により算出された処理量と所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更する配置構成変更工程と、
前記配置構成変更工程によりハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行し、命令実行時間、命令フェッチ時間およびデータアクセス時間のいずれか１つまたは複数を計測して、性能評価の基となる統計情報を作成する統計情報作成工程と、
を含んだことを特徴とする性能評価シミュレーション方法。
【請求項９】
システムの仕様からソフトウェアとハードウェアとを用いてそれぞれ実行される処理を仮決定したソフトウェアモデルとハードウェアモデルとに対して、シミュレーションを実行して性能を評価する方法をコンピュータに実行させる性能評価シミュレーションプログラムであって、
前記ソフトウェアモデルを実機またはシミュレーションソフトウェアで実行して得られた実行履歴である実行ログを記憶部に記憶された情報に基づいて、前記ソフトウェアモデルで実行される処理の実行単位である基本処理単位に分割する基本処理単位分割手順と、
前記基本処理単位分割手順により分割された基本処理単位の処理量を、前記実行ログに保持される命令アドレス列の数またはデータアクセスのアドレス列の数から算出する処理量算出手順と、
前記処理量算出手順により算出された処理量と所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更する配置構成変更手順と、
前記配置構成変更手順によりハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令の取得時間を短くするための命令キャッシュとデータアクセスの時間を短くするためのデータキャッシュとを経由してバスを介するアクセスを実行する性能評価シミュレーションを実行し、命令実行時間、命令フェッチ時間およびデータアクセス時間のいずれか１つまたは複数を計測して、性能評価の基となる統計情報を作成する統計情報作成手順と、
をコンピュータに実行させることを特徴とする性能評価シミュレーションプログラム。
【請求項１０】
ソフトウェアモデルとハードウェアモデルとを受け付ける受付手段と、
前記受付手段により受け付けた前記ソフトウェアモデルを実機またはシミュレーションソフトウェアで実行して得られた実行履歴である実行ログに基づいて、前記ソフトウェアモデルで実行される処理の実行単位である基本処理単位に分割する基本処理単位分割手段と、
前記基本処理単位分割手段により分割された基本処理単位の処理量を、前記実行ログに保持される命令アドレス列の数またはデータアクセスのアドレス列の数から算出する処理量算出手段と、
前記処理量算出手段により算出された処理量と所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更する配置構成変更手段と、
前記配置構成変更手段によりハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行し、命令実行時間、命令フェッチ時間およびデータアクセス時間のいずれか１つまたは複数を計測して、性能評価の基となる統計情報を作成する統計情報作成手段と、
前記統計情報作成手段により作成された統計情報に基づいて、ソフトウェアとハードウェアとをＬＳＩに分割して搭載させるＬＳＩ生成手段と、
を備えたことを特徴とする電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、システムの仕様からソフトウェアとハードウェアとを用いてそれぞれ実行される処理を仮決定したソフトウェアモデルとハードウェアモデルとに対して、シミュレーションを実行して性能を評価する性能評価シミュレーション装置に関する。
【背景技術】
【０００２】
従来より、電子機器などに用いられるプロセッサ、バスおよびメモリなどは一つのＬＳＩ（Large  Scale  Integration）上に搭載され、これらを搭載するＬＳＩ（システムＬＳＩ）上において複数の処理が実行される。この一つのＬＳＩ上に複数の処理が搭載されることは、ＬＳＩの小型化、低コスト化および低消費電力化などを目的としているが、ＬＳＩのハードウェアやアーキテクチャなどを一度決定すると、容易に変更することが困難であるために、当該ＬＳＩの機能設計の難しさを増大させている。
【０００３】
特に、ＬＳＩの小型化や低コスト化などを推し進めるためには、ＬＳＩの処理負荷を軽減することが重要であり、当該ＬＳＩに搭載される各処理をソフトウェア（以下、「ＳＷ」と言う。）もしくはハードウェア（以下、「ＨＷ」と言う。）のそれぞれに最適に分割する必要がある。そこで、ＬＳＩ上で実行すべき機能をＳＷ／ＨＷのどちらで実現するかをＬＳＩ設計初期段階に仮決定してから、当該ＳＷ／ＨＷの性能検証を行っている。
【０００４】
上記した性能検証について、例えば、ソフトウェアは、Ｃ言語やアセンブリ言語などで記述し、性能検証の対象となるＬＳＩに搭載されたプロセッサであるターゲットプロセッサを含む実機モデルまたはターゲットプロセッサ向けのＩＳＳ（Instruction  Set  Simulator）上で実行することにより、当該ソフトウェアの動作をシミュレーションする。また、例えば、ハードウェアは、ハードウェアを記述するための言語であるＲＴＬ（Register  Transfer  Level）やＴＬＭ（Transaction  Level  Model）など、または、当該ＲＴＬおよびＴＬＭを混合させたもので記述することにより、当該ハードウェアの動作をシミュレーションする。
【０００５】
この性能検証において、システムＬＳＩ設計初期段階にＳＷ／ＨＷに分割する場合には、アプリケーションプログラムのソースコードやシステムＬＳＩの仕様などを人手によって解析して分割し、当該分割の妥当性を実行されるサイクル数などから検証していた。そして、最近では、この検証を自動で行う様々な技術が開示されている。
【０００６】
例えば、特許文献１（特開２００１−１４２９２７号公報）では、ある程度完成したソースコードを解析し、各処理部のクロックサイクル数から算出した処理量および関数の記述部から算出した消費電力などの値を判断材料として各処理部をＳＷ／ＨＷに分割する。
【０００７】
また、例えば、特許文献２（特開平１１−２５９５５２号公報）では、システムＬＳＩのアーキテクチャ記述を実行単位でモジュール化してＳＷ／ＨＷ分割を行い、ベンチマークプログラムに基づいてシミュレーションを実行して得られた各モジュールの実行時間を比較することにより、ＳＷ／ＨＷ分割の妥当性を判断する。
【０００８】
【特許文献１】特開２００１−１４２９２７号公報
【特許文献２】特開平１１−２５９５５２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記した従来の技術は、設計初期にＳＷ／ＨＷ分割を最適に行うことが困難であるとともに、ＳＷ／ＨＷ分割の妥当性を判断することができないという課題があった。
【００１０】
具体的には、特許文献１では、アプリケーションプログラムのソースコードがある程度完成しなければ解析することができないために、設計初期にＳＷ／ＨＷ分割を最適に行うことが困難である。また、特許文献２では、各実行単位の処理時間を比較するのみであり、システムのキャッシュ解析から得られるＣＰＵ（Central  Processing  Unit）の統計情報を検討することができないために、ＳＷ／ＨＷ分割の妥当性を判断することができない。
【００１１】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、ＬＳＩ上に搭載される処理をＳＷ／ＨＷに分割してシミュレーションを実行するのに際して、設計初期にＳＷ／ＨＷ分割を最適に行うことが可能であるとともに、ＳＷ／ＨＷ分割の妥当性を判断することが可能である性能評価シミュレーション装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するため、本願の開示する性能評価シミュレーション装置は、システムの仕様からソフトウェアとハードウェアとを用いてそれぞれ実行される処理を仮決定したソフトウェアモデルとハードウェアモデルとに対して、シミュレーションを実行して性能を評価する性能評価シミュレーション装置であって、前記ソフトウェアモデルを実機またはシミュレーションソフトウェアで実行して得られた実行履歴である実行ログに基づいて、前記ソフトウェアモデルで実行される処理の実行単位である基本処理単位に分割する基本処理単位分割手段と、前記基本処理単位分割手段により分割された基本処理単位の処理量を、前記実行ログに保持される命令アドレス列の数またはデータアクセスのアドレス列の数から算出する処理量算出手段と、前記処理量算出手段により算出された処理量と所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更する配置構成変更手段と、前記配置構成変更手段によりハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行し、前記システムの動作解析に必要なデータを計測して、性能評価の基となる統計情報を作成する統計情報作成手段と、を備えたことを要件とする。
【発明の効果】
【００１３】
本願の開示する性能評価シミュレーション装置によれば、設計初期にＳＷ／ＨＷ分割を最適に行なうという効果を奏するとともに、ＳＷ／ＨＷ分割の妥当性を判断するという効果を奏する。
【発明を実施するための最良の形態】
【００１４】
以下に添付図面を参照して、この発明に係る性能評価シミュレーション装置の実施例を詳細に説明する。なお、以下では、本発明に係る性能評価シミュレーション装置の概要および特徴、性能評価シミュレーション装置の構成および処理の流れを順に説明し、最後に本実施例による効果を説明する。
【実施例１】
【００１５】
［概要および特徴］
まず最初に、図１を用いて、実施例１に係る性能評価シミュレーション装置の概要および特徴を説明する。図１は、実施例１に係る性能評価シミュレーション装置の概要および特徴を示す図である。
【００１６】
この性能評価シミュレーション装置は、システムＬＳＩの仕様からソフトウェアモデルとハードウェアモデルとに分割して、分割されたソフトウェアモデルを実機上またはＩＳＳなどを利用したターゲットＣＰＵ上で実行した結果から得られる実行履歴である実行ログ（命令列）を入力として、性能評価シミュレーションを実行する。
【００１７】
このような構成において、性能評価シミュレーション装置は、システムの仕様からソフトウェアとハードウェアとでそれぞれ実行される処理を仮決定したソフトウェアモデルとハードウェアモデルとから構成され、当該ソフトウェアモデルとハードウェアモデルとの性能を評価することを概要とするものであり、特に、設計初期にＳＷ／ＨＷ分割を最適に行うことが可能であるとともに、ＳＷ／ＨＷ分割の妥当性を判断することが可能である点を主たる特徴とする。
【００１８】
この主たる特徴について具体的に説明すると、性能評価シミュレーション装置は、ソフトウェアモデルを実機またはシミュレーションソフトウェアで実行して得られた実行履歴である実行ログに基づいて、ソフトウェアモデルで実行される処理の実行単位である基本処理単位に分割する（図１の（１）参照）。
【００１９】
具体的に例を挙げると、性能評価シミュレーション装置は、システムＬＳＩの仕様からソフトウェアモデルとハードウェアモデルとに分割して、実機上またはＩＳＳなどを利用してターゲットＣＰＵ上で実行した結果から得られる実行履歴である実行ログが入力される。そして、性能評価シミュレーション装置は、入力された実行ログに基づいてソフトウェアモデルで実行される処理の実行単位である基本処理単位に分割する。この基本処理単位の分割において、例えば、通信処理ソフトウェアの場合は、周期処理のパターンからＯＳ（Operating  System）のタスク起動点を見つけてから、当該タスク単位で分割する。また、例えば、命令アドレス列からオブジェクトファイル間の処理の流れを追跡してから、タスクの区切りを見つけて分割する。
【００２０】
そして、性能評価シミュレーション装置は、分割された基本処理単位の処理量を、実行ログに保持される命令アドレス列の数またはデータアクセスのアドレス列の数から算出する（図１の（２）参照）。上記した例で具体的に例を挙げると、性能評価シミュレーション装置は、分割された基本処理単位の処理量を、実行ログが保持している処理実行時の分岐先アドレス情報である命令アドレス列の数やデータベースにアクセスするためのアクセス先アドレス情報であるデータアクセスのアドレス列の数などを基本処理単位の処理量として算出する。
【００２１】
続いて、性能評価シミュレーション装置は、算出された処理量と所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更する（図１の（３）参照）。上記した例で具体的に例を挙げると、性能評価シミュレーション装置は、算出された処理量と所定の閾値の処理量とを比較する。そして、性能評価シミュレーション装置は、比較した結果、所定の閾値の処理量を超える処理量である実行ログを有する基本処理単位を、ソフトウェア処理から直接バスに接続するようにハードウェア処理に配置構成を変更してハードウェア化する。
【００２２】
その後、性能評価シミュレーション装置は、ハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行し、システムの動作解析に必要なデータを計測して、性能評価の基となる統計情報を作成する（図１の（４）参照）。上記した例で具体的に例を挙げると、性能評価シミュレーション装置は、ハードウェアモデルに配置構成を変更してハードウェア化された基本処理単位と、ソフトウェアモデルに配置構成されているソフトウェアモデルとに対して、命令キャッシュ、データキャッシュを経由してバスアクセスを実行することにより性能評価シミュレーションを実行する。そして、性能評価シミュレーション装置は、命令実行時間、命令フェッチ時間およびデータアクセス時間を計測して、ＣＰＵ負荷率などの性能評価の基となる統計情報を作成する。この性能評価シミュレーション装置により作成された統計情報は、最適なＳＷ／ＨＷ分割の妥当性の判断に利用される。なお、性能評価シミュレーションは、複数回実行することにより高精度なシミュレーション結果を得られる。
【００２３】
このようなことから、実施例１に係る性能評価シミュレーション装置は、ソフトウェアモデルを実機またはＩＳＳなどを利用してターゲットＣＰＵ上で実行した結果から得られる実行ログに基づいて、性能評価シミュレーションを実行する場合に、実行ログに保持される情報に基づいて分割した基本処理単位の処理量が多い基本処理単位をハードウェア化してシミュレーションを実行することができる結果、上記した主たる特徴のごとく、設計初期にＳＷ／ＨＷ分割を最適に行うことが可能であるとともに、ＳＷ／ＨＷ分割の妥当性を判断することが可能である。
【００２４】
つまり、性能評価シミュレーション装置は、実行ログに保持される情報を用いて、各処理のＳＷ／ＨＷ分割を行うので、従来技術のようにＬＳＩ上に搭載される各処理の完成度に依存してＳＷ／ＨＷ分割を行うのと比較して、設計初期にＳＷ／ＨＷ分割を最適に行なうことが可能である。また、性能評価シミュレーション装置は、命令実行時間、命令フェッチ時間、データアクセス時間を計測しつつ、命令キャッシュ、データキャッシュを経由してバスアクセスを実行することによりシミュレーションを実行して、ＣＰＵ負荷率などの高精度な統計情報を出力するので、従来技術のように各実行単位の処理時間を比較するのと比較して、ＳＷ／ＨＷ分割の妥当性を判断することが可能である。
【００２５】
［実施例１に係る性能評価シミュレーション装置の構成］
次に、図２を用いて、実施例１に係る性能評価シミュレーション装置の構成を説明する。図２は、実施例１に係る性能評価シミュレーション装置の構成を示す図である。図２に示すように、性能評価シミュレーション装置１０は、機能モジュール１１−１〜１１−ｎ、スケジューラ部２０およびアクセス処理部２１から構成される。
【００２６】
また、性能評価シミュレーション装置１０は、外部ＲＡＭ上に存在する命令の取得時間を短くするための命令キャッシュであるＩ−ｃａｃｈｅ、または、データアクセスの時間を短くするためのデータキャッシュであるＤ−ｃａｃｈｅからバス３０を介して、性能評価シミュレーション装置１０の外部に接続されるＲＡＭである外部ＲＡＭと、外部Ｉ／Ｆや特定用途向け専用ハードウェアなどである周辺ＨＷとに接続されている。また、例えば、基本処理実行ログの入力を除く部分は、電子回路設計への使用を目的としたハードウェア記述言語の一つであるＳｙｓｔｅｍＣ言語などを用いたトランザクションレベルで構築され、各モジュール間の送受信は関数コールによってやり取りする。また、バス３０への接続は、モジュール共通のインタフェース（例えば、ＴＬＭ−Ｉ／Ｆなど）を利用することによって、ＲＴＬのような信号レベルの通信とは異なり、各モジュールの配置や組み換えなどを自由に行なう。
【００２７】
機能モジュール１１−１〜１１−ｎは、アクセス処理部２１により実行ログに基づいて分割されたソフトウェアモデルで実行される処理の実行単位である基本処理単位のことである。例えば、機能モジュール１１−１（Ｆｎ［１］）は、図３に示すように、アドレス「Ｅ０５０Ｄ６Ｅ０」と、命令／データアクセス「Ｉ／Ｄ」と、データアクセスの場合のロード（読み込み）／ストア（書き込み）「Ｒ／Ｗ」とを保持している。性能評価シミュレーション装置１０に入力される実行ログから取得されたこれらの情報は、アクセスするアドレスが分かると、各ＨＷのアドレスとデータとを格納しているＲＡＭからどのアドレスにアクセスしているかが分かる。そして、性能評価シミュレーション装置１０がこのアドレス情報からどのＨＷに命令またはデータアクセスしているかが分かり、データアクセスの場合には、ロードまたはストアしているかが分かる。また、実行ログ全体としては、「ｘｘｘ．ｏ」や「ｙｙｙ．ｏ」や「ｚｚｚ．ｏ」（オブジェクトファイル）間で各アドレスへアクセスしており、各オブジェクトファイル間のアクセスの始点から終点までを一つの区切りとすることで上記した基本処理単位（Ｆｎ［１］）として抜き出される。なお、図３は、実施例１に係る実行ログ全体の各アドレスへのアクセスと基本処理単位との関係を示す図である。
【００２８】
アクセス処理部２１は、ソフトウェアモデルを実機またはシミュレーションソフトウェアで実行して得られる実行履歴である実行ログに基づいて、ソフトウェアモデルで実行される処理の実行単位である基本処理単位に分割する。そして、アクセス処理部２１は、分割された基本処理単位の処理量を、実行ログに保持される命令アドレス列の数またはデータアクセスのアドレス列の数から算出する。続いて、アクセス処理部２１は、算出された処理量と所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更する。その後、アクセス処理部２１は、ハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行する。
【００２９】
具体的に例を挙げると、アクセス処理部２１は、実行ログに基づいてソフトウェアモデルで実行される処理の実行単位である基本処理単位に分割する。そして、アクセス処理部２１は、分割された基本処理単位の処理量を、実行ログが保持している処理実行時の分岐先アドレス情報である命令アドレス列の数やデータベースにアクセスするためのアクセス先アドレス情報であるデータアクセスのアドレス列の数などを基本処理単位の処理量として算出する。
【００３０】
続いて、アクセス処理部２１は、算出された処理量と所定の閾値の処理量とを比較して、所定の閾値の処理量を超える処理量である実行ログを有する基本処理単位を、ソフトウェア処理から直接バス３０に接続するようにハードウェア処理に配置構成を変更してハードウェア化する。その後、アクセス処理部２１は、スケジューラ部２０によりプロセス処理の依頼を受け付けると、ハードウェアモデルに配置構成を変更してハードウェア化された基本処理単位に対して、命令実行時間、命令フェッチ時間およびデータアクセス時間を計測しつつ、命令キャッシュ（Ｉ−ｃａｃｈｅ）、データキャッシュ（Ｄ−ｃａｃｈｅ）を経由してバスアクセスを実行することにより性能評価シミュレーションを実行する。
【００３１】
スケジューラ部２０は、アクセス処理部２１により実行されたシミュレーション処理から性能評価の基となる統計情報を作成する。上記した例で具体的に説明すると、スケジューラ部２０は、発生したイベントをトリガとして、対応する機能モジュール（基本処理単位）にプロセス処理を依頼する。そして、スケジューラ部２０は、アクセス処理部２１により実行されたシミュレーション結果から、ＣＰＵ負荷率などの性能評価の基となる統計情報を作成する。この統計情報は、例えば、図４に示すように、基本処理単位「Ｆｎ［１］」ごとに命令実行時間「１００ナノ秒」、命令フェッチ時間「３ナノ秒」、データアクセス時間「２ナノ秒」、ＣＰＵ負荷率「３０％」などの情報が格納されている。また、このアクセス処理部２１は、外部ＲＡＭや周辺ＨＷなどとバス３０を介して接続されるインタフェースのポートＩＤと、機能モジュール１１−１〜１１−ｎのブロックＩＤとを一元管理しており、アクセス処理部２１にプロセス処理を依頼する機能モジュールの順序とその配置とを把握している。なお、図４は、実施例１に係る統計情報の例を示す図である。
【００３２】
［ＬＳＩの開発フロー］
次に、図５を用いて、ＬＳＩの開発フローを説明する。図５は、ＬＳＩの開発フローを説明するための図である。なお、このＬＳＩは、実施例１に係る性能評価シミュレーション装置の処理を含むＬＳＩ全体の設計を行うものである。
【００３３】
図５に示すように、仕様が作成されると（ステップＳ６０１肯定）、作成された仕様からシステム要求を分析する（ステップＳ６０２）。そして、分析したシステム要求からアルゴリズムを検討する方式設計を行なって（ステップＳ６０３）、性能評価やＳＷ／ＨＷ分割の検討などによりアーキテクチャ設計を行なう（ステップＳ６０４）。続いて、ハードウェア部分においてＲＴＬの論理設計を行い（ステップＳ６０５）、当該ハードウェアの物理設計を行なう（ステップＳ６０６）。また、ソフトウェア部分においてソフトウェア開発を行う（ステップＳ６０７）。その後、ハードウェアとソフトウェアとを組み合わせて実機モデルを作成し（ステップＳ６０８）、製品を出荷することとなる（ステップＳ６０９）。
【００３４】
［実施例１に係る性能評価シミュレーション装置による処理］
次に、図６を用いて、実施例１に係る性能評価シミュレーション装置１０によるシミュレーション処理を説明する。図６は、実施例１に係る性能評価シミュレーション装置１０によるシミュレーション処理を示すフローチャートである。なお、図６において説明する処理は、図５で示したステップＳ６０４のアーキテクチャ設計の部分である。
【００３５】
図６に示すように、性能評価シミュレーション装置１０は、仕様が作成されると（ステップＳ１０１肯定）、ソフトウェアの処理とハードウェアの処理とに分割して（ステップＳ１０２）、ソフトウェアモデルである仮ソフトウェアと、ハードウェアモデルである動作モデルとを出力し（ステップＳ１０３およびステップＳ１０４）、出力した仮ソフトウェアを実機上またはＩＳＳなどを利用してターゲットＣＰＵ上で実行した結果から得られる実行履歴である実行ログが出力されると（ステップＳ１０５およびステップＳ１０６）、当該実行ログに基づいてソフトウェアモデルで実現される処理の実行単位である基本処理単位に分割する（ステップＳ１０７）。
【００３６】
そして、性能評価シミュレーション装置１０は、分割された基本処理単位の処理量を、実行ログが保持している処理実行時の分岐先アドレス情報である命令アドレス列の数やデータベースにアクセスするためのアクセス先アドレス情報であるデータアクセスのアドレス列の数などを基本処理単位の処理量として算出する（ステップＳ１０８）。
【００３７】
続いて、性能評価シミュレーション装置１０は、算出された処理量と所定の閾値の処理量とを比較する（ステップＳ１０９）。その後、性能評価シミュレーション装置１０は、比較した結果、所定の閾値の処理量を超える処理量である実行ログを有する基本処理単位を、ソフトウェア処理から直接バスに接続するようにハードウェア処理に配置構成を変更してハードウェア化する（ステップＳ１１０）。なお、性能評価シミュレーション装置１０は、基本処理単位をハードウェアに配置構成を変更する場合に、所定の閾値の処理量を超える基本処理単位に該当する機能モジュールを、ブロックＩＤを元に検索して当該機能モジュールの配置構成を変更する。つまり、性能評価シミュレーション装置１０は、ＣＰＵ内から直接バスに接続できるポートへ移動させることで、機能モジュールの作業をＣＰＵのソフトウェア処理からハードウェア化する。
【００３８】
そして、性能評価シミュレーション装置１０は、ハードウェアモデルに配置構成を変更してハードウェア化された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令実行時間、命令フェッチ時間およびデータアクセス時間を計測しつつ、命令キャッシュ、データキャッシュを経由してバスアクセスを実行することにより性能評価シミュレーションを実行する。続いて、性能評価シミュレーション装置１０は、命令実行時間、命令フェッチ時間、データアクセス時間からＣＰＵ負荷率などの性能評価の基となる統計情報を作成する（ステップＳ１１１）。
【００３９】
次に、図７を用いて、実施例１に係る性能評価シミュレーション装置１０によるＳＷ／ＨＷ分割処理について説明する。図７は、実施例１に係る性能評価シミュレーション装置１０によるＳＷ／ＨＷ分割処理について説明するための図である。
【００４０】
図７に示すように、性能評価シミュレーション装置１０は、ＳＷ／ＨＷの分割条件である基本処理単位に対する処理量の閾値（所定の閾値）を決定する（ステップＳ２０１）。そして、性能評価シミュレーション装置１０は、基本処理単位に分割した実行ログに保持されている命令アドレス列やデータアクセスのアドレス列の数などをカウントして、これらのカウント数のいずれか（または合計）から基本処理単位の処理量を算出する（ステップＳ２０２〜ステップＳ２０４）。
【００４１】
続いて、性能評価シミュレーション装置１０は、算出した処理量が所定の閾値を超える場合に（ステップＳ２０５肯定）、当該閾値を超える実行ログに対応する基本処理単位をブロックＩＤにより検索する（ステップＳ２０６）。その後、性能評価シミュレーション装置１０は、検索した基本処理単位を、直接バス接続可能なポートに割り当てるとともに、基本処理単位のハードウェアへの配置構成の変更にあわせてポートＩＤを変更する（ステップＳ２０７およびステップＳ２０８）。
【００４２】
そして、性能評価シミュレーション装置１０は、ハードウェア化された基本処理単位のキャッシュアクセスが不要になり、ＲＡＭに直接アクセスすることが必要になるが、実行ログも命令フェッチが不要になることから命令アドレス列を削除して、シミュレーション実行においてデータアクセスのみ抽出することとなる（ステップＳ２０９およびステップＳ２１０）。
【００４３】
［実施例１による効果］
このようにして、実施例１によれば、性能評価シミュレーション装置１０は、実行ログに保持される情報を用いて、各処理のＳＷ／ＨＷ分割を行うとともに、命令実行時間、命令フェッチ時間、データアクセス時間を計測しつつ、命令キャッシュ、データキャッシュを経由してバスアクセスを実行することによりシミュレーションを実行するので、設計初期にＳＷ／ＨＷ分割を最適に行なうことが可能であるとともに、ＳＷ／ＨＷ分割の妥当性を判断することが可能である。
【００４４】
例えば、性能評価シミュレーション装置１０は、実行ログに保持される命令アドレス列の数またはデータアクセスのアドレス列の数のいずれか、または合計により基本処理単位の処理量を算出して、当該処理量が所定の閾値を超える基本処理単位をハードウェアモデルに配置構成を変更する。そして、性能評価シミュレーション装置１０は、ハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行して、命令実行時間、命令フェッチ時間およびデータアクセス時間などの統計情報を作成する。この結果、性能評価シミュレーション装置１０は、設計初期にＳＷ／ＨＷ分割を最適に行なうことが可能であるとともに、ＳＷ／ＨＷ分割の妥当性を判断することが可能である。
【実施例２】
【００４５】
ところで、上記実施例１では、実行ログに基づいて分割される基本処理単位を一つの実行単位として構成される場合についてのハードウェア化について説明したが、本発明はこれに限定されるものではなく、当該基本処理単位を第一のブロックと第二のブロックとから構成してハードウェア化を検討することもできる。
【００４６】
そこで、以下の実施例２では、図８〜１２を用いて、実施例２に係る基本処理単位を第一のブロックと第二のブロックとから構成した場合のハードウェア化の詳細について説明する。また、図８は、ＣＰＵモデルが周期的にイベントを行なう際の時間とＣＰＵ処理量との関係を示す図であり、図９は、実施例２に係るＣＰＵ内の機能モジュールの一部をハードウェア化した場合のイベント処理を示す図であり、図１０は、実施例２に係るＵＭＬクラスの例を示す図であり、図１１は、実施例２に係るＳｙｓｔｅｍＣ言語による記述例を示す図であり、図１２は、実施例２に係るハードウェアモデルの抽象度とシミュレーション処理との関係を示す図である。なお、実施例２に係る性能評価シミュレーション装置１０の構成や機能などは、実施例１と同様であるためその説明を省略する。
【００４７】
［ＣＰＵモデルが周期的にイベントを行なう際の時間とＣＰＵ処理量との関係］
実施例２において、図８を用いて、ＣＰＵモデルが周期的にイベントを行なう際の時間とＣＰＵ処理量との関係を説明する。図８において、各基本処理単位は、基本処理単位を複数組み合わせたプロセス処理単位に応じて各基本処理単位固有の機能を記述するｗｈｉｔｅｂｏｘ部と、統計情報を収集するための処理を行うｂｌａｃｋｂｏｘ部とから構成される。また、プロセス処理とは、基本処理単位を複数組み合わせて実行する処理であり、イベントとは、基本処理単位のみの処理を含むプロセス処理の組み合わせからなるものである。なお、図８に示す図の縦軸を「ＣＰＵ処理量」、横軸を「時間」としてＣＰＵ処理量と時間との関係についても説明する。
【００４８】
図８に示すように、例えば、性能評価シミュレーション装置１０は、周期イベントＡが発生すると、当該イベントＡをトリガとして基本処理単位Ｆｎ［１］、Ｆｎ［２］を続けて呼び出す。そして、性能評価シミュレーション装置１０は、周期イベントＢが発生すると、当該イベントＢをトリガとして基本処理単位Ｆｎ［２］、Ｆｎ［３］、Ｆｎ［１］を続けて呼び出す。その後、性能評価シミュレーション装置１０は、周期イベントＣが発生すると、当該イベントＣをトリガとして基本処理単位Ｆｎ［１］を呼び出す。
【００４９】
この基本処理単位である機能モジュールは、ｗｈｉｔｅｂｏｘ部により各プロセス処理に応じてｂｌａｃｋｂｏｘ部の呼び出しが行なわれてから、ｂｌａｃｋｂｏｘ部により命令実行時間、命令フェッチ時間およびデータアクセス時間などの統計情報が収集される。また、基本処理の処理時間は、「ｗｈｉｔｅｂｏｘ＋ｂｌａｃｋｂｏｘ×呼び出し回数」により決定され、多くの処理時間がかかるとＣＰＵ処理量も増加する。なお、イベントや基本処理単位には、優先順位を与えて時間的に衝突することを避けて処理が行われる。
【００５０】
［ＣＰＵ内の機能モジュールの一部をハードウェア化した場合のイベント処理］
次に、図９を用いて、ＣＰＵ内の機能モジュールの一部をハードウェア化した場合のイベント処理を説明する。図９において、各基本処理単位の構成などは、図８に示したものと同様であるのでその説明を省略して、処理量の多い基本処理単位をハードウェア化する際のイベント処理について説明する。
【００５１】
図９に示すように、性能評価シミュレーション装置１０は、処理量が所定の閾値を超える基本処理単位Ｆｎ［３］を、ハードウェアに配置構成を変更する。基本処理単位のハードウェア化においては、図９に示すように、ハードウェア化された基本処理単位Ｆｎ［３］の処理時間が短縮されるとともに、イベントＢ全体のＣＰＵ処理量が減少する。
【００５２】
つまり、性能評価シミュレーション装置１０は、負荷の大きな機能モジュールをハードウェア化するので、ＣＰＵ処理量を削減することが可能である。また、ハードウェア化した機能モジュールは、直接ＲＡＭにアクセスするため、命令実行列が不要となり、さらに、データアクセスするアドレスの範囲も限定されるため、Ｄ−ｃａｃｈｅ（データアクセス時に利用されるキャッシュ）にアクセスするよりも時間が短縮される結果、ｂｌａｃｋｂｏｘ部の処理時間が短縮されて、プロセス処理全体での処理時間を短縮することが可能である。なお、ＳＷ／ＨＷ分割の閾値の設定は、ハードウェア化する機能モジュールが増加することに伴って、当該ハードウェア化のための実装面積の増大や消費電力の増大やバス占有率の上昇などを考慮して設定するべきである。
【００５３】
［ハードウェアモデルの抽象度とシミュレーション処理との関係］
次に、図１０、図１１を用いて、実施例２に係るＵＭＬクラスの例とＳｙｓｔｅｍＣ言語による記述例とを、図１２を用いて、実施例２に係るハードウェアモデルの抽象度とシミュレーション処理との関係を説明する。なお、図１０または図１１に示す「Ｆｎ＿＊」は、各機能モジュールを、「Ｆｎ＿ｉｆ」は、各機能モジュール共通インタフェースを、「Ｆｎ＿＊．ｈ」は、各機能モジュールのヘッダ部を、「Ｆｎ＿＊．ｃｐｐ」は、ソースコードを、「Ｆｎ＿ｉｆ．ｈ」は、機能モジュール共通インタフェースのヘッダ部を、「Ｆｎ＿ｉｆ．ｃｐｐ」は、ソースコードを表している。
【００５４】
機能モジュールを構成するｗｈｉｔｅｂｏｘとｂｌａｃｋｂｏｘとのうち、統計情報を収集するための処理を行うｂｌａｃｋｂｏｘ部を機能モジュール共通インタフェースに配置する。また、性能検証の目的やハードウェアモデルの完成度に応じて各モジュール固有の機能を記述するｗｈｉｔｅｂｏｘ部を各機能モジュールのプロセス処理「ｄｏ＿ｐｒｏｃｅｓｓ（）」内に配置する。
【００５５】
そして、スケジューラ部からプロセス処理「ｄｏ＿ｐｒｏｃｅｓｓ（）」を指示された各機能モジュール「Ｆｎ＿＊」は、ｗｈｉｔｅｂｏｘ部を実行する。続いて、ｗｈｉｔｅｂｏｘ部は、各モジュール固有の機能を実行した後、予めモジュール毎に定められた引数「ｘ」を与えて関数「ｂｌａｃｋｂｏｘ（）」を呼び出す。その後、ｂｌａｃｋｂｏｘ部は、引数「ｘ」を基にして、基本処理単位の実行ログを取得し、当該実行ログから命令フェッチおよび／またはデータアクセスの処理回数を指定してＣＰＵに負荷を発生させるとともに、命令実行時間などの統計情報を収集する。
【００５６】
［実施例２による効果］
このようにして、実施例２によれば、性能評価シミュレーション装置１０は、各基本処理単位固有の機能の実行とは無関係にＣＰＵ負荷を与えるので、各基本処理単位の完成度に依存せずにキャッシュ解析やＣＰＵ統計情報などの取得が可能である。
【００５７】
つまり、性能評価シミュレーション装置１０は、図１２に示すように、ｗｈｉｔｅｂｏｘ部に記述した各機能モジュール固有の機能の実行とは無関係に、ＬＳＩ設計の進捗に応じてハードウェアモデルの抽象度を変更しても、性能評価シミュレーションおよびＳＷ／ＨＷ分割の最適な検討が可能である。
【実施例３】
【００５８】
［基本処理単位で閾値を決定］
ここで、上記実施例１では、ＳＷ／ＨＷ分割における基本処理単位の所定の閾値と処理量とを比較してシミュレーションを実行する場合を説明したが、本発明はこれに限定されるものではなく、ＣＰＵ負荷率によりＳＷ／ＨＷ分割における基本処理単位の所定の閾値を変更して、当該所定の閾値と処理量とを比較してシミュレーションを実行することもできる。
【００５９】
そこで、以下の実施例３では、図１３を用いて、実施例３に係る性能評価シミュレーション処理について説明する。図１３は、実施例３に係る性能評価シミュレーション処理について説明するための図である。ここで、実施例３においては、予めターゲットプロセッサ内に機能モジュールを全て内包した状態で性能評価シミュレーションを行い、実行ログの命令実行数、データロード数およびデータストア数と、ＣＰＵの判定条件（例えば、ＣＰＵ負荷率やバス占有率など）との相関を取っておく。
【００６０】
図１３に示すように、性能評価シミュレーション装置１０は、ＣＰＵ負荷率などからＣＰＵ性能の判定閾値を設定して（ステップＳ３０１）、ＳＷ／ＨＷ分割条件である基本処理単位に対する所定の閾値を決定する（ステップＳ３０２）。そして、性能評価シミュレーション装置１０は、実施例１と同様に、基本処理単位に分割した実行ログに保持されている命令アドレス列やデータアクセスのアドレス列の数などをカウントして、これらのカウント数のいずれか（または合計）から基本処理単位の処理量を算出する（ステップＳ３０３〜ステップＳ３０５）。
【００６１】
続いて、性能評価シミュレーション装置１０は、算出した処理量が所定の閾値を超える場合に（ステップＳ３０６肯定）、当該閾値を超える実行ログに対応する基本処理単位をブロックＩＤにより検索する（ステップＳ３０７）。その後、性能評価シミュレーション装置１０は、検索した基本処理単位を、直接バス接続可能なポートに割り当てるとともに、基本処理単位のハードウェアへの配置構成の変更にあわせてポートＩＤを変更する（ステップＳ３０８およびステップＳ３０９）。
【００６２】
そして、性能評価シミュレーション装置１０は、ハードウェア化された基本処理単位のキャッシュアクセスが不要になり、ＲＡＭに直接アクセスすることが必要になるが、実行ログも命令フェッチが不要になることから命令アドレス列を削除して、シミュレーション実行においてデータアクセスのみ抽出することとなる（ステップＳ３１０およびステップＳ３１１）。その後、性能評価シミュレーション装置１０は、ＣＰＵ性能の判定条件を満たさない場合に（ステップＳ３１２肯定）、ステップＳ３０２に戻って、基本処理単位の処理量の閾値を決定（修正）する。なお、基本処理単位の処理量の閾値の修正幅としては、予め求めている実行ログの処理量とＣＰＵ性能の判定条件との相関から計算するか、または、基本処理単位の大きい（または小さい）順に機能モジュールを一つずつハードウェア化してシミュレーションを実行して、当該ＣＰＵ性能の判定条件を満たすまで処理を繰り返す。
【００６３】
［実施例３による効果］
このようにして、実施例３によれば、性能評価シミュレーション装置１０は、性能評価結果のＣＰＵ性能判定条件を満たせない場合に、基本処理単位の判定閾値を変更するので、より高精度なシミュレーションを実行してＳＷ／ＨＷ分割の妥当性を判断することが可能である。
【実施例４】
【００６４】
［プロセス処理単位で閾値を決定］
ここで、上記実施例１では、ＳＷ／ＨＷ分割における基本処理単位の所定の閾値と処理量とを比較してシミュレーションを実行する場合を説明したが、本発明はこれに限定されるものではなく、ＣＰＵ負荷率によりＳＷ／ＨＷ分割におけるプロセス処理単位の所定の閾値を変更して、当該所定の閾値と処理量とを比較してシミュレーションを実行することもできる。
【００６５】
そこで、以下の実施例４では、図１４、図１５を用いて、実施例４に係る性能評価シミュレーション処理について説明する。図１４は、実施例４に係る性能評価シミュレーション処理について説明するための図であり、図１５は、実施例４に係るＣＰＵ内のプロセス処理の一部をハードウェア化した場合のイベント処理を説明するための図である。ここで、実施例４においては、予め実行ログの命令実行数およびデータアクセス数と、ＣＰＵの判定条件（例えば、ＣＰＵ負荷率など）との相関を取っておく。
【００６６】
図１４に示すように、性能評価シミュレーション装置１０は、ＣＰＵ負荷率などからＣＰＵ性能の判定閾値を設定して（ステップＳ４０１）、ＳＷ／ＨＷ分割条件であるプロセス処理単位に対する所定の閾値を決定する（ステップＳ４０２）。そして、性能評価シミュレーション装置１０は、実施例１と同様に、基本処理単位に分割した実行ログに保持されている命令アドレス列やデータアクセスのアドレス列の数などをカウントして、これらのカウント数のいずれか（または合計）からプロセス処理単位の処理量を算出する（ステップＳ４０３〜ステップＳ４０５）。
【００６７】
続いて、性能評価シミュレーション装置１０は、算出した処理量が所定の閾値を超える場合に（ステップＳ４０６肯定）、当該閾値を超える実行ログに対応する基本処理単位をブロックＩＤにより検索する（ステップＳ４０７）。その後、性能評価シミュレーション装置１０は、検索した基本処理単位を、直接バス接続可能なポートに割り当てるとともに、プロセス処理単位のハードウェアへの配置構成の変更にあわせてポートＩＤを変更する（ステップＳ４０８およびステップＳ４０９）。
【００６８】
そして、性能評価シミュレーション装置１０は、ハードウェア化されたプロセス処理単位のキャッシュアクセスが不要になり、ＲＡＭに直接アクセスすることが必要になるが、実行ログも命令フェッチが不要になることから命令アドレス列を削除して、シミュレーション実行においてデータアクセスのみ抽出することとなる（ステップＳ４１０およびステップＳ４１１）。その後、性能評価シミュレーション装置１０は、ＣＰＵ性能の判定条件を満たさない場合に（ステップＳ４１２肯定）、ステップＳ４０２に戻って、プロセス処理単位の処理量の閾値を決定（修正）する。なお、プロセス処理単位の処理量の閾値の修正幅としては、予め求めている実行ログの命令実行数およびデータアクセス数と、ＣＰＵの判定条件との相関から計算するか、または、プロセス処理単位の大きい（または小さい）順に機能モジュールを一つずつハードウェア化してシミュレーションを実行して、当該ＣＰＵ性能の判定条件を満たすまで処理を繰り返す。
【００６９】
また、図１５に示すように、性能評価シミュレーション装置１０は、処理量が所定の閾値を超えるプロセス処理単位Ｆｎ［３］およびＦｎ［１］を、ハードウェアに配置構成を変更する。プロセス処理単位のハードウェア化においては、図１５に示すように、ハードウェア化されたプロセス処理単位Ｆｎ［３］およびＦｎ［１］の処理時間が短縮されるとともに、イベントＢ全体のＣＰＵ処理量が減少する。
【００７０】
つまり、性能評価シミュレーション装置１０は、負荷の大きな機能モジュールをプロセス処理単位でハードウェア化するので、ＣＰＵ処理量を削減することが可能である。また、ハードウェア化した機能モジュールは、直接ＲＡＭにアクセスするため、命令実行列が不要となり、さらに、データアクセスするアドレスの範囲も限定されるため、Ｄ−ｃａｃｈｅ（データアクセス時に利用されるキャッシュ）にアクセスするよりも時間が短縮される結果、ｂｌａｃｋｂｏｘ部の処理時間が短縮されて、プロセス処理全体での処理時間を短縮することが可能である。
【００７１】
［実施例４による効果］
このようにして、実施例４によれば、性能評価シミュレーション装置１０は、性能評価結果のＣＰＵ性能判定条件を満たせない場合に、プロセス処理単位の判定閾値を変更するので、より高精度なシミュレーションを実行してＳＷ／ＨＷ分割の妥当性を判断することが可能である。
【実施例５】
【００７２】
［実行ログのファイルサイズを利用］
また、上記実施例１では、ＳＷ／ＨＷ分割における基本処理単位の所定の閾値を予め決定してシミュレーションを実行する場合を説明したが、本発明はこれに限定されるものではなく、ＳＷ／ＨＷ分割における基本処理単位の所定の閾値を実行ログのファイルサイズを用いて決定することもできる。
【００７３】
そこで、以下の実施例５では、図１６を用いて、実施例５に係るＳＷ／ＨＷ分割の閾値に実行ログのファイルサイズを利用する場合を説明する。図１６は、実施例５に係るＳＷ／ＨＷ分割の閾値に実行ログのファイルサイズを利用する場合を説明するための図である。
【００７４】
図１６に示すように、性能評価シミュレーション装置１０は、基本処理単位に分割した実行ログに保持されている命令アドレス列やデータアクセスのアドレス列の数などをカウントして、ターゲットプロセッサ内に機能モジュールを全て内包した状態でシミュレーションを実行して得られる統計情報からＣＰＵ処理量を算出する（ステップＳ５０１〜ステップＳ５０４）。
【００７５】
そして、性能評価シミュレーション装置１０は、算出したＣＰＵ処理量を用いて、実行ログの命令実行数、データロード数およびデータストア数と、ＣＰＵの判定条件（例えば、ＣＰＵ負荷率など）との相関を取る（ステップＳ５０５）。続いて、性能評価シミュレーション装置１０は、基本処理単位に分割した実行ログの各ファイルサイズと、ファイル内の命令実行数および／またはデータアクセス数との相関を取る（ステップＳ５０６）。その後、性能評価シミュレーション装置１０は、ステップＳ５０５とステップＳ５０６との結果から、ＣＰＵ処理量と基本処理単位の実行ログのファイルサイズとの相関を求める（ステップＳ５０７）。上記した処理に基づいて、性能評価シミュレーション装置１０は、ＳＷ／ＨＷ分割の閾値を実行ログのファイルサイズで行なうこととなる。
【００７６】
［実施例５による効果］
このようにして、実施例５によれば、性能評価シミュレーション装置１０は、ＳＷ／ＨＷ分割の閾値に実行ログのファイルサイズを利用するので、より高精度なシミュレーションを実行することが可能である。
【実施例６】
【００７７】
［アドオンＣＰＵの利用によるマルチコア化の検討］
また、上記実施例１では、性能評価シミュレーションの実行により最適なＳＷ／ＨＷ分割の妥当性を判断する場合を説明したが、本発明はこれに限定されるものではなく、ＳＷ／ＳＷ分割によるマルチコア化を検討することもできる。
【００７８】
そこで、以下の実施例６では、図１７を用いて、実施例６に係るアドオンＣＰＵの利用によるマルチコア化の検討について説明する。図１７は、実施例６に係るアドオンＣＰＵの利用によるマルチコア化の検討について説明するための図である。ここでは、性能評価の対象である性能評価シミュレーション装置の外部に新たにバスモデルを構成し、当該バス上にＡＤＤＯＮ−ＣＰＵ、Ｉ−ｃａｃｈｅ、Ｄ−ｃａｃｈｅ、必要に応じて周辺部のＨＷを配置する性能評価シミュレーション環境を構築する。なお、ＡＤＤＯＮ−ＣＰＵ、Ｉ−ｃａｃｈｅ、Ｄ−ｃａｃｈｅの構成は、ＣＰＵと同様のものであり、各モジュールの配置および処理順序を管理するためのポートＩＤとブロックＩＤとは、重複することのないようにして実行する。
【００７９】
図１７に示すように、例えば、性能評価シミュレーション装置１０は、ＳＷ／ＨＷ分割の所定の閾値に従って、該当する機能モジュールＦｎ［ｎ］をＣＰＵモジュール内から切り離してＡＤＤＯＮ−ＣＰＵ内のインタフェースに配置し、当該機能モジュールＦｎ［ｎ］のポートＩＤを変更する。そして、シミュレーション実行結果から得られる統計情報は、ＣＰＵとＡＤＤＯＮ−ＣＰＵとで個別に収集して、ソフトウェア処理を複数のＣＰＵに分割した場合の効果をキャッシュ解析する。
【００８０】
つまり、性能評価シミュレーション装置１０は、ＣＰＵにおいて閾値によりハードウェア化されるべき機能モジュールをＡＤＤＯＮ−ＣＰＵに振り分けて出力する結果、ソフトウェア×ソフトウェアの形で出力されることとなる。
【００８１】
［実施例６による効果］
このようにして、実施例６によれば、性能評価シミュレーション装置１０は、ＣＰＵにおいてＳＷ／ＨＷ分割の閾値からハードウェア化されるべき機能モジュールをＡＤＤＯＮ−ＣＰＵに振り分けて出力するので、一つのＣＰＵ内に複数のＣＰＵコアが存在するマルチコア化を検討することが可能である。
【実施例７】
【００８２】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも
種々の異なる形態にて実施されてよいものである。そこで、（１）性能評価シミュレーション装置の構成、（２）性能評価シミュレーション装置を一つの設計プロセスとして含む電子装置、（３）プログラムにおいて異なる実施例を説明する。
【００８３】
（１）性能評価シミュレーション装置の構成
また、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメタを含む情報（例えば、図２に示す「統計情報」などが記憶している情報）については、特記する場合を除いて任意に変更することができる。
【００８４】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、例えば、アクセス処理部２１を、実行ログに基づいて基本処理単位に分割する基本処理単位分割部と、基本処理単位の処理量を算出する処理量算出部と、基本処理単位をハードウェアに配置構成を変更する配置構成変更部と、性能評価シミュレーションを実行するシミュレーション実行部として分散するなど、その全部または一部を、各種の負担や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００８５】
（２）性能評価シミュレーション装置を一つの設計プロセスとして含む電子装置
また、上記の実施例では、ソフトウェアモデルとハードウェアモデルとを最適にＳＷとＨＷとに分割するための性能評価シミュレーション装置として説明したが、本発明はこれに限定されるものではなく、当該性能評価シミュレーション装置を一つの設計プロセスとして含む電子装置として処理することもできる。
【００８６】
例えば、電子装置は、システムの仕様からソフトウェアとハードウェアとでそれぞれ実行される処理を仮決定したソフトウェアモデルとハードウェアモデルとを受け付けて、受け付けたソフトウェアモデルとハードウェアモデルとを用いて、上記した性能評価シミュレーションを実行して作成された統計情報に基づいて再分割されたソフトウェアとハードウェアとをＬＳＩに搭載する。
【００８７】
（３）プログラム
ところで、上記の実施例では、ハードウェアロジックによって各種の処理を実現する場合を説明したが、本発明はこれに限定されるものではなく、あらかじめ用意されたプログラムをコンピュータで実行することによって実現するようにしてもよい。そこで、以下では、図１８を用いて、上記の実施例に示した性能評価シミュレーション装置と同様の機能を有する性能評価シミュレーションプログラムを実行するコンピュータの一例を説明する。図１８は、性能評価シミュレーションプログラムを実行するコンピュータを示す図である。
【００８８】
図１８に示すように、性能評価シミュレーション装置としてのコンピュータ１１０は、ＨＤＤ１３０、ＣＰＵ１４０、ＲＯＭ１５０およびＲＡＭ１６０をバス１８０などで接続して構成される。
【００８９】
ＲＯＭ１５０には、上記の実施例１に示した性能評価シミュレーション装置１０と同様の機能を発揮する性能評価シミュレーションプログラム、つまり、図１８に示すように基本処理単位分割プログラム１５０ａと、処理量算出プログラム１５０ｂと、配置構成変更プログラム１５０ｃと、統計情報作成プログラム１５０ｄとが、あらかじめ記憶されている。なお、これらのプログラム１５０ａ〜プログラム１５０ｄについては、図２に示した性能評価シミュレーション装置１０の各構成要素と同様、適宜統合または、分散してもよい。
【００９０】
そして、ＣＰＵ１４０がこれらのプログラム１５０ａ〜プログラム１５０ｄをＲＯＭ１５０から読み出して実行することで、図１８に示すように、プログラム１５０ａ〜プログラム１５０ｄは、基本処理単位分割プロセス１４０ａと、処理量算出プロセス１４０ｂと、配置構成変更プロセス１４０ｃと、統計情報作成プロセス１４０ｄとして機能するようになる。なお、プロセス１４０ａ〜プロセス１４０ｄは、図２に示した、スケジューラ部２０とアクセス処理部２１とに対応する。
【００９１】
そして、ＣＰＵ１４０はＲＡＭ１６０に記録されたデータに基づいて性能評価シミュレーションプログラムを実行する。
【００９２】
なお、上記した各プログラム１５０ａ〜プログラム１５０ｄについては、必ずしも最初からＲＯＭ１５０に記憶させておく必要はなく、例えば、コンピュータ１１０に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」、またはコンピュータ１１０の内外に備えられるＨＤＤなどの「固定用の物理媒体」、さらには公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ１１０に接続される「他のコンピュータ（またはサーバ）」などに各プログラムを記憶させておき、コンピュータ１１０がこれらから各プログラムを読み出して実行するようにしてもよい。
【００９３】
（付記１）システムの仕様からソフトウェアとハードウェアとを用いてそれぞれ実行される処理を仮決定したソフトウェアモデルとハードウェアモデルとに対して、シミュレーションを実行して性能を評価する性能評価シミュレーション装置であって、
前記ソフトウェアモデルを実機またはシミュレーションソフトウェアで実行して得られた実行履歴である実行ログに基づいて、前記ソフトウェアモデルで実行される処理の実行単位である基本処理単位に分割する基本処理単位分割手段と、
前記基本処理単位分割手段により分割された基本処理単位の処理量を、前記実行ログに保持される命令アドレス列の数またはデータアクセスのアドレス列の数から算出する処理量算出手段と、
前記処理量算出手段により算出された処理量と所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更する配置構成変更手段と、
前記配置構成変更手段によりハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行し、前記システムの動作解析に必要なデータを計測して、性能評価の基となる統計情報を作成する統計情報作成手段と、
を備えたことを特徴とする性能評価シミュレーション装置。
【００９４】
（付記２）前記統計情報作成手段は、前記配置構成変更手段によりハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを所定の回数分実行し、前記システムの動作解析に必要なデータを計測して、性能評価の基となる統計情報を作成することを特徴とする付記１に記載の性能評価シミュレーション装置。
【００９５】
（付記３）前記基本処理単位は、当該基本処理単位を複数組み合わせたプロセス処理単位に応じて各基本処理単位固有の機能を記述する第一のブロックと、前記統計情報を収集するための処理を行う第二のブロックとから構成されるものであって、
前記統計情報作成手段は、前記配置構成変更手段によりハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とを複数組み合わせたプロセス処理において、前記第一のブロックにより各基本処理単位固有の機能が実行されて第二のブロックを呼出し、呼出された第二のブロックにおいて当該プロセス処理に負荷をかけて、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行して、前記システムの動作解析に必要なデータを計測して、性能評価の基となる統計情報を作成することを特徴とする付記１に記載の性能評価シミュレーション装置。
【００９６】
（付記４）前記性能評価シミュレーションを実行するターゲットプロセッサの性能評価結果の判定条件を設定する判定条件設定手段をさらに備え、
前記配置構成変更手段は、前記性能評価シミュレーション実行後に得られた統計情報が前記判定条件設定手段により設定される判定条件を満たさない場合に、所定の閾値を変更し、前記処理量算出手段により算出された処理量と当該変更された所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更し、
前記統計情報作成手段は、前記配置構成変更手段によりハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行して、前記システムの動作解析に必要なデータを計測して、性能評価の基となる統計情報を作成することを特徴とする付記１に記載の性能評価シミュレーション装置。
【００９７】
（付記５）前記性能評価シミュレーションを実行するターゲットプロセッサの性能評価結果の判定条件を設定する判定条件設定手段をさらに備え、
前記処理量算出手段は、前記基本処理単位分割手段により分割された基本処理単位を複数組み合わせたプロセス処理単位の処理量を、前記実行ログに保持される命令アドレス列の数またはデータアクセスのアドレス列の数から算出し、
前記配置構成変更手段は、前記性能評価シミュレーション実行後に得られた統計情報が前記判定条件設定手段により設定される判定条件を満たさない場合に、所定の閾値を変更し、前記処理量算出手段により算出された処理量と当該変更された所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更し、
前記統計情報作成手段は、前記配置構成変更手段によりハードウェアモデルに配置構成を変更されたプロセス処理単位と、ソフトウェアモデルに配置構成されているプロセス処理単位とに対して命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行して、前記システムの動作解析に必要なデータを計測して、性能評価の基となる統計情報を作成することを特徴とする付記１に記載の性能評価シミュレーション装置。
【００９８】
（付記６）前記配置構成変更手段において用いられる所定の閾値は、前記統計情報作成手段から得られる統計情報から算出する基本処理単位毎の性能評価結果と、当該基本処理単位の各実行ログのファイルサイズとに基づいて決定されるものであって、
前記配置構成変更手段は、前記処理量算出手段により算出された処理量と前記決定された所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更することを特徴とする付記１に記載の性能評価シミュレーション装置。
【００９９】
（付記７）前記システムの仕様からソフトウェアとハードウェアとを用いてそれぞれ実行される処理を仮決定したソフトウェアモデルとハードウェアモデルとに対して、シミュレーションを実行して性能を評価する性能評価シミュレーション装置と同等の機能を有する第二の性能評価シミュレーション装置を配置した性能評価シミュレーション装置であって、
前記配置構成変更手段は、前記処理量算出手段により算出された処理量と所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位を第二の性能評価シミュレーション装置に配置構成を変更することを特徴とする付記１に記載の性能評価シミュレーション装置。
【０１００】
（付記８）システムの仕様からソフトウェアとハードウェアとを用いてそれぞれ実行される処理を仮決定したソフトウェアモデルとハードウェアモデルとに対して、シミュレーションを実行して性能を評価する性能評価シミュレーション装置の性能評価シミュレーション方法であって、
前記ソフトウェアモデルを実機またはシミュレーションソフトウェアで実行して得られた実行履歴である実行ログに基づいて、前記ソフトウェアモデルで実行される処理の実行単位である基本処理単位に分割する基本処理単位分割工程と、
前記基本処理単位分割工程により分割された基本処理単位の処理量を、前記実行ログに保持される命令アドレス列の数またはデータアクセスのアドレス列の数から算出する処理量算出工程と、
前記処理量算出工程により算出された処理量と所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更する配置構成変更工程と、
前記配置構成変更工程によりハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行し、前記システムの動作解析に必要なデータを計測して、性能評価の基となる統計情報を作成する統計情報作成工程と、
を含んだことを特徴とする性能評価シミュレーション方法。
【０１０１】
（付記９）システムの仕様からソフトウェアとハードウェアとを用いてそれぞれ実行される処理を仮決定したソフトウェアモデルとハードウェアモデルとに対して、シミュレーションを実行して性能を評価する方法をコンピュータに実行させる性能評価シミュレーションプログラムであって、
前記ソフトウェアモデルを実機またはシミュレーションソフトウェアで実行して得られた実行履歴である実行ログに基づいて、前記ソフトウェアモデルで実行される処理の実行単位である基本処理単位に分割する基本処理単位分割手順と、
前記基本処理単位分割手順により分割された基本処理単位の処理量を、前記実行ログに保持される命令アドレス列の数またはデータアクセスのアドレス列の数から算出する処理量算出手順と、
前記処理量算出手順により算出された処理量と所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更する配置構成変更手順と、
前記配置構成変更手順によりハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行し、前記システムの動作解析に必要なデータを計測して、性能評価の基となる統計情報を作成する統計情報作成手順と、
をコンピュータに実行させることを特徴とする性能評価シミュレーションプログラム。
【０１０２】
（付記１０）システムの仕様からソフトウェアとハードウェアとでそれぞれ実行される処理に対してシミュレーションを行う性能評価シミュレーション装置を備え、前記性能評価シミュレーション装置によって得られた性能評価に基づいてＬＳＩを設計する電子装置であって、
前記ソフトウェアモデルとハードウェアモデルとを受け付ける受付手段と、
前記受付手段により受け付けた前記ソフトウェアモデルを実機またはシミュレーションソフトウェアで実行して得られた実行履歴である実行ログに基づいて、前記ソフトウェアモデルで実行される処理の実行単位である基本処理単位に分割する基本処理単位分割手段と、
前記基本処理単位分割手段により分割された基本処理単位の処理量を、前記実行ログに保持される命令アドレス列の数またはデータアクセスのアドレス列の数から算出する処理量算出手段と、
前記処理量算出手段により算出された処理量と所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更する配置構成変更手段と、
前記配置構成変更手段によりハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行し、前記システムの動作解析に必要なデータを計測して、性能評価の基となる統計情報を作成する統計情報作成手段と、
前記統計情報作成手段により作成された統計情報に基づいて、ソフトウェアとハードウェアとをＬＳＩに分割して搭載させるＬＳＩ生成手段と、
を備えたことを特徴とする電子装置。
【０１０３】
（付記１１）システムの仕様からソフトウェアとハードウェアとでそれぞれ実行される処理に対してシミュレーションを行う性能評価シミュレーション装置を備え、前記性能評価シミュレーション装置によって得られた性能評価に基づいてＬＳＩを設計する電子装置のＬＳＩ設計方法であって、
前記ソフトウェアモデルとハードウェアモデルとを受け付ける受付工程と、
前記受付工程により受け付けた前記ソフトウェアモデルを実機またはシミュレーションソフトウェアで実行して得られた実行履歴である実行ログに基づいて、前記ソフトウェアモデルで実行される処理の実行単位である基本処理単位に分割する基本処理単位分割工程と、
前記基本処理単位分割工程により分割された基本処理単位の処理量を、前記実行ログに保持される命令アドレス列の数またはデータアクセスのアドレス列の数から算出する処理量算出工程と、
前記処理量算出工程により算出された処理量と所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更する配置構成変更工程と、
前記配置構成変更工程によりハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行し、前記システムの動作解析に必要なデータを計測して、性能評価の基となる統計情報を作成する統計情報作成工程と、
前記統計情報作成工程により作成された統計情報に基づいて、ソフトウェアとハードウェアとをＬＳＩに分割して搭載させるＬＳＩ生成工程と、
を含んだことを特徴とするＬＳＩ設計方法。
【０１０４】
（付記１２）システムの仕様からソフトウェアとハードウェアとでそれぞれ実行される処理に対してシミュレーションを行う性能評価シミュレーション装置を備え、前記性能評価シミュレーション装置によって得られた性能評価に基づいてＬＳＩを設計する方法をコンピュータに実行させるＬＳＩ設計プログラムであって、
前記ソフトウェアモデルとハードウェアモデルとを受け付ける受付手順と、
前記受付手順により受け付けた前記ソフトウェアモデルを実機またはシミュレーションソフトウェアで実行して得られた実行履歴である実行ログに基づいて、前記ソフトウェアモデルで実行される処理の実行単位である基本処理単位に分割する基本処理単位分割手順と、
前記基本処理単位分割手順により分割された基本処理単位の処理量を、前記実行ログに保持される命令アドレス列の数またはデータアクセスのアドレス列の数から算出する処理量算出手順と、
前記処理量算出手順により算出された処理量と所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更する配置構成変更手順と、
前記配置構成変更手順によりハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行し、前記システムの動作解析に必要なデータを計測して、性能評価の基となる統計情報を作成する統計情報作成手順と、
前記統計情報作成手順により作成された統計情報に基づいて、ソフトウェアとハードウェアとをＬＳＩに分割して搭載させるＬＳＩ生成手順と、
をコンピュータに実行させることを特徴とするＬＳＩ設計プログラム。
【図面の簡単な説明】
【０１０５】
【図１】実施例１に係る性能評価シミュレーション装置の概要および特徴を示す図である。
【図２】実施例１に係る性能評価シミュレーション装置の構成を示す図である。
【図３】実施例１に係る実行ログ全体の各アドレスへのアクセスと基本処理単位との関係を示す図である。
【図４】実施例１に係る統計情報の例を示す図である。
【図５】ＬＳＩの開発フローを示す図である。
【図６】実施例１に係る性能評価シミュレーション装置によるシミュレーション処理を示すフローチャートである。
【図７】実施例１に係る性能評価シミュレーション装置によるＳＷ／ＨＷ分割処理について説明するための図である。
【図８】ＣＰＵモデルが周期的にイベントを行なう際の時間とＣＰＵ処理量との関係を示す図である。
【図９】実施例２に係るＣＰＵ内の機能モジュールの一部をハードウェア化した場合のイベント処理を示す図である。
【図１０】実施例２に係るＵＭＬクラスの例を示す図である。
【図１１】実施例２に係るＳｙｓｔｅｍＣ言語による記述例を示す図である。
【図１２】実施例２に係るハードウェアモデルの抽象度とシミュレーション処理との関係を示す図である。
【図１３】実施例３に係る性能評価シミュレーション処理について説明するための図である。
【図１４】実施例４に係る性能評価シミュレーション処理について説明するための図である。
【図１５】実施例４に係るＣＰＵ内のプロセス処理の一部をハードウェア化した場合のイベント処理を説明するための図である。
【図１６】実施例５に係るＳＷ／ＨＷ分割の閾値に実行ログのファイルサイズを利用する場合を説明するための図である。
【図１７】実施例６に係るアドオンＣＰＵの利用によるマルチコア化の検討について説明するための図である。
【図１８】性能評価シミュレーションプログラムを実行するコンピュータを示す図である。
【符号の説明】
【０１０６】
１０  性能評価シミュレーション装置
１１−１〜１１−ｎ  機能モジュール
２０  スケジューラ部
２１  アクセス処理部
３０  バス
【図１】
0005034955.tif 000002
【図２】
0005034955.tif 000003
【図３】
0005034955.tif 000004
【図４】
0005034955.tif 000005
【図５】
0005034955.tif 000006
【図６】
0005034955.tif 000007
【図７】
0005034955.tif 000008
【図８】
0005034955.tif 000009
【図９】
0005034955.tif 000010
【図１０】
0005034955.tif 000011
【図１１】
0005034955.tif 000012
【図１２】
0005034955.tif 000013
【図１３】
0005034955.tif 000014
【図１４】
0005034955.tif 000015
【図１５】
0005034955.tif 000016
【図１６】
0005034955.tif 000017
【図１７】
0005034955.tif 000018
【図１８】
0005034955.tif 000019