JPH02240733A - 可変長命令アーキテクチャにおける複数の規制詞の復合方法及び装置 - Google Patents

可変長命令アーキテクチャにおける複数の規制詞の復合方法及び装置

Info

Publication number
JPH02240733A
JPH02240733A JP2021908A JP2190890A JPH02240733A JP H02240733 A JPH02240733 A JP H02240733A JP 2021908 A JP2021908 A JP 2021908A JP 2190890 A JP2190890 A JP 2190890A JP H02240733 A JPH02240733 A JP H02240733A
Authority
JP
Japan
Prior art keywords
specifier
register
specifiers
operand
instruction
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
JP2021908A
Other languages
English (en)
Inventor
David B Fite
ディヴィッド ビー ファイト
John E Murray
ジョン イー マーレイ
Tryggve Fossum
トリューグヴ フォッサム
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.)
Digital Equipment Corp
Original Assignee
Digital Equipment 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 Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of JPH02240733A publication Critical patent/JPH02240733A/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/30181Instruction operation extension or modification
    • G06F9/30192Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
    • 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/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • 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
    • 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
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3816Instruction alignment, e.g. cache line crossing
    • 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, look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding

Abstract

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

Description

【発明の詳細な説明】 〔関連出願〕 本発明が係る計算システムに関しては、本発明と同時に
出願された以下の合衆国特許出願にも記述されている。
エバンスら;ディジタルコンピュータのシステム制御装
置とサービス処理装置との間のインタフェース; アーノルドら:中央処理装置を有するマルチプロセッサ
システムのためにシステム制御装置をインタフェースす
る方法及び装置; ガブリアルドらニジステム主メモリををするマルチプロ
セッサシステムのためにシステム制御装置をインタフェ
ースする方法及び装置;D、ファイトら:パイプライン
化されたコンピュータシステムにおける可変数の潜在的
なメモリアクセス競合を解決する方法及び装置;D、フ
ァイトら:仮想命令キャッシュ再充填アルゴリズム; マーレイら:同−命令内のレジスタ規制詞及びレジスタ
変更規制詞のパイプライン処理;マーレイら:ディジタ
ルコンピュータのデータ依存性を解消する複数命令処理
システム;D、ファイトら:バイブラインプロセッサに
おける暗示規制詞の前処理方法及び装置;D、ファイト
ら二分岐予測; フォフサムら:ディジタルコンピュータのためのパイプ
ライン化された浮動小数点加算器:グルンドマンら:自
己刻時式レジスタファイル;ビーヴエンら;パイプライ
ン化されたコンピュータシステムにおいてエラーを検出
し訂正する方法及び装置: フリンら:マルチプロセッサシステムにおいてシステム
制御装置を使用して通信要求を調停する方法及び装置; E、ファイトら:マイクロコード化された実行ユニット
における並列動作を有する複数機能ユニットの制御法; ウェッブ・ジュニアら:仮想メモリシステムに基いて動
作するディジタルコンピュータの命令パイブライン内に
先取り命令を有するメモリアクセス例外の処理法; ヘザーリントンら:ディジタルコンピュータにおいて仮
想メモリアドレスから物理メモリアドレスへの変換を制
御する方法及び装置; ヘザーリントンら:エラー訂正能力を有するライトバッ
クバッファ; フリンら:マルチプロセッサにおいてシステム制御装置
を使用して通信要求を調停する方法及び装置; チナスワミら:マルチプロセッサシステム内のシステム
装置間のデータトランザクシラン用モジュラクロスバ相
互接続回路網; ポルツインら:入力/出力装置を有するマルチプロセッ
サシステムのシステム制御装置をインタフェースする方
法及び装置; ガブリアルドらニジステム主メモリを有するマルチプロ
セッサのシステム制御装置をインタフェースする手段と
共に使用するメモリ形態;及びガブリアルドらニジステ
ムモジュール間のドラム制御信号のエラーを検査する方
法及び装置。
〔発明の分野〕
本発明は、−船釣にはディジタルコンピュータに関し、
特定的にはパイプライン化された中央処理装置に関する
。特に、本発明はオペランドに対する演算を規定する演
算コード及びオペランドを位置付ける情報を提供するオ
ペランド規制詞を有する可変長命令を復号する命令デコ
ーダに関する。
(発明の背景〕 パイプライン化は、ディジタルコンピュータ内の中央処
理装置(CP U)の性能を高めることが立証された方
法である。パイプライン化されたCPUにおいては、複
数の機能ユニットが複数の命令に対する基本動作を同時
に実行する。パイプラインにおいては、データは全ての
段において同時に各段から次の段ヘシフトされる。シフ
トの時点には、各段がその基本動作を完了していること
が望ましい、もしシフトの時点にある中間の段がその割
当てられたタスクを完了できなければ、少なくともそれ
に先行する段の機能を停止させるか、或はこの中間段が
データを受入れる準備が整うまでそれらの結果を一時的
に記憶させなければならない。その結果、全体のタスク
は同一の最小処理時間に係るものと、機能停止の因をな
しているものと同一の周波数に係るものとを有する基本
動作に分断されて効率的なパイプライン設計が平衡する
。換言すれば、他の動作が比較的ささいである場合、1
つの動作が処理時間を支配すべきではない。
しかしながら、従来のディジタルコンビエータにおいて
は、基本動作は“取り込み・実行”サイクル、及びその
命令取り込み、命令デコード、オペランド取り込み、実
行、及び結果記憶の分離した段によっである程度支配さ
れている。取り込み・実行サイクルの結果、各段はそれ
ぞれの命令に関するデータに関係づけられる。各段は典
型的な場合にはメモリアクセス動作に使用される単一の
クロックサイクル内に完了していることが望ましい。
即ちパイプライン化された中央処理装置においては、1
クロツクサイクル1命令の速度で命令を処理することが
望ましい。
種々の“可変長”命令を許容するコンピュータアーキテ
クチャでは、パイプライン化された中央処理装置の命令
復号段は典型的な命令を復号するために1クロックサイ
クル以上を必要としている。
このような“可変長”命令は、オペランドに対して遂行
すべき動作を規定する演算コードとは無関係のアドレス
モードを指定するオペランド規制詞を有することが好ま
しい。
1クロツクサイクル1命令の速度で命令を処理する目的
は、命令フォーマット及びオペランド選択を規定してい
る“縮小命令セット”を有する最近のコンピュータアー
キテクチャを明確にするための主要因であった。新規シ
ステム及び応用に対してはコンビエータアーキテクチャ
を自由に選択したり或は変更することが可能であるが、
現存システム及び応用に対しては現存アーキテクチャを
用いて1クロツクサイクル1命令の速度で可変長命令を
処理できるようにプロセッサを改善することが望ましい
典型的な可変長命令シーケンスの解析によれば、最も屡
々使用される命令は多くとも2つの源オペランドと1つ
の宛先オペランドとを有している。
しかし、もし複数のメモリ規制詞が同時に復号されれば
メモリアクセスのための帯域中も対応して増加させる必
要があるから、源及び宛先の全ての考え得る組合せを同
時に復号することは望ましくない、現在ではメモリ帯域
中を増加させることは、それが途方もなく高価となるた
めに、実用化されていない。
別の解析によれば、どの規制詞も短リテラル或はレジス
タ規制詞ではない場合には、3つの規制詞を同時に復号
することによって完全並列復号方式の殆んど全ての便益
を得ることができることを発見した0例えば、命令バッ
ファ内の長リテラルをメモリ内の参照用データと同時に
参照することは可能ではあるが、長リテラル及びメモリ
参照源オペランドは同一の3規制詞命令内に屡々現われ
るものではない、更に、ある命令にとって2つのリテラ
ルを組合わせる必要はないために、同一の3規制詞命令
内に2つのリテラルを参照する規制詞は成長に現われな
い。従って、並列復号の問題は、多くとも1つの短リテ
ラル規制詞、2つの源レジスタ規制詞、及び1つの宛先
レジスタ規制詞、及び指定されたオペランドが命令或は
データメモリ内に位置付けされているような他の1つの
“複雑な”規制詞を含む3つの規制詞を同時に復号する
問題へと縮小されるのである。
典型的な命令内の規制詞のシーケンスを解析した結果、
3つの規制詞の同時復号は、これらのシーケンスを4つ
のケースの1つに属するものとして認識することによっ
て簡略化できることが分った。第1のケースでは、第1
バイトは短リテラル或はレジスタ規制詞であり、第2バ
イトは短リテラル、レジスタ規制詞、或は複雑な規制詞
に関する指標バイトであり、第3バイトは別の規制詞の
スタート(或は第2バイト位置にある指標バイトで始ま
る複雑な規制詞に関連する付加的バイト)である、他の
3つのケースでは複雑な規制詞は短リテラル或はレジス
タ規制詞に対して異なる位置にある。
命令バッファは、待ち行列の先頭に現命令の演算コード
を受け、また待ち行列内の後続バイト位置に規制詞を受
ける多重バイト先入れ先出し方式の待ち行列の形状であ
ることが好ましい、待ち行列の先頭の演算コードは、現
命令を実行するためのマイクロ命令を表わす“フォーク
アドレス1として使用するために実行ユニットへ導びか
れる。
現命令のために既に復号されている規制詞の数を表わす
ためのレジスタが設けられている。−群の規制詞が単一
のサイクルにおいて復号された後、未だに復号されてい
ない現命令に関連する規制詞があれば待ち行列内の先頭
の演算コードの次に移動させられ、命令の全ての規制詞
が復号されてしまうまでこの態様で復号が続行される。
命令デコーダは、命令に関連する規制詞の敗及び各規制
詞のアドレス型及びデータ型を指示し且つ待ち行列の先
頭の演算コードによってアドレスされる復号用RAMを
含むことが好ましい、既に復号されている規制詞の数は
、復号すべき次の3つの規制詞或は残りの規制詞のアク
セス型及びデータ型を表わす信号を選択するために用い
られる。
命令バッファ内の演算コードに続く各4バイトの最上位
4ピントは、復号された時に適用される4つのケースの
特定の1つを識別し、また復号すべき次の規制詞、及び
最初の規制詞に続く3バイトが現命令に関連する付加的
バイトの最初のバイトである場合には3つまでの他の規
制詞のアドレスモードを識別する。
命令バッファから同時に復号可能なオペランド規制詞の
敗及びバイトを決定するために、適用されるケース、現
在復号中の規制詞のデータ型、アドレスモード、及び命
令バッファからの有効データフラグを識別するデータは
複数の復号用トリー内で組合わされる。デコーダを通る
クリティカルパスは、復号用トリーの頂上にデータ型情
報を受けることによって短縮される。
適用すべき復号用トリーを決定するために、要求論理回
路は現在復号中の規制詞のアクセス型と、アドレスモー
ド及び復号に必要な(最大3つまでの)規制詞の数とを
組合わせて命令の復号を完成させる。必要な規制詞の数
は、その命令に関連する規制詞の数と先に復号された規
制詞の数との差(最大3に制限)によって与えられる。
要求論理回路は、アドレスモードとアクセス型とを比較
することによって、アドレス障害をも検出する。
並列バスが命令デコーダからのオペランドデータを次段
へ伝送する。これらのオペランドデータは、4バイトの
変位、6ビツトの短リテラル、2つの4ビツトの源レジ
スタ識別子、及び4ビツトの宛先レジスタ識別子を含む
、オペランドデータは、適用されるケースに従って命令
バッファから選択される。バスは、適用されるケース及
び実際に復号される規制詞の数に従ってセントされる有
効データフラグをも伝送する。変位に伴うのは、複雑な
規制詞のアドレスモードのための識別子及びペースレジ
スタ即ち指標レジスタである。この付加的な情報はオペ
ランド処理ユニットによって使用され、複雑な規制詞に
よって指定されるオペランドの位置が決定される。短リ
テラル及び複雑な規制詞の両者に伴うのは、演算コード
に続く規制詞のシーケンス内のそれらの位置を示す規制
詞の数である。
〔実施例〕
本発明の他の目的及び長所は、添付図面に基く以下の詳
細な説明から明白になるであろう。
本発明は種々の変更及び変形が可能であるから添付図面
は単なる例示にしか過ぎず、本発明はこれらの特定の形
態に限定されるものではな(、全ての変更、同等物、及
び変形をも包含することを理解されたい。
先ず第1図を参照する。第1図に示すディジタルコンピ
ュータシステムの一部は、主メモリ10゜メモリ・CP
Uインタフェースユニット11、命令ユニット12及び
実行ユニット13からなる少なくとも1つの中央処理ユ
ニソ)(CPU)を含む、このシステムにおいては、主
メモリ10を共用することによって付加的なCPUを使
用できることは明白である。
データ及びそのデータを処理するための命令は共に主メ
モリ10内のアドレス可能な記憶位置に記憶される。あ
る命令は、CPUが遂行すべき動作を符号化した形状で
規定する演算コード、及びオペランドを位置付けるため
の情報を提供するオペランド規制詞を含む0個々の命令
の実行は、複数の小さいタスクに細分される。これらの
タスクは、その目的に関して最適化された専用の、個別
の独立機能ユニットによって遂行される。
各命令は、最終的には異なる動作を遂行するが、各命令
を細分した多くの小さいタスクは全ての命令に共通であ
る。一般に、命令の取り込み、命令の復号、オペランド
の取り込み、実行、及び結果の記憶段階はある命令の実
行中に遂行される。従って専用ハードウェア段を使用す
ることによって、これらの段階はパイプライン動作内で
重畳させることが可能であるから、命令の総合スルニプ
フトが高められる。
パイプラインを通るデータ経路は、各パイプライン段の
結果を次のパイプライン段へ伝送するための関連レジス
タセットを含む、これらの転送レジスタは共通システム
クロックに応答してクロックされる。例えば、第1クロ
ツクサイクル中に、命令取り込み専用のハードウェアに
よって第1の命令が取り込まれる。第2クロフクサイク
ル中には取り込まれた命令が転送され命令復号用ハード
ウェアによって復号されるが、同時に次の命令が命令取
り込みハードウェアによって取り込まれる。
第3クロツクサイクル中には各命令はパイプラインの次
段ヘシフトされ、新しい命令が取り込まれる0以上のよ
うにしてパイプラインが充満された後の各クロックサイ
クルの終りには命令は完全に実行されているのである。
このプロセスは、製造環境における組立てラインに類似
している。各作業者は彼の又は彼女の作業卓を通過する
各製品に対して単一の仕事を遂行するように専任されて
いる。各仕事が遂行されるにつれて、製品は完成に近づ
いて行く。最終卓において作業者が彼に割当てられた仕
事を遂行する度に完成品が組立てラインから産出される
第1図に示す特定システムにおいては、インクフェース
ユニット11は主キャッシュ14を含む。
主キャッシュ14は、一般的には命令ユニー/ )12
及び実行ユニット13が主メモリ10のアクセス時間よ
りも早い速度でデータを処理することを可能ならしめる
ものである。このキャッシュ14は、データエレメント
の選択された事前に規定されたブロックを記憶する手段
と、指定されたデータエレメントへアクセスする要求を
翻訳バッファ15を介して命令ユニット12から受ける
手段と、データエレメントがキャッシュ内に記憶されて
いるブロック内にあるか否かをチエツクする手段と、指
定されたデータエレメントを含むブロックに関するデー
タがそのように記憶されていない場合に作動して指定さ
れたデータブロックを主メモリ10から読出してキャッ
シュ14内へ記憶させる手段とを含む、換言すれば、キ
ャッシュは主メモリへの“窓口”となり、命令ユニット
及び実行ユニットにおいて必要とされるデータを収容す
る。一般的にはキャッシュ14は主メモリ10よりも温
かに高速でアクセスされるから、主メモリはデータ処理
システムの平均性能を実質的に劣化させることなくキャ
ッシュよりも比較的遅いアクセス時間を有することが可
能である。従って、主メモリ10は低速て廉価なメモリ
エレメントからなることができる。
翻訳バッファ15は高速連想メモリであって、最も新し
く使用された仮想・物理アドレス翻訳を記憶する。仮想
メモリシステムにおいては、単一の仮想アドレスに対す
る参照は、所望情報を利用可能ならしめる前に若干のメ
モリ参照とすることができる。しかしながら、翻訳バッ
ファ15を使用する場合には、翻訳は単に翻訳バッファ
15内の“ヒツト”を見出すことに縮小される。
入出力(I 10)バス16は主メモリ10と主キャッ
シュ14とを接続し、コマンド及び入力データをシステ
ムへ送信し、出力データをシステムから受信する。
命令ユニット12は、主キャッシュ14から命令を取り
込むために、プログラムカウンタ17及び命令キャッシ
ュ18を含む。プログラムカウンタ17は、主メモリ1
0及びキャッシュ14の物理メモリ位置ではなく、仮想
メモリ位置をアドレスすることが好ましい、そのためプ
ログラムカウンタ17の仮想アドレスは、命令を検索可
能ならしめる前に主メモリ10の物理アドレスに翻訳し
なければならない、従ってプログラムカウンタ17の内
容はインタフェースユニット11に転送され、インタフ
ェースユニットll内の翻訳バッファ15がアドレス変
換を遂行する。命令は、変換されたアドレスを使用して
キャッシュ14内の物理メモリ位置から検索される。キ
ャッシュ14はデータ戻りラインを通して命令を命令キ
ャッシュ18に送る。キャッシュ14及び翻訳バッファ
15の構成及び動作の詳細に関しては、1980年、デ
ィジタルイクイップメントコーボレーシッン刊行のレヴ
イ及びエフハウスJr、のコンピュータプログラミング
及びアーキテクチャ、VAX−11の第11章(351
〜368ページ)を参照されたい。
大部分の時間、命令キャッシュ18はプログラムカウン
タ17によって指定されたアドレスに命令を予め記憶し
ており、アドレスされた命令を命令バッファ19内へ直
ちに転送できるようにしている。アドレスされた命令は
命令バッファ19から命令デコーダ20へ供給され、演
算コード及び規制詞の両者が復号される。オペランド処
理ユニット(OPU)21は指定されたオペランドを取
り込み、それらを実行ユニット13へ供給する。
0PU21は仮想アドレスをも発生する。即ち、0PU
21はメモリ源(読出し)及び宛先(書込み)オペラン
ドのための仮想アドレスを発生する。
メモリ読出しオペランドに関して0PU21は、これら
の仮想アドレスをインタフェースユニット11へ供給し
て物理アドレスに翻訳させる。これにより供給14の物
理メモリ位置がアクセスされ、メモリ源オペランドに関
連するオペランドが取り込まれる。
各命令においては、第1のバイトは演算コードを含み、
後続バイトは復号すべきオペランド規制詞である。各規
制詞の第1のバイトは、その規制詞のアドレス指定モー
ドを表わす0通常はこのバイトは半分に分割されており
、一方の半分がアドレス指定モードを指定し、他方の半
分がアドレス指定のために使用すべきレジスタを指定す
る。命令は可変長を有することが好ましく、1980年
12月23日付のストレッカらの合衆国特許4.241
,397号に記載されているように種々の型の規制詞を
同一演算コードと共に使用することができる。
命令処理の第1段階は、命令の“演算コード”部分を復
号することである。各命令の第1.の部分は、命令によ
って遂行すべき動作を指定する演算コード、使用される
規制詞の数及び型からなる。
復号は命令デコーダ20内において表引き技術を用いて
行われ、データ文脈(バイト、語等)、データ型(アド
レス、整数等)、及びアクセス指定モード(読出し、書
込み、変更等)が各規制詞毎に見出される。またデコー
ダは、源オペランド及び宛先オペランド規制詞が命令内
の何処に発生するかを決定し、これらの規制詞を0PU
21に送って命令の実行前に前処理させる。後刻、実行
ユニットは、命令演算コードでアドレスされる“フォー
クRAM”から得られた開始アドレスで始まる予め記憶
されたマイクロコードを実行することによって、指定さ
れた動作を遂行する。
命令を復号した後、0PU21はオペランド規制詞をバ
ーズし、それらの実効アドレスを計算する。このプロセ
スは汎用レジスタ(GPR)の読出し、及び自動インク
レメント或は自動デクレメントによるGPRの変更を含
む可能性がある0次でオペランドがこれらの実効アドレ
スから取り込まれ、実行ユニット13へ供給される。実
行ユニット13は命令を実行し、結果をその命令に関連
する宛先ポインタによって識別された宛先内へ書込む。
命令が実行ユニットへ供給される度に、命令ユニットは
、(1)実行ユニットレジスタファイル内の源オペラン
ドを見出し得る位置、及び(2)結果を記憶させる位置
に関するマイクロコードディスバッチアドレス及び−組
のポインタを送る。
実行ユニット内の一組の待ち行列23は、マイクロコー
ドディスバッチアドレスを記憶するためのフォーク待ち
行列、源オペランド位置を記憶するための源ポインタ待
ち行列、及び宛先位置を記憶するための宛先ポインタ待
ち行列を含む。これらの各待ち行列は多くの命令に関連
するデータを保持できる先入れ先出しバッファである。
実行ユニット13は源リスト24をも含む、源リストは
、GPHのコピーをも含むマルチボートレジスタファイ
ル内に記憶されている。即ち、源ポインタ待ち行列内の
エントリは、レジスタオペランドに関するGPR位置を
I旨し示しているか、或はメモリ及びリテラルオペラン
ドに関連する源リストを指し示すかの何れかである。イ
ンタフェースユニット11及び命令ユニット12は共に
エントリを源リスト24内に書込み、実行ユニット13
は命令の実行に必要なオペランドを源リストから読出す
、命令を実行するために、実行ユニット13は命令発行
ユニット28、マイクロコード実行ユニット25、演算
及び論理ユニット(ALU)26、及びリタイアユニッ
ト27を含む。
本発明はパイプライン化されたプロセッサに特に有用で
ある。前述の如く、パイプライン化されたプロセッサに
おいては、プロセッサの命令取り込みハードウェアは、
他のハードウェアが第2の命令の演算コードを復号し、
第3の命令のオペランドを取り込み、第4のを令を実行
し、第5の命令の処理済データを記憶している時に1つ
の命令を取り込むことができる。第2図は ADDL3  RO,BA12 (R1)、R2゜のよ
うな典型的命令に対するパイプラインを示す。
これはアドレス指定の変位モードを使用するロングワー
ド加算である。
この命令のパイプライン方式による実行の最初の段階に
おいては、命令のプログラムカウント(PC)を作成す
る0通常はこれは、プログラムカウンタを先行命令から
インクレメントさせるか、或は分岐命令のターゲットア
ドレスを使用することによって遂行する1次でPCはパ
イプラインの第2段階において命令キャッシュ18をア
クセスするために使用される。
パイプラインの第3段階においては、命令データはキャ
ッシュ18から利用可能となり、命令デコーダ20が使
用するか、或は命令バッファ19内にロードされる。命
令デコーダ20は詳細を後述するように、単一のサイク
ル中に演算コード及び3つの規制詞を復号する。RO及
びR2の番号はALU26へ送られ、R1の番号はバイ
ト変位と共に復号サイクルの終りに0PU21へ送られ
る。
段階4におイテ、0PU21は位置R1(7)GPRレ
ジスタファイルの内容を読出し、その値を指定された変
位に加算し、得られたアドレスを演算コード読出し要求
と共にアドレス生成段階の終りにインタフェースユニッ
ト11内の翻訳バッファ15へ送る。
段階5においては、インタフェースユニット11は第4
段階において生成したアドレスを選択して実行する。翻
訳バッファ15を使用して、インタフェースユニット1
1はアドレス翻訳段階中に仮想アドレスを物理アドレス
に翻訳する。次で物理アドレスはキャッシュ14をアド
レスするために使用され、パイプラインの段階6におい
て読出される。
パイプラインの第7段階においては、命令はALU26
に供給されて2つのオペランドに加えられ、結果はリタ
イアユニット27へ送られる。
段階4中に、R1及びR2のレジスタ番号及びメモリデ
ータに関する源リスト位置を指し示すポインタが実行ユ
ニットへ送られ、ポインタ待ち行列内へ記憶されている
。そこでキャッシュ読出し段階中に実行ユニットは源リ
スト内の2つの源オペランドを探すべく起動する。この
特定例においては実行ユニットはRO内のレジスタデー
タのみを見出すが、この段階の終りにはメモリデータが
到着し、レジスタファイルの無効となった読出しに置換
される。従って、命令実行段階中には両オペランドが利
用可能となる。
パイプラインのリタイア段階8においては、結果データ
はリタイア待ち行列内の次のエントリと対にされる。若
干のファンクシラン実行ユニットが同時にビジーとなり
得るが、単一のサイクル中に単一の命令のみをリタイア
させることができる。
図示のパイプラインの最終段階9においては、データは
実行ユニット13及び命令ユニット12の両者の中のレ
ジスタファイルのGPR部分内に書込まれる。
第3図は、第1図に示す中央処理ユニット(CPU)に
よって処理可能な典型的な命令30を示す、この命令は
、前記レヴイ及びエフハウスJr、の論文に記載のVA
X可変長命令アーキテクチャに対応する。命令30は1
バイト或は2バイトの何れかからなる演算コード31を
含む、もし第1バイト32が16進数のFDの値を有し
ていれば、それは倍長バイト演算コードとして認識され
る。それ以外では、命令デコーダ(第1図の20)は演
算コードが単一バイトのみを含むものとして認識する。
命令30は更に、演算コードに続いて6つまでの規制詞
を含む。
演算コードは、命令内にどれ程多くの規制詞が含まれて
いるかを示す。所与の演算コードに関連して使用される
規制詞は種々の属性及び異なる長さを有することができ
る。特定規制詞の属性は、規制詞の第1バイト内のアド
レス指定モードによって少なくとも部分的に決定される
。しかし、規制詞の許容される属性は屡々演算コードに
よって制限される。更に、1即値アドレス指定”として
知られる特定の種類のアドレス指定モードでは、規制詞
情報の長さは規制詞によって指定される“データ型”に
よって決定される。
第4図に特定可変長命令を示す。アセンブラ表記法では
この命令は“ADDL3RO,R4゜L”203(R2
)  ″と書かれる0機械コードでは、この命令は全体
を35で示す8バイトを含む。
第1バイトは16進数の23で表わされた演算コードで
あり、アセンプラニーモニックのADDL3 ’″に対
応する。この演算コードは、第10ングワードオベラン
ドが第20ングワードオペランドに加算され、ロングワ
ード結果が宛先に記憶されることを指示している。
演算コードに続くのは16進数の50の値を有する“レ
ジスタ規制詞”である。16進デイジフトの5は、規制
詞がレジスタ規制詞であることを表わし、16進デイジ
ツト0は指定されたレジスタがCPU内のRO汎用レジ
スタであることを示す。従ってこのレジスタ規制詞は、
第1源オペランドが汎用レジスタROの内容であること
を指定している。
レジスタ規制詞に続くのは16進数の04の値を有する
“短リテラル規制詞”である、短リテラル規制詞は第2
源オペランドに関する値4を指定する。
短リテラル規制詞の次は、加算演算の宛先を指定する“
複雑な規制詞°の第1バイトである。
16進デイジツトEは“ロングワード変位”アドレス指
定モードを表わし、このモードにおいては後続する4バ
イトが32ピントアドレス変位をペースレジスタの内容
の値に加算され複雑な規制詞によって指定されるアドレ
スを求めるものと解釈される。16進デイジツト2は、
汎用レジスタR2をペースレジスタとして使用すること
を表わす、従って複雑な規制詞は、演算コードによって
指示されたロングワード加算の和即ち結果が、16進の
203の値を汎用レジスタR2の内容に加算することに
よって計算されたアドレスのメモリ位置に記憶されるこ
とを示す。
第5図は、分岐変位ではないオペランド規制詞の第1バ
イトを復号するための復号表である。もしオペランド規
制詞の第1バイトの最上位2ビツトが共にOであればこ
のオペランド規制詞は単一の第1バイトからなり、この
バイトの最下位6ビツトは“短リテラル゛と呼ぶ6ビツ
ト値を指定するものとして解釈即ち復号される。
もしオペランド規制詞の第1バイトの最上位2ビツトが
Oでなく、このバイトが分岐変位の一部ではないものと
すれば、このバイトはCPU内の16の汎用レジスタR
O乃至R15の中から指定された1つの汎用レジスタに
関連する12の考え得るレジスタアドレス指定モードの
中の特定の1つとして復号される。このバイトの最上位
4ピント(レジスタモードフィールドを構成する)はア
ドレス指定モードを表わすものとして復号され、最下位
4ビツト(汎用レジスタアドレスフィールドを構成する
)は16の汎用レジスタの中の特定の1つをアドレスす
るために使用される。
もしレジスタモードフィールドが16進値の4を有して
いれば“指標モード“であることを表わす、このモード
ではレジスタアドレスフィールドによってアドレスされ
る汎用レジスタの内容の値にオペランドのバイトの大き
さが(例えばバイト、語、ロングワード、クワッドワー
ド、オクタワードのデータ型に対して1.2.4.8或
は16が)乗じられ、和は直後の複雑な規制詞に対して
遂行されるアドレス計算の一項として含まれる0次のバ
イトは16進数の6乃至Fの値を有するレジスタモード
フィールド、及び複雑な規制詞のためのペースレジスタ
をアドレスするレジスタアドレスフィールドを有してい
なければならない。
もしレジスタモードフィールドが16進数の5の値を有
していればその規制詞は“レジスタ規制詞”であり、オ
ペランド値はレジスタアドレスフィールドによって示さ
れた汎用レジスタ内に見出されるか、或はその規制詞が
命令の宛先のためのものであればその規制詞は結果をレ
ジスタアドレスフィールドによって示された汎用レジス
タ内に記憶させることを指定する。
レジスタモード6.7及び8の各場合には、指定された
レジスタはオペランドに関するメモリアドレスを包含す
る。源オペランドの場合にはオペランド値はこのメモリ
アドレスから読出され、宛先オペランドの場合には結果
がこのメモリアドレスに書込まれる。モード6において
は指定されたレジスタはオペランドのアドレスを包含す
る。レジスタモード7においては指定された汎用レジス
タの内容はアドレスを計算する前にデクレメントせしめ
られ、モード8においては指定された汎用レジスタの内
容はレジスタがアドレスを計算するために使用された後
にインクレメントせしめられる。
モード10乃至15は各種の“変位モード°である、変
位モードにおいては、モード10,12及び14におい
てそれぞれバイト、語、ロングワードを構成可能な変位
値が指定された汎用レジスタの内容に加算されてオペラ
ンドアドレスが求められる。オペランドはモード11.
13及び15においても同様に決定されるが、変位値と
汎用レジスタの内容との和が、オペランドを見出し得る
メモリアドレスを識別する。
モード8乃至15においては、オペランド規制詞の第1
バイトのレジスタアドレスフィールドは、プログラムカ
ウンタであるレジスタR15を含むどの汎用レジスタを
も指定することができる。モード8及び9の場合、もし
プログラムカウンタがアドレスされればプログラムカウ
ンタ自体の値がインクレメントせしめられてプログラム
の実行が命令の流れの中に配置されているオペランドデ
ータ或はオペランドアドレスを飛越える。従って、復号
される命令は、プログラムカウンタがアドレスされるモ
ード8及び9におけるこれらの特別なケースを認識しな
ければならない。モード8におけるこの特別なケースは
“即値”アドレス指定モードとして知られており、モー
ド9の場合には“絶対”アドレス指定”モードとして知
られている。詳述すれば、モード8及び9が汎用レジス
タ0乃至14の何れかに関連して復号された時、次の規
制詞或は次の演算コードはモード及び汎用レジスタを指
定するバイトの直後に現われる。しかし即値モードの場
合には、即値データのバイトの数が現われ、このバイト
数は規制詞のデータバイトによって決定される。
第6図は命令デコーダ20への、及び命令デコーダ20
からのデータ経路の詳細を示す。複数のオペランド規制
詞を同時に復号するために命令バッファ19は、復号さ
れる命令の9バイトまでの値を伝送するデータ経路(全
体を40で示す)によって命令デコーダ20に連結され
ている。しかし各バイトには、バイト内の単一のビット
エラーを検出するためのパリティピット、及び命令バッ
ファが実際にプログラムカウンタ(第1図の17)から
の要求に従って命令キャッシュ(第1図の18)からの
データで満たされているか否かを表わす有効データフラ
グ(I有効)を伴っている。
命令デコーダは、命令バッファ19内の有効データの量
に依存して可変数の規制詞を復号する。即ち、命令デコ
ーダはを効データフラグを調べて復号可能な規制詞の数
を決定し、それらを単一のサイクル中に復号する。実際
に復号される規制詞の数に従って命令デコーダは、命令
バッファ19からバイトを除去するために、復号される
バイトの数を決定する。第6図に示すように、命令バッ
ファ19には選択された数のバイトを命令バッファ19
内へ、及び命令バッファ19外へシフトさせる手段が付
随している。このシフト手段は、併合用マルチプレクサ
22と共に命令バッファ19からのデータを再循還させ
るか1.或はシフトさせるようになっているシフタ33
を含む、命令バッファはデータラッチとして動作し、C
PUのシステムクロックによるクロッキングに応答して
データを受ける。命令デコーダは、各サイクルの終りに
命令バッファ外ヘシフトさせるバイトの数を指定する数
をシフタ33へ送信する。
命令バッファ19は、命令に典型的に見られる種類の少
なくとも3つの規制詞を保持するのに充分な大きさであ
る。命令デコーダ20は、もし命令バッファのバイトO
位置が演算コードを保持し、命令の他のバイトを命令バ
ッファ19内へ及び命令バッファ19外へシフトされる
のであれば、若干簡略化できる。実際には、命令バッフ
ァは演算コードをバイトθ内に保持し、バイト1乃至8
に対しては先入れ先出しバッファとして機能する。
また命令デコーダは、システムクロックの各サイクル中
に単一命令に関する規制詞だけを復号するものと仮定す
れば、簡略化できる。従って、ある命令に関する全ての
規制詞が復号されたあるサイクルの終りに命令デコーダ
は、演算コードを命令バッファのバイトO位置からシフ
トさせて次の演算コードをそのバイト0位置に受入り可
能ならしめるために、シフタ33に“演算(OP)コー
ドシフト”信号を送信する。
命令キャッシュ(第1図の18)は命令データを複数バ
イトのデータブロックで送受するようになっていること
が好ましい、またこのブロックの大きさは、これらのブ
ロックがプログラムカウンタ(第1図の17)から与え
られるアドレスのある数の最上位ビットによって指定さ
れるメモリアドレスを有するように2つの幕とすること
が好ましい、従って、命令バッファからの演算コードの
アドレスはブロック内の種々の位置に現われる。
命令バッファのバイト0に、キャッシュからの命令デー
タのブロック内の任意バイト位置に現われ得る演算コー
ドをロードするために、循還ユニット34が命令キャッ
シュ18から命令バッファ19へのデータ経路内に配置
されている。循還ユニット34は、シフタ33と同様に
クロスバスイッチからなる。
命令バッファのバイト0位置に、命令キャッシュからの
命令の流れの中の演算コードをロードするために、併合
用マルチプレクサ22はシフタ33からの選択された数
のバイトと併合すべき循還ユニット34からのバイトの
数を選択する選択入力を有している。即ち、併合用マル
チプレクサはデータ人力A0〜A3を有し、指定された
“シフトさせる数”mに応答して入力A6.・・・A 
a −mにシフタからのデータを受入れ可能ならしめ、
また入力B I−+aや1.・・・、8口に循還ユニッ
トからのデータを受入れ可能ならしめる0図示の如く、
このマルチプレクシング機能は、関連するA入力或は関
連するB入力の何れかを選択するための個々の選択人力
So〜S、を有するマルチプレクサ22によって、及び
これらの個々の選択人力S o ”’ S mを、“シ
フトさせる数”及び命令バッファ内の有効データフラグ
に応答して決定される命令バッファ19内の有効エント
リ (IBUF有効カウント29)の数に応答して可能
にすることによって与えられる。制御論理ユニット38
も“演算コードシフト”信号に応答するから、“演算コ
ードシフト”信号が発生した時にシフトさせるべきバイ
トの合計数は演算コードを含み、“演算コードシフト”
信号が発生しない時には命令バッファからの演算コード
はシフトの数には関係な(併合用マルチプレクサ22の
へ〇人カへ伝送される。
第6図に示す如く、命令キャッシュからのデータ経路は
8つの並列バスを含み、命令データの各バイト毎に1つ
のバスが割当てられている。循還ユニットは循還ユニッ
ト制御論理回路39から供給される“循還値”信号に応
答する0wi還ユニット制御論理回路39は“シフトさ
せる数”及び“I BUF有効カウント” (これらは
−緒になって新しい命令データの最初の到来バイトを命
令バッファ工9内の何処に配置すべきかを指示する)、
及び命令キャッシュ及びキャッシュと循還ユニット34
との間の関連バッファリングによって供給される“I 
BEX有効カウント”の値(これは新しい命令データの
最初の到来バイトが何処から得られるかを指示する)に
応答する。命令キャッシュ及び関連バッファリングの好
ましい構造及び動作、及びこの場合における循還ユニッ
ト及び併合用マルチプレクサの制御の詳細に関しては前
記り、ファイトらの合衆国特許出願“仮想命令キャッシ
ュ再充填アルゴリズム”を参照されたい。
命令バッファを最初にロードする時、及びその後の若干
の時点には、命令バッファ19への転送の目的で循還ユ
ニット34が受けるデータの若干を無効とすることが可
能であることに注目されたい、即ち、8バイトのデータ
をキャッシュから読出して直接循還ユニット34へ転送
するものとし、またロードすべき演算コードがブロック
内の中央バイト位置に現われるとすれば、演算コードよ
り上位のアドレスの命令データは転送に有効となるが、
演算コードより下位のアドレスの命令データは転送に関
して無効となる。従って、演算コード及びその直後のバ
イトは有効となるが、他のバイトは無効となり得る。そ
の結果、有効データフラグはそれに伴うバイト位置及び
初期にロードされた演算コードまでの全ての下位番号バ
イト位置が有効であるか否かを表わす。
演算コードが命令バッファ19のパイ)O位置内ヘロー
ドされると、命令デコーダ20はそれを調べ、対応マイ
クロプログラム“フォークアドレス”を待ち行列(第1
図の23)内のフォーク待ち行列へ送る。また命令デコ
ーダは命令バッファ内の他のバイトも調べて3つまでの
オペランド規制詞を同時に復号できるか否かを決定する
。命令デコーダは更に、源オペランドを宛先オペランド
から分離する。即ち、システムクロックの単一サイクル
中に、命令デコーダは2つの源オペランド及び1つの宛
先オペランドまでを復号することができる。各サイクル
毎に源オペランド或は宛先オペランドが復号されたか否
かを表わすフラグは、命令デコーダ20から転送バス(
TR)を通して0PU21へ送られる。命令デコーダ2
0は1サイクル当り3レジスタ規制詞までを同時に復号
できる。あるレジスタ規制詞が復号されると、そのレジ
スタアドレスは転送バス(TR)上に印加され、0PU
21内の転送ユニット30を介して源リスト待ち行列(
第1図の23)へ送られる。
命令デコーダ20は1サイクル当り1短リテラル規制詞
を復号することができる。VAX命令アーキテクチャに
よれば、短リテラル規制詞は源オペランド規制詞でなけ
ればならない。命令デコーダが短リテラル規制詞を復号
すると、短リテラルデータは拡張バス(EX)を介して
0PU21内の拡張ユニット31へ送られる。拡張ユニ
ット31は6ビツトの類リテラルを、命令演算コードが
要求するような規制詞のデータ型に必要な大きさまで拡
張し、この拡張は拡張を保持するのに充分な最小数の3
2ビツトロングワードとして配置される。換言すれば、
バイト、語、ロングワード或は単一の精密浮動小数点デ
ータ型に対しては1つの32ビツトロングワードが必要
であり、クワッドワード或は倍長精密小数点データ型に
対しては2つの32ビツトロングワードが必要であり、
オクタワードデータ型に対しては4つの32ビツトロン
グワードが必要である。これらの32ビツトロングワー
ドは源リスト(第1図の24)へ伝送され、オペランド
に対応する源リストポインタが源リストポインタ待ち行
列(第1図の23)内に配置される。
命令デコーダ20は1サイクル当り1つの複雑な規制詞
を復号することができる。複雑な規制詞データは命令デ
コーダ20から汎用バス(CP)を通して0PU21内
の汎用ユニット32へ伝送される。汎用ユニット32は
普通のオペランド処理ユニットと同様に動作し、規制詞
のデータ型に対応する選択された数の2進位置だけ指標
レジス°りの内容をシフトさせ、シフトさせた値をペー
スレジスタの内容及び複雑な規制詞の変位に加算する。
もし規制詞が“アドレス”アクセス型を有していれば、
このようにして計算された値は源リスト内に配置され、
対応する源リストポインタが源リスト待ち行列(第1図
の23)へ送られる。そうではなく、複雑な規制詞が源
オペランドを指定していれば、メモリは源オペランドを
入手するために計算値によってアドレスされるか、或は
据置きモードの場合には源オペランドのアドレスが入手
される6次で源オペランドは源リスト(第1図の24)
内に配置され、対応する源リストポインタが源リストポ
インタ待ち行列(第1図の23)内に配置される。もし
複雑な規制詞が宛先オペランドを指定していれば、計算
値は宛先待ち行列(第1図の23)内に配置される。
命令に関する全ての規制詞が復号されてしまうと、命令
デコーダ20はシフタ38へ“演算コードシフト”信号
を伝送する。
第7図にGPババスためのフォーマットの詳細を示す、
CPババス1ビツトの“有効データフラグ(VDF)を
汎用ユニット32へ送り、システムクロックの先行サイ
クル中に複雑な規制詞を復号したか否かを通知する。ま
た1ビー/ )の“指標レジスタフラグ(IRF)をも
伝送して複雑な規制詞が指標レジスタを参照するか否か
を通知する。参照される指標レジスタは、CPババス通
して伝送される4ビツトの指標レジスタ番号によって指
定される。更にCPババス、複雑な規制詞の規制詞モー
ドを指示する4ビツト、ペースレジスタ番号を指示する
4ビツト、及び複雑な規制詞によって指定される何等か
の変位を含む32ビツトをも伝送する。
またCPババス、現命令に関連する規制詞のシ−ケンス
内の複雑な規制詞の位置を指示する3ビツトの規制詞の
数も伝送する。この規制詞の数によって汎用ユニット3
2は、演算コードバイトの復号から特定のオペランドに
関連するアクセス及びデータ型を選択することが可能に
なる。従って、汎用ユニット32を第6図の拡張ユニッ
ト31及び転送ユニット30からやや独立して動作させ
ることができる。即ち、汎用ユニット32は、汎用ユニ
ット32がオペランドを決定するために1サイクルより
多くのサイクルを必要とするか否かを指示する独立した
機能停止信号(OPU機能停止)を発生する。
第8図に拡張バス(EX)のためのフォーマットを示す
。拡張バスは1ビツトの有効データフラグVDF、6ビ
ツトの短リテラルデータ、及び3ビツトの規制詞の数を
伝送する。規制詞の数は現命令に続く規制詞のシーケン
ス内の短リテラル規制詞の位置を指示し、拡張ユニット
31が演算コードバイトの復号から関連データ型を選択
するために使用する。従って、拡張ユニット31はかな
り独立的にも動作可能であり、拡張ユニット31が短リ
テラル規制詞を処理するために1サイクルより多くのサ
イクルを必要とするか否かを表わす短リテラル機能停止
信号(SL機能停止)を供給する。
第9図は転送バス(TR)のためのフォーマットを示す
、TRバスは第1源バス35、第2源バス36、及び宛
先バス37を含み、各バスはそれぞれ有効データフラグ
(VDF)、レジスタフラグ(RGF)及びレジスタ番
号を伝送する。レジスタフラグは、対応するレジスタ規
制詞が復号されるとセントされる。また、複雑な規制詞
或は短リテラル規制詞が復号されると、第1源バス、第
2Bバス或は宛先バス内の有効データフラグの中の関連
するフラグがセットされ、源オペランド或は宛先オペラ
ンドのための源リストポインタ待ち行列或は宛先待ち行
列へのデータ経路内のスペースを留保するために関連レ
ジスタフラグがクリヤされる。
第10図はシステムクロックの1サイクル中に命令復号
のために遂行される動作の流れ図である。
第1段階41においては倍長バイト演算コードフラグが
検査され、倍長バイト演算コードの第1バイトが先行サ
イクル中に検出されたか否かが判定される。もし否であ
れば、段階42において命令デコーダは、命令バッファ
のバイト0位置が倍長バイト演算コードの第1バイトを
含むか否かを検査する。VAX命令においては、倍長バ
イト演算コードの第1バイトは16進数のFDなる値を
有している。もしこの値が検出されれば段階43におい
て、倍長バイト演算コードフラグが次のサイクルの便益
のためにセットされ、演算コードの第1バイトを命令バ
ッファから退去させ、演算コードの第2バイトをバイト
0位置に受入れるようにシフトさせる数に等しい“シフ
トさせる数”を伴う“演算コードシフト”信号をシフタ
(第6図の33)へ送る。
バイト0が倍長バイト演算コードを表わしていなければ
、段階44において3つまでの規制詞を同時に復号する
。同時復号の好ましい方法に関しては、第11図を参照
して詳述する。規制詞を復号した後、段階45において
デコーダはその演算コードに関する全ての規制詞が復号
されたか否かを判定する。この目的のために、デコーダ
は現演算コードに関して先行サイクルにおいて復号され
た規制詞の総数を記憶するレジスタを有している。
このレジスタの値を“完了した規制詞”と呼ぶ。
従って段階45においてはデコーダは、その演算コード
に関する規制詞の数(規制詞カウントと呼ぶ)と、“完
了した規制詞”と段階44において復号された規制詞の
数との和とを比較することによって、その演算コードに
関連する全ての規制詞が復号されたか否かを判定してい
るのである。
その演算コードに関する全ての規制詞が復号されていれ
ば、段階46においてデコーダはシフトさせるバイトの
数が、1プラス段階44において復号された規制詞バイ
トに等しいことを決定する。
1を付加するのは、新しい演算コードを命令バッファ内
ヘシフトさせるためである。このようにするために、命
令デコーダは1演算コードシフト”信号を発生する。倍
長バイト演算コードフラグはこの時点でクリヤされ、ま
た“完了した規制詞゛は0にセットされて次のサイクル
中の次の命令の復号開始の準備を整える。
段階45において、もしその演算コードに関して付加的
な規制詞を復号すべきことが判定されれば段階47にお
いてシック(第6図の33)に、段階44において復号
された規制詞バイトの数に等しい“シフトさせる数゛が
送られる。また“完了した規制詞゛は段階44において
復号された規制詞の数だけインクレメントされる。これ
により現サイクル中の復号が完了する。
第11図に3つまでの規制詞を同時に復号する方法の流
れ図を示す、第1段階51においてデコーダは、先行サ
イクル中に“拡張即値”アドレス指定モードを検出しそ
れによって命令バシファ内の次の4バイトが拡張即値デ
ータとして適切に翻訳されたか否かを判定する。拡張即
値データが取り得る値に制限はなく、従ってレジスタ或
は短リテラル規制詞或はその他の種々のアドレス指定モ
ードの特性である値を取り得るから、この判定はクリテ
ィカルである。もし命令バッファがかかる拡張即値デー
タを含むかも知れなければ、デコーダは段階52におい
てバイト1乃至4が有効データを含むか否かを判定する
。もし否であれば、命令デコーダは段階53において規
制詞バイトの数を表わすシフトカウント(SC)及びこ
のサイクルに復号された規制詞の数を表わす復号された
規制詞の数(N)を決定する。これらのパラメタは0に
セットされるから、実際には命令デコーダは現サイクル
中は機能停止する。
段階52においてバイト1乃至4が有効であると判定さ
れれば、これらのバイトは復号することができる0段階
54において、規制詞バイトに関するシフトカウント(
S C)は4にセットされ、復号された規制詞の数は0
にセットされる0次で段階55において、拡張即値デー
タのロングワードが復号されたことを指示するためにロ
ングワードカウントがデクレメントせしめられる。段階
56においては、このロングワードカウントがOと比較
され、拡張即値データの別のロングワードを復号する必
要があるか否かが判定される。もし0ならば現サイクル
における復号は完了である。
0でなければ、段階57において拡張即値規制詞の復号
が終了し、拡張即値フラグ(X 8 F)がクリヤされ
る。このフラグは、例えば拡張即値データが復号されつ
つある時に”演算コードシフト信号を禁止する。これは
、拡張即値モードが最初に検出された時に復号される規
制詞の数(N)の値を調整する必要をなくすための便宜
上行われるのである。
段階51において、もしデコーダが拡張即値データを期
待しなければ、段階58において演算コードの6アクセ
ス型1を調べて命令バッファ内のデータを分岐変位とし
て取扱うべきか否かを判定する0段階59において、命
令デコーダは次の規制詞のアクセス型を調べてそれが”
暗示゛規制詞であるか否かを判定する。
命令デコーダは複数の規制詞を復号する能力を有してい
るから、実行ユニットにマイクロコードシーケンスを実
行させて暗示規制詞を実現させるのではなく、暗示規制
詞のためのオペランドを生成せしめる方が極めて有利で
ある。これは特に、スタックポインタがインクレメント
或はデクレメントさせなければならない暗示規制詞であ
る場合に有利である。この場合には、16進数のEなる
ペースレジスタ番号と、7或は8なる規制詞モードがC
Pババス上発生し、汎用ユニット(第6図の32)によ
ってスタックポインタは自動的にインクレメント或はデ
クレメントせしめられる。スタック動作(例えば“ブツ
シュ”)は暗示スタックポインタオペランドを使用して
実現させることが可能であり、これらの動作は移動命令
と類似になって単一サイクル中に実行可能となる。この
ようなスタックレジスタ暗示オペランドを有するVAX
命令の完全リストを付録1に示す。これらの命令に関し
て、実行ユニットにスタックポインタをインクレメント
或はデクレメントせしめるのではなく、スタックポイン
タをGPババス上発生させることが好ましい。
段階60において命令デコーダは、命令バッファ内に有
効データが存在するものとして、現サイクル中に復号す
べき規制詞の最大数(3つまで)を決定する。要求する
規制詞の数が決定されると、命令デコーダは段階61に
おいて復号すべき規制詞の初期数及び現サイクルに関す
るシフトカラン) (SC)を決定する。これらの初期
値は、もし競合が検出されれば初期値を変化させること
ができる“命令的読出し競合”検出器によって使用され
る。
命令的読出し競合は、現命令に関して先に発生した規制
詞によって指定されたレジスタを直接的に、或は間接的
に参照する自動インクレメント規制詞、或は自動デクレ
メント規制詞が命令内に含まれていると発生する。命令
ユニット(第1図の12)による命令の前処理中の機能
停止を回避するために、通常はレジスタデータではなく
レジスタポインタが実行ユニットへ送られる。これは、
レジスタデータが命令復号時点に常に利用できるとは限
らないからである。またこれにより、3つのレジスタの
内容を送るのに必要な96本のラインではなく、12本
のデータラインを介して3つまでのレジスタ番号が同時
に伝送可能になる。しかし、もし命令的読出し競合が存
在すれば、競合中のレジスタ規制詞によって指定された
オペランド値はインクレメント或はデクレメントされる
レジスタの初期値であり、この初期値は実行ユニットが
命令を実行する時点までに変化させられよう。
好ましくは、命令デコーダを1サイクル当り1規制詞の
みを復号する特別なIRCモードに置くことによって競
合中のレジスタをインクレメント或はデクレメントせし
める前に適切な初期値を求め、もし復号中の規制詞がレ
ジスタ規制詞であれば指定されたレジスタの内容をCP
ババス介して汎用ユニットへ伝送して指定されたレジス
タの内容を入手し、それを実行ユニットへ伝送する。
第11図の流れ図に示すように、命令的続出し競合は現
サイクル中に復号できる規制詞の初期数を考慮しつつ段
階62において検出される。もし段階61において決定
された規制詞の初期数に関して命令的読出し競合が存在
すれば、段階63において1つだけの規制詞が要求され
ているとの仮定の下にこのサイクル中に復号される規制
詞の数(N)及びシフトカウント(S C)が選択され
る。
また、もしレジスタ規制詞が復号されるのであれば、T
Rバスを通してレジスタ番号を転送ユニット(第6図の
30)へ伝送する代りに、そのレジスタ規制詞がCPバ
バス通して汎用ユニット(第6図の32)へ送られるの
である。もし段階62において命令的読出し競合が検出
されないか、或は段階63において競合が解消されれば
、命令デコーダは段階64において復号中の何れかの規
制詞が“拡張即値°モードを有しているか否かを判定す
る。もし諾ならば、段階55及び56において使用され
た“ロングワードカウント”が段階65において拡張即
値規制詞のデータ型に従ってセットされる。もしデータ
型がクワッドワードであれば、拡張即値データクワッド
ワードの最初の4バイトを現サイクル中に復号し、クワ
ッドワードデータの最後の4バイトは次のサイクル中に
復号する必要がある。従ってロングワードカウントは1
にセットされて拡張即値データの1つの付加的ロングワ
ードを復号する必要があることを指示する。もし拡張即
値規制詞のデータ型がオクタワードであればロングワー
ドカウントは3にセットされて拡張即値データの3つの
付加的ロングワードを爾後のサイクル中に復号する必要
があることを指示する。また段階65においては“演算
コードシフト”信号は禁止される。拡張即値モードが段
階64において検出された場合には復号される規制詞の
数(N)を変化させる必要はないから、1演算コードシ
フト”信号は拡張即値データの最終ロングワードが復号
されるまで禁止される。そうでない場合には、もしその
拡張即値規制詞が現命令に関連する最終規制詞であれば
、現命令に関連する演算コードは命令バッファからシフ
トアウトさせられる。
復号される規制詞の数及びシフトカラカントが決定され
ると、段階66においてGPXEX、及びTRバス(第
7図乃至第9図)に関するフラグ及び規制詞情報が決定
される。最後に、段階67において規制詞情報はCPS
EX、及びTRバス上に供給される。これをもって現サ
イクルの復号手順は完了する。
第12図は命令デコーダ20の好ましい実施例のブロッ
ク線図である。倍長バイト演算コードを検出するために
、拡張演算コードデコーダ101が設けられており、こ
のデコーダは命令バッファのバイト0が16進数のFD
を有している場合にEXT信号を発生する。EXT信号
はフリップフロップ102によって表示される倍長バイ
ト演算コードフラグをセットするために使用される。ゲ
ート103及び104は、命令の全ての規制詞が復号さ
れた時、及び命令バッファが初期にロードされる時に倍
長バイト演算コードフラグを初期クリヤするために設け
られている。
演算コードを復号するために、組合せ論理ユニット10
5は倍長バイト演算コードフラグ及び命令バッファのバ
イト0の内容を受信する。各演算コード毎に論理ユニッ
トは、演算コードに後続する規制詞の数を表わす“規制
詞カウント”、及び各規制詞毎のアクセス型及びデータ
型を生成する。
デコーダ20は3つまでの規制詞を復号できるから、次
の3つの規制詞のアクセス型及びデータ型のみを復号す
ることが適切である。適切なアクセス型及びデータ型情
報を選択するために、各演算コード毎に考え得る6つの
各規制詞のアクセス型及びデータ型を受け、次の3つの
規制詞に関する情報を選択するマルチプレクサ106が
設けである。選択する位置は、レジスタ107によって
指示される完了した規制詞の数によって制御される。
現演算コード内の“規制詞カウント”即ち規制詞の数は
論理ユニット105から3ビツト2進減算器108へ送
られ、減算器は規制詞カウントから完了した規制詞の数
を減じて復号すべき残余の規制詞の数を決定する。復号
すべき残余の規制詞の数はコンパレータ109において
実際に復号された規制詞の数Nと比較され、現命令に関
連する全ての規制詞が現サイクルの終りまでに復号され
たか否かが決定される。しかし、もし最終規制詞が拡張
即値モードを有していれば、コンパレータ109はたと
えこの拡張即値モードの一部だけが復号されたとしても
活動信号を発生する。拡張即値モードは拡張即値検出器
110によって検出され、該検出器は“演算コードシフ
ト”信号を禁止する信号を発生する。この禁止信号はA
NDゲート111においてコンパレータ109からの出
力と組合わされ、“演算コードシフト“信号を発生させ
且つ倍長バイトフラグをクリヤさせる信号を発生する。
レジスタ107は次のサイクルの始めに、完了した規制
詞の数を指示するために3ビツト2進加算器113の出
力を受けるデータ入力を有している。加算器113はレ
ジスタ107のデータ出力を受け、この出力と現サイク
ル中に実際に復号された規制詞の数とを組合わせる。
現サイクル中に要求する規制詞の数を決定するために、
命令デコーダ20は要求論理ユニット114を含む、要
求論理ユニット114は、マルチプレクサ106からの
次の3つの規制詞の属性、及びモードデコーダ115か
らの情報を受ける。
モードデコーダ115は命令バッファ内の演算コードに
続く最初の4バイトのモードを復号する。
即ち、モードデコーダ115は第5図に示す表に従って
命令デコーダのバイト1乃至4の簡易な復号を遂行し、
それぞれの2進出力に1乃至4の各バイトがレジスタ規
制詞、短リテラル規制詞、指標レジスタ、複雑な規制詞
、絶対アドレス指定モードを有する(即ち、バイトが1
6進数の9Fの値を有する)複雑な規制詞、或は即値モ
ードを有する(即ち、関連バイトが16進数の8Fの値
を有する)複雑な規制詞であり得るか否かを指示する。
またモードデコーダ115はバイト1乃至4のシーケン
スを4つの基本ケースの中の特定の1つに属するものと
して認識する。これらのケースの詳細に関しては第21
図に基づいて後述する。
現サイクル中に復号可能な規制詞の数を決定する他に、
要求論理ユニットは命令バッファ内の最初の3バイトが
規制詞モードの許されるシーケンスを表わしているか否
かを決定する。もしシーケンスが許されざるものであれ
ば要求論理ユニットはアドレス指定障害信号を発生し、
この信号は命令デコーダを機能停止せしめるためにOR
ゲート116においてパリティエラー信号の如き他の障
害信号と組合わされる。ORゲートの出力はフリップフ
ロップ117に印加されてデコーダ障害信号を発生させ
る。この信号は、障害が実行ユニットによって認識され
た時に現プログラムの実行を中断させることができる。
デコーダは、フリップフロップ117が“再始動”信号
によってクリヤされるまで該フリップフロップによって
機能停止され続ける。別のORゲート118はデコーダ
障害信号と、ORゲート116の出力及び0PU21か
らの何等かの機能停止信号(OPU機能停止)とを組合
わせて命令デコーダを機能停止せしめる信号を供給する
。ORゲート116の出力及びデコーダ障害停止はAN
Dゲート119を禁止するためにも使用される。従って
ANDゲート119は命令が完全に復号されたか否かを
決定する。ANDゲート119の出力はレジスタ120
内にラッチされ、命令発行ユニット及びマイクロコード
実行ユニット(第1図の25及び28)へ伝送するため
に新しい有効フォークアドレスをフォーク待ち行列(第
1図の待ち行列23)へ伝送することを指示する信号と
なる。
要求論理ユニット114は、例えば命令バッファにおい
てレジスタモード、短リテラルモード或は指標モードを
有するバイトが指標モードを有するバイトの直後に続い
ていることを検出した時にアドレス指定障害信号を発生
する。換言すれば、指標モードを有するバイトに、複雑
な規制詞が後続していない場合にはアドレス指定障害信
号が発生するのである。また復号すべき規制詞が、“書
込み”アクセス型を有しているがその規制詞が短リテラ
ルモードを存している時にもアドレス指定障害信号が発
生する。
要求論理ユニットは、次の3つの規制詞の属性及び命令
デコーダ内のバイト1乃至3の考え得るモードに複雑に
依存する所定の復号用ケースを選択するために、復号さ
れる命令のアーキテクチャに関する情報を符号化する。
また要求論理ユニット114は、残余の規制詞の数が3
よりも少ない時には要求する規制詞の数を必要規制詞の
数に制限し、更にデコーダが機能停止の場合にはO規制
詞を選択する。必要規制詞の数は2つのORゲート12
1.122によって残余の規制詞の数から求められる。
また要求論理ユニットは、アドレス指定障害が存在する
時には0規制詞を要求する。
付録■はVAX命令を復号するための要求論理の真理値
表である。表は以下の欄を含む。
N:必要規制詞の数、 SF3、SF3、SPl:前記レビ及びエフハウスJr
、の文献の371ページに規定されている命令に関連す
る次の3つの規制詞のアクセス型、及び暗示読出し規制
詞及び暗示書込み規制詞をも含む、 R4、S4.14.R3、S3、■3、R2、S2、■
2、R1、Sl、■1:命令バッファ内の関連バイトが
レジスタモード、短リテラルモード或は指標モードを有
しているか否かを指定、REQ、?要求に関するケース
、 RAF ニアドレス指定障害。
復号する規制詞の初期数(N′)及び復号する規制詞バ
イトの初期数(SC’)は、シフトカウント論理ユニッ
ト123によって決定される。シフトカウント論理ユニ
ット123はモード情報、IRCサイクル信号、GP及
びSL機能停止信号、命令バッファからのバイト及び有
効フラグ、及び次の3つの規制詞のデータ型を受信する
。シフトカウント論理ユニットは種々のケースのための
複数の論理トリーからなる。これらのケースには、分岐
バイト(RIBB、R2BB、R3BB)或は分岐語命
令(RIBW、R2BW、R3BW)に関連する1、2
或は3規制詞を要求するケースが含まれる。更に、シフ
トカウント論理ユニットは、ある暗示規制詞を有するあ
る命令の1つの規制詞を要求するケース(RII)、及
びある暗示規制詞を有するある命令の2つの規制詞を要
求するケース(R2I)をも含む。また更に、シフトカ
ウント論理ユニットは、分岐変位或は暗示規制詞ではな
い1乃至3規制詞を要求する5つのケースをも含む。こ
れらのケースには、1つの規制詞を要求する1つのケー
ス(R1)、2つの規制詞を要求する2つのケース(R
2、R2H)、及び3つの規制詞を要求する2つのケー
ス(R3、R3XR)が含まれる。
R2)リーは、第1バイトがレジスタ規制詞でも短リテ
ラルでもなく、且つ第2規制詞が短リテラルであるべき
ではない場合に限り選択される。
この特別なケースは、第1バイト内に短リテラルが出現
した時に、要求論理ユニットに次のサイクル中にアドレ
ス指定障害信号(RAF)を発生可能ならしめるために
設けられているのである。換言すれば、要求ユニットは
、2つの規制詞を必要とし且つ第2規制詞が書込み或は
変更アクセス型を有している時にR2H)リーを選択す
る。これによりアドレス指定障害信号を発生する要求論
理ユニットは第1バイトのモードのみを注視すればよい
から、要求論理ユニットが簡略化される。同様にして、
R3XRトリーは最終規制詞がレジスタ規制詞である場
合に限って3つの規制詞を復号する。3つの規制詞が必
要である時には、要求論理ユニットは最初の2つのバイ
トがレジスタ規制詞或は短リテラル規制詞である場合に
限ってR3トリーを要求し、それ以外の場合にはR3X
Rトリーを選択する。
これらの各論理トリーは復号される規制詞の初期数(N
′)及び復号される規制詞バイトのシフトカウント(S
C′)を発生する。要求論理ユニット114はマルチプ
レクサ124及び125を動作させて要求論理トリーか
らN′及びSC′を選択させる。N′は命令内読出し競
合検出器126によって使用され、命令内読出し競合が
発生しているか否かが決定される。もし競合が発生すれ
ば、信号IRCが発生する。IRC信号及びX8F信号
は第3のマルチプレクサ126を動作させ、実際に復号
された規制詞の数N及び規制詞バイトの数SCを選択さ
せる。N−!J<0であり、SCがO或は拡張即値デー
タの4バイトを復号するための4の何れかである場合に
は、拡張即値信号X8Fが優先順位を有する。N及びS
Cが多くとも1つの規制詞を復号するために論理トリー
から選択される場合には、IRC信号が第2優先順位を
存する。
換言すれば、命令内読出し競合が検出されると、システ
ムクロックの各サイクル毎に1つの規制詞だけを復号す
るのである。もし初期に選択されたトリーが、例えばあ
るバイト分岐命令に関連する3つの規制詞を要求すれば
、命令内読出し競合が検出された時には先ずR1) リ
ーが選択され、次でR1トリーが再度選択され、最後に
R3BBトリーの代りにRIBBトリーが選択される。
シック(第6図の33)によってシフトさせるべき実際
のバイトの数は、加算器127において規制詞バイトシ
フトカウントSCに選択的に1を加算することによって
得る。
復号手順の最終段階は出力選択及び妥当性検査論理ユニ
ット128によって遂行される。この論理ユニット12
8は、現サイクル中に復号される規制詞に関するデータ
の命令バッファ内の位置を決定する。TRバスの場合、
第1源オペランドに関する情報は命令バッファのバイト
1から得られる。マルチプレクサ129は第2源規制詞
に関する情報を命令バッファから入手し、同様にマルチ
プレクサ130は何れかの宛先規制調に関する情報を入
手する。同様にしてマルチプレクサ131は命令バッフ
ァから何等かの短リテラルデータを入手する。汎用規制
詞に関する情報はシフタ132によって命令バッファ内
の連続バイトから入手する。暗示規制詞を前処理するた
めに、最後のマルチプレクサ133はペースレジスタと
してスタックポインタ(SP)を選択し、更に暗示読出
しのためのモード8或は暗示書込みのためのモード9の
何れかを選択する。
第13図はRIBB)リーのためのシフトカウント論理
回路の回路図である。この論理トリーは、例えば分岐命
令(VAXアーキテクチャにおけるBRB命令のような
)′0)バイト変位を復号する時に選択される。ゲート
141は命令デコーダ内のバイト1が有効である時にN
′及びSC′を共に1ならしめ、それ以外の場合にはN
′及びSC′を共に0ならしめる。命令バッファ内のバ
イト1は、その有効データフラグ〔I有効(1)〕がセ
ントされ且つ汎用ユニット(第6図の32)が機能停止
していない時に有効である。
第14図はRIBW論理トリーの回路図である。
この論理トリーは分岐命令(例えばVAXアーキテクチ
ャのBRW命令)の語変位を復号する場合に選択される
。もし命令バッファ内のバイト2が有効であればN′は
1でありSC′は2であり、そうでない場合にはN′及
びSC′は共に0である。命令バッファ内のバイト2の
妥当性は有効データフラグ〔I 有効(2)〕及びGP
  機能停止信号に従ってゲート142によって決定さ
れる。
第15図は1つの暗示規制詞を復号するためのR11)
リーのシフトカウント論理回路の回路図を示す。このト
リーは例えばサブルーチン命令からの戻りを復号する場
合に選択される。命令バッファ内には復号すべき明示規
制詞は存在しないから、シフトカウントはOである。も
し汎用ユニットが機能停止していれば復号された規制詞
の数N′は0であり、そうでない場合にはN′は1であ
る。従って、RII論理トリーはCP機能停止信号を反
転する単一のインバータ143を含む。
第16図は、復号される第2の規制詞が分岐命令に関す
るバイト変位である場合に選択されるR2BB論理トリ
ーの回路図である。この論理トリーが選択される場合に
は、バイト1はレジスタ規制詞或は短リテラルでなけれ
ばならず、またバイト2は変位である。もしバイト1が
短リテラルであり、また短リテラル機能停止が存在すれ
ば、これらのバイトは何れも復号できない。もし汎用ユ
ニットのみが機能停止し第1のバイトが有効であれば、
第1のバイトだけを復号できる。これらの決定は2つの
ゲート144及び145、及び1つのマルチプレクサ1
46によって行われる。
第17図は2つの規制詞、即ちレジスタ規制詞でなけれ
ばならない第1の規制詞及び語変位である第2の規制詞
を復号するために使用されるR2BW論理トリーの回路
図である。もし第3のバイトが有効であり汎用ユニット
が機能停止していないことをゲート147が検出すれば
、これら3つのバイトは全て復号される。そうでない場
合には、レジスタ規制詞は、もしそれが有効であれば復
号できる。ORゲート148及びマルチプレクサ149
は、この場合にN′及びSC′の正しい値を与えるべく
設けられている。
第18図はR21論理トリーの回路図である。
このトリーは第1のバイトがレジスタ規制詞或は短リテ
ラル規制詞であり、第2の規制詞を暗示とすべき場合に
選択される。もし第1のバイトが復号できないものであ
ることをゲート150及び151が検出すれば、N′及
びSC′は共に0である。暗示規制詞を汎用ユニットに
送ることができる場合には、換言すればGP機能停止信
号が発生していなければ、N′は2である。これらの場
合には、Nの正確な値はゲート152及び153によっ
て決定される。
第19図は、バイト1がレジスタ規制詞或は短リテラル
規制詞であり、バイト2がレジスタ規制詞であり、バイ
ト3がバイト変位である場合に使用されるR3BB論理
トリーの回路図である。全ての規制詞の長さは1バイト
であるから、N′はSC′に等しい。第3のバイトが有
効であり且つ汎用ユニットが機能停止していない場合に
限りN′は3に等しい、それ以外の場合には、第2のバ
イトが有効であり、且つバイト1が短リテラルでありま
た拡張ユニット(第6図の31)が機能停止しているこ
とが真でなければN′は2に等しい。
これらの場合、N′及びSC′の値はゲート154.1
55.156.157及び158によって決定される。
第20図は、バイト1がレジスタ規制詞或は短リテラル
であり、バイト2がレジスタ規制詞であり、バイト3及
び4が語変位である場合に使用されるR3BW論理トリ
ーの回路図である。これらの環境の下では、もしバイト
1が短リテラルであり、拡張ユニットが機能停止してい
れば、またそのような場合だけ、或はバイトが無効であ
ればN′及びSC′は0である。(もしバイト1が無効
であればバイト2及びバイト4も無効であることを思い
出されたい。)もしバイト1.2及び4が全て有効であ
り、機能停止が存在しなければN′は3に等しく、SC
′は4に等しい。それ以外の場合には、バイト4が無効
であるか或はもし汎用ユニットが機能停止していればN
′は2に等しく、SC′は2に等しい、またもしバイト
2が有効であればN′及びSC′は共に1に等しい。
これらの場合のN′及びSC′の値はゲート159.1
60.161.162.163及び164によって決定
される。
要求論理ユニット(第12図の114)及び拡張即値検
出器(第12図の110)は、分岐変位或は拡張即値デ
ータが命令バッファ内に発生するケースを処理する。こ
れらのケースを除いて、バイト1で始まる命令バッファ
内の3規制詞(多くとも1つの規制詞が複雑な規制詞で
ある場合)の正当なシーケンスは、第21図に示す4つ
の基本的ケースの1つに分類されることが分った。説明
の都合上、ロングワード変位を有する複雑な規制詞を示
す。
4つの基本的ケースは添字の2進数によって識別してあ
り、これらの2進数はモードデコーダ(第12図の11
5)が発生するケース選択信号の2進値を表わしている
。ケース、においては複雑な規制詞ペースレジスタはバ
イト1で始まり、ケース。、においては複雑な規制詞ペ
ースレジスタはバイト2であり、ケース。。においては
複雑な規制詞ペースレジスタはバイト3で始まり、ケー
ス、。
においては複雑な規制詞ペースレジスタはバイト4で始
まる。しかし、3つの規制詞が全てレジスタ規制詞であ
るか、或は1つの規制詞が短リテラルであり他がレジス
タ規制詞であることも可能であり、これはケース。。に
分類される。何れのケースにおいても、第3の規制詞が
短リテラルである場合には3つの規制詞を同時に復号す
ることはできない、3つの規制詞が同時に復号される場
合には、第3の規制詞は宛先規制調である。また、どの
短リテラル規制詞も拡張ユニットによって処理しなけれ
ばならず、どの複雑な規制詞も汎用ユニットによって処
理しなければならず、これらの各ユニットは1サイクル
1規制詞しか処理できないことから、サイクル当り多く
とも1短リテラル及び多くとも1複雑な規制詞しが復号
できない。
第21図に示す4つの基本的ケースは、バイト1.2及
び3が短リテラルモード、レジスタモード、或は指標モ
ードを有しているか否かによって区別することができる
。これは第22図の真理値表に示されている。ケース。
。においてはバイト1は短リテラルモード或はレジスタ
モードを有し、バイト2は短リテラルモード、レジスタ
モード或は指標モードを有し、バイト3は指標モードを
有していない。ケース。、においてはバイト1は短リテ
ラルモード、レジスタモード、或は指標モードを有し、
バイト2は短リテラルモード、レジスタモード、或は指
標モードの何れをも有さす、バイト3は如何なるモード
も有し得る。ケース、。においてはバイト1は短リテラ
ルモード或はレジスタモードを有し、バイト2は短リテ
ラルモード或はレジスタモードを有し、バイト3は指標
モードを有する。ケース1.においてはバイト1は短リ
テラルモード、レジスタモード、或は指標モードの何れ
をも有さず、バイト2及び3は如何なるモードをも有し
得る。
第23図は4つのケースを復号するための最適化論理回
路の回路図である。3人力NORゲート171はバイト
1が短リテラルモード、レジスタモード、或は指標モー
ドの何れをも有していないことを決定する。もし有して
いなければORゲート172及び173はケース、1を
指示する。有している場合には、3人力NORゲート1
74によってバイト2が短リテラルモード、レジスタモ
ード、或は指標モードの何れをも有していないことが検
出された時に限ってケース(c)と決定される。また、
ORゲート175によってバイト1がレジスタモード或
は短リテラルモードを有していることが検出され、OR
ゲート176によってバイト2もレジスタモード或は短
リテラルモードの何れかを有していることが検出され、
且つ3人力ANDゲート177によってバイト3が指標
モードを有していることが検出された場合に限ってケー
ス(1)と決定される。
複雑な規制詞に続くレジスタ規制詞或は短リテラル規制
詞を復号するためには、命令バッファにおける可変長レ
ベルに復号する必要がある。これらのレベルは第21図
に示されており、復号用論理回路に遅く現われる信号は
それらの信号が関係づけられている特定のレベルと共に
識別することができる。レベル1は、バイト1のペース
レジスタで始まる複雑な規制詞の復号に関連する。ある
複雑な規制詞の直後に続く短リテラル規制詞或はレジス
タ規制詞のレベルは、複雑な規制詞のレベルに続く添字
Aによって表わされている6時として、最終規制詞がレ
ジスタ規制詞である場合には、複雑な規制詞に続(2つ
の規制詞を復号することが可能である。最終のレベルは
複雑な規制詞のレベルに続く添字Bによって表わす、第
21図に、例えばケース、に示すように、短リテラル或
はレジスタ規制詞は、バイト1において識別されたペー
スレジスタを有する複雑な規制詞の長さに依存して、バ
イト2乃至6の何れかに出現し得るレベルIAにおいて
復号できる。同様に、レジスタ規制詞は複雑な規制詞の
長さに依存してバイト3乃至7に出現し得るレベルIB
において復号できる。
ケース。1においては複雑な規制詞はレベル2に復号さ
れる。複雑な規制詞の長さはその規制詞のモードによっ
て決定され、もしその規制詞が即値モードを有していれ
ば、それは復号中の命令に関連する規制詞のシーケンス
内のその複雑な規制詞の位置に伴うデータ型にも依存す
る。
即値モードを有する複雑な規制詞に続く規制詞を復号す
る際に生ずる特に厄介な問題は、命令に関連する規制詞
のシーケンス内の複雑な規制詞の位置が、ペースレジス
タを指定するバイトに先行するバイト内に指標レジスタ
が指定されているか否かに依存することである0例えば
、ケース。1においてもしバイト1が指標モードを有し
ていなければ、バイト2で始まる複雑な規制詞のデータ
型はシックとして動作するマルチプレクサ106によっ
て第2データ型が選択されるが、もし第1バイトが指標
モードを有していればバイト2によって指定されるペー
スレジスタを有する複雑な規制詞のデータ型はシフタに
よって第1データ型が選択される。従って、ケース。、
並びにケース@0における複雑な規制詞の長さは、ベー
ス宛先に先行する指標宛先の存否に依存することになる
。従って、復号用論理回路は、時には、レベル2.2A
或は2Bに復号するために、指標宛先がベース宛先に先
行するか否かを弁別しなければならない。
指標レジスタがベースに先行している場合にはこれらの
レベルは21,21A及び2IBとして識別される。複
雑な規制詞が絶対モード或は即値モードを有していない
場合には2I、2IA及び21Bレベルにある規制詞に
関する情報は2.2人及び2Bレベルにある規制詞に関
する情報と同一であろう。
ケース。。においては、バイト3はレジスタ規制詞を含
むことができる。このレジスタ規制詞はシーケンス内の
第3規制詞であるか、或はもしバイト2が指標モードを
有していなければ第3規制詞でもあり、或はもしバイト
2が指標モードを有していれば第2規制詞である複雑な
規制詞のためのベース宛先であり得る。従ってバイト3
はレベル3に復号される時にはレジスタ規制詞であり得
るが、レベル3Iに復号される時にはレジスタ規制詞で
はあり得ない。また31Aレベルにあるレジスタ規制詞
は、バイト3において指定されるペースを有する複雑な
規制詞に続いて復号することが可能である。
ケース、。においてはバイト3は常に指標モードを有し
ているから、レベル41への復号は第12図のシフタ1
06によって選択される第3のデータ型を有する複雑な
規制詞を復号するように行われなければならない。
要約すれば、4つの基本ケースに関する各複雑な規制詞
の位置は、命令バッファ内のそのペースレジスタ宛先の
バイト位置を示す数によって識別される。もし複雑な規
制詞に指標レジスタ宛先が伴っていれば、この数には添
字Iが付される。もし、短リテラル或はレジスタ規制詞
を複雑な規制詞の直後に同時に復号することが可能であ
れば、その位置は先行する複雑な規制詞のレベル及び添
字Aによって示される。もし、別の規制詞を複雑な規制
詞の後に復号可能であれば、その位置は先行するベース
規制詞のレベル及び添字Bによって識別される。
第24図は、第21図に示す4つの基本ケース及び種々
の復号のレベルに関して、初期に復号される規制詞の数
(N′)が如何にして決定されるかを示す真理値表であ
る。ケース。。及びケース。1は更に指標レジスタが複
雑な規制詞に指定されている、或は指定されていない2
つのサブケースに分割されている。規制詞の数が1より
も大きい何れかの特定レベルに復号するためには、表中
の許容された何れかより深いレベルへ復号可能であって
はならない、換言すれば、基本ケースの決定及びサブケ
ース内に指標レジスタが存在するか否かの膳酌に加えて
命令デコーダ内の論理回路は、適用可能なケース及びサ
ブケースに対する第24図の最深許容レベルに対応する
被要求数まで可能な限り多くのく例えば命令バッファ内
のデータの妥当性に依存する)規制詞を復号する。また
、指標レジスタを指定するバイトは、それに後続する複
雑な規制詞をも復号可能である場合に限って復号される
ことは明白である。
第25図は命令バッファ内に暗示規制詞及び分岐変位が
欠如している場合の3つの規制詞の一般的ケースに対し
て初期N′及びSC2を決定するための論理トリーの回
路図である。“ケース”はマルチプレクサ181の選択
入力を制御するために使用される。また各ケース毎にそ
れぞれマルチプレクサ182.183.184.185
が設けられており、これらは第24図に示す復号に許容
される各レベルに対応するN′及びSC2の値を受ける
入力を有している。またマルチプレクサ182〜185
はN′が0に等しく且つsc’が0に等しいケースに対
するO入力をも有している。
ケース。。及びケース。1に関しては、それぞれのマル
チプレクサ182及び183は8人力及びそれぞれ“指
標(2)”及び“指標(1)1によって制御される最上
位選択入力S2を有する。これらの1指標”入力は、命
令バッファ内のバイト2及びバイト1が指標モードを有
するか否かを表わしている。従って、マルチプレクサ1
82乃至185はマルチプレクサ181と組合って合計
6つの異なるケース及び各ケース毎に考え得る4つの組
合せを復号する。もし複雑な規制詞が即値モードを有し
ていなければ、4つの組合せは復号されるOllつ、2
つ、或は3つの規制詞の何れかに一致する。しかし−船
釣には複雑な規制詞の後のレベルにおいて復号される規
制詞の数は、その複雑な規制詞が拡張即値モードを有す
るか否かに依存する。これは、マルチプレクサ182乃
至185の選択入力S0及びS、を動作させる符号化論
理回路を簡略化するために行われるのである。
もし複雑な規制詞が拡張即値モードを有していることが
見出されれば、符号化論理回路は複雑な規制詞の後のレ
ベルまで復号できるものと信じ続けるが、復号する規制
詞の数N′は複雑な規制詞の規制詞位置に等しくセット
される。同様に、複雑な規制詞の後のレベルを表わすシ
フトカウントSC′は複雑な規制詞のためのシフトカウ
ントにセットされる。従って、たとえ符号化論理回路が
復号のために複雑な規制詞の後のレベルを選択したとし
ても、より深いレベルを表わすN′及びSC2の値はあ
たかも拡張即値モードを有する複雑な規制詞の後は復号
が許可されないかの如くに同一値を保つ、勿論、複雑な
規制詞が拡張即値モードを有していれば、より深いレベ
ルにおけるデータは拡張即値データを表わし、たとえモ
ードデコーダ(第12図の115)がこれらの拡張即値
データを短リテラル或はレジスタ規制詞であるものと信
じていてもレジスタ規制詞或は短リテラルとして復号す
ることはできない、前述の如く、拡張即値データ並びに
分岐変位は、それらが取り得る値に制限がないので、短
リテラル或はレジスタ規制詞のように見られる恐れがあ
る。
第25図においては、種々のケース及び組合せのための
シフトカウントに対して:GPSを前置して、指示され
たレベルに現われる規制詞に関する情報を指定し;R3
Lを前置して、指示されたレベルに現われるレジスタ規
制詞或は短リテラル規制詞に関する情報を識別し; R
EGを前置して、指示されたレベルに出現する何等かの
レジスタ規制詞に関する情報を表わしている。
復号が許容されるレベルを決定するために、マルチプレ
クサ182.183.184及び185の選択入力S1
及びS、をそれぞれ制御するエンコーダ186.187
.188及び189に適切な妥当性データが印加される
。ケース。。及びケース。1の場合には、指標モード信
号“指標(2)或は“指標(1)  ”によってそれぞ
れ制御されるマルチプレクサ190及び191が第24
図の表に示すサブケースのための3つの有効信号を選択
する。
第26図はエンコーダ186の回路図である。
もし入力Pa、P+及びP!が全て活動であれば選択出
力SI及びS6は共に活動である。3人力ANDゲート
192はこれら3つの全ての入力の一敗を検出し、OR
ゲート193及び194を付活して選択信号を発生させ
る。もし入力P0及びPlは共に活動であるがP!が非
活動であれば、2人力ANDゲート195がORゲート
194のみを付活するので出力S、のみが活動となる。
もしP、は活動であるがP、が非活動であれば、ゲート
196がORゲート193を付活し、ORゲート194
は非活動であるので出力S0のみが活動となる。もし3
人力Pl 、P、及びPtが全て非活動であれば、出力
S1及びSoは何れも非活動となる。
エンコーダ186乃至189、及びマルチプレクサ19
0及び191における遅延を排除するために、符号化論
理回路はマルチプレクサ182乃至185内に組入れる
べきである。これは第27図にケース。。の場合につい
て示されている。第25図のマルチプレクサ182に対
応する優先順位付はマルチプレクサ182′は6つのゲ
ート197.198.199.200.201、及び2
02を含み、これらのゲートの出力はORゲート203
によって総和される。第27図の各ゲートが各出力信号
N′及びSC′の各ビット毎のゲートに対応しているこ
と、及び多くの場合これらのゲートへの2進入力がO乃
至1の2進定数であるためにこれらのゲートが除去され
ることに注目されたい。
第25図の論理を実現するためには、第25図に規定さ
れている種々の復号レベルのための有効信号、数及びシ
フトカウントのような規制詞情報を決定する論理回路を
設ける必要もある。複雑な規制詞、或は複雑な規制詞後
のレベルにおいて復号される規制詞は、その複雑な規制
詞が絶対或は即値アドレス指定モードを有するか否かに
依存しよう。規制詞情報を規定するために、絶対モード
及び即値モードを特別なケースとして取扱い、規制詞情
報の記号表示の後にアポストロフィを付すことになる。
第28図に示すものは、例えば通常のケース、即ち関連
する複雑な規制詞が絶対或は即値アドレス指定モードを
有していない場合に復号される数規制詞である。この場
合には、規制詞の数の値はレベルIA及びレベル21A
では2、またレベルIB、2A、21B及び31Aでは
3になっている。
第29図乃至第38図は他のレベル及び組合せに対する
シフトカウント及び規制詞の数を規定する真理値表であ
る。第29図乃至第32図は関連する複雑な規制詞が即
値モード或は絶対モードの何れをも有していない通常の
ケースのための情報を提供し、第33図乃至第38図は
関連する複雑な規制詞が即値モード或は絶対モードを有
しているケースに対する真理値表である。周知のように
、これらの真理値表を実現するための論理回路は、論理
積機能を遂行する第ルベル及び論理和機能を遂行する第
2レベルのような2つのレベルのゲートからなることが
できる。
第39図乃至第41図は、第25図の優先順位論理回路
へ有効信号を供給するために、第42図の論理回路内に
おいて使用される有効信号を決定する論理回路を示すヶ
“REG有効(i)  ”信号は、命令バッファ内のデ
ータの1番目のバイトが有効レジスタ規制剖を表わして
いるか否かを指示する。“SL有効(i)  ”信号は
、命令バッファ内のデータのi番目のバイトが、拡張ユ
ニット(第6図の31)の機能停止によって復号が禁止
されることがない有効層リテラル規制詞を表わし得るか
否かを指示する。“R3L有効(i)”信号は、命令バ
ッファ内のデータのi番目のバイトが、拡張ユニットの
機能停止によって復号が禁止されることがない有効レジ
スタ規制詞或はを効短リテラル規制詞を表し得るか否か
を表わしている。
lが1に等しいケースは特別なケースとして取扱われ、
信号は第39図の論理回路を用いて決定される。命令レ
ジスタ内の第1データバイトは、それがレジスタモード
を有している時、それがデータの有効バイトである時、
そして汎用ユニットが機能停止している時の命令内読出
し競合サイクル中にデコーダが動作していない限り、復
号することが可能である。前述の如く、命令内読出し競
合が検出されると、レジスタ規制詞は転送ユニット(第
6図の30)の代りに汎用ユニット(第6図の32)に
よって処理される。これらの論理条件はゲート206及
び207によって決定される。
もし第1バイトが短リテラルモードを有している時、も
しその対応有効データフラグI有効(1)”が活動であ
り且つ拡張ユニットが機能停止していなければ、有効で
あると考えられる。これらの条件はゲート208によっ
て検出される。ORゲート209は第1バイトが有効レ
ジスタ規制詞或は有効層リテラル規制詞の何れかと考え
られるか否かを表わす信号“R3L有効(1)”を供給
する。
第40図は命令バッファ内のバイト2が有効レジスタ規
制詞或は有効層リテラル規制詞と考えられるか否かを決
定するための回路の回路図である。
バイト2がレジスタモードを有し且つバイト2に関連す
る有効データフラグがセットされている時には、バイト
2は有効レジスタ規制詞と考えられる。これはゲート2
11によって検出される。もしバイト2の有効フラグが
セットされ、バイト2が短リテラルモードを存し、バイ
ト1が短υチラルモードを有しておらず、且つ拡張ユニ
ットが機能停止していなければ、命令バッファ内のバイ
ト2は有効層リテラル規制詞であると見做される。
これらの条件はゲート212によって検出される。
ORゲート213は、命令バッファ内のバイト2が有効
レジスタ規制詞或は有効層リテラル規制詞の何れかであ
るか否かを決定する。
第41図は、命令バッファ内のバイト3乃至8が有効レ
ジスタ規制詞或は有効層リテラル規制詞と見做し得るか
否かを決定するための論理回路の回路図である。(これ
らの信号は、第25図の論理トリー内で使用される前に
第42図の回路によって更に審査される。)命令バッフ
ァ内のバイトlは、それがレジスタモードを有し且つそ
のバイトに対応する有効データフラグがセットされてい
れば、有効レジスタ規制詞である可能性がある。
これはゲー)214によって検出される。命令バッファ
内のバイトiは、対応有効データフラグがセットされ、
それが短リテラルモードを有し、拡張ユニットが機能停
止しておらず、且つバイト1或はバイト2が何れも有効
層リテラル規制詞でなければ、有効層リテラル規制詞で
あり得る。換言すれば、命令バッファ内のバイトiは、
もし現サイクル内にバイトlを復号することが不可能で
あれば、有効層リテラル規制詞であると見做すことはで
きない、これらの条件はゲート215及び216によっ
て検出される。ORゲート217は、命令バッファ内の
バイトiを有効レジスタ規制詞或は有効層リテラル規制
詞の何れかと見做し得るか否かを決定する。
第42図はある複雑な規制詞を有効と見做し得るか否か
を決定し、またある複雑な規制詞に続くバイトを有効レ
ジスタ規制詞或は有効層リテラル規制詞と考え得るか否
かを決定する回路の回路図である。−船釣には、汎用ユ
ニットが機能停止しておらず且つ複雑な規制詞の最終バ
イトの対応有効データフラグがセットされていれば、そ
の複雑な規制詞は有効であるものと考えられる。この例
外は、複雑な規制詞がレベル3において有効であること
を表わす信号が、バイト3が有効レジスタ規制詞である
か否かをも表わすことである。これは、バイト3がレジ
スタ規制詞である時にケース。。を復号するためになさ
れる。この特別なケースはORゲート221によって考
慮される。それ以外の場合には、対応有効データフラグ
のセットと汎用ユニットの機能非停止との一致をそれぞ
れのゲート222.223.224.225、・・・2
26によって検出する。複雑な規制詞の最終バイトの妥
当性条件を決定するために、その複雑な規制詞に関連す
るシフトカウント(GPSiSC)がマルチプレクサ2
27の選択入力へ供給される。
マルチプレクサ227はゲート222.223.221
.225、・・・、226の関連する1つを選択する。
同様にして、複雑な規制詞に関連するシフトカウントは
マルチプレクサ228の選択入力に供給される。マルチ
プレクサ228はシックとして機能し、複雑な規制詞に
続くバイト位置に対応する第41図からのレジスタ妥当
性或は類リテラル妥当性信号を選択し、また複雑な規制
詞に続く第2バイトに対応するレジスタ妥当性信号をも
選択する。更に、マルチプレクサ228は複雑な規制詞
に続くこれらのバイト内に包含される短リテラルデータ
及びレジスタアドレスをも選択し、第54図、第56図
及び第58図に基いて詳細を後述する回路によって最終
的にTR及びXLババス供給されるレジスタ規制詞或は
短リテラル規制詞に関するデータを発生する。レジスタ
データ及び短リテラルデータのフォーマントは第53図
に、またレジスタアドレスのフォーマットは第55図に
示す。
第43図は単一のサイクル中に即値アドレス指定モード
或は絶対アドレス指定モードを有する複雑な規制詞を含
む3つまでの規制詞を同時に復号するために規制詞の初
期数N′及びシフトカラン)SC’を決定するために使
用されるシフトカウント論理回路の回路図である。論理
ユニット231には第28図乃至第32図、及び第39
図乃至第42図の論理回路が組込まれ、通常のケースに
おける規制詞情報を提供する。別の論理ユニット232
は第33図乃至第42図に従って即値ケース或は絶対ケ
ースのための規制詞情報を決定する。
第25図の優先順位論理回路及びマルチプレクサが重複
使用されて論理ユニット233及び234を構成してい
る。論理ユニット233は複雑な規制詞が即値アドレス
指定モード或は絶対アドレス指定モードの何れをも有し
ていない通常の状態における4つの各基本ケース毎にN
′及びsc′を決定し、論理ユニット234は複雑な規
制詞が即値アドレス指定モード或は絶対アドレス指定モ
ードを有することが想定される4つの基本ケースのN′
及びSC′を決定する。これらの8つの考え得るケース
の特定の1つを選択するためにマルチプレクサ235が
設けられている。ある基本ケースは以上と同じ技法で選
択されるが論理ユニット233或は234の何れかから
の出力の選択は、その特定基本ケースにおける複雑な規
制詞が即値アドレス指定モード或は絶対アドレス指定モ
ードを有しているか否かを決定する関連ORゲート23
6.237.23B、239によって決定される。
VAXアーキテクチャの欠点は、即値アドレス指定モー
ド或は絶対アドレス指定モードを有する複雑な規制詞に
関連する規制詞情報が、その複雑な規制詞のデータ型の
関数であることである。復号論理回路及びマルチプレク
サ(即ちシック)(第12図の105及び106)にお
ける遅延がモードデコーダ(第12図の115)におけ
る遅延より塵かに大きいために、データ型は第43図の
シフトカウント論理回路が最後に受信する情報片である
。従って第43図のシフトカウント論理回路を通るいわ
ゆるクリティカルパスはデータ型情報の信号経路によっ
て決定される。このクリティカルパスを第44図に示す
GPS ’規制詞情報論理ユニット232においてデー
タ型は複雑な規制詞のシフトカウントGPS。
を決定する。cps、’はマルチプレクサ(即ちシフタ
)227.228の制御入力に印加されて3つまでの有
効信号Vを選択させ、有効信号■は優先順位エンコーダ
186.187.188或は189に印加される。これ
らのエンコーダはそれぞれマルチプレクサ182.18
3.184或は185を制御して4つの機能F、の中が
ら特定の1つを選択させ、結果C,を得る。第44図に
示すように、絶対モード或は即値モードを有する複雑な
規制詞に関する情報は、命令に関連する規制詞のシーケ
ンス内のその複雑な規制詞の位置に依存する。マルチプ
レクサ(第12図の106)は、復号すべき次の3つの
規制詞のデータ型を選択する。第44図において、指標
jはマルチプレクサ(第12図の106)からGPS’
規制詞規制ユニット232へ供給される3つのデータ型
の特定の1つを識別する。この指標jは、複雑な規制詞
に付随する指標規制詞が存在する時の命令バッファ内の
複雑な規制詞のペースレジスタのバイト番号指定とは異
なる。
例えば第33図と第35図とを比較されたい。
第33図の規制詞情報は指標レジスタが指定されない場
合に関し、第35図の規制詞情報は指標レジスタが指定
されている場合に関する。第33図及び第35図の真理
値表は、第33図においては複雑な規制詞のモードが命
令バッファのバイト1内のビット4によって表わされて
いるのに対して、第35図においては複雑な規制詞のモ
ードが命令バッファ内のバイト2のビット4によって表
わされていることを除けば、同一である。
第44図に示すように、即値モード或は絶対モードを有
する複雑な規制詞の場合に規制詞情報を決定するための
論理は、初めに指標レジスタが指定されているか否かに
従って複雑な規制詞のモードを決定することによって簡
略化することができる。この選択は論理ユニット即ちマ
ルチプレクサ233によって遂行される。第33図及び
第35図の真理値表を更に検討すれば、即値アドレス指
定モード或は絶対アドレス指定モードを有する複雑な規
制詞に関して異なる情報をもたらすデータ型には4つの
異なる組合せしか存在しないことが明白である。これら
4つの異なる組合せは、複雑な規制詞に続く変位、或は
ペースレジスタ指定に続く即値データが1.2.4或は
それ以上のバイトを有しているか否かを決定する。これ
ら4つの組合せは、第44図に示すゲート234.23
5.236及び237によって検出することができる。
即値モード或は絶対モードを有する複雑な規制詞の場合
に用いられるデータ型情報のクリティカルバスを短縮す
るために、第43図の回路を第45図の如く変更するこ
とが好ましい。絶対アドレス指定モード或は即値アドレ
ス指定モードの何れをも有していない複雑な規制詞の場
合のN′及びSC′を決定するために、規制詞情報論理
ユニット241及び第25図に対応するトリー論理ユニ
ット242を設けである。
第47図に基いて後述する規制詞セレクタ論理ユニット
243は、復号すべき次の3つの規制詞の何れかが絶対
アドレス指定モード或は即値アドレス指定モードを有す
る複雑な規制詞であるか否かを決定するために、及びこ
れらの規制詞の第1の規制詞を識別するために使用され
る。規制詞セレクタ論理ユニットはマルチプレクサ24
4を制御して、絶対モード或は即値モードを有する複雑
な規制詞が存在しない場合にはトリー論理ユニット24
2からN′及びSC′を選択させ、それ以外の場合には
絶対モード或は即値モードを有する第1の複雑な規制詞
に関連して決定されたN′及びSC′の値を選択させる
。第45図に示すように、例えば入力00は絶対モード
或は即値モードを存する規制詞が存在しない時にN′及
びSC′を選択し、入力01は第1規制詞が絶対モード
或は即値モードを有するものとして計算されたN′及び
SC′を選択し、入力10は第2規制詞が絶対モード或
は即値モードを有するものとして計算されたN′及びS
C′を受け、入力11は第3規制詞が絶対モード或は即
値モードを有するものとして計算されたN′及びSC′
を選択する。
3つの規制詞のシリーズにおける1つの複雑な規制詞の
考え得る各位置毎にマルチプレクサ245.246.2
47が設けられており、各マルチプレクサは複雑な規制
詞に関するモード情報及び指標レジスタの指定の有無に
基づく4つの組合せ毎に計算されたN′及びSC′の値
を選択する。
第44図と第45図とを比較すると符号化論理ユニット
即ちエンコーダ(186乃至189)をより低レベルの
マルチプレクサ及びシック(227,228)の前にブ
ツシュすることによってクリチカルパスが短縮されてい
ることが分る。これは、第45図のマルチプレクサ24
5に関連する規制詞情報論理ユニットの詳細を示す第4
6図に明示されている。GPS’規制詞規制論情報論理
ユニット24925図の回路が受信する信号に対応する
妥当性信号を、対応するケース及びサブケースに関連し
て受信する複数のエンコーダ251乃至256を含む、
規制詞情報論理ユニット249内には、第42図に示す
ゲート222乃至226に対応するゲート257乃至2
61も示されている。エンコーダ251乃至256はそ
れぞれ4人カマルチプレクサ262乃至267を制御i
1L、複雑な規制詞のベースに続(バイト、語或はロン
グワード変位或は即値データのケースに対して第33図
及び第35図の真理値表内の値に対応するN及びSC値
を選択させる。別の2人カマルチブレクサ268.26
9は拡張即値モードに対するN及びSC値を選択する。
第45図の好ましい回路を使用することによって、クリ
ティカルバスは第44図に示すゲート234乃至237
及び第45図に示す2レベルのマルチプレクサを通るデ
ータ型情報の遅延まで短縮されている。第44図のゲー
ト234乃至237における遅延は、復号論理ユニット
(第12図の105)を使用してデータ型情報を第44
図のORゲート234及び235の出力に対応する符号
化された形状としこれらの符号化された2ビツトを関連
マルチプレクサ245.246.247の選択入力S1
及びSoへ供給することによって、排除することができ
る。
第47図は第45図に使用されている規制詞セレクタ論
理ユニット243の詳細回路を示す。もし命令バッファ
内のバイト1が絶対モード或は即値モードを有していれ
ば、或はもしバイト1が指標レジスタを指定し且つバイ
ト2が絶対モードを有していれば、或はもしバイト1が
指標レジスタを指定し且つバイト2が即値モードを有し
ていれば、第1規制詞は絶対モード或は即値モードを有
するものと認識される。これらの条件はゲート271.
272及び273によって検出される。
もしバイト1がレジスタモード或は短リテラルモードの
何れをも有していないことをゲート274が検出すれば
、第1規制詞は無効であるか或は複雑な規制詞であるか
の何れかであり第2の複雑な規制詞は復号されないから
、第2規制詞が絶対モードであるか即値モードであるか
は重要ではない。
それ以外の場合には、バイト2が即値モードを有してい
る時、或はバイト2が指標レジスタを指定し且つバイト
3が絶対モードを有している時、或はバイト2が指標レ
ジスタを指定し且つバイト3が即値モードを指定してい
る時に、絶対モード或は即値モードを有する第2規制詞
に関する規制詞情報が選択される。これらの条件はゲー
ト275乃至279によって検出される。同様にして、
ゲ−)274及び280が、バイト1及びバイト2が共
にレジスタモード或は短リテラルモードを有しているこ
とを検出した時に限って第3規制詞が絶対モード或は即
値モードを有していることとされる。この条件が満たさ
れた時、もしバイト3が絶対モード或は即値モードを有
していれば、或はもしバイト3が指標レジスタを指定し
且つバイト4が絶対モードを存していれば、或はバイト
3が指標レジスタを指定し且つバイト4が即値モードを
有していれば、第3規制詞に関する複雑な或は即値規制
詞情報が選択される。これらの条件はゲート281乃至
285によって検出される。第45図のマルチプレクサ
244を動作させるために、第47図の論理ユニットは
選択信号を符号化する2つのORゲート286.287
を含む。
第12図に関連して説明したように、シフトカウント論
理ユニット123は1つ、2つ或は3つまでの規制詞を
復号するために使用される複数のトリーを含む。一般的
なケースに関連するトリーR1、R2、R2R,R3及
びR3XRは第45図に示す一般的なケースに関連する
論理の若干のサブセットである。
第48図はR1)リーに関連する論理回路である。第1
規制詞に関連する規制詞情報だけが関係しているので、
一般的なケースは大巾に簡略化されている。例えば関連
妥当性情報は、レベル1におけるレジスタ規制詞或は短
リテラル規制詞が有効であるか否か、或はレベル21或
はレベル1における複雑な規制詞が有効か否かという事
実だけを含む。関連情報は基本ケースによって、及びバ
イト1が指標レジスタを指定しているか否かによって、
及び第1規制詞が絶対モード或は即値モードを有する複
雑な規制詞であるか否かによって選択されるから、これ
らの妥当性信号の優先順位を指示する必要はない。
R1論理トリーは、トリーの頂上に2人カマルチプレク
サ291、第1の複雑な規制詞に関する情報を選択する
8人カマルチプレクサ292、及び4つの各基本ケース
に従って情報を選択するマルチプレクサ293を含む。
ゲート294に示されているように、バイト1が有効レ
ジスタ規制詞或は存効短リテラル規制詞である時には、
ケース。0、ケースoI及びケース、0においてはN′
は1に等しく、またSC′も1に等しい、バイト1が指
標レジスタを指定している時には、バイト2から始まる
複雑な規制詞は、それがゲート295及びマルチプレク
サ297によって有効であることが検出されれば復号さ
れる。ケース、の場合にはゲート296が、Nを1に等
しく選択し、この複雑な規制詞が有効である時にはバイ
ト1から始まる複雑な規制詞に関連するシフトカウント
を選択する。
第49図はR2トリーのシフトカウント論理回路を示す
、トリー頂部のマルチプレクサ300は、第1或は第2
規制詞の何れもが絶対モード或は即値モードを有してい
ないものとして選択される場合には第25図の一般トリ
ーの簡略化バージョン301を、或は第1規制詞が複雑
なモード或は即値モードを有していることを見出した場
合にはマルチプレクサ302の出力を、或は第1規制詞
がレジスタ規制詞或は短リテラル規制詞の何れかであり
且つ第2規制詞が絶対モード或は即値モードを有する複
雑な規制詞である場合には別のマルチプレクサ303の
出力を選択する。第49図と第45図とを比較すれば、
R2トリーは、符号化論理が、最初の2つの規制詞に関
連する妥当性信号を考慮するだけでよいという想定に基
いて、−船釣ケースのためのトリーを簡略化したに過ぎ
ないことは明白であろう。
第50図は、バイト1がレジスタ規制詞或は短リテラル
の何れでもなく、且つ第2規制詞が短リテラルである時
には復号されない規制詞である場合に限って使用される
R2H)リーの論理図である。R2H)リーは、例えば
要求されつつある第2規制詞が“書込み”アクセス型で
ある時(この場合、もし第2規制詞が短リテラル規制詞
であればアドレス指定障害が発生する)に要求論理ユニ
ット(第12図の114)によって要求されるトリーで
ある。アドレス指定障害は次のサイクル中に短リテラル
規制詞が復号すべき第1規制詞となった時に検出可能で
あるから、これはアドレス指定障害の検出を簡略化する
ことになり、またアドレス指定障害を第1規制詞のモー
ドだけから検出可能ならしめる。
第1バイトはレジスタ規制詞或は短リテラル規制詞の何
れでもなく、また2つの規制詞だけが要求されているこ
とを想定しているから、R2H)リーの頂部のマルチプ
レクサ311は第1規制詞が絶対モード或は即値モード
を有している場合にはマルチプレクサ312からの情報
を選択し、また第1規制詞が絶対モード或はmWモード
を有していない場合には別のマルチプレクサ−313の
出力を選択する。GPS ’規制詞情報論理ユニット2
49は第1規制詞に関連する有効信号と、複雑な規制詞
に続くバイトに関連するレジスタ有効信号とを択一する
。同様にして、マルチプレクサ3140入力は2ルベル
において復号される規制詞に関連する有効信号と、21
Aレベルの後続バイトに関連するレジスタ有効信号とを
択一するように結線され、別のマルチプレクサ315は
レベルlにおける複雑な規制詞に関連する有効信号と、
レベルIAにおけるバイトに関連するレジスタ有効信号
とを択一するように結線されている。
第51図は、最初の2バイトがレジスタ規制詞或は短リ
テラル規制詞である場合に限って使用されるR3)リー
の回路図である。第52図から明らかになる如く、要求
されている3つの規制詞の−船釣なケースは、第3規制
詞が複雑な規制詞であるR3ケースと、第3規制詞がレ
ジスタ規制詞である場合に限り復号されるR3XRケー
スとに分けられる。
R3トリーの回路図を第51図に示す。トリー頂部のマ
ルチプレクサ321は、第3規制詞が絶対モード或は即
値モードを有しているか否かを表わすSEL規制規制信
号によって制御される。第3規制詞が絶対モード或は即
値モードを有していれば、マルチプレクサ321は第4
5図に基いて説明法のマルチプレクサ247からN′及
びSC′を選択する。それ以外の場合には、1ケース(
1)″信号によって制御されている別のマルチプレクサ
322からN′及びSC′を入手する。マルチプレクサ
322はN′及びSC′を、ケース。。に対してはマル
チプレクサ323から、またケース、。
に対してはマルチプレクサ324から選択する。
マルチプレクサ323はエンコーダ325によって制御
され、マルチプレクサ324はエンコーダ326によっ
て制御される。
第52図は、第3規制詞がレジスタ規制詞である場合に
限り3つの規制詞を同時に復号するR3XRトリーの回
路図である。このトリー頂部のマルチプレクサ331は
、第2規制詞が絶対モード或は即値モードを有する場合
にはマルチプレクサ246(第49図参照)の出力を°
、また第1規制詞が即値モード或は複雑モードの出力を
有する場合にはマルチプレクサ245 (第45図参照
)の出力を選択する。それ以外の場合には、有効である
ためには第3規制詞がレジスタ規制詞でなければならな
いという制限の下に、4つの各基本ケース毎に計算され
たN′及びSC′を選択する。従ってR3XRトリーは
、第25図のマルチプレクサ182乃至185に対応す
る別のマルチプレクサ333乃至336、第25図のエ
ンコーダ186.187及び189に対応するエンコー
ダ337.338及び339、及び第25図のマルチプ
レクサ190及び191に対応するマルチプレクサ34
0及び341を有している。第52図のマルチプレクサ
335の選択人力は、命令バッファ内のバイト1及びバ
イト2に関連するレジスタ有効信号或は短リテラル有効
信号を択一するように結線されている。
復号される規制詞の数がシフトカウント論理トリーから
マルチプレクサ124.125及び126(第12図)
によって選択されると、規制詞に関するデータの命令バ
ッファ内の位置が分り、従って規制詞データをGPSS
L或はTRバスへ伝送するために選択することが可能に
なる。複雑な規制詞に関連する規制詞情報は、その位置
が基本ケースによって与えられるために、最も容易に決
定される。しかしながらSL及びTRバスに関しては、
復号される第2及び第3規制詞に伴う何等かのレジスタ
規制詞データ或は短リテラル規制詞データを決定するこ
とが望ましい。勿論、第1規制詞に関する何等かのレジ
スタデータ或は短リテラルデータは命令バッファ内のバ
イト1の中に見出される。
命令バッファ内のあるバイト内のレジスタデータ或は短
リテラルデータのフォーマットは第5図に示したが、復
号される第2或は第3規制詞に伴う何等かのレジスタデ
ータ或は短リテラルデータを得るために使用される種々
の信号を規定する目的で第53図に再び示す。レジスタ
規制詞或は短リテラル規制詞に関するデータ“RSLデ
ータ(i)1は、例えば8ビツトからなる。“R3Lデ
ータ”の最上位ピントは、命令バッファ内のバイl−i
が有効レジスタ規制詞であり得るか否か、換言すればそ
れが“REG有効(i)  ”信号か否かを表わすもの
とする。また“R3Lデータ”の次最上位ビットは、バ
イトiが短リテラル規制詞であり得るか否か、換言すれ
ばそれが“SL有効(i)  ”信号か否かを表わすも
のとする。次の2つの最上位ピントはそのバイト内の何
等かの短リテラルデータの2つの最上位ビットである。
4つの最下位ビットは短リテラルデータ或はレジスタア
ドレス”REGN (i)  ”の残余を構成している
第54図は、復号される第2規制詞内のレジスタデータ
或は短リテラルデータを選択する出力選択論理ユニット
(第12図の128)の回路図である。暫時第21図を
参照する。これらのレジスタデータ或は短リテラルデー
タは、ケース。。においては命令バッファ内のバイト2
内に存在し、ケース。、においてはレベル21Aに存在
し、ケース、。
においてはバイト2内に存在し、ケースHにおいてはレ
ベルIAに存在することを確認されたい。
第54図において、マルチプレクサ351は特定ケース
を選択し、ケース。。及びケース、。においてはレジス
タデータ或は短リテラルデータを命令バッファ内のバイ
ト2から入手する。
ケース。1関しては別のマルチプレクサ352が、第1
規制詞が絶対モード或は即値モードを有する複雑な規制
詞であるか否かを決定し、また第2規制詞が複雑な規制
詞であるか否かをも決定する。
もし命令バッファ内のバイト1が指標レジスタを指定し
ていなければ、一対のゲート353.354がマルチプ
レクサ352へ選択入力を供給して0値を有するデータ
を選択させ、第2規制詞が有効レジスタ規制詞或は有効
短リテラル規制詞ではあり得ないことを指定する。それ
以外の場合、即ち命令バッファ内のバイト1が指標レジ
スタを指定していれば、バイト2内にそのベースを有す
る複雑な規制詞のモードが即値モード或は絶対モードを
有するか否かに依存して3つの場所の中の1つからレジ
スタデータ或は短リテラルデータが入手される。即ち複
雑な規制詞が即値モードも絶対モードも有していなけれ
ば、レジスタデータ或は短リテラルデータは21Aレベ
ルから入手される。
もし複雑な規制詞が絶対モードを有していれば、レジス
タデータ或は短リテラルデータは命令バッファ内のバイ
ト7から入手される。それ以外の場合、即ち複雑な規制
詞が即値モードを有している場合には、レジスタデータ
或は短リテラルデータは複雑な規制詞のデータ型に依存
してマルチプレクサ355によって選択される位置から
人手される。
ケース口に関するレジスタデータ或は短リテラルデータ
は同様にしてマルチプレクサ356及び357から入手
されるが、ケース、においては第■規制詞は必然的に命
令バッファ内のバイト1内にベースを有する複雑な規制
詞である。
第55図は命令バッファからレジスタデータを入手する
ためのフォーマットを示す、このレジスタデータは復号
される第3規制詞に関するレジスタデータを得るために
第56図の論理回路によって使用される。マルチプレク
サ361は基本ケースに従ってデータを選択する。第2
レベルのマルチプレクサ362乃至364、及び一対の
ゲート365及び366は、第54図のマルチプレクサ
352及び356、及びゲート353及び354と同様
に動作する。第3レベルのマルチプレクサ367.36
8.369.370は、第3規制詞に関連するレジスタ
データが即値アドレス指定モード或は絶対アドレス指定
モードを有する複雑な規制詞に後続する場合に、第2或
は第1規制詞のデータ型に従ってレジスタデータを選択
する。
第57図はTRバスを介して伝送される第1源規制詞に
関連する出力及び選択論理ユニット(第12図の128
)を示す。第1源規制詞に関連する有効データフラグ(
VDF)を得るためにマルチプレクサ381は復号され
る規制詞の数Nによって制御される。もし規制詞が復号
されなければフラグはクリヤされ、2つ或は3つの規制
詞が復号されればフラグがセットされる。1つの規制詞
だけが復号される場合には、それは源規制詞ではなく宛
先規制調であり得、もし第1規制詞が分岐バイト、分岐
語、書込み或は暗示書込みのアクセス型を有していれば
ゲート382が有効データフラグをクリヤする。
第1源オペランドに関連するレジスタフラグ(RGF)
は、少なくとも1つの規制詞が復号され、且つ1つの規
制詞が分岐変位或は暗示オペランドに関連して要求され
ていないことをゲート384が検出し、且つ命令バッフ
ァ内のバイト1が有効レジスタ規制詞を表わすことがで
き、且つ命令内読出し競合をゲート385が検出しなけ
れば、ゲート383の出力によってセットされる。
ゲート384は、特にバイト1が分岐変位であるのか、
或は1つの暗示規制詞が要求されるている場合には、次
の演算コードを表わしているのかを決定する。命令バッ
ファ内のバイト1が宛先規制詞ではない有効レジスタを
現わす可能性があれば、ゲート386は命令的読出し競
合の場合にそのレジスタ規制詞を汎用ユニットによって
処理させることを保証する信号” IRC−REG″を
発生する。このI RC−REG信号は後述する第61
図の回路に供給される。有効データフラグ、レジスタフ
ラグ及びレジスタ番号は、TRバスの部分390を介し
て転送ユニット(第6図の30)へ伝送された後に、ラ
ンチ即ちレジスタ387内にラッチされる。
第58図はTRバスを介して伝送される第2源オペラン
ドに関連する妥当性検査論理ユニットを示す。第2源オ
ペランドに関連する有効データフラグは、実際に復号さ
れる規制詞の数Nによって制御されるマルチプレクサ3
91によって選択される。有効データフラグは、実際に
復号される規制詞の数がO或は1である時にはクリヤさ
れ、3である時にはセットされる。もし2つの規制詞が
復号されれば、第2規制詞が宛先オペランドを指定して
いる可能性があり、この場合有効データフラグはクリヤ
される。第1規制詞がASRCのアクセス型を有し且つ
第2規制詞が書込みのアクセス型を有していないことを
ゲート392が検出するか、或は第1規制詞がV読出し
のアクセス型を有し且つ第2規制詞が読出しのアクセス
型を有していることをゲート393が検出するか、或は
第1規制詞が読出しのアクセス型を有し且つ第2規制詞
が“書込み゛暗示書込み”の何れのアクセス型をも有し
ていないか、或は書込み分岐変位ではないことをゲート
394.395及び396が検出すれば、第2規制詞は
宛先規制詞ではない。
第2源オペランドに関連するレジスタフラグ(RGF)
は、第2規制詞が分岐変位でも或は暗示規制詞でもなく
 (ゲート397によって検出)、且つ第2規制詞が有
効レジスタ規制詞を表わし得る(ゲート398によって
決定)ような、少なくとも2つの規制詞を復号した時に
セットされる。
第2規制詞に関連する有効データフラグ、レジスタフラ
グ、及びレジスタアドレスはTRバスの部分400を介
してラッチ399へ送られ、次のサイクル中に転送ユニ
ット(第6図の30)において使用される。
第59図に宛先オペランドを選択するための妥当性検査
及び多重化論理回路を示す、宛先オペランドは、第1、
第2或は第3規制詞の何れかによって指定することがで
きる。宛先規制詞の位置は、主として復号される規制詞
の数によって決定され、従って宛先オペランドに関連す
る有効データフラグ、レジスタフラグ及びレジスタアド
レスは現サイクル中に実際に復号される規制詞の数によ
って制御Bされるそれぞれのマルチプレクサ401.4
02、及び403によって選択される。現サイクル中に
規制詞が復号されなければ、勿論宛先オペランドは入手
不能であり、有効データフラグはクリヤされる。1つの
規制詞が復号される時、現サイクル中に復号された第1
規制詞のアクセス型が“変更”書込み” ′暗示書込み
”、或は“V変更”の何れかであることがゲート404
によって検出されればそれは宛先規制詞であり有効デー
タフラグ(V D F)がセットされる。もし2つの規
制詞が復号される時復号されつつある第2規制詞のアク
セス型が“■変更”書込み”“変更”暗示書込み”であ
るか、或は復号されつつある第1規制詞が“書込み”変
更”或は“■変更”のアクセス型を有していることをゲ
−)405が検出すれば、第2規制詞は有効宛先オペラ
ンドを指定する。もし3つの規制詞が復号される時上述
と同一の条件をゲート405が検出し更に第3規制詞が
分岐変位ではないことをゲート406及び407が検出
すれば、第3規制詞は宛先オペランドである。
1つの規制詞のみが復号される時、命令バッファ内のバ
イト1が有効レジスタ規制詞であり第1規制詞のアクセ
ス型が“変更”■変更”、或は“書込み”であることを
ゲート408及び409が検出すれば、その規制詞は有
効レジスタ宛先を指定する。2つの規制詞が復号される
時、ゲート409が活動であるか或は第2規制詞が宛先
オペランドを指定する有効レジスタ規制詞であることを
ゲート410.411及び412が検出すれば、レジス
タフラグがセットされる。3つの規制詞が復号される時
、ゲート411が活動であるか、或は第3規制詞が有効
レジスタ規制詞であることをゲート413が決定すれば
、レジスタフラグがセットされる。
もし1つの規制詞が復号されれば、何等かのレジスタ番
号が命令バッファ内のパイ)1から得られる。また2つ
の規制詞が復号され、第1規制詞が有効レジスタ宛先規
制調であることをゲート409が検出した場合にもレジ
スタ番号は命令バッファ内のバイト1から得られ;それ
以外の場合にはマルチプレクサ414によって選択され
る第2規制詞のレジスタ番号である。同様にして、もし
3つの規制詞が復号され、第2規制詞が有効レジスタ宛
先規制調であれば、宛先オペランドのためのレジスタ番
号は第2規制詞のレジスタ番号であり;それ以外の場合
にはマルチプレクサ415によって選択される第3規制
詞のレジスタ番号である。
宛先オペランドに関連する有効データフラグ、レジスタ
フラグ及び何等かのレジスタ番号はTRバスの部分42
0を通して伝送されてラッチ即ちレジスタ416に受信
され、次のサイクル中に転送ユニット(第6図の30)
によって使用される。
第60図はEXバス430を介する短リテラル情報の伝
送に関連する妥当性検査論理回路の回路図である。短リ
テラルに関連する有効データフラグは、復号された規制
詞の数と、命令デコーダのバイト1に関連する短リテラ
ル有効信号及び第2規制詞とを組合わせることによって
得られる。即ち、もし命令デコーダ内のバイト1が有効
短リテラル規制詞であれば、ゲート421によってNが
少なくとも2であることが決定されれば有効データフラ
グがセットされる。或はもし命令バンファ内のバイト1
が有効短すテラ゛ル規制詞ではあるがNが1であれば、
分岐変位或は暗示規制詞の何れも要求されていないこと
をゲート384及びゲート422が決定した時に限り有
効データフラグがセットされる。また或はゲート397
及び423が、Nが2或は3であり、第2規制詞が有効
短リテラルであって分岐変位或は暗示規制詞の何れでも
ないことを決定すれば有効データフラグがセットされる
。ゲート421.422及び423の出力はORゲート
424内で組合わされて有効データフラグが供給される
もし命令バッファ内のバイト1が有効短リテラルであれ
ば、短リテラルデータはバイト1から得られるが、それ
以外の場合にはマルチプレクサ425によって選択され
る第2規制詞に関連する短リテラルデータから得られる
。短リテラルに関連する規制詞数は、その短リテラル規
制詞が現サイクル中に復号される第1規制詞である場合
には既に完了した即ち復号された規制詞の数、或は短リ
テラルが現サイクル中に復号される第2規制詞であれば
これより1つ大きい数の何れかである。
この計算は3ビツト2進加算器426及びインバータ4
27によって遂行される。短リテラルオペランドに関連
する有効データフラグ、短リテラルデータ及び規制詞数
はEXバス430を介してラッチ即ちレジスタ428へ
送られてラッチされ、次のサイクル中に拡張ユニットに
よって使用される。
第61図はCPババス介してオペランドデータを伝送す
るための妥当性検査及び選択論理ユニットを示す、要求
論理ユニット(第12図の114)からの要求信号は、
CPババス70上に印加されているものが分岐変位であ
るのか或は暗示規制詞であるのかを決定する。1つの規
制詞が復号され且つRIBB或はRIBW)リーが選択
されるか、或は2つの規制詞が復号され且つR2BB或
はR2BW)リーが選択されているか、或は3つの規制
詞が復号され且つR3BB或はRaBW)リーが選択さ
れていることをゲート431乃至473が決定すれば、
分岐変位がCPババス上供給されている。CPババス7
0を介して伝送された後、ラッチ即ちレジスタ438は
ゲート437からの分岐変位及び第57図からのIRC
REG信号をラッチし、OPU (第6図の21)への
特別な制御信号を作る。分岐変位の場合には、OPUは
その分岐変位を命令バッファのバイトO位置内ヘシフト
させる次の演算コードのアドレスに加算して分岐命令の
ためのターゲットアドレスを求める。
IRCREG信号に応答してOPUはCPババス70を
介して伝送されるベースによって指定されるレジスタの
番号を入手する。
RIII−リーが選択され且つ1つの規制詞が復号され
ている、或はR2I)リーが選択され且つ2つの規制詞
が復号されていることをゲート439.440及び44
1が決定すると、暗示規制詞がGPババス70を介して
伝送される。
マルチプレクサ442は、分岐、暗示或は拡張即値オペ
ランドが復号されていないものと仮定して、複雑な規制
詞を復号可能か否かを決定する。
マルチプレクサ442は、4つの基本ケース、並びに命
令バッファ内のバイトl或はバイト2が指標レジスタを
指定しているか否かを考慮する。ゲート443及び44
4はそのケースと指標信号とを組合せ、ケース、。或は
ケース・0に関して考え得る複雑な規制詞が第1或は第
2規制詞であるか否か、或は第3規制詞であるか否かを
検出する。ケース、l或はケース。1■の場合には、複
雑な規制詞を復号するために、復号される規制詞の数は
lよりも大きいか或は1に等しくなければならない。
ORゲート445は、Nが1よりも大きいか或は1に等
しいか否かを決定する。ケース。1或はケース。。■に
おいては、複雑な規制詞はNが2より大きいか或は2に
等しければ復号できる可能性がある。ケース、。に関し
ては、複雑な規制詞はNが3に等しいことをANDゲー
ト446が検出すれば復号できる可能性がある。ケース
。。においては(指標レジスタを伴わない場合)、命令
バッファ内のバイト3がレジスタ規制詞を指定していな
いことをゲート447が検出すれば、複雑な規制詞は復
号される。
指標レジスタは、命令バッファ内のバイト1が指標レジ
スタを指定するか、或は命令バッファ内のバイト2が指
標レジスタを指定するか、或はケース。1或はケース、
が存在しないかまたはケース、。
が存在していることをゲート448.449及び450
が検出すれば指定される可能性がある。
GPババス関連する有効データフラグは、IRCREG
信号が発生しているか、或は暗示規制詞が復号されたか
、或は分岐変位が復号されたか、或は拡張即値データが
復号されたか、或は複雑な規制詞を復号することが可能
であることをORゲ−)451が決定すればセットされ
る。GPババス関連する指標レジスタフラグは、複雑な
規制詞が復号可能であり、且つ指標指定が入手可能であ
り、且つ分岐変位、暗示規制詞或は拡張即値データの何
れもが復号されていないことをゲート452及び453
が検出すればセットされる。
暗示規制詞が復号される時、16進数の7E或は8Eの
何れかの値がモード及びベース情報としてCPババス介
して伝送される。この目的のために、暗示規制詞が要求
された時にその要求された暗示規制詞のアクセス型が“
暗示書込み”であれば7Eを選択し、その規制詞のアク
セス型が“暗示書込み”でなければ8Eを選択するマル
チプレクサ454が設けである。要求された規制詞のア
クセス型はマルチプレクサ455によって選択され、O
Rゲート456は暗示規制詞が要求されたか否かを決定
する。
暗示規制詞の場合を除いて、CPババス上規制詞情報は
マルチプレクサ457から得られる。マルチプレクサ4
57は本質的にはシフタとして機能し、命令バッファ内
の連続バイト位置にある指標、モード及び及びベース、
及び変位を入手する。
マルチプレクサ457は命令バッファとCPババス70
との間の考え得る5つのオフセットから選択された1つ
を供給する。ある分岐命令に関連して1つの規制詞が要
求されると、変位のバイト0は命令バッファのバイト1
から入手される。ある分岐命令に関連して2つの規制詞
が要求された場合には、変位のバイト0は命令バッファ
のバイト2から入手される。ある分岐命令に対して3つ
の規制詞が要求されると、変位のパイ)0は命令バッフ
ァのバイト3から入手される。命令内読出し競合が検出
され、レジスタがGPババス70を介して伝送されると
、変位のバイト0は命令バッファのバイト2に整列させ
られる。またケース、1においても変位のバイトOは命
令バッファのバイト2に整列される。ケース。1におい
ては、変位のバイト0は命令バッファのバイト3に整列
される。
ケース。。においては、変位のバイト0は命令バッファ
のバイト4に整列させられる。最後にケース、。
においては、変位のバイト0は命令バッファのバイト5
に整列される。
変位のバイト0をマスナス(−)1バイト位置シフトさ
せることによって命令バッファのバイト1に整列させる
場合には便宜上人力S、によってマルチプレクサ457
のシフティングを制御し、その他の場合には入力S、及
びS、によって選択される複数のバイト位置だけ他の方
向ヘシフトさせる。入力S、は、1つの規制詞が要求さ
れ且つそれが分岐変位である場合に発生する。シフトさ
せるバイト位置の数は、排他的ORゲート458及びN
ORゲート459.460によって基本ケースから容易
に決定される。命令内読出し競合或は分岐変位に関連す
る要求はケース、と同数のバイト位置シフトを選択する
。ORゲート461は分岐変位が要求されたか否かを決
定する。最後に、ORゲート463は、ある分岐命令に
関連して3つの規制詞が要求されたか否かを決定する。
GPババス上複雑な規制詞に関連する規制詞数は、基本
ケース及び命令バッファ内のバイト1或はバイト2が指
標レジスタを指定しているか否かによって決定される。
これは、現在復号されている3つまでの規制詞の何れが
複雑な規制詞であるかを決定することによってなされる
。Xl及びxoはその複雑な規制詞が現在復号されてい
る第1規制詞であるのか、第2規制詞であるのか、或は
第3規制詞であるのかを指定する。X+はゲート444
及びゲート449の出力を組合せるORゲ−)463に
よって決定される。。XOはゲート464.465及び
466によって決定される。
X+Xeによって表わされる2ビツトの2進数は加算器
467によって完了した規制詞の数に加算され、復号中
の複雑な規制詞に関連する規制詞が決定される。有効デ
ータフラグ、指標レジスタフラグ、指標、モード、ベー
ス、変位及び規制詞数はGPババス70を介してラッチ
即ちレジスタ468へ伝送されてラッチされ、システム
クロックの次のサイクル中に汎用ユニット(第6図の3
2)によって使用される。
第62図は、第11図の復号手順の段階51乃至57及
び段階64及び65を遂行するために第12図に示した
拡張即値検出器110の回路図である。
拡張即値モードを有する複雑な規制詞を検出するために
、マルチプレクサ481は基本ケースに対するベース位
置の即値モード信号を選択することによって、命令バッ
ファ内の最初の複雑な規制詞が即値モードを有するか否
かを決定する。複雑な規制詞に関連するデータ型のビッ
ト1がセットされている場合には、どの即値モードも拡
張即値である。複雑な規制詞のデータ型はマルチプレク
サ482によって選択される。マルチプレクサ482は
、基本ケース及び命令バッファ内のバイト1及びバイト
2が指標レジスタを指定しているか否かに応答するゲー
ト483及び484によって制御される。ゲート485
はマルチプレクサ481及び482の出力を組合せ、命
令バッファ内に見出された最初の複雑な規制詞が拡張モ
ードを存していれば、ある信号を発生する。またゲート
485はX8F信号によって禁止されるようになってお
り、この場合には命令バッファ内の如何なる拡張即値デ
ータにも応答しない。
復号すべき次の3つの規制詞の1つ或はそれ以上が拡張
即値モードを有していても、現サイクル中に復号されな
いようにすることが可能である。
これは、現サイクル中に復号される規制詞の数Nと、基
本ケース並びに命令バッファ内のバイト1或はバイト2
が指標レジスタを指定しているか否かの関数である複雑
な規制詞の規制詞位置とに依存する。これらの条件はゲ
ート486乃至491によって検出される。
拡張即値モードを有するある複雑な規制詞が現サイクル
中に復号されつつあることを表わす出力をゲート491
が発生すると、第11図に示す段階64及び65に対応
して複雑な規制詞のデータ型に従ってロングワードカウ
ントが2進カウンタ492にロードされる。ロングワー
ドカウントは、もしデータ型がオクタワードであれば3
に、またクワッドワードの場合には1にセットされる。
オクタワードデータ型は、ゲート483及び484によ
り制御されるマルチプレクサ493によって検出される
。ゲート494は、2進カウンタ492の値がO以外で
あれば常にX8F信号を発生している。この状態が発生
すると2進カウンタ492は、命令バッファ内のバイl
−4に関連する有効データフラグが拡張即値データが有
効であることを指示し、且つ汎用ユニットが機能停止し
ておらず、且つデコーダが機能停止していないことを指
示している限りデクレメントされる。これらの条件はゲ
ート495及び496によって検出される。
RX8Fシフトカウントは2進カウンタ492がデクレ
メントされる時は4であり、それ以外の場合はOである
。Nに対するRX8Fの値は常にOである。拡張即値検
出器110は、即値モードが最初に検出されない時、2
進カウンタが2或はそれ以上の値を有していない時、及
び?進カウンタの値が1であるか或は2進カウンタがデ
クレメントされるであろう時に“演算コードシフト”信
号を発生させる。換言すれば、演算コードのシフトは、
拡張即値モードが検出された時からロングワードカウン
トが°lとなり2進カウンタが0までデクレメントされ
るまで不能化されるのである。これらの条件はゲート4
97及び498によって検出される。
第63図は自動インクレメントモード或は自動デクレメ
ントモードを検出するデコーダの回路図である。自動デ
クレメントモードは、レジスタモードフィールド(第5
図参照)の値が7であることをゲート501が検出する
と発生する。自動インクレメントは、レジスタモードフ
ィールドの値が8或は9であることをゲート502が検
出すると発生する。ゲート501及び502の出力はO
Rゲート503によって組合されて自動インクレメント
モード或は自動デクレメントモードを表わす信号となる
デコーダにとって、命令内読出し競合を検出するために
自動インクレメントモード或は自動デクレメントモード
を検出することは重要である。命令デコーダ20は、レ
ジスタ規制詞及び自動インクレメント規制詞或は自動デ
クレメント規制詞を同時に復号することができるから、
レジスタ規制詞と自動インクレメント規制詞或は自動デ
クレメント規制詞とが同一レジスタを参照する恐れがあ
る。従ってレジスタ規制詞の値を、参照されたレジスタ
の初期値とすべきか、或は自動インクレメント或は自動
デクレメントによって変更された後の値とすべきかを弁
別することが重要である。サイクル当り1規制詞を復号
するデコーダにおいては、レジスタ規制詞が自動インク
レメント或は自動デクレメント規制詞の前に復号されれ
ばレジスタ規制詞は初期値を参照し、またレジスタ規制
詞が自動インクレメント或は自動デクレメント規制詞の
後に発生すれば変更された値を参照するであろうから上
述の如き恐れは生じない。
本発明において使用されるような命令デコーダにおいて
は、レジスタ規制詞が復号された時にTRバスを介して
レジスタ番号を伝送し、また実行ユニットがレジスタ規
制詞の実際の値を入手する前に汎用ユニットにおいて自
動インクレメント或は自動デクレメント規制詞を前処理
することが望ましい。従って、このようなデコーダが共
に同一レジスタを参照するレジスタ規制詞と自動インク
レメント或は自動デクレメント規制詞を同時に復号した
時には、実行ユニットは必然的にレジスタ規制詞として
参照されたレジスタの変更された値を使用することにな
る。しかし、この必然的な動作モードは、命令に関連す
る演算コードに続く規制詞のシーケンスにおいてレジス
タ規制詞が自動インクレメント或は自動デクレメント規
制詞の前に出現した場合には結果が無効になり得る。命
令デコーダ20においては、これを“命令内読出し競合
”と呼ぶ特別なケースとして処理することによって、こ
の発生可能な不正確な結果を回避する、換言すれば、自
動インクレメント或は自動デクレメント規制詞が同一命
令に関連する規制詞シーケンス内の先行レジスタ規制詞
によって参照されたペースレジスタを指定した場合を命
令的読出し競合であると云う。
レジスタ規制詞は、少な(とも規制詞のレジスタアドレ
スフィールド(第5図参照)によって指定されたレジス
タを参照する。もしレジスタ規制詞がクワッドワードデ
ータ型を有していれば、レジスタ規制詞は更にレジスタ
規制詞のレジスタアドレスフィールド内に示されている
1+レジスタ番号(rl)のレジスタ番号(即ちアドレ
ス)を有するレジスタも参照する。オクタワードデータ
型を有するレジスタ規制詞はレジスタ番号n、n+1、
n+2及びn+3を有するレジスタを参照する。
命令デコーダ20は、命令的読出し競合を検出する2つ
の異なる方法を使用することが好ましい。
第1の方法は、復号中の現命令の先行復号サイクル中に
源レジスタ規制詞によって参照されたレジスタを識別す
る“読出しレジスタマスク”を発生させることである。
第2の方法は、各データ型組合せ毎に命令的読出し競合
が発生し得るか否かを表わす“IRCマスク”を発生さ
せることである。
この第2の方法は、同一サイクル中に同時に復号される
レジスタ規制詞と自動インクレメント或は自動デクレメ
ント規制詞との間の命令的読出し競合を決定するために
使用される。
命令的読出し競合を検出するための読出しレジスタマス
クの使用を第64図に示す。同−命令内に含まれる源レ
ジスタ規制詞とそれ以後に発生する自動インクレメント
或は自動デクレメント規制詞との間に競合が存在するか
否かを決定するために、CPU内の16の各汎用レジス
タに対応するビット位置を有する続出しレジスタマスク
が作られる。マルチプレクサ511は、複雑な規制詞の
ペースレジスタ番号に対応する読出しレジスタマスクの
ビット位置を選択する。読出しレジスタマスクの選択さ
れたビットは、マルチプレクサ511を可能化するため
にゲート512において組合される(第63図に基いて
説明した自動信号及びペース有効)信号によって更に審
査される。マルチプレクサ511の出力は命令的読出し
競合の存否を表わす信号IRC’となる。
読出しレジスタマスクを発生させるために、源レジスタ
番号nがデコーダ513に印加され、デコーダ513は
読出しレジスタ番号に対応する位置の読出しレジスタマ
スクのビットをセットさせる。他のビット位置のビット
は源レジスタ規制詞のデータ型に依存してセットする必
要がある。これらのビット位置は加算器回路514によ
って決定されるn+lSn+2及びn+3に発生する。
ビットは、それぞれのデコーダ515.516及び51
7によって、これらの他のビット位置に選択的にセット
される。各デコーダはそれぞれのマスクを発生し、これ
らのマスクは全体として518で示す一組16の4人力
ORゲートによって論理和されて読出しレジスタマスク
が得られる。
読出しレジスタマスク内のn+2及びn+3ピント位置
のビットはオクタワードデータ型に対してのみセントさ
れるから、オクタワードデータ型はゲート519によっ
て復号され、デコーダ516及び517へ供給される可
能化信号となる。同様にして、デコーダ515はオクタ
ワード及びクワッドワードデータ型に対してORゲート
520によって可能化される。ゲート521は源レジス
タ番号に伴う有効データフラグ及びレジスタフラグを用
いて審査する。これらのフラグはゲート519も可能化
し、オクタワードデータ型を検出させる。
第64図に示すように、読出しレジスタマスクは、源レ
ジスタ規制詞が復号されるサイクルに続くサイクル中に
ペースレジスタ番号が発生すると、命令的読出し競合を
検出するために便宜的に使用される。もしペースレジス
タが源レジスタ規制詞と同一サイクル中に復号されれば
、第64図の回路は、源データ型が復号論理ユニット(
第12図の105)から入手可能になる時点から命令的
読出し競合がマルチプレクサ511によって検出される
時点まで過大な遅延をもたらす。
第65図に示す命令的読出し競合検出回路は、データ型
が入手可能となる時点と命令的読出し競合が検出される
時点との間の遅延を排除するために、源レジスタ規制詞
のデータ型によって制御されるマルチプレクサ531を
有している。マルチプレクサ531は、データ型がロン
グワード、クワッドワード或はオクタワードを指定して
いるか否かに対応するIRCマスクのそれぞれのビット
位置を選択する。
IRCマスクを発生させるために、コンパレータ532
は源レジスタ番号とペースレジスタ番号を比較して、デ
ータ型がロングワードを指定していれば競合の可能性の
有無を決定する。ゲート533はコンパレータ532の
出力ヲ受ケ、ペースレジスタに関連する自動モード信号
及び源規制詞に関連するレジスタフラグによってそれを
審査する。
考え得るクワッドワード及びオクタワードデータ型に対
するIRCマスクビットを決定するために、源レジスタ
番号nが加算器534へ供給され、加算器534はfi
+l、n+2及びn+3の値をそれぞれコンパレータ5
35.536及び537へ供給する。コンパレータ53
2及び535の何れかが整合を指示していることをOR
ゲート538が検出すると、クワッドワードデータ型に
関して競合が発生してい不可能性がある。またコンパレ
ータ532.535.536或は537の何れかが整合
を指示していることをORゲート539が検出すれば、
オクタワードに関して競合が発生しているものと考えら
れる。ゲート538.539の出力は、それぞれゲート
504及び541においてレジスタフラグ及び自動信号
によって審査される。
第66図は、現サイクル中に同時に復号される2つまで
の源規制詞と、源命令の先行サイクル中に復号された任
意数の源規制詞とのレジスタ内競合を検出するための9
ビツトIRCマスクを発生する回路である。第66図の
回路は、現サイクル中に復号されるある複雑な規制詞と
、同一命令の何れかの先行サイクル中に復号された任意
数の源及び指標レジスタ規制詞との間の現サイクル中の
命令的読出し競合を検出するために、第64図に示す回
路と類似した読出しレジスタマスク発生器及び複合JR
C検出器を含む。
読出しレジスタマスクを発生させるために、先行復号サ
イクルにラッチされた第1源レジスタ番号、有効データ
フラグ、レジスタフラグ、及び第1規制詞データ型の値
が読出しレジスタマスク発生器551へ印加される。同
様に、先行復号サイクル中に決定された第2源レジスタ
番号、有効データフラグ、レジスタフラグ、及び第2規
制詞のデータ型が読出しレジスタマスク発生器552へ
印加される。全体を555で示す一組16の3人力OR
ゲートが2つの源レジスタ番号に関連して発生された読
出しレジスタマスクとラッチ即ちレジスタ554からの
先に発生された読出しレジスタマスクとを組合せて現復
号サイクルの読出しレジスタマスクを作る。この読出し
レジスタマスクはゲート556において“新フォーク1
信号によって審査され、レジスタ554へのデータ入力
となる。従って、レジスタ554は現命令の先行復号サ
イクルに関する読出しレジスタ情報を累積し、ゲート5
56は現命令に関する復号の終りにレジスタ554をク
リヤする。
現サイクル中に復号される何等かの自動インクレメント
或は自動デクレメントモードを有する複雑な規制詞と、
同一命令の先行サイクル中に復号された任意源規制詞と
の間の競合の存否を決定するために、ゲート556の出
力はマルチプレクサ557へ印加される。マルチプレク
サ557は複合マスクから複雑な規制詞に関連するペー
スレジスタの番号に対応する特定ビットを選択する。こ
のペースレジスタ番号は、基本ケースによって制御され
るマルチプレクサ558によって命令バッファ内のバイ
ト1.2.3或は4のレジスタアドレスフィールドから
選択される。同様にして、ペースレジスタ番号に関連す
る自動インクレメント或は自動デクレメントモード信号
が、基本ケースによって制御されるマルチプレクサ55
9によって選択される。
マルチプレクサ557からの複合IRCは9ビッ)IR
Cマスクの全ての位置へ論理和される。
それ以外の場合には、IRCマスクは現サイクル中に同
時に復号される2つまでの源レジスタ規制詞と自動イン
クレメント或は自動デクレメントモードを有する複雑な
規制詞との間に競合の可能性があることを指示する。第
65図に示す加算器及びコンパレータは、現サイクル中
に同時に復号可能な源レジスタとペースレジスタとの考
え得る各組合せに対してそれぞれコンパレータ561乃
至564を構成するように5組が設けられている。
これらの各コンパレータは4つの出力ビットを供給する
コンパレータ561乃至563からの出力は、基本ケー
スによって制御されるマルチプレクサ566によって選
択され、考え得るペースレジスタ及び先行第2レジスタ
規制詞に関連するコンパレータ信号となる。ケース(c
)信号によって制御される別のマルチプレクサ567は
、考え得るペースレジスタと先行第2レジスタ規制詞と
の間のコンパレータ信号を供給する。マルチプレクサ5
66によって選択されたコンパレータ信号はゲート56
8によって更に審査される。即ちゲート568は、復号
される第1規制詞が複雑な規制詞であることをゲート5
69が検出した時、及び第1規制詞がレジスタ規制詞で
はない時に、コンパレータ信号を阻止する。同様にして
ゲート570は、第3規制詞が複雑な規制詞であること
をゲート571乃至573が検出し、第2規制詞がレジ
スタモードを有し、且つ複雑な規制詞が自動インクレメ
ント或は自動デクレメントモードを有している場合に、
第2規制詞に関連するコンパレータ信号を通過させる。
ゲート568及び570からの審査済規制詞信号は第1
及び第2レベルのORゲート574乃至584によって
組合され9ビツトのIRCマスクとなる。
第67図は第12図に示したIRC検出器26の回路図
である。IRCマスクは第1組のマルチプレクサ591
.592及び593に印加され、復号中の第1規制詞の
データ型に対応する3ピントが選択される。第4のマル
チプレクサ594は、復号中の第2規制詞のデータ型に
よって制御され、IRCマスクの9ビツトの中の特定の
1つを選択する。しかし、IRCマスクのこの選択され
たビットが命令内読出し競合の存在を必ずしも表わして
はいない、何故ならば、検出されたモードが実際には分
岐変位であるかも知れず、或は暗示規制詞であり得るか
らである。これらの場合には、マルチプレクサ594の
出力はゲート595及び596によって阻止される。ま
た同一命令の先行復号サイクル中にレジスタ内競合が検
出された場合にもゲート596は禁止される。これは、
競合がある命令の復号中に最初に検出された時に競合検
出器がOPUに通告できるようにするためになされるの
である。
それでも、自動モードを有する複雑な規制詞が現サイク
ル中に復号されないかも知れないために、ゲート596
の出力が命令内読出し競合を通告していない恐れがある
。自動モードを有する規制詞が実際に復号されるか否か
は、現サイクル中に復号される規制詞の初期数N L、
基本ケース、及び命令バッファ内のバイト1或はバイト
2が指標レジスタを指定しているか否かに依存する。こ
れらの条件はANDゲート597乃至601及びORゲ
ート602によって検出される。ORゲート602は、
先行レジスタ規制詞或は指標レジスタ指定と競合する暗
示規制詞が復号されると発生する暗示IRC信号も受け
ている。暗示命令内読出し競合は、例えば“Pt1Sl
lL SP”命令に関連して発生する。何故ならば、こ
のような命令は先ずスタックポインタの初期値を入手し
、次でスタックポインタを自動デクレメントし、次でス
タックポインタの初期値をデクレメントされたスタック
ポインタ値によって与えられるアドレスのスタック上に
ブツシュするために中断さるべきだからである。
従って第1明示規制詞は、同一レジスタの後続暗示自動
デクレメントと競合する源レジスタ規制詞である。
源レジスタ規制詞と、暗示自動インクレメント或は自動
デクレメント規制詞との間の命令内続出し競合を検出す
るために、命令バッファのバイト1内のレジスタ番号は
、バイト1のレジスタモードによって可能化されるデコ
ーダ603の選択入力に印加される。付録■に示す暗示
規制詞の場合、暗示規制詞は常に、14のレジスタ番号
を有するスタックポインタの自動インクレメント或は自
動デクレメントである。従ってデコーダ出力14.13
.12及び11は第65図のコンパレータ信号P(1)
・P (冨)・P(3)及びP(4)に対応する・OR
ゲート604及び605は暗示レジスタマスクのクワッ
ドワード及びオクタワードピットを供給する。暗示IR
Cマスクの適切なピントがマルチプレクサ606によっ
て選択される。マルチプレクサ606の出力はゲート6
07において暗示規制詞が復号されるであろうことを表
わすR21要求信号及びN’11)によって更に審査さ
れる。
現在復号中の暗示規制詞が同一命令の先行復号サイクル
中に復号されたレジスタ規制詞と競合する可能性もある
。このような競合は、1つの暗示規制詞が要求され且つ
1つの規制詞が復号されるであろう場合には第66図の
ゲート555からの読出しレジスタマスクのビット14
を選択するゲート608によって、また1つの暗示規制
詞を含む2つの規制詞が要求され且つ2つの規制詞が復
号されるであろう場合にはゲート609によって検出さ
れる。ゲート607.608及び609によって検出さ
れる種々の考え得る競合の源はORゲート610によっ
て組合され、暗示命令内読出し競合が検出される。
明示或は暗示命令内読出し競合がゲート602によって
通告されると、その命令は各復号サイクル中に1規制詞
だけが復号されるようにして復号される。現サイクル中
に1つの規制詞だけが復号され、もしその命令に関して
復号すべき規制詞が残っていればラッチ611がセット
され、命令が完全に復号されてしまうまで爾後の各復号
サイクル中には1つの規制詞だけが復号されることを通
告する。命令に関連する復号の終りは、第12図からの
“全規制詞完了”信号によって指示される。
またラッチ611は、命令バッファが初期にロードされ
つつある時、或はデコーダ障害が存在する時はセットさ
れない、これらの状態においてはラッチ611のセット
はゲート612によって禁止されているからである。
一旦ラッチ611がセットされると、ゲート613は現
サイクルにおける復号が終るまでセットさせ続ける。別
のゲート614は、デコーダ障害の場合にラッチ611
の状態が変化しないようにする。ゲート612.613
及び614の出力はORゲート615において組合され
、ラッチ611のデータ入力へ印加される。ORゲート
616は、ラッチ611の出力とゲート602からの“
検出したJRC”信号とを組合せて第12図のマルチプ
レクサ126を動作させるIRC信号を発生する。
第68図は、命令デコーダ(第1図の20)による命令
内読出し競合に応答して命令ユニット内の汎用レジスタ
651及び実行ユニット内の対応する一組の汎用レジス
タ652を更新する命令ユニット12及び実行ユニット
13内の回路の回路図である。第68図に示すように、
命令ユニット12と実行ユニット13との間のデータ経
路は源リスト24及び複数の待ち行列23を含む。詳述
すれば、これらの待ち行列23は、今復号されたばかり
の命令に関連するフォークアドレス即ちマイクロコード
エントリアドレスを受けるフォーク待ち行列653、命
令デコーダによって復号されたレジスタ番号或は源オペ
ランドを指す源リストポインタを受ける源ポインタ待ち
行列655、命令デコーダによって復号されたレジスタ
番号或は宛先オペランドのアドレスを受ける宛先ポイン
タ待ち行列656、及びレジスタスコアボード待ち行列
657を含む。
レジスタスコアボード待ち行列657は、予め前処理さ
れてはいるが未だに実行されていない命令のレジスタ源
オペランドと、現命令の自動インクレメント或は自動デ
クレメント規制詞との間の命令内読出し競合を検出する
。またレジスタスコアボード待ち行列657は、予め前
処理されてはいるが未だに実行されていない命令のレジ
スタ宛先オペランドと、現命令のレジスタ源オペランド
との間の命令内読出し競合をも検出する。何れかの命令
内読出し競合を検出するためにレジスタスコアボード待
ち行列は、“新フォーク”信号が発生した時に第66図
の一組のゲート555が発生する複合レジスタ続出しマ
スクを受ける。何等かの命令内書込み競合を検出するた
めにレジスタスコアボード待ち行列は、複合レジスタ続
出しマスクと同様にして作られる(但しマスク発生器は
宛先レジスタ情報に応答する)複合レジスタ書込みマス
クをも受ける。更に、レジスタスコアボード待ち行列6
57は、待ち行列内の全てのマスクを論理和して複合レ
ジスタ続出し及び書込みマスクを形成させる一組のOR
ゲートをも含む。
複合レジスタ続出しマスクは、自動インクレメント或は
自動デクレメントモードを有する複雑な規制詞のペース
レジスタ番号と比較され、命令内レジスタ続出し競合が
検出される。同様にして、源レジスタ番号が複合レジス
タ書込みマスクと比較されて命令内書込み競合が検出さ
れる。何れの場合においても、レジスタスコアボード待
ち行列657は命令内レジスタ競合の存在を通告する。
レジスタスコアボード待ち行列657の構造及び動作の
詳細に関しては前記マーレイらの合衆国特許出願“ディ
ジタルコンピュータのデータ依存性を解消する複数命令
前処理システム”を参照されたい。
命令ユニット12及び実行ユニット13は汎用レジスタ
の組651及び652を重複して含むので、規制詞は実
行ユニットが必要とする前に命令ユニットによって評価
することができる。実行ユニットが汎用レジスタを変更
する場合、新しいデータが実行ユニット汎用レジスタ6
52及び命令ユニット汎用レジスタ651の両方へ送ら
れる。
典型的な場合として命令ユニットが自動インクレメント
或は自動デクレメント規制詞の評価に応答してペースレ
ジスタを変更する時には、命令ユニット汎用レジスタ6
51及び実行ユニット汎用レジスタ652の双方が更新
される。
例外或は割込みの場合には、待ち行列23から復号され
ているが未だに実行されていない命令に関する情報をフ
ラッシュしなければならない、もしこれらの復号されて
いるが未だに実行されていない命令が自動インクレメン
ト或は自動デクレメントモードを有する複雑な規制詞を
含んでいれば、変更されたレジスタをその元の状態に戻
さなければならない。従って、命令ユニット或は実行ユ
ニットはレジスタが自動インクレメント或は自動デクレ
メントによって変更された時、汎用レジスタに対してな
された変化に関する情報を記憶することが望ましい。こ
の情報を記憶するために、第68図の実行ユニット13
には関連レジスタ番号及び変更された量を記憶するRL
OG待ち行列658が設けである。
第68図に示すように、RLOG待ち行列は16エント
リを記憶すると満杯になる。自動インクレメント或は自
動デクレメント規制詞を有する命令がリタイアすると、
その対応エントリをRLOG待ち行列658から除去し
なければならない。また命令は複数の規制詞を有するこ
とができ、各規制詞が自動インクレメント或は自動デク
レメント規制詞であることができるから、RLOG待ち
行列内の1つ以上のエントリを各命令に関連づけ得るよ
うにする必要がある。この目的のために、命令ユニット
12は6進カウンタを含み、このカウンタは命令に関連
するフォークに追加される3ビツトのタグ(OPU  
TAC)を発生する。6進カウンタ659は例えば3ビ
ツトの2進カウンタにより構成され、“新フォーク”信
号によって可能化されるクロックと、タグの値が5にな
った時に“新フォーク”信号に応答してカウンタをリセ
ットするゲート660とを有している。タグは、実行ユ
ニット13内に配置されている6つの3ビツトRLOG
カウンタ661の1つを指す。
RLOG待ち行列658は、該行列にエントリが付加さ
れるとインクレメントされる4ビツトの挿入ポインタカ
ウンタ662を有している。また、あるエントリが付加
される度に関連RLOGカウンタがインクレメントされ
る。命令がリタイアされると、リタイアされた命令のタ
グ(実行ユニツトタグ)に対応するRLOGカウンタは
リセットされる。これは、例えば、RLOGカウンタ6
61の関連リセット人力に接続された出力を有しリタイ
アユニット28からのリタイア信号によって可能化され
るデコーダ663によってなされる。同様に、エンコー
ダ664は、RLOGカウンタ661の関連クロック可
能化入力に接続されている出力と、OPUタグを受ける
選択入力と、“変更”信号によって可能化される可能化
入力とを有する。“変更”信号は挿入ポインタカウンタ
662からの挿入ポインタを復号するデコーダ665を
可能化し、RLOC待ち行列658内の16のデータレ
ジスタの関連する1つのデータ可能化入力を付活する。
RLOC待ち行列内の有効エントリの数は、加算器66
6においてRLOGカウンタ661の全ての値を加算す
ることによって得ている。この和の最上位ビット(Q4
)は、RLOC待ち行列658内に16のエントリが存
在することを表わし、従ってRLOC待ち行列がオーバ
フローしようとしていることを通告している。オーバフ
ローは、Q4信号が発生した時にOPUを機能停止させ
ることによって阻止する。加算器666の出力ビットは
NORゲート667によって組合され、RLOC待ち行
列が空きであることを表わす信号が作られる。
例外或は割込みが発生すると、RLOGエントリはRL
OC待ち行列から解きほぐされる。これは、RLOC;
待ち行列内の全ての有効エントリをアクセスすることに
よってなされる。エントリは、挿入ポインタカウンタの
出力を受ける選択入力を有し且つ挿入ポインタカウンタ
を連続的にデクレメントさせるマルチプレクサ668に
よって連続的に入手することができる。しかし多くの場
合、今復号されたばかりのある数の命令に対応する命令
ユニット及び実行ユニットのデータのみを廃棄或はフラ
ンシュすることが望ましい。これは典型的には、ある分
岐命令の分岐が実際に実行ユニットによって決定される
前に、命令をその分岐命令に後続させ得るようにして行
われる。もしプログラム実行を分岐させるべきであった
ことを見出すか、或は分岐に関連した予測が誤りである
ことを見出せば、分岐に続く命令の復号の結果は待ち行
列23からフラッシュしなければならず、また分岐命令
に続く命令内の自動インクレメント或は自動デクレメン
ト規制詞によって変更された汎用レジスタをそれらの元
の値に戻さなければならない。
この目的のために、RLOC待ち行列658内のある数
のエントリだけをマルチプレクサ668から入手し、一
方で挿入ポインタカウンタ662をデクレメントさせて
行(。
RLOC待ち行列658から除去するエントリの特定数
を決定するために、実行ユニットタグと、正確に復号さ
れ且つそれらの結果を待ち行列23内に残すべき命令の
数との和を表わす“保持すべき数”の値にセントされる
フランシュカウンタ669を設けである。この計算は加
算器670によって遂行され、保持すりきエントリの数
は一組のゲート671  (これらのゲートは待ち行列
23を完全にフラッシュする場合には不能化される)を
通して加算器670に印加される。このフラッシング手
順中に、マルチプレクサ672はフラッシュカウンタの
値をデコーダ664の選択入力に供給する。従って、フ
ラッシュすべき情報を有する命令に対応するRLOGカ
ウンタ661と、復元すべきレジスタのみがフラッシン
グのためにアクセスされるようになる。またデコーダ6
64の選択入力はマルチプレクサ673にも印加され関
連カウンタの値を選択させている。この値は、RLOC
待ち行列658からどれ程多くのエントリを除去すべき
かを表わしている。レジスタのフラッシング及び復元の
プロセスは、選択されたRLOGカウンタの値がOに等
しいか否かをNORゲート674によって検査し、且つ
フラッシュカウンタの値がOPUタグの値に等しいこと
をコンパレータ675が指示した時にフラッシングが完
了したことを検出することによって、順次に行うことが
できる。フラッシング手順の特定の段階は実行ユニット
内の順次状態機械676によって遂行される。一般に、
順次状態機械は組合せ論理回路と、システムクロックの
サイクル間の順次状態を保持する一組のレジスタとを含
む。同様に、命令ユニットも順次状態機械677を含み
、フラッシング手順中に命令ユニット汎用レジスタ65
1を更新させる。
汎用レジスタの復元は、命令内読出し競合を処理する必
要があるために複雑である。好ましい方法によれば、−
旦命令内読出し競合が検出されると自動インクレメント
及び自動デクレメント規制詞は命令ユニット汎用レジス
タ651のみを変更し、レジスタ規制詞がポインタの代
りにデータとして実行ユニットに送られる。命令ユニッ
ト汎用レジスタ651は自動インクレメント及び自動デ
クレメント規制詞の評価中に変更されるが、実行ユニッ
ト汎用レジスタ652は変更されない。命令内レジスタ
競合を有する命令が完全に復号された時、現命令がリタ
イアされ実行ユニット汎用レジスタ652が更新される
まで次の命令の復号は一時的に禁止される。この目的の
ために、命令的競合が検出された後に変更されたレジス
タの番号が“遅延更新待ち行列”678内に記憶される
命令がリタイアされると、遅延更新待ち行列678内に
番号が記憶されているレジスタの値が実行ユニット汎用
レジスタ652へ伝送される。ANDゲート679は、
リタイアユニット28からのリタイア信号とレジスタス
コアボード待ち行列657が空きであることを表わす信
号とを組合せて現命令がリタイアしたことを決定する。
フラッシュは命令的競合を有する命令の復号中に発生さ
せることができる。フランシング手順に命令的競合を考
慮する必要を無ならしめるために、命令ユニット汎用レ
ジスタ651は変更されつつあるが実行ユニット汎用レ
ジスタ652は変更されていない場合に、命令ユニット
汎用レジスタ651が変更される度毎にRLOG待ち行
列658内にOの変更値を記憶させる。従って、もしフ
ラッシュが発生すれば命令ユニット汎用レジスタ651
は実行ユニット汎用レジスタ652内に記憶されている
変更されていない初期値に復元される。
第69図は、命令ユニット内の順次状態機械677によ
って実行される制御手順の流れ図を示す。この順次状態
機械並びに命令ユニット汎用レジスタ651は共にOP
U (第1図の21)の−部であることが好ましい、制
御手順の第1段階681において、割込み、例外或はフ
ラッシュが存在すれば実行は段階682へ分岐する0段
階682においては、命令ユニット汎用レジスタ651
は実行ユニットから受ける何れかの値で復元され、現サ
イクルの制御シーケンスは終了する。
割込み、例外或はフラッシュが存在しなければ、段階6
83において命令ユニット順次状態機械677はレジス
タスコアボード待ち行列657がらの命令内競合信号を
検査し、命令的競合が存在する場合には段階684にお
いてOPUを機能停止させる。
もし命令的競合が存在しなければ、段階685において
順次状態機械677は命令的競合の存否を決定するため
にラッチ680を検査する。もし命令的競合が存在すれ
ば、段階686においてOPUは現規制詞がレジスタ規
制詞であるか否かを試験する。もしレジスタ規制詞であ
れば、段階687において、源リスト24は何れかの源
レジスタの変更されていない値をロードされ、また源ポ
インタ待ち行列654はその変更されていない値を指す
ポインタをロードされる。もしその規制詞がレジスタ規
制詞でなければ、段階688においてOPUは現規制詞
が自動インクレメントモード規制詞或は自動デクレメン
トモード規制詞であるか否かを試験する。もしそうであ
れば段階689において、ペースレジスタ番号に対応す
る命令ユニット汎用レジスタ651は変更されるが、R
LOG待ち行列658及び実行ユニット汎用レジスタ6
52には0変更値が伝送される。変更されたペースレジ
スタ番号は遅延更新待ち行列678内に記憶される。も
し現規制詞がレジスタ規制詞でも自動モード規制詞でも
なければ、段階690においてOPUは第1図及び第2
図に関して説明済のような通常の態様でその規制詞を評
価する。
段階691において順次状態機械677は“新フォーク
”信号を検査して現命令が完全に復号されたか否かを決
定する。もし復号されていれば段階692において、現
命令がリタイアされ実行ユニット汎用レジスタが更新さ
れるまで命令デコーダを機能停止させるために、命令デ
コーダ機能停止フラグがセットされる。
現命令がリタイアされると、命令内競合は段階685が
最早検出されな(なる、そこで段階693において順次
状態機械677は遅延更新待ち行列が空きか否かを検査
する。もし空きでなければ、該待ち行列は更新しなけれ
ばならない実行ユニット汎用レジスタ652の番号を含
む。段階694において遅延更新待ち行列内の次のレジ
スタ番号が入手され、命令ユニット汎用レジスタ651
内の該レジスタの内容が対応実行ユニット汎用レジスタ
652へ伝送される0段階695において順次状態機械
677は、変更された最後の汎用レジスタの内容が対応
実行ユニット汎用レジスタ652へ伝送されたか否かを
検査する。もし伝送されていれば、実行ユニット汎用レ
ジスタは現サイクルの終りに全て復元されたことになり
、従って段階696において命令デコーダを機能停止さ
せるフラグはクリヤされる。
もし段階693において遅延更新待ち行列が空きである
と決定されれば、OPUはその通常態様で動作する。段
階697において何れかの源レジスタ番号が源リスト待
ち行列655内へ直接ロードされる。段階698におい
て、自動インクレメント或は自動デクレメントモードを
有する何れかの複雑な規制詞のベースによって措定され
た命令ユニット汎用レジスタが変更され、この変更は実
行ユニッ)13内のRLOG待ち行列658及び汎用レ
ジスタ652へ伝送される。
第70図は実行ユニット内の順次状態機械676の制御
手順の流れ図である。最初の段階711において順次状
態機械676は割込み或は例外の存否を検査する。もし
存在すれば段階712においてフラッシュカウンタが実
行ユニットタグの値にセットされる。同様にして段階7
13においてフラッシュ要求が検出されれば、段階71
4においてフランシュカウンタ669は、実行ユニット
タグプラス(+)復号はされたが未だに実行されずに保
持されている命令の数の値にセントされる。
段階712或は714の後に順次状態機械676は、段
階715におけるRLOG待ち行列が空きか否かの検査
のためにゲート667の出力を検査する。もし空きであ
れば第70図における制御手順の現サイクルは終了する
。空きでなければ、少なくとも1つの実行ユニット汎用
レジスタ652は先行値に復元されなければならない。
段階716において、順次状態機械676はゲート67
4の出力を検査して、フランシュカウンタ669からの
フラッシュタグによってアドレスされたRLOGカウン
タがOに等しいか否かを決定する。もしOに等しければ
、RLOG待ち行列は選択されたRLOGカウンタに対
応する命令に関する如何なる変更エントリも有していな
い。従って、段階717において順次状態機械676は
コンパレータ675の出力を検査してフラッシュタグが
OPUタグに等しいか否かを決定し、もし等しければ命
令の処理がフラッシュされる前に全ての実行ユニット汎
用レジスタ652は先行値に復元されていることになる
。等しくなければ段階718においてフランシュカウン
タがインクレメントされ、実行は段階716に戻されて
次のRLOGカウンタの内容が調べられる。
もし段階716においてRLOGカウンタの値がOに等
しくないことが見出されれば、少なくとも1つの対応エ
ントリがRLOG待ち行列内に存在する。段階719に
おいてRLOGカウンタがデクレメントされ、段階72
0においてRLOG待ち行列が挿入ポインタによって指
示されたエントリの直前のエントリにおいて続出され、
挿入ポインタがデクレメントされる。次で段階721に
おいて、RLOG待ち行列からレジスタ番号によってア
ドレスされた実行ユニット汎用レジスタの値が読出され
、RLOG待ち行列から読出された変更がその実行ユニ
ットレジスタの値に加算され、その和がアドレスされた
実行ユニット汎用レジスタ内に記憶し直される。和及び
レジスタ番号は命令ユニット汎用レジスタ651へも伝
送され、命令ユニット内の対応汎用レジスタに再記憶さ
れる。
次で実行は段階715へ戻され、他に復元しなければな
らない汎用レジスタの存否を決定する。
割込み、例外或はフラッシュの何れも存在しなければ、
段階722において実行ユニットは命令ユニットによっ
て送られるレジスタ変更情報(これは第69図の段階6
87或は689によって行われる)を受けつつあるか否
かを検査する。もしレジスタ変更情報が受信されていれ
ば、段階723においてレジスタ変更情報がRLOG待
ち行列内へ挿入され、OPUタグによって選択されたR
LOGカウンタがインクレメントされる0段階724に
おいてこの変更値が試験され、それがOか否かが決定さ
れる。もしOであれば実行ユニットサイクルは終了する
。Oでなければ段階725において、OPUタグによっ
てアドレスされた実行ユニット汎用レジスタが変更情報
に従って変更され、順次状態機械676によって遂行さ
れる制御手段は終了する。
以上、2つの源規制詞及び1つの宛先規制調を同時に復
号可能な命令デコーダを説明した。これら3つの規制詞
は全てレジスタ規制詞であってもよい。これらの規制詞
の何れか1つは、指標レジスタ、ペースレジスタ及び変
位を表わす複雑な規制詞であることができる。源規制詞
の何れか1つは短リテラルデータを指定することができ
る。3つの規制詞は並列バスを通して中央処理ユニット
の実行ユニットへ伝送されるので、殆んどの命令は1命
令/1クロツクサイクルの速度で復号することができる
。複雑な規制詞は、そのデータ型並びにそのアドレス指
定モードによって決定される可変長を有することができ
る。即ち、複雑な規制詞は、システムクロックの複数サ
イクルに亘って命令バッファから受けた長い長さの拡張
即値データを指定できる。従って、本デコーダは多様な
可変長命令を復号可能であり、効率的なアセンブリ言語
のプログラミングを可能ならしめる。
複数の規制詞を同時に復号する場合には命令内読出し競
合という特定の問題がもたらされる。命令内読出し競合
を検出する回路、及び命令内読出し競合を有する命令の
処理中に発生する恐れがある割込み、例外及びフラッシ
ュを処理する方法を説明した。
複数の規制詞を復号することによって、暗示規制詞を極
めて効率的な方法で前処理することができる。スタック
ポインタの暗示自動インクレメント或は自動デクレメン
トを有する命令に対しては、暗示読出し或は書込みアク
セス型がその命令に割当てられ、それに対応する復号論
理が構成される。
演算コードが復号され、暗示書込み規制詞を有している
ことが見出された場合には、スタックポインタを自動デ
クレメントする宛先オペランドが創作される。演算コー
ドが復号され、暗示読出し規制詞を有することが見出さ
れた場合には、スタックポインタを自動インクレメント
する源オペランドが創作される。レジスタ規制詞或は短
リテラル規制詞は暗示オペランドの発生と同時に復号す
ることができる。暗示規制詞に伴なって命令内読出し競
合の可能性は存在するが、暗示競合は明示規制詞によっ
て発生する読出し競合と同じようにして検出し、処理す
ることができる。
【図面の簡単な説明】
第1図は、本発明を利用する中央パイプライン処理ユニ
ットを有するディジタルコンピュータシステムのブロッ
ク線図であり: 第2図は、命令を処理するために遂行され、また第1図
によるパイプライン命令プロセッサによって異なる命令
を並列に処理できる諸段階を示す図であり; 第3図は、可変長命令の好ましいフォーマントを示す図
であり; 第4図は、ロングワード間の加算を遂行するための特定
の可変長命令を示す図であり;第5図は、ある規制詞の
第1バイト内のモード情報の復号を示す表であり; 第6図は、複数の規制詞を同時に復号できる命令デコー
ダに接続されている命令バッファ及びオペランド処理ユ
ニットを示す回路図であり;第7図は、第6図の命令デ
コーダとオペランド処理ユニットとを相互接続する汎用
規制詞バスのためのフォーマットを示す図であり; 第8図は、第6図の命令デコーダからオペランド処理ユ
ニットへ短リテラル情報を転送する拡張バスのためのフ
ォーマットの図であり;第9図は、第6図の命令デコー
ダからオペランド処理ユニットへレジスタ情報及び他の
オペランド情報を転送する転送バスのためのフォーマッ
トの図であり; 第10図は、第3図のフォーマットの可変長命令を復号
するために命令デコーダによって遂行される好ましい手
順の流れ図であり: 第11図は、3つまでの規制詞を同時に復号するために
第6図の命令デコーダによって遂行される手順の流れ図
であり; 第12図は、第6図の命令デコーダのブロック線図であ
り; 第13図は、バイト変位を有する分岐命令に関して最大
1つのオペランドを復号すべき時に、復号される規制詞
の数及びバイトの数を決定するために使用されるシフト
カウント論理回路の回路図であり; 第14図は、語変位を有する分岐命令に関して多くとも
1つの規制詞を復号すべき時に使用されるシフトカウン
ト論理回路の回路図であり;第15図は、命令のアクセ
ス型から暗示され前処理される多くとも1つの規制詞を
復号すべき時に使用されるシフトカウント論理回路の回
路図であり; 第16図は、バイト変位を有する分岐命令に関して多く
とも2つの規制詞を復号すべき時に使用されるシフトカ
ウント論理回路の回路図であり;第17図は、語変位を
有する分岐命令に関して多くとも2つのオペランドを復
号すべき時に使用されるシフトカウント論理回路の回路
図であり;第18図は、第2規制詞が命令のアクセス型
から暗示され前処理されるような多くとも2つの規制詞
を復号するために使用されるシフトカウント論理回路の
回路図であり; 第19図は、バイト変位を有する分岐命令に関して多く
とも3つの規制詞を同時に復号するために使用されるシ
フトカウント論理回路の回路図であり; 第20図は、語変位を有する分岐命令に関して多くとも
3つの規制詞を同時に復号するために使用されるシフト
カウント論理回路の回路図であり;第21図は、基本ケ
ース内の種々のレベルに配置されている3つまでの規制
詞を同時に復号する時に規制詞を命令バッファ内に順次
付ける(或は配列する) 4つの基本シーケンス(或は
ケース)を示す図であり; 第22図は、4つの基本ケースを定義する真理値表であ
り; 第23図は、第21図に示す4つの基本ケースを検出す
るために最適化された組合せ論理回路の回路図であり; 第24図は、4つの基本ケースに対して復号される規制
詞の数が如何にして決定できるかを示す表であり; 第25図は、単一の復号サイクル中に同時に復号すべき
命令デコーダ内の規制詞の実際の数及びバイトの数を決
定することができるシフトカウント論理回路の回路図で
あり; 第26図は、第25図のシフトカウント論理回路内に使
用されている3人力優先順位エンコーダの回路図であり
; 第27図は、優先順位論理を組込んだマルチプレクサの
回路図であり; 第28図は、即値アドレス指定モードも或は絶対アドレ
ス指定モードも使用されていない場合に、種々のレベル
に復号する時に実際に復号する規制詞の値を示す真理値
表であり; 第29図乃至第32図は、即値アドレス指定モードも或
は絶対アドレス指定モードも使用されていない場合に、
種々のレベルに復号する時に如何にしてシフトカウント
を決定するかを示す真理値表であり; 第33図乃至第38図は、即値アドレス指定モード或は
絶対アドレス指定モードが使用されている場合に、種々
のレベルに復号する時に如何にして実際に復号する規制
詞の数及びシフトカウントを決定するかを示す真理値表
であり; 第39図乃至第41図は、命令バッファ内のバイト1乃
至8に関するレジスタ規制詞及び短リテラル情報を決定
する論理回路の回路図であり;第42図は、種々のレベ
ルにおいて復号される規制詞に関する情報を決定する論
理回路の回路図であり、 第43図は、一般のアドレス指定モード、及び即値アド
レス指定モード或は絶対アドレス指定モードのために第
25図の論理回路を重複使用しているシフトカウント論
理回路の回路図であり;第44図は、即値アドレス指定
モード及び絶対アドレス指定モードに関する規制詞情報
が如何に第38図のシフトカウント論理回路に従って使
用されるかを示し; 第45図は、第12図の命令デコーダ内のクリティカル
パスの長さを短縮するための第43図のシフトカウント
論理回路の変形回路の回路図であり; 第46図は、即値アドレス指定モード或は絶対アドレス
指定モードを有する第1規制詞に関する情報を入手する
ために第45図に使用されている論理の詳細を示す回路
図であり; 第47図は、命令バッファ内の絶対モード規制詞或は即
値モード規制詞に伴う規制詞数を決定するために第45
図に使用される絶対及び即値規制詞選択論理回路の回路
図であり; 第48図は、1つの規制詞の復号が要求された時に選択
されるR1トリーの回路図であり;第49図は、2つの
規制詞の復号が要求された時に選択されるR21−リー
の回路図であり;第50図は、2つの規制詞の復号が要
求された時に、且つ命令バッファ内のバイト1がレジス
タ規制詞でも或は短リテラルでもなく且つ第2規制詞が
短リテラルであってはならない時に限って選択されるR
2H)リーの回路図であり;第51図は、3つの規制詞
の復号が要求された時に、且つ命令バッフプ内のバイト
1及び2がレジスタ規制詞或は短リテラル規制詞である
時に限って選択されるR3トリーの回路図であり;第5
2図は、3つの規制詞の復号が要求された時に、且つ第
3規制詞がレジスタ規制詞である時に限って第3規制詞
を復号する場合に選択されるR3XR)リーの回路図で
あり: 第53図は、8ビツトのレジスタデータ或は短リテラル
データを入手するために如何にレジスタ有効信号、短リ
テラル有効信号、及び短リテラルデータ或はレジスタ番
号を組合せるかを示し;第54図は、復号される第2規
制詞に伴うレジスタデータ或は短リテラルデータを入手
する回路の回路図であり; 第55図は、レジスタデータを入手するために如何にレ
ジスタ有効信号とレジスタ番号とを組合せるかを示し; 第56図は、復号される第3規制詞に伴うレジスタデー
タを入手する回路の回路図であり;第57図は、命令デ
コーダからオペランド処理ユニットへ第1源オペランド
を伝送する妥当性検査論理回路の回路図であり; 第58図は、第2源オペランドを入手し命令デコーダか
らオペランド処理ユニットへ伝送する妥当性検査及び選
択論理回路の回路図であり;第59図は、宛先規制調を
入手し命令デコーダからオペランド処理ユニットへ伝送
する妥当性検査及び選択論理回路の回路図であり; 第60図は、短リテラルデータを入手し命令デコーダか
らオペランド処理ユニットへ伝送する妥当性検査及び選
択論理回路の回路図であり;第61図は、複雑な規制詞
或は分岐変位情報を入手し命令デコーダからオペランド
処理ユニットへ伝送する妥当性検査及び選択論理回路の
回路図であり; 第62図は、拡張即値モードを有する複雑な規制詞を検
出し、復号する回路の回路図であり;第63図は、自動
インクレメントモード或は自動デクレメントモードを有
する複雑な規制詞を検出するデコーダの回路図であり; 第64図は、読出しレジスタマスクを検査することによ
って如何にして命令内読出し競合を検出するかを示す回
路図であり; 第65図は、IRCマスクを検査することによって如何
にして命令内読出し競合を検出するかを示す回路図であ
り; 第66図は、現在復号されている2つの規制詞及び同一
命令に関して既に復号されている任意数の規制詞に関す
る情報を含むIRCマスクを生成する回路の回路図であ
り; 第67図は、第66図の回路によって生成されたIRC
マスクを検査し、また暗示命令内読出し競合をネ★出す
る回路の回路図であり;第68図は、命令デコーダによ
って検出された命令内読出し競合に応答して命令ユニッ
ト及び実行ユニット内のそれぞれの組の汎用レジスタを
更新する命令ユニット及び実行ユニット内の回路の回路
図であり; 第69図は、オペランド処理ユニットに関して第68図
に示した制御論理回路を限定する流れ図であり; 第70図は、実行ユニットに関して第68図に示した制
御論理回路を限定する流れ図である。 10・・・主メモリ、11・・・メモリ・CPUインタ
フェースユニット、12・・・命令ユニット、13・・
・実行ユニット、14・・・主キャッシェ、15・・・
翻訳バッファ、16・・・I10バス、17・・・プロ
グラムカウンタ、18・・・命令キャッシュ、19・・
・命令バッファ、20・・・命令デコーダ、21・・・
オペランド処理ユニット(OPU)、22・・・併合用
マルチプレクサ、23・・・待ち行列、24・・・源リ
スト、25・・・マイクロコード実行ユニット、26・
・・演算及び論理ユニット(ALU)、27・・・リタ
イアユニット、28・・・命令発行ユニット、29・・
・命令バッファ有効カウント、30・・・転送ユニット
、31・・・拡張ユニット、32・・・汎用ユニット、
33・・・シフタ、34・・・循還ユニット、35・・
・第1源バス、36・・・第2源バス、37・・・宛先
バス、38・・・制御論理ユニット、39・・・循還ユ
ニット制御論理回路、40・・・データ経路、101・
・・拡張演算コードデコーダ、105・・・組合せ論理
ユニット、108・・・減算器、110・・・拡張即値
検出器、113.127・・・加算器、114・・・要
求論理ユニット、115・・・モードデコーダ、123
・・・シフトカウント論理ユニット、126・・・命令
内読出し競合検出器、128・・・出力選択及び妥当性
検査論理ユニット、132・・・シフタ、231.23
2.241.249・・・規制詞情報論理ユニット、2
43・・・規制詞選択論理ユニット、387.399.
416.438.46B、554.611.651.6
52.680・・・レジスタ(ラッチ)、426.51
4.5341.666.670・・・加算器、430・
・・EXバス、470・・・CPババス492.659
.661.662.669・・・カウンタ、513.5
15.516.517.603.663.664.66
5・・・デコーダ、551.552・・・読出しレジス
タマスク、653・・・フォーク待ち行列、655・・
・源ポインタ待ち行列、656・・・宛先ポインタ待ち
行列、657・・・レジスタスコアボード待ち行列、6
58・・・RLOG待ち行列、676.677・・・順
次状態機械、678・・・遅延更新待ち行列。 FIG、3 FIG、4 EX I?ス フτ−χツド TRべ′ス 7丁−マブト FIG、 9 FIG、 +3 宇 t17A/g&5p<と4h4SLNl夏譬2^1
F[G、20 FIG、22 FIG。23 FIG、24 FIG、26 FIG、37 FIG、38 FIG、43 FIG、45 v+H二協ヲト FI G、 47 Rレリー F I G、 48 lG R2)リ一 FIG、53 FIG、54 FIG、58 FIG、55 FIG、60 FIG、63

Claims (1)

  1. 【特許請求の範囲】 1、オペランドに対する演算を規定する演算コードを有
    する可変長命令内の複数の規制詞のシーケンスを同時に
    復号する方法において;前記規制詞は第1及び第2源オ
    ペランド及び宛先オペランドを含むオペランドを位置付
    ける情報を提供し、該情報を提供するために前記演算コ
    ードとは無関係なアドレス指定モードを使用しており;
    前記方法が: (a)前記演算コード及び複数の規制詞を受信し;(b
    )複数の規制詞を同時に復号して前記第1源オペランド
    、第2源オペランド及び宛先オペランドを位置ぎめする
    ための情報を入手する諸段階を具備する方法。 2、アドレス指定モードは;指定されたオペランドが規
    制詞内に含まれるリテラルデータである短リテラルモー
    ドと、指定されたオペランドが指定されたレジスタの内
    容であるレジスタモードと、指定されたオペランドが指
    定されたレジスタの内容に依存するアドレスに位置付け
    される複雑なモードと、指定されたオペランドが命令の
    流れの中に位置する長いリテラルである複雑なモードと
    を含む請求項1記載の方法。 3、複雑な規制詞によって指定される情報を第1のバス
    上へ伝送し、リテラル規制詞によって指定される情報を
    第2のバス上へ伝送し、レジスタ規制詞によって指定さ
    れる情報を第3のバス上へ伝送する諸段階をも具備する
    請求項2記載の方法。 4、命令内の規制詞のシーケンス内の複雑な規制詞の位
    置を示す情報を第1のバス上へ伝送し、命令内の規制詞
    のシーケンス内のリテラル規制詞の位置を示す情報を第
    2のバス上へ伝送する諸段階をも具備する請求項3記載
    の方法。 5、アドレス指定モードは、指定されたオペランドが指
    定されたレジスタの内容であるレジスタモードを含み;
    規制詞が指定されたレジスタのアドレスを含み;指定さ
    れたレジスタのアドレスを、第1源オペランドに関する
    情報を伝送する第1部分と、第2源オペランドに関する
    情報を伝送する第2部分と、宛先オペランドに関する情
    報を伝送する第3部分とを有するバス上へ伝送する段階
    をも具備し;指定されたレジスタのアドレスは、復号さ
    れたレジスタ規制詞が第1或は第2源規制詞であるか或
    は宛先規制詞であるかに依存して前記バスの関連部分上
    へ伝送される請求項1記載の方法。 6、有効第1源規制詞、有効第2源規制詞或は有効宛先
    規制詞がそれぞれ復号されたか否かを示すそれぞれの有
    効データフラグをバスの関連各部分上へ伝送し、第1源
    規制詞、第2源規制詞及び宛先規制詞がそれぞれレジス
    タモードを有しているか否かを示すそれぞれのレジスフ
    ラグをバスの関連各部分上へ伝送する段階をも具備する
    請求項5記載の方法。 7、アドレス指定モードは、指定されたオペランドが指
    定されたレジスタの内容であるレジスタモードと、指定
    されたオペランドが指定されたレジスタの内容に依存す
    るアドレスに位置付けされる複雑なモードとを含み;同
    時復号段階は、命令内の規制詞のシーケンスを複雑なモ
    ードを有する規制詞の位置に依存する複数のケースの特
    定の1つに属するものとして認識することを含む請求項
    1記載の方法。 8、認識は、複雑な規制詞に関して指標レジスタが指定
    されているか否かにも依存する請求項7記載の方法。 9、複雑なモードを有する規制詞は、その特定アドレス
    指定モードに依存する可変長を有する請求項7記載の方
    法。 10、第1及び第2源オペランド及び宛先オペランドを
    含むオペランドに対する演算を規定する演算コードを有
    する可変長命令内の複数の規制詞のシーケンスを同時に
    復号する方法において;前記規制詞は前記オペランドを
    位置付ける情報を提供し、前記演算コードはオペランド
    のアクセス型及びデータ型をも規定し、前記規制詞は前
    記情報を提供するために前記演算コードとは無関係のア
    ドレス指定モードを使用しており;前記方法が: (a)前記命令内に含まれる演算コード及び複数の規制
    詞のシーケンスを受信し; (b)i)前記演算コードを復号して前記シーケンス内
    の規制詞のアクセス型及びデータ型を 決定し、 ii)前記シーケンス内の規制詞のアドレス指定モード
    を復号し、 iii)決定されたアクセス型及びデータ型及び復号さ
    れたアドレス指定モードに依存して 同時に復号すべき前記シーケンス内の規制 詞の数(あるアクセス型及びデータ型及び アドレス指定モードに対して少なくとも2 つの源規制詞及び1つの宛先規制詞が同時 に復号可能である)を決定し、 iv)前記シーケンス内の前記規制詞の数に関する情報
    を入手し、 v)入手した情報を、第1源オペランドに関する情報、
    第2源オペランドに関する情報、及び宛先オペランドに
    関する情報に分離す る ことによって前記複数の規制詞のシーケンスを同時に復
    号する 諸段階を具備する方法。 11、受信段階は、規制詞によって指定された情報が有
    効であるか否かを示す有効データフラグの受信を含み;
    同時に復号すべき規制詞数決定段階は、無効データを指
    定する規制詞を同時に復号しないことを決定する請求項
    10記載の方法。 12、アドレス指定モードは、指定されたオペランドが
    指定されたレジスタの内容に依存するアドレスに位置付
    けられる複雑なモードを含み;同時に復号すべき規制詞
    数決定段階は、複雑なモードを有する1つの規制詞のみ
    を同時に復号することを決定する請求項10記載の方法
    。 13、アドレス指定モードは、指定されたオペランドが
    短リテラル規制詞の単一のバイト内に含まれるリテラル
    データである短リテラルモードを含み;同時に復号すべ
    き規制詞数決定段階は、複雑なモードを有する1つの規
    制詞のみを同時に復号することを決定する請求項10記
    載の方法。 14、規制詞数決定段階は、アドレス指定モードがアク
    セス型と不一致である時にアドレス指定障害を決定する
    ことをも含み;第1規制詞のアクセス型と第1規制詞の
    アドレス指定モードだけを比較することによってアドレ
    ス指定障害を決定可能ならしめるために規制詞の数を決
    定する請求項10記載の方法。 15、アドレス指定モードは、指定されたオペランドが
    指定されたレジスタの内容であるレジスタモードと、指
    定されたオペランドが指定されたレジスタの内容に依存
    するアドレスに位置付けられる複雑なモードとを含み;
    命令内の規制詞のシーケンスを複雑なモードを有する規
    制詞の位置に依存する複数のケースの特定の1つに属す
    るものとして認識する段階をも具備し;決定、入手及び
    分離の諸段階はシーケンスが属している特定ケースに基
    づく請求項10記載の方法。 16、認識は、複雑な規制詞に関して指標レジスタが指
    定されているか否かにも依存する請求項15記載の方法
    。 17、複雑なモードを有する規制詞は、その特定アドレ
    ス指定モード及びそのデータ型に依存する可変長を有す
    る請求項15記載の方法。 18、入手した情報を分離する段階は、第1源オペラン
    ド、第2源オペランド及び宛先オペランドに関する情報
    をバスのそれぞれの部分上へ同時に伝送することを含む
    請求項10記載の方法。 19、アドレス指定モードは、指定されたオペランドが
    指定されたレジスタの内容であるレジスタモードを含み
    ;バスの関連部分上へ伝送される各オペランドに関する
    情報は、関連オペランドが復号されたか否かを示す有効
    データフラグと、関連オペランドがレジスタの内容であ
    るか否かを示すレジスタフラグと、関連オペランドがレ
    ジスタの内容であることをレジスタフラグが示した時に
    関連オペランドを含むレジスタを指定する番号とを含む
    請求項18記載の方法。 20、関連する演算コードと、関連する複数の規制詞の
    シーケンスとを有する可変長命令を処理するために、デ
    ータ処理ユニットにおいて複数の規制詞を同時に復号し
    処理する方法において;前記演算コードは、演算中に読
    出される源オペランドと、演算によって変化される宛先
    オペランドとを含むオペランドに対する演算を規定し;
    前記規制詞は、前記オペランドを位置付ける情報を提供
    し、該情報を提供するために前記演算コードとは無関係
    なアドレス指定モードを使用し;前記アドレス指定モー
    ドは、指定されたオペランドが指定されたレジスタの内
    容であるレジスタモードと、指定されたオペランドが指
    定されたレジスタの内容に依存するアドレスに位置付け
    される複雑なモードとを含み;前記データ処理ユニット
    は、演算コード及び同時に復号すべき関連する複数の規
    制詞のシーケンスを受信する命令バッファと、3つの規
    制詞を同時に復号して2つの源オペランド及び1つの宛
    先オペランドを位置付ける情報を提供するデコーダと、
    複雑なモードを有する規制詞によって指定されたオペラ
    ンドのアドレスを計算するオペランド処理ユニットと、
    演算コードによって示された演算を遂行する実行ユニッ
    トとを有し;前記方法が: (a)演算コード及び同時に復号すべき関連する複数の
    規制詞のシーケンスを受信し; (b)規制詞の1つが複雑なアドレス指定モードを有す
    る規制詞である複数の規制詞を同時に復号して2つの源
    オペランド及び1つの宛先オペランドを位置付ける情報
    を提供し; (c)前記オペランド処理ユニットを使用して前記複雑
    な規制詞によって指定されたオペランドのアドレスを計
    算し; (d)源オペランドを入手し; (e)前記実行ユニットを使用して演算コードによって
    示された演算を遂行し; (f)宛先オペランドを変更する 諸段階を具備する方法。 21、源オペランド入手段階は:第1及び第2の各オペ
    ランド毎に有効データフラグ、レジスタフラグ及びレジ
    スタ番号をデコーダから受信し;レジスタ番号が有効で
    あることを関連レジスタフラグが示した時には指定され
    たレジスタから源オペランドを入手し;また源オペラン
    ドが復号されたことを関連有効データフラグは示してい
    るがレジスタ番号は有効でないことを関連レジスタフラ
    グが示した時にはオペランド処理ユニットによって計算
    されたアドレスにある源オペランドを入手する諸段階を
    具備する請求項20記載の方法。 22、関連する演算コード及び関連する複数の規制詞の
    シーケンスを有する可変長命令を処理するデータ処理ユ
    ニットにおいて;前記演算コードは、演算中に読出され
    る源オペランドと演算によって変化される宛先オペラン
    ドとを含むオペランドに対する演算を規定し;前記規制
    詞は、前記オペランドを位置付ける情報を提供し、演算
    コードとは無関係なオペランドアドレス指定モードを有
    し;前記データ処理ユニットは:(a)演算コード及び
    同時に復号すべき関連する複数の規制詞のシーケンスを
    受信する命令バッファ手段; (b)第1源オペランドを位置付ける情報を入手するた
    めに関連する複数の規制詞のシーケンス内の第1オペラ
    ンド規制詞と、第2源オペランドを位置付ける情報を入
    手するために関連する複数の規制詞のシーケンス内の第
    2オペランド規制詞と、宛先オペランドを位置付ける情
    報を入手するために関連する複数の規制詞のシーケンス
    内の第3オペランド規制詞とを同時に復号するために、
    前記命令バッファに接続されている命令復号手段; (c)前記命令復号手段によって入手された情報に応答
    して第1及び第2オペランドを取り込むオペランド取り
    込み手段; (d)前記オペランド取り込み手段によって取り込まれ
    た源オペランドに対して前記命令バッファ手段内に受信
    されている演算コードによって示される演算を遂行し、
    命令復号手段から提供される情報によって指定された位
    置にある宛先オペランドを変化させる実行手段 の組合せを具備するデータ処理ユニット。 23、命令復号手段は;単一の復号サイクル中に同時に
    復号すべき規制詞の数を決定する手段と、前記復号すべ
    き規制詞の数に応答して第1源オペランドに、第2源オ
    ペランド及び宛先オペランドを位置付けする情報を入手
    し、分離する手段とを含む請求項22記載のデータ処理
    ユニット。 24、命令バッファ手段は、同時に復号すべき規制詞の
    シーケンス内の複数の規制詞に関するそれぞれの有効デ
    ータフラグを受信し;同時に復号すべき規制詞の数を決
    定する手段は、無効規制詞が復号されないように前記有
    効データフラグに応答する請求項23記載のデータ処理
    ユニット。 25、アドレス指定モードは、指定されたオペランドが
    指定されたレジスタの内容に依存するアドレスに位置付
    けされる複雑なモードを含み;同時に復号すべき規制詞
    の数を決定する手段は、複雑なモードを有する1つの規
    制詞だけを単一の復号サイクル中に復号するように規制
    詞のシーケンス内の関連する複数の規制詞のモードに応
    答する請求項23記載のデータ処理ユニット。 26、アドレス指定モードは、指定されたオペランドが
    短リテラル規制詞の単一のバイト内に含まれるリテラル
    データである短リテラルモードを含み;取り込み手段は
    、短リテラルデータを複数のバイトを有する語に拡張す
    る手段を含み:同時に復号すべき規制詞の数を決定する
    手段は、短リテラルモードを有する1つの規制詞だけを
    単一の復号サイクル中に復号するように規制詞のシーケ
    ンス内の関連する複数の規制詞のモードに応答する請求
    項23記載のデータ処理ユニット。 27、演算コードは、それらの関連規制詞のアクセス型
    及びデータ型を規定し;単一の復号サイクル中に同時に
    復号すべき規制詞の数を決定する手段は、命令バッファ
    手段内の演算コードを復号して命令バッファ手段内の関
    連する規制詞のシーケンス内の規制詞の関連アクセス型
    及びデータ型を決定する手段と、命令バッファ内の関連
    する規制詞のシーケンス内の規制詞のオペランドアドレ
    ス指定モードを復号する手段とを含み;単一の復号サイ
    クル中に同時に復号すべき規制詞の数を決定する手段は
    、命令バッファ手段内の関連する規制詞のシーケンス内
    の規制詞のアクセス型、データ及びオペランドアドレス
    指定モードに応答する請求項23記載のデータ処理ユニ
    ット。 28、単一の復号サイクル中に同時に復号すべき規制詞
    の数を決定する手段は、復号すべき規制詞のアドレス指
    定モードがその関連アクセス型と不一致である時にアド
    レス障害を決定する手段を含む請求項27記載のデータ
    処理ユニット。 29、アドレス指定障害を決定する手段は、関連シーケ
    ンス内の第1規制詞のアクセス型と関連シーケンス内の
    第1規制詞のオペランドアドレス指定モードだけを比較
    する手段を含み;単一の復号サイクル中に同時に復号す
    べき規制詞の数を決定する手段は、関連シーケンス内の
    規制詞のオペランドアドレス指定モードに応答し、該シ
    ーケンス内の第2及び第3規制詞がアクセス型と不一致
    である可能性のあるオペランドアドレス指定モードを有
    していればこれらの規制詞を復号させない請求項28記
    載のデータ処理ユニット。 30、単一のサイクル中に同時に復号すべき規制詞の数
    を決定する手段は;関連する規制詞のシーケンス内の規
    制詞のオペランドアドレス指定モードに応答して命令バ
    ッファ手段内の演算コードに対して若干のアクセス型を
    呈する復号すべき規制詞の数をそれぞれ計算する複数の
    論理トリー回路と、同時に復号すべき規制詞の数を関連
    する規制詞のシーケンス内の規制詞のアクセス型に応答
    して前記トリーの1つから選択する手段とを含む請求項
    27記載のデータ処理ユニット。 31、トリー回路は、関連する規制詞のシーケンス内の
    最初の2つの規制詞のデータ型を受信し;データ型は、
    トリー回路を通るデータ型情報の伝播遅延を減少させる
    ためにトリーの出力付近で受信される請求項30記載の
    データ処理ユニット。 32、オペランドアドレス指定モードは、アドレスされ
    たオペランドが命令バッファ手段に受信された拡張即値
    データの4バイトより多くからなる拡張即値モードを含
    み;オペランドアドレス指定モードを復号する手段は、
    前記拡張即値アドレス指定モードを検出する手段を含み
    ;命令復号手段は、前記拡張即値アドレス指定モードを
    検出する手段によって拡張即値モードが検出された後の
    少なくとも1つの爾後の復号サイクル中に拡張即値デー
    タを命令バッファから入手する手段をも具備する請求項
    27記載のデータ処理ユニット。 33、類例バッファから拡張即値データを入手する手段
    は;拡張即値モードを有する規制詞のデータ型に応答し
    て拡張即値モードが検出された後に拡張即値データを入
    手するための後続復号サイクルの数を決定する手段を含
    む請求項32記載のデータ処理ユニット。 34、アドレス指定モードは、指定されたオペランドが
    指定されたレジスタの内容であるレジスタモードと、指
    定されたオペランドが指定されたレジスタの内容に依存
    するアドレスに位置付けされる複雑なモードとを含み;
    命令デコーダ手段は、命令バッファ手段内の関連する規
    制詞のシーケンス内の規制詞のオペランドアドレス指定
    モードを復号する手段と、命令バッファ内の規制詞のシ
    ーケンスを複雑なモードを有する第1規制詞の位置に依
    存する複数のケースの特定の1つに属するものとして認
    識する手段と、前記認識手段によって認識された特定ケ
    ースに応答して第1源オペランド、第2源オペランド及
    び宛先オペランドを位置付けする情報を入手する手段と
    を具備する請求項22記載のデータ処理ユニット。 35、認識手段は、複雑な規制詞に関して指標レジスタ
    が指定されているか否かに応答する請求項34記載のデ
    ータ処理ユニット。 36、複雑なモードを有する規制詞は、そのオペランド
    アドレス指定モードに依存する可変長を有し;情報を入
    手する手段は、複雑なモードを有する第1源規制詞に後
    続する第2源規制詞及び宛先規制調に関する情報を入手
    する手段を含む請求項34記載のデータ処理ユニット。 37、アドレス指定モードは、指定されたオペランドが
    指定されたレジスタの内容であるレジスタモードと、指
    定されたオペランドが指定されたレジスタの内容に依存
    するアドレスに位置付けられる複雑なモードとを含み;
    データ処理ユニットは、命令復号手段からオペランド取
    り込み手段までの第1バスと、複雑なモードを有する規
    制詞によって指定されたオペランドを位置付けする情報
    を前記第1バス上へ伝送する手段と、第1、第2及び第
    3部分を有し命令復号手段からオペランド取り込み手段
    までの第2バスと、第1レジスタ番号及びこの第1レジ
    スタ番号がレジスタモードを有する第1源オペランドに
    よって指定されているか否かを示す第1レジスタフラグ
    を前記第1部分上へ伝送する手段と、第2レジスタ番号
    及びこの第2レジスタ番号がレジスタモードを有する第
    2源オペランドによって指定されているか否かを示す第
    2レジスタフラグを前記第2部分上へ伝送する手段と、
    第3レジスタ番号及びこの第3レジスタ番号がレジスタ
    モードを有する宛先オペランドによって指定されている
    か否かを示す第3レジスタフラグを前記第3部分上へ伝
    送する手段とを含む請求項22記載のデータ処理ユニッ
    ト。
JP2021908A 1989-02-03 1990-01-31 可変長命令アーキテクチャにおける複数の規制詞の復合方法及び装置 Pending JPH02240733A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US307347 1989-02-03
US07/307,347 US5148528A (en) 1989-02-03 1989-02-03 Method and apparatus for simultaneously decoding three operands in a variable length instruction when one of the operands is also of variable length
AU53939/90A AU635016B2 (en) 1989-02-03 1990-04-27 Decoding multiple specifiers in a variable length instruction architecture

Publications (1)

Publication Number Publication Date
JPH02240733A true JPH02240733A (ja) 1990-09-25

Family

ID=25630263

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021908A Pending JPH02240733A (ja) 1989-02-03 1990-01-31 可変長命令アーキテクチャにおける複数の規制詞の復合方法及び装置

Country Status (5)

Country Link
US (1) US5148528A (ja)
EP (1) EP0380847B1 (ja)
JP (1) JPH02240733A (ja)
AU (1) AU635016B2 (ja)
CA (1) CA1324671C (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5700721A (en) * 1992-04-03 1997-12-23 Motorola, Inc. Structure and method for metallization of semiconductor devices

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5274792A (en) * 1989-08-19 1993-12-28 Fujitsu Limited Information processing apparatus with parallel instruction decoding
US5615349A (en) * 1990-09-04 1997-03-25 Mitsubishi Denki Kabushiki Kaisha Data processing system capable of execution of plural instructions in parallel
US5745723A (en) * 1989-09-04 1998-04-28 Mitsubishi Denki Kabushiki Kaisha Data processing system capable of execution of plural instructions in parallel
JPH07120284B2 (ja) * 1989-09-04 1995-12-20 三菱電機株式会社 データ処理装置
JP2834289B2 (ja) * 1990-07-20 1998-12-09 株式会社日立製作所 マイクロプロセッサ
US5305446A (en) 1990-09-28 1994-04-19 Texas Instruments Incorporated Processing devices with improved addressing capabilities, systems and methods
US5317740A (en) * 1991-03-07 1994-05-31 Digital Equipment Corporation Alternate and iterative analysis of computer programs for locating translatable code by resolving callbacks and other conflicting mutual dependencies
JP2970821B2 (ja) * 1991-08-21 1999-11-02 松下電器産業株式会社 データ処理装置
GB2260467A (en) * 1991-09-12 1993-04-14 Blick Communications Ltd Repeater
SG45251A1 (en) * 1992-02-06 1998-01-16 Intel Corp Rotators in machine instruction length calculation
US5375216A (en) * 1992-02-28 1994-12-20 Motorola, Inc. Apparatus and method for optimizing performance of a cache memory in a data processing system
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
KR100248903B1 (ko) * 1992-09-29 2000-03-15 야스카와 히데아키 수퍼스칼라마이크로프로세서에서의 적재 및 저장연산처리방법 및 시스템
US5479626A (en) * 1993-07-26 1995-12-26 Rockwell International Corporation Signal processor contexts with elemental and reserved group addressing
US5784552A (en) * 1993-07-28 1998-07-21 Digital Equipment Corporation Debugging a computer program by simulating execution forwards and backwards in a main history log and alternative history logs
US6003120A (en) * 1993-12-30 1999-12-14 Intel Corporation Method and apparatus for performing variable length processor write cycles
US5809272A (en) * 1995-11-29 1998-09-15 Exponential Technology Inc. Early instruction-length pre-decode of variable-length instructions in a superscalar processor
US5895497A (en) * 1995-12-06 1999-04-20 Texas Instruments Incorporated Microprocessor with pipelining, memory size evaluation, micro-op code and tags
US5893930A (en) * 1996-07-12 1999-04-13 International Business Machines Corporation Predictive translation of a data address utilizing sets of associative entries stored consecutively in a translation lookaside buffer
US6041403A (en) * 1996-09-27 2000-03-21 Intel Corporation Method and apparatus for generating a microinstruction responsive to the specification of an operand, in addition to a microinstruction based on the opcode, of a macroinstruction
US6079002A (en) * 1997-09-23 2000-06-20 International Business Machines Corporation Dynamic expansion of execution pipeline stages
US6192465B1 (en) * 1998-09-21 2001-02-20 Advanced Micro Devices, Inc. Using multiple decoders and a reorder queue to decode instructions out of order
US6694423B1 (en) * 1999-05-26 2004-02-17 Infineon Technologies North America Corp. Prefetch streaming buffer
JP3607209B2 (ja) * 2001-03-08 2005-01-05 松下電器産業株式会社 クロック制御方法及び当該クロック制御方法を用いた情報処理装置
US7254696B2 (en) * 2002-12-12 2007-08-07 Alacritech, Inc. Functional-level instruction-set computer architecture for processing application-layer content-service requests such as file-access requests
US7941640B1 (en) * 2006-08-25 2011-05-10 Marvell International Ltd. Secure processors having encoded instructions
US10282204B2 (en) * 2016-07-02 2019-05-07 Intel Corporation Systems, apparatuses, and methods for strided load
US10089077B1 (en) 2017-01-10 2018-10-02 Apple Inc. Parallel processing circuitry for encoded fields of related threads
US11204768B2 (en) 2019-11-06 2021-12-21 Onnivation Llc Instruction length based parallel instruction demarcator

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6160459A (ja) * 1984-08-20 1986-03-28 内山工業株式会社 容器栓とその製造方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US32493A (en) * 1861-06-04 Improvement in rakes for harvesters
DE2846495C2 (de) * 1977-10-25 1993-10-21 Digital Equipment Corp Zentraleinheit
US4276594A (en) * 1978-01-27 1981-06-30 Gould Inc. Modicon Division Digital computer with multi-processor capability utilizing intelligent composite memory and input/output modules and method for performing the same
US4236206A (en) * 1978-10-25 1980-11-25 Digital Equipment Corporation Central processor unit for executing instructions of variable length
CA1174370A (en) * 1980-05-19 1984-09-11 Hidekazu Matsumoto Data processing unit with pipelined operands
USRE32493E (en) * 1980-05-19 1987-09-01 Hitachi, Ltd. Data processing unit with pipelined operands
US4370709A (en) * 1980-08-01 1983-01-25 Tracor, Inc. Computer emulator with three segment microcode memory and two separate microcontrollers for operand derivation and execution phases
JPS5932045A (ja) * 1982-08-16 1984-02-21 Hitachi Ltd 情報処理装置
US4498136A (en) * 1982-12-15 1985-02-05 Ibm Corporation Interrupt processor
US4594655A (en) * 1983-03-14 1986-06-10 International Business Machines Corporation (k)-Instructions-at-a-time pipelined processor for parallel execution of inherently sequential instructions
US4586130A (en) * 1983-10-03 1986-04-29 Digital Equipment Corporation Central processing unit for a digital computer
US4716541A (en) * 1984-08-02 1987-12-29 Quatse Jesse T Boolean processor for a progammable controller
EP0239081B1 (en) * 1986-03-26 1995-09-06 Hitachi, Ltd. Pipelined data processor capable of decoding and executing plural instructions in parallel
US4890218A (en) * 1986-07-02 1989-12-26 Raytheon Company Variable length instruction decoding apparatus having cross coupled first and second microengines
US4891753A (en) * 1986-11-26 1990-01-02 Intel Corporation Register scorboarding on a microprocessor chip
CA1327080C (en) * 1987-05-26 1994-02-15 Yoshiko Yamaguchi Reduced instruction set computer (risc) type microprocessor

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6160459A (ja) * 1984-08-20 1986-03-28 内山工業株式会社 容器栓とその製造方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5700721A (en) * 1992-04-03 1997-12-23 Motorola, Inc. Structure and method for metallization of semiconductor devices

Also Published As

Publication number Publication date
AU635016B2 (en) 1993-03-11
EP0380847A3 (en) 1992-01-02
EP0380847A2 (en) 1990-08-08
EP0380847B1 (en) 1998-07-01
CA1324671C (en) 1993-11-23
US5148528A (en) 1992-09-15
AU5393990A (en) 1991-12-19

Similar Documents

Publication Publication Date Title
JPH02240733A (ja) 可変長命令アーキテクチャにおける複数の規制詞の復合方法及び装置
US5167026A (en) Simultaneously or sequentially decoding multiple specifiers of a variable length pipeline instruction based on detection of modified value of specifier registers
US5142633A (en) Preprocessing implied specifiers in a pipelined processor
US5125083A (en) Method and apparatus for resolving a variable number of potential memory access conflicts in a pipelined computer system
EP0380859B1 (en) Method of preprocessing multiple instructions
US5826074A (en) Extenstion of 32-bit architecture for 64-bit addressing with shared super-page register
KR100230105B1 (ko) 간략화된 명령 세트 프로세서의 성능 개선 방법 및 그 프로세서 시스템
KR100218572B1 (ko) 고성능 프로세서의 번역버퍼에 대해 세분성 힌트를 이용하는 프로세서 동작 방법 및 장치
KR100231380B1 (ko) 감소된 명령 세트 프로세서 내부 레지스터의 데이타를 조작하는 방법 및 장치
JP2744890B2 (ja) ブランチ予測式データ処理装置および動作方法
EP0381444A2 (en) Branch prediction
EP0782071A2 (en) Data processor
JPH02208729A (ja) マイクロコード式実行装置での並列動作による複数機能装置の制御
JPH03116235A (ja) 分岐処理方法及び分岐処理装置
JPH0429093B2 (ja)
JP2834292B2 (ja) データ・プロセッサ
JPH02234248A (ja) 仮想メモリシステムをベースとするデジタルコンピュータの命令パイプライン内の予めフェッチした命令でメモリアクセス例外を処理する方法
JPH02207351A (ja) データ路の巾が予め定められたコンピュータシステムのデータ記憶レートを増加する方法及び装置
JP3866920B2 (ja) 命令のリタイアメント時に物理レジスタを選択的に自由にするよう構成されたプロセッサ
US5197133A (en) Control store addressing from multiple sources
EP1050800A1 (en) A pipelined execution unit
US5729729A (en) System for fast trap generation by creation of possible trap masks from early trap indicators and selecting one mask using late trap indicators
AU628534B2 (en) Pipeline processing of register and register modifying specifiers within the same instruction
IE901518A1 (en) Pipeline processing of register and register modifying¹specifiers within the same instruction
IE901516A1 (en) Decoding multiple specifiers in a variable length¹instruction architecture