JPS6398739A - ソース命令実行をエミュレートする装置 - Google Patents

ソース命令実行をエミュレートする装置

Info

Publication number
JPS6398739A
JPS6398739A JP62176102A JP17610287A JPS6398739A JP S6398739 A JPS6398739 A JP S6398739A JP 62176102 A JP62176102 A JP 62176102A JP 17610287 A JP17610287 A JP 17610287A JP S6398739 A JPS6398739 A JP S6398739A
Authority
JP
Japan
Prior art keywords
instruction
target
floating point
source
instructions
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
JP62176102A
Other languages
English (en)
Other versions
JPH0758466B2 (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.)
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 JPS6398739A publication Critical patent/JPS6398739A/ja
Publication of JPH0758466B2 publication Critical patent/JPH0758466B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control 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
    • G06F9/30174Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
    • 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 or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set

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)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

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

Description

【発明の詳細な説明】 以下の順序で本発明を説明する。
A、産業上の利用分野 B、従来技術 C9発明が解決しようとする問題点 り0問題点を解決するための手段 E、実施例 F1発明の効果 A、産業上の利用分野 本発明は、マシン・エミュレーションの分子fKおける
ものであシ、特に、ターゲットCPUによって発行及び
実行するためにソースCPUの命令をターゲットCPU
の命令に変換することによってソースCPUの動作をエ
ミュレートするソースに関するものである。よシ詳細に
は、本発明は、ソース浮動小数点算術演算がエミュレー
トされつつあるときの変換及び発行機能を高速化し、タ
ーゲットのレジスタ対レジスタ浮動小数点算術命令の実
行によってソース浮動小数点RXタイプ命令の実行をエ
ミュレートする手段を設けることによってそのようなシ
ステムのエミュレーション能力を拡張することに関する
B、従来技術 エミュレーションとは、第2の(@ターゲット”)CP
Uによる第1の(”ソース”)CPUの動作の模倣であ
る。このターゲットCPUは特に、ソースCPUのため
に書かれたプログラムの実行を可能ならしめるように特
別にプログラムされ構築されている。ソースCPUのた
めに書かれたプログラムは、1つづつターゲットCPU
に供給されるソース命令のシーケンスを含んでいる。そ
して、ターゲラ)CPUは、1つまたはそれ以上のター
ゲット命令を実行することによって各ソース命令に応答
する。
米国特許第4587612号においては、エミュレーシ
ョン支援プロセッサ(EAP)がソース命令ストリーム
を受け取シ、各ソース命令を1つまたはそれ以上のター
ゲット命令にマツプし、それらのターゲット命令はター
ゲットCPUの命令処理二二ツ)(IPU)に渡される
。この米国特許においては、EAPが多重フィールド・
ソース命令を多重フィールド・ターゲット命令に変換し
、それらのターゲット命令を、処理及び発行のためにI
PUに流す。
知られているように、ソースCPUがIBM370ホス
ト・コンピュータ(米国%許第3400371号に記載
されている)のようなマシンを有するとき、ソース命令
セットは、主としてRXタイプからなる多重フィールド
浮動小数点算術命令を含む。IBM370命令セットを
利用するソース命令プログラムは特徴的には、浮動小数
点算術命令を含むある命令の結果に従ってセットされる
表示子である、条件コード(CC)の状態によって条件
づけられる。IBM370浮動小数点命令が異常な結果
(すべてゼロなど)を生じるかまたは異常な演算(ゼロ
で割る)を試る場合、割込み表示子がセットされ、これ
は、ある割込み手続きのために制御を実行プログラムか
ら監視プログラムに移送する。I BM370ンース・
プロクラムの分岐及び割込み特性のエミュレーションは
、プログラムの分岐と割込みを有効にマツプするために
ターゲット・プログラムが条件コードと割込み表示子を
維持することを要求する。
ソース及びターゲット・プログラムの間の分岐及び割込
みの対応が維持されなくてはならないということを譲歩
するとしても、浮動小数点算術演算の実行を完了する前
に条件コードと割込み表示子の状態を確実に予測する能
力によってエミュレーションの速度を高めることができ
ることが認識される。しかしそのような速度の向上は、
ソースのターゲット命令への変換を考慮するのみならず
、変換されたターゲット命令の発行をも考慮に入れなく
てはならない。
米国特許第4587612号のEAPの可能な動作環境
のうちの1つは、ターゲット浮動小数点命令の実行にあ
るアーキテクチャ上のボトルネックを課す。この点で、
ターゲットCPUの命令ユニット及び浮動小数点ユニッ
トは32ビツト幅のデータ・バスによって相互接続され
ている。ソースのRXタイプの浮動小数点命令がエミュ
レートされるとき、ソース命令のXフィールド中に示さ
れたオペランドがFPUに供給するためにメモリからフ
ェッチされなくてはならない。このとき、メモリからX
フィールド・オペランドを入手する責任を負う経路が命
令実行時間を長くする。また。
ソース命令が、32ビツト・データバスを介して64ビ
ツト・オペランドを入手するための2つの順次的なメモ
リ・アクセスを要する拡張されたRXタイプであるとき
、ターゲットの浮動小数点命令はさらに延期される。
C1発明が解決しようとする問題点 本発明の主な目的は、ソースからターゲットへの命令の
変換と、変換されたターゲット命令の発行を高速化する
ことによって、RXタイプの浮動小数点算術命令を含む
ソースCPUプログラムの処理能力をエミュレートする
システムの動作を改善することにある。
本発明の他の目的は、ソースRXタイプ浮動小数点算術
命令をエミュレートするターゲツトCPU動作に必要な
時間を低減することによってそのヨウナエミュレーショ
ン・システムの動作を改善することにある。
D1問題点を解決するための手段 本発明は、ソースCPU命令の実行をエミュレートする
ためのシステムにその応用を有する。このシ♂テムは、
メモリをもつターゲットCPUと、複数の機能ユニット
と、ターゲット機能ユニットによって実行するために変
換されたターゲット命令を処理し発行するターゲット命
令ユニットとを含ム。このエミュレーション・システム
はマタ、ソース命令を受取って変換するための命令変換
ユニット(変換器)をも有する。本発明の改良点はこの
システムに対するものであシ、浮動小数点命令の変換及
び実行を加速する機構としてのかたちをとる。これに関
して、本発明は変換器中に、ソース浮動小数点命令の変
換に応答して浮動小数点待機トークン信号を発生するト
ークン発生器を含む。そして、ターゲットCPUの浮動
小数点機能ユニット中の成果(outcome)発生器
が、発行された命令の実行完了に先立って、発行された
ターゲット浮動小数点命令の成果をあらわす完了信号を
発生する。このシステムは、トークン信号に応答して命
令の変換及び発行を制止するためのシステム手段を有し
ている。最後に、変換器中に配置され上記システム手段
に接続された多重膜待機キュー(待ち行列)が、待機ト
ークン信号が発生されたときにそれを受け取って保持し
、ソース浮動小数点命令から変換されたターゲット浮動
小数点命令の成果をあらわす完了信号に応答してそのト
ークン信号を消滅させる。
本発明は、多くの予期し得ない知見に基づく。
本願の発明者らは次のことを観察した。すなわち、もし
命令の変換とターゲット命令の発行が、ターゲット浮動
小数点命令の実行結果の高速化された表示に応答してな
されるなら、変換及び発行、すなわちエミュレーション
を高速化することができる。また、もしソースRXタイ
プ命令Xフィールド・オペランドが変換されたターゲッ
ト命令発行の前に得られるならば、ソースRX浮動小数
点命令はターゲットRR命令の実行によってエミュレー
トすることができ、以て命令発行後のメモリ・アクセス
・サイクルを除去することができる。さらに、もし拡張
された浮動小数点ソース命令のXフィールド・オペラン
ドの各半分が2つとも連続的なメモリ・アクセス・サイ
クル上で得られるなう、ソース命令ノエミュレーション
ハ、オペランドを転送しRRメタ−ット命令シーケンス
の実行を開始する一組のターゲット浮動小数点命令とし
てエミュレートすることができ、これによシ、ソース命
令をエミュレートするのに必要なサイクルの数が低減さ
れる。
E、実施例 第1図は、本発明のアプリケーション環境を示す図であ
る。この環境は、ターゲラ)CPUを形成スる減少命令
セット・コンピュータ(RISC)を有する。18Mジ
ャーナル・オブ・リサーチ・アンド・デベロップメント
(Journal  ofResearch  and
  Development )Vol、27、墓3.
