JP2840604B2 - マイクロコード式cpuで実行される命令用のオペランドを指定する方法および装置 - Google Patents

マイクロコード式cpuで実行される命令用のオペランドを指定する方法および装置

Info

Publication number
JP2840604B2
JP2840604B2 JP1165141A JP16514189A JP2840604B2 JP 2840604 B2 JP2840604 B2 JP 2840604B2 JP 1165141 A JP1165141 A JP 1165141A JP 16514189 A JP16514189 A JP 16514189A JP 2840604 B2 JP2840604 B2 JP 2840604B2
Authority
JP
Japan
Prior art keywords
operand
cpu
instruction
address
general
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP1165141A
Other languages
English (en)
Other versions
JPH0296233A (ja
Inventor
マイケル ユーラー ジョージ
エフ ブラウン ザ サード ジョン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
DEIJITARU EKUITSUPUMENTO CORP
Original Assignee
DEIJITARU EKUITSUPUMENTO 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 DEIJITARU EKUITSUPUMENTO CORP filed Critical DEIJITARU EKUITSUPUMENTO CORP
Publication of JPH0296233A publication Critical patent/JPH0296233A/ja
Application granted granted Critical
Publication of JP2840604B2 publication Critical patent/JP2840604B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • 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/22Microcontrol or microprogram arrangements
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format

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)

Description

【発明の詳細な説明】 (産業上の利用分野) この発明は一般にデジタルコンピュータの動作に関
し、特に高性能コンピュータシステムにおける複雑な命
令セットの実施に関する。
(従来の技術) デジタルコンピュータはその最も簡単な形において、
次の5つの機能的に独立な主要部品で構成される:入
力、メモリ、算術及び論理演算、出力、及び制御各装
置。いわゆる“シングルストア”または“プログラム内
蔵”コンピュータの伝統的な編成において、コンピュー
タの作業は主メモリに記憶された命令セットからなるプ
ログラムによって支配される。命令がコンピュータによ
って行われる動作を指定する。個々の命令は主メモリか
ら、命令をデコードして実行するプロセッサに移され
る。マシンレベルの命令に加え、命令用のオペランドと
して使われる数値データも同じ主メモリスペース内に記
憶され、このために“シングルストア”コンピュータと
呼ばれている。
最近のコンピュータでは、演算及び論理演算装置(AL
U)とその付属制御回路がまとめられ、モノリシック半
導体素子として実施可能ないわゆる中央処理装置(CP
U)を形成していることが多い。CPUは通常ALUの他に、
レジスタと呼ばれ、プログラムの実行中に命令やデータ
を保持するのに使われるワンワード記憶ロケーションの
集合体を含む。一部のCPUレジスタは、CPUが一時的に退
避する必要のある任意の中間値を保持するのに使われる
汎用記憶ロケーションである。他のレジスタは、専用に
定義された用途を有する。例えば、CPUは伝統的に、プ
ログラムカウンタ(PC)と呼ばれ、次(または現在実行
中)の命令のアドレスを主メモリスペース内に保持する
レジスタを有する。さらにCPUは一般に、メモリからフ
ェッチされ、コンピュータによって現在実行されている
命令を保持する命令レジスタ(IR)を有する。またCPU
は通例、CPUによって読取または書込されるべきワード
の主メモリアドレス、及びメモリ内に記憶またはそこか
ら受け取られるべきデータ値をそれぞれ含むように定義
されたメモリアドレスレジスタとメモリデータレジスタ
も有する。CPUの各機能装置は、1つ以上のCPUバスを介
してデータをやりとりでき、また各装置間での転送は制
御装置によって開始及び制御される。コンピュータがマ
シンレベルの命令を実行するのに必要な各ステップのシ
ーケンスは、1つのレジスタから別のレジスタへ、また
は主メモリとレジスタ間、またはレジスタとALU間でのC
PUバスを介したデータの転送を開始する制御信号を送出
する制御装置によって指示される。
1つのマシンレベル命令はしばしば、各々1つ以上の
制御信号の送出によって開始される幾つかのCPUレジス
タ転送を含む。例えば、簡単なメモリ読取の一般的な場
合、制御装置は次のステップを辿らせる:まず、メモリ
読取を要求するマシンレベル命令をメモリから読み取っ
た後、所望なメモリロケーションのアドレスがCPUバス
を介してメモリアドレスレジスタにロードされ;制御装
置はこれを、CPUバス上に現在あるデータをラッチする
ことをメモリアドレスレジスタへ告げる信号を送出する
ことによって達成する。上記ステップがなされると、制
御装置は別の制御信号を送出することによって、メモリ
アドレスレジスタに指定されたメモリロケーションでの
読取を開始する。次に、所望のロケーションが読み取ら
れると、メモリ装置はその値をCPUバス上で受取可能と
し、制御装置は別の制御信号を送出して、CPUバスの内
容をメモリデータレジスタ内にラッチせしめる。ここ
で、上記値は以後CPUバスを介して、それを要求する他
の任意の機能装置によって受取可能となる。
一般に、マシンレベルの命令は少なくとも次の2つの
部分で構成される:どの演算がなされるべきかを指定す
るオペレーションコードつまり“OPコード”と、演算で
使われるデータ値(オペランド)がどこにあるかを指定
する1つ以上のアドレスフィールド。コンピュータは1
つのマシンレベル命令を命令サイクルと呼ばれる時間内
に実行し、命令サイクルは通例2つの部分を含む。フェ
ッチサイクルと呼ばれる第1の部分中に、次の命令(PC
によって指示された命令)のOPコードがCPUの命令レジ
スタ内にロードされる。OPコードがIR内に入ると、実行
サイクルと呼ばれる第2の部分が行われる(これらの各
部分は1状態時間つまり1クロックサイクルより多くを
しばしば必要とする)。実行サイクルでは、制御装置が
OPコードを解釈し、適切なシーケンスの制御信号を送っ
てデータを転送させるか、あるいは算術または論理演算
をALUで行わせることによって命令を実行する。多くの
場合、命令の実行サイクルは、その命令によって指定さ
れたオペランドのフェッチを含む。例えば、簡単な“加
算(ADD)”命令の場合には、加算すべき2つの値のロ
ケーションが命令内で指定されねばならず、これら2つ
の値がフェッチされてCPUのレジスタ内に入れられ、ALU
がそれらにアクセスできるようにしなければならない。
CPUがサポートするマシンレベル命令の集合体が、命
令セットと呼ばれる。コンピュータ内では命令が、命令
の構成要素を識別するメモリワードの形に配列されたビ
ットシーケンスとして表される。OPコードとソースオペ
ランド(指定演算用の入力として使われるオペランド)
の他に、命令が演算結果の所望の宛先や、実行すべき次
の命令のロケーションを識別することもある。これは、
ある命令について複数のオペランドフィールドが存在し
得ることを示唆している。命令内におけるフィールドの
配置が、命令フォーマットとして知られている。どれく
らい多くの命令が指定されねばならないかに応じて、命
令は1つ以上のメモリワード長となり得る。“停止(HA
LT)”など一部の簡単な命令はオペランドを必要とせ
ず、その命令用のOPコードだけを含む1つのメモリワー
ドで表せる。単項命令と呼ばれる他の命令は、単一オペ
ランドの指定を必要とすることがある。“分岐(BRANC
H)”、“インクリメント(INCREMENT)”または“クリ
ア(clear)”などの単項命令は、OPコードとオペラン
ド指定子両方を含む1つのメモリワード、もしくは一方
がOPコード用で、他方がオペランド指定子用である2つ
のメモリワードに含めることができる。同じく、“加算
(ADD)”または“減算(SUBTRACT)”などの2項命令
は2つのオペランドの指定を必要とし、OPコードと両オ
ペランドの中身を含む1つのワードか、もしくは2つ以
上のワードに含めることができる。またCPUの命令セッ
トは、変化するフォーマットの命令を含むこともよくあ
る。このような場合、CPUの制御装置は、命令のOPコー
ドをデコードした後、その特定の命令に対応したフォー
マットによって必要な追加のワードをフェッチしなけれ
ばならない。
オペランドの指定内の広範囲のロケーションを参照す
るため、ほとんどのコンピュータの命令セットは、アド
レシングモードと呼ばれ、マシンレベル命令中のオペラ
ンドの実行アドレスを指示する各種の異なる方法をサポ
ートしている。マシンレベル命令中のオペランドを指定
する最も簡単な方法は、オペランドの値がマシンレベル
命令自体の中に含まれている即座つまりリテラルアドレ
シングである。このモードは定数及び変数の初期値を定
義するのに有用で、オペランドを得るのに主メモリへの
参照が必要でない。同じく、レジスタアドレシングモー
ドも、オペランドがマシンレベル命令で指定されたCPU
レジスタ内に記憶されているので、主メモリアクセスを
必要としない。オペランド指定の別の簡単な形は直接ア
ドレシングと呼ばれ、オペランドの主メモリアドレスが
命令中に与えられる。直接アドレシングはオペランドを
得るのに1回のメモリ参照を行うだけでよいが、1メモ
リワードよりも小さい命令のアドレスフィールド内に入
るように充分小さいアドレスの指定に限られる。間接ア
ドレシングモードは、オペランドの全長アドレスを含む
主メモリ内のワードのアドレスを命令中に与えることに
よって、上記の制限を解消している。間接アドレシング
モードでは、指定のオペランドを得るのに、2回の主メ
モリアクセスが必要である。処理装置で通常サポートさ
れている他のアドレシングモードには、命令中に指定さ
れたCPUレジスタが所望オペランドの主メモリ内のアド
レスを含むレジスタ間接アドレシングや、命令に含まれ
た明示オフセット値がその命令に含まれた別のアドレス
からの変位として使われ、その内容がオフセット値に加
えられてオペランドのアドレスを得る各種の変位アドレ
シングがある。
制御装置がCPU内における全ての作業を開始させるの
で、許容可能なシステム性能は制御装置の効率的な動作
に依存する。制御装置の実施に際しては、2つの基本的
な手法が存在する。制御装置のハードワイヤード式実施
として知られる第1の手法は、特定のOPコードに応じて
適切なシーケンスの出力制御信号を生じる組合せ論理ハ
ードウェアを用いる。ハードワイヤード式制御装置への
一次入力は、命令レジスタとクロックである。ハードワ
イヤード式制御装置内の組合せロジックが、各命令に関
連した固有のOPコードを識別(デコード)し、要求タス
クを達成するのに必要な適切なシーケンスの出力制御信
号を送出する。適度なサイズの命令セットの場合でも、
使用される多くの命令フォーマット間、及び実施可能な
多くの異なる演算間を識別し、さらに各命令サイクルの
各種の段階で正しい制御信号を送出するため、制御装置
は多量の論理ハードウェアをふくまねばならないことが
あきらかである。
プロセッサ制御装置の設計におけるもっと簡単な手法
は、マイクロプログラム式実施として知られている。マ
イクロプログラム式制御装置では、各命令OPコードが、
マイクロ命令と呼ばれる制御ワードの記憶されている特
別なCPUメモリのアドレスを指示する。各マイクロ命令
は、そのマイクロ命令が制御装置によって実行されたと
きに、どの制御ラインが送出を行うかについての情報を
含んでいる。従って1つのマシンレベル命令は、実行さ
れるべき1つ以上のマイクロ命令の特定シーケンス(マ
イクロプログラムルーチン)と対応する。マイクロ命令
は一般に、マイクロストアと呼ばれるCPUの読取専用メ
モリ(ROM)の専用エリア内に存在する。IR内の命令のO
Pコードを受け取ると、マイクロプログラム式制御装置
がそのOPコードから、マイクロストア内のマイクロプロ
グラムルーチンへの入口点を得る。この入口点から始ま
って、マシンレベル命令が主メモリからフェッチされる
のと同じように、マイクロ命令がマイクロストアから1
回に1つづつ読み取られ、どの制御信号を送出すべきか
を制御装置が判定するのに使われる。完全水平式マイク
ロ命令フォーマットと呼ばれるものでは、マイクロ命令
の各ビットが1つの制御信号と対応し、あるビット位置
の1がその制御信号の送出に対応し、同じビット位置の
0がその制御信号の取消に対応する。あるいは、いわゆ
る完全垂直式マイクロ命令フォーマットでは、マイクロ
命令のビット自体がデコードされ、どの制御信号を送出
するかを決めなければならない。完全水平式フォーマッ
トでは、n個の制御信号の状態を表すのにnビットが必
要である一方、完全垂直式フォーマットでは、2n個の制
御信号の状態をnビットで表せる。折衷式(対角式)マ
イクロ命令フォーマットは、完全水平式フォーマットの
速度と完全垂直式フォーマットの小さいマイクロ命令サ
イズとを折衷したものである。折衷式フォーマットで
は、マイクロ命令のビットがフィールドにグループ分け
され、各フィールドが特定のシステムリソース(主メモ
リ、ALU、CPUバス、CPUレジスタ等)に関連した制御信
号と対応する。kビットのフィールドを使って、特定リ
ソースに関連した2k個までの制御信号を指定できる。
コンピュータはしばしば、その処理装置でサポートさ
れている命令セットによって特徴付けられる。命令セッ
トがCPUによって行われる機能の多くを決めるので、CPU
の実施及びコンピュータシステム全体の性能に顕著な影
響を及ぼす。実際上、命令セットの設計については、少
なくとも次の2つの異なる手法が当該分野で存在する。
複合(complex)命令セットと呼ばれる一方の手法は、
マシンレベル命令を高水準のプログラミング言語の命令
ともっと適合するように試みている。複合命令セットは
一般に、移動(MOVE)など簡単な演算からベクトル操
作、マトリクス演算及び高度な算術機能などより複雑な
演算にわたる。多数の異なる命令を含む。複合命令セッ
トコンピュータ(CISC)は通常、広範囲のオペランドア
ドレシングモードと広く変化するフォーマットをサポー
トしている。複合命令セットを使用する理由は、複合命
令の方が単純命令より多くのことを行えるので、ある一
定のプログラムに必要な命令が少なくなり、プログラム
の実行に含まれるメモリフェッチの回数が減ることにあ
る。さらに、高速大容量ROMのますます強まる利用可能
性が、大きいマイクロコードルーチンにおける複雑なソ
フトウェア機能の実施によって、より速く使い易いコン
ピュータ、及びソフトウェア開発の低コスト化がもたら
されることを示唆している。
命令セット設計に関する別の手法においては、縮約
(reduced)命令セットを用いる。縮約命令セットコン
ピュータ(RISC)のアーキテクチャは、比較的少数の単
純命令から命令が構成されるという特徴から、広い設計
思想を持ち合わせている。RISCコンピュータでのマシン
レベル命令は一般に、1クロックサイクルで実行され、
固定の命令フォーマトを持ち、幾つか簡単なアドレシン
グモードだけをサポートしている。RISC命令の実行速度
を充分に活用するため、RISCコンピュータは通例、マイ
クロプログラム式制御装置の代わりにハードワイヤード
式制御装置を用いている。
コンピュータで最も広く実施されている汎用命令は、
CISCアーキテクチャのより小さいプログラムサイズ及び
より大きい制御装置のマイクロストアサイズとRISCシス
テムのより大きいプログラムサイズ及びより大きい制御
装置サイズを折衷したものである。CISCシステムにおけ
る広範囲の命令フォーマットとアドレシングモードが、
命令のデコードとオペランドのフェッチを遅くしより多
く必要とする一方、RISCシステムでのより単純な演算と
最少のアドレシングモードは同じタスクを達成するのに
比較的長いプログラムを必要とする。
マイクロプログラム式コンピュータにおいて、マシン
レベル命令セットの複雑さは明らかに、命令セットをサ
ポートするマイクロ命令を含むマイクロストアのサイズ
に影響を及ぼす。マイクロストアのサイズは、サポート
される命令の数だけでなく、それらの演算の複雑さ及び
命令に使われるアドレシングモードの範囲にも依存す
る。また、複合命令は単純な命令より多くのCPUレジス
タ転送を含み、従って完了までにより多くのマイクロ命
令及びクロックサイクルを必要とするため、コンピュー
タシステムの性能特性も上記のファクタによって影響さ
れる。アドレシングモード毎の命令セットの補数が増す
につれ、オペランドのアドレス計算により多数のマイク
ロコードが必要である。
オペランド指定子のマイクロコード処理には、オペラ
ンドのロケーションを識別するのに必要な動作を行うマ
イクロプログラムルーチンへのディスパッチ後、与えら
れた命令中のオペランドを使って適切な動作を行うこと
が含まれる。低性能のシステムでは、あらゆる種類の指
定子の処理が1つの一般的なマイクロプログラムルーチ
ンによって行われ、マイクロプログラムルーチン中の条
件付分岐文を用いて、オペランド指定内の相違を解いて
いく。一方高性能のシステムでは、特定のマシンレベル
命令で使われる可能性のあるオペランド指定子の各組合
わせ毎に、専用のマイクロプログラムルーチンが用意さ
れる。この専用ルーチン法が、マイクロプログラム内で
の遅い条件付分岐を取り除くことによって、最大の性能
を達成可能とする。他方汎用ルーチン法は、専用ルーチ
ン法よりはるかに少ないマイクロストアメモリスペース
でよいが、遅くなる。
(発明が解決しようとする課題) 本発明は、各種のオペランドアドレシングモードをサ
ポートする複合命令セットの実施に関連した望ましくな
い特徴の幾つかを解消することを課題とする。特に本発
明は、オペランド指定子の処理専用のマイクロストアメ
モリを減少すると共に、複合命令で指定された必要なオ
ペランドを得るためにプロセッサによって費やされる時
間及びサイズも減少する方法を提案する。
(課題を解決するための手段) 本発明は、同種類の指定子を一緒にグループ分けし、
その各々毎に汎用ルーチンを与えることによって、高性
能で、低オーバヘッドのマイクロコード式オペランド指
定子処理を実施する方法及び装置を開示する。つまり本
発明は、オペランド指定子処理の専用マイクロプロセッ
サルーチン法の性能特性を、オペランド指定子処理の汎
用マイクロプロセッサルーチン法の最小マイクロストア
サイズと組み合わせたものである。
本発明は、CISCアーキテクチャで一般に見られる下記
の13種類のオペランドアドレシングモードの多くまたは
全てをサポートするコンピュータシステムを意図してい
る(尚もちろん、これらのモードに他の名前が使われる
こともあり、またプロセッサが追加のモードを用いた
り、下記モードの一部を省略することもある): −リテラル(直): オペランドがマシンレベル命令ストリーム内の指定子
の一部として含まれている; −インデクス: オペランドのアドレスが、汎用CPUレジスタに含まれ
たベースアドレス及びインデクスから計算される; −レジスタ: オペランドが汎用CPUレジスタに含まれた値である; −レジスタデファード: オペランドの主メモリアドレスが汎用CPUレジスタに
含まれている; −自動デクレメント: オペランドのアドレスが、汎用CPUレジスタに含まれ
たアドレスからオペランドのサイズを差し引くことによ
って計算される; −自動インクレメント: 主メモリ内のオペランドのアドレスが、汎用CPUレジ
スタに含まれている。次いで、オペランドのサイズが汎
用レジスタに加算される; −自動インクレメントデファード: 汎用CPUレジスタに含まれたアドレスが、オペランド
のアドレスをメモリから読み取るのに使われる。次い
で、定数が汎用レジスタに加算される; −バイト変位: オペランドのアドレスが、汎用CPUレジスタの内容に
バイト変位を加算することによって計算される; −バイト変位デファード: バイト変位と汎用CPUレジスタの内容との和が、オペ
ランドの主メモリアドレスをメモリから読み取るのに使
われる; −ワード変位: オペランドのアドレスが、汎用CPUレジスタの内容に
2バイト変位を加算することによって計算される; −ワード変位デファード: 2バイト変位と汎用CPUレジスタの内容との和が、オ
ペランドのアドレスをメモリから読み取るのに使われ
る; −ロングワード変位: オペランドのアドレスが、汎用CPUレジスタの内容に
4バイト変位を加算することによって計算される; −ロングワード変位デファード: 4バイト変位と汎用CPUレジスタの内容との和が、オ
ペランドのアドレスをメモリから読み取るのに使われ
る。
オペランド指定モードの上記集合は、複合命令セット
アーキテクチャで一般に見られるアドレシングモードセ
ットを表す一つである。さらに、命令セットの実施では
よく、ある命令でオペランドを使うことのできる少なく
とも5種類の異なる方法の区別も認識する。このオペラ
ンドの使用法情報も、マシンレベル命令の実行中にメモ
リ装置に与えられ、オペランドメモリロケーションへの
必要なアクセス特権が確認されて、メモリアクセスが開
始可能とされねばならない。つまり、命令はオペランド
への読取アクセス、オペランドへの書込アクセス、また
はオペランドへの読取及び書込(変更)アクセスを必要
とすることがある。あるいは、命令がオペランドのアド
レスだけを用いて、オペランドの値を使わなかったり;
アドレスがそれ自体として、またはメモリ内データ構造
用のオフセットを含むベースアドレスとして使われるこ
ともある。さらに、上記した13種類のオペランド指定子
のうち、8種類は汎用CPUレジスタを含むが、一部のシ
ステムではこの汎用レジスタの代わりにプログラムカウ
ンタを用い、異なるアドレシングモードの数を13から21
へ増加可能である。これら21種類のモードの1つで指定
されたオペランドを5つの異なる方法のいずれでも使え
るため、前記全てのアドレシングモードとオペランドの
使用法をサポートしているマイクロプログラム式制御装
置は、(21×5)=105通りの異なる方法でオペランド
を処理できなければならない。
このようにマシンレベル命令中のオペランドを指定す
る潜在的に多数の異なる方法が存在する場合、オペラン
ド指定子処理の専用ルーチン手法では、オペランドをフ
ェッチするのに同じ多数の個々のルーチンが必要にな
り、マイクロストアが非常に大きくなってしまう。同じ
く、汎用ルーチン手法は多数の非効率的な条件付分岐文
を含むマイクロルーチンを必要とし、その結果オペラン
ドの処理が非常に遅くなる。本発明はこの問題に対し
て、類似のオペランド指定を一緒にグループ分けされ、
そのグループに専用のマイクロプログラムルーチンによ
って処理するという新規な解決策を提案する。幾つかの
モード及び使用法間での類似性を利用することによっ
て、専用ルーチンの数が最小限化されると共に、それら
のルーチン内における条件付分岐文の量も減少される。
本発明によって開示される同種類のオペランド指定子
のグループ分けは、幾つかの基準に基づいて行われる:
オペランドの種類(バイトか、ワードか、ロングワード
か)、間接レベル(オペランドが与えられているか、オ
ペランドのアドレスが与えられているか、オペランドの
アドレスのアドレスが与えられているか)、関連レジス
タ(ないか、汎用レジスタか、プログラムカウンタ
か)、インクレメントまたはデクレメントが必要か、及
び変位が含まれるか。オペランド指定子のグループ分け
が決まった後、各グループに対応するマイクロプログラ
ムルーチンが定義される。本発明に明記されるように、
各マイクロプログラムルーチンは2つの異なる入口点の
1つから実行を開始し、使用法における相違の効率的な
見分けを可能とする。
特定グループ内のオペランド指定子が類似と判断され
ても、各オペランド指定子は仮定によって相互に異なる
ので、いずれの2つの間にもある程度の相違が必然的に
存在する。専用マイクロプログラムルーチン内における
条件付分岐を避けるため、本発明では、共通グループの
指定子間の相違を見分ける機能を持つハードウェア装置
の小集合を設ける。これらのハードウェアプリミティブ
の1つは、CPUレジスタの内容への変位値の加算を含む
全てのオペランド指定子において必要である。マシンレ
ベル命令フォーマット内の変位フィールドは変化するサ
イズとなるので、このプリミティブは命令内の変位を32
ビットに符号拡張し、この32ビットの量を専用マイクロ
プログラムルーチンに与える。こうして、マイクロプロ
グラムルーチンは元のサイズに関わりなく、全ての変位
値を32ビットの量として扱うことができる。第2のハー
ドウェアプリミティブは、オペランドの指定された使用
法を判定するのに使える。読取、書込及び読取/書込
(変更)のいずれの使用法も、各専用ルーチンの一方の
入口点にまとめてグループ分けされているので、この第
2のハードウェアプリミティブはそれら3つの使用法の
うちどれが指定されているかを判定し、オペランド指定
子処理の完了時に、その情報をメモリインタフェースに
渡さなければならない。これによって、メモリインタフ
ェース内の簡単なデコーディングハードウェアで、マイ
クロプログラムルーチンによるオペランドロケーション
の判定後、そのロケーションへの必要なアクセス(読
取、書込または変更アクセス)を確認し、開始すること
ができる。
本発明の主旨をなす新規な特徴は、特許請求の範囲に
記載してある。しかし、本発明自体及び発明のその他の
特徴と利点は、添付の図面に基づく特定実施例に関する
以下の詳細な説明を参照することによって最も明瞭に理
解されよう。
(実施例) 本発明は、オペランドアドレシングモードの各種集合
をサポートする任意のマイクロプログラム式アーキテク
チャに適用可能であるが、好ましい実施例は、本発明の
譲受人から現在販売されている、VAXアーキテクチャ規
格に合致するマシンで発明を実施することによって実現
される。
第1図は、下記の複数の機能装置から構成される好ま
しい実施例の中央処理装置(CPU)10の簡略化ブロック
図を示す。
−命令装置12が、マシンレベル命令サイクルの命令フェ
ッチサブサイクルを行う:すなわちマシンレベル命令
が、プログラムカウンタ(PC)内のアドレスに基づいて
主メモリ13(またはキャッシュメモリ)からフェッチさ
れる。また命令装置12は、そのマシンレベル命令のOPコ
ードフィールドをデコードし、このデコードによってマ
シンレベル命令で使われる1つ以上のオペランド指定子
の種類を判定する。さらに命令装置12は、以下詳述する
ように、マイクロプログラムルーチンの入口アドレスま
たはディスパッチアドレスをマイクロプログラム制御装
置へ与えることによって、全てのマイクロプログラムル
ーチンの実行を開始する。1つのマイクロプログラムル
ーチンが終了すると、命令装置12は実行すべき次のマイ
クロプログラムルーチンの入口アドレスをディスパッチ
しなければならない。
−実行装置14が、好ましい実施例の命令セットを実行す
る機能機構を含んでいる。つまり、実行装置14はCPUレ
ジスタ、プログラムカウンタ(CP)レジスタ、及び算術
及び論理演算装置(ALU)の集合を含む。CPUレジスタは
通常通り、CPU用の命令セットを実行するのに必要とさ
れる一時的なデータレジスタ、メモリアドレスレジス
タ、インデクスレジスタを含む。
−メモリ管理装置16が、命令装置によって必要な命令フ
ェッチを含め、主メモリ13へのアクセスを制御するのに
使われるロジックを含んでいる。メモリ管理装置はバス
インタフェース装置に与えられる読取及び書込制御を発
生し、バスインタフェース装置が読み取り及び書き込み
制御、さらに選ばれた特定のシステムに応じて必要にな
るアクノレッジ(肯定応答)、レディ(実行可能)、待
ち制御などによってシステムバス15を制御する。
−マイクロストア18が、システムの命令セットを実行す
るのに必要なマイクロプログラムルーチンを含むROMま
たはその他のメモリである。マイクロセーケンサ20が、
マイクロストア18からフェッチ及び実行されるべき次の
マイクロワードのアドレスを判定するロジックを含んで
いる。
−内部データバス22が、各機能装置12、14、16とバスイ
ンタフェース装置を接続するデータ路を与える。内部デ
ータバス22は上記の各機能装置間で読み取り及び書き込
みメモリデータ及びアドレス両方を転送し、通常制御ラ
インも含んでいる。例えば、実行装置14内のメモリアド
レスレジスタ中のアドレスに基づいてメモリ13(または
キャッシュ)からフェッチされたオペランドは、バス22
を介して実行装置14内のALU入力レジスタ、またはバ
ス、またはマイクロ命令シーケンスによって指定された
いずれかに転送される。
−ディスパッチバス24が、マイクロストアの入口アドレ
スを命令装置12からマイクロシーケンサ20に転送する。
−命令データバス26が、マシンレベル命令に含まれたリ
テラル(即座)データ用の、命令装置12から実行装置14
へのデータ路を与える。ある与えられた命令を実行する
のにリテラルオペランドアドレシングモードが使われる
場合、マシンレベル命令自体からのデータが、ライン26
を介して実行装置14内のデータレジスタにロードされ
る。
−マイクロ命令バス28が、実行されるべき現マイクロ命
令を、マイクロストア18から実行装置14及びメモリ管理
装置16に転送する。マイクロ命令バス28を構成する各導
体ラインは、2つのグループ28a、28bに分かれている。
低位ビットライン28aが、マイクロストア18からマイク
ロシーケンサ20ヘ転送される次のマイクロ命令アドレス
の情報用通路を与える。高位ビットライン28bが、マイ
クロプログラム制御ビットを実行装置14へ出力可能とす
る。一般にマイクロ命令は、例えば50ビットで構成で
き、そのうち16ビットがライン28a上に転送される次の
マイクロ命令のアドレスで、残りの34ビットがライン28
bを介して実行装置(またはメモリ管理装置)に与えら
れる。
−マイクロアドレスバス30が、マイクロストアアドレス
をマイクロシーケンサ20からマイクロストア18のアドレ
ス入力へ転送する16ビットバスである。
−3ビット命令アクセス種類バス34が、3つの制御ビッ
トを命令装置12から実行装置14へ転送し、現在処理され
ているオペランド指定子について必要なメモリアクセス
の種類を指示する。この3ビットアクセス種類制御は、
マシンレベル命令の一部をデコードすることによって命
令装置12で発生される。
−2ビット命令データ長バス36が、2つの制御ビットを
命令装置12から実行装置14へ転送し、現在アクセスされ
ているオペランドに関するメモリデータの長さ(バイ
ト、ワードまたはロングワード)を指示する。一般に、
バイトは8ビットデータ、ワードは16ビットデータ、ロ
ングワードは32ビットデータである。
−3ビットアクセス種類バス38が、実行装置14からメモ
リ管理装置16へ、ライン34を介して命令装置12から受け
取られたメモリアクセスの種類を定義する3つの制御ビ
ットを転送し、メモリ管理装置が読取または書込制御、
バスアクセス要求、または指定されたオペランドについ
て所望なメモリ演算を実行するためにバスインタフェー
スへ渡す必要のあるものを発生可能とする。
−同じく2ビットデータ長バス40が、実行装置14からメ
モリ管理装置16へ、命令装置12からのデータ長を定義す
る2つの制御ビットを転送し、メモリ管理装置とバスイ
ンタフェースが、マシンレベル命令によって指定された
通りメモリ13にフェッチまたは書き込まれるべき所望の
データ長さに対して動作可能とする。
−バスインタフェース装置42が、CPU10(特にデータ、
アドレス及び制御ラインを含むバス22)と主メモリ13に
いたるアドレス、データ及び制御信号ラインを含む外部
システムバス15との間でのインタフェースを与える。好
ましい実施例の命令セットは、多数のオペランドアドレ
シングモードをサポートする:例えば、前述し下記に再
び列記する13種類のアドレシングモード全てを実施し得
る: リテラル(直)モード インデクスモード レジスタモード レジスタデファードモード 自動デクレメントモード 自動インクレメントモード 自動インクレメントデファードモード バイト変位モード バイト変位デファードモード ワード変位モード ワード変位デファードモード ロングワード変位モード リングワード変位デファードモード さらに、これらのモードの1つで指定されたオペランド
の使用法が、次の5種類の異なるアクセス(これらはラ
イン36と38上の3つの制御ビットによって定義される
“アクセス種類”)の1つに指定可能である: 読取用法 変更用法 書込用法 アドレス用法 ビットフィールドベースアドレス用法 また、上記アドレシングモードのうち8種類が実行装置
14(CPU)内の汎用データまたはアドレスレジスタの使
用を含んでおり、これに代えてCPU内のプログラムカウ
ンタまたはPCレジスタを使えることもある。これら8モ
ードにおける汎用レジスタの代わるプログラムカウンタ
レジスタの使用は、上記の13種類と異なる8種類のアド
レシングモードをもたらす。これは、オペランドを指定
するのに合計21種類の可能な異なる方法が存在すること
を意味し、その各々が5種類の異なる方法の1つで使え
るので、アドレシングと使用法の指定について(21×
5)=105種類の異なる組合せを生じる。
本発明よって指定される方法によれば、105種類の組
合せがモード及び使用法の類似性に応じてグループ分け
され、多数の特定オペランドモードが制御ビットバスラ
イン34と36を通して転送されるによって実施される(マ
イクロ命令を用いない)わずかな変更で生成可能となる
ように、各々がマイクロ命令の状態で実施されるステッ
プを持つ多数の“一般的(generic)”なオペランドモ
ードを与える。好ましい実施例では、次の22グループを
指定する: (1)リテラルタイプ;読取、変更または書込用法。命
令自体からのオペランドが、ライン26を介してCPUのデ
ータレジスタにロードされる;これは、例えば“CPUの
入力バスをレジスタAにロード”など1つまたは非常に
わずかなマイクロストア18からのマイクロ命令だけを含
み、36、40を介して受け取られたビットで定義されるメ
モリ制御を発生させ、命令のOPコードが必要とする算術
または論理演算の結果を指示するメモリ管理装置16への
命令が付加されている。
(2)リテラルタイプ;アドレスまたはビットフィール
ド用法。これは、メモリ制御を定義するマイクロ命令ビ
ットが異なる、すなわちメモリ13への読取または書込を
可能としない点を除き、(1)と同じである。
(3)インデクスタイプ;読取、変更または書込用法。
インデクスアドレシングを実施するマイクロ命令は、ラ
イン26を介してマシンレベル命令にアクセスし、インデ
クスレジスタとして作用するCPUのレジスタファイル内
における汎用レジスタのアドレスを得た後、CPUレジス
タファイル内におけるメモリアドレスレジスタの内容と
共に、ALUへのA及びB入力である前記インデクスレジ
スタの内容を用いてALUで加算(ADD)を行い、次いで加
算の結果をメモリアドレスレジスタ内に入れてから、
(1)と同じくマイクロ命令及び制御ビットバスライン
34、36を通して転送されるに基づきメモリ管理装置16に
よって生成された制御を用い、必要なメモリアクセスを
指定する。つまり、加算で生成されたアドレスの読取、
書込あるいは読取及び書込(変更)を行うことができ
る。
(4)インデクスタイプ;アドレスまたはビットフィー
ルド用法。これは、主メモリ13におけるデータの読取、
書込または変更を含まない点を除き、(1)と同じマイ
クロ命令を用いる。
(5)レジスタタイプ;読取、変更または書込用法。オ
ペランドはCPUのレジスタファイル内における汎用レジ
スタの1つなので、この一般タイプ用のマイクロ命令
は、CPUのレジスタをピックアウトするためのアドレス
として用いるために、ライン26を介してマシンレベル命
令のフィールドにアクセスするたけで、(1)と同じメ
モリ制御ビットを含む。
(6)レジスタタイプ:アドレスまたはビットフィール
ド用法。これは(3)と同じマイクロ命令を有するが、
(2)と同じメモリ制御を含む。
(7)レジスタデファードタイプ;読取、変更または書
込用法。オペランドのアドレスは汎用レジスタの1つ内
にあるので、この一般タイプ用のマイクロ命令は、CPU
レジスタファイルにおけるレジスタの1つを選ぶための
アドレスとして用いるために、ライン26を介してマシン
レベル命令のフィールドにアクセスし、選ばれたレジス
タの内容をバス22とバスインタフェース16を介してメモ
リ13へ送出すると共に、バスライン38を通じて転送され
る制御ビット上で定義された種類のメモリアクセスを行
うことをメモリ管理装置に指示する。
(8)レジスタデファードタイプ;アドレスまたはビッ
トフィールド用法。これは(7)と同じマイクロ命令を
生じるが、メモリの読取、書込または変更を含まない。
(9)自動デクレメントタイプ;読取、変更または書込
用法。この種類のアクセスを実施するマイクロ命令は、
マシンレベル命令のフィールドをバス26を介してCPUのA
LUの一入力に転送し、CPUレジスタファイルにおけるレ
ジスタをCPUの他入力に差し向け、ALU内で減算(SUBTRA
CT)演算を行った後、その結果をバス22のアドレスライ
ン上へ送出することによってオペランドアドレスとして
用いる。メモリ制御はバスライン38を通じて転送される
制御ビットを用いて発生される(データサイズはライン
40を介して定義される)。
(10)自動デクレメントタイプ;アドレスまたはビット
フィールド用法。このマイクロ命令は(9)と同じだ
が、メモリの読取、書込または変更は含まれない。
(11)汎用レジスタによる自動インクレメントタイプ;
読取、書込または変更用法。このマイクロ命令は(9)
と同じだが、減算の代わりに加算が行われる。
(12)汎用レジスタによる自動インクレメントタイプ;
アドレスまたはビットフィールド用法。マイクロ命令は
(1)と同じだが、メモリの読取、書込または変更を含
まない;すなわちアドレス自体がオペランドとして使わ
れる。
(13)レジスタとしてのPCによる自動インクレメントタ
イプ;読取、書込または変更用法。マイクロ命令は(1
1)と同じだが、加算演算用のALUの第2入力として、汎
用レジスタの代わりにPCが使われる。
(14)レジスタとしてのPCによる自動インクレメントタ
イプ;アドレスまたはビットフィールド用法。(10)と
同じだが、(13)と同様第2のALU入力としてPCを用い
る。
(15)汎用レジスタによる自動インクレメントデファー
ドタイプ;読取、変更または書込用法。マイクロ命令は
(11)と同じだが、ALUの出力で発生されたアドレスの
ロケーションの内容自体がオペランドのアドレスとして
使われる。
(16)汎用レジスタによる自動インクレメントデファー
ドタイプ;アドレスまたはビットフィールド用法。(1
5)と同じだが、指定されたオペランドは読取、書込ま
たは変更されず、代わりのそのオペランド自体のアドレ
スがOPコードによって使われる。
(17)レジスタとしてのPCによる自動インクレメントデ
ファードタイプ;読取、変更または書込用法。マイクロ
命令は(15)と同じだが、加算演算用のALUへ第2入力
としてPCを用いる。
(18)レジスタとしてのPCによる自動インクレメントデ
ファードタイプ;アドレスまたはビットフィールド用
法。(15)と同じだが、読取、書込または変更は含まれ
ない。
(19)バイト、ワードまたはロングワード変位タイプ;
読取、変更または書込用法。マイクロ命令はバス26を介
した32ビット符号拡張入力をALUの一入力として用い、
汎用レジスタの内容がALUの他入力として使われる:ALU
が加算を行い、その結果がCPUのメモリアドレスレジス
タにロードされ、オペランドのアドレスとして使われ
る。また、メモリアクセスのための制御が発生される一
方、特定のメモリ用法(読取、書込または変更)が3ビ
ット制御によって指定され、データ長(バイト、ワード
またはロングワード)が2ビット制御によって指定され
る。
(20)バイト、ワードまたはロングワード変位タイプ;
アドレスまたはビットフィールド用法。(19)と同じだ
が、オペランドの読取、書込または変更はメモリ13で行
われない。
(21)バイト、ワードまたはロングワード変位デファー
ドタイプ;読取、変更または書込用法。(19)と同じだ
が、発生されるメモリ13内のアドレスの内容がメモリ13
から読み取られ、オペランドのアドレスとして使われ
る。
(22)バイト及びロングワード変位デファードタイプ;
アドレスまたはビットフィールド用法。(21)と同じだ
が、こうして定義されたオペランドは読取、書込または
変更されず、代わりにアドレス自体が使われる。
本発明では、マイクロプログラムルーチン(1つ以上
のマイクロ命令のシーケンス)が、先に列記した一般的
なアドレシングモードグループの各々毎に定義され、さ
らに各マイクロプログラムルーチンがマイクロストア18
からの出力として全体的に実行され、ライン24を経てマ
イクロシーケンサつまりアドレス発生器20に送られた入
口点アドレスまたはディスパッチから始まって、マイク
ロ命令のシーケンス中に条件付分岐などを全く含まずに
進行する。これらの入口点は対をなし;第1の入口点
は、そのグループのアドレシングモードで指定された、
読取、変更または書込されるべきオペランドと対応し;
第2の入口点は、指定されたオペランドのアドレスが使
われる場合、あるいはオペランドのアドレスがメモリ内
ビットフィールド用のベースアドレスとして使われる場
合の例に対応する。このように、22種類のマイクロプロ
グラムルーチンの入口点が、1つ(汎用ルーチン実施の
場合)または105(完全専用ルーチン実施の場合)の代
わりに、オペランド指定子処理のために定義される。
処理装置10の動作は次のように進行する:命令装置12
が、メモリ13から内部データバス22を介してマシンレベ
ル命令を受け取り、命令サイクルを開始する。命令装置
12がマシンレベル命令の中から、要求された動作を達成
するマイクロルーチンの実行中に必要な全てのエンコー
ド及びデコードされた命令ストリームの情報を抽出す
る。この情報には、OPコード、指定されたレジスタ、オ
ペランド指定子、オペランド使用/アクセスの種類、オ
ペランドデータ長、オペランドの宛先、プログラムカウ
ンタレジスタの次の値に関する情報、並びにその他の制
御及びステータス情報が含まれる。オペランドのアクセ
ス種類とデータ長の情報は、OPコードから命令装置12に
よってデコードされ、専用の3ビット命令アクセス種類
バス34と2ビット命令データ長バス36をそれぞれ介して
実行装置14に与えられる。
実行装置14はこれらのアクセス種類とデータ長の情報
を、それぞれアクセス種類バス38とデータ長バス40を介
してメモリ管理装置16に送る。メモリ管理装置16はこの
情報を用いて、必要なロケーションへのメモリアクセス
を行う。つまり、メモリ管理装置16内の簡単なハードウ
ェアプリミティブ回路(すなわちデコーダ)が、アクセ
ス種類バス38上のビットをすばやくデコードし、現在要
求されているメモリアクセスに対応したメモリロケーシ
ョンで開始すべき特定のアクセス種類、つまり読取、書
込または変更のどれがなされるべきかを判定する。前述
したように、これらのアクセス種類には読取、書込、変
更(“読取/変更/書込”とも称する)、アドレス(す
なわち読取、書込または変更を行わずアドレス自体が使
われる)、及びビットフィールドが含まれる。アクセス
種類が“アドレスまたはビットフィールド”であれば、
実行装置自体が指定された“アクセス種類”の動作を実
施する。このアクセスのデータサイズが、データ長バス
40上に指示される。
命令装置12はオペランド指定子を22グループのアドレ
シングモードの1つへと分類分けすると同時に、そのオ
ペランドに関するマシンレベル命令内のアクセス種類の
ビットをデコードする。この情報が、オペランド指定子
のグループ分けと組み合わされて、対応したオペランド
指定子の処理を開始するのに、22種類のマイクロプログ
ラムルーチンの入口点のうちどれが使われるべきかを判
定する。次いで、この入口アドレスが、命令装置12から
マイクロシーケンサ20へディスパッチバス24を介して渡
される。するとマイクロシーケンサ20が、入口アドレス
をマイクロアドレスバス30を介してマイクロストア18へ
送ることによって、その地点からマイクロプログラムの
実行を開始する。マイクロワードのシーケンスがマイク
ロストア18から読み取られるにつれ、それらはマイクロ
命令バス28を経て実行装置14とメモリ管理装置16で使用
可能となる。マイクロ命令バス28の低位16ビットライン
28aはマイクロシーケンサ20に戻され、マイクロ命令中
のこれらのビットは、実行すべき次のマイクロ命令のマ
イクロストアアドレスをマイクロシーケンサ20が判定す
るのに使われる。マイクロ命令バス28の残りの高位ビッ
トライン28bは実行装置14に戻され、例えば各レジスタ
に対する読取またはロード、ALUでの演算、バス26、32
へのI/Oなど、マイクロコード式CPUの通常の方法で実行
装置14での作業を制御するのに使われる各マイクロ命令
のビット用の経路を与える。
アドレシングモードの変位値など、マシンレベル命令
に含まれるリテラルつまり即座データは、命令装置12か
ら命令データバス26を介して実行装置14に送られ、オペ
ランドアドレス及びオペランドの計算のため実行装置14
によって使用可能となる。マシンレベル命令で指定され
る変位値は、8ビット、16ビットまたは32ビットの量が
可能である。命令装置12内に存在するハードウェアプリ
ミティブ回路(すなわちデコーダ及び論理回路)が、
(必要なら)全ての変位を符号拡張し、全変位が32ビッ
トの量になるようにする。こうして、32ビットの変位値
が命令装置12から命令データバス26を介して実行装置14
に渡され、そこで全ての変位が初めに指定されたサイズ
と関わりなく、32ビットとして一様に処理可能となる。
各マシンレベル命令の実行は、幾つかのマイクロプロ
グラムルーチンの実行を必要とする。まず、22種類の一
般的マイクロプログラムオペランド指定子処理ルーチン
のうちの1つがマシンレベル命令ワード内の各オペラン
ド指定子毎に実行され、これらのオペランドがメモリ管
理装置16の制御下で主メモリから読み取られ、実行装置
14へ与えられるようにされねばならない。VAXアーキテ
クチャ規格は、6つまでの指定されたオペランドを持つ
マシンレベル命令を定義している。全てのオペランド指
定子が処理された後初めて、別のマイクロプログラムル
ーチンを実行して、オペランドに対する要求された演算
の実行を開始可能となる。
マシンレベル命令で要求されている動作の実行が完了
したら、PCによって指示されている次のマシンレベル命
令が主メモリからフェッチされ、今度はこの命令につい
て上記のプロセス全体が繰り返される。
以上本発明を特定実施例を参照して説明したが、上記
説明は制限の意味で解釈されることを意図していない。
開示実施例の各種変更、及びそれ以外の発明の実施例
が、本明細書を参照することによって当業者には明かと
なろう。従って、特許請求の範囲は、発明の真の範囲内
に入るそのような全ての変更または実施例を包含するも
のと解釈される。
【図面の簡単な説明】
第1図は本発明の好ましい実施例の中央処理装置を構成
する主な機能装置を示すブロック図である。 10……CPU、12……デコード手段(命令装置)、13……
主メモリ装置、14……実行手段(装置)、15……外部デ
ータバス、16……メモリ管理装置、18……マイクロスト
ア、20……マイクロシーケンサ、22……内部データバ
ス、24……ディスパッチバス、26……命令データバス、
28……マイクロ命令バス、30……マイクロアドレスバ
ス、34,38,36,40……制御ビット転送バス(アクセス種
類;データ長)。
フロントページの続き (72)発明者 ジョン エフ ブラウン ザ サード アメリカ合衆国 マサチューセッツ州 06532 ノースボロー キャサリン ド ライヴ 42

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】マイクロコード式CPU(10)で実行される
    命令用のオペランドを指定する方法において、前記オペ
    ランドの各々が複数の異なる一般的なオペランドアドレ
    シングモードのうちの1つを使用しており、該複数の異
    なる一般的なオペランドアドレシングモードの少なくと
    も一部で複数の異なるデータ長および異なるアクセスの
    種類が使用され、前記マイクロコード式CPU(10)が、
    1セットの一般的なマイクロ命令シーケンスを有するマ
    イクロプログラムを含む単一のマイクロストア(18)を
    含むような場合において、 前記複数の異なる一般的なオペランドアドレシングモー
    ドの類似のオペランド指定子基準によって定義されるオ
    ペランド指定子の種類にグループ分けするステップ、 前記CPU(10)における前記命令をデコードし、前記複
    数の異なる一般的なオペランドアドレシングモードのう
    ちの1つに各々が対応している前記1セットの一般的な
    マイクロ命令シーケンスのうちの1つを選択するために
    1セットのディスパッチアドレスのうちの1つを選択す
    るステップ、 前記選択されたディスパッチアドレスによって決まる入
    口点から始まって前記CPU(10)における前記マイクロ
    ストア(18)にアドレスし、条件付分岐をせずに、該マ
    イクロストアのアドレスを継続して、前記1セットの一
    般的なマイクロ命令シーケンスのうちの前記選択された
    1つを生成するステップ、 前記マイクロストア(18)からの前記一般的なマイクロ
    命令シーケンスのうちの前記選択された1つを前記CPU
    (10)の実行装置(14)に与え、前記複数の異なる一般
    的なオペランドアドレシングモードのうちの前記1つに
    応答して、前記命令のためのオペランドを、前記CPU(1
    0)におけるレジスタ(14)から、または、前記CPU(1
    0)とは別のメモリ(13)からフェッチまたは選択する
    ステップ、および 前記CPU(10)における前記命令を別にデコードし、各
    々が前記複数の異なるデータ長および異なるアクセスの
    種類のうちの1つを生成する1セットの複数の特定のオ
    ペランドモードから1つの特定のオペランドモードを選
    択するための前記ディスパッチアドレスとは別で且つ前
    記マイクロストア(18)とは別に制御ビットを発生し、
    前記マイクロ命令シーケンスとは別に、該制御ビットを
    前記CPU(10)の前記実行装置(14)に与えて、前記実
    行装置(14)が前記オペランドのフェッチおよび選択の
    ために前記制御ビットに応答して特定のオペランドモー
    ドを選択するようにするステップ、 を含むことを特徴とする方法。
  2. 【請求項2】マイクロコード式CPU(10)で実行される
    命令用のオペランド指定子を処理する装置において、前
    記オペランド指定子の各々が複数の異なるアドレシング
    モードのうちの1つおよび複数の異なるオペランドモー
    ドのうちの1つを必要とするような場合において、 前記複数の異なる一般的なオペランドアドレシングモー
    ドの類似のオペランド指定子基準によって定義されるオ
    ペランド指定子の種類にグループ分けする手段(12)
    と、 前記命令を受けて、該命令をデコードし、前記複数の一
    般的なオペランドアドレシングモードのうちの1つに各
    々が対応している1セットの一般的なマイクロ命令シー
    ケンスのうちの選択された1つのためのディスパッチア
    ドレスを発生するための前記CPU(10)におけるデコー
    ド手段(12)と、 アドレス入力およびマイクロ命令出力を有し、前記1セ
    ットの一般的なマイクロ命令シーケンスを記憶する前記
    CPU(10)における単一のマイクロストア(18)と、 前記ディスパッチアドレスを受けて、前記デコード手段
    (12)から受け取られた前記ディスパッチアドレスによ
    って決まる入口点から始まって前記マイクロストア(1
    8)の前記アドレス入力にマイクロストアアドレスを与
    え、条件付分岐をせずに、前記1セットの一般的なマイ
    クロ命令シーケンスのうちの前記選択された1つのため
    のマイクロストアアドレスを継続し、該マイクロストア
    (18)が、前記1セットの一般的なマイクロ命令シーケ
    ンスのうちの選択された1つに対応するマイクロ命令
    を、前記マイクロアドレスに応答して前記マイクロ命令
    出力に発生するようにする前記マイクロストア(18)の
    ためのアドレシング手段(14)と、 複数のレジスタおよびバスおよびメモリアドレッシング
    手段(16)を有する前記CPU(10)における実行および
    アドレッシング手段(14)であって、前記マイクロ命令
    出力に接続されて前記マイクロ命令に応答して、前記一
    般的なオペランドアドレシングモードのうちの1つに対
    応する前記一般的なマイクロ命令シーケンスのうちの前
    記選択された1つにしたがって前記バスおよびメモリア
    ドレシング手段(16)を使用して、前記CPU(10)にお
    ける前記複数のレジスタ(14)のうちの1つのレジスタ
    から、または、前記CPU(10)とは別のメモリ(13)か
    ら前記命令のためのオペランドをフェッチまたは選択す
    る実行およびアドレシング手段(14)と、 前記命令をデコードして、前記複数の異なるオペランド
    モードのうちの1つを選択するための前記ディスパッチ
    アドレスとは別の制御ビットを発生する手段(12)と、 前記マイクロ命令シーケンスとは別に前記制御ビットを
    前記実行およびアドレシング手段(14)に与えて、前記
    バスおよびアドレシング手段(16)が前記制御ビットに
    応答し、前記オペランドの前記フェッチまたは選択のた
    めに前記一般的なマイクロ命令シーケンスのうちの前記
    選択された1つに応答して前記オペランドモードのうち
    の前記選択された1つを使用するようにさせる手段(1
    2)と、 を備えていることを特徴とする装置。
  3. 【請求項3】コンピュータシステム内でマイクロコード
    式CPU(10)を動作する方法において、 複数の異なる一般的なオペランドアドレシングモードの
    類似のオペランド指定子基準によって定義されるオペラ
    ンド指定子の種類にグループ分けするステップ、 前記CPU(10)における命令をデコードし、1セットの
    前記複数の異なる一般的なオペランドアドレシングモー
    ドのうちのどの1つが前記命令によって指定されている
    かを判定し、該判定に基づくマイクロアドレスを発生す
    るステップ、 前記マイクロアドレスを使用して条件付分岐をせずに前
    記CPU(10)における単一のマイクロストア(18)にア
    ドレスして、前記1セットの異なる一般的なオペランド
    アドレシングモードのうちの前記1つに対応するマイク
    ロ命令の選択されたシーケンスを与えるステップ、 前記マイクロストア(18)の前記アドレシングとは別に
    前記CPU(10)における前記命令をデコードし、1セッ
    トのオペランド特徴のうちのどの1つが前記命令によっ
    て指定されているかを判定し、前記1セットのオペラン
    ド特徴のうちの前記1つを定めるためのマイクロ命令の
    前記選択されたシーケンスとは別の特定の制御ビットを
    発生するステップ、および 前記CPU(10)における実行およびアドレシング手段(1
    4)において前記マイクロ命令の前記選択されたシーケ
    ンスおよび前記特定の制御ビットを使用して、前記CPU
    (10)において前記命令によって処理されるべきオペラ
    ンドをフェッチまたは選択するステップ、 を含むことを特徴とする方法。
JP1165141A 1988-06-27 1989-06-27 マイクロコード式cpuで実行される命令用のオペランドを指定する方法および装置 Expired - Fee Related JP2840604B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US21234888A 1988-06-27 1988-06-27
US212348 1988-06-27

Publications (2)

Publication Number Publication Date
JPH0296233A JPH0296233A (ja) 1990-04-09
JP2840604B2 true JP2840604B2 (ja) 1998-12-24

Family

ID=22790629

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1165141A Expired - Fee Related JP2840604B2 (ja) 1988-06-27 1989-06-27 マイクロコード式cpuで実行される命令用のオペランドを指定する方法および装置

Country Status (5)

Country Link
US (1) US5500947A (ja)
EP (1) EP0349124B1 (ja)
JP (1) JP2840604B2 (ja)
CA (1) CA1321652C (ja)
DE (1) DE68927313T2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5832533A (en) * 1995-01-04 1998-11-03 International Business Machines Corporation Method and system for addressing registers in a data processing unit in an indexed addressing mode
US5717910A (en) * 1996-03-29 1998-02-10 Integrated Device Technology, Inc. Operand compare/release apparatus and method for microinstrution sequences in a pipeline processor
US6178495B1 (en) * 1998-04-30 2001-01-23 International Business Machines Corporation Processor E-unit to I-unit interface instruction modification with E-unit opcode computer logic in the unit
US6463521B1 (en) * 1999-06-23 2002-10-08 Sun Microsystems, Inc. Opcode numbering for meta-data encoding
US6802056B1 (en) * 1999-06-30 2004-10-05 Microsoft Corporation Translation and transformation of heterogeneous programs
US9104399B2 (en) * 2009-12-23 2015-08-11 International Business Machines Corporation Dual issuing of complex instruction set instructions
US8082467B2 (en) * 2009-12-23 2011-12-20 International Business Machines Corporation Triggering workaround capabilities based on events active in a processor pipeline
US9135005B2 (en) * 2010-01-28 2015-09-15 International Business Machines Corporation History and alignment based cracking for store multiple instructions for optimizing operand store compare penalties
US8495341B2 (en) * 2010-02-17 2013-07-23 International Business Machines Corporation Instruction length based cracking for instruction of variable length storage operands
US8938605B2 (en) * 2010-03-05 2015-01-20 International Business Machines Corporation Instruction cracking based on machine state
US8464030B2 (en) 2010-04-09 2013-06-11 International Business Machines Corporation Instruction cracking and issue shortening based on instruction base fields, index fields, operand fields, and various other instruction text bits
US8645669B2 (en) 2010-05-05 2014-02-04 International Business Machines Corporation Cracking destructively overlapping operands in variable length instructions
US8539206B2 (en) * 2010-09-24 2013-09-17 Intel Corporation Method and apparatus for universal logical operations utilizing value indexing
US20160179550A1 (en) * 2014-12-23 2016-06-23 Intel Corporation Fast vector dynamic memory conflict detection

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3958221A (en) * 1973-06-07 1976-05-18 Bunker Ramo Corporation Method and apparatus for locating effective operand of an instruction
JPS6055849B2 (ja) * 1975-12-04 1985-12-06 株式会社東芝 命令制御方式
US4236206A (en) * 1978-10-25 1980-11-25 Digital Equipment Corporation Central processor unit for executing instructions of variable length
US4342078A (en) * 1979-05-21 1982-07-27 Motorola, Inc. Instruction register sequence decoder for microprogrammed data processor and method
US4312034A (en) * 1979-05-21 1982-01-19 Motorola, Inc. ALU and Condition code control unit for data processor
US4415969A (en) * 1980-02-07 1983-11-15 Intel Corporation Macroinstruction translator unit for use in a microprocessor
JPS56152049A (en) * 1980-04-25 1981-11-25 Toshiba Corp Microprogram control system
USRE32493E (en) * 1980-05-19 1987-09-01 Hitachi, Ltd. Data processing unit with pipelined operands
US4530050A (en) * 1981-08-26 1985-07-16 Hitachi, Ltd. Central processing unit for executing instructions of variable length having end information for operand specifiers
JPS58146941A (ja) * 1982-02-26 1983-09-01 Hitachi Ltd マイクロプログラム制御デ−タ処理装置
US4812971A (en) * 1983-10-03 1989-03-14 Digital Equipment Corporation Central processing unit for a digital computer
US4586130A (en) * 1983-10-03 1986-04-29 Digital Equipment Corporation Central processing unit for a digital computer
GB8421066D0 (en) * 1984-08-18 1984-09-19 Int Computers Ltd Microprogram control
JPS6282402A (ja) * 1985-10-07 1987-04-15 Toshiba Corp シ−ケンス制御装置
JPH0827716B2 (ja) * 1985-10-25 1996-03-21 株式会社日立製作所 データ処理装置及びデータ処理方法
US4709324A (en) * 1985-11-27 1987-11-24 Motorola, Inc. Data processor control unit having an interrupt service using instruction prefetch redirection
JP2554050B2 (ja) * 1986-02-26 1996-11-13 株式会社日立製作所 デ−タ処理方法
JP2609618B2 (ja) * 1987-08-13 1997-05-14 株式会社東芝 データ処理装置
JPH01183736A (ja) * 1988-01-18 1989-07-21 Toshiba Corp 情報処理装置

Also Published As

Publication number Publication date
DE68927313D1 (de) 1996-11-14
EP0349124A2 (en) 1990-01-03
US5500947A (en) 1996-03-19
CA1321652C (en) 1993-08-24
JPH0296233A (ja) 1990-04-09
EP0349124B1 (en) 1996-10-09
EP0349124A3 (en) 1991-12-18
DE68927313T2 (de) 1997-05-07

Similar Documents

Publication Publication Date Title
US3886523A (en) Micro program data processor having parallel instruction flow streams for plural levels of sub instruction sets
EP0057788B1 (en) Data processing system with external microcode control unit
US4586130A (en) Central processing unit for a digital computer
US4591972A (en) Data processing system with unique microcode control
US4546431A (en) Multiple control stores in a pipelined microcontroller for handling jump and return subroutines
US3930236A (en) Small micro program data processing system employing multi-syllable micro instructions
JP2840604B2 (ja) マイクロコード式cpuで実行される命令用のオペランドを指定する方法および装置
US5249280A (en) Microcomputer having a memory bank switching apparatus for accessing a selected memory bank in an external memory
US4569018A (en) Digital data processing system having dual-purpose scratchpad and address translation memory
US5682531A (en) Central processing unit
US4750110A (en) Method and apparatus for executing an instruction contingent upon a condition present in another data processor
US5097407A (en) Artificial intelligence processor
JPS5811654B2 (ja) デ−タシヨリシステム
KR19980069757A (ko) 마이크로프로세서 및 멀티프로세서 시스템
US4597041A (en) Method and apparatus for enhancing the operation of a data processing system
JPH0766365B2 (ja) コ・プロセツサ制御方式
US4347566A (en) Data processor with register file and arithmetic logic circuit on one chip and register means directly connected to the chip
EP0207666B1 (en) Method and means for moving bytes in a reduced instruction set computer
EP0010196B1 (en) Control circuit and process for digital storage devices
US4320454A (en) Apparatus and method for operand fetch control
JPS645330B2 (ja)
US4812971A (en) Central processing unit for a digital computer
US4309753A (en) Apparatus and method for next address generation in a data processing system
JPS623336A (ja) 条件付きブランチ方式
EP0374526A2 (en) Op branching for starting micro-routines

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees