JP5077219B2 - シミュレーション方法、シミュレーション装置およびシミュレーションプログラム - Google Patents
シミュレーション方法、シミュレーション装置およびシミュレーションプログラム Download PDFInfo
- Publication number
- JP5077219B2 JP5077219B2 JP2008321307A JP2008321307A JP5077219B2 JP 5077219 B2 JP5077219 B2 JP 5077219B2 JP 2008321307 A JP2008321307 A JP 2008321307A JP 2008321307 A JP2008321307 A JP 2008321307A JP 5077219 B2 JP5077219 B2 JP 5077219B2
- Authority
- JP
- Japan
- Prior art keywords
- packet data
- packet
- data
- data processing
- processing
- 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
Links
Images
Description
図1は、実施例1に係るシミュレーション装置の概要を説明するための図である。実施例1に係るシミュレーション装置は、メモリから読み出したパケットデータをデータ処理した後、バスを経由させてメモリにデータ処理後のパケットデータを書き込むまでの一連の処理過程をモデル上でシミュレートすることを概要とする。そして、実施例1に係るシミュレーション装置は、メモリからパケットデータが読み出されてからデータ処理後のパケットデータがメモリに書き込まれるまでの時間であるレイテンシを精度良く算出する。
図2は、シミュレーション装置の構成を示すブロック図である。図2に示すように、シミュレーション装置1は、入力部10と、出力部20と、記憶部30と、シミュレーション実行部40とを有する。
図5は、シミュレーション装置による処理の流れを示すフローチャート図である。図3に示すように、モデル生成部41は、ユーザからシミュレーション開始指示を受け付けると(ステップS101肯定)、モデルデータを展開して、半導体モデルを生成する(ステップS102)。
機能ブロック#1、2は、実行ログ記憶部31から実行ログを読み出し、実行ログの中に列挙されたメモリモデル上のアドレスに対してデータを読み書きする。また、機能ブロック#1は、パケットデータをメモリモデルから読み出すと、スクランブル処理を実行する。また、機能ブロック#2は、パケットデータをメモリモデルから読み出すと、暗号化処理を実行する。バスモデルは、バスの動作を抽象化したモデルであり、プロセッサモデル、データ送信モデルおよびデータ受信モデルからメモリモデルへのデータアクセスを制御する。メモリモデルは、RAM(Random Access Memory)などの記憶デバイスを抽象化したモデルであり、メモリモデルが有する記憶領域にはアドレスが割り振られ、各アドレスに対応付けてデータを記憶する。
データ送信モデルは、シミュレーションが開始すると、予め設定されている一定のシミュレーション時間が経過するごとに(例えば、周期Xごとに)、パケットをメモリモデルに書き込む。そして、データ送信モデルは、パケットの書き込みが完了すると、データ送信が完了したことを示す制御情報をスケジュラーに対して送信する。
スケジュラーは、データ送信モデルから制御情報を受信すると、スクランブル処理を開始させるための制御信号(処理開始指示ともいう)を機能ブロック#1に対して送信する。
図8は、パケットデータ読み出し処理を説明するための図である。機能ブロック#1は、スケジュラーから処理開始指示を受信すると、1周期で処理できるパケットデータ量をメモリモデルから読み出してデータ処理を行う。メモリモデルにパケットID0〜2が記憶されているものと仮定した場合の機能ブロック#1による処理について説明すると、図8に示すように、機能ブロック#1は、1周期で処理できるパケットデータとして、各パケットデータ#1〜#3を順次読み出してデータ処理を行う。ここで、図8に示すように、パケットデータ#1は、パケットID0およびパケットID1を含んでおり、パケットデータ#2は、パケットID1の一部を含んでおり、パケットデータ#3は、パケットID1およびパケットID2を含んでいる。
シミュレーション時間取得処理を実行した後、機能ブロック#1は、図9に示すように、パケットデータ処理を実行する。具体的には、機能ブロック#1は、パケットデータをスクランブル処理し、実行ログを選択する。
図14は、負荷発生処理を説明するための図である。パケットデータ処理を実行した後、機能ブロック#1は、図9に示すように、負荷発生処理を実行する。具体的には、機能ブロック#1は、処理選択テーブル記憶部32から読み出した組合せ情報に対応する実行ログを実行ログ記憶部31から読み出す。例えば、機能ブロック#1は、「S´×3」を示す組合せ情報を処理選択テーブル記憶部32から読み出した場合には、実行ログS´を実行ログ記憶部31から3回読み出す。
負荷発生処理を実行した後、機能ブロック#1は、図9に示すように、遅延時間算出処理を実行する。具体的には、機能ブロック#1は、メモリモデルにスクランブル処理後のパケットデータを格納したときのシミュレーション時刻を示す処理完了時間情報を取得する。
スケジュラーは、前回機能ブロック#2に対して暗号化処理を開始させるための制御信号(処理開始指示ともいう)を送信してから予め設定されている一定のシミュレーション時間が経過するごとに(周期Yごとに)、機能ブロック#2に対して処理開始指示を送信する。
機能ブロック#2は、スケジュラーから処理開始指示を受信すると、メモリモデルからスクランブル処理後のパケットデータ#1を読み出す。メモリモデルからパケットデータ#1を読み出すと、機能ブロック#2は、機能ブロック#1と同様に、パケット先頭検出処理およびシミュレーション時間取得処理を実行する。なお、機能ブロック#2は、ID別タイムスタンプリストのパケットID0、1に、処理開始時間情報(t1´)を対応付けて格納する。
シミュレーション時間取得処理を実行した後、機能ブロック#2は、パケットデータ処理を実行する。機能ブロック#2は、機能ブロック#1と同様に、パケットデータ処理を実行する。具体的には、機能ブロック#2は、パケットデータを暗号化処理し、実行ログを選択する。機能ブロック#2は、機能ブロック#2用の処理選択テーブルの中から組合せ情報を読み出す。
パケット処理を実行した後、機能ブロック#2は、負荷発生処理を実行する。ここで、機能ブロック#2は、機能ブロック#2用の実行ログを実行ログ記憶部31から読み出す他は、機能ブロック#1と同様に負荷発生処理を実行する。
負荷発生処理を実行した後、機能ブロック#2は、遅延時間算出処理を実行する。ここで、遅延時間算出処理は、処理完了時間情報(t2´)を取得し、パケットID0と、処理完了時間情報(t2´)とを対応付けて遅延時間表示部に対して送信する。なお、このパケットIDおよび処理完了時間情報を送信する処理は、各機能ブロックの中で、最後にデータ処理を実行する機能ブロックだけが実行する。
データ受信モデルは、シミュレーションが実行されると、予め設定されている一定のシミュレーション時間が経過するごとに、暗号化処理後のデータをメモリモデルから読み出す。
(3)パケットデータ読み出し
メモリモデルからパケットデータ#2を読み出すと、機能ブロック#1は、パケット先頭検出処理を実行する。ここでは、機能ブロック#1は、図10の(B)に示すように、先頭識別子を検出しない。次に、機能ブロック#1は、シミュレーション時間取得処理を実行する。ここでは、機能ブロック#1は、図13の(B)に示すように、ID別タイムスタンプリストのパケットID1と、処理開始時間情報(t3)とを対応付けて格納する。
シミュレーション時間取得処理を実行した後、機能ブロック#1は、パケットデータ処理を実行する。ここでは、機能ブロック#1は、パケットデータ#1を読み出したときと同様の処理を行う。
パケットデータ処理を実行した後、機能ブロック#1は、負荷発生処理を実行する。ここでは、機能ブロック#1は、パケットデータ#1を読み出したときと同様の処理を行う。
負荷発生処理を実行した後、機能ブロック#1は、遅延時間算出処理を実行する。ここでは、機能ブロック#1は、処理完了時間情報(t4)を取得する。続いて、機能ブロック#1は、ID別スタンプリストを確認し、パケットID1に対応する処理開始時間情報(t3)を取得する。次に、機能ブロック#1は、処理開始時間情報(t3)から処理完了時間情報(t4)に至るまでのシミュレーション上の時間間隔である差分値(t4−t3)を算出する。さらに、機能ブロック#1は、IDリストキューを参照し、IDリストキューに格納されているパケットID1を取得する。
(3)パケットデータ読み出し
メモリモデルからパケットデータ#3を読み出すと、機能ブロック#1は、パケット先頭検出処理を実行する。ここでは、機能ブロック#1は、図10の(C)に示すように、パケットデータ#3の中からパケットID2の先頭識別子を検出し、パケットID2を取得する。そして、機能ブロック#1は、図11の(C)に示すように、IDリストキューにパケットID2をプッシュする。
シミュレーション時間取得処理を実行した後、機能ブロック#1は、パケットデータ処理を実行する。ここでは、機能ブロック#1は、パケットデータ#1を読み出したときと同様の処理を行う。
パケットデータ処理を実行した後、機能ブロック#1は、負荷発生処理を実行する。ここでは、機能ブロック#1は、パケットデータ#1を読み出したときと同様の処理を行う。
負荷発生処理を実行した後、機能ブロック#1は、遅延時間算出処理を実行する。ここでは、機能ブロック#1は、処理完了時間情報(t6)を取得する。続いて、機能ブロック#1は、ID別スタンプリストを確認し、パケットID1、2に対応する処理開始時間情報(t5)を取得する。次に、機能ブロック#1は、処理開始時間情報(t5)から処理完了時間情報(t6)に至るまでのシミュレーション上の時間間隔である差分値(t6−t5)を算出する。さらに、機能ブロック#1は、IDリストキューを参照し、IDリストキューに格納されているパケットID1、2を取得する。
負荷発生処理を実行した後、機能ブロック#2は、遅延時間算出処理を実行する。ここで、遅延時間算出処理は、処理完了時間情報(t6´)を取得し、パケットID1、2と、処理完了時間情報(t6´)とを対応付けて遅延時間表示部に対して送信する。
上記したように、実施例1によれば、精度の良いレイテンシが算出できるので、開発中の半導体装置について精度良く性能を評価することが可能である。
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報(例えば、図14などに示したパラメータ)については、特記する場合を除いて任意に変更することができる。
また、上記の実施例1で説明したシミュレーション装置1の各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。
10 入力部
20 出力部
30 記憶部
31 実行ログ記憶部
32 処理選択テーブル記憶部
33 パラメータ記憶部
34 モデルデータ記憶部
40 シミュレーション実行部
41 モデル生成部
42 モデル制御部
43 時間算出部
110 コンピュータ
120 入力部
130 ROM(Read Only Memory)
131 モデル生成プログラム
132 モデル制御プログラム
133 時間算出プログラム
140 CPU(Central Processing Unit)
141 モデル生成プロセス
142 モデル制御プロセス
143 時間算出プロセス
150 HDD(Hard Disk Drive)
151 実行ログデータテーブル
152 処理選択テーブル
153 パラメータデータテーブル
154 モデルデータテーブル
160 RAM(Random Access Memory)
161 実行ログデータ
162 処理選択データ
163 パラメータデータ
164 モデルデータ
170 出力部
180 バス
Claims (5)
- モデル上のメモリブロックからパケットデータを読み出して、当該パケットデータを処理するデータ処理ステップと、
前記データ処理ステップによるパケットデータの処理完了後に、前記メモリブロックのアクセス先アドレスおよび当該メモリブロックへのアクセス種別を含む実行ログを用いて、データ処理後のパケットデータがバスを通過する際に発生する通過遅延を算出する通過遅延算出ステップと、
前記通過遅延算出ステップにより算出された通過遅延の分だけ、シミュレーション時間を経過させた後、バスを通過させずに、データ処理後のパケットデータをメモリブロックに書き込むパケットデータ書き込みステップと、
前記データ処理ステップによってパケットデータが読み出されてから、データ処理後のパケットデータがメモリブロックに書き込まれるまでの時間を算出する時間算出ステップと
を含むシミュレーション方法。 - 前記データ処理ステップによって読み出されたパケットデータを監視して、当該パケットデータの長さを示すパケットデータ長を測定するパケットデータ長測定ステップをさらに含み、
前記通過遅延算出ステップは、前記パケットデータ長測定ステップによって測定されたパケットデータ長に応じた実行ログを用いて、通過遅延を算出する請求項1に記載のシミュレーション方法。 - 前記データ処理ステップは、一定の周期ごとに、一周期で処理できる量のパケットデータを読み出して、データ処理し、
前記時間算出ステップは、前記データ処理ステップによって最初のパケットデータが読み出されてから、前記パケットデータ書き込みステップによって最後のパケットデータが書き込まれるまでの時間を算出する請求項1または2に記載のシミュレーション方法。 - モデル上のメモリブロックからパケットデータを読み出して、当該パケットデータを処理するデータ処理手段と、
前記データ処理手段によるパケットデータの処理完了後に、前記メモリブロックのアクセス先アドレスおよび当該メモリブロックへのアクセス種別を含む実行ログを用いて、データ処理後のパケットデータがバスを通過する際に発生する通過遅延を算出する通過遅延算出手段と、
前記通過遅延算出手段により算出された通過遅延の分だけ、シミュレーション時間を経過させた後、バスを通過させずに、データ処理後のパケットデータをメモリブロックに書き込むパケットデータ書き込み手段と、
前記データ処理手段によってパケットデータが読み出されてから、データ処理後のパケットデータがメモリブロックに書き込まれるまでの時間を算出する時間算出手段と
を有するシミュレーション装置。 - モデル上のメモリブロックからパケットデータを読み出して、当該パケットデータを処理するデータ処理手順と、
前記データ処理手順によるパケットデータの処理完了後に、前記メモリブロックのアクセス先アドレスおよび当該メモリブロックへのアクセス種別を含む実行ログを用いて、データ処理後のパケットデータがバスを通過する際に発生する通過遅延を算出する通過遅延算出手順と、
前記通過遅延算出手順により算出された通過遅延の分だけ、シミュレーション時間を経過させた後、バスを通過させずに、データ処理後のパケットデータをメモリブロックに書き込むパケットデータ書き込み手順と、
前記データ処理手順によってパケットデータが読み出されてから、データ処理後のパケットデータがメモリブロックに書き込まれるまでの時間を算出する時間算出手順と
をコンピュータに実行させるシミュレーションプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008321307A JP5077219B2 (ja) | 2008-12-17 | 2008-12-17 | シミュレーション方法、シミュレーション装置およびシミュレーションプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008321307A JP5077219B2 (ja) | 2008-12-17 | 2008-12-17 | シミュレーション方法、シミュレーション装置およびシミュレーションプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010146194A JP2010146194A (ja) | 2010-07-01 |
JP5077219B2 true JP5077219B2 (ja) | 2012-11-21 |
Family
ID=42566592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008321307A Expired - Fee Related JP5077219B2 (ja) | 2008-12-17 | 2008-12-17 | シミュレーション方法、シミュレーション装置およびシミュレーションプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5077219B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11314648B2 (en) * | 2017-02-08 | 2022-04-26 | Arm Limited | Data processing |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2663893B2 (ja) * | 1994-12-27 | 1997-10-15 | 日本電気株式会社 | アーキテクチャ・シミュレータ |
JP2003223475A (ja) * | 2002-01-30 | 2003-08-08 | Fujitsu Ltd | 性能評価装置 |
JP2004334374A (ja) * | 2003-05-01 | 2004-11-25 | Sony Corp | メモリアクセス検証システム及び方法、メモリアクセス検証用プログラム |
JP2006107309A (ja) * | 2004-10-08 | 2006-04-20 | Seiko Epson Corp | バスインターフェース設計支援装置、バスインターフェース設計支援システム、バスインターフェース設計支援プログラムおよびバスインターフェース設計支援方法 |
-
2008
- 2008-12-17 JP JP2008321307A patent/JP5077219B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2010146194A (ja) | 2010-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8428927B2 (en) | Simulation method and simulation apparatus | |
CN109032879B (zh) | 多核处理器访存数据检测验证系统及方法 | |
US20050102640A1 (en) | Verification apparatus, verification method, and program | |
CN104615477A (zh) | 运行中的fpga 系统的周期精确级重放和调试 | |
JP4468410B2 (ja) | ソフトウェア実行装置および協調動作方法 | |
CN114168200B (zh) | 多核处理器访存一致性的验证系统及方法 | |
US8700380B2 (en) | Method for generating performance evaluation model | |
JP4187470B2 (ja) | 半導体装置の開発支援連携装置及び開発支援方法 | |
JP2006139729A (ja) | ハードウェア検証用プログラミング言語モデル生成装置、ハードウェア検証用プログラミング言語モデル生成方法、コンピュータシステム、ハードウェアシミュレーション方法、制御プログラムおよび可読記憶媒体 | |
JP5040625B2 (ja) | Lsiの電力見積方法及びその装置 | |
JP5077219B2 (ja) | シミュレーション方法、シミュレーション装置およびシミュレーションプログラム | |
US7865345B2 (en) | Simulation apparatus and method | |
US20140325468A1 (en) | Storage medium, and generation apparatus for generating transactions for performance evaluation | |
US20100161305A1 (en) | Performance evaluation device, performance evaluation method and simulation program | |
TW201708836A (zh) | 基於協定之自動化測試器刺激產生器 | |
JP5454349B2 (ja) | 性能推定装置 | |
US9547568B2 (en) | Method and apparatus for verifying circuit design | |
CN115983172B (zh) | 用于后仿真的方法和仿真平台 | |
CN116842902B (zh) | 针对黑盒模型的系统级仿真建模方法 | |
JP2009075811A (ja) | 論理シミュレーション装置及び論理シミュレーション方法 | |
CN110321574B (zh) | 一种打印波形的方法和装置 | |
JP2007207119A (ja) | 表示装置及び表示方法 | |
US20160266205A1 (en) | Logic verification apparatus, logic verification method and test program | |
JP2006221474A (ja) | シミュレーション装置及びその履歴情報記録方法 | |
Ikodinovic | Methodology for Cycle-Accurate DRAM Performance Analysis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110907 |
|
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: 20120731 |
|
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: 20120813 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150907 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5077219 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |