JPH01201729A - デコード方法 - Google Patents

デコード方法

Info

Publication number
JPH01201729A
JPH01201729A JP63318661A JP31866188A JPH01201729A JP H01201729 A JPH01201729 A JP H01201729A JP 63318661 A JP63318661 A JP 63318661A JP 31866188 A JP31866188 A JP 31866188A JP H01201729 A JPH01201729 A JP H01201729A
Authority
JP
Japan
Prior art keywords
instruction
instructions
decoding
address
machine
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
JP63318661A
Other languages
English (en)
Inventor
Larry D Larsen
ラリイ・ドナルド・ラーセン
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 JPH01201729A publication Critical patent/JPH01201729A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/30181Instruction operation extension or modification
    • G06F9/30185Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30181Instruction operation extension or modification
    • G06F9/30196Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders

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)
  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は一般的にはコンピュータプロセッサのアーキテ
クチャ及び操作方法に関し、さらに詳しくいえばそのよ
うなプロセッサにおける命令デコード手段及び命令実行
手段に関する。
B、従来技術及びその問題点 命令形式の相違ないしは互換性の問題はよ(知られてい
る。この互換性の問題を取扱うために幾つかの方法が開
発されている。ソフトウェアによる解決はそのプログラ
ムが走行するマシンにとって特別のコンパイルのために
高水準言語でプログラムを書くことを含む。したがって
、プログラムはそれを走行させるのに必要な新しいマシ
ンごとに機械語に再コンパイルしなければならない。試
験されるプログラム又はアルゴリズムのライブラリは別
の時間に作成することができ、これらをコンパイルする
ことによって新しいマシンに移行することかできる。こ
のアプローチはコンパイラを必ず必要とする。このコン
パイラは、もちろん、新しいマシンごとに書(必要があ
る。これは、多くの場合、大変な労力であり、結局、同
じマシン内に互換性のない命令形式を存在させることが
できない。というのは、所与のマシンのためにコンパイ
ルされた命令形式はその特定のマシンとしか互換性を有
しないからである。
互換性の問題を解決する1つの一般的なアーキテクチャ
上のアプローチはそのプログラムが走行するマシンの命
令形式において1つのピット又は幾つかのビットの組合
せを予約しておくことを含む。この特別のビット又はピ
ットの組合せはそのマシンにとって本来の形式でない命
令であることを標識するのに利用される。そのようなフ
ラグの組合せに出会うと、その命令は本来の命令デコー
ドルールとは異なるルールを用いてデコードできること
を意味する。この手法によれば本来的でない命令を命令
記憶の中のどこかに存在させることができる。しかしな
がら、このためには代償を伴い、また付加的なビット又
はピットの組合せを加えることによって本来の命令ワー
ドを延長するという不便がある。一方、この手法によら
ないとすればそのマシン内でより有効に使用できたであ
ろう可用な命令デコード置換を使い果たしてしまうこと
になる。
別のアーキテクチャ上のアプローチ(これは既に説明し
たものと関係する)は特定の命令を実行することによっ
て作動しうる命令タイプのモード切換制御を確立するこ
とである。この“切換”命令の目的は、様々なタイプ又
は形式の命令間で移動がある場合にプログラマにホスト
マシンの命令デコードモードyk1つのタイプから別の
タイプに切換えることを可能とすることである。このた
めには、”切換”命令を全てのサブルーチン(又はサブ
プログラムの入口点及び出口点)に含ませねばならず、
その結果、必要以上にコンパイラが付加され、必要なプ
ログラム記憶の量が増える。
互換性を実現するためのさらに別の手法は機械語命令を
デコードするための仕様を含む一定の形式の可変デコー
ド論理を使用することである。この手法は可変デコード
論理に1き込まれる命令デコードテーブルを生成するた
めに高度なアセンブラを使用する。このアプローチを用
いると、プログラマはプログラムすべぎアプリケーショ
ン又はタスクを満足するように命令セットを適合させる
ことができる。このアプローチは、1つのタイプのマシ
ンのために1つの形式で書かれた機械語プログラムをこ
の第1のマシンの命令形式と通常は互換性のない他のタ
イプのマシンで走行できるようにするための手段を含む
。しかしながら、この手法は機械語の幾つかのタイプ又
は形式を単一のマシン内で混合することはできない。
C6問題点を解決するための手段 したがって本発明の目的は2以上の互換性のない形式の
マシンからの命令を単一のマシンの命令記憶に同時に置
いてこれらを適切にデコードし実行することができるよ
うな改良されたデータ処理技術を提供することにある。
この目的を達成するため、互換性のない複数の形式の命
令を1つのプロセッサにおける互換性のある単一形式の
実行コードにデコードする本発明の方法は、(、)上記
命令を第1のアドレス可能な記憶手段から順次的に取出
すステップと、(b)上記命令が取出された上記第1の
アドレス可能な記憶手段のアドレスの少な(とも一部及
び上記取出された命令の少な(とも一部を第2のアドレ
ス可能な記憶手段についてのアドレスとして使用するこ
とにより該第2のアドレス可能な記憶手段に記憶された
実行コードをアクセスして上記プロセッサにおける実行
のため上記取出された命令を順次的にデコードするステ
ップと、を有することに%徴としている。
以下、本発明の作用を実施例と共に説明する。
D、実施例 はじめに本発明の実施例を概説する。本発明では通常は
互換性がない異なる形式で書かれた異なるマシンタイプ
からの命令を単一の命令記憶に置き又は混在させること
ができ、さらにこれを適切にデコードし実行することか
でさる。命令はそれがロードされるに応じて、所与の形
式又はタイプの命令を含むことと一意的に関連する命令
記憶の領域に分けられる(又はマツプされる)。命令記
憶のいずれの領域も命令の各タイプ又は形式(又はロー
ドしうる連係編集部に識別された命令タイプならびに記
憶装置のロケーション及びそこに含まれる命令の形式タ
イプに関して保持されたテーブル又はマツプ)のために
予約することができる。
これらの命令はそのマシンにおけるデコード及び実行の
ために通常モードで順次的に取出すことができる。これ
は命令記憶における取出しアドレス(デコードすべき命
令が取出されたところである)の一部及びそのマシンで
実行すべきオペレーションのタイプを定義する1以上の
情報フィールドを普通に含む命令それ自身によって容易
にでさる。
デコードオペレーションは命令記憶においてその命令が
存在する場所によって及び普通のケースでは命令それ自
身によって部分的に決定される。この手法及び構成によ
れば、2以上のマシンからの通常は互換性のない形式又
は命令タイプを、本来的でない命令を識別するための余
分の命令形式ピッ)k必要としないで命令記憶中に混合
させることができる。また、タイプ又はモード切換命令
をプログラマによって命令ストリーム中に挿入する必要
はない。全体として、このタイプのマシンの命令は他の
アプローチよりも命令スペースの消費は少ない。
以下、図面を参照しながら、本発明の実施例を詳細に説
明する。
以下の記載において6フ工−ズパイプライン式データプ
ロセッサアーキテクチャを説明する。このアーキテクチ
ャでは、1つの命令はまず1サイクルで取出され、第2
サイクルでデコードされ、プロセッサのALUによって
第6サイクルで実行される。命令は第1図(すなわち第
1A図及び第1B図)の命令記憶に存在し、命令デコー
ド論理によるデコードのため命令デコードレジスタ1に
取出される。このデコード論理(一定の形式のメモリか
ら成るものでもよいし、標準的な論理素子すなわちAN
D、OR等を用いてもつと普通のやり方で実現してもよ
い)は、発生するアクションを所望の命令が実行するよ
うな方法でプロセッサのフロー論理のゲート及び制御を
作動させるため、取出された命令を、適切な形式に変換
するのに使用される。変換された命令はデコードフェー
ズの終わりで実行レジスタ4に置かれる。命令アドレス
レジスタ5は命令アドレスバスlAlll−介して次命
令アドレスを命令記憶2に供給する。命令は順次的に取
出され命令デコードレジスタ1に置かれて、命令部分が
アドレス解読論理6において調べられる。アドレス解読
論理6はその命令のどのフィールド(又はどのフィール
ド群)が有効アドレス又は直接オペランド値を生成する
のに使用され(おそら(は)修正されるのかを規定する
論理を含む。第2図に示す例では、命令デコードメモリ
すなわち論理5におけるデコードテーブルはライン9を
介して外部からロードすることができる。
これは後で説明する特定の命令デコードルールのローデ
ィングを提供できる。
このタイプの構造及びアーキテクチャにおいて提示され
た基本的な概念は処理マシンのための非パイプライン式
のアーキテクチャ上の設計にも全(うま(あてはまる。
これは当業者には容易に理解されるであろう。好適な実
施例ではパイプライン式のアーキテクチャ上の設計を用
いるが、これは単に説明の便宜にすぎない。
第1図において命令デコードレジスタIDR1が示され
ている。IDRは命令記憶2から取出された命令がデコ
ードのために置かれるレジスタである。命令記憶2から
取出された命令はそれらがデコードのために保持される
IDRに置かれる。
これらの命令は命令デコード論理すなわちメモリ5でデ
コードされる前にIDRに記憶される。第1図に示す命
令アドレスレジスタIAR3は取出すべき命令のアドレ
スを命令記憶2に含ませるために使用される。実行レジ
スタEXR4は特定のマシンのための実示処理コードで
あるデコードされた命令を含む。命令デコードメモリす
なわち論理及びアドレス解読論理6を含む命令デコード
論理素子はIDR1に存する命令をデコードするのに使
用される。アドレス解読論理は命令のタイプに基づいて
IDRに存する命令から特定のピットを抽出して、一定
のインデックスレジスタ(第1B図のRO又はR4)の
内容をたとえば加えることによって有効アドレス又は即
値オペランドの値全計算させる。
第1図に示した例では、命令記憶2はデータ記憶(図示
せず)から分離しているものと仮定されており、したが
って“バーバード式アーキテクチャ設計である。命令を
命令記憶2にロードすることはホストマシン外の命令’
iROM又はRAMにロード又は書込むことによって事
前に行うことができる。あるいは、命令記憶’!kRA
Mとして、この目的のためのホストプロセッサの能力の
範囲で特定の命令を使って書き込むこともできる。
ここに示された例では、パイプライン式プロセッサは、
命令記憶2から取出された命令が取出しサイクルの終り
でIDRIに置かれるような方式で動作する。これはデ
コードサイクルの始まりに対応する。次にデコードサイ
クルの間、IDR1に存する命令はプロセッサによる実
行のため適切な新しい形式にデコードされる。これと同
時に、アドレス解読論理6は適切な命令ピッIf抽出し
て有効アドレス又は即値を計算する。デコードサイクル
の終了(これにより、デコードされたビットがEXR4
にロードされ、解読されたアドレス又は即値データがC
ABRにロードされる)は、実行サイクルの始まりを表
わす。したがってパイプライン式プロセッサのフェーズ
はオーバーラツプしている。すなわち、1つの命令が取
出されている間に、IDRに以前に取出された命令がデ
コードされかつEXR4に以前にデコードされた命令が
実行される。
第1図に示した命令デコード論理は命令デコードメモリ
IDM5’e含む。ここに示した構成では、IDR1に
おけるデコードされている命令からの一部又は全てのピ
ットは、デコードされた命令コードを索引するため利用
されるアドレスの一部として使用される。解読されるア
ドレスにおいてIDRの中のどの特定のビット又はフィ
ールドが使用されるかは、後で詳細に説明するようにア
ドレス解読論理6によって決定される。任意の特定のア
ドレスにおける命令デコードメモリIDM5の内容は、
実際、特定のデコードされた命令のための実行コードで
ある。第1図に示すように、IDM5の内容にデコード
情報コードをロードするための経路9が含まれる。これ
はほとんどのマシンにおいて一般には存在しないもので
ある。他のマシンにおける通常のケースは、読取り専用
メモリ及び書込み1回限りの形式で含まれる命令デコー
ドメモリの場合である。もちろん、ハードワイヤ式論理
構成がしばしば用いられることから、メモリは命令デコ
ードの仕様を含むための唯一の方法というわけではな(
、この例で示すように読取り/書込みメモリ全周いてこ
れらの概念を実現することはもつと簡単である。
メモリの中に命令デコードサイクルヲ遣<トいう一般的
な概念は、様々な通常は互換性のない機械語または形式
の命令を命令記憶に置(ことができ、さらに適切なデコ
ードをも考慮した本発明において拡張される。全体の目
的は、もともと2以上の異なるマシンタイプのために書
かれた既存の機械語の形式またはプログラムをプログラ
マカメモリに混合できるようにすること、及びプログラ
ムの修正又は再コンパイルをすることなく単一のプロセ
ッサで全てのコードを実行できるようにすることである
。これを達成するため、プロセス命令又は異なるマシン
からの全体のサブルーチンもしくはコードモジュール及
び異なる又は互換性のない形式から成る単一のプログラ
ムを連係編集しなければならない。連係編集プログラム
(図示せず)のよく知られた機能は命令記憶2において
個別的に識別された(そうでなげれば分離された又はマ
ツプされた)ロケーションを、使用されている機械語コ
ードの種々の部分に割当てることである。これは、1つ
の言語又は形式の命令タイプについて主要なセグメント
(たとえば上位アドレスロケーション)を予約しかつ他
の言語又は形式について命令記憶中のセグメントヲ残し
ておくことによって容易に達成できる。この例は後で説
明する。
本発明で使用される手法は命令デコードの仕様又は実行
コードを含むための命令デコードメモリを使用するとい
う基本的な概念の拡張として表わされる。これは、アー
キテクチャ及び動作方式の説明の便宜上の話しであり、
そのアイデアの重要な部分というわけではない。命令デ
コード論理の形式は他にも様々知られているからである
。この例で示すようにロード可能な命令デコードメモリ
5を有する目的は、任意の特定のプログラミングアプリ
ケーションに命令セットを適合できるようにすることで
ある。その示唆するところは、新しいプログラムアプリ
ケーションごとに自己の一意的なデコード又は実行コー
ドテーブルを必要とすることである。この例で行われた
ようにもしマシンが2以上の異なる又は互換性のないプ
ロセッサのための機械語命令を収容しデコードし及び実
行するように設計されると、その命令デコードメモリは
一般的には各アプリケーションごとに変更する必要はな
い。それは、付加的な新しい命令セットが、新しいテー
ブルをロードすべきであろうlDM5で処理される必要
がある場合だけである。
第2図は本発明の好適な実施例により提案された変更に
適応させるために必要な論理の主要部を示す図である。
図示した論理は第1図に示したものと同様であるが、簡
単のためI LR8とそのロードライン7を省略してあ
り、本発明の複数命令タイプのデコードを実現するため
の必要な要素のみを示しである。その他、第2図は2つ
のタイプの異なる互換性のない形式の機械語命令を適応
させるための区分して図示された命令記憶20例を示す
。図に示すように、上位アドレスはマシンタイプ又は形
式2の命令のために任意的に予約されている。これらは
2進数111から始まる上位アドレスを有するものとし
て識別され、マシンタイプ2の命令のための命令記憶の
合計の容量の1/8を予約する。残りのアドレスは図示
の如(マシンタイプ1の命令のために任意的に予約され
る。
第2図は新しい構成要素である命令デコード選択レジス
タID5R10が付加されていることを示す。この要素
はIDR1に現に存する命令の命令アドレス又はその一
部を保持するように作動するレジスタである。ID5R
1(l用いて命令記憶2かも取出された最後の命令のア
ドレスを保持する。ID5R10は取出された最後の命
令のアドレス部分を保持し、 IDRIのロードを付勢
する同じ信号でクロックされる。保持された部分はアド
レスの全てでもよいし、必要ならそれより少な(てもよ
い。こうして、それはI・DRIにロードされる命令の
アドレスを常に受は取る。
第2図において、ID5R10は本実施例で命令記憶2
の任意的な区分が仮定されているため、■AR5からの
上位3ビツトだけを含むものと仮定されている。命令記
憶の8つの同等な任意のセグメントのどれかを定義する
のに必要な上位6ビツトだけがアドレスされる。
ID5RIO及びIDR1の内容は第2図で一緒に取出
されてIDMS内の索引アドレスを供給する。IDRの
デコードされていない命令の特定部分だけが、取出され
ている命令の形式に応じて必要となりうる。IDM5へ
の入力アドレスの他の部分は命令記憶2にある取出しア
ドレス(すなわち、本実施例では命令記憶2内に存する
アドレスの範囲)を識別するID5R10からの出力で
ある。したがってIDR1にある任意の特定の命令のデ
コードはIDRIの内容だけでな(、その命令が取出さ
れた命令記憶2の範囲にも依存する。
そのアドレスのこの部分はID5RIOの出力によって
供給される。
ID5RIOは、また、アドレス解読論理6への出力経
路を有する。これは、オペランド又は有効アドレスを形
成しなければならないときに、その論理がIDR1から
の適切なピットフィールドをアクセスするのを付勢する
ために必要なものである。一般に、命令内の変位に関す
る様々なマシンの命令セットと任意のオペランドフィー
ルドの長さとの間で予想しつる互換性は存在しないであ
ろう。
命令記憶の領域内で少な(とも1つのフィールド全定義
する取出しアドレス又はそのアドレス部分を、取出され
る特定の命令をデコードするためのアクセス仕様の一部
として使用するこの効果は、命令記憶2の異なる領域内
の命令を異なるルールでデコードできるということであ
る。したがって、第2図に示す如く1タイプ2”のプロ
グラムのために命令記憶2の一部を取っておき、かつ、
上述のようにして命令デコードメモリ5を設定すると、
上位3ビツト111で識別された命令記憶2の領域から
取出された全ての命令はIDM5に含まれるタイプ2の
デコードルールに従ってデコードされ、命令記憶2のタ
イプ1の領域から取出された命令はタイプ1の命令につ
いて要求される一意的な方式でデコードされる。より特
定した実施例を以下に説明する。
”タイプ1”の形式又は言語の命令セットが24ピツト
ワードを必要とし、16ビツトワードを任意的に使用す
る1タイプ2”の形式又は言語の命令を実行することも
望まれ、かつ同一のマシンがこれらの双方のタイプの命
令を取扱うように要求されるものと仮定する。この例の
場合、命令ワードが書かれた各タイプのもとのマシンは
自己のコマンドの能力の範囲内で6加算レジスタ”命令
を有する。もちろん、各コマンドの機能はR2及びR3
のような任意のレジスタの内容を一緒に加算してその和
をR6のような任意の1つのレジスタに置(ということ
であることは理解されるであろう。さらに、たとえば第
6図に示したような命令形式が使用されるものと仮定す
る。命令記憶は第2図に示すように仮定的に区分され、
タイプ1の命令が命令記憶2のアドレス空間の下位7/
8内のどこかに存在し、タイプ2の命令が命令記憶2の
アドレス空間の上位1/8に存在する。これは、それら
の命令が連係編集され、検査され、それらの表わす命令
のタイプに応じたローディングのため命令記憶のアドレ
スが割当てられたときに、第1図に示す如(I LR8
を介して外部から命令記憶2への命令のロードが行われ
る前に適応化される。
第6図に示す如きタイプ1の加算命令が実行されるとき
は、それはまず命令記憶2から取出されIDR1に置か
れる。これと同時に、その命令が取出される命令記憶2
のロケーションの上位の6アドレスビツトがID5R1
0にロードされる。
これらはIAR3によってそこに供給される。これが取
出しサイクルであり、これが完了すると、ID5R10
及びIDR1’i構成するレジスタは第4図に示すよう
に特定のコー ドを含むこととなる。これらは命令記憶
2の010によって識別されるセグメントからきたもの
であり、第6図のタイプ1の加算レジスタの例の16進
命令726380として識別される任意の内容を有する
このとき、IDRI及びID5R10の内容は一緒に取
出されて、IDM5に存する命令によって表わされるデ
コード実行コードを索引するためのアドレス源として使
用される。デコードサイクルの終りで、実行レジスタE
XR4にIDR1及びID5R10の内容によって指定
されるロケーションでIDM5から見出されたデコード
された命令コードがロードされ、IDR1及びI DS
R・10にはデコードすべき次の命令及びそれが取出さ
れた命令記憶におけるアドレスがそれぞれロードされる
。実行サイクルの始まりにおけるレジスタの状態は第6
図に示される。ID5RIO及びIDR1の内容はXで
示した。というのは、実行サイクルの間は、これらのレ
ジスタの内容は重要でないからである。しかしながら、
実行レジスタEXR4の内容は最下位のEXRレジスタ
セルが2”(すなわち、オペランドBのソースとなるレ
ジスタ2のALUへの標識)を含むような加算レジスタ
のオペレーションのための例示的なデコートオペレーシ
ョンを示す。次のセルは′3”を含む。これはAオペラ
ンドのソース(この場合、レジスタ3)iALUに標識
する。次のフイールドはALUによって遂行される機能
を記述する。
この場合、”01”であり、これは加算レジスタ’ti
t味する。次のフィールドはキャリーイン選択(この場
合、加算レジスタの機能のための0”)を記述する。
同オlだが別の形式で書かれたオペレーションに関して
さらに説明を続げる。タイプ2の”加算レジスタ”命令
が実行されるときは、その命令はタイプ1の命令が前に
取出されたので通常の順次的な方式で取出されIDR1
に置かれる。IAR3は命令記憶2内のどのアドレスが
次にアクセスされるのかを制御し、タイプ2の命令に到
達すると、プログラムが何で書かれていようともこれら
は順次にデコードされ及び実行される。I DSR10
は上位の5アドレスビツト全受は取って、したがってこ
の例では第5図に示すように2進の内容111を含むこ
ととなる。IDR1はXXlA32であるタイプ2の形
式の加算レジスタ命令のため第3図に示す如き16進コ
ードを含む。ID5R10及びIDR1のためのこのレ
ジスタの内容は第5図に示される。仮定された例ではタ
イプ2の加算レジスタ命令はわずか16ビツトのワード
サイズしか有しないので、それはIDR1の下位16ピ
ツトに置かれており、したがって上位ビットは重要では
なくXで示されている。アドレス解読論理6は、命令が
命令記憶2内の上位領域から取出されていること(すな
わち、I DSR10の内容がアドレス解読論理6に供
給されるという事実によってアドレス解読論理6にわか
る事実)を検知すると、CABRに置(べき有効アドレ
スを生成する。
取出しサイクルに次ぐデコードサイクルの間、IDR1
及びID5R10の内容又はその一部はIDM5におけ
るタイプ2の加算レジスタの特定の命令のデコードを索
引するためのアドレスとして一緒に使用される。IDR
Iの上位2バイトはタイプ2の命令では存在しないので
命令のデコード部分を有しない。したがって、I DM
5のために使用されるアドレスは例示したタイプ1の命
令のデコード全索引するために使用されるものとは全く
異なっている。しかしながら、命令デコードメモリID
M5はデコードされるビットと同じパターンを含むよう
に構成される。すなわち、EXRに置くべき実行コード
は同一である。というのは、全く同じ機能がタイプ1の
加算レジスタの命令及びタイプ2の加算レジスタの命令
の双方によって指定されるからである。したがって、タ
イプ2の加算レジスタの命令がうまくデコードされた後
、実行レジスタ4の状態はタイプ1の命令と同様にして
第6図に示されている。
本発明の構造及び動作についてのこれまでの記載かられ
かるように、本発明で使用されるデコードメモリテーブ
ル又はハードワイヤ式論理は複数の命令タイプ又は形式
のデコードをサポートするため、単一命令形式又はタイ
プよりも幾分多(の内容を必要とする。また、複数タイ
プのマシンレベルの命令がデコード及び実行のため単一
のマシン内に共存する場合、一定の条件が満たされなけ
ればならない。これらの必須の条件とは、別のタイプで
直接実行すべき1つのマシンタイプのためのマシンレベ
ルの命令は、その実行マシンが少な(とも同等のデータ
フロー経路幅及び算術演算論理資源を有することを要求
する。たとえば、特定の命苓が乗算を命令する場合、ホ
ストマシンのデータフローは乗算器を有しなければなら
ず、またその乗算器と他の必要な算術演算素子との関係
はもとのプログラムが書かれたマシンにおいて供給され
るものと同様のものでなければならない。第2に、マシ
ンの命令記憶2内に存する全ての命令はその命令記憶の
ワードサイズに適合できるようにしなければならない。
したがって、本来的でないホストマシンにおいて実行す
べき24ビツトの命令ワードからの命令は、そのホスト
マシンが第1のマシンからの命令に適応化するよう少な
(とも自己の24ピツトの命令ワードサイズを有するこ
とを要求する。最後に、アドレス解読機構(すなわち、
ホストマシンのための複数のインデックスレジスタ、イ
ンデックス加算器サイズなど)は本来的でない機械語命
令のための有効アドレス及びオペランドの形式化を適応
化するよう適切なものでなげればならない。
E0発明の詳細 な説明したように本発明によれば2以上の互換性のない
形式の命令を単一のマシンで実行することができる。
【図面の簡単な説明】
第1A図及び第1B図は本発明が実施される6フ工−ズ
パイプライン式プロセッサの構成?La−示す図、第2
図は本発明に必要な付加的な構成及び動作方法をより詳
細に示す図、第6図はプロセッサにおいて同一のオペレ
ーションを遂行するために実行しうる2つの互換性のな
い命令形式の典型的な例として同一のオペレーションに
ついての2つの異なる命令形式を示す図、第4図は所与
の命令のための第1の命令タイプの形式を使用するオペ
レーションの特定の例を示す図、第5図は実行オペレー
ションの同一タイプについての異なる形式の他の例を示
す図、第6図は第4図及び第5図の命令タイプのデコー
ドの結果が実行レジスタ部分に同一の結果を生ずるとい
うことを説明する図である。

Claims (1)

  1. 【特許請求の範囲】 互換性のない複数の形式の命令を1つのプロセッサにお
    ける互換性のある単一形式の実行コードにデコードする
    方法であつて、 (a)上記命令を第1のアドレス可能な記憶手段から順
    次的に取出すステップと、 (b)上記命令が取出された上記第1のアドレス可能な
    記憶手段のアドレスの少なくとも一部及び上記取出され
    た命令の少なくとも一部を第2のアドレス可能な記憶手
    段についてのアドレスとして使用することにより該第2
    のアドレス可能な記憶手段に記憶された実行コードをア
    クセスして上記プロセッサにおける実行のため上記取出
    された命令を順次的にデコードするステップと、 を有するデコード方法。
JP63318661A 1988-01-11 1988-12-19 デコード方法 Pending JPH01201729A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US142585 1980-04-21
US07/142,585 US5115500A (en) 1988-01-11 1988-01-11 Plural incompatible instruction format decode method and apparatus

Publications (1)

Publication Number Publication Date
JPH01201729A true JPH01201729A (ja) 1989-08-14

Family

ID=22500446

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63318661A Pending JPH01201729A (ja) 1988-01-11 1988-12-19 デコード方法

Country Status (4)

Country Link
US (1) US5115500A (ja)
EP (1) EP0324308B1 (ja)
JP (1) JPH01201729A (ja)
DE (1) DE3855158T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009526300A (ja) * 2006-02-10 2009-07-16 イマジネイション テクノロジーズ リミテッド マイクロプロセッサ用の命令セット

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2835103B2 (ja) * 1989-11-01 1998-12-14 富士通株式会社 命令指定方法及び命令実行方式
US5349481A (en) * 1993-06-10 1994-09-20 Exabyte Corporation Apparatus and method for distorted track data recovery by rewinding and re-reading the tape at a slower than nominal speed
GB2289354B (en) * 1994-05-03 1997-08-27 Advanced Risc Mach Ltd Multiple instruction set mapping
GB2289353B (en) * 1994-05-03 1997-08-27 Advanced Risc Mach Ltd Data processing with multiple instruction sets
GB2290395B (en) * 1994-06-10 1997-05-28 Advanced Risc Mach Ltd Interoperability with multiple instruction sets
US6496922B1 (en) * 1994-10-31 2002-12-17 Sun Microsystems, Inc. Method and apparatus for multiplatform stateless instruction set architecture (ISA) using ISA tags on-the-fly instruction translation
US5619685A (en) * 1994-11-04 1997-04-08 Ball Corporation Run-time dynamically adaptive computer process for facilitating communication between computer programs
JPH08339298A (ja) * 1995-02-02 1996-12-24 Ricoh Co Ltd マイクロプロセッサにおける命令追加方法及びそれを用いたマイクロプロセッサ
US5638525A (en) * 1995-02-10 1997-06-10 Intel Corporation Processor capable of executing programs that contain RISC and CISC instructions
KR100618756B1 (ko) * 1996-01-24 2007-05-04 선 마이크로시스템즈 인코퍼레이티드 네트워크또는로컬메모리로부터수신된명령세트를실행하는프로세서및컴퓨터시스템
JP3634379B2 (ja) * 1996-01-24 2005-03-30 サン・マイクロシステムズ・インコーポレイテッド スタックキャッシングのための方法及び装置
US5867681A (en) * 1996-05-23 1999-02-02 Lsi Logic Corporation Microprocessor having register dependent immediate decompression
US5794010A (en) * 1996-06-10 1998-08-11 Lsi Logic Corporation Method and apparatus for allowing execution of both compressed instructions and decompressed instructions in a microprocessor
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
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
DE19629130A1 (de) * 1996-07-19 1998-05-14 Philips Patentverwaltung Signalprozessor
US5867680A (en) * 1996-07-24 1999-02-02 Advanced Micro Devices, Inc. Microprocessor configured to simultaneously dispatch microcode and directly-decoded instructions
US6049863A (en) * 1996-07-24 2000-04-11 Advanced Micro Devices, Inc. Predecoding technique for indicating locations of opcode bytes in variable byte-length instructions within a superscalar microprocessor
US5925124A (en) * 1997-02-27 1999-07-20 International Business Machines Corporation Dynamic conversion between different instruction codes by recombination of instruction elements
DE19713069A1 (de) * 1997-03-27 1998-10-01 Thomson Brandt Gmbh Vorrichtung zur Abarbeitung einer Steuerungsbefehlssequenz sowie ein Verfahren zur Erzeugung einer Steuerungsbefehlssequenz und ein Speichermedium zur Abspeicherung einer Steuerungsbefehlssequenz
US5930491A (en) * 1997-06-18 1999-07-27 International Business Machines Corporation Identification of related instructions resulting from external to internal translation by use of common ID field for each group
US6014513A (en) * 1997-12-23 2000-01-11 University Of Washington Discovering code and data in a binary executable program
WO2000008554A1 (en) * 1998-08-07 2000-02-17 Koninklijke Philips Electronics N.V. Apparatus with program memory and processor
US6307701B1 (en) 1998-10-20 2001-10-23 Ecrix Corporation Variable speed recording method and apparatus for a magnetic tape drive
US6246551B1 (en) * 1998-10-20 2001-06-12 Ecrix Corporation Overscan helical scan head for non-tracking tape subsystems reading at up to 1X speed and methods for simulation of same
US6381706B1 (en) 1998-10-20 2002-04-30 Ecrix Corporation Fine granularity rewrite method and apparatus for data storage device
US6367047B1 (en) 1998-10-20 2002-04-02 Ecrix Multi-level error detection and correction technique for data storage recording device
US6603618B1 (en) 1998-11-16 2003-08-05 Exabyte Corporation Method and system for monitoring and adjusting tape position using control data packets
US6308298B1 (en) 1998-11-16 2001-10-23 Ecrix Corporation Method of reacquiring clock synchronization on a non-tracking helical scan tape device
US6367048B1 (en) 1998-11-16 2002-04-02 Mcauliffe Richard Method and apparatus for logically rejecting previously recorded track residue from magnetic media
US6421805B1 (en) 1998-11-16 2002-07-16 Exabyte Corporation Rogue packet detection and correction method for data storage device
US6954923B1 (en) 1999-01-28 2005-10-11 Ati International Srl Recording classification of instructions executed by a computer
US7013456B1 (en) 1999-01-28 2006-03-14 Ati International Srl Profiling execution of computer programs
US7275246B1 (en) 1999-01-28 2007-09-25 Ati International Srl Executing programs for a first computer architecture on a computer of a second architecture
US7065633B1 (en) 1999-01-28 2006-06-20 Ati International Srl System for delivering exception raised in first architecture to operating system coded in second architecture in dual architecture CPU
US8074055B1 (en) * 1999-01-28 2011-12-06 Ati Technologies Ulc Altering data storage conventions of a processor when execution flows from first architecture code to second architecture code
EP2320318A1 (en) * 1999-01-28 2011-05-11 ATI Technologies ULC Executing programs for a first computer architecture on a computer of a second architecture
US7941647B2 (en) 1999-01-28 2011-05-10 Ati Technologies Ulc Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination
US6978462B1 (en) 1999-01-28 2005-12-20 Ati International Srl Profiling execution of a sequence of events occuring during a profiled execution interval that matches time-independent selection criteria of events to be profiled
US8127121B2 (en) * 1999-01-28 2012-02-28 Ati Technologies Ulc Apparatus for executing programs for a first computer architechture on a computer of a second architechture
US7111290B1 (en) * 1999-01-28 2006-09-19 Ati International Srl Profiling program execution to identify frequently-executed portions and to assist binary translation
US6763452B1 (en) 1999-01-28 2004-07-13 Ati International Srl Modifying program execution based on profiling
US8121828B2 (en) * 1999-01-28 2012-02-21 Ati Technologies Ulc Detecting conditions for transfer of execution from one computer instruction stream to another and executing transfer on satisfaction of the conditions
US6779107B1 (en) 1999-05-28 2004-08-17 Ati International Srl Computer execution by opportunistic adaptation
US7254806B1 (en) 1999-08-30 2007-08-07 Ati International Srl Detecting reordered side-effects
JP2001142692A (ja) * 1999-10-01 2001-05-25 Hitachi Ltd 2つの異なる固定長命令セットを実行するマイクロプロセッサ、マイクロコンピュータおよび命令実行方法
US6438664B1 (en) 1999-10-27 2002-08-20 Advanced Micro Devices, Inc. Microcode patch device and method for patching microcode using match registers and patch routines
US6934832B1 (en) 2000-01-18 2005-08-23 Ati International Srl Exception mechanism for a computer
JP3556556B2 (ja) 2000-02-08 2004-08-18 株式会社東芝 命令コード変換装置及び情報処理システム
US6364234B1 (en) 2000-03-10 2002-04-02 Michael Donald Langiano Tape loop/slack prevention method and apparatus for tape drive
US6624960B1 (en) 2000-03-10 2003-09-23 Exabyte Corporation Current sensing drum/cleaning wheel positioning method and apparatus for magnetic storage system
US20020004897A1 (en) * 2000-07-05 2002-01-10 Min-Cheng Kao Data processing apparatus for executing multiple instruction sets
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
US7149878B1 (en) * 2000-10-30 2006-12-12 Mips Technologies, Inc. Changing instruction set architecture mode by comparison of current instruction execution address with boundary address register values
US7093108B2 (en) 2001-02-01 2006-08-15 Arm Limited Apparatus and method for efficiently incorporating instruction set information with instruction addresses
US7093236B2 (en) 2001-02-01 2006-08-15 Arm Limited Tracing out-of-order data
US7711926B2 (en) * 2001-04-18 2010-05-04 Mips Technologies, Inc. Mapping system and method for instruction set processing
US6826681B2 (en) 2001-06-18 2004-11-30 Mips Technologies, Inc. Instruction specified register value saving in allocated caller stack or not yet allocated callee stack
US7107439B2 (en) * 2001-08-10 2006-09-12 Mips Technologies, Inc. System and method of controlling software decompression through exceptions
US8364935B2 (en) 2002-10-11 2013-01-29 Nytell Software LLC Data processing apparatus address range dependent parallelization of instructions
US7698539B1 (en) * 2003-07-16 2010-04-13 Banning John P System and method of instruction modification
US7606997B1 (en) * 2003-07-18 2009-10-20 Guillermo Rozas Method and system for using one or more address bits and an instruction to increase an instruction set
US7707389B2 (en) 2003-10-31 2010-04-27 Mips Technologies, Inc. Multi-ISA instruction fetch unit for a processor, and applications thereof
US8006074B1 (en) * 2003-12-24 2011-08-23 Altera Corporation Methods and apparatus for executing extended custom instructions
US20060155974A1 (en) * 2005-01-07 2006-07-13 Moyer William C Data processing system having flexible instruction capability and selection mechanism
US7421568B2 (en) * 2005-03-04 2008-09-02 Qualcomm Incorporated Power saving methods and apparatus to selectively enable cache bits based on known processor state
US7836285B2 (en) * 2007-08-08 2010-11-16 Analog Devices, Inc. Implementation of variable length instruction encoding using alias addressing
US20100205599A1 (en) * 2007-09-19 2010-08-12 Kpit Cummins Infosystems Ltd. Mechanism to enable plug-and-play hardware components for semi-automatic software migration
CN117369831B (zh) * 2023-10-17 2024-12-17 西南民族大学 一种针对嵌入式处理器的反汇编方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4499604A (en) * 1981-05-22 1985-02-12 Data General Corporation Digital data processing system for executing instructions containing operation codes belonging to a plurality of operation code sets and names corresponding to name table entries
US4517642A (en) * 1981-05-22 1985-05-14 Data General Corporation Digital computer system having unique means of referring to operands and ability to execute a plurality of internal languages
US4514800A (en) * 1981-05-22 1985-04-30 Data General Corporation Digital computer system including apparatus for resolving names representing data items and capable of executing instructions belonging to general instruction sets
US4499535A (en) * 1981-05-22 1985-02-12 Data General Corporation Digital computer system having descriptors for variable length addressing for a plurality of instruction dialects
US4575797A (en) * 1981-05-22 1986-03-11 Data General Corporation Digital data processing system incorporating object-based addressing and capable of executing instructions belonging to several instruction sets
US4455602A (en) * 1981-05-22 1984-06-19 Data General Corporation Digital data processing system having an I/O means using unique address providing and access priority control techniques
US4782461A (en) * 1984-06-21 1988-11-01 Step Engineering Logical grouping of facilities within a computer development system
JPS6133546A (ja) * 1984-07-25 1986-02-17 Nec Corp 情報処理装置
US4800523A (en) * 1985-02-25 1989-01-24 Itt Corporation Device interface controller having device specific and device common instructions separately stored
US4791557A (en) * 1985-07-31 1988-12-13 Wang Laboratories, Inc. Apparatus and method for monitoring and controlling the prefetching of instructions by an information processing system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009526300A (ja) * 2006-02-10 2009-07-16 イマジネイション テクノロジーズ リミテッド マイクロプロセッサ用の命令セット
US10437598B2 (en) 2006-02-10 2019-10-08 MIPS Tech, LLC Method and apparatus for selecting among a plurality of instruction sets to a microprocessor

Also Published As

Publication number Publication date
EP0324308A2 (en) 1989-07-19
EP0324308A3 (en) 1991-03-27
DE3855158T2 (de) 1996-10-10
US5115500A (en) 1992-05-19
EP0324308B1 (en) 1996-03-27
DE3855158D1 (de) 1996-05-02

Similar Documents

Publication Publication Date Title
JPH01201729A (ja) デコード方法
Patterson Reduced instruction set computers
US6021265A (en) Interoperability with multiple instruction sets
US5781758A (en) Software emulation system with reduced memory requirements
US8037461B2 (en) Program code conversion
US5481713A (en) Method and apparatus for patching code residing on a read only memory device
US6324686B1 (en) Just in time compiler technique
EP0476722B1 (en) Data processing system
US4587632A (en) Lookahead stack oriented computer
JP2006155632A (ja) コンパイルシステム、記録媒体およびコンパイル方法
JPH0782441B2 (ja) シミユレーシヨン方法
US6154828A (en) Method and apparatus for employing a cycle bit parallel executing instructions
KR20070118663A (ko) 고유 명령어를 이용한 레지스터 화일로서의 오퍼랜드스택에 대한 마이크로프로세서 엑세스
US6367076B1 (en) Compiling method and memory storing the program code
JP4088418B2 (ja) ソフトウェア・エミュレーションを改善するために異なるデータ・タイプの複数の結果を生成するコンピュータ命令
US6314564B1 (en) Method for resolving arbitrarily complex expressions at link-time
Bergeron et al. Systems programming languages
EP0206653A2 (en) Method and means for loading and storing data in a reduced instruction set computer
US6049864A (en) Method for scheduling a flag generating instruction and a subsequent instruction by executing the flag generating instruction in a microprocessor
KR19990037395A (ko) 두개의 워드 명령을 단일 주기 동안 실행하는 시스템 및 방법
Birch An emulator for the e-machine
JPH02308330A (ja) 知識情報処理装置
Greenberg The Micro8 microcode assembler
Meggitt A character computer for high-level language interpretation
Streib Selected Machine Language Instructions