JPH02282826A - 同じ命令内におけるレジスタ及びレジスタ変更指定子のパイプライン処理 - Google Patents

同じ命令内におけるレジスタ及びレジスタ変更指定子のパイプライン処理

Info

Publication number
JPH02282826A
JPH02282826A JP2000368A JP36890A JPH02282826A JP H02282826 A JPH02282826 A JP H02282826A JP 2000368 A JP2000368 A JP 2000368A JP 36890 A JP36890 A JP 36890A JP H02282826 A JPH02282826 A JP H02282826A
Authority
JP
Japan
Prior art keywords
specifier
register
instruction
specifiers
decoded
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
JP2000368A
Other languages
English (en)
Inventor
B Fite David
ディヴッド ビー ファイト
Mark A Firstenberg
マーク エイ ファーステンバーグ
Lawrence O Herman
ローレンス オー ハーマン
John E Murray
ジョン イー マーレイ
Ronald M Salett
ロナルド エム サレット
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 JPH02282826A publication Critical patent/JPH02282826A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30163Decoding the operand specifier, e.g. specifier format with implied specifier, e.g. top of stack
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • G06F9/30178Runtime instruction translation, e.g. macros of compressed or encrypted instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3816Instruction alignment, e.g. cache line crossing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3863Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】
産業上の利用分野 本発明は、これと同時に出願された次のような米国特許
出願に開示されているコンピュータシステムの幾つかの
特徴を有するものである。エバンス氏等の「デジタルコ
ンピュータのシステム制御ユニットとサービス処理ユニ
ットとの間のインターフエイフ!、(AN INTER
FACE BETWEEN A SYSTEMCONT
ROL UNIT AND A 5ERVICE PR
OCESSING tlNITOF A DIGITA
L CoMPU丁ER)ノ ;アーノルド氏等の[シス
テムと中央処理ユニットとをインターフェイスする方法
及び装ff1(NETI(OD AND APPARA
TUSFORINTERFACING A SYSTE
M l+[T)(THE CENTRALPROCES
SING UNITS)J  ;ガグリアード氏等の[
マルチプロセッサシステムのシステム制御ユニットをシ
ステムの主メモリとインターフェイスするための方法及
び手段(METHOD AND MEANS FORI
NTER−FA(:ING A SYSTEM C0N
TR0L [JNIT FORA MLILTI−PR
OCESSORSYSYTEM  陪T1イ T)IE
  SYSYTEM  M^INMEMORY)J  
;’D、フィツト氏等の「パイプライン式コンピュータ
システムにおいて考えられる種々の数のメモリアクセス
競合を分析する方法と装置(METHOD AND A
PPARATUS FORRESOLVING A V
ARI−ABLE NUMBEROF POTENTI
AL MEMORY ACCESS C0N−FLIC
TS IN A PrPEIjNED COMPtJT
ERSYSYTEM)J  ;D、フィツト氏等の「可
変長さの命令アーキテクチャにおいて多数の指定子をデ
コードする方法(DECODING MULTIPLE
 5PECIFIER3IN A VARIABLEl
、ENGTHrNsTRUcTION ARC)IIT
ECTURE)J  、 D、フィツト氏等のr仮想命
令キャッシュリフィルアルゴリズム(VIRTUAL 
lN5TRUCTION CACHE REFILLA
LGORITHM)にマージ1氏等のrデジタルコンピ
ュータにおいてデータ依存性を分析する多命令処理シス
テム(MULTIPLE lN5TRUCTION P
REPROCESS−ING SYSTEM WITH
DATA DEPENDENCY RESOLjJTI
ONFORDEGITAL COMPUTER5)J 
 ;フィツト氏等の[パイプラインプロセッサにおいて
暗示された指定子を予め処理する方法(PREPROC
ESSING IMPLIEDSPECIFIER5I
N  A  PIPELINED  PROCESSE
R)ノ ; D。 フィツト氏等の「ブランチ予想(BRANCHPRE−
DICTION)J ;フォラサム氏等の「デジタルコ
ンピュータのパイプライン式フローティングポイント加
算器(PIPELINED FLOATING POI
NT ADDERFORDIGITAL COMPtJ
TER)J  ニゲランドマン氏等の「自己計時式レジ
スタファイル(SALF TIMED REGISTE
RFILE)J  ;ベペン氏等の[パイプライン式コ
ンピュータシステムにおいてエラーを検出して修正する
方法及び装置(MET)IOD AND APPARA
TUS FORDETECTING AND C0RR
ECTING ERROR5IN A PIPE−LI
NED COMPUTERSYSTEM)J  :フリ
ン氏等の[マルチプロセッサシステムにおいてシステム
制御ユニットを用いて通信要求を仲裁する方法及び装置
(METHOD AND MEANS FORARBI
TRATING COMMUNI−CATION  R
EQUESTS  [JSING  A  SYSYT
EM  C0NTR0L  UNITTN A MUL
TI−PROCESSORSYSTEM)J  ; E
、フィツト氏等の「マイクロコード化実行ユニットにお
ける並列動作式の制御多機能ユニット(CONTROL
 MULTIPLE FLINCTION UINTS
 WIT)(PARALLEL 0PERATIONI
N A MICROCODED EXECURION 
UINT)J  ;ウェブ二世氏等の「仮想メモリシス
テムをベースとするデジタルコンピュータの命令パイプ
ライン内において予めフェッチした命令でメモリアクセ
ス例外を処理する方法(PROCESSING OF 
MEMORY ACCESSEXCEPTTONS W
ITHPRE−FETC)(ED lN5TRUCTT
ONSWITHIN THE lN5TRUCTION
 PIPELINE OF A VIRTUALMEM
ORY SYSTEM−BASED DIGITAL 
COMPUTER)J ;ヘザリントン氏等の「デジタ
ルコンピュータシステムにおいて仮想−物理メモリアド
レスの変換を制御する方法及び装置(METHOD A
ND APPARAT[JS FORCON丁ROLL
ING  丁HE  C0NVER5ION  OF 
 VIRTLIAL  T。 PHYSICAL MEMORY ADDRESSES
 IN A DIGTTAL C0N−PUTERSY
SYTEM)J  ;ヘザリントン氏等の「エラー修正
機能を有するライトパックバッファ(WRITEBAC
K BUFFER讐ITHERRORC0RRECTI
NG CAPABILI−TIES)J  ;フリン氏
等のFマルチプロセッサシステムにおいてシステム制御
ユニットを用いて通信要求を仲裁する方法及び手段(M
ET)IOD AND MEANSFORARBITR
ATrNG COMMUNrCATION REQ[J
ESTS tJsINGA SYSTEM C0NTR
0L UNIT IN A MULTI−PROCES
SOR3YSTEM)J  ;チナズワミー氏等の[マ
ルチプロセッサシステムにおいてシステムユニット間の
データトランザクションに対するモジュール式クロスバ
−相互接続ネットワーク(MODIJLARCRO3S
BARINTERCONNECTrON NETWOR
K FORDATA TRANS−ACTIONS B
ETWEEN SYSTEM UNITS IN A 
MULTI−PROCESSORSYSTEM)J  
;ポルジン氏等の[入力/出カニニットを有するマルチ
プロセッサシステムに対するシステム制御ユニットをイ
ンターフェイスする方法及び装fi!ffi(METI
(00AND APPARATLIS FORINTE
RFAcING A SYSYTEM C0NTR0I
、UNIT FORAMjJLTI−PROCESSO
RSYSYTEM WITHINPUTloUTPUT
LINITS)J  ;ガグリアード氏等の「システム
主メモリを有するマルチプロセッサシステムのためのシ
ステム制御ユニットをインターフェイスする手段に用い
るメモリ構成(MEMORY C0NFIGLIRAT
ION FORUSE WITI(MEANS FOR
INTERFACING A 5YSTENCONTR
OL LINIT FORA MULTI−PROCE
SSORSYSTEMWIT)(T)IE SYSTE
M MA夏N MEMORY)J  ;そしてガグリア
ード氏等の[システムモジュール間のDRAM制御信号
のエラーチエツクのための方法及び手段(METHOD
 AND MEANS FORERRORCHECKf
NG OF DRAM−CONTROL 5fGNAL
S BETWEEN SYSTEM MQDULES)
J 。 本発明は、一般に、デジタルコンピュータに係り、より
詳細には、パイプライン式の中央処理ユニットに係る。 更に、本発明は、オペランドに基づいてオペレーション
を定めるオペレーションコードと、オペランドの位置を
設定する情報を与えるためのオペランド指定子とを有す
る可変長さの命令をデコードするための命令デコーダに
係る。 従来の技術 パイプラインとは、デジタルコンピュータにおいて中央
処理ユニット(CPU)の性能を向上させるための立証
された方法である。パイプライン式のCPUにおいては
、多数のファンクションユニットが複数の命令に対し基
本的な動作を同時に実行する。パイプラインにおいては
、データが全ての段に対して同時に各段から次の段へと
シフトされる。シフトを行うときには、各段がその基本
的なオペレーションを完了させていることが望ましい。 中間の段がシフトのときにその指定されたタスクを完了
できない場合には、その中間の段はより多くのデータを
受け取る準備ができるまで、少なくともその手前の段を
停止しなければならないか或いはそれらの結果が一時的
に記憶されねばならない。従って、効率的なパイプライ
ン設計は。 タスク全体が、はぼ同じ最小処理時間と、はぼ同じ停止
発生頻度とを有する基本的なオペレーションに分割され
るようバランスされる。換言すれば、他のオペレーショ
ンが比較的重要でない間に1つのオペレーションが処理
時間を決めるようになっていてはならない。 しかしながら、従来のデジタルコンピュータにおいては
、これらの基本的なオペレーションは、“フェッチ−実
行”サイクル及びその別々のステップ即ち命令フェッチ
、命令デコード、オペランドフェッチ、実行及び結果記
憶のステップによっである程度決定される。フェッチ−
実行サイクルにより、各ステップは、各命令のためのデ
ータに関連し、そして各ステップは、典型的な場合にメ
モリアクセスオペレーションに使用される単一のクロッ
クサイクルで完了させることが所望される。 その結果、パイプライン式の中央処理ユニットにおいて
は、クロックサイクル当たり1つの命令という割合で命
令を処理することが望ましい。 種々の“可変長さ″命令を実行することのできるコンピ
ュータアーキテクチャの場合には、パイプライン式中央
プロセッサの命令デコード段は、典型的な命令をデコー
ドするのに2つ以上のクロックサイクルを必要とする。 このような“可変長さ″命令は、オペランドに基づいて
実行されるべきオペレーションを指定するオペレーショ
ンコードとは別に、アドレスモードを指定するオペラン
ド指定子を有しているのが好ましい。 クロックサイクル当たり1つの命令という割合で命令を
処理するという目標は、命令フォーマット及びオペラン
ドの選択に制約のある“減少命令セット”を有する最新
のコンピュータアーキテクチャを定める」−で重要であ
った。新規なシステム及びアプリケーションについては
、コンピュータアーキテクチャを自由に選択したりもし
くは変更したりすることが可能であるが、既存のシステ
ム及びアプリケーションについては、既存のアーキテク
チャの可変長さの命令をクロックサイクル当たり1つと
いう割合で処理することのできる改良されたプロセッサ
を提供することが所望されている。 可変長さの命令において多数の指定子を同時にデコード
する場合には、命令間読み取り競合の重大な問題を招く
。これは、命令が自動増加又は自動減少指定子を含んで
いるときに生じ、これらの指定子は、現在の命令に対し
て予め生じている指定子によって指定されたレジスタを
rIJj接的に又は直接的に参照するものである。この
ような命令間競合の1例として次のようなものがある。 ADDL  RO,(RO)+、R1 この場合、ADDLのOPコードによって指定された追
加により、レジスタR1はレジスタROの初期値の2倍
を含むことになり、ROの最終的な値は、(RO)十指
定子の自動増加モードによりl+その初期値となるもの
と仮定する。換言すれば、たとえ命令ユニットがそれら
全てを同時に評価しても、オペランドは順次に評価され
るものと仮定する。 命令ユニットによる命令の予めの処理中に停止が生じな
いようにするために、レジスタのデータではなくてレジ
スタポインタが通常は実行ユニットに通される。という
のは、命令のデコード時には常にレジスタデータが得ら
れるものではないからである。しかしながら、命令間読
み取り競合が存在する場合には、競合するレジスタ指定
子によって指定されたオペランドの値は、増加又は減少
されているレジスタの初期値となり、この初期値は、実
行ユニットが命令を実行するときまで変更されている。 好ましくは、lサイクル当たり1つの指定子のみがデコ
ードされるような特殊なIRCモードに命令デコーダを
入れることにより、競合するレジスタの増加又は減少の
前に適切な初期値が得られ、デコードされている指定子
がレジスタ指定子である場合に、指定されたレジスタの
内容が実行ユニットに送信される。 好ましくは、汎用レジスタは実行ユニット内にあり、そ
して汎用レジスタのもう1つの組が命令ユニット内に含
まれる。実行ユニットがレジスタを変更するときには、
新たなデータが両方のレジスタの組に送られる。同様に
、命令デコードユニットがレジスタ変更指定子を評価す
るときにも、両方のレジスタの組が更新される。 例外又は割り込みが生じた場合に、待ち行列23は、デ
コードはされているがまだ実行されていない命令につい
ての情報で溢れることになる。 これらのデコードされてはいるがまだ実行されていない
命令のいずれかが自動増加又は自動減少モードの指定子
を含む場合には、変更されたレジスタがそのもとの状態
に戻らねばならない。好ましくは、これは、レジスタが
自動増加又は自動減少によって変更されたときに汎用レ
ジスタに対してなされた変更についての情報を待ち行列
(Rr、、 OG待ち行列)に記憶することにより行わ
れる。 しかしながら、汎用レジスタを復帰させることは、命令
間読み取り競合を処理しなければならないために複雑に
なる。好ましい方法によれば、命令間読み取り競合が検
出されると、自動増加及び自動減少指定子が命令ユニッ
トの汎用レジスタ651のみを変更し、レジスタ指定子
はポインタではなくてデータとして実行ユニットに通さ
れる。 実行ユニットの汎用レジスタ652ではなくて命令ユニ
ットの汎用レジスタ651は、自動増加及び自動減少指
定子の評価中に変更される。命令間レジスタ競合をもつ
命令が完全にデコードされると、現在の命令が再び試み
られて実行ユニットの汎用レジスタ652が更新される
まで、次の命令のデコードが一時的に禁止される。 本発明の他の目的及び効果は、添付図面を参照した以下
の詳細な説明から朗らかとなろう。 実施例 本発明は、種々の変更や修正がなされ得るが、特定の実
施例を添付図面に一例として示し、これについて以下に
詳細に説明する。しかしながら、本発明は、ここに開示
する特定の形態に限定されるものではなく、特許請求の
範囲に定められた本発明の精神及び範囲内に入る全ての
変更や修正を網羅するものとする。 添付図面の第1図を参照すれば、主メモリ10と、メモ
リーCPUのインターフェイスユニットIIと、命令ユ
ニット12及び実行ユニット13より成る少なくとも1
つのCPIJとを備えたデジタルコンピュータシステム
の1部分が示されている。このようなシステムでは、主
メモリ】0を共有することにより更に別のCPLJを使
用できることを理解されたい。 データと、データを処理するための命令は、主メモリ1
0内のアドレス可能な記憶位置に記憶される。命令は、
CPUによって実行されるべきオペレーションをコード
の形態で指定するオペレーションコード(OPコード)
と、オペランドを位置設定する情報を与えるオペランド
指定子とを備えている。個々の命令の実行は、多数のよ
り小さなタスクに分割される。これらのタスクは、その
目的に対して最適化された専用の別々の独立したファン
クションユニットによって実行される。 各々の命令は最終的に色々なオペレーションを実行する
が、各命令が細分化された小さなタスクの多くは全ての
命令に対して共通である。−膜面に、命令の実行中には
次のようなステップが行われる。即ち、命令のフェッチ
と、命令のデコードと、オペランドのフェッチと、実行
と、そして結果の記憶である。従って、専用のハードウ
ェア段を使用することにより、これらのステップはパイ
プラインオペレーションにおいてオーバラップされ、全
体的な命令するプツトを高めることができる。 パイプラインを通るデータ路は、各パイプライン段の結
果を次のパイプライン段へ転送するための各組のレジス
タを備えている。これらの転送レジスタは、共通のシス
テムクロックに応答してタイミング取りされる。例えば
、第1のクロックサイクル中には、第1の命令が命令フ
ェッチ専用のハードウェアによってフェッチされる。第
2のクロックサイクル中には、そのフェッチされた命令
が転送されそして命令デコードハードウェアによってデ
コードされるが、それと同時に、次の命令が命令フェッ
チハードウェアによってフェッチされる。第3のクロッ
グサイクル中には、各命令がパイプラインの次の段ヘシ
フトされそして新たな命令がフェッチされる。従って、
パイプラインがいっばいになると、各クロックサイクル
の終りに命令が完全に実行されることになる。 このプロセスは、製造環境における組み立てラインと類
似している。各々の作業者は、彼又は彼女の作業段を通
過する各々の製品に対して単一の作業のみを行うものと
される。各々の作業が実行されるにつれて、製品は完成
へと近づく。最終段において、作業者が彼に指定された
作業を完了するたびに、完成した製品が組み立てライン
から出てくる。 第1図に示された特定のシステムでは、インターフェイ
スユニット11は、主キャッシュ14を備えており、こ
れは、平均ベースで、命令及び実行ユニット12及び1
3が主メモリlOのアクセス時間より速い速度でデータ
を処理できるようにする。このキャッシュ14は、デー
タエレメントの選択されて予め定められたブロックを記
憶するための手段と、指定のデータエレメントをアクセ
スするために命令ユニット12から変換バッファ15を
経て要求を受け取るための手段と、データエレメントが
キャッシュに記憶されたブロック内にあるかどうかをチ
エツクするための手段と、指定されたデータエレメント
を含むブロックに対するデータがこのように記憶されて
いないときに動作して、指定のデータブロックを主メモ
リlOから読み取りそしてそのデータブロックをキャッ
シュ14に記憶するための手段とを備えている。 換言すれば、キャッシュは、主メモリに“ウィンドウ″
を与えると共に、命令及び実行ユニットが必要とするで
あろうデータを含むことになる。 般に、キャッシュ14は主メモリ10よりも相当に高い
速度でアクセスされるので、主メモリは、データ処理シ
ステムの平均性能を著しく低下することなく、キャッシ
ュよりも比例的に低いアクセス時間を持つことになる。 それ故、主メモリ10は、低速で且つ安価なメモリエレ
メントで構成することができる。 変換バッファ15は、最も最近使用した仮想−物理アド
レス変換を記憶する高速連想メモリである。仮想メモリ
システムにおいては、単一の仮想アドレスを参照するこ
とにより、所望の情報が得られる前に多数のメモリ参照
を生じることができる。しかしながら、変換バッファ1
5を用いる場合には、変換が単に変換バッファ15にお
いて“ヒツト″′を見出すことに減少される。 I10バス16は主メモリ10及び主キャッシュ14に
接続され、コマンド及び入力データをシステムに送信し
たりシステムから出力データを受け取ったりする。 命令ユニット12は、プログラムカウンタ17と主キャ
ッシュ14から命令をフェッチするための命令キャッシ
ュ18とを備えている。プログラムカウンタ17は、主
メモリ10及びキャッシュ14を物理メモリ位置ではな
くて仮想メモリ位置をアドレスするのが好ましい。従っ
て、プログラムカウンタ17の仮想アドレスは、命令を
検索できるまでに主メモリ10の物理アドレスに変換さ
れねばならない。従って、プログラムカウンタ17の内
容はインターフェイスユニット11へ転送され、変換バ
ッファ15がアドレス変換を実行する。命令は、変換さ
れたアドレスを用いてキャッシュ+4内の物理メモリ位
置から検索される。 キャッシュ14はデータ返送ラインを経て命令キャッシ
ュ18へ命令を供給する。キャッシュ14及び変換バッ
ファ15の構成及び動作は、デジタル・イクイップメン
ト・コーポレーション発行のレビー及びレフハウス2世
氏著の[コンピュータプログラミング及びアーキテクチ
ャ、ザVAX−1]  (Computer  Pro
gramming  and  Architectu
re。 The VAX−II)]の]第351−368ページ
1980年)の第11章に更に説明されている。 はとんどの時間に、命令キャッシュ内には、プログラム
カウンタ17によって指定されたアドレスに命令が予め
記憶されており、アドレスされた命令が直ちに得られ命
令バッファ19へ転送される。アドレスされた命令は、
バッファ19が、OPコード及び指定子の両方をデコー
ドする命令デコーダ20へ送られる。オペランド処理ユ
ニット(OPU)21は、指定されたオペランドをフェ
ッチしそしてそれらを実行ユニットI3へ供給する。 又、0PU21は仮想アドレスを発生する。 特に、0PU21は、メモリソース(読み取り)及び行
き先(書き込み)オペランドに対する仮想アドレスを発
生する。メモリ読み取りオペランドに対しては、0PU
21はこれらの仮想アドレスをインターフェイスユニッ
ト11へ供給し、これらは物理アドレスに転送されるヶ
キャッシュ14の物理メモリ位置は、メモリソースオペ
ランドのだめのオペランドをフェッチするようにアクセ
スされる。 各々の命令において、第1バイトはOPコードを含んで
おり、そしてそれに続くバイトはデコードされるべきオ
ペランド指定子である。各指定子の第1バイトは、その
指定子に対するアドレスモードを指示する。このバイト
は通常手部分に分けられ、一方の半部分はアドレスモー
ドを指定しそして他方の半部分はアドレスの使用される
レジスタを指定する。命令は可変長さのものであるのが
好ましく、そして1980年12月23日付けのストレ
ッカー氏等の米国特許第4.241,397号に開示さ
れたように、種々の形式の指定子を同じOPコードと共
に使用することができる。 命令を処理する場合の第1のステップは、命令の″OP
コード″部分をデコードすることである。各命令の第1
部分は、命令において実行されるべきオペレーションを
指定するそのOPコードと、使用されるべき指定子の数
及び形式とで構成される。デコード動作は、命令デコー
ダ20においてテーブルルックアップ技術を用いて行わ
れ、データコンチクスト(バイト、ワード、等々)、デ
ータ形式(アドレス、整数、等々)及び各指定子に対す
るアクセスモード(読み取り、書き込み、変更、等々)
が見出される。又、デコーダは、命令においてどこでソ
ースオペランド及び行き先オペランド指定子が生じるか
を決定し、これらの指定子を0PU21へ送り、命令の
実行の前に予め処理する。その後、実行ユニットは、命
令OPコードでアドレスされた’f o r k  R
AM”から得たスタートアドレスで始めて予め記憶され
たマイクロコードを実行することにより指定のオペレー
ションを行う。 命令がデコードされた後に、0PU21は、オペランド
指定子を分析し、それらの有効アドレスを計算する。こ
のプロセスには、GPRを読み取りモしてGPRの内容
を自動増加又は自動減少によって変更することが含まれ
る。次いで、オペランドがこれらの有効アドレスからフ
ェッチされそして実行ユニット13に通される。実行ユ
ニット13は命令を実行しそしてその結果をその命令に
対する行き先ポインタで識別された行き先へ書き込む。 命令が実行ユニットへ通されるたびに、命令ユニットは
、マイクロコードディスバッチアドレスと、1組のポイ
ンタとを送信する。これらのポインタは、(1)ソース
オペランドを見出すことができる実行ユニットレジスタ
ファイル内の位置と、 (2)結果を記憶すべき位置と
を指すものである。実行ユニット内において、1組の待
ち行列23は、マイクロコードディスバッチアドレスを
記憶するためのフォーク待ち行列と、ソースオペランド
位置を記憶するためのソースポインタ待ち行列と、行き
光位置を記憶するための行き先ポインタ待ち行列とを含
んでいる。これら待ち行列の各々は、多数の命令に対し
てデータを保持することのできるFIFOバッファであ
る。 又、実行ユニット13は、ソースリスト24も含んでお
り、これは、GPRのコピーも含むマルチポートレジス
タファイルに記憶される。従つて、ソースポインタ待ち
行列の人力は、レジスタオペランドに対するGPR位置
を指すか、又はメモリ及びリテラルオペランドに対する
ソースリストを指す。インターフェイスユニット11及
び命令ユニットI2はソースリスト24に入力を計き込
み、そして実行ユニット13は、必要に応じてソースリ
ストからオペランドを読み取り、命令を実行する。命令
を実行するために、実行ユニット13は、命令発行ユニ
ット25と、マイクロコード実行ユニット26と、演算
論理ユニット(八[4U)22と、リタイヤユニット2
8とを備えている。 本発明は、パイプライン式プロセッサに特に有用である
。上記したように、パイプライン式プロセッサにおいて
は、プロセッサの命令フェッチハードウェアは、1つの
命令をフェッチし、1方他のハードウェアは第2の命令
のオペレーションコードをデコードし、第3命令のオペ
ランドをフェッチし、第4命令を実行しそして第5命令
の処理されたデータを記憶する。第2図は、次のような
典型的な命令に対するパイプラインを示している。 ADDL3   RO,B’12(R1)、R2これは
、変位アドレスモードを用いたロングワード加算である
。 この命令のパイプライン式実行についての第1段階では
、命令のプログラムカウント(PC)が形成される。こ
れは、通常は、プログラムカウンタをその手前の命令か
ら増加するか、又は分岐命令のターゲットアドレスを用
いるかのいずれかによって行われる。次いで、このPC
を用いて、パイプラインの第2の段において命令キャッ
シュ18がアクセスされる。 パイプラインの第3の段において、命令データは、命令
デコーダ20によって使用するためのキャッシュ18か
ら得られるか、又は命令バッファ19にロードされる。 命令デコーダ20は、以下で詳細に述べるように、OP
コードをデコードしモしてOPコード及び3つの指定子
を1つのサイクルにおいてデコードする。RO及びR2
の数値はAI−Uユニット27に送られ、そしてR1の
数値は、バイトの変位と共に、デコードサイクルの終り
に0PU21へ送られる。 第4において、オペランドユニット21は。 位置R1にあるそのGPRレジスタファイルの内容を読
み取り、その値を指定の変位(12)に加え、そしてそ
れにより生じたアドレスを、0PREAD要求と共に、
アドレス発生段階の終りにインターフェイスユニットl
l内の変換バッファ15に送る。 段5において、インターフェイスユニット11は段4で
発生されたアドレスを実行のために選択する。変換バッ
ファ15を用いて、インターフェイスユニット11は、
アドレス変換段階中に仮想アドレスを物理アドレスに変
換する。次いで。 物理アドレスを用いて、キャッシュ14をアドレスし、
これはパイプラインの段6において読み取られる。 パイプラインの段7において、命令がA L IJ27
へ発生され、A L U 27は、2つのオペランドを
加算しそしてその結果をリタイアユニット28へ送る。 段4の間に、R1及びR2に対するレジスタの装置と、
メモリデータのソースリスト位置に対するポインタとが
実行ユニットに送られてポインタ待ち行列に記憶されて
いる。次いで、キャッシュ読み取り段階の間に、実行ユ
ニットは、ソースリスト内の2つのソースオペランドを
探索し始める。この特定の実施例においては、ROのレ
ジスタデータのみを見つけるが、この段階の終りにメモ
リデータに到達し、レジスタ回路から読みだされた無効
データと取り換えられる。従って両方のオペランドが命
令実行段階に得られることになる。 パイプラインのリタイア段階8において、その結果のデ
ータがリタイア待ち行列内の次の入力と対にされる。多
数の機能実行ユニットは同時にビジーとなり得るが、単
一のサイクルにリタイアできるのは1つの命令だけであ
る。 ここに示すパイプラインの最後の段階9においては、デ
ータが実行ユニット13及び命令ユニット12の両方の
レジスタファイルのGPR部分に書き込まれる。 第3図は、第1図に示した中央処理ユニット(CPU)
によって処理することのできる典型的な命令30を示し
ている。この命令は、上記したレビー及びエフホース2
世氏等のVAX可変長さ命令アーキテクチャに対応する
ものである。命令30は、l又は2バイトよりなるオペ
レーションコード31を含んでいる。第1バイト32が
F D(16進)の値を有する場合には、二重バイトオ
ペレーションコードとして認識される。さもなくば、命
令デコーダ(第1図の20)は1つのバイトのみを含む
ものとしてオペレーションコードを認識する。命令3o
は、更に、オペレーションコードに続いて6個までの指
定子を含むことができる。 オペレーションコードは、いかに多くの指定子が命令に
含まれるかどうかを指示する。所与のオペレーションコ
ードに関連して使用される指定子は、種々の特性(at
tribuシe)及び種々の長さを有するものである。 特定の指定子の特性は、指定子の第1バイトにおけるア
ドレスモードによって少なくとも1部分が決定される。 しかしながら、指定子の許容できる特性はオペレーショ
ンコードによっである程度制限される。更に、′即時ア
ドレッシングとして知られている特定の形式のアドレス
モードにおいては、指定子情報の長さが指定子により指
定されたパデータ形弐″によって決定される。 第4図には特定の可変長さ命令が示されている。アッセ
ンブラの表示法では、この命令は′″ADDL3 RO
,#4.L’203(RO)”と書かれる。マシンノー
ドにおいては、命令は、−膜面に35と示された8個の
バイトを備えている。第1バイトは、23(+6進)の
オペレーションコードであり、これはアッセンブラ表示
“ADDL3″に対応する。 このオペレーションコードは、第1の論理ワードオペラ
ンドが第2の論理ワードオペランドに加算されるべきで
ありそしてロングワードの結果が行き先に記憶されるべ
きであることを指示する。 オペレーションコードに続いて、50(16進)の値を
有する″レジスタ指定子″がある。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つ
の上位ビットが両方ともゼロである場合には、オペラン
ド指定子は1つの第1バイトで構成され、そしてこのバ
イトの6つの下位ビットは、′短いリテラル′”と示さ
れる6ビツト値を指定するものとして解釈され即ちデコ
ードされる。 オペランド指定子の第1バイトの最初の2つの上位ビッ
トがゼロでない場合には、そのバイトが分岐変位の部分
でないと仮定すれば、そのバイトは、CPIJ内の16
個の汎用レジスタROないしR15のうちの指定の1つ
に関連する12個のレジスタアドレスモードのうちの特
定の1つとしてデコードされる。バイトの4つの」二位
ビット(レジスタモードフィールドを構成する)はアド
レスモードを指示するようにデコードされ、そして4つ
の下位ビット(汎用レジスタアドレスフィールドを構成
する)は、168の汎用レジスタのうちの特定の1つを
アドレスするのに用いられる。 レジスタモードフィールドの値が16進数で4の場合に
は、パインデックスモード″が指定され、このモードに
おいては、レジスタアドレスフィールドによってアドレ
スされた汎用レジスタの内容の値がオペランドのサイズ
即ちバイト数で乗算され(例えば、各バイト、ワード、
ロングワード、クオドワード又はオクタワードデータ形
式については、l、2.4.8又は16で乗算される)
そしてその和がその直後のコンプレックス指定子に対し
て行ったアドレス計算の項として含まれる。 次のバイトは、16進数で6ないしFの値を有するレジ
スタモードフィールドと、コンプレックス指定子に対し
てペースレジスタをアドレスするレジスタアドレスフィ
ールドとを持たねばならない。 レジスタモードフィールドが16進数で5の値を有する
場合には、指定子がパレジスタ指定子″であり、この場
合にはレジスタアドレスフィールドによって指示された
汎用レジスタにおいてオペランド値が見つかる。あるい
は、指定子が命令の行き先に対するものである場合には
、レジスタアドレスフィールドによって指示された汎用
レジスタに結果を記憶すべきであることが指定子によっ
て指定される。 レジスタモード6.7及び8の各々に対し。 指定されたレジスタは、オペランドに対するメモリアド
レスを含む。ソースオペランドに対し、オペランドの値
はこのメモリアドレスから読み取られ、そして行き先オ
ペランドに対し、その結果がこのメモリアドレスに書き
込まれる。ノード6においては、指定のレジスタがオペ
ランドのアドレスを含む。レジスタモード7においては
、指定の汎用レジスタの内容が、アドレス計算の前に最
初に減少され、モード8においては、指定の汎用レジス
タの内容が、レジスタを用いてアドレスを計算した後に
増加される。レジスタモード9はレジスタモード8と同
様であるが、指定の汎用レジスタの内容は、オペランド
自体ではなくてオペランドアドレスが見出されるメモリ
内のアドレスを指定する。 モード10ないし15は種々の″変位モード″である。 変位モードにおいては、モード10.12及び14にお
ける各々バイト、ワード又はロングワードである変位値
が指定の汎用レジスタの内容に加算され、オペランドア
ドレスが得られる。 オペランドは、モード11,13及び15において同様
の形態で決定されるが、変位値と汎用レジスタの内容と
の和は、オペランドのアドレスを見出すことのできるメ
モリアドレスを識別する。 モード8ないし15においては、オペランド指定子の第
1バイトのレジスタアドレスフィールドは、プログラム
カウンタであるレジスタR]5を含む汎用レジスタのい
ずれかを指定することができる。モード8及び9に対し
、プログラムカウンタがアドレスされた場合には、プロ
グラムカウンタ自体の値が増加され、プログラムの実行
は、命令の流れに入れられたオペランドアドレス又はオ
ペランドデータをジャンプすることになる。それ故、デ
コードされた命令は、プログラムカウンタがアドレスさ
れるモード8及び9のこれらの特殊な場合を認識しなけ
ればならない。モード8においては、この特殊な場合は
“即時′″アドレスモードして知られており、そしてモ
ード9においては、パ絶対“アドレスモードとして知ら
れている。特に、汎用レジスタOないし14のいずれか
に対してモード8及び9がデコードされたときには、次
の指定子又は次のオペランドコードが、モード及び汎用
レジスタを指定するバイトの直後に現われる。しかしな
がら、即時モードについては、多数の即時データバイト
が現われ、そしてバイトの数は指定子のデータ形式によ
って決定される。 第6図には、命令デコーダ20に至るデータ路が詳細に
示されている。多数のオペランド指定子を同時にデコー
ドするために、命令バッファ19は、参照番号40で一
般的に示されたデータ路によって命令デコーダ20に接
続され、このデータ路40は、デコードされる命令の9
バイトまでの値を搬送するものである。しかしながら、
各バイトには、バイト内の単一ビットエラーを検出する
ためのパリティビットと、命令バッファが、実際に、プ
ログラムカウンタ(第1図の17)で要求された命令キ
ャッシュ(第1図の18)からのデータでいっばいにな
っているかどうかを指示するための有効データフラグ(
i  VALID)とが組み合わされる。命令デコーダ
は、命令バッファ19における有効データの量に応じて
いるいろな数の指定子をデコードする。より詳細には、
命令デコーダは、有効データフラグを検査して、デコー
ドすることのできる指定子の個数を決定すると共に、そ
れらを単一のサイクル中にデコードする。実際にデコー
ドされる指定子の個数により、命令デコーダは、デコー
ドされるバイトの個数を決定し、これらのバイトを命令
バッファ19から取り出す。第6図に示すように、命令
バッファ19には、選択された個数のバイトを命令バッ
ファ19にシフトしたりそこからシフトして出したりす
るための手段が組み合わされる。このシフト手段は、命
令バッファ19がらデータをシフトするか又は再循環さ
せるために合流マルチプレクサ22と共に配置されたシ
フタ21を備えている。命令バッファは、データラッチ
として働く、中央処理ユニットのシステムクロックによ
るクロック動作に応じてデータを受け取る。命令デコー
ダは、各サイクルの終りに命令バッファからシフトして
出すべきバイトの個数を指定する数字をシフタ21へ送
信する。 命令バッファ19は、典型的に命令内に見られる種類の
指定子を少なくとも3つ保持するに充分な大きさのもの
である。命令デコーダ20は、命令バッファのバイ80
位置がOPコードを保持し、一方、命令の他のバイトが
命令バッファ19ヘシフトされたりそこから出されたり
する場合には、若干簡単なものとなる。実際に、命令バ
ッファは、OPコードをバイトOに保持し、そしてバイ
トlないし8に対して先入れ先出しバッファとして働く
。又、命令デコードは、システムクロックの各サイクル
中に単一命令に対する指定子のみがデコードされると仮
定すれば簡単なものとなる。 それ故、命令に対する全ての指定子がデコードされたサ
イクルの終りに、命令デコーダは″゛シフトOP信号を
シフタ21へ送信し、命令バッファのバイ80位置から
OPコードをシフトして出し、バイ80位置に次のOP
コードが受け取られるようにする。 命令キャッシュ(第1図の18)は、多数のデータバイ
トのブロックとして命令データを受信及び送信するよう
に構成されるのが好ましく、ブロックのサイズは、プロ
グラムカウンタ(第1図の17)によって与えられたア
ドレスの幾つかの最」1位ビットによって指定されるメ
モリアドレスを持つように2の累乗であるのが好ましい
。それ故、命令バッファからのオペレーションコードの
アドレスは、ブロック内の種々の位置に生じる。 命令バッファのバイトOに、命令データのブロック内の
いずれかのバイト位置に生じるオペレーションコードを
キャッシュからロードするために、命令キャッシュ18
から命令バッファ19に至るデータ路にローデータ23
が配置されている。このローデータ23と、シフタ21
はクロスバ−スイッチで構成される。 命令バッファのバイ80位置に、命令キャッシュからの
命令流に含まれたO Pコードをロードするために5合
流マルチプレクサ22は、シフタ2Iからの選択された
個数のバイトと合流されるべきローデータ23からのバ
イトの個数を選択するための選択入力を有している。特
に、合流マルチプレクサは、データ人力AOないしA8
を有しており、特定の“シフトすべき数=1mに応答し
て、マルチプレクサ22は、シフタからのデータを受け
取るための入力ΔO1・・・A8−mをイネーブルする
と共に、ローデータからのデータを受け取るための入力
B8−m+1、・・・B8をイネーブルする。図示され
たように、このマルチプレクス記号は、各へ入力又は各
B入力のいずれかを選択するための個々の選択人力5o
−38を有するマルチプレクサ22と、命令バッファ内
の有効データフラグに応答して論理回路26により決定
される命令バッファ19内の有効入力の個数(■BUF
  VAl、、ID  C0UNT)及びN O。 To  5HIFT信号に応答して制御論理回路24に
より個々の選択ライン5O−58をイネーブルすること
とによって行うことができる。又、制御論理回路24は
、S I−I I F T  OI)借りに応答して、
5l(IFT  OP信号がアサートされたときに、シ
フトされるべき全バイト数がOPコードを含むようにし
、そしてS HI F T  OP信号がアサートされ
ないときに、シフトの数にかかわりなく、命令バッファ
からのOPコードが合流マルチプレクサ22のAO大入
力送られるようにする。 第6図に示すように、命令キャッシュからのデータ路は
、命令データの各バイトごとに1つづつ設けられた8本
の並列バスを備えている。ローデータは、ローデータ制
御論理回路26によって与えられた゛′回転値′″に応
答する。ローデータ制御論理回路26は、No、  T
o  5HIFT及びIBUF  VALID  C0
UNTと、r13EX  VALID  C0tJNT
(7)値トニ応答し、上記のNOl To  5HIF
T及びIBUF  VAl、、[D  C0UNTは、
新たな命令データのうちの最初に入ってくるバイトを命
令バッファ19に入れるべき場所を指示し、モして」−
記のIBEX  VAIID  C0UNTは、命令キ
ャッシュと、該キャッシュとローデータ23との間の関
連バッファ部とによって送られるもので、新たな命令デ
ータのうちの最初に入ってくるバイトをどこから得るか
を指示する。命令キャッシュ及びそれに関連したバッフ
ァ部の好ましい構造及び動作と。 その場合のローデータ及び合流マルチプレクサの制御に
ついては、参考としてここに取り上げる″゛仮想命令キ
ャッシュレフィルアルゴリズム(Virtual In
5truction Cache Refill Al
gorithm)”と称するり、ツイツチ氏等の米国特
許出願に更に説明されている。 命令バッファが最初にロードされそしてその後に何回か
ロードされるときには、ローデータ23によって受け取
られたデータの幾つかは、命令バッファ19へ転送する
ためには無効であることが考えられる。特に、8個のデ
ータバイトが命令キャッシュから読み取られそしてロー
データ23へ直接転送され、更に、ロードされるべきO
I)コードがブロック内の中間バイト位置に現われる場
合には、OPコードより」1位のアドレスにある命令デ
ータが転送に対して有効となり、そしてOPコードより
下位のアドレスが転送に対して無効となる。それ故、O
Pコード及びその直後のバイトは有効となる、そして他
のバイトは無効となることが考えられる。その結果、有
効データフラグは、それに関連したバイト位置と、それ
より下位番号の全てのバイト位置(最初にロードされた
OPコードまで)が有効であるかどうか指示する。 OPコードが命令バッファ19のバイトO位置にロード
されると、命令デコーダ20はそれを検査し、そしてそ
れに対応するマイクロプログラムパフオークアドレス″
を待ち行列(第1図の23)内のフォーク待ち行列へ送
信する。又、命令デコーダは、命令バッファ内の他のバ
イトも検査し、3個までのオペランド指定子を同時にデ
コードできるかどうかを判断する。更に、命令デコーダ
は、ソースオペランドを行き先オペランドから分離する
。特に、システムクロックの監視サイクルにおいて命令
デコーダは、2つまでのソースオペランドと、1つの行
き先オペランドとをデコードする。ソースオペランド又
は行き先オペランドが各サイクルごとにデコードされる
がどうかを表わすフラグは、命令デコーダ20から転送
バス(TR)を経てオペランドユニット21へ送られる
。命令デコーダ20は、lサイクル当たり3個までのレ
ジスタ指定子を同時にデコードすることができる。レジ
スタ指定子がデコードされると、そのレジスタアドレス
が転送バスTRに送られ、オペランドユニット21内の
転送ユニット3oを経てソースリスト待ち行列(第1図
の23)へ送られる。 命令デコーダ20は、1サイクル当たり1つの短いリテ
ラル指定子をデコードすることができる。VAX命令ア
ーキテクチャによれば、この短いリテラル指定子はソー
スオペランド指定子でなければならない。命令デコーダ
が短いリテラル指定子をデコードすると、短いリテラル
データはバス(EX)を経てオペランドユニット21内
の拡張ユニット3Iへ送られる。この拡張ユニット:3
1は、この短いリテラルの6個のビットを、命令OPコ
ードによって必要とされる指定子のデータ形式により必
要とされるサイズまで拡張し、そしてこの拡張は、それ
を保持するに充分な最小数32ビット長さのワードにお
いて行われる。換言すれば、バイト、ワード、ロングワ
ード又は1it−精度フローティングポイントデータタ
イプについては1つの32ビツトロングワードが必要と
されクオドワード又は2倍精度フローティングカウント
データタイプについては2つの32ビツトロングワード
が必要とされ、そしてオクトワードデータワードについ
ては4個の32ビットロングワードが必要とされる。3
2ビツトロングワードはソースリスト(第1図の24)
へ送られ、そしてオペランドに対応するソースリストポ
インタは、ソースリストポインタ待ち行列(第1図の2
3)に入れられる。 命令デコーダ20は、1サイクル当たり1つのコンプレ
ックス指定子をデコードする。コンプレックス指定子デ
ータは、命令デコーダ20により、汎用バス(GP)を
経てオペランドユニット21の汎用ユニット32へ送ら
れる。汎用ユニット32は、通常のオペランドユニット
と同様に動作し、指定子のデータ形式に対応する選択さ
れた数の2進位置だけインデックスレジスタの内容をシ
フトし、そしてこのシフトされた値をペースレジスタの
内容及びコンプレックス指定子に対する変位に加算する
。指定子が「アドレス」アクセス形式を有する場合には
、計算された値がソースリストに入れられ、対応するソ
ースリストポインタがソースリスト待ち行列(第1図の
23)に送られる。さもなくば、コンプレックス指定子
がソースオペランドを指定する場合には、メモリが計算
された値でアドレスされ、ソースオペランドが得られる
か、或いはデフアートモードの場合には、ソースオペラ
ンドのアドレスが得られる。次いで、ソースオペランド
がソースリスト(第1図の24)に入れられ、対応する
ソースリストポインタがソースリストポインタ待ち行列
(第1図の23)に入れられる。コンプレックス指定子
が行き先オペランドを指定する場合には、計算された値
が行き先待ち行列(第1図の23)に入れられる。 命令に対する全ての指定子がデコードされると、命令デ
コーダ20は「シフト○「)」信号をシフタ21に送信
する。 第7図を参照すれば、GPババスフォーマットが詳細に
示されている。GPババス、システムクロックの手前の
サイクル中にコンプレックス指定子がデコードされたか
どうかを汎用ユニット32に指示するための単一ピッl
−r有効データフラグ(VDF)Jを送信する。又、コ
ンプレックス指定子がインデックスレジスタを参照する
かどうかを指示するための単一ビット「インデックスレ
ジスタフラグJ  (IRF)も送られる。参照される
インデックスレジスタは、GPババス経て送られる4ビ
ツトのインデックスレジスタ番号によって指定される。 又、GPババス、コンプレックス指定子の指定子モード
を示す4つのビットと、ペースレジスタ番号を示す4つ
のビットと、コンプレックス指定子によって指定された
変位を含む32のビットとを搬送する。 又、GPババス、現在命令の指定子のシーケンスにおけ
るコンプレックス指定子の位置を表わす3ビツトの指定
子番号も送信する。この指定子番号は、汎用ユニット3
2がOPコードバイトのデコードからの指定されたオペ
ランドに対するアクセス及びデータ形式を選択できるよ
うにする。 それ故、汎用ユニット32は、第6図の拡張ユニット3
1及び転送ユニット30とは若干独立して動作すること
が可能である。特に、汎用ユニット32は、該ユニット
がオペランドを判定するために2つ以上のサイクルを必
要とするかどうかを指示する独立したストール信号(O
PU  ST八へL)を発生する。 第8図には、拡張バス(E X、 )のフォーマットが
示されている。この拡張バスは、単一ビット有効データ
フラグ、6ビツトの短いリテラルデータ、及び3ビツト
の指定T番号を搬送する。この指定子番号は、現在命令
に続く指定子シーケンスにおける短いリテラル指定子の
位置を1行示し、そしてOPコードバイトのデコードか
ら関連データバイトを選択するために拡張ユニット31
によって使用される。それ故、拡張ユニット31は、若
干独立して動作し、拡張ユニットが短いリテラルの指定
子を処理するために2つ以上のサイクルを必要とするか
どうかを指示する各々のストール信号(SL  5TA
LL)を発生する。 第9図には、転送バス(T R)のフォーマットが示さ
れている。TRバスは、第1ソースバス35と、第2ソ
ースバス36と、行き先バス37とを備えており、その
各々は、各々の有効データフラグ(VDF)と、レジス
タフラグ(RG [”” )と、レジスタ番号とを搬送
する。レジスタフラグは、それに対応するレジスタ指定
子がデコードされたときにセットされる。又、コンプレ
ックス又は短いリテラルの指定子がデコードされたとき
には、第1ソース、ダイ2ソース又は行き先バスにおけ
る有効データフラグの各々がセットされ、そしてそれに
関連したレジスタフラグがクリアされて、ソース又は行
き先オペランドに対するソースリストポイント待ち行列
又は行き先待ち行列へのデータ路にスペースが保持され
る。 第1O図には、命令をデコードするためにシステムクロ
ックの単一サイクル中に実行されるオペレーションのフ
ローチャートが示されている。 第1ステツプ4Iにおいては、ダブルバイトOPコード
フラグが検査され、ダブルバイトオペレーションコード
の第1バイトがその手前のサイクル中に検出されたかど
うかが判断される。もしそうでなければ、ステップ42
において、命令デコーダは、命令バッファのバイ60位
置がダブルバイトOPコードの第1バイトを含んでいる
かどうかをチエツクする。V A X命令については、
ダブルバイトOPコードの第1バイトが16進でFDの
値を有している。この値が検出された場合には、ステッ
プ43において、ダブルバイトOPコードフラグが次の
サイクルのためにセットされ、S l−1rFT  O
P倍信号、lに等しいNo、 T。 5)(IFTと共にシック(第6図の21)へ送られ、
第10Pコードバイ]・が命令バッファからシフトされ
ると共に、バイ80位置のOPコードの第2バイトが受
け取られる。 バイトOがダブルバイトOPコードを指示しないときに
は、ステップ44において、:3個までの指定子が同時
にデコードされる。同時デコードの好ましい方法は、第
11図について以下に詳細に説明する。指定子をデコー
ドした後に、ステップ45において、デコーダはOI)
コードに対する全ての指定子がデコードされたかどうか
判断する。 このために、デコーダは、現在のオペレーションコード
に対する手前のサイクル中にデコードされた全数の指定
子を記憶するレジスタを有している。 このレジスタの値は、「完了した指定子」と称する。そ
れ故、ステップ45において、デコーダは、オペレーシ
ョンコードに対する指定子の数(指定子カウントと称す
る)を「完了した指定子」の和と比較することによって
全ての指定子がオペレーションコードに対してデコード
されたかどうかを判断し、指定子の数はステップ44に
おいてデコード°されている。 オペレーションコードに対して全ての指定子がデコード
された場合には、ステップ46において、デコーダは、
シフトすべきバイトの数がステップ44においてデコー
ドされた指定子バイト+1に等しいかどうかを判断する
。この追加の1は、新たなオペレーションコードを命令
バッファにシフトするためのものである。このため、命
令デコーダは[シフトOPJ信号をアサートする。ダブ
ルバイトOr)コードフラグはこのときにクリアされ、
又、「完了した指定子」はゼロにセットされて、次のサ
イクル中の次の命令のデコードを開始する。 ステップ45において、オペレーションコードに対して
追加指定子をデコードすべきであると判断された場合に
、次いで、ステップ47において、シフタ(第6図の2
1)は、ステップ44においてデコードされた指定子バ
イト数に等しい「シフトすべき数」を送る。又、「完了
した指定子」は、ステップ44においてデコードされた
指定子の数だけ増加される。これは、現在サイクル中に
デコードを完了する。 第11図には、3個までの指定子を同時にデコードする
方法のフローチャートが示されている。 第1ステツプ51において、デコーダは、「拡張即時」
アドレスモードが手前のサイクル中に検出されたかどう
かを判断し、命令バッファの次の4つのバイトが拡張即
時データとして適切に解釈されるようにする。この判断
は重要である。というのは、拡張即時データがとる値に
は制約があり、レジスタ又は短いリテラル指定子或いは
種々の他のアドレスモードの特性である値をおそらくと
ることになるからである。命令バッファがこのような拡
張即時データを含んでいる場合には、ステップ52にお
いて、デコーダはバイトlないし・1が有効データを含
むかどうかを判断する。もしそうでなければ、ステップ
5:3において、命令デコーダは、シフトカウント(S
C)と、デコードされる指定子の数(N)とを決定し、
これは、指定子バイトの数及びこのサイクルにデコード
された指定子・の数を各々指示する。これらのパラメー
タはゼロにセットされるので、命令デコーダは実際には
現在サイクル中にストールする。 ステップ52においてバイトlないし4が有効であると
判断された場合には、それらをデコードすることができ
る。ステップ54において、指定子バイトに対するシフ
トカウント(SC)は4に等しくセットされ、デコード
される指定f・の数(N)はゼロに等しくセットされる
。次いで、ステップ55において、ロングワードカウン
トが減少されて、拡張即時データのロングワードがデコ
ードされたことを指示する。ステップ56において、ロ
ングワードカウントがゼロと比較され、拡張即時データ
の追加ロングワードをデコートする必要があるかどうか
判断される。もしそうならば、現在サイクルに対するデ
コードは終了である。さもなくば、ステップ57におい
て、拡張即時指定子のデコードが終了し、拡張即時フラ
グ(X8I”)がクリアされる。このフラグは、例えば
、拡張即時データがデコードされているときにS HI
 F TOP信号を禁止し、これは、拡張即時モードが
最初に検出されたときに、デコードされる指定tの数(
N)を調整する必要がないように便宜上行なわれる。 ステップ51に戻ると、デコーダか拡張即時データを期
待していない場合には、ステップ58において、OPコ
ードの[アクセス」形式が検査されて、命令バッファの
データが分岐変位として解釈されるべきかどうか判断さ
れる。ステップ59において、命令デコーダは、次の指
定f〜のアクセス形式をチエツクし、 「インプライド
」指定子であるかどうか判断される。 命令デコーダは多数の指定子をデコードする能力なfT
しているので、実行ユニットがインプライド指定子を実
行するためのマイクロコードシーケンスを実行するので
はなくて、インプライド指定子に対するオペランドを形
成することが非常に効果的である。これは、スタックポ
インタが増加又は減少しなければならないインプライド
指定子であるときに特に効果的である。この場合、16
進数でEのペースレジスタ番号と、7又は8の指定rモ
ードがGPババスアサートされ、スタックポインタは汎
用ユニット(第6図の32)によって自動的に増加又は
減少させられる。スタックオペレーション(例えば、P
 U S H)は、インプライドスタックポインタオペ
ランドを用いて実行され、それらはムーブ命令と同様に
なりそして単一のサイクルにおいて実行することができ
る。このようなスタックレジスタインプライドオペラン
ドを有するVAX命令の完全なリストが添付資料Iに含
まれている。これらの命令については、実行ユニットが
スタックポインタを増加及び減少させるのではなく、ス
タックポインタがGPババスアサートされるのが好まし
い。 ステップ60において、命令デコーダは、命令バッファ
に有効データが存在すると仮定すれば。 現在サイクル中にデコードしなければならない3個まで
の指定子の最大数を決定する。要求に対する指定子の数
が決定されると、ステップ61において、命令デコーダ
は、デコードすべき指定子の初期数と、現在サイクルに
対するシフトカウントとを決定する。これらの初期値は
、競合が検出された場合に初期値を変更する[命令間1
読み取り競合」検出器によって使用される。 命令間読み取り競合は、現在命令に対して手前に生じた
指定子によって指定されたレジスタを直接的に又は間接
的に参照する自動増加又は自動減少指定子を命令が含ん
でいるときに生じる。命令ユニット(第1図の12)に
よる命令のf・めの処理中にストールを回避するために
、レジスタデータではなくてレジスタポインタが通常は
実行ユニットに通される。というのは、命令デコード時
にはレジスタデータが常に得られないからである。 又、これは、3個までのレジスタ番けを96本のライン
ではなくて】2本のデータラインを経て同時に通すこと
ができ、96本のラインでは3つのレジスタの内容を通
すことが必要になる。然し乍ら、命令間読み取り競合が
生じる場合には、競合するレジスタ指定子によって指定
されたオペランド値が増加又は減少されているレジスタ
の初期値となり、この初期値は、実行ユニットが命令を
実行するときまでに変更される。命令デコーダを特殊な
IRCモードに入れて、lサイクル当たり1つの指定子
しかデコードされないようにすることにより競合レジス
タの増加又は減少のi;jに適切な初期値が得られるの
が好ましく、そしてデコードされている指定子がレジス
タ指定子である場合には、指定されたレジスタの内容が
GPババス経て汎用ユニットに送られて5指定されたレ
ジスタの内容を得ると共に、それを実行ユニットに送信
する。 第11図のフローチャートに示されたように、命令間読
み取り競合は、ステップ62において、現在サイクル中
にデコードすることのできる指定子の初期数を考慮して
検出される。ステップ61で決定された指定子の初期数
に対して命令間1;にみ取り競合が存在する場合には、
次いで、ステップ63において、このサイクル中にデコ
ードされている指定子の数(N)と、シフトカウント(
SC)とが、1つの指定子しか要求されないという仮定
のもとで選択される。又、レジスタ指定子がデコードさ
れる場合には、レジスタ指定Y・がレジスタ番号として
TRバスを経て転送ユニット(第(−図の30)へ送信
されるのではなく、G r)バスを経て汎用ユニット(
第6図の32)へ送られる。命令間読み取り競合がステ
ップ62において検出されないか又はステップ63にお
いて分析されている場合には、ステップ64において、
命令デコーダは、デコードされている指定子が「拡張即
時」モードを有しているかどうかを判断する。もしそう
ならば、ステップ65において、−1−記ステップ55
及び56で使用された[ロングワードカウント」が拡張
即時指定子のデータ)f3式に基づいてセットされる。 データ形式がクオドワードである場合には、拡張即時ブ
ータフオドワードの最初の4バイトが現在サイクル中に
デコードされ、クオドワードデータの最後の4バイトは
その後のサイクル中にデコードされねばならない。それ
故、ロングワードカウントは1にセットされ、これは、
拡張即時データの1つの追加ロングワードをデコードす
べきであることを指示する。拡張即時指定子のデータ形
式がオクタワードである場合には、ロングワードカウン
トが3にセットされ、これは、拡張即時データの3つの
追加ロングワードを次のサイクル中にデコードしなけれ
ばならないことを指示する。又、ステップ65において
、[シフトOPJ信号が禁止される。ステップ64にお
いて拡張即時モードが検出されたときにデコードすべき
指定子の数(N)を変更する必要がないように、拡張即
時データの最後のロングワードがデコードされるまで「
シフトOPJ信号が禁止される。さもなくば、拡張即時
指定子が現在命令の最後の指定子である場合には、現在
命令に対するオペレーションコードが命令バッファから
シフトされて出される。 デコードすべき指定子の数及びシフトカウントが決定さ
れると、ステップ66において、GP、SL及びTRバ
ス(第7図ないし第9図)に対するフラグ及び指定子情
報が決定される。更に、ステップ67において、指定子
情報がGP、SL及びT Rバスに出される。これで、
現在サイクルのデコード手順が終了する。 第12図には、命令デコーダ20の好ましい実施例のブ
ロック図が示されている。ダブルバイトOPコードを検
出するために、拡張OPコードデコーダ101が設けら
れており、これは、命令バッファのバイトOが16進数
でFDの値を有するときにEXT信号をアサートする。 EXT信号は、フリップ−フロップ102で指示された
ダブルバイトOPコードフラグをセットするのに用いら
れる。ゲート103及び+04は、命令に対する全ての
指定子がデコードされたとき及び命令バッファが最初に
ロードされたときにダブルバイトOPコードフラグを最
初にクリアするために設けられている。 オペレーションコードをデコードするために。 組み合わせ論理回路105は、ダブルバイトOPコード
フラグと、命令バッファのバイトOの内容とを受け取る
。各々のオペレーションコードに対し、デコード論理回
路は、オペレーションコードに続く指定子の数を指示す
るrSpeCC0untJと、各指定子に対するアクセ
ス形式及びデータ形式とを発生する。デコーダ20は、
3つまでの指定子をデコードできるので、デコードされ
るべき次の3つの指定子に対するアクセス及びデータ形
式のみが適当である。適当なアクセス及びデータ形式情
報を選択するために、各オペレーションコードの6個の
考えられる指定子の各々に対してアクセス及びデータ形
式を受け取りそして次の3つの指定子に対する情報を選
択するマルチプレクサ106が設けられている。選択す
べき位置は、完了する指定子の数(レジスタ+07によ
って指示される)によって制御される。 現在OPコードにおけるrspec  countJ即
ち指定子の数は、デコード論理回路105から3ビツト
の2進減算器108へ送られ、この減算器は、完了する
指定子の数を5pec  countから減算し、デコ
ードされる残りの指定子の数を決定する。デコードされ
る残りの指定子の数は、比較器109において、実際に
デコードされた指定子の数Nと比較され、現在命令に対
する全ての指定子が現在サイクルの終りまでにデコード
されるかどうかを判断する。然し乍ら、最後の指定子が
拡張即時モードを有する場合には、比較器109は、た
とえ拡張即時指定子が部分的にデコードされただけであ
ってもアクティブな信号をアサートする。拡張即時モー
ドは、「シフトOP」信号を禁止するための信号を発生
する拡張即時検出器110によって検出される。この禁
止信号は、アンドゲート111において比較器109か
らの出力と合成され、これにより発生される信号は、[
シフトOPJ信号をアサートすると共に、ダブルバイト
フラグをクリアする。レジスタ107が次のサイクルの
始めに完了する指定子の適切な数を指示するように、そ
のデータ入力は3ビット2進加算器113の出力を受け
取り、該加算器は、レジスタ+07のデータ出力を受け
取って、それを現在サイクル中に実際にデコードされた
指定子の数と合成する。 現在サイクル中に要求に対する指定子の数を決定するた
めに、命令デコーダ20は、要求論理回路114を含ん
でおり、この論理回路は、次の3つの指定子の特性をマ
ルチプレクサ106から受け取ると共に、モードデコー
ダ115からも情報を受け取り、そしてこのデコーダは
、命令バッファのオペレーションコードに続く最初の4
バイトのモードをデコードする。モードデコーダは、第
5図に示されたテーブルに基づいて命令デコーダのバイ
トlないし4の簡単なデコードを実行し、バイトエない
し4の各々がレジスタ指定子であるか短いリテラルの指
定子であるかインデックスレジスタであるかコンプレッ
クス指定子であるか絶対アドレスモードのコンプレック
ス指定子(即ち、バイトが16進数で9Fの値を有する
)であるか或いは即時モードのコンプレックス指定子(
即ち、各バイトが16進数で8Fの値を有する)である
かを指示する各2進出力を発生する。又、モードデコー
ダ115は、バイト1ないし4のシーケンスを4つの主
たるケースの特定の1つに属するものとして認識する。 これらのケースは第21図に示されており、これを参照
して以下に説明する。 現在サイクル中におそらくデコードされる指定子の数を
決定するのに加えて、要求論理回路は、命令バッファの
最初の3バイトが指定子モードの許容できるシーケンス
を表わしているかどうかを判断する。このシーケンスが
許容できない場合には、要求論理回路がアドレス欠陥信
号を発生し、この信号は、オアゲートl16において、
パリティエラー信号のような他の欠陥信号と合成され、
命令デコーダをストールする。オアゲートの出力は、フ
リップ−フロップ117へ送られ、デコーダ欠陥信号が
発生される。この信号は、実行ユニットによって欠陥が
確認されたときに現在プログラムの実行を遮断すること
ができる。デコーダは、フリップ−フロップ117がR
ESTART信号によってクリアされるまでこのフリッ
プ−フロップによってストールされたままとなる。別の
オアゲート118は、デコーダ欠陥信号をオアゲート1
16の出力及びオペランドユニット21からのストール
信号(OPU  5TALL)と合成し、命令デコーダ
をストールするための信号を発生する。オアゲート11
6の出力及びデコーダ欠陥信号はアンドゲート119を
禁止するのに用いられ、アンドゲート119は命令が完
全にデコードされたかどうかを決定する。アンドゲート
119の出力はレジスタ120にラッチされ、新たな有
効フォークアドレスの送信を指示する信号をフォーク待
ち行列(第1図の23)へ供給し、これは命令発生ユニ
ット及びマイクロコード実行ユニット(第1図の25及
び28)へ送られる。 要求論理回路114は、例えば、命令バッファにおいて
レジスタモード、短いリテラルモード又はインデックス
モードを有するバイトが直後に続くインデックスモード
を有するバイトを検出したときに、アドレシング欠陥信
号を発生する。換言下れば、アドレシング欠陥は、イン
デックスモードを有するバイトの後にコンプレックス指
定子が続かないときに発生される。又、デコードされる
べき指定子が「書き込み」アクセス形式を有しているが
指定子が短いリテラルモードも有するときにもアドレッ
シング欠陥が生じる。 要求論理回路は、デコードされている命令のアーキテク
チャに関する情報をエンコードし、次の3つの指定子の
特性と、命令デコーダにおけるバイトlないし3の考え
られるモードとにコンプレックスな仕方で依存する所定
のデコードケースを選択する。又、要求論理回路114
は、要求される指定子の数を、残りの指定子の数が3未
満であるときに必要とされる指定子の数に制限し、更に
、デコーダストールがあるときにゼロ指定子を選択する
。必要とされる指定子の数は、残りの指定子の数から2
つのオアゲート121.122によって得られる。又、
要求論理回路は、アドレッシング欠陥があるときにゼロ
指定子も要求する。 添付資料■には、VAX命令をデコードするための要求
論理の真理値表が示されている。この表は、次の欄、即
ちN(必要な指定子の数);SF3、SF3.SPI 
 (上記したビベイ及びエフホース二進の第371頁に
掲載され、インプライド読み取り及びインプライド書き
込み指定子を更に含む命令に対する次の3つの指定子の
アクセス形式);R4、S4、I4、R3、S3、I3
、R2、Sl、I2、R1,Sl、It  (命令バッ
ファにおける各バイトlないし4がレジスタモードを有
するか短いリテラルモードを有するかインデックスモー
ドを有するかを示す);REQ。 (要求すべきケース);及びRAF(アドレッシング欠
陥を指示する)を含んでいる。 デコードすべき指定子の初期数(N′)及びデコードす
べき指定子バイトの初期数(SC″)は、モード情報、
IRCCYCLE信号、GP及びSLストール信号、命
令バッファからのバイト及び有効フラグ、そして次の3
つの指定子のデータ形式によって決定される。シフトカ
ウント論理回路は、種々のケースに対する多数の論理ツ
リーで構成される。これらのケースは、分岐バイト命令
(RIBB、R2BB、R3BB)又は分岐ワード命令
(RI BW、R2BW、R3BW)に対して1個、2
個又は3個の指定子を要求するケースを含む。シフトカ
ウント論理回路は、更に、インプライド指定子(R11
)を有する命令の1つの指定子を要求すると共に、イン
プライド指定子(R2I)を有する命令に対する2つの
指定子を要求するケースを含む。更に、シフトカウント
論理回路は、分岐変位でもインプライド指定子でもない
lから3までの指定子を要求する5つのケースも含む。 これらのケースは、1つの指定子を要求する単一ケース
(R1)と、2つの指定子を要求する2つのケース(R
2、R2R)と、3つの指定子を要求する2つのケース
(R3、R3XR)とを含む。 R2Rツリーは、第1バイトがレジスタ指定子でも短い
リテラルでもなく且つ第2指定子が短いリテラルであっ
てはならないときにのみ要求される。この特殊なケース
は、次のサイクル中に短いリテラルが第1バイトにおい
て現われるときに要求論理回路がアドレス欠陥信号(R
AF)を発生できるようにするために設けられている。 換言すれば、要求論理回路は、2つの指定子が必要とさ
れそして第2の指定子が書き込み又は変更アクセス形式
を有するときにR2Rツリーを選択する。 これは、第1バイトのモードのみを探索するアドレス欠
陥信号を発生する要求論理を許すので、要求論理を簡単
化する。簡単な形態においては、R3X Rツリーは、
最後の指定子がレジスタであるときにのみ3つの指定子
をデコードする。3つの指定子が必要とされるときには
、要求論理回路は、最初の2つのバイトがレジスタであ
るか又は短いリテラル指定子であるときにのみR3ツリ
ーを要求し、さもなくば、R3XRツリーを選択する。 3つの論理ツリーの各々は、デコードされた初期数の指
定子(N′)と、デコードされた指定子バイトのシフト
カウント(SC’ )とを発生する。要求論理回路11
.4は、マルチプレクサ124及び125が要求された
論理ツリーからのN′及びSC′ を選択するように動
作させる。N′は、命令内読み取り競合が生じるかどう
かを判断するために命令内読み取り競合検出器126に
よって使用される。もしそうならば、信号TRCがアサ
ートされる。IRC信号及びX8F信号は、第3のマル
チプレクサ126が指定子の数及び実際にデコードされ
た指定子バイトを指示するN及びSCを選択するように
動作させる。拡張された即時信号X8Fは、ある優先順
位を有し、この場合、拡張即時データの4つのバイトを
デコードするためにNがゼロであって且つSCがゼロ又
は4のいずれかである。IRC信号は、第2の優先順位
を有し、この場合、N及びSCは、せいぜい1つの指定
子をデコードするために論理ツリーから選択される。換
言すれば、命令内読み取り競合が検出されたときに、シ
ステムクロックの各サイクルごとに1つの指定子しかデ
コードされない。最初に選択されたツリーがバイト分岐
命令に対して3つの指定子を要求する場合、例えば、命
令内読み取り競合が検出されたときには、R1ツリーが
選択され、次いで、R1ツリーが再び選択され、そして
最終的に、R3BBツリーに代わってRIBBツリーが
選択される。 シフタ (第6図の21)によりシフトされるべき実際
のバイト数は、加算器127において指定子バイトシフ
トカウントSCに1を選択的に加えることにより得られ
る。 デコード手順における最終的な段階は、出力選択及び有
効性論理回路128によって実行され、これは、現在サ
イクルにおいてデコードされている指定子に対するデー
タの命令バッファ内の位置を決定する。TRバスの場合
、第1ソースオペランドに対する情報は、命令バッファ
のバイトlから得られる。マルチプレクサ+29は、命
令バッファから第2ソース指定子に対する情報を得そし
て同様にマルチプレクサ130は行き先指定子に対する
情報を得る。同様に、マルチプレクサ131は、命令バ
ッファから短いリテラルデータを得る。汎用指定子に対
する情報は、命令バッファ内の次々のバイトからシフタ
132によって得られる。インプライド指定子を予め処
理するために。 最終的なマルチプレクサ133は、スタックポインタ(
S P)をペースレジスタとして選択し、更に、インプ
ライド読み取り又はインプライド書き込みに対して各々
8のモード又は9のモードを選択する。 第13図は、RIBBツリーに対するシフトカウント論
理回路の回路図である。この論理ツリーは、例えば、分
岐命令(VAXアーキテクチャにおけるBRB命令のよ
うな)のバイト変位をデコードするために選択される。 ゲート141は、命令デコーダにおけるバイト1が有効
であるときにN′及びSC′の両方が1に等しく、さも
なくば、N′及びSC′の両方が0であるよう確保する
。命令バッファのバイトlは、その有効データフラグ(
I VALrD[I])がセットされそして汎用ユニッ
ト(第6図の32)がストールされないときに有効であ
る。 第14図は、RIBW論理ツリーの回路図である。この
論理ツリーは、分岐命令(VAXアーキテクチャにおけ
るBRW命令のような)のワード変位をデコードするた
めに選択される。命令バッファのバイト2が有効である
場合、N′はlでありそしてSC′は2であり、さもな
くば、N′及びSC′の両方が0である。命令バッファ
のバイト2の有効性は、有効データフラグN  VAL
ID[2])及びGP  5TALL信号に基づいてゲ
ート142によって決定される。 第15図は、1つのインプライド指定子をデコードする
ためのRIIツリーに対するシフトカウント論理を示す
回路図である。このツリーは、例えば、サブルーチン命
令からの復帰をデコードするときに選択される。シフト
カウントがゼロである理由は、デコードすべき明確な指
定子が命令バッファにないからである。デコードされる
指定子の数N′は、汎用ユニットがストールされた場合
にOであり、さもなくば、N′はlである。それ故、R
11論理ツリーは、GP  5TALL信号を反転する
単一のインバータ143を含む。 第16図は、R2BB論理ツリーの回路図であり、これ
は、デコードすべき第2の指定子が分岐命令に対するバ
イト変位であるときに選択される。この論理ツリーが選
択されると、バイトlはレジスタ又は短いリテラルでな
ければならず、そしてバイト2は変位である。バイトl
が短いリテラルであって且つ短いリテラルのストールが
ある場合にはこれらのバイトをいずれもデコードするこ
とができない。さもなくば、バイト2が有効で且つスト
ールがない場合に両方のバイトをデコードすることがで
きる。汎用ユニットのみがストールされそして第1バイ
トが有効である場合に、第1バイトのみをデコードする
ことができる。これらの判断は、2つのゲート144及
び145と、マルチプレクサ146とによって行なわれ
る。 さて、第17図には、R2BW論理ツリーの回路図が示
されており、これは、2つの指定子をデコードするのに
用いられ、その第1はレジスタ指定子でありそしてその
第2はワード変位である。 3つの全てのバイトは、第3バイトが有効で且つ汎用ユ
ニットがストールされないことがゲート147によって
検出された場合にデコードされる。 さもなくば、レジスタ指定子は、それが有効である場合
にデコードすることができる。オアゲート148及びマ
ルチプレクサ149は、これらの場合にN′及びSC′
の正い値を与えるために設けられている。 第18図は、R21論理ツリーの回路図である。このツ
リーは、第1バイトがレジスタであるか又は短いリテラ
ル指定子であるときに選択され、第2の指定子がインブ
ライされる。N′及びSC′は、第1バイトをデコード
できないことがゲート150及び+51によって検出さ
れた場合に両方ともOとなる。さもなくば、SC′はl
であり、そしてN′は少なくともlである。インブライ
された指定子を汎用ユニットに送れるとき、換言すれば
、GP  5TALL信号がアサートされないときにN
′が2となる。これらの場合のNの正い値はゲート15
2及び153によって決定される。 第19図は、R3BB論理ツリーの回路図であり、これ
は、バイトlがレジスタ又は短いリテラルの指定子であ
番ハバイト2がレジスタ指定子でありそしてバイト3が
バイト変位であるときに使用される。全ての指定子は長
さが1バイトであるから、N′はSC′に等しい。第3
バイトが有効で且つ汎用ユニットがストールされない場
合にのみN′が3に等しくなる。さもなくば、第2バイ
トが有効であって、且つバイトlが短いリテラルで拡張
ユニット(第6図の31)がストールされないことが真
でない場合に、N′が2に等しくなる。これらの場合に
N′及びSC′の値は、ゲート154.155.156
.157及び158によって決定される。 第20図には、R3BW論理ツリーの回路図が示されて
おり、これは、バイトlがレジスタ又は短いリテラルの
指定子であり、バイト2がレジスタでありそしてバイト
3及び4がワード変位であるときに使用される。これら
の状態にもとでは。 バイトlが短いリテラルで且つ拡張ユニットがストール
されるか、或いはバイトIが無効である場合そしてその
場合にのみ、N′及びSC′がゼロとなる。(バイトl
が無効である場合には、バイト2及びバイト4もそうで
あることを想起されたい。)バイトl、2及び4が全て
有効でありそしてストールがない場合にN′は3に等し
くそしてSC′は4に等しい。さもなくば、バイト4が
無効であるか或いは汎用ユニットがストールされた場合
、N′は2に等しく且つSC′は2に等しく;バイト2
が有効である場合にはN′及びSC′の両方が1に等し
い。これらの場合のN′及びSC′の値は、ゲート15
9.160,161.162.163及び164によっ
て決定される。 要求論理回路(第12図の114)及び拡張即時検出器
(第12図の110)は、分岐変位又は拡張即時データ
が命令バッファに現われる場合を処理するものである。 これらの場合はさておき、バイトlで始まる命令バッフ
ァの3つの指定子の正当なシーケンスは、せいぜい1つ
の指定子がコンプレックス指定子である場合に、第21
図に示す4つの主たるケースの1つに入る。説明上、ロ
ングワード変位を有するコンプレックス指定子が示され
ている。 4つの主たるケースが2進サブスクリプトで示されてお
り、これらサブスクリプトは、モードデコーダ(第12
図の115)によって発生されたCASE選択信号の2
進値を表すものである。 CASE、、においては、コンプレックス指定子のペー
スレジスタはバイト1で始まり、CASE。 においてはコンプレックス指定子のペースレジスタがバ
イト2で始まり、CA、SE、、においてはコンプレッ
クス指定子のペースレジスタがバイト3で始まり、そし
てCASE、、においてはコンプレックス指定子のペー
スレジスタがバイト4で始まる。しかしながら、3つ全
部の指定子はレジスタ指定子であるか、或いは1つの指
定子が短いリテラルでそして他の指定子がレジスタ指定
子であってこれがCA S E、、に入ることが考えら
れる。いずれの場合においても、第3の指定子が短いリ
テラルであるときには3つの指定子を同時にデコードで
きないことに注意されたい。3つの指定子が同時にデコ
ードされる場合には、第3の指定子が行き先指定子であ
る。又、lサイクル当たりせいぜい1つの短いリテラル
と、せいぜい1つのコンプレックス指定子をデコードで
きるだけである。 というのは、いずれの短いリテラル指定子も拡張ユニッ
トによって処理しなければならず、そしていずれのコン
プレックス指定子も汎用ユニットによって処理しなけれ
ばならず、これらユニットの各々はこのような指定子を
1サイクル当たり1つしか処理できないからである。 第21図に示す4つの主たるケースは、バイト1.2及
び3が短いリテラルモードを有するか。 レジスタモードを有するかインデックスモードを有する
かによって区別できる。これは、第22図の真理値表に
よって示されている。CA S E、、においては、バ
イトlは短いリテラル又はレジスタモードを有し、バイ
ト2は短いリテラル、レジスタ又はインデックスモード
を有し、そしてバイト3はインデックスモードを持たな
い。CASE。 においては、バイト1は短いリテラル、レジスタ又はイ
ンデックスモードを有し、バイト2は短いリテラルモー
ドもレジスタモードもインデックスモードももたず、そ
してバイト3はいずれかのモードを有する。CASE、
、においては、バイト1は短いリテラル又はレジスタモ
ードを有し5バイト2は短いリテラル又はレジスタモー
ドを有しそしてバイト3はインデックスモードを有する
。CASE、、においては、バイトlは短いリテラルモ
ードもレジスタモードもインデックスモードももたず、
そしてバイト2及び3はいずれかのモードをもつことが
できる。 第23図は、4つのケースをデコードするための最適な
論理回路の回路図である。3人カッアゲート171は、
バイトlが短いリテラルモードもレジスタモードもイン
デックスモードももたないかどうかを判断する。もしそ
うであれば、オアゲート+72及び173はCASE、
  を指示する。 さもなければ、CASE[O]は、バイト2が短いリテ
ラルモードもレジスタモードもインデックスモードもも
たないことが3人カッアゲート174によって検出され
たときだけアサートされる。 又、[CASEI]は、バイト1がレジスタモード又は
短いリテラルモードをもつことがオアゲート175によ
って検出され、バイト2がレジスタモード又は短いリテ
ラルモードをもつことがオアゲート176によって検出
されそしてバイト3がインデックスモードをもつことが
3人カアンドゲート177によって検出されたときだけ
アサートされる。 コンプレックス指定子に続くレジスタ又は短いリテラル
指定子をデコードするためには、命令バッファの可変長
さレベルに対してデコードすることが必要である。これ
らのレベルは、デコード論理回路に後で現われる信号が
、その信号に関連した特定のレベルで識別できるように
、第21図に示されている。レベルlは、バイトlのベ
ースレジスタで始まるコンプレックス指定子のデコード
動作を指している。コンプレックス指定子の直後にある
短いリテラル又はレジスタ指定子のレベルは、コンプレ
ックス指定子のレベルに続くサフィックスAで示されて
いる。ときには、最後の指定子がレジスタ指定子である
ときにコンプレックス指定子に続く2つの指定子をデコ
ードすることができる。最後のレベルは、コンプレック
ス指定子のレベルに続くサフィックスBで指示される。 例えば、第21図に示すように、CASE、、において
は、短いリテラル又はレジスタ指定子は、バイトlで識
別されたペースレジスタを有するコンプレックス指定子
の長さに基づいてバイト2ないし6のいずれかで生じる
レベルIAにおいてデコードすることができる。同様に
、レジスタ指定子は、コンプレックス指定子の長さに基
づいてバイト3ないし7で生じるレベルIBにおいてデ
コードすることができる。 CA S E、、においては、コンプレックス指定子が
レベル2にデコードされる。コンプレックス指定子の長
さは指定子のモードによって決定され、指定子が即時モ
ードを有する場合には、デコードされている命令につい
ての指定子のシーケンスにおけるコンプレックス指定子
の位置に関連したデータ形式に基づいたものとなる。 即時モードを有するコンプレックス指定子に続く指定子
をデコードする際に特にやっかいな問題は、その命令に
ついての指定子のシーケンスにおけるコンプレックス指
定子の位置が、ペースレジスタを指定するバイトの前の
バイトにおいてインデックスレジスタが指定されるかど
うかによって決まることである。例えば、CASE、、
の場合に、バイトIがインデックスモードをもたない場
合には、バイト2で始まるコンプレックス指定子に対す
るデータ形式がシフタ106によって選択された第2の
データ形式であるが、第1バイトがインデックスモード
を有する場合には、バイト2で識別されたペースレジス
タを有するコンプレックス指定子に対するデータ形式が
シフタで選択された第1データ形式となる。それ故、C
A S E、。 及びCASE、、におけるコンプレックス指定子の長さ
は、ベース行き先にの前にあるインデックス行き先があ
るかどうかによって決まる。それ故、デコード論理回路
は、レベル2.2A又は2Bへとデコードするためにイ
ンデックス行き先がベース行き先の前にくるかどうかを
しばしば区別しなければならない。 インデックスレジスタがベースの前に有るときには、こ
れらのレベルが2■、21A及び2IBとして識別され
る。コンプレックス指定子が絶対又は即時のモードをも
たないときには、2■、2IA及び21Bレベルにおけ
る指定子に関する情報が2.2A及び2Bレベルにおけ
る指定子に対する情報と同じになる。 CASE、、においては、バイト3は、シーケンスにお
いて第3指定子であるか又はコンプレックス指定子に対
するベース行き先となるレジスタ指定子を含んでもよく
、そしてコンプレックス指定子は、バイト2がインデッ
クスモードをもたない場合には第3指定子であり、或い
はバイト2がインデックスモードをもつ場合には第2指
定子である。それ故、バイト3はレベル3へとデコード
されるときはレジスタ指定子となるが、レベル3■へと
デコードされるときにはレジスタ指定子とならない。又
、31Aレベルにおけるレジスタ指定子は、バイト3で
指定されたベースを有するコンプレックス指定子に続い
てデコードすることができる。 CA S E、、において、バイト3は常にインデック
スモードを有しているので、レベル4
【へのデコードは
、第12図のシフタ106によって選択された第3デー
タ形式を有するコンプレックス指定子をデコードするよ
うに生じなければならない。 要約すれば、4つの主たるケースに対する各コンプレッ
クス指定子の位置は、命令バッファにおけるそのペース
レジスタ行き先のバイト位置を指示する数によって識別
される。コンプレックス指定子にインデックスレジスタ
行き先が組み合わされる場合にはこの数の後にサフィッ
クス■が続く。短いリテラル又はレジスタ指定子がコン
プレックス指定子の直後に同時にデコードされることが
考えIうれる場合には、その位置が手前のコンプレック
ス指定子のレベル及びサフィックス八によって識別され
る。別の指定子がコンプレックス指定子の後におそらく
デコードできる場合には、その位置がその手前のベース
指定子のレベル及びサフィックスBによって識別される
。 第24図には、第21図に示された種々のデコードレベ
ルと、4つの主たるケースとについて。 最初にデコードされている指定子の数(N′)をいかに
決定するかを示す真理値表が示されている。 CA S E、、及びCASE、、は、更に、コンプレ
ックス指定子に対してインデックスレジスタが指定され
るかどうかという2つのサブケースに細分化される。指
定子の数が1より大きい特定のレベルヘデコードするた
めには、この表で許されるより深いレベルへデコードで
きてはならない。換言すれば、主たるケースを決定する
のに加えてそしてサブケースにインデックスレジスタが
あるかどうかを考慮して、命令デコーダの論理回路は、
必要とされる数までのできるだけ多くの指定子(例えば
、命令バッファにおけるデータの有効性に基づく)デコ
ードし、上記必要な数は、適用できるケース及びサブケ
ースに対する第24図の最も深い許容レベルに対応する
。又、インデックスレジスタを指定するバイトは、それ
に続くコンプレックス指定子をさらにデコードできる場
合にのみデコードされることが明らかである。 第25図は、命令バッファにインプライド指定子及び分
岐変位が存在しない場合に3つの指定子の一般的なケー
スに対して初期N′及びSCo決定するための論理ツリ
ーの回路図である。CASEは、マルチプレクサ181
の選択人力を制御するのに用いられる。更に、各々の場
合に、各マルチプレクサ182.183.184.18
5が設けられており、その入力は、第24図に示すよう
にデコードに許容された各レベルに対応するN′及びS
Coの値を受け入れる。又、マルチプレクサ+82ない
し185は、N′がゼロに等しく且つSCoがゼロに等
しい場合のゼロ入力を有している。 CASE、、及びCA S E、、については、各マル
チプレクサ182及び+83は、8個の人力と、命令バ
ッファにおけるバイト2及びバイトlがインデックスモ
ードを有しているかどうかを各々指示するINDEX 
[2]及びINDEX [1]によって制御される最上
位選択人力S2とを有している。それ故、マルチプレク
サ181に組み合わされるマルチプレクサ182ないし
185は、全部で6個の異なったケースと、各ケースに
対して4つの考えられる組み合わせとをデコードする。 コンプレックス指定子が即時モードをもたない場合には
、上記4つの組み合わせがデコードされているOll、
2又は3個の指定子に対応する。しかしながら、一般に
、コンプレックス指定子の後のレベルでデコードされて
いる指定子の数は、コンプレックス指定子が拡張即時モ
ードを有しているかどうかによって決まる。これは、マ
ルチプレクサ182ないし185の選択入力So及び$
1を操作するエンコード論理回路を簡単化するために行
なわれる。 コンプレックス指定子が拡張即時モードを(fすること
が分かった場合には、エンコード論理回路は、コンプレ
ックス指定子の後のレベルへデコードできるとまだ考え
ているが、N′ をデコードするための指定子の数はコ
ンプレックス指定子の指定子位置に等しくセットされる
。同様に、コンプレックス指定子後のレベルに対するシ
フトカウントSC′は、コンプレックス指定子に対する
シフトカウントの値にセットされる。それ故、たとえエ
ンコード論理回路がコンプレックス指定子後のレベルを
デコードのために選択したとしても、これらの深いレベ
ルに対するN″及びSC′の値は、コンプレックス指定
子が拡張即時モードを有した後にデコードが許されない
場合と同じである。 もちろん、コンプレックス指定子が拡張即時モードを有
する場合には、より深いレベルのデータが拡張即時デー
タを表わし、たとえモードデコーダ(第12図の115
)が拡張即時データが短いリテラルであるかレジスタ指
定子であると考えていたとしてもレジスタ又は短いリテ
ラル指定子としてデコードすることができない。前記し
たように、拡張即時データ及び分岐変位は、短いリテラ
ル又はレジスタ指定子のようにみえる。というのは、分
岐変位及び拡張即時データはそれらがとる値に限定がな
いからである。 第25図において、種々のケース及び組み合わせのシフ
トカウントには、指示されたレベルに現われる指定子に
ついての情報を示すためにGPSというプリフィックス
と、指示されたレベルに現われるレジスタ又は短いリテ
ラル指定子についての士青報を識別するためのR3I、
というプリフィックスと、指示されたレベルに現われる
レジスタ指定子についての情報を示すためのREGとい
うプリフィックスとが付けられる。 デコード動作が許されるレベルを決定するために、当該
有効データが各エンコーダ+86.187.188及び
189に送られ、これは、各マルチプレクサの選択人力
Sl及びSOを制御する。 CA S E、、及びCASE、、については、各イン
デックスモード信号INDEX [2]又はI N D
 EX [1]によって制御される各マルチプレクサ1
90及びマルチプレクサ191は、第24図の表に示さ
れたサブケースに対する3つの各有効信号を選択する。 第26図には、エンコーダ186の回路図が示されてい
る。入力po、pi及びP2が全てアクティブである場
合には、選択人力Sl及びSOの両方がアクティブとな
る。3人力アンドゲート192は、3つの人力全部が一
致することを検出し、オアゲート193及び+94はア
クティブとなって選択信号をアサートする。入力PO及
びPlが両方ともアサートされるがP2がインアクティ
ブである場合には、2人力アンドゲート195がオアゲ
ート194のみをアクティブにし、出力Slのみがアサ
ートされるようにする。POがアサートされるがPIが
アサートされない場合には、ゲート196がオアゲート
193を作動しモしてオアゲート194がインアクティ
ブとなって、出力SOのみがアサートされるようにする
。3つの入力PO1P1及びP2が全てインアクティブ
である場合には、出力Sl及びSOのいずれもアサート
されない。 エンコーダ186ないし189と、マルチプレクサ19
0及び191とによる遅延をなくすために、エンコード
、倫理回路はマルチプレクサ182ないし1.85に組
み込まれていなければならない。これは、CA S E
、、について第27図に示されている。第25図のマル
チプレクサ+82に対応する極性決めマルチプレクサ1
82″は、6個のゲート+97.198,199.20
0.201及び202を備えており、これらゲートの出
力はオアゲート203によって加算される。第27図の
各ゲートは、各々の出力信号N′及びSC。 の各ビットに対するゲートに対応し、多くの場合に、こ
れらのゲートは、2進定数O又は1である2進入力を有
するので排除される。 第25図の論理を実施するためには、種々のデコードレ
ベルに対して第25図に定められた有効信号、数及びシ
フトカウントのような指定子情報を決定する論理回路を
設けることが必要である。 コンプレックス指定fの後のレベルでデコードされるコ
ンプレックス指定子又は指定子の指定子情報は、コンプ
レックス指定子が絶対アドレスモードを有するか即時ア
ドレスモードを存するかによって決まる。指定子情報を
定めるために、絶対モード及び即時モードは、指定子情
報に対する記号表示後のアポストロフィによって指示さ
れる特殊なケースとして処理される。例えば、第28図
には、通常のケースにデコードされる数指定子が示され
ており、即ち、各コンプレックス指定子が絶対又は即時
アドレスモードをもたない場合が示されている。この場
合、指定子の数は、レベルlΔ及びレベル21Aに2の
値を有し、レベルIB、2A、21B及び31Aに3の
値を有する。 第29図ないし第38図には、池のレベル及び組み合わ
せに対するシフトカウント及び指定子の数を定める真理
値表が示されている。第29図ないし第32図は、各コ
ンプレックス指定子が即時モードも絶対モードももたな
いときの通常のケースに対する情報を示し、そして第3
3図ないし第38図は、各コンプレックス指定子が即時
モード又は絶対モードを有する場合の真理値表を示して
いる。良く知られているように、真理値表を実施するた
めの論理回路は、2つのゲートレベル、例えば、アンド
機能を実行するための第ルベルと、オア機能を実行する
ための第2レベルとで構成される。 第39図ないし第41図には、第25図の優先順位論理
回路に有効信号を与えるために第42図の論理回路に用
いられる有効信号を決定するための論理が示されている
。信号REG  VAI、ID [i]は、命令バッフ
ァのデータの第1番目のバイトが有効レジスタ指定子を
表わすかどうかを示している。信号SL  VALrD
[i]は、命令バッファのデータの第1番目のバイトが
、実行ユニット(第6図の30)のストールによってデ
コードが禁止されない有効な短いリテラル指定子を表わ
すかどうかを指示する。信号R3LVALrD[i]は
、命令バッファのデータの第1番目のバイトが、実行ユ
ニットのストールによってデコードが禁止されない有効
なレジスタ又は短いリテラル指定子を表わすかどうかを
指示する。■が1に等しい場合は、特殊なケースとして
処理され、第39図の論理で信号が決定される。命令レ
ジスタの第1データバイトは、それがレジスタモードを
有するとき、それが有効データバイトであるとき、そし
て汎用ユニットがストールされたときの命令内読み取り
競合サイクル中にデコーダが動作しない限り、デコード
することができる。前記したように、命令内読み取り競
合が検出されたときには、レジスタ指定子が転送ユニッ
ト(第6図の30)ではなくて汎用ユニット(第6図の
32)によって処理される。これらの論理状態は、ゲー
ト206及び207によって決定される。第1バイトが
短いリテラルモードを有する場合には、それに対応する
有効データフラグ(I  VALID[l])がアクテ
ィブでありそして拡張ユニットがストールされない場合
に有効であると考えられる。これらの状態は、ゲート2
08によって検出される。オアゲート209は、第1バ
イトが有効レジスタ指定子であると考えられるか或いは
有効な短いリテラル指定子であると考えられるかを指示
する信号(R3LI  VALID)を発生する。 第40図は、命令バッファのバイト2が有効レジスタと
考えられるか短いリテラル指定子と考えられるかを判断
する回路の回路図である。これは、バイト2がレジスタ
モードを有しそしてバイト2の有効データフラグがセッ
トされたときにイJ効レジスタ指定子であると考えられ
る。これは、ゲート211によって検出される。命令バ
ッファのバイト2は、その有効データフラグがセットさ
れ、それが短いリテラルモードを有し、バイト1が短い
リテラルモードをもたずそして拡張ユニットがストール
されない場合に有効な短いリテラル指定子と考えられる
。これらの状態は、ゲート212によって検出される。 オアゲート213は。 命令バッファのバイト2が有効なレジスタ指定子である
か有効な短いリテラル指定子であるかを判断する。 第41図は、命令バッファのバイト3ないし8が有効レ
ジスタと考えられるか或いは短いリテラル指定子と考え
られるかを判断するための論理回路の回路図である。(
これらの信号は、更に、第25図の論理ツリーに使用さ
れる前に第42図の回路によって定量化される。)命令
バッファのバイトiは、それがレジスタモードを有しそ
してそのバイトに対応する有効データフラグがセットさ
れた場合に有効レジスタフラグとなる。これは、ゲート
214によって検出される。命令バッファにおけるバイ
トiは、それに対応する有効データフラグがセットされ
、それが短いリテラルモードを有し、拡張ユニットがス
トールされず、そしてバイト1もバイト2も有効な短い
リテラル指定子である限り有効な短いリテラル指定子で
あると考えられる。換言すれば、命令バッファのバイト
iは、現在サイクル中にバイト1をデコードできない場
合には、有効な短いリテラル指定子と考えることができ
ない。これらの状態は、ゲート2+5及び216によっ
て検出される。オアゲート217は、命令バッファのバ
イトlを有効レジスタ指定子と考えられるか有効な短い
リテラル指定fと考えられるを判断する。 第42図には、コンプレックス指定Y・が有効と考えら
れるかどうか判断すると共に、コンプレックス指定子に
続くバイトが有効レジスタと考えられるか短いリテラル
指定子と考えられるかを判断する。一般に、コンプレッ
クス指定子は、汎用ユニットがストールされず且つコン
プレックス指定子の最後のバイトがそれに対応する有効
データフラグをセットしている場合に有効であると考え
られる。これに対する例外として、レベル3の有効コン
プレックス指定子を指示する信号は、バイト3が有効レ
ジスタ指定子であるかどうかも指示する。これは、バイ
ト3がレジスタ指定子であるときにCA S E、、を
デコードするために行なわれる。特殊なケースはオアゲ
ート221によって考慮される。さもなくば、セットさ
れている対応有効データフラグと、ストールされている
汎用ユニットの不存在との一致が各ゲート222.22
3.224.225.226によって検出される。コン
プレックス指定子における最後のバイトのための有効状
態を決定するために、コンプレックス指定子に対するシ
フトカウント(GPSi  SC)がマルチプレクサ2
27の選択入力に送られ、このマルチプレクサは、ゲー
ト222.223.221.225,226の各1つを
選択する。 同様の形態において、コンプレックス指定子のシフトカ
ウントは、シフタとして働くマルチプレクサ228の選
択入力へ送られ、コンプレックス指定子に続くバイト位
置に対応する第41図からのレジスタ有効又は短いリテ
ラル有効信号と、コンプレックス指定子に続く第2バイ
トに対応するレジスタ有効信号とを選択する。又、マル
チプレクサ228は、コンプレックス指定子に続くバイ
トに含まれた短いリテラルデータ及びレジスタアドレス
を選択して、レジスタ又は短いリテラル指定子について
のデータを供給し、これらは、最終的に、以下で述べる
ように、第54図、第56図及び第58図に示す回路に
よってTR及びx■、バスに送られる。レジスタ及び短
いリテラルデータに対するフォーマットは第53図に示
されており、そしてレジスタアドレスのフォーマットは
第55図に示されている。 第43図は、指定子の初期数N′及びシフトカウントS
C″ を判断して単一のサイクル中に3つまでの指定子
(即時又は絶対アドレスモードを有するコンプレックス
指定子を含む)を同時にデコードするのに使用できるシ
フトカウント論理回路の回路図である。論理回路231
は、第28図ないし第32図及び第39図ないし第42
図の論理を組み込んでいて通常のケースに指定Y−情報
を供給する。個別の論理回路232は、第33図ないし
第42図に基づいて即時又は絶対的なケースについての
指定子情報を決定する。第25図の優先順位論理回路及
びマルチプレクサは二重に設けられていて、コンプレッ
クス指定子が即時アドレスモードも絶対アドレスモード
ももたないような通常の状態に対して4つの主たるケー
スの各々についてN′及びSC′ を決定するための論
理回路233を形成すると共に、コンプレックス指定子
が即時又は絶対アドレスモードを有するとすれば、4つ
の主たるケースに対してN′及びSC′を決定するため
の論理回路234を形成する。マルチプレクサ235は
、8個の考えられるケースの特定の1つを選択するため
に設けられている。主たるケースは前記と同様に選択さ
れるが、論理回路233又は234からの出力の選択は
、特定の主たるケースにおけるコンプレックス指定子が
即時又は絶対アドレスモードを有するかどうかを判断す
る各オアゲート236.237.238.239によっ
て決定される。 VAXアーキテクチャの欠点は、即時又は絶対アドレス
モードを有するコンプレックス指定子に対する指定子情
報がコンプレックス指定子のデータ形式の関数であるこ
とである。データ形式は、デコード論理回路及びマルチ
プレクサ(第12図の105及び106)による遅延が
モードデコーダ(第12図の115)による遅延よりも
相当に大きいために、第43図のシフトカウント論理回
路により受け取られる情報の最後の部分である。 それ故、第43図のシフトカラン]・論理回路を通るい
わゆる臨界路は、データ形式情報の単一経路によって決
定される。この臨界路は、第44図に示されている。G
 P S ’ 指定子情報論理回路232においては、
データ形式がコンプレックス指定子G P S j ’
 に対するシフトカウントを決定し、これはマルチプレ
クサ又はシフタ227.228の制御入力へ送られ、3
つまでの有効信号Vを選択する。これらの信号は、優先
順位エンコーダ186.187.188又は189へ送
られ、そしてこれらのエンコーダは、4つの関数Fjの
特定の1つを選択してその結果Gjをイ1)るように各
マルチプレクサ182.183.184又は185を制
御する。第44図に示すように、絶対又は即時モードを
有するコンプレックス指定子に対する情報は、命令に対
する指定fのシーケンスにおけるコンプレックス指定子
の位置によって決まる。 マルチプレクサ(第12図の106)は、デコードされ
るべき次の3つの指定子に対するデータ形式を選択する
。第44図において、インデックスJは、シフタ(第1
2図の106)によりGPS’指定子情報論理回路23
2に送られた3つのデータ形式のうちの特定の1つを識
別する。このインデックスjは、コンプレックス指定子
に関連したインデックス指定子があるときに命令バッフ
ァにおけるコンプレックス指定子のペースレジスタ行き
先のバイト数とは異なるものである。 例えば、第33図ないし第35図と比較されたい。第3
3図の指定子情報は、インデックスレジスタが指定され
ないケースについてのものであり、そして第35図の指
定子情報は、インデックスレジスタが指定されたケース
についてのものである。第33図及び第35図の真理値
表は互いに同じものであるが、第33図においてはコン
プレックス指定子のモードが命令バッファのバイトlの
ビット4によって指示され、一方、第35図においては
、コンプレックス指定子のモードが命令バッファのバイ
ト2のビット4によって指示される。 第44図に示すように、即時又は絶対モードを有するコ
ンプレックス指定子の場合に指定子情報を決定するため
の論理回路は、インデックスレジスタが指定されるかど
うかに基づいてコンプレックス指定子のモードを最初に
決定することにより簡単化することができる。この選択
はマルチプレクサ233によって行なわれる。第33図
及び第35図の真理値表を更に検討すると、即時又は絶
対アドレスモードを有するコンプレックス指定子に対し
て異なった情報を生じるデータ形式の異なった組み合わ
せは4つしかないことが明らかである。これら4つの異
なった組み合わせは、コンプレックス指定子に続く変位
が、ペースレジスタ指定子に続く変位又は即時データの
バイトを1つ有するか、2つ有するか、4つ有するか又
はそれ以上有するかを決定する。これら4つの組み合わ
せは、第44図に示されたゲート234.235.23
6及び237によって検出することができる。 好ましくは、第43図の回路は、コンプレックス指定子
が即時モード又は絶対モードを有する場合に使用される
データ形式情報の臨界路を減少するために第45図に示
すように変更される。コンプレックス指定子が絶対アド
レスモードも即時アドレスモードももたない場合にN′
及びSC′を決定するために、第25図に対応する指定
子情報論理回路241及びツリー論理回路242が設け
られている。 第47図において以下に説明する指定子選択論理回路2
43は、デコードされるべき次の3つの指定子のいずれ
かが絶対アドレスモード又は即時アドレスモードな有す
るコンプレックス指定子であるかどうかを判断すると共
に、第1のこのような指定子を識別するために使用され
る。指定子選択論理回路はマルチプレクサ244を制御
し、このマルチプレクサは、絶対又は即時モードを有す
るコンプレックス指定子がない場合にツリー論理回路2
42からN′及びSC′を選択し、さもなくば、絶対又
は即時モードを有する第1のコンプレックス指定子に対
して決定されたN′及びSC′の値を選択する。例えば
、第45図に示すように、入力00は、絶対又は即時モ
ードを有する指定子がないときにN′及びSC′ を選
択し、六ツノO1は、第1指定子が絶対又は即時モード
を有すると仮定した場合に計算されたN′及びSC′を
選択し、入力10は、第2指定子が絶対又は即時モード
を有すると仮定した場合に計算されたN′及びSC′を
受け取り、そして入力11は、第3指定子が絶対又は即
時モードを有すると仮定した場合に計算されたN′及び
SC′ を選択する。 一連の3つの指定子における1つのコンプレックス指定
子の考えられる位置の各々については、コンプレックス
指定子に対してインデックスレジスタが指定されたかど
うかに拘りなくモード情報の4つの組み合わせの各々に
対して計算されたN′及びSC′の値を選択する各マル
チプレクサ245.246.247が設けられている。 第44図と第45図とを比較すると、マルチプレクサ及
びシフタ(227,228)の下位レベルの前方にエン
コード論理回路(186ないし189)を押し込むこと
により臨界路が減少されることが分かる。これは、第4
5図のマルチプレクサ245に対する指定子情報論理回
路の拡張である第46図に明確に示されている。GPS
’指定子情報論理回路249は、対応するケース及びサ
ブケースについて第25図の回路により受け取られた信
号に対応する有効化信号を受け取る多数のエンコーダ2
51ないし256を備えている。 指定子情報論理回路249には、第42図に示されたゲ
ート222ないし226に対応する各ゲート257ない
し261も示されている。エンコーダ251ないし25
6は各4人力マルチプレクサ262ないし267を制御
し、これらのマルチプレクサは、バイト、ワード又はロ
ングワード変位、或いは即時データがコンプレックス指
定子のベースに続く場合に、第33図及び第35図の真
理値表の値に各々対応するN及びSC値を選択する。 個別の2人カマルチブレクサ268,269は、拡張即
時モードに対するN及びSC値を選択する。 第45図の好ましい回路を使用することにより、臨界路
は、第44図に示されたゲート234ないし237を通
してのデータ形式情報の遅延と、第45図に示されたマ
ルチプレクサの2つのレベルとに減少されている。第4
4図のゲート234ないし237を通しての遅延は、第
44図のオアゲート234及び235の出力に対応する
エンコード形態でデータ形式情報を与えるようにデコー
ド論理回路(第12図の105)を使用しそしてこれら
2つのエンコードされたビットを各マルチプレクサ24
5.246.247の選択人力S及びS、に供給するこ
とにより排除することができる。 第47図には、第45図に既に示された指定子選択論理
回路243が示されている。第1指定子は、命令バッフ
ァのバイト1が絶対又は即時モードを有する場合、又は
バイトlがインデックスレジスタを指定し且つバイト2
が絶対モードを有する場合、或いはバイトlがインデッ
クスレジスタを指定し且つバイト2が即時モードを有す
る場合に絶対又は即時モードを有するものとして確認さ
れる。 バイト1がレジスタモードも短いリテラルモ−ドももた
ないことがゲート274によって検出された場合には、
第2の指定子が絶対モード又は即時モードを有するかど
うかは重要ではない。というのは、第1tflf定子が
無効であるか又はコンプレックスであるかのいずれかで
あり、それ故、第2のコンプレックス指定子がデコード
されないからである。さもなくば、バイト2が即時モー
ドを有し、バイト2がインデックスを指定し旦つバイト
3が絶対モードを有し、或いはバイト2がインデックス
を指定し且つバイト3が即時モードを指定するときに、
絶対又は即時モードを有する第2指定子に対する指定子
情報が選択される。これらの状態はゲート275ないし
279によって検出される。同様に、バイト1及びバイ
ト2の両方がレジスタ又は短いリテラルモードを有する
ことがゲート274及び280によって検出された場合
にのみ第3の指定子が絶対又は即時モードを有すること
が適当となる。この制約を受けると、バイト3が絶対又
は即時モードを有するか、又はバイト3がインデックス
を指定しそしてバイト4が絶対モードを有し、或いはバ
イト3がインデックスを指定しそしてバイト4が即時モ
ードを有する場合に、第3指定子に対するコンプレック
ス又は即時指定子情報が選択される。これらの状態は、
ゲート281ないし285によって検出される。第45
図のマルチプレクサ244を作動するために、第47図
の論理回路は、選択信号をエンコードするための2つの
オアゲート286.287を備えている。 第12図について上記したように、シフトカウント論理
回路123は、1つ、2つ又は3つまでの指定子をデコ
ードするのに用いられる多数のツリーを備えている。一
般的なケースRI、R2、R2R,R3及びR3X R
についての一ンリーは、一般的なケースについて第45
図に示された論理回路の幾つかのサブセットである。 第48図にはR1ツリーに対する論理回路が示されてい
る。一般的なケースが相当に簡単化されている。という
のは、第1指定子に対する指定子情報しか関与していな
いからである。当該有効化情報は、例えば、レベルlに
おけるレジスタ又は短いリテラル指定子が有効であるか
どうか、或いはレベル2I又はレベルlにおけるコンプ
レックス指定子が有効であるかどうかの事実しか含んで
いない。当該情報が主たるケースによって選択されるの
で、バイトlがインデックスレジスタを指定するかどう
かそして第1指定子が絶対又は即時モードを有するコン
プレックス指定子であるかどうかに拘りなく、これら有
効信号の優先順位を仲裁することは不要である。 R1論理ツリーは、ツリーの上部に2人力マルチプレク
サ291を含んでいると共に、第1コンプレツクス指定
子についての情報を選択するための8人力マルチプレク
サ292と、4つの主たるケースの各々に基づいて情報
を選択するためのマルチプレクサ293とを備えている
。ゲート294によって指示されるように、バイトlが
有効レジスタ又は短いリテラル指定子であるときには、
CA S E、、、 CA S E、、及びCASE、
、について、N′が1に等しくそしてSC′がlに等し
い。バイト1がインデックスを指定するときには、バイ
ト2で始まるコンプレックス指定子は、それが有効であ
ることがゲート295及びマルチプレクサ296によっ
て検出されたときにデコードされる。 CASE、  については、バイト1で始まるコンプレ
ックス指定子が有効であるときにこの指定子に対し、ゲ
ート296がN=1及びシフトカウントを選択する。 第49図は、R2ツリーのシフトカウント論理回路を示
している。ツリーの」一部にはマルチプレクサ300が
あり、これは、第1の指定子も第2の指定子も絶対又は
即時モードを有するものとして選択されないときに第2
5図の一般的なツリーの簡単な(2様301を選択する
か、又は第1の指定子がコンプレックス又は即時モード
を有することが分かったときにマルチプレクサ302の
出力を選択するか、或いは第1指定子がレジスタ又は短
いリテラル指定子のいずれかであってfLつ第2指定子
が絶対又は即時モードを有するコンプレックス指定子で
あるときに別のマルチプレクサ3o3の出力を選択する
。第49図と第45図の比較により明らかなように、R
2ツリーは、エンコード論理回路が最初の2つの指定子
についての有効信号を仲裁する必要しかないと仮定すれ
ば、膜面なケースのツリーを単に簡単化したものである
。 第50図には、バイトlがレジスタ指定子でも短いリテ
ラルでもなくそして短いリテラルである第2指定子がデ
コードされるべきでないときだけ使用されるR 2 R
ツリーが示されている。R2Rツリーは、例えば、要求
されている第2指定子が「書き込み」アクセス形式を有
するときに要求論理回路(第12図の114)によって
要求され、この場合、もし第2指定子が短いリテラル指
定子であれば、アドレス欠陥が生じる。これは、アドレ
ス欠陥の検出を簡単化する。というのは、短いリテラル
の指定子がデコードされている第1指定子となったとき
の次のサイクル中にアドレス欠陥を検出することができ
、そして第1指定子のみのモードに基づいてアドレス欠
陥を検出できるからである。 第1バイトがレジスタ指定子でも短いリテラルでもなく
且つ2つの指定子のみが要求されていると仮定すれば、
R2Rツリーは、第1指定子が絶対又は即時モードを有
するときにマルチプレクサ312からの情報を選択する
ツリーであって。 第1指定子が絶対又は即時モードをもたないときに別の
マルチプレクサ31:3の出力を選択するようなツリー
の上部に、マルチプレクサ311を有する。GPS’指
定子情報論理回路249は、第1指定子に対する有効信
号と、コンプレックス指定子に続くバイトに対するレジ
スタ有効信号との間で仲裁を行なう。同様に、マルチプ
レクサ314は、2Iレベルでデコードされた指定子に
対する有効信号と、21Aレベルの次のバイトに対する
レジスタ有効信号との間で仲裁をとるように配線された
入力を有しており、そして別のマルチプレクサ315は
、レベル1のコンプレックス指定子に対する有効信号と
、レベルl Aのバイトに対するレジスタ有効信号とを
仲裁するように配線されている。 第51図は、第1の2つのバイトがレジスタ指定子又は
短いリテラル指定子であるときだけ使用されるR3ツリ
ーに対する回路図である。第52図から明らかなように
、要求されている3つの指定子の一般的なケースは、第
3指定子がコンプレックスであるようなR3ケースと、
第3指定子がレジスタ指定子であるときだけこれがデコ
ードされるR 3 X Rケースとに分割される。 R3ツリーの回路図が第51図に示されている。このツ
リーのに部にはマルチプレクサ321があり、これは、
第3指定子が絶対モードを有するか又は即時モードを有
するかを指示するS E L。 5PEC3信号によって制御される。第3指定子が絶対
又は即時モードを有する場合には、マルチプレクサ32
1は第45図に既に示されたマルチプレクサ247から
N′及びSC′を選択する。 さもなくば、N′及びSC′は、CASE [+]倍信
号より制御される別のマルチプレクサ322から得られ
る。マルチプレクサ322は、CASEo、については
マルチプレクサ323から或いはCA S E、、につ
いてはマルチプレクサ324からN′及びSC′を選択
する。マルチプレクサ323はエンコーダ325によっ
て制御され、そしてマルチプレクサ324はエンコーダ
326によって制御される。 第52図は、R3X Rツリーの回路図であり、このツ
リーは、第3指定子がレジスタ指定Y−であるときにの
み3つの指定子を同時にデコードする。 ツリーの上部にはマルチプレクサ331があり、これは
、第2指定子が絶対又は即時モードをffするときにマ
ルチプレクサ246 (第49図)の出力を選択し、第
1指定子が即時又はコンプレックスモードの出力を有す
るときにマルチプレクサ245の出力を選択し、そして
さもなくば、マルチプレクサ332の出力を選択する。 このマルチプレクサは、4つの主たるケースの各々に対
して計算されたN′及びSC′ を選択するが、第3指
定子が有効であると考えるためにはレジスタ指定子でな
ければならないという制約がある。それ故、R3X R
ツリーは、第25図のマルチプレクサ)82ないし18
5に対応する付加的なマルチプレクサ333ないし33
6と、第25図のエンコーダ186、+87及び+89
に対応するエンコーダ337.338及び339と、第
25図のマルチプレクサ190及び191に対応するマ
ルチプレクサ340及び341とを有している。第2図
のマルチプレクサ335は、その選択入力が命令バッフ
ァのバイト■とバイト2とに対するレジスタ又は短いリ
テラル有効信号の間を仲裁するように配線されている。 デコードされている指定子の数Nがシフトカウント論理
ツリーからマルチプレクサ124.125及び】26 
(第12図)によって選択されると、指定子に対するデ
ータの命令バッファ内の位置が既知となり、それ故、指
定子データをGP、S L又はTRバスへ送信するよう
に選択することができる。コンプレックス指定子に対す
る指定子情報は、その位置が主たるケースによって与え
られるので、最も容易に決定される。しかしながら、S
 L及びTRバスについては、デコードされている第2
及び第3指定子に関連したレジスタ又は短いリテラル指
定子データを決定することが所望される。もちろん、第
1指定子に対するレジスタ又は短いリテラルデータは命
令バッファのバイトlで見つけられる。 命令バッファにおけるバイトのレジスタ又は短いリテラ
ルデータのフォーマットは第5図に示したが、デコード
されている第2又は第3指定子に関連したレジスタ又は
短いリテラルデータを得るために使用される種々の信号
を決めるために第53図に再び示されている。レジスタ
又は短いリテラル指定子(1丈SI、DATA [iコ
)に関するデータは、例えば、8ビツトより成る。RS
 I、DATAの最−L位ビットは、命令バッファにお
けるバイト1が有効なレジスタ指定子であることを指示
し、換言すれば、それがRr−:G  VALID[i
]倍信号あるということを仮定する。又、R3L、 1
.) A T Aの第2の最上位ビットは、バイt□ 
iがTT効な短いリテラル指定子−であることを指示し
、換言すれば、それがSL  VALID[i]倍信号
あるものと仮定する。次の2つの最上位ビットは、バイ
トにおける短いリテラルデータの2つの最上位ビットで
ある。最下位の4ビツトは、短いリテラルデータ又はレ
ジスタアドレス(REGN[1])の残りより成る。 第54図は、デコードされている第2指定子におけるレ
ジスタデータ又は短いリテラルデータを選択する出力選
択論理回路(第12図の128)の回路図である。第2
1図に説明をいったん戻すと、CA S E、、におい
て、レジスタ又は短いリテラルデータは命令バッファの
バイト2にあり、CASE、において、レジスタ又は短
いリテラルデータはレベル2IAにあり、CA S E
、、において、レジスタ又は短いリテラルデータはバイ
ト2にあり、そしてCA S E、、において、レジス
タ又は短いリテラルデータはレベルIAにある。第54
図に戻ると、マルチプレクサ351は特定のケースを選
択し、CASF’、、、及びCΔst=:、、ニおイで
、命令バッファのバイト2からレジスタ又は短いリテラ
ルデータを得る。 CA S E、、において、別のマルチプレクサ352
は、第1指定子が絶対又は即時モードを有するコンプレ
ックス指定子であるかどうかを判断すると共に、第2指
定子がコンプレックス指定pであるかどうかも判断する
。命令バッファのバイトlがインデックスレジスタを指
定しない場合には、一対のゲート353,354がマル
チプレクサ352に選択入力を与え、ゼロの値を有する
データを選択して、第2指定fが有効なレジスタでも短
いリテラル指定子でもあり得ないことを指示する。 さもなくば、命令バッファのバイト1がインデックスレ
ジスタを指定する場合、バイト2にそのベースを有する
コンプレックス指定子のモードが即時モードであるか絶
対モードであるかに基づいて3つの場所の1つにレジス
タ又は短いリテラルデータが得られる。即時モードでも
絶対モードでもばい場合には、レジスタ又は短いリテラ
ルデータが21Aレベルにおいて得られる。コンプレッ
クス指定子が絶対モードを有する場合には、レジスタ又
は短いリテラルデータが命令バッファのバイト7から得
られる。さもなくば、コンプレックス指定子が即時モー
ドを有するときには、コンプレックス指定子のデータ形
式に基づいてマルチプレクサ355により選択された位
置にレジスタ又は短いリテラルデータが得られる。 CASE、、の場合、マルチプレクサ356及び357
によって同様にレジスタ又は短いリテラルデータが得ら
れるが、CA S E、、においては、第1指定子が、
当然、命令バッファのバイトlにそのベースを有するコ
ンプレックス指定子となる。 第55図には、命令バッファからのレジスタデータを得
るためのフォーマットが示されている。 レジスタデータは、デコードされている第3指定子に関
するレジスタデータを得るために第56図の論理回路に
よって使用される。マルチプレクサ36]は、主たるケ
ースに基づいてデータを選択する。第2レベルのマルチ
プレクサ362ないし364及び一対のゲート365及
び366は、マルチプレクサ352及び356とゲート
353及び354 (第54図)と同様に作動する。第
3レベルのマルチプレクサ367.368.369.3
70は、第3指定子に対するレジスタデータが即時又は
絶対アドレスモードを有するコンプレックス指定子に続
くときに第2又は第1指定子のデータ形式に基づいてレ
ジスタデータを選択する。 第57図には、T Rバスを経て送られる第1ソース指
定子に関連した出力及び選択論理回路(第12図の12
8)が示されている。第1ソース指定子に関連した有効
データフラグ(VDI”)を得るために、マルチプレク
サ381はデコードされる指定子の数Nによって制御さ
れて、全く指定子がデコードされない場合にフラグをク
リアすると共に、2つ又は3つの指定子がデコードされ
る場合にフラグをセットする。1つの指定子しかデコー
ドされない場合には、それがソース指定子ではなくて行
き先であることが考えられ、ゲート382は、第1指定
子が分岐バイト、分岐ワード、書き込み又はインプライ
ド書き込みのアクセス形式を有する場合に有効データフ
ラグをクリアする。 第1ソースオペランドに対するレジスタフラグ(RFC
)は、少なくとも1つの指定子がデコードされ、分岐変
位又はインプライドオペランドに対して1つの指定子が
要求されなかったことがゲート384によって検出され
、そして命令バッファのバイト1が有効レジスタ指定子
を表わし且つ命令内読み取り競合が検出されなかったこ
とがゲート385によって決定された場合に、ゲート3
83によってセットされる。特定のゲート384は、バ
イトlが分岐変位であるかどうか又は1つのインプライ
ド指定子が要求される場合に次のOPコードを表わすか
どうかを判断する。命令バッファのバイト1が、行き先
指定子ではない有効レジスタをおそらく表わさない場合
には、ゲート386は、命令内読み取り競合の場合にレ
ジスタ指定子が汎用ユニットによって処理されるよう確
保する信9 (TRCREG)を発生する。このIRC
REG信号は、以下で更に述べる第61図の回路へ送ら
れる。有効データフラグ、レジスタフラグ及びレジスタ
数は、TRバスの部分39Oを経て転送ユニット(第6
図の30)へ送られた後にラッチ又はレジスタ387に
ラッチされる。 第58図には、TRバスを経て送られる第2ソースオペ
ランドに対する有効論理回路が示されている。第2ソー
スオペランドの有効データフラグは、実際にデコードさ
れる指定その数Nで制御されるマルチプレクサ39]に
よって選択される。 有効データフラグは、0又は1つの指定子が実際にデコ
ードされた場合にクリアされそして3つの指定子がデコ
ードされた場合にセットされる。2つの指定子がデコー
ドされる場合には、第2指定子が行き先オペランドを指
定しそしてこの場合は有効データフラグがクリアされる
。第2指定子は、第1指定子がASRCのアクセス形式
を有しそして第2指定子がWRI TEのアクセス形式
をもたないことがゲート392によって検出され、第1
指定子がV [≧E A +)のアクセス形式を有しそ
して第2指定子がRIE A I)のアクセス形式を有
することがゲート393によって検出され、或いは第1
指定子がRIE A Dのアクセス形式を有しそして第
2指定子がWRITE、IMP  WRITEのアクセ
ス形式ももたないし書き込み分岐変位でもないことがゲ
ート394.395及び396によって検出された場合
には、行き先指定子ではない。 第2ソースオペランドのレジスタフラグは、少なくとも
2つの指定子がデコードされ、第2指定子が分岐変位で
もインプライド変位でもないことがゲート397によっ
て検出され、そして第2指定子が有効レジスタ指定子を
表わすことがゲート398によって決定されたときにセ
ットされる。 第2指定子に対する有効データフラグ、レジスタフラグ
及びレジスタアドレスは、TRバスの部分400を経て
送られてラッチ399に受け取られ、次のサイクル中に
送信ユニット(第6図の30)に使用される。 第59図には、行き先オペランドを選択するための有効
化/マルチブレクス論理回路が示されている。行き先オ
ペランドは、第1、第2又は第3指定子によって指定す
ることができる。行き先指定子の位置は、デコードされ
る指定子の数によって主として決定され、それ故、行き
先オペランドに対する有効データフラグ、レジスタフラ
グ及びレジスタアドレスは、現在サイクル中に実際にデ
コードされる指定子の数Nによって制御される各マルチ
プレクサ401.402及び403によって選択される
。現在サイクル中に指定子がデコードされない場合には
、もちろん、行き先オペランドが使用できず、有効デー
タフラグがクリアされる。1つの指定子がデコードされ
る場合には、それが行き先指定子であり、そして有効デ
ータフラグは、現在サイクル中にデコードされる第1指
定子のアクセス形式がMODYFY、WRI TE、I
MP  WflTE又はV  MODIFYのいずれか
であることがゲート404によって検出された場合にセ
ットされる。2つの指定子がデコードされる場合には、
デコードされている第2指定子のアクセス形式がV  
MODIFY、WRITE、MODIFY、IMP  
Vt/R11”Eであるか又はデコードされている第1
指定子がWRITE、MODIFY又はV  MODI
FYのアクセス形式をもっことがゲート405によって
検出されたときに、第2指定子が有効行き先オペランド
を指定する。3つの指定子がデコードされる場合には、
第3指定子は、ゲート405によって検出されるこれら
の同じ状態に対して行き先オペランドとなり、更に、こ
れは、第3指定子が分岐変位でないことがゲート406
及び407により検出された場合に限る。 1つの指定子しかデコードされない場合には、命令バッ
ファのバイトlが有効レジスタ指定子で且つ第1指定子
のアクセス形式がMOD r FY、V  MODIF
Y又jiWRITEであることMゲート408及び40
9により検出された場合に、その指定子が有効レジスタ
行き先を指定する。2つの指定子がデコードされる場合
には、ゲート409がアクティブであるか或いは第2指
定子が行き先オペランドを指定する有効レジスタ指定子
であることがゲート410,411及び412によって
検出された場合に、レジスタフラグがセットされる。3
つの指定子がデコードされる場合には、ゲート411が
アクティブであるか或いは第3指定子が有効レジスタ指
定子であることがゲート413によって決定された場合
に、レジスタフラグがセットされる。 1つの指定子がデコードされる場合には、任意のレジス
タ数が命令バッファのバイト1から得られる。2つの指
定子がデコードされる場合には、その第1が有効レジス
タ行き先指定子であることがゲート409によって検出
された場合、レジスタ数が依然として命令バッファのバ
イトIから得られ、さもなくば、それはマルチプレクサ
4】4により選択された第2指定子のレジスタ数となる
。 同様に、3つの指定子がデコードされる場合、もし第2
指定子が有効レジスタ行き先指定子であれば、行き先オ
ペランドに対するレジスタ数は第2指定子のレジスタ数
であり、さもなくば、マルチプレクサ415により選択
された第3指定子のレジスタ数である。 行き先オペランドに対する有効データフラグ、レジスタ
フラグ及びレジスタ数はTRバスの部分420を経て送
られ、そして次のサイクル中に転送ユニット(第6図の
30)により使用するためにラッチもしくはレジスタ4
16に受け入れられる。 第60図は、EXバス430を経ての短いリテラル情報
の転送に関連した有効化論理回路の回路図である。短い
リテラルに対する有効データフラグは、命令デコーダの
バイトl及び第2指定子に対する短いリテラルの有効信
号と共にデコードされた指定子の数を組み合わせること
によって得られる。特に、命令デコーダのバイトlが有
効な短いリテラル指定子である場合には、Nが少なくと
も2であることがゲート421により決定された場合に
、有効データフラグがセットされる。命令バッファのバ
イトlが有効な短いリテラル指定子であるがN=1であ
る場合には、分岐変位もインプライド指定子も要求され
ないことがゲート384及びゲート422によって決定
されたときだけ、有効データフラグがセットされる。更
に、Nが2又は3であり、第2指定子が有効な短いリテ
ラルであり、そして第2指定子が分岐変位でもインプラ
イド指定子でもないことがゲート397及びゲート42
3によって検出されれば、有効データフラグがセットさ
れる。ゲート421.422及び423の出力は、オア
ゲート424において合成されて、有効データフラグが
与えられる。 命令バッファのバイト1が有効な短いリテラルである場
合には、この短いリテラルデータがバイトlから得られ
、さもなくば、マルチプレクサ425によって選択され
た第2指定子に対する短いリテラルデータから得られる
。短いリテラルに対する指定子数は、短いリテラル指定
子が現在サイクルにおいてデコードされた第1指定子で
ある場合には既に計算もしくはデコードされた指定子の
数であるか、或いは短いリテラルが現在サイクルにおい
てデコードされた第2指定子である場合はそれより1だ
け大きなものとなる。この計算は、3ビツト2進加算器
426及びインバータ427によって行なわれる。短い
リテラルオペランドに対する有効なデータフラグ、短い
リテラルデータ及び指定子数は、EXバス430を経て
送られ、次のサイクル中にEXユニットにより使用する
ためにラッチ又はレジスタ428にラッチされる。 第61図には、CPババス経てオペランドデータを送信
するための有効化/選択論理回路が示されている。要求
論理回路(第12図の114)からの要求信号は1分岐
変位又はインプライド指定子がGPXバス470出され
たかどうかを判断する。分岐変位は、1つの指定子がデ
コードされモしてRIBB又はRI BWツリーが選択
され、2つの指定子がデコードされそしてR2BB又は
R2BWツリーが選択され、或いは3つの指定子がデコ
ードされそしてR3BB又はR3BWツリーが選択され
たことがゲート431又は437によって決定された場
合に、CPババス出される。 GPXバス470経て送信が行なわれた後に、ラッチ又
はレジスタ438がゲート437からの分岐変位信号と
、第57図からのIRCREG信号とをラッチし、オペ
ランド処理ユニット(第6図の21)へ特殊な制御信号
を発生する。分岐変位の場合には、オペランド処理ユニ
ットは、シフトされている次のOPコードのアドレスに
対する分岐変位を命令バッファのバイ80位置に加え、
分岐命令に対するターゲットアドレスを得る。IRCR
EG制御信号に応答して、オペランド処理ユニットは、
CPババス70を経て送られたベースによって指定され
たレジスタの数を得る。 インプライド指定子は、R11ツリーが選択されそして
1つの指定子がデコードされるか、或いはR2Iツリー
が選択されそして2つの指定子がデコードされることが
ゲート439.440及び441によって決定されたと
きに、GPXバス470経て送られる。 マルチプレクサ442は、分岐、インプライド又は拡張
即時オペランドがデコードされないと仮定すれば、コン
プレックス指定子をデコードできるかどうか判断する。 マルチプレクサ442は、4つの主たるケースと、命令
バッファのバイトlがインデックスレジスタを指定する
か又はバイト2がそれを指定するかを考慮する。ゲート
443及び444は、考えられるコンプレックス信号が
CASE、、又はCASE、、について第1又は第2指
定子であるか或いは第3#I定子であるかを検出するた
めにインデックス信号と各ケースとを組み合わせる。C
ASE、、又はCASE、、Iに対し、デコードされる
指定子の数は、コンプレックス指定子をデコードするた
めにはlに等しいか又はそれ以上でなければならない。 オアゲート445は、Nが1に等しいか又はそれより大
きいかどうかを判断する。CASE、、又はCASE、
、Iの場合、Nが2に等しいか又はそれより大きければ
、コンプレックス指定子をおそらくデコードすることが
できる。CASE、、においては、Nが3に等しいこと
がアンドゲート446によって検出された場合に、コン
プレックス指定子をおそらくデコードすることができる
。CASE−(インデックスレジスタなし)については
、命令バッファのバイト3がレジスタ指定子を指示しな
いことがゲート447によって検出されるので、コンプ
レックス指定子がデコードされる。 命令バッファのバイトlがインデックスレジスタを指示
し、命令バッファのバイト2がインデックスレジスタを
指示し、そしてCASE、又はCASE、、が存在しな
いか或いはCASE、、が存在することがゲート448
.449及び450によって検出された場合に、おそら
くインデックスレジスタが指定される。 GPババス対する有効データフラグは、T RCREG
信号がアサートされるか、インプライド指定子がデコー
ドされるか、分岐変位がデコードされるか、拡張即時デ
ータがデコードされるか、或いはコンプレックス指定子
をデコードできることがオアゲート451により決定さ
れたときに、セットされる。GPババス対するインデッ
クスレジスタフラグは、コンプレックス指定子をデコー
ドすることができ、インデックス指定子を/i)ること
ができ、そして分岐変位もインプライド指定子も拡張即
時データもデコードされないことがゲート452及び4
53によって検出される限り、セットされる。 インプライド指定子がデコードされるときには、7E(
16進)又は8E(16進)の値がモード及びベース情
報としてCPババス経て送られる。この目的で、マルチ
プレクサ454が設けられており、これは、インプライ
ド指定子が要求され且つ要求されたインプライド指定子
のアクセス形式がIMP  WRITEであるときは7
Eを選択し、そしてインプライド指定子が要求され且つ
その指定子のアクセス形式がIMP  WRITEでな
いときには8Eを選択する。要求された指定子のアクセ
ス形式はマルチプレクサ455によって選択され、オア
ゲート456はインプライド指定子が要求されたかどう
か判断する。 インプライド指定子の場合を除き、CPババス指定子情
報はマルチプレクサ457から得られ、このマルチプレ
クサは、本質的にシフタとして働いて、インデックス、
モード及びベースと、命令バッファの連続バイト位置に
おける変位とを得る。 マルチプレクサ457は、命令バッファとCPババス7
0との間の5つの考えられるオフセットの選択された1
つを供給する。分岐命令として1つの指定子が要求され
たときには、変位のバイト0が命令バッファのバイトl
から得られる。分岐命令として2つの指定子が要求され
るときには、変位のバイトOが命令バッファのバイト2
から得られる。分岐命令として3つの指定子が要求され
るときには、変位のバイト0が命令バッファのバイト3
から得られる。命令内読み取り競合が検出されそしてレ
ジスタがGPババス70を経て送られるときには、変位
のバイト0が命令バッファのバイト2と整列される。C
A S E、、においては、変位のバイトOが命令バッ
ファのバイト2と整列される。CASE、、においては
、変位のバイトOが命令バッファのバイト3と整列され
る。CASEo、においては、変位のバイトOが命令バ
ッファのバイト4と整列される。最終的に、CASE、
、においては、変位のバイトOが命令バッファのバイト
5と整列される。 マルチプレクサ457のシフト動作は、入力Smによっ
て便利に制御され、この入力は、変位のバイト0を、−
1バイト位置のシフトによって命令バッファのバイトl
と整列し、さもなくば、入力S、及びS、により選択さ
れたバイト位置の数だけ他の方向にシフトする。入力S
mは、1つの指定子が要求されてそれが分岐変位である
ときにアサートされる。それ故、シフトすべきバイト位
置の数は、排他的オアゲート458及びノアゲート45
9.460により主たるケースから容易に決定すること
ができる。分岐変位に対する命令内読み取り競合又は要
求は、CASE、、の場合と同じ吸うのシフトすべきバ
イト位置を選択する。オアゲート461は、分岐変位が
要求されたかどうかを判断する。最終的に、オアゲート
463は、分岐命令として3つの指定子が要求されたか
どうかを判断する。 GPババスおけるコンプレックス指定子の指定子数は、
主たるケースと、命令バッファのバイトl又はバイト2
がインデックスレジスタを指示するかどうかによって決
定される。これは、現在デコードされている3つまでの
指定子のうちのどれがコンプレックス指定子であるかを
判断することにより行なわれる。Xl及びX、は、コン
プレックス指定子が現在デコードされている第1、第2
又は第3指定子であるかどうかを指示する。Xは、ゲー
ト444及びゲート449の出力を合成するオアゲート
462によって決定される。X。 は、ゲート464.465及び466によって決定され
る。X、 X、により指定された2ビツトの2進数が加
算器467において完成した指定子の数に加えられ、デ
コードされているコンプレックス指定子に対する指定子
数が決定される。有効データフラグ、インデックスレジ
スタフラグ、インデックス、モード、ベース、変位及び
指定子数は、CPババス70を経て送られ、システムク
ロックの次のサイクル中に汎用ユニット(第6図の32
)によって使用するようにラッチもしくはレジスタ46
8にラッチされる。 第6図は、第11図のデコード手順のステップ51ない
し57及び64.65を実行する第12図に示された拡
張即時検出器11Oの回路図である。 拡張即時モードを有するコンプレックス指定子を検出す
るために、マルチプレクサ481は、主たるケースに対
するベース位置の即時モード信号を選択することにより
、命令バッファの第1のコンプレックス指定子が即時モ
ードを有するかどうかを判断する。コンプレックス指定
子に対するデータ形式のビットlがセットされたときに
は即時モードが拡張即時である。コンプレックス指定子
に対するデータ形式は、マルチプレクサ482によって
選択され、主たるケースに応答し、命令バッファのバイ
トl及びバイト2がインデックスレジスタを指示するか
どうかによってゲート483及び484により制御され
る。ゲート485は。 命令バッファに見られる第1のコンプレックス指定子が
拡張モードを有するときに信号をアサートするようにマ
ルチプレクサ481及び482の出力を合成する。更に
、ゲート485は、命令バッファの拡張即時データに応
答しないようにX8F信号によって禁止される。 デコードされるべき次の3つの指定子の1つ以上がたと
え拡張即時モードを有しているとしても、現在サイクル
中にデコードされないことが考えられる。これは、現在
サイクル中にデコードされる指定子の数Nと、主たるケ
ースに基づくコンプレックス指定子の指定子位置と、命
令バッファのバイト1又はバイト2がインデックスレジ
スタを指定するかどうかとによって決まる。これらの状
態は、ゲート486ないし491によって分析される。 ゲート491の出力が、拡張即時モードを有するコンプ
レックス指定子が現在サイクル中にデコードされている
ことをアサートするときには、第1I図のステップ64
及び65に対応し、コンプレックス指定子のデータ形式
に基づくロングワードカウントが2進カウンタ492に
ロードされる。このロングワードカウントは、データ形
式がオクタワードの場合には3にセットされ、さもなく
ば、グオドワードの場合はlにセットされる。 オクタワードデータ形式は、ゲート483及び484に
より制御されるマルチプレクサ493によって検出され
る。ゲート494は、2進カウンタ492がO以外の値
を有するときにX8F信号をアサートする。これが生じ
るときには、命令バッファのバイト4に対する有効デー
タフラグが次のことを指示する限り、即ち拡張即時デー
タが有効であり、汎用ユニットがストールされずそして
デコーダがストールされないことを指示する限り、2進
カウンタ492が減少される。これらの状態はゲート4
95及び496によって検出される。 RX8Fシフトカウントは、2進カウンタ492が減少
されるときには4であり、さもなくば、0である。Nに
対するR X 8 Fの値は常に0である。 拡張即時検出器110は、即時モードが最初に検出され
ないとき、2進カウンタが2以上の値をもたないとき、
そして2進カウンタが1の値をもたないか又は2進カウ
ンタが減少されるとき、[シフトOPJ信号をイネーブ
ルする。換言すれば、オペレーションコードのシフト動
作がディスエイプルされるのは、拡張即時モードが検出
されたときに始まって、ロングワードカウントが1で且
っ2進カウンタが0に減少されるまでである。これらの
状態は、ゲート497及び498によって検出される。 第63図は、自動増加又は自動減少モードを検出するた
めのデコーダの回路図である。自動減少モードは、レジ
スタモードフィールド(第5図)が7の値を有すること
がゲート501によって検出されたときに生じる。自動
増加モードは、レジスタモードフィールドが8又は9の
値を有することがゲート502によって検出されたとき
に生じる。ゲート501及び502の出力は、オアゲー
ト503において合成され、自動増加又は自動減少モー
ドを示す信号が発生される。 デコーダが自動増加又は自動減少モードを検出して命令
内読み取り競合を検出することが重要である。命令デコ
ーダ20はレジスタ指定子と自動増加又は自動減少指定
子とを同時にデコードできるので、レジスタ指定子及び
自動増加又は自動減少指定子が同じレジスタを参照する
おそれが生じる。それ故、レジスタ指定子の値は、参照
されたレジスタの初期値でなければならないか自動増加
又は自動減少による変更後の値でなければならないかの
区別をすることが重要である。■サイクル当たり1つの
指定子をデコードするデコーダにおいては、このような
おそれが生じない。というのは、レジスタ指定子は、そ
れが自動増加又は自動減少指定子の前にデコードされる
場合には初期値を参照し、そして自動増加又は自動減少
指定子の後に生じる場合には変更された値を参照するか
らである。 上記した命令デコーダ20については、レジスタ指定子
がデコードされるときにTRバスを経てレジスタ数を通
し、そしてレジスタ指定子の実際の値が実行ユニットに
よって得られる前にGPユニットにおいて自動増加又は
自動減少指定子を予め処理することが所望される。それ
故、上記したデコーダがレジスタ指定子と自動増加又は
自動減少指定子(どちらも同じレジスタを参照する)を
同時にデコードするときには、実行ユニットが、当然、
参照されたレジスタの変更された値をレジスタ指定子と
して使用する。しかしながら、この当然の動作モードは
、命令のオペレーションコードに続いて指定子シーケン
スにおいて自動増加又は自動減少指定子の前にレジスタ
指定子が生じたときには無効の結果をもたらす。命令デ
コーダ20については、このおそらく正しくない結果は
、「命令内読み取り競合」と称する特殊なケースとして
これを処理することにより回避される。換言すれば、自
動増加又は自動減少指定子が同じ命令に対する指定子シ
ーケンス内の手前のレジスタ指定子によって参照された
ペースレジスタを指定するときに命令内読み取り競合が
生じるといえる。 レジスタ指定子は、指定子のレジスタアドレスフィール
ド(第5図参照)により指定されたレジスタを少なくと
も参照する。レジスタ指定子がクオドワードデータ形式
を有する場合、レジスタ指定子は、更に、レジスタ指定
子のレジスタアドレスフィールドに示されたレジスタ数
(n)に1を加えたレジスタ数もしくはアドレスを有す
るしジスタを参照する。オクタワードデータ形式を有す
るレジスタ指定子は、レジスタ数n、n+l、n+2及
びn+3を有するレジスタを参照する。 命令デコーダ20は、命令内読み取り競合を検出する2
つの異なった方法を使用するのが好ましい。その第1の
方法は、デコードされている現在命令に対する手前のデ
コードサイクル中にソースレジスタ指定子によって参照
されたレジスタを識別する[読み取りレジスタマスクJ
を発生することである。第2の方法は、各々のデータ形
式の組合せに対して命令内読み取り競合が生じるかどう
かを示すrlRcマスク」を発生することである。この
第2の方法は、同じサイクル中に同時にデコードされて
いるレジスタ指定子と自動増加又は自動減少指定子との
間の命令内読み取り競合を判断するのに使用される。 命令内読み取り競合を検出するための読み取りレジスタ
マスクの使用が第64図に示されている。同じ命令内に
含まれたソースレジスタ指定子とその後に生じる自動増
加又は自動減少指定子との間に競合があるかどうかを判
断するために、CPU内の16個の汎用レジスタの各々
に対し各ビット位置を有する読み取りレジスタマスクが
発生される。マルチプレクサ511は、コンプレックス
指定子のペースレジスタ数に対応する読み取りレジスタ
マスクのビット位置を選択する。読み取りレジスタマス
クの選択されたビットは、第63図に示されたオート信
号と、ペース有効化信号とによって更に定質化され、こ
れらの信号はゲート512において合成され、マルチプ
レクサ511がイネーブルされる。それ故、マルチプレ
クサ511の出力は、命令内読み取り競合の存在を指示
する信号IRC″ を発生する。 読み取りレジスタマスクを発生するために、ソースレジ
スタ数nがデコーダ513へ送られ、これは、読み取り
レジスタ数に対応する位置において読み取りレジスタマ
スクのビットをセットさせる。他のビット位置のビット
は、ソースレジスタ指定子のデータ形式に基づいてセッ
トすることが必要である。これらの位置は、加算回路5
1・1により決定されたn+1.n+2及びn+3であ
る。これらのビットは、各デコーダ515,516及び
517によりこれらの他のビット位置に選択的にセット
される。各々のデコーダは、各々のマスクを発生し、そ
してこれらのマスクは、−膜面に518で示された1組
の168の4人力オアゲートによって論理オアされ、読
み取りレジスタマスクが形成される。 読み取りレジスタマスクのビットは、オクタワードデー
タ形式についてのみn+2及びn+3ビツト位置におい
てセットされるので、オクタワードデータ形式は、デコ
ーダ516及び517にイネーブル信号を供給するゲー
ト519によってデコードされる。同様に、デコーダ5
15は、オクタワード及びクオドワードデータ形式につ
いてオアゲート520によってイネーブルされる。ゲー
ト521は、ソースレジスタ数に関連した有効データフ
ラグ及びレジスタフラグを定質化する。 又、これらのフラグは、オクタワードデータ形式を検出
するゲート519をイネーブルする。 第64図に示すように、読み取りレジスタマスクは、ソ
ースレジスタ指定子がデコードされるサイクルに続くサ
イクル中にペースレジスタ数が生じたときに命令内読み
取り競合を検出するために便利に使用される。ソースレ
ジスタ指定子と同じサイクル中にペースレジスタがデコ
ードされる場合には、第64図の回路は、ソースデータ
形式がデコード論理回路(第12図の105)からIi
)られるときから、命令内読み取り競合がマルチプレク
サ511によって検出されるときまでに著しい遅延を有
する。 第65図には、命令内読み取り競合検出回路が示されて
おり、これは、データ形式が得られるときと命令内読み
取り競合が検出されるときとの間の遅延をなくすために
ソースレジスタ指定子のデータ形式によって制御される
マルチプレクサ531を有している。このマルチプレク
サ531は、データ形式がaングワードを指示するかク
オドヮードを指示するか又はオクタワードを指示するか
に対応するIRCマスクの各ビット位置を選択する。 IRCマスクを発生するために、比較器532はソース
レジスタ数をペースレジスタ数と比較し、データ形式が
ロングワードを指示する場合に競合が考えられるかどう
か判断する。ゲート533は、比較器532の出力がペ
ースレジスタに対する自動モード信号及びソース指定p
に対するレジスタフラグによって定性化されるようにす
る。 考えられるクオドワード及びオクタワードデータ形式に
対するIRCマスクビットを決定するために、ソースレ
ジスタ数nは加算器534へ送られ、これは、r)+ 
1、[1+2及びn+3の値を各比較器535.536
及び537へ供給する。 比較器532及び535のいずれかによって一致が指示
されたことがオアゲート538により検出されると、ク
オドワードデータ形式についておそらく競合が生じる。 比較器532.535.536又は537のいずれかに
よって一致が指示されたことがオアゲート539によっ
て検出されると、オクタワードデータ形式についておそ
らく競合が生じる。ゲート538.539の出力は、レ
ジスタフラグ及びA U T O信号のゲート540及
び541によって定性化される。 第66図には、現在サイクル中に同時にデコードされる
2つまでのソースレジスタ指定子とのレジスタ内競合を
検出するための9ビツトIRCマスクと、現在命令に対
する手前のサイクル中にデコードされるソース指定子の
数とを発生する回路が示されている。第66図のこの回
路は、読み取りレジスタマスク発生器と、第64図に示
された回路と同様の複合IRC検出器とを備えており、
この検出器は、現在サイクル中にデコードされるコンプ
レックス指定子と、同じ命令に対して手前のサイクル中
にデコードされたソース及びインデックスレジスタ指定
子の数との間で現在サイクル中に命令内読み取り競合を
検出するものである。 読み取りレジスタマスクを発生するために、第1ソース
レジスタ数のラッチされた値と、有効データフラグと、
レジスタフラグと、手OツIのデコードサイクルに対す
る第1指定子データ形式とが読み取りレジスタマスク発
生器551へ送られる。 同様に、第2ソースレジスタ数のラッチされた値と、有
効データフラグと、レジスタフラグと、手i?1のデコ
ードサイクル中に決定された第2指定子に対するデータ
形式とが読み取りレジスタマスク発生器552に送られ
る。−膜面に555で示された1組の16個の3人力オ
アゲートは、2つのソースレジスタ数について発生され
た読み取りレジスタマスクを、ラッチ又はレジスタ55
4からの既に発生された読み取りレジスタマスクと合成
し、現在デコードサイクルに対する読み取りレジスタマ
スクを得る。この読み取りレジスタマスクは、ゲート5
56において[新たなフォークJ信号で定性化され、レ
ジスタ554にデータ入力が与えられる。それ故、レジ
スタ554は、現在命令に対する手前のデコードサイク
ル中の読み取りレジスタ情報を累積し、そしてゲート5
56は、実際に、現在命令に対するデコードの終わりに
レジスタ554をクリアする。 現在サイクル中にデコードされる自動増加又は自動減少
モードのコンプレックス指定子と、同じ命令に対して手
前のサイクル中にデコードされたソース指定子との間に
競合があるかどうかを判断するために、ゲート556の
出力はマルチプレクサ557へ送られ、このマルチプレ
クサは、コンプレックス指定子に対するペースレジスタ
の数に対応する複合マスクから特定のビットを選択する
。このペースレジスタ数は、主たるケースによって制御
されるマルチプレクサ558により命令バッファのバイ
ト1.2.3又は4のレジスタドレスフィールドから選
択される。同様に、ペースレジスタ数に対する自動増加
又は自動減少モード信号は、主たるケースによって制御
されるマルチプレクサ559によって選択される。 マルチプレクサ557からの複合IRCは、その論理オ
アがとられて、9ビツトIRCマスクの各位置が得られ
る。その他の点では、■RCマスクは、現在サイクル中
に同時にデコードされる2つまでのソースレジスタ指定
子と、自動増加又は自動減少モードコンプレックス指定
子との間のあり得べき競合を指示する。第65図に示す
加算器及び比較器は、5回重複されて、現在サイクル中
に同時にデコードできるソースレジスタ及びペースレジ
スタの各考えられる組合せに対し各比較器561ないし
564が形成される。これら比較器の各々は4つの出力
ビットを与える。 比較器561ないし563からの出力は、主たるケース
によって制御されるマルチプレクサ566によって選択
され、考えられるペースレジスタ及び第1の手前のレジ
スタ指定子に対する比較器信号が得られる。別のマルチ
プレクサ567は、考えられるペースレジスタと第2の
手前のレジスタ指定子との間の比較信号を与えるために
CASE [0]信号によって制御される。マルチプレ
クサ566によって選択された比較器信号は、ゲート5
68において更に定性化され、これは、デコードされて
いる第1指定子がコンプレックス指定子であることがゲ
ート569によって検出されたとき及び第1指定子がレ
ジスタ指定子でないときに、比較器信号を禁止する。同
様に、ゲート57Oは、第3指定子がコンプレックスで
あることがゲー)−571ないし573によって検出さ
れ、第2指定子がレジスタモードを有しそしてコンプレ
ックス指定子が自動増加又は自動減少モードを有すると
きに、第2指定子に対する比較器信号をイネーブルする
。 ゲート568及び570からの定性化された信号は、オ
アゲート574ないし584の第1及び第2レベルによ
って結合されて、9ビツトのIRCマスクが形成される
。 第67図には、第12図に示されたIRC検出器26の
回路図が示されている。i r< Cマスクは、第1組
のマルチプレクサ591.592及び593に受け取ら
れて、デコードされている第1指定子のデータ形式に対
応する3ビツトが選択される。第4マルチプレクサ59
4は、デコードされている第2指定子のデータ形式によ
って制御され、rrqcマスクの5〕ビツトのうちの特
定の1つを選択する。しかしながら、IRCマスクの選
択されたビットは、検出されたモードが実際に分岐変位
であることがあったり又はインプライド指定子が存在し
たりするために、命令内読み取り競合の存在を必ずしも
指示しない。これらの場合に、マルチプレクサ594の
出力は、ゲート595及び596によって禁止される。 又、ゲート596は、同じ命令に対する手前のデコード
サイクル中にレジスタ内競合が検出された場合に禁止さ
れる。 これは、命令のデコード中にIRCが最初に検出される
ときにIRC検出器がオペランド処理ユニットに信号す
るように行なわれる。 更に、自動モードコンプレックス指定子は現在サイクル
中にデコードされないことがあるためにゲート596の
出力は命令内読み取り競合を信号しないことが考えられ
る。自動モード指定子が実際にデコードされるかどうか
は、現在サイクル中にデコードされる指定子の初期数N
′と、主たるケースと、命令バッファのバイト1又はバ
イト2がインデックスレジスタを指示するかどうかとに
よって決まる。これらの条件は、アンドゲート597な
いし601と、オアゲート602とによっで検出される
。又、オアゲート602は、手前のレジスタ指定子又は
インデックスレジスタ指示と競合するインプライド指定
子がデコードされるときにアサートされるインプライド
IRC信号をうけとる。インプライド命令内読み取り競
合は、例えば、命令r P U S HL  S P 
Jに対して生じる。というのは、このような命令は、ス
タックポインタの初期値を最初に得、次いで、スタック
ポインタを自動減少し、そしてスタックポインタの減少
された値によって与えられたアドレスにおいてスタック
にスタックポインタの初期値を押し込むものとして解釈
されねばならないからである。 それ故、第1の明確な指定子は、同じレジスタの次のイ
ンプライド自動減少に競合するソースレジスタ指定子で
ある。 ソースレジスタ指定子と、インプライド自動増加又は自
動減少指定子との間の命令内読み取り競合を検出するた
めに、命令バッファのバイト1のレジスタ数は、バイト
1のレジスタモードによってイネーブルされたデコーダ
603の選択入力を動作させる。添付資料Iに示された
インプライド指定子については、インプライド指定子は
、常に、レジスタ数14を有するスタックポインタの自
動増加又は自動減少である。それ故、デコーダ回路14
,13.12及び11は、第65図の比較器信号P[l
コ、P [2] 、 P [3]及びP[4]に対応す
る。オアゲート604及び605は、インプライドレジ
スタマスクのクオドワード及びオクタワードビットを与
える。インプライドIRCマスクの適当なビットは、マ
ルチプレクサ606によって選択される。マルチプレク
サ606からの選択は、更に、R21要求信号と、イン
プライド指定子がデコードされることを指示するN’ 
 [1]とによって、ゲート607において定性化され
る。 又、現在デコードされているインプライド指定子は、同
じ命令に対する手前のデコードサイクル中にデコードさ
れたソースレジスタ指定子と競合することが考えられる
。このような競合は、1つのインプライド指定子が要求
され且つ1つの指定子がデコードされるときには第66
図のゲート556から読み取りレジスタマスクのビット
14を選択するゲート608によって検出され、そして
インプライド指定子を含む2つの指定子が要求され且つ
2つの指定子がデコードされるときにはゲート609に
よって検出される。ゲート607.608及び609に
よって検出される競合の種々の考えられるソースがオア
ゲート610によって組み合わされ、インプライド命令
内読み取り競合が検出される。 明示されたもしくは暗示された(インプライド)命令内
読み取り競合がゲート602によって信号されると、各
デコードサイクル中に1つの指定子のみをデコードする
ことにより命令がデコードされる。現在サイクル中には
1つの指定子のみがデコードされ、その命令に対してデ
コードされるべき指定子が残されている場合は、ラッチ
611がセットされて、命令が完全にデコードされるま
で斉次々のデコードサイクル中に1つの指定子しかデコ
ードされないことを信号する。命令に対するデコード動
作の終了は、第12図からのrailspecs co
mpleted」信号によって指示される。更に、ラッ
チ611は、命令バッファが最初にロードされるとき又
はデコーダ欠陥があるときにはセットされない。これら
の場合に、ラッチ611のセット動作はゲート612に
よって禁止される。 ラッチ611がセットされると、ゲート613は、現在
サイクルに対するデコードの終了までそのラッチがセッ
トされたま)であるよう確保する。別のゲート614は
、ラッチ611の状態がデコーダ欠陥の場合に変化しな
いよう確保する。 ゲー1−612.613及び614の出力は、オアゲー
ト615で合成され、ラッチ611のデータ入力に送ら
れる。オアゲート616は、ラッチ611の出力をゲー
ト602からのIRCDE”l”E CT E D信号
と合成し、第12図のマルチプレクサ+26を動作する
IRC信号を発生する。 第68図は、命令デコーダ(第1図の20)によって検
出された命令内読み取り競合に応答して命令ユニット内
の汎用レジスタ651及び実行ユニット内の対応する1
組の汎用レジスタ652を更新するための命令ユニット
12及び実行ユニット13内の回路を示す回路図である
。第68図に示すように、命令ユニット12と、実行ユ
ニット13との間のデータ路は、ソースリスト23と、
多数の待ち行列23とを含む。これらの待ち行列23は
、より詳細には、ちょうどデコードされた命令に対して
フォーク又はマイクロコード入力アドレスを受け取るフ
ォーク待ち行列653と、命令デコーダによってデコー
ドされたソースオペランドに対してレジスタ数又はソー
スリストポインタを受け取るソースポインタ待ち行列6
55と、命令デコーダによってデコードされた行先きオ
ペランドのレジスタ数又はアドレスを受け取る行先きポ
インタ待ち行列656と、レジスタスコアボード待ち行
列657とを備えている。 レジスタスコアボード待ち行列657は、既に予め処理
されているがまだ実行されていない命令のレジスタソー
スオペランドと、現在命令の自動増加又は自動減少指定
子との命令内読み取り競合を検出する。又、レジスタス
コアボード待ち行列657は、既に予め処理されている
がまだ実行されていない命令のレジスタ行先きオペラン
ドと、現在命令のレジスタソースオペランドとの間の命
令的競合も検出する。命令内読み取り競合を検出するた
めに、レジスタスコアボード待ち行列は、「新たなフォ
ーク」信号がアサートされたときに、第66図の1組の
ゲート555によって発生された複合レジスタ読み取り
マスクを受け取る。命令内書き込み競合を検出するため
に、レジスタスコアボード待ち行列は、マスク発生器が
行先きレジスタ情報に応答すること以外は複合レジスタ
読み取りマスクに対するのと同様に発生された複合レジ
スタ書き込みマスクを受け取る。更に、レジスタスコア
ボード待ち行列657は、待ち行列における全てのマス
クの論理オアを形成するための1組のオアゲートを備え
ていて、複合レジスタ読み取り及び書き込みマスクを形
成する。 複合レジスタ読み取りマスクは、自動増加又は自動減少
モードを有するコンプレックス指定子のベースレジスタ
数と比較され、命令内レジスタ読み取り競合が検出され
る。同様に、ソースレジスタ数は複合書き込みレジスタ
マスクと比較され、命令内書き込み競合が検出される。 いずれの場合にも、レジスタスコアボード待ち行列65
7は、命令内レジスタ競合の存在を信号する。レジスタ
スコアボード待ち行列657の構造及び動作は、参考と
してここに取り上げる[デジタルコンピュータのための
データ依存性分析式多命令予備処理システム(Mul 
tiple In5truction Pre−Pro
cessingSystem Wit、h Data 
Dependency Re5olution For
Digi tal Computer) J と題する
前記ミューレイ氏等の米国特許出願に更に説明されてい
る。 命令ユニット12及び実行ユニット13は、2組の汎用
レジスタ651及び652を備えており、実行ユニット
によって指定子が必要とされる前に命令ユニットによっ
て指定子を評価できるようになっている。実行ユニット
が汎用レジスタを変更するときには、新たなデータが実
行ユニットの汎用レジスタ652と、命令ユニットの汎
用レジスタ651との両方に送られる。典型的なケース
については、命令ユニットが自動増加又は自動減少指定
子の評価に応じてペースレジスタを変更するときに、命
令ユニットの汎用レジスタ651と実行ユニットの汎用
レジスタ652の両方が更新される。 例外又は割込みの場合には、待ち行列23は、デコード
されたがまだ実行されていない命令に関する情報でフラ
ッシュされねばならない。これらのデコードされたがま
だ実行されていない命令のいずれかが自動増加又は自動
減少モードを有するコンプレックス指定子を含む場合に
は、変更されているレジスタをその元の状態に復帰しな
ければならない。それ故、命令ユニット又は実行ユニッ
トは、汎用レジスタが自動増加又は自動減少により変更
されたときにこれら汎用レジスタに対してなされた変更
に関する情報を記憶することが望ましい。この情報を記
憶するために、第68図の実行ユニット13には、各レ
ジスタ数及びそれらが変更された量を記憶するためのR
L OG待ち行列658が設けられている。 第68図に示すように、RL OG待ち行列は、16個
の入力を記憶するといっばいになる。自動増加又は自動
減少指定子を有する命令が入力されると、それに対応す
る入力をRLOG待ち行列658から除去しなければな
らない。又、命令は多数の指定子をもちそしてその各々
が自動増加又は自動減少指定子をもつことができるので
、RL OG待ち行列における2つ以上の入力を各命令
に関連できるようにすることが必要となる。このため、
命令ユニット12は、命令のフォークに添付される3ビ
ツトタグ(OPU  TAG)を発生するモジュロ6カ
ウンタを備えている。モジュロ6カウンタ659は、例
えば、「新たなフォーク」信号によりイネーブルされる
クロックと、タグが5の値であるときに「新たなフォー
クJ信号に応答してカウンタをリセットするゲート6(
50とを有する3ビツト2進カウンタにより形成される
。タグは、実行ユニット13に配置された6個の3ビツ
トRLOGカウンタ661の1つを指す。 RL OG待ち行列658は、これに入力が加えられる
ときに増加される4ビツトの挿入ポインタカウンタ66
2を有している。又、入力が加えられるたびに、各RL
 OGカウンタが増加される。 命令が六ノJされると、リタイア命令のタグ(実行ユニ
ットのタグ)に対応するR L OGカウンタがリセッ
トされる。これは、例えば、デコーダ663によって行
なわれ、このデコーダは、RL OGカウンタ661の
各リセット入力に接続された出力を有し、そしてリタイ
アユニット27からのリタイア信号によってイネーブル
される。同様に、エンコーダ664は、RLOGカウン
タ661の各クロックイネーブル入力に接続された出力
を有すると共に、OPUタグを受け取る選択入力と、M
ODfFY信号によりイネーブルされるイネーブル人力
とを有している。〜l0DYFY信シjは、挿入ポイン
タカウンタ662からの挿入ポインタをデコードするデ
コーダ665がRLOG待ち行列658の16個のデー
タレジスタの各々のデータイネーブル入力をイネーブル
できるようにする。 RLOG待ち行列における有効入力の数は、加算器66
6においてRL OGカウンタ6GIの全ての値を加算
することによって得られる。その和の最上位ビット(Q
4)は、PI、OG待ち行列658に16V4の入力が
あり、それ故、RLOG待ち行列がオーバーフローしよ
うとしていることを指示する。オーバーフローは、Q4
信号がアクティブであるときにオペランド処理ユニット
をストールすることにより防止される。加算器666の
出力ビットは、ノアゲート667において組み合わされ
、RLOG待ち行列が空であることを示す信号を発生す
る。 実行又は割込みが生じると、RL OGの入力はRI−
OG待ち行列からほどかれる。これは、1く1、、 O
G待ち行列の全ての有効入力をアサートすることによっ
て行なわれる。これらの入力は、マルチプレクサ668
によって順次に′4:)ることができ。 該マルチプレクサの選択入力は、挿入ポインタカウンタ
を受け取って挿入ポインタカウンタを順次に減少する。 しかしながら、多くの場合には、ちようどデコードされ
たある数の命令に対応するデータを命令及び実行ユニッ
トから捨てるか又はそれでフラッシュすることだけが所
望される。これは、典型的に、分岐命令の後であって且
つ分岐命令の分岐前にある命令が実行ユニットによって
実際に決定されるように行なわれる。プログラムの実行
が分岐されたことが分かるか又は分岐の予想が間違いで
あったと分かると、分岐の後の命令をデコードした結果
が待ち行列23からフラッシュされねばならず、そして
分岐命令に続く命令において自動増加又は自動減少指定
子によって変更された汎用レジスタがそれらの元の値に
復帰されねばならない。このため、RL、 OG待ち行
列658におけるある数の入力のみがマルチプレクサ6
68から得られ、その間に挿入ポインタカウンタ662
が減少される。 RLOG待ち行列658から除去すべき特定数の人力を
決定するために、フラッシュカウンタ669が設けられ
ており、このカウンタは、実行ユニットタグ+「保持す
べき数」の値にセットされ、保持すべき数は、待ち行列
23に結果を保持すべきところの正しくデコードされた
命令の数を指定するものである。計算は加算器670に
よって行なわれ、保持すべき入力の数は、待ち行列23
が完全にフラッシュされるべきときにディスエイプルさ
れる1組のゲート671を経て加算器へ送られる。フラ
ッシュプロセス中に、マルチプレクサ672は、フラッ
シュカウンタの値をデコーダ664の選択入力に供給す
る。それ故、フラッシュされるべき情報及び復帰される
べきレジスタを有する命令に対応するR I、 OGカ
ウンタ661のみがフラッシュのためにアクセスされる
。更に、デコーダ664の選択入力は、各カウンタの値
を選択するためにマルチプレクサ673へ送られ、この
値は、RLOG待ち行列658がらいかに多くの入力を
除去すべきかを指示する。レジスタをフラッシュ及び復
帰するこのプロセスは、選択されたR L OGカウン
タの値が0に等しいかどうかくノアゲート674により
決定される)をテストし、そしてフラッシュカウンタの
値がOPUタグの値に等しいことが比較器675により
指示されたときにフラッシュが完了したことを検出する
ことにより、順次に行なうことができる。フラッシュ手
順における特定のステップは、実行ユニットにおける順
次状態マシン676によって実行される。辿常そうであ
るように、順次状態マシンは、組合せ論理と、システム
クロックのサイクル間に順次状態を保持するための1組
のレジスタとを備えている。同様に、命令ユニットは、
フラッシュ手順の間に命令ユニットの汎用レジスタ65
1を更新するための順次状態マシン677を舘えている
。 汎用レジスタの復帰は、命令内読み取り競合を処理する
必要があるために複雑なものとなる。 好ましい方法によれば、命令内読み取り競合が検出され
ると、自動増加及び自動減少指定子は、命令ユニットの
汎用レジスタ651のみを変更し、そしてレジスタ指定
子は、ポインタではなくて、データとして実行ユニット
へ通される。命令ユニットの汎用レジスタ651は、実
行ユニットの汎用レジスタ652を除いて、自動増加及
び自動減少指定子の評価中に変更される。命令内レジス
タ競合を有する命令が完全にデコードされると、現在命
令がリタイアされて実行ユニットの汎用レジスタ652
が更新されるまで、次の命令のデコードが一時的に禁止
される。このため、命令内競合が検出された後に変更さ
れたレジスタの数は、[遅延更新待ち行列」678に記
憶される。命令がリタイアされると、遅延更新待ち行列
678に記憶された数を有するレジスタの値が実行ユニ
ットの汎用レジスタ652へ送られる。アンドゲート6
79は、リタイアユニット27からのリタイア信号を、
レジスタスコアボード待ち行列657が空であることを
示す信号で定性化することにより、現在命令がリタイア
されたことを判断する。 命令内競合を有する命令のデコード中にフラッシュが生
じる。フラッシュ手順が命令内競合を考慮しなくてもよ
いようにするために、命令ユニットの汎用レジスタ65
1が変更されるが、実行ユニットの汎用レジスタ652
が変更されないときに、命令ユニットの汎用レジスタ6
51が変更されるたびに、RLOG待ち行列658にO
の変更値が記憶される。それ故、フラシュが生じると、
命令ユニットの汎用レジスタ651は、実行ユニットの
汎用レジスタ652に記憶された変更されない値と交換
することにより、それらの元の変更されない値に復帰さ
れる。 第69図には、命令ユニットの順次状態マシン677に
よって実行される制御手順のフローチャートが示されて
いる。この順次状態マシンと、命令ユニットの汎用レジ
スタ651は、オペランドユニット(第1図の21)の
一部分であるのが好ましい。制御手順の第1ステツプ6
81においては、割込み、例外又はフラッシュが生じた
ときにステップ682へ実行が分岐する。ステップ68
2においては、命令ユニットの汎用レジスタ651が実
行ユニットから受け取った値で復帰され、現在サイクル
の制御シーケンスが終了する。 割込み、例外又はフラッシュがベンディング中でない場
合には、ステップ683において、命令ユニットの順次
状態マシン677は、レジスタスコアボード657から
の命令内競合信号をチエツクし、命令内競合が生じたと
きにステップ684においてオペランド処理ユニットを
ストールする。 命令内競合が生じない場合には、ステップ(585にお
いて、順次状態マシン677がラッチ680をチエツク
し、ベンディング中の命令内競合があるかどうか判断さ
れる。命令内競合がある場合には、ステップ686にお
いて、OPUは、現在指定子がレジスタ指定子であるか
どうかテストする。もしそうであれば、ステップ687
において、ソースリスト24は、ソースレジスタの変更
されない値がロードされ、そしてソースポインタ待ち行
列654は、その変更されない値に対するポインタがロ
ードされる。指定子がレジスタ指定子でない場合には、
ステップ688において、OPUは現在指定子が自動増
加又は自動減少モード指定子であるかどうかをテストす
る。もしそうであれば、ステップ689において、ベー
スレジスタ数に対応する命令ユニットの汎用レジスタ6
51が変更されるが、RLOG待ち行列658及び実行
ユニットの汎用レジスタ652には0の変更値が送られ
る。変更されたペースレジスタの数は、遅延更新待ち行
列678に記憶される。現在指定子がレジスタ指定子で
も自動モード指定子でもない場合には、ステップ690
において、OPUが第1図及び第2図について上記した
通常のやり方で指定子を訂価する。 ステップ691において、順次状態マシン677は、「
新たなフォーク」信号をチエツクして、現在命令が完全
にデコードされたかどうか判断する。もしそうならば、
ステップ692において、命令デコーダのストールフラ
グがセットされ、現在命令がリタイアされて且つ実行ユ
ニットの汎用レジスタが更新されるまで、命令デコーダ
をストールする。 現在命令がリタイアされると、命令内競合はステップ6
85においてもはや検出されない。次いで、ステップ6
93において、順次状態マシン677は、遅延更新待ち
行列が空であるかどうかチエツクする。もしそうでなけ
れば、更新しなければならない実行ユニットの汎用レジ
スタ652の数を含むことになる。ステップ694にお
いて、遅延更新待ち行列の次のレジスタ数が得られ、命
令ユニットの汎用レジスタ651にあるそのレジスタの
内容がそれに対応する実行ユニットの汎用レジスタ65
2へ送られる。ステップ695において、順次状態マシ
ン677は、変更された最後の汎用レジスタの内容がそ
れに対応する実行ユニットの汎用レジスタ652に送ら
れるかどうかチエツクする。もしそうであれば、実行ユ
ニットの汎用レジスタは、現在サイクルの終わりに全て
復帰され、それ故、ステップ696において、命令デコ
ーダをストールするフラグがクリアされる。 遅延更新待ち行列がステップ693において空である場
合には、オペランド処理ユニットが通常の状態で動作す
る。ステップ697において、ソースレジスタ数がソー
スリスト待ち行列655に直接ロードされる。ステップ
698では、自動増加又は自動減少モードを有するコン
プレックス指定子のベースによって指示された命令ユニ
ットの汎用レジスタが変更され、その変更がRL OG
待ち行列658と、実行ユニット13の汎用レジスタ6
52とに送られる。 第70図には、実行ユニットの順次状態マシン676の
制御手順のフローチャートが示されている。第1ステツ
プ711では、順次状態マシン676は、割込み又は例
外があるかどうかをチエツクする。もしそうならば、ス
テップ712において、フラッシュカウンタが実行ユニ
ットのタグの値にセットされる。同様に、ステップ71
3においてフラッシュ要求が検出されると、次いで、ス
テップ714において、フラッシュカウンタ669が、
実行ユニットのタグと、デコードされているがまだ実行
されていない保持すべき命令の数との和の値にセットさ
れる。 ステップ712又は714の後に、順次状態マシン67
6は、ゲート667の出力をチエツクし、ステップ71
5においてRLOG待ち行列が空であるかどうかのテス
トを行なう。もしそうであれば、第70図の制御手順の
現在サイクルが終了である。さもなくば、実行ユニット
の汎用レジスタ652の少なくとも1つをその手が1の
値に復帰しなければならない。ステップ716において
、順次状態マシン676は、ゲート674の出力をチエ
ツクし、フラッシュカウンタ669からのフラッシュタ
グによりアドレスされたR L OGカウンタが0に等
しいかどうか判断する。もしそうであれば、RLOG待
ち行列は、選択されたRLOGカウンタに対応する命令
に対しいかなる変更入力ももたない。それ故、ステップ
717において、順次状態マシン676は、比較器67
5の出力をチエツクし、フラッシュタグがOPUタグに
等しいかどうか判断し、もしそうであれば、実行ユニッ
トの全ての汎用レジスタ652は、フラッシュされてい
る命令を処理する前にそれらの前の値に復帰されている
。さもなくば、ステップ718において、フラッシュカ
ウンタが増加され、実行がステップ716に分岐して戻
り、次のRL OGカウンタの内容が検査される。 ステップ716において、RLOGカウンタの値が0に
等しくないことが分かると、RLOG待ち行列に少なく
とも1つの対応する入力が生じる。ステップ719にお
いて、RLOGカウンタは減少され、ステップ720に
おいて、RL OG待ち行列は、挿入ポインタによって
入力が指示される直前に入力において読み取られ、挿入
ポインタが減少される。次いで、ステップ721におい
て、RL OG待ち行列からのレジスタ数によりアドレ
スされた実行ユニットの汎用レジスタの値が読み取られ
、RLOG待ち行列から読み取った変更が実行ユニット
のレジスタのその値に加えられ、その和が実行ユニット
のアドレスされた汎用レジスタに記憶されて戻される。 和及びレジスタ数は、命令ユニットの汎用レジスタ65
1にも送られ、命令ユニットの対応する汎用レジスタの
復帰がなされる。次いで1例外がステップ715へと分
岐し、付加的な汎用レジスタを復帰しなければならない
かどうか判断される。 割込みも例外もフラッシュもない場合には、ステップ7
22において、実行ユニットは、命令ユニットによって
送られた(これは第69図のステップ687又は703
で行なわれる)レジスタ変更情報を受け取るかどうがチ
エツクする。レジスタ変更情報が受け取られている場合
には、ステップ723において、レジスタ変更情報がR
[、OG待ち行列に挿入され、OPUタグにより選択さ
れたRLOGカウンタが増加される。ステップ724に
おいて、変更値がテストされ、それが0であるかどうか
判断される。もしそうならば、実行ユニットのサイクル
が終了される。さもなくば、ステップ725において、
OP[Jタグによってアドレスされた実行ユニットの汎
用レジスタが変更情報に基づいて変更され、順次状態マ
シン゛676によって行なわれた制御手順が終了する。 以上、2つのソース指定子と、1つの行先き指定子を同
時にデコードすることのできる命令デコーダについて説
明した93つの全ての指定子はレジスタ指定子とするこ
とができる。これら指定子のいずれか1つは、インデッ
クスレジスタ、ペースレジスタ及び変位を指示するコン
プレックス指定子であってもよい。 多数の指定子を同時にデコードすると、命令内読み取り
競合の特定の問題が生じる。命令内読み取り競合を検出
する回路が開示されたと共に、命令内読み取り競合をも
つ命令の処理中に生じる割込は1例外及びフラッシュを
処理するための効率的な方法についても開示した。
【図面の簡単な説明】
第1図は、本発明による中央パイプライン処理ユニット
を有するデジタルコンピュータシステムのブロック図、 第2図は、命令を処理するために実行される種々のステ
ップを示す図で、第1図のパイプライン命令プロセッサ
により種々の命令に対して並列に実行されるステップを
示す図。 第3図は、可変長さ命令の好ましいフォーマットを示す
図、 第4図は、ロングワード7jjlで加算を実行するだめ
の特定の可変長さ命令を示す図、 第5図は、指定子の第1バイトのモード情報をデコード
する動作を示すテーブル、 第6図は、多数の指定子を同時にデコードすることので
きる命令デコーダに接続された命令バッファ及びオペラ
ンドユニットを示す回路図、第7図は、第6図の命令デ
コーダ及びオペランドユニットを相互接続する汎用指定
子バスのフォーマットを示す図、 第8図は、命令デコーダから第6図のオペランドユニッ
トに短いリテラル情報を転送する拡張バスを示す図、 第9図は、命令デコーダから第6図のオペランドユニッ
トにレジスタ及び他のオペランド情報を転送するための
転送バスのフォーマットを示す図、 第10図は、第3図のフォーマットの可変長さ命令をデ
コードするために第6図の命令デコーダによって実行さ
れる好ましい手順のフローチャート、 第11図は、3つまでの指定子を同時にデコードするた
めに第6図の命令デコーダによって実行される手順を示
すフローチャート、 第12図は、第6図の命令デコーダのブロック図、 第13図は、バイト変位を有する分岐命令に対し最大1
つのオペランドをデコードしなければならないときにデ
コードされる指定子の数及びバイトの数を決定するのに
用いられるシフトカウント論理回路を示す回路図、 第14図は、ワード変位を有する分岐命令に対してせい
ぜい1つの指定子をデコードすべきときに用いられるシ
フトカウント論理回路の回路図、第15図は、せいぜい
1つの指定子をデコードすべきであり且つその指定子を
命令のアクセス形式からインブライして予め処理すべき
であるときに用いられるシフトカウント論理回路の回路
1図、第16図は、バイト変位を有する分岐命令に対し
てせいぜい2つの指定子をデコードすべきときに用いら
れるシフトカウント論理回路の回路図、第17図は、ワ
ード変位を有する分岐命令に対してせいぜい2つのオペ
ランドをデコードすべきときに用いられるシフトカウン
ト論理回路の回路図、 第18図は、せいぜい2つの指定子をデコードするため
に用いられるシフトカウント論理回路の回路図で、第2
指定子を命令のアクセス形式からインブライして予め処
理すべきであることを示す図、 第19図は、バイト変位を有する分岐命令に対してせい
ぜい3つの指定子を同時にデコードするのに用いられる
シフトカウント論理回路の回路図、 gS20図は、ワード変位を有する分岐命令に対してせ
いぜい3つの指定子を同時にデコードするのに用いられ
るシフトカウント論理回路の回路図、 第21図は、主たるシーケンスの種々のレベルに配置さ
れた3つまでの指定子を同時にデコードする間に命令バ
ッファに指定子が順序付けもしくは配列される4つの主
たるシーケンスもしくはケースを示す図、 第22図は、4つの主たるケースを定める真理値表を示
す図、 第23図は、第21図に示された4つの主たるケースを
検出するために最適化された組み合わせ論理回路の回路
図、 第24図は、11つの主たるケースに対し、デコードさ
れる指定↑の数をいかに決定できるかを示す表、 第25図は、単一のデコードサイクル中に同時にデコー
ドしなければならない命令デコーダにおいて実際の指定
子数及びバイト数を決定することのできるシフトカウン
ト論理回路を示す回路図、第26図は、第25図のシフ
トカウント論理回路に用いられる3人力優先順位エンコ
ーダの回路図、 第27図は、優先順位論理を組み込んだマルチプレクサ
の回路図、 第28図は、即時アドレスモードも絶対アドレスモード
も用いないときに種々のレベルヘデコードする際に実際
にデコードされる指定子の数の値を示す表、 第29図ないし第32図は、即時アドレスモードも絶対
アドレスモードも用いないときに種々のレベルヘデコー
ドする際にシフトカウントをいかに決定するかを示す真
理値表、 第33図ないし第38図は、即時アドレスモード又は絶
対アドレスモードを用いるときに種々のレベルヘデコー
ドする際に、実際にデコードされる指定子の数及びシフ
トカウントをいかに決定するかを示す真理値表、 第39図ないし第41図は、命令バッファのバイl−1
ないし8に対しレジスタ指定子及び短いリテラル情報を
決定するための論理回路を示す回路図、 第42図は、種々のレベルでデコードされた指定子に関
する情報を決定するための論理回路の回路図、 第43図は、−膜面なアドレスモードと、即時及び絶対
アドレスモードとに対し第25図の論理回路を二重にし
たシフトカウント論理回路の回路図、 第44図は、即時及び絶対アドレスモードに対する指定
子情報を第38図のシフトカウント論理回路に基づいて
いかに使用するかを示す図、第45図は5第12図の命
令デコーダにおいて臨界路の長さを減少するための第4
3図のシフトカウント論理回路の変更を示す回路図、第
46図は、即ff、?又は絶対アドレスモードを有する
第1指定子に関する情報を得るために第45図に用いら
れた論理回路を示す詳細な回路図、第47図は、命令バ
ッファの絶対又は即時モード指定子に関連した指定子数
を決定するために第45図に用いられた絶対及び即時指
定子選択論理回路を示す図、 第48図は、1つの指定子のデコードが要求されたとき
に選択されるR1ツリーの回路図5第49図は、2つの
指定子のデコードが要求されるときに選択されるR2ツ
リーの回路図、第50図は、2つの指定子のデコードが
要求されそして命令バッファのバイトlがレジスタ指定
子でもないし短いリテラルでもなく且つ第2指定子が短
いリテラルであってはならないときにのみ選択されるR
2Rツリーの回路図、 第51図は、3つの指定子のデコードが要求されそして
命令バッファのバイトl及び2がレジスタ指定子又は短
いリテラル指定子であるときにのみ選択されるR3ツリ
ーの回路図、 第52図は、3つの指定子のデコードが要求されそして
第3指定子をそれがレジスタ指定子であるときだけデコ
ードすべきであるときに選択されるR3XRの回路図、 第53図は、レジスタ有効信号、短いリテラルの有効信
号、及び短いリテラルのデータ又はレジスタ数をいかに
組み合わせて、8ビットのレジスタ又は短いリテラルデ
ータを得るかを示す図、第54図は、デコードされてい
る第2指定子に関連したレジスタ又は短いリテラルデー
タをt:′するための回路の回路図、 第55図は、レジスタ有効信号及びレジスタ数をいかに
組み合わせてレジスタデータを得るかを示す図。 第56図は、デコードされる第3指定子に関連したレジ
スタデータを得るための回路の回路図、第57図は、命
令デコーダからオペランドユニットへ第1ソースオペラ
ンドを送信するための有効化論理回路の回路図、 第58図は、命令デコーダから第2ソースオペランドを
得てオペランドユニットへ送信する有効化及び選択論理
回路の回路図、 第59図は、命令デコーダから行き先指定子を得てオペ
ランドユニットへ送信する有効化及び選択論理回路の回
路図、 第60図は、命令デコーダから短いリテラルデータを得
てオペランドユニットへ送信する有効化及び選択論理回
路の回路図、 第61図は、命令デコーダからコンプレックス指定子又
は分岐変位情報を11)でオペランドユニットへ送信す
るための有効化及び選択論理回路の回路図、 第62図は、拡張即時モードを有するコンプレックス指
定子を検出してデコードする回路の回路図、 第63図は、自動増加又は自動減少モードを有するコン
プレックス指定子を検出するためのデコーダの回路図、 第64図は、読み取りレジスタマスクを検査することに
より命令内読み取り競合をいかに検出するかを示す回路
図、 第65図は、IRCマスクを検査することにより命令内
読み取り競合をいかに検出するかを示す回路図、 第66図は、現在デコードされている2つの指定子に関
する情報及び同じ命令に対してデコードされた手前の指
定子の数を含も叫RCマスクを発生するための回路を示
す回路図、 第67図は、第66図の回路によって発生されたJRC
マスクを検査すると共に5インプライド命令内読み取り
競合も検出する回路の回路図、第68図は、命令デコー
ダによって検出された命令内読み取り競合に応答して命
令ユニット及び実行ユニットの各組の汎用レジスタを更
新するための命令ユニット及び実行ユニット内の回路を
示す回路図、 第69図は、オペランド処理ユニットとして第68図に
示された制御論理回路を定めるフローチャート、そして 第70図は、実行ユニットとして第68図に示された制
御論理回路を定めるフローチャートである。 10・・・メインメモリ 11・・・メモリー〇PUインターフェイス12・・・
命令ユニット 13・・・実行ユニット 14・・・メインキャッシュ 15・・・変換バッファ J6・・・I10バス I7・・・プログラムカウンタ I8・・・命令キャッシュ l 9 ・ 20 ・ 2 l ・ 22 ・ 23 ・ 24 ・ 25 ・ 26 ・ 28 ・ ・バッファ ・命令デコーダ ・オペランド処理ユニット(01)U)・演算論理ユニ
ット(A[、U) ・待ち行列 ・ソースリスト ・命令発生ユニット・ ・マイクロコード実行ユニット リタイアユニット

Claims (8)

    【特許請求の範囲】
  1. (1)パイプライン式プロセッサにおいて、オペレーシ
    ョンコード、第1レジスタ指定子及びそれに続く第2の
    指定子を有する命令をデコードし、予め処理しそして実
    行するための方法が、 上記命令の各々に対し、上記第2の指定子を予め処理す
    ることにより、上記第1のレジスタ指定子で指定された
    レジスタの値が変化するかどうかをデコード動作中に検
    出し、 上記第2指定子の予めの処理により上記第1レジスタ指
    定子で指定されたレジスタの値が変更されることが上記
    検出によって指示されるような上記命令に対し、上記指
    定子を次々にデコードし、そして 上記第2指定子の予めの処理により上記第1レジスタ指
    定子で指定されたレジスタの値が変更されないことが上
    記検出により指示されるような上記命令に対し、上記第
    1レジスタ指定子と上記第2指定子とを同時にデコード
    するという段階を具備することを特徴とする方法。
  2. (2)同時にデコードされるレジスタ指定子に対し実行
    ユニットにレジスタポインタを通し、そして順次にデコ
    ードされるレジスタ指定子に対し実行ユニットにレジス
    タの値を通すという段階を更に具備する請求項1に記載
    の方法。
  3. (3)各々のオペレーションコードと、多数の指定子の
    各々のシーケンスとを有する可変長さの命令を処理する
    ためのデータ処理ユニットであって、上記オペレーショ
    ンコードは、オペレーション中に読み取られるソースオ
    ペランドと、オペレーションによって変更される行き先
    オペランドとを含むオペランドに基づいてオペレーショ
    ンを定め、上記指定子は、上記オペランドを位置設定す
    るための情報を与え、上記指定子は、オペレーションコ
    ードとは独立したオペランドアドレスモードを有し、上
    記データ処理ユニットは、 a)オペレーションコードと、同時にデコードされるべ
    き多数の指定子の各シーケンスとを受け取るための命令
    バッファ手段と、 b)上記命令バッファ手段に接続されて、第1ソースオ
    ペランドを位置設定する情報を得るための多数の指定子
    の上記各々のシーケンスにおける第1オペランド指定子
    と、第2ソースオペランドを位置設定する情報を得るた
    めの多数の指定子の上記各シーケンスにおける第2オペ
    ランド指定子と、行き先オペランドを位置設定する情報
    を得るための多数の指定子の上記各シーケンスにおける
    第3オペランド指定子とを同時にデコードするための命
    令デコード手段と、 c)上記命令デコード手段によって得た情報に応答して
    、第1及び第2のオペランドをフェッチするためのオペ
    ランドフェッチ手段と、 d)上記オペランドフェッチ手段によってフェッチされ
    たソースオペランドに基づいて、上記命令バッファ手段
    で受け取ったオペレーションコードにより指示されたオ
    ペレーションを実行し、そして上記命令デコード手段に
    よって与えられた情報で指定された位置において行き先
    オペランドを変更するための実行手段とを具備し、 上記命令デコード手段は、上記命令の各々が、第1レジ
    スタ指定子と、それに続く第2指定子であって、この第
    2指定子の予めの処理により上記第1レジスタ指定子で
    指定されたレジスタの値が変化するような第2指定子と
    を含んでいるかどうかをデコード中に検出するための手
    段と、この検出手段に応答して、上記第1レジスタ指定
    子及び第2指定子を順次にデコードするための手段とを
    備えたことを特徴とするデータ処理ユニット。
  4. (4)同時にデコードされるレジスタ指定子に対し上記
    実行手段にレジスタポインタを通し、そして順次にデコ
    ードされるレジスタ指定子に対し上記実行手段にレジス
    タ値を通すための手段を更に具備する請求項3に記載の
    データ処理ユニット。
  5. (5)命令デコードユニット及び命令実行ユニットを有
    するパイプライン式プロセッサにおいて、上記命令デコ
    ードユニットは、オペレーションコード、複数の汎用レ
    ジスタの1つの値を指定する第1レジスタ指定子、及び
    それに続く第2指定子を有している命令をデコードしそ
    して予め処理するための手段を含んでおり、上記デコー
    ド及び予めの処理は、 命令のデコード及び実行中に、上記汎用レジスタに対す
    る第1組の値を上記命令デコードユニットに維持すると
    共に、上記汎用レジスタに対する第2組の値を上記命令
    実行ユニットに維持し、上記命令の各々に対し、上記第
    2指定子の予めの処理により上記第1レジスタ指定子で
    指定されたレジスタの値が変化するかどうかをデコード
    中に検出し、 上記第2指定子の予めの処理により、上記第1レジスタ
    指定子で指定されたレジスタとは異なる汎用レジスタの
    みの値が変更されることが上記検出により指示されるよ
    うな上記命令に対しては、上記第1レジスタ指定子及び
    上記第2指定子を同時にデコードし、そして上記命令デ
    コードユニット及び上記命令実行ユニットの両方におけ
    る上記第2指定子で指定された汎用レジスタの値を、上
    記第1及び第2指定子を含む命令の実行の前に変更し、
    そして 上記第2指定子の予めの処理により、上記第1レジスタ
    指定子で指定されたレジスタの値が変更されることが上
    記検出により指示されるような上記命令に対しては、上
    記指定子を順次にデコードし、上記命令デコードユニッ
    トにおける指定された汎用レジスタの値を、上記第1及
    び第2指定子を含む命令の実行の前に変更し、そして上
    記命令実行ユニットにおける指定された汎用レジスタの
    値を、上記第1及び第2指定子を含む命令の実行の後に
    変更するという段階を具備することを特徴とする方法。
  6. (6)上記第2指定子の予めの処理により上記第1レジ
    スタ指定子で指定されたレジスタの値が変更されること
    が上記検出によって指示されるような命令に続き命令の
    デコードを禁止する段階を更に具備し、このような禁止
    は、上記命令実行ユニットにおける指定の汎用レジスタ
    の上記値の変更まで生じる請求項5に記載の方法。
  7. (7)命令デコードユニットにおける汎用レジスタの値
    を、命令実行ユニットにおける各々の汎用レジスタの値
    と取り換えることにより、それらの最初の変更されない
    値に復帰させる段階を更に具備する請求項5に記載の方
    法。
  8. (8)同時にデコードされるレジスタ指定子に対し上記
    命令デコードユニットから上記命令実行ユニットへレジ
    スタポインタを通し、そして順次にデコードされるレジ
    スタ指定子に対し命令デコードユニットから命令実行ユ
    ニットへレジスタの値を通すという段階を更に具備する
    請求項5に記載の方法。
JP2000368A 1989-02-03 1990-01-05 同じ命令内におけるレジスタ及びレジスタ変更指定子のパイプライン処理 Pending JPH02282826A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US306833 1989-02-03
US07/306,833 US5167026A (en) 1989-02-03 1989-02-03 Simultaneously or sequentially decoding multiple specifiers of a variable length pipeline instruction based on detection of modified value of specifier registers

Publications (1)

Publication Number Publication Date
JPH02282826A true JPH02282826A (ja) 1990-11-20

Family

ID=23187069

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000368A Pending JPH02282826A (ja) 1989-02-03 1990-01-05 同じ命令内におけるレジスタ及びレジスタ変更指定子のパイプライン処理

Country Status (6)

Country Link
US (1) US5167026A (ja)
EP (1) EP0381469B1 (ja)
JP (1) JPH02282826A (ja)
AT (1) ATE131636T1 (ja)
CA (1) CA2009163A1 (ja)
DE (1) DE69024068T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7483250B2 (en) 2003-06-10 2009-01-27 Hitachi, Ltd. Drive circuit for switching device

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2507638B2 (ja) * 1989-12-01 1996-06-12 三菱電機株式会社 デ―タ処理装置
DE69130129T2 (de) * 1990-02-23 1999-05-06 Nec Corp., Tokio/Tokyo Pipelinemikroprozessor mit Vorberechnung der effektiven Adresse
US5432918A (en) * 1990-06-29 1995-07-11 Digital Equipment Corporation Method and apparatus for ordering read and write operations using conflict bits in a write queue
US5471591A (en) * 1990-06-29 1995-11-28 Digital Equipment Corporation Combined write-operand queue and read-after-write dependency scoreboard
DE69130138T2 (de) * 1990-06-29 1999-05-06 Digital Equipment Corp., Maynard, Mass. Sprungvorhersageeinheit für hochleistungsfähigen Prozessor
US5450555A (en) * 1990-06-29 1995-09-12 Digital Equipment Corporation Register logging in pipelined computer using register log queue of register content changes and base queue of register log queue pointers for respective instructions
JP2556182B2 (ja) * 1990-08-29 1996-11-20 三菱電機株式会社 デ−タ処理装置
US5539911A (en) 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US5826055A (en) * 1991-07-08 1998-10-20 Seiko Epson Corporation System and method for retiring instructions in a superscalar microprocessor
US5493687A (en) 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
US5414821A (en) * 1991-12-17 1995-05-09 Unisys Corporation Method of and apparatus for rapidly loading addressing environment by checking and loading multiple registers using a specialized instruction
GB2263565B (en) * 1992-01-23 1995-08-30 Intel Corp Microprocessor with apparatus for parallel execution of instructions
SG45269A1 (en) * 1992-02-06 1998-01-16 Intel Corp End bit markers for instruction decode
DE69311330T2 (de) 1992-03-31 1997-09-25 Seiko Epson Corp., Tokio/Tokyo Befehlsablauffolgeplanung von einem risc-superskalarprozessor
EP0638183B1 (en) * 1992-05-01 1997-03-05 Seiko Epson Corporation A system and method for retiring instructions in a superscalar microprocessor
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
WO1994016384A1 (en) * 1992-12-31 1994-07-21 Seiko Epson Corporation System and method for register renaming
US5404559A (en) * 1993-03-22 1995-04-04 Compaq Computer Corporation Apparatus for asserting an end of cycle signal to a processor bus in a computer system if a special cycle is detected on the processor bus without taking action on the special cycle
US6003120A (en) * 1993-12-30 1999-12-14 Intel Corporation Method and apparatus for performing variable length processor write cycles
US5758116A (en) * 1994-09-30 1998-05-26 Intel Corporation Instruction length decoder for generating output length indicia to identity boundaries between variable length instructions
JP3400458B2 (ja) * 1995-03-06 2003-04-28 株式会社 日立製作所 情報処理装置
US5943494A (en) * 1995-06-07 1999-08-24 International Business Machines Corporation Method and system for processing multiple branch instructions that write to count and link registers
US5872947A (en) * 1995-10-24 1999-02-16 Advanced Micro Devices, Inc. Instruction classification circuit configured to classify instructions into a plurality of instruction types prior to decoding said instructions
US5809272A (en) * 1995-11-29 1998-09-15 Exponential Technology Inc. Early instruction-length pre-decode of variable-length instructions in a superscalar processor
US5895497A (en) * 1995-12-06 1999-04-20 Texas Instruments Incorporated Microprocessor with pipelining, memory size evaluation, micro-op code and tags
US5822559A (en) * 1996-01-02 1998-10-13 Advanced Micro Devices, Inc. Apparatus and method for aligning variable byte-length instructions to a plurality of issue positions
US5867680A (en) * 1996-07-24 1999-02-02 Advanced Micro Devices, Inc. Microprocessor configured to simultaneously dispatch microcode and directly-decoded instructions
US6049863A (en) * 1996-07-24 2000-04-11 Advanced Micro Devices, Inc. Predecoding technique for indicating locations of opcode bytes in variable byte-length instructions within a superscalar microprocessor
US6151705A (en) * 1997-10-30 2000-11-21 Hewlett-Packard Company Efficient use of the base register auto-increment feature of memory access instructions
US6438664B1 (en) 1999-10-27 2002-08-20 Advanced Micro Devices, Inc. Microcode patch device and method for patching microcode using match registers and patch routines
US6775764B1 (en) * 2001-04-24 2004-08-10 Cisco Technology, Inc Search function for data lookup
US9240023B1 (en) * 2013-01-30 2016-01-19 Amazon Technologies, Inc. Precomputing processes associated with requests
GB2522990B (en) * 2013-12-20 2016-08-03 Imagination Tech Ltd Processor with virtualized instruction set architecture and methods
US11204768B2 (en) 2019-11-06 2021-12-21 Onnivation Llc Instruction length based parallel instruction demarcator

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5931734B2 (ja) * 1977-10-25 1984-08-03 デイジタル イクイプメント コ−ポレ−シヨン 特別のオペランド指定子を持つた命令を実行する中央処理装置
FR2420168B1 (fr) * 1978-03-16 1986-09-26 Ibm Dispositif de pre-traitement d'instructions dans un systeme de traitement de donnees
US4305124A (en) * 1978-06-09 1981-12-08 Ncr Corporation Pipelined computer
CA1174370A (en) * 1980-05-19 1984-09-11 Hidekazu Matsumoto Data processing unit with pipelined operands
USRE32493E (en) * 1980-05-19 1987-09-01 Hitachi, Ltd. Data processing unit with pipelined operands
JPS6028015B2 (ja) * 1980-08-28 1985-07-02 日本電気株式会社 情報処理装置
US4530050A (en) * 1981-08-26 1985-07-16 Hitachi, Ltd. Central processing unit for executing instructions of variable length having end information for operand specifiers
US4521851A (en) * 1982-10-13 1985-06-04 Honeywell Information Systems Inc. Central processor
JPS61160142A (ja) * 1984-12-29 1986-07-19 Hitachi Ltd デ−タ処理装置
US4789925A (en) * 1985-07-31 1988-12-06 Unisys Corporation Vector data logical usage conflict detection
US4903196A (en) * 1986-05-02 1990-02-20 International Business Machines Corporation Method and apparatus for guaranteeing the logical integrity of data in the general purpose registers of a complex multi-execution unit uniprocessor
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
JPH0810430B2 (ja) * 1986-11-28 1996-01-31 株式会社日立製作所 情報処理装置
US4991078A (en) * 1987-09-29 1991-02-05 Digital Equipment Corporation Apparatus and method for a pipelined central processing unit in a data processing system
JPH07120278B2 (ja) * 1988-07-04 1995-12-20 三菱電機株式会社 データ処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7483250B2 (en) 2003-06-10 2009-01-27 Hitachi, Ltd. Drive circuit for switching device

Also Published As

Publication number Publication date
EP0381469B1 (en) 1995-12-13
DE69024068T2 (de) 1996-10-17
US5167026A (en) 1992-11-24
EP0381469A3 (en) 1992-09-02
CA2009163A1 (en) 1990-08-03
DE69024068D1 (de) 1996-01-25
ATE131636T1 (de) 1995-12-15
EP0381469A2 (en) 1990-08-08

Similar Documents

Publication Publication Date Title
JPH02282826A (ja) 同じ命令内におけるレジスタ及びレジスタ変更指定子のパイプライン処理
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
US5142633A (en) Preprocessing implied specifiers in a pipelined processor
US5465377A (en) Compounding preprocessor for cache for identifying multiple instructions which may be executed in parallel
EP0782071B1 (en) Data processor
JP2931890B2 (ja) データ処理装置
JP3977016B2 (ja) 仮想レジスタ番号を用いて論理レジスタ番号を物理レジスタ番号にマッピングするように構成されるプロセッサ
JPH02208729A (ja) マイクロコード式実行装置での並列動作による複数機能装置の制御
JP2834292B2 (ja) データ・プロセッサ
JPH10232779A (ja) 命令並列処理方法及び装置
JP3866920B2 (ja) 命令のリタイアメント時に物理レジスタを選択的に自由にするよう構成されたプロセッサ
US6742110B2 (en) Preventing the execution of a set of instructions in parallel based on an indication that the instructions were erroneously pre-coded for parallel execution
JPH04506878A (ja) データ処理装置
US5729729A (en) System for fast trap generation by creation of possible trap masks from early trap indicators and selecting one mask using late trap indicators
AU628534B2 (en) Pipeline processing of register and register modifying specifiers within the same instruction
JP3128843B2 (ja) 情報処理装置
JP3102399B2 (ja) データ処理装置及び方法
CA2040637C (en) Compounding preprocessor for cache
IE901516A1 (en) Decoding multiple specifiers in a variable length¹instruction architecture
IE901518A1 (en) Pipeline processing of register and register modifying¹specifiers within the same instruction
JPH0683623A (ja) キャッシュに対する複合化プリプロセッサ方式
JPH0769802B2 (ja) データ処理装置