[go: up one dir, main page]

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

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

Info

Publication number
JPH0758466B2
JPH0758466B2 JP62176102A JP17610287A JPH0758466B2 JP H0758466 B2 JPH0758466 B2 JP H0758466B2 JP 62176102 A JP62176102 A JP 62176102A JP 17610287 A JP17610287 A JP 17610287A JP H0758466 B2 JPH0758466 B2 JP H0758466B2
Authority
JP
Japan
Prior art keywords
instruction
target
source
register
floating point
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 - Lifetime
Application number
JP62176102A
Other languages
English (en)
Other versions
JPS6398739A (ja
Inventor
ジェームス・アレキサンダー・ミッチェル
ジョン・フレディリック・ベクデル
Original Assignee
インタ−ナショナル・ビジネス・マシ−ンズ・コ−ポレ−ション
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 インタ−ナショナル・ビジネス・マシ−ンズ・コ−ポレ−ション filed Critical インタ−ナショナル・ビジネス・マシ−ンズ・コ−ポレ−ション
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)

Description

【発明の詳細な説明】 以下の順序で本発明を説明する。
A. 産業上の利用分野 B. 従来技術 C. 発明が解決しようとする問題点 D. 問題点を解決するための手段 E. 実施例 F. 発明の効果 A. 産業上の利用分野 本発明は、マシン・エミユレーシヨンの分野におけるも
のであり、特に、ターゲツトCPUによつて発行及び実行
するためにソースCPUの命令をターゲツトCPUの命令に変
換することによつてソースCPUの動作をエミユレートす
るソースに関するものである。より詳細には、本発明
は、ソース浮動小数点算術演算がエミユレートされつつ
あるときの変換及び発行機能を高速化し、ターゲツトの
レジスタ対レジスタ浮動小数点算術命令の実行によつて
ソース浮動小数点RXタイプ命令の実行をエミユレートす
る手段を設けることによつてそのようなシステムのエミ
ユレーシヨン能力を拡張することに関する。
B. 従来技術 エミユレーシヨンとは、第2の(“ターゲツト”)CPU
による第1の(“ソース”)CPUの動作の模倣である。
このターゲツトCPUは特に、ソースCPUのために書かれた
プログラムの実行を可能ならしめるように特別にプログ
ラムされ構築されている。ソースCPUのために書かれた
プログラムは、1つづつターゲツトCPUに供給されるソ
ース命令のシーケンスを含んでいる。そして、ターゲツ
トCPUは、1つまたはそれ以上のターゲツト命令を実行
することによつて各ソース命令に応答する。
米国特許第4587612号においては、エミユレーシヨン支
援プロセツサ(EAP)がソース命令ストリームを受け取
り、各ソース命令を1つまたはそれ以上のターゲツト命
令にマップし、それらのターゲツト命令はターゲツトCP
Uの命令処理ユニツト(IPU)に渡される。この米国特許
においては、EAPが多重フイールド・ソース命令を多重
フイールド・ターゲツト命令に変換し、それらのターゲ
ツト命令を、処理及び発行のためにIPUに流す。
知られているように、ソースCPUがIBM370ホスト・コン
ピユータ(米国特許第3400371号に記載されている)の
ようなマシンを有するとき、ソース命令セットは、主と
してRXタイプからなる多重フイールド浮動小数点算術命
令を含む。IBM370命令セツトを利用するソース命令プロ
グラムは特徴的には、浮動小数点算術命令を含むある命
名の結果に従つてセツトされる表示子である、条件コー
ド(CC)の状態によつて条件づけられる。IBM370浮動小
数点命令が異常な結果(すべてゼロなど)を生じるかま
たは異常な演算(ゼロで割る)を試る場合、割込み表示
子がセツトされ、これは、ある割込み手続きのために制
御を実行プログラムから監視プログラムに移送する。IB
M370ソース・プログラムの分岐及び割込み特性のエミユ
レーシヨンは、プログラムの分岐と割込みを有効にマツ
プするためにターゲツト・プログラムが条件コードと割
込み表示子を維持することを要求する。
ソース及びターゲツト・プログラムの間の分岐及び割込
みの対応が維持されなくてはならないということを譲歩
するとしても、浮動小数点算術演算の実行を完了する前
に条件コードと割込み表示子の状態を確実に予測する能
力によつてエミユレーシヨンの速度を高めることができ
ることが認識される。しかしそのような速度の向上は、
ソースのターゲツト命令への変換を考慮するのみなら
ず、変換されたターゲツト命令の発行をも考慮に入れな
くてはならない。
米国特許第4587612号のEAPの可能な動作環境のうちの1
つは、ターゲツト浮動小数点命令の実行にあるアーキテ
クチヤ上のボトルネツクを課す。この点で、ターゲツト
CPUの命令ユニツト及び浮動小数点ユニツトは32ビツト
幅のデータ・バスによつて相互接続されている。ソース
のRXタイプの浮動小数点命令がエミユレートされると
き、ソース命令のXフイールド中に示されたオペランド
がEPUに供給するためにメモリからフエツチされなくて
はならない。このとき、メモリからXフイールド・オペ
ランドを入手する責任を負う経路が命令実行時間を長く
する。また、ソース命令が、32ビット・データバスを介
して64ビツト・オペランドを入手するための2つの順次
的なメモリ・アクセスを要する拡張されたRXタイプであ
るとき、ターゲツトの浮動小数点命令はさらに延期され
る。
C. 発明が解決しようとする問題点 本発明の主な目的は、ソースからターゲツトへの命令の
変換と、変換されたターゲツト命令の発行を高速化する
ことによつて、RXタイプの浮動小数点算術命令を含むソ
ースCPUプログラムの処理能力をエミユレートするシス
テムの動作を改善することにある。
本発明の他の目的は、ソースRXタイプ浮動小数点算術命
令をエミユレートするターゲツトCPU動作に必要な時間
を低減することによつてそのようなエミユレーシヨン・
システムの動作を改善することにある。
D. 問題点を解決するための手段 本発明は、ソースCPU命令の実行をエミユレートするた
めのシステムにその応用を有する。このシステムは、メ
モリをもつターゲツトCPUと、複数の機能ユニットと、
ターゲツト機能ユニツトによつて実行するために変換さ
れたターゲツト命令を処理し発行するターゲツト命令ユ
ニツトとを含む。このエミユレーシヨン・システムはま
た、ソース命令を受取つて変換するための命令変換ユニ
ツト(変換器)をも有する。本発明の改良点はこのシス
テムに対するものであり、浮動小数点命令の変換及び実
行を加速する機構としてのかたちをとる。これに関し
て、本発明は変換器中に、ソース浮動小数点命令の変換
に応答して浮動小数点待機トークン信号を発生するトー
クン発生器を含む。そして、ターゲツトCPUの浮動小数
点機能ユニツト中の成果(outcome)発生器が、発行さ
れた命令の実行完了に先立つて、発行されたターゲツト
浮動小数点命令の成果をあらわす完了信号を発生する。
このシステムは、トークン信号に応答して命令の変換及
び発行を制止するためのシステム手段を有している。最
後に、変換器中に配置され上記システム手段に接続され
た多重段待機キユー(待ち行列)が、待機トークン信号
が発生されたときにそれを受け取つて保持し、ソース浮
動小数点命令から変換されたターゲツト浮動小数点命令
の成果をあらわす完了信号に応答してそのトークン信号
を消滅させる。
本発明は、多くの予期し得ない知見を基づく。本願の発
明者らは次のことを観察した。すなわち、もし命令の変
換とターゲツト命令の発行が、ターゲツト浮動小数点命
令の実行結果の高速化された表示に応答してなされるな
ら、変換及び発行、すなわちエミユレーシヨンを高速化
することができる。また、もしソースRXタイプ命令Xフ
イールド・オペランドが変換されたターゲツト命令発行
の前に得られるならば、ソースRX浮動小数点命令はター
ゲツトRR命令の実行によつてエミユレートすることがで
き、以て命令発行後のメモリ・アクセス・サイクルを除
去することができる。さらに、もし拡張された浮動小数
点ソース命令のXフイールド・オペランドの各半分が2
つとも連続的なメモリ・アクセス・サイクル上で得られ
るなら、ソース命令のエミユレーシヨンは、オペランド
を転送しRRターゲツト命令シーケンスの実行を開始する
一組のターゲツト浮動小数点命令としてエミユレートす
ることができ、これにより、ソース命令をエミユレート
するのに必要なサイクルの数が低減される。
E. 実施例 第1図は、本発明のアプリケーシヨン環境を示す図であ
る。この環境は、ターゲツトCPUを形成する減少命令セ
ツト・コンピユータ(RISC)を有する。IBMジヤーナル
・オブ・リサーチ・アンド・デベロツプメット(Journa
l of Research and Development)Vol.27、No.3、1983
年5月、pp.237−246に“801ミニコンピユータ(The801
Minicomputer)”と題してレイデイン(Radin)により
記述されているように、そのようなコンピユータは、個
別のキヤツシユにより起動される個別の命令とデータ・
ストリームをもつ。このコンピユータにおいては、命令
は命令キヤツシユから得られ、データはそれとは別のデ
ータ・キヤツシユから得られ、それらはともに命令処理
ユニツト(IPU)10中に配置されてIPUによつて管理され
る。キヤツシユの内容は、メモリ12のIPUアクセスによ
つて補給される。IPU10はキヤツシユされた命令を処理
し、1つまたはそれ以上の処理ユニツト(PU)14及び浮
動小数点処理ユニツト(FPU)16によつて実行するため
にそれらを発行する。ユニツト10、12、14及び16はター
ゲツトCPUを形成するので、IPU10によつて発行された命
令はターゲツト命令と呼ばれ、ターゲツト命令バス19上
で処理ユニツトに発行される。オペランド及び結果(O/
R)データは、O/Rデータバス18上で、IPU10と、処理ユ
ニツト14及び16の間で交換される。
この要請された環境においては、例としての801コンピ
ユータが32ビツト・アーキテクチヤをもつ。この32ビツ
トは、データ及び命令バス18及び19の対応する幅に反映
されている。さらに、データ・キヤツシユに加えて、80
1コンピユータのIPU10は、汎用レジスタ(GPR)のバン
クをもつ。
エミユレータとして使用されるとき、ターゲツトCPU
は、エミユレータ支援プロセツサ(EAP)20と協働して
動作する。エミユレーシヨン・モードにおいては、ソー
スCPUからの命令からなるプログラムがデータ・パス2
1、10、22上でIPU10中のデータ・キヤツシユの一部を介
してEAP20へと流される。EAP20においては、ソース命令
がターゲツト命令に変換されて、IPU10によつて実行さ
れる通常のターゲツトCPU命令実行シーケンスを乱さな
いターゲツトCPU命令ストリーム中に挿入される。変換
された命令ストリームはデータパス23上でIPU10に供給
される。命令の変換を実行しターゲツト命令ストリーム
を発生する際のIPU10及びEAP20の協働動作は前記米国特
許第4587612号に詳しく説明されているのでここでは説
明しない。しかし、命令変換に関与するある構造及び機
能は、不発明を適切に説明するためには述べておかねば
ならない。
次に第2図を参照すると、EAP20と、IPU10と、EPU16が
示されている。IPUは、2つの機能部分10a及び10bに分
けて示されているが、これは以下の説明を容易するため
のみの目的である。IPU10は実際は単一のユニツトであ
る。第2図において、線21上でソース命令ストリームを
受け取るIPU10の部分10aは、ソース・ストリームの末端
であるデータ・キヤツシユ24と、マイクロ命令を含む命
令キヤツシユ25を有している。ソース命令ストリームは
信号線22上でデータ・キヤツシユからEAP20に供給さ
れ、命令マツピング回路27が動作し得るプラツトフオー
ムを与えるソース命令レジスタ(SIR)25を介してソー
ス命令ストリームは1つづつの命令についてステージさ
れる。米国特許第4587612号に説明されているように、
命令マツピング回路27は、IPU10中の命令キヤツシユ23
に与えられる次の命令アドレスを発生し、このことは命
令キヤツシユからのマイクロ命令の供給をもたらし、そ
のマイクロ命令は信号線30上でEAPに供給される。信号
線30上のマイクロ命令は、マイクロ命令レジスタ(MI
R)31中のEAPにステージされる。米国特許第4587612号
に教示されるように、レジスタ31中に保持されるマイク
ロ命令は、線29上に次の命令アドレスを発生することが
できる次の命令フイールドを含む。このように、レジス
タ25中のソース命令は、信号線30上でEAPに供給される
1つのマイクロ命令、あるいはマイクロ命令のシーケン
スの発生をもたらすことができる。それに関連して、ソ
ース命令のエミユレーシヨンは命令キヤツシユからのマ
イクロ命令シーケンスの検索と、ターゲツト・プロセツ
サによる結果のターゲツト命令シーケンスの実行とを含
む。レジスタ31に供給されたマイクロ命令は、制御部分
と、骨組み(skelton)ターゲツト命令とから成る。骨
組みターゲツト命令は信号線23a上で、IPU10中の命令マ
ージ・レジスタ32に供給される。米国特許第4587612号
により教示されるように、骨組み命令はOPコード・フイ
ールドとレジスタと変位フイールドから成る。レジスタ
31中のマイクロ命令の制御部分と、レジスタ25中のソー
ス命令のオペランド・フイールドは、マツピング回路27
によつて、IPU10中の命令マージ・レジスタ32に、ゼロ
・オペランドまたは骨組み命令の制御フイールドを書込
むために使用される。この書込情報は、信号線23b上で
マツピング回路から供給される。このように、信号線23
a及び23bは、ターゲツト命令ストリームがIPU10に供給
される経路となる第1図の信号線23を形成する。命令が
IPU10によつて発行されたとき、それは命令マージ・レ
ジスタ32から命令レジスタ(I REG)33に転送され
る。ターゲツト命令が命令レジスタ33中にあるときは、
IPU10が一連の命令発行動作を引き受ける。これについ
ては以下で要約する。
本発明の動作上の周辺状況は、IBM370CPU命令セツトに
含まれているような多重フイールド命令を含むソース命
令ストリームを仮定している。このセツトにおける少く
とも1つの独特のフオーマツトRX(レジスタ/インデツ
クス)フオーマツトと呼ばれる。このRXフオーマツトは
次のような形式をもつている。
OP R1X2B2D2 RX命令においては、動作はOPコード・フイールドによつ
て示される。第1のオペランドがレジスタR1に格納さ
れ、一方、第2のオペランドは、アドレスX2+B2+D2
もつ主メモリ位置にある。X2とB2は、インデツクス及び
ベース・レジスタのような、命令のための汎用レジスタ
の機能に関し、一方、D2は変位である。命令が実行され
たとき、その結果はレジスタR1中に格納される。
知られているように、RXタイプの命令は、浮動小数点上
で実行される算術動作に関与する命令のサブセツトを含
む。浮動小数点の算術はよく理解されている。浮動小数
点のデータ・フオーマツトと、用語と、動作は、IBMジ
ヤーナル、1967年1月、pp.34−53の、アンダーソン(A
nderson)らによる“IBMシステム/360モデル91:浮動小
数点実行ユニツト(The IBM System/360 Model91: Fl
oating−Point Execution Unit"と題する文献で述べら
れている。
RXタイプの浮動小数点算術ソース命令は、IPU10による
発行とFPU16による実行のためにEAP20によつて浮動小数
点算術ターゲツト命令に変換される。
RXタイプの浮動小数点算術命令は条件コード(CC)を変
更し、あるいはプログラム割込み要求(IR)を生じさせ
る結果を発生することができる。知られているように、
CCの状態は、実行ソース・プログラム中のある分岐を条
件づける。割込み要求は実行プログラムからのプログラ
ム制御の移送をもたらす。それゆえ、これらの表示子は
ソース命令ストリームのエミユレーシヨンにおいて考慮
されなくてはならない。EAP20においては、CC及びIRの
現在の状態がステータス・レジスタ34中に維持されてい
る。命令マツピング回路27は、必要なときには、分岐及
び割込み活動を引き受けるためにステータス・レジスタ
34の内容を検査する。
CC及びIRは、他のソースの中でも、FPU16によつて供給
され、この場合、表示子に影響を与える浮動小数点命令
が実行される。CC及びIRはそれぞれ信号線35及び36上に
供給される。FPU16によつて供給される信号としては他
には信号線38上の加速有効性応答(AVR)信号がある。A
VRは、CC及びIRが、現在FPU16によつて実行されつつあ
る浮動小数点の成果を有効に反映するときにFPU16によ
つて発生される。FPU16は、その結果が状態を決定する
ところの浮動小数点算術命令の完了に先行してCC及びIR
をセツトすることができる。CC及びIRが発生されたとき
は、FPU16がAVRを出して、EAP20にレジスタ34の内容が
検査可能であることを知らせる。AVR発生の時間は、浮
動小数点算術命令の開始のすぐ後から、CC及びIRが従来
サンプルされる時間である命令の完了の時点まで亘り得
る。
FPU16によつて、CC及びIRの加速された発生を利用する
ために、本発明はEAP20に待機トークン回路を設ける。
待機トークン回路は、浮動小数点算術ターゲツト命令が
変換され発行された時にEAP20及びIPU10に通知し、発行
された浮動小数点算術ターゲツト命令の実行に応答して
CC及びIRが発生されるまでターゲツト命令のそれ以上の
変換及び発行を制止し、CC及びIRが発生された時にEAP2
0及びIPU10に通知し、以て命令変換及び発行の早期の回
復を可能ならしめる。
ソース浮動小数点算術命令がレジスタ25に含まれている
ときは、命令マッピング回路27が、ソース命令を変換す
るのに適合したマイクロ命令シーケンスの最初のアドレ
スを発生する。浮動小数点算術命令の結果として発生さ
れたすべてのマイクロ命令シーケンスは、WAIT(待機)
マイクロ命令で終わる。WAITマイクロ命令は、待機トー
クンの発生を開始するための本発明に対する通知であ
る。これに関して、ソース浮動小数点算術命令がレジス
タ26に格納されているとき、そのOPコード・フイールド
が慣用的なデコーダ(D)40に供給され、これにより第
1のトークン前駆信号が活動化される。その励起された
シーケンスの最後のWAITマイクロ命令がレジスタ31に格
納されているとき、そのマイクロ命令のOPコードもまた
デコーダ40に与えられ、これにより第2のトークン前駆
信号が発生される。一致検出器(CD)42は、信号線43上
で待機トークン信号を活動化することによつてその2つ
のトークン前駆信号に応答する。待機トークン信号は、
ラッチ46及び47を含む多段ラッチ列から成る待機トーク
ン・キユーに与えられる。WAITマイクロ命令がマイクロ
命令レジスタ31中にあるときは、信号線23a上で骨組み
ターゲツト浮動小数点命令が命令マージ・レジスタ32に
入力される。このとき、その命令のオペランド・フイー
ルド・データは信号線23b上で命令マツピング回路27に
より与えられる。待機トークン信号は、多重フエーズ・
パイプライン・クロツクの1フエーズ(CLK A)によ
つてラツチ46からラツチ47へ刻時される。待機トークン
信号がラツチ47に入ると、そのラツチは、命令マツピン
グ回路27と、命令マージ・レジスタ32と、ステータス・
レジスタ34に与えられるホールド信号を活動化する。こ
のホールド信号は、それが活動的である限りはレジスタ
32、33及び34中のデータの変更を禁止する。さらに、ホ
ールド信号は、命令マツピング回路27の動作を一時停止
する。
第2の多重フエーズ・クロツク(CLK B)に応答して
の待機トークン信号のラツチ47への転送と同時に、ター
ゲツト浮動小数点命令が命令マージ・レジスタ32からIP
U10中に命令レジスタ33へシフトする。命令レジスタ33
においては、命令の発行がFPU16に与えられる。FPU16は
発行された命令を実行するための動作を引き受けるとと
もに、CC及びIRを、実行された命令の成果を反映する状
態にセツトする機能を果たす。CC及びIRがFPU16によつ
て発生されてしまうと、AVRが立ち上げられ、これによ
つてラツチ47がクリアされて、以てホールド信号が不活
動化される。
ホールド信号が不活動化されると、現在のCC及びIRがFP
U16からステータス・レジスタ34中に入力される。その
入力が行なわれると、命令マツピング回路27が、必要と
される分岐または割込み動作を引き受けるためにステー
タス・レジスタ34の内容を検査する。ホールド信号の不
活動化と次の骨組み命令の発生に続いて、マージされた
命令がレジスタ32に配置されて命令レジスタ33への発行
のため転送されることになる。
尚、待機トークン回路45がAVRの高速化に応答し、命令
の変換及び発行が実行中のターゲツト浮動小数点算術命
令の完了に先立つて行なわれることを可能ならしめるこ
とはこの分野の当業者に明らかであろう。また当業者
は、この高速化された動作が第1のエミユレータにおけ
る動作の同時性を高めることができ、以て動作の全体的
な速度が向上されることを理解するであろう。
第3図を参照することにより、上述の目的のうちの第2
の目的、すなわちソースRXタイプ浮動小数点算術命令の
実行をエミユレートするターゲツト・マシン動作の実行
に必要な時間を低減することを本発明がどのようにして
達成するかが理解されよう。第3図において、IPU10
は、命令レジスタ33以外に、汎用レジスタ(GPR)50の
バンクと、デコード/制御回路52と、一対のマルチプレ
クサ(MUX)54、56を含む。汎用レジスタはIPU10中の命
令処理動作のために使用される。デコード/制御回路は
慣用的な様式で、レジスタ33中のターゲツト命令のOPフ
イールドからのOPコード情報と、命令のDフイールド中
の情報とを受け取る。このDフイールドが実行すべき制
御動作を記述しその制御を担当する制御ユニツトを識別
する。そして指定されると、デコード/制御回路は、OP
コードにより指示された動作を実行するためにMUX54、5
6とGPR50のための制御信号を発生する。命令処理動作が
必要とされるときは、Dフイールドがデコード/制御回
路52を識別しその回路が記述された動作を行うことを可
能ならしめる。そのような動作は、メモリからフエツチ
されたデータを含み、フエツチされたデータを指定され
たGPRに伝えるというMUX54の動作を生じせしめる。デー
タがO/Rデータ・バス18と交換されるべき場合、回路52
は、データを伝えるようにMUX56を動作させるととも
に、データをソースまたはシンクするようにGPRを動作
させる。デコード/制御回路52によつて実行される動作
の相補的な動作として、レジスタ33中のターゲツト命令
のレジスタ・フイールド(RT、RAまたはRB)のうちの1
つの値をGPRレジスタのうちの予定の1つに入力させ
る。LOAD IMMEDIATE(即時ロード)命令がある。
第3図はまた、FPU16をより詳細に図示する。FPU16は、
発行されたターゲツト命令のDフイールドによつて指定
することができ、FPUソースの動作を、発行されたター
ゲツト命令のOP及びDフイールド中に記述された命令の
実行を行うように制御及び同期させる制御ユニツト60を
含む。FPUは浮動小数点レジスタ(FPR)62のバンクを含
む内部資源を有する。FPR62は、FPU16によつて実行され
た浮動小数点動作のオペランド及び結果を一時的に記憶
するための複数の汎用64ビツト・レジスタを有してい
る。FPUの算術及び論理動作は実行ユニツト(X)64及6
5によつて実行される。知られているように、そのよう
なユニツトには、例えば、掛算/割算実行ユニツト、加
算/減算/シフト・ユニツト及び、累乗根演算を実行す
るためのユニツトがある。IPU及びそれに接続された他
の機能ユニツトは32ビツト・データ及び命令アーキテク
チヤとして構築されているので、FPU16のデータ・イン
ターフエースは、32ビツト・データバス18とデータを交
換する32ビツト・インターフエース・レジスタ(IR)66
である。
第3図と第4図を参照すると、“短い"RXタイプの浮動
小数点算術ソース命令をエミユレートする際の本発明の
動作が理解されよう。この“短い”という用語は、RXタ
イプの命令のオペランドが32ビツト長であることを示
す。このように、IPU10とEPU16の間のデータ・インター
フエースは、オペランドの結果全体を単一のサイクルで
転送することができる。第4図のステツプS1において、
短いソースRXタイプの命令がEAP20に入るとき、EAPは、
即時ロード命令をIPU10に与え、以てIPUを実行のユニツ
トとして指定することを含むマイクロ命令シーケンスを
引き受けることになる。その命令はそのレジスタ・フイ
ールド(RT、RAまたはRB)のうちの1つに、RXタイプ命
令のX2、B2及びD2フイールドの和に対応するメモリ・ア
ドレスを搬入することになる。そのアドレスはGPRiにロ
ードされる。次に、マイクロ命令のシーケンスの間に、
IPUへのロード命令が、GPRiに保持されているアドレス
に記憶されたオペランドのGPRjへのロードをもたらす。
これは第4図のステツプS2に対応する。このとき、マイ
クロ命令シーケンスの最終命令が発行のための、ターゲ
ツト浮動小数点算術命令のレジスタ33へのロードをもた
らす。この発行された命令は、拡張RX(ERX)短タイプ
・ターゲツト命令と呼ばれる。そのような命令は、IPU
制御回路52によりGPRjの内容がデータバス21上に配置さ
れることを引き起こす。これは、ソースRX命令のXフイ
ールド・オペランドである。FPUはこの発行された命令
を受取り、それを、第1のオペランドがその命令のRAフ
イールドによつて指定されたFPR中に配置され、第2の
オペランドが、その命令のRBフイールド中で指定された
インターフエース・レジスタ66中に配置されるようなレ
ジスタ対レジスタ(RR)浮動小数点算術命令としてデコ
ードする。そのターゲツト命令実行の結果は、その命令
のRTフイールド中に指定されたFPR中に配置される。
第4図の手続きは、ターゲツト・レジスタ対レジスタ浮
動小数点命令の実行によつてソースRXタイプ浮動小数点
算術命令をエミユレートするために有効な手続である。
もし第4図のRX拡張がなされないなら、GPRj中に保持さ
れているオペランドを浮動小数点レジスタに転送し続い
て浮動小数点レジスタ対レジスタ命令を実行するという
追加的なステツプを挿入する必要があろう。この余分な
ステツプは第4図のステツプS2及びS3間に挿入されるこ
とになろう。
第3図と第5図とを参照すると、本発明が、長い(64ビ
ツト)オペランドを指定するソースRX浮動小数点算術命
令をエミユレートするためにどのように働くかについて
の理解が得られよう。拡張RXタイプ命令に応答してEAP
によつて引き受けられるマイクロ命令シーケンスにおい
ては、最初に、ステツプS10で、RX命令のXフイールド
・アドレスをGPRj中に配置する即時ロード・ターゲツト
命令を、IPUによる実行のために与えることが第4図の
シーケンスに続く。尚、GPRi中のアドレスが64ビツトか
らなる2ワード・オペランドを規定することが理解され
よう。
こうして即時ロード命令に続いて、ステップS11及びS12
において、2つのロード命令が順に送られ、これにより
IPUが先ずXフイールド・オペランドの上位4バイトをG
PRjにロードし、次にオペランドの下位4バイトGPRk
ロードする。ステツプS13では、EAPによつて引き受けら
れたマイクロ命令シーケンスの結果としてIPUに与えら
れた終わりから2つ目の命令が、FPUに発行されるべき
拡張されたRX(ERX)長タイプ浮動小数点命令からな
る。本質的には、その命令は、FPUによつて、その命令
のRAフイールドによつて指定されたFPR中に格納された
命令である、一対の64ビツト・オペランドを含む拡張さ
れたレジスタ対レジスタ命令として認識される。FPU
は、インターフエース・レジスタ66から第2のオペラン
ドを入手する。この第2のオペランドは、先ずステツプ
S13中で命令の発行と同時にGPRj中の高位4バイトを転
送し次にステツプS14で、マイクロ命令シーケンスから
得られる最終ターゲツト命令に応答して下位4バイトを
転送することによつて、インターフエース・レジスタ66
を介してFPUにステージされる。最終命令はFINRXと示さ
れており、IPUによつてのみ実行される。命令の実行
は、GPRkからの下位4バイトをインターフエース・レジ
スタ66に転送することからなる。こうして、第5図の実
行シーケンスは、拡張されたターゲツト・レジスタ対レ
ジスタ浮動小数点動作による拡張ソースRX浮動小数点命
令の有効なエミユレーシヨンを可能ならしめる。このFI
NRXダミー命令は、エミユレーシヨン・シーケンスを、
ターゲツト・マシンの32ビツト・アーキテクチヤに適合
させる。
F. 発明の効果 以上説明したように、この発明によれば、ソースCPUの
浮動小数点命令の、ターゲツトCPUの浮動小数点命令へ
の変換及び発行(エミユレーシヨン)が高速化されると
いう効果が得られる。
【図面の簡単な説明】
第1図は、IBMシステム370タイプのソースCPUによつて
与えられるプログラムをエミユレートするためのシステ
ムのアーキテクチヤ的なブロツク図、 第2図は、EAPとIPUの詳細なブロツク図、 第3図は、IPU及びFPU中の機能素子を示すブロツク図、 第4図は、RXの短いソース命令をエミユレートする際に
第3図の構成によつて実行される動作のシーケンスを示
すフローチヤート、 第5図は、拡張RXタイプ浮動小数点ソース命令をエミユ
レートする際に第3図の構成によつて実行された動作の
シーケンスを示すフローチヤートである。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】メモリと、変換されたターゲツト命令を処
    理し発行するためのターゲツト命令ユニツトと、ターゲ
    ツト命令を実行するためのターゲツト浮動小数点ユニツ
    トと、ソース命令を受け取つてそれをターゲツト命令に
    変換するための命令変換ユニツトとをもち、ソース命令
    をエミユレートするための装置において、 (A) 上記命令変換ユニツト中にあつて、ソース浮動
    小数点算術命令の変換に応答して浮動小数点トークン信
    号を発生するための手段と、 (B) 上記ターゲツト浮動小数点ユニツト中にあつ
    て、上記発行されたターゲツト浮動小数点命令の実行完
    了に先立つて、上記変換に応答して発行されたターゲツ
    ト浮動小数点の結果をあらわす完了信号を発生するため
    の結果手段と、 (C) 上記命令変換ユニツト中にあつて、上記変換に
    応答して上記トークン信号を受け取りそれを待機ステー
    ジに移し、上記完了信号に応答して上記待機トークン信
    号を上記待機ステージから除去するための多重ステージ
    待機キユー手段と、 (D) 上記待機ステージに接続され、上記待機トーク
    ン信号が上記待機ステージに保持されている限り命令の
    変換及び発行を制止するためのシステム手段、 とを具備するソース命令実行をエミユレートする装置。
JP62176102A 1986-10-06 1987-07-16 ソース命令実行をエミュレートする装置 Expired - Lifetime JPH0758466B2 (ja)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
JPS6398739A JPS6398739A (ja) 1988-04-30
JPH0758466B2 true 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)

