JPH031235A - パイプラインプロセッサにおける暗示規制詞の前処理方法及び装置 - Google Patents

パイプラインプロセッサにおける暗示規制詞の前処理方法及び装置

Info

Publication number
JPH031235A
JPH031235A JP2024311A JP2431190A JPH031235A JP H031235 A JPH031235 A JP H031235A JP 2024311 A JP2024311 A JP 2024311A JP 2431190 A JP2431190 A JP 2431190A JP H031235 A JPH031235 A JP H031235A
Authority
JP
Japan
Prior art keywords
specifier
instruction
register
specifiers
operand
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
JP2024311A
Other languages
English (en)
Inventor
David B Fite
ディヴィッド ビー ファイト
John E Murray
ジョン イー マーレン
Mark A Firstenberg
マーク エイ ファーステンバーグ
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 JPH031235A publication Critical patent/JPH031235A/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/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30054Unconditional branch 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/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
    • G06F9/30163Decoding the operand specifier, e.g. specifier format with implied specifier, e.g. top of stack
    • 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/3017Runtime instruction translation, e.g. macros
    • G06F9/30178Runtime instruction translation, e.g. macros of compressed or encrypted 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/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/3824Operand accessing

Abstract

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

Description

【発明の詳細な説明】 〔関連出願〕 本発明が係る計算システムに関しては、本発明と同時に
出願された以下の合衆国特許出願にも記述されている。
エバンスら:ディジタルコンピュータのシステム制御装
置とサービス処理装置との間のインタフェース; アーノルドら:中央処理装置を有するマルチプロセッサ
システムのためにシステム制御装置をインタフェースす
る方法及び装置; ガブリアルドらニジステム主メモリを有するマルチプロ
セッサシステムのためにシステム制御装置をインタフェ
ースする方法及び装置:D、ファイトら:パイプライン
化されたコンピュータシステムにおける可変数の潜在的
なメモリアクセス競合を解決する方法及び装置;D、フ
ァイトら:可変長命令アーキテクチャにおける複数の規
制詞の復号方法及び装置:D、ファイトら;仮想命令キ
ャッシュ再充填アルゴリズム; マーレイら一同一命令内のレジスタ規制詞及びレジスタ
変更規制詞のバイブライン処理よマーレイら:ディジタ
ルコンピュータのデータ依存性を解消する複数命令処理
システム;D、ファイトら:分岐予測; フォソサムら:ディジタルコンピュータのためのパイプ
ライン化された浮動小数点加算器;グルンドマンら:自
己刻時式レジスタファイル:ビーヴエンら:パイプライ
ン化されたコンピュータシステムにおいてエラーを検出
し訂正する方法及び装置; フリンら:マルチプロセッサシステムにおいてシステム
制御装置を使用して通信要求を調停する方法及び装置; E、ファイトら:マイクロコード化された実行ユニ7)
における並列動作を有する複数機能ユニットの制御法; ウヱップ・ジュニアら:仮想メモリシステムに基いて動
作するディジタルコンピュータの命令バイプライン内に
先取り命令を有するメモリアクセス例外の処理法: ヘザーリントンら:ディジタルコンピュータにおいて仮
想メモリアドレスから物理メモリアドレスへの変換を制
御する方法及び装置; ヘザーリントンら:エラー訂正能力を有するライトパン
クバッファ; フリンら:マルチプロセッサにおいてシステム制御装置
を使用して通信要求を調停する方法及び装置; チナスワミら:マルチプロセッサシステム内のシステム
装置間のデータトランザクション用モジュラクロスバ相
互接続回路網; ポルツインら:入力/出力装置を有するマルチプロセッ
サシステムのシステム制御装置をインタフェースする方
法及び装置; ガブリアルドらニジステム主メモリを有するマルチプロ
セッサのシステム制御装置をインタフェースする手段と
共に使用するメモリ形態;及びガブリアルドらニジステ
ムモジュール間のドラム制御信号のエラーを検査する方
法及び装置。
〔発明の分野〕
本発明は、−船釣にはディジタルコンピュータに関し、
特定的にはパイプライン化された中央処理装置に関する
。特に、本発明はオペランドに対する演算を規定する演
算コード及びオペランドを位置付ける情報を提供するオ
ペランド規制詞を有する可変長命令を復号する命令デコ
ーダに関する。
〔発明の背景〕
パイプライン化は、ディジタルコンピュータ内の中央処
理装置(cP U)の性能を高めることが立証された方
法である。パイプライン化されたCPUにおいては、複
数の機能ユニ・7トが複数の命令に対する基本動作を同
時に実行する。パイプラインにおいては、データは全て
の段において同時に各段から次の段ヘシフトされる。シ
フトの時点には、各段がその基本動作を完了しているこ
とが望ましい。もしシフトの時点にある中間の段がその
割当てられたタスクを完了できなければ、少なくともそ
れに先行する段の機能を停止させるか、或はこの中間段
がデータを受入れるY$備が整うまでそれらの結果を一
時的に記憶させなければならない。その結果、全体のタ
スクは同一の最小処理時間に係るものと、機能停止の因
をなしているものと同一の周波数に係るものとを有する
基本動作に分断されて効率的なパイプライン設計が平衡
する。換言すれば、他の動作が比較的ささいである場合
、1つの動作が処理時間を支配すべきではない。
しかしながら、従来のディジタルコンピュータにおいて
は、基本動作は“取り込み・実行”サイクル、及びその
命令取り込み、命令デコード、オペランド取り込み、実
行、及び結果記憶の分離した段によっである程度支配さ
れている。取り込み・実行サイクルの結果、各段はそれ
ぞれの命令に関するデータに関係づけられる。各段は典
型的な場合にはメモリアクセス動作に使用される単一の
クロックサイクル内に完了していることが望ましい。
即ちパイプライン化された中央処理装置においては、■
クロックサイクル1命令の速度で命令を処理することが
望ましい。
種々の“可変長”命令を許容するコンピュータアーキテ
クチャでは、パイプライン化された中央処理装置の命令
復号段は典型的な命令を復号するために1クロックサイ
クル以上を必要としている。
このような“可変長”命令は、オペランドに対して遂行
すべき動作を規定する演算コードとは無関係のアドレス
モードを指定するオペランド規制詞を有することが好ま
しい。
1クロツクサイクル1命令の速度で命令を処理する目的
は、命令フォーマット及びオペランド選択を規定してい
る“縮小命令セント”を有する最近のコンピュータアー
キテクチャを明確にするための主要因であった。新規シ
ステム及び応用に対してはコンピュータアーキテクチャ
を自由に選択したり或は変更することが可能であるが、
現存システム及び応用に対しては現存アーキテクチャを
用いて1クロツクサイクル1命令の速度で可変長命令を
処理できるようにプロセッサを改善することが望ましい
最も複雑な命令セントアーキテクチャは、暗示規制詞を
有する命令を含む。暗示オペランドは、命令の流れの中
に明白には現われていないが、その代りに命令の機能或
は演算コード内に符号化されているか或はそれから暗示
されるオペランドである。規制詞は、例えば、メモリ内
の連続記憶位置のスタックをアクセスするスタック操作
の場合に暗示される。スタック頂部のメモリアドレス(
即ちスタックの最終エントリ)は、中央処理ユニット内
の1汎用レジスタ”の予め割当てられているレジスタの
ようなレジスタの内容であるスタックポインタ(S P
)によって指し示される。
暗示規制詞を使用するスタック操作の特定例は、スタッ
クの頂部へ汎用レジスタをブツシュする命令“ブツシュ
R3”によって示される。換言すれば、レジスタR3の
内容はメモリのアドレス5P−1に書き込まれ、スタッ
クポインタはデクレメントされる(ここではスタックが
負方向にメモリ位置0に向って成長するものとする)。
従って“ブツシュR3”命令は、明示源オペランドR3
及び暗示宛先オペランド5P−1を含む2つの規制詞を
有するものと考えることができる。自動デクレメント規
制詞を有する命令アーキテクチャにおいては、この暗示
オペランドはデクレメント操作を含むものと考えること
ができ、また暗示自動デクレメント宛先オペランド−(
SP)と呼ばれる。
普通の中央処理ユニットにおいては、暗示オペランドは
実行ユニット内のマイクロコードによって指定される。
ブツシュ命令のための実行マイクロコードは、例えば宛
先オペランド5P−1に指定でき、またブツシュ命令が
実行される時スタックポインタSPをデクレメントでき
る。現命令が実行されつつある時に次の命令のオペラン
ドが取り込まれるパイプライン化された装置においては
、現命令内の暗示規制詞が次の命令のオペランドの取り
込みと競合するかも知れない。例えば、アドレス5P−
1におけるメモリ源オペランドの取り込みがブツシュ命
令の実行と競合する恐れがある。
従って、オペランド取り込みに関して、或は処理ユニッ
ト(OPU)は潜在的な競合を回避するために現命令が
暗示規制詞を有するか否かを考慮する必要がある。
命令アーキテクチャ内に暗示規制詞を使用すると、命令
に必要なバイトの数が減少し、また命令の流れに対する
取り込みが少ないために遂次プロセッサの性能を改善す
ることができる。しかし、複数の命令演算を並列に遂行
する高速パイプラインプロセッサの場合には、暗示規制
詞を普通に処理すると、暗示規制詞によってもたらされ
る全ての競合を考慮するための専用ハードウェアを設け
ない限り、命令処理の直列化及び性能損失を生ずること
になる。
実質的な直列化、性能損失をもたらさず、或は暗示規制
詞の競合検査専用のハードウェアを設けないパイプライ
ン化された装置において複数のオペランド規制詞を前処
理するために、暗示規制詞は、命令ユニットによって予
め取り込まれるか或はそれ以外の前処理されて実行ユニ
ットへ送られる。従って、競合検査に関しては暗示規制
詞は明示規制詞と同様に取扱うことができる、更に、暗
示規制詞及び明示規制詞の両者に対して同一のデータ経
路を使用することによって、及び命令ユニットと実行ユ
ニットとの間に待ち行列を挿入することによって、暗示
オペランドを有する命令並びに明示規制詞のみを有する
命令に対する性能利得が実現される。
本発明による暗示規制詞の処理によって、それらを指定
する多くの共通命令を単一サイクル内に実行できるよう
になる。この例は“サブルーチンへのジャンプ”命令J
MP  DESTである。この命令が実行されると、ア
ドレスDESTから開始されるサブルーチンへ分岐が行
われ、戻りアドレスPC+ 1がスタックに記憶される
。但しPCはプログラムカウンタの現在の値である。(
サブルーチンからの戻り(RBS)はサブルーチンの終
りに期待され、スタックの頂部であるアドレスへの分岐
がもたらされる。)JSBは、MOVAL  LABE
L、  −(R14)JMP  DEST LABEI、: を含む2つの命令で実施できる。この場合“LABEL
はPC+1の戻りアドレスに割当てられ、R14はスタ
ックポインタを保持している汎用レジスタに予め割当て
られている。
もしJSBが2つの命令として暗示されていれば、実行
ユニットにおける実行には2サイクルを必要とする。代
りにJSB  DESTが3規制詞を有する単一の命令
として暗示される。第1の規制詞部ち表現規制詞は分岐
宛先規制詞である。命令デコーダはこの分岐宛先規制詞
をOPU内のメモリアドレス評価ユニットへ送ってアド
レスを計算させ、それをパイプラインのプログラムカウ
ンタユニットへ戻させる。第2の規制詞部ち暗示規制詞
は、スタックレジスタを指定する自動デクレメント宛先
規制詞(−(SP))である。メモリアドレスユニット
はスタックポインタレジスタR14にアクセスし、それ
をデクレメントさせ、結果として生じたアドレスをキャ
ッシュに送り、そのアドレスに記憶させるべき結果が実
行ユニットから利用可能になるまでキャッシュに保持さ
せる。第3の規制詞は次の(NEXT)PC或は戻り(
RETURN)PC規制詞として知られる独特な暗示規
制詞である。opuはJSB命令に関する演算コードが
それに組合わされた次のPCを有していることを認識し
、それに応答してメモリアドレスユニットはプログラム
カウンタの値を実行ユニットへ送る。
暗示オペランドの前処理は、少なくとも1つの暗示規制
詞を含む複数の規制詞を同時に復号できる命令デコーダ
を有する命令ユニットによって、部分的に遂行すること
が好ましい。この場合、“ブツシュRx ″のような共
通命令は単一のサイクル中に復号することができ、また
単一のサイクル中に実行することができる。
〔実施例〕
本発明の他の目的及び長所は、添付図面に基く以下の詳
細な説明から明白になるであろう。
本発明は種々の変更及び変形が可能であるから添付図面
は単なる例示にしか過ぎず、本発明はこれらの特定の形
態に限定されるものではなく、全ての変更、同等物、及
び変形をも包含することを理解されたい。
先ず第1図を参照する。第1図に示すディジタルコンピ
ュータシステムの一部は、主メモリ10゜メモリ・CP
Uインタフェースユニット11、命令ユニット12及び
実行ユニット13からなる少なくとも1つの中央処理ユ
ニッ1−(cPU)を含む。このシステムにおいては、
主メモリ10を共用することによって付加的なCPUを
使用できることは明白である。
データ及びそのデータを処理するための命令は共に主メ
モリ10内のアドレス可能な記憶位置に記憶される。あ
る命令は、CPUが遂行すべき動作を符号化した形状で
規定する演算コード、及びオペランドを位置付けるため
の情報を提供するオペランド規制詞を含む。個々の命令
の実行は、複数の小さいタスクに細分される。これらの
タスクは、その目的に関して最適化された専用の、個別
の独立機能ユニットによって遂行される。
各命令は、最終的には異なる動作を遂行するが、各命令
を細分した多くの小さいタスクは全ての命令に共通であ
る。一般に、命令の取り込み、命令の復号、オペランド
の取り込み、実行、及び結果の記憶段階はある命令の実
行中に遂行される。従って専用ハードウェア段を使用す
ることによって、これらの段階はパイプライン動作内で
重畳させることが可能であるから、命令の総合スループ
ットが高められる。
パイプラインを通るデータ経路は、各パイプライン段の
結果を次のパイプライン段へ伝送するための関連レジス
タセントを含む。これらの転送レジスタは共通システム
クロックに応答してクロックされる。例えば、第1クロ
フクサイクル中に、命令取り込み専用のハードウェアに
よって第1の命令が取り込まれる。第2クロツクサイク
ル中には取り込まれた命令が転送され命令復号用ハード
ウェアによって復号されるが、同時に次の命令が命令取
り込みハードウェアによって取り込まれる。
第3クロンクサイクル中には各命令はパイプラインの次
段ヘシフトされ、新しい命令が取り込まれる。以上のよ
うにしてパイプラインが充満された後の各クロンクサイ
クルの終りには命令は完全に実行されているのである。
このプロセスは、製造環境における組立てラインに類似
している。各作業者は彼の又は彼女の作業卓を通過する
各製品に対して単一の仕事を遂行するように専任されて
いる。各仕事が遂行されるにつれて、製品は完成に近づ
いて行く。最終卓において作業者が彼に割当てられた仕
事を遂行する度に完成品が組立てラインから産出される
第1図に示す特定システムにおいては、インタフェース
ユニット11は主キャッシュ14を含む。
主キャッシュ14は、−m的には命令ユニット12及び
実行ユニット13が主メモリ10のアクセス時間よりも
早い速度でデータを処理することを可能ならしめるもの
である。このキヤ・7シユ14は、データエレメントの
選択された事前に規定されたブロックを記憶する手段と
、指定されたデータエレメントへアクセスする要求を翻
訳バ・7フア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に転送され、インタフ
ェースユニット11内の翻訳バッファ15がアドレス変
換を遂行する。命令は、変換されたアドレスを使用して
キャッシュ14内の物理メモリ位置から検索される。キ
ャッシュ14はデータ戻りラインを通して命令を命令キ
ャッシュ18に送る。キャッシュ14及び翻訳バッファ
15の構成及び動作の詳細に関しては、1980年、デ
ィジタルイクイツブメントコ−ポレーション刊行のレヴ
イ及びエフハウスJr、のコンピュータプログラミング
及びアーキテクチャ、VAX−11の第11章(35I
〜368ページ)を参照されたい。
大部分の時間、命令キャッシュ18はプログラムカウン
タ17によって指定されたアドレスに命令を予め記憶し
ており、アドレスされた命令を命令バッファ19内へ直
ちに転送できるようにしている。アドレスされた命令は
命令バッファ19から命令デコーダ20へ供給され、演
算コード及び規制詞の両者が復号される。オペランド処
理ユニット(OPU)21は指定されたオペランドを取
り込み、それらを実行ユニット13へ供給する。
0PU21は仮想アドレスをも発生する。即ち、0PU
21はメモリ源(読出し)及び宛先(書込み)オペラン
ドのための仮想アドレスを発生する。
メモリ読出しオペランドに関して0PU21は、これら
の仮想アドレスをインタフェースユニット11へ供給し
て物理アドレスに翻訳させる。これにより供給14の物
理メモリ位置がアクセスされ、メモリ源オペランドに関
連するオペランドが取り込まれる。
各命令においては、第1のバイトは演算コートを含み、
後続バイトは復号すべきオペランド規制詞である。各規
制詞の第1のバイトは、その規制詞のアドレス指定モー
ドを表わす。通常はこのバイトは半分に分割されており
、一方の半分がアドレス指定モードを指定し、他方の半
分がアドレス指定のために使用すべきレジスタを指定す
る。命令は可変長を有することが好ましく、1980年
12月23日付のストレソ力らの合衆国特許4.241
,397号に記載されているように種々の型の規制詞を
同一演算コードと共に使用することができる。
命令処理の第1段階は、命令の“演算コード”部分を復
号することである。各命令の第1の部分は、命令によっ
て遂行すべき動作を指定する演算コード、使用される規
制詞の数及び型からなる。
復号は命令デコーダ20内において表引き技術を用いて
行われ、データ文豚(バイト、語等)、データ型(アド
レス、整数等)、及びアクセス指定モード(読出し、書
込み、変更等)が各規制調筋に見出される。またデコー
ダは、源オペランド及び宛先オペランド規制詞が命令内
の何処に発生するかを決定し、これらの規制詞を0PU
21に送って命令の実行前に前処理させる。後刻、実行
ユニットは、命令演算コードでアドレスされる“フォー
クRAM”から得られた開始アドレスで始まる予め記憶
されたマイクロコードを実行することによって、指定さ
れた動作を遂行する。
命令を復号した後、0PU21はオペランド規制詞をバ
ーズし、それらの実効アドレスを計算する。このプロセ
スは汎用レジスタ(GPR)の読出し、及び自動インク
レメント或は自動デクレメントによるGPRの変更を含
む可能性がある。次でオペランドがこれらの実効アドレ
スから取り込まれ、実行ユニット13へ供給される。実
行ユニット13は命令を実行し、結果をその命令に関連
する宛先ポインタによって識別された宛先内へ書込む。
命令が実行ユニットへ供給される度に、命令ユニットは
、(1)実行ユニットレジスタファイル内の源オペラン
ドを見出し得る位置、及び(2)結果を記憶させる位置
に関するマイクロコードデイスパンチアドレス及び−組
のポインタを送る。
実行ユニット内の一組の待ち行列23は、マイクロコー
ドディスパッチアドレスを記憶するためのフォーク待ち
行列、源オペランド位置を記憶するための源ポインタ待
ち行列、及び宛先位置を記憶するための宛先ポインタ待
ち行列を含む。これらの各待ち行列は多くの命令に関連
するデータを保持できる先入れ先出しバッファである。
実行ユニット13は源リスト24をも含む。源リストは
、GPRのコピーをも含むマルチボートレジスタファイ
ル内に記憶されている。即ち、源ポインタ待ち行列内の
エントリは、レジスタオペランドに関するGPR位置を
指し示しているか、或はメモリ及びリテラルオペランド
に関連する源リストを指し示すかの何れかである。イン
タフェースユニソ1−11及び命令ユニット12は共に
エントリを源リスト24内に書込み、実行ユニット13
は命令の実行に必要なオペランドを源リストから読出す
。命令を実行するために、実行ユニット13は命令発行
ユニット28、マイクロコード実行ユニット25、演算
及び論理ユニット(ALU)26、及びリタイアユニッ
ト27を含む。
本発明はパイプライン化されたプロセッサに特に有用で
ある。前述の如く、パイプライン化されたプロセッサに
おいては、プロセッサの命令取り込みハードウェアは、
他のハードウェアが第2の命令の演算コードを復号し、
第3の命令のオペランドを取り込み、第4の命令を実行
し、第5の命令の処理済データを記憶している時に1つ
の命令を取り込むことができる。第2図は ADDL3  RO,B″12  (R1)、R2゜の
ような典型的命令に対するパイプラインを示す。
これはアドレス指定の変位モードを使用するロングワー
ド加算である。
この命令のパイプライン方式による実行の最初の段階に
おいては、命令のプログラムカウント(PC)を作成す
る。通常はこれは、プログラムカウンタを先行命令から
インクレメントさせるか、或は分岐命令のターゲットア
ドレスを使用することによって遂行する。次でPCはパ
イプラインの第2段階において命令キャッシュ18をア
クセスするために使用される。
パイプラインの第3段階においては、命令データはキャ
ッシュ18から利用可能となり、命令デコーダ20が使
用するか、或は命令バッファ19内にロードされる。命
令デコーダ20は詳細を後述するように、単一のサイク
ル中に演算コード及び3つの規制詞を復号する。RO及
びR2の番号はALU26へ送られ、R1の番号はハイ
ド変位と共に復号サイクルの終りに0PU21へ送られ
る。
段階4において、0PU21は位置R1のGPRレジス
タファイルの内容を読出し、その値を指定された変位に
加算し、得られたアドレスを演算コード読出し要求と共
にアドレス生成段階の終りにインタフェースユニットl
l内の翻訳バ・ノファ15へ送る。
段階5においては、インタフェースユニ・ノド11は第
4段階において生成したアドレスを選択して実行する。
翻訳バッファ15を使用して、インタフェースユニット
11はアドレス翻訳段階中に仮想アドレスを物理アドレ
スに翻訳する。次で物理アドレスはキャッシュ14をア
ドレスするために使用され、パイプラインの段階6にお
いて読出される。
パイプラインの第7段階においては、命令はALU26
に供給されて2つのオペランドに加えられ、結果はリタ
イアユニット27へ送られる。
段階4中に、R1及びR2のレジスタ番号及びメモリデ
ータに関する源リスト位置を指し示すポインタが実行ユ
ニットへ送られ、ポインタ待ち行列内へ記憶されている
。そこでキャッシュ読出し段階中に実行ユニットは源リ
スト内の2つの源オペランドを探すべく起動する。この
特定例においては実行ユニットはRO内のレジスタデー
タのみを見出すが、この段階の終りにはメモリデータが
到着し、レジスタファイルの無効となった読出しに置換
される。従って、命令実行段階中には両オペランドが利
用可能となる。
パイプラインのリタイア段階8においては、結果データ
はリタイア待ち行列内の次のエントリと対にされる。若
干のファンクション実行ユニットが同時にビジーとなり
得るが、単一のサイクル中に単一の命令のみをリタイア
させることができる。
図示のパイプラインの最終段階9においては、データは
実行ユニット13及び命令ユニット12の両者の中のレ
ジスタファイルのGPR部分内に書込まれる。
第3図は、第1図に示す中央処理ユニ7 ト(cPU)
によって処理可能な典型的な命令30を示す。この命令
は、前記レヴイ及びエフハウスJ乙の論文に記載のVA
X可変長命令アーキテクチャに対応する。命令30は1
バイト或は2バイトの何れかからなる演算コード31を
含む。もし第1バイト32が16進数のFDの値を有し
ていれば、それは倍長バイト演算コードとして婬識され
る。それ以外では、命令デコーダ(第1図の20)は演
算コードが単一バイトのみを含むものとして認識する。
命令30は更に、演算コードに続いて6つまでの規制詞
を含む。
演算コードは、命令内にどれ程多くの規制詞が含まれて
いるかを示す。所与の演算コードに関連して使用される
規制詞は種々の属性及び異なる長さを有することができ
る。特定規制詞の属性は、規制詞の第1バイト内のアド
レス指定モードによって少なくとも部分的に決定される
。しかし、規制詞の許容される属性は屡々演算コードに
よって制限される。更に、“即値アドレス指定”として
知られる特定の種類のアドレス指定モードでは、規制詞
情報の長さは規制詞によって指定される“データ型”に
よって決定される。
第4図に特定可変長命令を示す。アセンブラ表記法では
この命令は“ADDL3RO,#4L”203(R2)
  ”と書かれる。機械コードでは、この命令は全体を
35で示す8ハイドを含む。
第1バイトは16進数の23で表わされた演算コードで
あり、アセンフ゛ラニーモニックの“ADDL3”に対
応する。この演算コードは、第10ングワードオペラン
ドが第20ングワードオペランドに加算され、ロングワ
ード結果が宛先に記憶されることを指示している。
演算コードに続くのは16進数の50の値を有する“レ
ジスタ規制詞”である。16進デイジツトの5は、規制
詞がレジスタ規制詞であることを表わし、16進デイジ
ツトOは指定されたレジスタが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ビツトが
0でなく、このバイトが分岐変位の一部ではないものと
すれば、このバイトはCPU内の16の汎用レジスタR
O乃至R15の中から指定された1つの汎用レジスタに
関連する12の考え得るレジスタアドレス指定モードの
中の特定の1つとして復号される。このバイトの最上位
4ビツト (レジスタモードフィールドを構成する)は
アドレス指定モードを表わすものとして復号され、最下
位4ビツト(汎用レジスタアドレスフィールドを構成す
る)は16の汎用レジスタの中の特定の1つをアドレス
するために使用される。
もしレジスタモードフィールドが16進値の4を有して
いれば“指標モード”であることを表わす。このモード
ではレジスタアドレスフィールドによってアドレスされ
る汎用レジスタの内容の値にオペランドのバイトの大き
さが(例えばバイト、語、ロングワード、クワッドワー
ド、オクタワードのデータ型に対して1.2.4.8或
は16が)乗じられ、和は直後の複雑な規制詞に対して
遂行されるアドレス計算の一項として含まれる。次のバ
イトは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)からの
データで満たされているか否かを表わす有効データフラ
グ(1”lf効)を伴っている。
命令デコーダは、命令バッファ19内の有効データの量
に依存して可変数の規制詞を復号する。即ち、命令デコ
ーダは有効データフラグを調べて復号可能な規制詞の数
を決定し、それらを単一のサイクル中に復号する。実際
に復号される規制詞の数に従って命令デコーダは、命令
バッファ19からバイトを除去するために、復号される
バイトの数を決定する。第6図に示すように、命令バッ
ファ19には選択された数のバイトを命令バッファ19
内へ、及び命令バッファ19外へシフトさせる手段が付
随している。このシフト手段は、併合用マルチプレクサ
22と共に命令バッファ19からのデータを再循還させ
るか、或はシフトさせるようになっているシフタ33を
含む。命令バッファはデータランチとして動作し、CP
Uのシステムクロックによるクロッキングに応答してデ
ータを受ける。命令デコーダは、各サイクルの終りに命
令バッファ外ヘシフトさせるバイトの数を指定する数を
シフタ33へ送信する。
命令バッファ19は、命令に典型的に見られる種類の少
なくとも3つの規制詞を保持するのに充分な大きさであ
る。命令デコーダ20は、もし命令バッファのバイト0
位置が演算コードを保持し、命令の他のバイトを命令バ
ッファ19内へ及び命令バッファ19外ヘシフトされる
のであれば、若干簡略化できる。実際には、命令バッフ
ァは演算コードをバイトO内に保持し、バイト1乃至8
に対しては先入れ先出しバッファとして機能する。
また命令デコーダは、システムクロックの各サイクル中
に単一命令に関する規制詞だけを復号するものと仮定す
れば、簡略化できる。従って、ある命令に関する全ての
規制詞が復号されたあるサイクルの終りに命令デコーダ
は、演算コードを命令バッファのバイト0位置からシフ
トさせて次の演算コードをそのバイト0位置に受入り可
能ならしめるために、シフタ33に“演算(OP)コー
ドシフト”信号を送信する。
命令キャッシュ(第1図の18)は命令データを複数バ
イトのデータブロックで送受するようになっていること
が好ましい。またこのブロックの大きさは、これらのブ
ロックがプログラムカウンタ(第1図の17)から与え
られるアドレスのある数の最上位ビットによって指定さ
れるメモリアドレスを有するように2つの幕とすること
が好ましい。従って、命令バッファからの演算コードの
アドレスはブロック内の種々の位置に現われる。
命令バッファのバイトOに、キャッシュからの命令デー
タのブロック内の任意バイト位置に現われ得る演算コー
ドをロードするために、循還ユニット34が命令キャッ
シュ18から命令バッファ19へのデータ経路内に配置
されている。循還ユニット34は、シフタ33と同様に
クロスバスイッチからなる。
命令バッファのバイトO位置に、命令キャッシュからの
命令の流れの中の演算コードをロードするために、併合
用マルチプレクサ22はシフタ33からの選択された数
のバイトと併合すべき循還ユニット34からのバイトの
数を選択する選択入力を有している。即ち、併合用マル
チプレクサはデータ人力A0〜Asを有し、指定された
“シフトさせる数”mに応答して入力A0・・・A3−
1にシフタからのデータを受入れ可能ならしめ、また人
力B8−air・・・+Bl+に循還ユニットからのデ
ータを受入れ可能ならしめる。図示の如く、このマルチ
プレクシング機能は、関連するA入力或は関連するB入
力の何れかを選択するための個々の選択入力80〜S8
を存するマルチプレクサ22によって、及びこれらの個
々の選択入力80〜Sllを、“シフトさせる数”及び
命令バッファ内の有効データフラグに応答して決定され
る命令バッファ19内の有効エントリ ([BUF有効
カウント29)の数に応答して可能にすることによって
与えられる。制御論理ユニット38も“演算コードシフ
ト”信号に応答するから、“演算コードシフト”信号が
発生した時にシフトさせるべきバイトの合計数は演算コ
ードを含み、“演算コードシフト”信号が発生しない時
には命令バッファからの演算コードはシフトの数には関
係なく併合用マルチプレクサ22のA0人人力伝送され
る。
第6図に示す如く、命令キャッシュからのデータ経路は
8つの並列バスを含み、命令データの各バイト毎に1つ
のバスが割当てられている。循還ユニットは循還ユニッ
ト制御論理回路39から供給される“循還値”信号に応
答する。循還ユニット制御論理回路39は“シフトさせ
る数”及び“l BUF有効カウント” (これらは−
緒になって新しい命令データの最初の到来バイトを命令
バッファ19内の何処に配置すべきかを指示する)、及
び命令キャッシュ及びキャッシュと循還ユニット34と
の間の関連バッファリングによって供給される“IBE
X有効カウント”の値(これは新しい命令データの最初
の到来バイトが何処から得られるかを指示する)に応答
する。命令キャッシュ及び関連バッファリングの好まし
い構造及び動作、及びこの場合における循還ユニット及
び併合用マルチプレクサの制御の詳細に関しては前記り
、ファイトらの合衆国特許出願“仮想命令キャッシュ再
充填アルゴリズム”を参照されたい。
命令バッファを最初にロードする時、及びその後の若干
の時点には、命令バッファ19への転送の目的で循還ユ
ニット34が受けるデータの若干を無効とすることが可
能であることに注目されたい。即ち、8バイトのデータ
をキャッシュから読出して直接循還ユニット34へ転送
するものとし、またロードすべき演算コードがブロック
内の中央バイト位置に現われるとすれば、演算コードよ
り上位のアドレスの命令データは転送に有効となるが、
演算コードより下位のアドレスの命令データは転送に関
して無効となる。従って、演算コード及びその直後のバ
イトは有効となるが、他のバイトは無効となり得る。そ
の結果、有効データフラグはそれに伴うバイト位置及び
初期にロードされた演算コードまでの全ての下位番号バ
イト位置が有効であるか否かを表わす。
演算コードが命令バッファ19のバイトO位置内ヘロー
ドされると、命令デコーダ20はそれを調べ、対応マイ
クロプログラム“フォークアドレス”を待ち行列・(第
1図の23)内のフォーク待ち行列へ送る。また命令デ
コーダは命令バッファ内の他のバイトも調べて3つまで
のオペランド規制詞を同時に復号できるか否かを決定す
る。命令デコーダは更に、源オペランドを宛先オペラン
ドから分離する。即ち、システムクロックの単一サイク
ル中に、命令デコーダは2つの源オペランド及び1つの
宛先オペランドまでを復号することができる。各サイク
ル毎に源オペランド或は宛先オペランドが復号されたか
否かを表わすフラグは、命令デコーダ20から転送バス
(TR)を通して0PU21へ送られる。命令デコーダ
20は1サイクル当り3レジスタ規制詞までを同時に復
号できる。あるレジスタ規制詞が復号されると、そのレ
ジスタアドレスは転送バス(′FR)上に印加され、0
PU21内の転送ユニット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から汎用バス(GP)を通して0PU21内
の汎用ユニット32へ伝送される。汎用ユニット32は
普通のオペランド処理ユニットと同様に動作し、規制詞
のデータ型に対応する選択された数の2進位置だけ指標
レジスタの内容をシフトさせ、シフトさせた値をペース
レジスタの内容及び複雑な規制詞の変位に加算する。も
し規制詞が“アドレス”アクセス型を有していれば、こ
のようにして計算された値は源リスト内に配置され、対
応する源リストポインタが源リスト待ち行列(第1図の
23)へ送られる。そうではなく、複雑な規制詞が源オ
ペランドを指定していれば、メモリは源オペランドを入
手するために計算値によってアドレスされるか、或は据
置きモードの場合には源オペランドのアドレスが入手さ
れる。次で源オペランドは源リスト(第1図の24)内
に配置され、対応する源リストポインタが源リストポイ
ンタ待ち行列(第1図の23)内に配置される。もし複
雑な規制詞が宛先オペランドを指定していれば、計算値
は宛先待ち行列(第1図の23)内に配置される。
命令に関する全ての規制詞が復号されてしまうと、命令
デコーダ20はシック38へ“演算コードシフト”信号
を伝送する。
第7図にGPババスためのフォーマットの詳細を示す。
GPハスはlビットの“有効データフラグ(VDF)を
汎用ユニット32へ送り、システムクロックの先行サイ
クル中に複雑な規制詞を復号したか否かを通知する。ま
た1ビツトの“指標レジスタフラグ(IRF)をも伝送
して複雑な規制詞が指標レジスタを参照するが否がを通
知する。参照される指標レジスタは、GPババス通して
伝送される4ビツトの指標レジスタ番号によって指定さ
れる。更にGPババス、複雑な規制詞の規制詞モードを
指示する4ビツト、ペースレジスタ番号を指示する4ビ
ツト、及び複雑な規制詞によって指定される何等かの変
位を含む32ビツトをも伝送する。
またGPババス、現命令に関連する規制詞のシーケンス
内の複雑な規制詞の位置を指示する3ビツトの規制詞の
数も伝送する。この規制詞の数によって汎用ユニット3
2は、演算コードバイトの復号から特定のオペランドに
関連するアクセス及びデータ型を選択することが可能に
なる。従って、汎用ユニット32を第6図の拡張ユニッ
ト31及び転送ユニッ1−30からやや独立して動作さ
せることができる。即ち、汎用ユニット32は、汎用ユ
ニット32がオペランドを決定するために1サイクルよ
り多くのサイクルを必要とするか否かを指示する独立し
た機能停止信号(○PU機能停止)を発生する。
第8図に拡張バス(E X)のためのフォーマントを示
す。拡張バスは1ビツトの有効データフラグVDF、6
ビツトの短リテラルデータ、及び3ビツトの規制詞の数
を伝送する。規制詞の数は現命令に続く規制詞のシーケ
ンス内の短すテラル規制詞の位置を指示し、拡張ユニッ
ト31が演算コードバイトの復号から関連データ型を選
択するために使用する。従って、拡張ユニソ1−31は
かなり独立的にも動作可能であり、拡張ユニット31が
短すテラル規制詞を処理するために1サイクルより多く
のサイクルを必要とするか否かを表わす短リテラル機能
停止信号(SL機能停止)を供給する。
第9図は転送バス(TR)のためのフォーマットを示す
。TRバスは第1源バス35、第2源バス36、及び宛
先バス37を含み、各バスはそれぞれ有効データフラグ
(VDF)、レジスタフラグ(RGF)及びレジスタ番
号を伝送する。レジスタフラグは、対応するレジスタ規
制詞が復号されるとセットされる。また、複雑な規制詞
或は短すテラル規制詞が復号されると、第1源バス、第
2源バス或は宛先バス内の有効データフラグの中の関連
するフラグがセットされ、源オペランド或は宛先オペラ
ンドのための源リストポインタ待ち行列或は宛先待ち行
列へのデータ経路内のスペースを留保するために関連レ
ジスタフラグがクリヤされる。
第1O図はシステムクロックの1サイクル中に命令復号
のために遂行される動作の流れ図である。
第1段階41においては倍長バイト演算コードフラグが
検査され、倍長バイト演算コードの第1バイトが先行サ
イクル中に検出されたか否かが判定される。もし否であ
れば、段階42において命令デコーダは、命令バッファ
のバイト0位置が倍長バイト演算コードの第1バイトを
含むか否かを検査する。VAX命令においては、倍長バ
イト演算コードの第1バイトは16進数のFDなる値を
有している。もしこの値が検出されれば段階43におい
て、倍長バイト演算コードフラグが次のサイクルの便益
のためにセットされ、演算コードの第1バイトを命令バ
ッファから退去させ、演算コードの第2バイトをバイト
0位置に受入れるようにシフトさせる数に等しい“シフ
トさせる数”を伴う“演算コードシフト”信号をシフタ
(第6図の33)へ送る。
ハイドOが倍長バイト演算コードを表わしていなければ
、段階44において3つまでの規制詞を同時に復号する
。同時復号の好ましい方法に関しては、第11図を参照
して詳述する。規制詞を復号した後、段階45において
デコーダはその演算コードに関する全ての規制詞が復号
されたか否かを判定する。この目的のために、デコーダ
は現演算コードに関して先行サイクルにおいて復号され
た規制詞の総数を記憶するレジスタを有している。
このレジスタの値を“完了した規制詞”と呼ぶ。
従って段階45においてはデコーダは、その演算コード
に関する規制詞の数(規制詞カウントと呼ぶ)と、“完
了した規制詞”と段階44において復号された規制詞の
数との和とを比較することによって、その演算コードに
関連する全ての規制詞が復号されたか否かを判定してい
るのである。
その演算コードに関する全ての規制詞が復号されていれ
ば、段階46においてデコーダはシフトさせるバイトの
数が、1プラス段階44において復号された規制詞バイ
トに等しいことを決定する。
1を付加するのは、新しい演算コードを命令バッファ内
ヘシフトさせるためである。このようにするために、命
令デコーダは“演算コードシフト”信号を発生する。倍
長バイト演算コードフラグはこの時点でクリヤされ、ま
た“完了した規制詞”は0にセットされて次のサイクル
中の次の命令の復号開始の準備を整える。
段階45において、もしその演算コードに関して付加的
な規制詞を復号すべきことが判定されれば段階47にお
いてシフタ(第6図の33)に、段階44において復号
された規制詞バイトの数に等しい“シフトさせる数”が
送られる。また“完了した規制詞”は段階44において
復号された規制詞の数だけインクレメントされる。これ
により現サイクル中の復号が完了する。
第11図に3つまでの規制詞を同時に復号する方法の流
れ図を示す。第1段階51においてデコーダは、先行サ
イクル中に”拡張即値”アドレス指定モードを検出しそ
れによって命令バンファ内の次の4バイトが拡張即値デ
ータとして適切に翻訳されたか否かを判定する。拡張即
値データが取り得る値に制限はなく、従ってレジスタ或
は短すテラル規制詞或はその他の種々のアドレス指定モ
ードの特性である値を取り得るから、この判定はクリテ
ィカルである。もし命令バッファがかかる拡張即値デー
タを含むかも知れなければ、デコーダは段階52におい
てバイト1乃至4が有効データを含むか否かを判定する
。もし否であれば、命令デコーダは段階53において規
制詞バイトの数を表わすシフトカウント(S C)及び
このサイクルに復号された規制詞の数を表わす復号され
た規制詞の数(N)を決定する。これらのパラメタは0
にセットされるから、実際には命令デコーダは現サイク
ル中は機能停止する。
段階52においてバイト1乃至4が有効であると判定さ
れれば、これらのバイトは復号することができる。段階
54において、規制詞バイトに関するシフトカウント(
S C)は4にセットされ、復号された規制詞の数は0
にセットされる。次で段階55において、拡張即値デー
タのロングワードが復号されたことを指示するためにロ
ングワードカウントがデクレメントせしめられる。段階
56においては、このロングワードカウントがOと比較
され、拡張即値データの別のロングワードを復号する必
要があるか否かが判定される。もし0ならば現サイクル
における復号は完了である。
0でなければ、段階57において拡張即値データの復号
が終了し、拡張即値フラグ(X8F)がクリヤされる。
このフラグは、例えば拡張即値データが復号されつつあ
る時に“演算コードシフト”信号を禁止する。これは、
拡張即値モードが最初に検出された時に復号される規制
詞の数(N)の値を調整する必要をなくすための便宜上
行われるのである。
段階51において、もしデコーダが拡張即値データを期
待しなければ、段階58において演算コードの1アクセ
ス型”を調べて命令バッファ内のデータを分岐変位とし
て取扱うべきか否かを判定する。段階59において、命
令デコーダは次の規制詞のアクセス型を調べてそれが“
暗示”規制詞であるか否かを判定する。
命令デコーダは複数の規制詞を復号する能力を有してい
るから、実行ユニットにマイクロコードシーケンスを実
行させて暗示規制詞を実現させるのではなく、暗示規制
詞のためのオペランドを生成せしめる方が極めて有利で
ある。これは特に、スタックポインタがインクレメント
或はデクレメントさせなければならない暗示規制詞であ
る場合に有利である。この場合には、16進数のEなる
ペースレジスフ番号と、7或は8なる規制詞モードがC
Pババス上発生し、汎用ユニット(第6図の32)によ
ってスタックポインタは自動的にインクレメント或はデ
クレメントせしめられる。スタック動作(例えば“ブツ
シュ”)は暗示スタックポインタオペランドを使用して
実現させることが可能であり、これらの動作は移動命令
と類似になって単一サイクル中に実行可能となる。この
ようなスタックレジスタ暗示オペランドを有するVAX
命令の完全リストを付録Iに示す。これらの命令に関し
て、実行ユニットにスタックポインタをインクレメント
或はデクレメントせしめるのではなく、スタックポイン
タを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)へ伝送する代りに、そのレジスタ規制詞がGPバ
バス通して汎用ユニット(第6図の32)へ送られるの
である。もし段階62において命令内読出し競合が検出
されないか、或は段階63において競合が解消されれば
、命令デコーダは段階64において復号中の何れかの規
制詞が“拡張即値”モードを有しているか否かを判定す
る。もし諾ならば、段階55及び56において使用され
た“ロングワードカウント”が段階65において拡張即
値規制詞のデータ型に従ってセントされる。もしデータ
型がクワッドワードであれば、拡張即値データクワッド
ワードの最初の4バイトを現サイクル中に復号し、クワ
・ノドワードデータの最後の4バイトは次のサイクル中
に復号する必要がある。従ってロングワードカウントは
1にセントされて拡張即値データの1つの付加的ロング
ワードを復号する必要があることを指示する。もし拡張
即値規制詞のデータ型がオクタワードであればロングワ
ードカウントは3にセットされて拡張即値データの3つ
の付加的ロングワードを爾後のサイクル中に復号する必
要があることを指示する。また段階65においては“演
算コードシフト”信号は禁止される。拡張即値モードが
段階64において検出された場合には復号される規制詞
の数(N)を変化させる必要はないから、“演算コード
シフト”信号は拡張即値データの最終ロングワードが復
号されるまで禁止される。そうでない場合には、もしそ
の拡張即値規制詞が現命令に関連する最終規制詞であれ
ば、現命令に関連する演算コードは命令バッファからシ
フトアウトさせられる。
復号される規制詞の数及びシフトカラカントが決定され
ると、段階66においてCP、EX、及びTRバス(第
7図乃至第9図)に関するフラグ及び規制詞情報が決定
される。最後に、段階67において規制詞情報はGP、
EX、及びTRバス上に供給される。これをもって現サ
イクルの復号手順は完了する。
第12図は命令デコーダ20の好ましい実施例のブロッ
ク線図である。倍長バイト演算コードを検出するために
、拡張演算コードデコーダ101が設けられており、こ
のデコーダは命令バッファのバイトOが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によって検出され、該検出器は“演算コードシ
フト”信号を禁止する信号を発生する。この禁止信号は
ANDゲート111においてコンパレータ109からの
出力と組合わされ、“演算コードシフト”信号を発生さ
せ且つ倍長バイトフラグをクリヤさせる信号を発生する
。レジスタ107は次のサイクルの始めに、完了した規
制詞の数を指示するために3ビツト2進加算器113の
出力を受けるデータ入力を有している。加算器113は
レジスタ107のデータ出力を受け、この出力と現サイ
クル中に実際に復号された規制詞の数とを組合わせる。
現サイクル中に要求する規制詞の数を決定するために、
命令デコーダ20は要求論理ユニット114を含む。要
求論理ユニット114は、マルチプレクサ106からの
次の3つの規制詞の属性、及びモードデコーダ115か
らの情報を受ける。
モードデコーダ115は命令バッファ内の演算コードに
続く最初の4バイトのモードを復号する。
即ち、モードデコーダ115は第5図に示す表に従って
命令デコーダのバイトl乃至4の節易な復号を遂行し、
それぞれの2進出力に1乃至4の各バイトがレジスタ規
制詞、短すテラル規制詞、指標レジスタ、複雑な規制詞
、絶対アドレス指定モードを有する(即ち、バイトが1
6進数の9Fの値を有する)複雑な規制詞、或は即値モ
ードを有する(即ち、関連バイトが16進数の8Fの値
を有する)複雑な規制詞であり得るか否かを指示する。
またモードデコーダ115はバイトl乃至4のシーケン
スを4つの基本ケースの中の特定の1つに属するものと
して認識する。これらのケースの詳細に関しては第21
図に基づいて後述する。
現サイクル中に復号可能な規制詞の数を決定する他に、
要求論理ユニットは命令バッファ内の最初の3バイトが
規制詞モードの許されるシーケンスを表わしているか否
かを決定する。もしシーケンスが許されざるものであれ
ば要求論理ユニットはアドレス指定障害信号を発生し、
この信号は命令デコーダを機゛能停止せしめるためにO
Rゲート116においてパリティエラー信号の如き他の
障害信号と組合わされる。ORゲートの出力はフリップ
フロップ117に印加されてデコーダ障害信号を一発生
させる。この信号は、障害が実行ユニットによって認識
された時に現プログラムの実行を中断させることができ
る。デコーダは、フリップフロップ117が“再始動”
信号によってクリヤされるまで該フリップフロップによ
って機能停止され続ける。別のORゲート118はデコ
ーダ障害信号と、ORゲート116の出力及び0PU2
1からの何等かの機能停止信号(OP U機能停止)と
を組合わせて命令デコーダを機能停止せしめる信号を供
給する。ORゲート116の出力及びデコーダ障害停止
はANDゲート119を禁止するためにも使用される。
従ってANDゲート119は命令が完全に復号されたか
否かを決定する。ANDゲート119の出力はレジスタ
120内にう・ノチされ、命令発行ユニット及びマイク
ロコード実行ユニット(第1図の25及び28)へ伝送
するために新しい有効フォークアドレスをフォーク待ち
行列(第1図の待ち行列23)へ伝送することを指示す
る信号となる。
要求論理ユニッ)114は、例えば命令バッファにおい
てレジスタモード、短リテラルモード或は指標モードを
有するバイトが指標モードを有するバイトの直後に続い
ていることを検出した時にアドレス指定障害信号を発生
する。換言すれば、指標モードを有するバイトに、複雑
な規制詞が後続していない場合にはアドレス指定障害信
号が発生ずるのである。また復号すべき規制詞が、“占
込み”アクセス型を有しているがその規制詞が短リテラ
ルモードを有している時にもアドレス指定障害信号が発
生する。
要求論理ユニットは、次の3つの規制詞の属性及び命令
デコーダ内のバイト1乃至3の考え得るモードに複雑に
依存する所定の復号用ケースを選択するために、復号さ
れる命令のアーキテクチャに関する情報を符号化する。
また要求論理ユニット114は、残余の規制詞の数が3
よりも少ない時には要求する規制詞の数を必要規制詞の
数に制限し、更にデコーダが機能停止の場合にはO規制
詞を選択する。必要規制詞の数は2つのORゲート12
1.122によって残余の規制詞の数から求められる。
また要求論理ユニットは、アドレス指定障害が存在する
時にはO規制詞を要求する。
付録■はVAX命令を復号するための要求論理の真理値
表である。表は以下の欄を含む。
N:必要規制詞の数、 SF3、SF3、SPI:前記レビ及びエフハウスJr
、の文献の371ページに規定されている命令に関連す
る次の3つの規制詞のアクセス型、及び暗示読出し規制
詞及び暗示書込み規制詞をも含む、 R4、S4.14.R3、S3、I3、R2、S2、I
2、R1、Sl、11:命令バッファ内の関連バイトが
レジスタモード、短リテラルモード或は指標モードを有
しているか否かを指定、REQ、:要求に関するケース
、 RAF ニアドレス指定障害。
復号する規制詞の初期数(N′)及び復号する規制詞バ
イトの初期数(S C’ )は、シフトカウント論理ユ
ニット123によって決定される。シフトカウント論理
ユニット123はモード情報、IRCサイクル信号、c
p及びSL機能停止信号、命令バッファからのバイト及
び有効フラグ、及び次の3つの規制詞のデータ型を受信
する。シフトカウント論理ユニットは種々のケースのた
めの複数の論理トリーからなる。これらのケースには、
分岐バイト(RIBB、R2BB、R3BB)或は分岐
語命令(RIBW、R2BW、R3BW)に関連する1
、2或は3規制詞を要求するケースが含まれる。更に、
シフトカウント論理ユニットは、ある暗示規制詞を有す
るある命令の1つの規制詞を要求するケース(R11)
、及びある暗示規制詞を有するある命令の2つの規制詞
を要求するケース(R2I)をも含む。また更に、シフ
トカラン日余理ユニットは、分岐変位或は暗示規制詞で
はない1乃至3規制詞を要求する5つのケースをも含む
。これらのケースには、1つの規制詞を要求する1つの
ケース(R1)、2つの規制詞を要求する2つのケース
(R2、R2R)、及び3つの規制詞を要求する2つの
ケース(R3、R3XR)が含まれる。
R2)リーは、第1バイトがレジスタ規制詞でも短リテ
ラルでもなく、且つ第2規制詞が短リテラルであるべき
ではない場合に限り選択される。
この特別なケースは、第1バイト内に短リテラルが出現
した時に、要求論理ユニットに次のサイクル中にアドレ
ス指定障害信号(RAF)を発生可能ならしめるために
設けられているのである。換言すれば、要求ユニットは
、2つの規制詞を必要とし且つ第2規制詞が書込み或は
変更アクセス型を有している時にR2H)リーを選択す
る。これによりアドレス指定障害信号を発生する要求論
理ユニットは第1バイトのモードのみを注視すればよい
から、要求論理ユニットが簡略化される。同様にして、
R3XRf−リーは最終規制詞がレジスタ規制詞である
場合に限って3つの規制詞を復号する。3つの規制詞が
必要である時には、要求論理ユニットは最初の2つのバ
イトがレジスタ規制詞或は短すテラル規制詞である場合
に限ってR3トリーを要求し、それ以外の場合にはR3
XRトリーを選択する。
これらの各論理トリーは復号される規制詞の初期数(N
′)及び復号される規制詞バイトのシフトカラン1−(
SC’)を発生ずる。要求論理ユニット114はマルチ
プレクサ124及び125を動作させて要求論理トリー
からN′及びSC′を選択させる。N′は命令内読出し
競合検出器126によって使用され、命令内読出し競合
が発生しているか否かが決定される。もし競合が発生す
れば、信号IRCが発生する。IRC信号及びX8F信
号は第3のマルチプレクサ126を動作させ、実際に復
号された規制詞の数N及び規制詞バイトの数SCを選択
させる。NがOであり、SCが0或は拡張即値データの
4バイトを復号するための4の何れかである場合には、
拡張即値信号X8Fが優先順位を有する。N及びSCが
多くとも1つの規制詞を復号するために論理トリーから
選択される場合には、IRC信号が第2優先順位を有す
る。
換言すれば、命令内読出し競合が検出されると、システ
ムクロックの各サイクル毎に1つの規制詞だけを復号す
るのである。もし初期に選択されたトリーが、例えばあ
るバイト分岐命令に関連する3つの規制詞を要求すれば
、命令内読出し競合が検出された時には先ずR1)リー
が選択され、次でR11−リーが再度選択され、最後に
R3BB トリーの代りにRIBBトリーが選択される
シフタ(第6図の33)によってシフトさせるべき実際
のバイトの数は、加算器127において規制詞バイトシ
フトカウントSCに選択的に1を加算することによって
得る。
復号手順の最終段階は出力選択及び妥当性検査論理ユニ
ット128によって遂行される。この論理ユニット12
8は、現サイクル中に復号される規制詞に関するデータ
の命令バッファ内の位置を決定する。TRバスの場合、
第1源オペランドに関する情報は命令バッファのバイト
1から得られる。マルチプレクサ129は第2源規制詞
に関する情報を命令バッファから入手し、同様にマルチ
プレクサ130は何れかの宛先規制詞に関する情報を入
手する。同様にしてマルチプレクサ131は命令バッフ
ァから何等かの短リテラルデータを入手する。汎用規制
詞に関する情報はシフタ132によって命令バッファ内
の連続バイトから入手する。暗示規制詞を前処理するた
めに、最後のマルチプレクサ133はペースレジスタと
してスタックポインタ(SP)を選択し、更に暗示読出
しのためのモード8成は暗示書込みのためのモード9の
何れかを選択する。
第13図はRIBBI−リーのためのシフトカウント論
理回路の回路図である。この論理トリーは、例えば分岐
命令(VAXアーキテクチャにおけるBRB命令のよう
な)のハイド変位を復号する時に選択される。ゲート1
41は命令デコーダ内のバイl−1が有効である時にN
′及びSC′を共に1ならしめ、それ以外の場合にはN
′及びsc′を共にOならしめる。命令バッファ内のバ
イト1は、その有効データフラグCI有効(1)〕がセ
ントされ且つ汎用ユニット(第6図の32)が機能停止
していない時に有効である。
第14図はRIBW論理トリーの回路図である。
この論理トリーは分岐命令(例えばVAXアーキテクチ
ャのBRW命令)の語変位を復号する場合に選択される
。もし命令バッファ内のハイド2が有効であればN′は
1でありSC’は2であり、そうでない場合にはN′及
びSC′は共にOである。命令バッファ内のバイト2の
妥当性は有効データフラグ〔I−有効(2)〕及びCP
−機能停止信号に従ってゲート142によって決定され
る。
第15図は1つの暗示規制詞を復号するためのRIIト
リーのシフトカウント論理回路の回路図を示す。このト
リーは例えばサブルーチン命令からの戻りを復号する場
合に選択される。命令バッファ内には復号すべき明示規
制詞は存在しないから、シフトカウントは0である。も
し汎用ユニットが機能停止していれば復号された規制詞
の数N′はOであり、そうでない場合にはN′は1であ
る。従って、R11論理トリーは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′は共にOである。暗示規制詞を汎用ユニットに
送ることができる場合には、換言すればGP機能停止信
号が発止していなければ、N′は2である。これらの場
合には、Nの正確な値はゲート152及び153によっ
て決定される。
第19図は、バイトlがレジスタ規制詞或は短すテラル
規制詞であり、ハイド2がレジスタ規制詞であり、ハイ
ド3がバイト変位である場合に使用されるR3BB論理
トリーの回路図である。全ての規制詞の長さは1バイト
であるから、N′はSC′に等しい。第3のバイトが有
効であり且つ汎用ユニットが機能停止していない場合に
限りN′は3に等しい。それ以外の場合には、第2のバ
イトが有効であり、且つバイトlが短リテラルでありま
た拡張ユニット(第6図の31)が機能停止しているこ
とが真でなければN′は2に等しい。
これらの場合、N′及びSC′の値はゲー1−154.
155.156.157及び158によって決定される
第20図は、バイト1がレジスタ規制詞或は短リテラル
であり、ハイド2がレジスタ規制詞であり、バイト3及
び4が語変位である場合に使用されるR3BW論理トリ
ーの回路図である。これらの環境の下では、もしバイト
lが短リテラルであり、拡張ユニットが機能停止してい
れば、またそのような場合だけ、或はバイトが無効であ
ればN′及びSC′はOである。(もしバイトlが無効
であればバイ1−2及びバイト4も無効であることを思
い出されたい。)もしバイトl、2及び4が全て有効で
あり、機能停止が存在しなければN′は3に等しく、S
C′は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進値を表わしている
。ケース2.においては複雑な規制詞ペースレジスタは
ハイド1で始まり、ケース。1においては複雑な規制詞
ベースレジスタはバイト2であり、ケース。。において
は複雑な規制詞ベースレジスタはバイト3で始まり、ケ
ース1゜においては複雑な規制詞ベースレジスタはハイ
ド4で始まる。しかし、3つの規制詞が全てレジスタ規
制詞であるか、或は1つの規制詞が短リテラルであり他
がレジスタ規制詞であることも可能であり、これはケー
ス。。に分類される。何れのケースにおいても、第3の
規制詞が短リテラルである場合には3つの規制詞を同時
に復号することはできない。3つの規制詞が同時に復号
される場合には、第3の規制詞は宛先規制詞である。ま
た、どの短すテラル規制詞も拡張ユニットによって処理
しなければならず、どの複雑な規制詞も汎用ユニットに
よって処理しなければならず、これらの各ユニットは1
サイクル1規制詞しか処理できないことから、サイクル
当り多(ともl短すテラル及び多くとも1複雑な規制詞
しか復号できない。
第21図に示す4つの基本的ケースは、バイトl、2及
び3が短リテラルモード、レジスタモード、或は指標モ
ードを有しているか否かによって区別することができる
。これは第22図の真理値表に示されている。ケース。
。においではバイト1は短リテラルモード或はレジスタ
モードを有し、バイト2は短リテラルモード、レジスタ
モード或は指標モードを有し、バイト3ば指標モードを
有していない。ケース。1においてはバイト1は短リテ
ラルモード、レジスタモード、或は指標モードを有し、
バイト2は短リテラルモード、レジスタモード、或は指
標モードの何れをも有さす、バイト3は如何なるモード
も有し得る。ケース、。においてはバイ1−1は短リテ
ラルモード或はレジスタモードを有し、バイト2は短リ
テラルモード或はレジスタモードを有し、バイト3は指
標モードを有する。ケース、においてはバイト1は短リ
テラルモード、レジスタモード、或は指標モードの何れ
をも有さず、バイト2及び3は如何なるモードをも有し
得る。
第23図は4つのケースを復号するための最適化論理回
路の回路図である。3人力NORゲート171はバイト
1が短リテラルモード、レジスタモード、或は指標モー
ドの何れをも有していないことを決定する。もし有して
いなければORゲート172及び173はケース、1を
指示する。有している場合には、3人力NORゲート1
74によってバイト2が短リテラルモード、レジスタモ
ード、或は指標モードの何れをも有していないことが検
出された時に限ってケース(0)と決定される。また、
ORゲート175によってバイト1がレジスタモード或
は短リテラルモードを有していることが検出され、OR
ゲート176によってバイト2もレジスタモード或は短
リテラルモードの何れかを有していることが検出され、
且つ3人力A N Dゲート177によってバイト3が
指標モードを有していることが検出された場合に限って
ケース(1)と決定される。
複雑な規制詞に続くレジスタ規制詞或は短すテラル規制
詞を復号するためには、命令バッファにおける可変長レ
ベルに復号する必要がある。これらのレベルは第21図
に示されており、復号用論理回路に遅く現われる信号は
それらの信号が関係づけられている特定のレベルと共に
識別することができる。レベル1は、ハイドlのベース
レジスタで始まる複雑な規制詞の復号に関連する。ある
複雑な規制詞の直後に続く短すテラル規制詞或はレジス
タ規制詞のレベルは、複雑な規制詞のレベルに続く添字
Aによって表わされている。時として、最終規制詞がレ
ジスタ規制詞である場合には、複雑な規制詞に続く2つ
の規制詞を復号することが可能である。最終のレベルは
複雑な規制詞のレベルに続く添字Bによって表わす。第
21図に、例えばケース、に示すように、短リテラル或
はレジスタ規制詞は、バイト1において識別されたベー
スレジスタを有する複雑な規制詞の長さに依存して、ハ
イド2乃至6の何れかに出現し得るレベルIAにおいて
復号できる。同様に、レジスタ規制詞は複雑な規制詞の
長さに依存してバイト3乃至7に出現し得るレベルIB
において復号できる。
ケース。、においては複雑な規制詞はレベル2に復号さ
れる。複雑な規制詞の長さはその規制詞のモードによっ
て決定され、もしその規制詞が即値モードを有していれ
ば、それは復号中の命令に関連する規制詞のシーケンス
内のその複雑な規制詞の位置に伴うデータ型にも依存す
る。
即値モードを有する複雑な規制詞に続く規制詞を復号す
る際に生ずる特に厄介な問題は、命令に関連する規制詞
のシーケンス内の複雑な規制詞の位置が、ベースレジス
クを指定するバイトに先行するバイト内に指標レジスタ
が指定されているか否かに依存することである。例えば
、ケース。1においてもしハイドlが指標モードを有し
ていなければ、バイト2で始まる複雑な規制詞のデータ
型はシフタとして動作するマルチプレクサ106によっ
て第2データ型が選択されるが、もし第1バイトが指標
モードを有していればバイト2によって指定されるベー
スレジスタを有する複雑な規制詞のデータ型はシフタに
よって第1データ型が選択される。従って、ケース。1
並びにケース◇。における複雑な規制詞の長さは、ベー
ス宛先に先行する指標宛先の存否に依存することになる
。従って、復号用論理回路は、時には、レベル2.2人
或は2Bに復号するために、指標宛先がベース宛先に先
行するか否かを弁別しなければならない。
指標レジスタがベースに先行している場合にはこれらの
レベルは21,21A及び2113として識別される。
複雑な規制詞が絶対モード或は即値モードを有していな
い場合には2I、21A及び2IBレベルにある規制詞
に関する情報は2.2A及び2Bレベルにある規制詞に
関する情報と同一であろう。
ケース。。においては、バイト3はレジスタ規制詞を含
むことができる。このレジスタ規制詞はシーケンス内の
第3規制詞であるか、成はもしハイド2が指標モードを
有していなければ第3規制詞でもあり、或はもしバイト
2が指標モードを有していれば第2規制詞である複雑な
規制詞のためのベース宛先であり得る。従ってバイト3
はレベル3に復号される時にはレジスタ規制詞であり得
るが、レベル3Iに復号される時にはレジスタ規制詞で
はあり得ない。また31Aレベルにあるレジスタ規制詞
は、バイト3において指定されるベースを有する複雑な
規制詞に続いて復号することが可能である。
ケース、。においてはバイト3は常に指標モードを有し
ているから、レベル4■への復号は第12図のシフタ1
06によって選択される第3のデータ型を有する複雑な
規制詞を復号するように行われなければならない。
要約すれば、4つの基本ケースに関する各?3[雑な規
制詞の位置は、命令バッファ内のそのベースレジスタ宛
先のバイト位置を示す数によって識別される。もし複雑
な規制詞に指標レジスタ宛先が伴っていれば、この数に
は添字Iが付される。もし、短リテラル或はレジスタ規
制詞を複雑な規制詞の直後に同時に復号することが可能
であれば、その位置は先行する複雑な規制詞のレベル及
び添字Aによって示される。もし、別の規制詞を複雑な
規制詞の後に復号可能であれば、その位置は先行するベ
ース規制詞のレベル及び添字Bによって識別される。
第24図は、第21図に示す4つの基本ケース及び種々
の復号のレベルに関して、初期に復号される規制詞の数
(N′)が如何にして決定されるかを示す真理値表であ
る。ケース。。及びケース。。
は更に指標レジスタが複雑な規制詞に指定されている、
或は指定されていない2つのサブケースに分割されてい
る。規制詞の数が1よりも大きい何れかの特定レベルに
復号するためには、表中の許容された何れかより深いレ
ベルへ復号可能であってはならない。換言すれば、基本
ケースの決定及びサブケース内に指標レジスタが存在す
るか否かの叫酌に加えて命令デコーダ内の論理回路は、
適用可能なケース及びサブケースに対する第24図の最
深許容レベルに対応する被要求数まで可能な限り多くの
(例えば命令バッファ内のデータの妥当性に依存する)
規制詞を復号する。また、指標レジスタを指定するバイ
トは、それに後続する複雑な規制詞をも復号可能である
場合に限って復号されることは明白である。
第25図は命令バッファ内に暗示規制詞及び分岐変位が
欠如している場合の3つの規制詞の一般的ケースに対し
て初!tIIN′及びSC′を決定するだめの論理トリ
ーの回路図である。“ケース”はマルチプレクサ181
の選択入力を制御するために使用される。また各ケース
毎にそれぞれマルチプレクサ182.183.184.
185が設けられており、これらは第24図に示す復号
に許容される各レベルに対応するN′及びSC′の値を
受ける入力を有している。またマルチプレクサ182〜
185はN′がOに等しく且つsc’が0に等しいケー
スに対する0人力をも有している。
ケース◎0及びケース。1に関しては、それぞれのマル
チプレクサ182及び183は8人力及びそれぞれ“指
標(2)“及び“指標(1)”によって制御される最上
位選択入力S2を有する。これらの“指標”入力は、命
令バッファ内のバイト2及びバイト1が指標モードを有
するか否かを表わしている。従って、マルチプレクサ1
82乃至185はマルチプレクサ181と組合って合計
6つの異なるケース及び各ケース毎に考え得る4つの組
合せを復号する。もし複雑な規制詞が即値モードを有し
ていなければ、4つの組合せは復号されるOllつ、2
つ、或は3つの規制詞の何れかに一致する。しかし−船
釣には複雑な規制詞の後のレベルにおいて復号される規
制詞の数は、その複雑な規制詞が拡張即値モードを有す
るか否かに依存する。これは、マルチプレクサ182乃
至185の選択入力S0及びS、を動作させる符号化論
理回路を簡略化するために行われるのである。
もし?!雑な規制詞が拡張即値モードを有していること
が見出されれば、符号化論理回路は複雑な規制詞の後の
レベルまで復号できるものと信じ続けるが、復号する規
制詞の数N′は複雑な規制詞の規制詞位置に等しくセッ
トされる。同様に、複雑な規制詞の後のレベルを表わす
シフトカウントSC′は複雑な規制詞のためのシフトカ
ウントにセットされる。従って、たとえ符号化論理回路
が復号のために複雑な規制詞の後のレベルを選択したと
しても、より深いレベルを表わすN′及びSC′の値は
あたかも拡張即値モードを有する複雑な規制詞の後は復
号が許可されないかの如くに同一値を保つ。勿論、複雑
な規制詞が拡張即値モードを有していれば、より深いレ
ベルにおけるデータは拡張即値データを表わし、たとえ
モードデコーダ(第12図の115)がこれらの拡張即
値データを短リテラル或はレジスタ規制詞であるものと
信じていてもレジスタ規制詞或は短リテラルとして復号
することはできない。前述の如く、拡張即値データ並び
に分岐変位は、それらが取り得る値に制限がないので、
短リテラル或はレジスフ規制詞のように見られる恐れが
ある。
第25図においては、種々のケース及び組合せのための
シフトカウントに対して:GPSを前置して、指示され
たレベルに現われる規制詞に関する情報を指定し、Rs
t、:を前置して、指示されたレベルに現われるレジス
タ規制詞或は短すテラル規制詞に関する情報を識別し;
REGを前置して、指示されたレベルに出現する何等か
のレジスタ規制詞に関する情報を表わしている。
復号が許容されるレベルを決定するために、マルチプレ
クサ182.183.184及び185の選択入力S1
及びSoをそれぞれ制御するエンコーグ186.187
.188及び189に適切な妥当性データが印加される
。ケース。。及びケース。1の場合には、指標モード信
号“指標(2)或は“指標(1)”によってそれぞれ制
御されるマルチプレクサ190及び191が第24図の
表に示すサブケースのための3つの有効信号を選択する
第26図はエンコーダ186の回路図である。
もし入力P、 、P、及びPzが全て活動であれば選択
出力S、及びSoは共に活動である。3人力ANDゲー
ト192はこれら3つの全ての人力の一致を検出し、O
Rゲート193及び194を付活して選択信号を発生さ
せる。もし入力P0及びPlは共に活動であるがP2が
非活動であれば、2人力ANDゲート195がORゲー
ト194のみを付活するので出力S、のみが活動となる
。もしPoは活動であるがP+が非活動であれば、ゲー
ト196がORゲート193を付活し、ORゲ−1−1
94は非活動であるので出力S0のみが活動となる。も
し3人力Po、P+及びP2が全て非活動であれば、出
力81及び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図に規定さ
れている種々の復号レベルのための有効信号、数及びシ
フトカラン1−のような規制詞情報を決定する論理回路
を設ける必要もある。複雑な規制詞、或は複雑な規制詞
後のレベルにおいて復号される規制詞は、その複雑な規
制詞が絶対或は即値アドレス指定モードを有するか否か
に依存しよう。規制詞情報を規定するために、絶対モー
ド及び即値モードを特別なケースとして取扱い、規制詞
情報の記号表示の後にアポストロフィを付すことになる
。第28図に示すものは、例えば通常のケース、即ち関
連する複雑な規制詞が絶対或は即値アドレス指定モード
を有していない場合に復号される数規制詞である。この
場合には、規制詞の数の値はレベルIA及びレベル21
Aでは2、またレベルIB、2A、2IB及び31Aで
は3になっている。
第29図乃至第38図は他のレベル及び組合せに対する
シフトカウント及び規制詞の数を規定する真理値表であ
る。第29図乃至第32図は関連する複雑な規制詞が即
値モード或は絶対モードの何れをも有していない通常の
ケースのための情報を捉供し、第33図乃至第38図は
関連する複雑な規制詞が即値モード或は絶対モードを有
しているケースに対する真理値表である。周知のように
、これらの真理値表を実現するための論理回路は、論理
積機能を遂行する第ルベル及び論理和機能を遂行する第
2レベルのような2つのレベルのゲートからなることが
できる。
第39図乃至第41図は、第25図の優先順位論理回路
へ有効信号を供給するために、第42図の論理回路内に
おいて使用される有効信号を決定する論理回路を示す。
“REG有効(i)  ”信号は、命令バッファ内のデ
ータのi番目のバイトが有効レジスタ規制詞を表わして
いるか否かを指示する。“SL有効(i)  ”信号は
、命令ハソファ内のデータのi番目のバイトが、拡張ユ
ニット(第6図の31)の機能停止によって復号が禁止
されることがないを動始すテラル規制詞を表わし得るか
うかを指示する。“R3L有効(i)  ”信号は、命
令バッファ内のデータのi番目のハイドが、拡張ユニッ
トの機能停止によって復号が禁止されることがない有効
レジスタ規制詞或は有効短リテラル規制詞を表し得るか
否かを表わしている。
iが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図の回路によって更に審査される。)命令バッフ
ァ内のバイトiは、それがレジスタモードを有し且つそ
のバイトに対応する有効データフラグがセットされてい
れば、有効レジスタ規制詞である可能性がある。
これはゲート214によって検出される。命令バッファ
内のバイトiは、対応有効データフラグがセットされ、
それが短リテラルモードを有し、拡張ユニットが機能停
止しておらず、且つバイト1或はバイト2が何れも有効
短すテラル規制詞でなければ、有効短すテラル規制詞で
あり得る。換言すれば、命令バッファ内のバイトiは、
もし現サイクル内にバイトiを復号することが不可能で
あれば、有効短すテラル規制詞であると見做すことはで
きない。これらの条件はゲート215及び216によっ
て検出される。ORゲート217は、命令バッファ内の
バイl−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ハイドに対応するレジスタ妥当性信号をも
選択する。更に、マルチプレクサ22Bは複雑な規制用
に続くこれらのハイド内に包含される短リテラルデータ
及びレジスタアドレスをも選択し、第54図、第56図
及び第58図に基いて詳細を後述する回路によって最終
的にTR及びXI−バスに供給されるレジスタ規制用或
は短すテラル規制詞に関するデータを発生する。レジス
タデータ及び短リテラルデータのフォーマットは第53
図に、またレジスタアドレスのフォーマットは第55図
に示す。
第43図は単一のサイクル中に即値アドレス指定モード
或は絶対アドレス指定モードを有する複雑な規制用を含
む3つまでの規制用を同時に復号するために規制用の初
期IN’及びシフトカウント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.238.239によって決定される。
VAXアーキテクチャの欠点は、即値アドレス指定モー
ド或は絶対アドレス指定モードを有する複雑な規制用に
関連する規制用情報が、その複雑な規制用のデータ型の
関数であることである。復号論理回路及びマルチプレク
サ(即ちシック)(第12図の105及び106)にお
ける遅延がモードデコーダ(第12図の115)におけ
る遅延より蟲かに大きいために、データ型は第43図の
シフトカウント論理回路が最後に受信する情報片である
。従って第43図のシフトカウント論理回路を通るいわ
ゆるクリティカルバスはデータ型情報の°信号経路によ
って決定される。このクリティカルバスを第44図に示
す。
GPS ’規制詞情報論理ユニット232においてデー
タ型は複雑な規制用のシフトカウントGPSJを決定す
る。GPSJ′はマルチプレクサ(即ちシフタ)227
.228の制御入力に印加されて3つまでの有効信号■
を選択させ、有効信号■は優先順位エンコーダ186.
187.188或は189に印加される。これらのエン
コーダはそれぞれマルチプレクサ182.183.18
4!1i52は185を制御して4つの機能F、の中か
ら特定の1つを選択させ、結果G、を得る。第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図に示すように、例えば入力OOは絶対モード
或は即値モードを有する規制詞が存在しない時に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’規制詞規制論理ユニッ
ト249は、第25図の回路が受信する信号に対応する
妥当性信号を、対応するケース及びサブヶ一スに関連し
て受信する複数のエンコーダ251乃至256を含む。
規制詞情報論理ユニット249内には、第42図に示す
ゲート222乃至226に対応するゲート257乃至2
61も示されている。エンコーダ251乃至256はそ
れぞれ4人カマルチブレクサ262乃至267を制御し
、複雑な規制詞のベースに続くバイト、語或はロングワ
ード変位或は即値データのケースに対して第33図及び
第35図の真理値表内の値に対応するN及びSC値を選
択させる。別の2人カマルチプレクサ268.269は
拡張即値モードに対する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、R2H,R3及
びR3XRは第45図に示す一般的なケースに関連する
論理の若干のサブセットである。
第48図はR1トリーに関連する論理回路である。第1
規制詞に関連する規制詞情報だけが関係しているので、
−i的なケースは大巾に簡略化されている。例えば関連
妥当性情報は、レベル1におけるレジスタ規制詞或は短
すテラル規制詞が有効であるか否か、或はレベル2I或
はレベル1における複雑な規制詞が有効か否かという事
実だけを含む。関連情報は基本ケースによって、及びバ
イトlが指標レジスタを指定しているか否かによって、
及び第1規制詞が絶対モード或は即値モードを有する複
雑な規制詞であるか否かによって選択されるから、これ
らの妥当性信号の優先順位を指示する必要はない。
R1論理トリーは、トリーの頂上に2人カマルチブレク
サ291、第1の複雑な規制詞に関する情報を選択する
8人カマルチプレクサ292、及び4つの各基本ケース
に従って情報を選択するマルチプレクサ293を含む。
ゲート294に示されているように、バイト1が有効レ
ジスタ規制詞或は有効短すテラル規制詞である時には、
ケース。。、ケース。1及びケース、。においてはN′
は1に等しく、またSC′も1に等しい。バイト1が指
標レジスタを指定している時には、バイト2から始まる
複雑な規制詞は、それがゲート295及びマルチプレク
サ297によって有効であることが検出されれば復号さ
れる。ケース1.の場合にはゲート296が、Nを1に
等しく選択し、この複雑な規制詞が有効である時にはバ
イト1から始まる複雑な規制詞に関連するシフトカウン
トを選択する。
第49図はR2トリーのシフトカウント論理回路を示す
。トリー頂部のマルチプレクサ300は、第1或は第2
規制詞の何れもが絶対モード或は即値モードを有してい
ないものとして選択される場合には第25図の一般トリ
ーの簡略化バージョン301を、或は第1規制詞が複雑
なモード或は即値モードを有していることを見出した場
合にはマルチプレクサ302の出力を、或は第1規制詞
がレジスタ規制詞或は短すテラル規制詞の何れかであり
且つ第2規制詞が絶対モード或は即値モードを有する複
雑な規制詞である場合には別のマルチプレクサ303の
出力を選択する。第49図と第45図とを比較すれば、
R2トリーは、符号化論理が、最初の2つの規制詞に関
連する妥当性信号を考慮するだけでよいという想定に基
いて、−船釣ケースのためのトリーを簡略化したに過ぎ
ないことは明白であろう。
第50図は、バイト1がレジスタ規制詞或は短リテラル
の何れでもなく、且つ第2規制詞が短リテラルである時
には復号されない規制詞である場合に限って使用される
R2R1−リーの論理図である。R2R1−リーは、例
えば要求されつつある第2規制詞が“書込み”アクセス
型である時(この場合、もし第2規制詞が短すテラル規
制詞であればアドレス指定障害が発生する)に要求論理
ユニット(第12図の114)によって要求されるトリ
ーである。アドレス指定障害は次のサイクル中に短すテ
ラル規制詞が復号すべき第1規制詞となった時に検出可
能であるから、これはアドレス指定障害の検出を簡略化
することになり、またアドレス指定障害を第1規制詞の
モードだけから検出可能ならしめる。
第1バイトはレジスタ規制詞或は短すテラル規制詞の何
れでもな(、また2つの規制詞だけが要求されているこ
とを想定しているから、R2Rトリーの頂部のマルチプ
レクサ311は第1規制詞が絶対モード或は即値モード
を有している場合にはマルチプレクサ312からの情報
を選択し、また第1規制詞が絶対モード或は即値モード
を有していない場合には別のマルチプレクサ−313の
出力を選択する。GPS’規制詞規制論情報論理ユニッ
ト249規制詞に関連する有効信号と、複雑な規制詞に
続くバイトに関連するレジスタ有効信号とを択一する。
同様にして、マルチプレクサ314の入力は2Iレベル
において復号される規制詞に関連する有効信号と、21
Aレベルの後続バイトに関連するレジスタ有効信号とを
択一するように結線され、別のマルチプレクサ315は
レベル1における複雑な規制詞に関連する有効信号と、
レベルLAにおけるバイトに関連するレジスタ有効信号
とを択一するように結線されている。
第51図は、最初の2バイトがレジスタ規制詞或は短す
テラル規制詞である場合に限って使用されるR3)リー
の回路図である。第52図から明らかになる如く、要求
されている3つの規制詞の一般的なケースは、第3規制
詞が複雑な規制詞であるR3ケースと、第3規制詞がレ
ジスタ規制詞である場合に限り復号されるR3XRケー
スとに分けられる。
R3)リーの回路図を第51図に示す。トリー頂部のマ
ルチプレクサ321は、第3規制詞が絶対モード或は即
値モードを有しているか否かを表わすSEL規制規制信
号によって制御される。第3規制詞が絶対モード或は即
値モードを有していれば、マルチプレクサ321は第4
5図に基いて説明済のマルチプレクサ247からN′及
びSC′を選択する。それ以外の場合には、“ケース(
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′を選択する。従ってR3XR1−リーは、
第25図のマルチプレクサ182乃至185に対応する
別のマルチプレクサ333乃至336、第25図のエン
コーダ186.187及び189に対応するエンコーダ
337.338及び339、及び第25図のマルチプレ
クサ190及び191に対応するマルチプレクサ340
及び341を有している。第52図のマルチプレクサ3
35の選択入力は、命令バッファ内のバイト1及びバイ
ト2に関連するレジスタ有効信号或は短リテラル有効信
号を択一するように結線されている。
復号される規制詞の数がシフトカウント論理トリーから
マルチプレクサ124.125及び126(第12図)
によって選択されると、規制詞に関するデータの命令バ
ッファ内の位置が分り、従って規制詞データをCP、S
L或はTRバスへ伝送するために選択することが可能に
なる。複雑な規制詞に関連する規制詞情報は、その位置
が基本ケースによって与えられるために、最も容易に決
定される。しかしながらSL及びTRバスに関しては、
復号される第2及び第3規制詞に伴う何等かのレジスタ
規制詞データ或は短すテラル規制詞データを決定するこ
とが望ましい。勿論、第1規制詞に関する何等かのレジ
スタデータ或は短リテラルデータは命令バッファ内のバ
イト1の中に見出される。
命令バッファ内のあるバイト内のレジスタデータ或は短
リテラルデータのフォーマントは第5図に示したが、復
号される第2或は第3規制詞に伴う何等かのレジスタデ
ータ或は短リテラルデータを得るために使用される種々
の信号を規定する目的で第53図に再び示す。レジスタ
規制詞或は短すテラル規制詞に関するデータ“R3Lデ
ータ(i)  ”は、例えば8ビツトからなる。”R3
Lデータ”の最上位ビットは、命令バッファ内のバイト
iが有効レジスタ規制詞であり得るか否か、換言すれば
それが’REG有効(i)  ”信号か否かを表わすも
のとする。また“R3Lデータ”の次層上位ビットは、
バイトlが短すテラル規制詞であり得るか否か、換言す
ればそれが“SL有効(i) ”信号か否かを表わすも
のとする。次の2つの最上位ビットはそのバイト内の何
等かの短リテラルデータの2つの最上位ビットである。
4つの最下位ピントは短リテラルデータ或はレジスタア
ドレス″REGN(i)  ”の残余を構成している。
第54図は、復号される第2規制詞内のレジスタデータ
或は短リテラルデータを選択する出力選択論理ユニット
(第12図の128)の回路図である。暫時第21図を
参照する。これらのレジスタデータ或は短リテラルデー
タは、ケース。。においては命令バッファ内のバイト2
内に存在し、ケース。1においてはレベル21Aに存在
し、ケース、。
においてはバイト2内に存在し、ケース、においてはレ
ベルIAに存在することを値認されたい。
第54図において、マルチプレクサ351は特定ケース
を選択し、ケース。。及びケース、。においてはレジス
タデータ或は短リテラルデータを命令バッファ内のバイ
ト2から入手する。
ケース、、関しては別のマルチプレクサ352が、第1
規制詞が絶対モード或は即値モードを有する複雑な規制
間であるか否かを決定し、また第2規制詞が複雑な規制
間であるか否かをも決定する。
もし命令バッファ内のバイト1が指標レジスタを指定し
ていなければ、一対のゲート353.354がマルチプ
レクサ352へ選択入力を供給してO値を有するデータ
を選択させ、第2規制詞が有効レジスタ規制詞或は有効
短すテラル規制詞ではあり得ないことを指定する。それ
以外の場合、即ち命令バッファ内のバイト1が指標レジ
スタを指定していれば、バイト2内にそのベースを有す
る複雑な規制間のモードが即値モード或は絶対モードを
有するか否かに依存して3つの場所の中の1つからレジ
スタデータ或は短リテラルデータが入手される。即ち複
雑な規制間が即値モードも絶対モードも有していなけれ
ば、レジスタデータ或は短リテラルデータは21Aレベ
ルから入手される。
もし複雑な規制間が絶対モードを有していれば、レジス
タデータ或は短リテラルデータは命令バッファ内のバイ
ト7から入手される。それ以外の場合、即ち複雑な規制
間が即値モードを有している場合には、レジスタデータ
或は短リテラルデータは複雑な規制間のデータ型に依存
してマルチプレクサ355によって選択される位置から
入手される。
ケース、に関するレジスタデータ或は短リテラルデータ
は同様にしてマルチプレクサ356及び357から入手
されるが、ケース1.においては第1規制詞は必然的に
命令バッファ内のバイト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は命令内読出し競
合の場合にそのレジスタ規制間を汎用ユニットによって
処理させることを保証する信号“I RC−REG”を
発生する。このI RC−REG信号は後述する第61
図の回路に供給される。有効データフラグ、レジスタフ
ラグ及びレジスタ番号は、TRバスの部分390を介し
て転送ユニット(第6図の30)へ伝送された後に、ラ
ンチ即ちレジスタ387内にラッチされる。
第58図はTRバスを介して伝送される第2源オペラン
ドに関連する妥当性検査論理ユニットを示す。第2源オ
ペランドに関連する有効データフラグは、実際に復号さ
れる規制詞の数Nによって制御されるマルチプレクサ3
91によって選択される。有効データフラグは、実際に
復号される規制詞の数が0或はlである時にはクリヤさ
れ、3である時にはセントされる。もし2つの規制詞が
復号されれば、第2規制詞が宛先オペランドを指定して
いる可能性があり、この場合有効データフラグはクリヤ
される。第1規制詞がASRCのアクセス型を有し且つ
第2規制詞が書込みのアクセス型を有していないことを
ゲート392が検出するか、或は第1規制詞が■読出し
のアクセス型を有し且つ第2規制詞が読出しのアクセス
型を有していることをゲート393が検出するか、或は
第1規制詞が読出しのアクセス型を有し且つ第2規制詞
が“書込み”暗示書込み”の何れのアクセス型をも有し
ていないか、或は書込み分岐変位ではないことをゲート
394.395及び396が検出すれば、第2規制詞は
宛先規制詞ではない。
第2源オペランドに関連するレジスタフラグ(RGF)
は、第2規制詞が分岐変位でも或は暗示規制詞でもなく
 (ゲート397によって検出)、且つ第2規制詞が有
効レジスタ規制詞を表わし得る(ゲート398によって
決定)ような、少な(とも2つの規制詞を復号した時に
セットされる。
第2規制詞に関連する有効データフラグ、レジスタフラ
グ、及びレジスタアドレスはTRバスの部分400を介
してラッチ399へ送られ、次のサイクル中に転送ユニ
ット(第6図の30)において使用される。
第59図に宛先オペランドを選択するための妥当性検査
及び多重化論理回路を示す。宛先オペランドは、第11
第2或は第3規制詞の何れかによって指定することがで
きる。宛先規制詞の位置は、主として復号される規制詞
の数によって決定され、従って宛先オペランドに関連す
る有効データフラグ、レジスタフラグ及びレジスタアド
レスは現サイクル中に実際に復号される規制詞の数によ
って制御されるそれぞれのマルチプレクサ401.40
2、及び403によって選択される。現サイクル中に規
制詞が復号されなければ、勿論宛先オペランドは入手不
能であり、有効データフラグはクリヤされる。1つの規
制詞が復号される時、現サイクル中に復号された第1規
制詞のアクセス型が“変更”書込み”暗示書込み”、或
は“■変更”の何れかであることがゲート404によっ
て検出されればそれは宛先規制詞であり有効データフラ
グ(VDF)がセントされる。もし2つの規制詞が復号
される時復号されつつある第2規制詞のアクセス型が“
■変更”書込み”“変更”暗示書込み”であるか、或は
復号されつつある第1規制詞が“書込み”変更”或は“
V変更”のアクセス型を有していることをゲ−I−40
5が検出すれば、第、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が検出した場合にもレジ
スタ番号は命令バッファ内のバイトlから得られ;それ
以外の場合にはマルチプレクサ414によって選択され
る第2規制詞のレジスタ番号である。同様にして、もし
3つの規制詞が復号され、第2規制詞が有効レジスタ宛
先規制詞であれば、宛先オペランドのためのレジスタ番
号は第2規制詞のレジスタ番号であり;それ以外の場合
にはマルチプレクサ415によって選択される第3規制
詞のレジスタ番号である。
宛先オペランドに関連する有効データフラグ、レジスタ
フラグ及び何等かのレジスタ番号はTRバスの部分42
0を通して伝送されてラッチ即ちレジスタ416に受信
され、次のサイクル中に転送ユニット(第6図の30)
によって使用される。
第60図はEXバス430を介する短リテラル情報の伝
送に関連する妥当性検査論理回路の回路図である。短リ
テラルに関連する有効データフラグは、復号された規制
詞の数と、命令デコーダのバイト1に関連する短リテラ
ル有効信号及び第2規制詞とを組合わせることによって
得られる。即ち、もし命令デコーダ内のバイト1が有効
短すテラル規制詞であれば、ゲート421によってNが
少なくとも2であることが決定されれば有効データフラ
グがセントされる。或はもし命令ハソファ内のバイトl
が有効短すテラル規制詞ではあるがNが1であれば、分
岐変位或は暗示規制詞の何れも要求されていないことを
ゲート384及びゲート422が決定した時に限り有効
データフラグがセントされる。また或はゲート397及
び423が、Nが2或は3であり、第2規制詞が有効短
リテラルであって分岐変位或は暗示規制詞の何れでもな
いことを決定すれば有効データフラグがセットされる。
ゲート421.422及び423の出力はORゲート4
24内て組合わされて有効データフラグが供給される。
もし命令バッファ内のバイト1が有効短リテラルであれ
ば、短リテラルデータはバイト1から得られるが、それ
以外の場合にはマルチプレクサ425によって選択され
る第2規制詞に関連する短リテラルデータから得られる
。短リテラルに関連する規制詞数は、その短すテラル規
制詞が現サイクル中に復号される第1規制詞である場合
には既に完了した即ち復号された規制詞の数、或は短リ
テラルが現サイクル中に復号される第2規制詞であれば
これより1つ大きい数の何れかである。
この計算は3ビツト2進加算器426及びインバータ4
27によって遂行される。短リテラルオペランドに関連
する有効データフラグ、短リテラルデータ及び規制詞数
はEXバス430を介してラッチ即ちレジスタ428へ
送られてランチされ、次のサイクル中に拡張ユニットに
よって使用される。
第61図はCPババス介してオペランドデータを伝送す
るための妥当性検査及び選択論理ユニットを示す。要求
論理ユニット(第12図の114)からの要求信号は、
CPババス70上に印加されているものが分岐変位であ
るのか或は暗示規制詞であるのかを決定する。1つの規
制詞が復号され且つRIBB或はRIBWIリーが選択
されるか、或は2つの規制詞が復号され且つR2BB或
はR2BWトリーが選択されているか、或は3つの規制
詞が復号され且つR3BB或はR3BWl−リーが選択
されていることをゲート431乃至473が決定すれば
、分岐変位がCPババス上供給されている。CPババス
70を介して伝送された後、ラッチ即ちレジスタ438
はゲート437からの分岐変位及び第57図からのIR
CREG信号をラッチし、OPU (第6図の21)へ
の特別な制御信号を作る。分岐変位の場合には、OPU
はその分岐変位を命令バッファのバイ)O位置内へシフ
トさせる次の演算コードのアドレスに加算して分岐命令
のためのターゲットアドレスを求める。
(RCREG信号に応答してOPUはCPババス70を
介して伝送されるベースによって指定されるレジスタの
番号を入手する。
R11トIJ−が選択され且つ1つの規制詞が復号され
ている、或はR2Iトリーが選択され且つ2つの規制詞
が復号されていることをゲート439.440及び44
1が決定すると、暗示規制詞がGPババス70を介して
伝送される。
マルチプレクサ442は、分岐、暗示或は拡張即値オペ
ランドが復号されていないものと仮定して、複雑な規制
詞を復号可能か否かを決定する。
マルチプレクサ442は、4つの基本ケース、並びに命
令バッファ内のバイト1或はバイト2が指標レジスタを
指定しているか否かを考慮する。ゲート443及び44
4はそのケースと指標信号とを組合せ、ケース、。或は
ケース。。に関して考え得る複雑な規制詞が第1或は第
2規制詞であるか否か、或は第3規制詞であるか否かを
検出する。ケース、或はケース。+Iの場合には、複雑
な規制詞を復号するために、復号される規制詞の数は1
よりも大きいか或は1に等しくなければならない。
ORゲート445は、Nが1よりも大きいか或は1に等
しいか否かを決定する。ケース。、或はケース。。■に
おいては、複雑な規制詞はNが2より大きいか或は2に
等しければ復号できる可能性がある。ケース、。に関し
ては、複雑な規制詞はNが3に等しいことをANDゲー
ト446が検出すれば復号できる可能性がある。ケース
。。においては(指標レジスタを伴わない場合)、命令
バッファ内のバイト3がレジスタ規制詞を指定していな
いことをゲート447が検出すれば、複雑な規制詞は復
号される。
指標レジスタは、命令バッファ内のバイト1が指標レジ
スタを指定するか、或は命令バッファ内のバイト2が指
標レジスタを指定するか、或はケース。、或はケース、
が存在しないかまたはケース、。
が存在していることをゲート448.449及び450
が検出すれば指定される可能性がある。
GPババス関連する有効データフラグは、IRCREG
信号が発生しているか、或は暗示規制詞が復号されたか
、或は分岐変位が復号されたか、或は拡張即値データが
復号されたか、或は複雑な規制詞を復号することが可能
であることをORゲート451が決定すればセットされ
る。CPババス関連する指標レジスタフラグは、複雑な
規制詞が復号可能であり、且つ指標指定が入手可能であ
り、且つ分岐変位、暗示規制詞或は拡張即値データの何
れもが復号されていないことをゲート452及び453
が検出すればセントされる。
暗示規制詞が復号される時、16進数の7E或は8Eの
何れかの値がモード及びベース情報としてCPババス介
して伝送される。この目的のために、暗示規制詞が要求
された時にその要求された暗示規制詞のアクセス型が“
暗示書込み”であれば7Eを選択し、その規制詞のアク
セス型が“暗示書込み”でなければ8Eを選択するマル
チプレクサ454が設けである。要求された規制詞のア
クセス型はマルチプレクサ455によって選択され、O
Rゲート456は暗示規制詞が要求されたか否かを決定
する。
暗示規制詞の場合を除いて、CPババス上規制詞情報は
マルチプレクサ457から得られる。マルチプレクサ4
57は本質的にはシフタとして機能し、命令バッファ内
の連続ハイド位置にある指標、モード及び及びベース、
・及び変位を入手する。
マルチプレクサ457は命令バッファとCPババス70
との間の考え得る5つのオフセットから選択された1つ
を供給する。ある分岐命令に関連して1つの規制詞が要
求されると、変位のバイトOは命令バッファのバイト1
から入手される。ある分岐命令に関連して2つの規制詞
が要求された場合には、変位のバイトOは命令バッファ
のハイド2から入手される。ある分岐命令に対して3つ
の規制詞が要求されると、変位のバイトOは命令バッフ
ァのバイト3から入手される。命令内読出し競合が検出
され、レジスタがCPババス70を介して伝送されると
、変位のバイトOは命令バッファのバイト2に整列させ
られる。またケース、Iにおいても変位のバイト0は命
令バッファのバイト2に整列される。ケース。1におい
ては、変位のバイト0は命令バッファのバイト3に整列
される。
ケース。。においては、変位のバイト0は命令バッファ
のバイト4に整列させられる。最後にケース、。
においては、変位のバイトOは命令バッファのバイト5
に整列される。
変位のハイド0をマスナス(−)1バイト位置シフトさ
せることによって命令バッファのバイトlに整列させる
場合には便宜上入力S1によってマルチプレクサ457
のシフティングを制御し、その他の場合には入力S0及
びSIによって選択される複数のバイト位置だけ他の方
向ヘシフトさせる。入力S1は、1つの規制詞が要求さ
れ且つそれが分岐変位である場合に発生する。シフトさ
せるバイト位置の数は、排他的ORゲート458及びN
ORゲート459.460によって基本ケースから容易
に決定される。命令的読出し競合或は分岐変位に関連す
る要求はケース、□と同数のバイト位置シフトを選択す
る。ORゲート461は分岐変位が要求されたか否かを
決定する。最後に、ORゲート463は、ある分岐命令
に関連して3つの規制詞が要求されたか否かを決定する
CPババス上複雑な規制詞に関連する規制詞数は、基本
ケース及び命令ハソファ内のハイド1或はバイト2が指
標レジスタを指定しているか否かによって決定される。
これは、現在復号されている3つまでの規制詞の何れが
複雑な規制詞であるかを決定することによってなされる
。Xl及びX。
はその複雑な規制詞が現在復号されている第1規制詞で
あるのか、第2規制詞であるのか、或は第3規制詞であ
るのかを指定する。X、はゲート444及びゲート44
9の出力を組合せるORゲート463によって決定され
る。Xoはゲート464.465及び466によって決
定される。
XlXoによって表わされる2ビツトの2進数は加算器
467によって完了した規制詞の数に加算され、復号中
の複雑な規制詞に関連する規制詞が決定される。有効デ
ータフラグ、指標レジスタフラグ、指標、モード、ベー
ス、変位及び規制詞数はCPババス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によ
り制?ff1lされるマルチプレクサ493によって検
出される。ゲート494は、2進カウンタ492の値が
O以外であれば常にX8F信号を発生している。この状
態が発生すると2進カウンタ492は、命令バッファ内
のハイド4に関連する有効データフラグが拡張即値デー
タが有効であることを指示し、且つ汎用ユニットが機能
停止しておらず、且つデコーダが機能停止していないこ
とを指示している限りデクレメントされる。これらの条
件はゲート495及び496によって検出される。
RX8Fシフトカウントは2進カウンタ492がデクレ
メントされる時は4であり、それ以外の場合は0である
。Nに対するRX8Fの値は常にOである。拡張即値検
出器110は、即値モードが最初に検出されない時、2
進カウンタが2或はそれ以上の値を有していない時、及
び2進カウンタの値が1であるか或は2進カウンタがデ
クレメントされるであろう時に“演算コードシフト”信
号を発生させる。換言すれば、演算コードのシフトは、
拡張即値モードが検出された時からロングワードカウン
トが1となり2進カウンタがOまでデクレメントされる
まで不能化されるのである。これらの条件はゲート49
7及び498によって検出される。
第63図は自動インクレメントモード或は自動デクレメ
ントモードを検出するデコーダの回路図である。自動デ
クレメントモードは、レジスタモードフィールド(第5
図参照)の値が7であることをゲート501が検出する
と発生ずる。自動インクレメントは、レジスタモードフ
ィールドの値が8或は9であることをゲート502が検
出すると発生ずる。ゲート501及び502の出力はO
Rゲート503によって組合されて自動インクレメント
モード或は自動デクレメントモードを表わす信号となる
デコーダにとって、命令内読出し競合を検出するために
自動インクレメントモード或は自動デクレメントモード
を検出することは重要である。命令デコーダ20は、レ
ジスタ規制詞及び自動インクレメント規制詞或は自動デ
クレメント規制詞を同時に復号することができるから、
レジスタ規制詞と自動インクレメント規制詞或は自動デ
クレメント規制詞とが同一レジスタを参照する恐れがあ
る。従ってレジスタ規制詞の値を、参照されたレジスタ
の初期値とすべきか、或は自動インクレメント或は自動
デクレメントによって変更された後の値とすべきかを弁
別することが重要である。サイクル当りl規制詞を復号
するデコーダにおいては、レジスフ規制詞が自動インク
レメント或は自動デクレメント規制詞の前に復号されれ
ばレジスタ規制詞は初期値を参照し、またレジスタ規制
詞が自動インクレメント或は自動デクレメント規制詞の
後に発生すれば変更された値を参照するであろうから上
述の如き恐れは生じない。
本発明において使用されるような命令デコーダにおいて
は、レジスタ規制詞が復号された時にTRバスを介して
レジスタ番号を伝送し、また実行ユニットがレジスタ規
制詞の実際の値を入手する前に汎用ユニットにおいて自
動インクレメント或は自動デクレメント規制詞を前処理
することが望ましい。従って、このようなデコーダが共
に同一レジスタを参照するレジスタ規制詞と自動インク
レメント或は自動デクレメント規制詞を同時に復号した
時には、実行ユニットは必然的にレジスタ規制詞として
参照されたレジスタの変更された値を使用することにな
る。しかし、この必然的な動作モードは、命令に関連す
る演算コードに続く規制詞のシーケンスにおいてレジス
タ規制詞が自動インクレメント或は自動デクレメント規
制詞の前に出現した場合には結果が無効になり得る。命
令デコーダ20においては、これを“命令内読出し競合
”と呼ぶ特別なケースとして処理することによって、こ
の発生可能な不正確な結果を回避する。換言すれば、自
動インクレメント或は自動デクレメント規制詞が同一命
令に関連する規制詞シーケンス内の先行レジスタ規制詞
によって参照されたペースレジスタを指定した場合を命
令内読出し競合であると云う。
レジスタ規制詞は、少なくとも規制詞のレジスタアドレ
スフィールド(第5図参照)によって指定されたレジス
タを参照する。もしレジスタ規制詞がクワッドワードデ
ータ型を有していれば、レジスタ規制詞は更にレジスタ
規制詞のレジスタアドレスフィールド内に示されている
1+レジスタ番号(n)のレジスタ番号(即ちアドレス
)を有するレジスタも参照する。オクタワードデータ型
を有するレジスタ規制詞はレジスタ番号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+1、n+2及びn+3に発生する。
ビットは、それぞれのデコーダ515.516及び51
7によって、これらの他のビット位置に選択的にセット
される。各デコーダはそれぞれのマスクを発生し、これ
らのマスクは全体として518で示す一組16の4人力
ORゲートによって論理和されて読出しレジスタマスク
が得られる。
読出しレジスタマスク内のn+2及びn+3ビ・7ト位
置のビットはオクタワードデータ型に対してのみセット
されるから、オクタワードデータ型はゲート519によ
って復号され、デコーダ516及び517へ供給される
可能化信号となる。同様にして、デコーダ515はオク
タワード及びクワッドワードデータ型に対してORゲー
ト520によって可能化される。ゲート521は源レジ
スタ番号に伴う有効データフラグ及びレジスタフラグを
用いて審査する。これらのフラグはゲート519も可能
化し、オクタワードデータ型を検出させる。
第64図に示すように、読出しレジスタマスクは、源レ
ジスタ規制詞が復号されるサイクルに続くサイクル中に
ペースレジスタ番号が発生すると、命令的読出し競合を
検出するために便宜的に使用される。もしペースレジス
タが源レジスタ規制詞と同一サイクル中に復号されれば
、第64図の回路は、源データ型が復号論理ユニット(
第12図の105)から入手可能になる時点から命令的
読出し競合がマルチプレクサ511によって検出される
時点まで過大な遅延をもたらす。
第65図に示す命令的読出し競合検出回路は、データ型
が入手可能となる時点と命令的読出し競合が検出される
時点との間の遅延を排除するために、源レジスタ規制詞
のデータ型によって制御されるマルチプレクサ531を
有している。マルチプレクサ531は、データ型がロン
グワード、クワッドワード或はオクタワードを指定して
いるか否かに対応するJRCマスクのそれぞれのビット
位置を選択する。
IRCマスクを発生させるために、コンパレータ532
は源レジスタ番号とペースレジスタ番号を比較して、デ
ータ型がロングワードを指定していれば競合の可能性の
有無を決定する。ゲート533はコンパレータ532の
出力を受け、ペースレジスタに関連する自動モード信号
及び源規制詞に関連するレジスタフラグによってそれを
審査する。
考え得るクワッドワード及びオクタワードデータ型に対
するIRCマスクビットを決定するために、源レジスタ
番号nが加算器534へ供給され、加算器534はn+
1、n+2及びn+3の値をそれぞれコンパレータ53
5.536及び537へ供給する。コンパレータ532
及び535の何れかが整合を指示していることをORゲ
ート538が検出すると、クワッドワードデータ型に関
して競合が発生している可能性がある。またコンパレー
タ532.535.536或は537の何れかが整合を
指示していることをORゲート539が検出すれば、オ
クタワードに関して競合が発生しているものと考えられ
る。ゲート538.539の出力は、それぞれゲート5
04及び541においてレジスタフラグ及び自動信号に
よって審査される。
第66図は、現サイクル中に同時に復号される2つまで
の源規制詞と、源命令の先行サイクル中に復号された任
意数の源規制詞とのレジスタ内競合を検出するための9
ビツト■RCマスクを発生する回路である。第66図の
回路は、現サイクル中に復号されるある複雑な規制詞と
、同一命令の何れかの先行サイクル中に復号された任意
数の源及び指標レジスタ規制詞との間の現サイクル中の
命令内読出し競合を検出するために、第64図に示す回
路と類似した読出しレジスタマスク発生器及び複合IR
C検出器を含む。
読出しレジスタマスクを発生させるために、先行復号サ
イクルにランチされた第1源レジスタ番号、有効データ
フラグ、レジスタフラグ、及び第1規制詞データ型の値
が読出しレジスタマスク発生器551へ印加される。同
様に、先行復号サイクル中に決定された第2aレジスタ
番号、有効データフラグ、レジスタフラグ、及び第2規
制詞のデータ型が読出しレジスタマスク発生器552へ
印加される。全体を555で示す−m16の3人力OR
ゲートが2つの源レジスタ番号に関連して発生された読
出しレジスタマスクとラッチ即ちレジスタ554からの
先に発生された読出しレジスタマスクとを組合せて現復
号サイクルの読出しレジスタマスクを作る。この読出し
レジスタマスクはゲート556において“新フォーク”
信号によって審査され、レジスタ554へのデータ入力
となる。従って、レジスタ554は現命令の先行復号サ
イクルに関する読出しレジスタ情報を累積し、ゲート5
56は現命令に関する復号の終りにレジスタ554をク
リヤする。
現サイクル中に復号される何等かの自動インクレメント
或は自動デクレメントモードを有する複雑な規制詞と、
同一命令の先行サイクル中に復号された任意源規制詞と
の間の競合の存否を決定するために、ゲート556の出
力はマルチプレクサ557へ印加される。マルチプレク
サ557は複合マスクから複雑な規制詞に関連するペー
スレジスタの番号に対応する特定ビットを選択する。こ
のペースレジスタ番号は、基本ケースによって制御され
るマルチプレクサ558によって命令バッファ内のバイ
ト1.2.3或は4のレジスタアドレスフィールドから
選択される。同様にして、ペースレジスタ番号に関連す
る自動インクレメント或は自動デクレメントモード信号
が、基本ケースによって制御されるマルチプレクサ55
9によって選択される。
マルチプレクサ557からの複合IRCは9ピッ1−I
RCマスクの全ての位置へ論理和される。
それ以外の場合には、IRCマスクは現サイクル中に同
時に復号される2つまでの源レジスタ規制詞と自動イン
クレメント或は自動デクレメントモードを有する複雑な
規制詞との間に競合の可能性があることを指示する。第
65図に示す加算器及びコンパレータは、現サイクル中
に同時に復号可能な源レジスタとペースレジスタとの考
え得る各組合せに対してそれぞれコンパレータ561乃
至564を構成するように5組が設けられている。
これらの各コンパレータは4つの出力ビットを供給する
コンパレータ561乃至563からの出力は、基本ケー
スによって制御されるマルチプレクサ566によって選
択され、考え得るペースレジスタ及び先行第2レジスタ
規制詞に関連するコンパレータ信号となる。ケース(0
)信号によって制御される別のマルチプレクサ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の回路図
である。IflCマスクは第1組のマルチプレクサ59
1.592及び593に印加され、復号中の第1規制詞
のデータ型に対応する3ビツトが選択される。第4のマ
ルチプレクサ594は、復号中の第2規制詞のデータ型
によって制御され、IRCマスクの9ビ、トの中の特定
の1つを選択する。しかし、IRcマスクのこの選択さ
れたビットが命令的読出し競合の存在を必ずしも表わし
てはいない。何故ならば、検出されたモードが実際には
分岐変位であるかも知れず、或は暗示規制詞であり得る
からである。これらの場合には、マルチプレクサ594
の出力はゲート595及び596によって阻止される。
また同一命令の先行復号サイクル中にレジスタ内競合が
検出された場合にもゲート596は禁止される。これは
、競合がある命令の復号中に最初に検出された時に競合
検出器がOPUに通告できるようにするためになされる
のである。
それでも、自動モードを有する複雑な規制詞が現サイク
ル中に復号されないかも知れないために、ゲート596
の出力が命令的読出し競合を通告していない恐れがある
。自動モードを有する規制詞が実際に復号されるか否か
は、現サイクル中に復号される規制詞の初期数N′、基
本ケース、及び命令バッファ内のバイト1或はバイト2
が指標レジスタを指定しているか否かに依存する。これ
らの条件はANDゲート597乃至601及びORゲー
ト602によって検出される。ORゲート602は、先
行レジスタ規制詞或は指標レジスタ指定と競合する暗示
規制詞が復号されると発生する暗示IRC信号も受けて
いる。暗示命令内読出し競合は、例えば“PUSHL 
SP”命令に関連して発生する。何故ならば、このよう
な命令は先ずスタックポインタの初期値を入手し、次で
スタックポインタを自動デクレメントし、次でスタック
ポインタの初期値をデクレメントされたスタックポイン
タ値によって与えられるアドレスのスタック上にブツシ
ュするために中断さるべきだからである。
従って第1明示規制詞は、同一レジスタの後続暗示自動
デクレメントと競合する源レジスタ規制詞である。
源レジスタ規制詞と、暗示自動インクレメント或は自動
デクレメント規制詞との間の命令的読出し競合を検出す
るために、命令バッファのバイト1内のレジスタ番号は
、バイト1のレジスタモードによって可能化されるデコ
ーダ603の選択入力に印加される。付録■に示す暗示
規制詞の場合、暗示規制詞は常に、14のレジスタ番号
を有するスタックポインタの自動インクレメント或は自
動デクレメントである。従ってデコーダ出力14.13
.12及び11は第65図のコンパレータ信号P (1
1、P、2.、P、3.及びP、4.に対応する。
ORゲート604及び605は暗示レジスタマスクのク
ワッドワード及びオクタワードビットを供給する。暗示
IRCマスクの適切なビットがマルチプレクサ606に
よって選1尺される。マルチフ。
レクサ606の出力はゲート607において暗示規制詞
が復号されるであろうことを表わすR21要求信号及び
N’N)によって更に審査される。
現在復号中の暗示規制詞が同一命令の先行復号サイクル
中に復号されたレジスタ規制詞と競合する可能性もある
。このような競合は、1つの暗示規制詞が要求され且つ
1つの規制詞が復号されるであろう場合には第66図の
ゲート555からの読出しレジスタマスクのビット14
を選択するゲート608によって、また1つの暗示規制
詞を含む2つの規制詞が要求され且つ2つの規制詞が復
号されるであろう場合にはゲート609によって検出さ
れる。ゲート607.608及び609によって検出さ
れる種々の考え得る競合の源はORゲート610によっ
て組合され、暗示命令的読出し競合が検出される。
明示或は暗示命令的読出し競合がゲー)602によって
通告されると、その命令は各復号サイクル中に1規制詞
だけが復号されるようにして復号される。現サイクル中
に1つの規制詞だけが復号され、もしその命令に関して
復号すべき規制詞が残っていればラッチ611がセット
され、命令が完全に復号されてしまうまで爾後の各復号
サイクル中には1つの規制詞だけが復号されることを通
告する。命令に関連する復号の終りは、第12図からの
“全規制詞完了”信号によって指示される。
またラッチ611は、命令バッファが初期にロードされ
つつある時、或はデコーダ障害が存在する時はセットさ
れない。これらの状態においてはラッチ611のセット
はゲート612によって禁止されているからである。
−Hうソ千611がセットされると、ゲート613は現
サイクルにおける復号が終るまでセットさせ続ける。別
のゲート614は、デコーダ障害の場合にラッチ611
の状態が変化しないようにする。ゲート612.613
及び614の出力はORゲート615において組合され
、ラッチ611のデータ入力へ印加される。ORゲート
616は、ラッチ611の出力とゲート602からの“
検出した[RC”信号とを組合せて第12図のマルチプ
レクサ126を動作させるIRC信号を発生する。
第68図は、命令デコーダ(第1図の20)による命令
内読出し競合に応答して命令ユニット内の汎用レジスタ
651及び実行ユニット内の対応する一組の汎用レジス
タ652を更新する命令ユニッ)12及び実行ユニノl
−13内の回路の回路図である。第68図に示すように
、命令ユニット12と実行ユニット13との間のデータ
経路は源リスト24及び複数の待ち行列23を含む。詳
述すれば、これらの待ち行列23は、今復号されたばか
りの命令に関連するフォークアドレス即ちマイクロコー
ドエントリアドレスを受けるフォーク待ち行列653、
命令デコーダによって復号されたレジスタ番号或は源オ
ペランドを指す源リストポインタを受ける源ポインタ待
ち行列655、命令デコーダによって復号されたレジス
タ番号或は宛先オペランドのアドレスを受ける宛先ポイ
ンタ待ち行列656、及びレジスタスコアボード待ち行
列657を含む。
レジスタスコアボード待ち行列657は、予め前処理さ
れてはいるが未だに実行されていない命令のレジスタ源
オペランドと、現命令の自動インクレメント或は自動デ
クレメント規制詞との間の命令内読出し競合を検出する
。またレジスタスコアボード待ち行列657は、予め前
処理されてはいるが未だに実行されていない命令のレジ
スタ宛先オペランドと、2現命令のレジスタ源オペラン
ドとの間の命令内読出し競合をも検出する。何れかの命
令内読出し競合を検出するためにレジスタスコアボード
待ち行列は、“新フォーク”信号が発生した時に第66
図の一組のゲート555が発生する複合レジスタ読出し
マスクを受ける。何等かの命令内書込み競合を検出する
ためにレジスタスコアボード待ち行列は、複合レジスタ
読出しマスクと同様にして作られる(但しマスク発生器
は宛先レジスタ情報に応答する)複合レジスタ書込みマ
スクをも受ける。更に、レジスタスコアボード待ち行列
657は、待ち行列内の全てのマスクを論理和して複合
レジスタ読出し及び書込みマスクを形成させる一組のO
Rゲートをも含む。
複合レジスタ読出しマスクは、自動インクレメント或は
自動デクレメントモードを有する複雑な規制詞のペース
レジスタ番号と比較され、命令内レジスタ読出し競合が
検出される。同様にして、源レジスタ番号が複合レジス
タ書込みマスクと比較されて命令内書込み競合が検出さ
れる。何れの場合においても、レジスタスコアボード待
ち行列657は命令内レジスタ競合の存在を通告する。
レジスタスコアボード待ち行列657の構造及び動作の
詳細に関しては前記マーレイらの合衆国特許出願“ディ
ジタルコンピュータのデータ依存性を解消する複数命令
前処理システム”を参照されたい。
命令ユニ・ノド12及び実行ユニット13は汎用レジス
タの組651及び652を重複して含むので、規制詞は
実行ユニットが必要とする前に命令ユニットによって評
価することができる。実行ユニットが汎用レジスタを変
更する場合、新しいデータが実行ユニット汎用レジスタ
652及び命令ユニット汎用レジスタ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にな
った時に1新フオーク”信号に応答してカウンタをリセ
ットするゲート660とを有している。タグは、実行ユ
ニット13内に配置されている6つの3ビツトRLOG
カウンク661の1つを指す。
RLOG待ち行列658は、該行列にエントリが付加さ
れるとインクレメントされる4ビツトの挿入ポインタカ
ウンタ662を有している。また、あるエントリが付加
される度に関連RLOC;カウンタがインクレメントさ
れる。命令がリタイアされると、リタイアされた命令の
タグ(実行ユニットタグ)に対応するRLOGカウンタ
はリセットされる。これは、例えば、RLOGカウンタ
661の関連リセット入力に接続された出力を有しリタ
イアユニット28からのリタイア信号によって可能化さ
れるデコーダ663によってなされる。同様に、エンコ
ーダ664は、RLOGカウンタ661の関連クロック
可能化入力に接続されている出力と、OPUタグを受け
る選択入力と、“変更”信号によって可能化される可能
化入力とを有する。“変更”信号は挿入ポインタカウン
タ662からの挿入ポインタを復号するデコーダ665
を可能化し、RLOG待ち行列658内の16のデータ
レジスタの関連する1つのデータ可能化入力を付活する
RLOG待ち行列内の有効エントリの数は、加算器66
6においてRLOGカウンタ661の全ての値を加算す
ることによって得ている。この和の最上位ビット(Q4
)は、RLOG待ち行列658内に16のエントリが存
在することを表わし、従ってRLOG待ち行列がオーバ
フローしようとしていることを通告している。オーバフ
ローは、Q4信号が発生した時にOPUを機能停止させ
ることによって阻止する。加算器666の出カビノドは
NORゲート667によって組合され、RLOG待ち行
列が空きであることを表わす信号が作られる。
例外或は割込みが発生すると、RLOGエントリはRL
OG待ち行列から解きほぐされる。これは、RLOG待
ら行列内の全ての有効エントリをアクセスすることによ
ってなされる。エントリは、挿入ポインタカウンタの出
力を受ける選択入力を有し且つ挿入ポインタカウンタを
連続的にデクレメントさせるマルチプレクサ668によ
って連続的に入手することができる。しかし多くの場合
、今復号されたばかりのある数の命令に対応する命令ユ
ニット及び実行ユニットのデータのみを廃棄或はフラッ
シュすることが望ましい。これは典型的には、ある分岐
命令の分岐が実際に実行ユニットによって決定される前
に、命令をその分岐命令に後続させ得るようにして行わ
れる。もしプログラム実行を分岐させるべきであったこ
とを見出すか、或は分岐に関連した予測が誤りであるこ
とを見出せば、分岐に続く命令の復号の結果は待ち行列
23からフラッシュしなければならず、また分岐命令に
続く命令内の自動インクレメント或は自動デクレメント
規制詞によって変更された汎用レジスタをそれらの元の
値に戻さなければならない。
この目的のために、RLOG待ち行列658内のある数
のエントリだけをマルチプレクサ668から入手し、一
方で挿入ポインタカウンタ662をデクレメントさせて
行く。
RLOG待ち行列658から除去するエントリの特定数
を決定するために、実行ユニットタグと、正確に復号さ
れ且つそれらの結果を待ち行列23・ 内に残すべき命令の数との和を表わす“保持すべき数”
の値にセントされるフラッシュカウンタ669を設けで
ある。この計算は加算器670によって遂行され、保持
すべきエントリの数は一組のゲート671  (これら
のゲートは待ち行列23を完全にフラッシュする場合に
は不能化される)を通して加算器670に印加される。
このフラッシング手順中に、マルチプレクサ672はフ
ラッシュカウンタの値をデコーダ664の選択入力に供
給する。従って、フランシュすべき情報を有する命令に
対応するRLOGカウンタ661と、復元すべきレジス
タのみがフラッシングのためにアクセスされるようにな
る。またデコーダ664の選択入力はマルチプレクサ6
73にも印加され関連カウンタの値を選択させている。
この値は、RLOG待ち行列658からどれ程多くのエ
ントリを除去すべきかを表わしている。レジスタのフラ
ッシング及び復元のプロセスは、選択されたRLOGカ
ウンタの値がOに等しいか否かをNORゲート674に
よって検査し、且つフラッシュカウンタの値がOPUタ
グの値に等しいことをコンパレータ675が指示した時
にフラッシングが完了したことを検出することによって
、順次に行うことができる。フラッシング手順の特定の
段階は実行ユニット内の順次状態機械676によって遂
行される。一般に、順次状B機械は組合せ論理回路と、
システムクロックのサイクル間の順次状態を保持する一
組のレジスタとを含む。同様に、命令ユニットも順次状
態機械677を含み、フラ・ッシング手順中に命令ユニ
ット汎用レジスタ651を更新させる。
汎用レジスタの復元は、命令的読出し競合を処理する必
要があるために複雑である。好ましい方法によれば、−
旦命令内読出し競合が検出されると自動インクレメント
及び自動デクレメント規制詞は命令ユニ7)汎用レジス
タ651のみを変更し、レジスタ規制詞がポインタの代
りにデータとして実行ユニ7トに送られる。命令ユニッ
ト汎用レジスタ651は自動インクレメント及び自動デ
クレメント規制詞の評価中に変更されるが、実行ユニッ
ト汎用レジスタ652は変更されない。命令内レジスタ
競合を有する命令が完全に復号された時、現命令がリタ
イアされ実行ユニット汎用レジスタ652が更新される
まで次の命令の復号は一時的に禁止される。この目的の
ために、命令的競合が検出された後に変更されたレジス
タの番号が“遅延更新待ち行列”678内に記憶される
命令がリタイアされると、遅延更新待ち行列678内に
番号が記憶されているレジスタの値が実行ユニット汎用
レジスタ652へ伝送される。ANDゲート679は、
リタイアユニット28からのリタイア信号とレジスタス
コアボード待ち行列657が空きであることを表わす信
号とを組合せて現命令がリタイアしたことを決定する。
フラッシュは命令的競合を存する命令の復号中に発生さ
せることができる。フラッシング手順に命令的競合を考
慮する必要を無ならしめるために、命令ユニット汎用レ
ジスタ651は変更されつつあるが実行ユニット汎用レ
ジスフ652は変更されていない場合に、命令ユニット
汎用レジスタ651が変更される度毎にRLOG待ち行
列658内に0の変更値を記憶させる。従って、もしフ
ラッシュが発生すれば命令ユニット汎用レジスタ651
は実行ユニット汎用レジスタ652内に記憶されている
変更されていない初期値に復元される。
第69図は、命令ユニ・ノド内の順次状態機械677に
よって実行される制御手順の流れ図を示す。この順次状
態機械並びに命令ユニット汎用レジスタ651は共にO
PU (第1図の21)の−部であることが好ましい。
制御手順の第1段階681において、割込み、例外或は
フラッシュが存在すれば実行は段階682へ分岐する。
段階682においては、命令ユニット汎用レジスタ65
1は実行ユニットから受ける何れかの値で復元され、現
サイクルの制御シーケンスは終了する。
割込み、例外或はフラッシュが存在しなければ、段階6
83において命令ユニット順次状態機械677はレジス
タスコアボード待ち行列657からの命令内競合信号を
検査し、命令的競合が存在する場合には段階684にお
いてOPUを機能停止させる。
もし命令的競合が存在しなければ、段階685において
順次状態機械677は命令的競合の存否を決定するため
にランチ680を検査する。もし命令的競合が存在すれ
ば、段階686においてOPUは現規制詞がレジスタ規
制詞であるか否かを試験する。もしレジスタ規制詞であ
れば、段階687において、源リスト24は何れかの源
レジスタの変更されていない値をロードされ、また源ポ
インタ待ち行列654はその変更されていない値を指す
ポインタをロードされる。もしその規制詞がレジスタ規
制詞でなければ、段階688においてOPUは現規制詞
が自動インクレメントモード規制詞或は自動デクレメン
トモード規制詞であるか否かを試験する。もしそうであ
れば段階689において、ペースレジスタ番号に対応す
る命令ユニット汎用レジスタ651は変更されるが、R
LOG待ち行列658及び実行ユニット汎用レジスタ6
52にはO変更値が伝送される。変更されたペースレジ
スタ番号は遅延更新待ち行列678内に記憶される。も
し現規制詞がレジスタ規制詞でも自動モード規制詞でも
なければ、段階690においてOPUは第1図及び第2
図に関して説明済のような通常のB様でその規制詞を評
価する。
段階691において順次状態機械677は“新フォーク
”信号を検査して現命令が完全に復号されたか否かを決
定する。もし復号されていれば段階692において、現
命令がリタイアされ実行ユニット汎用レジスタが更新さ
れるまで命令デコーダを機能停止させるために、命令デ
コーダ機能停止フラグがセントされる。
現命令がリタイアされると、命令的競合は段階685が
最早検出されなくなる。そこで段階693において順次
状態機械677は遅延更新待ち行列が空きか否かを検査
する。もし空きでなければ、該待ち行列は更新しなけれ
ばならない実行ユニット汎用レジスタ652の番号を含
む。段階694において遅延更新待ち行列内の次のレジ
スタ番号が入手され、命令ユニット汎用レジスタ651
内の該レジスタの内容が対応実行ユニット汎用レジスタ
652へ伝送される。段階695において順次状態機械
677は、変更された最後の汎用レジスタの内容が対応
実行ユニット汎用レジスタ652へ伝送されたか否かを
検査する。もし伝送されていれば、実行ユニット汎用レ
ジスタは現サイクルの終りに全て復元されたことになり
、従って段階696において命令デコーダを機能停止さ
せるフラグはクリヤされる。
もし段階693において遅延更新待ち行列が空きである
と決定されれば、OPUはその通常態様で動作する。段
階697において何れかの源レジスタ番号が源リスト待
ち行列655内へ直接ロードされる。段階698におい
て、自動インクレメント或は自動デクレメントモードを
有する何れかの複雑な規制詞のベースによって指定され
た命令ユニット汎用レジスタが変更され、この変更は実
行ユニット13内のRLOC待ち行列658及び汎用レ
ジスタ652へ伝送される。
第70図は実行ユニット内の順次状態機械676の制御
手順の流れ図である。最初の段階711において順次状
態機械676は割込み或は例外の存否を検査する。もし
存在すれば段階712においてフラッシュカウンタが実
行ユニットタグの値にセットされる。同様にして段階7
13においてフラッシュ要求が検出されれば、段階71
4においてフランシュカウンタ669は、実行ユニット
タグプラス(+)復号はされたが未だに実行されずに保
持されている命令の数の値にセットされる。
段階712或は714の後に順次状態機械676は、段
階715におけるRLOC待ち行列が空きか否かの検査
のためにゲート667の出力を検査する。もし空きであ
れば第70図における制御手順の現サイクルは終了する
。空きでなければ、少なくとも1つの実行ユニット汎用
レジスタ652は先行値に復元されなければならない。
段階716において、順次状態機械676はゲート67
4の出力を検査して、フランシュカウンタ669からの
フランシュタグによってアドレスされたRLOGカウン
タがOに等しいか否かを決定する。もし0に等しければ
、RLOC待ち行列は選択されたRLOGカウンタに対
応する命令に関する如何なる変更エントリも有していな
い。従って、段階717において順次状態機械676は
コンパレータ675の出力を検査してフランシュタグが
OPUタグに等しいか否かを決定し、もし等しければ命
令の処理がフラッシュされる前に全ての実行ユニット汎
用レジスタ652は先行値に復元されていることになる
。等しくなければ段階718においてフランシュカウン
タがインクレメントされ、実行は段階716に戻されて
次のRLOGカウンタの内容が調べられる。
もし段階716においてRLOGカウンタの値がOに等
しくないことが見出されれば、少なくとも1つの対応エ
ントリがRLOC待ち行列内に存在する。段階719に
おいてRLOGカウンタがデクレメントされ、段階72
0においてRLOC待ち行列が挿入ポインタによって指
示されたエントリの直前のエントリにおいて読出され、
挿入ポインタがデクレメントされる。次で段階721に
おいて、RLOC待ち行列からレジスタ番号によってア
ドレスされた実行ユニット汎用レジスタの値が読出され
、RLOC;待ち行列から読出された変更がその実行ユ
ニットレジスタの値に加算され、その和がアドレスされ
た実行ユニット汎用レジスタ内に記憶し直される。和及
びレジスタ番号は命令ユニット汎用レジスタ651へも
伝送され、命令ユニット内の対応汎用レジスタに再記憶
される。
次で実行は段階715へ戻され、他に復元しなければな
らない汎用レジスタの存否を決定する。
割込み、例外或はフラッシュの何れも存在しなければ、
段階722において実行ユニットは命令ユニットによっ
て送られるレジスタ変更情報(これは第69図の段階6
87或は689によって行われる)を受けつつあるか否
かを検査する。もしレジスタ変更情報が受信されていれ
ば、段階723においてレジスタ変更情報がRLOG待
ち行列内へ挿入され、OPUタグによって選択されたR
LOGカウンタがインクレメントされる。段階724に
おいてこの変更値が試験され、それがOか否かが決定さ
れる。もし0であれば実行ユニットサイクルは終了する
。0でなければ段階725において、OPUタグによっ
てアドレスされた実行ユニット汎用レジスタが変更情報
に従って変更され、順次状態機械676によって遂行さ
れる制御手段は終了する。
以上に、若干の事前に規定された命令に関する暗示規制
詞を生成する命令デコーダと、殆んどの暗示規制詞を明
示オペランド規制詞と同一の技法で前処理するオペラン
ド処理ユニットを説明した。
スタックポインタの暗示自動インクレメント或は自動デ
クレメントを有する命令に対しては、暗示読出し或は書
込みアクセス型がその命令に割当てられ、それに対応す
る復号論理が構成される。演算コードが復号され、暗示
書込み規制詞を有していることが見出された場合には、
スタックポインタを自動デクレメントする宛先オペラン
ドが創作される。演算コードが復号され、暗示読出し規
制詞を有することが見出された場合には、スタックポイ
ンタを自動インクレメントする源オペランドが創作され
る。レジスタ規制詞或は短すテラル規制詞は暗示オペラ
ンドの発生と同時に復号することができる。暗示規制詞
に伴なって命令内読出し競合の可能性は存在するが、暗
示競合は明示規制詞によって発生する読出し競合と同じ
ようにして検出し、処理することができる。
【図面の簡単な説明】
第1図は、本発明を利用する中央パイプライン処理ユニ
ットを有するディジタルコンピュータシステムのブロッ
ク線図であり; 第2図は、命令を処理するために遂行され、また第1図
によるパイプライン命令プロセッサによって異なる命令
を並列に処理できる諸段階を示す図であり; 第3図は、可変長命令の好ましいフォーマントを示す図
であり; 第4図は、ロングワード間の加算を遂行するための特定
の可変長命令を示す図であり;第5図は、ある規制詞の
第1バイト内のモード情報の復号を示す表であり; 第6図は、複数の規制詞を同時に復号できる命令デコー
ダに接続されている命令バッファ及びオペランド処理ユ
ニットを示す回路図であり;第7図は、第6図の命令デ
コーダとオペランド処理ユニットとを相互接続する汎用
規制詞バスのためのフォーマントを示す図であり; 第8図は、第6図の命令デコーダからオペランド処理ユ
ニットへ短リテラル情報を転送する拡張バスのためのフ
ォーマットの図であり:第9図は、第6図の命令デコー
ダからオペランド処理ユニットへレジスタ情報及び他の
オペランド情報を転送する転送バスのためのフォーマン
トの図であり; 第10図は、第3図のフォーマントの可変長命令を復号
するために命令デコーダによって遂行される好ましい手
順の流れ図であり; 第11図は、3つまでの規制詞を同時に復号するために
第6図の命令デコーダによって遂行される手順の流れ図
であり; 第12図は、第6図の命令デコーダのブロック線図であ
り; 第13図は、バイト変位を有する分岐命令に関して最大
1つのオペランドを復号すべき時に、復号される規制詞
の数及びハイドの数を決定するために使用されるシフト
カウント論理回路の回路図であり; 第14図は、2語変位を有する分岐命令に関して多くと
も1つの規制詞を復号すべき時に使用されるシフトカウ
ント論理回路の回路図であり;第15図は、命令のアク
セス型から暗示され前処理される多くとも1つの規制詞
を復号すべき時に使用されるシフトカウントLAi理回
路の回路図であり; 第16図は、バイト変位を有する分岐命令に関して多く
とも2つの規制詞を復号すべき時に使用されるシフトカ
ウント論理回路の回路図であり;第17図は、語変位を
有する分岐命令に関して多くとも2つのオペランドを復
号すべき時に使用されるシフトカウント論理回路の回路
図であり;第18図は、第2規制詞が命令のアクセス型
からII!示され前処理されるような多くとも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規制詞に関する情rFI!を入
手するために第45図に使用されている論理の詳細を示
す回路図であり; 第47図は、命令バッファ内の絶対モード規制詞或は即
値モード規制詞に伴う規制詞数を決定するために第45
図に使用される絶対及び即値規制詞選択論理回路の回路
図であり; 第48図は、1つの規制詞の復号が要求された時に選択
されるR11−リーの回路図であり;第49図は、2つ
の規制詞の復号が要求された時に選択されるR2)リー
の回路図であり;第50図は、2つの規制詞の復号が要
求された時に、且つ命令バッファ内のバイト1がレジス
タ規制詞でも或は短リテラルでもなく且つ第2規制詞が
短リテラルであってはならない時に限って選択されるR
2H)リーの回路図であり;第51図は、3つの規制詞
の復号が要求された時に、且つ命令バッファ内のバイト
l及び2がレジスタ規制詞或は短すテラル規制詞である
時に限って選択されるR3)リーの回路図であり;第5
2図は、3つの規制詞の復号が要求された時に、且つ第
3規制詞がレジスタ規制詞である時に限って第3規制詞
を復号する場合に選択されるR3XRI−リーの回路図
であり; 第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図は、命令デコーダによって検出された命令的読
出し競合に応答して命令ユニット及び実行ユニット内の
それぞれの組の汎用レジスタを更新する命令ユニット及
び実2行ユニット内の回路の回路図であり: 第69図は、オペランド処理ユニットに関して第68図
に示した制御論理回路を限定する流れ図であり; 第70図は、実行ユニットに関して第68図に示した制
御論理回路を限定する流れ図である。 10・・・主メモリ、11・・・メモリ・CPUインタ
フェース2ユニツト、12・・・命令ユニット、13・
・・実行ユニット、14・・・主キャッシュ、15・・
・翻訳バッファ、16・・・I10バス、17・・・プ
ログラムカウンタ、18・・・命令キャッシュ、19・
・・命令バフファー、20・・・命令デコーダ、21・
・・オペランド処理ユニット(OPU)、22・・・併
合用マルチプレクサ、23・・・待ち行列、24・・・
源リスト、25・・・マイクロコード実行ユニット、2
6・・・演算及び論理ユニット(ALU)、27・・・
リタイアユニット、28・・・命令発行ユニット、29
・・・命令バッファ有効カウント、30・・・転送ユニ
ット、31・・・拡張ユニット、32・・・汎用ユニッ
ト、33・・・シフタ、34・・・循還ユニット、35
・・・第1源バス、36・・・第2源バス、37・・・
宛先パス、38・・・制御論理ユニット、39・・・循
還ユニット制御論理回路、40・・・データ経路、10
1・・・拡張演算コードデコーダ、105・・・組合せ
論理ユニット、108・・・減算器、110・・・拡張
即値検出器、113.127・・・加算器、114・・
・要求論理ユニット、115・・・モードデコーダ、1
23・・・シフトカウント論理ユニット、126・・・
命令的読出し競合検出器、128・・・出力選択及び妥
当性検査論理ユニット、132・・・シフタ、231.
232.241.249・・・規制詞情報論理ユニット
、243・・・規制詞選択論理ユニット、387.39
9.416.438.46 B 、554.611.6
51.652.680・・・レジスタ(ラッチ)、42
6.514.534.666.670・・・加算器、4
30・・・EXバス、470・・・CPババス492.
659.661.662.669・・・カウンタ、51
3.515.516.517.603.663.664
.665・・・デコーダ、551.552・・・読出し
レジスタマスク、653・・・フォーク待ち行列、65
5・・・源ポインタ待ち行列、656・・・宛先ポイン
タ待ち行列、657・・・レジスフスコアボード待ち行
列、658・・・RLOG待ち行列、676.677・
・・順次状態機械、678・・・遅延更新待ち行列。 h−存IPトンa・さ FIG FIG デL釧シ■のv−11ぐイト FIG E×バズ フτ−マツ1 TRへス 7丁−マント FIG、 9 FIG 宇 ナイ2/I/うりンくと1.+、すSLIぼ子τ−
し番FIG、20 FIG、22 FIG、 23 FIG、24 FIG、 26 lG IG F I G、 43 FIG マ’Jpi已工=・ブト FIG、47 R1ト・謄 6.48 lG R2トリー lG RSLチー70 IG IG FIG、60 IG

Claims (1)

  1. 【特許請求の範囲】 1、パイプラインプロセッサにおいて、演算コード、命
    令内に現われる明示規制詞、及び命令内には現われない
    が演算コードから暗示される暗示規制詞を有する命令を
    同時に復号する方法であって: (a)前記演算コード及び前記明示規制詞を受信し; (b)前記明示規制詞と同時に復号し、前記演算コード
    に応答して前記暗示規制詞を生成する諸段階を具備する
    方法。 2、明示規制詞はレジスタ規制詞であり、暗示規制詞は
    スタックポインタレジスタのための自動モード規制詞で
    ある請求項1記載の方法。 3、復号された明示規制詞及び生成された暗示規制詞を
    一緒にオペランド前処理ユニットへ送る段階をも具備す
    る請求項1記載の方法。 4、パイプラインプロセッサは、明示規制詞に対する読
    出し及び書込み競合検査を遂行し;明示規制詞に対する
    競合検査と実質的に同一の技法で暗示規制詞に対する競
    合検査を遂行する段階をも含む請求項1記載の方法。 5、パイプラインプロセッサは、同時復号を遂行する命
    令ユニットと、該命令ユニットによって復号された命令
    を実行する実行ユニットとを含み、該命令ユニットは該
    命令ユニットによる復号によって得られたオペランド情
    報を記憶する待ち行列を含むデータ経路を介して前記実
    行ユニットに連結され;暗示規制詞並びに明示規制詞か
    ら得られたオペランド情報を待ち合せる段階をも具備す
    る請求項1記載の方法。 6、明示オペランドの復号によって得られた待ち行列内
    のオペランド情報は、暗示オペランドの生成によって得
    られたオペランド情報とは区別不能である請求項5記載
    の方法。 7、オペランドに対する演算を規定する第1演算コード
    と、第1及び第2源オペランド及び宛先オペランドを含
    む第1命令に関するオペランドを位置付ける情報を提供
    するために第1命令内に出現する第1、第2及び第3明
    示規制詞とを有する第1可変長命令内の複数の規制詞を
    同時に復号し;且つ第2演算コードと、第2命令内に出
    現する明示第4規制詞と、第2命令内には出現しないが
    前記第2演算コードから暗示される暗示第5規制詞とを
    有する第2可変長命令とを同時に復号し;明示規制詞は
    前記情報を提供する演算コードとは無関係のアドレス指
    定モードを使用する方法であって: (a)前記第1演算コードと前記第1、第2及び第3規
    制詞とを受信し、前記第1、第2及び第3規制詞を同時
    に復号して前記第1及び第2源オペランドと前記宛先オ
    ペランドとを位置付ける前記情報を入手し; (b)前記第2演算コードと前記第4及び第5演算コー
    ドとを受信し、前記第4規制詞を同時に復号し、前記第
    2演算コードから前記第5規制詞を生成する 諸段階を具備する方法。 8、関連する演算コードと、関連する複数の規制詞のシ
    ーケンスとを有する可変長命令を処理するデータ処理ユ
    ニットにおいて;前記演算コードは、演算中に読出され
    る源オペランドと、演算によって変化される宛先オペラ
    ンドとを含むオペランドに対する演算を規定し;前記規
    制詞は、前記オペランドを位置付ける情報を提供し、演
    算コードとは無関係なオペランドアドレス指定モードを
    有し: (a)同時に復号すべき関連する演算コードと、関連す
    る複数の規制詞のシーケンスとを受信する命令バッファ
    手段; (b)第1源オペランドを位置付ける情報を入手するた
    めに前記関連する複数の規制詞のシーケンス内の第1オ
    ペランド規制詞と、第2源オペランドを位置付ける情報
    を入手するために前記関連する複数の規制詞のシーケン
    ス内の第2オペランド規制詞と、宛先オペランドを位置
    付ける情報を入手するために前記関連する複数の規制詞
    のシーケンス内の第3オペランド規制詞とを同時に復号
    するために、前記命令バッファ手段に接続されいる命令
    復号手段; (c)前記命令復号手段によって入手された情報に応答
    して第1及び第2オペランドを取り込むオペランド取り
    込み手段; (d)前記オペランド取り込み手段によって取り込まれ
    た源オペランドに対して前記命令バッファ手段内に受信
    されている演算コードによって示される演算を遂行し、
    命令復号手段から提供される情報によって指定された位
    置にある宛先オペランドを変化させる手段の組合せを具
    備し; 前記命令復号手段は、前記演算コードに応答して前記命
    令内には明白に出現していない暗示規制詞を生成する手
    段を含む データ処理ユニット。 9、暗示規制詞生成手段は、命令内に明白に出現してい
    る明示規制詞の復号と同時に動作可能である請求項8記
    載のデータ処理ユニット。 10、システムクロックの各サイクル中に、少なくとも
    1つの復号済明示規制詞を、生成された暗示規制詞と共
    にオペランド前処理ユニットへ送る手段をも具備する請
    求項8記載のデータ処理ユニット。 11、データ処理ユニットは、規制詞に対して読出し及
    び書込み競合検査を遂行する手段を含み;該手段は、命
    令内に明白に出現している明示規制詞及び生成手段によ
    って生成される暗示規制詞の両者に対して実質的に同一
    の技法で前記検査を遂行するように動作する請求項8記
    載のデータ処理ユニット。 12、オペランド取り込み手段によるオペランドの取り
    込みによって得られたオペランド情報を記憶する持ち行
    列を含み、オペランド取り込み手段を実行手段に結合す
    るデータ経路をも具備し;取り込まれたオペランドは、
    デコーダによって生成された暗示規制詞によって指定さ
    れたオペランドと、命令内に明白に出現している明示オ
    ペランド規制詞によって指定されたオペランドとを含む
    請求項8記載のデータ処理ユニット。 13、明示オペランドの復号によって得られた持ち行列
    内のオペランド情報は、暗示オペランドの生成によって
    得られた持ち行列内のオペランド情報とは区別不能であ
    る請求項12記載のデータ処理ユニット。
