JPH08123697A - エミュレーション高速化方式 - Google Patents

エミュレーション高速化方式

Info

Publication number
JPH08123697A
JPH08123697A JP28447094A JP28447094A JPH08123697A JP H08123697 A JPH08123697 A JP H08123697A JP 28447094 A JP28447094 A JP 28447094A JP 28447094 A JP28447094 A JP 28447094A JP H08123697 A JPH08123697 A JP H08123697A
Authority
JP
Japan
Prior art keywords
instruction code
language instruction
machine language
address
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.)
Pending
Application number
JP28447094A
Other languages
English (en)
Inventor
Kazuhito Suda
和仁 酢田
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 JP28447094A priority Critical patent/JPH08123697A/ja
Publication of JPH08123697A publication Critical patent/JPH08123697A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【目的】 ループ構造を持つエミュレーション対象プロ
グラムを高速にエミュレーションできるようにする。 【構成】 アドレス検索手段23はアドレス/機械語命
令コード格納テーブル3にエミュレーション対象プログ
ラム1の実行アドレスが登録されているかを検索し、機
械語命令コード取出し手段24はアドレスが検索されな
かったときにプログラム1から、アドレスが検索された
ときにテーブル3から機械語命令コードを取り出す。機
械語命令コード変換手段25はプログラム1から取り出
された命令コードをホストマシンの機械語命令コードに
変換し、アドレス/機械語命令コード保存手段26は変
換された命令コードをアドレスとともにテーブル3に保
存する。機械語命令コード実行手段27は機械語命令コ
ード変換手段25により変換された命令コードまたはテ
ーブル3から取り出された命令コードを実行する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はエミュレーション方式に
関し、特にエミュレーション対象プログラムを高速にエ
ミュレーションするエミュレーション高速化方式に関す
る。
【0002】
【従来の技術】従来のエミュレーション方式では、エミ
ュレートされるコンピュータ(以下、ターゲットマシン
という)の機械語命令コードで作成されているエミュレ
ーション対象プログラムを、エミュレートするコンピュ
ータ(以下、ホストマシンという)上でエミュレータと
呼ばれるソフトウェアにより1機械語命令コードごとに
解析してホストマシンの機械語命令コードに変換し実行
していく手法がとられている(エミュレーション方式に
ついては、例えば特開昭60−167037号公報等を
参照)。
【0003】特に、従来のエミュレーション方式では、
ループ構造を持つエミュレーション対象プログラムの場
合でも、エミュレーション対象プログラムの同じアドレ
スにある機械語命令コードは1回目の実行のときに解析
されてホストマシンの機械語命令コードに変換されたに
もかかわらず、ループ制御により2回目以降の実行のと
きにも同様に解析されてホストマシンの機械語命令コー
ドに変換された後に実行されていた。
【0004】
【発明が解決しようとする課題】上述した従来のエミュ
レーション方式では、ループ構造を持つエミュレーショ
ン対象プログラムの場合でも、エミュレーション対象プ
ログラムの同じアドレスにある機械語命令コードが2回
目以降の実行のときも1回目の実行のときと同様に解析
されホストマシンの機械語命令コードに変換されて実行
されていたので、機械語命令コードを解析する過程にお
いて多大なソフトウェアオーバーヘッドが加わり、エミ
ュレーション対象プログラムを高速に実行することがで
きないという問題点があった。
【0005】また、エミュレーション対象プログラムを
エミュレートするホストマシンの負荷も大きくなるとい
う問題点があった。
【0006】本発明の目的は、上述の点に鑑み、ループ
構造を持つエミュレーション対象プログラムを高速にエ
ミュレーションできるようにしたエミュレーション高速
化方式を提供することにある。
【0007】
【課題を解決するための手段】本発明のエミュレーショ
ン高速化方式は、ターゲットマシンの機械語命令コード
で作成されたエミュレーション対象プログラムを1機械
語命令コードごとにホストマシンの機械語命令コードに
変換して実行するエミュレーション方式において、エミ
ュレーション対象プログラムをホストマシンのメモリに
ロードするプログラムロード手段と、アドレス/機械語
命令コード格納テーブルに前記エミュレーション対象プ
ログラムの実行しようとするアドレスが登録されている
か否かを検索するアドレス検索手段と、このアドレス検
索手段によりアドレスが検索されなかったときに前記エ
ミュレーション対象プログラムから該アドレスの機械語
命令コードを取り出し、アドレスが検索されたときに前
記アドレス/機械語命令コード格納テーブルから該アド
レスに対応する機械語命令コードを取り出す機械語命令
コード取出し手段と、前記エミュレーション対象プログ
ラムから取り出したターゲットマシンの機械語命令コー
ドをホストマシンの機械語命令コードに変換する機械語
命令コード変換手段と、この機械語命令コード変換手段
により変換されたホストマシンの機械語命令コードを前
記エミュレーション対象プログラムの機械語命令コード
のアドレスとともに前記アドレス/機械語命令コード格
納テーブルに保存するアドレス/機械語命令コード保存
手段と、前記機械語命令コード変換手段により変換され
た機械語命令コードまたは前記アドレス/機械語命令コ
ード格納テーブルから取り出された機械語命令コードを
実行する機械語命令コード実行手段と、この機械語命令
コード実行手段により実行された機械語命令コードの種
類または長さに応じて実行しようとするアドレスを更新
するアドレス更新手段とを有する。
【0008】
【実施例】次に、本発明について図面を参照して詳細に
説明する。
【0009】図1は、本発明の一実施例に係るエミュレ
ーション高速化方式の構成を示すブロック図である。本
実施例のエミュレーション高速化方式は、ターゲットマ
シン(図示せず)の機械語命令コードで作成されたエミ
ュレーション対象プログラム1と、エミュレーション対
象プログラム1を1機械語命令コードごとにホストマシ
ン(図示せず)の機械語命令コードに変換して実行する
エミュレータ2と、エミュレータ2により変換された機
械語命令コードをエミュレーション対象プログラム1に
おける機械語命令コードのアドレス(以下、単にアドレ
スという)とともに格納するアドレス/機械語命令コー
ド格納テーブル3とから構成されている。
【0010】エミュレータ2は、プログラムロード手段
21と、アドレス更新手段22と、アドレス検索手段2
3と、機械語命令コード取出し手段24と、機械語命令
コード変換手段25と、アドレス/機械語命令コード保
存手段26と、機械語命令コード実行手段27とを含ん
で構成されている。
【0011】アドレス/機械語命令コード格納テーブル
3は、ホストマシンのメモリ上に作成される。
【0012】図2を参照すると、エミュレータ2の処理
は、エミュレーション対象プログラムロードステップS
101と、先頭アドレス設定ステップS102と、実行
アドレス検索ステップS103と、一致アドレス有無判
定ステップS104と、機械語命令コード取出しステッ
プS105と、機械語命令コード変換ステップS106
と、アドレス/機械語命令コード保存ステップS107
と、機械語命令コード実行ステップS108と、アドレ
ス更新ステップS109と、機械語命令コード取出しス
テップS110と、機械語命令コード実行ステップS1
11とからなる。
【0013】次に、このように構成された本実施例のエ
ミュレーション高速化方式の動作について説明する。
【0014】まず、エミュレータ2は、プログラムロー
ド手段21により、エミュレーション対象プログラム1
をホストマシン上のメモリにロードし(ステップS10
1)、アドレス更新手段22により、機械語命令コード
の解析を開始するアドレスをエミュレーション対象プロ
グラム1の先頭アドレスに設定する(ステップS10
2)。
【0015】次に、エミュレータ2は、アドレス検索手
段23により、エミュレーション対象プログラム1中の
実行しようとする機械語命令コードのあるアドレスをキ
ーにアドレス/機械語命令コード格納テーブル3を検索
する(ステップS103)。
【0016】キーのアドレスと同一のアドレスがアドレ
ス/機械語命令コード格納テーブル3に登録されていな
かった場合(ステップS104でノー)、エミュレータ
2は、機械語命令コード取出し手段24により、エミュ
レーション対象プログラム1から実行するアドレスにあ
る機械語命令コードを取り出し(ステップS105)、
取り出したターゲットマシンの機械語命令コードの解析
を行ってホストマシンの機械語命令コードに変換する
(ステップS106)。なお、ターゲットマシンの機械
語命令コードからホストマシンの機械語命令コードへの
変換にあたっては、例えば特開昭63−106836号
公報等に記載されているように、ターゲットマシンの機
械語命令コードとホストマシンの機械語命令コードとが
異なっている場合にのみ、ターゲットマシンの機械語命
令コードからホストマシンの機械語命令コードへの変換
を行うようにしてもよい。かくすれば、ターゲットマシ
ンとホストマシンとが類似するアーキテクチャのCPU
(Central Processing Unit)
を使用している場合に、エミュレーションのさらなる高
速化が期待できる。
【0017】ターゲットマシンの機械語命令コードから
ホストマシンの機械語命令コードへの変換の一例とし
て、例えば、ターゲットマシンのCPUがザイログ社製
のZ80で、ホストマシンのCPUがインテル社製の8
086であった場合、レジスタに値をロードする機械語
命令コードは、次のように変換される。
【0018】 Z80での機械語命令コード 3E 00 1d a,00h 8086での機械語命令コード B0 00 mov a1,00h
【0019】次に、エミュレータ2は、アドレス/機械
語命令コード保存手段26により、変換されたホストマ
シンの機械語命令コードをターゲットマシンの機械語命
令コードのアドレスとともにアドレス/機械語命令コー
ド格納テーブル3に保存する(ステップS107)。な
お、同一のアドレスについて、機械語命令コードおよび
アドレスがすでにアドレス/機械語命令コード格納テー
ブル3に保存されている場合には、機械語命令コードお
よびアドレスの保存をスキップすることができる。ま
た、既述したアドレス検索手段23によるアドレス/機
械語命令コード格納テーブル3のアドレス検索を高速に
行えるように、機械語命令コードおよびアドレスをアド
レス順に並べ変えてアドレス/機械語命令コード格納テ
ーブル3に保存するようにしてもよい。
【0020】続いて、エミュレータ2は、機械語命令コ
ード実行手段27により、変換されたホストマシンの機
械語命令コードを実行する(ステップS108)。
【0021】続いて、エミュレータ2は、アドレス更新
手段22により、実行した機械語命令コードの種類や長
さに応じてアドレスの更新を行い(ステップS10
9)、ステップS103に制御を戻す。例えば、機械語
命令コードが分岐命令の場合には命令に従ったアドレス
に更新し、分岐命令以外の場合には機械語命令コードの
長さに応じたアドレスを加算する。
【0022】ステップS104において、キーのアドレ
スと同一のアドレスがアドレス/機械語命令コード格納
テーブル3に登録されていた場合(ステップS104で
イエス)、エミュレータ2は、機械語命令コード取出し
手段24により、アドレス/機械語命令コード格納テー
ブル3からアドレスに対応した機械語命令コードを取り
出し(ステップS110)、機械語命令コード実行手段
27により、取り出した機械語命令コードを実行する
(ステップS111)。
【0023】続いて、エミュレータ2は、アドレス更新
手段22により、実行した機械語命令コードの種類や長
さに応じてアドレスの更新を行い(ステップS10
9)、ステップS103に制御を戻す。
【0024】エミュレータ2は、以上のようにして、ス
テップS103〜S111を繰り返すことにより、エミ
ュレーション対象プログラム1のエミュレーションを実
行していく。
【0025】
【発明の効果】以上説明したように本発明は、プログラ
ムロード手段,アドレス検索手段,機械語命令コード取
出し手段,機械語命令コード変換手段,アドレス/機械
語命令コード保存手段,機械語命令コード実行手段およ
びアドレス更新手段を設け、エミュレーション対象プロ
グラムの機械語命令コードを1機械語命令コードごとに
解析しホストマシンの機械語命令コードに変換して実行
するとともに、変換された機械語命令コードをアドレス
ととともにアドレス/機械語命令コード格納テーブルに
保存し、同じアドレスにある機械語命令コードの2回目
以降の実行では機械語命令コードを解析せずに保存され
た機械語命令コードを取り出して実行するようにしたこ
とにより、ループ構造を持つエミュレーション対象プロ
グラムを高速にエミュレーションして実行することがで
きるという効果がある。
【0026】また、これにより、エミュレーションを実
行するホストマシンの負荷を大幅に軽減することができ
るという効果がある。
【図面の簡単な説明】
【図1】本発明の一実施例に係るエミュレーション高速
化方式の構成を示すブロック図である。
【図2】図1中のエミュレータの処理を示す流れ図であ
る。
【符号の説明】
1 エミュレーション対象プログラム 2 エミュレータ 3 アドレス/機械語命令コード格納テーブル 21 プログラムロード手段 22 アドレス更新手段 23 アドレス検索手段 24 機械語命令コード取出し手段 25 機械語命令コード変換手段 26 アドレス/機械語命令コード保存手段 27 機械語命令コード実行手段

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 ターゲットマシンの機械語命令コードで
    作成されたエミュレーション対象プログラムを1機械語
    命令コードごとにホストマシンの機械語命令コードに変
    換して実行するエミュレーション方式において、 エミュレーション対象プログラムをホストマシンのメモ
    リにロードするプログラムロード手段と、 アドレス/機械語命令コード格納テーブルに前記エミュ
    レーション対象プログラムの実行しようとするアドレス
    が登録されているか否かを検索するアドレス検索手段
    と、 このアドレス検索手段によりアドレスが検索されなかっ
    たときに前記エミュレーション対象プログラムから該ア
    ドレスの機械語命令コードを取り出し、アドレスが検索
    されたときに前記アドレス/機械語命令コード格納テー
    ブルから該アドレスに対応する機械語命令コードを取り
    出す機械語命令コード取出し手段と、 前記エミュレーション対象プログラムから取り出したタ
    ーゲットマシンの機械語命令コードをホストマシンの機
    械語命令コードに変換する機械語命令コード変換手段
    と、 この機械語命令コード変換手段により変換されたホスト
    マシンの機械語命令コードを前記エミュレーション対象
    プログラムの機械語命令コードのアドレスとともに前記
    アドレス/機械語命令コード格納テーブルに保存するア
    ドレス/機械語命令コード保存手段と、 前記機械語命令コード変換手段により変換された機械語
    命令コードまたは前記アドレス/機械語命令コード格納
    テーブルから取り出された機械語命令コードを実行する
    機械語命令コード実行手段と、 この機械語命令コード実行手段により実行された機械語
    命令コードの種類または長さに応じて実行しようとする
    アドレスを更新するアドレス更新手段とを有することを
    特徴とするエミュレーション高速化方式。
  2. 【請求項2】 前記機械語命令コード変換手段が、ター
    ゲットマシンの機械語命令コードとホストマシンの機械
    語命令コードとが異なっている場合にのみ機械語命令コ
    ードの変換を行う請求項1記載のエミュレーション高速
    化方式。
  3. 【請求項3】 前記アドレス/機械語命令コード保存手
    段が、同一のアドレスについて機械語命令コードおよび
    アドレスがすでに前記アドレス/機械語命令コード格納
    テーブルに保存されている場合に、機械語命令コードお
    よびアドレスの保存をスキップする請求項1記載のエミ
    ュレーション高速化方式。
  4. 【請求項4】 前記アドレス/機械語命令コード保存手
    段が、前記アドレス/機械語命令コード格納テーブルへ
    の機械語命令コードおよびアドレスの保存をアドレス順
    に並べ変えて行う請求項1記載のエミュレーション高速
    化方式。
JP28447094A 1994-10-24 1994-10-24 エミュレーション高速化方式 Pending JPH08123697A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP28447094A JPH08123697A (ja) 1994-10-24 1994-10-24 エミュレーション高速化方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP28447094A JPH08123697A (ja) 1994-10-24 1994-10-24 エミュレーション高速化方式

Publications (1)

Publication Number Publication Date
JPH08123697A true JPH08123697A (ja) 1996-05-17

Family

ID=17678948

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28447094A Pending JPH08123697A (ja) 1994-10-24 1994-10-24 エミュレーション高速化方式

Country Status (1)

Country Link
JP (1) JPH08123697A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008533578A (ja) * 2005-03-11 2008-08-21 トランジティブ リミテッド プログラムコード変換中の実行制御
JP2011134315A (ja) * 2009-12-23 2011-07-07 Intel Corp 部分的なエミュレーション環境におけるソース命令セットアーキテクチャ(isa)コードから、変換済みコードへの遷移
US9891936B2 (en) 2013-09-27 2018-02-13 Intel Corporation Method and apparatus for page-level monitoring
JP2018028777A (ja) * 2016-08-17 2018-02-22 Necプラットフォームズ株式会社 エミュレーション装置、エミュレーション方法、及び、エミュレーションプログラム
US10621092B2 (en) 2008-11-24 2020-04-14 Intel Corporation Merging level cache and data cache units having indicator bits related to speculative execution
US10649746B2 (en) 2011-09-30 2020-05-12 Intel Corporation Instruction and logic to perform dynamic binary translation
US10725755B2 (en) 2008-11-24 2020-07-28 Intel Corporation Systems, apparatuses, and methods for a hardware and software system to automatically decompose a program to multiple parallel threads

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04268928A (ja) * 1991-02-25 1992-09-24 Toshiba Corp エミュレーション装置及び半導体装置
JPH0695919A (ja) * 1992-07-27 1994-04-08 Internatl Business Mach Corp <Ibm> コンピュータ・システムのエミュレーション方法
JPH06202877A (ja) * 1992-12-28 1994-07-22 Fujitsu Ltd エミュレーション装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04268928A (ja) * 1991-02-25 1992-09-24 Toshiba Corp エミュレーション装置及び半導体装置
JPH0695919A (ja) * 1992-07-27 1994-04-08 Internatl Business Mach Corp <Ibm> コンピュータ・システムのエミュレーション方法
JPH06202877A (ja) * 1992-12-28 1994-07-22 Fujitsu Ltd エミュレーション装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008533578A (ja) * 2005-03-11 2008-08-21 トランジティブ リミテッド プログラムコード変換中の実行制御
US8615749B2 (en) 2005-03-11 2013-12-24 International Business Machines Corporation Execution control during program code conversion
US10621092B2 (en) 2008-11-24 2020-04-14 Intel Corporation Merging level cache and data cache units having indicator bits related to speculative execution
US10725755B2 (en) 2008-11-24 2020-07-28 Intel Corporation Systems, apparatuses, and methods for a hardware and software system to automatically decompose a program to multiple parallel threads
JP2011134315A (ja) * 2009-12-23 2011-07-07 Intel Corp 部分的なエミュレーション環境におけるソース命令セットアーキテクチャ(isa)コードから、変換済みコードへの遷移
US10649746B2 (en) 2011-09-30 2020-05-12 Intel Corporation Instruction and logic to perform dynamic binary translation
US9891936B2 (en) 2013-09-27 2018-02-13 Intel Corporation Method and apparatus for page-level monitoring
JP2018028777A (ja) * 2016-08-17 2018-02-22 Necプラットフォームズ株式会社 エミュレーション装置、エミュレーション方法、及び、エミュレーションプログラム
US10268462B2 (en) 2016-08-17 2019-04-23 Nec Platforms, Ltd. Emulation device, emulation method, and recording medium storing emulation program

Similar Documents

Publication Publication Date Title
JPH08123697A (ja) エミュレーション高速化方式
JPH10301790A (ja) アセンブル処理方式
JP3318051B2 (ja) 翻訳処理方法
JPH1124940A (ja) エミュレーション処理方式
JP2000105693A (ja) ポーティング支援システム
JPH07244601A (ja) 関係データベースのアクセス方法および装置
JPH0423167A (ja) コマンド検索方式
JPH05216684A (ja) プログラム実行装置および実行方法
CN114968282A (zh) 一种异常处理执行的优化方法和***
JPH0128414B2 (ja)
JPH09204307A (ja) プログラム動的リンク装置およびその方法
JPH0327439A (ja) プログラムの共有モジュール管理方式
JPH0573335A (ja) プログラムの自動インライン展開方式
JPH10171656A (ja) スクリプト言語処理装置
JPH11238012A (ja) メモリアクセス一括化方法および記憶媒体
JPH05334359A (ja) 統合データ抽出方式
JPH06175862A (ja) 電子計算機装置
JPH09231088A (ja) プログラム変換実行装置およびその方法
JPH02146625A (ja) レジスタ個数の拡張方式
JPH11120119A (ja) 演算機能付き情報転送装置
JPH06236261A (ja) 手続き型言語プログラム・コンポーネントの分離方式
JP2003157171A (ja) 仮想命令呼び出し装置及び仮想命令呼び出し方法
JPH0338745A (ja) データ一括処理方式
JPH04128936A (ja) プログラム実行環境切換え方式
JPH01222327A (ja) プログラム実行制御方式