JP2014194746A - シミュレーション装置及びシミュレーション方法及びプログラム - Google Patents

シミュレーション装置及びシミュレーション方法及びプログラム Download PDF

Info

Publication number
JP2014194746A
JP2014194746A JP2013209541A JP2013209541A JP2014194746A JP 2014194746 A JP2014194746 A JP 2014194746A JP 2013209541 A JP2013209541 A JP 2013209541A JP 2013209541 A JP2013209541 A JP 2013209541A JP 2014194746 A JP2014194746 A JP 2014194746A
Authority
JP
Japan
Prior art keywords
instruction
memory
bus
unit
cycles
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.)
Pending
Application number
JP2013209541A
Other languages
English (en)
Inventor
Yoshihiro Ogawa
吉大 小川
Yusuke Shimai
優介 嶋井
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2013209541A priority Critical patent/JP2014194746A/ja
Priority to US14/187,581 priority patent/US20140244232A1/en
Publication of JP2014194746A publication Critical patent/JP2014194746A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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/3409Recording 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 for performance assessment
    • G06F11/3419Recording 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 for performance assessment by assessing time
    • 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
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】バス競合等の動作環境の条件を考慮した実行サイクル数の計測が可能で、シミュレーションの実行速度が速いシミュレーション装置を提供する。
【解決手段】シミュレーション装置100は、プロセッサの命令セットに含まれる命令を複数実行するプログラムのシミュレーションを行う。バスモデル部208は、プログラムの命令ごとに、プログラムを記憶するメモリ204に対するアクセス要求を受け付け、バスの調停のシミュレーションを行って、バスの使用権が得られるまでのプロセッサのサイクル数を算出する。サイクル数累算部201は、バスモデル部208により算出された命令ごとのサイクル数に基づき、プログラムの実行に要するサイクル数を計算する。
【選択図】図1

Description