JP2024311A 1989-02-03 1990-02-02 パイプラインプロセッサにおける暗示規制詞の前処理方法及び装置 Pending JPH031235A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/306,846 US5142633A (en) 1989-02-03 1989-02-03 Preprocessing implied specifiers in a pipelined processor
US306846 1989-02-03

Publications (1)

Publication Number Publication Date
JPH031235A true JPH031235A (ja) 1991-01-07

Family

ID=23187130

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2024311A Pending JPH031235A (ja) 1989-02-03 1990-02-02 パイプラインプロセッサにおける暗示規制詞の前処理方法及び装置

Country Status (6)

Country Link
US (1) US5142633A (ja)
EP (1) EP0380849B1 (ja)
JP (1) JPH031235A (ja)
AT (1) ATE150191T1 (ja)
CA (1) CA1323940C (ja)
DE (1) DE68927855T2 (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5471591A (en) * 1990-06-29 1995-11-28 Digital Equipment Corporation Combined write-operand queue and read-after-write dependency scoreboard
EP0463965B1 (en) * 1990-06-29 1998-09-09 Digital Equipment Corporation Branch prediction unit for high-performance processor
JP2956707B2 (ja) * 1990-10-29 1999-10-04 富士通株式会社 情報処理装置
US5539911A (en) 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US5493687A (en) 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
AU2509192A (en) * 1991-08-21 1993-03-16 Digital Equipment Corporation Address method for computer graphics system
US5321810A (en) * 1991-08-21 1994-06-14 Digital Equipment Corporation Address method for computer graphics system
WO1993020505A2 (en) 1992-03-31 1993-10-14 Seiko Epson Corporation Superscalar risc instruction scheduling
JP3637920B2 (ja) 1992-05-01 2005-04-13 セイコーエプソン株式会社 スーパースケーラマイクロプロセサに於て命令をリタイアさせるシステム及び方法
US5604912A (en) * 1992-12-31 1997-02-18 Seiko Epson Corporation System and method for assigning tags to instructions to control instruction execution
DE69330889T2 (de) 1992-12-31 2002-03-28 Seiko Epson Corp System und Verfahren zur Änderung der Namen von Registern
US5628021A (en) 1992-12-31 1997-05-06 Seiko Epson Corporation System and method for assigning tags to control instruction processing in a superscalar processor
US5428807A (en) * 1993-06-17 1995-06-27 Digital Equipment Corporation Method and apparatus for propagating exception conditions of a computer system
US5421022A (en) * 1993-06-17 1995-05-30 Digital Equipment Corporation Apparatus and method for speculatively executing instructions in a computer system
US5420990A (en) * 1993-06-17 1995-05-30 Digital Equipment Corporation Mechanism for enforcing the correct order of instruction execution
US6704861B1 (en) 1993-06-17 2004-03-09 Hewlett-Packard Development Company, L.P. Mechanism for executing computer instructions in parallel
US6393550B1 (en) * 1993-12-30 2002-05-21 Intel Corporation Method and apparatus for pipeline streamlining where resources are immediate or certainly retired
US6101597A (en) * 1993-12-30 2000-08-08 Intel Corporation Method and apparatus for maximum throughput scheduling of dependent operations in a pipelined processor
US5553256A (en) * 1994-02-28 1996-09-03 Intel Corporation Apparatus for pipeline streamlining where resources are immediate or certainly retired
US5584037A (en) * 1994-03-01 1996-12-10 Intel Corporation Entry allocation in a circular buffer
GB9412434D0 (en) * 1994-06-21 1994-08-10 Inmos Ltd Computer instruction compression
JP3493369B2 (ja) * 1994-12-13 2004-02-03 株式会社ルネサステクノロジ コンピュータ
US6128720A (en) * 1994-12-29 2000-10-03 International Business Machines Corporation Distributed processing array with component processors performing customized interpretation of instructions
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
US6192463B1 (en) 1997-10-07 2001-02-20 Microchip Technology, Inc. Processor architecture scheme which uses virtual address registers to implement different addressing modes and method therefor
US6098160A (en) * 1997-10-28 2000-08-01 Microchip Technology Incorporated Data pointer for outputting indirect addressing mode addresses within a single cycle and method therefor
US6748589B1 (en) 1999-10-20 2004-06-08 Transmeta Corporation Method for increasing the speed of speculative execution
AU2001245511A1 (en) * 2000-03-10 2001-09-24 Arc International Plc Method and apparatus for enhancing the performance of a pipelined data processor
GB2363869B (en) 2000-06-20 2004-06-23 Element 14 Inc Register addressing
US9304932B2 (en) 2012-12-20 2016-04-05 Qualcomm Incorporated Instruction cache having a multi-bit way prediction mask
EP3286640A4 (en) * 2015-04-24 2019-07-10 Optimum Semiconductor Technologies, Inc. COMPUTER PROCESSOR HAVING SEPARATE RECORDS FOR ADDRESSING A MEMORY

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63308641A (ja) * 1987-06-10 1988-12-16 Mitsubishi Electric Corp パイプライン処理機構を持つデータ処理装置および処理方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4162519A (en) * 1975-01-20 1979-07-24 Nixdorf Computer Ag Data processor with address allocation to operations
DE2846495C2 (de) * 1977-10-25 1993-10-21 Digital Equipment Corp Zentraleinheit
JPS54100634A (en) * 1978-01-26 1979-08-08 Toshiba Corp Computer
US4241399A (en) * 1978-10-25 1980-12-23 Digital Equipment Corporation Calling instructions for a data processing system
US4493020A (en) * 1980-05-06 1985-01-08 Burroughs Corporation Microprogrammed digital data processor employing microinstruction tasking and dynamic register allocation
CA1174370A (en) * 1980-05-19 1984-09-11 Hidekazu Matsumoto Data processing unit with pipelined operands
JPS58146941A (ja) * 1982-02-26 1983-09-01 Hitachi Ltd マイクロプログラム制御デ−タ処理装置
US4873629A (en) * 1984-06-20 1989-10-10 Convex Computer Corporation Instruction processing unit for computer
US4789925A (en) * 1985-07-31 1988-12-06 Unisys Corporation Vector data logical usage conflict detection
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
JPH07120278B2 (ja) * 1988-07-04 1995-12-20 三菱電機株式会社 データ処理装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63308641A (ja) * 1987-06-10 1988-12-16 Mitsubishi Electric Corp パイプライン処理機構を持つデータ処理装置および処理方法

Also Published As

Publication number Publication date
EP0380849B1 (en) 1997-03-12
DE68927855T2 (de) 1997-10-16
ATE150191T1 (de) 1997-03-15
EP0380849A2 (en) 1990-08-08
CA1323940C (en) 1993-11-02
DE68927855D1 (de) 1997-04-17
EP0380849A3 (en) 1992-08-12
US5142633A (en) 1992-08-25

Similar Documents

Publication Publication Date Title
JPH031235A (ja) パイプラインプロセッサにおける暗示規制詞の前処理方法及び装置
US5167026A (en) Simultaneously or sequentially decoding multiple specifiers of a variable length pipeline instruction based on detection of modified value of specifier registers
US5148528A (en) Method and apparatus for simultaneously decoding three operands in a variable length instruction when one of the operands is also of variable length
EP0380859B1 (en) Method of preprocessing multiple instructions
EP0381471B1 (en) Method and apparatus for preprocessing multiple instructions in a pipeline processor
JP3977016B2 (ja) 仮想レジスタ番号を用いて論理レジスタ番号を物理レジスタ番号にマッピングするように構成されるプロセッサ
EP0381444B1 (en) Branch prediction
AU628527B2 (en) Virtual instruction cache refill algorithm
KR100231380B1 (ko) 감소된 명령 세트 프로세서 내부 레지스터의 데이타를 조작하는 방법 및 장치
US5826074A (en) Extenstion of 32-bit architecture for 64-bit addressing with shared super-page register
US5717946A (en) Data processor
US5522051A (en) Method and apparatus for stack manipulation in a pipelined processor
EP0380846A2 (en) Method and apparatus for resolving a variable number of potential memory access conflicts in a pipeline computer system
JP2834292B2 (ja) データ・プロセッサ
JPH0429093B2 (ja)
JPH02207351A (ja) データ路の巾が予め定められたコンピュータシステムのデータ記憶レートを増加する方法及び装置
JP3866920B2 (ja) 命令のリタイアメント時に物理レジスタを選択的に自由にするよう構成されたプロセッサ
US5197133A (en) Control store addressing from multiple sources
EP1050800A1 (en) A pipelined execution unit
US20030191929A1 (en) Microinstruction pointer stack in a processor
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
AU628534B2 (en) Pipeline processing of register and register modifying specifiers within the same instruction
JP2928879B2 (ja) データ処理装置
IE901524A1 (en) Control of multiple function units with parallel operation¹in a microcoded execution unit