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
Links
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
ゲットCPU用に開発されたターゲットプログラム2の
マシン語レベルの各命令コード2-1 〜2-n を解釈して、
各命令コード2-1 〜2-n の果たす機能と等価な機能を実
現するホストCPU12のアセンブラ言語レベルまたはマ
シン語レベルの命令コード13-1〜13-nの組み合わせで表
現されたシミュレーションプログラム13を生成し、メモ
リ11に格納する。ホストCPU12はシミュレーションプ
ログラム13を実行することによりターゲットプログラム
2のシミュレーションを行う。 【効果】 ターゲットプログラムのマシン語レベルの命
令コードの解釈,ホストCPUの命令コードへの変換を
前段階でまとめて行うので、シミュレーション実行時に
ターゲットプログラムのマシン語レベルの命令の解釈が
不要になり、その分、高速なシミュレーションが可能に
なる。
Description
実行されるプログラムをホストCPU上でシミュレート
する技術に関する。
ンの完成前に、或いはターゲットマシン上でのデバッ
グ,性能評価前に、ターゲットCPU用に開発されたプ
ログラム(ターゲットプログラムと称す)をデバッグし
たり、性能評価を行う方法として、ターゲットCPUと
は別のCPUであるホストCPUを含むCPUシミュレ
ータ上でターゲットプログラムをシミュレートする方法
があり、その方法は、ターゲットCPU用のソースプロ
グラムを逐次解釈実行するインタプリタ方式と、ターゲ
ットCPU用のマシン語コードを逐次解釈実行するオブ
ジェクトシミュレーション方式とに大別される(例え
ば、社団法人電子情報通信学会ハンドブック委員会編
集,株式会社オーム社昭和63年3月30日発行,第1
版「電子情報通信ハンドブック第2分冊」1857頁,
5・3「シミュレータ」参照)。
CPU用の原始プログラム(ソースプログラム)を直接
にインタプリートしつつシミュレートするものであり、
オブジェクトシミュレーション方式は、シミュレートに
先立ってターゲットプログラムの原始プログラム(ソー
スプログラム)をコンパイルまたはアセンブルしてター
ゲットCPUのマシン語レベルの命令コードに変換し、
この命令コードをシミュレートするものである。
ーゲットCPUのマシン語レベルの命令生成のための時
間がかかるが、シミュレートの実行時間はインタプリタ
方式に比べて速くなるため、短いシミュレート時間を要
求される場合にはオブジェクトシミュレーション方式が
用いられる。なお、ターゲットプログラムがマシン語レ
ベルで既に存在する場合には、コンパイルまたはアセン
ブルが不要であることは勿論のことである。
式のCPUシミュレータにおいては、例えば特開平2−
250122号公報に見られるように、ターゲットCP
Uの命令コードをホストCPU上で実行時に1命令ずつ
解釈しながらシミュレートを進めていた。
トシミュレーション方式のCPUシミュレータはインタ
プリタ方式のものに比べてシミュレーション速度の点で
優れているが、従来のようにターゲットCPUの命令コ
ードをホストCPU上で実行時に1命令ずつ解釈する構
成では、その解釈のために要する時間がシミュレーショ
ン時のオーバヘッドとなる。
たもので、その目的は、シミュレーション実行時におけ
るターゲットCPUの命令コードの解釈を不要にするこ
とにより高速なシミュレーションを可能にすることにあ
る。
ータは上記の目的を達成するために、ターゲットCPU
用に開発されたターゲットプログラムをホストCPU上
でシミュレートするCPUシミュレータにおいて、前記
ターゲットプログラムのマシン語レベルの命令コードを
解釈し、各命令コードの果たす機能と等価な機能を実現
する前記ホストCPUのアセンブラ言語レベルまたはマ
シン語レベルの命令コードの組み合わせで表現されたシ
ミュレーションプログラムを生成する変換手段を備え、
該変換手段により生成されたシミュレーションプログラ
ムを前記ホストCPUが実行する構成を採用している。
手段が、シミュレーションの実行に先立ち、ターゲット
プログラムのマシン語レベルの命令コードをまとめて解
釈し、各命令コードの果たす機能と等価な機能を実現す
るホストCPUのアセンブラ言語レベルまたはマシン語
レベルの命令コードの組み合わせで表現されたシミュレ
ーションプログラムを生成し、ホストCPUがこの生成
されたシミュレーションプログラムを実行する。
詳細に説明する。
Uシミュレータ1の一実施例は、ターゲットプログラム
2をシミュレーションプログラム13に変換する変換手
段10と、シミュレーションプログラム13を格納する
メモリ11と、シミュレーションプログラム13を実行
するホストCPU12とを含んでいる。
PU(図示せず。以下同じ)用に開発されたプログラム
であり、ターゲットCPUのマシン語レベルの命令コー
ド2−1〜2−nで構成されている。
グラム2のシミュレーションを実行する場合、シミュレ
ーションの実行に先立って変換手段10を起動する。
の各命令コード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に
格納している。
よってメモリ11上にシミュレーションプログラム13
が生成されると、シミュレーションプログラム13がマ
シン語レベルで生成されているときは、ホストCPU1
2上でシミュレーションプログラム13を実行すること
によりシミュレーションを開始する。このとき、シミュ
レーションプログラム13の各命令コード13−1〜1
3−nはホストCPU12のマシン語レベルの命令コー
ドなので、通常のプログラムと同様に実行することが可
能である。
アセンブラ言語レベルで生成されているときは、これを
アセンブルしてマシン語レベルのシミュレーションプロ
グラムを生成し、これをホストCPU12上で実行する
ことによりシミュレーションを開始する。
ロック図であり、命令コード読み込み部101と命令解
釈部102と命令変換部103と出力部104とで構成
されている。
いメモリやファイル等に格納された図1のターゲットプ
ログラム2をその先頭から順次1命令コードずつ読み込
んで命令解釈部102に伝達する。
部101から伝達された命令コード即ちターゲットCP
U用のマシン語レベルの命令コードがどのような命令な
のかを解釈し、命令の種類,使用されるレジスタ,アク
セスされるメモリ等を判別し、その判別結果を命令変換
部103に伝達する。
ら伝達された判別結果に基づき、当該ターゲットCPU
のマシン語レベルの命令コードと等価な機能を実現する
ホストCPU12のアセンブラ言語レベルまたはマシン
語レベルの命令コードを生成する。
16ビットプロセッサ8086であり、ホストCPU1
2がMIPS社の32ビットプロセッサR3000であ
る場合、命令変換部103は8086の命令コードをR
3000の命令コードに変換することになる。この場
合、1命令が何命令に変換されるかは、命令によって異
なり、R3000に8086と同じ動作をする命令があ
る場合は変換後も1命令になり、同じ動作をする命令が
ない場合には複数命令に変換される。
換後のR3000の命令コードの例とを示す。同図にお
いて、(a)は8086の1命令コードがR3000の
1命令コードに変換される例を、(b)は8086の1
命令コードがR3000の複数の命令コードの列に変換
される例を、それぞれ示している。なお、図3において
は、説明の便宜上、マシン語レベルではなく、アセンブ
ラ表記を使用している。
12のアセンブラ言語レベルまたはマシン語レベルの命
令コードを生成すると、生成した命令コードを出力部1
04に伝達し、出力部104は、これを図1のメモリ1
1に順次格納する。
ゲットCPUの命令コードのターゲットCPU上でのア
ドレスと今回生成したホストCPU12の命令コードの
ホストCPU12上でのアドレス(1命令コードのとき
はそのアドレス,複数の命令コードが生成されたときは
先頭の命令コードのアドレス)との関係を内部のアドレ
ス対応表103−1に登録する。
コードの変換時に参照される。即ち、命令変換部103
はターゲットCPUの命令コードがアドレスXに分岐す
る分岐命令コードであった場合、アドレスXが変換後の
ホストCPU12上ではどのアドレスに相当するかをア
ドレス対応表103−1を調べることにより取得し、変
換後のホストCPU12の分岐命令コードにおける分岐
先アドレスにこの取得したアドレスを設定する。
ていない後続の命令コードへ分岐する命令であった場
合、アドレス対応表103−1にはその部分のアドレス
対応関係が未だ登録されていない。この場合は、ダミー
の分岐先アドレスを設定したホストCPU12の分岐命
令コードを内部の変換結果一時記憶手段103−2に記
憶すると共にアドレス対応表103−1に今回の分岐先
コード間のアドレス関係を登録し、次いでその分岐先ア
ドレスを確定し得る命令コードが現れるまで、後続のタ
ーゲットCPUの命令コードのホストCPU12の命令
コードへの変換,その変換結果の変換結果一時記憶手段
103−2への格納およびアドレス対応表103−1へ
のアドレス関係の登録を行い、分岐先アドレスが確定し
た時点で、上記ダミーの分岐命令コードの分岐先アドレ
スを正しいアドレスに変更し、この正しい分岐命令コー
ドと変換結果一時記憶手段103−2に蓄えられ後続の
命令コードとをまとめて出力部104に送ってメモリ1
1に出力する。
本発明は以上の実施例にのみ限定されずその他各種の付
加変更が可能である。例えば、図1の実施例では変換手
段10をホストCPU12とは別に備えるようにした
が、ホストCPU12の機能で変換手段10を実現する
ようにしても良い。
ットCPU用に開発されたターゲットプログラムのマシ
ン語レベルの命令コードを予め解釈して各命令コードの
果たす機能と等価な機能を実現するホストCPUのアセ
ンブラ言語レベルまたはマシン語レベルの命令コードの
組み合わせで表現されたシミュレーションプログラムを
生成しておき、この生成されたシミュレーションプログ
ラムをホストCPUが実行することにより、ターゲット
プログラムのシミュレーションを行うので、シミュレー
ション実行時におけるターゲットCPUの命令コードの
解釈が不要になり、その分、高速なシミュレーションが
可能になる。
例の機能ブロック図である。
る。
トCPUの命令コードとの関係の例を示す図である。
ベルまたはマシン語レベルの命令コード 2…ターゲットプログラム 2−1〜2−n…ターゲットCPUのマシン語レベルの
命令コード
Claims (2)
- 【請求項1】 ターゲットCPU用に開発されたターゲ
ットプログラムをホストCPU上でシミュレートするC
PUシミュレーション方法において、 前記ターゲットプログラムのマシン語レベルの命令コー
ドを解釈し、各命令コードの果たす機能と等価な機能を
実現する前記ホストCPUのアセンブラ言語レベルまた
はマシン語レベルの命令コードの組み合わせで表現され
たシミュレーションプログラムを生成し、 該生成されたシミュレーションプログラムを前記ホスト
CPUで実行することにより、前記ターゲットプログラ
ムのシミュレーションを行うことを特徴とするCPUシ
ミュレーション方法。 - 【請求項2】 ターゲットCPU用に開発されたターゲ
ットプログラムをホストCPU上でシミュレートするC
PUシミュレータにおいて、 前記ターゲットプログラムのマシン語レベルの命令コー
ドを解釈し、各命令コードの果たす機能と等価な機能を
実現する前記ホストCPUのアセンブラ言語レベルまた
はマシン語レベルの命令コードの組み合わせで表現され
たシミュレーションプログラムを生成する変換手段を備
え、 該変換手段により生成されたシミュレーションプログラ
ムを前記ホストCPUが実行する構成を有することを特
徴とするCPUシミュレータ。
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH025139A (ja) * | 1988-02-01 | 1990-01-10 | Internatl Business Mach Corp <Ibm> | シミユレーシヨン方法 |
-
1992
- 1992-12-29 JP JP4360495A patent/JPH06202903A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH025139A (ja) * | 1988-02-01 | 1990-01-10 | Internatl Business Mach Corp <Ibm> | シミユレーシヨン方法 |
Cited By (4)
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 |