Families Citing this family (58)

* 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
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 インターナショナル・ビジネス・マシーンズ・コーポレーシヨン シミュレーシヨン方法
US4951195A (en) * 1988-02-01 1990-08-21 International Business Machines Corporation Condition code graph analysis for simulating a CPU processor
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
US5963745A (en) * 1990-11-13 1999-10-05 International Business Machines Corporation APAP I/O programmable router
US5963746A (en) * 1990-11-13 1999-10-05 International Business Machines Corporation Fully distributed processing memory element
US5815723A (en) * 1990-11-13 1998-09-29 International Business Machines Corporation Picket autonomy on a SIMD machine
ATE180586T1 (de) * 1990-11-13 1999-06-15 Ibm Paralleles assoziativprozessor-system
US5765015A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Slide network for an array processor
US5966528A (en) * 1990-11-13 1999-10-12 International Business Machines Corporation SIMD/MIMD array processor with vector processing
US5828894A (en) * 1990-11-13 1998-10-27 International Business Machines Corporation Array processor having grouping of SIMD pickets
US5752067A (en) * 1990-11-13 1998-05-12 International Business Machines Corporation Fully scalable parallel processing system having asynchronous SIMD processing
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
US5617577A (en) * 1990-11-13 1997-04-01 International Business Machines Corporation Advanced parallel array processor I/O connection
US5590345A (en) * 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
US5809292A (en) * 1990-11-13 1998-09-15 International Business Machines Corporation Floating point for simid array machine
US5734921A (en) * 1990-11-13 1998-03-31 International Business Machines Corporation Advanced parallel array processor computer package
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
US5625836A (en) * 1990-11-13 1997-04-29 International Business Machines Corporation SIMD/MIMD processing memory element (PME)
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
US5588152A (en) * 1990-11-13 1996-12-24 International Business Machines Corporation Advanced parallel processor including advanced support hardware
EP0532744B1 (en) * 1991-03-07 1996-12-18 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
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
US5781750A (en) * 1994-01-11 1998-07-14 Exponential Technology, Inc. Dual-instruction-set architecture CPU with hidden software emulation mode
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
EP1359501A3 (en) * 1997-10-02 2007-11-21 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
GB2447968B (en) * 2007-03-30 2010-07-07 Transitive Ltd Improvements in and relating to floating point operations
JP4849273B2 (ja) * 2008-03-26 2012-01-11 株式会社日立プラントテクノロジー 乾式電気集塵装置の放電極用h型プロテクタ
US20240036817A1 (en) * 2022-08-01 2024-02-01 Electronics And Telecommunications Research Institute System-on-a-chip including soft float function circuit

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
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

Also Published As

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

Similar Documents

Publication Publication Date Title
JPH0758466B2 (ja) ソース命令実行をエミュレートする装置
US5218712A (en) Providing a data processor with a user-mode accessible mode of operations in which the processor performs processing operations without interruption
US5826084A (en) Microprocessor with circuits, systems, and methods for selectively bypassing external interrupts past the monitor program during virtual program operation
US6327647B1 (en) Method and apparatus for interfacing a processor to a coprocessor
US5341482A (en) Method for synchronization of arithmetic exceptions in central processing units having pipelined execution units simultaneously executing instructions
US5678032A (en) Method of optimizing the execution of program instuctions by an emulator using a plurality of execution units
JP2931890B2 (ja) データ処理装置
JP2834837B2 (ja) プログラマブルコントローラ
US5974440A (en) Microprocessor with circuits, systems, and methods for interrupt handling during virtual task operation
JP2001195250A (ja) 命令トランスレータ、トランスレータ付命令メモリおよびそれらを用いたデータ処理装置
EP1039376B1 (en) Sub-instruction emulation in a VLIW processor
EP0301707B1 (en) Apparatus and method for providing an extended processing environment on nonmicrocoded data processing system
CA1304823C (en) Apparatus and method for synchronization of arithmetic exceptions in central processing units having pipelined execution units simultaneously executing instructions
EP0306891A2 (en) Pipelined slave protocol for high performance CPU-FPU cluster
JPH02306361A (ja) マイクロプロセッサ
JPS6161416B2 (ja)
JP3520372B2 (ja) メモリ制御ユニット並びに入出力制御ユニットの動作におけるクリティカル・パスの削除
JP2636821B2 (ja) 並列処理装置
JP3102399B2 (ja) データ処理装置及び方法
JPH11288378A (ja) マスク不可能インタ―ラプトを保護する機能を備えたデ―タプロセッサ
JP2927281B2 (ja) 並列処理装置
JP2636074B2 (ja) マイクロプロセッサ
JP2785820B2 (ja) 並列処理装置
WO1997005546A1 (en) Method for emulating program instructions
JPH076038A (ja) 情報処理装置