JPS59501684A - 目的命令ストリ−ムへ殆んど実時間で插入するためのソ−スおよび目的命令ストリ−ムの外部における加速式命令写像 - Google Patents
目的命令ストリ−ムへ殆んど実時間で插入するためのソ−スおよび目的命令ストリ−ムの外部における加速式命令写像Info
- Publication number
- JPS59501684A JPS59501684A JP57503587A JP50358782A JPS59501684A JP S59501684 A JPS59501684 A JP S59501684A JP 57503587 A JP57503587 A JP 57503587A JP 50358782 A JP50358782 A JP 50358782A JP S59501684 A JPS59501684 A JP S59501684A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- instructions
- source
- field
- target
- 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
Links
- 238000013507 mapping Methods 0.000 title claims description 9
- 238000003780 insertion Methods 0.000 title description 2
- 230000037431 insertion Effects 0.000 title description 2
- 238000000034 method Methods 0.000 claims description 16
- 238000006243 chemical reaction Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 3
- 230000001143 conditioned effect Effects 0.000 claims description 2
- 239000013256 coordination polymer Substances 0.000 claims description 2
- 238000012546 transfer Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 6
- 101100500491 Arabidopsis thaliana EAP3 gene Proteins 0.000 description 4
- 238000006073 displacement reaction Methods 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- GSDSWSVVBLHKDQ-UHFFFAOYSA-N 9-fluoro-3-methyl-10-(4-methylpiperazin-1-yl)-7-oxo-2,3-dihydro-7H-[1,4]oxazino[2,3,4-ij]quinoline-6-carboxylic acid Chemical compound FC1=CC(C(C(C(O)=O)=C2)=O)=C3N2C(C)COC3=C1N1CCN(C)CC1 GSDSWSVVBLHKDQ-UHFFFAOYSA-N 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000033764 rhythmic process Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30174—Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
- G06F9/3879—Concurrent 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45554—Instruction set architectures of guest OS and hypervisor or native processor differ, e.g. Bochs or VirtualPC on PowerPC MacOS
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。
Description
【発明の詳細な説明】
目的命令ストリームへ殆んど実時間で挿入するためのノースおよび目的命令スト
リームの外部における加速式命令写像〔技術分野〕
本発明は第1の種類のCPUに対する複数フィールド命令のフォーマット全第2
の種類のCPUに対する複数フィールド命令のフォーマットへ実時間式に変換す
るための新規な機構に係り、更に詳細に説明すれば第2の種類のCPUとは独立
しており、かつソース寸たは目的命令ストリームの論理フローまたは実行を途絶
させることのない、そのような機構に係る。
米国特許第4315321号は、参照でれた成る命令ス) l)−ムを解釈する
ために、活性化レコード内の標降コードがいくつかの相互に排他的なマイクロコ
ードセントの中の1つを選択しうろことを教示する。この活性化レコードは、プ
ログラム・ステータス・ワード・レジスタの複数のビット位置の形式で衣現され
る。この米国特許は、各々の参照された主記憶命令を解釈または分析することに
関係がある。更に、この命令の外部にあるプロセスの活性化レコードは、マイク
ロコード・セットの選択インデックスを与える。
米国特許第3543245号は、もしCPUの複数フィールド命令のOPコード
部分によってインデックスされた制御ワードが、命令フィールドとそれらのマイ
クロコード実行順序全選択するように用いられるならば、命令幅を変更すること
が可能であることを教示する。この米国特許は、前掲の米国特許と同様に、マイ
クロコードの即時解釈によって外部命令を実行するCPUに関係がある。前述の
制御ワードはマスゾおよびスイッチ回路ならびにシフト回路の制御ピッIf含み
、これらのビットによってソース命令におけるフィールドが選択されかつ再配列
されてマイクロコードの即834行のた−めの「待行列」を形成する。実際、フ
ィールド選択はこの特許明細書の第6欄第26行乃至第10欄第54行に記述さ
れており、ノース・ワードのランダムな順序のフィールドを目的ワードの所定位
置に写像することは同明細書の第62欄第5行乃至第36行に記述されている。
更に、第2図の制御ワード・レジスタ対は第38図において等価的な1つのレジ
スタとして示されている。これらは同明細書の第24欄第60行乃至第61欄第
60行で第2図、第9図および第37図に関連して記述されている。
他の関連する先行技術には、米国特許第3997895号および米国特許第36
98007号がある。前者はマイクロプロは外部命令中の所定ビット位置の内容
に応答して制御部に記憶されたマイクロコード・シーケンスを演算論理ユニット
(ALU 1317)またはエミュレータ・ユニット(FJMU 1ろ16)に
よってそれぞれ解釈さ、せる。一方、後者はンミュレートされた命令のOPコー
ド全1組のノミュレータ・ルーチンへのインデックスとして用いることにより、
記憶装置のベース・アドレス−〇Pコード・インデックスはベース・アドレスに
(3)
対するオフセットである□を与える。最後に、各々の命令は1つのオペランドだ
けを参照する。この構成は非固有命令を直接実行する。
対応するキャッシュからのそれぞれのデータ・ストリームおよび命令ストリーム
によって駆動される縮小命令セラトラ有する、■LSIで実現可能なコンピュー
タは、1982年6月1日〜6日にカリフォルニア州パロアルトで開催された「
プログラミング言語およびオペレーティング・システムのアーキテクチャ支援」
に関するンンポジウムのhcMp事録第39頁〜第47頁に記載されているrT
he801Minicomputer jの中で、ラブインによって記述されて
いる。これと同様のCPUアーキテクチャは、1981年5月12日〜14日に
開催されたIEEE第8回第8冫のrRISC に縮小命令セットVLSIコン
ピュータ」の中でパダーリンおよびセフ−インによって記述されている。
このクイズの計算機では、命令が「命令キヤノンユ」から得られるのに対し、デ
ータは別個の「データキャツ/ユ」から得られ、そして両者はLRU情報アルゴ
リズムによって管理される。かくて、すべての頻繁に使用された機能およびデー
タはそれぞれのキャッシュで見出される可能性が大きい。
本発明の目的は、複数フィールドのソース命令を複数フィールドの目的計算機命
令に変換し、そしてこれらの命令全通常の目的計算機命令の実行シーケンスを混
乱させずに目的計算機命令ス) IJ−ムに挿入することである。関連する目的
は、ソース命令セットのレジスタ空間および定数ヲ廿的命令セットのそれに写像
する効率的な方法−ただし、この方法自体はこれらの命令の実行には関与しない
一全案出することである。更に、本発明の目的は、このような変換が目的計算機
の外部で且つほぼ実時間で実行されるようにし、かくて目的計算機が、それ自体
は大幅に変更されずにエミュレーションに関与できるようにすることである。
前述の目的は、通常第1のタイプのCPU(ソース計算機)によって実行可能な
ソース命令を、第2のタイプのCPU(目的計算機)で実行可能なコード・スト
リームに直接挿入される1つ以上の命令(コード・ワード)に変換する方法によ
って満足される。
この方法は、(a)前記ソース命令の所定のフールドによってアドレスされたメ
モリ位置から制御部分およびスケルトン目的CPU命令を含むマイクロ命令を取
量すステップと、(b)制御部分の内容によって前記ソース命令の選択されたフ
ィールドからコピーまたは計算することにより前記スケルトン全溝たすステップ
と、(C)このようにして満たされた目的命令を目的計算機命令ストリームに挿
入するステップとから成る。
本発明の装置は、第1および□第2のレジスタと、ソース命令を前記第1のレジ
スタにロードする手段と、前記第1のレジスタ内のOPコードに3答してマイク
ロ命令制御部分(制御ワード)を前記第2のレジスタにロードする手段と、前記
第2のレジスタ内の制御ワードによって条件付けられソース命令フィールドから
前記・スケルトン命令に選択的にコピー(ゲート・アウト)または計算するため
の写像ロジックと、「肉づけ」された目的命令を対応する目的CPU命令ストリ
ームにマージさせるための手段とを含む。
本発明は次のようないくつかの新規な知見に基づいている。
(a) もし複数フィールドのソース計算機命令を含むデータ・ストリームが、
介在する独立したプロセツブによって、目的計算機の命令ストリームに写像され
るならば、このような変換は独立して並行的に行なわれ、従って完全なリアルタ
イム利用度を高める。
(b) もしノース命令フィールドの優位性が目的計算機命令において不変のま
ま使用可能であるならば、独立したプロ七ツブ内の再フォ−マツト化はレジスタ
間転送によって実現しうる。
(c) もしソース命令内の所定のフィールドがインデックス操作によってメモ
リからワード対をアクセスし、そしてこのワード対の1つのワードがフィールド
間(レジスタ間)の写像を指定する制御御部分でアシ、このワード対の他のワー
ドがスケルトン目的命令であるならば、それはソース命令のフィールドによって
充填されうる。
(d) もし目的計算機命令が前記目的計算機の外部で構成されるならば、目的
計算機は複雑さが少なくなるとともにより(6)
速い命令実行を可能にする。
第1図はIt3Mシステム370CPU命令のフィールド寂よびその目的計算機
命令に対する全般的な写像関係を示す圀、第2図は目的計算機の命令キャソノユ
およびデータ・キャツンユと通信関係にある本発明のエミュレータ支援プロセツ
プ(EAP)を示す図、
第6図はIBMンスシステム7 0 C P Uの複数フィールドのノース命令
と、EAP内に含まれた写像ロジックによって肉づけされるスケルトン目的命令
を含むマイクロ命令との関係を示す図、
第4図はスケルトン目的計算機命令を肉づけする際にEAPによって用いられる
マイクロ命令制御部分を示す図、第5図はEAPの主要な再フオーマツト化動作
のタイミングを示す図、
第6図は第6図に示されたEAPの完全なフィールド・レジスタを示す図である
。
本発明は目的またはソース計算機命令ス) IJ−ム発生器または受信器のいず
れのアーキテクチャをも要旨とするものではないが、目的CPUは本発明が実施
される環境として使用するっ前掲のラブインおよびノくダーリンの論文が例示す
るように、CPUアーキテクチャの新し鈷傾向は縮小された命令セラ)1使用す
るとともに、前記CPUで終了する独立的な(7)
パイプライン化命令およびデータストリームを使用するというものである。多年
にわたって、命令およびデータの参照速度は向上してきたが、これはCPU0主
記憶と目的CPU0間にLRU (1east recently u+yed
)アルゴリズムで管理された情報キャッシュを使用することによるものである
。かくて、即時に参照される命令ストリームが1つのキヤノンユ内に存在するの
に対し、即時に参照されるデータ・ストリームは第2のキャッシュに見出される
。このような目的CPUは第2図に示されている。
一般に、目的計算機(CPU)1はデータ及び命令に対する独立した記憶アクセ
スを可能にする様に構成される。各々のアクセス経路は独立したキャッシュによ
ってサービスされる。かくて、命令キャッシュ5はアドレス・ライン9によって
アクセスされ、そして命令キャッシュ5からの情報は経路11.13及び21を
介して読取られる。同様に、データ・キャッシュ7はアドレス・ライン17によ
ってアクセスされ、その内容は読取ライン19を介して目的CPUによって読取
られる。しかしながら、実時間式命令変換の間、データ・キャッシュ7はソース
CPUからの命令ストリームを書込可能な状態で終了する。これはデータ・キャ
ッシュがノード−ここからソース命令ストリームがアクセスされ ・るーである
ことを意味する。この点に関して、IBMシステム説明は米国特許第34003
71号に示されている。この特許の内容は本明細書に含まれるものとする。
本発明の装置形式の実施態様はエミュレータ−支援アクセスf(EAP)3に見
出される。E A P 3 (riアドレス・ライン17および読取ライン19
を介してデータ・キャッシュ7をアクセスする表ともに、アドレス・ライン9お
よび読取ライン11全介して命令キャッシュ5をアクセスする。EAP3からの
変換出力は、ライン15、マージ回路16およびライン21を介して目的CP
、U 1に送られる。
これらの要素に留意して第1図を参照すると、そこにはIBM/ステム670の
CPU命令のフィールドおよびその目的計算機命令に対する一般的な写像関係が
示されている。■BM/ステム370のCPU命令は2.4または6バイトから
Fyり、最大6つのアドレスまで含むことができる。所要のそれぞれのオペラン
ドの位置に応じて、5種類のフォーマットが用いられる。これらのフォーマット
は下記のものを含む(a) RR(レジスタ/レジフタ)命令:オペランドRお
よぴR2はC’PUの汎用レジスタにある。結果はR1に置かれる。
(b)RX(レジスタ/インデックス)命令:第1オヘランドはRに置かれるが
、第2オペランドは主記憶に置かれる。
ま
ただし、X2およびB2はそれぞれ、インデックス・レジスタおよびベース・レ
ジスタとして使用されている汎用レジス(9)
夕の内容ヲ衣わし、B2は当該命令に含まれる相対アドレスまたは「変位」を辰
わす。結果はR1に置かれる。
(c)R3(レジスタ/記憶)裾令:2つのオペランドは汎用レジスタに置かれ
、6番目のオペランドは主記憶に置かれる。
(d)SI(記憶/即値)命令:この場合、第1オペランドは主記憶に置かれる
が、第2オペランドは命令自体の連続ビット位置の所定の範囲内に置かれる。こ
れは通常のオペランド・アドレスとは対照的な即値オペランドである。
(e)SS(記憶/記憶〕命令:両オペランドは主記憶に置かれる。命令によっ
て指定されたアドレスは一般的に、長さがLバイトの2つのオペランド・フィー
ルドの初期アドレスである。
第1図全参照するに、IBM/ステム370の命令は、通常1バイトの命令コー
ド・フィールド0P1一対のオペランド長フィールドL1およびB2、ならびに
一対のペース−プラス−変位アドレス、すなわちB XD およびB2、1
D を含む。これらは62ビツトの目的計算機命令に写像される。目的命令フォ
ーマットは、ビット位置0〜5を占めるOPコード・フィールド、命令の結果を
受取るのに用いられるレジスタを指定するビット位置6〜10のRTフィールド
を含むが、ビット位置11〜15のRAフィールドは最初のオペランドに用いら
れるレジスタの名前である。命令の種類に依存して、目的命令フォーマットの後
の半4+け、ビット位(10)
置16〜20に、2番目のオペランドとして用いられるレジスタの名前を、ビッ
ト位置21〜25に、隣接するビット位置26〜29のフィールドで指名された
コ/・トローラによって実行されるべきオペレーンヨンを指定する即値フィール
ドを含む。残シのビット位置の内容は内部バス・オペレーション命令を定義する
。
第2図とともに第6図全参照すると、データ・キャッシュ7がアドレス・ライン
17を介してアドレスされる場合、ソース命令を構成する内容が読取ライン19
を介して転送され、内部レジスタ25にロードされることがわかる。ソース命令
のOPコードは、アドレス・ライン9を活勢にするアドレス・レジスタ27によ
って命令キャッシュ5をアクセスする。
それに応じて、マイクロ命令制御部分が読取ライン11を介してレジスタ23に
転送される。各々のマイクロ命令は後続するマイクロ命令のアクセスを行なわし
めることがあるが、これは各々のソース命令’1EAPマイクロコード・ルーチ
ンン目的命令のレジスタおよび変位フィールドは、0の値および/または有意の
値を有することがある。制御情報は、ソース命令からのフィールドがEAPによ
って、スケルトン命令いかを指定する。エミュレーションの間に、EAPはこれ
らの完成された目的命令を、目的CPUに実行のために引渡す。
(11)
目的CPUは、その命令アドレス・レジスタ(図示せず)が固定されたままに留
まり、かつ目的CPUが命令を取出そうとしない場合を除くと、これらの命令全
通常の様式で実行する。なお、これはサイクル・スチールと呼ばれる。エミュレ
ーノヨンの間に、目的CPUは、命令自身を取出す代りに実行すべき命令i、E
APから与えられるのを待つ。任意のソース命令に対する変換を終了する1つの
方法は、0にされた命・令フィールドまたはマイクロ・シーケンス内の所定のピ
ント位置に埋込まれたストップ・ビットをEAPが検出したときに実施されうる
。
変換を実行する際、目的CPUはEAPのアドレス・レジスタ27を初期設定す
る。目的CPUにおいて適切な状態変更、がなされる。最初のソース命令はEA
Pの内部レジスタ25に取出される。ソース命令のOPコード部分は、このソー
ス命令のオペレーションに対する最初のマイクロコード命令命令キャッシュ5か
ら取出される。このマイクロ命令のスケルトン目的命令部分は、その0にされた
フィールドを370命令の適切なフィールドから充填される。そして完成された
目的命令は実行のために目的計算機1に送られる。各々のマイクロ命令はこのよ
うに処理されるべき他のマイクロ−命令に連続したり、−1:たは現ソース命令
に対する一連のマイクロ命令のうち最後のものであったりすることかあ・る。こ
のプロに繰返される。重要なことは、有効な目的命令の各々が命令キャッシュ5
からの2ワードのマイクロコード命令全必要とするということである。これらは
制御ワードとスケルトン目的命令である。これらはOPコードによって選択され
る制御ワードを最初にして連続的に取出される。
第4図には、エミュレータのマイクロ制御部分のフォーマットが示されている。
制御部分を構成する32ビツトのフォーマットは次のように割当てられる。
OPはEAP3で実行されるべきコマンドであり、Rは目的計算機命令のレジス
タ・フィールドRTおよびRAの代替制御であり、Dは目的計算機命令の変位フ
ィールドおよびレジスタ・フィールドRBの代替制御であり、Cけ条件コード制
御であり、NIはEAP 3によって実行されるべき次の命令のアドレスである
。もしNIが0であれ、ば、EAP3はデータ・キャッシュ7から次のシステム
370命令を取出してエミュレートし、さもなければNIの内容によって再ひ命
令キャッシュ5をアクセスする。これは第5@のEAP 3の拡張形態を示す第
6図に適切に描かれている、6第6図のレジスタ23でフォーマット化されたマ
イクロ命令において、命令キャッシュ5からのEAP 3による命令取出し全終
了させるために次の命令アドレスは0に−d定されるが、この代替方法として、
命令キャッシュ5からシーチフス中も最後の命令が取出されたときセットされる
ような「最終」ビット位置全(13)
利用してもよい。
第5図には、スループットを増すため並行式(パイプライン式)に行なわれるE
AP 3の主要な再フオーマツト動作のタイミング図が示されている。このよう
なパイプライン動作は本発明の目的ではないが、これによりかなシの処理能力が
得られることは明らかである。
ソース・レジスタ空間と目的レジスタ空間の間のレジスタ変換方法はかなシの性
能向上を与える。例えば、EAPからの再フォ−マツト化された命令は目的計算
機の命令ストリームへパイプライン式にマージされているので、通常は1+jイ
クルおきにだけ命令を実行しうる目的計算機は毎ブイクルごとに命令を実行する
ことができるようになる。これはEAP3が目的計算機に2いて最高実行速度で
反復的機能を実行すること全可能にする。
EAPはソース命令の順序がレジスタ空間の写像金製しないときは常にブブルー
チン・モードで動作されうる。このモードでは、EAPは命令キャッシュか°ら
のマイクロ命令の代りに、正規の目的計算機命令を受取り、かくて目的計算機は
再ひ全速で走行する。目的計算機が変換モードの再開を指示する命令全実行する
ようにめられた場合には、このプブルーチン・モードは終了可能である。
これまで説明した実施態様は、ソース命令から取出されたデータと命令キャッシ
ュからのスケルトン命令とをマージすることによって完全な目的マンン命令1E
APにより形成す(14)
ることを前提とする。このことは第2図、第3図および第6図に示されている。
1つの変更はスケルトン目的命令に割込み、それを速やかにマージするというよ
りはむしろ目的cpUにそれを渡す前に、完全な目的計算機命令にあるフィール
ドを置換えるというものである。
方法は動的なレジスタ・フィールドの置換に焦点を合わせている点が認識される
べきである。IBMシステム371外のCPUから生成されたソース命令ストリ
ングも同様に利用可能である。
EAPによる隘路を避は性能を高めるには、複数のキャッシュを備えた目的計算
機が望ましい。
FIG、4
命命キャツシト データキヤッンユ1\ら国際調査報告
h、電、、l”””’AoO”””””[’CT/1ls8210T4Q6第1
頁の続き
Claims (1)
- 【特許請求の範囲】 (1) メモリからデータとして得られたソースCPUの複数フィールド命令を 、目的CPUの実行可能なコード・ワード・ストリームに直接的に挿入されるべ き目的CPUの1つ以上の複数フィールド命令に変換する方法であって、前記ソ ース命令の所定のフィールドによってインデックスされた前記メモリ中の位置か らマイクロ命令および少くとも1つのスケルトン目的命令を取出す段階と、前記 マイクロ命令の内容に従って前記ソース命令の選択されたフィールドまたは該フ ィールドから計算された値を前記スケルトン目的命令に充填する段階と、前記充 填された目的命令を目的CPUの命令ストリームに挿入する段階 とから成る命令変換方法。 (2)取出された前記マイクロ命令の各々はアドレス部分を含み、0でない該ア ドレス部分は前記メモリ、から取出されるべき連続するマイクロ命令のメモリ位 置を指定し、0に等しい前記アドレス部分はマイクロ命令コード・ワード・シー ケンスの終了を指示するようにした請求の範囲第(1)項記載の命令変換方法。 (3)命令の取出し、充填、および挿入の段階が時間的に並行して実行されるよ うにした請求の範囲第(11項記載の命令変換方法。 (4)2つの゛キ゛ヤツ/ユを有する処理ユニットに関連して使用(16) され、該2つのキャッシュの中の第1のキャッシュにデータとして記憶された命 令を該処理ユニットによって実行可能な対応するコード・ワードに変換するため の変換器であって、綻記第1のキャッシュから命令を取出すための手段と、該取 出された命令のオペレーション・コード部分によって決定された第2のキャッシ ュの位置からマイクロ命令およびスケルトン・コード・ワードを取出すための手 段と、該マイクロ命令に従って該スケルトン・コード・ワードを前記取出された 命令のフィールドで充填し且つ該充填されたコード・ワードを実行のために前記 処理ユニットに供給するための手段と を含む変換器。 (5)前記取出し手段が前記第2のキャッシュをサイクル・スチール・アクセス するとともに前記処理ユニットの命令実行サイクルをサイチル・スチール・アク セスするための手段を含むことを特徴とする請求の範囲第(4)項記載の変換器 。 ス命令を目的命令にフォーマット変換し且つ該目的命令を、目的計算機の命令実 行を混乱させることなく、命令キャッシュから得られた命令ストリームに挿入す るための装置であって、 第1および第2のレジス′りと、 前記データ・キャッシュをアクセスし且つOPフィールドを含むソース命令を前 記第1のレジスタにロードするための(17) 手段と、 前記第1のレジスタに置かれた前記OPフィールドの内容に応答して前記命令キ ャッシュをサイクル・スチール・アクセスし且つ制御ワードを前記第2のレジス タにロードするための手段と、 前記第2のレジスタに置かれた前記制御ワードによって条件づけられ、前記第1 のレジスタからスケルトン命令にソース命令フィールドを選択的にコピー−!た けゲート・アウトづるための写像ロジックと、 前記目的計算機をサイクル・スチールし且つフォーマット化された目的命令を対 応する命令ストリームにマージするための手段と から成る前記装置。 (7)実行可能な命令フォーマットがそれぞれ異なる少くとも1つのソースCP Uおよび1つの目的CPUを有する組合せにおいて、少くとも1つのOPフィー ルドを有するソースCPUからの複数フィールド命令を目的CPUの命令フォー マントに変換し且つ該変換された命令を直接的に実行可能な目的CPU命令スト リームに挿入するための装置であって、メモリ手段と、 複数フィールドを有する各ツース命令に応答して、該ソース命令のOPフィール ドによってインデックスされた前記メモリ手段の位置から制御情報の本体および スケルトン目的命令を取出すための手段と、 該取出された制御情報の本体に従って前記取出されたスケルトン目的命令のフィ ールドに前記ソース命令フィールド又は他の計算された内容をコピーすることに よって該スケルトン目的命令を充填するための手段と、 該充填された目゛的命令を前記目的CPUの実行可能な命令ストリームにマージ するための手段とから成る前記装置。 (1)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US1982/001496 WO1984001635A1 (en) | 1982-10-22 | 1982-10-22 | Accelerated instruction mapping external to source and target instruction streams for near realtime injection into the latter |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS59501684A true JPS59501684A (ja) | 1984-10-04 |
Family
ID=22168301
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP57503587A Pending JPS59501684A (ja) | 1982-10-22 | 1982-10-22 | 目的命令ストリ−ムへ殆んど実時間で插入するためのソ−スおよび目的命令ストリ−ムの外部における加速式命令写像 |
Country Status (6)
Country | Link |
---|---|
US (1) | US4587612A (ja) |
EP (2) | EP0124517A1 (ja) |
JP (1) | JPS59501684A (ja) |
CA (1) | CA1199414A (ja) |
DE (1) | DE3366762D1 (ja) |
WO (1) | WO1984001635A1 (ja) |
Families Citing this family (67)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6017539A (ja) * | 1983-07-11 | 1985-01-29 | Hitachi Ltd | エミユレ−シヨン方式 |
JPS6133546A (ja) * | 1984-07-25 | 1986-02-17 | Nec Corp | 情報処理装置 |
KR900003591B1 (ko) * | 1985-04-08 | 1990-05-26 | 가부시기 가이샤 히다찌 세이사꾸쇼 | 데이터 처리장치 |
US4794522A (en) * | 1985-09-30 | 1988-12-27 | International Business Machines Corporation | Method for detecting modified object code in an emulator |
US4807124A (en) * | 1986-09-26 | 1989-02-21 | Performance Semiconductor Corporation | Register addressing system for efficient microroutine sharing and optimization |
US4841476A (en) * | 1986-10-06 | 1989-06-20 | International Business Machines Corporation | Extended floating point operations supporting emulation of source instruction execution |
US4811215A (en) * | 1986-12-12 | 1989-03-07 | Intergraph Corporation | Instruction execution accelerator for a pipelined digital machine with virtual memory |
US4992934A (en) * | 1986-12-15 | 1991-02-12 | United Technologies Corporation | Reduced instruction set computing apparatus and methods |
WO1988007718A1 (en) * | 1987-03-24 | 1988-10-06 | Insignia Solutions Limited | Arrangement for software emulation |
US5280626A (en) * | 1987-12-02 | 1994-01-18 | Hitachi, Ltd. | Multi-process emulator suitable for testing software under multi-process environments |
US5822578A (en) * | 1987-12-22 | 1998-10-13 | Sun Microsystems, Inc. | System for inserting instructions into processor instruction stream in order to perform interrupt processing |
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 |
JP2752076B2 (ja) * | 1988-02-23 | 1998-05-18 | 株式会社東芝 | プログラマブル・コントローラ |
US4879676A (en) * | 1988-02-29 | 1989-11-07 | Mips Computer Systems, Inc. | Method and apparatus for precise floating point exceptions |
CA2002201C (en) * | 1988-12-06 | 1999-04-27 | John Charles Goettelmann | Translation technique |
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 |
CA2019299C (en) * | 1989-06-22 | 2002-01-15 | Steven Frank | Multiprocessor system with multiple instruction sources |
US5197132A (en) * | 1990-06-29 | 1993-03-23 | Digital Equipment Corporation | Register mapping system having a log containing sequential listing of registers that were changed in preceding cycles for precise post-branch recovery |
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 |
US5446851A (en) * | 1990-08-03 | 1995-08-29 | Matsushita Electric Industrial Co., Ltd. | Instruction supplier for a microprocessor capable of preventing a functional error operation |
JPH05189574A (ja) * | 1991-07-23 | 1993-07-30 | Internatl Business Mach Corp <Ibm> | レンダリング構成要素における複数コマンド支援を行うための方法およびその装置 |
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 |
US6735685B1 (en) | 1992-09-29 | 2004-05-11 | Seiko Epson Corporation | System and method for handling load and/or store operations in a superscalar microprocessor |
EP0663083B1 (en) * | 1992-09-29 | 2000-12-20 | Seiko Epson Corporation | System and method for handling load and/or store operations in a superscalar microprocessor |
AU6701594A (en) * | 1993-05-07 | 1994-12-12 | Apple Computer, Inc. | Method for decoding sequences of guest instructions for a host computer |
WO1994027215A1 (en) * | 1993-05-07 | 1994-11-24 | Apple Computer, Inc. | Method for decoding 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 |
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 |
GB2289354B (en) * | 1994-05-03 | 1997-08-27 | Advanced Risc Mach Ltd | Multiple instruction set mapping |
GB2290395B (en) | 1994-06-10 | 1997-05-28 | Advanced Risc Mach Ltd | Interoperability with multiple instruction sets |
GB2299492B (en) * | 1995-03-28 | 1999-12-22 | Sony Uk Ltd | Automation of signal processing apparatus |
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 |
US5867681A (en) * | 1996-05-23 | 1999-02-02 | Lsi Logic Corporation | Microprocessor having register dependent immediate decompression |
US5896519A (en) * | 1996-06-10 | 1999-04-20 | Lsi Logic Corporation | Apparatus for detecting instructions from a variable-length compressed instruction set having extended and non-extended instructions |
EP0862111B1 (en) * | 1997-02-27 | 2010-07-21 | International Business Machines Corporation | Dynamic conversion between different instruction codes by recombination of instruction elements |
US5898850A (en) * | 1997-03-31 | 1999-04-27 | International Business Machines Corporation | Method and system for executing a non-native mode-sensitive instruction within a computer system |
US5898885A (en) * | 1997-03-31 | 1999-04-27 | International Business Machines Corporation | Method and system for executing a non-native stack-based instruction within a computer system |
US5875336A (en) * | 1997-03-31 | 1999-02-23 | International Business Machines Corporation | Method and system for translating a non-native bytecode to a set of codes native to a processor within a computer system |
US5933629A (en) | 1997-06-12 | 1999-08-03 | Advanced Micro Devices, Inc. | Apparatus and method for detecting microbranches early |
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 |
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 |
JPH11296381A (ja) * | 1998-04-08 | 1999-10-29 | Matsushita Electric Ind Co Ltd | 仮想マシン及びコンパイラ |
US20050149694A1 (en) * | 1998-12-08 | 2005-07-07 | Mukesh Patel | Java hardware accelerator using microcode engine |
US7225436B1 (en) | 1998-12-08 | 2007-05-29 | Nazomi Communications Inc. | Java hardware accelerator using microcode engine |
US6826749B2 (en) | 1998-12-08 | 2004-11-30 | Nazomi Communications, Inc. | Java hardware accelerator using thread manager |
US6332215B1 (en) | 1998-12-08 | 2001-12-18 | Nazomi Communications, Inc. | Java virtual machine hardware for RISC and CISC processors |
US6647395B1 (en) * | 1999-11-01 | 2003-11-11 | Kurzweil Cyberart Technologies, Inc. | Poet personalities |
US6633969B1 (en) | 2000-08-11 | 2003-10-14 | Lsi Logic Corporation | Instruction translation system and method achieving single-cycle translation of variable-length MIPS16 instructions |
EP1197847A3 (en) * | 2000-10-10 | 2003-05-21 | Nazomi Communications Inc. | Java hardware accelerator using microcode engine |
US7711926B2 (en) | 2001-04-18 | 2010-05-04 | Mips Technologies, Inc. | Mapping system and method for instruction set processing |
US8769508B2 (en) | 2001-08-24 | 2014-07-01 | Nazomi Communications Inc. | Virtual machine hardware for RISC and CISC processors |
US7092869B2 (en) * | 2001-11-14 | 2006-08-15 | Ronald Hilton | Memory address prediction under emulation |
US20030093774A1 (en) * | 2001-11-14 | 2003-05-15 | Ronald Hilton | State-specific variants of translated code under emulation |
US20030093649A1 (en) * | 2001-11-14 | 2003-05-15 | Ronald Hilton | Flexible caching of translated code under emulation |
US7707389B2 (en) | 2003-10-31 | 2010-04-27 | Mips Technologies, Inc. | Multi-ISA instruction fetch unit for a processor, and applications thereof |
DE102004005123B4 (de) * | 2004-02-02 | 2005-12-22 | Siemens Ag | Anordnung zur Übersetzung von virtuellen Befehlen in einer Datenverarbeitungseinheit |
US7770050B2 (en) * | 2006-05-03 | 2010-08-03 | Sony Computer Entertainment Inc. | Method and apparatus for resolving clock management issues in emulation involving both interpreted and translated code |
US7792666B2 (en) * | 2006-05-03 | 2010-09-07 | Sony Computer Entertainment Inc. | Translation block invalidation prehints in emulation of a target system on a host system |
US7813909B2 (en) * | 2006-05-03 | 2010-10-12 | Sony Computer Entertainment Inc. | Register mapping in emulation of a target system on a host system |
US20080052530A1 (en) * | 2006-02-16 | 2008-02-28 | International Business Machines Corporation | System and method to provide CPU smoothing of cryptographic function timings |
EP2013680B1 (en) * | 2006-05-03 | 2018-08-08 | Sony Interactive Entertainment Inc. | Method and apparatus for resolving clock management issues in emulation involving both interpreted and translated code |
US8060356B2 (en) | 2007-12-19 | 2011-11-15 | Sony Computer Entertainment Inc. | Processor emulation using fragment level translation |
US9811893B2 (en) | 2008-11-04 | 2017-11-07 | The United States Of America, As Represented By The Secretary Of The Navy | Composable situational awareness visualization system |
CN103443763B (zh) * | 2012-08-08 | 2016-10-05 | 英特尔公司 | 包含对重写虚拟函数的调用的支持的isa桥接 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5060151A (ja) * | 1973-09-26 | 1975-05-23 | ||
JPS5430752A (en) * | 1977-08-10 | 1979-03-07 | Itek Corp | High speed realltime computer emulator |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3544969A (en) * | 1967-11-27 | 1970-12-01 | Standard Computer Corp | Language independent computer |
US3543245A (en) * | 1968-02-29 | 1970-11-24 | Ferranti Ltd | Computer systems |
US3698007A (en) * | 1970-11-30 | 1972-10-10 | Honeywell Inc | Central processor unit having simulative interpretation capability |
FR2253430A5 (ja) * | 1973-11-30 | 1975-06-27 | Honeywell Bull Soc Ind | |
FR2253435A5 (ja) * | 1973-11-30 | 1975-06-27 | Honeywell Bull Soc Ind | |
US4084235A (en) * | 1975-04-14 | 1978-04-11 | Honeywell Information Systems Inc. | Emulation apparatus |
US4096568A (en) * | 1976-09-24 | 1978-06-20 | Sperry Rand Corporation | Virtual address translator |
US4315321A (en) * | 1978-06-16 | 1982-02-09 | The Kardios Systems Corporation | Method and apparatus for enhancing the capabilities of a computing system |
US4245302A (en) * | 1978-10-10 | 1981-01-13 | Magnuson Computer Systems, Inc. | Computer and method for executing target instructions |
-
1982
- 1982-10-22 EP EP82903551A patent/EP0124517A1/en not_active Withdrawn
- 1982-10-22 US US06/516,607 patent/US4587612A/en not_active Expired - Lifetime
- 1982-10-22 WO PCT/US1982/001496 patent/WO1984001635A1/en not_active Application Discontinuation
- 1982-10-22 JP JP57503587A patent/JPS59501684A/ja active Pending
-
1983
- 1983-10-20 CA CA000440032A patent/CA1199414A/en not_active Expired
- 1983-10-21 EP EP83110498A patent/EP0109567B1/en not_active Expired
- 1983-10-21 DE DE8383110498T patent/DE3366762D1/de not_active Expired
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5060151A (ja) * | 1973-09-26 | 1975-05-23 | ||
JPS5430752A (en) * | 1977-08-10 | 1979-03-07 | Itek Corp | High speed realltime computer emulator |
Also Published As
Publication number | Publication date |
---|---|
EP0124517A1 (en) | 1984-11-14 |
EP0109567A2 (en) | 1984-05-30 |
DE3366762D1 (en) | 1986-11-13 |
CA1199414A (en) | 1986-01-14 |
WO1984001635A1 (en) | 1984-04-26 |
EP0109567B1 (en) | 1986-10-08 |
US4587612A (en) | 1986-05-06 |
EP0109567A3 (en) | 1984-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPS59501684A (ja) | 目的命令ストリ−ムへ殆んど実時間で插入するためのソ−スおよび目的命令ストリ−ムの外部における加速式命令写像 | |
US4524416A (en) | Stack mechanism with the ability to dynamically alter the size of a stack in a data processing system | |
US6061783A (en) | Method and apparatus for manipulation of bit fields directly in a memory source | |
US5819063A (en) | Method and data processing system for emulating a program | |
CN109643233B (zh) | 具有带读取和读取/前进操作数编码的流引擎的数据处理设备 | |
US4449184A (en) | Extended address, single and multiple bit microprocessor | |
US4229801A (en) | Floating point processor having concurrent exponent/mantissa operation | |
US4398245A (en) | Data processing system having an instruction pipeline for processing a transfer instruction | |
TWI279715B (en) | Method, system and machine-readable medium of translating and executing binary of program code, and apparatus to process binaries | |
CA1204217A (en) | Data processing system with unique microcode control means | |
JPS6014336A (ja) | 命令処理装置 | |
CN108205448B (zh) | 具有在每个维度上可选择的多维循环寻址的流引擎 | |
US20220188115A1 (en) | Stream reference register with double vector and dual single vector operating modes | |
US20230385063A1 (en) | Streaming engine with early exit from loop levels supporting early exit loops and irregular loops | |
US8145804B2 (en) | Systems and methods for transferring data to maintain preferred slot positions in a bi-endian processor | |
JPH07210381A (ja) | プロセッサ及びコンピュータ・システム | |
JPH10187661A (ja) | コンピュータにおけるスカラ値をベクトルに記入する方法 | |
US6981132B2 (en) | Uniform register addressing using prefix byte | |
GB2073923A (en) | Branching in computer control store | |
JPH11316679A (ja) | 多数のバンクアドレス値供給源を有するプロセッサアーキテクチャスキームおよびその方法 | |
TW446916B (en) | Computer instruction which generates multiple results of different data types to improve software emulation | |
JPS6158853B2 (ja) | ||
JPS623461B2 (ja) | ||
JPH03141434A (ja) | マイクロコンピュータ | |
GB2366426A (en) | Multi-processor system with registers having a common address map |