JPH06202903A - Cpuシミュレーション方法およびcpuシミュレータ - Google Patents

Cpuシミュレーション方法およびcpuシミュレータ

Info

Publication number
JPH06202903A
JPH06202903A JP4360495A JP36049592A JPH06202903A JP H06202903 A JPH06202903 A JP H06202903A JP 4360495 A JP4360495 A JP 4360495A JP 36049592 A JP36049592 A JP 36049592A JP H06202903 A JPH06202903 A JP H06202903A
Authority
JP
Japan
Prior art keywords
cpu
program
instruction code
target
simulation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP4360495A
Other languages
English (en)
Inventor
Naoki Sato
直樹 佐藤
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 Corp
Original Assignee
NEC 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 Corp filed Critical NEC Corp
Priority to JP4360495A priority Critical patent/JPH06202903A/ja
Publication of JPH06202903A publication Critical patent/JPH06202903A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

(57)【要約】 【構成】 CPUシミュレータ1の変換手段10は、ター
ゲットCPU用に開発されたターゲットプログラム2の
マシン語レベルの各命令コード2-1 〜2-n を解釈して、
各命令コード2-1 〜2-n の果たす機能と等価な機能を実
現するホストCPU12のアセンブラ言語レベルまたはマ
シン語レベルの命令コード13-1〜13-nの組み合わせで表
現されたシミュレーションプログラム13を生成し、メモ
リ11に格納する。ホストCPU12はシミュレーションプ
ログラム13を実行することによりターゲットプログラム
2のシミュレーションを行う。 【効果】 ターゲットプログラムのマシン語レベルの命
令コードの解釈,ホストCPUの命令コードへの変換を
前段階でまとめて行うので、シミュレーション実行時に
ターゲットプログラムのマシン語レベルの命令の解釈が
不要になり、その分、高速なシミュレーションが可能に
なる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ターゲットCPU上で
実行されるプログラムをホストCPU上でシミュレート
する技術に関する。
【0002】
【従来の技術】ターゲットCPUを含むターゲットマシ
ンの完成前に、或いはターゲットマシン上でのデバッ
グ,性能評価前に、ターゲットCPU用に開発されたプ
ログラム(ターゲットプログラムと称す)をデバッグし
たり、性能評価を行う方法として、ターゲットCPUと
は別のCPUであるホストCPUを含むCPUシミュレ
ータ上でターゲットプログラムをシミュレートする方法
があり、その方法は、ターゲットCPU用のソースプロ
グラムを逐次解釈実行するインタプリタ方式と、ターゲ
ットCPU用のマシン語コードを逐次解釈実行するオブ
ジェクトシミュレーション方式とに大別される(例え
ば、社団法人電子情報通信学会ハンドブック委員会編
集,株式会社オーム社昭和63年3月30日発行,第1
版「電子情報通信ハンドブック第2分冊」1857頁,
5・3「シミュレータ」参照)。
【0003】ここで、インタプリタ方式は、ターゲット
CPU用の原始プログラム(ソースプログラム)を直接
にインタプリートしつつシミュレートするものであり、
オブジェクトシミュレーション方式は、シミュレートに
先立ってターゲットプログラムの原始プログラム(ソー
スプログラム)をコンパイルまたはアセンブルしてター
ゲットCPUのマシン語レベルの命令コードに変換し、
この命令コードをシミュレートするものである。
【0004】オブジェクトシミュレーション方式は、タ
ーゲットCPUのマシン語レベルの命令生成のための時
間がかかるが、シミュレートの実行時間はインタプリタ
方式に比べて速くなるため、短いシミュレート時間を要
求される場合にはオブジェクトシミュレーション方式が
用いられる。なお、ターゲットプログラムがマシン語レ
ベルで既に存在する場合には、コンパイルまたはアセン
ブルが不要であることは勿論のことである。
【0005】そして、オブジェクトシミュレーション方
式のCPUシミュレータにおいては、例えば特開平2−
250122号公報に見られるように、ターゲットCP
Uの命令コードをホストCPU上で実行時に1命令ずつ
解釈しながらシミュレートを進めていた。
【0006】
【発明が解決しようとする課題】このようにオブジェク
トシミュレーション方式のCPUシミュレータはインタ
プリタ方式のものに比べてシミュレーション速度の点で
優れているが、従来のようにターゲットCPUの命令コ
ードをホストCPU上で実行時に1命令ずつ解釈する構
成では、その解釈のために要する時間がシミュレーショ
ン時のオーバヘッドとなる。
【0007】本発明はこのような事情に鑑みて提案され
たもので、その目的は、シミュレーション実行時におけ
るターゲットCPUの命令コードの解釈を不要にするこ
とにより高速なシミュレーションを可能にすることにあ
る。
【0008】
【課題を解決するための手段】本発明のCPUシミュレ
ータは上記の目的を達成するために、ターゲットCPU
用に開発されたターゲットプログラムをホストCPU上
でシミュレートするCPUシミュレータにおいて、前記
ターゲットプログラムのマシン語レベルの命令コードを
解釈し、各命令コードの果たす機能と等価な機能を実現
する前記ホストCPUのアセンブラ言語レベルまたはマ
シン語レベルの命令コードの組み合わせで表現されたシ
ミュレーションプログラムを生成する変換手段を備え、
該変換手段により生成されたシミュレーションプログラ
ムを前記ホストCPUが実行する構成を採用している。
【0009】
【作用】本発明のCPUシミュレータにおいては、変換
手段が、シミュレーションの実行に先立ち、ターゲット
プログラムのマシン語レベルの命令コードをまとめて解
釈し、各命令コードの果たす機能と等価な機能を実現す
るホストCPUのアセンブラ言語レベルまたはマシン語
レベルの命令コードの組み合わせで表現されたシミュレ
ーションプログラムを生成し、ホストCPUがこの生成
されたシミュレーションプログラムを実行する。
【0010】
【実施例】次に本発明の実施例について図面を参照して
詳細に説明する。
【0011】図1を参照すると、本発明を適用したCP
Uシミュレータ1の一実施例は、ターゲットプログラム
2をシミュレーションプログラム13に変換する変換手
段10と、シミュレーションプログラム13を格納する
メモリ11と、シミュレーションプログラム13を実行
するホストCPU12とを含んでいる。
【0012】ターゲットプログラム2は、ターゲットC
PU(図示せず。以下同じ)用に開発されたプログラム
であり、ターゲットCPUのマシン語レベルの命令コー
ド2−1〜2−nで構成されている。
【0013】CPUシミュレータ1は、ターゲットプロ
グラム2のシミュレーションを実行する場合、シミュレ
ーションの実行に先立って変換手段10を起動する。
【0014】変換手段10は、ターゲットプログラム2
の各命令コード2−1〜2−nを順次読み込んで解釈
し、各命令コード2−1〜2−nを、それと機能的に等
価なホストCPU12のアセンブラ言語レベルまたはマ
シン語レベルの命令コードの組み合わせに変換し、シミ
ュレーションプログラム13を生成する。図示の場合、
変換手段10は、命令コード2−1,2−2,…,2−
nをそれと機能的に等価なホストCPU12のアセンブ
ラ言語レベルまたはマシン語レベルの命令コード13−
1,13−2,13−nに変換しており、それらの集合
をシミュレーションプログラム13としてメモリ11に
格納している。
【0015】CPUシミュレータ1は、変換手段10に
よってメモリ11上にシミュレーションプログラム13
が生成されると、シミュレーションプログラム13がマ
シン語レベルで生成されているときは、ホストCPU1
2上でシミュレーションプログラム13を実行すること
によりシミュレーションを開始する。このとき、シミュ
レーションプログラム13の各命令コード13−1〜1
3−nはホストCPU12のマシン語レベルの命令コー
ドなので、通常のプログラムと同様に実行することが可
能である。
【0016】また、シミュレーションプログラム13が
アセンブラ言語レベルで生成されているときは、これを
アセンブルしてマシン語レベルのシミュレーションプロ
グラムを生成し、これをホストCPU12上で実行する
ことによりシミュレーションを開始する。
【0017】図2は変換手段10の構成例を示す機能ブ
ロック図であり、命令コード読み込み部101と命令解
釈部102と命令変換部103と出力部104とで構成
されている。
【0018】命令コード読み込み部101は、図示しな
いメモリやファイル等に格納された図1のターゲットプ
ログラム2をその先頭から順次1命令コードずつ読み込
んで命令解釈部102に伝達する。
【0019】命令解釈部102は、命令コード読み込み
部101から伝達された命令コード即ちターゲットCP
U用のマシン語レベルの命令コードがどのような命令な
のかを解釈し、命令の種類,使用されるレジスタ,アク
セスされるメモリ等を判別し、その判別結果を命令変換
部103に伝達する。
【0020】命令変換部103は、命令解釈部102か
ら伝達された判別結果に基づき、当該ターゲットCPU
のマシン語レベルの命令コードと等価な機能を実現する
ホストCPU12のアセンブラ言語レベルまたはマシン
語レベルの命令コードを生成する。
【0021】例えば、ターゲットCPUがインテル社の
16ビットプロセッサ8086であり、ホストCPU1
2がMIPS社の32ビットプロセッサR3000であ
る場合、命令変換部103は8086の命令コードをR
3000の命令コードに変換することになる。この場
合、1命令が何命令に変換されるかは、命令によって異
なり、R3000に8086と同じ動作をする命令があ
る場合は変換後も1命令になり、同じ動作をする命令が
ない場合には複数命令に変換される。
【0022】図3に8086の命令コードの例とその変
換後のR3000の命令コードの例とを示す。同図にお
いて、(a)は8086の1命令コードがR3000の
1命令コードに変換される例を、(b)は8086の1
命令コードがR3000の複数の命令コードの列に変換
される例を、それぞれ示している。なお、図3において
は、説明の便宜上、マシン語レベルではなく、アセンブ
ラ表記を使用している。
【0023】さて、命令変換部103は、ホストCPU
12のアセンブラ言語レベルまたはマシン語レベルの命
令コードを生成すると、生成した命令コードを出力部1
04に伝達し、出力部104は、これを図1のメモリ1
1に順次格納する。
【0024】このとき命令変換部103は、今回のター
ゲットCPUの命令コードのターゲットCPU上でのア
ドレスと今回生成したホストCPU12の命令コードの
ホストCPU12上でのアドレス(1命令コードのとき
はそのアドレス,複数の命令コードが生成されたときは
先頭の命令コードのアドレス)との関係を内部のアドレ
ス対応表103−1に登録する。
【0025】このアドレス対応表103−1は分岐命令
コードの変換時に参照される。即ち、命令変換部103
はターゲットCPUの命令コードがアドレスXに分岐す
る分岐命令コードであった場合、アドレスXが変換後の
ホストCPU12上ではどのアドレスに相当するかをア
ドレス対応表103−1を調べることにより取得し、変
換後のホストCPU12の分岐命令コードにおける分岐
先アドレスにこの取得したアドレスを設定する。
【0026】但し、今回の分岐命令コードが未だ処理し
ていない後続の命令コードへ分岐する命令であった場
合、アドレス対応表103−1にはその部分のアドレス
対応関係が未だ登録されていない。この場合は、ダミー
の分岐先アドレスを設定したホストCPU12の分岐命
令コードを内部の変換結果一時記憶手段103−2に記
憶すると共にアドレス対応表103−1に今回の分岐先
コード間のアドレス関係を登録し、次いでその分岐先ア
ドレスを確定し得る命令コードが現れるまで、後続のタ
ーゲットCPUの命令コードのホストCPU12の命令
コードへの変換,その変換結果の変換結果一時記憶手段
103−2への格納およびアドレス対応表103−1へ
のアドレス関係の登録を行い、分岐先アドレスが確定し
た時点で、上記ダミーの分岐命令コードの分岐先アドレ
スを正しいアドレスに変更し、この正しい分岐命令コー
ドと変換結果一時記憶手段103−2に蓄えられ後続の
命令コードとをまとめて出力部104に送ってメモリ1
1に出力する。
【0027】以上本発明の実施例について説明したが、
本発明は以上の実施例にのみ限定されずその他各種の付
加変更が可能である。例えば、図1の実施例では変換手
段10をホストCPU12とは別に備えるようにした
が、ホストCPU12の機能で変換手段10を実現する
ようにしても良い。
【0028】
【発明の効果】以上説明したように、本発明は、ターゲ
ットCPU用に開発されたターゲットプログラムのマシ
ン語レベルの命令コードを予め解釈して各命令コードの
果たす機能と等価な機能を実現するホストCPUのアセ
ンブラ言語レベルまたはマシン語レベルの命令コードの
組み合わせで表現されたシミュレーションプログラムを
生成しておき、この生成されたシミュレーションプログ
ラムをホストCPUが実行することにより、ターゲット
プログラムのシミュレーションを行うので、シミュレー
ション実行時におけるターゲットCPUの命令コードの
解釈が不要になり、その分、高速なシミュレーションが
可能になる。
【図面の簡単な説明】
【図1】本発明を適用したCPUシミュレータの一実施
例の機能ブロック図である。
【図2】変換手段の構成例を示す機能ブロック図であ
る。
【図3】ターゲットCPUの命令コードと変換後のホス
トCPUの命令コードとの関係の例を示す図である。
【符号の説明】
1…CPUシミュレータ 10…変換手段 11…メモリ 12…ホストCPU 13…シミュレーションプログラム 13−1〜13−n…ホストCPUのアセンブラ言語レ
ベルまたはマシン語レベルの命令コード 2…ターゲットプログラム 2−1〜2−n…ターゲットCPUのマシン語レベルの
命令コード

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 ターゲットCPU用に開発されたターゲ
    ットプログラムをホストCPU上でシミュレートするC
    PUシミュレーション方法において、 前記ターゲットプログラムのマシン語レベルの命令コー
    ドを解釈し、各命令コードの果たす機能と等価な機能を
    実現する前記ホストCPUのアセンブラ言語レベルまた
    はマシン語レベルの命令コードの組み合わせで表現され
    たシミュレーションプログラムを生成し、 該生成されたシミュレーションプログラムを前記ホスト
    CPUで実行することにより、前記ターゲットプログラ
    ムのシミュレーションを行うことを特徴とするCPUシ
    ミュレーション方法。
  2. 【請求項2】 ターゲットCPU用に開発されたターゲ
    ットプログラムをホストCPU上でシミュレートするC
    PUシミュレータにおいて、 前記ターゲットプログラムのマシン語レベルの命令コー
    ドを解釈し、各命令コードの果たす機能と等価な機能を
    実現する前記ホストCPUのアセンブラ言語レベルまた
    はマシン語レベルの命令コードの組み合わせで表現され
    たシミュレーションプログラムを生成する変換手段を備
    え、 該変換手段により生成されたシミュレーションプログラ
    ムを前記ホストCPUが実行する構成を有することを特
    徴とするCPUシミュレータ。
JP4360495A 1992-12-29 1992-12-29 Cpuシミュレーション方法およびcpuシミュレータ Pending JPH06202903A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4360495A JPH06202903A (ja) 1992-12-29 1992-12-29 Cpuシミュレーション方法およびcpuシミュレータ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4360495A JPH06202903A (ja) 1992-12-29 1992-12-29 Cpuシミュレーション方法およびcpuシミュレータ

Publications (1)

Publication Number Publication Date
JPH06202903A true JPH06202903A (ja) 1994-07-22

Family

ID=18469651

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4360495A Pending JPH06202903A (ja) 1992-12-29 1992-12-29 Cpuシミュレーション方法およびcpuシミュレータ

Country Status (1)

Country Link
JP (1) JPH06202903A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008276735A (ja) * 2007-04-03 2008-11-13 Toshiba Corp プログラムコード変換装置及びプログラムコード変換方法
JP2011515750A (ja) * 2008-03-17 2011-05-19 中国科学院▲計▼算技▲術▼研究所 X86の仮想機をサポートするriscプロセッサ装置及び方法
JP2020523693A (ja) * 2017-06-12 2020-08-06 株式会社ソニー・インタラクティブエンタテインメント Jitコンパイラを使用しかつ選択されたターゲットコードブロックの変換をバイパスするターゲットシステムのエミュレーション

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH025139A (ja) * 1988-02-01 1990-01-10 Internatl Business Mach Corp <Ibm> シミユレーシヨン方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH025139A (ja) * 1988-02-01 1990-01-10 Internatl Business Mach Corp <Ibm> シミユレーシヨン方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008276735A (ja) * 2007-04-03 2008-11-13 Toshiba Corp プログラムコード変換装置及びプログラムコード変換方法
JP2011515750A (ja) * 2008-03-17 2011-05-19 中国科学院▲計▼算技▲術▼研究所 X86の仮想機をサポートするriscプロセッサ装置及び方法
US8949580B2 (en) 2008-03-17 2015-02-03 Longsoon Technology Corporation Limited RISC processor apparatus and method for supporting X86 virtual machine
JP2020523693A (ja) * 2017-06-12 2020-08-06 株式会社ソニー・インタラクティブエンタテインメント Jitコンパイラを使用しかつ選択されたターゲットコードブロックの変換をバイパスするターゲットシステムのエミュレーション

Similar Documents

Publication Publication Date Title
JP2002527815A (ja) プログラムコード変換方法
JPH11513512A (ja) ディジタル信号プロセッサの製造方法
US7085964B2 (en) Dynamic test program generator for VLIW simulation
JPH06202903A (ja) Cpuシミュレーション方法およびcpuシミュレータ
KR0125605B1 (ko) 프로그램의 아키덱쳐 변환방법 및 장치와 그 방법 및 장치를 사용하여 프로그램의 동작을 검증하는 방법 및 장치
US6086624A (en) Simulator and simulation method in each of which simulation can be carried out at a high-speed
JPH08305583A (ja) Cpuシミュレーション方法
US7219335B1 (en) Method and apparatus for stack emulation during binary translation
JP2591418B2 (ja) Cpuシミュレータ
JP2788839B2 (ja) Cpuシミュレータ
US20040064301A1 (en) Software development system, simulator, and recording medium
JP2943590B2 (ja) インタプリタ型シミュレーション方法
JP3381253B2 (ja) シミュレーション装置
JPH11242598A (ja) コンパイル方法およびコンパイル装置ならびにオブジェクトプログラム実行方法およびオブジェクトプログラム実行装置ならびにプログラム記憶媒体
JPH09171467A (ja) エミュレーション装置及びその方法
JP2001075831A (ja) プログラム処理装置、ic試験システム、プログラム処理方法及び記憶媒体
JPH05224946A (ja) 入出力並び最適化処理方式
JP2800742B2 (ja) 回路図生成装置
JPH01209542A (ja) 論理検証装置
JPS61196338A (ja) デバツク情報出力の範囲指定装置
JPH0619743A (ja) コンピュータソフトウエア開発装置
JPS58169637A (ja) コンパイル処理方式
JPH0588908A (ja) クロスコンパイラのオブジエクト出力方式
JP2001344113A (ja) 実行時コンパイラシステム及び実行時コンパイル方法
JPH1091656A (ja) 遅延シミュレーション方式

Legal Events

Date Code Title Description
FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080131

Year of fee payment: 5

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

Year of fee payment: 6

Free format text: PAYMENT UNTIL: 20090131

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

Free format text: PAYMENT UNTIL: 20100131

Year of fee payment: 7

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

Year of fee payment: 8

Free format text: PAYMENT UNTIL: 20110131

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

Free format text: PAYMENT UNTIL: 20110131

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20120131

Year of fee payment: 9

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

Year of fee payment: 9

Free format text: PAYMENT UNTIL: 20120131

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

Free format text: PAYMENT UNTIL: 20130131

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20140131

Year of fee payment: 11