JP2839730B2 - エミュレーション装置及び半導体装置 - Google Patents

エミュレーション装置及び半導体装置

Info

Publication number
JP2839730B2
JP2839730B2 JP3029982A JP2998291A JP2839730B2 JP 2839730 B2 JP2839730 B2 JP 2839730B2 JP 3029982 A JP3029982 A JP 3029982A JP 2998291 A JP2998291 A JP 2998291A JP 2839730 B2 JP2839730 B2 JP 2839730B2
Authority
JP
Japan
Prior art keywords
instruction
memory
cpu
address
queue
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
JP3029982A
Other languages
English (en)
Other versions
JPH04268928A (ja
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP3029982A priority Critical patent/JP2839730B2/ja
Priority to KR1019920002841A priority patent/KR950012382B1/ko
Publication of JPH04268928A publication Critical patent/JPH04268928A/ja
Priority to US08/619,138 priority patent/US5636375A/en
Application granted granted Critical
Publication of JP2839730B2 publication Critical patent/JP2839730B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、エミュレーション装置
に関し、特に、コンピュータのエミュレーションを高速
で実行させるのに好適なエミュレーション装置に関す
る。
【0002】
【従来の技術】従来、命令体系の異なるCPUの命令を
エミュレーションするには、2つの方式が用いられてい
た。その1つは、これらの命令セットを予めまとめてコ
ンパイルしておく、コンパイラ方式である。他の1つ
は、各命令毎にこれらを実行時に解釈してゆく、インタ
プリタ方式である。
【0003】
【発明が解決しようとする課題】従来の方式には以下の
ような難点があった。即ち、コンパイラ方式は、予めオ
ブジェクトコードを変換して保存しておく必要があり、
実際の使用を考えると非常に不便である。また、インタ
プリタ方式では、オブジェクトコードを一種のデータと
して読み解釈して、その命令と同じ結果をもたらす命令
を実行する。このため、実行時間が遅くなってしまうと
いう問題がある。
【0004】本発明は、上記に鑑みてなされたもので、
その目的は、インタプリタ方式と同様に事前のコンパイ
ル作業を必要とせず、且つコンパイラ方式に近い高速で
のエミュレーション実行が可能なエミュレーション装置
を提供することにある。
【0005】
【課題を解決するための手段】本発明の第1のエミュレ
ーション装置は、メモリに対してアドレスを伝え、且
つ、そのメモリからこのアドレスに対応する命令を読み
出すメモリバスと、このメモリから前記メモリバスを通
して読み出した命令を格納するキャッシュメモリと、自
己に与えられたアドレスに対応する前記メモリ中の命令
を、この命令が前記キャッシュメモリ中にあるときには
このキャッシュメモリから、ない場合には前記メモリか
ら受け、受けた命令を命令コードに変換する変換回路
と、この変換回路で変換した命令コードを蓄えておく命
令キューと、エミュレーション対象としてのCPUから
のステータス信号をCPUローカルバスを介して受け
て、前記CPUが前記メモリ上の連続命令を読み出して
いる第1の場合か、アドレスのジャンプした不連続命令
を読み出している第2の場合かを判定し、前記第1の場
合と判定したときには、前記命令キューからの命令コー
ドを前記CPUローカルバスを介して前記CPUに渡
し、前記第2の場合と判定したときには、前記アドレス
を前記変換回路を介して前記メモリに与える、ジャンプ
判定制御回路と、を備えるものとして構成される。
【0006】本発明の第2の装置は、前記第1の装置に
おいて、前記判定は、前記ステータス信号中にキューク
リア状態を表わす信号が出ているか否かによって行われ
るものとして構成される。本発明の第3の装置は、前記
第1の装置において、前記判定は、命令フェッチアドレ
スが不連続か否かによって行われるものとして構成され
る。
【0007】本発明の第4の装置は、前記第1〜3の装
置のうちの1つにおいて、前記キャッシュメモリは、前
記CPUが読み出している命令につづく命令のほか、ジ
ャンプ先の命令も前記メモリから読み出して格納するも
のとして構成される。
【0008】本発明の第5の装置は、前記第1〜4の装
置のうちの1つにおいて、前記キャッシュメモリは、前
記メモリからの命令だけでなくデータも、格納するもの
として構成される。
【0009】本発明の第6の装置は、前記第1〜5の装
置のうちの1つにおいて、前記変換手段は、変更の際に
命令の種類を判別し、命令が無条件分岐命令であると判
別したときにはその命令を変換せず、ジャンプ先の命令
を変換して前記キュー手段に入れるものとして構成され
る。
【0010】本発明の半導体装置は、請求項1〜6のい
ずれかに記載の装置を有するものとして構成される。
【0011】
【作用】ジャンプ判定手段がエミュレーション対象とし
てのCPUの命令読み出しバスサイクルが、メモリ上の
アドレス順に実行されるためのものか否かを判定する。
制御手段は、この判定結果に基づいて動作する。即ち、
命令が、メモリ上のアドレス順の場合は、予めメモリか
ら読み出して変換手段で変換しておいた命令コードを、
キュー手段から読み出してCPUに渡す。命令が、メモ
リ上のアドレス順でない場合は、そのアドレスのメモリ
から命令を読み出し、これを前記変換手段で命令コード
に変換し、CPUに渡す。
【0012】
【実施例】以下、図面を参照しながら本発明の実施例を
説明する。
【0013】図1は、本発明の一実施例に係るエミュレ
ーション装置のブロック図である。図1において、CP
U1には、CPUローカルバス2が接続されている。C
PU1が出す信号は、CPUローカルバス2を介して、
ジャンプ判定制御回路3に入力される。一方、変換回路
5は、メモリバス7を介してメモリ8にアドレスを与え
る。そして、変換回路5は、メモリバス7を通じてメモ
リ8から命令を受け、それをCPU1に対応する命令コ
ードに変換する。そして、命令キュー回路4は、変換回
路5からの命令コードを蓄えておき、これをCPU1に
わたす機能を有する。ジャンプ判定制御回路3は、CP
U1が不連続な命令を出しているか否かを判定する。命
令キュー回路4は、CPU1の命令フェッチが連続の場
合に、CPU1に命令コードをわたす。変換回路5は、
CPU1が不連続な命令を出している場合に、ジャンプ
判定制御回路3からアドレスを受取る。そして、その変
換回路5は、このアドレスに対応する命令を、メモリバ
ス7を通じて、メモリ8から読み出す。そして、その回
路5は、読み出した命令を、CPU1に対応する命令コ
ードに変換して、初期化された命令キュー回路4に与え
る。キャッシュメモリ6は、メモリバス7に接続されて
いる。このキャッシュメモリ6は、メモリ8からメモリ
バス7を介して1度読み出された命令を格納しておき、
2度目からは高速で読み出すために用いられる。
【0014】以上述べたような構成において次にその動
作を説明する。
【0015】CPU1が出す信号は、CPUローカルバ
ス2を通じて、ジャンプ判定制御回路3に入る。ジャン
プ判定制御回路3では、CPU1がジャンプ命令などで
不連続な命令を読み出しているか否かを判定する。つま
り、CPU1が、ステータス信号に、CPU1内部のキ
ュークリア状態を表わす信号を出しているときは、不連
続な命令読み出しと判定する。上記キュークリア状態を
表わす信号は、CPUの開発ツール用に必要であるた
め、一般に、CPU内に予め用意されている。ただし、
このような信号が用意されていない場合は、命令フェッ
チアドレスが不連続か否かを判定する回路を設けて判定
すればよい。命令が不連続の場合は、その命令のアドレ
スを変換回路5に送る。変換回路5は、そのアドレスに
基づいてメモリ8から命令を読み込み、変換した後、初
期化された命令キュー回路4に、入れる。ジャンプ判定
制御回路3は、命令キュー回路4からその命令を読んだ
後、CPUローカルバス2を介してCPU1に与える。
【0016】変換回路5は、その後も、続くアドレスか
ら命令を取り出し、変換して、命令キュー回路4に入れ
る動作を続ける。
【0017】一方、CPU1の命令フェッチが連続の場
合は、命令キュー回路4から命令をCPU1に与える。
命令キュー回路4に、変換された命令がたまっていない
場合は、命令が入るまで待つ。なお、変換を早く実行す
るために、キャッシュメモリ6が設けられている。メモ
リバス7を介して一度読み出された命令は、2回目から
はキャッシュメモリ6から読み出される。
【0018】キャッシュメモリ6は、メモリアドレスと
そのアドレスに対応するデータを蓄える構成になってお
り、命令コードのみならずデータも蓄え得る。このた
め、ジャンプ判定制御回路3で、命令か、データかの判
定も行なう。データと判定された場合は、CPU1は、
命令キュー回路4を介さずに、直接キャッシュメモリ6
またはメモリ8をアクセスするようにすることもでき
る。また、このシステムは、いつもエミュレーションす
るとは限らない。このCPU1の本来の命令をメモリ8
に入れて実行する場合もある。このため、その区分信号
をジャンプ判定制御回路3に入れておく。これにより、
エミュレーション時以外のときは、命令キュー回路4を
介さずに直接キャッシュメモリ6またはメモリ8をアク
セスするようにできる。
【0019】変換回路5は、変換の際に、命令の種類を
判別する。この時、無条件分岐命令であれば、その分岐
先のアドレスから命令をフェッチし、変換して命令キュ
ー回路4にいれる。CPU1では、無条件分岐命令は実
行されず、ジャンプが省略され、その前後が連続して実
行されることになる。
【0020】以上のような動作では、従来のコンパイラ
方式では必要であったコード変換の必要がない。つま
り、インタプリタ方式に近い形でのハンドリングが可能
である。併せて、インタプリタ方式に比較して高速での
エミュレーションの実行が可能となる。また、十分な大
きさのキャッシュメモリ6を用いると、90%以上の命
令が高速でアクセスできる。このため、命令の変換が高
速で実行できる。これにより、命令が連続している間
は、いつも命令キュー回路4に命令が用意されている。
このため、エミュレーションにおいても、CPU1の本
来の命令と同じレベルの速度で、実行が可能である。ま
た、ジャンプ命令であっても、それが無条件ジャンプで
あるときには、それを省略して実行できる。このため、
より高速化を計ることができる。
【0021】
【発明の効果】本発明によれば、エミュレーション対象
としてのCPUのステータス信号に基づいて、そのCP
Uがメモリ上の連続した命令を読み出しているか否かを
判定し、連続した命令を読み出していると判定したとき
には、予め変換して命令キューに格納しておいた命令コ
ードをそのまま取り出してCPUに与え、不連続の命令
を読み出していると判定されるときにのみ、メモリのア
ドレスを指定して命令を読み出し、変換し、CPUに与
えるようにしたので、従来のコンパイラ方式のように予
め命令セットをひとまとめにしてコンパイルしておく必
要がなく、また、インタプリタ方式のように全ての命令
をその都度変換するのではなく、CPUが不連続命令を
読み出していると判定したときのみメモリから命令を読
み出して変換するようにしたので、全ての命令をその都
度変換する場合に比して高速でのエミュレーションが可
能である。
【図面の簡単な説明】
【図1】本発明の一実施例に係るエミュレーション装置
のブロック図である。
【符号の説明】
1 CPU 2 CPUローカルバス 3 ジャンプ判定制御回路 4 命令キュー回路 5 変換回路 6 キャッシュメモリ 7 メモリバス

Claims (7)

    (57)【特許請求の範囲】
  1. 【請求項1】メモリに対してアドレスを伝え、且つ、そ
    のメモリからこのアドレスに対応する命令を読み出すメ
    モリバスと、 このメモリから前記メモリバスを通して読み出した命令
    を格納するキャッシュメモリと、 自己に与えられたアドレスに対応する前記メモリ中の命
    令を、この命令が前記キャッシュメモリ中にあるときに
    はこのキャッシュメモリから、ない場合には前記メモリ
    から受け、受けた命令を命令コードに変換する変換回路
    と、 この変換回路で変換した命令コードを蓄えておく命令キ
    ューと、 エミュレーション対象としてのCPUからのステータス
    信号をCPUローカルバスを介して受けて、前記CPU
    が前記メモリ上の連続命令を読み出している第1の場合
    か、アドレスのジャンプした不連続命令を読み出してい
    る第2の場合かを判定し、前記第1の場合と判定したと
    きには、前記命令キューからの命令コードを前記CPU
    ローカルバスを介して前記CPUに渡し、前記第2の場
    合と判定したときには、前記アドレスを前記変換回路を
    介して前記メモリに与える、ジャンプ判定制御回路と、 を備えることを特徴とするエミュレーション装置。
  2. 【請求項2】前記判定は、前記ステータス信号中にキュ
    ークリア状態を表わす信号が出ているか否かによって行
    われる請求項1記載の装置。
  3. 【請求項3】前記判定は、命令フェッチアドレスが不連
    続か否かによって行われる請求項記載の装置。
  4. 【請求項4】前記キャッシュメモリは、前記CPUが読
    み出している命令につづく命令のほか、ジャンプ先の命
    令も前記メモリから読み出して格納するものである、請
    求項1〜3の1つに記載の装置。
  5. 【請求項5】前記キャッシュメモリは、前記メモリから
    の命令だけでなくデータも、格納するものである、請求
    項1〜4の1つに記載の装置。
  6. 【請求項6】前記変換手段は、変更の際に命令の種類を
    判別し、命令が無条件分岐命令であると判別したときに
    はその命令を変換せず、ジャンプ先の命令を変換して前
    記キュー手段に入れるものである、請求項1〜5のうち
    の1つに記載の装置。
  7. 【請求項7】請求項1〜6のいずれかに記載の装置を有
    する半導体装置。
JP3029982A 1991-02-25 1991-02-25 エミュレーション装置及び半導体装置 Expired - Fee Related JP2839730B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP3029982A JP2839730B2 (ja) 1991-02-25 1991-02-25 エミュレーション装置及び半導体装置
KR1019920002841A KR950012382B1 (ko) 1991-02-25 1992-02-25 에뮬레이션장치
US08/619,138 US5636375A (en) 1991-02-25 1996-03-20 Emulator for high speed, continuous and discontinuous instruction fetches

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3029982A JP2839730B2 (ja) 1991-02-25 1991-02-25 エミュレーション装置及び半導体装置

Publications (2)

Publication Number Publication Date
JPH04268928A JPH04268928A (ja) 1992-09-24
JP2839730B2 true JP2839730B2 (ja) 1998-12-16

Family

ID=12291170

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3029982A Expired - Fee Related JP2839730B2 (ja) 1991-02-25 1991-02-25 エミュレーション装置及び半導体装置

Country Status (3)

Country Link
US (1) US5636375A (ja)
JP (1) JP2839730B2 (ja)
KR (1) KR950012382B1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08123697A (ja) * 1994-10-24 1996-05-17 Nec Corp エミュレーション高速化方式
JP2006268487A (ja) * 2005-03-24 2006-10-05 Nec Corp エミュレーション装置及びエミュレーション方法、並びに、エミュレーションプログラム
US8145470B2 (en) * 2007-06-27 2012-03-27 Microsoft Corporation Accelerated access device emulator access scheme in a hypervisor environment with child and root partitions
JP5533538B2 (ja) * 2010-10-12 2014-06-25 富士通株式会社 情報処理装置、エミュレーション処理プログラム及びエミュレーション処理方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4298927A (en) * 1978-10-23 1981-11-03 International Business Machines Corporation Computer instruction prefetch circuit
US4325120A (en) * 1978-12-21 1982-04-13 Intel Corporation Data processing system
US4415969A (en) * 1980-02-07 1983-11-15 Intel Corporation Macroinstruction translator unit for use in a microprocessor
DE3382350D1 (de) * 1982-11-17 1991-08-29 Nec Corp Anordnung zum vorabholen von befehlen mit vorhersage einer verzweigungszieladresse.
JPS6084639A (ja) * 1983-10-17 1985-05-14 Canon Inc マイクロプロセツサ
US4701844A (en) * 1984-03-30 1987-10-20 Motorola Computer Systems, Inc. Dual cache for independent prefetch and execution units
JPS6133546A (ja) * 1984-07-25 1986-02-17 Nec Corp 情報処理装置
US4638423A (en) * 1985-03-06 1987-01-20 Motorola, Inc. Emulating computer
JPH07109589B2 (ja) * 1985-07-25 1995-11-22 日本電気株式会社 命令処理方式
US4791557A (en) * 1985-07-31 1988-12-13 Wang Laboratories, Inc. Apparatus and method for monitoring and controlling the prefetching of instructions by an information processing system
US4794522A (en) * 1985-09-30 1988-12-27 International Business Machines Corporation Method for detecting modified object code in an emulator
JPS62151938A (ja) * 1985-12-25 1987-07-06 Nec Corp 命令処理方式
EP0229619B1 (en) * 1986-01-07 1997-08-06 Nec Corporation Instruction prefetching device comprising a circuit for checking prediction for a branch instruction before the instruction is executed
US4788683A (en) * 1986-01-14 1988-11-29 Ibm Corporation Data processing system emulation with microprocessor in place
US4812775A (en) * 1986-04-30 1989-03-14 Science Research Laboratory, Inc. Electrostatic ion accelerator
US5210832A (en) * 1986-10-14 1993-05-11 Amdahl Corporation Multiple domain emulation system with separate domain facilities which tests for emulated instruction exceptions before completion of operand fetch cycle
US4851993A (en) * 1987-04-20 1989-07-25 Amdahl Corporation Cache move-in bypass
US5167023A (en) * 1988-02-01 1992-11-24 International Business Machines Translating a dynamic transfer control instruction address in a simulated CPU processor
US5187793A (en) * 1989-01-09 1993-02-16 Intel Corporation Processor with hierarchal memory and using meta-instructions for software control of loading, unloading and execution of machine instructions stored in the cache
US5134701A (en) * 1989-02-10 1992-07-28 Hewlett-Packard Co. Test apparatus performing runtime replacement of program instructions with breakpoint instructions for processor having multiple instruction fetch capabilities
US5093776A (en) * 1989-06-15 1992-03-03 Wang Laboratories, Inc. Information processing system emulation apparatus and method

Also Published As

Publication number Publication date
KR950012382B1 (ko) 1995-10-17
KR920016942A (ko) 1992-09-25
US5636375A (en) 1997-06-03
JPH04268928A (ja) 1992-09-24

Similar Documents

Publication Publication Date Title
EP0464494B1 (en) A high performance pipelined emulator
US4181934A (en) Microprocessor architecture with integrated interrupts and cycle steals prioritized channel
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
US3593306A (en) Apparatus for reducing memory fetches in program loops
US5091853A (en) Chained addressing mode pipelined processor which merges separately decoded parts of a multiple operation instruction
KR930018378A (ko) 캐쉬 메모리 시스템의 성능최적화 방법 및 장치
JP2001508907A (ja) 仮想マシン命令を実行するための処理装置
US5572667A (en) Interrupt processing device for controlling the timing of an interrupt signal initiated by a debugging break point in an instruction code
US6070220A (en) Jump code generator, interrupt program selection system, interruption program selection method, and computer with the function
JP2839730B2 (ja) エミュレーション装置及び半導体装置
JPH08314719A (ja) プロセッサ及び翻訳装置
EP0240606B1 (en) Pipe-line processing system and microprocessor using the system
JPS63228225A (ja) ディジタルコンピュータシステム
US5524221A (en) Next instruction pointer calculation system for a microcomputer
JP2766114B2 (ja) 命令先取り装置
KR100388943B1 (ko) 디지털 신호 처리 프로세서의 즉시 데이터 처리 장치
JP2583614B2 (ja) ベクトル演算装置
JPS61151745A (ja) 割込処理方式
JPS61161509A (ja) 高速シ−ケンス演算方式及びその装置
JPH0259829A (ja) マイクロコンピュータ
JPH1139159A (ja) 計算機システム
JPH024011B2 (ja)
JPH06337785A (ja) 情報処理装置およびその命令実行制御方法
JPH06168140A (ja) プログラム変換装置
JPH04188226A (ja) 命令先読み制御装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees