JPH0387930A - エミュレータ・アシスト・ユニツト及びそれを用いたコ・プロセツサ・エミュレータ - Google Patents

エミュレータ・アシスト・ユニツト及びそれを用いたコ・プロセツサ・エミュレータ

Info

Publication number
JPH0387930A
JPH0387930A JP2155536A JP15553690A JPH0387930A JP H0387930 A JPH0387930 A JP H0387930A JP 2155536 A JP2155536 A JP 2155536A JP 15553690 A JP15553690 A JP 15553690A JP H0387930 A JPH0387930 A JP H0387930A
Authority
JP
Japan
Prior art keywords
emulator
assist unit
instructions
instruction
user
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
JP2155536A
Other languages
English (en)
Inventor
Thayne C Cooper
タイン カール クーパー
Wayne D Bell
ウエイン デモント ベル
Jelley Rasmussen Norman
ノーマン ジエリー ラスムスン
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.)
Unisys Corp
Original Assignee
Unisys 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 Unisys Corp filed Critical Unisys Corp
Publication of JPH0387930A publication Critical patent/JPH0387930A/ja
Pending 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • 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/30181Instruction operation extension or modification
    • 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/30181Instruction operation extension or modification
    • G06F9/30196Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
    • 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/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • 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/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明はデジタルコンピュータのための、エミュレータ
・アシスト・ユニット並びにそれを用いたコ・プロセッ
サ・エミュレータに関し、更に詳しくは、かかるエミュ
レータのアーキテクチャ及び動作速度に関する。
[従来の技術] 現在、デジタルコンピュータのメーカには多くの異なる
ものがある。そして、各々のメーカは彼ら自身のために
ユニークに定式化された命令セットを実行するようにコ
ンピュータを作る。例えば、モトローラ社の68030
マイクロプロセツサは68030の命令セットを実行す
るように設計され、一方で、インテル社の80X86マ
イクロプロセツサ(ここで、“X”は2又は3)は80
X86の命令セットを実行するように設計されている。
そのような命令セットは各々それ自身のユニークなフォ
ーマットを有しているために、80X86命令で書かれ
たユーザプログラムはモトローラの68030上では直
接には動かない。逆も同様である。
[発明が解決しようとする課題] 他方、あるメーカのコンピュータ(ターゲットコンピュ
ータ)のために書かれたユーザプログラムは、他のメー
カのコンピュータ(ホストコンピュータコンピュータ)
のユーザが実行したいであろう機能を実行することがし
ばしばある。しかし、長く且つ複雑なプログラムを1つ
のコンピュータ命令セットから別のコンピュータの命令
セットに書き換えることは大変に時間がかかり高価なも
のとなる。かかる理由で、コンピュータエミュレータが
開発されてきた。
ひとつの共通な形態として、エミュレータは、ホストコ
ンピュータの命令からなるエミュレータプログラムと呼
ばれるソフトウェアプログラムからなる。このエミュレ
ータプログラムは、エミュレーション対象のターゲット
の機械語の全フィールドを調べ、それらのフィールドが
示すオペランド・アドレスを生成し、そのオペランドを
もってきて、これらのオペランドに従って動作を実行し
て結果をストアする。
しかしながら、ターゲト・マシーンのほんの1つの命令
について上記の全ての動作を実行するには、エミュレー
タプログラム内で多くのホスト命令を必要する。例えば
、1つのターゲット・マシーンの命令を実行するのに必
要な命令は、エミュレータプログラムにおいては、簡単
に50から150個に及ぶ。かくして、このようなエミ
ュレータの実行時間はどうしても遅くなる。
かくして、本発明の主な目的は、エミュレーション対象
がかなり早く、かつ、新規で経済的なエミュレータのア
ーキテクチャを提供することである。
[課題を達成するための手段及び作用]本発明に係るコ
・プロセッサ・エミュレータは、バスを介して密に結合
されたホスト・プロセサとエミュレータ・アシスト・ユ
ニットとメモリとからなる。このメモリはユーザプログ
ラムと制御プログラムとを含み、そのユーザプログラム
はエミュレーション対象のユーザ(即ち、ターゲット)
インストラクションのセットからの一連のユーザ・イン
ストラクションからなり、前記制御プログラムはホスト
・プロセサのインストラクションとエミュレータ・アシ
スト・ユニットのインストラクションとの混成である。
動作的には、ホスト・プロセサは、前記ホスト・インス
トラクションを読んで実行し、また、前記エミュレータ
・アシスト・ユニットのインストラクションを読んで前
記エミュレータ・アシスト・ユニットに渡す。
これにより、ホスト・プロセサとエミュレータ・アシス
ト・ユニットとはエミュレータタスクを分ち合い、エミ
ュレータ・アシスト・ユニットはホストにとっては最も
困難なそれらのタスクを実行する。−例として、エミュ
レータ・アシスト・ユニットは、エミュレーション対象
の前記ユーザプログラムにおける次のユーザ・インスト
ラクションのフィールドを調べることと、その次のユー
ザ・インストラクションが動作するオペランドの前記メ
モリ内のメモリアドレスを生成することとによって前記
エミュレータ・アシスト・ユニットに応答するところの
、レジスタ及び制御とを有する。一方で、ホストはそれ
らのアドレスを使ってメモリからオペランドを読出し、
ユーザ・インストラクションにより指定された前記オペ
ランドに対してオペレーションを実行する。
[実施例] 第1図を参照しながら、本発明に従ったエミュレーショ
ンを実行する好適な実施例に係るデータ処理システムを
説明する。このシステムは、ホストプロセッサ10.バ
ス11.アドレスデコーダ12、エミュレータ・アシス
ト・ユニット13゜入出力デバイス14、そしてメモリ
15を有する。これらは第1図に示されているように接
続されている。
1つの好適な実施例では、ホストプロセッサ10はモト
ローラのMC68030という32ビツトのプロセッサ
であり、バス11はMC68030のための入出力信号
からなる。これらの入出力信号は、32本のアドレスラ
インllbと35本の制御ラインllcを含む。MC6
8030に関する背景の情報自体は、「モトローラのM
C68030マイクロプロセツサユ一ザマニユアルj第
2版、番号0−13−566969−3に含まれる。
メモリ15にあるユーザプログラムが実行される間に、
第1図システムの10〜15の全要素がどのように動作
するかを考察する。このユーザプログラム16は、その
各々がMC68030ホストプロセツサ10とは全体的
に異なるフォーマットを有する一連のインストラクショ
ン16aからなる。1つの好適な実施例では、ユーザ・
インストラクションはインテルの80X86マイクロプ
ロセツサインストラクシヨンである。80X86に関す
る背景情報は、rインテルマイクロシステム素子ハンド
ブック1 (第1巻、230843−001.1984
年)にあり、これは、カリフォルニア州すンタクララの
インテル株式会社から出ている。
比較のために、第2A図はインテル系インストラクショ
ンのフォーマットを示し、第2B図はモトローラ系イン
ストラクションのフォーマットを示す。第2A図を参照
すると、インテル80X86のインストラクションが2
ビツトの″MOD″フィールドと、3ビツトの“REG
”フィールドと、3ビツトの″R/M″フィールドを有
していることが分り、これらが−緒になって、1つまた
は2つのオペランドの位置を指定する。第2B図と比較
してみると、かかるフィールドはモトローラ系のインス
トラクションには存在しないことが分る。更に、インテ
ル80X86系のインストラクションは、AB、BX、
CX、DX、BP、SP、DI、SI、ES、CS、S
S、DS、FSと呼ばれるレジスタの内容を用いるので
あるが、これらのレジスタはモトローラ68030のマ
イクロプロセッサには存在していない。また、インテル
80X86系のインストラクションのあるものは、イン
ストラクション結果を示すために、ある条件コードをセ
ットせしめる。これらの同じような条件コードは680
30マイクロプロセツサにはない。
上述のインテル80X86系のインストラクションとモ
トローラ68030系のインストラクション間のこれら
の相違等のために、インテル系のインストラクションを
68030系のソフトウェアプログラムによりエミュレ
ートすることは厄介である。もし68030系インスト
ラクシヨンが用いられた場合に、インテル80X86系
のインストラクションの全ての異なるフィールドを調べ
、種々のオペランドアドレスを生成し、求められたオペ
レーションを実行して、条件コードをセットするように
した場合、それでは、全体的な実行時間はかなりスロー
なものとなる。
しかしながら、第1図のシステムでは、この速度の問題
は、モトローラ系のホスト・プロセサ10とメモリ15
の制御プログラム17と共に動作するエミュレータ・ア
シスト・ユニット13により解消される。これらのシス
テム素子を用いることにより、インテル80X86系の
各々のインストラクション内のタスクは分割され、モト
ローラ68030プロセツサは自身が効率的に行なうこ
とのできるタスクのみを実行するようにされ、エミュレ
ータアシストユニットは残りのタスクを効率的に実行す
るように設計されている。これらのタスクがどのように
分割されるかは、ホスト・プロセサ・インストラクショ
ンとエミュレータ・アシスト・ユニット・インストラク
ションの混合である制御プログラム17により行なわれ
る。
第1図の参照番号17aは個々のインストラクション及
びエミュレータアシストユニットのインストラクション
を示す。これらのインストラクション17aはホスト・
プロセサ10により順番にメモリ15から読み出される
。もし読み出されたインストラクションがモトローラ6
8030系インストラクシヨンのときは、そのときは、
ホスト・プロセサにより直接に実行される。逆に、もし
読み出されたインストラクションがエミュレータ・アシ
スト・ユニットのインストラクションである場合は、そ
れはホスト・プロセサによりエミュレータ・アシスト・
ユニット13に渡されてそこで実行される。
第3図は、エミュレータ・アシスト・ユニット13の構
成を詳細に説明する。このユニットはいくつかのレジス
タを含み、その名称、用法は以下のようである。
IP: このレジスタは、メモリ15の実行されるべき現在また
は次のユーザ・インストラクションのアドレスを含む。
E−PRE: このレジスタは、実行されている現在のユーザ・インス
トラクションのプレフィックスフィールド(あるならば
)を保持する。
E−OP : このレジスタは実行されつつある現在のユーザ・インス
トラクションのOPコードを保持する。
E−EA: このレジスタは実行されつつある現在のユーザインスト
ラクションの実効アドレス(effectiveadd
ress)とSIBタイプ(もしあるならば)を含む。
E−REG: このレジスタは前記実効アドレスレジスタのTTTビッ
ト(もしあるならば)を保持する。
E−DISP: このレジスタは実行されつつある現在のユーザ・インス
トラクションの偏位(dLsplacement) (
もしあるならば)を維持する。
E−DATA: このレジスタは実行されつつある現在のユーザ・インス
トラクションのイミーデイエート・データ(もしあるな
らば)を維持する。
E−TEMP: このレジスタはユーザ・インストラクションの実行中に
データを一時的に保持するのに使われる。
E−MBASE: このレジスタはユーザプログラムが始まるメモリ15中
のアドレスを保持する。
E−SRCI  : このレジスタは現在のユーザ・インストラクションの第
1のソースオペランドを保持する。
E−SRCl : このレジスタは現在実行中のユーザ・インストラクショ
ンに対する第2のソースオペランドを保持する。
E−RES: このレジスタは現在実行中のユーザ・インストラクショ
ンの結果(result)を保持する。
AX、BX、CX、DX: これらはバイトアドレッシング可能なレジスタで、イン
テル系のインストラクションがこれらのレジスタを選択
的に使って、データやデータを指すアドレスの一部を保
持する。
DI、SI、SP、BP: これらのレジスタはユーザ・インストラクションによっ
て選択され、他のレジスタと結合されてオペランドのア
ドレスを形成する。
SP: このレジスタはユーザ・インストラクションのためのス
タックのメモリ15内の開始位置をアドレスする。
ES、CS、SS、DS: これらのセグメントレジスタは、他のレジスタの内容と
結合されて、ユーザデータとユーザ・インストラクショ
ンのメモリ内のアドレスを形成する。
E−FLAG: このレジスタは、インテル80X86系のインストラク
ションの結果を示すためにセット/リセットされる条件
コードを保持する。このレジスタの色々なビットが次の
条件を示す。
ビット 0 : オーバフロー 1  : オーバフロー無し 2 : 下/キャリー/超えも等しくもない3 : 以
上7未満でない/キャリー無し4 : 等しい/ゼロ 5 : 不等号/ゼロでない 6 : 以下/超えない 7 : 超過/未満でも等しくもない 8 : 符号付き 9 : 符号無し A : パリティ/偶数パリティ B : パリティ無し/奇数パリティ C: 未満/大きくも等しくもない D = 小さくない/大きいか等しい E : 小さいか等しい/大きくない F : 小さくも等しくもない/大きいエミュレータ・
アシスト・ユニット13に同じく含まれるものは、5つ
の加算器13a〜13eと、シフタ(SH)13fと、
実効アドレス制御ロジック13gと、インストラクショ
ン・デコーダ13hと、条件コードロジック(CCロジ
ック) 131である。これらの素子13a〜13iは
、第3図に示されているように、エミュレータ・アシス
ト・ユニット・レジスタに内部接続されている。
動作上、制御ロジック13gはレジスタE−PRE、E
−OP、E−EAの内容を調べ、それらの内容とエミュ
レータ・アシストユニットのインストラクションに基づ
いて、ロジック13gは信号5EGCNTL、ICNT
L、DCNTL、RCNTLを生成する。5EGCNT
L信号はセグメントレジスタES、CS、SS、DS、
FS。
GSのいずれか1つの内容を加算器13aに渡す。I 
CNTL信号はインデックスレジスタDI、SIの1つ
の内容を加算器13bに渡す。DCNTL信号はレジス
タAX、BX、CX、DX、IP、BPの1つの内容を
加算器13bとシフタ13fに渡す。
上記選択されたレジスタの内容の全ては素子13a〜1
3fにより結合されて、加算器13eにおいて、インテ
ル80X86系のインストラクションとそのオペランド
のメモリアドレスを形成する。オペランドアドレスは前
述した2ビツトのMODフーイールド、3ビツトのRE
Gフィールド。
3ビツトのR/Mフィールドにより指定される。
このアドレシングはモトローラのホスト・プロセサのオ
ペランドのメモリアドレスを形成するやり方とは完全に
異なる。かくして、エミュレータ・アシスト・ユニット
13はモトローラ系のインストラクションの1つ以上の
単純な拡張を提供する。その代りに、これは、モトロー
ラの68030プロセツサでは効率良くエミュレートす
ることはできない新たなコンピュータアーキテクチャ(
即ち、インテル80X86アーキテクチヤ)を提供する
ものとなる。
インストラクションデコーダ13hは入力としてエミュ
レータ・アシスト・ユニットのインストラクションを受
け、これに応答して、デコーダは制御信号lN5TCN
TL、C5CNTL、DCNTLDCNTL、IPCN
TLを生成する。信号lN5CNTLは80X86系の
インストラクションの対応部分をレジスタE−PRE、
E−OP、E−EAにロードする。C3CNTL信号は
CSレジスタの内容を加算器13aに渡す、DCNTL
信号は80X86系のインストラクションのディスプレ
ースメント(DISP)とデータ部分をレジスタE−D
ISP、E−DATAにロードする。信号I PCNT
LはIPレジスタの内容を加算器13bに渡す。同様に
して、条件コードロジック13iはレジスタE−RES
、E−8RCI 、E−SRC□の内容を調べる。そし
て、エミュレータ・アシスト・ユニットのインストラク
ションに応答して、このロジックは条件コードをE−F
LAGにセットするための制御信号CCCNTLを発生
する。ここで、再び、これらの仕事はホスト・プロセサ
によっては効率良く行なうことはできないということを
言っておく。
エミュレータ・アシスト・ユニット13に含まれるもの
はバスインターフェースロジック13jである。それは
、コ・プロセッサとしてバス11上で情報を送受するの
に必要な種々のレジスタや制御からなる。このバス・イ
ンターフェース・ロジック13Jは、これが、MC68
030のコ・プロセッサのインターフェース要求仕様(
これは前述したMC68030ユーザマニユアルに与え
られている)を満たすものである限りは、いかなる構成
をも許容する。このインターフェース・ロジック13J
を通して、エミュレータ・アシスト・ユニット13はモ
トローラのホスト・プロセサに密に結合されている。特
に、情報は、ホスト・プロセサ10.エミュレータ・ア
シスト・ユニット13.メモリ15間で、1つのインス
トラクションを介してホストによるいかなる割り込みも
必要とせずに、やり取りされる。
第4図は、エミュレータ・アシスト・ユニット13がエ
ミエレーション過程で、ホスト・プロセッサ10や制御
プログラム17と協同するときのタイミングチャートを
示す。
先ず、時刻t、において示されているように、ホストコ
ンピュータプログラム10は制御プログラム17からの
インストラクションを読む。
E″で添字されたインストラクションは、全て、それが
エミュレータ・アシスト・ユニット13のためのもので
あることを示している。時刻t1において、ホスト・プ
ロセサ10はE−DECODEインストラクションをエ
ミュレータ・アシスト・ユニット13に渡す。このE−
DECODEインストラクションを受けると、エミュレ
ータ・アシスト・ユニット13は、ユーザプログラム1
6において実行されることになるインテル80286の
次のインストラクションのメモリアドレスを計算する。
そしてそのアドレスをホスト・プロセサに送る。このメ
モリアドレスを計算するに際し、デコードロジック13
hは、レジスタIPとC8の内容をエミュレータ・アシ
スト・ユニットの加算器を通じてE−MBASEレジス
タの内容と共に渡す。
次に、ホスト・プロセサ10は上記アドレスを使ってメ
モリ15からインテル系のインストラクション16aを
取出す。そのインテル系のインストラクションはそれか
らホスト・プロセサ10によってエミュレータ・アシス
ト・ユニット13に送られる。インテル系のインストラ
クションを受けると、エミュレータ・アシスト・ユ゛ニ
ット13はそれを次のように分割する。そのインストラ
クションのOPココ一部分はE−OPレジスタに行<、
MOD、R/M、SIBフィールドはE−EAレジスタ
に行く、インストラクションのディスプレースメント部
分(もしあるならば)はE−DISPレジスタに行く、
そのインストラクションのイミーデイエート・データ部
分(もしあるならば)はE−DATAレジスタに行く。
そのインストラクションのプレフィックス部分(もしあ
るならば)はE−PRHに行く。
次に、を雪において、ホスト・プロセサ10は制御プロ
グラム17からのもう1つのインストラクションを読む
、このインストラクションはEでプレフィックスされる
。そして、それはエミュレータ・アシスト・ユニット1
3に渡される。そこにおいて、そのインストラクション
は、E−OPレジスタのホストへの転送を要求するよう
に、デコードロジック13hによってデコードされる。
そして、E−OPレジスタがバスインターフェースロジ
ック13Jに転送され、このロジックがレジスタE−O
Pを代ってホストに戻すように、工N5CNTL信号が
発生される。
次に、時刻t3において、ホスト・プロセサ10は、J
UMP指令であるところのもう1つの制御プログラムイ
ンストラクションを読出す。このJUMPはホスト・プ
ロセサ10において実行される。そして、それはホスト
・プロセサ10に、そのレジスタD、(今や、インテル
のOPコードを含んでいる)の内容を使ってメモリアド
レスを生成させる。そして、そのアドレスのメモリ15
の内容を読出す。そして、そのプログラムカウンタをメ
モリから読んだ通りの場所に変えることによりジャンプ
する。これにより、各々異なるインテル系のOPコード
は制御プログラム17における対応する異なる場所にジ
ャンプを起こさせることができる。
1つの特別な例として、第4図は、OPコードがインテ
ル系のADDインストラクションである場合に起こる分
岐を図示する。その場合に、制御プログラムの次のイン
ストラクション(それは時刻t4に実行される)はエミ
ュレータ・アシスト・ユニット13に対するものである
。このインストラクションに応答して、エミュレータ・
アシスト・ユニット13はインテル系のADDインスト
ラクションが必要とする1つのオペランドのメモリアド
レスを計算する。このメモリアドレスを計算するために
、実効アドレスの制御ロジック13gは、しかるべきレ
ジスタの内容が加算器13a〜13tを通じて渡される
ように、制御信号5EGCNTL、ICNTL、DCN
TL、RCNTLSを発生する。加算器13eからの結
果としてのアドレスはホスト・プロセサ10に送られ、
そこで、ホスト・プロセサ10はメモリ15からオペラ
ンドを取出して、それをエミュレータ・アシスト・ユニ
ット13に返す。そこでは、そのオペランドはバイトが
スワップされ、符号が拡張されて、その結果がレジスタ
E−TEMPに格納される。
次に、時刻t6において、制御プログラムのもう1つの
インストラクションがホスト・プロセサ10により取出
される。このインストラクションはエミュレータ・アシ
スト・ユニット13に渡される。そして、エミュレータ
・アシスト・ユニット13は、レジスタE−TEMPの
内容をホスト・プロセサ10に渡し、且つレジスタE−
TEMPの内容をレジスタESRC+に置くことにより
、そのインストラクションを実行する。
次に、時刻t6において、制御プログラムのもう1つの
インストラクションがホスト・プロセサ10から読出さ
れ、続いて、そのインストラクションはエミュレータ・
アシスト・ユニット13に渡される。これに応答して、
デコードロジック13hは、インテル系のインストラク
ションが行なうように、レジスタAX、BX、CX、D
Xの1つの内容を選択する。そして、それは当該レジス
タをホストに送り戻す。また、その選択されたレジスタ
の内容はレジスタE−5RC,に置かれる。
次に、時刻t、において、ホスト・プロセサ10は制御
プログラムのもう1つのインストラクションを読出す。
この時刻はそれ自身の実効のためである。このインスト
ラクションにより、ホスト・プロセサ10はレジスタD
o、D+の内容を加算し、結果をDoに入れる。このオ
ペレーションにより現在エミュレーションされつつある
イン−、チル系インストラクションにより指定された加
算を実行する。
次に時刻t、において、ホスト・プロセサ10は制御プ
ログラムのもう1つのインストラクションを読出す、そ
して、ホスト・プロセサlOはレジスタD0の内容をエ
ミュレータ・アシスト・ユニット13に送ると、このエ
ミユレータ・アシスト・ユニット13は代りに、そのデ
ータをレジスタE−TEMPとE−RESに格納する。
次に時刻t9において、ホスト・プロセサ1゜は制御プ
ログラムのもう1つのインストラクションを読出して、
それを実行のためにエミュレータ・アシスト・ユニット
13に送る。そして、エミュレータ・アシスト・ユニッ
ト13内の実効アドレス制御ロジック13gが制御信号
5EGCNTL、ICNTL、DCNTL、RCNTL
Sを発生すると、メモリアドレスが加算器13eの出力
に発生される。このアドレスはインテル系のADDイン
ストラクションの結果が格納されるべき場所である。そ
のアドレスはバイトスワップされた加算結果と同様に、
エミュレータ・アシスト・ユニット13により、ホスト
・プロセサ10に渡される0代りに、ホスト・プロセサ
10はバイトスワップされた加算結果をその指定された
位置のメモリに書込む。
次に、時刻t、。において、ホスト・プロセサ10は制
御プログラムのもう1つのインストラクションを読出し
、それをエミュレータ・アシスト・ユニット13に送る
。応答的に、条件コードロジック13iは、レジスタE
−RES、E−5RCI 、E−SRC!の内容を使っ
て、E−FLAGレジスタ内に標識をセットして、それ
らがインテル系のADDインストラクションの結果を反
映するようにする。
最後に、ホスト・プロセサ10は制御プログラムのもう
1つのインストラクションを読出す。このインストラク
ションは、ホスト・プロセサ10をして、時刻t1にお
いて実行された制御プログラムの最初にジャンプして戻
らせしめる。その後、上述のtl、ti 、tsのシー
ケンスが繰返されて、エミュレーションされるべき次の
インテル系のインストラクションを取出して、セットア
ツプする。そして、時刻t、におけるジャンプは、その
次のインテル系のインストラクションをエミュレーショ
ンするために、ホスト・プロセサ10とエミュレータ・
アシスト・ユニット13の間のタスクを分割するところ
の制御プログラム17のその部分に対してである。
上述のように、インテル80X86系インストラクシヨ
ンをエミュレーションするタスクを分割することにより
、エミュレータ・アシスト・ユニット13の複雑さは、
エミュレータ・アシスト・ユニット13がそのエミュレ
ーションのタスクの全てを実行するとしたら必要となる
であろう複雑さよりも、かなり減少されている。例えば
、エミュレータ・アシスト・ユニット13は、ホスト・
プロセサ10にあるような、インテル80X86のOP
コードにより指定された動作を実行する演算論理回路の
複製をもつ必要はない。また、エミュレータ・アシスト
・ユニット13は、メモリ15とインターフェースする
のに必要な、ホスト・プロセサ10の制御回路やレジス
タのいかなるものの複製ももつ必要はない。
また、上述のように、エミュ・レーションのタスクを分
割することにより、実行速度において、ホストのソフト
ウェアでもってエミュレーションを全体的に実行するこ
とにより得られるよりも、実質的な速度の向上が得られ
る。例えば、インテル80X86のADDインストラク
ションが第4図で説明したように実行される場合は、全
部で丁度11個のホストアシストユニットのインストラ
クションが必要となる。それに対し、同じインテル80
X86のADDインストラクションをモトロラ6803
0のホストソフトウェアだけでエミュレーションする場
合は、200を超えるMC68030インストラクシヨ
ンが必要となろう。
更に、比較を行なうために、インテル80X86のAD
Dインストラクションのタスクが第4図に示したように
ホスト・プロセサlOとエミュレータ・アシスト・ユニ
ット13の間で分割されてはいるものの、ユニット13
はコ・プロセサとしてではなく、ホスト・プロセサ10
と割り込みでやり取りをするI10デバイスとして動作
するように修正された場合を想定しよう。このような場
合は、エミュレータ・アシスト・ユニット13が情報を
ホスト・プロセサ10に転送する度に、ホスト・プロセ
サ10は、割り込みをかけている全てのデバイスを識別
し、それから順番に割り込みにサービスするような割り
込みプログラムの実行を余儀なくされるであろう。この
ような割り込みサービスは各々、モトローラ68030
インストラクシヨンを5つ必要とし、第4図のADDに
おいては、9個の上述のデータ転送は発生するであろう
第5A図、第5B図は、実効アドレス制御ロジック13
gがどのように動作するかの詳細を付加的に示している
。特に、第5A図は、インテル80286インストラク
シヨンのR/Mフィールドにおける色々なビットの組合
せを示すとともに、それが選択する対応レジスタを示し
ている。第5B図は、インテル80286インストラク
シヨンのMODフィールドにおける色々なビットの組合
せを示すと共に、それが第5A図のレジスタにどのよう
に影響を与えるかを示している。第5C図は、インテル
80286インストラクシヨンのREGフィールドにお
ける色々なビットの組合せを示すと共に、それがどのよ
うにインテルのレジスタを選択するかを示している。第
5D図はインテル80286のセグメントレジスタがど
のように選択されるかを示す。これらのレジスタ選択の
全ては実効アドレス制御ロジック13gによりなされる
。このロジックは組合せロジック回路を用いて、E−P
RE、E−OP、E−EAレジスタ内のR/M、MOD
、REGフィールドをデコードし、応答的に、適当な5
EGCNTL、ICNTL、DCNTL、RCNTLと
いう制御信号を生成して、正しいレジスタが加算器13
a〜13eに渡されるようにする。これらのロジック回
路は例えば、プログラム可能なロジックアレーであって
もよい。同様に、制御回路13i、13hはプログラム
可能なロジックアレーからなっていてもよい。
本件発明の好適な実施例はかくして詳細に説明されてき
た。しかしながら、更に多くの変更や修正を本件発明の
要旨から離れることなくてなすことは可能である。例え
ば、エミュレーションされるべきコンピュータはインテ
ルの80X86に限られない。他の多くのコンピュータ
も第1図システムによりエミュレーションが可能である
。エミュレーションされるべき新たなインストラクショ
ンセットに対して1、第3図に示したレジスタや制御の
詳細はその新たなインストラクションに適合するように
変更されよう、しかし、タスクが分割される態様は同じ
である。
また、ホスト・プロセサ10は68030である必要は
ない、それは、コー・プロセサインターフェースを有し
、エミュレータ・アシスト・ユニットとの間で処理に割
り込むことなくデータ転送が可能なものであれば、いか
なるプロセサであってもよい。モトローラ68030で
は、かかるデータ転送は第6図のフォーマットを有する
インストラクションにより開始される。最初の16ビツ
トワードのビット15乃至12が1111であれば、そ
れは、そのインストラクションがホストよりもむしろエ
ミュレータ・アシスト・ユニット13に対してのもので
あることを示す。第2の16ビツトワードの全ビットは
エミュレータ・アシスト・ユニットが行なうべき実際の
タスクを指定する。これらのタスクはエミュレータのデ
ザイナにより指定され、オプションの第3の16ビツト
ワードはそのタスクに用いられる付加的な情報を特定す
るのに使われる。これらの全ては、第4図で“E”とプ
レフィックスされたインストラクションがどのように実
現されているかの単なる例である。
したがって、本件発明は上述の説明に限定されるず、添
付の請求の範囲により規定される。
【図面の簡単な説明】
本発明の色々な特徴及び長所は添付の図面により説明さ
れる。 第1図は本件発明に係るコ・プロセサ・エミュレータを
示す図、 第2A図は第1図のシステムがエミュレーションするユ
ーザ(即ち、ターゲット)インストラクションのフォー
マットを示す図、 第2B図は第1図のホスト・プロセサが実行するインス
トラクションのフォーマットを示す図、第3図は、第1
図システムのエミュレータ・アシスト・ユニットの好適
なアーキテクチャの詳細を示す図、 第4図は、第1図のエミュレータのエミュレータ・アシ
スト・ユニットとホスト・プロセサとメモリが協同して
ユーザ・インストラクションを実行する場合のタイムシ
ーケンスを示す図、第5図はユーザ・インストラクショ
ンのオペランドのアドレスが第3図のエミュレータ・ア
シスト・ユニットによりどのように形成されるかを、付
加的に詳細に説明する図、 第6図はエミュレータ・アシスト・ユニットに対するイ
ンストラクションがどのように実行されるかを、付加的
に詳細に説明する図である。

Claims (10)

    【特許請求の範囲】
  1. (1)バスを介して一緒に接続されたところの、ホスト
    プロセサとエミュレータ・アシスト・ユニットとメモリ
    とからなるコ・プロセッサ・エミュレータであって、 前記メモリはユーザプログラムと制御プログラムとを含
    み、そのユーザプログラムはエミュレーション対象のユ
    ーザインストラクションのセットからの一連のユーザイ
    ンストラクションからなり、前記制御プログラムはホス
    ト・プロセサのインストラクションとエミュレータ・ア
    シスト・ユニットのインストラクションとの混成であり
    、前記ホスト・プロセサは、前記ホスト・インストラク
    ションを読んで実行し、前記エミュレータ・アシスト・
    ユニットのインストラクションを読んで前記エミュレー
    タ・アシスト・ユニットにおいて実行されるように渡す
    ところのレジスタ及び制御とを有し、 前記エミュレータ・アシスト・ユニットは、 (a)エミュレーション対象の前記ユーザプログラムに
    おける次のユーザ・インストラクションのためのメモリ
    アドレスを生成し、 (b)前記次のユーザ・インストラクションが動作する
    オペランドの前記メモリ内のメモリアドレスを生成する
    ことにより、前記エミュレータ・アシスト・ユニットに
    応答するところのレジスタ及び制御とを有し、 前記ホスト・プロセサは、 (a)前記エミュレータ・アシスト・ユニットが前記ユ
    ーザ・インストラクションとそのオペランドとを読むた
    めに生成する前記アドレスを用い、 (b)前記ユーザ・インストラクションにより指定され
    た前記オペランドに対してオペレーションを実行するよ
    うに動作する; ことを特徴とするコ・プロセッサ・エミュレータ。
  2. (2)前記バスはモトローラ68030バスであり、前
    記エミュレータ・アシスト・ユニットは、コ・プロセサ
    として前記ホスト・プロセサに割り込むことなく、その
    インストラクションを受け、また、前記メモリアドレス
    を前記バスを介して送るためのバスインターフェースロ
    ジックを有する事を特徴とする請求項の第1項に記載の
    エミュレータ・アシスト・ユニット。
  3. (3)前記ユーザ・インストラクションはR/Mフィー
    ルドとMODフィールドとREGフィールドとを有し、
    また、前記ロジック手段はそれらのフィールドの全てを
    デコードし前記メモリアドレスを生成する事を特徴とす
    る請求項の第1項に記載のエミュレータ・アシスト・ユ
    ニット。
  4. (4)前記ロジック手段は、前記メモリアドレスを形成
    するために並列に動作する5つの加算器を有する事を特
    徴とする請求項の第1項に記載のエミュレータ・アシス
    ト・ユニット。
  5. (5)前記ユーザ・インストラクションの実行結果を示
    す多重の条件コードを保持するフラグレジスタと、所定
    のエミュレータコマンドに応答して前記条件コードをセ
    ットする制御回路とを更に有する事を特徴とする請求項
    の第1項に記載のエミュレータ・アシスト・ユニット。
  6. (6)バスを介して一緒に接続されたところの、ホスト
    ・プロセサとメモリと共にエミュレーションを行なうた
    めに使われるエミュレータ・アシスト・ユニットであっ
    て、前記エミュレータ・アシスト・ユニットは、 前記ホスト・プロセサからバスを介してユーザ・インス
    トラクションを受ける手段と、 前記ユーザ・インストラクション内の種々のフィールド
    により選択的に要求される複数のレジスタと、 前記バスを介して前記ホスト・プロセサから各々のユー
    ザ・インストラクションについて一連のエミュレータコ
    マンドを受けるエミュレータコマンドレジスタと、 前記ユーザ・インストラクションの前記フィールドをデ
    コードすることと、且つそれらのフィールドが前記ユー
    ザ・インストラクションについてのオペランドのメモリ
    アドレスを生成するために選択するレジスタを結合する
    こととによって、あるエミュレータコマンドに応答する
    ロジック手段とを具備したエミュレータ・アシスト・ユ
    ニット。
  7. (7)前記バスはモトローラ68030バスであり、こ
    のエミュレータ・アシスト・ユニットは、コ・プロセサ
    として前記ホスト・プロセサに割り込むことなく、その
    インストラクションを受けまた前記メモリアドレスを前
    記バスを介して送るためのバスインターフェースロジッ
    クを有する事を特徴とする請求項の第6項に記載のエミ
    ュレータ・アシスト・ユニット。
  8. (8)前記ユーザ・インストラクションはR/Mフィー
    ルドとMODフィールドとREGフィールドとを有し、
    また、前記ロジック手段はそれらのフィールドの全てを
    デコードし前記メモリアドレスを生成する事を特徴とす
    る請求項の第7項に記載のエミュレータ・アシスト・ユ
    ニット。
  9. (9)前記ロジック手段は、前記メモリアドレスを形成
    するために並列に動作する5つの加算器を有する事を特
    徴とする請求項の第8項に記載のエミユレータ・アシス
    ト・ユニット。
  10. (10)前記ユーザ・インストラクションの実行結果を
    示す多重の条件コードを保持するフラグレジスタと、所
    定のエミュレータコマンドに応答して前記条件コードを
    セットする制御回路とを更に有する事を特徴とする請求
    項の第9項に記載のエミュレータ・アシスト・ユニット
JP2155536A 1989-06-15 1990-06-15 エミュレータ・アシスト・ユニツト及びそれを用いたコ・プロセツサ・エミュレータ Pending JPH0387930A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US367,271 1989-06-15
US07/367,271 US5077657A (en) 1989-06-15 1989-06-15 Emulator Assist unit which forms addresses of user instruction operands in response to emulator assist unit commands from host processor

Publications (1)

Publication Number Publication Date
JPH0387930A true JPH0387930A (ja) 1991-04-12

Family

ID=23446523

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2155536A Pending JPH0387930A (ja) 1989-06-15 1990-06-15 エミュレータ・アシスト・ユニツト及びそれを用いたコ・プロセツサ・エミュレータ

Country Status (2)

Country Link
US (1) US5077657A (ja)
JP (1) JPH0387930A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004038923A (ja) * 2002-02-06 2004-02-05 Transitive Technologies Ltd プログラムコード変換のための条件コードフラグのエミュレーション
JP2011508921A (ja) * 2007-12-29 2011-03-17 中国科学院▲計▼算技▲術▼研究所 Riscプロセッサ及びレジスタのフラグビットの処理方法
US8776755B2 (en) 2011-07-08 2014-07-15 Dr. Ing. h.c. F. Porsche Aktiengeselleschaft Sound transmission system

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5581695A (en) * 1990-05-09 1996-12-03 Applied Microsystems Corporation Source-level run-time software code debugging instrument
US5228039A (en) * 1990-05-09 1993-07-13 Applied Microsystems Corporation Source-level in-circuit software code debugging instrument
US5809309A (en) * 1990-09-28 1998-09-15 Texas Instruments Incorporated Processing devices with look-ahead instruction systems and methods
US5305446A (en) 1990-09-28 1994-04-19 Texas Instruments Incorporated Processing devices with improved addressing capabilities, systems and methods
IT1255149B (it) * 1992-06-19 1995-10-20 Alcatel Italia Processore di controllo, in particolare per applicazioni di telecomunicazione, apparecchiatura per emularlo e metodo per realizzare una emulazione
US5497456A (en) * 1992-12-31 1996-03-05 Intel Corporation Apparatus for transferring information between an interrupt producer and an interrupt service environment
WO1994027214A1 (en) * 1993-05-07 1994-11-24 Apple Computer, Inc. Method for decoding sequences of guest instructions for a host computer
AU6629894A (en) * 1993-05-07 1994-12-12 Apple Computer, Inc. Method for decoding guest instructions for a host computer
US5574887A (en) * 1993-09-20 1996-11-12 Apple Computer, Inc. Apparatus and method for emulation routine pointer prefetch
US5408622A (en) * 1993-09-23 1995-04-18 Apple Computer, Inc. Apparatus and method for emulation routine control transfer via host jump instruction creation and insertion
US5542059A (en) * 1994-01-11 1996-07-30 Exponential Technology, Inc. Dual instruction set processor having a pipeline with a pipestage functional unit that is relocatable in time and sequence order
US5481684A (en) * 1994-01-11 1996-01-02 Exponential Technology, Inc. Emulating operating system calls in an alternate instruction set using a modified code segment descriptor
US5781750A (en) * 1994-01-11 1998-07-14 Exponential Technology, Inc. Dual-instruction-set architecture CPU with hidden software emulation mode
US6179488B1 (en) 1994-03-23 2001-01-30 Synopsys, Inc. Software execution systems
US5481693A (en) * 1994-07-20 1996-01-02 Exponential Technology, Inc. Shared register architecture for a dual-instruction-set CPU
US5685009A (en) * 1994-07-20 1997-11-04 Exponential Technology, Inc. Shared floating-point registers and register port-pairing in a dual-architecture CPU
US5673418A (en) * 1994-10-07 1997-09-30 Bull Hn Information Systems Inc. Method and apparatus for emulating the operations of an emulated system terminal driver on a host system
US5764956A (en) * 1994-11-07 1998-06-09 Seiko Epson Conporation Computer peripheral function emulator
US5632028A (en) * 1995-03-03 1997-05-20 Hal Computer Systems, Inc. Hardware support for fast software emulation of unimplemented instructions
US5838948A (en) * 1995-12-01 1998-11-17 Eagle Design Automation, Inc. System and method for simulation of computer systems combining hardware and software interaction
US5758140A (en) * 1996-01-25 1998-05-26 International Business Machines Corporation Method and system for emulating instructions by performing an operation directly using special-purpose register contents
US5870587A (en) * 1996-03-20 1999-02-09 International Business Machines Corporation Information-handling system, method, and article of manufacture including a mechanism for providing an improved application binary interface
US5828897A (en) * 1996-12-19 1998-10-27 Raytheon Company Hybrid processor and method for executing incrementally upgraded software
JPH113225A (ja) * 1997-06-13 1999-01-06 Nec Corp 情報処理装置
US6009261A (en) * 1997-12-16 1999-12-28 International Business Machines Corporation Preprocessing of stored target routines for emulating incompatible instructions on a target processor
US6075937A (en) * 1998-03-18 2000-06-13 International Business Machines Corporation Preprocessing of stored target routines for controlling emulation of incompatible instructions on a target processor and utilizing target processor feedback for controlling non-sequential incompatible instruction emulation
US6397242B1 (en) 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
US6480952B2 (en) 1998-05-26 2002-11-12 Advanced Micro Devices, Inc. Emulation coprocessor
US6308255B1 (en) 1998-05-26 2001-10-23 Advanced Micro Devices, Inc. Symmetrical multiprocessing bus and chipset used for coprocessor support allowing non-native code to run in a system
US8631066B2 (en) 1998-09-10 2014-01-14 Vmware, Inc. Mechanism for providing virtual machines for use by multiple users
US7516453B1 (en) * 1998-10-26 2009-04-07 Vmware, Inc. Binary translator with precise exception synchronization mechanism
US7225436B1 (en) 1998-12-08 2007-05-29 Nazomi Communications Inc. Java hardware accelerator using microcode engine
US6332215B1 (en) 1998-12-08 2001-12-18 Nazomi Communications, Inc. Java virtual machine hardware for RISC and CISC processors
US6826749B2 (en) 1998-12-08 2004-11-30 Nazomi Communications, Inc. Java hardware accelerator using thread manager
US20050149694A1 (en) * 1998-12-08 2005-07-07 Mukesh Patel Java hardware accelerator using microcode engine
US6374208B1 (en) 1999-03-11 2002-04-16 Robert D. Ferris System and method for adapting a PC-based application to an automated format
KR20020028814A (ko) * 2000-10-10 2002-04-17 나조미 커뮤니케이션즈, 인코포레이티드 마이크로코드 엔진을 이용한 자바 하드웨어 가속기
US8769508B2 (en) 2001-08-24 2014-07-01 Nazomi Communications Inc. Virtual machine hardware for RISC and CISC processors
US7506321B1 (en) 2002-06-11 2009-03-17 Unisys Corporation Computer emulator employing direct execution of compiled functions
JP3938580B2 (ja) * 2004-12-21 2007-06-27 株式会社ソニー・コンピュータエンタテインメント 情報処理装置、情報処理方法、半導体装置、コンピュータプログラム
US20150113204A1 (en) * 2013-10-17 2015-04-23 National Chiao Tung University Data storage device and computing system with the same

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3374466A (en) * 1965-05-10 1968-03-19 Ibm Data processing system
US3544969A (en) * 1967-11-27 1970-12-01 Standard Computer Corp Language independent computer
US3646522A (en) * 1969-08-15 1972-02-29 Interdata Inc General purpose optimized microprogrammed miniprocessor
FR2253435A5 (ja) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
US4447876A (en) * 1981-07-30 1984-05-08 Tektronix, Inc. Emulator control sequencer
US4514803A (en) * 1982-04-26 1985-04-30 International Business Machines Corporation Methods for partitioning mainframe instruction sets to implement microprocessor based emulation thereof
US4527234A (en) * 1982-08-02 1985-07-02 Texas Instruments Incorporated Emulator device including a semiconductor substrate having the emulated device embodied in the same semiconductor substrate
EP0124517A1 (en) * 1982-10-22 1984-11-14 International Business Machines Corporation Accelerated instruction mapping external to source and target instruction streams for near realtime injection into the latter
US4729094A (en) * 1983-04-18 1988-03-01 Motorola, Inc. Method and apparatus for coordinating execution of an instruction by a coprocessor
JPS6017539A (ja) * 1983-07-11 1985-01-29 Hitachi Ltd エミユレ−シヨン方式
US4591982A (en) * 1983-08-29 1986-05-27 International Business Machines Corporation Storage selection override apparatus for a multimicroprocessor implemented data processing system
US4695945A (en) * 1985-02-28 1987-09-22 International Business Machines Corporation Processor I/O and interrupt filters allowing a co-processor to run software unknown to the main processor
US4638423A (en) * 1985-03-06 1987-01-20 Motorola, Inc. Emulating computer
US4763242A (en) * 1985-10-23 1988-08-09 Hewlett-Packard Company Computer providing flexible processor extension, flexible instruction set extension, and implicit emulation for upward software compatibility
US4920481A (en) * 1986-04-28 1990-04-24 Xerox Corporation Emulation with display update trapping
US4859995A (en) * 1987-06-30 1989-08-22 Xerox Corporation Mouse pointer with switchable emulation mode
US4888680A (en) * 1987-10-14 1989-12-19 Little Blue Limited Partnership Peripheral device interface and controller

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004038923A (ja) * 2002-02-06 2004-02-05 Transitive Technologies Ltd プログラムコード変換のための条件コードフラグのエミュレーション
US8024555B2 (en) 2002-02-06 2011-09-20 International Business Machines Corporation Condition code flag emulation for program code conversion
JP2011508921A (ja) * 2007-12-29 2011-03-17 中国科学院▲計▼算技▲術▼研究所 Riscプロセッサ及びレジスタのフラグビットの処理方法
US8776755B2 (en) 2011-07-08 2014-07-15 Dr. Ing. h.c. F. Porsche Aktiengeselleschaft Sound transmission system

Also Published As

Publication number Publication date
US5077657A (en) 1991-12-31

Similar Documents

Publication Publication Date Title
JPH0387930A (ja) エミュレータ・アシスト・ユニツト及びそれを用いたコ・プロセツサ・エミュレータ
US6564179B1 (en) DSP emulating a microcontroller
JPS6339931B2 (ja)
JPS6311697B2 (ja)
JPH10254696A (ja) プロセッサ及び情報処理装置
US5748970A (en) Interrupt control device for processing interrupt request signals that are greater than interrupt level signals
JPH04233640A (ja) メモリ拡張スキームを切り替える疑似直線バンクを有するマイクロコントローラ
JP3237858B2 (ja) 演算装置
JP2001504959A (ja) Riscアーキテクチャを有する8ビットマイクロコントローラ
US4347566A (en) Data processor with register file and arithmetic logic circuit on one chip and register means directly connected to the chip
EP0745932B1 (en) Microprocessor supporting variable length instruction execution
JP2004086837A (ja) データ処理装置
JPS645330B2 (ja)
JPH0683582A (ja) データ演算装置
JP2826309B2 (ja) 情報処理装置
JPH03201030A (ja) プロセッサ
JPS6217773B2 (ja)
JPS6057435A (ja) マイクロプロセツサ
US5463747A (en) Microprogram data processor processing operand address calculation and instruction execution with common hardware
JP2731618B2 (ja) エミュレータ
JPH0340422B2 (ja)
JPH06149563A (ja) データ処理装置
JP2696578B2 (ja) データ処理装置
JPH02259839A (ja) データ処理装置
JPS58195963A (ja) デ−タ処理装置