JPH09212370A - ゲスト命令をエミュレートするプロセッサの性能改善方法及びシステム - Google Patents

ゲスト命令をエミュレートするプロセッサの性能改善方法及びシステム

Info

Publication number
JPH09212370A
JPH09212370A JP8338287A JP33828796A JPH09212370A JP H09212370 A JPH09212370 A JP H09212370A JP 8338287 A JP8338287 A JP 8338287A JP 33828796 A JP33828796 A JP 33828796A JP H09212370 A JPH09212370 A JP H09212370A
Authority
JP
Japan
Prior art keywords
instruction
processor
register
guest
general
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.)
Granted
Application number
JP8338287A
Other languages
English (en)
Other versions
JP3193651B2 (ja
Inventor
James A Kahle
ジェームス・エー・カール
Marric Somia
ソウミャ・マリック
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH09212370A publication Critical patent/JPH09212370A/ja
Application granted granted Critical
Publication of JP3193651B2 publication Critical patent/JP3193651B2/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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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
    • G06F9/30174Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【課題】第1および第2のオペランドを含んでいるゲス
ト命令をエミュレートするプロセッサの性能を改善す
る。 【解決手段】第1のオペランドは汎用レジスタにストア
され、第2のオペランドは専用レジスタにストアされて
いる。本願発明は、第2のオペランドを専用レジスタか
ら汎用レジスタへ移動することなく、第1のオペランド
および第2のオペランドを用いて操作を実行するホスト
命令を提供する。これは、即値データを操作するのに必
要な意味ルーチンの命令の数をゲスト命令から減らし、
エミュレーション性能を増大させる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ホストプロセッサ
におけるゲスト命令をエミュレートする方法およびシス
テムに関し、特に、専用レジスタの内容を操作する命令
を与えることによって、エミュレーション性能を改善す
る方法およびシステムに関する。
【0002】
【従来の技術】モトローラのPowerPCTMなどのホ
ストプロセッサ上で、インテルのx86命令セットなど
のゲスト命令セットをソフトウェアでエミュレートする
方法には2つある。第1の方法は、インタープリタを用
いる交換処理として知られ、第2の方法は、ダイナミッ
クトランスレータを用いる動的変換として知られてい
る。インタープリタは、従来のホストプロセッサにおけ
るハードウェアにより行われるフェッチ、デコードおよ
び実行サイクルに似ている。ダイナミックトランスレー
タは、ゲスト命令のブロックをフェッチおよびデコード
し、それらをホスト命令へ翻訳する。それらは、その後
再利用される。いずれの方法にも長所と短所がある。
【0003】インタープリタは、一般に、メモリ消費は
少ないが、ダイナミックトランスレータより実行が遅
い。ダイナミックトランスレータは、ゲストプログラム
が、頻繁に再利用されるパーツを含んでいると、うまく
実行される。しかし、ゲストプログラムが、以前に翻訳
したパーツを修正するときは、うまく実行されない。
【0004】我々は、インタープリタの小さなサイズお
よびダイナミックトランスレータの実行速度の両者の長
所を有するような解決策を得るために、ソフトウェアエ
ミュレーション方法を支援するハードウェアを開発し
た。その支援するハードウェアを使用する前に、各ゲス
ト命令の機能を実行するのに必要なホスト命令のシーケ
ンスは、意味ルーチンと呼ばれる個別の関数にコンパイ
ルされ、メモリにストアされる。ハードウェアは、ソフ
トウェアと共に作動して、ゲスト命令をフェッチし、そ
れらをデコードし、ホストプロセッサにある対応する意
味ルーチンをディスパッチする。
【0005】ゲスト命令の中には、1つかそれ以上のソ
ースオペランドの操作を実行し、その結果を宛先オペラ
ンドにストアするものがある。一般に、2-オペランド
命令の第1のオペランドは、レジスタまたはメモリロケ
ーションの内容のいずれかであり、第2のオペランド
は、通常、レジスタまたは数値定数である即値データの
内容のいずれかである。
【0006】ゲスト命令をエミュレートするときには、
一般に、ハードウェア支援ユニットは、ゲスト命令から
のソースオペランドを、ホストプロセッサ内の、1つか
それ以上の汎用レジスタ(GPR)にストアする。しか
し、即値データであるソースオペランドは、一般に、ハ
ードウェア支援ユニット内の専用レジスタ(SPR)に
ストアされる。
【0007】ゲスト命令が、加算などの操作をソースオ
ペランドおよび即値データに実行するときは、GPR内
のソースオペランドは、SPR内の即値データに加算さ
れなければならない。しかし、この加算は、一般に、G
PRの内容しか加算できないホストプロセッサ内の整数
ユニットにより実行される。そのため、SPRの内容を
操作する意味ルーチンは、SPRの内容をGPRへ移動
する追加のホスト命令を含んでいなければならない。整
数ユニットは、次に、第1のGPRのオペランドを、第
2のGPRの即値データに加算することができる。この
方法の短所は、意味ルーチン内の追加の移動命令の実行
が、プロセッサのエミュレーション性能を大幅に遅くす
る可能性があることである。
【0008】
【発明が解決しようとする課題】従って、必要とされて
いるものは、専用レジスタの内容を操作する命令を用い
たエミュレーション性能を改善する方法およびシステム
である。本発明は、かかる必要性に取り組んだものであ
る。
【0009】
【課題を解決するための手段】本発明は、第1および第
2のオペランドが含まれているゲスト命令をエミュレー
トするプロセッサの性能を改善する方法およびシステム
を提供する。第1のオペランドは、汎用レジスタにスト
アされており、第2のオペランドは、専用レジスタにス
トアされている。この方法およびシステムは、第2のオ
ペランドを専用レジスタから汎用レジスタへ移動するこ
となく、第1のオペランドおよび第2のオペランドを用
いて操作を実行するホスト命令を提供する。
【0010】ここに開示したシステムおよび方法によれ
ば、本発明は、即値データを操作する意味ルーチン内の
命令の数を減らし、それによって、意味ルーチンの実行
時間が減少し、エミュレーション性能が増大される。
【0011】
【発明の実施の形態】本発明は、ホストプロセッサのゲ
スト命令のエミュレートにおける改善に関するものであ
る。好ましい実施形態のさまざまな変形例は、当業者に
直ちに明らかとなるものであり、ここに示した一般的な
原理はその他の実施例にも適用される。このように、本
発明は、本実施例に限られるものではなく、ここに説明
した原理および特徴に従う最も広い範囲に適用される。
【0012】図1は、ホストプロセッサ10の高水準ア
ーキテクチャを示すブロック図である。一般に、プロセ
ッサ10は、メモリ12、レベル2(L2)キャッシュ
14、データキャッシュ16、命令キャッシュ(IC)
18、命令キュー(IQ)20、分岐予測ユニット2
2、機能ユニット24−32および完了バッファ34と
いったさまざまなハードウェアコンポーネントを用いて
ネイティブソフトウェア命令を実行する。
【0013】本発明の好ましい実施形態においては、プ
ロセッサ10は、PowerPC(PPC)命令セット
を実行するモトローラ社製PowerPCである。PP
C命令セットを実行するほか、プロセッサ10は、イン
テルx86命令およびモトロ−ラ68Kコンプレックス
・インストラクション・セット・コンピュータ(CIS
C)命令といった複数のゲスト命令38をエミュレート
することもできる。
【0014】ゲスト命令38をエミュレートする際に、
プロセッサ10を支援する役割のコンポーネントは、エ
ミュレーション支援ユニット(EAU)36である。プ
ロセッサ10に、ゲスト命令38をエミュレートさせる
ためには、まず、各ゲスト命令38を、ホストプロセッ
サ10でゲスト命令38の機能を実行する意味ルーチン
40と呼ばれる対応するホスト命令セットへ翻訳する。
各意味ルーチン40は、メモリ12の特定のアドレス位
置にストアされる。ゲスト命令38(およびデータ)も
このメモリ12にストアされる。
【0015】操作の際、プロセッサ10は、ゲスト命令
38およびデータをL2キャッシュ14およびデータキ
ャッシュ16へそれぞれキャッシュする。EAU36
は、ゲスト命令38をフェッチおよびデコードし、次
に、ゲスト命令38をそれぞれ対応する意味ルーチン4
0のホストメモリアドレスへマップする。プロセッサ1
0は、特定のメモリアドレスに位置する意味ルーチン4
0を命令キャッシュ18へフェッチする。次に、意味ル
ーチン40に含まれるホスト命令は、IQ20へ移され
る。さらに、各ホスト命令は、分岐予測ユニット22お
よび機能ユニット24−32を用いてデコードされ、実
行される。意味ルーチン40が、実行されて、その結果
が、完了バッファ34にストアされた後、EAU36
は、次のゲスト命令38のホストアドレスをマップし、
このプロセスを繰り返す。
【0016】図2は、EAU36のブロック図を示して
いる。EAU36には、命令バッファ50、プリフェッ
チユニット52、専用レジスタ(SPR)54、デコー
ドユニット56、分岐ヒストリテーブル58、タグ生成
ユニット60、ゲストキャッシュ(gcache)62
およびgcache命令キュー64が含まれている。E
AU36のこれらの機能が、ダイレクトマッピングスキ
ーマを用いて、ゲスト命令38のエミュレートの際にプ
ロセッサ10を支援する。
【0017】まず、ゲスト命令38は、プリフェッチユ
ニット52によりデータキャッシュ16からプリフェッ
チされる。次に、ゲスト命令38が、命令バッファ50
へロードされ、デコードユニット56へ移される。ゲス
ト命令38のホストアドレスへのダイレクトマッピング
が、その構文により複雑なため、デコードユニット56
がゲスト命令38を構文解析またはデコードするのに使
われ、長さ、分岐タイプおよび即値データを決定する。
命令38が分岐の場合には、分岐ヒストリテーブル58
を使って、次のプリフェッチアドレスを予測する。
【0018】gcache62は、各意味ルーチン40
のエントリおよびそれに対応するホストメモリアドレス
を含む配列である。ゲスト命令38がデコードされた
後、タグ生成ユニット60が命令38を固有のopco
deタグにコンバートし、このopcodeタグが対応
する意味ルーチン40のアドレスへアクセスするための
gcache62へのインデックスとして使われる。
【0019】ゲスト命令38は、デコードされ、対応す
る意味ルーチン40がわかるようになると、意味ルーチ
ン40とそのアドレスがgcache命令キュー64に
ストアされる。gcache命令キュー64における各
エントリには、オフセットフィールドおよびデータフィ
ールドが含まれている。オフセットフィールドは、意味
ルーチン40のホスト(PowerPC(PPC))ア
ドレスへのポインタである。データフィールドには、意
味ルーチン40が処理するゲスト命令からの即値データ
が含まれている。本発明の好ましい実施形態において
は、オフセットフィールドおよび即値データを含むデー
タフィールドは、SPR54にストアされる。
【0020】図1および図2の両方を参照すると、プロ
セッサ10は、命令キュー64の最初のエントリをライ
ン66を介してフェッチし、適切な意味ルーチン40を
実行するためにメモリ12から検索する。各意味ルーチ
ン40における最後の命令は分岐命令であり、好ましい
実施形態においては、ゲストディスパッチ完了(gdi
sc)命令68である。プロセッサ10が、gdisc
命令68をフェッチおよびデコードすると、プロセッサ
10がライン68を介して命令キュー64から次の意味
ルーチン40のアドレスをフェッチするようになる。
【0021】好ましい実施形態においては、実施される
次の意味ルーチン40のアドレスは、カレント命令ポイ
ンタ(IP)70にストアされる。gdisc命令68
のデコードはまた、次のIP72をカレントIP72へ
移動もさせる。また、同様に、好ましい実施形態におい
ては、gdisc命令は、無条件分岐命令であるが、プ
ロセッサに次の意味ルーチンをフェッチさせる命令を使
っても良い。
【0022】一般に、データ転送、算術演算および論理
命令などのいくつかの異なる機能タイプのゲスト命令が
ある。これらのタイプの命令が、命令により即値デー
タ、レジスタ、またはメモリ位置に操作を行うかどうか
を指定する。例えば、サンプルのゲスト命令は次のフォ
ーマットとなる。 ADD G1,'4 これは、「ADD」命令が、GPRの内容に即値4を加
算をするということを示している。再び図2を参照する
と、サンプルゲスト命令38は、ゲスト「ADD」命令
に対応する意味ルーチン40を使ってプロセッサ10で
エミュレートされる。この意味ルーチン40がいったん
ディスパッチされると、整数ユニット28および30の
うち一つにより実行される。これの意味するところは、
整数ユニット28および30が同一であるということで
ある。
【0023】図3には、従来の整数ユニット(IU)の
ブロック図が示されている。IU31には、複数の汎用
レジスタ100、整数命令ユニット102、算術演算論
理ユニット(ALU)104、マルチプレクサ106お
よびリネームバッファ108が含まれている。
【0024】IU31へ送られる「ADD」などのホス
ト整数命令は、それらをデコードし実行する整数命令ユ
ニット102により受け取られる。
【0025】GPR100は、ホスト整数命令のオペラ
ンドをストアする。オペランドは、ALU104の入力
として使われ、特定の算術演算操作をオペランドに行
う。ALU104からの結果は、マルチプレクサ106
へ入力され、マルチプレクサの出力はリネームバッファ
108にストアされる。リネームバッファの内容は、後
にGPR100へ移動しても良い。
【0026】IQ64のエントリをストアするSPR5
4は、gbus110を介してIU28のマルチプレク
サ106に連結される。ゲスト命令がGPR100のオ
ペランドを即値データへ加算することを指定するとき、
この加算を行う対応する意味ルーチンは、即値データを
SPR54からGPR100へ移動するホスト命令を含
んでいなければならない。
【0027】上記のゲスト加算命令をエミュレートする
意味ルーチン40には、例えば、次の命令が含まれてい
る場合がある。 MFSPR imm.,temp ADD G1,temp GDISC ホスト命令MFSPR(Move From SPR)
は、即値データをSPR54から、GPR100の一つ
にストアされるtempと呼ばれる一時変数へコピーす
る移動命令である。ホスト「ADD」命令により、AL
U104は、G1の内容をGPR100にストアされて
いるtempの内容に加える。すると、加算の結果がリ
ネームバッファ108にストアされる。上述のとおり、
GDISC命令により、プロセッサは、実行すべき次の
意味ルーチンをフェッチする。
【0028】例として挙げた意味ルーチン40でのよけ
いな「MFSPR」命令は、プロセッサ10のエミュレ
ーション性能を大幅に遅くする可能性がある。これは、
意味ルーチンがSPR54にストアされた即値データを
操作するときは必ず、MFSPR命令を実行するための
よけいなプロセッササイクルが必要であることによる。
【0029】本発明は、SPR54の内容を直接操作す
る命令を与えることによってエミュレーションの性能を
改善する方法およびシステムである。本発明による方法
およびシステムをより詳細に説明するために、かかるシ
ステムの一実施例のブロック図を示す図4を参照する。
【0030】図4は、本発明による整数ユニット(I
U)28を示すブロック図である。本発明によれば、S
PR54をALU104と直接連結するためにqbus
112が提供されている。これにより、最初にSPR5
4の内容をGPR100へ移動することなく、ALU1
04は、SPR54で実行すべき操作を行う。
【0031】本発明は、この新しい特徴を利用するため
に、新しいホスト命令のセットを定義している。これら
の新しい命令は、即値データを有するゲスト命令38を
エミュレートする意味ルーチン40に使われる。
【0032】図5は、SPR54にストアされる即値デ
ータを操作する新しいPPC命令のセットをリストする
表である。命令にあるニーモニック「RT」は、宛先と
して使われるGPR100を指定し、一方ニーモニック
「RA」は、ソースとして使われるGPR100を指定
する。
【0033】命令MFGIは、即値データをSPR54
から移動し、そのデータをRTに位置づける。命令AD
DFGIは、SPR54からの即値データをRAのオペ
ランドへ加算し、その結果をRTに位置づける。命令S
UGFGIは、RAのオペランドをSPR54の即値デ
ータから減算し、その結果をRTに位置づける。命令S
HIFTFGIは、SPR54の即値データをRAのオ
ペランドにより指定されたシフト量をシフトし、その結
果をRTに位置づける。
【0034】これらの命令の前に、少なくとも2つのホ
スト命令がSPR54の即値データの操作を行うのに必
要であった。本発明のホスト命令では、かかる操作に1
つのホスト命令しか必要としない。これは、意味ルーチ
ン40でプロセッサ10が実行しなければならない命令
の数を減らし、これによってエミュレーション性能が増
大する。
【0035】SPR54とIU28のALU104を連
結させることによって可能となる新しい命令のセット
は、図5にリストされたホスト命令に限定されるもので
はない。図5にリストされたデータ転送、算術演算およ
び論理命令は、一例にすぎない。
【0036】SPRを整数ユニットALUと連結させる
ことによりエミュレーション性能を改善する方法および
システムは、ホスト命令がSPR内容を直接操作するこ
とを可能にするために開示された。本発明は、ここに示
した実施例に従って説明されたが、本実施例の変形が可
能であり、これらの変形が本発明の技術的思想および範
囲内であることは当業者であれば容易に理解されよう。
従って、添付した請求項の技術的思想および範囲から逸
脱することのない範囲で、当業者は多くの変形例を実施
することができる。
【0037】まとめとして、本発明の構成に関して以下
の事項を開示する。 (1)第1および第2のオペランドを含むゲスト命令を
エミュレートするプロセッサの性能を改善する方法であ
って、(a)前記第1のオペランドを汎用レジスタに、
前記第2のオペランドを専用レジスタにストアする工
程、および(b)前記第2のオペランドを前記専用レジ
スタから前記汎用レジスタへ移動させることなく前記第
1および第2のオペランドを用いて操作を行う命令を提
供する工程を含むことを特徴とする前記方法。 (2)前記プロセッサがエミュレーション支援ユニット
を含み、前記工程(a)が、(a1)前記エミュレーシ
ョン支援ユニットの中に前記専用レジスタを提供する工
程を含むことを特徴とする上記(1)記載の方法。 (3)前記プロセッサが算術演算論理ユニットおよびマ
ルチプレクサを含み、前記算術演算論理ユニットが前記
汎用レジスタおよび前記マルチプレクサの間で連結さ
れ、前記工程(a)が(a2)前記専用レジスタを前記
算術演算論理ユニットに連結させる工程を含むことを特
徴とする上記(2)記載の方法。 (4)前記工程(b)が、(b1)前記操作の結果を第
3の汎用レジスタにストアする工程を含むことを特徴と
する上記(3)記載の方法。 (5)前記操作が算術演算操作であることを特徴とする
上記(4)記載の方法。 (6)前記操作がデータ転送操作であることを特徴とす
る上記(5)記載の方法。 (7)前記操作が論理操作であることを特徴とする上記
(6)記載の方法。 (8)前記プロセッサが意味ルーチンを用いて前記ゲス
ト命令をエミュレートし、前記命令が前記意味ルーチン
中の命令であることを特徴とする上記(7)記載の方
法。 (9)第1および第2のオペランドを含むゲスト命令を
エミュレートするプロセッサであって、前記第1のオペ
ランドを汎用レジスタに、前記第2のオペランドを専用
レジスタにストアする手段、および前記第2のオペラン
ドを前記専用レジスタから前記汎用レジスタへ移動させ
ることなく前記第1および第2のオペランドを用いて操
作を行う命令手段を含むことを特徴とする前記プロセッ
サ。 (10)前記プロセッサがエミュレーション支援ユニッ
トを含み、前記専用レジスタが前記エミュレーション支
援ユニットの一部であることを特徴とする上記(9)記
載のプロセッサ。 (11)前記プロセッサが、算術演算論理ユニットおよ
びマルチプレクサを含み、前記算術演算論理ユニットが
前記汎用レジスタおよびマルチプレクサの間で連結され
ており、前記専用レジスタが前記算術演算論理ユニット
と連結されていることを特徴とする上記(10)記載の
プロセッサ。 (12)前記命令手段が第3の汎用レジスタに前記操作
の結果をストアする手段を含むことを特徴とする上記
(11)記載のプロセッサ。 (13)前記命令手段が算術演算操作であることを特徴
とする上記(12)記載のプロセッサ。 (14)前記命令手段がデータ転送操作であることを特
徴とする上記(13)記載のプロセッサ。 (15)前記命令手段が論理操作であることを特徴とす
る上記(14)記載のプロセッサ。 (16)前記プロセッサが意味ルーチンを用いて前記ゲ
スト命令をエミュレートし、前記命令手段が前記意味ル
ーチン中の命令であることを特徴とする上記(8)記載
の方法。 (17)即値データを含む複数のゲスト命令をエミュレ
ートするプロセッサであって、前記ゲスト命令の機能を
エミュレートするホスト命令のブロックを含む各意味ル
ーチンを、特定のアドレスにストアするためのメモリ
と、意味ルーチンのメモリアドレスへのポインタである
オフセットフィールドと、対応するゲスト命令からの即
値データであるデータフィールドとを含む複数のエント
リをストアするための複数の専用レジスタを含む、ゲス
ト命令をデコードし、対応する意味ルーチンをディスパ
ッチするエミュレーション支援ユニットと、オペランド
をストアするための複数の汎用レジスタと、前記専用レ
ジスタから前記汎用レジスタへ前記即値データを移動さ
せることなく、前記即値データおよび前記汎用レジスタ
にある前記オペランドを用いて操作を行う前記意味ルー
チンにおける複数のホスト命令とを含むことを特徴とす
る前記プロセッサ。 (18)前記ホスト命令を実行する整数ユニットを含
み、前記整数ユニットが算術演算論理ユニットおよびマ
ルチプレクサを含み、前記算術演算論理ユニットが前記
複数の汎用レジスタおよび前記マルチプレクサの間で連
結され、前記専用レジスタが前記算術演算論理ユニット
と連結されていることを特徴とする上記(17)記載の
プロセッサ。
【図面の簡単な説明】
【図1】ホストプロセッサの高水準アーキテクチャを示
すブロック図。
【図2】エミュレーション支援ユニットのブロック図。
【図3】従来の整数ユニットのブロック図。
【図4】本発明の整数ユニットを示すブロック図。
【図5】専用レジスタにストアされている即値データを
操作するホスト命令のセットをリストする表。
【符号の説明】
10 ホストプロセッサ 12 メモリ 14 レベル2(L2)キャッシュ 16 データキャッシュ 18 命令キャッシュ(IC) 20 命令キュー(IQ) 22 分岐予測ユニット 24、26、32 機能ユニット 28、30 整数ユニット 31 IU 32 浮動小数点 34 完了バッファ 36 エミュレーション支援ユニット(EAU) 38 ゲスト命令 40 意味ルーチン 50 命令バッファ 52 命令プリフェッチ 54 専用レジスタ(SPR) 56 デコードユニット 58 分岐ヒストリテーブル 60 タグ生成ユニット 62 ゲストキャッシュ(gcache) 64 gcache命令キュー 66 ライン 68 ゲストディスパッチ完了(gdisc)命令 70 カレント命令ポインタ(IP) 72 次のIP 100 汎用レジスタ(GPR) 102 整数命令ユニット 104 算術演算論理ユニット(ALU) 106 マルチプレクサ 108 リネームバッファ 110 gbus 112 qbus
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ソウミャ・マリック アメリカ合衆国78729、 テキサス州オー スティンパートリッジ ベント ドライブ 13032

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】第1および第2のオペランドを含むゲスト
    命令をエミュレートするプロセッサの性能を改善する方
    法であって、 (a)前記第1のオペランドを汎用レジスタに、前記第
    2のオペランドを専用レジスタにストアする工程、およ
    び (b)前記第2のオペランドを前記専用レジスタから前
    記汎用レジスタへ移動させることなく前記第1および第
    2のオペランドを用いて操作を行う命令を提供する工程
    を含むことを特徴とする前記方法。
  2. 【請求項2】前記プロセッサがエミュレーション支援ユ
    ニットを含み、前記工程(a)が、 (a1)前記エミュレーション支援ユニットの中に前記
    専用レジスタを提供する工程を含むことを特徴とする請
    求項1記載の方法。
  3. 【請求項3】前記プロセッサが算術演算論理ユニットお
    よびマルチプレクサを含み、前記算術演算論理ユニット
    が前記汎用レジスタおよび前記マルチプレクサの間で連
    結され、前記工程(a)が (a2)前記専用レジスタを前記算術演算論理ユニット
    に連結させる工程を含むことを特徴とする請求項2記載
    の方法。
  4. 【請求項4】前記工程(b)が、 (b1)前記操作の結果を第3の汎用レジスタにストア
    する工程を含むことを特徴とする請求項3記載の方法。
  5. 【請求項5】前記操作が算術演算操作であることを特徴
    とする請求項4記載の方法。
  6. 【請求項6】前記操作がデータ転送操作であることを特
    徴とする請求項5記載の方法。
  7. 【請求項7】前記操作が論理操作であることを特徴とす
    る請求項6記載の方法。
  8. 【請求項8】前記プロセッサが意味ルーチンを用いて前
    記ゲスト命令をエミュレートし、前記命令が前記意味ル
    ーチン中の命令であることを特徴とする請求項7記載の
    方法。
  9. 【請求項9】第1および第2のオペランドを含むゲスト
    命令をエミュレートするプロセッサであって、 前記第1のオペランドを汎用レジスタに、前記第2のオ
    ペランドを専用レジスタにストアする手段、および前記
    第2のオペランドを前記専用レジスタから前記汎用レジ
    スタへ移動させることなく前記第1および第2のオペラ
    ンドを用いて操作を行う命令手段を含むことを特徴とす
    る前記プロセッサ。
  10. 【請求項10】前記プロセッサがエミュレーション支援
    ユニットを含み、前記専用レジスタが前記エミュレーシ
    ョン支援ユニットの一部であることを特徴とする請求項
    9記載のプロセッサ。
  11. 【請求項11】前記プロセッサが、算術演算論理ユニッ
    トおよびマルチプレクサを含み、前記算術演算論理ユニ
    ットが前記汎用レジスタおよびマルチプレクサの間で連
    結されており、前記専用レジスタが前記算術演算論理ユ
    ニットと連結されていることを特徴とする請求項10記
    載のプロセッサ。
  12. 【請求項12】前記命令手段が第3の汎用レジスタに前
    記操作の結果をストアする手段を含むことを特徴とする
    請求項11記載のプロセッサ。
  13. 【請求項13】前記命令手段が算術演算操作であること
    を特徴とする請求項12記載のプロセッサ。
  14. 【請求項14】前記命令手段がデータ転送操作であるこ
    とを特徴とする請求項13記載のプロセッサ。
  15. 【請求項15】前記命令手段が論理操作であることを特
    徴とする請求項14記載のプロセッサ。
  16. 【請求項16】前記プロセッサが意味ルーチンを用いて
    前記ゲスト命令をエミュレートし、前記命令手段が前記
    意味ルーチン中の命令であることを特徴とする請求項8
    記載の方法。
  17. 【請求項17】即値データを含む複数のゲスト命令をエ
    ミュレートするプロセッサであって、 前記ゲスト命令の機能をエミュレートするホスト命令の
    ブロックを含む各意味ルーチンを、特定のアドレスにス
    トアするためのメモリと、 意味ルーチンのメモリアドレスへのポインタであるオフ
    セットフィールドと、対応するゲスト命令からの即値デ
    ータであるデータフィールドとを含む複数のエントリを
    ストアするための複数の専用レジスタを含む、ゲスト命
    令をデコードし、対応する意味ルーチンをディスパッチ
    するエミュレーション支援ユニットと、 オペランドをストアするための複数の汎用レジスタと、 前記専用レジスタから前記汎用レジスタへ前記即値デー
    タを移動させることなく、前記即値データおよび前記汎
    用レジスタにある前記オペランドを用いて操作を行う前
    記意味ルーチンにおける複数のホスト命令とを含むこと
    を特徴とする前記プロセッサ。
  18. 【請求項18】前記ホスト命令を実行する整数ユニット
    を含み、前記整数ユニットが算術演算論理ユニットおよ
    びマルチプレクサを含み、前記算術演算論理ユニットが
    前記複数の汎用レジスタおよび前記マルチプレクサの間
    で連結され、前記専用レジスタが前記算術演算論理ユニ
    ットと連結されていることを特徴とする請求項17記載
    のプロセッサ。
JP33828796A 1996-01-25 1996-12-18 ゲスト命令をエミュレートするプロセッサ Expired - Fee Related JP3193651B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/581793 1996-01-25
US08/581,793 US5758140A (en) 1996-01-25 1996-01-25 Method and system for emulating instructions by performing an operation directly using special-purpose register contents

Publications (2)

Publication Number Publication Date
JPH09212370A true JPH09212370A (ja) 1997-08-15
JP3193651B2 JP3193651B2 (ja) 2001-07-30

Family

ID=24326583

Family Applications (1)

Application Number Title Priority Date Filing Date
JP33828796A Expired - Fee Related JP3193651B2 (ja) 1996-01-25 1996-12-18 ゲスト命令をエミュレートするプロセッサ

Country Status (5)

Country Link
US (1) US5758140A (ja)
EP (1) EP0786722A1 (ja)
JP (1) JP3193651B2 (ja)
KR (1) KR100237987B1 (ja)
TW (1) TW417064B (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004272922A (ja) * 2003-03-06 2004-09-30 Northrop Grumman Corp エミュレーションコンピュータ技術を実行する直接命令
JP2006331415A (ja) * 2005-05-09 2006-12-07 Sony Computer Entertainment Europe Ltd データプロセッサ、データ処理方法
JP2008545179A (ja) * 2005-05-12 2008-12-11 マイクロソフト コーポレーション 複数の経路最適化を備える関数レベルジャストインタイム変換エンジン

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6044220A (en) * 1997-02-25 2000-03-28 Motorola, Inc. Method and apparatus for operating a data processor to execute software written using a foreign instruction set
US6223339B1 (en) * 1998-09-08 2001-04-24 Hewlett-Packard Company System, method, and product for memory management in a dynamic translator
US6308318B2 (en) * 1998-10-07 2001-10-23 Hewlett-Packard Company Method and apparatus for handling asynchronous exceptions in a dynamic translation system
US6351806B1 (en) * 1999-10-06 2002-02-26 Cradle Technologies Risc processor using register codes for expanded instruction set
US6711672B1 (en) * 2000-09-22 2004-03-23 Vmware, Inc. Method and system for implementing subroutine calls and returns in binary translation sub-systems of computers
KR100388943B1 (ko) * 2000-10-23 2003-06-25 아스텔 주식회사 디지털 신호 처리 프로세서의 즉시 데이터 처리 장치
US7290253B1 (en) 2003-09-30 2007-10-30 Vmware, Inc. Prediction mechanism for subroutine returns in binary translation sub-systems of computers
CN100447702C (zh) * 2005-05-23 2008-12-31 联想(北京)有限公司 一种防止未被授权程序在计算机系统运行的方法及其系统
US10521231B2 (en) 2010-06-24 2019-12-31 International Business Machines Corporation Function virtualization facility for blocking instruction function of a multi-function instruction of a virtual processor
US9851969B2 (en) * 2010-06-24 2017-12-26 International Business Machines Corporation Function virtualization facility for function query of a processor
JP5367020B2 (ja) * 2011-06-24 2013-12-11 株式会社ソニー・コンピュータエンタテインメント 情報処理装置、情報処理方法、プログラム及び情報記憶媒体

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2253430A5 (ja) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
FR2253435A5 (ja) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
US3891974A (en) * 1973-12-17 1975-06-24 Honeywell Inf Systems Data processing system having emulation capability for providing wait state simulation function
US4084235A (en) * 1975-04-14 1978-04-11 Honeywell Information Systems Inc. Emulation apparatus
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
JPH07109589B2 (ja) * 1985-07-25 1995-11-22 日本電気株式会社 命令処理方式
US4841476A (en) * 1986-10-06 1989-06-20 International Business Machines Corporation Extended floating point operations supporting emulation of source instruction execution
EP0264215A3 (en) * 1986-10-14 1991-10-23 Amdahl Corporation Fast entry to emulation
JPS63106836A (ja) * 1986-10-24 1988-05-11 Hitachi Ltd 異ア−キテクチヤ・エミユレ−シヨン方式
JPH02236734A (ja) * 1989-03-10 1990-09-19 Nec Corp マイクロプロセッサのエミュレーション方式
US5077657A (en) * 1989-06-15 1991-12-31 Unisys Emulator Assist unit which forms addresses of user instruction operands in response to emulator assist unit commands from host processor
JPH05181671A (ja) * 1992-01-07 1993-07-23 Kobe Nippon Denki Software Kk ソフトウェア命令のエミュレーション方式
DE4232053C1 (de) * 1992-09-24 1993-11-25 Siemens Ag Schaltung zur Emulationsbeschleunigung
WO1994027215A1 (en) * 1993-05-07 1994-11-24 Apple Computer, Inc. Method for decoding guest instructions for a host computer
AU6701594A (en) * 1993-05-07 1994-12-12 Apple Computer, Inc. Method for decoding sequences of guest instructions for a host computer

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004272922A (ja) * 2003-03-06 2004-09-30 Northrop Grumman Corp エミュレーションコンピュータ技術を実行する直接命令
JP4684571B2 (ja) * 2003-03-06 2011-05-18 ノースロップ グラマン コーポレイション エミュレーションコンピュータ技術を実行する直接命令
JP2006331415A (ja) * 2005-05-09 2006-12-07 Sony Computer Entertainment Europe Ltd データプロセッサ、データ処理方法
JP2008545179A (ja) * 2005-05-12 2008-12-11 マイクロソフト コーポレーション 複数の経路最適化を備える関数レベルジャストインタイム変換エンジン

Also Published As

Publication number Publication date
US5758140A (en) 1998-05-26
KR100237987B1 (ko) 2000-01-15
JP3193651B2 (ja) 2001-07-30
EP0786722A1 (en) 1997-07-30
TW417064B (en) 2001-01-01
KR970059922A (ko) 1997-08-12

Similar Documents

Publication Publication Date Title
US6332215B1 (en) Java virtual machine hardware for RISC and CISC processors
US8473718B2 (en) Java hardware accelerator using microcode engine
US5953520A (en) Address translation buffer for data processing system emulation mode
US6349377B1 (en) Processing device for executing virtual machine instructions that includes instruction refeeding means
JP4171496B2 (ja) スタックを用いる演算マシンのための命令フォールディング処理
US20010010072A1 (en) Instruction translator translating non-native instructions for a processor into native instructions therefor, instruction memory with such translator, and data processing apparatus using them
US6122638A (en) Object-oriented processor and method for caching intermediate data in an object-oriented processor
US5812823A (en) Method and system for performing an emulation context save and restore that is transparent to the operating system
US6654875B1 (en) Dual microcode RAM address mode instruction execution using operation code RAM storing control words with alternate address indicator
KR100284788B1 (ko) 데이터 처리 시스템에서 에뮬레이션 동안의 브랜치 처리 방법및 시스템
US5995743A (en) Method and system for interrupt handling during emulation in a data processing system
EP1447742A1 (en) Method and apparatus for translating instructions of an ARM-type processor into instructions for a LX-type processor
WO2000034844A9 (en) Java virtual machine hardware for risc and cisc processors
JP2002512399A (ja) 外部コプロセッサによりアクセス可能なコンテキストスイッチレジスタセットを備えたriscプロセッサ
US5758140A (en) Method and system for emulating instructions by performing an operation directly using special-purpose register contents
US8769508B2 (en) Virtual machine hardware for RISC and CISC processors
US5764962A (en) Emulation of asynchronous signals using a branch mechanism
US5732235A (en) Method and system for minimizing the number of cycles required to execute semantic routines
US7251594B2 (en) Execution time modification of instruction emulation parameters
KR100267434B1 (ko) 제 1 처리 환경내에서 제 1 명령어를 에뮬레이션 환경내에서의제 2 명령어 처리 개시에 응하여 처리하는 방법 및 시스템
Xin et al. The architecture of the Java extension of 32-bit RISC for smart cards and other embedded systems

Legal Events

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

Free format text: PAYMENT UNTIL: 20080525

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20080525

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090525

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100525

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110525

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20110525

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20120525

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20120525

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20130525

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20140525

Year of fee payment: 13

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

LAPS Cancellation because of no payment of annual fees