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
Application number
JP57503587A
Other languages
English (en)
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 JPS59501684A publication Critical patent/JPS59501684A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/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
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45554Instruction 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. 【特許請求の範囲】 (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)
JP57503587A 1982-10-22 1982-10-22 目的命令ストリ−ムへ殆んど実時間で插入するためのソ−スおよび目的命令ストリ−ムの外部における加速式命令写像 Pending JPS59501684A (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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