1986年5月、pp、257−246に6801ミニ
コンピユータ(The801Minicomputer
 )′ と題してレイディ:/(Radin)により記
述されているように、そのようなコンピュータは、個別
のキャッシュによシ起動される個別の命令とデータ・ス
) IJ−ムをもつ。
このコンピュータにおいては、命令は命令キャッシュか
ら得られ、データはそれとは別のデータ・キャッシュか
ら得られ、それらはともに命令処理ユニット(IPU)
10中に配置されてIPUによって管理される。キャッ
シュの内容は、メモリ12のIPUアクセスによって補
給される。IPUloはキャッシュされた命令を処理し
、1つまたはそれ以上の処理ユニット(PU)14及び
浮動小数点処理ユニツ) (FPU)16によって実行
するためにそれらを発行する。ユニット10.12.1
4及び16はターゲットCPUを形成するので、IPU
loによって発行された命令はターゲット命令と呼ばれ
、ターゲット命令バス19上で処理ユニットに発行され
る。オペランド及び結果(0/R)データは、0/Rデ
ータバス18上で、IPUIOと、処理ユニット14及
び16の間で交換される。
この要請された環境においては、例としての801コン
ピユータが32ビツト・アーキテクチャをもつ。この3
2ビツトは、データ及び命令バス18及び19の対応す
る幅に反映されている。さらに、データ・キャッシュに
加えて、801コンピユータのIPUlDは、汎用レジ
スタ(GPR)のバンクをもつ。
エミュレータとして使用されるとき、ターゲラ)CPU
は、エミュレータ支援プロセッサ(EAP)20と協働
して動作する。エミュレーション・モードにおいては、
ソースCPUからの命令からなるプログラムがデータ・
バス21,10.22上でIPUIO中のデータ・キャ
ッシュの一部を介してEAP20へと流される。EAP
20においては、ソース命令がターゲット命令に変換さ
れて、IPUloによって実行される通常のターゲラ)
CPU命令実行シーケンスを乱さないター、ゲットCP
U命令ストリーム中に挿入される。変換された命令スト
リームはデータバス23上で工PU10に供給される。
命令の変換を実行しターゲット命令ストリームを発生す
る際のIPUIO及びEAP20の協働動作は前記米国
特許第4587612号に詳しく説明されているのでこ
こでは説明しない。しかし、命令変換に関与するある構
造及び機能は、本発明を適切に説明するためKは述べて
おかねばならない。
次に第2図を参照すると、EAP20と、IPUloと
、FPU16が示されている。IPUは、2つの機能部
分10a及び1[]bに分けて示されているが、これは
以下の説明を容易するためのみの目的である。IPUl
oは実際は単一のユニ′ットである。第2図において、
線21上でソース命令ストリームを受け取るIPUlo
の部分1Oaは、ソース・ストリームの末端であるデー
タ・キャッシュ24と、マイクロ命令を含む命令キャッ
シュ25を有している。ソース命令ストリームは信号線
22上でデータ・キャッシュからEAP20に供給され
、命令マツピング回路27が動作し得るプラットフォー
ムを与えるソース命令レジスタ(SIR)25を介して
ソース命令ストリームは1つづつの命令についてステー
ジされる。米国特許第4587612号に説明されてい
るように、命令マツピング回路27は、IPU1Q中の
命令キャッシュ23に与えられる次の命令アドレスを発
生し、このことは命令キャッシュからのマイクロ命令の
供給をもたらし、そのマイクロ命令は信号線30上でE
APに供給される。信号線30上のマイクロ命令は、マ
イクロ命令レジスタ(MIR)31中のEAPにステー
ジされる。米国特許第4587612号に教示されるよ
うに、レジスタ31中に保持されるマイクロ命令は、線
29上に次の命令アドレスを発生することができる次の
命令フィールドを含む。このように、レジスタ25中の
ソース命令は、信号線30上でEAPに供給される1つ
のマイクロ命令、あるいはマイクロ命令のシーケンスの
発生をもたらすことができる。
それに関連して、ソース命令のエミュレーションは命令
キャッシュからのマイクロ命令シーケンスの検索と、タ
ーゲット・プロセッサによる結果のターゲット命令シー
ケンスの実行とを含む。レジスタ31に供給されたマイ
クロ命令は、制御部分と、骨組み(5kelton)タ
ーゲット命令とから成る。骨組みターゲット命令は信号
線23a上で、IPU10中の命令マージ・レジスタ3
2に供給される。米国特許第4587612号によシ教
示されるように、骨組み命令はoPコード・フィールド
とレジスタと変位フィールドから成る。レジスタ31中
のマイクロ命令の制御部分と、レジスタ25中のソース
命令のオペランド・フィールドは、マツピング回路27
によって、IPU10中の命令マージ・レジスタ32に
、ゼロ・オペランドまたは骨組み命令の制御フィールド
を書込むために使用される。この書込情報は、信号線2
3b上でマツピング回路から供給される。このように、
信号線25a及び23bは、ターゲット命令ストリーム
がI P U 1.0に供給される経路となる第1図の
信号線23を形成する。命令が1.PUloによって発
行されたとき、それは命令マージ・レジスタ32から命
令レジスタ(I  REG)33に転送される。ターゲ
ット命令が命令レジスタ33中にあるときは、IPUl
oが一連の命令発行動作を引き受ける。これについては
以下で要約する。
本発明の動作上の周辺状況は、18M370CPU命令
セツトに含まれているような多重フィールド命令を含む
ソース命令ストリームを仮定している。このセットにお
ける少くとも1つの独特のフォーマットがRX(レジス
タ/インデックス)フォーマットと呼ばれる。このRX
フォーマットは次のような形式をもっている。
OP R1X2B2D2 RX命令においては、動作はOPコード・フィールドに
よって示される。第1のオペランドがレジスタR1に格
納され、一方、第2のオペランドは、アドレスX 2 
+ 82 + D 2をもつ主メモリ位置にある。X2
とB2は、インデックス及びベース・レジスタのような
、命令のための汎用レジスタの機能に関し、一方、B2
は変位である。命令が実行されたとき、その結果はレジ
スタR1中に格納される。
知られているように、RXタイプの命令は、浮動小数点
上で実行される算術動作に関与する命令のサブセットを
含む。浮動小数点の算術はよく理解されている。浮動小
数点のデータ・フォーマットと、用語と、動作は、IB
Mジャーナル、1967年1月、pp、34−53の、
アンダーソン(Anderson )らによる”IBM
システム/360モデル91:浮動小数点実行ユニツ)
 (TheI BM System/360  Mod
el 91 :Floating−Point  Ex
ecution Unit”と題する文献で述べられて
いる。
RXタイプの浮動小数点算術ソース命令は、■PU10
による発行とFPU16による実行のためにEAP20
によって浮動小数点算術ターゲット命令に変換される。
RXタイプの浮動小数点算術命令は条件コード(CC)
を変更し、あるいはプログラム割込み要求(IR)を生
じさせる結果を発生することができる。知られているよ
うに、CCの状態は、実行ソース・プログラム中のある
分岐を条件づける。
割込み要求は実行プログラムからのプログラム制御の移
送をもたらす。それゆえ、これらの表示子はソース命令
ストリームのエミュレーションにおいて考慮されなくて
はならない。EAP 20においては、CC及びIRの
現在の状態がステータス・レジスタ34中に維持されて
いる。命令マツピング回路27は、必要なときには、分
岐及び割込み活動を引き受けるためにステータス・レジ
スタ34の内容を検査する。
CC及びIRは、他のソースの中でも、FPUl6によ
って供給され、この場合、表示子に影響を与える浮動小
数点命令が実行される。CC及びIRはそれぞれ信号線
35及び36上に供給される。FPUl6によって供給
される信号としては他には信号線38上の加速有効性応
答(AVR)信号がある。AVRは、CC及びIRが、
現在FPU16によって実行されつつある浮動小数点の
成果を有効に反映するときにFPUl6によって発生さ
れる。FPUl(Sは、その結果が状態を決定するとこ
ろの浮動小数点算術命令の完了に先行してCC及びIR
をセットすることができる。CC及びIRが発生された
ときは、FPUl6がAVRを出して、EAP20にレ
ジスタ34の内容が検査可能であることを知らせる。A
VR発生の時間は、浮動小数点算術命令の開始のすぐ後
から、CC及びIRが従来サンプルされる時間である命
令の完了の時点まで亘シ得る。
FPU 16によって、CC及びIRの加速された発生
を利用するために、本発明はEAP20に待機トークン
回路を設ける。待機トークン回路は、浮動小数点算術タ
ーゲット命令が変換され発行された時にEAP20及び
IPUloに通知し、発行された浮動小数点算術ターゲ
ット命令の実行に応答してCC及びIRが発生されるま
でターゲット命令のそれ以上の変換及び発行を制止し、
CC及びIRが発生された時にEAP20及びIPUl
oに通知し、以て命令変換及び発行の早期の回復を可能
ならしめる。
ソース浮動小数点算術命令がレジスタ25に含まれてい
るときは、命令マツピング回路27が、ソース命令を変
換するのに適合したマイクロ命令シーケンスの最初のア
ドレスを発生する。浮動小数点算術命令の結果として発
生されたすべてのマイクロ命令シーケンスは、WAIT
(待機)マイクロ命令で終わる。WA I Tマイクロ
命令は、待機トークンの発生を開始するための本発明に
対する通知である。これに関して、ソース浮動小数点算
術命令がレジスタ26に格納されているとき、そのOP
コード・フィールドが慣用的なデコーダ(D)40に供
給され、これによシ第1のトークン前、駆信号が活動化
される。その励起されたシーケンスの最後のWA I 
Tマイクロ命令がレジスタ51に格納されているとき、
そのマイクロ命令のOPコードもまたデコーダ40に与
えられ、これによシ第2のトークン前駆信号が発生され
る。一致検出器(CD)42は、信号線43上で待機ト
ークン信号を活動化することによってその2つのトーク
ン前駆信号に応答する。待機トークン信号は、ラッチ4
6及び47を含む多段ラッチ列から成る待機トークン・
キューに与えられる。WAITマイクロ命令がマイクロ
命令レジスタ31中にあるときは、信号線23a上で骨
組みターゲット浮動小数点命令が命令マージ・レジスタ
32に入力される。このとき、その命令のオペランド・
フィールド・データは信号線23b上で命令マツピング
回路27により与えられる。待機トークン信号は、多重
フェーズ・パイプライン・クロックの17エーズ(CL
K  A)によってラッチ46からラッチ47へ刻時さ
れる。待機トークン信号がラッチ47に入ると、そのラ
ッチは、命令マツピング回路27と、命令マージ・レジ
スタ32と、ステータス・レジスタ34に与えられるホ
ールド信号を活動化する。このホールド信号は、それが
活動的である限シはレジスタ32.33及び34中のデ
ータの変更を禁止する。さらに、ホールド信号は、命令
マツピング回路27の動作を一時停止する。
第2の多重フェーズ・クロック(CLK  B)に応答
しての待機トークン信号のラッチ47への転送と同時に
、ターゲット浮動小数点命令が命令マージ・レジスタ3
2からIPU10中の命令レジスタ33ヘシフトする。
命令レジスタ36においては、命令の発行がFPUl・
6に与えられる。
FPUl6は発行された命令を実行するための動作を引
き受けるとともに、CC及びIRを、実行された命令の
成果を反映する状態にセットする機能を果たす。CC及
びIRがFPUl6によって発生されてしまうと、AV
Rが立ち上げられ、これによってラッチ47がクリアさ
れて、以てホールド信号が不活動化される。
ホールド信号が不活動化されると、現在のCC及びIR
がFPUl6からステータス・レジスタ34中に入力さ
れる。その入力が行なわれると、命令マツピング回路2
7が、必要とされる分岐または割込み動作を引き受ける
ためにステータス・レジスタ34の内容を検査する。ホ
ールド信号の不活動化と次の骨組み命令の発生に続いて
、マージされた命令がレジスタ32に配置されて命令レ
ジスタ33への発行のため転送されることになる。
尚、待機トークン回路45がAVRの高速化に応答し、
命令の変換及び発行が実行中のターゲット浮動小数点算
術命令の完了に先立って行なわれることを可能ならしめ
ることはこの分野の当業者に明らかであろう。また当業
者は、この高速化された動作が第1のエミュレータにお
ける動作の同時性を高めることができ、以て動作の全体
的な速度が向上されることを理解するであろう。
第3図を参照することによシ、上述の目的のうちの第2
の目的、すなわちソースRXタイプ浮動小数点算術命令
の実行をエミュレートするターゲット・マシン動作の実
行に必要な時間を低減することを本発明がどのようにし
て達成するかが理解されよう。第3図において、IPU
loは、命令レジスタ33以外に、汎用レジスタ(GP
R)50のバンクと、デコード/制御回路52と、一対
のマルチプレクサ(MUX)54,56を含む。
汎用レジスタはIPU10中の命令処理動作のために使
用される。デコード/制御回路は慣用的な様式で、レジ
スタ33中のターゲット命令のOPフィールドからのO
Pコード情報と、命令のDフィールド中の情報とを受け
取る。このDフィールドが実行すべき制御動作を記述し
その制御を担当する制御ユニットを識別する。そして指
定されると、デコード/制御回路は、oPコードにょシ
指示された動作を実行するためにMUX54.56とG
PR50のための制御信号を発生する。命令処理動作が
必要とされるときは、Dフィールドがデコード/制御回
路52を識別しその回路が記述された動作を行うことを
可能ならしめる。そのような動作は、メモリからフェッ
チされたデータを含み、フェッチされたデータを指定さ
れたGPHに伝えるというMUX54の動作を生じせし
める。
データがO/Rデータ・バス18と交換されるべき場合
、回路52は、データを伝えるようにMUX56を動作
させるとともに、データをソースまたはシンクするよう
にGPRを動作させる。デコード/制御回路52によっ
て実行される動作の相補的な動作として、レジスタ33
中のターゲット命令のレジスタ・フィールド(RT%R
AまたはRB)のうちの1つの値をGPRレジスタのう
ちの予定の1つに入力させる。LOAD  IMMED
rATE(即時ロード)命令がある。
第3図はまた、FPUl6をよシ詳細に図示する。FP
Ul6は、発行されたターゲット命令のDフィールドに
よって指定することができ、FPUンーソー動作を、発
行されたターゲット命令のOP及びDフィールド中に記
述された命令の実行を行うように制御及び同期させる制
御ユニット60を含む。FPUは浮動小数点レジスタ(
FPR)62のバンクを含む内部資源を有する。FPR
62は、FPUl6によって実行された浮動小数点動作
のオペランド及び結果を一時的に記憶するための複数の
汎用64ビツト・レジスタを有している。FPUの算術
及び論理動作は実行ユニット(aX)64及65によっ
て実行される。知られているように1そのようなユニッ
トには、例えば、掛算/割算実行ユニット、加算/減算
/シフト・ユニット及び、累乗根演算を実行するための
ユニットがある。IPU及びそれに接続された他の機能
ユニットは32ビツト・データ及び命令アーキテクチャ
として構築されているので、FPU16のデータ・イン
ターフェースは、32ビツト・データバス18とデータ
を交換する32ビツト・インターフェース争レジスタ(
IR)66でアル。
第3図と第4図を参照すると、”短い”RXタイプの浮
動小数点算術ソース命令をエミュレートする際の本発明
の動作が理解されよう。この゛短い”という用語は、R
Xタイプの命令のオペランドが62ビツト長であること
を示す。このように、IPUloとFPU16の間のデ
ータ・インターフェースは、オペランドの結果全体を単
一のサイクルで転送することができる。第4図のステッ
プSIにおいて、短いソースRXタイプの命令がEAP
20に入るとき、EAPは、即時ロード命令をIPUl
oに与え、以てIPUを実行のユニットとして指定する
ことを含むマイクロ命令シーケンスを引き受けることに
なる。その命令はそのレジスタ・フィールド(RT、R
AまたはRB)のうちの1つに、RXタイプ命令のX 
2 、B 2及びD2フィールドの和に対応するメモリ
・アドレスを搬入することになる。そのアドレスはGP
R。
にロードされる。次に、マイクロ命令のシーケンスの間
に、IPUへのロード命令が、GPR,に保持されてい
るアドレスに記憶されたオペランドのGPR,へのロー
ドをもたらす。これは第4図コ のステップS2に対応する。このとき、マイクロ命令シ
ーケンスの最終命令が発行のための、ターゲット浮動小
数点算術命令のレジスタ33へのロードをもたらす。こ
の発行された命令は、拡張RX(ERX)短タイプ・タ
ーゲット命令と呼ばれる。そのような命令は、IPU制
御回路52によりGPRjの内容がデータバス21上に
配置されることを引き起こす。これは、ソースRX命令
のXフィールド・オペランドである。FPUはこの発行
された命令を受取り1、それを、第1のオペランドがそ
の命令のRAフィールドによって指定されたFPR中に
配置され、第2のオペランドが、その命令のRBラフイ
ールド中指定されたインターフェース・レジスタ66中
に配置されるようなレジスタ対レジスタ(RR)浮動小
数点算術命令としてデコードする。そのターゲット命令
実行の結果は、その命令のRTスフイールド中指定され
たFPR中に配置される。
第4図の手続きは、ターゲット・レジスタ対レジスタ浮
動小数点命令の実行によってソースRXタイプ浮動小数
点算術命令をエミュレートする・ために有効な手続であ
る。もし第4図のRX拡張がなされないなら、GPRj
中に保持されているオペランドを浮動小数点レジスタに
転送し続いて浮動小数点レジスタ対レジスタ命令を実行
するという追加的なステップを挿入する必要があろう。
この余分なステップは第4図のステップS2及び83間
に挿入されることになろう。
第6図と第5図とを参照すると、本発明が、長い(64
ビツト)オペランドを指定スルソースRX浮動小数点算
術命令をエミュレートするためにどのように働くかにつ
いての理解が得られよう。
拡張RXタイプ命令に応答してHAPによって引き受け
られるマイクロ命令シーケンスにおいては、最初に、ス
テップS10で、RX命令のXフィールド・アドレスを
GPR,中に配置する即時ロード・ターゲット命令を、
rPUによる実行のために与えることが第4図のシーケ
ンスに続く。尚、GPR・中のアドレスが64ビツトか
らなる2ワ−ド・オペランドを規定することが理解され
よう。
こうして即時ロード命令に続いて、ステップS11及び
S12において、2つのロード命令が順に送られ、これ
によ、QIPUが先ずXフィールド・オペランドの上位
4バイトをGPRjにロードし、次にオペランドの下位
4バイトをGPRkにロードする。ステップ813では
、EAPによって引き受けられたマイクロ命令シーケン
スの結果としてIPUに与えられた終わシから2つ目の
命令が、FPUに発行されるべき拡張されたRX(ER
X)長タイプ浮動小数点命令からなる。本質的には、そ
の命令は、FPUKよって、その命令のRAフィールド
によって指定されたFPR中に格納された命令である、
一対の64ビツト・オペランドを含む拡張されたレジス
タ対レジスタ命令として認1LJtt7:、。FPUは
、インターフェース嗜レジスタ66から第2のオペラン
ドを入手する。この第2のオペランドは、先ずステップ
S13中で命令の発行と同時にGPRj中の高位4バイ
トを転送シ次にステップS14で、マイクロ命令シーケ
ンスから得られる最終ターゲット命令に応答して下位4
バイトを転送することによって、インターフェース・レ
ジスタ66を介してFPUにステージされる。最終命令
はFINRXと示されておシ、IPUによってのみ実行
される。命令の実行は、GPRkからの下位4バイトを
インターフェース・レジスタ66に転送することからな
る。こうして、第5図の実行シーケンスは、拡張された
ターゲット・レジスタ対レジスタ浮動小数点動作による
拡張ソースRX浮動小数点命令の有効なエミュレーショ
ンを可能ならしめる。このFINRXダミー命令は、エ
ミュレーション・シーケンスを、ターゲット・マシンの
32ピツト・アーキテクチャに適合させる。
F0発明の効果 以上説明したように、この発明によれば、ソースCPU
の浮動小数点命令の、ターゲラ) CPUの浮動小数点
命令への変換及び発行(エミュレーション)が高速化さ
れるという効果が得られる。
【図面の簡単な説明】
第1図は、IBMシステム370タイプのソースcPU
Kよって与えられるプログラムをエミュレートするため
のシステムのアーキテクチャ的なブロック図、 第2図は、EAPとIPUの詳細なブロック図、第3図
は、IPU及びFPU中の機能素子を示すブロック図、 第4図は、RXの”短いソース命令をエミュレートする
際に第3図の構成によって実行される動作のシーケンス
を示すフローチャート、 第5図は、拡張RXタイプ浮動小数点ソース命令をエミ
ュレートする際に第3図の構成によって実行された動作
のシーケンスを示すフローチャートである。 出願人  インターナンジ九ル・ビジネス・マシ←ンズ
・コ一ボレーンヨン代理人 弁理士  山   本  
 仁   朗(外1名)

Claims (2)

    【特許請求の範囲】
  1. (1)ソース浮動小数点RXタイプ命令(以下ソース命
    令と称する)を、ターゲット・システム命令ユニットに
    よつて発行されターゲット・システム浮動小数点ユニッ
    トによつて実行されるRRタイプ・ターゲット浮動小数
    点命令(以下ターゲット命令と称する)に変換するため
    の変換器をもつエミュレーション、システムにおいて上
    記ソース命令の実行をエミュレートする方法において、
    (a)上記ソース命令のXフィールドによつて表示され
    たオペランドを、上記命令ユニット中に配置されたレジ
    スタ中にロードし、 (b)上記ソース命令のオペランドに対して実行するた
    めに、上記ターゲット命令を上記浮動小数点ユニットに
    発行し、 (c)上記ターゲット命令の発行と同時に上記命令ユニ
    ット・レジスタから上記オペランドを上記浮動小数点ユ
    ニットに転送する段階を有する、ソース命令実行をエミ
    ュレートする方法。
  2. (2)メモリと、変換されたターゲット命令を処理し発
    行するためのターゲット命令ユニットと、ターゲット命
    令を実行するためのターゲット浮動小数点ユニットと、
    ソース命令を受け取つてそれをターゲット命令に変換す
    るための命令変換ユニットとをもち、ソース命令をエミ
    ュレートするための装置において、 (A)上記命令変換ユニット中にあつて、ソース浮動小
    数点算術命令の変換に応答して浮動小数点トークン信号
    を発生するための手段と、 (B)上記ターゲット浮動小数点ユニット中にあつて、
    上記発行されたターゲット浮動小数点命令の実行完了に
    先立つて、上記変換に応答して発行されたターゲット浮
    動小数点の結果をあらわす完了信号を発生するための結
    果手段と、 (C)上記命令変換ユニット中にあつて、上記変換に応
    答して上記トークン信号を受け取りそれを待機ステージ
    に移し、上記完了信号に応答して上記待機トークン信号
    を上記待機ステージから除去するための多重ステージ待
    機キュー手段と、 (2)上記待機ステージに接続され、上記待機トークン
    信号が上記待機ステージに保持されている限D命令の変
    換及び発行を制止するためのシステム手段、 とを具備するソース命令実行をエミュレートする装置。
JP62176102A 1986-10-06 1987-07-16 ソース命令実行をエミュレートする装置 Expired - Lifetime JPH0758466B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US915423 1978-06-14
US06/915,423 US4841476A (en) 1986-10-06 1986-10-06 Extended floating point operations supporting emulation of source instruction execution

Publications (2)

Publication Number Publication Date
JPS6398739A true JPS6398739A (ja) 1988-04-30
JPH0758466B2 JPH0758466B2 (ja) 1995-06-21

Family

ID=25435704

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62176102A Expired - Lifetime JPH0758466B2 (ja) 1986-10-06 1987-07-16 ソース命令実行をエミュレートする装置

Country Status (11)

Country Link
US (1) US4841476A (ja)
EP (1) EP0263288B1 (ja)
JP (1) JPH0758466B2 (ja)
KR (1) KR910000364B1 (ja)
AR (1) AR240723A1 (ja)
AT (1) ATE103085T1 (ja)
BR (1) BR8704431A (ja)
CA (1) CA1269756A (ja)
DE (1) DE3789345T2 (ja)
HK (1) HK79994A (ja)
MY (1) MY102468A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009233519A (ja) * 2008-03-26 2009-10-15 Hitachi Plant Technologies Ltd 乾式電気集塵装置の放電極用h型プロテクタ
JP2010530996A (ja) * 2007-03-30 2010-09-16 インターナショナル・ビジネス・マシーンズ・コーポレーション プログラム・コードを変換するためのコンピュータ・システム、方法、及びコンピュータ可読記録媒体

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5093784A (en) * 1987-02-27 1992-03-03 Nec Corporation Data processor with efficient transfer between subroutines and main program
CA1327080C (en) * 1987-05-26 1994-02-15 Yoshiko Yamaguchi Reduced instruction set computer (risc) type microprocessor
US4951195A (en) * 1988-02-01 1990-08-21 International Business Machines Corporation Condition code graph analysis for simulating a CPU processor
US5167023A (en) * 1988-02-01 1992-11-24 International Business Machines Translating a dynamic transfer control instruction address in a simulated CPU processor
JPH0628036B2 (ja) * 1988-02-01 1994-04-13 インターナショナル・ビジネス・マシーンズ・コーポレーシヨン シミュレーシヨン方法
CA2002201C (en) * 1988-12-06 1999-04-27 John Charles Goettelmann Translation technique
US5430862A (en) * 1990-06-29 1995-07-04 Bull Hn Information Systems Inc. Emulation of CISC instructions by RISC instructions using two pipelined stages for overlapped CISC decoding and RISC execution
US5765015A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Slide network for an array processor
US5590345A (en) * 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
US5815723A (en) * 1990-11-13 1998-09-29 International Business Machines Corporation Picket autonomy on a SIMD machine
US5734921A (en) * 1990-11-13 1998-03-31 International Business Machines Corporation Advanced parallel array processor computer package
US5963745A (en) * 1990-11-13 1999-10-05 International Business Machines Corporation APAP I/O programmable router
US5713037A (en) * 1990-11-13 1998-01-27 International Business Machines Corporation Slide bus communication functions for SIMD/MIMD array processor
US5966528A (en) * 1990-11-13 1999-10-12 International Business Machines Corporation SIMD/MIMD array processor with vector processing
US5588152A (en) * 1990-11-13 1996-12-24 International Business Machines Corporation Advanced parallel processor including advanced support hardware
US5765011A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Parallel processing system having a synchronous SIMD processing with processing elements emulating SIMD operation using individual instruction streams
EP0485690B1 (en) * 1990-11-13 1999-05-26 International Business Machines Corporation Parallel associative processor system
US5617577A (en) * 1990-11-13 1997-04-01 International Business Machines Corporation Advanced parallel array processor I/O connection
US5794059A (en) * 1990-11-13 1998-08-11 International Business Machines Corporation N-dimensional modified hypercube
US5630162A (en) * 1990-11-13 1997-05-13 International Business Machines Corporation Array processor dotted communication network based on H-DOTs
US5765012A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Controller for a SIMD/MIMD array having an instruction sequencer utilizing a canned routine library
US5828894A (en) * 1990-11-13 1998-10-27 International Business Machines Corporation Array processor having grouping of SIMD pickets
US5809292A (en) * 1990-11-13 1998-09-15 International Business Machines Corporation Floating point for simid array machine
US5963746A (en) * 1990-11-13 1999-10-05 International Business Machines Corporation Fully distributed processing memory element
US5625836A (en) * 1990-11-13 1997-04-29 International Business Machines Corporation SIMD/MIMD processing memory element (PME)
WO1992015947A1 (en) * 1991-03-07 1992-09-17 Digital Equipment Corporation Improved software debugging system and method especially adapted for code debugging within a multi-architecture environment
US5652869A (en) * 1991-03-07 1997-07-29 Digital Equipment Corporation System for executing and debugging multiple codes in a multi-architecture environment using jacketing means for jacketing the cross-domain calls
US5594918A (en) * 1991-05-13 1997-01-14 International Business Machines Corporation Parallel computer system providing multi-ported intelligent memory
JPH079632B2 (ja) * 1991-06-18 1995-02-01 インターナショナル・ビジネス・マシーンズ・コーポレイション アドレス変換装置および方法
FR2678401A1 (fr) * 1991-06-28 1992-12-31 Philips Electronique Lab Dispositif de traitement de l'information plus particulierement adapte a un langage chaine, du type forth notamment.
US5438668A (en) * 1992-03-31 1995-08-01 Seiko Epson Corporation System and method for extraction, alignment and decoding of CISC instructions into a nano-instruction bucket for execution by a RISC computer
JP2642039B2 (ja) * 1992-05-22 1997-08-20 インターナショナル・ビジネス・マシーンズ・コーポレイション アレイ・プロセッサ
JPH0773046A (ja) * 1992-12-07 1995-03-17 Intel Corp コンピュータシステムで回路をエミュレートする 方法及び装置
AU6701594A (en) * 1993-05-07 1994-12-12 Apple Computer, Inc. Method for decoding sequences of guest instructions for a host computer
US5392408A (en) * 1993-09-20 1995-02-21 Apple Computer, Inc. Address selective emulation routine pointer address mapping system
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
US5781750A (en) * 1994-01-11 1998-07-14 Exponential Technology, Inc. Dual-instruction-set architecture CPU with hidden software emulation mode
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
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
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
JPH08339298A (ja) * 1995-02-02 1996-12-24 Ricoh Co Ltd マイクロプロセッサにおける命令追加方法及びそれを用いたマイクロプロセッサ
US5619665A (en) * 1995-04-13 1997-04-08 Intrnational Business Machines Corporation Method and apparatus for the transparent emulation of an existing instruction-set architecture by an arbitrary underlying instruction-set architecture
US5819063A (en) * 1995-09-11 1998-10-06 International Business Machines Corporation Method and data processing system for emulating a program
US5812823A (en) * 1996-01-02 1998-09-22 International Business Machines Corporation Method and system for performing an emulation context save and restore that is transparent to the operating system
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
US6711667B1 (en) * 1996-06-28 2004-03-23 Legerity, Inc. Microprocessor configured to translate instructions from one instruction set to another, and to store the translated instructions
JPH113225A (ja) * 1997-06-13 1999-01-06 Nec Corp 情報処理装置
US5864690A (en) * 1997-07-30 1999-01-26 Integrated Device Technology, Inc. Apparatus and method for register specific fill-in of register generic micro instructions within an instruction queue
EP0950216B1 (en) * 1997-10-02 2003-11-26 Koninklijke Philips Electronics N.V. A processing device for executing virtual machine instructions
EP0997815A3 (en) * 1998-10-29 2004-05-26 Texas Instruments Incorporated Interactive translation system and method
US7149883B1 (en) * 2000-03-30 2006-12-12 Intel Corporation Method and apparatus selectively to advance a write pointer for a queue based on the indicated validity or invalidity of an instruction stored within the queue
US6862565B1 (en) * 2000-04-13 2005-03-01 Hewlett-Packard Development Company, L.P. Method and apparatus for validating cross-architecture ISA emulation
US7243217B1 (en) * 2002-09-24 2007-07-10 Advanced Micro Devices, Inc. Floating point unit with variable speed execution pipeline and method of operation
US7293159B2 (en) * 2004-01-15 2007-11-06 International Business Machines Corporation Coupling GP processor with reserved instruction interface via coprocessor port with operation data flow to application specific ISA processor with translation pre-decoder

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3881173A (en) * 1973-05-14 1975-04-29 Amdahl Corp Condition code determination and data processing
JPS57150039A (en) * 1981-03-11 1982-09-16 Hitachi Ltd Data processor
JPS59501684A (ja) * 1982-10-22 1984-10-04 インタ−ナシヨナル・ビジネス・マシ−ンズ・コ−ポレ−シヨン 目的命令ストリ−ムへ殆んど実時間で插入するためのソ−スおよび目的命令ストリ−ムの外部における加速式命令写像

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010530996A (ja) * 2007-03-30 2010-09-16 インターナショナル・ビジネス・マシーンズ・コーポレーション プログラム・コードを変換するためのコンピュータ・システム、方法、及びコンピュータ可読記録媒体
JP2009233519A (ja) * 2008-03-26 2009-10-15 Hitachi Plant Technologies Ltd 乾式電気集塵装置の放電極用h型プロテクタ

Also Published As

Publication number Publication date
EP0263288A3 (en) 1991-06-12
DE3789345T2 (de) 1994-09-29
KR880005516A (ko) 1988-06-29
BR8704431A (pt) 1988-05-24
HK79994A (en) 1994-08-19
EP0263288B1 (en) 1994-03-16
EP0263288A2 (en) 1988-04-13
AR240723A1 (es) 1990-09-28
KR910000364B1 (ko) 1991-01-24
US4841476A (en) 1989-06-20
JPH0758466B2 (ja) 1995-06-21
ATE103085T1 (de) 1994-04-15
CA1269756A (en) 1990-05-29
MY102468A (en) 1992-06-30
DE3789345D1 (de) 1994-04-21

Similar Documents

Publication Publication Date Title
JPS6398739A (ja) ソース命令実行をエミュレートする装置
US10664269B2 (en) Function virtualization facility for function query of a processor
CN102981800B (zh) 处理异构资源的地址转换和异常
US5826084A (en) Microprocessor with circuits, systems, and methods for selectively bypassing external interrupts past the monitor program during virtual program operation
US5678032A (en) Method of optimizing the execution of program instuctions by an emulator using a plurality of execution units
RU2598814C2 (ru) Команда векторного типа для поиска неравнозначного элемента
US6895460B2 (en) Synchronization of asynchronous emulated interrupts
RU2621000C2 (ru) Определение длины группы символьных данных, содержащей символ окончания
JPS6014341A (ja) 基本命令セツト計算機システムにおけるトラツプ割込み方式
US20040230814A1 (en) Message digest instructions
US4750110A (en) Method and apparatus for executing an instruction contingent upon a condition present in another data processor
US20040230796A1 (en) Security message authentication control instruction
EP0525831B1 (en) Method and apparatus for enabling a processor to coordinate with a coprocessor in the execution of an instruction which is in the intruction stream of the processor.
US4821231A (en) Method and apparatus for selectively evaluating an effective address for a coprocessor
CN115357332A (zh) 处理器间中断的虚拟化
EP0378816B1 (en) Production line method and apparatus for instruction execution
JPS63279328A (ja) 仮想計算機システムのゲスト実行制御方式
EP1039376B1 (en) Sub-instruction emulation in a VLIW processor
JPH02306361A (ja) マイクロプロセッサ
US4758978A (en) Method and apparatus for selectively evaluating an effective address for a coprocessor
JPS6161416B2 (ja)
JPH01140330A (ja) 高性能cpu−fpuクラスタ用パイプライン型スレーブプロトコル
Wang et al. Central Processing Unit
JPS6273333A (ja) エミュレーション制御装置
Nissen et al. The all applications digital computer