JP2009163576A - 性能評価シミュレーション装置、性能評価シミュレーション方法および性能評価シミュレーションプログラム - Google Patents

性能評価シミュレーション装置、性能評価シミュレーション方法および性能評価シミュレーションプログラム Download PDF

Info

Publication number
JP2009163576A
JP2009163576A JP2008001606A JP2008001606A JP2009163576A JP 2009163576 A JP2009163576 A JP 2009163576A JP 2008001606 A JP2008001606 A JP 2008001606A JP 2008001606 A JP2008001606 A JP 2008001606A JP 2009163576 A JP2009163576 A JP 2009163576A
Authority
JP
Japan
Prior art keywords
performance evaluation
processing unit
basic processing
software
model
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008001606A
Other languages
English (en)
Other versions
JP5034955B2 (ja
Inventor
Tomoki Kato
知己 加藤
Nobukazu Koizumi
伸和 小泉
Noriyasu Nakayama
典保 中山
Naoki Yuzawa
直樹 湯沢
Hiroyuki Hieda
裕之 稗田
Satoru Hiramoto
覚 平本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008001606A priority Critical patent/JP5034955B2/ja
Priority to EP08169674A priority patent/EP2081116A1/en
Priority to US12/314,334 priority patent/US8214189B2/en
Priority to KR1020080133542A priority patent/KR100986784B1/ko
Priority to CN2008101905231A priority patent/CN101482891B/zh
Publication of JP2009163576A publication Critical patent/JP2009163576A/ja
Application granted granted Critical
Publication of JP5034955B2 publication Critical patent/JP5034955B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3457Performance evaluation by simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2117/00Details relating to the type or aim of the circuit design
    • G06F2117/08HW-SW co-design, e.g. HW-SW partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】システムの仕様からソフトウェアとハードウェアとを用いてそれぞれ実行される処理を仮決定したソフトウェアモデルとハードウェアモデルとに対して、シミュレーションを実行して性能を評価する性能評価シミュレーション装置において、設計初期にSW/HW分割を最適に行うとともに、SW/HW分割の妥当性を判断することを課題とする。
【解決手段】性能評価シミュレーション装置は、実行ログに基づいて基本処理単位に分割し、実行ログに保持される情報から基本処理単位の処理量を算出して、算出した処理量が所定の閾値を超える処理量を有する基本処理単位をハードウェアモデルに配置構成を変更し、当該ハードウェアモデルと、ソフトウェアモデルとの性能評価シミュレーションを実行して、性能評価の基となる統計情報を作成する。
【選択図】 図1

Description

この発明は、システムの仕様からソフトウェアとハードウェアとを用いてそれぞれ実行される処理を仮決定したソフトウェアモデルとハードウェアモデルとに対して、シミュレーションを実行して性能を評価する性能評価シミュレーション装置に関する。
従来より、電子機器などに用いられるプロセッサ、バスおよびメモリなどは一つのLSI(Large Scale Integration)上に搭載され、これらを搭載するLSI(システムLSI)上において複数の処理が実行される。この一つのLSI上に複数の処理が搭載されることは、LSIの小型化、低コスト化および低消費電力化などを目的としているが、LSIのハードウェアやアーキテクチャなどを一度決定すると、容易に変更することが困難であるために、当該LSIの機能設計の難しさを増大させている。
特に、LSIの小型化や低コスト化などを推し進めるためには、LSIの処理負荷を軽減することが重要であり、当該LSIに搭載される各処理をソフトウェア(以下、「SW」と言う。)もしくはハードウェア(以下、「HW」と言う。)のそれぞれに最適に分割する必要がある。そこで、LSI上で実行すべき機能をSW/HWのどちらで実現するかをLSI設計初期段階に仮決定してから、当該SW/HWの性能検証を行っている。
上記した性能検証について、例えば、ソフトウェアは、C言語やアセンブリ言語などで記述し、性能検証の対象となるLSIに搭載されたプロセッサであるターゲットプロセッサを含む実機モデルまたはターゲットプロセッサ向けのISS(Instruction Set Simulator)上で実行することにより、当該ソフトウェアの動作をシミュレーションする。また、例えば、ハードウェアは、ハードウェアを記述するための言語であるRTL(Register Transfer Level)やTLM(Transaction Level Model)など、または、当該RTLおよびTLMを混合させたもので記述することにより、当該ハードウェアの動作をシミュレーションする。
この性能検証において、システムLSI設計初期段階にSW/HWに分割する場合には、アプリケーションプログラムのソースコードやシステムLSIの仕様などを人手によって解析して分割し、当該分割の妥当性を実行されるサイクル数などから検証していた。そして、最近では、この検証を自動で行う様々な技術が開示されている。
例えば、特許文献1(特開2001−142927号公報)では、ある程度完成したソースコードを解析し、各処理部のクロックサイクル数から算出した処理量および関数の記述部から算出した消費電力などの値を判断材料として各処理部をSW/HWに分割する。
また、例えば、特許文献2(特開平11−259552号公報)では、システムLSIのアーキテクチャ記述を実行単位でモジュール化してSW/HW分割を行い、ベンチマークプログラムに基づいてシミュレーションを実行して得られた各モジュールの実行時間を比較することにより、SW/HW分割の妥当性を判断する。
特開2001−142927号公報 特開平11−259552号公報
しかしながら、上記した従来の技術は、設計初期にSW/HW分割を最適に行うことが困難であるとともに、SW/HW分割の妥当性を判断することができないという課題があった。
具体的には、特許文献1では、アプリケーションプログラムのソースコードがある程度完成しなければ解析することができないために、設計初期にSW/HW分割を最適に行うことが困難である。また、特許文献2では、各実行単位の処理時間を比較するのみであり、システムのキャッシュ解析から得られるCPU(Central Processing Unit)の統計情報を検討することができないために、SW/HW分割の妥当性を判断することができない。
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、LSI上に搭載される処理をSW/HWに分割してシミュレーションを実行するのに際して、設計初期にSW/HW分割を最適に行うことが可能であるとともに、SW/HW分割の妥当性を判断することが可能である性能評価シミュレーション装置を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本願の開示する性能評価シミュレーション装置は、システムの仕様からソフトウェアとハードウェアとを用いてそれぞれ実行される処理を仮決定したソフトウェアモデルとハードウェアモデルとに対して、シミュレーションを実行して性能を評価する性能評価シミュレーション装置であって、前記ソフトウェアモデルを実機またはシミュレーションソフトウェアで実行して得られた実行履歴である実行ログに基づいて、前記ソフトウェアモデルで実行される処理の実行単位である基本処理単位に分割する基本処理単位分割手段と、前記基本処理単位分割手段により分割された基本処理単位の処理量を、前記実行ログに保持される命令アドレス列の数またはデータアクセスのアドレス列の数から算出する処理量算出手段と、前記処理量算出手段により算出された処理量と所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更する配置構成変更手段と、前記配置構成変更手段によりハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行し、前記システムの動作解析に必要なデータを計測して、性能評価の基となる統計情報を作成する統計情報作成手段と、を備えたことを要件とする。
本願の開示する性能評価シミュレーション装置によれば、設計初期にSW/HW分割を最適に行なうという効果を奏するとともに、SW/HW分割の妥当性を判断するという効果を奏する。
以下に添付図面を参照して、この発明に係る性能評価シミュレーション装置の実施例を詳細に説明する。なお、以下では、本発明に係る性能評価シミュレーション装置の概要および特徴、性能評価シミュレーション装置の構成および処理の流れを順に説明し、最後に本実施例による効果を説明する。
[概要および特徴]
まず最初に、図1を用いて、実施例1に係る性能評価シミュレーション装置の概要および特徴を説明する。図1は、実施例1に係る性能評価シミュレーション装置の概要および特徴を示す図である。
この性能評価シミュレーション装置は、システムLSIの仕様からソフトウェアモデルとハードウェアモデルとに分割して、分割されたソフトウェアモデルを実機上またはISSなどを利用したターゲットCPU上で実行した結果から得られる実行履歴である実行ログ(命令列)を入力として、性能評価シミュレーションを実行する。
このような構成において、性能評価シミュレーション装置は、システムの仕様からソフトウェアとハードウェアとでそれぞれ実行される処理を仮決定したソフトウェアモデルとハードウェアモデルとから構成され、当該ソフトウェアモデルとハードウェアモデルとの性能を評価することを概要とするものであり、特に、設計初期にSW/HW分割を最適に行うことが可能であるとともに、SW/HW分割の妥当性を判断することが可能である点を主たる特徴とする。
この主たる特徴について具体的に説明すると、性能評価シミュレーション装置は、ソフトウェアモデルを実機またはシミュレーションソフトウェアで実行して得られた実行履歴である実行ログに基づいて、ソフトウェアモデルで実行される処理の実行単位である基本処理単位に分割する(図1の(1)参照)。
具体的に例を挙げると、性能評価シミュレーション装置は、システムLSIの仕様からソフトウェアモデルとハードウェアモデルとに分割して、実機上またはISSなどを利用してターゲットCPU上で実行した結果から得られる実行履歴である実行ログが入力される。そして、性能評価シミュレーション装置は、入力された実行ログに基づいてソフトウェアモデルで実行される処理の実行単位である基本処理単位に分割する。この基本処理単位の分割において、例えば、通信処理ソフトウェアの場合は、周期処理のパターンからOS(Operating System)のタスク起動点を見つけてから、当該タスク単位で分割する。また、例えば、命令アドレス列からオブジェクトファイル間の処理の流れを追跡してから、タスクの区切りを見つけて分割する。
そして、性能評価シミュレーション装置は、分割された基本処理単位の処理量を、実行ログに保持される命令アドレス列の数またはデータアクセスのアドレス列の数から算出する(図1の(2)参照)。上記した例で具体的に例を挙げると、性能評価シミュレーション装置は、分割された基本処理単位の処理量を、実行ログが保持している処理実行時の分岐先アドレス情報である命令アドレス列の数やデータベースにアクセスするためのアクセス先アドレス情報であるデータアクセスのアドレス列の数などを基本処理単位の処理量として算出する。
続いて、性能評価シミュレーション装置は、算出された処理量と所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更する(図1の(3)参照)。上記した例で具体的に例を挙げると、性能評価シミュレーション装置は、算出された処理量と所定の閾値の処理量とを比較する。そして、性能評価シミュレーション装置は、比較した結果、所定の閾値の処理量を超える処理量である実行ログを有する基本処理単位を、ソフトウェア処理から直接バスに接続するようにハードウェア処理に配置構成を変更してハードウェア化する。
その後、性能評価シミュレーション装置は、ハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行し、システムの動作解析に必要なデータを計測して、性能評価の基となる統計情報を作成する(図1の(4)参照)。上記した例で具体的に例を挙げると、性能評価シミュレーション装置は、ハードウェアモデルに配置構成を変更してハードウェア化された基本処理単位と、ソフトウェアモデルに配置構成されているソフトウェアモデルとに対して、命令キャッシュ、データキャッシュを経由してバスアクセスを実行することにより性能評価シミュレーションを実行する。そして、性能評価シミュレーション装置は、命令実行時間、命令フェッチ時間およびデータアクセス時間を計測して、CPU負荷率などの性能評価の基となる統計情報を作成する。この性能評価シミュレーション装置により作成された統計情報は、最適なSW/HW分割の妥当性の判断に利用される。なお、性能評価シミュレーションは、複数回実行することにより高精度なシミュレーション結果を得られる。
このようなことから、実施例1に係る性能評価シミュレーション装置は、ソフトウェアモデルを実機またはISSなどを利用してターゲットCPU上で実行した結果から得られる実行ログに基づいて、性能評価シミュレーションを実行する場合に、実行ログに保持される情報に基づいて分割した基本処理単位の処理量が多い基本処理単位をハードウェア化してシミュレーションを実行することができる結果、上記した主たる特徴のごとく、設計初期にSW/HW分割を最適に行うことが可能であるとともに、SW/HW分割の妥当性を判断することが可能である。
つまり、性能評価シミュレーション装置は、実行ログに保持される情報を用いて、各処理のSW/HW分割を行うので、従来技術のようにLSI上に搭載される各処理の完成度に依存してSW/HW分割を行うのと比較して、設計初期にSW/HW分割を最適に行なうことが可能である。また、性能評価シミュレーション装置は、命令実行時間、命令フェッチ時間、データアクセス時間を計測しつつ、命令キャッシュ、データキャッシュを経由してバスアクセスを実行することによりシミュレーションを実行して、CPU負荷率などの高精度な統計情報を出力するので、従来技術のように各実行単位の処理時間を比較するのと比較して、SW/HW分割の妥当性を判断することが可能である。
[実施例1に係る性能評価シミュレーション装置の構成]
次に、図2を用いて、実施例1に係る性能評価シミュレーション装置の構成を説明する。図2は、実施例1に係る性能評価シミュレーション装置の構成を示す図である。図2に示すように、性能評価シミュレーション装置10は、機能モジュール11−1〜11−n、スケジューラ部20およびアクセス処理部21から構成される。
また、性能評価シミュレーション装置10は、外部RAM上に存在する命令の取得時間を短くするための命令キャッシュであるI−cache、または、データアクセスの時間を短くするためのデータキャッシュであるD−cacheからバス30を介して、性能評価シミュレーション装置10の外部に接続されるRAMである外部RAMと、外部I/Fや特定用途向け専用ハードウェアなどである周辺HWとに接続されている。また、例えば、基本処理実行ログの入力を除く部分は、電子回路設計への使用を目的としたハードウェア記述言語の一つであるSystemC言語などを用いたトランザクションレベルで構築され、各モジュール間の送受信は関数コールによってやり取りする。また、バス30への接続は、モジュール共通のインタフェース(例えば、TLM−I/Fなど)を利用することによって、RTLのような信号レベルの通信とは異なり、各モジュールの配置や組み換えなどを自由に行なう。
機能モジュール11−1〜11−nは、アクセス処理部21により実行ログに基づいて分割されたソフトウェアモデルで実行される処理の実行単位である基本処理単位のことである。例えば、機能モジュール11−1(Fn[1])は、図3に示すように、アドレス「E050D6E0」と、命令/データアクセス「I/D」と、データアクセスの場合のロード(読み込み)/ストア(書き込み)「R/W」とを保持している。性能評価シミュレーション装置10に入力される実行ログから取得されたこれらの情報は、アクセスするアドレスが分かると、各HWのアドレスとデータとを格納しているRAMからどのアドレスにアクセスしているかが分かる。そして、性能評価シミュレーション装置10がこのアドレス情報からどのHWに命令またはデータアクセスしているかが分かり、データアクセスの場合には、ロードまたはストアしているかが分かる。また、実行ログ全体としては、「xxx.o」や「yyy.o」や「zzz.o」(オブジェクトファイル)間で各アドレスへアクセスしており、各オブジェクトファイル間のアクセスの始点から終点までを一つの区切りとすることで上記した基本処理単位(Fn[1])として抜き出される。なお、図3は、実施例1に係る実行ログ全体の各アドレスへのアクセスと基本処理単位との関係を示す図である。
アクセス処理部21は、ソフトウェアモデルを実機またはシミュレーションソフトウェアで実行して得られる実行履歴である実行ログに基づいて、ソフトウェアモデルで実行される処理の実行単位である基本処理単位に分割する。そして、アクセス処理部21は、分割された基本処理単位の処理量を、実行ログに保持される命令アドレス列の数またはデータアクセスのアドレス列の数から算出する。続いて、アクセス処理部21は、算出された処理量と所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更する。その後、アクセス処理部21は、ハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行する。
具体的に例を挙げると、アクセス処理部21は、実行ログに基づいてソフトウェアモデルで実行される処理の実行単位である基本処理単位に分割する。そして、アクセス処理部21は、分割された基本処理単位の処理量を、実行ログが保持している処理実行時の分岐先アドレス情報である命令アドレス列の数やデータベースにアクセスするためのアクセス先アドレス情報であるデータアクセスのアドレス列の数などを基本処理単位の処理量として算出する。
続いて、アクセス処理部21は、算出された処理量と所定の閾値の処理量とを比較して、所定の閾値の処理量を超える処理量である実行ログを有する基本処理単位を、ソフトウェア処理から直接バス30に接続するようにハードウェア処理に配置構成を変更してハードウェア化する。その後、アクセス処理部21は、スケジューラ部20によりプロセス処理の依頼を受け付けると、ハードウェアモデルに配置構成を変更してハードウェア化された基本処理単位に対して、命令実行時間、命令フェッチ時間およびデータアクセス時間を計測しつつ、命令キャッシュ(I−cache)、データキャッシュ(D−cache)を経由してバスアクセスを実行することにより性能評価シミュレーションを実行する。
スケジューラ部20は、アクセス処理部21により実行されたシミュレーション処理から性能評価の基となる統計情報を作成する。上記した例で具体的に説明すると、スケジューラ部20は、発生したイベントをトリガとして、対応する機能モジュール(基本処理単位)にプロセス処理を依頼する。そして、スケジューラ部20は、アクセス処理部21により実行されたシミュレーション結果から、CPU負荷率などの性能評価の基となる統計情報を作成する。この統計情報は、例えば、図4に示すように、基本処理単位「Fn[1]」ごとに命令実行時間「100ナノ秒」、命令フェッチ時間「3ナノ秒」、データアクセス時間「2ナノ秒」、CPU負荷率「30%」などの情報が格納されている。また、このアクセス処理部21は、外部RAMや周辺HWなどとバス30を介して接続されるインタフェースのポートIDと、機能モジュール11−1〜11−nのブロックIDとを一元管理しており、アクセス処理部21にプロセス処理を依頼する機能モジュールの順序とその配置とを把握している。なお、図4は、実施例1に係る統計情報の例を示す図である。
[LSIの開発フロー]
次に、図5を用いて、LSIの開発フローを説明する。図5は、LSIの開発フローを説明するための図である。なお、このLSIは、実施例1に係る性能評価シミュレーション装置の処理を含むLSI全体の設計を行うものである。
図5に示すように、仕様が作成されると(ステップS601肯定)、作成された仕様からシステム要求を分析する(ステップS602)。そして、分析したシステム要求からアルゴリズムを検討する方式設計を行なって(ステップS603)、性能評価やSW/HW分割の検討などによりアーキテクチャ設計を行なう(ステップS604)。続いて、ハードウェア部分においてRTLの論理設計を行い(ステップS605)、当該ハードウェアの物理設計を行なう(ステップS606)。また、ソフトウェア部分においてソフトウェア開発を行う(ステップS607)。その後、ハードウェアとソフトウェアとを組み合わせて実機モデルを作成し(ステップS608)、製品を出荷することとなる(ステップS609)。
[実施例1に係る性能評価シミュレーション装置による処理]
次に、図6を用いて、実施例1に係る性能評価シミュレーション装置10によるシミュレーション処理を説明する。図6は、実施例1に係る性能評価シミュレーション装置10によるシミュレーション処理を示すフローチャートである。なお、図6において説明する処理は、図5で示したステップS604のアーキテクチャ設計の部分である。
図6に示すように、性能評価シミュレーション装置10は、仕様が作成されると(ステップS101肯定)、ソフトウェアの処理とハードウェアの処理とに分割して(ステップS102)、ソフトウェアモデルである仮ソフトウェアと、ハードウェアモデルである動作モデルとを出力し(ステップS103およびステップS104)、出力した仮ソフトウェアを実機上またはISSなどを利用してターゲットCPU上で実行した結果から得られる実行履歴である実行ログが出力されると(ステップS105およびステップS106)、当該実行ログに基づいてソフトウェアモデルで実現される処理の実行単位である基本処理単位に分割する(ステップS107)。
そして、性能評価シミュレーション装置10は、分割された基本処理単位の処理量を、実行ログが保持している処理実行時の分岐先アドレス情報である命令アドレス列の数やデータベースにアクセスするためのアクセス先アドレス情報であるデータアクセスのアドレス列の数などを基本処理単位の処理量として算出する(ステップS108)。
続いて、性能評価シミュレーション装置10は、算出された処理量と所定の閾値の処理量とを比較する(ステップS109)。その後、性能評価シミュレーション装置10は、比較した結果、所定の閾値の処理量を超える処理量である実行ログを有する基本処理単位を、ソフトウェア処理から直接バスに接続するようにハードウェア処理に配置構成を変更してハードウェア化する(ステップS110)。なお、性能評価シミュレーション装置10は、基本処理単位をハードウェアに配置構成を変更する場合に、所定の閾値の処理量を超える基本処理単位に該当する機能モジュールを、ブロックIDを元に検索して当該機能モジュールの配置構成を変更する。つまり、性能評価シミュレーション装置10は、CPU内から直接バスに接続できるポートへ移動させることで、機能モジュールの作業をCPUのソフトウェア処理からハードウェア化する。
そして、性能評価シミュレーション装置10は、ハードウェアモデルに配置構成を変更してハードウェア化された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令実行時間、命令フェッチ時間およびデータアクセス時間を計測しつつ、命令キャッシュ、データキャッシュを経由してバスアクセスを実行することにより性能評価シミュレーションを実行する。続いて、性能評価シミュレーション装置10は、命令実行時間、命令フェッチ時間、データアクセス時間からCPU負荷率などの性能評価の基となる統計情報を作成する(ステップS111)。
次に、図7を用いて、実施例1に係る性能評価シミュレーション装置10によるSW/HW分割処理について説明する。図7は、実施例1に係る性能評価シミュレーション装置10によるSW/HW分割処理について説明するための図である。
図7に示すように、性能評価シミュレーション装置10は、SW/HWの分割条件である基本処理単位に対する処理量の閾値(所定の閾値)を決定する(ステップS201)。そして、性能評価シミュレーション装置10は、基本処理単位に分割した実行ログに保持されている命令アドレス列やデータアクセスのアドレス列の数などをカウントして、これらのカウント数のいずれか(または合計)から基本処理単位の処理量を算出する(ステップS202〜ステップS204)。
続いて、性能評価シミュレーション装置10は、算出した処理量が所定の閾値を超える場合に(ステップS205肯定)、当該閾値を超える実行ログに対応する基本処理単位をブロックIDにより検索する(ステップS206)。その後、性能評価シミュレーション装置10は、検索した基本処理単位を、直接バス接続可能なポートに割り当てるとともに、基本処理単位のハードウェアへの配置構成の変更にあわせてポートIDを変更する(ステップS207およびステップS208)。
そして、性能評価シミュレーション装置10は、ハードウェア化された基本処理単位のキャッシュアクセスが不要になり、RAMに直接アクセスすることが必要になるが、実行ログも命令フェッチが不要になることから命令アドレス列を削除して、シミュレーション実行においてデータアクセスのみ抽出することとなる(ステップS209およびステップS210)。
[実施例1による効果]
このようにして、実施例1によれば、性能評価シミュレーション装置10は、実行ログに保持される情報を用いて、各処理のSW/HW分割を行うとともに、命令実行時間、命令フェッチ時間、データアクセス時間を計測しつつ、命令キャッシュ、データキャッシュを経由してバスアクセスを実行することによりシミュレーションを実行するので、設計初期にSW/HW分割を最適に行なうことが可能であるとともに、SW/HW分割の妥当性を判断することが可能である。
例えば、性能評価シミュレーション装置10は、実行ログに保持される命令アドレス列の数またはデータアクセスのアドレス列の数のいずれか、または合計により基本処理単位の処理量を算出して、当該処理量が所定の閾値を超える基本処理単位をハードウェアモデルに配置構成を変更する。そして、性能評価シミュレーション装置10は、ハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行して、命令実行時間、命令フェッチ時間およびデータアクセス時間などの統計情報を作成する。この結果、性能評価シミュレーション装置10は、設計初期にSW/HW分割を最適に行なうことが可能であるとともに、SW/HW分割の妥当性を判断することが可能である。
ところで、上記実施例1では、実行ログに基づいて分割される基本処理単位を一つの実行単位として構成される場合についてのハードウェア化について説明したが、本発明はこれに限定されるものではなく、当該基本処理単位を第一のブロックと第二のブロックとから構成してハードウェア化を検討することもできる。
そこで、以下の実施例2では、図8〜12を用いて、実施例2に係る基本処理単位を第一のブロックと第二のブロックとから構成した場合のハードウェア化の詳細について説明する。また、図8は、CPUモデルが周期的にイベントを行なう際の時間とCPU処理量との関係を示す図であり、図9は、実施例2に係るCPU内の機能モジュールの一部をハードウェア化した場合のイベント処理を示す図であり、図10は、実施例2に係るUMLクラスの例を示す図であり、図11は、実施例2に係るSystemC言語による記述例を示す図であり、図12は、実施例2に係るハードウェアモデルの抽象度とシミュレーション処理との関係を示す図である。なお、実施例2に係る性能評価シミュレーション装置10の構成や機能などは、実施例1と同様であるためその説明を省略する。
[CPUモデルが周期的にイベントを行なう際の時間とCPU処理量との関係]
実施例2において、図8を用いて、CPUモデルが周期的にイベントを行なう際の時間とCPU処理量との関係を説明する。図8において、各基本処理単位は、基本処理単位を複数組み合わせたプロセス処理単位に応じて各基本処理単位固有の機能を記述するwhitebox部と、統計情報を収集するための処理を行うblackbox部とから構成される。また、プロセス処理とは、基本処理単位を複数組み合わせて実行する処理であり、イベントとは、基本処理単位のみの処理を含むプロセス処理の組み合わせからなるものである。なお、図8に示す図の縦軸を「CPU処理量」、横軸を「時間」としてCPU処理量と時間との関係についても説明する。
図8に示すように、例えば、性能評価シミュレーション装置10は、周期イベントAが発生すると、当該イベントAをトリガとして基本処理単位Fn[1]、Fn[2]を続けて呼び出す。そして、性能評価シミュレーション装置10は、周期イベントBが発生すると、当該イベントBをトリガとして基本処理単位Fn[2]、Fn[3]、Fn[1]を続けて呼び出す。その後、性能評価シミュレーション装置10は、周期イベントCが発生すると、当該イベントCをトリガとして基本処理単位Fn[1]を呼び出す。
この基本処理単位である機能モジュールは、whitebox部により各プロセス処理に応じてblackbox部の呼び出しが行なわれてから、blackbox部により命令実行時間、命令フェッチ時間およびデータアクセス時間などの統計情報が収集される。また、基本処理の処理時間は、「whitebox+blackbox×呼び出し回数」により決定され、多くの処理時間がかかるとCPU処理量も増加する。なお、イベントや基本処理単位には、優先順位を与えて時間的に衝突することを避けて処理が行われる。
[CPU内の機能モジュールの一部をハードウェア化した場合のイベント処理]
次に、図9を用いて、CPU内の機能モジュールの一部をハードウェア化した場合のイベント処理を説明する。図9において、各基本処理単位の構成などは、図8に示したものと同様であるのでその説明を省略して、処理量の多い基本処理単位をハードウェア化する際のイベント処理について説明する。
図9に示すように、性能評価シミュレーション装置10は、処理量が所定の閾値を超える基本処理単位Fn[3]を、ハードウェアに配置構成を変更する。基本処理単位のハードウェア化においては、図9に示すように、ハードウェア化された基本処理単位Fn[3]の処理時間が短縮されるとともに、イベントB全体のCPU処理量が減少する。
つまり、性能評価シミュレーション装置10は、負荷の大きな機能モジュールをハードウェア化するので、CPU処理量を削減することが可能である。また、ハードウェア化した機能モジュールは、直接RAMにアクセスするため、命令実行列が不要となり、さらに、データアクセスするアドレスの範囲も限定されるため、D−cache(データアクセス時に利用されるキャッシュ)にアクセスするよりも時間が短縮される結果、blackbox部の処理時間が短縮されて、プロセス処理全体での処理時間を短縮することが可能である。なお、SW/HW分割の閾値の設定は、ハードウェア化する機能モジュールが増加することに伴って、当該ハードウェア化のための実装面積の増大や消費電力の増大やバス占有率の上昇などを考慮して設定するべきである。
[ハードウェアモデルの抽象度とシミュレーション処理との関係]
次に、図10、図11を用いて、実施例2に係るUMLクラスの例とSystemC言語による記述例とを、図12を用いて、実施例2に係るハードウェアモデルの抽象度とシミュレーション処理との関係を説明する。なお、図10または図11に示す「Fn_*」は、各機能モジュールを、「Fn_if」は、各機能モジュール共通インタフェースを、「Fn_*.h」は、各機能モジュールのヘッダ部を、「Fn_*.cpp」は、ソースコードを、「Fn_if.h」は、機能モジュール共通インタフェースのヘッダ部を、「Fn_if.cpp」は、ソースコードを表している。
機能モジュールを構成するwhiteboxとblackboxとのうち、統計情報を収集するための処理を行うblackbox部を機能モジュール共通インタフェースに配置する。また、性能検証の目的やハードウェアモデルの完成度に応じて各モジュール固有の機能を記述するwhitebox部を各機能モジュールのプロセス処理「do_process()」内に配置する。
そして、スケジューラ部からプロセス処理「do_process()」を指示された各機能モジュール「Fn_*」は、whitebox部を実行する。続いて、whitebox部は、各モジュール固有の機能を実行した後、予めモジュール毎に定められた引数「x」を与えて関数「blackbox()」を呼び出す。その後、blackbox部は、引数「x」を基にして、基本処理単位の実行ログを取得し、当該実行ログから命令フェッチおよび/またはデータアクセスの処理回数を指定してCPUに負荷を発生させるとともに、命令実行時間などの統計情報を収集する。
[実施例2による効果]
このようにして、実施例2によれば、性能評価シミュレーション装置10は、各基本処理単位固有の機能の実行とは無関係にCPU負荷を与えるので、各基本処理単位の完成度に依存せずにキャッシュ解析やCPU統計情報などの取得が可能である。
つまり、性能評価シミュレーション装置10は、図12に示すように、whitebox部に記述した各機能モジュール固有の機能の実行とは無関係に、LSI設計の進捗に応じてハードウェアモデルの抽象度を変更しても、性能評価シミュレーションおよびSW/HW分割の最適な検討が可能である。
[基本処理単位で閾値を決定]
ここで、上記実施例1では、SW/HW分割における基本処理単位の所定の閾値と処理量とを比較してシミュレーションを実行する場合を説明したが、本発明はこれに限定されるものではなく、CPU負荷率によりSW/HW分割における基本処理単位の所定の閾値を変更して、当該所定の閾値と処理量とを比較してシミュレーションを実行することもできる。
そこで、以下の実施例3では、図13を用いて、実施例3に係る性能評価シミュレーション処理について説明する。図13は、実施例3に係る性能評価シミュレーション処理について説明するための図である。ここで、実施例3においては、予めターゲットプロセッサ内に機能モジュールを全て内包した状態で性能評価シミュレーションを行い、実行ログの命令実行数、データロード数およびデータストア数と、CPUの判定条件(例えば、CPU負荷率やバス占有率など)との相関を取っておく。
図13に示すように、性能評価シミュレーション装置10は、CPU負荷率などからCPU性能の判定閾値を設定して(ステップS301)、SW/HW分割条件である基本処理単位に対する所定の閾値を決定する(ステップS302)。そして、性能評価シミュレーション装置10は、実施例1と同様に、基本処理単位に分割した実行ログに保持されている命令アドレス列やデータアクセスのアドレス列の数などをカウントして、これらのカウント数のいずれか(または合計)から基本処理単位の処理量を算出する(ステップS303〜ステップS305)。
続いて、性能評価シミュレーション装置10は、算出した処理量が所定の閾値を超える場合に(ステップS306肯定)、当該閾値を超える実行ログに対応する基本処理単位をブロックIDにより検索する(ステップS307)。その後、性能評価シミュレーション装置10は、検索した基本処理単位を、直接バス接続可能なポートに割り当てるとともに、基本処理単位のハードウェアへの配置構成の変更にあわせてポートIDを変更する(ステップS308およびステップS309)。
そして、性能評価シミュレーション装置10は、ハードウェア化された基本処理単位のキャッシュアクセスが不要になり、RAMに直接アクセスすることが必要になるが、実行ログも命令フェッチが不要になることから命令アドレス列を削除して、シミュレーション実行においてデータアクセスのみ抽出することとなる(ステップS310およびステップS311)。その後、性能評価シミュレーション装置10は、CPU性能の判定条件を満たさない場合に(ステップS312肯定)、ステップS302に戻って、基本処理単位の処理量の閾値を決定(修正)する。なお、基本処理単位の処理量の閾値の修正幅としては、予め求めている実行ログの処理量とCPU性能の判定条件との相関から計算するか、または、基本処理単位の大きい(または小さい)順に機能モジュールを一つずつハードウェア化してシミュレーションを実行して、当該CPU性能の判定条件を満たすまで処理を繰り返す。
[実施例3による効果]
このようにして、実施例3によれば、性能評価シミュレーション装置10は、性能評価結果のCPU性能判定条件を満たせない場合に、基本処理単位の判定閾値を変更するので、より高精度なシミュレーションを実行してSW/HW分割の妥当性を判断することが可能である。
[プロセス処理単位で閾値を決定]
ここで、上記実施例1では、SW/HW分割における基本処理単位の所定の閾値と処理量とを比較してシミュレーションを実行する場合を説明したが、本発明はこれに限定されるものではなく、CPU負荷率によりSW/HW分割におけるプロセス処理単位の所定の閾値を変更して、当該所定の閾値と処理量とを比較してシミュレーションを実行することもできる。
そこで、以下の実施例4では、図14、図15を用いて、実施例4に係る性能評価シミュレーション処理について説明する。図14は、実施例4に係る性能評価シミュレーション処理について説明するための図であり、図15は、実施例4に係るCPU内のプロセス処理の一部をハードウェア化した場合のイベント処理を説明するための図である。ここで、実施例4においては、予め実行ログの命令実行数およびデータアクセス数と、CPUの判定条件(例えば、CPU負荷率など)との相関を取っておく。
図14に示すように、性能評価シミュレーション装置10は、CPU負荷率などからCPU性能の判定閾値を設定して(ステップS401)、SW/HW分割条件であるプロセス処理単位に対する所定の閾値を決定する(ステップS402)。そして、性能評価シミュレーション装置10は、実施例1と同様に、基本処理単位に分割した実行ログに保持されている命令アドレス列やデータアクセスのアドレス列の数などをカウントして、これらのカウント数のいずれか(または合計)からプロセス処理単位の処理量を算出する(ステップS403〜ステップS405)。
続いて、性能評価シミュレーション装置10は、算出した処理量が所定の閾値を超える場合に(ステップS406肯定)、当該閾値を超える実行ログに対応する基本処理単位をブロックIDにより検索する(ステップS407)。その後、性能評価シミュレーション装置10は、検索した基本処理単位を、直接バス接続可能なポートに割り当てるとともに、プロセス処理単位のハードウェアへの配置構成の変更にあわせてポートIDを変更する(ステップS408およびステップS409)。
そして、性能評価シミュレーション装置10は、ハードウェア化されたプロセス処理単位のキャッシュアクセスが不要になり、RAMに直接アクセスすることが必要になるが、実行ログも命令フェッチが不要になることから命令アドレス列を削除して、シミュレーション実行においてデータアクセスのみ抽出することとなる(ステップS410およびステップS411)。その後、性能評価シミュレーション装置10は、CPU性能の判定条件を満たさない場合に(ステップS412肯定)、ステップS402に戻って、プロセス処理単位の処理量の閾値を決定(修正)する。なお、プロセス処理単位の処理量の閾値の修正幅としては、予め求めている実行ログの命令実行数およびデータアクセス数と、CPUの判定条件との相関から計算するか、または、プロセス処理単位の大きい(または小さい)順に機能モジュールを一つずつハードウェア化してシミュレーションを実行して、当該CPU性能の判定条件を満たすまで処理を繰り返す。
また、図15に示すように、性能評価シミュレーション装置10は、処理量が所定の閾値を超えるプロセス処理単位Fn[3]およびFn[1]を、ハードウェアに配置構成を変更する。プロセス処理単位のハードウェア化においては、図15に示すように、ハードウェア化されたプロセス処理単位Fn[3]およびFn[1]の処理時間が短縮されるとともに、イベントB全体のCPU処理量が減少する。
つまり、性能評価シミュレーション装置10は、負荷の大きな機能モジュールをプロセス処理単位でハードウェア化するので、CPU処理量を削減することが可能である。また、ハードウェア化した機能モジュールは、直接RAMにアクセスするため、命令実行列が不要となり、さらに、データアクセスするアドレスの範囲も限定されるため、D−cache(データアクセス時に利用されるキャッシュ)にアクセスするよりも時間が短縮される結果、blackbox部の処理時間が短縮されて、プロセス処理全体での処理時間を短縮することが可能である。
[実施例4による効果]
このようにして、実施例4によれば、性能評価シミュレーション装置10は、性能評価結果のCPU性能判定条件を満たせない場合に、プロセス処理単位の判定閾値を変更するので、より高精度なシミュレーションを実行してSW/HW分割の妥当性を判断することが可能である。
[実行ログのファイルサイズを利用]
また、上記実施例1では、SW/HW分割における基本処理単位の所定の閾値を予め決定してシミュレーションを実行する場合を説明したが、本発明はこれに限定されるものではなく、SW/HW分割における基本処理単位の所定の閾値を実行ログのファイルサイズを用いて決定することもできる。
そこで、以下の実施例5では、図16を用いて、実施例5に係るSW/HW分割の閾値に実行ログのファイルサイズを利用する場合を説明する。図16は、実施例5に係るSW/HW分割の閾値に実行ログのファイルサイズを利用する場合を説明するための図である。
図16に示すように、性能評価シミュレーション装置10は、基本処理単位に分割した実行ログに保持されている命令アドレス列やデータアクセスのアドレス列の数などをカウントして、ターゲットプロセッサ内に機能モジュールを全て内包した状態でシミュレーションを実行して得られる統計情報からCPU処理量を算出する(ステップS501〜ステップS504)。
そして、性能評価シミュレーション装置10は、算出したCPU処理量を用いて、実行ログの命令実行数、データロード数およびデータストア数と、CPUの判定条件(例えば、CPU負荷率など)との相関を取る(ステップS505)。続いて、性能評価シミュレーション装置10は、基本処理単位に分割した実行ログの各ファイルサイズと、ファイル内の命令実行数および/またはデータアクセス数との相関を取る(ステップS506)。その後、性能評価シミュレーション装置10は、ステップS505とステップS506との結果から、CPU処理量と基本処理単位の実行ログのファイルサイズとの相関を求める(ステップS507)。上記した処理に基づいて、性能評価シミュレーション装置10は、SW/HW分割の閾値を実行ログのファイルサイズで行なうこととなる。
[実施例5による効果]
このようにして、実施例5によれば、性能評価シミュレーション装置10は、SW/HW分割の閾値に実行ログのファイルサイズを利用するので、より高精度なシミュレーションを実行することが可能である。
[アドオンCPUの利用によるマルチコア化の検討]
また、上記実施例1では、性能評価シミュレーションの実行により最適なSW/HW分割の妥当性を判断する場合を説明したが、本発明はこれに限定されるものではなく、SW/SW分割によるマルチコア化を検討することもできる。
そこで、以下の実施例6では、図17を用いて、実施例6に係るアドオンCPUの利用によるマルチコア化の検討について説明する。図17は、実施例6に係るアドオンCPUの利用によるマルチコア化の検討について説明するための図である。ここでは、性能評価の対象である性能評価シミュレーション装置の外部に新たにバスモデルを構成し、当該バス上にADDON−CPU、I−cache、D−cache、必要に応じて周辺部のHWを配置する性能評価シミュレーション環境を構築する。なお、ADDON−CPU、I−cache、D−cacheの構成は、CPUと同様のものであり、各モジュールの配置および処理順序を管理するためのポートIDとブロックIDとは、重複することのないようにして実行する。
図17に示すように、例えば、性能評価シミュレーション装置10は、SW/HW分割の所定の閾値に従って、該当する機能モジュールFn[n]をCPUモジュール内から切り離してADDON−CPU内のインタフェースに配置し、当該機能モジュールFn[n]のポートIDを変更する。そして、シミュレーション実行結果から得られる統計情報は、CPUとADDON−CPUとで個別に収集して、ソフトウェア処理を複数のCPUに分割した場合の効果をキャッシュ解析する。
つまり、性能評価シミュレーション装置10は、CPUにおいて閾値によりハードウェア化されるべき機能モジュールをADDON−CPUに振り分けて出力する結果、ソフトウェア×ソフトウェアの形で出力されることとなる。
[実施例6による効果]
このようにして、実施例6によれば、性能評価シミュレーション装置10は、CPUにおいてSW/HW分割の閾値からハードウェア化されるべき機能モジュールをADDON−CPUに振り分けて出力するので、一つのCPU内に複数のCPUコアが存在するマルチコア化を検討することが可能である。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも
種々の異なる形態にて実施されてよいものである。そこで、(1)性能評価シミュレーション装置の構成、(2)性能評価シミュレーション装置を一つの設計プロセスとして含む電子装置、(3)プログラムにおいて異なる実施例を説明する。
(1)性能評価シミュレーション装置の構成
また、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメタを含む情報(例えば、図2に示す「統計情報」などが記憶している情報)については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、例えば、アクセス処理部21を、実行ログに基づいて基本処理単位に分割する基本処理単位分割部と、基本処理単位の処理量を算出する処理量算出部と、基本処理単位をハードウェアに配置構成を変更する配置構成変更部と、性能評価シミュレーションを実行するシミュレーション実行部として分散するなど、その全部または一部を、各種の負担や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
(2)性能評価シミュレーション装置を一つの設計プロセスとして含む電子装置
また、上記の実施例では、ソフトウェアモデルとハードウェアモデルとを最適にSWとHWとに分割するための性能評価シミュレーション装置として説明したが、本発明はこれに限定されるものではなく、当該性能評価シミュレーション装置を一つの設計プロセスとして含む電子装置として処理することもできる。
例えば、電子装置は、システムの仕様からソフトウェアとハードウェアとでそれぞれ実行される処理を仮決定したソフトウェアモデルとハードウェアモデルとを受け付けて、受け付けたソフトウェアモデルとハードウェアモデルとを用いて、上記した性能評価シミュレーションを実行して作成された統計情報に基づいて再分割されたソフトウェアとハードウェアとをLSIに搭載する。
(3)プログラム
ところで、上記の実施例では、ハードウェアロジックによって各種の処理を実現する場合を説明したが、本発明はこれに限定されるものではなく、あらかじめ用意されたプログラムをコンピュータで実行することによって実現するようにしてもよい。そこで、以下では、図18を用いて、上記の実施例に示した性能評価シミュレーション装置と同様の機能を有する性能評価シミュレーションプログラムを実行するコンピュータの一例を説明する。図18は、性能評価シミュレーションプログラムを実行するコンピュータを示す図である。
図18に示すように、性能評価シミュレーション装置としてのコンピュータ110は、HDD130、CPU140、ROM150およびRAM160をバス180などで接続して構成される。
ROM150には、上記の実施例1に示した性能評価シミュレーション装置10と同様の機能を発揮する性能評価シミュレーションプログラム、つまり、図18に示すように基本処理単位分割プログラム150aと、処理量算出プログラム150bと、配置構成変更プログラム150cと、統計情報作成プログラム150dとが、あらかじめ記憶されている。なお、これらのプログラム150a〜プログラム150dについては、図2に示した性能評価シミュレーション装置10の各構成要素と同様、適宜統合または、分散してもよい。
そして、CPU140がこれらのプログラム150a〜プログラム150dをROM150から読み出して実行することで、図18に示すように、プログラム150a〜プログラム150dは、基本処理単位分割プロセス140aと、処理量算出プロセス140bと、配置構成変更プロセス140cと、統計情報作成プロセス140dとして機能するようになる。なお、プロセス140a〜プロセス140dは、図2に示した、スケジューラ部20とアクセス処理部21とに対応する。
そして、CPU140はRAM160に記録されたデータに基づいて性能評価シミュレーションプログラムを実行する。
なお、上記した各プログラム150a〜プログラム150dについては、必ずしも最初からROM150に記憶させておく必要はなく、例えば、コンピュータ110に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」、またはコンピュータ110の内外に備えられるHDDなどの「固定用の物理媒体」、さらには公衆回線、インターネット、LAN、WANなどを介してコンピュータ110に接続される「他のコンピュータ(またはサーバ)」などに各プログラムを記憶させておき、コンピュータ110がこれらから各プログラムを読み出して実行するようにしてもよい。
(付記1)システムの仕様からソフトウェアとハードウェアとを用いてそれぞれ実行される処理を仮決定したソフトウェアモデルとハードウェアモデルとに対して、シミュレーションを実行して性能を評価する性能評価シミュレーション装置であって、
前記ソフトウェアモデルを実機またはシミュレーションソフトウェアで実行して得られた実行履歴である実行ログに基づいて、前記ソフトウェアモデルで実行される処理の実行単位である基本処理単位に分割する基本処理単位分割手段と、
前記基本処理単位分割手段により分割された基本処理単位の処理量を、前記実行ログに保持される命令アドレス列の数またはデータアクセスのアドレス列の数から算出する処理量算出手段と、
前記処理量算出手段により算出された処理量と所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更する配置構成変更手段と、
前記配置構成変更手段によりハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行し、前記システムの動作解析に必要なデータを計測して、性能評価の基となる統計情報を作成する統計情報作成手段と、
を備えたことを特徴とする性能評価シミュレーション装置。
(付記2)前記統計情報作成手段は、前記配置構成変更手段によりハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを所定の回数分実行し、前記システムの動作解析に必要なデータを計測して、性能評価の基となる統計情報を作成することを特徴とする付記1に記載の性能評価シミュレーション装置。
(付記3)前記基本処理単位は、当該基本処理単位を複数組み合わせたプロセス処理単位に応じて各基本処理単位固有の機能を記述する第一のブロックと、前記統計情報を収集するための処理を行う第二のブロックとから構成されるものであって、
前記統計情報作成手段は、前記配置構成変更手段によりハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とを複数組み合わせたプロセス処理において、前記第一のブロックにより各基本処理単位固有の機能が実行されて第二のブロックを呼出し、呼出された第二のブロックにおいて当該プロセス処理に負荷をかけて、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行して、前記システムの動作解析に必要なデータを計測して、性能評価の基となる統計情報を作成することを特徴とする付記1に記載の性能評価シミュレーション装置。
(付記4)前記性能評価シミュレーションを実行するターゲットプロセッサの性能評価結果の判定条件を設定する判定条件設定手段をさらに備え、
前記配置構成変更手段は、前記性能評価シミュレーション実行後に得られた統計情報が前記判定条件設定手段により設定される判定条件を満たさない場合に、所定の閾値を変更し、前記処理量算出手段により算出された処理量と当該変更された所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更し、
前記統計情報作成手段は、前記配置構成変更手段によりハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行して、前記システムの動作解析に必要なデータを計測して、性能評価の基となる統計情報を作成することを特徴とする付記1に記載の性能評価シミュレーション装置。
(付記5)前記性能評価シミュレーションを実行するターゲットプロセッサの性能評価結果の判定条件を設定する判定条件設定手段をさらに備え、
前記処理量算出手段は、前記基本処理単位分割手段により分割された基本処理単位を複数組み合わせたプロセス処理単位の処理量を、前記実行ログに保持される命令アドレス列の数またはデータアクセスのアドレス列の数から算出し、
前記配置構成変更手段は、前記性能評価シミュレーション実行後に得られた統計情報が前記判定条件設定手段により設定される判定条件を満たさない場合に、所定の閾値を変更し、前記処理量算出手段により算出された処理量と当該変更された所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更し、
前記統計情報作成手段は、前記配置構成変更手段によりハードウェアモデルに配置構成を変更されたプロセス処理単位と、ソフトウェアモデルに配置構成されているプロセス処理単位とに対して命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行して、前記システムの動作解析に必要なデータを計測して、性能評価の基となる統計情報を作成することを特徴とする付記1に記載の性能評価シミュレーション装置。
(付記6)前記配置構成変更手段において用いられる所定の閾値は、前記統計情報作成手段から得られる統計情報から算出する基本処理単位毎の性能評価結果と、当該基本処理単位の各実行ログのファイルサイズとに基づいて決定されるものであって、
前記配置構成変更手段は、前記処理量算出手段により算出された処理量と前記決定された所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更することを特徴とする付記1に記載の性能評価シミュレーション装置。
(付記7)前記システムの仕様からソフトウェアとハードウェアとを用いてそれぞれ実行される処理を仮決定したソフトウェアモデルとハードウェアモデルとに対して、シミュレーションを実行して性能を評価する性能評価シミュレーション装置と同等の機能を有する第二の性能評価シミュレーション装置を配置した性能評価シミュレーション装置であって、
前記配置構成変更手段は、前記処理量算出手段により算出された処理量と所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位を第二の性能評価シミュレーション装置に配置構成を変更することを特徴とする付記1に記載の性能評価シミュレーション装置。
(付記8)システムの仕様からソフトウェアとハードウェアとを用いてそれぞれ実行される処理を仮決定したソフトウェアモデルとハードウェアモデルとに対して、シミュレーションを実行して性能を評価する性能評価シミュレーション装置の性能評価シミュレーション方法であって、
前記ソフトウェアモデルを実機またはシミュレーションソフトウェアで実行して得られた実行履歴である実行ログに基づいて、前記ソフトウェアモデルで実行される処理の実行単位である基本処理単位に分割する基本処理単位分割工程と、
前記基本処理単位分割工程により分割された基本処理単位の処理量を、前記実行ログに保持される命令アドレス列の数またはデータアクセスのアドレス列の数から算出する処理量算出工程と、
前記処理量算出工程により算出された処理量と所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更する配置構成変更工程と、
前記配置構成変更工程によりハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行し、前記システムの動作解析に必要なデータを計測して、性能評価の基となる統計情報を作成する統計情報作成工程と、
を含んだことを特徴とする性能評価シミュレーション方法。
(付記9)システムの仕様からソフトウェアとハードウェアとを用いてそれぞれ実行される処理を仮決定したソフトウェアモデルとハードウェアモデルとに対して、シミュレーションを実行して性能を評価する方法をコンピュータに実行させる性能評価シミュレーションプログラムであって、
前記ソフトウェアモデルを実機またはシミュレーションソフトウェアで実行して得られた実行履歴である実行ログに基づいて、前記ソフトウェアモデルで実行される処理の実行単位である基本処理単位に分割する基本処理単位分割手順と、
前記基本処理単位分割手順により分割された基本処理単位の処理量を、前記実行ログに保持される命令アドレス列の数またはデータアクセスのアドレス列の数から算出する処理量算出手順と、
前記処理量算出手順により算出された処理量と所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更する配置構成変更手順と、
前記配置構成変更手順によりハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行し、前記システムの動作解析に必要なデータを計測して、性能評価の基となる統計情報を作成する統計情報作成手順と、
をコンピュータに実行させることを特徴とする性能評価シミュレーションプログラム。
(付記10)システムの仕様からソフトウェアとハードウェアとでそれぞれ実行される処理に対してシミュレーションを行う性能評価シミュレーション装置を備え、前記性能評価シミュレーション装置によって得られた性能評価に基づいてLSIを設計する電子装置であって、
前記ソフトウェアモデルとハードウェアモデルとを受け付ける受付手段と、
前記受付手段により受け付けた前記ソフトウェアモデルを実機またはシミュレーションソフトウェアで実行して得られた実行履歴である実行ログに基づいて、前記ソフトウェアモデルで実行される処理の実行単位である基本処理単位に分割する基本処理単位分割手段と、
前記基本処理単位分割手段により分割された基本処理単位の処理量を、前記実行ログに保持される命令アドレス列の数またはデータアクセスのアドレス列の数から算出する処理量算出手段と、
前記処理量算出手段により算出された処理量と所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更する配置構成変更手段と、
前記配置構成変更手段によりハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行し、前記システムの動作解析に必要なデータを計測して、性能評価の基となる統計情報を作成する統計情報作成手段と、
前記統計情報作成手段により作成された統計情報に基づいて、ソフトウェアとハードウェアとをLSIに分割して搭載させるLSI生成手段と、
を備えたことを特徴とする電子装置。
(付記11)システムの仕様からソフトウェアとハードウェアとでそれぞれ実行される処理に対してシミュレーションを行う性能評価シミュレーション装置を備え、前記性能評価シミュレーション装置によって得られた性能評価に基づいてLSIを設計する電子装置のLSI設計方法であって、
前記ソフトウェアモデルとハードウェアモデルとを受け付ける受付工程と、
前記受付工程により受け付けた前記ソフトウェアモデルを実機またはシミュレーションソフトウェアで実行して得られた実行履歴である実行ログに基づいて、前記ソフトウェアモデルで実行される処理の実行単位である基本処理単位に分割する基本処理単位分割工程と、
前記基本処理単位分割工程により分割された基本処理単位の処理量を、前記実行ログに保持される命令アドレス列の数またはデータアクセスのアドレス列の数から算出する処理量算出工程と、
前記処理量算出工程により算出された処理量と所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更する配置構成変更工程と、
前記配置構成変更工程によりハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行し、前記システムの動作解析に必要なデータを計測して、性能評価の基となる統計情報を作成する統計情報作成工程と、
前記統計情報作成工程により作成された統計情報に基づいて、ソフトウェアとハードウェアとをLSIに分割して搭載させるLSI生成工程と、
を含んだことを特徴とするLSI設計方法。
(付記12)システムの仕様からソフトウェアとハードウェアとでそれぞれ実行される処理に対してシミュレーションを行う性能評価シミュレーション装置を備え、前記性能評価シミュレーション装置によって得られた性能評価に基づいてLSIを設計する方法をコンピュータに実行させるLSI設計プログラムであって、
前記ソフトウェアモデルとハードウェアモデルとを受け付ける受付手順と、
前記受付手順により受け付けた前記ソフトウェアモデルを実機またはシミュレーションソフトウェアで実行して得られた実行履歴である実行ログに基づいて、前記ソフトウェアモデルで実行される処理の実行単位である基本処理単位に分割する基本処理単位分割手順と、
前記基本処理単位分割手順により分割された基本処理単位の処理量を、前記実行ログに保持される命令アドレス列の数またはデータアクセスのアドレス列の数から算出する処理量算出手順と、
前記処理量算出手順により算出された処理量と所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更する配置構成変更手順と、
前記配置構成変更手順によりハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行し、前記システムの動作解析に必要なデータを計測して、性能評価の基となる統計情報を作成する統計情報作成手順と、
前記統計情報作成手順により作成された統計情報に基づいて、ソフトウェアとハードウェアとをLSIに分割して搭載させるLSI生成手順と、
をコンピュータに実行させることを特徴とするLSI設計プログラム。
実施例1に係る性能評価シミュレーション装置の概要および特徴を示す図である。 実施例1に係る性能評価シミュレーション装置の構成を示す図である。 実施例1に係る実行ログ全体の各アドレスへのアクセスと基本処理単位との関係を示す図である。 実施例1に係る統計情報の例を示す図である。 LSIの開発フローを示す図である。 実施例1に係る性能評価シミュレーション装置によるシミュレーション処理を示すフローチャートである。 実施例1に係る性能評価シミュレーション装置によるSW/HW分割処理について説明するための図である。 CPUモデルが周期的にイベントを行なう際の時間とCPU処理量との関係を示す図である。 実施例2に係るCPU内の機能モジュールの一部をハードウェア化した場合のイベント処理を示す図である。 実施例2に係るUMLクラスの例を示す図である。 実施例2に係るSystemC言語による記述例を示す図である。 実施例2に係るハードウェアモデルの抽象度とシミュレーション処理との関係を示す図である。 実施例3に係る性能評価シミュレーション処理について説明するための図である。 実施例4に係る性能評価シミュレーション処理について説明するための図である。 実施例4に係るCPU内のプロセス処理の一部をハードウェア化した場合のイベント処理を説明するための図である。 実施例5に係るSW/HW分割の閾値に実行ログのファイルサイズを利用する場合を説明するための図である。 実施例6に係るアドオンCPUの利用によるマルチコア化の検討について説明するための図である。 性能評価シミュレーションプログラムを実行するコンピュータを示す図である。
符号の説明
10 性能評価シミュレーション装置
11−1〜11−n 機能モジュール
20 スケジューラ部
21 アクセス処理部
30 バス

Claims (10)

  1. システムの仕様からソフトウェアとハードウェアとを用いてそれぞれ実行される処理を仮決定したソフトウェアモデルとハードウェアモデルとに対して、シミュレーションを実行して性能を評価する性能評価シミュレーション装置であって、
    前記ソフトウェアモデルを実機またはシミュレーションソフトウェアで実行して得られた実行履歴である実行ログに基づいて、前記ソフトウェアモデルで実行される処理の実行単位である基本処理単位に分割する基本処理単位分割手段と、
    前記基本処理単位分割手段により分割された基本処理単位の処理量を、前記実行ログに保持される命令アドレス列の数またはデータアクセスのアドレス列の数から算出する処理量算出手段と、
    前記処理量算出手段により算出された処理量と所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更する配置構成変更手段と、
    前記配置構成変更手段によりハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行し、前記システムの動作解析に必要なデータを計測して、性能評価の基となる統計情報を作成する統計情報作成手段と、
    を備えたことを特徴とする性能評価シミュレーション装置。
  2. 前記統計情報作成手段は、前記配置構成変更手段によりハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを所定の回数分実行し、前記システムの動作解析に必要なデータを計測して、性能評価の基となる統計情報を作成することを特徴とする請求項1に記載の性能評価シミュレーション装置。
  3. 前記基本処理単位は、当該基本処理単位を複数組み合わせたプロセス処理単位に応じて各基本処理単位固有の機能を記述する第一のブロックと、前記統計情報を収集するための処理を行う第二のブロックとから構成されるものであって、
    前記統計情報作成手段は、前記配置構成変更手段によりハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とを複数組み合わせたプロセス処理において、前記第一のブロックにより各基本処理単位固有の機能が実行されて第二のブロックを呼出し、呼出された第二のブロックにおいて当該プロセス処理に負荷をかけて、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行して、前記システムの動作解析に必要なデータを計測して、性能評価の基となる統計情報を作成することを特徴とする請求項1に記載の性能評価シミュレーション装置。
  4. 前記性能評価シミュレーションを実行するターゲットプロセッサの性能評価結果の判定条件を設定する判定条件設定手段をさらに備え、
    前記配置構成変更手段は、前記性能評価シミュレーション実行後に得られた統計情報が前記判定条件設定手段により設定される判定条件を満たさない場合に、所定の閾値を変更し、前記処理量算出手段により算出された処理量と当該変更された所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更し、
    前記統計情報作成手段は、前記配置構成変更手段によりハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行して、前記システムの動作解析に必要なデータを計測して、性能評価の基となる統計情報を作成することを特徴とする請求項1に記載の性能評価シミュレーション装置。
  5. 前記性能評価シミュレーションを実行するターゲットプロセッサの性能評価結果の判定条件を設定する判定条件設定手段をさらに備え、
    前記処理量算出手段は、前記基本処理単位分割手段により分割された基本処理単位を複数組み合わせたプロセス処理単位の処理量を、前記実行ログに保持される命令アドレス列の数またはデータアクセスのアドレス列の数から算出し、
    前記配置構成変更手段は、前記性能評価シミュレーション実行後に得られた統計情報が前記判定条件設定手段により設定される判定条件を満たさない場合に、所定の閾値を変更し、前記処理量算出手段により算出された処理量と当該変更された所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更し、
    前記統計情報作成手段は、前記配置構成変更手段によりハードウェアモデルに配置構成を変更されたプロセス処理単位と、ソフトウェアモデルに配置構成されているプロセス処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行して、前記システムの動作解析に必要なデータを計測して、性能評価の基となる統計情報を作成することを特徴とする請求項1に記載の性能評価シミュレーション装置。
  6. 前記配置構成変更手段において用いられる所定の閾値は、前記統計情報作成手段から得られる統計情報から算出する基本処理単位毎の性能評価結果と、当該基本処理単位の各実行ログのファイルサイズとに基づいて決定されるものであって、
    前記配置構成変更手段は、前記処理量算出手段により算出された処理量と前記決定された所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更することを特徴とする請求項1に記載の性能評価シミュレーション装置。
  7. 前記システムの仕様からソフトウェアとハードウェアとを用いてそれぞれ実行される処理を仮決定したソフトウェアモデルとハードウェアモデルとに対して、シミュレーションを実行して性能を評価する性能評価シミュレーション装置と同等の機能を有する第二の性能評価シミュレーション装置を配置した性能評価シミュレーション装置であって、
    前記配置構成変更手段は、前記処理量算出手段により算出された処理量と所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位を第二の性能評価シミュレーション装置に配置構成を変更することを特徴とする請求項1に記載の性能評価シミュレーション装置。
  8. システムの仕様からソフトウェアとハードウェアとを用いてそれぞれ実行される処理を仮決定したソフトウェアモデルとハードウェアモデルとに対して、シミュレーションを実行して性能を評価する性能評価シミュレーション装置の性能評価シミュレーション方法であって、
    前記ソフトウェアモデルを実機またはシミュレーションソフトウェアで実行して得られた実行履歴である実行ログに基づいて、前記ソフトウェアモデルで実行される処理の実行単位である基本処理単位に分割する基本処理単位分割工程と、
    前記基本処理単位分割工程により分割された基本処理単位の処理量を、前記実行ログに保持される命令アドレス列の数またはデータアクセスのアドレス列の数から算出する処理量算出工程と、
    前記処理量算出工程により算出された処理量と所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更する配置構成変更工程と、
    前記配置構成変更工程によりハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行し、前記システムの動作解析に必要なデータを計測して、性能評価の基となる統計情報を作成する統計情報作成工程と、
    を含んだことを特徴とする性能評価シミュレーション方法。
  9. システムの仕様からソフトウェアとハードウェアとを用いてそれぞれ実行される処理を仮決定したソフトウェアモデルとハードウェアモデルとに対して、シミュレーションを実行して性能を評価する方法をコンピュータに実行させる性能評価シミュレーションプログラムであって、
    前記ソフトウェアモデルを実機またはシミュレーションソフトウェアで実行して得られた実行履歴である実行ログに基づいて、前記ソフトウェアモデルで実行される処理の実行単位である基本処理単位に分割する基本処理単位分割手順と、
    前記基本処理単位分割手順により分割された基本処理単位の処理量を、前記実行ログに保持される命令アドレス列の数またはデータアクセスのアドレス列の数から算出する処理量算出手順と、
    前記処理量算出手順により算出された処理量と所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更する配置構成変更手順と、
    前記配置構成変更手順によりハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行し、前記システムの動作解析に必要なデータを計測して、性能評価の基となる統計情報を作成する統計情報作成手順と、
    をコンピュータに実行させることを特徴とする性能評価シミュレーションプログラム。
  10. システムの仕様からソフトウェアとハードウェアとでそれぞれ実行される処理に対してシミュレーションを行う性能評価シミュレーション装置を備え、前記性能評価シミュレーション装置によって得られた性能評価に基づいてLSIを設計する電子装置であって、
    前記ソフトウェアモデルとハードウェアモデルとを受け付ける受付手段と、
    前記受付手段により受け付けた前記ソフトウェアモデルを実機またはシミュレーションソフトウェアで実行して得られた実行履歴である実行ログに基づいて、前記ソフトウェアモデルで実行される処理の実行単位である基本処理単位に分割する基本処理単位分割手段と、
    前記基本処理単位分割手段により分割された基本処理単位の処理量を、前記実行ログに保持される命令アドレス列の数またはデータアクセスのアドレス列の数から算出する処理量算出手段と、
    前記処理量算出手段により算出された処理量と所定の閾値とを比較して、当該所定の閾値を超える処理量を有する基本処理単位をソフトウェアモデルからハードウェアモデルに配置構成を変更する配置構成変更手段と、
    前記配置構成変更手段によりハードウェアモデルに配置構成を変更された基本処理単位と、ソフトウェアモデルに配置構成されている基本処理単位とに対して、命令キャッシュとデータキャッシュとを経由してバスアクセスを実行する性能評価シミュレーションを実行し、前記システムの動作解析に必要なデータを計測して、性能評価の基となる統計情報を作成する統計情報作成手段と、
    前記統計情報作成手段により作成された統計情報に基づいて、ソフトウェアとハードウェアとをLSIに分割して搭載させるLSI生成手段と、
    を備えたことを特徴とする電子装置。
JP2008001606A 2008-01-08 2008-01-08 性能評価シミュレーション装置、性能評価シミュレーション方法および性能評価シミュレーションプログラム Expired - Fee Related JP5034955B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2008001606A JP5034955B2 (ja) 2008-01-08 2008-01-08 性能評価シミュレーション装置、性能評価シミュレーション方法および性能評価シミュレーションプログラム
EP08169674A EP2081116A1 (en) 2008-01-08 2008-11-21 Performance evaluation simulation
US12/314,334 US8214189B2 (en) 2008-01-08 2008-12-08 Performance evaluation simulation
KR1020080133542A KR100986784B1 (ko) 2008-01-08 2008-12-24 성능 평가 시뮬레이션 장치, 성능 평가 시뮬레이션 방법 및성능 평가 시뮬레이션 프로그램을 저장한 컴퓨터 판독 가능 매체
CN2008101905231A CN101482891B (zh) 2008-01-08 2008-12-30 性能评估模拟

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008001606A JP5034955B2 (ja) 2008-01-08 2008-01-08 性能評価シミュレーション装置、性能評価シミュレーション方法および性能評価シミュレーションプログラム

Publications (2)

Publication Number Publication Date
JP2009163576A true JP2009163576A (ja) 2009-07-23
JP5034955B2 JP5034955B2 (ja) 2012-09-26

Family

ID=40497579

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008001606A Expired - Fee Related JP5034955B2 (ja) 2008-01-08 2008-01-08 性能評価シミュレーション装置、性能評価シミュレーション方法および性能評価シミュレーションプログラム

Country Status (5)

Country Link
US (1) US8214189B2 (ja)
EP (1) EP2081116A1 (ja)
JP (1) JP5034955B2 (ja)
KR (1) KR100986784B1 (ja)
CN (1) CN101482891B (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9189216B2 (en) 2011-11-18 2015-11-17 Fujitsu Limited Power consumption design-optimization of a communication device software program
US10303832B2 (en) 2015-09-18 2019-05-28 Mitsubishi Electric Corporation Architecture generating device
US11657197B2 (en) 2019-11-19 2023-05-23 Mitsubishi Electric Corporation Support system and computer readable medium

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2074505A4 (en) 2006-10-05 2010-01-13 Splunk Inc CHRONOLOGICAL SERIES SEARCH ENGINE
JP5034955B2 (ja) 2008-01-08 2012-09-26 富士通株式会社 性能評価シミュレーション装置、性能評価シミュレーション方法および性能評価シミュレーションプログラム
JP5200675B2 (ja) * 2008-06-11 2013-06-05 富士通株式会社 シミュレーション装置,シミュレーション方法,シミュレーションプログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体
KR101080974B1 (ko) * 2009-11-24 2011-11-09 한국과학기술정보연구원 계산 시뮬레이션 모사 시스템 및 그 방법
JP6056453B2 (ja) * 2012-12-20 2017-01-11 富士通株式会社 プログラム、データ管理方法および情報処理装置
US10997191B2 (en) 2013-04-30 2021-05-04 Splunk Inc. Query-triggered processing of performance data and log data from an information technology environment
US10346357B2 (en) 2013-04-30 2019-07-09 Splunk Inc. Processing of performance data and structure data from an information technology environment
US10353957B2 (en) * 2013-04-30 2019-07-16 Splunk Inc. Processing of performance data and raw log data from an information technology environment
CN104426945B (zh) * 2013-08-27 2019-08-13 腾讯科技(深圳)有限公司 一种获取应用性能数据的方法、设备和系统
CN103455412B (zh) * 2013-09-23 2016-10-19 扬州大学 一种基于随机进程代数的并发系统性能模拟方法
KR102017284B1 (ko) 2015-05-26 2019-09-02 삼성전자주식회사 부팅 디바이스 및 그 동작 방법
TWI627521B (zh) 2017-06-07 2018-06-21 財團法人工業技術研究院 時序估算方法與模擬裝置
CN109685089B (zh) * 2017-10-18 2020-12-22 北京京东尚科信息技术有限公司 评估模型性能的系统及方法
CN112825058B (zh) * 2019-11-21 2024-07-16 阿里巴巴集团控股有限公司 处理器性能评估方法及装置
CN111274109B (zh) * 2020-01-20 2023-06-02 国网甘肃省电力公司信息通信公司 一种基于请求处理模拟的系统软硬件拓扑的评估方法及系统
CN112486765B (zh) * 2020-11-25 2022-11-11 山东中创软件商用中间件股份有限公司 java应用接口管理方法、系统、装置及计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030121010A1 (en) * 2001-12-21 2003-06-26 Celoxica Ltd. System, method, and article of manufacture for estimating a potential performance of a codesign from an executable specification
JP2007018313A (ja) * 2005-07-08 2007-01-25 Fujitsu Ltd 回路設計プログラム、回路設計装置、回路設計方法
WO2009050768A1 (ja) * 2007-10-15 2009-04-23 Fujitsu Limited シミュレート方法、電子装置の設計方法、シミュレートプログラムおよびシミュレーション装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05158740A (ja) 1991-12-09 1993-06-25 Matsushita Electric Ind Co Ltd 計算機性能評価装置
JPH11259553A (ja) 1998-03-13 1999-09-24 Omron Corp ハードウエアとソフトウエアの混在するシステムの設計支援方法
JPH11259552A (ja) 1998-03-13 1999-09-24 Omron Corp システム仕様記述のシミュレーション方法
KR20010006983A (ko) 1999-06-26 2001-01-26 양세양 신속 프로토타이핑 장치와 그것의 입출력 탐침방법 및그것을 이용한 혼합 검증 방법
JP2001142927A (ja) 1999-11-16 2001-05-25 Matsushita Electric Ind Co Ltd 半導体集積回路装置の設計方法,回路の消費電力解析方法及び消費電力解析装置
JP2001318812A (ja) 2000-05-11 2001-11-16 Nec Corp 性能評価モデル生成装置および性能評価モデル生成方法
JP2001344287A (ja) * 2000-06-02 2001-12-14 Nec Microsystems Ltd アルゴリズム記述におけるバスの性能評価方法
US7069204B1 (en) * 2000-09-28 2006-06-27 Cadence Design System, Inc. Method and system for performance level modeling and simulation of electronic systems having both hardware and software elements
JP2002215423A (ja) 2001-01-22 2002-08-02 Hitachi Ltd ソフトウェアモデル作成方法
FR2838844B1 (fr) * 2002-04-23 2005-07-08 France Telecom Procede de generation d'un modele de performance a partir d'un modele fonctionnel
JP4100630B2 (ja) * 2004-05-14 2008-06-11 インターナショナル・ビジネス・マシーンズ・コーポレーション Uml設計方法
KR100921314B1 (ko) * 2004-07-12 2009-10-13 양세양 검증결과 재활용 기법을 채용한 고성능 설계검증 장치 및이를 활용한 신속한 설계검증 방법
JP2006059108A (ja) 2004-08-19 2006-03-02 Mitsubishi Electric Corp 情報システム開発試験支援システム
CN100347683C (zh) * 2005-04-15 2007-11-07 清华大学 结构无关的微处理器验证及评测方法
US20090150136A1 (en) * 2005-10-10 2009-06-11 Sei Yang Yang Dynamic-based verification apparatus for verification from electronic system level to gate level, and verification method using the same
US8781808B2 (en) * 2005-10-10 2014-07-15 Sei Yang Yang Prediction-based distributed parallel simulation method
JP2007310449A (ja) 2006-05-16 2007-11-29 Fujitsu Ltd ソフトウェア/ハードウェア協調設計のためのモデル生成プログラム、およびモデル生成方法
JP5034955B2 (ja) 2008-01-08 2012-09-26 富士通株式会社 性能評価シミュレーション装置、性能評価シミュレーション方法および性能評価シミュレーションプログラム
JP5200675B2 (ja) * 2008-06-11 2013-06-05 富士通株式会社 シミュレーション装置,シミュレーション方法,シミュレーションプログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030121010A1 (en) * 2001-12-21 2003-06-26 Celoxica Ltd. System, method, and article of manufacture for estimating a potential performance of a codesign from an executable specification
JP2007018313A (ja) * 2005-07-08 2007-01-25 Fujitsu Ltd 回路設計プログラム、回路設計装置、回路設計方法
WO2009050768A1 (ja) * 2007-10-15 2009-04-23 Fujitsu Limited シミュレート方法、電子装置の設計方法、シミュレートプログラムおよびシミュレーション装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9189216B2 (en) 2011-11-18 2015-11-17 Fujitsu Limited Power consumption design-optimization of a communication device software program
US10303832B2 (en) 2015-09-18 2019-05-28 Mitsubishi Electric Corporation Architecture generating device
US11657197B2 (en) 2019-11-19 2023-05-23 Mitsubishi Electric Corporation Support system and computer readable medium

Also Published As

Publication number Publication date
US20090204380A1 (en) 2009-08-13
KR20090076782A (ko) 2009-07-13
CN101482891B (zh) 2011-12-28
EP2081116A1 (en) 2009-07-22
JP5034955B2 (ja) 2012-09-26
KR100986784B1 (ko) 2010-10-12
CN101482891A (zh) 2009-07-15
US8214189B2 (en) 2012-07-03

Similar Documents

Publication Publication Date Title
JP5034955B2 (ja) 性能評価シミュレーション装置、性能評価シミュレーション方法および性能評価シミュレーションプログラム
US8229723B2 (en) Performance software instrumentation and analysis for electronic design automation
US8073820B2 (en) Method and system for a database to monitor and analyze performance of an electronic design
Hsieh et al. Microprocessor power estimation using profile-driven program synthesis
Cai et al. Retargetable profiling for rapid, early system-level design space exploration
US6856951B2 (en) Repartitioning performance estimation in a hardware-software system
US20160239278A1 (en) Generating a schedule of instructions based on a processor memory tree
Schirner et al. Quantitative analysis of transaction level models for the AMBA bus
Schürmans et al. ESL power estimation using virtual platforms with black box processor models
CN1430265A (zh) 设计系统大规模集成电路的方法
US8412507B2 (en) Testing the compliance of a design with the synchronization requirements of a memory model
US20080300806A1 (en) Power consumption calculating method
Wolf et al. Execution cost interval refinement in static software analysis
Wild et al. Performance evaluation for system-on-chip architectures using trace-based transaction level simulation
US20230056423A1 (en) Processor core simulator including trace-based coherent cache driven memory traffic generator
Uddin et al. Signature-based high-level simulation of microthreaded many-core architectures
Niar et al. Rapid performance and power consumption estimation methods for embedded system design
Hiser et al. Fast, accurate design space exploration of embedded systems memory configurations
KR101832583B1 (ko) 전력 상태 커버리지 메트릭 및 이의 추정 방법
Klarhorst et al. Development of energy models for design space exploration of embedded many-core systems
Liu et al. Characterization and optimization of behavioral hardware accelerators in heterogeneous mpsocs
Wang et al. Modeling and Simulation of System Bus and Memory Collisions in Heterogeneous SoCs
Sonntag et al. Area and power consumption estimations at system level with systemq 2.0
JP2006172317A (ja) 情報処理装置、情報処理方法
Forelli et al. A High Level Synthesis Methodology for Dynamic Monitoring of FPGA ML Accelerators

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100820

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120308

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120605

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120618

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150713

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees