JP5116624B2 - Simulation apparatus and simulation method - Google Patents

Simulation apparatus and simulation method Download PDF

Info

Publication number
JP5116624B2
JP5116624B2 JP2008251341A JP2008251341A JP5116624B2 JP 5116624 B2 JP5116624 B2 JP 5116624B2 JP 2008251341 A JP2008251341 A JP 2008251341A JP 2008251341 A JP2008251341 A JP 2008251341A JP 5116624 B2 JP5116624 B2 JP 5116624B2
Authority
JP
Japan
Prior art keywords
instruction
register
cycles
execution
execution machine
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
JP2008251341A
Other languages
Japanese (ja)
Other versions
JP2010086047A (en
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2008251341A priority Critical patent/JP5116624B2/en
Publication of JP2010086047A publication Critical patent/JP2010086047A/en
Application granted granted Critical
Publication of JP5116624B2 publication Critical patent/JP5116624B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、プロセッサの動作をシミュレートするシミュレーション装置、シミュレーション方法に関する。   The present invention relates to a simulation apparatus and a simulation method for simulating the operation of a processor.

プロセッサ上で動作させるプログラムの解析やデバックのためにシミュレーション装置が利用されている。シミュレーション装置は、プロセッサの動作と同じ動作か、あるいは、それを簡略化した動作を行うように設計される。このようなシミュレーション装置としては、命令セットシミュレータ(ISS;Instruction Set Simulator)といったものが広く知られている。ISSは、パーソナルコンピュータやワークステーションなどのコンピュータ上で動作し、プロセッサの命令の動作や、その実行結果、レジスタの状態などを模擬するものである。ISSを用いることにより、プログラムの解析やデバックのために専用のハードウェアを用意する必要がないというメリットがある。   A simulation apparatus is used for analysis and debugging of a program operating on a processor. The simulation apparatus is designed to perform the same operation as the operation of the processor or a simplified operation thereof. As such a simulation device, an instruction set simulator (ISS; Instruction Set Simulator) is widely known. The ISS operates on a computer such as a personal computer or a workstation, and simulates an operation of a processor instruction, an execution result thereof, a register state, and the like. By using ISS, there is an advantage that it is not necessary to prepare dedicated hardware for program analysis and debugging.

ISSを用いたプログラムの解析において、CPUの性能を最大限に引き出すことが望まれる。そのためには、データハザードによる処理時間のロス、即ち、パイプライン・ステージの処理進行の停止による処理時間のロスを最小限に抑える必要がある。そこで、ユーザアプリケーション中にデータハザードがどこにどのくらい存在するかを検出(検証)し、ユーザに示す必要がある。その手段として、CPU実機から情報を取る方法はあるが、開発中のCPUや、マルチコアにおける再現性のある時刻考慮のためには、シミュレータでデータハザードを検出する方法が必要となる。   In analyzing a program using ISS, it is desirable to maximize the performance of the CPU. For that purpose, it is necessary to minimize the processing time loss due to the data hazard, that is, the processing time loss due to the stop of the processing progress of the pipeline stage. Therefore, it is necessary to detect (verify) where and how many data hazards exist in the user application and to show them to the user. As a means for this, there is a method of obtaining information from the CPU actual machine, but a method of detecting a data hazard by a simulator is necessary in order to take into account the time under reproducibility of the CPU under development and multi-core.

シミュレーションに関連する技術を紹介する。   Introduces technologies related to simulation.

RealView Profiler(非特許文献1参照)では、図1−1に示されるように、RealView Trace2ユニットを利用し、RealView ICEと接続される構成になっている。これにより、RealView Profilerは、RealView ICE、RealView Trace2ユニットを介し、CPU実機からインターロック(データハザード)情報を取得し、トレース情報と共に表示する。RealView Profilerは、図1−2、1−3に示されるように、取得したトレース情報を元にソース(アセンブラ)ビュー上に●印を表示し、データハザードが発生した命令をユーザに知らせる。また、RealView Profilerにはシミュレータと接続する仕組みも存在するが、データハザード情報は取り出すことができていないようである。   In RealView Profiler (see Non-Patent Document 1), as shown in FIG. 1-1, RealView Trace2 unit is used and connected to RealView ICE. Thereby, RealView Profiler acquires interlock (data hazard) information from the CPU actual machine via RealView ICE and RealView Trace2 unit, and displays it together with the trace information. As shown in FIGS. 1-2 and 1-3, the RealView Profiler displays a mark ● on the source (assembler) view based on the acquired trace information, and notifies the user of an instruction in which a data hazard has occurred. The RealView Profiler also has a mechanism for connecting to a simulator, but it seems that data hazard information cannot be extracted.

ArchC(非特許文献2参照)では、arcsimというSystemC シミュレータ生成ツールを提供しており、AC_ARCHというアーキテクチャ情報、AC_ISAというISA情報を使って、SystemCシミュレータを自動生成する。このAC_ARCHにパイプライン・ステージを書く部分があり、パイプライン・ステージを有するSystemCシミュレータが生成される。このSystemCシミュレータは、cycle accurate simulatorであり、パイプライン・ステージを有することにより、データハザードを考慮したシミュレーションを可能にしている。   ArchC (see Non-Patent Document 2) provides a SystemC simulator generation tool called arcsim, and automatically generates a SystemC simulator using architecture information AC_ARCHH and ISA information AC_ISA. This AC_ARCH has a part for writing a pipeline stage, and a System C simulator having the pipeline stage is generated. This SystemC simulator is a cycle accumulator, and has a pipeline stage, thereby enabling simulation in consideration of data hazards.

図2は、シミュレートを実行しようとしているプロセッサのパイプライン・ステージの概略図である。プロセッサは、命令群とデータとが格納されたメモリと、レジスタと、パイプラインと、を具備している。プロセッサは、クロックに応じて動作し、更に、命令群をフェッチするIF(命令フェッチ)ステージと、フェッチされた命令をデコードするDC(デコード)ステージと、デコードされた命令を実行するEX(実行)ステージと、命令(メモリアクセス命令)に対してメモリのアクセスを行うME(メモリアクセス)ステージと、命令の実行結果をレジスタに書き込むWB(ライトバック)ステージと、を具備している。プロセッサは、IFステージとDCステージとEXステージとMEステージとWBステージによりパイプラインを構成する。   FIG. 2 is a schematic diagram of a pipeline stage of a processor attempting to perform a simulation. The processor includes a memory in which an instruction group and data are stored, a register, and a pipeline. The processor operates according to the clock, and further, an IF (instruction fetch) stage for fetching an instruction group, a DC (decode) stage for decoding the fetched instruction, and an EX (execution) for executing the decoded instruction. There are provided a stage, a ME (memory access) stage for accessing the memory with respect to the instruction (memory access instruction), and a WB (write back) stage for writing the execution result of the instruction to the register. The processor configures a pipeline by the IF stage, the DC stage, the EX stage, the ME stage, and the WB stage.

“ARM RealView Profiler 1.0(製品パンフレット)”、[online]、[平成20年8月20日検索]、インターネット<URL:http:/www.arm.com/products/DevTools/RVP.html>“ARM RealView Profiler 1.0 (product brochure)”, [online], [searched on August 20, 2008], Internet <URL: http: // www. arm. com / products / DevTools / RVP. html> “ArchC”、[online]、[平成20年8月20日検索]、インターネット<URL:http://www.archc.org/>“ArchC”, [online], [searched on August 20, 2008], Internet <URL: http: // www. archc. org />

しかし、非特許文献1に記載された技術では、実機からのトレース情報によりデータハザード(インターロック)の検出を行えるが、データハザードによる遅延を考慮したモデルではない。   However, the technique described in Non-Patent Document 1 can detect a data hazard (interlock) based on trace information from an actual machine, but is not a model that takes into account a delay due to a data hazard.

また、非特許文献2に記載された技術では、パイプライン・ステージを実装することにより、データハザードを含むサイクルアキュレートなシミュレーションを実現している。しかし、パイプライン・ステージでは毎サイクル並列実行する機構が含まれるため、ISSよりシミュレーション時間がかかるという問題がある。   In the technique described in Non-Patent Document 2, a cycle accurate simulation including a data hazard is realized by implementing a pipeline stage. However, since the pipeline stage includes a mechanism for executing in parallel every cycle, there is a problem that it takes more simulation time than ISS.

以下に、発明を実施するための最良の形態・実施例で使用される符号を括弧付きで用いて、課題を解決するための手段を記載する。この符号は、特許請求の範囲の記載と発明を実施するための最良の形態・実施例の記載との対応を明らかにするために付加されたものであり、特許請求の範囲に記載されている発明の技術的範囲の解釈に用いてはならない。   In the following, means for solving the problems will be described using the reference numerals used in the best modes and embodiments for carrying out the invention in parentheses. This reference numeral is added to clarify the correspondence between the description of the claims and the description of the best mode for carrying out the invention / example, and is described in the claims. It should not be used to interpret the technical scope of the invention.

本発明のシミュレーション装置は、プロセッサの動作を模擬するものであって、命令実行部(10)と、格納部(32)と、記録部(31)と、生成部(21)と、算出部(22)と、を具備している。命令実行部(10)は、プロセッサ上で実行可能な命令が与えられ、命令に応じた処理を実行する。格納部(32)には、複数の命令の種類と、複数の命令の各々に対して、データハザードが発生していないときに実行される第1実行マシンサイクル数と、データハザードが発生しているときに実行される第2実行マシンサイクル数と、が格納されている。命令によりレジスタに値が書き込まれた場合、生成部(21)は、命令に対する第1、2実行マシンサイクル数を格納部(32)から読み出し、それらに基づいて、読み出し禁止期間としてパイプライン・ストール・サイクル数を生成する。生成部(21)は、レジスタを識別するレジスタ識別子と、レジスタに値が書き込まれたときのレジスタライトアクセス時間と、パイプライン・ストール・サイクル数とを記録部(31)に格納する。算出部(22)は、レジスタがデータハザードの対象になっている場合、記録部(31)に格納されたレジスタライトアクセス時間及びパイプライン・ストール・サイクル数と、命令に対する第2実行マシンサイクル数と、に基づいて実行マシンサイクル数を算出する。   The simulation apparatus of the present invention simulates the operation of a processor, and includes an instruction execution unit (10), a storage unit (32), a recording unit (31), a generation unit (21), and a calculation unit ( 22). The instruction execution unit (10) is provided with an instruction that can be executed on the processor and executes processing according to the instruction. The storage unit (32) includes a plurality of instruction types, a number of first execution machine cycles executed when no data hazard has occurred, and a data hazard for each of the plurality of instructions. And the number of second execution machine cycles to be executed when the machine is running. When a value is written to the register by the instruction, the generation unit (21) reads the first and second execution machine cycles for the instruction from the storage unit (32), and based on these, the pipeline stall Generate cycle numbers. The generation unit (21) stores the register identifier for identifying the register, the register write access time when the value is written to the register, and the number of pipeline stall cycles in the recording unit (31). When the register is subject to data hazard, the calculation unit (22) stores the register write access time and pipeline stall cycle number stored in the recording unit (31), and the second execution machine cycle number for the instruction. Based on the above, the number of execution machine cycles is calculated.

本発明のシミュレーション装置(4)によれば、生成部(21)、記録部(31)、算出部(22)、格納部(32)を具備することにより、レジスタライトアクセス時間と、読み出し禁止期間(パイプライン・ストール・サイクル数)と、を記録しておくことができ、パイプライン・ステージを実装しなくても、データハザードによる遅延を考慮した各命令の実行マシンサイクル数を決定(算出)することができる。   According to the simulation apparatus (4) of the present invention, the register write access time and the read prohibition period are provided by including the generation unit (21), the recording unit (31), the calculation unit (22), and the storage unit (32). (The number of pipeline stall cycles) can be recorded, and the execution machine cycle number of each instruction can be determined (calculated) in consideration of the delay due to the data hazard without implementing the pipeline stage. can do.

その結果、本発明のシミュレーション装置(4)によれば、データハザードによる遅延を考慮したモデルでプロセッサの動作を模擬することができる。このため、非特許文献1で挙げた問題点を解決することができる。   As a result, according to the simulation apparatus (4) of the present invention, the operation of the processor can be simulated with a model that takes into account the delay due to the data hazard. For this reason, the problem mentioned in the nonpatent literature 1 can be solved.

また、本発明の実施形態によるシミュレーション装置(4)によれば、パイプライン・ステージが設けられていないことにより、非特許文献2で挙げた問題点を解決し、シミュレーション速度の高速化を実現できる。   In addition, according to the simulation apparatus (4) according to the embodiment of the present invention, since the pipeline stage is not provided, the problems mentioned in Non-Patent Document 2 can be solved and the simulation speed can be increased. .

以下に添付図面を参照して、本発明の実施形態によるシミュレーション装置について詳細に説明する。   Hereinafter, a simulation apparatus according to an embodiment of the present invention will be described in detail with reference to the accompanying drawings.

[構成]
図3は、本発明の実施形態によるシミュレーション装置4の構成を示している。本発明の実施形態によるシミュレーション装置4は、汎用コンピュータ(パーソナルコンピュータ、EWS(エンジニアリングワークステーション))上でパイプライン構造を持つマイクロコンピュータのシミュレーションを行うものである。
[Constitution]
FIG. 3 shows a configuration of the simulation apparatus 4 according to the embodiment of the present invention. The simulation apparatus 4 according to the embodiment of the present invention performs simulation of a microcomputer having a pipeline structure on a general-purpose computer (personal computer, EWS (engineering workstation)).

そのシミュレーション装置4は、ユーザインターフェース部5と、メモリである命令データ格納部6と、シミュレーションエンジン部(シミュレーションプログラム)7とを具備している。ユーザインターフェース部5は、入力装置による入力、及び、出力装置に出力する制御を行う。命令データ格納部6には、デバック対象のプログラムが格納されている。シミュレーションエンジン部7は、デバック対象のプログラムを命令データ格納部6から読み出し、デバック対象のプログラムに記述されている命令群を処理する。   The simulation apparatus 4 includes a user interface unit 5, an instruction data storage unit 6 that is a memory, and a simulation engine unit (simulation program) 7. The user interface unit 5 performs an input by the input device and a control to output to the output device. The instruction data storage unit 6 stores a program to be debugged. The simulation engine unit 7 reads out the debug target program from the instruction data storage unit 6 and processes the instruction group described in the debug target program.

シミュレーションエンジン部7は、コンピュータにインストールされるコンピュータプログラム(シミュレーションプログラム)としても実現可能である。図4は、シミュレーション装置4が動作する環境として、コンピュータの構成を示している。コンピュータは、入力装置2と、出力装置3と、コンピュータ本体1とを具備している。入力装置2と出力装置3は、コンピュータ本体1に接続されている。入力装置2は、キーボード、ポインティングデバイスを含み、出力装置3は、表示装置、プリンタを含んでいる。   The simulation engine unit 7 can also be realized as a computer program (simulation program) installed in a computer. FIG. 4 shows the configuration of a computer as an environment in which the simulation apparatus 4 operates. The computer includes an input device 2, an output device 3, and a computer main body 1. The input device 2 and the output device 3 are connected to the computer main body 1. The input device 2 includes a keyboard and a pointing device, and the output device 3 includes a display device and a printer.

上記のコンピュータ本体1は、図示しない記憶装置と、図示しないCPU(Central Processing Unit)とを具備している。シミュレーションエンジン部7は、記憶装置にインストールされる。この場合、命令データ格納部6に格納されたデバック対象のプログラムも記憶装置にインストールされる。シミュレーションエンジン部7(シミュレーションプログラム)は、デバック対象のプログラムを記憶装置から読み出し、デバック対象のプログラムに記述されている命令群をCPU上で処理する。   The computer main body 1 includes a storage device (not shown) and a CPU (Central Processing Unit) (not shown). The simulation engine unit 7 is installed in a storage device. In this case, the debug target program stored in the instruction data storage unit 6 is also installed in the storage device. The simulation engine unit 7 (simulation program) reads the debug target program from the storage device, and processes the instruction group described in the debug target program on the CPU.

シミュレーションエンジン部7は、プロセッサ上で動作させるプログラム(解析対象プログラム)の解析やデバックのためのソフトウェアとして、設計者に利用される。プロセッサにより実行される命令群は、例えば、“LD、ADD、SUB、JMP、MOV”といったものがあるものとする。ニーモニック表記の“LD”、“ADD”、“SUB”、“JMP”、“MOV”は、それぞれ、メモリからレジスタにデータを書き込むロード命令、加算命令、減算命令、ジャンプ命令、ムーブ命令を表している。プロセッサ上で動作する解析対象プログラムはこれらの命令で構成されることになる。   The simulation engine unit 7 is used by a designer as software for analyzing and debugging a program (analysis target program) to be run on the processor. The instruction group executed by the processor is, for example, “LD, ADD, SUB, JMP, MOV”. “LD”, “ADD”, “SUB”, “JMP”, “MOV” in mnemonic notation respectively represent a load instruction, an add instruction, a subtract instruction, a jump instruction, and a move instruction for writing data from a memory to a register. Yes. The analysis target program operating on the processor is constituted by these instructions.

図5は、シミュレーションエンジン部7の構成を示している。シミュレーションエンジン部7は、命令実行部10、レジスタライトアクセス情報生成部21、データハザード検出兼実行マシンサイクル数算出部22、レジスタライトアクセス情報記憶部31、実行マシンサイクル数情報格納部32を具備している。命令実行部10は、命令処理部11、実行サイクル数計測部13を具備している。   FIG. 5 shows the configuration of the simulation engine unit 7. The simulation engine unit 7 includes an instruction execution unit 10, a register write access information generation unit 21, a data hazard detection and execution machine cycle number calculation unit 22, a register write access information storage unit 31, and an execution machine cycle number information storage unit 32. ing. The instruction execution unit 10 includes an instruction processing unit 11 and an execution cycle number measurement unit 13.

レジスタライトアクセス情報記憶部31には、命令により値が書き込まれるレジスタを識別するレジスタ識別子(レジスタ番号)と、命令によりレジスタに値が書き込まれたときの時刻(レジスタライトアクセス時間)と、レジスタの値が読み出される場合にパイプライン・ストールが発生するときのマシンサイクル(クロック)の数を表すパイプライン・ストール・サイクル数と、が格納される。例えば、レジスタ名として“r0、r1、…、r30、r31”と、レジスタライトアクセス時間として“0、101、…、123、0”と、パイプライン・ストール・サイクル数として“0、0、…、2、0”と、が対応付けられてレジスタライトアクセス情報記憶部31に格納される。   The register write access information storage unit 31 includes a register identifier (register number) for identifying a register to which a value is written by an instruction, a time when a value is written to the register by an instruction (register write access time), a register A pipeline stall cycle number representing the number of machine cycles (clocks) when a pipeline stall occurs when a value is read is stored. For example, “r0, r1,..., R30, r31” as a register name, “0, 101,..., 123, 0” as a register write access time, and “0, 0,. 2, 0 ″ are stored in the register write access information storage unit 31 in association with each other.

実行マシンサイクル数情報格納部32には、複数の命令をそれぞれ識別する複数の命令の種類と、複数の命令の各々に対して、データハザードが発生していないときに実行されるマシンサイクルを表す第1実行マシンサイクル数(ハザード無し時実行マシンサイクル数)と、データハザードが発生しているときに実行されるマシンサイクルを表す第2実行マシンサイクル数(ハザード有り時実行マシンサイクル数)と、が対応付けられて格納されている。ハザード有り時実行マシンサイクル数は、ハザード無し時実行マシンサイクル数と同じかそれよりも大きい。例えば、複数の命令として“ADD、JMP、…、LD”と、ハザード無し時実行マシンサイクル数として“1、4、…、1”と、ハザード有り時実行マシンサイクル数として“1、4、…、3”と、が実行マシンサイクル数情報格納部32に格納されている。ここで、実行マシンサイクル数については、本実施形態を説明する便宜上、実際よりも極端に大きい値を記載している。これらの値は、実際のプロセッサの処理速度によって決定される。その決定方法としては、プロセッサを用いて予め測定して決定する場合や、プロセッサの設計仕様に基づいて予め決定する場合などが挙げられる。   The execution machine cycle number information storage unit 32 represents a plurality of instruction types for identifying a plurality of instructions, and a machine cycle to be executed when no data hazard has occurred for each of the plurality of instructions. A first execution machine cycle number (the number of execution machine cycles without a hazard), a second execution machine cycle number (a number of execution machine cycles with a hazard) representing a machine cycle executed when a data hazard occurs, and Are stored in association with each other. The number of machine cycles executed when there is a hazard is equal to or greater than the number of machine cycles executed when there is no hazard. For example, “ADD, JMP,..., LD” as a plurality of instructions, “1, 4,..., 1” as the number of execution machine cycles without hazard, and “1, 4,. 3 ″ is stored in the execution machine cycle number information storage unit 32. Here, as for the number of execution machine cycles, a value extremely larger than the actual value is described for convenience of describing the present embodiment. These values are determined by the actual processing speed of the processor. As the determination method, there are a case where measurement is performed in advance using a processor and a case where determination is made in advance based on a design specification of the processor.

命令実行部10(命令処理部11、実行サイクル数計測部13)、レジスタライトアクセス情報生成部21、データハザード検出兼実行マシンサイクル数算出部22の動作については後述する。   The operations of the instruction execution unit 10 (the instruction processing unit 11 and the execution cycle number measurement unit 13), the register write access information generation unit 21, and the data hazard detection / execution machine cycle number calculation unit 22 will be described later.

[動作]
図6は、シミュレーションエンジン部7の動作を示すフローチャートである。
[Operation]
FIG. 6 is a flowchart showing the operation of the simulation engine unit 7.

命令処理部11は、設計者の入力装置2の操作により、記憶装置(命令データ格納部6に対応)から解析対象プログラムを読み出す。解析対象プログラムは、命令群として1番目からn番目までの命令で構成されている。例えば、解析対象プログラムは、命令“ADD、MOV、SUB、SUB、JMP、LD、LD、ADD、MOV”で構成されているものとする。命令処理部11は、解析対象プログラムの最初の命令に応じた処理を実行する(ステップS1)。   The instruction processing unit 11 reads the analysis target program from the storage device (corresponding to the instruction data storage unit 6) by the designer's operation of the input device 2. The analysis target program is composed of first to nth instructions as an instruction group. For example, it is assumed that the analysis target program is composed of instructions “ADD, MOV, SUB, SUB, JMP, LD, LD, ADD, MOV”. The instruction processing unit 11 executes a process according to the first instruction of the analysis target program (step S1).

上記命令によりレジスタに値が書き込まれた場合、命令処理部11は、上記レジスタを識別するレジスタ識別子と、上記レジスタに値が書き込まれたときのレジスタライトアクセス時間と、上記命令の種類と、をレジスタライトアクセス情報生成部21に出力する。同時に、命令処理部11は、レジスタ識別子と、上記命令の種類と、を実行サイクル数計測部13に出力する(ステップS2−YES)。   When a value is written to the register by the instruction, the instruction processing unit 11 obtains a register identifier for identifying the register, a register write access time when the value is written to the register, and a type of the instruction. The data is output to the register write access information generation unit 21. At the same time, the instruction processing unit 11 outputs the register identifier and the type of the instruction to the execution cycle number measuring unit 13 (step S2-YES).

レジスタライトアクセス情報生成部21は、実行マシンサイクル数情報格納部32を参照し、複数の命令の種類のうちの、命令処理部11からの上記命令の種類に一致する命令を検索する。レジスタライトアクセス情報生成部21は、上記命令に対するハザード無し時実行マシンサイクル数、ハザード有り時実行マシンサイクル数を実行マシンサイクル数情報格納部32から読み出す。レジスタライトアクセス情報生成部21は、上記命令に対するハザード無し時実行マシンサイクル数、ハザード有り時実行マシンサイクル数に基づいて、読み出し禁止期間として、上記レジスタの値が読み出される場合にパイプライン・ストールが発生するときのマシンサイクルを表すパイプライン・ストール・サイクル数を生成する。この場合、上記命令に対するハザード有り時実行マシンサイクル数から、上記命令に対するハザード無し時実行マシンサイクル数を減算して、パイプライン・ストール・サイクル数を生成する。レジスタライトアクセス情報生成部21は、命令処理部11からの上記レジスタ識別子、上記レジスタライトアクセス時間と、上記パイプライン・ストール・サイクル数(読み出し禁止期間)と、をレジスタライトアクセス情報記憶部31に記録(格納)する(ステップS3)。   The register write access information generation unit 21 refers to the execution machine cycle number information storage unit 32 and searches for an instruction that matches the instruction type from the instruction processing unit 11 among a plurality of instruction types. The register write access information generation unit 21 reads the number of execution machine cycles without a hazard and the number of execution machine cycles with a hazard with respect to the instruction from the execution machine cycle number information storage unit 32. The register write access information generation unit 21 generates a pipeline stall when the value of the register is read as a read prohibition period based on the number of execution machine cycles without hazard and the number of execution machine cycles with hazard. Generate a pipeline stall cycle number that represents the machine cycle when it occurs. In this case, a pipeline stall cycle number is generated by subtracting an execution machine cycle number without hazard for the instruction from the execution machine cycle number with hazard for the instruction. The register write access information generation unit 21 stores the register identifier from the instruction processing unit 11, the register write access time, and the number of pipeline stall cycles (read prohibition period) in the register write access information storage unit 31. Recording (storage) is performed (step S3).

一方、上記命令によりレジスタに値が書き込まれない場合、ステップS3は実行されない。   On the other hand, if no value is written to the register by the above instruction, step S3 is not executed.

上記命令により上記レジスタの値が読み出された場合、実行サイクル数計測部13は、命令処理部11からの上記レジスタ識別子、上記命令の種類をデータハザード検出兼実行マシンサイクル数算出部22に出力する(ステップS4−YES)。   When the value of the register is read by the instruction, the execution cycle number measurement unit 13 outputs the register identifier and the instruction type from the instruction processing unit 11 to the data hazard detection / execution machine cycle number calculation unit 22. (Step S4-YES).

データハザード検出兼実行マシンサイクル数算出部22は、レジスタライトアクセス情報記憶部31を参照し、実行サイクル数計測部13からの上記レジスタ識別子に一致するレジスタ識別子を検索する。データハザード検出兼実行マシンサイクル数算出部22は、上記レジスタ識別子に対する上記レジスタライトアクセス時間、上記パイプライン・ストール・サイクル数をレジスタライトアクセス情報記憶部31から読み出す。データハザード検出兼実行マシンサイクル数算出部22は、上記パイプライン・ストール・サイクル数が0よりも大きいか否かを調べることにより、データハザードが発生するか否かを判定する。即ち、値が読み出された上記レジスタがデータハザードの対象になっているか否かを調べる(ステップS5)。   The data hazard detection / execution machine cycle number calculation unit 22 refers to the register write access information storage unit 31 and searches for a register identifier that matches the register identifier from the execution cycle number measurement unit 13. The data hazard detection / execution machine cycle number calculation unit 22 reads the register write access time and the pipeline stall cycle number for the register identifier from the register write access information storage unit 31. The data hazard detection / execution machine cycle number calculation unit 22 determines whether or not a data hazard occurs by checking whether or not the number of pipeline stall cycles is greater than zero. That is, it is checked whether or not the register from which the value has been read is subject to data hazard (step S5).

上記パイプライン・ストール・サイクル数が0よりも大きい場合、上記レジスタはデータハザードの対象である。この場合、データハザード検出兼実行マシンサイクル数算出部22は、データハザードが発生するものと判定する。即ち、レジスタがデータハザードの対象になっているものと判断する(ステップS5−YES)。   If the number of pipeline stall cycles is greater than 0, the register is subject to data hazards. In this case, the data hazard detection / execution machine cycle number calculation unit 22 determines that a data hazard occurs. That is, it is determined that the register is a target of data hazard (step S5-YES).

この場合、データハザード検出兼実行マシンサイクル数算出部22は、上記レジスタライトアクセス時間と上記パイプライン・ストール・サイクル数とに基づいて、データハザードにより実行が待たされる実行待ちサイクル数を算出する。この場合、上記レジスタライトアクセス時間を表すサイクル数と上記パイプライン・ストール・サイクル数とを加算して実行待ちサイクル数を生成する。データハザード検出兼実行マシンサイクル数算出部22は、実行マシンサイクル数情報格納部32を参照し、複数の命令の種類のうちの、実行サイクル数計測部13からの上記命令の種類に一致する命令を検索する。データハザード検出兼実行マシンサイクル数算出部22は、上記命令に対するハザード有り時実行マシンサイクル数を実行マシンサイクル数情報格納部32から読み出す。データハザード検出兼実行マシンサイクル数算出部22は、上記命令に対するハザード有り時実行マシンサイクル数に実行待ちサイクル数を加算し、実行マシンサイクル数(加算実行マシンサイクル数)を生成する(ステップS6)。   In this case, the data hazard detection / execution machine cycle number calculation unit 22 calculates the number of execution wait cycles for which execution is awaited by the data hazard based on the register write access time and the pipeline stall cycle number. In this case, the number of cycles indicating the register write access time and the number of pipeline stall cycles are added to generate the number of cycles waiting for execution. The data hazard detection / execution machine cycle number calculation unit 22 refers to the execution machine cycle number information storage unit 32, and among the plurality of instruction types, an instruction that matches the instruction type from the execution cycle number measurement unit 13 Search for. The data hazard detection / execution machine cycle number calculation unit 22 reads the execution machine cycle number when there is a hazard for the instruction from the execution machine cycle number information storage unit 32. The data hazard detection / execution machine cycle number calculation unit 22 adds the number of execution wait cycles to the number of execution machine cycles when there is a hazard with respect to the instruction to generate an execution machine cycle number (addition execution machine cycle number) (step S6). .

データハザード検出兼実行マシンサイクル数算出部22は、データハザードが発生した旨を表すデータハザード有り情報と、加算実行マシンサイクル数と、を実行サイクル数計測部13に出力する。実行サイクル数計測部13は、データハザード有り情報と加算実行マシンサイクル数とを含む実行結果60を出力先ファイルとして実行トレースログに出力する。この出力先ファイルは、出力装置3に出力される。同時に、実行サイクル数計測部13は、実行結果出力通知を命令処理部11に出力する(ステップS7)。   The data hazard detection / execution machine cycle number calculation unit 22 outputs data hazard presence information indicating that a data hazard has occurred, and the added execution machine cycle number to the execution cycle number measurement unit 13. The execution cycle number measurement unit 13 outputs an execution result 60 including data hazard information and the number of added execution machine cycles to the execution trace log as an output destination file. This output destination file is output to the output device 3. At the same time, the execution cycle number measurement unit 13 outputs an execution result output notification to the instruction processing unit 11 (step S7).

一方、上記命令が上記レジスタの値の読み出しを行っていない場合、実行サイクル数計測部13は、命令処理部11からの上記命令の種類をデータハザード検出兼実行マシンサイクル数算出部22に出力する(ステップS4−NO)。又は、上記パイプライン・ストール・サイクル数が0である場合、データハザード検出兼実行マシンサイクル数算出部22は、データハザードが発生していないものと判定する(ステップS5−NO)。   On the other hand, when the instruction does not read the value of the register, the execution cycle number measurement unit 13 outputs the type of the instruction from the instruction processing unit 11 to the data hazard detection / execution machine cycle number calculation unit 22. (Step S4-NO). Alternatively, when the number of pipeline stall cycles is 0, the data hazard detection / execution machine cycle number calculation unit 22 determines that no data hazard has occurred (step S5-NO).

この場合、データハザード検出兼実行マシンサイクル数算出部22は、実行マシンサイクル数情報格納部32を参照し、複数の命令の種類のうちの、実行サイクル数計測部13からの上記命令の種類に一致する命令を検索する。データハザード検出兼実行マシンサイクル数算出部22は、上記命令に対するハザード無し時実行マシンサイクル数を実行マシンサイクル数情報格納部32から読み出す。データハザード検出兼実行マシンサイクル数算出部22は、データハザードが発生しない旨を表すデータハザード無し情報と、ハザード無し時実行マシンサイクル数と、を実行サイクル数計測部13に出力する。実行サイクル数計測部13は、データハザード無し情報とハザード無し時実行マシンサイクル数とを含む実行結果60を出力装置3に出力する。同時に、実行サイクル数計測部13は、実行結果出力通知を命令処理部11に出力する(ステップS9)。   In this case, the data hazard detection / execution machine cycle number calculation unit 22 refers to the execution machine cycle number information storage unit 32, and selects the type of instruction from the execution cycle number measurement unit 13 among the plurality of instruction types. Search for matching instructions. The data hazard detection / execution machine cycle number calculation unit 22 reads the execution machine cycle number without hazard for the instruction from the execution machine cycle number information storage unit 32. The data hazard detection / execution machine cycle number calculation unit 22 outputs to the execution cycle number measurement unit 13 data no-hazard information indicating that no data hazard occurs and the number of execution machine cycles when no hazard is present. The execution cycle number measurement unit 13 outputs to the output device 3 an execution result 60 that includes data hazard-free information and the number of machine cycles executed when there is no hazard. At the same time, the execution cycle number measurement unit 13 outputs an execution result output notification to the instruction processing unit 11 (step S9).

解析対象プログラムに次の命令が存在する場合(ステップS8−NO)、命令処理部11は、実行結果出力通知に応じて、次の命令に応じた処理を実行する(ステップS1)。次の命令が存在しない場合(ステップS8−YES)、シミュレーションエンジン部7の動作が終了する。   When the next instruction exists in the analysis target program (step S8—NO), the instruction processing unit 11 executes a process according to the next instruction in response to the execution result output notification (step S1). When the next command does not exist (step S8—YES), the operation of the simulation engine unit 7 ends.

[効果]
以上の説明により、本発明の実施形態によるシミュレーション装置4では、プロセッサの動作を模擬する際、命令実行部10は、プロセッサ上で実行可能な命令が与えられ、命令に応じた処理を実行する。実行マシンサイクル数情報格納部32には、複数の命令の種類と、複数の命令の各々に対して、データハザードが発生していないときに実行される第1実行マシンサイクル数と、データハザードが発生しているときに実行される第2実行マシンサイクル数と、が格納されている。命令によりレジスタに値が書き込まれた場合、レジスタライトアクセス情報生成部21は、命令に対する第1、2実行マシンサイクル数を実行マシンサイクル数情報格納部32から読み出し、それらに基づいて、読み出し禁止期間としてパイプライン・ストール・サイクル数を生成する。レジスタライトアクセス情報生成部21は、レジスタを識別するレジスタ識別子と、レジスタに値が書き込まれたときのレジスタライトアクセス時間と、パイプライン・ストール・サイクル数とをレジスタライトアクセス情報記憶部31に格納する。データハザード検出兼実行マシンサイクル数算出部22は、レジスタがデータハザードの対象になっている場合、レジスタライトアクセス情報記憶部31に格納されたレジスタライトアクセス時間及びパイプライン・ストール・サイクル数と、命令に対する第2実行マシンサイクル数と、に基づいて実行マシンサイクル数を算出する。
[effect]
As described above, in the simulation device 4 according to the embodiment of the present invention, when simulating the operation of the processor, the instruction execution unit 10 is given an instruction that can be executed on the processor and executes a process according to the instruction. The number-of-execution-machine-cycles information storage unit 32 includes a plurality of instruction types, a first execution machine cycle number that is executed when no data hazard has occurred, and a data hazard for each of the plurality of instructions. The second execution machine cycle number to be executed when it occurs is stored. When a value is written to the register by the instruction, the register write access information generation unit 21 reads the first and second execution machine cycle numbers for the instruction from the execution machine cycle number information storage unit 32, and based on them, the read prohibition period Generate the number of pipeline stall cycles. The register write access information generation unit 21 stores in the register write access information storage unit 31 a register identifier for identifying a register, a register write access time when a value is written to the register, and the number of pipeline stall cycles. To do. The data hazard detection / execution machine cycle number calculation unit 22 calculates the register write access time and the pipeline stall cycle number stored in the register write access information storage unit 31 when the register is a data hazard target. The execution machine cycle number is calculated based on the second execution machine cycle number for the instruction.

これにより、本発明の実施形態によるシミュレーション装置4によれば、ISSシミュレーション装置内にレジスタライトアクセス情報生成部21、レジスタライトアクセス情報記録部31、データハザード検出兼実行マシンサイクル数算出部22、実行マシンサイクル数情報格納部32を設けることにより、レジスタライトアクセス時間と、読み出し禁止期間(パイプライン・ストール・サイクル数)と、を記録しておくことができ、パイプライン・ステージを実装しなくても、データハザードの検出と、データハザードによる遅延を考慮した各命令の実行マシンサイクル数と、を決定(算出)することができる。   Thus, according to the simulation device 4 according to the embodiment of the present invention, the register write access information generation unit 21, the register write access information recording unit 31, the data hazard detection / execution machine cycle number calculation unit 22, and the execution in the ISS simulation device. By providing the machine cycle number information storage unit 32, it is possible to record the register write access time and the read prohibition period (the number of pipeline stall cycles), without having to implement the pipeline stage. In addition, it is possible to determine (calculate) the detection of the data hazard and the number of execution machine cycles of each instruction in consideration of the delay due to the data hazard.

その結果、本発明の実施形態によるシミュレーション装置4によれば、データハザードによる遅延を考慮したモデルでプロセッサの動作を模擬することができる。このため、非特許文献1で挙げた問題点を解決することができる。   As a result, according to the simulation device 4 according to the embodiment of the present invention, the operation of the processor can be simulated with a model that takes into account the delay due to the data hazard. For this reason, the problem mentioned in the nonpatent literature 1 can be solved.

また、本発明の実施形態によるシミュレーション装置4によれば、パイプライン・ステージが設けられていないことにより、非特許文献2で挙げた問題点を解決し、シミュレーション速度の高速化を実現できる。   Further, according to the simulation apparatus 4 according to the embodiment of the present invention, since the pipeline stage is not provided, the problems mentioned in Non-Patent Document 2 can be solved and the simulation speed can be increased.

図1−1は、非特許文献1に記載された技術を説明するための図である。FIG. 1A is a diagram for explaining the technique described in Non-Patent Document 1. FIG. 図1−2は、非特許文献1に記載された技術を説明するための図である。FIG. 1-2 is a diagram for explaining the technique described in Non-Patent Document 1. FIG. 図1−3は、非特許文献1に記載された技術を説明するための図である。1C is a diagram for explaining the technique described in Non-Patent Document 1. FIG. 図2は、非特許文献2に記載された技術を説明するための図であり、パイプライン・ステージの概略図である。FIG. 2 is a diagram for explaining the technique described in Non-Patent Document 2, and is a schematic diagram of a pipeline stage. 図3は、本発明の実施形態によるシミュレーション装置4の構成を示している。FIG. 3 shows a configuration of the simulation apparatus 4 according to the embodiment of the present invention. 図4は、シミュレーション装置4が動作する環境として、コンピュータの構成を示している。FIG. 4 shows the configuration of a computer as an environment in which the simulation apparatus 4 operates. 図5は、シミュレーションエンジン部7の構成を示している。FIG. 5 shows the configuration of the simulation engine unit 7. 図6は、シミュレーションエンジン部7の動作を示すフローチャートである。FIG. 6 is a flowchart showing the operation of the simulation engine unit 7.

符号の説明Explanation of symbols

1 コンピュータ本体、
2 入力装置、
3 出力装置、
4 シミュレーション装置、
5 ユーザインターフェース部、
6 命令データ格納部、
7 シミュレーションエンジン部(シミュレーションプログラム)、
10 命令実行部、
11 命令処理部、
13 実行サイクル数計測部、
21 レジスタライトアクセス情報生成部、
22 データハザード検出兼実行マシンサイクル数算出部、
31 レジスタライトアクセス情報記憶部、
32 実行マシンサイクル数情報格納部、
60 実行結果、
1 computer body,
2 input devices,
3 output device,
4 simulation equipment,
5 User interface part,
6 Instruction data storage,
7 Simulation engine part (simulation program),
10 Instruction execution unit,
11 Instruction processing part,
13 execution cycle number measurement unit,
21 register write access information generator,
22 data hazard detection and execution machine cycle number calculation unit,
31 register write access information storage unit,
32 execution machine cycle number information storage unit,
60 execution result,

Claims (13)

プロセッサの動作を模擬するシミュレーション装置であって、
前記プロセッサ上で実行可能な複数の命令が与えられ、前記複数の命令の各々を実行して前記命令に応じた処理を行う命令実行部と、
前記複数の命令の種類と、前記複数の命令の各々が実行される場合に、データハザードが発生していないときに費やされる第1実行マシンサイクル数と、前記データハザードが発生しているときに費やされる第2実行マシンサイクル数とが格納された格納部と、
記録部と、
前記命令が実行されることによりレジスタに値が書き込まれ場合、前記命令に対する前記第1、2実行マシンサイクル数を前記格納部から読み出し、それらに基づいて、読み出し禁止期間としてパイプライン・ストール・サイクル数を生成し、前記レジスタを識別するレジスタ識別子と、前記レジスタに値が書き込まれたときのレジスタライトアクセス時間と、前記パイプライン・ストール・サイクル数とを前記記録部に格納する生成部と、
前記命令が実行されて前記レジスタの値が読み出され、かつ、前記レジスタが前記データハザードの対象になっている場合、前記記録部に格納された前記命令に対する前記レジスタライトアクセス時間及び前記パイプライン・ストール・サイクル数と、前記命令に対する前記第2実行マシンサイクル数とに基づいて前記命令に対する実行マシンサイクル数を算出し、前記命令が実行されて前記レジスタの値が読み出されないとき、あるいは前記命令が実行されて前記レジスタの値が読み出され、かつ、前記レジスタが前記データハザードの対象になっていないとき、前記命令に対するハザード無し時実行マシンサイクル数を前記格納部から読み出し、データハザードが発生しない旨を表すデータハザード無し情報を生成する算出部
を具備するシミュレーション装置。
A simulation device for simulating the operation of a processor,
A plurality of instructions that can be executed on the processor, an instruction execution unit that executes each of the plurality of instructions and performs processing according to the instructions;
And type of said plurality of instructions, when each of the plurality of instructions are executed, a first execution machine cycles expended when data hazard does not occur, when the data hazard occurs a storage unit and a second execution machine cycles are stored spent,
A recording section;
When said instruction is Ru value in the register by executing is written, reading the number of the first and second execution machine cycle to the instruction from the storage unit, on the basis of their pipeline stalls as a read inhibition period, A register for generating a cycle number and identifying the register; a register write access time when a value is written to the register; and a pipeline stall cycle number stored in the recording unit; ,
When the instruction is executed to read the value of the register and the register is subject to the data hazard, the register write access time and the pipeline for the instruction stored in the recording unit Calculating an execution machine cycle number for the instruction based on the stall cycle number and the second execution machine cycle number for the instruction, and when the instruction is executed and the value of the register is not read, or When the instruction is executed, the value of the register is read, and when the register is not subject to the data hazard, the number of machine cycles executed without hazard for the instruction is read from the storage unit, and the data hazard is to and a calculation unit for generating a data hazard no information indicating that do not occur Simulation equipment.
前記第2実行マシンサイクル数は、前記第1実行マシンサイクル数と同じかそれよりも大きく、
前記生成部は、前記命令に対する前記第2実行マシンサイクル数から、前記命令に対する前記第1実行マシンサイクル数を減算して、前記パイプライン・ストール・サイクル数を生成す
請求項1に記載のシミュレーション装置。
The second execution machine cycle number is equal to or greater than the first execution machine cycle number;
The generating unit, from the second execution machine cycles for the instruction, by subtracting the number of the first execution machine cycle for the instruction, according to claim 1 that generates the number of pipeline stall cycles Simulation device.
前記算出部は、前記パイプライン・ストール・サイクル数が0よりも大きい場合、前記記録部に格納された前記レジスタライトアクセス時間及び前記パイプライン・ストール・サイクル数と、前記命令に対する前記第2実行マシンサイクル数とに基づいて前記実行マシンサイクル数を算出す
請求項2に記載のシミュレーション装置。
When the number of pipeline stall cycles is greater than 0, the calculation unit stores the register write access time and the number of pipeline stall cycles stored in the recording unit, and the second execution for the instruction. simulation device according to claim 2 that to calculate the number of the execution machine cycles on the basis of the number of machine cycles.
前記算出部は、前記レジスタが前記データハザードの対象になっている場合、前記記録部に格納された前記レジスタライトアクセス時間及び前記パイプライン・ストール・サイクル数に基づいて実行待ちサイクル数を算出し、前記命令に対する前記第2実行マシンサイクル数に前記実行待ちサイクル数を加算して前記実行マシンサイクル数を生成す
請求項1〜3のいずれかに記載のシミュレーション装置。
The calculating unit, when said register is the subject of the data hazards, calculates the number of execution wait cycle based on the register write access time and the number of pipeline stall cycles stored in the recording unit the simulation apparatus according to claim 1 wherein by adding the execution wait cycle number to the second number of execution machine cycles for the instruction that generates the number of the execution machine cycles.
前記算出部は、前記レジスタが前記データハザードの対象になっている場合、前記レジスタライトアクセス時間を表すサイクル数と前記パイプライン・ストール・サイクル数とを加算して前記実行待ちサイクル数を算出し、前記命令に対する前記第2実行マシンサイクル数に前記実行待ちサイクル数を加算して前記実行マシンサイクル数を生成す
請求項4に記載のシミュレーション装置。
The calculation unit calculates the number of waiting cycles by adding the number of cycles indicating the register write access time and the number of pipeline stall cycles when the register is the target of the data hazard. the simulation apparatus according to claim 4 wherein by adding the execution wait cycle number to the second number of execution machine cycles for the instruction that generates the number of the execution machine cycles.
前記命令実行部は、前記レジスタが前記データハザードの対象になっている場合、前記データハザードが発生した旨を表すデータハザード有り情報と、前記実行マシンサイクル数とを含む実行結果を出力す
請求項1〜5のいずれかに記載のシミュレーション装置。
The instruction execution unit, if the register is the subject of the data hazards, the data hazard data hazard presence information indicating that occurs, it outputs the execution result including said execution machine cycles claims Item 6. The simulation device according to any one of Items 1 to 5.
プロセッサの動作をコンピュータを用いて模擬するシミュレーション方法であって、
前記プロセッサ上で実行可能な複数の命令が与えられ、前記複数の命令の各々を実行することにより前記命令に応じた処理を行うステップと、
前記命令が実行されてレジスタに値が書き込まれ場合、前記命令に対して、データハザードが発生していないときに費やされる第1実行マシンサイクル数と、前記データハザードが発生しているときに費やされる第2実行マシンサイクル数と格納部から読み出、前記第1、2実行マシンサイクル数に基づいて、読み出し禁止期間としてパイプライン・ストール・サイクル数を生成、前記レジスタを識別するレジスタ識別子と、前記レジスタに値が書き込まれたときのレジスタライトアクセス時間と、前記パイプライン・ストール・サイクル数とを記録部に格納するステップと、
前記命令が実行されて前記レジスタの値が読み出され、かつ、前記レジスタが前記データハザードの対象になっている場合、前記記録部に格納された前記レジスタライトアクセス時間及び前記パイプライン・ストール・サイクル数と、前記命令に対する前記第2実行マシンサイクル数とに基づいて実行マシンサイクル数を算出するステップと、
前記命令が実行されて前記レジスタの値が読み出されないとき、あるいは前記命令が実行されて前記レジスタの値が読み出され、かつ、前記レジスタが前記データハザードの対象になっていないとき、前記命令に対するハザード無し時実行マシンサイクル数を前記格納部から読み出し、データハザードが発生しない旨を表すデータハザード無し情報を生成するステップと
を具備するシミュレーション方法。
A simulation method for simulating the operation of a processor using a computer,
A plurality of instructions executable on the processor are provided, and each of the plurality of instructions is executed to perform processing according to the instructions ;
If the instruction is Ru value to be executed register is written with respect to the instruction, a first execution machine cycles expended when data hazard does not occur, when the data hazard occurs to read out a second execution machine cycles spent from the storage unit, based on the first and second number of execution machine cycles, and generates a number of pipeline stall cycles as read prohibited period, identifying the register Storing a register identifier, a register write access time when a value is written to the register, and the number of pipeline stall cycles in a recording unit;
When the instruction is executed to read the value of the register and the register is subject to the data hazard, the register write access time stored in the recording unit and the pipeline stall Calculating an execution machine cycle number based on the cycle number and the second execution machine cycle number for the instruction;
When the instruction is executed and the value of the register is not read, or when the instruction is executed and the value of the register is read and the register is not subject to the data hazard, the instruction Reading out the number of machine cycles executed when no hazard is generated from the storage unit, and generating no-hazard information indicating that no data hazard occurs .
前記第2実行マシンサイクル数は、前記第1実行マシンサイクル数と同じかそれよりも大きく、
前記パイプライン・ストール・サイクル数を生成するステップは、前記命令に対する前記第2実行マシンサイクル数から、前記命令に対する前記第1実行マシンサイクル数を減算して、前記パイプライン・ストール・サイクル数を生成す
請求項7に記載のシミュレーション方法。
The second execution machine cycle number is equal to or greater than the first execution machine cycle number;
The step of generating the pipeline stall cycle number subtracts the first execution machine cycle number for the instruction from the second execution machine cycle number for the instruction to obtain the pipeline stall cycle number. simulation method according to claim 7 that generates.
前記実行マシンサイクル数を算出するステップは、前記パイプライン・ストール・サイクル数が0よりも大きい場合、前記記録部に格納された前記レジスタライトアクセス時間及び前記パイプライン・ストール・サイクル数と、前記命令に対する前記第2実行マシンサイクル数とに基づいて前記実行マシンサイクル数を算出す
請求項8に記載のシミュレーション方法。
The step of calculating the number of execution machine cycles is, when the number of pipeline stall cycles is greater than 0, the register write access time and the number of pipeline stall cycles stored in the recording unit, simulation method according to <br/> claim 8 that to calculate the number of the execution machine cycles on the basis of the second execution machine cycles for the instruction.
前記実行マシンサイクル数を算出するステップは、
前記命令が実行されて前記レジスタの値が読み出され、かつ、前記レジスタが前記データハザードの対象になっている場合、前記記録部に格納された前記レジスタライトアクセス時間及び前記パイプライン・ストール・サイクル数に基づいて実行待ちサイクル数を生成するステップと、
前記命令に対する前記第2実行マシンサイクル数に前記実行待ちサイクル数を加算して前記実行マシンサイクル数を生成するステップ
を更に含む請求項7〜9のいずれかに記載のシミュレーション方法。
The step of calculating the number of execution machine cycles includes:
When the instruction is executed to read the value of the register and the register is subject to the data hazard, the register write access time stored in the recording unit and the pipeline stall Generating a number of waiting cycles based on the number of cycles;
Simulation method according to any one of claims 7-9, further comprising the step of generating the execution number of waiting the execution machine cycles by adding the number of cycles of the number of the second execution machine cycle for the instruction.
前記実行待ちサイクル数を生成するステップは、
前記命令が実行されて前記レジスタの値が読み出され、かつ、前記レジスタが前記データハザードの対象になっている場合、前記レジスタライトアクセス時間を表すサイクル数と前記パイプライン・ストール・サイクル数とを加算して前記実行待ちサイクル数を生成する、
請求項10に記載のシミュレーション方法。
The step of generating the number of waiting cycles is
When the instruction is executed, the value of the register is read, and the register is subject to the data hazard, the number of cycles indicating the register write access time, the number of pipeline stall cycles, To generate the number of cycles waiting for execution,
The simulation method according to claim 10.
前記命令が実行されて前記レジスタの値が読み出されないとき、あるいは前記命令が実行されて前記レジスタの値が読み出され、かつ、前記レジスタが前記データハザードの対象になっていない場合、前記データハザードが発生した旨を表すデータハザード有り情報と、前記実行マシンサイクル数とを含む実行結果を出力するステッ
を更に具備する請求項7〜11のいずれかに記載のシミュレーション方法。
When the instruction is executed and the value of the register is not read, or when the instruction is executed and the value of the register is read and the register is not subject to the data hazard, the data a data hazard presence information indicating that the hazard occurs, the simulation method according to any one of claims 7 to 11, further comprising the steps of outputting the execution result including said execution machine cycles.
請求項7〜12のいずれかに記載のシミュレーション方法の各ステップをコンピュータに実行させるコンピュータプログラム。   The computer program which makes a computer perform each step of the simulation method in any one of Claims 7-12.
JP2008251341A 2008-09-29 2008-09-29 Simulation apparatus and simulation method Expired - Fee Related JP5116624B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008251341A JP5116624B2 (en) 2008-09-29 2008-09-29 Simulation apparatus and simulation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008251341A JP5116624B2 (en) 2008-09-29 2008-09-29 Simulation apparatus and simulation method

Publications (2)

Publication Number Publication Date
JP2010086047A JP2010086047A (en) 2010-04-15
JP5116624B2 true JP5116624B2 (en) 2013-01-09

Family

ID=42249993

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008251341A Expired - Fee Related JP5116624B2 (en) 2008-09-29 2008-09-29 Simulation apparatus and simulation method

Country Status (1)

Country Link
JP (1) JP5116624B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5961971B2 (en) * 2011-10-12 2016-08-03 富士通株式会社 Simulation apparatus, method, and program

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11149489A (en) * 1997-11-17 1999-06-02 Toshiba Corp Simulation equipment
JP3291238B2 (en) * 1998-02-19 2002-06-10 富士通株式会社 Processor simulator and simulation method
JP2001290857A (en) * 2000-04-06 2001-10-19 Matsushita Electric Ind Co Ltd Timing simulator
JP4202673B2 (en) * 2002-04-26 2008-12-24 株式会社東芝 System LSI development environment generation method and program thereof

Also Published As

Publication number Publication date
JP2010086047A (en) 2010-04-15

Similar Documents

Publication Publication Date Title
JP6342129B2 (en) Source code error position detection apparatus and method for mixed mode program
JP2008176453A (en) Simulation device
JP2020522784A (en) Generation and verification of hardware instruction traces including memory data content
JP5514211B2 (en) Simulating processor execution with branch override
Kodakara et al. Extracting effective functional tests from commercial programs
Joannou et al. Randomized testing of RISC-V CPUs using direct instruction injection
Klemmer et al. An exploration platform for microcoded RISC-V cores leveraging the one instruction set computer principle
JP2006350686A (en) Instruction set simulator generating apparatus and simulator generating method
Sharma et al. Performance Evaluation of Real-Time Systems.
CN102520984B (en) Computing method for worst time of object software in specified hardware environment
JP5116624B2 (en) Simulation apparatus and simulation method
US8756580B2 (en) Instance-based field affinity optimization
Dick et al. Measurement and Rating of Software-induced Energy Consumption of Desktop PCs and Servers.
Wagstaff et al. Automated ISA branch coverage analysis and test case generation for retargetable instruction set simulators
Wang et al. An approach to improve accuracy of source-level TLMs of embedded software
Letychevskyi et al. Fuzz testing technique and its use in cybersecurity tasks
JP2004118518A (en) Simulator and recording medium recording the simulator in a computer-readable manner
Charvát et al. Automatic formal correspondence checking of ISA and RTL microprocessor description
Deligiannis et al. Enhancing the effectiveness of STLs for GPUs via bounded model checking
Swierzy et al. Teem: A cpu emulator for teaching transient execution attacks
Qiu et al. Nugget: Portable Program Snippets
CN116340082B (en) A method and apparatus for dynamic analysis of RISC-CV applications based on hardware virtualization
JP4983238B2 (en) Simulated source program generation program and apparatus, and information processing method
JP3688479B2 (en) Fault simulation apparatus, fault simulation method, and computer-readable recording medium recording the simulation program
Li et al. BTBench: A Benchmark for Comprehensive Binary Translation Performance Evaluation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110419

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120705

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120726

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120907

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

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

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

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees