JP2010086047A - シミュレーション装置及びシミュレーション方法 - Google Patents

シミュレーション装置及びシミュレーション方法 Download PDF

Info

Publication number
JP2010086047A
JP2010086047A JP2008251341A JP2008251341A JP2010086047A JP 2010086047 A JP2010086047 A JP 2010086047A JP 2008251341 A JP2008251341 A JP 2008251341A JP 2008251341 A JP2008251341 A JP 2008251341A JP 2010086047 A JP2010086047 A JP 2010086047A
Authority
JP
Japan
Prior art keywords
instruction
register
execution machine
cycle number
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008251341A
Other languages
English (en)
Other versions
JP5116624B2 (ja
Inventor
Emi Yoshinaga
恵美 吉永
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.)
NEC Electronics Corp
Original Assignee
NEC 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 NEC Electronics Corp filed Critical NEC Electronics Corp
Priority to JP2008251341A priority Critical patent/JP5116624B2/ja
Publication of JP2010086047A publication Critical patent/JP2010086047A/ja
Application granted granted Critical
Publication of JP5116624B2 publication Critical patent/JP5116624B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】パイプライン・ステージを設けることなく、データハザードによる遅延を考慮したモデルでプロセッサの動作を模擬すること。
【解決手段】格納部32には、複数の命令の種類と、その各々に対して、データハザードが発生していないときの第1実行マシンサイクル数と、データハザードが発生しているときの第2実行マシンサイクル数と、が格納されている。命令によりレジスタに値が書き込まれた場合、生成部21は、命令に対する第1、2実行マシンサイクル数に基づいて読み出し禁止期間を生成する。生成部21は、レジスタを識別するレジスタ識別子と、レジスタライトアクセス時間と読み出し禁止期間とを記録部31に格納する。算出部22は、レジスタがデータハザードの対象になっている場合、レジスタライトアクセス時間、読み出し禁止期間、命令に対する第2実行マシンサイクル数に基づいて実行マシンサイクル数を算出する。
【選択図】図5

Description

本発明は、プロセッサの動作をシミュレートするシミュレーション装置、シミュレーション方法に関する。
プロセッサ上で動作させるプログラムの解析やデバックのためにシミュレーション装置が利用されている。シミュレーション装置は、プロセッサの動作と同じ動作か、あるいは、それを簡略化した動作を行うように設計される。このようなシミュレーション装置としては、命令セットシミュレータ(ISS;Instruction Set Simulator)といったものが広く知られている。ISSは、パーソナルコンピュータやワークステーションなどのコンピュータ上で動作し、プロセッサの命令の動作や、その実行結果、レジスタの状態などを模擬するものである。ISSを用いることにより、プログラムの解析やデバックのために専用のハードウェアを用意する必要がないというメリットがある。
ISSを用いたプログラムの解析において、CPUの性能を最大限に引き出すことが望まれる。そのためには、データハザードによる処理時間のロス、即ち、パイプライン・ステージの処理進行の停止による処理時間のロスを最小限に抑える必要がある。そこで、ユーザアプリケーション中にデータハザードがどこにどのくらい存在するかを検出(検証)し、ユーザに示す必要がある。その手段として、CPU実機から情報を取る方法はあるが、開発中のCPUや、マルチコアにおける再現性のある時刻考慮のためには、シミュレータでデータハザードを検出する方法が必要となる。
シミュレーションに関連する技術を紹介する。
RealView Profiler(非特許文献1参照)では、図1−1に示されるように、RealView Trace2ユニットを利用し、RealView ICEと接続される構成になっている。これにより、RealView Profilerは、RealView ICE、RealView Trace2ユニットを介し、CPU実機からインターロック(データハザード)情報を取得し、トレース情報と共に表示する。RealView Profilerは、図1−2、1−3に示されるように、取得したトレース情報を元にソース(アセンブラ)ビュー上に●印を表示し、データハザードが発生した命令をユーザに知らせる。また、RealView Profilerにはシミュレータと接続する仕組みも存在するが、データハザード情報は取り出すことができていないようである。
ArchC(非特許文献2参照)では、arcsimというSystemC シミュレータ生成ツールを提供しており、AC_ARCHというアーキテクチャ情報、AC_ISAというISA情報を使って、SystemCシミュレータを自動生成する。このAC_ARCHにパイプライン・ステージを書く部分があり、パイプライン・ステージを有するSystemCシミュレータが生成される。このSystemCシミュレータは、cycle accurate simulatorであり、パイプライン・ステージを有することにより、データハザードを考慮したシミュレーションを可能にしている。
図2は、シミュレートを実行しようとしているプロセッサのパイプライン・ステージの概略図である。プロセッサは、命令群とデータとが格納されたメモリと、レジスタと、パイプラインと、を具備している。プロセッサは、クロックに応じて動作し、更に、命令群をフェッチするIF(命令フェッチ)ステージと、フェッチされた命令をデコードするDC(デコード)ステージと、デコードされた命令を実行するEX(実行)ステージと、命令(メモリアクセス命令)に対してメモリのアクセスを行うME(メモリアクセス)ステージと、命令の実行結果をレジスタに書き込むWB(ライトバック)ステージと、を具備している。プロセッサは、IFステージとDCステージとEXステージとMEステージとWBステージによりパイプラインを構成する。
"ARM RealView Profiler 1.0(製品パンフレット)"、[online]、[平成20年8月20日検索]、インターネット<URL:http:/www.arm.com/products/DevTools/RVP.html> "ArchC"、[online]、[平成20年8月20日検索]、インターネット<URL:http://www.archc.org/>
しかし、非特許文献1に記載された技術では、実機からのトレース情報によりデータハザード(インターロック)の検出を行えるが、データハザードによる遅延を考慮したモデルではない。
また、非特許文献2に記載された技術では、パイプライン・ステージを実装することにより、データハザードを含むサイクルアキュレートなシミュレーションを実現している。しかし、パイプライン・ステージでは毎サイクル並列実行する機構が含まれるため、ISSよりシミュレーション時間がかかるという問題がある。
以下に、発明を実施するための最良の形態・実施例で使用される符号を括弧付きで用いて、課題を解決するための手段を記載する。この符号は、特許請求の範囲の記載と発明を実施するための最良の形態・実施例の記載との対応を明らかにするために付加されたものであり、特許請求の範囲に記載されている発明の技術的範囲の解釈に用いてはならない。
本発明のシミュレーション装置は、プロセッサの動作を模擬するものであって、命令実行部(10)と、格納部(32)と、記録部(31)と、生成部(21)と、算出部(22)と、を具備している。命令実行部(10)は、プロセッサ上で実行可能な命令が与えられ、命令に応じた処理を実行する。格納部(32)には、複数の命令の種類と、複数の命令の各々に対して、データハザードが発生していないときに実行される第1実行マシンサイクル数と、データハザードが発生しているときに実行される第2実行マシンサイクル数と、が格納されている。命令によりレジスタに値が書き込まれた場合、生成部(21)は、命令に対する第1、2実行マシンサイクル数を格納部(32)から読み出し、それらに基づいて、読み出し禁止期間としてパイプライン・ストール・サイクル数を生成する。生成部(21)は、レジスタを識別するレジスタ識別子と、レジスタに値が書き込まれたときのレジスタライトアクセス時間と、パイプライン・ストール・サイクル数とを記録部(31)に格納する。算出部(22)は、レジスタがデータハザードの対象になっている場合、記録部(31)に格納されたレジスタライトアクセス時間及びパイプライン・ストール・サイクル数と、命令に対する第2実行マシンサイクル数と、に基づいて実行マシンサイクル数を算出する。
本発明のシミュレーション装置(4)によれば、生成部(21)、記録部(31)、算出部(22)、格納部(32)を具備することにより、レジスタライトアクセス時間と、読み出し禁止期間(パイプライン・ストール・サイクル数)と、を記録しておくことができ、パイプライン・ステージを実装しなくても、データハザードによる遅延を考慮した各命令の実行マシンサイクル数を決定(算出)することができる。
その結果、本発明のシミュレーション装置(4)によれば、データハザードによる遅延を考慮したモデルでプロセッサの動作を模擬することができる。このため、非特許文献1で挙げた問題点を解決することができる。
また、本発明の実施形態によるシミュレーション装置(4)によれば、パイプライン・ステージが設けられていないことにより、非特許文献2で挙げた問題点を解決し、シミュレーション速度の高速化を実現できる。
以下に添付図面を参照して、本発明の実施形態によるシミュレーション装置について詳細に説明する。
[構成]
図3は、本発明の実施形態によるシミュレーション装置4の構成を示している。本発明の実施形態によるシミュレーション装置4は、汎用コンピュータ(パーソナルコンピュータ、EWS(エンジニアリングワークステーション))上でパイプライン構造を持つマイクロコンピュータのシミュレーションを行うものである。
そのシミュレーション装置4は、ユーザインターフェース部5と、メモリである命令データ格納部6と、シミュレーションエンジン部(シミュレーションプログラム)7とを具備している。ユーザインターフェース部5は、入力装置による入力、及び、出力装置に出力する制御を行う。命令データ格納部6には、デバック対象のプログラムが格納されている。シミュレーションエンジン部7は、デバック対象のプログラムを命令データ格納部6から読み出し、デバック対象のプログラムに記述されている命令群を処理する。
シミュレーションエンジン部7は、コンピュータにインストールされるコンピュータプログラム(シミュレーションプログラム)としても実現可能である。図4は、シミュレーション装置4が動作する環境として、コンピュータの構成を示している。コンピュータは、入力装置2と、出力装置3と、コンピュータ本体1とを具備している。入力装置2と出力装置3は、コンピュータ本体1に接続されている。入力装置2は、キーボード、ポインティングデバイスを含み、出力装置3は、表示装置、プリンタを含んでいる。
上記のコンピュータ本体1は、図示しない記憶装置と、図示しないCPU(Central Processing Unit)とを具備している。シミュレーションエンジン部7は、記憶装置にインストールされる。この場合、命令データ格納部6に格納されたデバック対象のプログラムも記憶装置にインストールされる。シミュレーションエンジン部7(シミュレーションプログラム)は、デバック対象のプログラムを記憶装置から読み出し、デバック対象のプログラムに記述されている命令群をCPU上で処理する。
シミュレーションエンジン部7は、プロセッサ上で動作させるプログラム(解析対象プログラム)の解析やデバックのためのソフトウェアとして、設計者に利用される。プロセッサにより実行される命令群は、例えば、“LD、ADD、SUB、JMP、MOV”といったものがあるものとする。ニーモニック表記の“LD”、“ADD”、“SUB”、“JMP”、“MOV”は、それぞれ、メモリからレジスタにデータを書き込むロード命令、加算命令、減算命令、ジャンプ命令、ムーブ命令を表している。プロセッサ上で動作する解析対象プログラムはこれらの命令で構成されることになる。
図5は、シミュレーションエンジン部7の構成を示している。シミュレーションエンジン部7は、命令実行部10、レジスタライトアクセス情報生成部21、データハザード検出兼実行マシンサイクル数算出部22、レジスタライトアクセス情報記憶部31、実行マシンサイクル数情報格納部32を具備している。命令実行部10は、命令処理部11、実行サイクル数計測部13を具備している。
レジスタライトアクセス情報記憶部31には、命令により値が書き込まれるレジスタを識別するレジスタ識別子(レジスタ番号)と、命令によりレジスタに値が書き込まれたときの時刻(レジスタライトアクセス時間)と、レジスタの値が読み出される場合にパイプライン・ストールが発生するときのマシンサイクル(クロック)の数を表すパイプライン・ストール・サイクル数と、が格納される。例えば、レジスタ名として“r0、r1、…、r30、r31”と、レジスタライトアクセス時間として“0、101、…、123、0”と、パイプライン・ストール・サイクル数として“0、0、…、2、0”と、が対応付けられてレジスタライトアクセス情報記憶部31に格納される。
実行マシンサイクル数情報格納部32には、複数の命令をそれぞれ識別する複数の命令の種類と、複数の命令の各々に対して、データハザードが発生していないときに実行されるマシンサイクルを表す第1実行マシンサイクル数(ハザード無し時実行マシンサイクル数)と、データハザードが発生しているときに実行されるマシンサイクルを表す第2実行マシンサイクル数(ハザード有り時実行マシンサイクル数)と、が対応付けられて格納されている。ハザード有り時実行マシンサイクル数は、ハザード無し時実行マシンサイクル数と同じかそれよりも大きい。例えば、複数の命令として“ADD、JMP、…、LD”と、ハザード無し時実行マシンサイクル数として“1、4、…、1”と、ハザード有り時実行マシンサイクル数として“1、4、…、3”と、が実行マシンサイクル数情報格納部32に格納されている。ここで、実行マシンサイクル数については、本実施形態を説明する便宜上、実際よりも極端に大きい値を記載している。これらの値は、実際のプロセッサの処理速度によって決定される。その決定方法としては、プロセッサを用いて予め測定して決定する場合や、プロセッサの設計仕様に基づいて予め決定する場合などが挙げられる。
命令実行部10(命令処理部11、実行サイクル数計測部13)、レジスタライトアクセス情報生成部21、データハザード検出兼実行マシンサイクル数算出部22の動作については後述する。
[動作]
図6は、シミュレーションエンジン部7の動作を示すフローチャートである。
命令処理部11は、設計者の入力装置2の操作により、記憶装置(命令データ格納部6に対応)から解析対象プログラムを読み出す。解析対象プログラムは、命令群として1番目からn番目までの命令で構成されている。例えば、解析対象プログラムは、命令“ADD、MOV、SUB、SUB、JMP、LD、LD、ADD、MOV”で構成されているものとする。命令処理部11は、解析対象プログラムの最初の命令に応じた処理を実行する(ステップS1)。
上記命令によりレジスタに値が書き込まれた場合、命令処理部11は、上記レジスタを識別するレジスタ識別子と、上記レジスタに値が書き込まれたときのレジスタライトアクセス時間と、上記命令の種類と、をレジスタライトアクセス情報生成部21に出力する。同時に、命令処理部11は、レジスタ識別子と、上記命令の種類と、を実行サイクル数計測部13に出力する(ステップS2−YES)。
レジスタライトアクセス情報生成部21は、実行マシンサイクル数情報格納部32を参照し、複数の命令の種類のうちの、命令処理部11からの上記命令の種類に一致する命令を検索する。レジスタライトアクセス情報生成部21は、上記命令に対するハザード無し時実行マシンサイクル数、ハザード有り時実行マシンサイクル数を実行マシンサイクル数情報格納部32から読み出す。レジスタライトアクセス情報生成部21は、上記命令に対するハザード無し時実行マシンサイクル数、ハザード有り時実行マシンサイクル数に基づいて、読み出し禁止期間として、上記レジスタの値が読み出される場合にパイプライン・ストールが発生するときのマシンサイクルを表すパイプライン・ストール・サイクル数を生成する。この場合、上記命令に対するハザード有り時実行マシンサイクル数から、上記命令に対するハザード無し時実行マシンサイクル数を減算して、パイプライン・ストール・サイクル数を生成する。レジスタライトアクセス情報生成部21は、命令処理部11からの上記レジスタ識別子、上記レジスタライトアクセス時間と、上記パイプライン・ストール・サイクル数(読み出し禁止期間)と、をレジスタライトアクセス情報記憶部31に記録(格納)する(ステップS3)。
一方、上記命令によりレジスタに値が書き込まれない場合、ステップS3は実行されない。
上記命令により上記レジスタの値が読み出された場合、実行サイクル数計測部13は、命令処理部11からの上記レジスタ識別子、上記命令の種類をデータハザード検出兼実行マシンサイクル数算出部22に出力する(ステップS4−YES)。
データハザード検出兼実行マシンサイクル数算出部22は、レジスタライトアクセス情報記憶部31を参照し、実行サイクル数計測部13からの上記レジスタ識別子に一致するレジスタ識別子を検索する。データハザード検出兼実行マシンサイクル数算出部22は、上記レジスタ識別子に対する上記レジスタライトアクセス時間、上記パイプライン・ストール・サイクル数をレジスタライトアクセス情報記憶部31から読み出す。データハザード検出兼実行マシンサイクル数算出部22は、上記パイプライン・ストール・サイクル数が0よりも大きいか否かを調べることにより、データハザードが発生するか否かを判定する。即ち、値が読み出された上記レジスタがデータハザードの対象になっているか否かを調べる(ステップS5)。
上記パイプライン・ストール・サイクル数が0よりも大きい場合、上記レジスタはデータハザードの対象である。この場合、データハザード検出兼実行マシンサイクル数算出部22は、データハザードが発生するものと判定する。即ち、レジスタがデータハザードの対象になっているものと判断する(ステップS5−YES)。
この場合、データハザード検出兼実行マシンサイクル数算出部22は、上記レジスタライトアクセス時間と上記パイプライン・ストール・サイクル数とに基づいて、データハザードにより実行が待たされる実行待ちサイクル数を算出する。この場合、上記レジスタライトアクセス時間を表すサイクル数と上記パイプライン・ストール・サイクル数とを加算して実行待ちサイクル数を生成する。データハザード検出兼実行マシンサイクル数算出部22は、実行マシンサイクル数情報格納部32を参照し、複数の命令の種類のうちの、実行サイクル数計測部13からの上記命令の種類に一致する命令を検索する。データハザード検出兼実行マシンサイクル数算出部22は、上記命令に対するハザード有り時実行マシンサイクル数を実行マシンサイクル数情報格納部32から読み出す。データハザード検出兼実行マシンサイクル数算出部22は、上記命令に対するハザード有り時実行マシンサイクル数に実行待ちサイクル数を加算し、実行マシンサイクル数(加算実行マシンサイクル数)を生成する(ステップS6)。
データハザード検出兼実行マシンサイクル数算出部22は、データハザードが発生した旨を表すデータハザード有り情報と、加算実行マシンサイクル数と、を実行サイクル数計測部13に出力する。実行サイクル数計測部13は、データハザード有り情報と加算実行マシンサイクル数とを含む実行結果60を出力先ファイルとして実行トレースログに出力する。この出力先ファイルは、出力装置3に出力される。同時に、実行サイクル数計測部13は、実行結果出力通知を命令処理部11に出力する(ステップS7)。
一方、上記命令が上記レジスタの値の読み出しを行っていない場合、実行サイクル数計測部13は、命令処理部11からの上記命令の種類をデータハザード検出兼実行マシンサイクル数算出部22に出力する(ステップS4−NO)。又は、上記パイプライン・ストール・サイクル数が0である場合、データハザード検出兼実行マシンサイクル数算出部22は、データハザードが発生していないものと判定する(ステップS5−NO)。
この場合、データハザード検出兼実行マシンサイクル数算出部22は、実行マシンサイクル数情報格納部32を参照し、複数の命令の種類のうちの、実行サイクル数計測部13からの上記命令の種類に一致する命令を検索する。データハザード検出兼実行マシンサイクル数算出部22は、上記命令に対するハザード無し時実行マシンサイクル数を実行マシンサイクル数情報格納部32から読み出す。データハザード検出兼実行マシンサイクル数算出部22は、データハザードが発生しない旨を表すデータハザード無し情報と、ハザード無し時実行マシンサイクル数と、を実行サイクル数計測部13に出力する。実行サイクル数計測部13は、データハザード無し情報とハザード無し時実行マシンサイクル数とを含む実行結果60を出力装置3に出力する。同時に、実行サイクル数計測部13は、実行結果出力通知を命令処理部11に出力する(ステップS9)。
解析対象プログラムに次の命令が存在する場合(ステップS8−NO)、命令処理部11は、実行結果出力通知に応じて、次の命令に応じた処理を実行する(ステップS1)。次の命令が存在しない場合(ステップS8−YES)、シミュレーションエンジン部7の動作が終了する。
[効果]
以上の説明により、本発明の実施形態によるシミュレーション装置4では、プロセッサの動作を模擬する際、命令実行部10は、プロセッサ上で実行可能な命令が与えられ、命令に応じた処理を実行する。実行マシンサイクル数情報格納部32には、複数の命令の種類と、複数の命令の各々に対して、データハザードが発生していないときに実行される第1実行マシンサイクル数と、データハザードが発生しているときに実行される第2実行マシンサイクル数と、が格納されている。命令によりレジスタに値が書き込まれた場合、レジスタライトアクセス情報生成部21は、命令に対する第1、2実行マシンサイクル数を実行マシンサイクル数情報格納部32から読み出し、それらに基づいて、読み出し禁止期間としてパイプライン・ストール・サイクル数を生成する。レジスタライトアクセス情報生成部21は、レジスタを識別するレジスタ識別子と、レジスタに値が書き込まれたときのレジスタライトアクセス時間と、パイプライン・ストール・サイクル数とをレジスタライトアクセス情報記憶部31に格納する。データハザード検出兼実行マシンサイクル数算出部22は、レジスタがデータハザードの対象になっている場合、レジスタライトアクセス情報記憶部31に格納されたレジスタライトアクセス時間及びパイプライン・ストール・サイクル数と、命令に対する第2実行マシンサイクル数と、に基づいて実行マシンサイクル数を算出する。
これにより、本発明の実施形態によるシミュレーション装置4によれば、ISSシミュレーション装置内にレジスタライトアクセス情報生成部21、レジスタライトアクセス情報記録部31、データハザード検出兼実行マシンサイクル数算出部22、実行マシンサイクル数情報格納部32を設けることにより、レジスタライトアクセス時間と、読み出し禁止期間(パイプライン・ストール・サイクル数)と、を記録しておくことができ、パイプライン・ステージを実装しなくても、データハザードの検出と、データハザードによる遅延を考慮した各命令の実行マシンサイクル数と、を決定(算出)することができる。
その結果、本発明の実施形態によるシミュレーション装置4によれば、データハザードによる遅延を考慮したモデルでプロセッサの動作を模擬することができる。このため、非特許文献1で挙げた問題点を解決することができる。
また、本発明の実施形態によるシミュレーション装置4によれば、パイプライン・ステージが設けられていないことにより、非特許文献2で挙げた問題点を解決し、シミュレーション速度の高速化を実現できる。
図1−1は、非特許文献1に記載された技術を説明するための図である。 図1−2は、非特許文献1に記載された技術を説明するための図である。 図1−3は、非特許文献1に記載された技術を説明するための図である。 図2は、非特許文献2に記載された技術を説明するための図であり、パイプライン・ステージの概略図である。 図3は、本発明の実施形態によるシミュレーション装置4の構成を示している。 図4は、シミュレーション装置4が動作する環境として、コンピュータの構成を示している。 図5は、シミュレーションエンジン部7の構成を示している。 図6は、シミュレーションエンジン部7の動作を示すフローチャートである。
符号の説明
1 コンピュータ本体、
2 入力装置、
3 出力装置、
4 シミュレーション装置、
5 ユーザインターフェース部、
6 命令データ格納部、
7 シミュレーションエンジン部(シミュレーションプログラム)、
10 命令実行部、
11 命令処理部、
13 実行サイクル数計測部、
21 レジスタライトアクセス情報生成部、
22 データハザード検出兼実行マシンサイクル数算出部、
31 レジスタライトアクセス情報記憶部、
32 実行マシンサイクル数情報格納部、
60 実行結果、

Claims (13)

  1. プロセッサの動作を模擬するシミュレーション装置であって、
    前記プロセッサ上で実行可能な命令が与えられ、前記命令に応じた処理を実行する命令実行部と、
    複数の命令の種類と、複数の命令の各々に対して、データハザードが発生していないときに実行される第1実行マシンサイクル数と、前記データハザードが発生しているときに実行される第2実行マシンサイクル数と、が格納された格納部と、
    記録部と、
    前記命令によりレジスタに値が書き込まれた場合、前記命令に対する前記第1、2実行マシンサイクル数を前記格納部から読み出し、それらに基づいて、読み出し禁止期間としてパイプライン・ストール・サイクル数を生成し、前記レジスタを識別するレジスタ識別子と、前記レジスタに値が書き込まれたときのレジスタライトアクセス時間と、前記パイプライン・ストール・サイクル数とを前記記録部に格納する生成部と、
    前記レジスタが前記データハザードの対象になっている場合、前記記録部に格納された前記レジスタライトアクセス時間及び前記パイプライン・ストール・サイクル数と、前記命令に対する前記第2実行マシンサイクル数と、に基づいて実行マシンサイクル数を算出する算出部と、
    を具備するシミュレーション装置。
  2. 前記第2実行マシンサイクル数は、前記第1実行マシンサイクル数と同じかそれよりも大きく、
    前記生成部は、前記命令に対する前記第2実行マシンサイクル数から、前記命令に対する前記第1実行マシンサイクル数を減算して、前記パイプライン・ストール・サイクル数を生成する、
    請求項1に記載のシミュレーション装置。
  3. 前記算出部は、前記パイプライン・ストール・サイクル数が0よりも大きい場合、前記記録部に格納された前記レジスタライトアクセス時間及び前記パイプライン・ストール・サイクル数と、前記命令に対する前記第2実行マシンサイクル数と、に基づいて前記実行マシンサイクル数を算出する、
    請求項2に記載のシミュレーション装置。
  4. 前記算出部は、前記レジスタが前記データハザードの対象になっている場合、前記記録部に格納された前記レジスタライトアクセス時間及び前記パイプライン・ストール・サイクル数に基づいて実行待ちサイクル数を生成し、前記命令に対する前記第2実行マシンサイクル数に前記実行待ちサイクル数を加算して前記実行マシンサイクル数を生成する、
    請求項1〜3のいずれかに記載のシミュレーション装置。
  5. 前記算出部は、前記レジスタが前記データハザードの対象になっている場合、前記レジスタライトアクセス時間を表すサイクル数と前記パイプライン・ストール・サイクル数とを加算して前記実行待ちサイクル数を生成し、前記命令に対する前記第2実行マシンサイクル数に前記実行待ちサイクル数を加算して前記実行マシンサイクル数を生成する、
    請求項4に記載のシミュレーション装置。
  6. 前記命令実行部は、前記レジスタが前記データハザードの対象になっている場合、前記データハザードが発生した旨を表すデータハザード有り情報と、前記実行マシンサイクル数と、を含む実行結果を出力する、
    請求項1〜5のいずれかに記載のシミュレーション装置。
  7. プロセッサの動作をコンピュータを用いて模擬するシミュレーション方法であって、
    前記プロセッサ上で実行可能な命令が与えられ、前記命令に応じた処理を実行するステップと、
    前記命令によりレジスタに値が書き込まれた場合、複数の命令の種類と、複数の命令の各々に対して、データハザードが発生していないときに実行される第1実行マシンサイクル数と、前記データハザードが発生しているときに実行される第2実行マシンサイクル数と、が格納された格納部を参照して、前記命令に対する前記第1、2実行マシンサイクル数を前記格納部から読み出すステップと、
    前記第1、2実行マシンサイクル数に基づいて、読み出し禁止期間としてパイプライン・ストール・サイクル数を生成するステップと、
    前記レジスタを識別するレジスタ識別子と、前記レジスタに値が書き込まれたときのレジスタライトアクセス時間と、前記パイプライン・ストール・サイクル数とを記録部に格納するステップと、
    前記レジスタが前記データハザードの対象になっている場合、前記記録部に格納された前記レジスタライトアクセス時間及び前記パイプライン・ストール・サイクル数と、前記命令に対する前記第2実行マシンサイクル数と、に基づいて実行マシンサイクル数を算出するステップと、
    を具備するシミュレーション方法。
  8. 前記第2実行マシンサイクル数は、前記第1実行マシンサイクル数と同じかそれよりも大きく、
    前記パイプライン・ストール・サイクル数を生成するステップは、前記命令に対する前記第2実行マシンサイクル数から、前記命令に対する前記第1実行マシンサイクル数を減算して、前記パイプライン・ストール・サイクル数を生成する、
    請求項7に記載のシミュレーション方法。
  9. 前記実行マシンサイクル数を算出するステップは、前記パイプライン・ストール・サイクル数が0よりも大きい場合、前記記録部に格納された前記レジスタライトアクセス時間及び前記パイプライン・ストール・サイクル数と、前記命令に対する前記第2実行マシンサイクル数と、に基づいて前記実行マシンサイクル数を算出する、
    請求項8に記載のシミュレーション方法。
  10. 前記実行マシンサイクル数を算出するステップは、前記レジスタが前記データハザードの対象になっている場合、
    前記記録部に格納された前記レジスタライトアクセス時間及び前記パイプライン・ストール・サイクル数に基づいて実行待ちサイクル数を生成するステップと、
    前記命令に対する前記第2実行マシンサイクル数に前記実行待ちサイクル数を加算して前記実行マシンサイクル数を生成するステップと、
    を更に含む請求項7〜9のいずれかに記載のシミュレーション方法。
  11. 前記実行待ちサイクル数を生成するステップは、
    前記レジスタが前記データハザードの対象になっている場合、前記レジスタライトアクセス時間を表すサイクル数と前記パイプライン・ストール・サイクル数とを加算して前記実行待ちサイクル数を生成する、
    請求項10に記載のシミュレーション方法。
  12. 前記レジスタが前記データハザードの対象になっている場合、前記データハザードが発生した旨を表すデータハザード有り情報と、前記実行マシンサイクル数と、を含む実行結果を出力するステップ、
    を更に具備する請求項7〜11のいずれかに記載のシミュレーション方法。
  13. 請求項7〜12のいずれかに記載のシミュレーション方法の各ステップをコンピュータに実行させるコンピュータプログラム。
JP2008251341A 2008-09-29 2008-09-29 シミュレーション装置及びシミュレーション方法 Expired - Fee Related JP5116624B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008251341A JP5116624B2 (ja) 2008-09-29 2008-09-29 シミュレーション装置及びシミュレーション方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008251341A JP5116624B2 (ja) 2008-09-29 2008-09-29 シミュレーション装置及びシミュレーション方法

Publications (2)

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

Family

ID=42249993

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008251341A Expired - Fee Related JP5116624B2 (ja) 2008-09-29 2008-09-29 シミュレーション装置及びシミュレーション方法

Country Status (1)

Country Link
JP (1) JP5116624B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013084178A (ja) * 2011-10-12 2013-05-09 Fujitsu Ltd シミュレーション装置,方法,およびプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11149489A (ja) * 1997-11-17 1999-06-02 Toshiba Corp シミュレーション装置
JPH11238001A (ja) * 1998-02-19 1999-08-31 Fujitsu Ltd プロセッサのシミュレータ及びシミュレーション方法
JP2001290857A (ja) * 2000-04-06 2001-10-19 Matsushita Electric Ind Co Ltd タイミングシミュレータ
JP2003323463A (ja) * 2002-04-26 2003-11-14 Toshiba Corp システムlsi開発環境生成方法及びそのプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11149489A (ja) * 1997-11-17 1999-06-02 Toshiba Corp シミュレーション装置
JPH11238001A (ja) * 1998-02-19 1999-08-31 Fujitsu Ltd プロセッサのシミュレータ及びシミュレーション方法
JP2001290857A (ja) * 2000-04-06 2001-10-19 Matsushita Electric Ind Co Ltd タイミングシミュレータ
JP2003323463A (ja) * 2002-04-26 2003-11-14 Toshiba Corp システムlsi開発環境生成方法及びそのプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013084178A (ja) * 2011-10-12 2013-05-09 Fujitsu Ltd シミュレーション装置,方法,およびプログラム

Also Published As

Publication number Publication date
JP5116624B2 (ja) 2013-01-09

Similar Documents

Publication Publication Date Title
Henderson et al. Decaf: A platform-neutral whole-system dynamic binary analysis platform
Nahir et al. Bridging pre-silicon verification and post-silicon validation
JP2006350686A (ja) 命令セット・シミュレータ生成装置及びシミュレータ生成方法
JP2008176453A (ja) シミュレーション装置
Dick et al. Measurement and Rating of Software-induced Energy Consumption of Desktop PCs and Servers.
US10824426B2 (en) Generating and verifying hardware instruction traces including memory data contents
Koliaï et al. Quantifying performance bottleneck cost through differential analysis
Wang et al. An approach to improve accuracy of source-level TLMs of embedded software
JP2014053010A (ja) 混合モードプログラムのソースコードエラー位置検出装置及び方法
JP5514211B2 (ja) 分岐オーバーライドを用いたプロセッサ実行のシミュレーション
Wang et al. Specification and verification of side-channel security for open-source processors via leakage contracts
Weaver et al. Are cycle accurate simulations a waste of time
Tollec et al. Exploration of fault effects on formal RISC-V microarchitecture models
Kodakara et al. Extracting effective functional tests from commercial programs
JP5116624B2 (ja) シミュレーション装置及びシミュレーション方法
Wagstaff et al. Automated ISA branch coverage analysis and test case generation for retargetable instruction set simulators
Duran et al. Simulation and formal: The best of both domains for instruction set verification of risc-v based processors
Mihajlović et al. Dynamically instrumenting the QEMU emulator for Linux process trace generation with the GDB debugger
US20110239197A1 (en) Instance-based field affinity optimization
US20110218794A1 (en) Concretization of abstracted traces
US20070089102A1 (en) System and method for analyzing software performance without requiring hardware
JP2008146426A (ja) 模擬ソースプログラム生成プログラム及び装置、並びに情報処理方法
Letychevskyi et al. Fuzz Testing Technique and its Use in Cybersecurity Tasks
Li et al. BTBench: A Benchmark for Comprehensive Binary Translation Performance Evaluation
JP3688479B2 (ja) 故障シミュレーション装置、故障シミュレーション方法及びそのシミュレーションプログラムを記録したコンピュータ読み取り可能な記録媒体

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