本発明は、シミュレーション装置及びシミュレーション方法及びプログラムに関するものである。
近年の電子技術の発展により、高性能なプロセッサが普及している。民生分野の情報家電等の複雑なシステムにおいては小型化、高性能化及びコスト削減のためにシステムLSI(Large・Scale・Integration)を開発して使用している(ここでは、VLSI(Very・Large・Scale・Integration)等も含む一般的な集積回路の意味で「LSI」という用語を用いている)。近年のシステムLSIはプロセッサ、メモリ、キャッシュメモリ、バス、ハードウェアエンジン等からなる複合的な大規模システムになっており、開発したシステムLSIが目標性能を実現できているかを確認するために、設計段階でのシミュレーションによるシステムLSIの性能評価への要望が高まっている。
近年、ハードウェアの設計手法として、Verilog−HDL(Hardware・Description・Language)やVHDL(Very−high−speed−integrated−circuits・Hardware・Description・Language)等のハードウェア記述言語を用いたレジスタトランスファレベル(RTL)設計が普及している。ハードウェア記述言語を用いると、クロック、フリップフロップ、レジスタ、演算器等を論理回路レベルで記述することができるため、クロックレベルでのハードウェアの詳細な動作のシミュレーションを行うことが可能である。
しかし、シミュレーション速度が遅く、大規模なシステムLSIで大規模なソフトウェアのシミュレーションを行うには膨大な時間がかかるという課題があった。
従来のシステムLSIに実装されるプロセッサにおいては、命令セットを命令列として実行する命令セットシミュレータ(ISS)が一般に知られている。命令セットシミュレータは、ソフトウェアエンジニアやプログラマが開発対象のハードウェアを入手する前にプログラムをデバッグできるように開発されるのが一般的である。
図7は、一般的な命令セットシミュレータ700の構成を示すブロック図である。
図7において、命令セットシミュレータ700は、命令デコード・実行部800、サイクル数累算部801、メモリアクセス部802を備える。
メモリ804にプログラムコード803を格納した上で、シミュレーションが開始される。
命令デコード・実行部800は、メモリアクセス部802を介してメモリ804に格納されているプログラムコード803内の命令をロードし、命令の内容を解読し、実行に必要な情報を準備する。その後、命令デコード・実行部800は、解読した命令を実行し、メモリアクセスが発生した場合は、メモリアクセス部802を介してメモリ804からデータをロードしたり、メモリ804へデータをストアしたりする。
また、命令デコード・実行部800は、実施した命令の種別、演算処理の繰り返し回数、メモリアクセスの基本レイテンシを基に、1つの命令の実行に要したサイクル数を算出し、サイクル数累算部801に渡す。サイクル数累算部801は、命令デコード・実行部800から受け取ったサイクル数を累算することにより、シミュレーション開始から要したサイクル数を算出する。
このような構成により、命令セットシミュレータ700では、実行する命令の演算処理時間やメモリアクセスレイテンシ、命令キューの状態を考慮し、各命令の実行に必要なサイクル数を算出・累算することで、命令実行時間を見積もることが可能である。
命令セットシミュレータ700は、ハードウェアのようなパイプライン構造やサイクル精度の動作を行わず、抽象度の高い概念になっているために、Verilog−HDLやVHDL等のハードウェア記述言語と比較し、高速にシミュレーションを実行することができる。
しかし、バス競合等の動作環境の条件を考慮せずに命令ごとに予め決められた実行サイクル数を使用するため、シミュレーションは高速だが見積もられた実行時間の誤差が大きいという課題があった。
一方、命令セットシミュレータでは不可能なサイクル精度のハードウェア検証を可能にし、RTLの実行速度の遅さを改善する手法がある(例えば、特許文献1参照)。この手法では、プロセッサの動作をフェッチステージ、実行ステージ、メモリ及びライトバックステージの3段のステージに集約し、それぞれのステージで必要に応じてウェイト制御を行うプロセッサモデルを用いる。プロセッサモデルが外部のバスモデルと通信するデータをトランザクションとして定義し、プロセッサモデルはバス使用リクエスト、アドレス、データ転送量、リード/ライト区分を含む情報をバスモデルへ渡し、バスモデルからバス使用許可が得られるとトランザクションを一括して転送する。
特開2006−318209号公報
上述した従来の手法では、シミュレーション実行速度がVerilog−HDLやVHDL等のハードウェア記述言語より速くなるものの、複数ステージを並列実行する必要があるため、一般的な命令セットシミュレータよりも速度が低下することが課題となる。
また、命令セットシミュレータとは内部構成が大幅に異なるため、ソフトウェアをデバッグするための命令セットシミュレータとは別にシステム検証用のシミュレータを開発する必要がある。
本発明は、例えば、バス競合等の動作環境の条件を考慮した実行サイクル数の計測が可能で、シミュレーションの実行速度が速いシミュレーション装置を提供することを目的とする。
本発明の一の態様に係るシミュレーション装置は、
プロセッサの命令セットに含まれる命令を複数実行するプログラムのシミュレーションを行うシミュレーション装置であり、
前記プログラムの命令ごとに、前記プログラムを記憶するメモリに対するアクセス要求を受け付け、バスの調停のシミュレーションを行って、前記バスの使用権が得られるまでの前記プロセッサのサイクル数を算出するバスモデル部と、
前記バスモデル部により算出された命令ごとのサイクル数に基づき、前記プログラムの実行に要するサイクル数を計算するサイクル数累算部とを備える。
本発明の一の態様によれば、バス競合等の動作環境の条件を考慮した実行サイクル数の計測が可能で、シミュレーションの実行速度が速いシミュレーション装置を提供することが可能となる。
実施の形態1に係るシミュレーション装置の構成を示すブロック図。 実施の形態1に係る命令情報データベースに格納されている命令サイクル数情報の一例を示す表。 実施の形態1に係るシミュレーション装置の動作タイミングの一例を示すタイミング図。 実施の形態2に係るシミュレーション装置の構成を示すブロック図。 実施の形態2に係るメモリアクセスレイテンシデータベースに格納されているメモリアクセスレイテンシの一例を示す表。 実施の形態1及び2に係るシミュレーション装置のハードウェア構成の一例を示す図。 一般的な命令セットシミュレータの構成を示すブロック図。
以下、本発明の実施の形態について、図を用いて説明する。
実施の形態1.
図1は、本実施の形態に係るシミュレーション装置100の構成を示すブロック図である。
図1において、シミュレーション装置100は、命令デコード・実行部200、サイクル数累算部201、メモリアクセス部202、命令バスI/F部205(命令バスインタフェース部)、オペランドバスI/F部206(オペランドバスインタフェース部)、命令情報データベース207、バスモデル部208、メモリI/F部209(メモリインタフェース部)を備える。
また、シミュレーション装置100は、メモリ204のほか、図示していないプロセッサ、入力装置、出力装置、メモリ204以外の記憶装置等のハードウェアを備える。ハードウェアはシミュレーション装置100の各部によって利用される。例えば、プロセッサは、シミュレーション装置100の各部でデータや情報の演算、加工、読み取り、書き込み等を行うために利用される。メモリ204やその他の記憶装置は、そのデータや情報を記憶するために利用される。また、入力装置は、そのデータや情報を入力するために、出力装置は、そのデータや情報を出力するために利用される。
シミュレーション装置100は、各部の動作により、プログラムコード203のシミュレーションを行う。プログラムコード203は、プロセッサの命令セットに含まれる命令を複数実行するプログラムである。メモリ204には、プログラムコード203として、プログラムコード203の命令のデータが記憶されるとともに、プログラムコード203の命令で用いられるオペランドのデータが記憶される。
命令デコード・実行部200は、プログラムコード203で定められた順序で、プログラムコード203の命令を実行するためのメモリ204に対するアクセス要求を命令バスI/F部205及びオペランドバスI/F部206に行う(入力する)。命令デコード・実行部200は、メモリ204に対するアクセス要求を命令バスI/F部205あるいはオペランドバスI/F部206に行った後、命令バスI/F部205あるいはオペランドバスI/F部206(要求先)から応答が返されると、プログラムコード203の次の命令を実行するためのメモリ204に対するアクセス要求を命令バスI/F部205あるいはオペランドバスI/F部206に行う(入力する)。
命令情報データベース207は、プロセッサの命令セットに含まれる命令の種別ごとに、命令の実行に要するプロセッサのサイクル数を記憶装置により予め記憶する。
命令バスI/F部205は、バスインタフェース部の一例であり、プログラムコード203の命令ごとに、メモリ204に対するアクセス要求としてプログラムコード203の命令のデータのロード要求を命令デコード・実行部200から受け付け、当該ロード要求をバスモデル部208に行う(入力する)。命令バスI/F部205は、プログラムコード203の命令のデータのロード要求をバスモデル部208に行った後、バスモデル部208から応答が返されると、命令デコード・実行部200に応答を返す(入力する)。
オペランドバスI/F部206は、バスインタフェース部の一例であり、プログラムコード203の命令ごとに、メモリ204に対するアクセス要求としてプログラムコード203の命令で用いられるオペランドのデータのロード要求又はストア要求を命令デコード・実行部200から受け付け、該当する命令の種別に対応するサイクル数を命令情報データベース207から抽出する。また、オペランドバスI/F部206は、プログラムコード203の命令で用いられるオペランドのデータのロード要求又はストア要求を命令デコード・実行部200から受け付けた場合、当該ロード要求又は当該ストア要求をバスモデル部208に行う(入力する)。オペランドバスI/F部206は、プログラムコード203の命令で用いられるオペランドのデータのロード要求又はストア要求をバスモデル部208に行った後、バスモデル部208から応答が返されると、命令デコード・実行部200に応答を返す(入力する)。
バスモデル部208は、プログラムコード203の命令ごとに、メモリ204に対するアクセス要求を命令バスI/F部205及びオペランドバスI/F部206から受け付け、バスの調停のシミュレーションを行って、バスの使用権が得られるまでのプロセッサのサイクル数を算出する。また、バスモデル部208は、メモリ204に対するアクセス要求を命令バスI/F部205あるいはオペランドバスI/F部206から受け付けた場合、バスの使用権が得られるまで待機せずに、当該アクセス要求をメモリI/F部209に行う(入力する)。バスモデル部208は、メモリ204に対するアクセス要求をメモリI/F部209に行った後、メモリI/F部209から応答が返されると、命令バスI/F部205あるいはオペランドバスI/F部206(要求元)に応答を返す(入力する)。
メモリI/F部209は、プログラムコード203の命令ごとに、メモリ204に対するアクセス要求をバスモデル部208から受け付け、メモリ204に対するアクセスの遅延(アクセスレイテンシ)を予め定められたプロセッサのサイクル数として出力する。また、メモリI/F部209は、メモリ204に対するアクセス要求をバスモデル部208から受け付けた場合、メモリアクセス部202を介してメモリ204にアクセスする。具体的には、メモリI/F部209は、メモリ204に対するアクセス要求としてプログラムコード203の命令のデータのロード要求を受け付けた場合、該当する命令のデータをメモリ204からロードする。メモリI/F部209は、メモリ204に対するアクセス要求としてプログラムコード203の命令で用いられるオペランドのデータのロード要求を受け付けた場合、該当するオペランドのデータをメモリ204からロードする。メモリI/F部209は、メモリ204に対するアクセス要求としてプログラムコード203の命令で用いられるオペランドのデータのストア要求を受け付けた場合、該当するオペランドのデータをメモリ204へストアする。メモリI/F部209は、メモリ204にアクセスした後、バスモデル部208に応答を返す(入力する)。
サイクル数累算部201は、バスモデル部208により算出された命令ごとのサイクル数に基づき、プログラムコード203の実行に要するサイクル数を計算する。望ましくは、サイクル数累算部201は、バスモデル部208により算出された命令ごとのサイクル数に加えて、オペランドバスI/F部206により抽出された命令ごとのサイクル数、及び/又は、メモリI/F部209から出力された命令ごとのサイクル数に基づき、プログラムコード203の実行に要するサイクル数を計算する。サイクル数累算部201は、計算したサイクル数を出力装置により出力する。
以下では、シミュレーション装置100の各部の詳細な動作について説明する。
メモリ204にプログラムコード203を格納した上で、シミュレーションが開始される。
命令デコード・実行部200は、メモリ204に格納されているプログラムコード203内の命令ロードを命令バスI/F部205に対して要求する。命令バスI/F部205は、指示された命令ロードを受けて、バスモデル部208に対し、メモリ204からのデータロードを要求する。バスモデル部208は、指示されたデータロード要求に対し、バス調停を行い、バスが使用中の場合又は命令バスI/F部205の要求よりも優先度の高い要求がある場合は命令バスI/F部205の要求を保留制御し、命令バスI/F部205の要求がバス使用権を得た場合はメモリI/F部209に対してデータロードを要求する。
メモリI/F部209は、バスモデル部208からのデータロード要求を受けて、メモリアクセス部202を介してメモリ204からデータをロードする。メモリI/F部209は、メモリアクセスレイテンシのサイクル数分ウェイトしてから、バスモデル部208に対して応答を返す。
バスモデル部208は、メモリI/F部209からの応答を受けて、命令バスI/F部205に応答を返す。なお、バスモデル部208は、メモリI/F部209に対し、メモリアクセスの要求を出してから応答が返ってくるまでの期間はバス使用中として新規の要求は受け付けない。
命令バスI/F部205は、バスモデル部208からの応答を受け、ロードした命令データを命令デコード・実行部200に渡す。
命令デコード・実行部200は、ロードした命令データを解析後、命令を実行する。命令デコード・実行部200は、まず、実行する命令の種別をオペランドバスI/F部206に通知し、続いて、オペランドデータのロード命令又はストア命令を実行する度にオペランドバスI/F部206に対してメモリ204からのデータロード又はメモリ204へのデータストアを要求し、1つの命令の実行が終了すると、次の命令のデコード処理に移る。
オペランドバスI/F部206は、命令デコード・実行部200からの命令の種別の通知を受けて、命令情報データベース207から実行する命令のサイクル数情報を取得する。オペランドバスI/F部206は、サイクル数情報に従い、ウェイト制御を行い、メモリアクセスタイミングや次の命令のデコード処理開始タイミングを調整する。
オペランドバスI/F部206は、指示されたデータロード又はデータストアを受けて、バスモデル部208に対し、メモリ204からのデータロード又はデータストアを要求する。バスモデル部208は、指示されたデータロード又はデータストアの要求に対し、バス調停を行い、バスが使用中の場合又はオペランドバスI/F部206の要求よりも優先度の高い要求がある場合はオペランドバスI/F部206の要求を保留制御し、オペランドバスI/F部206の要求がバス使用権を得た場合はメモリI/F部209に対してデータロードを要求する。
メモリI/F部209は、バスモデル部208からのデータロード要求を受けて、メモリアクセス部202を介してメモリ204からデータをロードする。メモリI/F部209は、メモリアクセスレイテンシのサイクル数分ウェイトしてから、バスモデル部208に対して応答を返す。
バスモデル部208は、メモリI/F部209からの応答を受けて、オペランドバスI/F部206に応答を返す。なお、バスモデル部208は、メモリI/F部209に対し、メモリアクセスの要求を出してから応答が返ってくるまでの期間はバス使用中として新規の要求は受け付けない。
オペランドバスI/F部206は、バスモデル部208からの応答を受け、ロードしたオペランドデータを命令デコード・実行部200に渡すか、あるいは、オペランドデータのストアが完了した旨を命令デコード・実行部200に通知する。
オペランドバスI/F部206は、1つの命令の実行に要したサイクル数、即ち、バスモデル部208の保留制御、メモリI/F部209のウェイト制御又はオペランドバスI/F部206のウェイト制御で使用したサイクル数を、サイクル数累算部201に通知する。サイクル数累算部201は、オペランドバスI/F部206から通知されたサイクル数を累算することにより、シミュレーション開始から要したサイクル数を算出する。
本実施の形態では、命令バスI/F部205とオペランドバスI/F部206は、シミュレーション実行中に発生する時間概念を持たないメモリアクセス処理から、サイクルレベルのバスアクセスタイミングを生成する機能を有している。また、バスモデル部208は、サイクルレベルのバスアクセスシミュレーションを実行することが可能である。
さらに、メモリI/F部209は、サイクルレベルのバスアクセスタイミングから時間概念を持たないメモリアクセス処理に変更し、メモリアクセス部202を介してメモリ204にアクセスしている。
図2は、命令情報データベース207に格納されている命令サイクル数情報の一例を示す表である。
図2において、命令情報データベース207は、命令種別300、サイクル数301を記憶する列を有する。サイクル数301の列は、デコード処理302のサイクル数、命令実行前処理303のサイクル数、命令実行後処理304のサイクル数を記憶する3つの列に分けられている。
この例では、load命令310のサイクル数、multiple命令311のサイクル数、store命令312のサイクル数、add命令313のサイクル数、nop命令314のサイクル数を記憶する行がある。なお、命令の種別については、これら5つに限定されるものではなく、プロセッサの命令セットに含まれる全ての命令の種別が網羅されていることが望ましい。
表中で“0”以上のサイクル数は、ウェイト制御で使用されるサイクル数を示しており、“−1”は、処理完了を待たずに次の処理に移行することを意味している。この表では、load命令310の命令実行後処理304とstore命令312の命令実行後処理304のサイクル数が“−1”になっているため、load命令のオペランドロードとstore命令のオペランドストアは、完了を待たずに次命令を開始することを示している。
図3は、シミュレーション装置100の動作タイミングの一例を示すタイミング図である。
図3では、メモリアクセスレイテンシを2サイクルとし、図2で示したサイクル数によるシミュレーションを行った場合のクロックタイミング400、処理中命令401、命令実行状態402のタイミング、メモリアクセス状態403のタイミングを示している。
この例では、load命令処理410、multiple命令処理411、store命令処理412、add命令処理413、nop命令処理414の順に命令を実行している。
load命令処理410では、load命令デコード処理420、load命令前処理421の順に処理を実行する。命令情報データベース207においてload命令310のデコード処理302のサイクル数が0サイクルであることから、load命令デコード処理420が0サイクル期間で終了する。load命令デコード処理420に伴い、メモリ204に対する命令ロード440が発生し、次の命令のフェッチ処理が行われる。
命令情報データベース207においてload命令310の命令実行前処理303のサイクル数が1サイクルであり、load命令310の命令実行後処理304のサイクル数が“−1”であることから、load命令前処理421が1サイクル期間継続し、load命令処理410が終了する。load命令前処理421の完了後に、メモリ204に対するオペランドロード441が発生する。load命令前処理421が完了するタイミングでは、命令ロード440でメモリアクセスを行っているため、命令ロード440の完了後に、オペランドロード441が開始される。
multiple命令処理411では、multiple命令デコード処理422、multiple命令前処理423の順に処理を実行する。命令情報データベース207においてmultiple命令311のデコード処理302のサイクル数が0サイクルであることと、multiple命令デコード処理422の開始時に命令ロード440でメモリアクセスを行っていることから、命令ロード440が完了するまでmultiple命令デコード処理422が継続する。multiple命令デコード処理422に伴い、メモリ204に対する命令ロード442が発生し、次の命令のフェッチ処理が行われる。multiple命令デコード処理422の完了タイミングでは、オペランドロード441でメモリアクセス中のため、オペランドロード441の完了後に、命令ロード442が開始される。
命令情報データベース207においてmultiple命令311の命令実行前処理303のサイクル数が4サイクルであり、multiple命令311の命令実行後処理304のサイクル数が0サイクルであることから、multiple命令前処理423が4サイクル期間継続し、multiple命令処理411が終了する。
store命令処理412では、store命令デコード処理424、store命令前処理425の順に処理を実行する。命令情報データベース207においてstore命令312のデコード処理302のサイクル数が0サイクルであることから、store命令デコード処理424が0サイクル期間で終了する。store命令デコード処理424に伴い、メモリ204に対する命令ロード443が発生し、次の命令のフェッチ処理が行われる。
命令情報データベース207においてstore命令312の命令実行前処理303のサイクル数が1サイクルであることから、store命令前処理425が1サイクル期間継続する。store命令前処理425の完了後に、444のオペランドストアが発生する。store命令前処理425が完了するタイミングでは、命令ロード443がメモリアクセスを行っているため、命令ロード443の完了後に、メモリ204に対するオペランドストア444が開始される。命令情報データベース207においてstore命令312の命令実行後処理304のサイクル数が“−1”であることから、store命令前処理425の完了でstore命令処理412が終了する。
add命令処理413では、add命令デコード処理426、add命令前処理427の順に処理を実行する。命令情報データベース207においてadd命令313のデコード処理302のサイクル数が0サイクルであるが、add命令デコード処理426を開始するタイミングでは、命令ロード443での命令フェッチ処理が完了していないため、add命令デコード処理426は、命令ロード443が完了するまでの1サイクル期間継続される。add命令デコード処理426に伴い、メモリ204に対する命令ロード445が発生し、次の命令のフェッチ処理が行われる。add命令デコード処理426の完了後に、メモリ204に対するオペランドストア444が開始されるため、オペランドストア444の完了後に、メモリ204に対する命令ロード445が開始される。
命令情報データベース207においてadd命令313の命令実行前処理303のサイクル数が2サイクルで、add命令313の命令実行後処理304のサイクル数が0サイクルであることから、add命令前処理427が2サイクル期間継続し、add命令処理413が終了する。
nop命令処理414では、nop命令デコード処理428、nop命令前処理429の順に処理を実行する。命令情報データベース207においてnop命令314のデコード処理302のサイクル数が0サイクルであるが、nop命令デコード処理428を開始するタイミングでは、命令ロード445での命令フェッチ処理が完了していないため、nop命令デコード処理428は、命令ロード445が完了するまでの2サイクル期間継続される。
命令情報データベース207においてnop命令314の命令実行前処理303のサイクル数が1サイクルで、nop命令314の命令実行後処理304のサイクル数が0サイクルであることから、nop命令前処理429が1サイクル期間継続し、nop命令処理414が終了する。
命令実行状態402で発生するウェイト制御は、オペランドバスI/F部206で行われ、メモリアクセス状態403で発生するウェイト制御は、メモリI/F部209で行われる。図3の例では、load命令処理410で1サイクル、multiple命令処理411で5サイクル、store命令処理412で1サイクル、add命令処理413で3サイクル、nop命令処理414で3サイクル使用する。各命令処理で使用するサイクル数は、オペランドバスI/F部206からサイクル数累算部201に順次転送され、サイクル数累算部201でトータルサイクル数13サイクルが算出される。
図3の例では、load命令処理410が完了したときに、オペランドロード441の完了を待たずに次のmultiple命令処理411が開始するように、オペランドバスI/F部206からバスモデル部208に対して要求が行われ、応答を待たずに命令デコード・実行部200における次の命令の処理が開始されている。この例では、オペランドバスI/F部206からバスモデル部208に要求を出したタイミングで、メモリ204からロードしたデータを命令デコード・実行部200に渡し、シミュレーションを継続して実行し、バスアクセスを同時に実行することにより、バスアクセス処理のパイプライン化による並列処理のシミュレーションを実現している。
以上のように、本実施の形態では、命令デコードで発生した命令ロードによるメモリアクセスと、命令実行で発生したオペランドロード及びオペランドストアによるメモリアクセスの競合によるサイクル精度でシミュレーションを行うことが可能である。
以上説明したように、本実施の形態に係るシミュレーション装置100は、複数の命令セットを備えたアプリケーションプログラムのプロセッサにおける命令セットレベルのシミュレーションを行う装置であり、シミュレーション実行中に発生する時間概念を持たないメモリアクセス処理から、サイクルレベルのバスアクセスタイミングを生成し、サイクルレベルのバスアクセスシミュレーションを実行することで命令実行サイクル数を算出するものである。
また、シミュレーション装置100は、シミュレーション実行中に発生する時間概念を持たないメモリアクセス処理から、サイクルレベルのバスアクセスタイミングを生成する機能を、命令データロード用とオペランドデータロード及びストア用で複数持つものである。
また、シミュレーション装置100は、サイクルレベルのバスアクセスタイミングから時間概念を持たないメモリアクセス処理に変更し、メモリアクセスを行うものである。
また、シミュレーション装置100は、シミュレーション実行中に発生する時間概念を持たないメモリアクセス処理から、サイクルレベルのバスアクセスタイミングを生成する際に、命令種別に応じたサイクル数データベースを参照するものである。
また、シミュレーション装置100は、シミュレーション実行中に発生する時間概念を持たないメモリアクセス処理から、サイクルレベルのバスアクセスタイミングを生成し、サイクルレベルのバスアクセスタイミングを行う際に、バスアクセスが完了する前にメモリ204からのロードデータの取得とメモリ204へのストアデータの保存をし、シミュレーションを実行するものである。
本実施の形態によれば、一般的な命令セットシミュレータに劣らない実行速度を実現可能なシミュレーション装置100を提供することができる。
また、本実施の形態によれば、一般的な命令セットシミュレータの開発資産を流用し、高精度な実行サイクル数計測が可能なシミュレーション装置100を提供することができる。
実施の形態2.
本実施の形態について、主に実施の形態1との差異を説明する。
図4は、本実施の形態に係るシミュレーション装置100の構成を示すブロック図である。
図4において、シミュレーション装置100は、図1に示した実施の形態1に係るシミュレーション装置100の各部に加えて、命令キャッシュ部500(データキャッシュ部)、DMA部501(ダイレクトメモリアクセス部)、メモリアクセスレイテンシデータベース503を備える。
また、シミュレーション装置100は、(第一)メモリ204のほか、第二メモリ502を備える。
命令キャッシュ部500は、命令バスI/F部205とバスモデル部208との間に配置されており、メモリ204に対するキャッシュとして機能する。
DMA部501は、第二メモリ502とともにバスモデル部208に接続されており、メモリ204と第二メモリ502との間で直接データを転送するためのアクセス要求をバスモデル部208に行う(入力する)。
メモリアクセスレイテンシデータベース503は、メモリI/F部209に接続されており、メモリ204のアドレスの範囲ごとに、メモリ204に対するアクセスの遅延をプロセッサのサイクル数で記憶装置により記憶する。
オペランドバスI/F部206は、プログラムコード203の命令で用いられるオペランドのデータのロード要求を命令デコード・実行部200から受け付けた場合、該当するオペランドのデータが命令キャッシュ部500に記憶されていなければ、当該ロード要求をバスモデル部208に行う(入力する)。一方、オペランドバスI/F部206は、該当するオペランドのデータが命令キャッシュ部500に記憶されていれば、当該ロード要求をバスモデル部208に行わずに(入力せずに)、命令デコード・実行部200に応答を返す(入力する)。
バスモデル部208は、プログラムコード203の命令ごとに、メモリ204に対するアクセス要求を命令バスI/F部205及びオペランドバスI/F部206から受け付けるとともに、メモリ204に対するアクセス要求をDMA部501からも受け付け、1つのアクセス要求の処理中は前記バスが使用中であると判断する。
メモリI/F部209は、プログラムコード203の命令ごとに、メモリ204に対するアクセス要求をバスモデル部208から受け付け、該当するメモリ204のアドレスに対応するサイクル数をメモリアクセスレイテンシデータベース503から抽出して出力する。
なお、命令キャッシュ部500は、一般的なデータアクセスを高速化するための一時記憶装置で、ここではキャッシュアルゴリズムの実装方法は問わない。本実施の形態では、命令キャッシュ部500をサイクルレベルのバスアクセスシミュレーションが可能なモデルとして実装し、シミュレーション装置100に組み込むことにより、命令キャッシュ部500を実装した場合の処理サイクル数の計測を行うことが可能となる。
また、DMA部501は、一般的なメモリ間で直接データを転送するDMA装置である。DMA部501は、メモリ204と第二メモリ502の間のデータ転送を行う。本実施の形態では、DMA部501及び第二メモリ502をサイクルレベルのバスアクセスシミュレーション可能なモデルとして実装し、シミュレーション装置100に組み込むことにより、プロセッサ以外のバスアクセスによるバス競合が発生した場合の処理サイクル数の計測を行うことが可能となる。
また、メモリアクセスレイテンシデータベース503は、メモリアクセスに要するレイテンシを記憶する装置で、メモリI/F部209はメモリアクセスレイテンシデータベース503に記憶されているデータに従い、バスモデル部208から要求を受け取った後に、メモリアクセスレイテンシのサイクル数分ウェイトしてから、バスモデル部208に応答を返す。
図5は、メモリアクセスレイテンシデータベース503に格納されているメモリアクセスレイテンシの一例を示す表である。
図5において、メモリアクセスレイテンシデータベース503は、メモリ204のアドレス範囲600、メモリ204のアクセスレイテンシ601を記憶する列を有する。ここでは、メモリ204のアドレス範囲ごとに異なるメモリアクセスレイテンシを設定している。このような構成にすることにより、メモリアクセスレイテンシの異なる条件下での処理サイクル数計測を行うことが可能となる。
以上説明したように、本実施の形態に係るシミュレーション装置100は、シミュレーション実行中に発生する時間概念を持たないメモリアクセス処理から、サイクルレベルのバスアクセスタイミングを生成した後に、サイクルレベルで実行可能なキャッシュメモリ装置を経由し、メモリアクセスを行うものである。
また、シミュレーション装置100は、プロセッサ以外に、サイクルレベルのバスアクセスタイミングでメモリアクセスを行う装置を搭載したものである。
また、シミュレーション装置100は、サイクルレベルのバスアクセスタイミングから時間概念を持たないメモリアクセス処理に変更し、メモリアクセスを行う際に、メモリアクセスレイテンシデータベース503を参照するものである。
図6は、実施の形態1及び2に係るシミュレーション装置100のハードウェア構成の一例を示す図である。
図6において、シミュレーション装置100は、コンピュータであり、LCD901(Liquid・Crystal・Display)、キーボード902(K/B)、マウス903、FDD904(Flexible・Disk・Drive)、CDD905(Compact・Disc・Drive)、プリンタ906といったハードウェアデバイスを備えている。これらのハードウェアデバイスはケーブルや信号線で接続されている。LCD901の代わりに、CRT(Cathode・Ray・Tube)、あるいは、その他の表示装置が用いられてもよい。マウス903の代わりに、タッチパネル、タッチパッド、トラックボール、ペンタブレット、あるいは、その他のポインティングデバイスが用いられてもよい。
シミュレーション装置100は、プログラムを実行するCPU911(Central・Processing・Unit)を備えている。CPU911は、プロセッサの一例である。CPU911は、バス912を介してROM913(Read・Only・Memory)、RAM914(Random・Access・Memory)、通信ボード915、LCD901、キーボード902、マウス903、FDD904、CDD905、プリンタ906、HDD920(Hard・Disk・Drive)と接続され、これらのハードウェアデバイスを制御する。HDD920の代わりに、フラッシュメモリ、光ディスク装置、メモリカードリーダライタ、あるいは、その他の記録媒体が用いられてもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、HDD920は、不揮発性メモリの一例である。これらは、メモリ204及びその他の記憶装置の一例である。通信ボード915、キーボード902、マウス903、FDD904、CDD905は、入力装置の一例である。また、通信ボード915、LCD901、プリンタ906は、出力装置の一例である。
通信ボード915は、LAN(Local・Area・Network)等に接続されている。通信ボード915は、LANに限らず、IP−VPN(Internet・Protocol・Virtual・Private・Network)、広域LAN、ATM(Asynchronous・Transfer・Mode)ネットワークといったWAN(Wide・Area・Network)、あるいは、インターネットに接続されていても構わない。LAN、WAN、インターネットは、ネットワークの一例である。
HDD920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。プログラム群923には、本実施の形態の説明において「〜部」として説明する機能を実行するプログラムが含まれている。プログラムは、CPU911により読み出され実行される。ファイル群924には、本実施の形態の説明において、「〜データ」、「〜情報」、「〜ID(識別子)」、「〜フラグ」、「〜結果」として説明するデータや情報や信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」や「〜テーブル」の各項目として含まれている。「〜ファイル」や「〜データベース」や「〜テーブル」は、RAM914やHDD920等の記録媒体に記憶される。RAM914やHDD920等の記録媒体に記憶されたデータや情報や信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出、検索、参照、比較、演算、計算、制御、出力、印刷、表示といったCPU911の処理(動作)に用いられる。抽出、検索、参照、比較、演算、計算、制御、出力、印刷、表示といったCPU911の処理中、データや情報や信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
本実施の形態の説明において用いるブロック図やフローチャートの矢印の部分は主としてデータや信号の入出力を示す。データや信号は、RAM914等のメモリ、FDD904のフレキシブルディスク(FD)、CDD905のコンパクトディスク(CD)、HDD920の磁気ディスク、光ディスク、DVD(Digital・Versatile・Disc)、あるいは、その他の記録媒体に記録される。また、データや信号は、バス912、信号線、ケーブル、あるいは、その他の伝送媒体により伝送される。
本実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜工程」、「〜手順」、「〜処理」であってもよい。即ち、「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。あるいは、「〜部」として説明するものは、ソフトウェアのみ、あるいは、素子、デバイス、基板、配線といったハードウェアのみで実現されていても構わない。あるいは、「〜部」として説明するものは、ソフトウェアとハードウェアとの組み合わせ、あるいは、ソフトウェアとハードウェアとファームウェアとの組み合わせで実現されていても構わない。ファームウェアとソフトウェアは、プログラムとして、フレキシブルディスク、コンパクトディスク、磁気ディスク、光ディスク、DVD等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。即ち、プログラムは、本実施の形態の説明で述べる「〜部」としてコンピュータを機能させるものである。あるいは、プログラムは、本実施の形態の説明で述べる「〜部」の手順や方法をコンピュータに実行させるものである。
以上、本発明の実施の形態について説明したが、これらの実施の形態のうち、2つ以上を組み合わせて実施しても構わない。あるいは、これらの実施の形態のうち、1つを部分的に実施しても構わない。あるいは、これらの実施の形態のうち、2つ以上を部分的に組み合わせて実施しても構わない。なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
100 シミュレーション装置、200,800 命令デコード・実行部、201,801 サイクル数累算部、202,802 メモリアクセス部、203,803 プログラムコード、204,804 メモリ、205 命令バスI/F部、206 オペランドバスI/F部、207 命令情報データベース、208 バスモデル部、209 メモリI/F部、300 命令種別、301 サイクル数、302 デコード処理、303 命令実行前処理、304 命令実行後処理、310 load命令、311 multiple命令、312 store命令、313 add命令、314 nop命令、400 クロックタイミング、401 処理中命令、402 命令実行状態、403 メモリアクセス状態、410 load命令処理、411 multiple命令処理、412 store命令処理、413 add命令処理、414 nop命令処理、420 load命令デコード処理、421 load命令前処理、422 multiple命令デコード処理、423 multiple命令前処理、424 store命令デコード処理、425 store命令前処理、426 add命令デコード処理、427 add命令前処理、428 nop命令デコード処理、429 nop命令前処理、440,442,443,445 命令ロード、441 オペランドロード、444 オペランドストア、500 命令キャッシュ部、501 DMA部、502 第二メモリ、503 メモリアクセスレイテンシデータベース、600 アドレス範囲、601 アクセスレイテンシ、700 命令セットシミュレータ、901 LCD、902 キーボード、903 マウス、904 FDD、905 CDD、906 プリンタ、911 CPU、912 バス、913 ROM、914 RAM、915 通信ボード、920 HDD、921 オペレーティングシステム、922 ウィンドウシステム、923 プログラム群、924 ファイル群。

Claims (9)

  1. プロセッサの命令セットに含まれる命令を複数実行するプログラムのシミュレーションを行うシミュレーション装置において、
    前記プログラムの命令ごとに、前記プログラムを記憶するメモリに対するアクセス要求を受け付け、バスの調停のシミュレーションを行って、前記バスの使用権が得られるまでの前記プロセッサのサイクル数を算出するバスモデル部と、
    前記バスモデル部により算出された命令ごとのサイクル数に基づき、前記プログラムの実行に要するサイクル数を計算するサイクル数累算部と
    を備えることを特徴とするシミュレーション装置。
  2. 前記命令セットに含まれる命令の種別ごとに、命令の実行に要する前記プロセッサのサイクル数を記憶する命令情報データベースと、
    前記プログラムの命令ごとに、前記メモリに対するアクセス要求を受け付け、該当する命令の種別に対応するサイクル数を前記命令情報データベースから抽出するバスインタフェース部と
    をさらに備え、
    前記サイクル数累算部は、前記バスモデル部により算出された命令ごとのサイクル数に加えて、前記バスインタフェース部により抽出された命令ごとのサイクル数に基づき、前記プログラムの実行に要するサイクル数を計算することを特徴とする請求項1のシミュレーション装置。
  3. 前記メモリに対するキャッシュとして機能する命令キャッシュ部
    をさらに備え、
    前記バスモデル部は、前記プログラムの命令ごとに、前記メモリに対するアクセス要求を前記バスインタフェース部から受け付け、
    前記バスインタフェース部は、前記メモリに対するアクセス要求として前記プログラムの命令で用いられるオペランドのデータのロード要求を受け付けた場合、該当するオペランドのデータが前記命令キャッシュ部に記憶されていなければ、当該ロード要求を前記バスモデル部に行い、該当するオペランドのデータが前記命令キャッシュ部に記憶されていれば、当該ロード要求を前記バスモデル部に行わないことを特徴とする請求項2のシミュレーション装置。
  4. 前記バスモデル部は、前記プログラムの命令ごとに、前記メモリに対するアクセス要求を前記バスインタフェース部から受け付けるとともに、前記メモリに対するアクセス要求を前記バスインタフェース部以外からも受け付け、1つのアクセス要求の処理中は前記バスが使用中であると判断することを特徴とする請求項2のシミュレーション装置。
  5. 前記プログラムの命令ごとに、前記メモリに対するアクセス要求を前記バスモデル部から受け付け、前記メモリに対するアクセスの遅延を予め定められた前記プロセッサのサイクル数として出力するメモリインタフェース部
    をさらに備え、
    前記バスモデル部は、前記メモリに対するアクセス要求を受け付けた場合、前記バスの使用権が得られるまで待機せずに、当該アクセス要求を前記メモリインタフェース部に行い、
    前記サイクル数累算部は、前記バスモデル部により算出された命令ごとのサイクル数に加えて、前記メモリインタフェース部により抽出された命令ごとのサイクル数に基づき、前記プログラムの実行に要するサイクル数を計算することを特徴とする請求項1のシミュレーション装置。
  6. 前記メモリのアドレスの範囲ごとに、前記メモリに対するアクセスの遅延を前記プロセッサのサイクル数で記憶するメモリアクセスレイテンシデータベースと、
    前記プログラムの命令ごとに、前記メモリに対するアクセス要求を受け付け、該当する前記メモリのアドレスに対応するサイクル数を前記メモリアクセスレイテンシデータベースから抽出するメモリインタフェース部と
    をさらに備え、
    前記サイクル数累算部は、前記バスモデル部により算出された命令ごとのサイクル数に加えて、前記メモリインタフェース部により抽出された命令ごとのサイクル数に基づき、前記プログラムの実行に要するサイクル数を計算することを特徴とする請求項1のシミュレーション装置。
  7. 前記メモリには、前記プログラムとして、前記プログラムの命令のデータが記憶されるとともに、前記プログラムの命令で用いられるオペランドのデータが記憶され、
    前記バスモデル部は、前記プログラムの命令ごとに、前記メモリに対するアクセス要求として前記メモリからのデータのロード要求と前記メモリへのデータのストア要求とのいずれかを受け付けることを特徴とする請求項1から6のいずれかのシミュレーション装置。
  8. プロセッサの命令セットに含まれる命令を複数実行するプログラムのシミュレーションを行うシミュレーション方法において、
    バスモデル部が、前記プログラムの命令ごとに、前記プログラムを記憶するメモリに対するアクセス要求を受け付け、バスの調停のシミュレーションを行って、前記バスの使用権が得られるまでの前記プロセッサのサイクル数を算出し、
    サイクル数累算部が、前記バスモデル部により算出された命令ごとのサイクル数に基づき、前記プログラムの実行に要するサイクル数を計算することを特徴とするシミュレーション方法。
  9. プロセッサの命令セットに含まれる命令を複数実行するプログラムのシミュレーションを行うコンピュータに、
    前記プログラムの命令ごとに、前記プログラムを記憶するメモリに対するアクセス要求を受け付け、バスの調停のシミュレーションを行って、前記バスの使用権が得られるまでの前記プロセッサのサイクル数を算出するバスモデル処理と、
    前記バスモデル処理により算出された命令ごとのサイクル数に基づき、前記プログラムの実行に要するサイクル数を計算するサイクル数累算処理と
    を実行させることを特徴とするプログラム。
JP2013209541A 2013-02-28 2013-10-04 シミュレーション装置及びシミュレーション方法及びプログラム Pending JP2014194746A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013209541A JP2014194746A (ja) 2013-02-28 2013-10-04 シミュレーション装置及びシミュレーション方法及びプログラム
US14/187,581 US20140244232A1 (en) 2013-02-28 2014-02-24 Simulation apparatus and simulation method

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2013038782 2013-02-28
JP2013038782 2013-02-28
JP2013209541A JP2014194746A (ja) 2013-02-28 2013-10-04 シミュレーション装置及びシミュレーション方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2014194746A true JP2014194746A (ja) 2014-10-09

Family

ID=51389023

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013209541A Pending JP2014194746A (ja) 2013-02-28 2013-10-04 シミュレーション装置及びシミュレーション方法及びプログラム

Country Status (2)

Country Link
US (1) US20140244232A1 (ja)
JP (1) JP2014194746A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016128335A (ja) * 2016-04-14 2016-07-14 大日本印刷株式会社 充填ノズルの殺菌方法及び装置
US10176001B2 (en) 2015-05-28 2019-01-08 Mitsubishi Electric Corporation Simulation device, simulation method, and computer readable medium

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113535487B (zh) * 2020-04-16 2024-10-15 杭州中天微系统有限公司 测试系统及方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10176001B2 (en) 2015-05-28 2019-01-08 Mitsubishi Electric Corporation Simulation device, simulation method, and computer readable medium
JP2016128335A (ja) * 2016-04-14 2016-07-14 大日本印刷株式会社 充填ノズルの殺菌方法及び装置

Also Published As

Publication number Publication date
US20140244232A1 (en) 2014-08-28

Similar Documents

Publication Publication Date Title
Huang et al. Instruction-level abstraction (ila) a uniform specification for system-on-chip (soc) verification
US8271918B2 (en) Formal verification of clock domain crossings
Da Silva et al. Performance Modeling for FPGAs: Extending the Roofline Model with High‐Level Synthesis Tools
Benkrid et al. High performance biological pairwise sequence alignment: FPGA versus GPU versus cell BE versus GPP
US20060130029A1 (en) Programming language model generating apparatus for hardware verification, programming language model generating method for hardware verification, computer system, hardware simulation method, control program and computer-readable storage medium
Dai et al. Dynamic hazard resolution for pipelining irregular loops in high-level synthesis
US20120029900A1 (en) Simulation method and system for simulating a multi-core hardware platform
US11734480B2 (en) Performance modeling and analysis of microprocessors using dependency graphs
US20130013283A1 (en) Distributed multi-pass microarchitecture simulation
Feng et al. Heterosim: A heterogeneous cpu-fpga simulator
JP2014194746A (ja) シミュレーション装置及びシミュレーション方法及びプログラム
Diamantopoulos et al. Plug&chip: A framework for supporting rapid prototyping of 3d hybrid virtual socs
CN116450430A (zh) 处理器的验证方法、验证系统以及存储介质
JP6249827B2 (ja) シミュレーション装置及びシミュレーションプログラム
Bergamaschi et al. Performance modeling for early analysis of multi-core systems
JP6567215B2 (ja) アーキテクチャ選定装置、アーキテクチャ選定方法およびアーキテクチャ選定プログラム
US11106846B1 (en) Systems and methods for emulation data array compaction
CN114237705A (zh) 验证方法、装置、电子设备和计算机可读存储介质
US20190012418A1 (en) Simulation program, method, and device
JP6473023B2 (ja) 性能評価モジュール及びこれを組み込んだ半導体集積回路
Chu et al. A New Design Methodology for Composing Complex Digital Systems
US20240354479A1 (en) Peformance analysis using architecture model of processor architecture design
US11048843B1 (en) Dynamic netlist modification of compacted data arrays in an emulation system
US20240330036A1 (en) Parallel processing architecture with shadow state
Lo et al. Automatic generation of high-speed accurate tlm models for out-of-order pipelined bus