JP4634525B2 - シミュレート方法、シミュレートプログラムおよびシミュレーション装置 - Google Patents

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

Info

Publication number
JP4634525B2
JP4634525B2 JP2009537783A JP2009537783A JP4634525B2 JP 4634525 B2 JP4634525 B2 JP 4634525B2 JP 2009537783 A JP2009537783 A JP 2009537783A JP 2009537783 A JP2009537783 A JP 2009537783A JP 4634525 B2 JP4634525 B2 JP 4634525B2
Authority
JP
Japan
Prior art keywords
log
processing
storage unit
unit
simulation
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.)
Expired - Fee Related
Application number
JP2009537783A
Other languages
English (en)
Other versions
JPWO2009050768A1 (ja
Inventor
典保 中山
伸和 小泉
知己 加藤
直樹 湯沢
裕之 稗田
覚 平本
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
Application granted granted Critical
Publication of JP4634525B2 publication Critical patent/JP4634525B2/ja
Publication of JPWO2009050768A1 publication Critical patent/JPWO2009050768A1/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318342Generation of test inputs, e.g. test vectors, patterns or sequences by preliminary fault modelling, e.g. analysis, simulation
    • G01R31/318357Simulation
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Debugging And Monitoring (AREA)

Description

この発明は、シミュレート方法、電子装置の設計方法、シミュレートプログラムおよびシミュレーション装置に関する。
従来より、LSI(Large Scale Integration)や、システムLSI、SoC(System on Chip)などの検証対象装置(電子装置:Electronic Device)の性能を評価するために、検証対象装置をモデル化した検査モデルの動作をISS(Instruction Set Simulator:命令セットシミュレータ)を用いてシミュレートするシミュレーション装置がある(特許文献1〜6参照)。
具体的には、従来の技術では、検査モデルのハードウェアは、RTL(Register Transfer Level)でのVerilog−HDL(Hardware Description Language)や、TLM(Transaction Level Modeling)でのSystemCによってモデル化される。また、検査モデルで実行するソフトウェアは、C言語やアセンブリ言語で記述されたプログラムをコンパイルして、実行バイナリが作成される。
そして、従来の技術では、検査モデルに実行バイナリを実行させることで、検証対象装置の動作をシミュレートし、シミュレート時の各ハードウェアを監視することで、検証対象装置の命令実行時間などのシミュレート結果を得ている。
特開2004−13227号公報 特開2006−23852号公報 特開平11−96130号公報 特開2003−15914号公報 特開平5−158740号公報 特開2001−249829号公報
ところで、上記した従来の技術は、検証対象装置の動作をシミュレートするのに多くの時間を要するという課題があった。
すなわち、従来の技術では、ISSが実行バイナリを解読し、実行バイナリに係る命令を実行するという複雑な処理を行うため、ISS上でのシミュレートに多くの時間を要していた。
また、ISSを用いずに検証対象装置の性能を評価する場合であっても、従来の技術は、実行バイナリをホスト用コードに変換することなど複雑な工程を必要としていた(特許文献1参照)。
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、検証対象装置の動作を短時間で複雑な工程を要することなくシミュレートすることが可能なシミュレート方法、電子装置の設計方法、シミュレートプログラムおよびシミュレーション装置を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明は、検証対象装置の性能を評価するためにモデル化された検証対象装置の動作をシミュレートするコンピュータが実行するシミュレート方法であって、前記コンピュータが備える実行ログ取得部が、検証対象装置をモデル化した検査モデルにおいて所定の処理が実行される場合の当該検査モデルにおける一連の動作をシミュレートし、当該所定の処理の実行に伴って生成され、かつ実行された処理の命令である実行ログを取得し、取得した前記実行ログを前記コンピュータが備える実行ログ記憶部に格納する実行ログ取得ステップと、前記コンピュータが備える処理単位ログ抽出部が、前記実行ログ記憶部から前記実行ログを読み込み、読み込んだ前記実行ログから所定の処理単位の命令で構成される処理単位ログを抽出し、抽出した前記処理単位ログを前記コンピュータが備える処理単位ログ記憶部に格納する処理単位ログ抽出ステップと、前記コンピュータが備えるシミュレート部が、前記検証対象装置の機能の一部を改変した検査モデルにおいて、前記処理単位ログ記憶部から前記処理単位ログを読み込み、読み込んだ前記処理単位ログに対応する処理が実行される場合の動作を、ユーザによって設定された設定条件に基づいてシミュレートするシミュレートステップとを含んだことを特徴とする。
本発明によれば、検証対象装置の動作を短時間で複雑な工程を要することなくシミュレートすることが可能である。
以下に添付図面を参照して、この発明に係るシミュレート方法、電子装置の設計方法、シミュレートプログラムおよびシミュレーション装置の実施例を詳細に説明する。なお、以下では、この発明が搭載されたシミュレーション装置を実施例として説明する。
[用語の説明]
まず最初に、本実施例で用いる主要な用語を説明する。本実施例で用いる「モデル化された検証対象装置(検査モデル)」とは、ハードウェアによって実現される各機能が、例えば、RTL(Register Transfer Level)でのVerilog−HDL(Hardware Description Language)や、TLM(Transaction Level Modeling)でのSystemCによって記述された検証対象装置である。
また、本実施例で用いる「実行ログ」とは、検証対象装置に一連の処理を実行するためのソフトウェアを、ISSなどのシミュレータで実行させたときの、実際に実行された命令履歴である。
以下では、実施例1に係るシミュレーション装置の概要および特徴、シミュレーション装置の構成およびシミュレーション装置による処理の流れを順に説明し、実施例1による効果を説明する。
[シミュレーション装置の概要および特徴]
まず最初に、図1を用いて、実施例1に係るシミュレーション装置の概要および特徴を説明する。図1は、実施例1に係るシミュレーション装置の概要および特徴を説明するための図である。
実施例1に係るシミュレーション装置は、検証対象装置の性能を評価するためにモデル化された検証対象装置の動作をシミュレートすることを概要とし、検証対象装置の動作を短時間で複雑な工程を要することなくシミュレートすることを主たる特徴とする。
この主たる特徴について説明すると、実施例1に係るシミュレーション装置は、検証対象装置をモデル化した検査モデルにおいて所定の処理が実行される場合の検査モデルにおける一連の動作をシミュレートし、この所定の処理の実行に伴って生成される実行ログを取得する(図1の(1)参照)。例えば、実施例1に係るシミュレーション装置は、通信装置モデルにおいて通信処理が実行される場合の一連の動作をシミュレートし、この通信処理を実行に伴って生成される実行ログを取得する。
次に、実施例1に係るシミュレーション装置は、実行ログから所定の処理単位で構成される処理単位ログを抽出する(図1の(2)参照)。例えば、実施例1に係るシミュレーション装置は、実行ログから所定の処理単位で構成される「上り送受信処理」や「下り送受信処理」(例えば、「方路を検索する処理」や、「送信する情報をバッファから読み込む処理」や、「情報を送信する処理」などで構成される「送受信処理」)、周期的な割り込み処理である「周期処理A」についての処理単位ログを抽出する。
そして、実施例1に係るシミュレーション装置は、検証対象装置の機能の一部を改変した検査モデルにおいて、処理単位ログに対応する処理が実行される場合の動作を、ユーザによって設定された設定条件に基づいてシミュレートする(図1の(3)参照)。例えば、実施例1に係るシミュレーション装置は、通信速度を2倍に改善した通信装置モデルにおいて、所定の時間当たりに「上り送信処理」や「下り受信処理」を2倍実行し、「周期処理A」を半分の周期で実行した場合の動作をシミュレートする。
このようなことから、実施例1に係るシミュレーション装置は、上記した主たる特徴のごとく、検証対象装置の動作を短時間で複雑な工程を要することなくシミュレートすることが可能である。
[実施例1に係るシミュレーション装置の構成]
次に、図2〜図7を用いて、図1に示したシミュレーション装置の構成を説明する。図2は、シミュレーション装置の構成を示すブロック図である。図3は、検査モデル記憶部13aに記憶される情報の一例を示した図である。図4は、実行ログ記憶部に記憶される情報の一例を示した図である。図5は、処理単位ログ記憶部に記憶される情報の一例を示した図である。図6は、設定条件記憶部に記憶される情報の一例を示した図である。図7は、シミュレート結果記憶部に記憶される情報の一例を示した図である。
図2に示すように、このシミュレーション装置10は、入力部11と、出力部12と、記憶部13と、制御部14、シミュレータ15とから構成される。
このうち、入力部11は、各種の情報の入力を受け付ける。具体的には、入力部11は、キーボードやマウスなどを備えて構成され、例えば、この入力部11を介して、検査モデルや、検査モデルで実行するソフトウェアや、設定条件の入力を受け付ける。
出力部12は、各種の情報を出力する。具体的には、出力部12は、モニタやディスプレイなどを備えて構成され、この出力部12を介してシミュレート結果(例えば、検証対象装置のCUP負荷率や、バス占有率や、処理時間や、消費電力や、メモリ使用率など)を出力する。
記憶部13は、処理部30による各種処理に必要なデータおよびプログラムを記憶し、特に本発明に密接に関連するものとしては、検査モデル記憶部13aと、実行ログ記憶部13bと、処理単位ログ記憶部13cと、設定条件記憶部13dと、シミュレート結果記憶部13eとを備える。
検査モデル記憶部13aは、検査モデルを記憶する。具体的に一例をあげて説明すると、検査モデル記憶部13aは、図3に示すように、ターゲットCPU101と、命令キャッシュメモリ102と、データキャッシュメモリ103と、外部RAM104と、周辺ハードウェア105と、バス106とから構成される検査モデル100を記憶する。
ここで、ターゲットCPU101は、検査モデル100としてのCPUである。また、命令キャッシュメモリ102は、所定の命令処理の命令文をターゲットCPU101が短時間で取得するために、命令文を一時的に記憶する記憶部である。また、データキャッシュメモリ103は、検査モデルが動作するときに使用する所定のデータをターゲットCPU101が短時間で取得するために一時的に記憶する記憶部である。
また、外部RAM104は、命令文および使用データを長期的に記憶する記憶部である。また、周辺ハードウェア105は、外部IFや、特定の用途専用のハードウェアである。そして、ターゲットCPU101、命令キャッシュメモリ102およびデータキャッシュメモリ103は、外部RAM104や周辺ハードウェア105とバス106を介して接続される。
実行ログ記憶部13bは、実行ログを記憶する。具体的に一例をあげて説明すると、実行ログ記憶部13bは、図4に示すように、検査モデルが所定の処理の実行に伴って生成される実行ログとして、所定の処理の実行に伴って、ログ「A」、ログ「B」、ログ「C」・・・、の順に各ログに対応する処理が実行されたことを意味する実行ログを記憶する。ここで、ログ「A」、ログ「B」、ログ「C」・・・は、例えば、通信装置モデルの通信処理における「方路を検索する処理」や、「送信する情報をバッファから読み込む処理」や、「情報を送信する処理」などのログに相当する。
処理単位ログ記憶部13cは、処理単位ログを記憶する。具体的に一例をあげて説明すると、処理単位ログ記憶部13cは、図5に示すように、実行ログから所定の処理単位で構成される処理単位ログとして、検査モデルによって実行されたイベントごとに区分して、各イベントが実行されたときに実行された処理のログを記憶する。ここで、「イベント」とは、通信装置モデルの「上り送信処理」や、「下り受信処理」や、「周期処理A」に相当し、イベント「1」が実行されたときにログ「B」に対応する処理が実行され、次にログ「C」に対応する処理が実行されたことを意味する。
設定条件記憶部13dは、設定条件を記憶する。具体的に一例をあげて説明すると、設定条件記憶部13dは、図6に示すように、検証対象装置の機能の一部を改変した検査モデルにおいてイベント「1」を1秒周期で実行させ、イベント「2」を2秒周期で実行し、イベント「3」を3秒周期で実行させるための設定条件として、各イベントと、各イベントを実行すべき周期と(例えば、イベント「1」と、周期「1秒」と)を対応付けて記憶する。
シミュレート結果記憶部13eは検証対象装置の機能の一部を改変した検査モデルのシミュレート結果を記憶する。具体的に一例をあげて説明すると、シミュレート結果記憶部13eは、図7に示すように、検証対象装置の機能の一部を改変した検査モデルのシミュレート結果として、CUP負荷率(例えば20%)や、バス占有率(例えば、10%)や、処理時間(例えば、1分)や、消費電力(例えば、60W(ワット))や、メモリ使用率(例えば、70%)を記憶する。
制御部14は、所定の制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する。特に本発明に密接に関連するものとしては、検査モデル格納部14aと、実行ログ取得部14bと、処理単位ログ抽出部14cと、シミュレータ制御部14dとを備える。なお、実行ログ取得部14bは、請求の範囲に記載の「実行ログ取得部」に対応し、処理単位ログ抽出部14cは、請求の範囲に記載の「処理単位ログ抽出部」に対応する。
検査モデル格納部14aは、検査モデルを格納する。具体的には、検査モデル格納部14aは、入力部11を介して、検査モデルを受け付けると、検査モデル記憶部13aに格納する。
実行ログ取得部14bは、検証対象装置をモデル化した検査モデルにおいて所定の処理が実行される場合の検査モデルにおける一連の動作をシミュレートし、この所定の処理の実行に伴って生成される実行ログを取得する。
具体的には、実行ログ取得部14bは、入力部11を介して、検査モデルにおいて所定の処理を実行するための仮ソフトウェアを受け付けると、検査モデル記憶部13aから検査モデルを読み込み、検査モデルと、仮ソフトウェアとをシミュレータ15に入力し、シミュレータ15に検査モデルにおいて所定の処理が実行される場合の検査モデルにおける一連の動作をシミュレートさせる。そして、実行ログ取得部14bは、シミュレータ15から所定の処理の実行に伴って生成された実行ログを受け付け、実行ログ記憶部13bに格納する(図4参照)。
例えば、実行ログ取得部14bは、入力部11を介して、通信装置モデルにおいて通信処理を実行するための仮ソフトウェアを受け付けると、シミュレータ15に通信処理が実行される場合の一連の動作をシミュレートさせ、ログ「A」、ログ「B」、ログ「C」・・・の順に各ログに対応する処理が実行されたことを意味する実行ログを受け付け、実行ログ記憶部13bに格納する。
ここで、仮ソフトウェアとは、例えば、リアルタイムOS(Real-Time Operating System)を利用するシミュレータ15が所定の処理を実行する場合の一連の動作をシミュレートするときに、十分な負荷(例えば、方路を検索する処理における遅延時間)を作り出すことのできる性能を有したソフトウェアである。
処理単位ログ抽出部14cは、実行ログから所定の処理単位で構成される処理単位ログを抽出する。具体的には、処理単位ログ抽出部14cは、実行ログ取得部14bによって実行ログ記憶部13bに実行ログが格納されると、実行ログ記憶部13bから実行ログを読み込み、所定の処理単位で構成される処理単位ログを抽出し、検査モデルによって実行されたイベントごとに区分して、各イベントが実行されたときに生成されたログを処理単位ログ記憶部13cに格納する(図5参照)。
例えば、処理単位ログ抽出部14cは、実行ログから同じログの繰り返し(例えば、ログ「B」の次にログ「C」が生成されたという繰り返し)や、OSがタスクを起動したときに生成されたログの場所を調べることで、各イベントが実行されたときに生成されたログを抽出し、処理単位ログ記憶部13cに格納する。
なお、検査モデルにおいて所定の処理を実行するための仮ソフトウェアの中に、明示的な区切り(例えば、所定の命令に対応する命令処理など)を挿入しておき、処理単位ログ抽出部14cは、この明示的な区切りに係るログを参照して、処理単位ログを抽出するようにしてもよい。
シミュレータ制御部14dは、入力部11を介して、設定条件を受け付けると、設定条件記憶部13dに設定条件を格納する(図6参照)。そして、シミュレータ制御部14dは、検査モデル記憶部13aから検査モデルを読み込む。さらに、シミュレータ制御部14dは、処理単位ログ記憶部13cから処理単位ログを読み込む。そして、シミュレータ制御部14dは、検査モデルと、処理単位ログと、設定条件とをシミュレータ15に入力し、シミュレータ15に検証対象装置の機能の一部を改変した検査モデルの動作をシミュレートさせる。
そして、シミュレータ制御部14dは、シミュレータ15から検証対象装置の機能の一部を改変した検査モデルの動作のシミュレート結果を受け付け、シミュレート結果をシミュレート結果記憶部13eに格納するとともに、出力部12を介してシミュレート結果を出力する。
シミュレータ15は、検査モデルにおける一連の動作をシミュレートする。具体的には、シミュレータ15は、実行ログ取得部14bから検査モデルと、仮ソフトウェアとを受け付けた場合には、仮ソフトウェアをコンパイルして実行バイナリを作成し、検査モデルに実行バイナリを実行させるというシミュレーションを実行し、実行ログを生成する。そして、シミュレータ15は、生成した実行ログを実行ログ取得部14bに対して送信する。
また、シミュレータ15は、処理単位ログに対応する処理が実行される場合の動作を、ユーザによって設定された設定条件に基づいてシミュレートする。
具体的には、シミュレータ15は、シミュレータ制御部14dから検査モデルと、処理単位ログと、設定条件とを受け付けた場合には、処理単位ログに対応する処理が実行される場合の動作を、ユーザによって設定された設定条件に基づいて、検証対象装置の機能の一部を改変した検査モデルの動作をシミュレートする。そして、シミュレート結果をシミュレータ制御部14dに対して送信する。
例えば、シミュレータ15は、イベント「1」を1秒周期で実行し、イベント「2」を2秒周期で実行し、イベント「3」を3秒周期で実行した場合の検査モデルの動作をシミュレートする。そして、シミュレータ15は、シミュレート結果として、CUP負荷率や、バス占有率や、処理時間や、消費電力や、メモリ使用率を算出し、シミュレータ制御部14dに対して送信する。なお、シミュレータ15は、請求の範囲に記載の「シミュレート部」に対応する。
[実施例1に係るシミュレーション装置による処理]
次に、図8、図9を用いて、実施例1に係るシミュレーション装置による処理を説明する。図8は、処理単位ログを抽出するときのシミュレーション装置による処理の流れを示すフローチャートである。図9は、検証対象装置の機能の一部を改変した検査モデルの動作をシミュレートするときのシミュレーション装置による処理の流れを示すフローチャートである。なお、以下では、検査モデル格納部14aによって検査モデルが検査モデル記憶部13aに格納されているものとして各処理の流れを説明する。
[処理単位ログを抽出するときのシミュレーション装置による処理]
図8に示すように、実行ログ取得部14bは、入力部11を介して検査モデルにおいて所定の処理を実行するための仮ソフトウェアを受け付けると(ステップS1001肯定)、検査モデル記憶部13aから検査モデルを読み込み(ステップS1002)、検査モデルと、仮ソフトウェアとをシミュレータ15に入力する(ステップS1003)。
検査モデルと、仮ソフトウェアとを受け付けたシミュレータ15は、仮ソフトウェアをコンパイルして実行バイナリを作成し(ステップS1004)、シミュレーションを実行して実行ログを生成し(ステップS1005)、実行ログを実行ログ取得部14bに対して送信する(ステップS1006)。
実行ログを受け付けた実行ログ取得部14bは、実行ログを実行ログ記憶部13bに格納する(ステップS1007)。
続いて、処理単位ログ抽出部14cは、実行ログ記憶部13bから実行ログを読み込み(ステップS1008)実行ログから所定の処理単位で構成される処理単位ログを抽出し(ステップS1009)、処理単位ログを処理単位ログ記憶部13cに格納し(ステップS1010)、実行ログから処理単位ログを抽出するときの処理を終了する。
[検証対象装置の機能の一部を改変した検査モデルの動作をシミュレートするときのシミュレーション装置による処理]
図9に示すように、シミュレータ制御部14dは、設定条件を受け付けると(ステップS2001肯定)、設定条件記憶部13dに設定条件を格納する(ステップS2002)。
続いて、シミュレータ制御部14dは、検査モデル記憶部13aから検査モデルを読み込み(ステップS2003)、処理単位ログ記憶部13cから処理単位ログを読み込み(ステップS2004)、検査モデルと、処理単位ログと、設定条件とをシミュレータ15に入力する(ステップS2005)。
シミュレータ制御部14dから検査モデルと、処理単位ログと、設定条件とを受け付けたシミュレータ15は、検証対象装置の機能の一部を改変した検査モデルの動作をシミュレートし、(ステップS2006)、シミュレート結果をシミュレータ制御部14dに対して送信する(ステップS2007)。
シミュレーション結果を受け付けたシミュレータ制御部14dは、シミュレート結果をシミュレート結果記憶部13eに格納するとともに、出力部12を介してシミュレート結果を出力し(ステップS2008)、検証対象装置の動作をシミュレートするときの処理を終了する。
[実施例1による効果]
上記したように、実施例1によれば、検証対象装置をモデル化した検査モデルにおいて所定の処理が実行される場合の検査モデルにおける一連の動作をシミュレートし、所定の処理の実行に伴って生成される実行ログを取得し、実行ログから所定の処理単位で構成される処理単位ログを抽出し、検証対象装置の機能の一部を改変した検査モデルにおいて、処理単位ログに対応する処理が実行される場合の動作を、ユーザによって設定された設定条件に基づいてシミュレートするので、検証対象装置の動作を短時間で複雑な工程を要することなくシミュレートすることが可能である。
ところで、キャッシュメモリの動作の解析が可能な抽象度で検証対象装置の動作をシミュレートすることが必要となる場合もある。例えば、外部RAM104の使用率や、命令キャッシュメモリ102から所定の命令処理の命令文を読み込むときのヒット率(命令キャッシュヒット率)や、データキャッシュメモリ103から所定のデータを読み込むときのヒット率(データキャッシュヒット率)や、外部RAM104から所定の命令処理の命令文を読み込む処理の処理時間(命令フェッチ時間)や、周辺ハードウェア105に搭載された記憶部に所定のデータを読み書き処理する処理時間や、ターゲットCPU101のアイドル時間などがシミュレーション結果として必要となる場合もある。そこで、実施例2では、キャッシュメモリの動作の解析が可能な抽象度で検証対象装置の動作をシミュレートする場合を説明する。なお、実施例2では、実施例2に係るシミュレーション装置の構成およびシミュレーション装置による処理の流れを説明した後、実施例2による効果を説明する。
[実施例2に係るシミュレーション装置の構成]
まず、図10、図11を用いて、実施例2に係るシミュレーション装置の構成を説明する。図10は、実施例2に係るシミュレーション装置の実行ログ記憶部に記憶される情報の一例を示した図である。図11は、実施例2に係るシミュレーション装置の処理単位ログ記憶部に記憶される情報の一例を示した図である。
実施例2に係るシミュレーション装置10の構成は、実施例1に係るシミュレーション装置10と以下に説明する点が異なる。
すなわち、実行ログ記憶部13bは、図10に示すように、実行ログとして、各ログが生成されたときの処理内容を示すラベルを実行ログの各ログに対応付けて記憶する。具体的には、実行ログ記憶部13bは、所定の命令処理が実行されたことを意味するラベル(例えば、ラベル「命令」)を所定の命令処理の実行に伴って生成されたログ(例えば、ログ「A」)に対応付けて記憶する。
また、実行ログ記憶部13bは、所定のデータを記憶部から読み込む処理が実行されたことを意味するラベル(例えば、ラベル「データ読み込み」)を所定のデータを記憶部から読み込む処理の実行に伴って生成されたログ(例えば、ログ「C」)に対応付けて記憶する。
また、実行ログ記憶部13bは、所定のデータを記憶部に書き込む処理が実行されたことを意味するラベル(例えば、ラベル「データ書き込み」)を所定のデータを記憶部から書き込む処理の実行に伴って生成されたログ(例えば、ログ「D」)に対応付けて記憶する。
処理単位ログ記憶部13cは、処理単位ログとして、処理内容を示すラベルを各イベントが実行されたときに生成されたログに対応付けて記憶する。具体的に一例をあげて説明すると、処理単位ログ記憶部13cは、図11に示すように、「ログ「B」に対応する命令処理が実行され、次に、ログ「C」に対応する読み込み処理が実行された」というイベント「1」として、ラベル「命令」をログ「B」に対応付けて記憶し、ラベル「データ読み込み」をログ「C」に対応付けて記憶する。
実行ログ取得部14bは、シミュレータ15から実行ログを受け付け、処理内容を示すラベルを実行ログの各ログに対応付けて実行ログ記憶部13bに格納する(図10参照)。
処理単位ログ抽出部14cは、実行ログから所定の処理単位で構成される処理単位ログを抽出し、検査モデルによって実行されたイベントごとに区分して、処理内容を示すラベルを各イベントが実行されたときに生成されたログに対応付けて処理単位ログ記憶部13cに格納する(図11参照)。
シミュレータ制御部14dは、検査モデル記憶部13aから命令キャッシュメモリ102と、データキャッシュメモリ103と、外部RAM104と、周辺ハードウェア105とを備えた検査モデル100を検査モデル記憶部13aから読み込み、検査モデルと、処理単位ログと、設定条件とをシミュレータ15に入力し、シミュレータ15に検証対象装置の機能の一部を改変した検査モデルの動作をシミュレートさせる。
シミュレータ15は、実行ログ取得部14bから検査モデルと、仮ソフトウェアとを受け付けた場合には、シミュレーションを実行し、実行ログの各ログに対して処理内容を示すラベルを付与しつつ実行ログを生成し、実行ログ取得部14bに対して送信する。
また、シミュレータ15は、シミュレータ制御部14dから検査モデルと、処理単位ログと、設定条件とを受け付けた場合には、キャッシュメモリの動作の解析が可能な抽象度で検証対象装置の機能の一部を改変した検査モデルの動作をシミュレートする。
ここで、シミュレータ15が実行するキャッシュメモリの動作の解析が可能な抽象度での検査モデルの動作のシミュレートについて一例をあげて説明する。なお、シミュレータ15は、図6に示した設定条件に基づいて、図3に示すような検査モデル100の動作をシミュレートして、一連の処理を実行するのに必要な処理時間を計測するものとする。
シミュレータ15は、検査モデルの動作のシミュレートを開始後、所定のイベントを実行すべき時間に至ると、所定のイベントのログと、このログに対応するラベルとを処理単位ログから読み込み、所定のイベントの処理が命令処理、もしくは、読み書き処理のいずれであるかをログに対応するラベルを用いて判定する。
ここで、シミュレータ15は、所定のイベントの処理が命令処理であった場合には、記憶部から命令文を読み込んで命令処理を実行するというシミュレートを実行する。
具体的には、シミュレータ15は、命令処理を実行するときに、命令キャッシュメモリ102に命令文が記憶されているか否かを判定し、命令キャッシュメモリ102に命令文が記憶されているものと判定された場合には、命令キャッシュメモリ102から命令文を読み込み、命令キャッシュメモリ102に命令文が記憶されていないものと判定された場合には、外部RAM104から命令文を読み込んで命令処理を実行するというシミュレートを実行する。
例えば、シミュレータ15は、命令キャッシュメモリ102に命令文が記憶されているものと判定された場合には、ターゲットCPU101が命令処理を実行するのに必要な時間(平均CPI分の時間)を処理時間として計測する。
また、命令キャッシュメモリ102に命令文が記憶されていないものと判定された場合には、ターゲットCPU101がバス106に対してラインフェッチ(例えば、8命令文を連続して外部RAM104から読み込む処理)をするのに必要な時間を処理時間として計測し、これに加えて、ターゲットCPU101が命令処理を実行するのに必要な時間を処理時間として計測する。
一方では、シミュレータ15は、所定のイベントの処理が読み書き処理であった場合には、記憶部に対して所定のデータを書き込む書き込み処理、または記憶部に記憶されている所定のデータを読み込む読み込み処理を実行するというシミュレートを実行する。
具体的には、シミュレータ15は、読み書き処理を実行するときに、所定のデータを記憶部から読み込む処理であるか、もしくは、所定のデータを記憶部に書き込む処理であるかを所定のイベントのログに対応するラベルを用いて判定する。
ここで、シミュレータ15は、所定のデータを読み込む処理であるものと判定された場合には、データキャッシュメモリ103および外部RAM104のいずれに所定のデータが記憶されているかをデータキャッシュメモリ103から順に判定して、所定のデータを読み込むというシミュレートを実行する。
例えば、データキャッシュメモリ103に所定のデータが記憶されている場合には、ターゲットCPU101がデータキャッシュメモリ103から所定のデータを読み込むのに必要な時間を処理時間として計測し、データキャッシュメモリ103に所定のデータが記憶されていない場合には、ターゲットCPU101が外部RAM104からデータキャッシュメモリ103へのラインフェッチ(外部RAM104からデータキャッシュメモリ103に所定のデータを書き写す処理)を実行するのに必要な時間を処理時間として計測する。
また、シミュレータ15は、所定のデータを書き込む処理であるものと判定された場合には、データキャッシュメモリ103および他の記憶部(例えば、周辺ハードウェア105に搭載された記憶部)のいずれに所定のデータを格納すべきかをデータキャッシュメモリ103から順に判定して所定のデータを書き込むというシミュレートを実行する。
例えば、データキャッシュメモリ103に所定のデータを格納すべきであると判定した場合には、ターゲットCPU101が所定のデータをデータキャッシュメモリ103に格納するのに必要な時間を処理時間として計測し、他の記憶部に所定のデータを格納すべきであると判定した場合には、ターゲットCPU101が所定のデータを他の記憶部に格納するのに必要な時間を処理時間として計測する。
このようにして、シミュレータ15は、所定のイベントの処理が終わるまで、所定のイベントの次の処理について上記のシミュレートと同様に実行し、各イベントの周期ごとに所定のイベントの処理をログが生成された順番に実行する。
そして、シミュレータ15は、シミュレートの終了とともに、各処理を実行するのに必要な処理時間を積算し、積算結果をシミュレーション結果として、シミュレータ制御部14dに対して送信する。
[シミュレーション装置のシミュレータによる処理]
次に、図12、図13、図14を用いて、実施例2に係るシミュレーション装置10のシミュレータ15による処理を説明する。図12は、検証対象装置の機能の一部を改変した場合のシミュレータによる処理の流れを示すフローチャートである。図13は、命令処理を実行するときのシミュレーション装置のシミュレータによる処理の流れを示すフローチャートである。図14は、読み書き処理を実行するときのシミュレーション装置のシミュレータによる処理の流れを示すフローチャートである。
[検証対象装置の機能の一部を改変した場合のシミュレータによる処理]
まず、図12を用いて、検証対象装置の機能の一部を改変した検査モデルの動作のシミュレートを開始した後から、シミュレートを終了するまでのシミュレータ15による処理を説明する。なお、以下に説明するシミュレータ15による処理は、シミュレートの実行中は繰りかえし実行し、シミュレートの終了とともに処理を終了する。
同図に示すように、シミュレータ15は、所定のイベントを実行すべき時間に至ると(ステップS3001肯定)、所定のイベントのログと、このログに対応するラベルとを処理単位ログから読み込み(ステップS3002)、所定のイベントの処理が命令処理、もしくは、読み書き処理のいずれであるかをログに対応するラベルを用いて判定する(ステップS3003)。
ここで、所定のイベントの処理が命令処理であると判定した場合には(ステップS3003肯定)、シミュレータ15は、命令処理を実行するというシミュレートを実行する(ステップS3004)。
一方では、所定のイベントの処理が読み書き処理であると判定した場合には(ステップS3003否定)、シミュレータ15は、読み書き処理を実行するというシミュレートを実行する(ステップS3005)。
命令処理(ステップS3004)、もしくは、読み書き処理(ステップS3005)を実行するというシミュレートを終了すると、シミュレータ15は、所定のイベントの処理を最後まで実行したかを判定する(ステップS3006)。
ここで、所定のイベントの処理を最後まで実行したと判定した場合には(ステップS3006肯定)、シミュレータ15は、再び所定のイベントを実行すべき時間に至るまで待機する(ステップS3001)。
一方では、所定のイベントの処理を最後まで実行していないと判定した場合には(ステップS3006否定)、シミュレータ15は、所定のイベントの次のログと、このログに対応するラベルとを処理単位ログから読み込み(ステップS3002)、所定のイベントの処理を最後まで実行するまで(ステップS3006肯定)、上記した処理を繰り返し実行する。
[命令処理を実行するときのシミュレーション装置のシミュレータによる処理]
次に、図13を用いて、命令処理を実行するとき(図12のステップS3004)のシミュレーション装置のシミュレータによる処理の流れを説明する。同図に示すように、命令処理を実行するときにシミュレータ15は、命令キャッシュメモリ102に命令文が記憶されているか否かを判定する(ステップS4001)。
ここで、命令キャッシュメモリ102に命令文が記憶されているものと判定された場合には(ステップS4001肯定)、シミュレータ15は、ターゲットCPU101が命令処理を実行するのに必要な時間を処理時間として計測し(ステップS4002)、命令処理を実行するときの処理を終了する。
一方では、命令キャッシュメモリに命令アドレスに係る処理の命令文が格納されていない場合には(ステップS4001否定)、シミュレータ15は、ターゲットCPU101がバス106に対してラインフェッチをするのに必要な時間を処理時間として計測し(ステップS4003)、ターゲットCPU101が命令処理を実行するのに必要な時間を処理時間として計測し(ステップS4002)、命令処理を実行するときの処理を終了する。
[読み書き処理を実行するときのシミュレーション装置のシミュレータによる処理]
次に、図14を用いて、読み書き処理を実行するとき(図12のステップS3005)のシミュレーション装置のシミュレータによる処理の流れを説明する。同図に示すように、読み書き処理を実行するときにシミュレータ15は、所定のデータを記憶部から読み込む処理であるか、もしくは、所定のデータを記憶部に書き込む処理であるか否かを所定のイベントのログに対応するラベルを用いて判定する(ステップS5001)。
ここで、所定のデータを読み込む処理であるものと判定された場合には(ステップS5001肯定)、シミュレータ15は、データキャッシュメモリ103および外部RAM104のいずれに所定のデータが記憶されているかをデータキャッシュメモリ103から順に判定する(ステップS5002)。
データキャッシュメモリ103に所定のデータが記憶されている場合には(ステップS5002肯定)、シミュレータ15は、ターゲットCPU101がデータキャッシュメモリ103から所定のデータを読み込むのに必要な時間を処理時間として計測し(ステップS5003)、読み書き処理を実行するときの処理を終了する。
また、データキャッシュメモリ103に所定のデータが記憶されていない場合には(ステップS5002否定)、シミュレータ15は、ターゲットCPU101が外部RAM104からデータキャッシュメモリ103へのラインフェッチを実行するのに必要な時間を処理時間として計測し(ステップS5004)、読み書き処理を実行するときの処理を終了する。
ここで、ステップS5001の説明に戻ると、所定のデータを書き込む処理であるものと判定された場合には(ステップS5001否定)、シミュレータ15は、データキャッシュメモリ103および他の記憶部のいずれに所定のデータを格納すべきかをデータキャッシュメモリ103から順に判定する(ステップS5005)。
ここで、データキャッシュメモリ103に所定のデータを格納すべきであると判定した場合には(ステップS5005肯定)、シミュレータ15は、ターゲットCPU101が所定のデータをデータキャッシュメモリ103に格納するのに必要な時間を処理時間として計測し(ステップS5006)、読み書き処理を実行するときの処理を終了する。
また、他の記憶部に所定のデータを格納すべきであると判定した場合には(ステップS5005否定)、シミュレータ15は、ターゲットCPU101が所定のデータを他の記憶部に格納するのに必要な時間を処理時間として計測し(ステップS5007)、読み書き処理を実行するときの処理を終了する。
[実施例2による効果]
上記したように、実施例2によれば、処理単位ログに対応する処理が命令処理、もしくは読み書き処理のいずれであるかを判定し、処理単位ログに対応する処理が命令処理であった場合には、記憶部から命令文を読み込んで命令文を用いて命令処理を実行し、処理単位ログに対応する処理が読み書き処理であった場合には、記憶部に対して所定のデータを書き込む書き込み処理、または記憶部に記憶されている所定のデータを読み込む読み込み処理を実行するので、検証対象装置の動作を正確にシミュレートすることが可能である。
また、実施例2によれば、命令処理を実行するときに、第一の記憶部に命令文が記憶されているか否かを判定し、第一の記憶部に命令文が記憶されているものと判定された場合には、第一の記憶部から命令文を読み込み、第一の記憶部に前記命令文が記憶されていないものと判定された場合には、第二の記憶部から命令文を読み込むので、命令処理を実行するときにキャッシュメモリの動作の解析が可能な抽象度で検証対象装置の動作をシミュレートすることが可能である。
また、実施例2によれば、読み書き処理を実行するときに、所定のデータを記憶部から読み込む処理であるか、もしくは、所定のデータを記憶部に書き込む処理であるかを判定し、所定のデータを読み込む処理であるものと判定された場合には、第一の記憶部および第二の記憶部のいずれに所定のデータが記憶されているかを第一の記憶部から順に判定して所定のデータを読み込み、所定のデータを書き込む処理であるものと判定された場合には、第一の記憶部および第二の記憶部のいずれに所定のデータを格納すべきかを第一の記憶部から順に判定して所定のデータを書き込むので、読み書き処理を実行するときにキャッシュメモリの動作の解析が可能な抽象度で検証対象装置の動作をシミュレートすることが可能である。
ところで、データキャッシュメモリ103に記憶された所定のデータのアドレスが循環するように変化する場合があるが、検証対象装置の動作をシミュレートする場合に、このアドレスの変化を反映してシミュレートすることができない場合がある。そこで、実施例3では、シミュレータ15が周期的にデータを読み込む処理をシミュレートするときに、オフセットを与える場合を説明する。
ここで、オフセットとは、データキャッシュメモリ103に記憶された所定のデータのアドレスの変化によるミスヒットを模擬するために、データキャッシュメモリ103に所定のデータが記憶されているときであっても、強制的に外部RAM104から所定のデータを読み込ませる制御のことをいう。
なお、実施例3では、実施例3に係るシミュレーション装置の構成およびシミュレーション装置による処理の流れを説明した後、実施例3による効果を説明する。
[実施例3に係るシミュレーション装置の構成]
まず、実施例3に係るシミュレーション装置の構成を説明する。なお、実施例3に係るシミュレーション装置10の構成は、実施例2に係るシミュレーション装置10と以下に説明する点が異なる。
すなわち、シミュレータ15は、所定のデータを読み込む処理であるものと判定されたときに、オフセットするか否かを判定し、オフセットする場合には、外部RAM104からデータキャッシュメモリ103へのラインフェッチを実行するのに必要な時間を処理時間として計測し、オフセットしない場合には、ターゲットCPU101がデータキャッシュメモリ103から所定のデータを読み込むのに必要な時間を処理時間として計測する。
例えば、シミュレータ15は、例えば、シミュレータ15は、所定のデータを読み込む処理を実行させた回数を所定の記憶部に記憶しておき、所定のデータを読み込む処理を実行させた回数がユーザによって設定された回数以上であった場合に、オフセットすると判定する。
[読み書き処理を実行するときの実施例3に係るシミュレーション装置のシミュレータによる処理]
次に、図15を用いて、読み書き処理を実行するときの実施例3に係るシミュレーション装置のシミュレータ15による処理を説明する。図15は、読み書き処理を実行するときの実施例3に係るシミュレーション装置のシミュレータによる処理の流れを示すフローチャートである。
図15に示すように、読み書き処理を実行するときにシミュレータ15は、読み込む処理であるか、もしくは、書き込む処理であるかを判定し(ステップS6001)、読み込む処理であるものと判定された場合には(ステップS6001肯定)、所定のデータを読み込む処理を実行させた回数がユーザによって設定された回数以上であるか否かを判定する(ステップS6002)。
所定のデータを読み込む処理を実行させた回数がユーザによって設定された回数以上であると判定された場合に(ステップS6002肯定)、シミュレータ15は、シミュレータ15は、ターゲットCPU101が外部RAM104からデータキャッシュメモリ103へのラインフェッチを実行するのに必要な時間を処理時間として計測し(ステップS6003)、読み書き処理を実行するときの処理を終了する。
一方では、所定のデータを読み込む処理を実行させた回数がユーザによって設定された回数未満であると判定された場合に(ステップS6002否定)、シミュレータ15は、データキャッシュメモリ103および外部RAM104のいずれに所定のデータが記憶されているかをデータキャッシュメモリ103から順に判定する(ステップS6004)。
データキャッシュメモリ103に所定のデータが記憶されている場合には(ステップS6004肯定)、ターゲットCPU101がデータキャッシュメモリ103から所定のデータを読み込むのに必要な時間を処理時間として計測し(ステップS6005)、読み書き処理を実行するときの処理を終了する。
また、データキャッシュメモリ103に所定のデータが記憶されていない場合には(ステップS6004否定)、シミュレータ15は、ターゲットCPU101が外部RAM104からデータキャッシュメモリ103へのラインフェッチを実行するのに必要な時間を処理時間として計測し(ステップS6003)、読み書き処理を実行するときの処理を終了する。
ここで、ステップS6001の説明に戻ると、所定のデータを書き込む処理であるものと判定された場合には(ステップS6001否定)、シミュレータ15は、実施例2と同様に処理を実行する。
すなわち、シミュレータ15は、データキャッシュメモリ103に所定のデータを格納すべきであると判定した場合には(ステップS6006肯定)、ターゲットCPU101が所定のデータをデータキャッシュメモリ103に格納するのに必要な時間を処理時間として計測し(ステップS6007)、他の記憶部に所定のデータを格納すべきであると判定した場合には(ステップS6006否定)、ターゲットCPU101が所定のデータを他の記憶部に格納するのに必要な時間を処理時間として計測し(ステップS6008)、読み書き処理を実行するときの処理を終了する。
[実施例3による効果]
上記したように、実施例3によれば、所定のデータを読み込む処理を繰り返し実行する場合に、オフセットを与えるように処理するので、より正確に検証対象装置の動作をシミュレートすることが可能である。
ところで、処理単位ログに対応する処理が複数の処理を連続して実行する処理である場合には、処理単位ログに対応する処理を抽象化しても良い。そこで、実施例4では、処理単位ログに対応する処理を抽象化する場合を説明する。ここで、抽象化とは、例えば、ターゲットCPU101が連続した複数の命令処理を実行するのに必要な時間を、一括して計測することである。
なお、実施例4では、実施例4に係るシミュレーション装置の構成およびシミュレーション装置による処理の流れを説明した後、実施例4による効果を説明する。
[実施例4に係るシミュレーション装置の構成]
まず、実施例4に係るシミュレーション装置の構成を説明する。なお、実施例4に係るシミュレーション装置10の構成は、実施例3に係るシミュレーション装置10と以下に説明する点が異なる。
すなわち、処理単位ログ記憶部13cは、図16に示すように、処理単位ログとして、検査モデルによって実行されたイベントに、処理単位ログにおける最初のログと、処理単位ログを構成するログ数とを対応付けて記憶する。例えば、処理単位ログ記憶部13cは、処理単位ログとして、イベント「1」が実行されたときに最初に生成されたログである開始ログ「B」と、イベント「1」が4種類の処理によってなることを表すログ数「4」とをイベント「1」に対応付けて記憶する。なお、図16は、実施例4に係る処理単位ログ記憶部13cに記憶される情報の一例を示した図である。
処理単位ログ抽出部14cは、処理単位ログにおける最初のログと、処理単位ログを構成するログ数とを処理単位ログとして抽出する。具体的には、処理単位ログ抽出部14cは、入力部11を介して、処理単位ログ抽出命令を受け付けると、実行ログ記憶部13bから実行ログを読み込み、処理単位ログとして、検査モデルによって実行されたイベントごとに区分して、各イベントが実行されたときに最初に生成された開始ログと、各イベントを実行することによって生成したログ数とを抽出し、処理単位ログ記憶部13cに格納する。
シミュレータ15は、処理単位ログにおける最初のログと、処理単位ログを構成するログ数とを用いて、処理単位ログに対応する処理をシミュレートする。例えば、シミュレータ15は、4種類の命令処理によってなるイベント「1」を実行すべき時間に至ると、イベント「1」の開始ログ「B」と、ログ数「4」とを処理単位ログから読み込む。そして、ターゲットCPU101がイベント「1」の最初の命令処理を実行するのに必要な時間を計測し、イベント「1」のログ数である「4」を計測した時間に乗算して、ターゲットCPU101がイベント「1」を実行するのに必要な時間を算出する。
[実施例4による効果]
上記したように、実施例4によれば、処理単位ログにおける最初のログと、処理単位ログを構成するログ数とを処理単位ログとして抽出し、処理単位ログにおける最初のログと、処理単位ログを構成するログ数とを用いて、処理単位ログに対応する処理をシミュレートするので、より短時間で検証対象装置の動作をシミュレートすることが可能である。
さて、これまで実施例1〜4について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、実施例5として、他の実施例を説明する。
例えば、実施例1では、ターゲットCPU101を1つ備えた検査モデル(図3参照)において、処理単位ログに対応する処理が実行される場合の動作をシミュレートする場合を説明したが、本発明はこれに限定されるものではなく、単数または複数のターゲットCPUを備えた検査モデルであっても適応可能である。
また、検査モデル(図3参照)において、命令キャッシュメモリ102や、データキャッシュメモリ103は、階層構造の記憶部を備えたものであっても適応可能である。
また、実施例1では、検査モデルにおける一連の動作をシミュレートして実行ログを取得する場合を説明したが、本発明はこれに限定されるものではなく、現に存在し、実動している電子装置から実行ログを取得するようにしてもよい。
また、実施例1では、設定条件としての各イベントを実行すべき周期を入力して、各イベントを実行すべき周期を改変した検査モデルの動作をシミュレートする場合を説明したが、本発明はこれに限定されるものではない。例えば、ターゲットCPU101のクロック周波数や、平均処理速度、命令キャッシュメモリ102やデータキャッシュメモリ103の記憶容量、バス106の通信レートや、ラインフェッチをするのに必要な時間などを改変した検査モデルの動作をシミュレートしてもよい。
また、実施例1〜4では、OSのタスク切り替え処理についてのログは、処理単位ログに含まれることを想定しているが、OSのタスク切り替え処理を別個のログとして切り出すようにしてもよい。
また、通信処理における受信処理などは、転送レートを変えた場合についてシミュレートすると、処理の頻度だけでなく、処理量が変化する場合がある。その場合には、処理量の変化を処理の頻度を変更することで置き換えられるようにシミュレートの目的に適した粒度で所定の処理単位を抽出するようにしてもよい。例えば、処理単位としての「上り送信処理」を「方路を検索する処理」および「送信する情報をバッファから読み込む処理」の2つの処理単位に分割して抽出するようにしてもよい。
また、1度に実行するイベントは1つに限定されず、複数のイベントの組み合わせであってもよい。例えば、2秒周期で実行するイベント「2」の実行を契機として、イベント「3」を2回実行するようにしてもよい。
(装置構成等)
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。例えば、実行ログから処理単位ログを手動で抽出してもよい。また、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。例えば、予め設定条件記憶部13dに設計条件を記憶しておき、処理単位ログ抽出部14cによって処理単位ログ記憶部13cに処理単位ログが格納されることを契機に、自動で検証対象装置の機能の一部を改変した検査モデルの動作をシミュレートするようにしてもよい。
この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報(例えば、図3に示した検査モデルの構成や、図4、図5、図6、図7、図10、図11、図16に示した記憶情報)については、特記する場合を除いて任意に変更することができる。
また、図2に示したシミュレーション装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる(例えば、図2において、制御部14をシミュレータ15に統合するなどできる)。
(シミュレートプログラム)
ところで、本発明はあらかじめ用意されたシミュレートプログラムをコンピュータで実行することによって実現するようにしてもよい。そこで、以下では、図17を用いて、上記の実施例に示したシミュレーション装置と同様の機能を有するシミュレートプログラムを実行するコンピュータの一例を説明する。図17は、シミュレートプログラムを実行するコンピュータを示す図である。
同図に示すように、シミュレーション装置10としてのコンピュータ110は、入力部120、ROM130、CPU140、HDD150、RAM160、出力部170およびシミュレータ180をバス190などで接続して構成される。
ROM130には、上記の実施例1に示したシミュレーション装置10と同様の機能を発揮するシミュレートプログラム、つまり、図17に示すように検査モデル格納プログラム130aと、実行ログ取得プログラム130bと、処理単位ログ抽出プログラム130cと、シミュレータ制御プログラム130dが、あらかじめ記憶されている。なお、これらのプログラム130a〜プログラム130dについては、図2に示したシミュレーション装置10の各構成要素と同様、適宜統合または、分散してもよい。
そして、CPU140がこれらのプログラム130a〜プログラム130dをROM130から読み出して実行することで、図17に示すように、プログラム130a〜プログラム130dは、検査モデル格納プロセス140aと、実行ログ取得プロセス140bと、処理単位ログ抽出プロセス140cと、シミュレータ制御プロセス140dとして機能するようになる。なお、プロセス140a〜プロセス140dは、図2に示した、検査モデル格納部14aと、実行ログ取得部14bと、処理単位ログ抽出部14cと、シミュレータ制御部14dとにそれぞれ対応する。
また、HDD150には、図17に示すように、検査モデルデータテーブル150a、実行ログデータテーブル150b、処理単位ログデータテーブル150c、設定条件データテーブル150d、シミュレート結果データテーブル150eがそれぞれ設けられる。なお、データテーブル150a〜データテーブル150eは、図2に示した検査モデル記憶部13aと、実行ログ記憶部13bと、処理単位ログ記憶部13cと、設定条件記憶部13dとおよびシミュレート結果記憶部13eにそれぞれ対応する。そして、CPU140は、データテーブル150a〜データテーブル150eから、検査モデルデータ160a、実行ログデータ160b、処理単位ログデータ160c、設定条件データ160dおよびシミュレート結果データ160eをそれぞれ読み出してRAM160に格納し、RAM160に格納された、データ160a〜データ160eに基づいて処理を実行する。
なお、上記した各プログラム130a〜プログラム130dについては、必ずしも最初からROM130に記憶させておく必要はなく、例えば、コンピュータ110に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」、またはコンピュータ110の内外に備えられるHDDなどの「固定用の物理媒体」、さらには公衆回線、インターネット、LAN、WANなどを介してコンピュータ110に接続される「他のコンピュータ(またはサーバ)」などに各プログラムを記憶させておき、コンピュータ110がこれから各プログラムを読み出して実行するようにしてもよい。
実施例1に係るシミュレーション装置の概要および特徴を説明するための図である。 シミュレーション装置の構成を示すブロック図である。 検査モデル記憶部13aに記憶される情報の一例を示した図である。 実行ログ記憶部に記憶される情報の一例を示した図である。 処理単位ログ記憶部に記憶される情報の一例を示した図である。 設定条件記憶部に記憶される情報の一例を示した図である。 シミュレート結果記憶部に記憶される情報の一例を示した図である。 処理単位ログを抽出するときのシミュレーション装置による処理の流れを示すフローチャートである。 検証対象装置の機能の一部を改変した検査モデルの動作をシミュレートするときのシミュレーション装置による処理の流れを示すフローチャートである。 実施例2に係るシミュレーション装置の実行ログ記憶部に記憶される情報の一例を示した図である。 実施例2に係るシミュレーション装置の処理単位ログ記憶部に記憶される情報の一例を示した図である。 検証対象装置の機能の一部を改変した場合のシミュレータによる処理の流れを示すフローチャートである。 命令処理を実行するときのシミュレーション装置のシミュレータによる処理の流れを示すフローチャートである。 読み書き処理を実行するときのシミュレーション装置のシミュレータによる処理の流れを示すフローチャートである。 読み書き処理を実行するときの実施例3に係るシミュレーション装置のシミュレータによる処理の流れを示すフローチャートである。 実施例4に係る処理単位ログ記憶部13cに記憶される情報の一例を示した図である。 シミュレートプログラムを実行するコンピュータを示す図である。
10 シミュレーション装置
11 入力部
12 出力部
13 記憶部
13a 検査モデル記憶部
13b 実行ログ記憶部
13c 処理単位ログ記憶部
13d 設定条件記憶部
13e シミュレート結果記憶部
14 制御部
14a 検査モデル格納部
14b 実行ログ取得部
14c 処理単位ログ抽出部
14d シミュレータ制御部
15 シミュレータ
100 検査モデル
101 ターゲットCPU
102 命令キャッシュメモリ
103 データキャッシュメモリ
104 外部RAM
105 周辺ハードウェア
106 バス
110 コンピュータ
120 入力部
130 ROM
130a 検査モデル格納プログラム
130b 実行ログ取得プログラム
130c 処理単位ログ抽出プログラム
130d シミュレータ制御プログラム
140 CPU
140a 検査モデル格納プロセス
140b 実行ログ取得プロセス
140c 処理単位ログ抽出プロセス
140d シミュレータ制御プロセス
150 HDD
150a 検査モデルデータテーブル
150b 実行ログデータテーブル
150c 処理単位ログデータテーブル
150d 設定条件データテーブル
150e シミュレート結果データテーブル
160 RAM
160a 検査モデルデータ
160b 実行ログデータ
160c 処理単位ログデータ
160d 設定条件データ
160e シミュレート結果データ
170 出力部
180 シミュレータ
190 バス

Claims (7)

  1. 検証対象装置の性能を評価するためにモデル化された検証対象装置の動作をシミュレートするコンピュータが実行するシミュレート方法であって、
    前記コンピュータが備える実行ログ取得部が、検証対象装置をモデル化した検査モデルにおいて所定の処理が実行される場合の当該検査モデルにおける一連の動作をシミュレートし、当該所定の処理の実行に伴って生成され、かつ実行された処理の命令である実行ログを取得し、取得した前記実行ログを前記コンピュータが備える実行ログ記憶部に格納する実行ログ取得ステップと、
    前記コンピュータが備える処理単位ログ抽出部が、前記実行ログ記憶部から前記実行ログを読み込み、読み込んだ前記実行ログから所定の処理単位の命令で構成される処理単位ログを抽出し、抽出した前記処理単位ログを前記コンピュータが備える処理単位ログ記憶部に格納する処理単位ログ抽出ステップと、
    前記コンピュータが備えるシミュレート部が、前記検証対象装置の機能の一部を改変した検査モデルにおいて、前記処理単位ログ記憶部から前記処理単位ログを読み込み、読み込んだ前記処理単位ログに対応する処理が実行される場合の動作を、ユーザによって設定された設定条件に基づいてシミュレートするシミュレートステップと、
    を含んだことを特徴とするシミュレート方法。
  2. 前記検証対象装置は、所定の命令に対応する命令処理を実行するための命令文、および読み書き処理された所定のデータを記憶する記憶部を備えたものであって、
    前記シミュレートステップは、前記シミュレート部が、前記処理単位ログ記憶部から前記処理単位ログを読み込み、読み込んだ前記処理単位ログに対応する処理が前記命令処理、もしくは前記読み書き処理のいずれであるかを判定し、前記処理単位ログに対応する処理が前記命令処理であった場合には、前記記憶部から前記命令文を読み込んで当該命令文を用いて前記命令処理を実行し、前記処理単位ログに対応する処理が読み書き処理であった場合には、前記記憶部に対して所定のデータを書き込む書き込み処理、または前記記憶部に記憶されている所定のデータを読み込む読み込み処理を実行することを特徴とする請求項1に記載のシミュレート方法。
  3. 前記検証対象装置は、前記命令文を読み込む処理を実行する場合に用いられる第一の記憶部および第二の記憶部を備えたものであって、
    前記シミュレートステップは、前記シミュレート部が、前記命令処理を実行するときに、前記第一の記憶部に前記命令文が記憶されているか否かを判定し、前記第一の記憶部に前記命令文が記憶されているものと判定された場合には、前記第一の記憶部から前記命令文を読み込み、前記第一の記憶部に前記命令文が記憶されていないものと判定された場合には、前記第二の記憶部から前記命令文を読み込むことを特徴とする請求項2に記載のシミュレート方法。
  4. 前記検証対象装置は、前記読み書き処理を実行する場合に用いられる第一の記憶部および第二の記憶部を備えたものであって、
    前記シミュレートステップは、前記シミュレート部が、前記読み書き処理を実行するときに、前記所定のデータを記憶部から読み込む処理であるか、もしくは、前記所定のデータを記憶部に書き込む処理であるかを判定し、前記所定のデータを読み込む処理であるものと判定された場合には、前記第一の記憶部および前記第二の記憶部のいずれに前記所定のデータが記憶されているか否かを前記第一の記憶部から順に判定して前記所定のデータを読み込み、前記所定のデータを書き込む処理であるものと判定された場合には、前記第一の記憶部および前記第二の記憶部のいずれに前記所定のデータを格納すべきかを前記第一の記憶部から順に判定して前記所定のデータを書き込むことを特徴とする請求項2に記載のシミュレート方法。
  5. 前記実行ログ取得ステップは、前記実行ログ取得部が、前記検査モデルにおいて所定の処理が実行される場合の当該検査モデルにおける一連の動作をシミュレートし、当該所定の処理の実行に伴って生成され、かつ実行された処理の命令を示すバイナリデータであって当該処理を実行するためのソフトウェアがコンパイルされることで作成されたバイナリデータである実行ログを取得し、取得した前記実行ログを前記実行ログ記憶部に格納する請求項1〜4のいずれか1項に記載のシミュレート方法。
  6. 検証対象装置の性能を評価するためにモデル化された検証対象装置の動作をシミュレートするシミュレート方法をシミュレーション装置としてのコンピュータに実行させるシミュレートプログラムであって、
    検証対象装置をモデル化した検査モデルにおいて所定の処理が実行される場合の当該検査モデルにおける一連の動作をシミュレートし、当該所定の処理の実行に伴って生成され、かつ実行された処理の命令である実行ログを取得する実行ログ取得手順と、
    前記実行ログ取得手順によって取得された実行ログから所定の処理単位の命令で構成される処理単位ログを抽出する処理単位ログ抽出手順と、
    前記検証対象装置の機能の一部を改変した検査モデルにおいて、前記処理単位ログ抽出手順によって抽出された処理単位ログに対応する処理が実行される場合の動作を、ユーザによって設定された設定条件に基づいてシミュレートするシミュレート手順と、
    をコンピュータに実行させることを特徴とするシミュレートプログラム。
  7. 検証対象装置の性能を評価するためにモデル化された検証対象装置の動作をシミュレートするシミュレーション装置であって、
    検証対象装置をモデル化した検査モデルにおいて所定の処理が実行される場合の当該検査モデルにおける一連の動作をシミュレートし、当該所定の処理の実行に伴って生成され、かつ実行された処理の命令である実行ログを取得する実行ログ取得部と、
    前記実行ログ取得部によって取得された実行ログから所定の処理単位の命令で構成される処理単位ログを抽出する処理単位ログ抽出部と、
    前記検証対象装置の機能の一部を改変した検査モデルにおいて、前記処理単位ログ抽出部によって抽出された処理単位ログに対応する処理が実行される場合の動作を、ユーザによって設定された設定条件に基づいてシミュレートするシミュレート部と、
    を備えたことを特徴とするシミュレーション装置。
JP2009537783A 2007-10-15 2007-10-15 シミュレート方法、シミュレートプログラムおよびシミュレーション装置 Expired - Fee Related JP4634525B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2007/070071 WO2009050768A1 (ja) 2007-10-15 2007-10-15 シミュレート方法、電子装置の設計方法、シミュレートプログラムおよびシミュレーション装置

Publications (2)

Publication Number Publication Date
JP4634525B2 true JP4634525B2 (ja) 2011-02-16
JPWO2009050768A1 JPWO2009050768A1 (ja) 2011-02-24

Family

ID=40567064

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009537783A Expired - Fee Related JP4634525B2 (ja) 2007-10-15 2007-10-15 シミュレート方法、シミュレートプログラムおよびシミュレーション装置

Country Status (3)

Country Link
US (1) US8428927B2 (ja)
JP (1) JP4634525B2 (ja)
WO (1) WO2009050768A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5034955B2 (ja) * 2008-01-08 2012-09-26 富士通株式会社 性能評価シミュレーション装置、性能評価シミュレーション方法および性能評価シミュレーションプログラム
JP5200675B2 (ja) * 2008-06-11 2013-06-05 富士通株式会社 シミュレーション装置,シミュレーション方法,シミュレーションプログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体
JP5510258B2 (ja) * 2010-10-06 2014-06-04 富士通株式会社 シミュレーション装置
US10970183B1 (en) * 2013-08-16 2021-04-06 The Mathworks, Inc. System and method for improving model performance
CN104462625B (zh) * 2013-09-23 2017-08-22 广州汽车集团股份有限公司 一种汽车悬架动力学模型校准方法
JP6693308B2 (ja) * 2016-07-05 2020-05-13 富士通株式会社 負荷推定プログラム、負荷推定方法及び負荷推定装置
JP6832654B2 (ja) * 2016-09-09 2021-02-24 東京エレクトロン株式会社 検査システムの調整方法およびそれに用いる補助エレメント
US10387282B2 (en) * 2016-09-20 2019-08-20 Rohde & Schwarz Gmbh & Co. Kg Test unit and test method for efficient testing during long idle periods
TWI627521B (zh) * 2017-06-07 2018-06-21 財團法人工業技術研究院 時序估算方法與模擬裝置
EP3933655A4 (en) 2019-03-28 2022-03-16 Kabushiki Kaisha Zuken INFORMATION PROCESSING DEVICE, PROGRAM AND SIMULATION METHOD
CN116383155B (zh) * 2023-06-05 2023-08-11 成都融见软件科技有限公司 一种基于eda验证仿真器的日志查询系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001249829A (ja) * 2000-03-06 2001-09-14 Hitachi Ltd システムシミュレータ

Family Cites Families (8)

* 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 計算機性能評価装置
JP3608915B2 (ja) * 1997-09-22 2005-01-12 富士通株式会社 マルチプロセッシングシステムの性能評価方法および装置並びにマルチプロセッシングシステムの性能評価プログラムを格納した記憶媒体
US7412369B1 (en) * 2000-06-09 2008-08-12 Stmicroelectronics, Inc. System and method for designing and optimizing the memory of an embedded processing system
JP4503203B2 (ja) 2001-07-03 2010-07-14 富士通株式会社 情報処理装置を評価するためのテストプログラムを作成する方法、装置、およびそのための処理を記述したプログラム
JP2004013227A (ja) 2002-06-03 2004-01-15 Matsushita Electric Ind Co Ltd シミュレーション装置並びにシミュレーションモデル生成プログラム
JP4342392B2 (ja) 2004-07-06 2009-10-14 Okiセミコンダクタ株式会社 ソフトウェア検証モデル生成方法
US20060174155A1 (en) * 2005-02-03 2006-08-03 Arm Limited System, method and computer program product for testing software
US8032875B2 (en) * 2006-11-28 2011-10-04 Oracle America, Inc. Method and apparatus for computing user-specified cost metrics in a data space profiler

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001249829A (ja) * 2000-03-06 2001-09-14 Hitachi Ltd システムシミュレータ

Also Published As

Publication number Publication date
WO2009050768A1 (ja) 2009-04-23
JPWO2009050768A1 (ja) 2011-02-24
US20100204975A1 (en) 2010-08-12
US8428927B2 (en) 2013-04-23

Similar Documents

Publication Publication Date Title
JP4634525B2 (ja) シミュレート方法、シミュレートプログラムおよびシミュレーション装置
CN101952827B (zh) 用于执行硬件仿真和验证解决方案的方法和装置
US8386851B2 (en) Functional coverage using combinatorial test design
US9208451B2 (en) Automatic identification of information useful for generation-based functional verification
US20140033174A1 (en) Software bug predicting
US8892386B2 (en) Method and apparatus for post-silicon testing
US8868976B2 (en) System-level testcase generation
US11544176B1 (en) Systems and methods for automatically assessing and conforming software development modules to accessibility guidelines in real-time
Dick et al. Measurement and Rating of Software-induced Energy Consumption of Desktop PCs and Servers.
US7146581B2 (en) Automated repartitioning of hardware and software components in an embedded system
CN107145446B (zh) 一种应用程序app的测试方法、装置和介质
US8117499B2 (en) Generation of a stimuli based on a test template
US10380313B1 (en) Implementation and evaluation of designs for heterogeneous computing platforms with hardware acceleration
CN117076330B (zh) 一种访存验证方法、系统、电子设备及可读存储介质
Kantrowitz et al. Functional Verification of a Multiple-issue, Pipelined, Superscalar Alpha Processor - the Alpha 21164 CPU Chip
US8938646B2 (en) Mutations on input for test generation
Narang et al. An Exploration of Microprocessor Self-Test Optimisation Based On Safe Faults
CN112613257A (zh) 验证方法、装置、电子设备和计算机可读存储介质
JP4869581B2 (ja) カバレッジ計測システム及びそのプログラム
CN110889273A (zh) 数据处理方法、数据处理装置、存储介质和电子设备
US5818850A (en) Speed coverage tool and method
CN117113907B (zh) 一种验证方法、装置、电子设备及可读存储介质
CN117093353B (zh) 一种中断控制方法、装置、电子设备及可读存储介质
JP2013061893A (ja) 情報処理装置及び情報処理方法及びプログラム
Kamesh et al. Developing Usage Models through Stimulus-Response Sequences

Legal Events

Date Code Title Description
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: 20101116

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: 20101118

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20131126

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees