JP3153906B2 - Computer distributed pipeline control apparatus and method - Google Patents

Computer distributed pipeline control apparatus and method

Info

Publication number
JP3153906B2
JP3153906B2 JP50438990A JP50438990A JP3153906B2 JP 3153906 B2 JP3153906 B2 JP 3153906B2 JP 50438990 A JP50438990 A JP 50438990A JP 50438990 A JP50438990 A JP 50438990A JP 3153906 B2 JP3153906 B2 JP 3153906B2
Authority
JP
Japan
Prior art keywords
operations
ops
tag
outstanding
instruction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP50438990A
Other languages
Japanese (ja)
Other versions
JPH04503582A (en
Inventor
ハロルド エル マクファーランド
デイヴィド アール スティレス
ダイク コルビン エス ヴァン
シュレニク メータ
ジョン グレゴリー フェイヴァー
デイル アール グリーンレイ
ロバート エー カルグノニ
Original Assignee
アドヴァンスド マイクロ デヴァイセス インコーポレイテッド
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 アドヴァンスド マイクロ デヴァイセス インコーポレイテッド filed Critical アドヴァンスド マイクロ デヴァイセス インコーポレイテッド
Publication of JPH04503582A publication Critical patent/JPH04503582A/en
Application granted granted Critical
Publication of JP3153906B2 publication Critical patent/JP3153906B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30185Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing
    • G06F9/3555Indexed addressing using scaling, e.g. multiplication of index
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3812Instruction prefetching with instruction modification, e.g. store into instruction stream
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Advance Control (AREA)

Description

【発明の詳細な説明】 発明の背景 本発明は、一般的にはコンピュータに関し、具体的に
はコンピュータの効率的なパイプライン制御に関する。
Description: BACKGROUND OF THE INVENTION The present invention relates generally to computers and, more particularly, to efficient pipeline control of computers.

複雑命令集合コンピュータ(CISC)アーキテクチャの
単サイクル実現には深いパイプラインが必要である。CI
SCアーキテクチャによって直接支援されている複雑な特
権及び保護検査及び強力なメモリ管理システムに、普通
のパイプライン技術を組合わせると極めて複雑になる。
現在の技術ではパイプラインは多重チップ境界交差の効
果を含まなければならない。これらの交差を可能な限り
多く排除すべく高レベルのVLSI集積が選択されている。
システムが比較的少数のデバイスしか含んでいないと、
全ての目的のための専用バスを走らせるのに充分な信号
ピンは存在しない。これはバスを多目的に使用しなけれ
ばならないこと、従って集中制御及びスケジューリング
メカニズム設計プロセスが極めて複雑になることを意味
している。
A single-cycle implementation of a complex instruction set computer (CISC) architecture requires a deep pipeline. CI
The complexities of the complex privilege and protection checks and powerful memory management systems directly supported by the SC architecture, combined with ordinary pipeline technology, are extremely complex.
With current technology, the pipeline must include the effects of multiple chip boundary crossings. High levels of VLSI integration have been chosen to eliminate as much of these intersections as possible.
If the system contains only a relatively small number of devices,
There are not enough signal pins to run a dedicated bus for all purposes. This means that the bus must be used for multiple purposes, thus greatly increasing the complexity of the central control and scheduling mechanism design process.

発明の概要 本発明は、プロセッサ内の機能ユニット全体に分散す
るパイプライン制御システムを提供する。各ユニット
は、それ自身のインタロック及びパイプラインタイミン
グを限定する。このタイミングは、集中制御装置内で正
確に監視することはない。機能ユニットは自律性である
ので、自分以外の全てのユニットが各命令をどのように
処理するのかの詳細を正確に知る必要がなく、パイプラ
インタイミングの複雑なシミュレーションが大幅に減少
する。本発明は、発生させてはならない機械状態に対す
る変更のバックアウトを可能ならしめることによって、
パイプラインの分散制御を支援する。本発明は、複雑な
特別のパイプライン制御論理ではなく一般化された技術
を使用し、それによってパイプラインの正しい動作をよ
り有望ならしめている。不要の変化をバックアウトする
能力と組合わされた分散制御によって順不同な実行、ペ
ナルティサイクル、及び機能ユニット内及び機能ユニッ
ト間の命令の並列処理の領域における性能に重要な長所
を得ることができる。これらの能力を実現するための付
加的なコスト及び複雑さは極めて僅かである。
SUMMARY OF THE INVENTION The present invention provides a pipeline control system distributed across functional units in a processor. Each unit defines its own interlock and pipeline timing. This timing is not accurately monitored in the centralized controller. Because the functional units are autonomous, there is no need to know exactly how all other units process each instruction, and complex simulations of pipeline timing are greatly reduced. The present invention allows for backout of changes to machine state that must not occur,
Support distributed control of pipeline. The present invention uses generalized techniques rather than complex special pipeline control logic, thereby making the correct operation of the pipeline more promising. Distributed control combined with the ability to back out unwanted changes can provide significant advantages in performance in the area of out-of-order execution, penalty cycles, and parallel processing of instructions within and between functional units. The additional cost and complexity of implementing these capabilities is very low.

詳述すれば、デコーダ論理は各々が対応付けられたタ
グを有する疑似演算(p−opまたはp−ops)を、独立
的にp−opsを実行できる複数の機能ユニットに発行す
る。任意時点にはnまでのp−opsを未済とすることが
できる。タグは、2つの未済p−opsの相対年齢(時
間)を決定できるようにするために順次に発行される。
特定の実施例においては、タグは、少なくとも2nの範囲
に亙って発行され、リサイクルされる。この範囲は、単
純な減算によって相対年齢を決定可能ならしめるのに充
分である。この実施例では、16タグが発行され、7p−op
sを未済とすることが許される。
Specifically, the decoder logic issues pseudo-operations (p-ops or p-ops), each having an associated tag, to a plurality of functional units that can independently perform p-ops. At any time, up to n p-ops can be outstanding. Tags are issued sequentially so that the relative age (time) of the two outstanding p-ops can be determined.
In certain embodiments, tags are issued and recycled over a range of at least 2n. This range is sufficient to make the relative age determinable by simple subtraction. In this embodiment, 16 tags are issued and 7p-op
s is allowed to be outstanding.

未済p−opsは、それらの発行順に引退する。p−ops
は、それが完了した時にのみ、即ち通常は全関連機能ユ
ニットによってそれが終了させられた時にのみ引退する
ことができる。若干の場合には、通常ならば引退資格を
有する完了したp−opsが、1またはそれ以上の隣接す
る若いp−opsも完了するまで未済に保たれる。最古の
未済p−opsのタグが機能ユニットへ通信されるので、
各ユニットは機械の状態を取り消し不能なように変更で
きるようになった時点を決定できる。
Unpaid p-ops retire in their issuance order. p-ops
Can be retired only when it has been completed, ie normally only when it has been terminated by all relevant functional units. In some cases, completed p-ops, which would otherwise be eligible for retirement, are held open until one or more adjacent young p-ops are also completed. Since the oldest unfinished p-ops tag is communicated to the functional unit,
Each unit can determine when the state of the machine can be irrevocably changed.

未済p−opsは、もしそれが機能ユニットによって異
常に終了させられれば、打ち切られる。古いp−ops
も、もしそれらの引退が異常に終了するp−opが成功裏
に完了することを条件としているのであれば、打ち切る
ことができる。打ち切られる最古の未済p−opのタグ
は、機能ユニットへ通信される。これによって、予期せ
ざるプログラムの迂回及び機械が迂回点へ戻された場合
に実行の打ち切りを可能ならしめる。
Unpaid p-ops are aborted if they are abnormally terminated by a functional unit. Old p-ops
If their retirement is conditioned on the successful completion of the abnormally terminated p-op, it can be aborted. The oldest unpaid p-op tag to be aborted is communicated to the functional unit. This allows for unexpected program detours and abort execution if the machine is returned to the detour point.

m個のプログラマ可視(仮想)レジスタが存在し、ま
たnまでのレジスタ変更用p−opsが未済であることを
許される命令集合アーキテクチャの場合には、少なくと
も(m+n)個の物理レジスタが設けられる。仮想レジ
スタを物理レジスタ内に写像(マッピング)するメカニ
ズムが設けられている。この写像は仮想レジスタを変更
する各p−opの宛先としてそれまでに未使用の物理レジ
スタを使用するために変更されるので、古い仮想レジス
タの値をそれが以前に写像されていた物理レジスタ内に
保持することができる。写像内に置換された物理レジス
タを順番に再使用するのであれば、ある物理レジスタを
再使用しなければならない時まで、ある仮想レジスタへ
写像されていたp−opが引退または打ち切られるであろ
うことを保証するための充分な物理レジスタが存在して
いる。仮想対物理写像を限定するポインタの集合及び使
用可能なレジスタのリストがn個の最も新しく発行され
たp−ops毎に維持されるので、未済のp−opsを打ち切
って、レジスタ間にデータを移動させることなく仮想レ
ジスタを先行値に戻すことができるようになる。
In the case of an instruction set architecture in which there are m programmer-visible (virtual) registers and up to n register modification p-ops are allowed, at least (m + n) physical registers are provided. . A mechanism is provided for mapping a virtual register into a physical register. This mapping is modified to use the previously unused physical register as the destination of each p-op that changes the virtual register, so that the value of the old virtual register is stored in the physical register to which it was previously mapped. Can be held. If the physical registers replaced in the mapping are reused in order, the p-ops mapped to certain virtual registers will be retired or aborted until some physical registers must be reused. There are enough physical registers to guarantee that. Since a set of pointers and a list of available registers that define the virtual-to-physical mapping are maintained for each of the n most recently issued p-ops, any outstanding p-ops are truncated and data is transferred between registers. The virtual register can be returned to the previous value without being moved.

プロセッサの状態を戻すことを可能ならしめる別の技
術は、書き込み待ち行列の使用を必要とする。少なくと
も発信p−op(アドレス及びデータを生成するp−op)
が未済である期間中に、書き込み予約待ち行列バッファ
がメモリまたはデータキャッシュへ書き込む。処理が、
メモリ書き込みのバックアウトを必要となり得る点を通
過した時だけ、書き込み予約待ち行列エントリをメモリ
へ出力する。もし発信p−opが打ち切られれば待ち行列
エントリは待ち行列から削除される。若い読み出しp−
opが、未済書き込みp−opによって書き込まれるメモリ
位置へのアクセスを探索する場合には、書き込み予約待
ち行列内に記憶されているデータが読み出しp−opへ供
給される。もし書き込みp−opが引退すれば読み出しp
−opは、その引退を待機することなく正しいデータを取
得している。反対に、もし書き込みp−opが打ち切られ
れば若い読み出しp−opも打ち切られ、機械状態は書き
込み前の点へ成功裏に戻される。
Another technique that allows returning the state of a processor requires the use of write queues. At least outgoing p-op (p-op for generating address and data)
During the period during which the write reservation is pending, the write reservation queue buffer writes to the memory or data cache. Processing is
The write reservation queue entry is output to the memory only when the memory write has passed a point that may need to be backed out. If the outgoing p-op is aborted, the queue entry is removed from the queue. Young read p-
When the op searches for access to the memory location written by the pending write p-op, the data stored in the write reservation queue is provided to the read p-op. If write p-op retires, read p
-Op obtains correct data without waiting for retirement. Conversely, if the write p-op is aborted, the young read p-op is also aborted and the machine state is successfully returned to the point before the write.

本発明の本質及び長所の更なる理解は、以下の説明及
び図面を参照することによって実現されよう。
A better understanding of the nature and advantages of the present invention will be realized by reference to the following description and drawings.

図面の簡単な説明 図1は、本発明を組み入れたコンピュータシステムの
ブロック線図、 図2は、デコーダ(DEC)の高レベルブロック線図、 図3は、DECの詳細なブロック線図、 図4も、DECの詳細なブロック線図、 図5も、DECの詳細なブロック線図、 図6A〜Bは、特定シーケンスの追跡を示すブロック線
図、 図7A〜Bも、特定シーケンスの追跡を示すブロック線
図、 図8は、レジスタ再割当てを示す概要図、 図9は、メモリ及びキャッシュ制御装置(MCC)のブ
ロック線図、 図10は、整数実行ユニット(IEU)のブロック線図。
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a block diagram of a computer system incorporating the present invention; FIG. 2 is a high level block diagram of a decoder (DEC); FIG. 3 is a detailed block diagram of DEC; 5 is a detailed block diagram of DEC, FIG. 5 is a detailed block diagram of DEC, FIG. 6A-B is a block diagram showing tracking of a specific sequence, and FIG. 7A-B also shows tracking of a specific sequence. FIG. 8 is a schematic diagram showing register reallocation, FIG. 9 is a block diagram of a memory and cache controller (MCC), and FIG. 10 is a block diagram of an integer execution unit (IEU).

図11は、図10の整数実行ユニット(IEU)のブロック
線図の続き。
FIG. 11 is a continuation of the block diagram of the integer execution unit (IEU) of FIG.

表の簡単な説明 表1は、p−opバスフォーマット、 表2は、物理アドレスバス(PAdeBus)フォーマッ
ト、 表3は、データキャッシュバス(DIOBus)フォーマッ
ト、 表4は、データ交換バス(DXBus)フォーマット、 表5は、IEU終端バスフォーマット、 表6は、AP終端バスフォーマット、 表7は、p−op発行及び終端のシーケンス。
BRIEF DESCRIPTION OF THE TABLES Table 1 shows a p-op bus format, Table 2 shows a physical address bus (PAdeBus) format, Table 3 shows a data cache bus (DIOBus) format, and Table 4 shows a data exchange bus (DXBus) format. Table 5 shows the IEU termination bus format, Table 6 shows the AP termination bus format, and Table 7 shows the sequence of the p-op issue and termination.

実施例 システムの概要 図1は、本発明を組み入れたCPU 10のブロック線図
である。F86と呼ばれることもあるCPUは、カリフォルニ
ア州サンタクララのインテル・コーポレーションから19
86年に刊行されたIntel 80386プログラマーズリファレ
ンスマニュアルに記載されているIntel 80386の命令集
合と互換性のある命令集合(マクロ命令)を実行するよ
うに設計されている。図中の各ブロックは、一般的に現
在具体化されている分離した集積回路チップまたはチッ
プ群に対応する。CPUは、システムバス11を介してメモ
リ制御装置、I/Oデバイス、及び多分他のCPUのような外
部デバイスと通信する。機能ユニットの下部に示す参照
番号は、これらの外部デバイスではないCPU10内の要素
を意味するものと理解されたい。
FIG. 1 is a block diagram of a CPU 10 incorporating the present invention. The CPU, sometimes called the F86, comes from Intel Corporation of Santa Clara, California, 19
It is designed to execute an instruction set (macro instruction) that is compatible with the Intel 80386 instruction set described in the Intel 80386 Programmer's Reference Manual published in 1986. Each block in the figure generally corresponds to a separate integrated circuit chip or group of chips as currently embodied. The CPU communicates via the system bus 11 with external devices such as memory controllers, I / O devices, and possibly other CPUs. Reference numbers at the bottom of the functional units should be understood to mean those elements within CPU 10 that are not these external devices.

命令デコーダ(DEC)12は命令取り込み、命令デコー
ド及びパイプライン制御を遂行する。DEC 12は、3つ
までの同時命令の流れの命令先取りを任意選択的に交互
配置する。DEC 12は、完全に連想型の分岐予測キャッ
シュ(BPC)13を含む。BPCは集積された構造であり、分
岐履歴データ、物理分岐目標アドレス、及び分岐目標バ
ッファを各キャッシュメモリ毎に含む。分岐命令がデコ
ードされると、BPCはその分岐に関する情報を調べる。
予測される方向には無関係に分岐は単一のサイクル中に
実行され、パイプラインバブルを生じさせることはな
い。
An instruction decoder (DEC) 12 performs instruction fetch, instruction decoding, and pipeline control. DEC 12 optionally interleaves instruction prefetching for up to three simultaneous instruction streams. DEC 12 includes a fully associative branch prediction cache (BPC) 13. The BPC has an integrated structure, and includes branch history data, a physical branch target address, and a branch target buffer for each cache memory. When a branch instruction is decoded, the BPC looks up information about the branch.
Regardless of the predicted direction, the branch is executed during a single cycle and does not create a pipeline bubble.

各サイクルに、BPC内の3つの命令バッファまたは分
岐目標バッファの1つからマクロ命令が選択される。こ
のマクロ命令はデコードされ、疑似op(p−op)とも、
または命令もしくは演算とも呼ばれることがある内部96
ビットデコード済命令語にアセンブルされ、各種機能ユ
ニットへディスパッチされる。命令のデコードは、一般
に単一サイクルレートで進められる。DEC 12が発行す
る各p−opには、機械内で現在未済の各p−opを独特に
識別するタグを与えられる。タグは昇順で発行され任意
の2つのタグの相対年齢を容易に決定できるようにして
いる。チップ間のバストランザクションは発信p−opの
タグを含む。機能ユニットは、p−op、アドレス、及び
オペランドとこれらのタグとを組(対)にする。
Each cycle, a macro instruction is selected from one of three instruction buffers or branch target buffers in the BPC. This macro instruction is decoded, and the pseudo-op (p-op)
Or internal 96, sometimes called an instruction or operation
Assembled into bit-decoded instructions and dispatched to various functional units. Instruction decoding generally proceeds at a single cycle rate. Each p-op issued by DEC 12 is given a tag that uniquely identifies each p-op currently outstanding in the machine. The tags are issued in ascending order so that the relative age of any two tags can be easily determined. Bus transactions between chips include the tag of the originating p-op. The functional unit pairs a p-op, an address, and an operand with these tags.

DEC 12はまた未済p−opのステータスの追跡と、パ
イプラインの制御と、必要に応じての例外処理の呼出し
とに責を負っている。
DEC 12 is also responsible for tracking the status of outstanding p-ops, controlling the pipeline, and invoking exception handling as needed.

アドレス準備ユニット(AP)15は実行アドレスを計算
し、セグメント再配置を遂行し、要求時ページングされ
るメモリ管理システムを実現する。APは変換索引バッフ
ァ(TLB)を含む。
An address preparation unit (AP) 15 calculates the execution address, performs segment relocation, and implements a memory management system that is paged on demand. The AP includes a translation lookaside buffer (TLB).

整数実行ユニット(IEU)17は殆どの整数命令の単一
サイクル実行を遂行する。IEUは、8×32乗算器及び累
算器アレイ、並びに乗算命令及び除算命令のマイクロコ
ードを含む。パイプライン制御アーキテクチャは、IEU
の整数命令の並列実行及び順不同の実行の両方または何
れか一方の遂行を可能ならしめる。
Integer execution unit (IEU) 17 performs single cycle execution of most integer instructions. The IEU contains 8x32 multiplier and accumulator arrays, as well as microcode for multiply and divide instructions. The pipeline control architecture is IEU
And / or out-of-order execution of integer instructions.

数値プロセッサ(NP)20は、任意選択的に、CPU内に
含ませることができる。これはIEEE浮動小数点標準を高
性能に実現する。NPはパイプライン内に集積され、命令
及びオペランドの転送に関して何等の特別なオーバヘッ
ドも賦課しない。整数(IEU)及び浮動小数点(NP)命
令は同時に遂行される。
A numerical processor (NP) 20 can optionally be included in the CPU. This implements the IEEE floating point standard with high performance. NPs are integrated in the pipeline and do not impose any special overhead on instruction and operand transfers. Integer (IEU) and floating point (NP) instructions are performed simultaneously.

メモリ及びキャッシュ制御装置(MCC)25は、命令及
びデータキャッシュを制御する責を負い、キャッシュコ
ヒーレンシープロトコルを実現する。MCCはシステムバ
ス11へのインタフェースを制御して、キャッシュとメモ
リとの間の高速単一及びブロックモード転送を支援す
る。後述するように、MCCは、整数、浮動小数点、及び
システム書き込みのための書き込み予約表をも含み、ま
たリードアフタライト短絡回路経路を含む。
The memory and cache controller (MCC) 25 is responsible for controlling the instruction and data cache and implements a cache coherency protocol. The MCC controls the interface to the system bus 11 to support high speed single and block mode transfers between cache and memory. As described below, the MCC also includes a write reservation table for integer, floating point, and system writes, and includes a read-after-write short circuit path.

命令キャッシュサブシステムは、タグRAMチップ(ITA
G)27及びキャッシュRAMチップ(ICACHE)30を含む。IT
AG 27内の各エントリは、ICACHE 30内の対応する線の
ためのアドレスタグ、有効ビット、及びアテンションビ
ットを含む。アテンションビットは、DECチップもBPC内
にキャッシュされたこの線からのデータを有することが
できることを指示する。ITAG 27は、命令流アドレスレ
ジスタ31の集合をも含み、各レジスタは3つのどうあっ
ても未済の流れの1つ1つに対応付けられた取り込みア
ドレスを含む。
The instruction cache subsystem uses a tag RAM chip (ITA
G) 27 and a cache RAM chip (ICACHE) 30. IT
Each entry in AG 27 includes an address tag, a valid bit, and an attention bit for the corresponding line in ICACHE 30. The attention bit indicates that the DEC chip can also have data from this line cached in the BPC. ITAG 27 also includes a set of instruction stream address registers 31, each register containing a fetch address associated with each of the three possibly outstanding streams.

データキャッシュサブシステムは、タグRAMチップ(D
TAG)32及びキャッシュRAMチップ(DCACHE)35を含む。
DTAG 32は、DCACHE 35内の各線のためのアドレスタグ
及び線状態ビットを含む。考えられる線状態は、欠落、
共用読み出し、オウンドクリーン、及びオウンドダーテ
ィーであり、ライトバックマルチプロセッサキャッシュ
コヒーレンシープロトコル(変更された書き込み1度)
を支援する。タグRAMはデュアルポート型であり、単一
のサイクル中にCPU及びバスの両者がキャッシュルック
アップをスヌープすることを可能ならしめる。データキ
ャッシュインタフェース(DCI)チップ37はDCACHE 35
をシステムバス11へインタフェースする。
The data cache subsystem uses a tag RAM chip (D
TAG) 32 and a cache RAM chip (DCACHE) 35.
DTAG 32 includes an address tag and line status bits for each line in DCACHE 35. Possible line states are missing,
Shared read, owned clean, and owned dirty, write-back multiprocessor cache coherency protocol (modified once write)
To help. Tag RAM is dual ported, allowing both the CPU and the bus to snoop cache lookups during a single cycle. Data cache interface (DCI) chip 37 is DCACHE 35
To the system bus 11.

各機能ユニットは、電力及び接地プレーン、並びに組
合わされた減結合コンデンサを含む特注のセラミックPG
A内にパッケージされている。ピンのほぼ25%は電力及
び接地に当てられている。0.8ミクロン乃至1.2ミクロン
プロセスの場合I/O遅延はオンチップ限界経路と対等で
ある。チップ間I/Oはパイプライン内に組み込まれてい
るので機械にサイクル時間を付加しない。ICACHE 30及
びDCACHE 35は普通のスタティックRAMを使用してい
る。
Each functional unit is a custom ceramic PG containing power and ground planes and associated decoupling capacitors.
Packaged in A. Almost 25% of the pins are dedicated to power and ground. For 0.8 micron to 1.2 micron processes, the I / O delay is comparable to the on-chip critical path. The chip-to-chip I / O does not add cycle time to the machine because it is built into the pipeline. ICACHE 30 and DCACHE 35 use ordinary static RAM.

種々の機能ユニット間の通信は多数の内部バスを介し
て遂行される。これらには、命令取り込み用64ビットIF
ETCH_DATAバス50、発行されたp−opsをAP、IEU、MCC及
びNPへ通信する104ビットp−opバス52、未済p−ops情
報をAP、IEU、MCC及びNPへ通信する5ビットタグ状態バ
ス53、物理アドレスを通信する32ビット物理アドレスバ
ス(PAdrBus)55、データキャッシュ転送用64ビット
(各方向に32ビット)データキャッシュバス(DIOBu
s)、チップ間交換用32ビットデータ交換バス(DXBus)
58、キャッシュ/メモリ更新用64ビットバス、及び複数
の終了バス(即ち各機能ユニットからDEC 12までのAP
終了バス60、IEU終了バス62、NP終了バス63、及びMCC終
了バス65)が含まれる。これらのバスの若干は全幅であ
り、若干は半幅(時間多重化)である。一般的に、機能
ユニット間の対話は内部プロセッサバス上に充分に限定
されたトランザクションに制限される。
Communication between the various functional units is performed via a number of internal buses. These include a 64-bit IF for fetching instructions
ETCH_DATA bus 50, 104-bit p-op bus 52 for communicating issued p-ops to AP, IEU, MCC and NP, 5-bit tag status bus for communicating pending p-ops information to AP, IEU, MCC and NP 53, 32-bit physical address bus (PAdrBus) 55 for communicating physical addresses, 64-bit data cache transfer (32 bits in each direction) data cache bus (DIOBus)
s), 32-bit data exchange bus (DXBus) for chip-to-chip exchange
58, 64-bit bus for cache / memory updates, and multiple end buses (ie, APs from each functional unit to DEC 12)
End bus 60, IEU end bus 62, NP end bus 63, and MCC end bus 65) are included. Some of these busses are full width and some are half width (time multiplexed). In general, interaction between functional units is limited to well-defined transactions on the internal processor bus.

複数のこれらのバスの詳細に関しては後述する。標準
CMOSスタイル時間多重化I/Oの使用方法によれば、転送
はシステムクロックのフェーズ1(φ1)とフェーズ2
(φ2)との間の境界で発生することを暗示している。
φ2転送は、送信チップがφ1の終りの前に有効データ
をそのI/Oドライバへ準備する必要がある。有効データ
は後続φ2中に受信チップのI/O受信器によって供給さ
れる。φ1転送は丁度反対のタイミングである。
The details of the plurality of these buses will be described later. standard
According to the method of using the CMOS style time multiplexed I / O, the transfer is performed in phase 1 (φ1) and phase 2 of the system clock.
(Φ2).
φ2 transfer requires that the transmitting chip prepare valid data for its I / O driver before the end of φ1. Valid data is provided by the I / O receiver of the receiving chip during the following φ2. φ1 transfer is just the opposite timing.

表1〜6はそれぞれ、p−opバス52、PAdrBus55、DIO
Bus57、DXBus58、IEU終了バス62、及びAP終了バス60の
バスフォーマットを示す。
Tables 1 to 6 respectively show a p-op bus 52, a PAdrBus 55, and a DIO
The bus formats of the Bus 57, DXBus 58, IEU end bus 62, and AP end bus 60 are shown.

パイプライン制御システムの概要 プロセッサのパイプライン制御は上述の機能ユニット
にまたがって分散している。パイプラインの集中スケジ
ューリングまたはスコアボーディングは遂行されない。
DEC 12はアーキテクチャ内の若干の総合資源制約を観
測し、資源制限を犯すp−opの発行を適時遅らせる。各
機能ユニットは、それ自身の内部操作をスケジュールす
る責を負う。インタロック検査はローカルレベルで遂行
される。
Overview of the Pipeline Control System The pipeline control of the processor is distributed across the functional units described above. No centralized scheduling or scoreboarding of the pipeline is performed.
DEC 12 observes some overall resource constraints in the architecture and timely delays issuing p-ops that violate resource limits. Each functional unit is responsible for scheduling its own internal operations. Interlock checking is performed at the local level.

深くパイプライン化された機械では、パイプラインの
種々の段階における例外検出が制御に重大な困難をもた
らす。各段階は、他の段階が未だに先行命令の例外を検
出できる間は、状態の変更を遅らせるに当たって注意深
くなければならない。専用制御論理が一般的であり、パ
イプラインシミュレーションを注意深く遂行しなければ
ならない。
In deeply pipelined machines, exception detection at various stages of the pipeline introduces significant control difficulties. Each stage must be careful in delaying the change of state while the other stages can still detect the exception to the preceding instruction. Dedicated control logic is common and pipeline simulation must be performed carefully.

プロセッサは、単純で、一般的で且つパワフルな幾つ
かの技術を使用してこの複雑さを処理する。DEC 12は
デコードされた命令(p−ops)を発行し、機能ユニッ
トは他の機能ユニットによる例外の検出の結果には拘り
なくアドレス及びオペランドを処理する。前述のよう
に、各p−opにはそれが発行される時にDEC 12によっ
てタグが割り当てられており、DECはこのタグを使用し
てp−opを追跡する。
Processors handle this complexity using several techniques that are simple, general and powerful. DEC 12 issues decoded instructions (p-ops), and the functional unit processes addresses and operands regardless of the result of detecting an exception by another functional unit. As described above, each p-op is assigned a tag by DEC 12 when it is issued, and DEC uses this tag to track the p-op.

DEC 12は、実行が例外の点を過ぎて進行した時点を
決定する責を負う。以下に説明する技術を使用してDEC
は機械の状態を、例外を生じさせたp−opの直前の点
(障害例外)または後続点(トラブル例外)に復元す
る。
DEC 12 is responsible for determining when execution has progressed past the point of exception. DEC using the techniques described below
Restores the state of the machine to the point immediately before (the fault exception) or the point after (the trouble exception) the p-op that caused the exception.

上述したように、各機能ユニットはDEC 12へ戻る終
了バスを有している。これらのバス上の信号は(タグに
よって)p−opが完了した時点と、そのユニットによっ
てどの例外(もしあれば)が検出されたのかを指示す
る。DECはこの情報を使用して、機械内でどのp−opsが
未済であるかを追跡し、資源制約を追跡し、そして例外
処理を開始しなければならない時点を決定する。
As described above, each functional unit has an end bus returning to DEC 12. Signals on these buses indicate when the p-op has completed (by the tag) and what exceptions (if any) were detected by the unit. DEC uses this information to keep track of which p-ops are outstanding in the machine, track resource constraints, and determine when exception handling must begin.

異常終了に応答してDEC 12は、機械の状態を例外の
点へ戻し、例外ハンドラを呼出して異なる命令流かまた
はマイクロ命令のシーケンスの何れかを発行し始める。
プロセッサは5つの一般的メカニズムの1またはそれ以
上を使用して、異常終了へのDECの応答の部分としての
特定状態へ機械を戻すことができるようにする。これら
は打ち切りサイクルの発行、レジスタの再割り当て、書
き込み予約表の使用、履歴スタックの使用、及び機能ユ
ニット直列化である。
In response to the abend, DEC 12 returns the state of the machine to the point of the exception and calls an exception handler to begin issuing either a different instruction stream or a sequence of microinstructions.
The processor uses one or more of five general mechanisms to allow the machine to return to a particular state as part of the DEC's response to the abend. These are issuing abort cycles, reassigning registers, using a write reservation table, using a history stack, and functional unit serialization.

打ち切りサイクルは、DEC 12が発行した命令を機械
から一掃しなければならない時にDECが発行する。打ち
切りサイクル中に、完了することを許すべき命令と機械
から追放しなければならない命令との間の境界を識別す
るタグが全ての機能ユニットに供給される。
The abort cycle is issued by DEC when an instruction issued by DEC 12 must be cleaned from the machine. During the abort cycle, tags are provided to all functional units that identify the boundary between instructions that should be completed and instructions that must be expelled from the machine.

レジスタ再割り当ては、一般的レジスタファイル及び
セグメントレジスタファイルの状態を復元し、打ち切ら
なければならない命令のために行われた変更を流出させ
るために使用される。機能ユニットは、命令集合が指定
するよりも多くの物理的に使用可能なレジスタを有して
いる。DEC 12は、プログラマ可視(もしくは仮想)レ
ジスタを物理レジスタへ写像するポインタの集合を維持
している。デコードされた命令をアセンブルするに当た
ってDECは、適切な物理レジスタ番号をレジスタ指定フ
ィールドに置換する。
Register reallocation is used to restore the state of the general and segment register files and to flush out changes made for instructions that must be aborted. A functional unit has more physically available registers than the instruction set specifies. DEC 12 maintains a set of pointers that map programmer visible (or virtual) registers to physical registers. In assembling the decoded instruction, DEC replaces the appropriate physical register number with a register designation field.

仮想レジスタを変更する場合、DECは先ず新しい物理
レジスタを割り当て、ポインタ集合を変更し、割り当て
られたレジスタ番号を宛先レジスタとして使用する。命
令の実行の後でも古い物理レジスタは未だ仮想レジスタ
の変更された値を含んでいる。レジスタ変更をバックア
ウトするためには、DECはポインタ集合を命令発行前の
値に復元しなければならない。
When changing a virtual register, DEC first allocates a new physical register, changes the pointer set, and uses the assigned register number as the destination register. Even after execution of the instruction, the old physical register still contains the changed value of the virtual register. To back out register changes, DEC must restore the pointer set to its pre-instruction value.

解放された物理レジスタは、物理レジスタの内容を必
要としなくなった後までそれらが自由リストの先頭に現
れることがないように充分に長くした自由リストの終り
に配置される。DECは、以下に説明するように、ポイン
タ値の履歴スタックを維持している。
Freed physical registers are placed at the end of the free list long enough that they do not appear at the beginning of the free list until after they no longer need the contents of the physical registers. DEC maintains a history stack of pointer values, as described below.

書き込み予約表はMCC 25において使用され、その書
き込みを打ち切ってはならないことが知られるまでデー
タ書き込みを待機させる。MCCは内部データバス上のア
ドレス及びオペランドを受信し、それらをタグによって
突き合わせ、そのようにしても安全である場合に不可逆
書き込みを遂行する。
The write reservation table is used in the MCC 25 to wait for a data write until it is known that the write should not be aborted. The MCC receives the address and operand on the internal data bus, matches them by tag, and performs an irreversible write if it is safe to do so.

履歴スタックは、レジスタ再割り当てポインタ、フラ
グレジスタ、及びプログラムカウンタのような雑機械状
態を保管及び復元するために使用される。
The history stack is used to save and restore miscellaneous machine states such as register reallocation pointers, flag registers, and program counters.

稀にしか変更されない機械状態の場合、値の履歴スタ
ックのコストは無視される。これらの場合、変更を遂行
する機能ユニット(そしてそのユニットだけ)が処理を
停止し、機械内の最古の未済命令のタグ(DECから供給
される)が各サイクルに調べられて機械内の全ての古い
命令が成功裏に完了した時点が決定される。この時点に
なると機械状態の古い値を予約する必要はなくなり、ま
た機能ユニットは機械状態の不可逆な変更を行う。
For machine states that change infrequently, the cost of the value history stack is ignored. In these cases, the functional unit performing the change (and only that unit) stops processing, and the tag of the oldest outstanding instruction in the machine (supplied by DEC) is examined in each cycle and all Are determined when the old instruction has been successfully completed. At this point, it is no longer necessary to reserve the old value of the machine state, and the functional unit makes an irreversible change of the machine state.

状態変更をバックアウトする能力と組合わされた分散
型パイプライン制御スキームは、多くの性能最適化を可
能にする。
A distributed pipeline control scheme, combined with the ability to back out state changes, allows for many performance optimizations.

各機能ユニットは全てのp−opsを受信できるが、実
際にそのユニットにおいて処理を必要とする。p−ops
だけを処理する。これは、段が有用な作業を行うと否と
に拘らず命令が全ての段を通って流れる普通のパイプラ
インとは対照的である。
Each functional unit can receive all p-ops, but actually requires processing in that unit. p-ops
Just handle. This is in contrast to a normal pipeline where instructions flow through all stages, whether or not the stages perform useful work.

更に各ユニットは、全ての入力オペランドが使用可能
になると直ちに演算を遂行する。直ちに実行する準備が
整っていないp−opsはそのユニットのp−op待ち行列
内に記憶される。完了すると、その結果はさらなる処理
を行うために次の段に渡され、次の演算が調べられる。
1つの段は、その段が実行するために使用可能な何もの
をも有していない場合に限って実行を停止する。
Further, each unit performs operations as soon as all input operands are available. The p-ops that are not ready for immediate execution are stored in the unit's p-op queue. Upon completion, the result is passed to the next stage for further processing and the next operation is examined.
A stage stops executing only if the stage has nothing available to execute.

この挙動によって機能ユニット間で順不同の実行が可
能になる。例えばアドレス生成インタロックを有するメ
モリ書き込みの場合、APはメモリアドレスを計算するこ
とはできないであろう。しかしIEUはデータを供給する
ことができ、直ちにそれを行い、その後次の命令へ継続
する。APのインタロックは他のパイプライン段内にパイ
プラインバブルを作成する必要はない。後刻、IEUは乗
算の遂行を遅らせるか、またはメモリオペランドを待機
することができる。この時点でAPはIEUに追いつく機会
を有する。
This behavior allows execution in any order between functional units. For example, in the case of a memory write with an address generation interlock, the AP will not be able to calculate the memory address. But the IEU can supply the data, do it immediately, and then continue to the next instruction. The AP interlock does not need to create pipeline bubbles in other pipeline stages. At a later time, the IEU may delay performing the multiplication or wait for a memory operand. At this point the AP has the opportunity to catch up with the IEU.

特定の機能ユニットの観点からすれば、これは複雑な
概念ではない。機能ユニットは局部的に決定を行い、そ
れが命令を完全に順不同ならしめているかも知れないこ
とに全く気付かない。パイプライン制御メカニズムは、
順不同に実行された命令によって行われた変更を流出さ
せ得ることを保証する。機能ユニットは特別な検査は行
わない。
This is not a complicated concept from the point of view of a particular functional unit. The functional unit makes the decision locally and is completely unaware that it may be completely out of order. The pipeline control mechanism is
Ensures that changes made by instructions executed out of order can be drained. Functional units do not perform any special checks.

機能ユニット間の順不同な実行は、プロセッサ内で行
われる分散した決定の結果として自由に発生する。1つ
の機能ユニット内においてさえ、命令は安全に順不同で
実行し得る。IEU17は、この内部順不同実行の例を提供
する。IEUはその命令待ち行列の先頭を調べて、その実
行準備が整っているか否かを見出す。もしデータインタ
ロックが直ちに実行することを阻止していれば、IEUは
次に若い命令を調べて、その実行準備が整っているか否
かを見出す。このプロセスは実行できる命令を見出すま
で続けられる。IEUは、実行の準備が整っている使用可
能な命令が存在しない場合に限ってデータインタロック
ペナルティを支払う。
Out-of-order execution between functional units is free to occur as a result of distributed decisions made within the processor. Even within one functional unit, the instructions can be executed safely and out of order. IEU17 provides an example of this out-of-order execution. The IEU looks at the head of the instruction queue to see if it is ready to execute. If the data interlock prevents immediate execution, the IEU examines the next younger instruction to see if it is ready to execute. This process continues until an executable instruction is found. The IEU pays a data interlock penalty only if no available instructions are ready to execute.

たとえIEUがインタロックペナルティを払ったとして
も、それはプロセッサが全体として1つのサイクルを失
ったことを意味するものではない。たとえIEUが遅れた
としても、後にIEUを必要としない命令が発行された時
に追いつくことができる。最後に、1または複数のペナ
ルティサイクルは、AP15からの1または複数のペナルテ
ィサイクルと重なり合うことができる。
Even if the IEU pays the interlock penalty, that does not mean that the processor has lost one cycle as a whole. Even if the IEU is delayed, it can catch up later when an instruction that does not require the IEU is issued. Finally, one or more penalty cycles can overlap with one or more penalty cycles from AP15.

命令を順不同に実行することを選択する機能ユニット
の特別な場合は、機能ユニット内における命令の並列実
行である。即ち、この概念は、複数のサイクルを要する
命令に適用される。他の単一サイクル命令の並列実行
は、多重サイクル命令が1サイクルの実効スループット
を有することを可能にする。
A special case of a functional unit that chooses to execute instructions out of order is the parallel execution of instructions within the functional unit. That is, this concept applies to instructions that require multiple cycles. Parallel execution of other single cycle instructions allows multi-cycle instructions to have an effective throughput of one cycle.

DCacheミスは、通常は全キャッシュミスペナルティの
ためにパイプラインを停止させる。機能ユニットがキャ
ッシュデータを用いずに実行できる演算を見出すことが
できる範囲までキャッシュミスペナルティは減少され
る。このことはAPチップのTLBにおけるミスに関しても
真である。これらの場合は、ペナルティサイクルの数が
通常かなり高くそれらを有用作業に完全に重ね合わせる
ことが困難な他の場合とは異なる。
DCache misses usually halt the pipeline due to a full cache miss penalty. Cache miss penalty is reduced to the extent that functional units can find operations that can be performed without using cache data. This is true for mistakes in the TLB of the AP chip. In these cases, the number of penalty cycles is usually quite high, unlike other cases where it is difficult to completely overlap them with useful work.

擬似Opバスフォーマット 表1にp−opバス52のフォーマットを示す。このバス
は52ビット幅であり、時間多重化されたバスである。DE
C 12は単独でこのバスを駆動してp−opsをAP、IEU、
及びNPへ発行する。バスは標準CMOSスタイル時間多重化
I/Oを使用する。
Pseudo-Op bus format Table 1 shows the format of the p-op bus 52. This bus is 52 bits wide and is a time multiplexed bus. DE
C12 drives this bus alone to convert p-ops to AP, IEU,
And NP. Bus is standard CMOS style time multiplexed
Use I / O.

典型的には、1つの386/387マクロ命令はDECによって
関連機能ユニットへ発行される1つのp−opに変換され
る。若干の場合には、1つのマクロ命令が発行済p−op
sのシーケンスをもたらす。このp−op発行シーケンス
はアトミック(atomic)であり、即ち1つのマクロ命令
のp−opsの発行が別のマクロ命令のp−opsの発行(ま
たは例外処理シーケンス)と交互配置されることはな
い。
Typically, one 386/387 macro instruction is translated into one p-op issued by DEC to the relevant functional unit. In some cases, one macro instruction is issued p-op
yields a sequence of s. This p-op issue sequence is atomic, i.e., the issuance of p-ops of one macro instruction is not interleaved with the issuance of p-ops of another macro instruction (or exception handling sequence). .

典型的なマクロ命令の場合、1つのp−opは、全ての
関連機能ユニットにそのマクロ命令の必要演算を遂行可
能ならしめるのに充分な情報を含む。これは、メモリオ
ペランドアドレス計算及びセグメント、発信及び宛先オ
ペランドレジスタ、ALU演算、オペランドサイズ、オペ
ランド経路指定、ステータスフラグ変更、及びp−opタ
グ、並びに関連した変位及び即値データ値の両方または
何れか一方の指定を含む。NP p−opsもマイクロアドレ
スを指定する。
In the case of a typical macro instruction, one p-op contains enough information to allow all relevant functional units to perform the necessary operations of the macro instruction. This includes memory operand address calculations and segments, outgoing and destination operand registers, ALU operations, operand sizes, operand routing, status flag changes, and p-op tags, and associated displacement and / or immediate data values. Including the specification of. NP p-ops also specify a microaddress.

殆どのp−opsは、1クロックサイクル中に両クロッ
クフェーズ(φ1及びφ2)を使用してp−opバス上に
転送される。φ1はp−op内に含まれる殆ど全ての制御
情報を転送するために使用され、φ2は変位及び即値の
両方または何れか一方を(制御情報の僅かな雑特別ビッ
トと共に)転送するために使用される。変位及び即値の
両方を含むp−opsの若干の場合(52ビットにパックす
ることができない)には、即値を転送するために第2ク
ロックサイクルが使用される。この第2サイクルは常に
第1クロックサイクルの直後に続く。変位は第1サイク
ルのφ2に転送され、即値は第2サイクルのφ2に転送
される。
Most p-ops are transferred on the p-op bus using both clock phases (φ1 and φ2) during one clock cycle. φ1 is used to transfer almost all control information contained in the p-op, φ2 is used to transfer displacement and / or immediate (with a few extra bits of control information) Is done. In some cases of p-ops that include both displacement and immediate (cannot be packed into 52 bits), a second clock cycle is used to transfer the immediate. This second cycle always immediately follows the first clock cycle. The displacement is transferred to φ2 in the first cycle, and the immediate value is transferred to φ2 in the second cycle.

DEC 12は、全てのクロックサイクル中にp−opバス
を駆動する。通常はこれは正常p−opであるが、DECが
正常p−opを発行する準備が整っていないか、または発
行できないサイクル中は、DECは代わりに空p−opを送
る。
DEC 12 drives the p-op bus during every clock cycle. Normally this is a normal p-op, but during cycles where DEC is not ready or cannot issue a normal p-op, DEC sends an empty p-op instead.

P−op内に情報をエンコードすることのフィロソフィ
は、何よりも先ずあるクロックサイクル内の可能な限り
早い時点にエンコードされていないか、または迅速にデ
コードできる形状で制御情報を供給することである。こ
れは特に各機能ユニットにおける速さが臨界的な演算の
開始に関して、及び変位及び即値の抽出と適切なアドレ
ス及びデータオペランドの導出とに関して真である。そ
れ程臨界的ではない制御情報だけがφ2中に転送される
が、一般的にはφ2中には各機能ユニットはレジスタ及
びp−opの両方からのオペランドのアセンブル/取り込
みを行って、次のφ1に各機能ユニットが内部計算等を
開始できるようにすべきである。
The philosophy of encoding information in a P-op is first and foremost to provide control information in a form that is not encoded as early as possible within a clock cycle or that can be quickly decoded. This is especially true for the start of speed critical operations in each functional unit, and for the extraction of displacements and immediates and the derivation of the appropriate address and data operands. Only less critical control information is transferred during φ2, but typically during φ2 each functional unit assembles / fetches operands from both registers and p-ops and Each functional unit should be able to start internal calculations.

前述のように殆どのマクロ命令は単一のp−opに変換
される。これは若干のより複雑なマイクロ命令を含み、
この複雑さはマイクロ命令を介して機能ユニットの1つ
において処理(例えば、IEU、AP内のPOPAにおける乗
算)されなければならない。しかし可能な場合には、複
雑なマクロ命令は、総合的なシーケンスには気付くこと
なく機能ユニットによって独立的に実行されるp−opシ
ーケンスに変換される。若干の場合には、例えば複数の
レジスタ再割り当て(p−op当たり1つだけが許され
る)、適切なメモリ要求生成のためにAPが要求する複数
のp−opタグ、またはAPによる複数のレジスタ及びフラ
グの更新をAPに通信する必要がある制御情報の量または
本質のために、p−opシーケンスが本質的に必要であ
る。
As mentioned above, most macro instructions are translated into a single p-op. This includes some more complex microinstructions,
This complexity must be handled in one of the functional units via microinstructions (eg IEU, multiplication in POPA in AP). However, where possible, complex macro-instructions are converted into p-op sequences that are executed independently by functional units without being aware of the overall sequence. In some cases, for example, multiple register reallocations (only one per p-op is allowed), multiple p-op tags required by the AP for proper memory request generation, or multiple registers by the AP And, due to the amount or nature of the control information that needs to communicate the flag updates to the AP, a p-op sequence is essentially needed.

若干の複雑なマクロ命令の場合、上述の組合わせも発
生し得る。即ち、p−opのシーケンスが発行され、機能
ユニットの1つがマイクロコード内へ進んでマクロ命令
のコア部分または全部を後続するp−opsと共に実行す
る。例えばシーケンスの最初のp−opがAP及びIEUによ
って処理され、別にAPはマイクロコード内へ進んでさら
なる演算を遂行する。これらのさらなる演算は発行され
る後続p−opsに対応する。概念的には、シーケンスの
p−opsは機能ユニットによって独立的に実行され、こ
の場合にはこれはIEUに関して文字通り真である。しか
しマクロ命令の本質のために、APはp−opシーケンスを
大域的に知る必要がある。従ってこの場合、APはマイク
ロコード内へ進み、単純に後続p−opsと同期する。外
観ではAPは各p−opを独立的に実行し終了するが、内部
的にはAPはp−opタグと各p−opの1または2フィール
ドだけを使用するのである。
For some complex macro instructions, the above combinations may also occur. That is, a sequence of p-ops is issued and one of the functional units goes into the microcode to execute the core portion or all of the macro instruction with the subsequent p-ops. For example, the first p-op of the sequence is processed by the AP and the IEU, while the AP goes into the microcode to perform further operations. These further operations correspond to subsequent p-ops issued. Conceptually, the p-ops of the sequence are performed independently by the functional units, in which case this is literally true for the IEU. However, due to the nature of macro instructions, the AP needs to know the p-op sequence globally. Thus, in this case, the AP goes into the microcode and simply synchronizes with subsequent p-ops. In appearance, the AP executes and terminates each p-op independently, but internally the AP uses only the p-op tag and one or two fields of each p-op.

機能ユニットによるp−opsの発行と認識に関して一
般的な性質の2つの付加的な説明をしておく。第1に、
殆どのp−opsは全ての機能ユニットによるそれらのp
−op入力待ち行列内への待ち合わせをしない。その結
果、各機能ユニットは、全てのp−opsを見ず、処理せ
ず、または時間を消費しない。一般的な場合には、p−
opは、AP及びIEUによって、またはAP及びNPによって認
識される。若干のp−opsはAPだけが見ればよく、1ま
たは2 p−opsは3つの全機能ユニットによって認識され
る。APだけが全てのp−opsを見るのである。
Two additional explanations of the general nature of the issuance and recognition of p-ops by functional units are provided. First,
Most p-ops have their p by all functional units
-Op Do not wait in the input queue. As a result, each functional unit does not see all p-ops, does not process or consumes time. In the general case, p-
op is recognized by AP and IEU, or by AP and NP. Some p-ops need only be seen by the AP, one or two p-ops are recognized by all three functional units. Only the AP sees all p-ops.

第2に、DECが例外処理に入るある理由が存在する場
合にはDECはそのようにし、p−opsに関連するより新し
い例外処理の打ち切りを要するかも知れない未済先行p
−opsが未だに存在していても、対応付けられたp−ops
を発行する。一般に、DECはマクロ命令の観点から適切
な演算を保証するように、p−ops発行に当たって最低
必要な自制を遂行する。
Second, if there is some reason for DEC to enter exception handling, DEC will do so, and the pending predecessor p which may need to abort the newer exception handling associated with p-ops.
-Ops is still present, but the associated p-ops
Issue In general, DEC performs the minimum necessary restraint in issuing p-ops so as to ensure proper operation from the viewpoint of macro instructions.

関連点は、微視的観点から(即ち個々のp−opsのレ
ベルにおいて)、DECが発行できるp−opシーケンスに
対して、またはそれらの発行のタイミングに対して極め
て僅かな見掛け上の制約が存在し、従って機能ユニット
が僅かな仮定をなし得ることである。これは特に、p−
opsの打ち切りに関して僅かな仮定をなすことができる
という事実に適用される。許される未済p−opsの最大
全数及び許される未済NP p−opsの最大数、及び任意時
点にどのp−opsが活動/未済であり得るかに関する保
証のような最も基本的な制約だけが明白である。
The relevant point is that, from a microscopic point of view (ie, at the level of individual p-ops), there are very few apparent constraints on the p-op sequences that DEC can issue, or on the timing of their issuance. Exist, and therefore the functional units can make a few assumptions. This is especially true for p-
Applies to the fact that a few assumptions can be made regarding the truncation of ops. Only the most basic constraints, such as the maximum total number of open p-ops allowed and the maximum number of open NP p-ops allowed, and assurance as to which p-ops may be active / open at any given time are evident. It is.

適切な巨視的命令実行を保証することに関して、簡単
に説明する価値がある1つの面が存在する。若干のp−
opsは、F86マイクロアーキテクチャがp−opによる変更
後にバックアウトする能力を支援しないプログラマ可視
状態を変更する。概念的には、これは、p−opsが全て
実行される前にそのp−opを永続的に実行することをDE
Cが保証できるように、機能ユニットのある程度の静止
を必要とする。これは、全ての機能ユニットが静止状態
に到達してしまうまでDECがそのp−op(及び全ての後
続p−ops)の発行を遅らせるという一般的な技法では
行われない。その代わりとして、所与のp−opに対して
静止を必要とする各ユニットだけによる局所化された
(機能ユニット)基準で行われる。DECは関連機能ユニ
ットによって必要な程度の静止を遂行しながら、これと
後続するp−opsとを発行することができる。更に、静
止内に含まれないユニットは、後続p−opsを完全に実
行し続けることができる。
There is one aspect worth simply explaining about ensuring proper macro instruction execution. Some p-
ops change programmer visibility that does not support the ability of the F86 microarchitecture to back out after modification by p-op. Conceptually, this makes the execution of the p-ops permanent before all of the p-ops are executed.
Requires a certain degree of quiescence of the functional units, as C can guarantee. This is not done with the general technique that DEC delays issuing its p-op (and all subsequent p-ops) until all functional units have reached a quiescent state. Instead, it is done on a localized (functional unit) basis with only each unit requiring static for a given p-op. The DEC can issue this and subsequent p-ops while performing the required degree of quiescence by the associated functional unit. In addition, units not included in the quiesce can continue to fully execute subsequent p-ops.

DECの概要、擬似Op追跡、及び発行制御 各擬似op(p−op)がDECからP−Opバス上に発行さ
れると、それは適切な機能ユニット(AP、IEU、NP)に
よって待機させられる。次いで各機能ユニットは他のユ
ニットにゆるく結合されているp−opの流れを処理し、
各p−opが完了するとDEC 12へ終了を通知する。図2
にブロック線図で示すDEC12は、フロントエンド100、デ
コーダ102及びバックエンド105からなる。図3はDECフ
ロントエンドを、図4はDECデコーダを、図4はDECバッ
クエンドを示す。
DEC Overview, Pseudo-Op Tracking, and Issuance Control As each pseudo-op (p-op) is issued from DEC onto the P-Op bus, it is queued by the appropriate functional unit (AP, IEU, NP). Each functional unit then processes the p-op stream loosely coupled to the other units,
When each p-op is completed, the end is notified to DEC 12. FIG.
The DEC 12 shown in the block diagram includes a front end 100, a decoder 102, and a back end 105. 3 shows a DEC front end, FIG. 4 shows a DEC decoder, and FIG. 4 shows a DEC back end.

DECフロントエンド100は命令バイトを取り込み、デコ
ーダへ供給する責を負う。命令はBPC 13から、またはI
FETCH_DATAバス50によって供給されている3つの命令バ
ッファの1つから供給される。命令バイトは、命令をPC
(プログラムカウンタ)レジスタ112からの情報に基づ
いて位置合わせする回転/けた移動論理110へ供給され
る(一時に24バイト)。8バイトがデコーダ102へ供給
され、デコーダ102は命令長を決定してそれをPC論理112
へへ通信する。命令が8バイトより長い場合には、1サ
イクルに8バイトが通信され、8バイトを超える命令は
次のサイクルに通信される。
The DEC front end 100 is responsible for fetching instruction bytes and supplying them to the decoder. Instruction from BPC 13 or I
Supplied from one of the three instruction buffers provided by FETCH_DATA bus 50. Instruction byte, PC instruction
(Program counter) Supplied to rotation / shift movement logic 110 that aligns based on information from register 112 (24 bytes at a time). Eight bytes are provided to the decoder 102, which determines the instruction length and passes it to the PC logic 112.
Communicate to. If the instruction is longer than 8 bytes, 8 bytes are communicated in one cycle, and the instruction exceeding 8 bytes is communicated in the next cycle.

フロントエンド論理115は流れスタック117を制御し、
流れアドレスをITAG 27へ供給する。2つまでの未済分
岐が、従って3つの未済の流れが存在可能である。制御
論理はどの流れを取り込むのかを指定する命令要求をIT
AG 27内の命令流アドレスレジスタ31へ発行し、流れを
識別する有効ビットを受信する。ITAGがアドレスを供給
すると、それは適切なアドレスレジスタをインクリメン
トさせる。制御論理115は、自己修飾コードに関する命
令の流れ内への書き込みを検出するPADR監視論理120か
らの信号も受信する。
Front end logic 115 controls the flow stack 117,
Supply the stream address to ITAG 27. There can be up to two open branches, and thus three open streams. The control logic sends an instruction request that specifies which flow to take
It issues to the instruction stream address register 31 in the AG 27 and receives a valid bit identifying the stream. When the ITAG supplies an address, it causes the appropriate address register to increment. Control logic 115 also receives signals from PADR monitoring logic 120 that detect writing into the instruction stream for the self-modifying code.

DECデコーダ102はマクロ命令をデコードし、全てのp
−opシーケンスをp−opバス52上に発行する。デコーダ
は、命令レジスタ130内にロードされている命令バイト
(マクロ命令)をフロントエンド100から受信する。マ
クロ命令はデコード論理132によってデコードされ、p
−op型デコード論理135はp−op型に関する情報をフロ
ンテンド及びバックエンドへ送信し、一方命令長デコー
ド論理137はフロントエンド内のPC論理112と通信する。
The DEC decoder 102 decodes the macro instruction and
Issue an -op sequence on p-op bus 52. The decoder receives the instruction byte (macro instruction) loaded in the instruction register 130 from the front end 100. The macro instruction is decoded by decode logic 132 and p
The -op decode logic 135 sends information about the p-op type to the frontend and backend, while the instruction length decode logic 137 communicates with the PC logic 112 in the frontend.

デコーダp−opアセンブリ論理140はデコード論理132
からp−opを受信し、バックエンドからのレジスタ割り
当て情報に従ってそれらを変更する。p−opsは、p−o
pバス52上に駆動されるとp−op出力待ち行列142内にロ
ードされる。発行は、バックエンドからの制御信号に基
づいて発行保持論理145によって遅らされる。
Decoder p-op assembly logic 140 is decoded logic 132
And modify them according to register allocation information from the backend. p-ops is p-o
When driven on the p bus 52, it is loaded into the p-op output queue 142. Issue is delayed by issue hold logic 145 based on control signals from the back end.

デコーダ102は、多重p−opsが単一マクロ命令を発生
する場合に発行を制御するシーケンサ147を含む。デコ
ード保持論理150は、フロンドエンドから有効命令バイ
トが到来しない場合に処理を阻止する。p−opの発行に
伴ってデコーダ102はタグを割り当てる。タグは循環シ
ーケンスで発行され、従って再使用されるが所与の時点
には1つのp−opだけがそのタグに対応付けられてい
る。タグの範囲は、相対年齢を決定できるように、未済
が許されるp−opの数に対して充分に大きくなければな
らない。未済p−opの最大数の少なくとも2倍の範囲と
すれば単純な減算によってこのような決定が可能にな
る。
Decoder 102 includes a sequencer 147 that controls issuance when multiple p-ops generate a single macroinstruction. The decode hold logic 150 blocks processing if a valid instruction byte does not arrive from the front end. When the p-op is issued, the decoder 102 assigns a tag. Tags are issued in a circular sequence and are therefore reused, but at a given point in time only one p-op is associated with that tag. The range of the tags must be large enough for the number of p-ops allowed to be outstanding so that the relative age can be determined. Such a determination can be made by simple subtraction if the range is at least twice the maximum number of outstanding p-ops.

バックエンド105は、全ての未済p−opsがCPUの周囲
に浮動するのを追跡し続ける。信頼できる動作(p−o
p、アドレス、及びデータ処理を制御するCPUのタグ付け
スキームに関連する)を保証し、機能ユニット終了によ
って知らされる異常状態を調停し、そして適切な動作を
開始するようにp−opsの発行を適切に制御する必要が
ある。デコーダがp−opを発行すると、それはそのp−
opに関する情報と共にバックエンドに渡される。これは
上述のタスクを遂行するために必要な正しい動作を識別
するのに使用される。
The back end 105 keeps track of all outstanding p-ops floating around the CPU. Reliable operation (po
issues related to the CPU's tagging scheme that controls p, address, and data processing), arbitrates for abnormal conditions signaled by functional unit termination, and issues p-ops to initiate proper operation Need to be properly controlled. When the decoder issues a p-op, it issues that p-op.
Passed to the backend with information about the op. This is used to identify the correct action required to perform the task described above.

バックエンドは、全ての未済p−opsを追跡し続ける
追跡論理160と、未済p−opsに応答しCPUの正しく且つ
信頼できる動作に要求される種々の制約(後述)を絶え
ず満足するようにデコーダによる爾後のp−opsの発行
を制御する保持条件論理165とを含む。追跡論理160は、
最古の未済p−opのタグ(○○タグ)を含む情報をタグ
ステータスバス53へ供給する。バックエンドは、p−op
sの打ち切りを処理する打ち切り論理170と、後述するポ
インタ集合アレイ177及び自由リストアレイ178を維持す
るレジスタ再割り当て論理175と、タグステータスバス5
3を制御するタグ生成論理179をも含む。
The back end includes tracking logic 160 that keeps track of all outstanding p-ops and a decoder that responds to the outstanding p-ops and constantly satisfies various constraints (described below) required for correct and reliable operation of the CPU. And holding condition logic 165 that controls the subsequent issuance of p-ops. The tracking logic 160
Information including the oldest unfinished p-op tag (OO tag) is supplied to the tag status bus 53. The back end is p-op
abort logic 170 for processing abort of s, register reassignment logic 175 for maintaining a pointer set array 177 and a free list array 178 described later, and a tag status bus 5
3 also includes tag generation logic 179 that controls 3.

バックエンド終了バス論理180は各機能ユニットから
終了情報を受信し、追跡論理160及び打ち切り論理170が
各未済p−opのステータスを維持することを可能ならし
める。若干はある将来時点まで累積される。正常動作中
のこの追跡は主として爾後のp−opsの発行に影響を与
える。しかし対応する終了によって機能ユニットから異
常が通知されると、バックエンドは所与のp−opの多重
異常終了を解決し、適切な応答を開始する。これは、CP
Uの状態をp−op処理のある先行状態まで戻すように他
の全ての機能ユニット(MCCも含む)へ打ち切りサイク
ルを送ることを含む。
Backend termination bus logic 180 receives termination information from each functional unit and enables tracking logic 160 and abort logic 170 to maintain the status of each outstanding p-op. Some are cumulative up to a certain point in the future. This tracking during normal operation mainly affects subsequent issuance of p-ops. However, if the functional unit reports an error with a corresponding end, the backend resolves the multiple abends for the given p-op and initiates the appropriate response. This is the CP
Includes sending an abort cycle to all other functional units (including MCC) to return the state of U to a previous state of p-op processing.

追跡論理160及び打ち切り論理170は、全ての未済p−
opsに関する特定情報を記憶するレジスタを含む。これ
らのレジスタは、未済p−opsのタグの3最下位ビット
に対応する番号0〜7を付された8つの同一レジスタ集
合として編成されている。多くとも7p−opsが未済であ
ることができ、またタグが準じに発行されるから、相対
年齢は位置番号に基づいて決定することができる。追跡
論理160は関連論理を有する8つずつの状態レジスタ19
0、終了レジスタ192、及びp−op情報レジスタ193を含
む。打ち切り論理170は関連論理を有する8つずつの応
答選択レジスタ195、優先順位論理レジスタ197、及び終
了記憶情報レジスタ198を含む。
The tracking logic 160 and the censoring logic 170 determine that all outstanding p-
Contains registers that store specific information about ops. These registers are organized as a set of eight identical registers numbered 0-7 corresponding to the three least significant bits of the pending p-ops tag. At most 7p-ops can be pending and tags are issued accordingly, so relative age can be determined based on location number. The tracking logic 160 comprises eight status registers 19 with associated logic.
0, an end register 192, and a p-op information register 193. The abort logic 170 includes eight response select registers 195 with associated logic, a priority logic register 197, and an end storage information register 198.

各状態レジスタ190は、その位置に対応するタグを有
するp−opが未済であればセットされる単一の状態ビッ
トを記憶する。各終了レジスタ192は、機能ユニット当
たり1つの終了ビットを記憶する。このビットは機能ユ
ニットがp−opを終了するか、または機能ユニットがp
−opに対して動作を起こす必要がない時にセットされ
る。
Each status register 190 stores a single status bit that is set if the p-op with the tag corresponding to that location has not been completed. Each end register 192 stores one end bit per functional unit. This bit indicates whether the functional unit has finished p-op or
Set when no action needs to be taken on -op.

各p−op情報レジスタ193は対応付けられたp−opに
関係する8ビットを記憶する。これらは、機能ユニット
が操作するp−opのタグの最上位ビット、p−opの型
(例えば浮動小数点、分岐)、分岐予測情報、及び打ち
切り群ビットを含む。即ち、“0"はp−opが最終番号で
はなく従って単独では引退できないことを表し、一方
“1"は打ち切り群ビットに“0"を有する隣接の古いp−
opsを打ち切ることなくそのp−opを打ち切ることはで
きないことを表す。
Each p-op information register 193 stores 8 bits related to the associated p-op. These include the most significant bit of the tag of the p-op operated by the functional unit, the type of the p-op (eg, floating point, branch), branch prediction information, and the censoring group bit. That is, "0" indicates that the p-op is not the last number and therefore cannot be retired alone, while "1" indicates that the adjacent old p-op with "0" in the censoring group bit.
This means that it is not possible to abort the p-op without aborting ops.

状態ビットの収集は最古の未済p−opを識別可能なら
しめる。p−opの位置はタグの3最下位ビットを供給
し、情報レジスタは最上位ビットを供給する。状態ビッ
ト及びp−op情報レジスタ193内のビットは、後述する
ように保持条件計算論理165が保持条件を決定すること
を可能にする。
The collection of status bits allows the earliest outstanding p-op to be identified. The location of p-op supplies the three least significant bits of the tag, and the information register supplies the most significant bit. The status bits and the bits in the p-op information register 193 allow the hold condition calculation logic 165 to determine the hold condition, as described below.

各応答選択レジスタ195は、どの応答が必要なのかに
関する情報をフロントエンドに供給する。各優先順位論
理レジスタ197は、所与のp−opの多重異常終了に対す
る応答に対して取るべき適切な動作を指定する。各終了
記憶レジスタ198は関連p−opに作用する機能ユニット
からの異常終了の詳細を含む詳細な終了情報を維持す
る。
Each response selection register 195 provides information to the front end about which response is needed. Each priority logic register 197 specifies the appropriate action to take in response to a multiple abnormal termination of a given p-op. Each termination storage register 198 maintains detailed termination information including details of the abnormal termination from the functional unit acting on the associated p-op.

打ち切りが発生した場合を除く殆どの場合、機能ユニ
ットは未済p−opsのステータスに関係はない。これに
対する主な例外はMCC 25であり、MCCはキャッシュ内へ
のメモリ及びI/O書き込み及びシステムの残余への出力
の両方または何れか一方を実際に遂行するに当たって安
全であることを知る必要がある。特別な場合にはAP及び
IEUも若干のp−opsを実行することが安全であることを
知る必要がある。これらの要求は全て、○○タグ及び信
号打ち切りを表すタグステータスバス53上に各クロック
サイクル毎に連続的に情報を発行するバックエンドによ
って満足される。
In most cases, except when an abort occurs, the functional unit is irrelevant to the status of outstanding p-ops. The main exception to this is MCC 25, which needs to know that it is safe to actually perform memory and / or I / O writes to cache and / or output to the rest of the system. is there. In special cases AP and
The IEU also needs to know that it is safe to perform some p-ops. All of these requests are satisfied by the back end, which continuously issues information every clock cycle on the tag status bus 53, which indicates the OO tag and signal abort.

タグステータスバス タグステータスバス53は5ビットのバスであり、それ
らの信号はφ1だけに限定される。殆どのサイクルにお
いてそうであるが、ビット<5>が0である時には、ビ
ット<4..0>は最古の未済p−opのタグである○○タグ
を表す。ビット<5>が1である時には打ち切りが指示
され、ビット<4..0>はp−opのタグをもとに戻って打
ち切ることを指示する。これは打ち切りタグ(ATag)と
呼ばれる。打ち切りサイクル中にバックエンド105は、
デコーダの次のp−opの発行を無効にし、2つの型の空
p−opsの1つを発行させる。タグステータスバスが、
タグ=iを有するp−opが最古の未済p−opであること
を指示している場合には、これは全ての古いp−ops
(即ち、4ビットの2の補数演算に基づいてタグ<iを
有するp−ops)は最早未済ではなく、引退するものと
見做すことを意味する。p−op(i)を含む全ての若い
発行済p−ops(即ち、タグ≧iを有するp−ops)は未
済である。勿論これは、発行済で爾後に打ち切られるp
−opsを除外する。
Tag Status Bus The tag status bus 53 is a 5-bit bus, and its signals are limited to only φ1. As in most cycles, when bit <5> is 0, bits <4..0> represent the OO tag, the oldest unfinished p-op tag. When bit <5> is 1, abort is instructed, and bits <4..0> indicate to go back and abort based on the tag of p-op. This is called a censored tag (ATag). During the abort cycle, the backend 105
Invalidates the decoder's issuance of the next p-op and causes one of two types of empty p-ops to be issued. Tag status bus
If the p-op with tag = i indicates that it is the oldest unpaid p-op, then this is all old p-ops
(I.e., p-ops with tag <i based on a 4-bit two's complement operation) means that they are no longer outstanding and are considered retired. All young issued p-ops containing p-op (i) (ie, p-ops with tag ≧ i) are pending. Of course, this is the p
Exclude -ops.

未済であると見做すp−opは、それは未だ打ち切り可
能であることを意味し、実際にこれはp−opsを引退さ
せる時を決定するに当たってバックエンド105が使用す
る演算定義である。全ての機能ユニットによってp−op
sの処理が完了すると、(それらの終了に基づいて)可
能な限り直ちにそれらを引退させるのが一般である。し
かし、p−opsを実際に引退させることができるように
なった時には種々の制約がある。その詳細の若干を以下
に説明する。
A p-op considered unfinished means that it can still be censored, and in fact this is the operation definition used by the backend 105 in determining when to retire p-ops. P-op by all functional units
When the processing of s is complete, it is common to retire them as soon as possible (based on their termination). However, there are various restrictions when p-ops can be actually retired. Some of the details will be described below.

最古の未済p−opを引退させる時、タグステータスバ
スはこれを○○タグ=i指示から○○タグ=i+1指示
へ前進させることによって表示する。各及び全クロック
サイクルに最古の未済タグを前進させることができる。
また○○タグ=iから○○タグ=i+n(但し、1≦n
≦7)へジャンプさせて1クロックサイクルに幾つかの
p−opsを効果的に引退させることもできる。もし未済
p−opsが存在しなければ、タグステータスバスは発行
される次のタグを最古の未済として指示する。
When retiring the oldest unpaid p-op, the tag status bus indicates this by advancing it from the ○ tag = i instruction to the ○ tag = i + 1 instruction. The oldest open tag can be advanced each and every clock cycle.
Also, from OO tag = i to OO tag = i + n (1 ≦ n
≦ 7) to effectively retire some p-ops in one clock cycle. If there are no outstanding p-ops, the tag status bus indicates the next tag to be issued as the oldest outstanding.

タグ=iを有するp−op(p−op(i))までの打ち
切りは、タグ≧iを有する全てのp−op(4ビット符号
を付けた2つの補数演算に基づいて)を流出させ、CPU
の状態をp−op(i−1)とp−op(i)との間にあっ
た時の状態までロールバックさせるべきである。これは
次のp−opタグを発行することを含む。換言すれば打ち
切りはp−op(i)及び全ての若いp−opsを流出さ
せ、CPUをこれらのp−opsが見掛け上発行されない状態
に復元すべきである。
Censoring up to p-op with tag = i (p-op (i)) drains all p-ops with tag ≧ i (based on two's complement arithmetic with 4-bit sign), CPU
Should be rolled back to the state when it was between p-op (i-1) and p-op (i). This involves issuing the next p-op tag. In other words, censoring should drain p-op (i) and all young p-ops and restore the CPU to a state where these p-ops are apparently not issued.

タグ=iまでの打ち切りは随時発生させることがで
き、p−op(i)が最古の未済p−opになるまで遅延さ
せる必要はない。またこのような打ち切りはタグ≧iを
有するp−opsが存在市内場合にも発生させることがで
きる。しかしそれでも、打ち切りタグ及び全ての未済p
−opsのタグは、相対年齢に関する全てのタグ比較が未
だに信頼できるものであることを保証される。(傍注と
して、例えばもし7つの未済p−opsが存在していてそ
の打ち切りが発生すれば、打ち切りタグは7番目の(即
ち最も若い)p−opのタグより1つ大きくなければなら
ない。) この流出及び状態のローリングバッグは、(概略で)
打ち切りが通知されたサイクル中に各機能ユニットによ
って遂行されなければならない。デコーダ102は、その
次のサイクルに新しいp−opsの発行を開始するかも知
れないから、このことが必要なのである。これは特に、
方向または型(遠方への制御の転送のための)が誤予測
された「制御の転送」マクロ命令に関して真である。
Censoring up to tag = i can occur at any time, and need not be delayed until p-op (i) becomes the oldest outstanding p-op. Such a termination can also be generated when p-ops having tag ≧ i exist in the city. But still, the censoring tag and all outstanding p
-Ops tags are guaranteed that all tag comparisons for relative age are still reliable. (As a side note, for example, if there are seven outstanding p-ops and their truncation occurs, the truncation tag must be one greater than the tag of the seventh (ie, youngest) p-op.) Rolling bag in spill and condition (in outline)
Censoring must be performed by each functional unit during the notified cycle. This is necessary because the decoder 102 may begin issuing new p-ops in the next cycle. This is especially
The direction or type (for transfer of control away) is true for the mispredicted "transfer control" macro instruction.

要約すれば、各機能ユニットは1サイクル中にそれ自
身を空にし、そのサイクルの終りまでに処理の状態を正
常に戻さなければならない。
In summary, each functional unit must empty itself during one cycle and return to normal by the end of that cycle.

一般的に、打ち切りサイクルに続くサイクルには、別
の打ち切りサイクルを発生させることができるか、p−
opを発行(より多くの爾後のサイクルを用いて)できる
か、または単純な空p−opを発行(デコーダは未だ次の
p−opを発行する準備が整っていないから)できるの何
れかとなる。ある打ち切りサイクルに続く次のサイクル
が別の打ち切りサイクルではないものとすれば、最古の
未済を指示するp−opタグは、その打ち切りサイクルに
先行するものと同じであっても、または戻って打ち切ら
れたタグまで前進せしめられたタグの番号を有していて
もよい。この最後の場合は、打ち切り後に全ての先行
(古い)p−opsが引退し、そして勿論全ての若い未済
p−opsが最早存在しない時に発生する。
In general, the cycle following the censoring cycle may include another censoring cycle or p-
can either issue an op (using more subsequent cycles) or issue a simple empty p-op (because the decoder is not yet ready to issue the next p-op) . Assuming that the next cycle following one abort cycle is not another abort cycle, the oldest outstanding p-op tag may be the same as that preceding the abort cycle, or return It may have the tag number advanced to the censored tag. This last case occurs when all prior (old) p-ops have retired after truncation and, of course, all young outstanding p-ops are no longer present.

タグ発行 以下の説明はp−opタグと、それらが何であるかの概
要と、DEC 12がそれらをどのように発行するかに関す
る。全てのタグは発行される全てのp−opsの一部とし
てDECから発せられる。各p−opタグは、各p−opに関
連するアドレス及びデータにタグを付けるために機能ユ
ニットによって使用される。7つまでの未済p−opsが
許されるものとすれば、少なくとも3ビットのタグが必
要である。これは、相対年齢に関してp−opタグを比較
するのを簡易化するように、更に1つの上位ビットを用
いて4ビットタグに拡張される。即ち、以下に説明する
ようにしてタグを割り当てると、4ビットの2の補数符
号付き比較が2つのタグの相対年齢を確実に指示する。
p−opsを明確に識別するためには注意の時点に3最下
位ビットだけが必要であることに注目されたい。
Tag Issuance The following description relates to p-op tags, an overview of what they are, and how DEC 12 issues them. All tags originate from DEC as part of all p-ops issued. Each p-op tag is used by a functional unit to tag addresses and data associated with each p-op. If up to seven outstanding p-ops are allowed, a tag of at least 3 bits is required. This is extended to a 4-bit tag with one more significant bit to simplify comparing the p-op tags with respect to relative age. That is, assigning tags as described below ensures that a 4-bit two's complement signed comparison indicates the relative age of the two tags.
Note that only the three least significant bits are needed at the point of care to unambiguously identify p-ops.

マクロ命令の順番に対して、これらの命令から得られ
る全てのp−opsは順番に発行され、タグも順番に割り
当てられる。16のタグ値はて有効タグと考えられ、タグ
順は[次のタグ]:=(「現タグ」+1)モジュロ16と
して定義される。従って相対年齢に関する上記比較は確
実に作業する。
With respect to the order of macro instructions, all p-ops obtained from these instructions are issued in order, and tags are also assigned in order. The tag value of 16 is considered a valid tag, and the tag order is defined as [next tag]: = (“current tag” +1) modulo 16. Thus, the above comparison for relative age works reliably.

打ち切りがない命令処理中は、以上の説明がそのまま
適用される。タグ=iまで戻って打ち切りが発生し、CP
U状態がp−ops(i)の直前までロールバックすると、
タグ割り当てもタグ=iまで戻ってリセットされる。相
対年齢比較の信頼性を保証し続けるために、DECはこの
時点からタグ=iで始まる新しいp−opsを発行しなけ
ればならない。効果的に、打ち切られたp−opsのタグ
が新しいp−opsに再発行される。これは、例えば、先
行打ち切りより前の点まで戻った打ち切りが、あたかも
第2の打ち切りだけが発生したかのような効果を呈する
ことを意味する。
The above description is applied as it is during instruction processing without termination. Return to tag = i, censoring occurs, CP
When the U state rolls back to just before p-ops (i),
The tag assignment is reset by returning to tag = i. In order to keep the relative age comparison reliable, DEC must issue new p-ops starting at this point with tag = i. Effectively, the truncated p-ops tag is reissued to the new p-ops. This means, for example, that the censoring that has returned to a point before the preceding censoring has an effect as if only the second censoring had occurred.

より一般的には、打ち切りサイクル及びp−opタグ発
行に関して仮想的に制約されないシナリオの集合が発生
し得る。例えばp−ops(3−7)が未済中であればp
−os(5)まで打ち切り、タグ5−8を発行し、p−op
(6)まで打ち切り、p−op(4)まで打ち切り、タグ
4−5を発行し、p−op(3)まで打ち切り、より多く
のp−opsを発行する等である。CPUの動作とDECの機能
的挙動を与えてこのシナリオは可能であるかも知れない
し可能ではないかも知れないが、主眼点は上記タグ発行
挙動の直後を、p−opsの発行と打ち切りとの間の関係
とすべきことなのである。前節で説明したように、各打
ち切りで各機能ユニットは迅速に空となり、正常動作状
態に戻り、打ち切りを忘れるべきである。
More generally, a set of virtually unconstrained scenarios for censoring cycles and p-op tag issuance may occur. For example, if p-ops (3-7) is not yet completed, p
-Os (5), issue tag 5-8, p-op
Censoring to (6), censoring to p-op (4), issuing tag 4-5, censoring to p-op (3), issuing more p-ops, etc. Given the behavior of the CPU and the functional behavior of the DEC, this scenario may or may not be possible, but the main focus is immediately after the above tag issuance behavior, between the issuance of p-ops and the censoring. That's what the relationship should be. As explained in the previous section, at each abort, each functional unit should quickly be emptied, return to normal operation, and forget the abort.

擬似Opの引退 各機能ユニットによってp−opsが処理されると、そ
のユニットの終了バスを介して終了がDECに通知され、
その機能ユニットによるp−opの完了が指示される。こ
れらはバックエンドによって監視され、追跡されてp−
opsが引退する時点が制御される。バックエンドがある
p−opの引退を何故遅延させるかには特別な内部的理由
はあるが、一般的にはp−opが引退する時点を支配する
2つの発行が存在する。即ち正常環境における適切なCP
U挙動を確保することと、マクロ命令(及び例外処理シ
ーケンス)の適切な打ち切り可能性を確保することであ
る。
When the p-ops are processed by each functional unit, the termination is notified to the DEC via the termination bus of the unit, and
The completion of p-op by the functional unit is instructed. These are monitored and tracked by the backend and p-
Controls when ops retire. Although there are special internal reasons why the back end delays the retirement of a certain p-op, there are generally two issues that govern when a p-op retires. That is, appropriate CP in normal environment
Ensuring U behavior and ensuring proper abortability of macro instructions (and exception handling sequences).

最も基本的なp−opは、全ての機能ユニットがそのp
−opの(一般的には正常な)終了を通知するまでは引退
することはできない。DECのデコーダがある。p−opを
発行すると、そのp−opの型に関する情報もバックエン
ドに渡される。これは、そのp−opを処理するであろ
う、従って終了することが期待される機能ユニットを含
む。この情報に基づいて、完全に終了、即ち完了した
後、他の制約を条件として、バックエンドは可能な限り
速やかにp−opを引退させることになる。
The most basic p-op is that every functional unit has its p
You cannot retire until you signal the (generally normal) termination of -op. There is a DEC decoder. When a p-op is issued, information about the type of the p-op is also passed to the back end. This includes functional units that will process the p-op and are therefore expected to terminate. Based on this information, the backend will retire the p-op as soon as possible after completion or completion, subject to other constraints.

単一の、そして短いp−opシーケンスマクロ命令の場
合、もし何れかのp−opsに障害例外が検出されれば、D
ECは全命令(即ちその全p−op)の打ち切りを取り扱わ
なければならない。これは、それらの全部が完了(正常
な終了で)するまではバックエンドがどのp−opsも引
退させないことを要求する。それらが成功裏に完了する
と、それらは全て同時に引退することになる。
For a single and short p-op sequence macro instruction, if a fault exception is detected in any p-ops, D
The EC must handle the abort of all instructions (ie all its p-ops). This requires that the backend does not retire any p-ops until all of them have completed (at normal termination). If they are completed successfully, they will all retire at the same time.

7p−ops未済の最大限界に接近しているp−opの場合
には、命令打ち切りへのこの接近が望ましいものではな
くなることに注目されたい。例えば、ある命令が7p−op
シーケンスであるとすれば、7番目のp−opを発行した
後、それ以上のp−opsを発行する前の7p−opsの全部の
完全終了を待機しながらDECは実効的に静止する。長さ
が7p−opsより長いp−opシーケンスの場合には、適切
な命令打ち切りを支援する上で異なるアプローチが絶対
的に必要である。
Note that in the case of a p-op approaching the 7p-ops outstanding maximum limit, this approach to instruction abort is not desirable. For example, one instruction is 7p-op
If it is a sequence, after issuing the seventh p-op, the DEC effectively stops while waiting for the complete termination of all 7p-ops before issuing any more p-ops. For p-op sequences longer than 7p-ops, a different approach is absolutely necessary to support proper instruction truncation.

若干の場合には、これはとにかく命令による若干のメ
モリ書き込みを実際に発生可能にするある組合わせを介
して処理できる。若干の場合には、p−opシーケンスの
初めに1またはそれ以上の特別p−opsを使用して、こ
の検査を行わなければシーケンス内の後のp−opsの1
つまで検出されない例外障害を検出する若干の特別検査
を行うことも可能または受け入れることができる。本発
明は、これらの特別アップフロント検査の間に実p−op
シーケンスの最初のp−op(等)によって行われる検査
を加えることであり、これらの早めのp−opsの1つだ
けが命令打ち切りをもたらすことができ、全ての遅めの
p−opsは例外障害のない実行が保証される。
In some cases, this can be handled via some combination that allows some memory writing by instructions to actually occur anyway. In some cases, one or more special p-ops may be used at the beginning of the p-op sequence and one of the later p-ops in the sequence without this check.
It is also possible or acceptable to perform some special checks to detect exceptions that are not detected until now. The present invention provides a real p-op during these special upfront inspections.
Is to add the check performed by the first p-op (etc.) of the sequence, only one of these early p-ops can result in instruction abort, all late p-ops are exceptions Fault-free execution is guaranteed.

命令打ち切りを支援するこれらのアプローチを用いる
と、早めのp−opsだけをそれらが全て成功裏に完了す
るまで未済のままとすればよい。詳述すれば、これらの
シーケンスではシーケンスの数多いp−opsの最初だけ
をこのようにしてDEC(即ちバックエンド)によって処
理すればよく、また残余のp−opsはそのように制約さ
れないことを指示している。DEC内部ではこの効果に関
する情報は、各p−opが発行される都度デコーダからバ
ックエンドへ渡される。特別アップフロントp−opsと
実シーケンスの最初のp−opとの組合せが全ての例外障
害を捕らえるのに充分であるような多くの場合には、早
めのp−opsでさえそれらが各々完了すると直ちに引退
させることができる。これは、もし特別p−opsが命令
のバックアウトに重大な影響を及ぼさなければ(即ちそ
れがプログラマ可視状態を変更しなければ)容認でき
る。
With these approaches to supporting instruction abortion, only the early p-ops need to be left open until they have all been successfully completed. In particular, these sequences indicate that only the beginning of the p-ops with the largest number of sequences need be processed by the DEC (ie, backend) in this way, and that the remaining p-ops are not so constrained. are doing. Within DEC, information about this effect is passed from the decoder to the back end each time a p-op is issued. In many cases where the combination of the special upfront p-ops and the first p-op of the actual sequence is sufficient to catch all exception faults, even earlier p-ops will each complete You can retire immediately. This is acceptable if the special p-ops do not significantly affect the backout of the instruction (i.e., it does not change the programmer visibility).

P−opsの引退に関する最後の一般的な考察は、たと
えあるマクロ命令のあるシーケンスの全てのp−opsが
完了したとしても、もし早めのp−opが未だに完了して
いなければ完了済のおそめのp−opsは引退することは
できないということである。これは本質的に、p−ops
は順番に引退しなければならないことを見る別の方策で
ある。しかし古いp−opが完了し、引退できるよになる
と、そのp−op及びこれらの遅めのp−opsの両者は全
て同時に引退することになる。
A final general consideration of the retirement of P-ops is that even if all p-ops of a certain sequence of a macro instruction have been completed, if the earlier p-op has not yet been completed, That means that p-ops cannot be retired. This is essentially p-ops
Is another way to see that you have to retire in turn. However, when the old p-op is complete and ready to retire, both that p-op and these later p-ops will all retire at the same time.

表7はタグ発行及び終了のシーケンスを示す。シーケ
ンス内の4点A、B、C及びDが示され、4つの間隔の
境界を限定している。図4の(A)、(B)及び図7の
(A)、(B)はそれぞれシーケンス点A〜Dにおいて
追跡論理160及び打ち切り論理170のレジスタ内に記憶さ
れる情報を示す。単一のp−opまたはp−opsの群は打
ち切り群に属するものとして指定される。打ち切り群
は、何れかを完了させるために全て完了しなければなら
ない1またはそれ以上のp−opsからなる。換言すれ
ば、もし打ち切り群内のp−opsの1つを打ち切る必要
があればその打ち切り群内の全てのp−opsを打ち切る
必要がある。
Table 7 shows the sequence of tag issuance and termination. Four points A, B, C and D in the sequence are shown, delimiting the boundaries of the four intervals. FIGS. 4A and 4B and FIGS. 7A and 7B show information stored in registers of tracking logic 160 and censoring logic 170 at sequence points AD, respectively. A single p-op or group of p-ops is designated as belonging to the censoring group. A censoring group consists of one or more p-ops that must all be completed in order to complete either. In other words, if one of the p-ops in the censoring group needs to be censored, all the p-ops in that censoring group need to be censored.

第1間隔中にp−ops(3、4、5)が発行され、p
−ops(4、5)は打ち切り群(AG)に属する。図6
(A)は打ち切り論理レジスタ内にある追跡中の情報を
示す。詳述すれば、p−opが発行されると、p−op情報
はタグ番号に対応する位置に記憶され、p−ops(3、
4、5)のための状態レジスタがセットされ、それらの
p−opsを発行されたものとして指定する。p−ops
(3、5)のための打ち切りビットがセットされ、打ち
切り群p−op(3)に属するp−ops(4、5)がある
打ち切り群の唯一の番号であることを指示する。
During the first interval, p-ops (3, 4, 5) are issued,
-Ops (4, 5) belongs to the censoring group (AG). FIG.
(A) shows tracking information in the abort logic register. More specifically, when the p-op is issued, the p-op information is stored at a position corresponding to the tag number, and the p-ops (3,
The status registers for 4,5) are set, specifying their p-ops as issued. p-ops
The censoring bit for (3,5) is set, indicating that p-ops (4,5) belonging to censoring group p-op (3) is the only number in a certain censoring group.

第2間隔中にp−op(6)が発行され、p−op(3)
の正常終了が通知される。図6(B)から明白なよう
に、p−op(6)のための状態ビットが状態レジスタ19
0(6)内にセットされ、p−op(3)のためのAP終了
ビットが終了レジスタ192(3)内にセットされ、そし
て正常AP終了が終了記憶レジスタ198(3)内に書き込
まれる。
During the second interval, p-op (6) is issued and p-op (3)
Is notified. As is apparent from FIG. 6B, the status bit for p-op (6) is
Set in 0 (6), the AP end bit for p-op (3) is set in end register 192 (3), and the normal AP end is written into end storage register 198 (3).

第3間隔中にp−ops(7、8、9)が発行され、p
−ops(7、8)はある打ち切り群に属する。この間隔
中にIEUはp−op(3)が正常に終了したことを指示
し、APはp−op(4)が正常に終了したことを指示し、
そして、p−op(6)が正常に終了したことを指示す
る。図7(A)はp−ops(7、8、9)のための状態
ビットが状態レジスタ190(7)、190(0)及び190
(1)内にセットされ、IEU終了ビットが終了レジスタ1
92(3)及び190(6)内にセットされ、AP終了ビット
が終了レジスタ192(4)内にセットされることを示し
ている。対応する正常終了が終了記憶レジスタ198
(3)、198(6)及び198(4)内に書き込まれる。p
−op(3)が引退可能であり、状態レジスタ190(3)
内の状態ビットが取り消されていることに注目された
い。
During the third interval, p-ops (7, 8, 9) are issued,
-Ops (7,8) belongs to a censoring group. During this interval, the IEU indicates that p-op (3) has completed successfully, the AP indicates that p-op (4) has completed normally,
Then, it indicates that p-op (6) has been completed normally. FIG. 7A shows that the status bits for p-ops (7, 8, 9) are stored in status registers 190 (7), 190 (0) and 190.
Set in (1) and the IEU end bit is set to the end register 1
Set in 92 (3) and 190 (6), indicating that the AP end bit is set in end register 192 (4). Corresponding normal end is end storage register 198
(3), written in 198 (6) and 198 (4). p
-Op (3) is retireable, status register 190 (3)
Note that the status bits in have been canceled.

第4間隔中には、未済として許される最大数である7
未済p−opsが存在しているために、付加的なp−opsは
発行されない。この間隔中に、APはp−ops(5、6、
7)が正常に終了したことを指示し、IEUはp−ops
(4、5、9)が正常に終了したことを指示する。しか
し次いでAPはp−ops(7)が異常に(例えばページ障
害)終了したことを指示し、それに次いでIEUはp−ops
(7)が正常に終了下ことを指示する。この結果、p−
ops(4、5、6)が引退可能となり、それらは最早未
済p−opsとして指示されなくなる。しかし、p−ops
(8)が異常終了しているために、p−ops(8)の打
ち切り群の一員であるp−ops(7)と、p−ops(8)
の後に発行されたp−ops(9)も打ち切らなければな
らない。従って打ち切り論理170は7のATagをタグ状態
バス上に発行し、あたかもp−ops(7、8、9)が発
行されなかったかのように機能ユニット(この場合AP及
びIEU)を戻さなければならないことをこれらの機能ユ
ニットに通知する。
During the fourth interval, the maximum number allowed as unpaid is 7
No additional p-ops are issued because there are outstanding p-ops. During this interval, the AP receives p-ops (5, 6,
7) indicates successful completion, and the IEU indicates that p-ops
Indicates that (4, 5, 9) has been completed normally. But then the AP indicates that p-ops (7) has terminated abnormally (eg, page fault), and then the IEU
(7) indicates that the process is completed normally. As a result, p-
ops (4, 5, 6) are now retireable and they are no longer designated as open p-ops. However, p-ops
Since (8) is abnormally terminated, p-ops (7) and p-ops (8) which are members of the censoring group of p-ops (8)
Must also be aborted. Thus the abort logic 170 must issue 7 ATags on the tag status bus and return the functional units (in this case AP and IEU) as if p-ops (7, 8, 9) had not been issued. To these functional units.

擬似Op発行制約 バックエンドは未済p−opsと各機能ユニットのp−o
p終了を追跡し、バックエンド内の保持条件論理165も未
済p−opsのステータスを使用して付加的なp−opsの発
行を制御する。CPUの正しい総合動作と特定の機能ユニ
ット(特定的にはDEC、AP及びNP)内の論理の特定のブ
ロックの動作とを保証するために、バックエンドは種々
の型の未済p−opsの最大数に関する種々の制約を連続
的に課す。動作中にこれらの制約によって賦課される限
界に到達すると、バックエンドは保持条件信号をデコー
ダへ送って次ぎのサイクルに発行されるp−opを遅延さ
せなければならないか否かを制御させる。
Pseudo Op issue constraint Back-ends are unfinished p-ops and p-o of each functional unit
Tracking p-termination, the retention condition logic 165 in the backend also uses the status of outstanding p-ops to control the issuance of additional p-ops. In order to guarantee the correct overall operation of the CPU and the operation of specific blocks of logic within specific functional units (specifically DEC, AP and NP), the backend is the maximum of various types of outstanding p-ops. Various constraints on numbers are continuously imposed. When the limits imposed by these constraints are reached during operation, the backend sends a hold condition signal to the decoder to control whether the p-op issued in the next cycle must be delayed.

バックエンドはほぼ半ダースの保持条件信号を生成し
てデコーダへ送り次ぎのp−opを潜在的に遅延させる。
デコーダはこれらの信号を使用し、現在デコード/アセ
ンブルされているp−op及び通知された保持条件が適用
されるか否かに基づいて実際のp−opデコード/発行保
持を発生する。各保持条件は1またはそれ以上の(類
似)制約に対応する。任意の制約の場合には、バックエ
ンドが未済が最大数であることと、これらのp−opsの
1つが将に完全に終了したことを決定すると、対応する
保持条件信号が発生する。
The back end generates approximately half a dozen hold condition signals to send to the decoder, potentially delaying the next p-op.
The decoder uses these signals to generate the actual p-op decode / issue hold based on the currently decoded / assembled p-op and whether the notified hold condition applies. Each retention condition corresponds to one or more (similar) constraints. In the case of an arbitrary constraint, if it is determined that the backend is the maximum number of outstanding and one of these p-ops has completely completed, a corresponding holding condition signal is generated.

多数の制約の場合には、関連する型の最古の未済p−
opが完全に終了する最初のp−opであることが保証され
る。また若干の制約の場合には、保持条件は、単に全て
の未済(即ち引退していない)p−opsに基づくのでは
なく、未済で完全に終了していないp−opsに基づく。
あるp−opが完全に終了すると、たとえ更に数サイクル
に亙って未済のままとなっても、それは最早特定の機能
ユニットのハードウエア制限に伴う若干の制約には無関
係である。
For many constraints, the oldest unpaid p-
It is guaranteed that op is the first p-op to finish completely. Also, in the case of some constraints, the retention condition is based on unfinished and not fully completed p-ops, rather than simply on all unfinished (ie, not retired) p-ops.
Once a p-op has completed, even if it remains open for several more cycles, it is no longer subject to any restrictions imposed by hardware limitations of the particular functional unit.

バックエンドはデコーダへ保持条件を提示する主発生
器の1つではあるが、保持条件の源は他に幾つか存在す
る。このような保持条件は現p−opの発行に関して適用
されるかも知れないし、適用されないかも知れない制限
を通知する。p−op発行制御に関して完全に一般的とす
るために、各クロックサイクル中、擬似Opバスは有効p
−opかまたは空p−op(これは多分打ち切り動作と共
に)の何れかによって駆動されると言うことができる。
デコーダの観点からすれば、以下の何れかが発生しない
限りデコーダは常に有効p−opを発行する。
Although the back end is one of the main generators that presents the hold condition to the decoder, there are several other sources of the hold condition. Such retention conditions signal restrictions that may or may not apply with respect to the issuance of the current p-op. During each clock cycle, the pseudo-Op bus has an active p in order to be completely general with respect to p-op issue control.
It can be said that it is driven either by -op or empty p-op (which may be with a truncation operation).
From the decoder's point of view, the decoder always issues a valid p-op unless one of the following occurs:

1)バックエンドからの打ち切り優先、 2)バックエンドからの保持、 3)BPCからの保持、 4)VIB(仮想命令バッファ)からの保持、 5)接頭のみのデコード、 6)2サイクルp−opの第2半分の送り。1) Priority given to termination from back end 2) Holding from back end 3) Holding from BPC 4) Holding from VIB (virtual instruction buffer) 5) Decoding of prefix only 6) 2 cycle p-op The second half of the feed.

勿論、5)及び6)はデコーダが生成するものであ
り、4)及び5)はマクロ命令シーケンスの第1p−ops
にのみ適用できるものである。
Of course, 5) and 6) are generated by the decoder, and 4) and 5) are the first p-ops of the macro instruction sequence.
Is applicable only to

“BPCからの保持”は、デコーダが次のマクロ命令を
デコードしようとしてBPC内にキャッシュできる「制御
の転送」命令(若干の型の転送制御命令はキャッシュさ
れない)を見出した時に発生する。このような命令に対
してデコーダは、あるエントリ(対エントリの目標流)
の予測情報へBPCアクセスを試みる必要がある。この制
御の転送命令に対するBPCアクセスは命令のデコード中
に発生する。もしこのBPCアクセスサイクルをデコーダ
が使用可能でなければ、BPC保持が生成される。もし予
備情報に関してBPCへのアクセスが使用でき、ミスが発
生すれば、たとえBPC目標流アクセスが使用できなくて
もデコーダは進行することができる。もしヒットが発生
し、BPCの両部分へのアクセスが使用可能でなければBPC
保持が生成される。そうでない場合にはデコーダは予備
情報を用いて進行することができ、一方BPCエントリの
目標流はこの転送制御命令に割り当てられた新しい命令
待ち行列内へダンプされる。
"Retain from BPC" occurs when the decoder tries to decode the next macro instruction and finds a "transfer control" instruction that can be cached in the BPC (some types of transfer control instructions are not cached). In response to such an instruction, the decoder performs a certain entry (target stream of entry).
It is necessary to try BPC access to the prediction information of. The BPC access to the control transfer instruction occurs during the decoding of the instruction. If this BPC access cycle is not available to the decoder, a BPC hold is generated. If access to the BPC is available for preliminary information and a miss occurs, the decoder can proceed even if BPC target stream access is not available. If a hit occurs and access to both parts of the BPC is not available, the BPC
A hold is generated. Otherwise, the decoder can proceed with the preliminary information, while the target stream of BPC entries is dumped into the new instruction queue assigned to this transfer control instruction.

“VIBからの保持”は、デコーダが次のマクロ命令を
デコードしようとしているが、必要な全命令バイト(命
令長に対して)を受信していない場合に発生する。検出
済の有効接頭バイトを渡したデコーダは、少なくとも有
効演算コードバイトを有するか、またはVIB保持が強制
されなければならない。この演算コードバイトの予備デ
コードに基づいてもしmod r/mバイトが必要であれば、
これも提示されるかまたはVIB保持が再度強制されなけ
ればならない。更に、mod r/mバイトの予備デコードに
基づいてもしs−i−bバイトが必要であれば、s−i
−bバイトに対しても同じことが適用される。これらの
バイトが有効であるとすれば、最終命令バイト(実際に
はそれを含むVIB語)が調べられ(そして暗示的に全て
の中間バイトも)、もし有効でなければ(即ち“悪い”
または“空”)VIB保持が生成される。
"Retain from VIB" occurs when the decoder is trying to decode the next macro instruction but has not received all the required instruction bytes (for the instruction length). Decoders that pass a detected valid prefix byte must have at least a valid opcode byte, or VIB retention must be enforced. Based on the preliminary decoding of this opcode byte, if mod r / m bytes are needed,
This must also be presented or VIB retention must be enforced again. Further, based on the preliminary decoding of mod r / m bytes, if sib bytes are needed, si
The same applies to -b bytes. If these bytes are valid, then the last instruction byte (actually the VIB word containing it) is examined (and implicitly all intermediate bytes), and if not valid (ie "bad").
Or "empty") VIB retention is generated.

“接頭のみのデコード”は、デコーダが次のマクロ命
令をデコードしようとしているが、それまでに接頭しか
デコードされておらず、現在は更に2つの接頭がデコー
ドされている場合に発生する。1接頭及び第2空バイト
の場合は、第2バイトが空でなくなるまで“VIBからの
保持”として取り扱われるか、または1接頭バイトが消
費されVIBが前進した“接頭のみのデコード”として取
り扱われる。
"Decode only prefix" occurs when the decoder is trying to decode the next macro instruction, but only the prefix has been decoded so far, and now two more prefixes are being decoded. In the case of one prefix and a second empty byte, it is treated as "hold from VIB" until the second byte is no longer empty, or it is treated as "prefix only decoding" where one prefix byte is consumed and the VIB is advanced. .

“第2半分…の送り”は、デコーダが2サイクルのp
−opの第1サイクルを将に発行する時に発生する。この
サイクル中に特別な空p−opが付加的なp−op情報と共
に送られ、次のp−opのデコード及び生成は遅延され
る。
"Sending the second half ..." means that the decoder
Occurs when the first cycle of -op is issued to the general. During this cycle, a special empty p-op is sent with additional p-op information, and the decoding and generation of the next p-op is delayed.

“バックエンドからの保持”は、発行されるp−opの
型のために、バックエンドの信号に基づいて、デコーダ
がp−opを直ちに発行するのは“安全”ではないことを
理解すると発生する。以下にバックエンドによって強制
される全ての未済p−op制約を列挙する。
"Hold from backend" occurs when it is not "safe" for the decoder to issue a pop immediately based on the backend signal, due to the type of p-op issued. I do. The following lists all outstanding p-op constraints enforced by the backend.

1)7つの合計p−ops、 2)2つの制御の転送p−ops、 3)単一のステッピングモード内の1つの打ち切り群、 4)セグメントレジスタ再割り当てを伴う2つのp−op
s、 5)DEC静止後の0の更なる第1p−ops。
1) 7 total p-ops, 2) two control transfer p-ops, 3) one abort group in a single stepping mode, 4) two p-ops with segment register reallocation.
s, 5) Additional first p-ops of 0 after DEC rest.

7つの合計未済p−opsの最大数は全ての引退してい
ないp−opsに適用される。一般に、従ってこの制約の
場合、p−opsは順番に完全終了しない。しかしバック
エンドだけはp−opsを順番に引退させることができ
る。
The maximum number of seven total outstanding p-ops applies to all unretired p-ops. In general, therefore, for this constraint, the p-ops do not complete completely in order. However, only the back end can retire p-ops in order.

最大2つの未済制御の転送p−opsは、これら全ての
p−opsに適用されるが、より正確にはこの制約は実際
には制御の転送マクロ命令とそれらのp−opシーケンス
の第1p−opsに適用される。この制御の場合、制御の転
送p−opsは、それらが未済であり且つ完全に終了して
いない間だけ重きをなす。このp−opが完全に終了した
が未だに引退していない場合は、ハードウエア制限に関
して最早重要ではない。命令取り込みページ相互要求が
生成される時点と、如何にそれらが処理されるかに依存
して、たとえ2つの転送制御p−opsが未済ではなくと
もバックエンドはこの保持状態を通知することができ
る。しかし比較的古い順次命令流に関して未済命令取り
込み倍長語が存在する全ての場合には、この制約に対す
るインパクトは存在しない。IEUは制御の転送p−ops
(IEUを含むp−ops)を順番に終了させることが要求さ
れることに注目されたい。
Up to two outstanding control transfer p-ops apply to all these p-ops, but more precisely this constraint is actually a control transfer macro instruction and the first p-op of their p-op sequence. applied to ops. In the case of this control, the transfer p-ops of the control are weighted only while they are pending and not completely terminated. If this p-op has finished completely but has not yet retired, it is no longer important with regard to hardware limitations. Depending on when the instruction fetch page cross-requests are generated and how they are processed, the backend can signal this hold even if the two transfer controls p-ops are not outstanding. . However, there is no impact on this constraint in all cases where an unfinished instruction fetch doubleword exists for a relatively old sequential instruction stream. IEU is control transfer p-ops
Note that it is required to terminate (p-ops including IEU) in order.

p−op単一ステッピングが可能になると(ハードウエ
アのデバッグの目的から)、一時に1打ち切り群のp−
opsが発行され、完全に終了され、次ぎの群が発行され
る前に引退する。
When p-op single stepping becomes possible (for hardware debugging purposes), one censored group of p-ops at a time
Ops are issued, completely terminated, and retired before the next group is issued.

セグメントレジスタのために使用される再割り当てス
キームの故に、データセグメントレジスタ(即ちDS、E
S、FS、GS)のためのセグメントレジスタ再割り当てを
含む2つの未済p−opsしか存在できない。セグメント
レジスタ読み出し専用の、またはCS及びSSの両方もしく
は何れか一方に記憶されるp−opsには、この制約は適
用されない。その目的は、p−opsを記憶する何れか
の、及び全てのセグメントレジスタに渡される打ち切り
可能性を保証することである。AP静止挙動がCS/SS記憶
p−opsに既に適用されているので、CS及びSSへの記憶
を含む必要はない。
Due to the reallocation scheme used for the segment registers, the data segment registers (ie, DS, E
There can only be two outstanding p-ops including segment register reallocation for S, FS, GS). This restriction does not apply to p-ops that are read only from segment registers or stored in CS and / or SS. Its purpose is to guarantee the abortability passed to any and all segment registers that store p-ops. It is not necessary to include storage in CS and SS, since AP stationary behavior has already been applied to CS / SS storage p-ops.

DEC静止p−opが発行されるとデコーダは更なるp−o
psを順次発行し続けることができるが、ある更新された
制御ビット情報がAPからバックエンドによって受信され
るまでは次のマクロ命令のデコードを遅延させなければ
ならない。これらの制御ビットは、デコーダのマクロ命
令デコード及びp−opアセンブリプロセスに影響するEF
1agsの種々のビットである。デコーダが依存する1また
はそれ以上のEF1agsビットに変更をもたらすp−opは、
DEC静止p−opとして取り扱わなければならない。これ
によってこれらのビットのDECコピーが、更なるマクロ
命令のデコードが発生する前に更新されるようになる。
予測される更新がAPから受信されるまで、バックエンド
は保持条件を生成して異なるマクロ命令デコードと第1p
−opの発行とを禁止する。
When a DEC static p-op is issued, the decoder will add another p-o
The ps can continue to be issued sequentially, but the decoding of the next macro instruction must be delayed until some updated control bit information is received by the backend from the AP. These control bits are used by the EF to affect the macro instruction decoding and the p-op assembly process of the decoder.
Various bits of 1ags. A p-op that changes one or more EF1ags bits on which the decoder depends is
Must be treated as a DEC static p-op. This causes the DEC copy of these bits to be updated before further macroinstruction decoding occurs.
Until the expected update is received from the AP, the backend generates a hold condition to decode the different macro instruction and
Prohibit issuing -op.

打ち切り無効を除き全てのデコード保持条件は、デコ
ーダが次のデコードサイクルを始動させなければならな
い時点までに(即ち、現在活動の命令待ち行列を前進さ
せるために制御等を準備し、新たに活動の待ち行列にア
クセスして新しいVIB内容を発生させ、そして予備デコ
ードを遂行するのに遅れないように)デコーダの次の動
作状態を決定可能とするのに充分に早めに決定される。
デコーダが生成するp−opは破棄され、空p−opによっ
て置換されるから、打ち切り無効は後刻まで生成されな
いし、生成する必要もない。同時にバックエンドによっ
てデコーダは生成すべき新しいp−opシーケンスにジャ
ムされ、ベクトル化される。(注:タイミング及びベク
トル宛先に対して1以上のジャム及びベクトルの型が存
在する。) 上述のように、種々の(DEC内部)ユニットによって
通知される正常保持条件の場合、デコーダは各機能から
の実際の保持信号と対話せず、デコーダはこれらの信号
を受信しない。代わりとして各ユニットは保持条件信号
を送り、これらの信号は生成中のp−opの型を表す状態
信号と組合わされ(論理積され)て実際の保持信号を発
生する。これらの信号は、デコーダが生成する付加的な
保持信号と組合わされ(論理和され)て総合デコーダ保
持信号を発生する。これはp−op発行及びデコーダ状態
シーケンシングを制御するだけではなく、他のユニット
にも送られて、デコーダとの対話に限ってそれらの状態
シーケンシングに影響を与える。
All decode hold conditions, except truncation disabled, must be set by the time the decoder must start the next decode cycle (i.e., prepare control, etc. to advance the currently active instruction queue, and renew the It is determined early enough to be able to determine the next operating state of the decoder (so as to be able to access the queue to generate new VIB content and perform the preliminary decoding).
Since the p-op generated by the decoder is discarded and replaced with an empty p-op, the truncation invalidity is not generated until later and need not be generated. At the same time, the decoder is jammed and vectorized by the back end to a new p-op sequence to be generated. (Note: There is more than one type of jam and vector for timing and vector destinations.) As noted above, for normal hold conditions signaled by various (DEC internal) units, the decoder must Does not interact with the actual holding signals of the decoder, and the decoder does not receive these signals. Instead, each unit sends a hold condition signal, which is combined (and ANDed) with the state signal indicating the type of p-op being generated to generate the actual hold signal. These signals are combined (OR'ed) with additional hold signals generated by the decoder to generate an overall decoder hold signal. This not only controls p-op issuance and decoder state sequencing, but is also sent to other units to affect their state sequencing only with interaction with the decoder.

機能ユニット静止 機能ユニットがp−opsを処理する際に、それらはプ
ログラマ可視及び関連状態に対する変更を打ち切るか、
またはバックアウトする能力を確保しなければならな
い。これらは、全ての共通して変更した性能限界状態、
汎用レジスタ、不動小数点レジスタ、及び殆どのセグメ
ントレジスタ、PC、及びステータスフラグを含む。他の
もの、即ち滅多に変更されることがない特別状態は、履
歴スタックを介して、またはレジスタ再割り当てを使用
して戻されることはない。代わりにこれらは、支配して
いる(1または複数の)機能ユニットによってこれらが
変更できる時点を制限することによって処理される。こ
のプロセスを静止と名付ける。
Functional unit quiesce As functional units process p-ops, they abort changes to programmer visibility and associated state,
Or you must have the ability to back out. These are all commonly changed performance limit states,
Includes general purpose registers, fixed point registers, and most segment registers, PCs, and status flags. Others, special states that rarely change, are not returned via the history stack or using register reallocation. Instead, they are handled by limiting when they can be changed by the controlling functional unit (s). Call this process quiescent.

本質的に、任意の特別なレジスタの場合、(1または
複数の)所有者は、関連p−opが最古の未済p−opとな
るまで変更の遂行を遅延させる。このようになると別の
(早めの)p−opのためにそのp−opが打ち切られる可
能性はなくなる。更に、その打ち切りをもたらすであろ
うこのp−opを原因とする考え得る理由は、多分既に検
査済の筈である。従って、今は変更を遂行するのに安全
と考えられる。(もし爾後に支配/変更機能ユニットが
そのp−opのバックアウトの理由を検出できれば変更を
取り消すことができるように、何が必要であってもその
ようにしなければならない。) もしあるp−opをAPに加えて他の機能ユニットによっ
ても処理されれば、その支配中の機能ユニットだけが異
常終了を通知できる。これら全p−opsは、他の機能ユ
ニットが常に正常終了を通知するように限定され、書き
込まれる。もし2つの機能ユニットが共に特別なレジス
タを支配していれば、それらは各々それら自身のコピー
を変更し、そのp−opは両ユニットが常に正常終了を通
知するようになろう。
In essence, for any special register, the owner (s) delays performing the change until the associated p-op is the oldest outstanding p-op. This eliminates the possibility that the p-op will be aborted for another (earlier) p-op. Furthermore, a possible reason for this p-op, which would lead to its truncation, has probably already been examined. Therefore, it is now considered safe to carry out the change. (Must be done whatever is necessary so that the controlling / modifying functional unit can subsequently undo the change if it can detect the reason for the backout of that p-op.) If the op is processed by the other functional unit in addition to the AP, only the controlling functional unit can notify the abnormal end. All these p-ops are limited and written so that other functional units always notify normal termination. If two functional units both dominate a special register, they will each modify their own copy, and their p-ops will cause both units to always signal successful completion.

任意の場合には、あるp−opによって変更される特別
状態に依存する機能ユニットだけが静止に巻き込まれ
る。そのp−opを処理する他の全ての機能ユニットは正
常に挙動する。本質的に、あるp−opの静止は局所化さ
れた基準で、且つ必要な場所だけで発生する。なるべく
多くのCPUは正常処理を継続し、(1または複数の)静
止機能ユニットによるp−op処理だけが多分減速され
る。
In any case, only functional units that depend on the special state that is changed by a certain p-op are involved in the stationary. All other functional units that process the p-op behave normally. In essence, some p-op quiescence occurs on a localized basis and only where needed. As many CPUs as possible continue normal processing, and only the pop-up processing by the static functional unit (s) is possibly reduced.

殆どの特別レジスタをAPが支配している限り、殆どの
静止p−opsはAPだけによる静止を要求する。これらの
多くはAPだけのp−opsであり、一方残余はAP/IEU p−o
psである。NPによる静止(AP/NP p−ops上の全部)は、
それが処理する3つの制御レジスタに対する変更のため
である。デュアル機能ユニット静止の場合は、現在AP及
びIEUに制限されている。これは、あるp−opがFE1agレ
ジスタの方向フラグを変更する時に発生する。AP及びIE
Uは共に最新コピーを維持しているから、AP及びIEUは並
列ではあるが、独立した静止を遂行する。
Most quiescent p-ops require quiescence by the AP only, as long as most of the special registers are dominated by the AP. Many of these are AP-only p-ops, while the remainder is AP / IEU p-o
ps. Resting by NP (all on AP / NP p-ops)
Because of the changes to the three control registers it processes. In case of dual functional unit stationary, it is currently restricted to AP and IEU. This occurs when a certain p-op changes the direction flag in the FE1ag register. AP and IE
AP and the IEU perform a parallel but independent quiesce because U both maintain the latest copy.

たとえ任意のp−opを処理中にある機能ユニットが静
止しても、これは必ずしもそのユニットがそのp−opの
処理を開始する前に権利を静止することを意味しない。
特にAPが静止の場合には、静止前にそのp−opの処理の
一部を遂行することができる。APに必要なことは、特別
なレジスタを変更する点において静止することだけであ
る。静止が完了するとAPは変更を遂行し、処理を続行す
ることができる。
Even if a functional unit is quiescing while processing any p-op, this does not necessarily mean that the unit will quiesce rights before starting processing the p-op.
Particularly when the AP is stationary, a part of the processing of the p-op can be performed before the stationary. The AP only needs to be stationary in changing special registers. When the quiesce is complete, the AP performs the change and can continue processing.

DECも静止を遂行することはできるが、これは他の機
能ユニットによって遂行される静止にやや似ているだけ
である。DEC静止p−opの発行に続いて、DECは若干のp
−opsのアセンブリ及び発行を遅延させる。この遅延
は、APからの「制御ビット更新」をDECが受信するまで
発生している。DEC静止の更なる説明は先行節を参照さ
れたい。「制御ビット更新」に関しては、後述のAP終了
バスの節を参照されたい。
DEC can also perform quiescing, but this is only somewhat similar to quiescing performed by other functional units. Following the issuance of the DEC static p-op, DEC
-Delay assembly and issuance of ops. This delay occurs until DEC receives a “control bit update” from the AP. See the preceding section for a further description of DEC stationary. For the "control bit update", see the section on the AP termination bus described later.

DEC静止の場合には、DECがAPから制御ビット更新を受
信する他の場合と同様に、若干の特別制御ビットのDEC
コピーが更新される。これはAPによるこれら制御ビット
のそれ自身のコピーの変更と共に発生する。DECによっ
て保持されているコピーは、DECが所有しているマスタ
コピーとしては見られないが、その代わりにAPによって
DEC内に維持されている二次コピーとして見られる。DEC
はこれらのビットに対する更新をバックアウトする能力
は有していない。しかし、APもこれらのビットのマスタ
コピーを変更せねばならず、またそれ自身のコピーを変
更する前に制御ビット更新を送らないであろうから、こ
れが問題となることはない。これはAP静止を要求し、従
ってDECの制御ビットコピーの更新は関連p−opが最古
の未済となるまでAPによって効果的に遅延させられる。
In the case of DEC quiesce, as in other cases where DEC receives control bit updates from the AP, some special control bits DEC
The copy is updated. This occurs with the AP changing its own copy of these control bits. The copy held by DEC will not be seen as a master copy owned by DEC, but will instead be
Seen as a secondary copy maintained in DEC. DEC
Does not have the ability to back out updates to these bits. This is not a problem, however, since the AP must also change the master copy of these bits and will not send control bit updates before changing its own copy. This requires AP quiescing, so the update of the DEC control bit copy is effectively delayed by the AP until the associated p-op is the oldest outstanding.

異常終了処理 前述のように、バックエンドは各機能のp−opsの終
了を監視し、全ての未決p−opsに関するステータスを
累積する。この情報に基づいて、バックエンドはp−op
sの引退(一般的には全ての関連ユニットによって正常
終了した後、対異常終了)を制御し、新しいp−opsが
デコーダによって発行される時点に影響を及ぼす。p−
opsが完了し、1またはそれ以上の異常終了を受信する
とバックエンドは適切な応答を決定する責も負い、次い
でそれを適切な時点に開始する。
Abnormal Termination Processing As described above, the back end monitors the termination of p-ops of each function, and accumulates the status regarding all undecided p-ops. Based on this information, the backend is p-op
Controls the retirement of s (generally successful after all associated units, then abend) and affects when new p-ops are issued by the decoder. p-
When the ops complete and receive one or more abends, the backend is also responsible for determining an appropriate response, and then starts it at the appropriate time.

バックエンドは所与のp−opの異常終了を含む終了を
受信すると、一般に全ての予測される終了を受信してし
まうまで、それらを累積する。もし異常終了が存在すれ
ば、そのp−opは引退することを許されない。この時点
で、バックエンドは適切な応答を開始する。もし複数の
異常終了が存在すれば、バックエンドは異常終了に対す
る応答を優先させ、選択する。異常終了処理のこれらの
両面を以下に説明する。
When the backend receives terminations, including abnormal terminations of a given p-op, it generally accumulates them until all expected terminations have been received. If an abend exists, the p-op is not allowed to retire. At this point, the backend initiates the appropriate response. If there is more than one abend, the backend will prioritize and select the response to the abend. These two sides of the abnormal termination process will be described below.

応答を開始する前のこの待機は、早めの/古いp−op
異常終了応答(これらは後刻検出され開始される)によ
って入れ子され/取り替えられる異常終了応答から生ず
る対話の場合を処理する設計上の複雑さを最小にするた
めに行われる。また例外処理の開始をもたらす異常終了
の場合だけをこのようにして処理するものとすれば、待
機によって性能に重大なペナルティが課せられることは
ない。
This wait before initiating a response is an early / old p-op
This is done to minimize the design complexity of handling the dialogue case resulting from the abend response nested / replaced by the abend responses (which are detected and initiated later). In addition, if only the abnormal termination that causes the start of the exception processing is performed in this way, a serious penalty is not imposed on the performance due to the standby.

バックエンドによって開始される特定応答は、当該異
常終了と古いp−opsが未決が否かとに依存する。これ
は、当該p−opに明示的に依存するのではなく、特にそ
のp−opの演算コードに明示的に依存しない。応答は適
切なタグ(これは必ずしも異常終了p−opのタグである
必要はない)を有する打ち切りサイクルを送ることが多
い。打ち切りサイクル中に、または併発打ち切りを伴わ
ない空p−opを発行するサイクル中に、バックエンドは
デコードがデコード及びp−opが発行した演算を続行す
る状態へデコーダをジャムし、ベクトル化する。例外処
理を開始しなければならない場合には、デコーダはマク
ロ命令処理へ戻る前にアセンブル及び発行する適切なp
−opシーケンスにベクトル化される。開始する例外の型
に依存して、異常終了したp−opは打ち切り内に含ませ
てもよいし、または正常のように引退させてもよい。
The specific response initiated by the backend depends on the abnormal end and whether or not old p-ops are pending. This does not explicitly depend on the p-op, but in particular does not explicitly depend on the operation code of the p-op. The response often sends an abort cycle with the appropriate tag, which need not be the tag of the aborted p-op. During a truncation cycle, or during a cycle that issues an empty p-op without concurrent truncation, the backend jams and vectorizes the decoder to a state where the decode continues decoding and p-op issued operations. If exception handling must be started, the decoder will assemble and issue the appropriate p before returning to macro instruction processing.
-Vectorized into op sequences. Depending on the type of exception being initiated, abnormally terminated p-ops may be included in the censoring or may be retired as normal.

応答する異常終了が例外処理をもたらさないような殆
どの場合には、p−opが完全に終了すると即答が開始さ
れる。僅かな特別異常終了の場合には、その終了がバッ
クエンドによって受信された直後に応答が発生する。こ
れらの終了は正常終了とは考えられないが、それ以上に
有益である。これらの終了は、爾後の終了が予測される
こと、及び機能ユニットから特別異常終了の生成を要求
されることから真の終了ではない。
In most cases where the responding abend does not result in exception handling, an immediate response is initiated when the p-op has completely terminated. In the case of a minor special abend, a response occurs immediately after the end is received by the backend. These terminations are not considered normal terminations, but are more useful. These terminations are not true terminations, because subsequent terminations are expected and the functional unit is required to generate a special abnormal termination.

これらの場合の対する応答は例外処理の開始を含む上
述の応答に類似し、ある適切なp−opシーケンスにベク
トル化するだけではなく代わりにマクロ命令へ戻ってベ
クトル化する可能性を含む。換言すれば、p−opシーケ
ンス内の遅めのp−opsはうちきられ、デコーダはマク
ロ命令流のデコードを(現命令待ち行列または異なる命
令待ち行列からの)次の命令から続行する。また少ない
異常終了の場合、応答が直接デコーダに影響を与えない
か、DECに内部的に他の演算を開始させるかの両方また
は何れか一方をもたらす。
The response to these cases is similar to the response described above, including the start of exception handling, and includes the possibility to vectorize back to the macro instruction instead of just vectoring to some appropriate p-op sequence. In other words, the later p-ops in the p-op sequence are killed and the decoder continues decoding the macro instruction stream from the next instruction (from the current instruction queue or a different instruction queue). Also, in the case of low abends, the response will either not directly affect the decoder and / or cause DEC to start another operation internally.

IEU終了バス 表5は、5ビットIEU終了バス62のフォーマットを示
す。このバスは標準CMOSスタイル時分割I/Oを使用し、
p−opsの正常終了と2つの型の異常終了(例外及び誤
予測分岐方向)とを通知する。φ2にバスは3ビットp
−opタグと2ビット終了Idとを供給する。
IEU End Bus Table 5 shows the format of the 5-bit IEU end bus 62. This bus uses standard CMOS style time division I / O,
The normal termination of p-ops and two types of abnormal termination (exception and mispredicted branch direction) are notified. φ2 bus has 3 bits p
Supply the -op tag and the 2-bit end Id.

DECのデコードのタイミング及びp−opアセンブリパ
イプライン故に、もしIEU終了コード及び関連p−opタ
グがφ2−φ1に(即ち1フェーズ早く)時分割で送ら
れると、DECは正しい次のp−op(正しい次のマクロ命
令からの、または適切な例外処理p−opシーケンスから
の)が後続する打ち切りサイクルで直ちに応答すること
ができる。
Because of the timing of DEC decoding and the p-op assembly pipeline, if the IEU exit code and associated p-op tags are sent in time division to φ2-φ1 (ie, one phase earlier), DEC will return the correct next p-op (From the correct next macro instruction or from the appropriate exception handling p-op sequence) can immediately respond in a subsequent abort cycle.

一般に、IEUはp−opsを順不同で(DECによる発行の
順番に対して)終了することができ、またそのように終
了するであろう。p−opsを処理/実行する順番に関す
る限りにおいて同じ型の2つのp−ops間の相対直列化
をIEUによって維持しなければならないような若干のp
−opの特定の場合が存在する。一般的に、これらの場合
の実行順序は決定的であって、終了順ではない。IEUが
条件付き(近)制御の転送p−opsだけを見る制御の転
送p−opsは、相対直列順に終了することがIEUによって
要求される。DECの観点からすれば、これらのp−opsを
順番に処理することが絶対的に必要ではない。
In general, the IEU can and will terminate p-ops out of order (relative to the order of issuance by the DEC). Some p-ops such that the relative serialization between two p-ops of the same type must be maintained by the IEU as far as the order of processing / executing p-ops is concerned
There is a specific case of -op. In general, the order of execution in these cases is crucial, not the order of termination. The control transfer p-ops in which the IEU sees only conditional (near) control transfer p-ops is required by the IEU to end in relative serial order. From a DEC perspective, it is not absolutely necessary to process these p-ops in order.

IEUがp−opsを処理するに当たって、それらを何時終
了できるかに関して2つの場合がある。1)p−opsが
実行後にDXBus転送を要求しない場合、そのp−opは正
しい終了を知った時に終了することができる。2)実行
後にp−opsがこのような転送を要求する場合にはその
p−opは、転送が確実に発生することを知るか、または
実際に発生していることを知ると終了できる。何れの場
合も終了はこれらの時点の後に発生することができる。
換言すれば、1)の場合には、もし終了が無条件に正常
であればALU動作中に、またもし終了がALU動作に依存し
ていればALU動作が完了した直後に、p−opを終了させ
ることができる。2)の場合には、IEUが転送に関してD
XBus調停に勝利したことを知ると、p−opを終了させる
ことができる。
As the IEU processes p-ops, there are two cases as to when they can be terminated. 1) If the p-ops do not request a DXBus transfer after execution, the p-op can terminate when it knows the correct termination. 2) If the p-ops request such a transfer after execution, the p-op can be terminated if it knows that the transfer will occur reliably, or if it knows that the transfer is actually occurring. In either case, termination can occur after these points.
In other words, in the case of 1), p-op is set during the ALU operation if the termination is unconditionally normal, or immediately after the ALU operation is completed if the termination depends on the ALU operation. Can be terminated. In case 2), the IEU has D
Knowing that the XBus arbitration has been won, the p-op can be terminated.

一般的なIEUパイプラインと、出力待ち行列タイミン
グ及び命令と、IEUTerm(即ちφ2−φ1)のタイミン
グとに基づいて、現在ではIEUの以下の実際の終了挙動
が予測される。結果をDXBusを介して転送する必要がな
いp−opsの場合には、終了はALU動作サイクル中に開始
される。殆どのp−opsの場合、これは無条件に正常終
了であり、転送制御p−opsの場合の正しい終了はALUサ
イクルの最初の部分中に決定される(これはINTO命令p
−opにも適用される)。時には、終了バス上へ出て行く
ことができないこの終了は待機させられ、後刻(しか
し、勿論極めて直ちに)DECへ通知される。
Based on the general IEU pipeline, output queue timing and instructions, and the timing of IEUTerm (ie, φ2-φ1), the following actual termination behavior of the IEU is now predicted. For p-ops where the result does not need to be transferred via DXBus, termination is initiated during the ALU operating cycle. For most p-ops, this is unconditionally successful and the correct termination for transfer control p-ops is determined during the first part of the ALU cycle (this is the INTO instruction p
Also applies to -op). Occasionally, this termination, which cannot go out on the termination bus, is queued and signaled to DEC at a later time (but, of course, quite immediately).

結果をDXBus上へ転送する必要があるp−opsの場合に
は、終了は転送サイクル中に開始される。この場合も、
もし終了が直ちに出て行くことができなければ待機させ
られ、後刻送られる。
For p-ops that need to transfer the result onto the DXBus, termination is started during the transfer cycle. Again,
If the end cannot be exited immediately, it is put on hold and sent later.

上記1)の場合に属し、異常終了をもたらし得る、そ
してALU動作に依存するBOUND及びREPed列マクロ命令に
関連するp−opsの場合には、1)の場合の上記タイミ
ングは作業しない。これらの場合p−opsは、あたかも
それらが結果をDXBus上へ送出する必要があるかのよう
に取り扱われる。
In the case of p-ops, which belong to the case 1) above, may result in abnormal termination and depend on the ALU operation dependent BOUND and REPed column macroinstructions, the timing in case 1) does not work. In these cases, the p-ops are treated as if they needed to send the result over DXBus.

終了が何故順不同に生成されるかについては2つの理
由がある。第1に、IEUは処理/実行するp−opsを順不
同に選択する。第2に、実行順序に対してIEUはp−ops
を更なる順不同で終了することができる。概述すればIE
Uは、1)p−opsの場合は直ちに終了し、2)p−ops
の場合には先ずDXBus上へ進まなければならない(多分
そのようにするにはIEUのデータ出力待ち行列内で待機
してから)。後者の場合、これらのp−opsは、それら
が実際にDXBus上へ進むと終了する。付加的に、待ち合
わせが1)及び2)終了を(一時的に)超えるものとす
れば、待ち合わせした終了に先立って若干の高い優先順
位終了(例えば制御の転送終了)が通知される可能性も
ある。(勿論制御の転送p−opsの相対直列化は確保し
なければならない。) 制御の転送終了には関係なく、全ての場合にIEUはp
−opを終了する前にその処理を完了させなければならな
い。これはAPからIEUへのレジスタ更新をもたらすか、
または単純にメモリオペランドをレジスタへ転送するp
−opsを含む。両型のp−opsに関して、そのp−opが終
了する前に発信オペランドを受信しなければならない。
これをAPの挙動と対比して説明すると、種々の転送およ
びレジスタ更新の場合、APは何が効力のあるレジスタ更
新であるかを受信する前に終了することができる(組合
わせるレジスタ結果を必要とするかも知れないとして
も)。
There are two reasons why terminations are generated out of order. First, the IEU selects p-ops to process / execute in no particular order. Second, the IEU is p-ops
Can be terminated in any further order. IE in a nutshell
U is 1) immediately ends in the case of p-ops, and 2) p-ops
In this case, you must first go on DXBus (perhaps to do so by waiting in the IEU data output queue). In the latter case, these p-ops end when they actually go on the DXBus. Additionally, if the queuing is to (temporarily) exceed 1) and 2) ending, there is a possibility that a slightly higher priority ending (eg, control transfer ending) will be signaled prior to the queuing ending. is there. (Of course, the relative serialization of the control transfer p-ops must be ensured.) Regardless of the end of the control transfer, the IEU is p
The process must be completed before terminating -op. Does this result in a register update from the AP to the IEU,
Or simply transfer the memory operand to a register
-Ops included. For both types of p-ops, the outgoing operand must be received before the p-op ends.
To illustrate this in contrast to the behavior of the AP, for various transfers and register updates, the AP can terminate before receiving what is a valid register update (requires a combined register result). Even if you do).

IEUはp−opを処理中に検出した異常に応答して異常
終了を通知した後は、そのp−opが正常に終了したかの
ように他のp−opsの処理を続行する。IEUはp−opsの
処理を停止せず、ある意味では異常終了に対する来たる
べき応答を待機する。
After notifying the abnormal end in response to the abnormality detected during the processing of the p-op, the IEU continues the processing of other p-ops as if the p-op ended normally. The IEU does not stop processing the p-ops, but rather waits for an upcoming response to the abend.

IEU終了 以下に表5に示す終了を説明する。IEU Termination The termination shown in Table 5 is described below.

知らせるべき実終了が存在しない場合には終了を通知
してはならない。終了バスは全クロックサイクル中有効
であり、常に何かを指示しなければならない。
If there is no actual end to inform, the end shall not be signaled. The end bus is valid for all clock cycles and must always indicate something.

正常終了は、あるp−opの処理中に異常が検出されな
ければ通知される。
The normal termination is notified if no abnormality is detected during the processing of a certain p-op.

誤予測分岐方向終了は、予測した分岐方向が正しくな
い場合に制御の転送p−ops(これらは条件付き近制御
転送でなければならない)上で通知される。これは、正
しく予測された分岐方向の場合の正常終了の代わりであ
る。
Mispredicted branch direction termination is signaled on control transfers p-ops (these must be conditional near-control transfers) if the predicted branch direction is incorrect. This is an alternative to a successful completion for the correctly predicted branch direction.

異常終了は例外理由のためのものであり、対応するア
ーキテクチャ的に定義された例外を通知するためにそれ
ぞれ使用される。除算誤差はDIV及びIDIVマクロ命令の
p−opシーケンス内のEUabortと共に注釈をつけるp−o
ps上に使用される。束縛検査及びINTO溢れはそれぞれBO
UND及びINTO命令のEUabort p−ops上で使用される。RE
P′ed命令繰り返し停止終了はREP′ed列マクロ命令のp
−opシーケンスのp−ops、即ちEUabortと共に注釈をつ
けるp−ops上に通知される。もしそのp−opによって
遂行される試験が、列マクロ命令の繰り返しを停止させ
るべきことを指示すれば、この終了は正常終了の代わり
に通知される。もしp−op試験が列命令の繰り返しをを
始動させるべきではない(即ち0繰り返しの遂行)こと
を指示したとしても、これが適用される。これらの状況
において例外が検出されなければ、正常終了が通知され
る。
Abends are for exception reasons and are each used to signal a corresponding architecturally defined exception. The division error is annotated with p-o annotated with EUabort in the p-op sequence of DIV and IDIV macro instructions.
Used on ps. BO for binding inspection and INTO overflow
Used on EUabort p-ops for UND and INTO instructions. RE
The P'ed instruction repeat stop is terminated by the rep'ed column macro instruction
Notified on the p-ops of the -op sequence, i.e. the p-ops annotated with EUabort. If the test performed by the p-op indicates that the repetition of the column macro instruction should be stopped, this termination is signaled instead of a normal termination. This applies even if the p-op test indicates that the repetition of the column instruction should not be triggered (i.e., performing zero repetition). If no exception is detected in these situations, normal termination is signaled.

1つのp−opに多重異常をIEUが検出する可能性はな
く、従ってIEU異常終了間に相対優先順位は発行されな
いが、他の機能ユニットの終了に対して優先順位が発行
される。IEU内の所与のp−op型に対して1つの型の例
外しか存在し得ないから、DEC打ち切り論理はそのp−o
pに基づいて例外の型を独特に識別できる。IEU異常終了
は、AP及びNP異常終了に対してDECによって認識された
それらの優先順位に基づいて幾つかの群にグループ化さ
れる。殆どの異常終了は中間優先順位群内にグループ化
され、一方REP停止終了は低優先順位を有する。
There is no possibility that the IEU will detect multiple anomalies in one p-op, so no relative priority will be issued during IEU abnormal termination, but a priority will be issued for the termination of another functional unit. Since there can be only one type of exception for a given p-op type in the IEU, the DEC censoring logic uses its p-o
Exception types can be uniquely identified based on p. IEU abends are grouped into groups based on their priority as recognized by DEC for AP and NP abends. Most abnormal terminations are grouped into medium priority groups, while REP termination terminations have low priority.

誤予測分岐方向終了は、全てのAP終了に対して固定さ
れた特定の優先順位を有していない点が特別である。そ
の代わりにAP終了と組合わされた実行分岐方向(予測し
た方向及び予測の正しさ)がDECバックエンドによって
開始される動作を決定する。
The mispredicted branch direction end is special in that it does not have a specific priority fixed for all AP ends. Instead, the execution branch direction (predicted direction and correctness of the prediction) combined with the AP termination determines the action initiated by the DEC backend.

AP終了バス 表6はAP終了バス60のフォーマットを示す。このバス
は標準CMOSスタイル時分割I/Oを使用し、p−opsの正常
終了及び種々の異常終了を通知する。
AP End Bus Table 6 shows the format of the AP end bus 60. This bus uses standard CMOS style time division I / O and signals normal termination of p-ops and various abnormal terminations.

DECデコードのタイミングとp−opアセンブリパイプ
ライン故に、もしAP終了コードが1フェーズ早めに(φ
2−φ1)時分割で送られれば、DECは正しい次のp−o
p(次のマクロ命令からの、または適切な例外処理もし
くは他のp−opシーケンスからの)が後続する打ち切り
サイクルで直ちに応答することができる。終了コードの
符号化は、重要な場合に、DECは理想的な応答時間を提
供できるようになっており、別のp−opを発行するかも
しくは打ち切り、または正しい次のp−opを発行する。
他の例外の場合は、応答時間内に効果的な特別サイクル
が存在する。即ち打ち切りサイクルの前に1つのサイク
ルが発生し、次のサイクルに正しい次のp−opが後続す
る。
Due to the timing of DEC decoding and the p-op assembly pipeline, if the AP exit code is one phase earlier (φ
2-φ1) If sent in time division, DEC will be
p (from the next macroinstruction or from the appropriate exception handling or other p-op sequence) can immediately respond in a subsequent abort cycle. The encoding of the exit code is such that in critical cases, the DEC can provide an ideal response time and issue or abort another p-op or issue the correct next p-op .
For other exceptions, there is an effective special cycle within the response time. That is, one cycle occurs before the abort cycle, and the next cycle is followed by the correct next p-op.

殆どの異常終了を処理するこの特別サイクルはDECの
バックエンド間に配分されて何が起こったのか及びどう
するのかが見出され、またDECのデコーダがジャムされ
てベクトル化され、正しい次のp−opのデコードが開始
される。迅速終了の場合バックエンドは制限された処理
状況を有する。この迅速処理を支援するのは、APが常に
p−opsを順番に終了させるので、バックエンドが次の
終了に関連付けられるp−opタグを予測できることであ
る。
This special cycle, which handles most abends, is distributed among the DEC backends to find out what happened and what to do, and that the DEC decoder is jammed and vectorized and the correct next p- Op decoding starts. In the case of quick termination, the back end has a limited processing situation. Supporting this rapid processing is that the AP always terminates the p-ops in order, so that the backend can predict the p-op tag associated with the next termination.

迅速終了は、あるp−opの正常終了、及び任意選択的
に誤予測アドレス及びDビットの両方または何れか一方
をも指示する制御ビット更新(APからDECへ)のような
状況に対して設けられる。正常終了の場合、p−opタグ
及び支配下にあるp−opの型に関する情報を有するバッ
クエンドは、保持条件信号内のこの終了をデコーダと分
岐制御論理とに反映させる必要がある。誤予測アドレス
及びDビットの両方または何れか一方を伴わない制御ビ
ット更新の場合、終了バス転送は当該制御ビットのため
の更新値を供給し、その後にデコーダはマクロ命令流の
デコードを続行することが可能になる。もし誤予測アド
レス及びDビットの両法または何れか一方も指示されて
いれば、この終了のタイミングは実効的に他の全ての非
迅速終了と同じようになる。
Quick termination is provided for situations such as normal termination of some p-op, and optionally control bit updates (from AP to DEC) indicating both / and / or mispredicted addresses. Can be For a successful completion, the back end with information about the p-op tag and the type of dominant p-op needs to reflect this termination in the hold condition signal to the decoder and branch control logic. In the case of a control bit update without the mispredicted address and / or D bit, the end bus transfer will provide the update value for that control bit, after which the decoder will continue decoding the macro instruction stream. Becomes possible. If the mispredicted address and / or the D bit is indicated, the timing of this termination is effectively the same as all other non-rapid terminations.

前述のように、APはp−opsを順番に(DECが発行する
p−opsの順番に対して)終了しなければならない。こ
れはAPがp−opsを処理する順番とは無関係であるが、
他の理由からAPがp−opsを処理できる順番に対して制
約が存在する。全ての場合、p−opはそれが完了した後
は何時でも終了させることができる。しかし、IEUの状
況とやや類似して、p−opsを終了させることができる
最も早い時点に関して2つの場合が存在する。場合1は
p−opsが実効後にDXBus転送を要求しない場合であっ
て、正しい終了を知るとp−opを終了させることができ
る。p−opsがこのような転送を要求する場合2では、
転送が確実に発生することを知るとp−opを終了させる
ことができる。換言すれば、場合1では全てのシステム
メモリの(異常終了に対する)参照及び必要検査が完了
するとp−opを終了させることができる。場合2では、
転送に関してAPが、DXBusまたはPAdrBus調停に勝利した
こと及び転送が確実に発生するであろうことを知るとp
−opを終了させることができる。これはPAdrBusメモリ
アドレス参照転送がTLBミスのために打ち切られる場合
を含み、この終了は転送が実際に完了するか否かを知る
前には発生することができない。若干の終了に特定し
て、DECによる付加的な制約/要求を以下に説明する。
As described above, the AP must terminate p-ops in order (relative to the order of p-ops issued by DEC). This is independent of the order in which the AP processes p-ops,
For other reasons, there are restrictions on the order in which the AP can process p-ops. In all cases, the p-op can be terminated any time after it is completed. However, somewhat analogous to the situation in the IEU, there are two cases regarding the earliest point at which p-ops can be terminated. Case 1 is a case where the p-ops does not request the DXBus transfer after the execution, and the p-op can be terminated when the correct termination is known. In case 2 where the p-ops request such a transfer,
Knowing that the transfer will occur reliably, the p-op can be terminated. In other words, in the case 1, the p-op can be terminated when the reference (for the abnormal termination) and the necessary check of all the system memories are completed. In case 2,
When the AP knows that it has won the DXBus or PAdrBus arbitration for the transfer and knows that the transfer will occur, p
-Op can be terminated. This includes the case where the PAdrBus memory address reference transfer is aborted due to a TLB miss, and this termination cannot occur before knowing whether the transfer is actually completed. Additional restrictions / requests by DEC are described below, with specific emphasis.

IEU、NP、またはメモリからの汎用レジスタ更新の受
信を除き、更新が受信される前にAPは処理済p−opを終
了させることができることに注目されたい。更新は本質
的にそれ以上の処理を要求することはなく、単に適切な
レジスタ内へ記憶させ、これを表すためにレジスタイン
タロック制御を更新するだけでよい。APは、関連p−op
が完全に終了する時点までに、従ってそれが引退する前
にこれらの更新を受信することを保証されている。勿
論、それでもAPは打ち切り発生に関して予測されるレジ
スタ更新を適切に追跡していなければならない。
Note that except for the receipt of a general register update from the IEU, NP, or memory, the AP can terminate the processed p-op before the update is received. The update essentially does not require any further processing, but simply stores it in the appropriate register and updates the register interlock control to indicate this. AP is related p-op
Is guaranteed to receive these updates by the time it completely terminates, and therefore before it retires. Of course, the AP must still properly track the expected register updates for abort occurrences.

APは、あるp−opの処理中に検出した異常に応答して
異常終了を通知した後に、そのp−opの処理を適切に終
らせる。終了に依存してAPは更なるp−opの処理を中止
することができる。この挙動は、DECが例外処理を開始
して応答するような異常終了の後に発生する。他の全て
の場合、APは処理を続行する。
After notifying the abnormal termination in response to the abnormality detected during the processing of a certain p-op, the AP appropriately ends the processing of the p-op. Depending on the termination, the AP can stop further p-op processing. This behavior occurs after an abnormal termination, such as when DEC initiates exception handling and responds. In all other cases, the AP continues processing.

処理を中止した後、APは必要内部状態の退避及び凍結
の両方または何れか一方を行い、異常終了に対する来た
るべき応答を待機する。この応答は発生しないかも知れ
ず、より一般的にはAPは例外処理を開始する全ての応答
に調和しなければならない。
After terminating the process, the AP saves and / or freezes the required internal state and waits for an upcoming response to the abnormal termination. This response may not occur and, more generally, the AP must coordinate with all responses that initiate exception handling.

AP終了 以下に表6に示す終了を説明する。p−ops上に例外
を指示する全ての異常終了に対して、終了Idのビット<
3..0>が処理を開始すべき例外の割り込み数に直接的に
対応することに注目されたい。これに対する2つの例外
は、特別な場合に使用される代替「デバッグ及び一般的
保護」障害コード(即ち1111 010X)である。「遮断異
常終了」(コード=1111 1001)も、例外処理が発生せ
ず代わりにDECが遮断されることが特別である。
AP termination The termination shown in Table 6 is described below. For all abnormal terminations that indicate an exception on p-ops, the termination Id bit <
Note that 3..0> directly corresponds to the number of interrupts of the exception to start processing. Two exceptions to this are the alternative "debug and general protection" fault codes (i.e. 1111 010X) used in special cases. It is special that the DEC is shut down instead of the "abnormal termination" (code = 1111 1001) without exception processing.

通知すべき実終了が存在しない場合には終了を通知し
てはならない。あるp−opの処理中に異常が検出されな
い場合には正常終了が通知される。
If there is no actual end to be notified, the end shall not be notified. If no abnormality is detected during processing of a certain p-op, a normal termination is notified.

「制御ビット更新」は、全てのDEC静止p−opsと共に
使用される。これらはIF、D、及びBビット(EF1ags及
び種々のセグメント記述子内に見られる)の全部または
何れかに直接または間接的に影響を与えるp−opsであ
る。APが影響を受ける(1または複数の)ビットの(1
または複数の)新しい値を決定すると、この終了は更新
値をDECへ送るために使用される。
"Control bit update" is used with all DEC static p-ops. These are p-ops that directly or indirectly affect all or any of the IF, D, and B bits (found in EF1ags and various segment descriptors). AP (1 or more) of the affected bit (s)
Once the new value (s) have been determined, this termination is used to send the updated value to DEC.

これは真の終了ではなく、特に制御ビット変化をもた
らすp−opを終了させることがないことに注目された
い。通常のp−op終了が未だに要求され、制御ビット更
新の後に発生しなければならない。(制御ビット更新自
体は先行p−opの終了に後続しなければならない。)DE
Cは、制御ビット更新終了を受信した後ならば何時で
も、p−opの終了には無関係にp−op発行を続行するで
あろうことにも注目されたい。概念は、p−opの処理中
に、影響を受けた制御ビットの新しい値を知ると直ちに
APはDECにこの更新を送り、そのp−opの処理を続行す
るということである。
Note that this is not a true termination, and in particular does not terminate a p-op that results in a control bit change. Normal p-op termination is still required and must occur after a control bit update. (The control bit update itself must follow the end of the preceding p-op.) DE
Note also that C will continue to issue the p-op at any time after receiving the control bit update end, regardless of the end of the p-op. The concept is that during the processing of the p-op, as soon as the new value of the affected control bit is known
The AP sends this update to DEC and continues processing its p-op.

上記制御ビットはプログラマ可視ビットを表すから、
AP及びDECは潜在的にこれらのビットに対する更新をバ
ックアウトできなければならない。これを(性能に重大
な衝撃を与えることなく)回避するために、APは制御ビ
ット更新を通知する時に(後になってではなく)これら
のビットのマスタコピーを変更し、当該p−opが最古の
未決p−opとなるまでこれらの両動作を遅延させる。本
質的に、制御ビット更新を通知することは、更新を通知
する前にAP静止を暗示する。
Since the above control bits represent the programmer-visible bits,
The AP and DEC must potentially be able to back out updates to these bits. To avoid this (without having a significant impact on performance), the AP changes the master copy of these bits (not later) when signaling control bit updates, and the Both of these actions are delayed until the old pending p-op is reached. In essence, signaling a control bit update implies AP quiesce before signaling an update.

制御ビット更新の第2の形状は第1の形状に類似して
いるが、更新の転送をバス上の「誤予測アドレス」及び
Dビットの両方または何れか一方にも指示する。これ
は、DECが目標アドレスを予測した(及びDビットが変
化しないものとした)制御p−opsの転送に使用され
る。もし制御p−opを転送するためにDECが予測した
(物理)目標アドレスが正しくなければ(即ちAPが発生
した(物理)アドレスと異なれば)、APはこれを通知し
てDビットの更新値を送らなければならない。勿論、AP
はアドレス更新(即ち、正しい目標アドレス)も命令キ
ャッシュタグへ送らなければならない。
The second form of control bit update is similar to the first form, but directs the transfer of the update to the "mispredicted address" and / or the D bit on the bus. This is used for the transfer of control p-ops where DEC has predicted the target address (and assuming that the D bit has not changed). If the (physical) target address predicted by DEC to transfer the control p-op is incorrect (i.e., different from the (physical) address at which the AP originated), the AP notifies this and updates the D bit Must be sent. Of course, AP
Must also send an address update (ie, the correct target address) to the instruction cache tag.

APは、PAdrBusを通して正しい目標アドレスを送出
し、同時に誤予測アドレス及びDビットの両方及び何れ
か一方と共に制御ビット更新を通知する(同時実行が要
求される)ことによってこれをすべて行う。この更新
は、更新制御ビット値を送ることに関しては上記第1の
形状に類似する。更に、DECは誤予測を表すようにある
内部状態を適切に変更し、正しいアドレス及びDビット
を用いて命令取り込み及びデコードを再開する。前述の
ようにDECは、DECが次の有効マクロ命令をデコードでき
るようになる前に更新された制御ビットを受信すること
が本質的に保証されている。
The AP does this all by sending out the correct target address through the PAdrBus and at the same time signaling a control bit update with the mispredicted address and / or the D bit (concurrency required). This update is similar to the first form above in terms of sending update control bit values. In addition, DEC appropriately changes certain internal states to indicate mispredictions and resumes instruction fetching and decoding using the correct address and D bits. As mentioned above, DEC is essentially guaranteed to receive updated control bits before DEC can decode the next valid macro instruction.

第1の制御ビット更新とは異なりこれは真の終了であ
り、特定的にはその転送制御p−opを終了する。APが正
しい目標アドレスを送出し更新を通知するように与えら
れているタイミングは、もし別の異常(即ち例外)検出
されれば「制御ビット更新終了」の通知を回避すること
を可能にする。即ち、APはアドレスを送出し更新終了を
通知するか、または異常終了を(無効アドレスと共に)
通知するかの何れかである。
Unlike the first control bit update, this is a true end, specifically ending its transfer control p-op. The timing provided by the AP to send out the correct target address to notify the update allows to avoid notification of "control bit update end" if another anomaly (ie, exception) is detected. That is, the AP sends out the address and notifies the end of the update, or the abnormal end (along with the invalid address)
Notification.

異常をもたらすページクロスの場合、PAdrBus転送は
発生しない。これは、セグメントオーバーラン(一般的
保護障害をもたらす)、ページ障害の何れかまたは両方
の故であり得る。APは異常終了を通知して障害が発生し
たことを指示する。もし命令実行がページ境界を交差す
ることを真に必要とすれば、例外処理が開始される。AP
から見れば、ページクロス要求の処理及び終了は周囲の
p−opsとは無関係である。DECはp−opの流れ及びp−
op例外に対してページクロスに例外を適切に優先させる
ことを重要視する。
In the case of a page cross that causes an error, no PAdrBus transfer occurs. This may be due to either or both of a segment overrun (which results in a general protection failure), a page failure, or both. The AP notifies abnormal termination and indicates that a failure has occurred. If instruction execution truly requires crossing a page boundary, exception handling is initiated. AP
From the viewpoint, the processing and termination of the page cross request is independent of the surrounding p-ops. DEC uses p-op flow and p-op
Emphasize the priority of exceptions on page crosses appropriately for op exceptions.

例外のための各異常終了は対応するアーキテクチャ的
に定義された例外を通知する。2つの場合(例えば「一
般的保護」障害)には、例外を通知する1対の終了Idが
存在する。一方は一般的に使用され、他方は他の機能ユ
ニット(すなわちIEU及びNP)による異常終了に対して
異なる優先順位を有する限り区別する必要がある若干の
例外環境において使用される。
Each abend for an exception signals a corresponding architecturally defined exception. In two cases (eg, a “general protection” fault), there is a pair of ending Ids that signal an exception. One is commonly used and the other is used in some exceptional circumstances where it is necessary to distinguish as long as they have different priorities for abnormal termination by other functional units (ie, IEU and NP).

これらの異常終了の若干が特定のマクロ命令に関係付
けられていることに注目すべきである。特定的には、
「387使用不能」、「無効演算コード」、および「一般
的保護」(コード=1111 0100)終了は関連p−opシー
ケンスの最初のp−ops上で通知される。「一般的保
護」終了(コード=1111 0100)及び「デバッグ」終了
(デバッグ障害に対してコード=1111 0101)はマクロ
命令シーケンスの最初のp−ops上で通知される。「デ
バッグ」終了(デバッグトラップに対してコード=1111
0001)はマクロ命令及びタスクスイッチシーケンスの
最後のp−ops上で通知される。
It should be noted that some of these abends are associated with a particular macro instruction. Specifically,
The "387 unavailable", "invalid opcode", and "general protection" (code = 1111 0100) terminations are signaled on the first p-ops of the associated p-op sequence. The "general protection" end (code = 1111 0100) and the "debug" end (code = 1111 0101 for debug failure) are signaled on the first p-ops of the macro instruction sequence. "Debug" end (code = 1111 for debug trap)
0001) is signaled on the last p-ops of the macro instruction and task switch sequence.

MCC終了バス MCC 25終了バス65は、標準CMOSスタイル時分割I/Oを
使用する1ビットバスである。実際の信号転送はφ1−
φ2境界で発生し(即ちMCC終了はφ2転送である)、
他のフェーズ境界での転送は定義されていない。このバ
スはp−opsから直接生じた正常メモリ書き込みの終了
を通知するために使用される。メモリ読み出し、システ
ムメモリ参照、及び他の参照(例えばI/O)のための終
了は生成されない。
MCC Termination Bus The MCC 25 termination bus 65 is a 1-bit bus that uses standard CMOS style time division I / O. The actual signal transfer is φ1-
Occurs at the φ2 boundary (ie MCC end is φ2 transfer),
Transfers at other phase boundaries are undefined. This bus is used to signal the end of a normal memory write directly generated from p-ops. Terminations for memory reads, system memory references, and other references (eg, I / O) are not generated.

MCCはメモリ参照アドレスを順番に(メモリ参照をも
たらすp−cpsの発行順に対して)APから受信する。MCC
は、この順番にメモリ書き込み参照を終了させなければ
ならない。このため、終了を通知するのにp−opタグの
明示転送は必要ではない。書き込みの順番終了に基づい
て終了バスを監視しているDECのバックエンドは、どの
p−opタグがMCCからの次の終了に組合わされるかを予
測する。
The MCC receives memory reference addresses from the AP in order (relative to the order of issuance of p-cps resulting in memory references). MCC
Must terminate the memory write reference in this order. Therefore, the explicit transfer of the p-op tag is not required to notify the end. The DEC backend monitoring the end bus based on the end of the write sequence predicts which p-op tag will be associated with the next end from the MCC.

メモリ書き込みの終了は、アドレスをAPから受信しそ
れを適切な書き込み予約待ち行列内に配置する時に通知
される。これは、MCCがそのデータを受信する時及び書
き込みが待ち行列を出る時には無関係である。p−opに
よる読み出し・変更・書き込み操作の書き込みも終了す
る。誤った位置合わせをもたらす、または4バイトメモ
リ書き込みより大きいp−opsの場合には、APが1より
多くの誤位置合わせされたアドレスを生成する必要があ
る。このようなp−opの書き込みの終了は、最後のアド
レスが予約待ち行列内に配置されると通知される。
The end of the memory write is signaled when the address is received from the AP and placed in the appropriate write reservation queue. This is irrelevant when the MCC receives the data and when the write leaves the queue. The writing of the read / change / write operation by the p-op also ends. In the case of p-ops that result in misalignment or greater than a 4-byte memory write, the AP needs to generate more than one misaligned address. The end of such p-op writing is notified when the last address is placed in the reservation queue.

メモリ書き込みをもたらすp−opsのMCC終了には拘り
なくAPはそれ自信のこれらのp−opsの終了を生成す
る。これは、APが1またはそれ以上の語位置合わせされ
たアドレスの最後のアドレスをPAdrBusを介してMCCに転
送する時に発生する。MCCは通常(1または複数の)ア
ドレスを直ちに待ち行列内に配置することができるか
ら、通常はMCCがメモリ書き込みアドレスの受信を指示
する必要はない。しかし(待ち行列が一杯であるか、ま
たは待ち行列の1つの中の先行(古い)書き込みと重な
り合うために)MCCがアドレスを適切な書き込み予約待
ち行列内に配置できないような場合には、MCCによる終
了が必要である。これらの後者の場合には、DECがp−o
p発行を進めるのを防ぐために終了が遅延される。
The AP generates its own end of these p-ops regardless of the MCC end of the p-ops resulting in the memory write. This occurs when the AP transfers the last address of one or more word-aligned addresses to the MCC via the PAdrBus. Normally, it is not necessary for the MCC to indicate receipt of a memory write address since the MCC can immediately place the address (es) in the queue. However, if the MCC cannot place the address in the appropriate write reservation queue (because the queue is full or overlaps with a previous (old) write in one of the queues), Termination is required. In these latter cases, DEC is p-o
Termination is delayed to prevent advance of the issuance of p.

もしMCCが、遅延させることができるそれ自信の終了
を有していなければ、次のことが発生し得る。APがp−
opを終了すると、DECは書き込みを生成したp−opが完
了し書き込み予約待ち行列内で安全であると確信する。
DECはこの書き込みアドレスに対応するタグを過ぎた7
またはそれ異常のp−opタグの発行に進む。これでMCC
は、打ち切りの処理、データとアドレスとの突き合わ
せ、重なり合ったメモリ読み出しの処理、及びキャッシ
ュへの書き込みの遂行の諸問題を有することになる。
If the MCC does not have its own end that can be delayed, the following can occur: AP is p-
Upon terminating the op, DEC believes that the p-op that generated the write has completed and is safe in the write reservation queue.
DEC passed the tag corresponding to this write address 7
Alternatively, the process proceeds to issue of an abnormal p-op tag. This is MCC
Will have problems with abort processing, data and address matching, overlapping memory read processing, and performing cache writes.

従ってMCCは重なり合い問題を有するアドレスを待ち
行列内に配置するのを遅延させる能力を(及び、勿論、
APがそれ以上のアドレスを送るのを遅延させる能力も)
有していよう。MCCはアドレスを遅延させる一方で(そ
してこれが1つのp−ops書き込みの最後のアドレスで
あるものとして)MCCによる書き込みの終了も同様に遅
延させる。アドレスを最終的に適切な待ち行列内に配置
するのと同時に、MCCは終了を通知する。
Thus, the MCC has the ability to delay placing queued addresses with overlapping problems (and, of course,
The ability to delay the AP from sending more addresses)
Let's have. While the MCC delays the address (and assuming that this is the last address of one p-ops write), the end of the write by the MCC is similarly delayed. At the same time that the address is finally placed in the appropriate queue, the MCC signals the end.

MCCからの終了が予測されるp−opを、MCCを除く全て
の予測される機能ユニットが完全に終了させている間
も、DCCはそのp−opを未済として考え続ける。本質的
に、DECはp−opを引退させ得る時点に関する限りその
p−opのMCC終了を他の機能ユニットの終了と同類項と
して扱う。
The DCC continues to consider the p-op as unpaid while all the predicted functional units except the MCC have completely terminated the p-op expected to terminate from the MCC. In essence, DEC treats the p-op's MCC termination as akin to the termination of other functional units as far as the p-op can be retired.

MCCの正常終了のみの通知に関する限り、他の機能ユ
ニット(AP、IEU、NP)による異常終了との直接対話は
存在しない。間接的にも、MCC終了が予測されるp−op
をMCCが必ずしも終了させ得るとは限らない。APがp−o
pを異常に終了させ、関連するメモリ書き込みの全ての
アドレスを生成しない(そしてできないかも知れない)
場合には、DECは然るべく挙動する。即ち、DECはこれら
の場合を再編成し、MCCの異常終了の処理を遅延させ
ず、そして未決メモリ書き込みのp−opタグを適切に追
跡し続ける。
There is no direct interaction with abnormal termination by other functional units (AP, IEU, NP) as far as the notification of successful termination of the MCC is concerned. Indirectly, p-op where MCC termination is predicted
Cannot always be terminated by the MCC. AP is p-o
Abnormally terminate p and don't generate all addresses for associated memory writes (and may not be possible)
In that case, DEC behaves accordingly. That is, DEC reorganizes these cases, does not delay the processing of the MCC abend, and continues to properly track the pending memory write p-op tags.

APがp−opを正常終了させるが対応するメモリ書き込
みを生成しない特別な状況も存在する。これらの場合に
はAPは「正常終了、しかし書き込みなし」を通知して書
き込みが発行されないこと、従ってMCCからの終了が期
待されないことをDECに指示する。
There are also special situations where the AP terminates p-op normally but does not generate a corresponding memory write. In these cases, the AP informs "normal end but no write" to indicate to DEC that no write is issued and therefore no end from the MCC is expected.

NP終了バス 要約すれば、NP終了は2ビットのバスであり(p−op
を順番に終了させることを前提としている)、浮動小数
点突き合わせ例外を通知する。CPU内には任意選択NPを
含むための論理が設けられているが、詳細説明は省略す
る。
NP end bus In summary, NP end is a 2-bit bus (p-op
), And signal a floating-point matching exception. Although a logic for including the optional NP is provided in the CPU, the detailed description is omitted.

レジスタ再割り当て 前述のように、命令を流出させるのに必要な事象まで
CPUの状態を戻すために使用されるメカニズムの1つは
レジスタ再割り当てである。この技術は必然的に、プロ
グラマ可視の(即ち、仮想)レジスタの集合をより大き
い集合の物理レジスタ内に写像することを伴う。物理レ
ジスタの数は、少なくとも未決とすることが許され且つ
レジスタを変更することができるp−opの最大数だけ仮
想レジスタの数を超えている。この技術は汎用レジスタ
ファイル及びセグメントレジスタファイルの両者に適用
される。
Register reallocation As described above, up to the event necessary to release the instruction
One of the mechanisms used to return the state of the CPU is register reallocation. This technique entails mapping the set of programmer visible (ie, virtual) registers into a larger set of physical registers. The number of physical registers exceeds the number of virtual registers by at least the maximum number of p-ops that are allowed to be pending and that can change registers. This technique applies to both general purpose register files and segment register files.

特定のマクロ命令アーキテクチャ(80386)は、VR0〜
VR7と名付けた8つの仮想汎用レジスタと、6つの仮想
セグメントレジスタとを提供する。前述のように、多く
とも合計7つのp−opsと、セグメントレジスタを変化
させる多くとも2つのp−opsを未決とすることが許さ
れる。これと調和して、AP 15は、FR1〜FR15と名付け
た15の物理汎用レジスタの集合と、8つの物理セグメン
トレジスタとを含み、一方IEU17は15の物理汎用レジス
タを含む。物理レジスタPROがIEU内に存在しているが、
これは他の目的のために使用される。
The specific macro instruction architecture (80386) is
It provides eight virtual general purpose registers named VR7 and six virtual segment registers. As described above, at most seven p-ops in total and at most two p-ops that change the segment register are allowed to be pending. In harmony with this, AP 15 includes a set of fifteen physical general registers, designated FR1-FR15, and eight physical segment registers, while IEU 17 includes fifteen physical general registers. Although the physical register PRO exists in the IEU,
It is used for other purposes.

図5は仮想レジスタVR0〜VR7から物理レジスタPR1〜P
R15への写像の概要図である。各物理レジスタは“V"で
概略的に示す対応付けられた有効ビットを有する。これ
らの有効ビットは機能ユニットによって以下のように使
用される。汎用レジスタ再割り当てを支援するために、
バックエンドレジスタ再割り当て論理175はポインタ集
合アレイ177と自由リストアレイ178とを維持している。
ポインタ集合アレイ及び自由リストアレイは各々8リス
トの記憶を提供し、これらの各リストは未済p−opsの
タグの最下位の3ビットに対応する3ビット索引を有し
ている。各ポインタ集合及び各自由リストは図中に列
(column)によって表されている。
FIG. 5 shows the virtual registers VR0 to VR7 to the physical registers PR1 to PR.
It is a schematic diagram of the mapping to R15. Each physical register has an associated valid bit schematically indicated by "V". These valid bits are used by the functional unit as follows. To support general-purpose register reallocation,
Backend register reallocation logic 175 maintains a pointer set array 177 and a free list array 178.
The pointer set array and the free list array each provide storage for eight lists, each of which has a three-bit index corresponding to the least significant three bits of the pending p-ops tag. Each pointer set and each free list are represented by columns in the figure.

所与の索引のためのポインタ集合及び自由リストは、
その索引に対応するタグを有するp−opの発行の直前の
状態を維持する。ポインタ集合は仮想レジスタVR〜VR7
に対応する8つのエントリを含み、各エントリは物理レ
ジスタの1つを指すポインタを含む。自由リストは、ポ
インタ集合の一員(メンバー)によって指されていない
物理レジスタを指すポインタを含む7つのエントリを含
む。
The pointer set and free list for a given index are
The state immediately before the issuance of the p-op having the tag corresponding to the index is maintained. Pointer sets are virtual registers VR to VR7
, Each entry including a pointer to one of the physical registers. The free list contains seven entries that contain pointers to physical registers that are not pointed to by members of the pointer set.

タグ=0を有するp−opの発行前の初期状態を考えよ
う。この初期状態では、VR0がPR8に、VR1がPR7に、VR2
がPR6に、…、そしてVR7がPR1に写像される。また自由
リストはPR9乃至PR15を指すポインタを含み、PR9がリス
トの先頭でPR15がリストの尾である。この状態はタグ=
0が先頭のエントリの列内に記憶される。
Consider the initial state before issuing a p-op with tag = 0. In this initial state, VR0 is PR8, VR1 is PR7, VR2
Is mapped to PR6,…, and VR7 is mapped to PR1. The free list includes pointers to PR9 to PR15, where PR9 is the head of the list and PR15 is the tail of the list. This state is tag =
Zero is stored in the column of the first entry.

さて、以下のタグ0、1及び2を有する3つのp−op
sの代表シリーズを考えよう。
Now, three p-ops with the following tags 0, 1 and 2
Let's consider a representative series of s.

タグ=0:VR0=VR0+VR3 タグ=1:VR3=VR3+VR5 タグ=2:VR4=VR0+VR3 VR0は先にPR8上に写像されているから、p−op(0)
は、p−op(0)が完了可能となることが確立されるま
でPR8を変更することはできない。従ってp−op(0)
の始動前に存在する写像は、VR0を自由リスト内の物理
レジスタ上へ写像するように変更しなければならない。
PR9が自由リストの先頭であるので、VR0がPR9上へ写像
される。PR8は、8つのp−opsが発行され、p−op
(0)が引退したことが保証されるまでは先頭に立たな
いから、自由リストの尾に配置される。自由リスト内の
他の各項目は先頭に向かって前進する。従ってタグ=0
と共に発行される実際のp−opはPR9=PR8+PR5であ
る。
Tag = 0: VR0 = VR0 + VR3 Tag = 1: VR3 = VR3 + VR5 Tag = 2: VR4 = VR0 + VR3 Since VR0 is mapped on PR8 first, p-op (0)
Cannot change PR8 until it is established that p-op (0) can be completed. Therefore, p-op (0)
Must be changed to map VR0 onto a physical register in the free list.
Since PR9 is the head of the free list, VR0 is mapped onto PR9. PR8 is issued eight p-ops, p-op
Since (0) does not start until it is guaranteed that it has retired, it is placed at the end of the free list. Each other item in the free list advances to the beginning. Therefore tag = 0
The actual p-op issued with is PR9 = PR8 + PR5.

次のp−op、即ちp−op(1)はVR3を変更しようと
する。このp−opのバックアウトを可能ならしめるため
に、VR3は自由リストの先頭にある物理レジスタ、即ちP
R10上へ写像される。PR5は自由リストの尾に配置され、
PR11は自由リストの先頭に前進する。タグ=1と共に発
行される実際のp−opはPR10=PR5+PR3である。
The next p-op, p-op (1), attempts to change VR3. In order to enable this p-op to be backed out, VR3 sets the physical register at the head of the free list, ie, P
Maps to R10. PR5 is placed at the end of the free list,
PR11 moves to the top of the free list. The actual p-op issued with tag = 1 is PR10 = PR5 + PR3.

P−op(2)はVR4を変更しようとする。従ってVR4は
物理レジスタPR11に写像され、VR5が自由リストの尾に
配置される。タグ=2と共に発行される実際のp−opは
PR11=PR9+PR10である。
P-op (2) tries to change VR4. Therefore, VR4 is mapped to the physical register PR11, and VR5 is placed at the end of the free list. The actual p-op issued with tag = 2 is
PR11 = PR9 + PR10.

物理レジスタを変更するp−opがある機能ユニットに
到着するとそのレジスタの有効ビットはクリアされ(無
効を表し)、そのp−opが終了した時にのみセットされ
る(有効を表す)。これは、物理レジスタを読み出そう
としている遅めのp−opのために正しいデータが存在し
ていることを保証するために必要である。図示の特定例
においては、p−op(0)がPR9を変更し、p−op
(1)がPR10を変更する。p−op(2)はPR9及びPR10
の内容を要求するからそれが実行可能となる前に有効源
レジスタ(PR9及びPR10)を有していなければならな
い。これは、p−op(1)及びp−op(2)が終了した
場合にのみ発生する。p−op(0)及びp−op(1)
は、もし何れかが一掃されるとp−op(2)も一掃され
てしまうから、引退してはならないことに注意された
い。
When a p-op that modifies a physical register arrives at a certain functional unit, the valid bit of that register is cleared (indicating invalidity) and set only when the p-op ends (indicating validity). This is necessary to ensure that the correct data exists for the late p-op trying to read the physical register. In the particular example shown, p-op (0) changes PR9 and p-op (0)
(1) changes PR10. p-op (2) is PR9 and PR10
Must have valid source registers (PR9 and PR10) before it can be executed. This only occurs when p-op (1) and p-op (2) have ended. p-op (0) and p-op (1)
Should not be retired, since if any were purged, p-op (2) would also be purged.

データキャッシュサブシステム内の書き込み待ち行列 図6は、データキャッシュサブシステムの制御を提供
するMCC 25のブロック線図である。このジョブは、AP
15が発生しPAdrBus 55を介して引き渡される書き込
みアドレスを、幾つかのチップの何れかによって発生さ
れDXBus 58を介して引き渡される対応データに結び付
けることと、書き込みデータ(32ビット倍長語内に右寄
せされている)とAPによって指定されているバイトアド
レスとをバイト位置合わせすることと、書き込みと爾後
の読み出しとの間の同一アドレスに対するメモリデータ
従属を検査し、データが使用可能になると直ちにそれら
を短絡することと、書き込み動作を発生させたp−ops
が成功裏に終了することが保証されるまで書き込み操作
を待機させることによって実行の緊密さ(コヒーレン
ス)を維持することと、必要な場合には主メモリまたは
キャッシュ自体を変更することなく書き込み操作を打ち
切り可能ならしめることである。
Write Queue in Data Cache Subsystem FIG. 6 is a block diagram of the MCC 25 that provides control of the data cache subsystem. This job is
Associating the write address generated at 15 and passed through PAdrBus 55 with the corresponding data generated by any of several chips and passed over DXBus 58; and writing data (right justified within a 32-bit doubleword). Byte address) and the byte address specified by the AP, and check for memory data dependencies on the same address between the write and the subsequent read, and replace them as soon as data is available. Short-circuit and the p-ops that caused the write operation
To maintain coherence of execution by waiting for write operations to be guaranteed to complete successfully, and, if necessary, to perform write operations without modifying main memory or the cache itself. It is possible to abort.

データキャッシュスブシステムは3つのカテゴリのデ
ータ操作を扱う。正常データアクセスは、NP 20が遂行
するもの(もしあれば)を除いて、プログラマ指定のデ
ータアクセスである。他の2つのカテゴリはシステムア
クセス及びNPアクセスである。各カテゴリ内のメモリか
ら読み出されるデータは何れかのカテゴリの早めのp−
opsによってなされた書き込みを表していなければなら
ないが、異なるカテゴリの書き込みは非同期的に処理す
ることができる。即ち異なるカテゴリの近くの(実行順
序に対して)書き込みは同一アドレスを変更しないこ
と、またはもしそれらが行えばカテゴリ間の書き込みの
非同期性の効果は温和であるものとしている。
The data cache subsystem handles three categories of data operations. A normal data access is a programmer-specified data access, except for what the NP 20 performs, if any. The other two categories are system access and NP access. Data read from the memory in each category is an earlier p-
It must represent the writes made by the ops, but the different categories of writes can be processed asynchronously. That is, writes near different categories (with respect to the order of execution) do not change the same address, or if they do, the asynchronous effect of writing between categories is mild.

MCC 25は、書き込みバッファ302及びマルチプレクサ
303と組合わされた書き込み予約待ち行列(WRESQ)300
と、システムバッファ307と組合わされたシステム書き
込み待ち行列(SYSWQ)305と、NPバッファ312及びマル
チプレクサ313と組合わされた書き込み予約待ち行列(N
PWQ)310とを含む複数の待ち行列構造を含む。
MCC 25 includes a write buffer 302 and a multiplexer.
Write Reservation Queue (WRESQ) 300 combined with 303
A system write queue (SYSWQ) 305 in combination with a system buffer 307, and a write reservation queue (N in combination with an NP buffer 312 and a multiplexer 313).
PWQ) 310.

WRESQ 300は正常データアクセスのみに役立つ。これ
は、各書き込みデータ(これは単一バイト、16ビット
語、または32ビット倍長語であってよいが、実行ユニッ
トからの単一の32ビット倍長語内に常に右寄せされて到
着する)を、任意バイト境界上でメモリ内の位置合わせ
を指定できる(1または複数の)対応アドレスによって
指示されるように位置合わせすることと、何れかのカテ
ゴリの書き込みと爾後の読み出しとの間の同一アドレス
に対するメモリデータ従属を検査することとを含む前述
の全ての機能を遂行する。
WRESQ 300 is only useful for normal data access. This means that each write data (which may be a single byte, 16-bit word, or 32-bit doubleword, but always arrives right-justified within a single 32-bit doubleword from the execution unit) , As indicated by the corresponding address (es) that can specify an alignment in memory on any byte boundary, and the same between writing and subsequently reading any category. Performs all of the above functions, including checking memory data dependencies on addresses.

SYSWQ 305は、システム書き込みを発生させたp−op
sが成功裏に終了し、それらがメモリ内へ書き込まれる
までシステム書き込みを緩衝する。これは多くとも4つ
の未済システム書き込みを提供する。システムアクセス
は隠システム構造(ページ辞書エントリ、ページ表エン
トリ、セグメント記述子、及びタスク状態セグメントデ
ータ)にアクセスするためにAPによって遂行されるアク
セスである。全てのシステム書き込みは「アクセスされ
た」または「話中」ビットをセットする単一の倍長語読
み出し・変更・書き込み操作として発生する。APは順不
同の実行を遂行しないから、全てのシステムアクセスは
順番に発生する。さらに、システム書き込みは読み出し
・変更・書き込み操作から発生するので、アドレスは書
き込みデータの前にMCCに到着しなければならない。
SYSWQ 305 is the p-op that generated the system write.
Buffer system writes until s is successfully completed and they are written into memory. This provides at most four outstanding system writes. System access is an access performed by the AP to access hidden system structures (page dictionary entries, page table entries, segment descriptors, and task state segment data). All system writes occur as a single doubleword read / modify / write operation that sets the "accessed" or "busy" bit. Since the AP does not perform out of order execution, all system accesses occur in order. Further, since system writes occur from read / modify / write operations, the address must arrive at the MCC before the write data.

NPWQ 310は8つのNP書き込みアドレス(少なくとも
2つのNP p−opsの結果を保持するのに充分)を緩衝す
る。NPに指令され、NPから指令されるNPデータアクセス
は3つの主な点が正常データアクセスとは異なる。即
ち、単一のNP p−opは10バイトまでのデータを読み出し
及び書き込みの両方または何れか一方を行うことができ
るが、正常p−opは多くとも4バイトのデータにしかア
クセスできない。従ってNPは、単一のp−opによって指
定された書き込み操作を遂行するために多重倍長語転送
を遂行することができる。NP p−opのためのデータは常
にMCCに順次に(即ちアドレスが到着するのと同じシー
ケンスで)到着する。
The NPWQ 310 buffers eight NP write addresses (sufficient to hold the result of at least two NP p-ops). The NP data access commanded by the NP differs from the normal data access in three main points. That is, a single NP p-op can read and / or write up to 10 bytes of data, while a normal p-op can access at most 4 bytes of data. Thus, the NP can perform multiple doubleword transfers to perform the write operation specified by a single p-op. The data for the NP p-op always arrives at the MCC sequentially (ie, in the same sequence as the addresses arrive).

WRESQ 300は最も複雑な書き込み待ち行列であり、後
述するようにp−op終了及び打ち切りの処理を行う。WR
ESQは8つのエントリを受け入れる複雑なデータ及び命
令バッファからなる。各エントリは、倍長語アドレス
(倍長語は32ビットのデータ)のための30ビット幅の連
想記憶装置(CAM)レジスタ、数値比較論理と「最終」
ビット及び「解放された」ビットとを含む4ビットの専
用タグCAM、及び各データバイトのための有効ビットと
全データレジスタのための「現行」ビットとを含む制御
論理と組合わされた4バイト幅のデータレジスタを含
む。
The WRESQ 300 is the most complicated write queue, and performs processing for terminating and terminating the p-op as described later. WR
The ESQ consists of a complex data and instruction buffer that accepts eight entries. Each entry is a 30-bit associative memory (CAM) register for double-word addresses (double-word is 32-bit data), numeric comparison logic and "final"
4-bit dedicated tag CAM, including bits and "released" bits, and 4-byte width combined with control logic including valid bits for each data byte and "current" bits for all data registers Data register.

WRESQは、データ物理アドレスバス待ち行列(PAdrQ)
320と呼ばれるFIFOバッファからデータアクセスのため
のメモリアドレスを受信する(これらのメモリアドレス
はAPから到着するとPAdrQに緩衝される)。各アドレス
は、遂行されるアクセスの型(読み出し、書き込み、ま
たは読み出し・変更・書き込み)と、アドレスを発生し
たp−opのタグと、アドレスされた倍長語へ及び/また
はそれから転送される倍長語のバイトを指示する4ビッ
トのバイト可能マスクと、そのアドレスがそのp−opに
よって発生される最後のものであるか否かを指示する
「最終」ビットとを伴う。
WRESQ is the data physical address bus queue (PAdrQ)
Receive memory addresses for data access from a FIFO buffer called 320 (these memory addresses are buffered in PAdrQ upon arrival from the AP). Each address contains the type of access to be performed (read, write or read / modify / write), the tag of the p-op that generated the address, and the double transferred to and / or from the addressed doubleword. With a 4-bit byte enable mask indicating the long word byte and a "final" bit indicating whether the address is the last one generated by the p-op.

書き込みまたは読み出し・変更・書き込みアクセスの
ためにPAdrQから受信した各アドレスは、アドレスを伴
うバイト可能ビットによって指示される何れかのバイト
位置内に有効ビット集合を有するWRESQ内に既に入力さ
れている全てのアドレスと連想的に比較される。もしWR
ESQ内に既に重なり合った書き込みを指示する何かを見
出すと、WRESQ内への新しいアドレスの処理は、重なり
合った書き込みがメモリへ書き込まれWRESQから除かれ
るまで見合わさなければならない。
Each address received from the PAdrQ for a write or read / modify / write access is all that has already been entered in the WRESQ with the valid bit set in any byte position indicated by the byte enable bit with the address. Is compared associatively with If WR
When it finds something in the ESQ that indicates an already overlapping write, processing of the new address into the WRESQ must be delayed until the overlapping write is written to memory and removed from the WRESQ.

この場合MCCは、位置がメモリへ書き込まれるまで中
断して、書き込み待ち行列により多くのアドレスを受け
入れるようにしなければならない。これはパイプライン
機能停止と呼ばれ、この場合MCCはアドレスをPAdrQ内に
戻すことを可能とし、もしこの構造が溢れの前兆を示せ
ば、MCCはPAdrBusをロックしてAPがより多くのアドレス
を発行するのを阻止する。そうでなく、もしパイプライ
ン機能停止が要求されないか、または重なり合いエント
リを除去することによってこのような機能停止が解決さ
れた後は、新しいアドレスがWRESQ内の位置に割り当て
られる。
In this case, the MCC must suspend until the location has been written to memory so that the write queue will accept more addresses. This is called a pipeline stall, in which case the MCC allows the address to be returned in PAdrQ, and if this structure signals an overflow, the MCC locks the PAdrBus and the AP gets more addresses. Prevent issuing. Otherwise, if a pipeline outage is not required or such an outage is resolved by removing overlapping entries, a new address is assigned to a location in the WRESQ.

WRESQ 310内の位置は割り当てカウンタによるラウン
ドロビン方式の割り当てのために選択される。もし選択
された位置が自由であればアドレスは「アドレスCAM」
内にコピーされ、タグ及び「最終」ビットはTag CAM内
にコピーされ、4つの「現行」ビット及び「解放され
た」ビットは0にセットされ、4つの「有効」ビットは
書き込まれる倍長語のバイトを指定するバイト可能ビッ
トに対応してセットされる。一方もしWRESQ位置が再割
り当てのために取り上げられた時に未だに使用中であれ
ば(1またはそれ以上の有効ビットがその位置において
セットされていることにより指示される)、その位置が
メモリに書き込まれるまでMCCはそれ以上のアドレスの
受け入れを中断(パイプラインを機能停止)させなけれ
ばならない。
The positions in WRESQ 310 are selected for round-robin assignment by an assignment counter. If the selected position is free, the address is "Address CAM"
The tag and the "last" bit are copied into the Tag CAM, the four "current" and "released" bits are set to 0, and the four "valid" bits are written to the longword. Is set corresponding to the byte enable bit that specifies the byte of If, on the other hand, the WRESQ location is still in use when taken up for reassignment (indicated by one or more valid bits being set at that location), that location is written to memory. Until the MCC must stop accepting further addresses (stall the pipeline).

新しいエントリがWRESQ内に書き込まれるクロック期
間に、またはその後に、有効ビットがセットされている
データバイト内にデータが書き込まれる。実行ユニット
が、書き込まれるデータを提供する前にAPがアドレスを
送信する保証はなく、またMCC自体がアドレスが到着し
次第それらを処理できるという保証もない。従って、デ
ータはWRESQエントリが確立される前に既にMCCへ送られ
ているかも知れない。8エントリWBuf302がこれを受け
入れる。このWBufはDXBus(書き込みデータをMCCへ引き
渡すバス)とWRESQ自身の入力との間に配置されてい
る。DXBusに到着するデータは、それが表している操作
の型(もしWRESQに宛てられていれば正常メモリ書き込
み)及びそれが発生したp−opのタグによって識別され
る。
During or after the clock period when a new entry is written into WRESQ, data is written into the data byte with the valid bit set. There is no guarantee that the AP will send the addresses before the execution unit provides the data to be written, and there is no guarantee that the MCC itself can process them as soon as the addresses arrive. Thus, data may have already been sent to the MCC before the WRESQ entry was established. The 8-entry WBuf 302 accepts this. This WBuf is arranged between DXBus (a bus for transferring write data to the MCC) and the input of WRESQ itself. The data arriving at the DXBus is identified by the type of operation it represents (a normal memory write if addressed to WRESQ) and the tag of the p-op where it originated.

正常メモリ書き込みデータがDXBusに到着すると、そ
れはその4ビットp−opタグの最下位3ビットによって
アドレスされた32ビットWBuf内に記憶され、このp−op
タグの最上位ビットはエントリと共に記憶され、(後述
するようなTag CAMヒットが発生しない限り)「現行」
ビットはエントリのためにセットされる。同時に、その
タグはWRESQのTag CAM内で探索される。もしそのデー
タのための位置(または2つの隣接位置)が、「最終」
ビットがセットされている1つの位置を含むWRESQ内に
見出されれば、そのデータは直ちにその(またはそれら
の)位置に(この場合WBufエントリの「現行」ビットが
セットされていない)書き込まれる。同様に、「最終」
ビットがセットされているアドレスがWRESQ内に入力さ
れると、そのアドレスを発生したp−opのタグに対応す
るWBufエントリが質問され、もしその「現行」ビットが
セットされていればデータは全てWBufエントリへコピー
され、WRESQ「現行」ビットはセットされ、WBuf「現
行」ビットはクリアされる。
When the normal memory write data arrives at the DXBus, it is stored in a 32-bit WBuf addressed by the least significant 3 bits of its 4-bit p-op tag, and this p-op
The most significant bit of the tag is stored with the entry and is "current" (unless a Tag CAM hit as described below occurs).
Bit is set for entry. At the same time, the tag is searched in the WRESQ Tag CAM. If the location for the data (or two adjacent locations) is "final"
As soon as the bit is found in the WRESQ containing one location that is set, the data is written to that (or their) location (in this case, the “current” bit of the WBuf entry is not set). Similarly, "final"
When an address with the bit set is entered into WRESQ, the WBuf entry corresponding to the tag of the p-op that generated the address is interrogated, and if the "current" bit is set, all data is Copied to the WBuf entry, the WRESQ "current" bit is set and the WBuf "current" bit is cleared.

上述の2つのメカニズムによって、データまたはアド
レスのどちらか先に到着するかには関係なく、またはそ
れらが同時に到着してもデータ及びアドレスの両者が存
在する場合にはアドレス及びデータは共にWRESQ内へ入
力され、そのp−opのためのWBufエントリの「現行」ビ
ットはクリアされ、(1または複数の)WRESQエントリ
の(1または複数の)「現行」ビットはセットされる。
この時点でWBuf位置は再使用のために自由となる。デー
タはアドレスに対して順不同で到着し得るから、できる
限り早く処理を発生できるようにするために、データレ
ジスタ及びWRESQの「現行」ビットへの2つの独立した
経路が設けられている。WBufから発する一方はその位置
内に書き込むことができ、この位置には(ラウンドロビ
ンカウンタによって選択された)対応アドレスが同時に
書き込まれる。DXBusインタフェースから直接の他方はT
agCAMによって識別される(1または複数の)位置内に
書き込むことができる。これにより新たに到着するアド
レスとWBufからのデータとを対にして、先に確立されて
いるWRESQエントリ内にDXBusから新たに到着したデータ
が書き込まれるクロックサイクルと同じクロックサイク
ルに、新しいエントリ内に書き込むことができる。
Due to the two mechanisms described above, regardless of whether the data or address arrives first, or if they arrive at the same time, if both data and address are present, the address and data are both put into WRESQ. As input, the "current" bit of the WBuf entry for that p-op is cleared and the "current" bit (s) of the WRESQ entry (s) are set.
At this point, the WBuf position is free for reuse. Since data can arrive out of order at the address, two independent paths to the data register and the "current" bit of WRESQ are provided to allow processing to occur as soon as possible. One originating from the WBuf can be written into that location, where the corresponding address (selected by the round robin counter) is written simultaneously. T directly from DXBus interface
It can be written in the location (s) identified by the agCAM. As a result, the newly arriving address and the data from WBuf are paired, and the newly arrived data from DXBus is written in the previously established WRESQ entry. Can write.

WRESQハ内に入力されるデータは、それがメモリ内で
占めるであろうバイト位置と同じバイト位置内にそれを
バイト位置合わせするローテータを通過する。WRESQ内
への2つのデータ経路毎に別個のローテータが設けられ
ている。(多分2つの隣接エントリの)(第1)WRESQ
エントリの最下位バイト位置から数えて0の値を有する
隣接「有効」ビットの数は、WRESQ内へのデータ書き込
みが発生する前に位置合わせのためにデータを回転させ
なければならない左方へのバイト位置の数を示してい
る。「有効」ビットに組合わされている論理は、もし先
行WRESQ位置も同じp−opタグのためのアドレスを含ま
なければそしてその場合に限って、ある位置の「有効」
ビットをゲートすることによってこのデータをバレルシ
フタへ供給する。
The data input into WRESQ passes through a rotator that byte aligns it to the same byte position that it would occupy in memory. Separate rotators are provided for each of the two data paths into WRESQ. (First) WRESQ (possibly of two adjacent entries)
The number of adjacent “valid” bits that have a value of 0, counting from the least significant byte position of the entry, indicates that the data must be rotated for alignment to the left before data writing into WRESQ occurs. Indicates the number of byte positions. The logic associated with the "valid" bit indicates that if the preceding WRESQ location also does not include the address for the same p-op tag, and only then, the "valid"
This data is provided to the barrel shifter by gating the bit.

データがWRESQ内のある位置に書き込まれると、それ
は(もしTag CAMによってアドレスされていれば)同じ
タグ値を有する任意隣接位置か、または(もし新エント
リ割り当てカウンタによってアドレスされていれば)以
前のエントリ割り当ての方向に隣接し「最終」ビットが
無効にされた位置にも書き込まれる。書き込まれるデー
タは多くとも4バイト幅であるから、1つの倍長語のた
めのバイト位置と突き合わせるためにセータをバイト規
模で回転させ、次いで両倍長語を書き込むことは、メモ
リの倍長語境界にまたがる位置合わせされていない書き
込み操作のために4バイト全てを両倍長語内の適切な位
置に同時に書き込むことになる。
When data is written to a location in the WRESQ, it is either an adjacent location with the same tag value (if addressed by Tag CAM), or a previous location (if addressed by the new entry allocation counter). It is also written to the location adjacent to the direction of entry allocation where the "last" bit was invalidated. Since the data to be written is at most 4 bytes wide, rotating the sweater on a byte-scale to match the byte position for one doubleword, and then writing the doubleword, is twice the memory length. For an unaligned write operation that spans a word boundary, all four bytes will be written simultaneously to the appropriate location in the doubleword.

「最終」ビットがセットされた正常カテゴリアドレス
がPAdrQから抽出されると、MCCはMCC終了信号をDECへ供
給する。これらのアドレスは順番に(即ちDECから発行
されるそれらを生成したp−opsと同じ順番に)処理さ
れ、DECはどのp−opsが正常メモリアクセスを生成する
かを知っており、たとえMCC終了が(1または複数の)
アドレスが処理されたp−opのタグを明示的に含まなく
とも、DECはそのMCC終了をそのp−opに明確に対応付け
ることができる。MCCからの終了によってDECは、WRESQ
エントリが未だに確立されていない全てのp−opsから
のデータを受け入れるためには最悪の場合には8より多
いWBufが必要であること、及び打ち切りの場合には無関
係なデータ及びアドレスを待ち行列から適切に流出させ
得ることを保証できるようになる。DECは、正常アクセ
スを発生し未だMCCによって終了されていない最古のp
−opの他に7より多いp−opsを発行しないから、この
保証が得られるのである。
When a normal category address with the "last" bit set is extracted from PAdrQ, the MCC provides an MCC end signal to DEC. These addresses are processed in order (i.e., in the same order as the p-ops that generated them issued from DEC), and DEC knows which p-ops will generate a normal memory access, even if MCC termination Is (one or more)
Even if the address does not explicitly include the tag of the processed p-op, DEC can unambiguously associate the MCC end with the p-op. Termination from MCC causes WEC
In the worst case, more than 8 WBufs are required to accept data from all p-ops for which an entry has not yet been established, and extraneous data and addresses must be removed from the queue in the case of abort. You can be assured that it can be drained properly. DEC uses the oldest p that has generated a successful access and has not yet been terminated by the MCC.
This guarantee is obtained because no more than 7 p-ops are issued in addition to -op.

アドレスは、PAdrQから抽出されると各々先にWRESQ内
に(及び他の2つの書き込み待ち行列内にも)入力され
ている全てのアドレスと(書き込みアドレスに関して説
明したようにして)連想的に比較される。前述のよう
に、到来書き込みアドレスと現存WRESQエントリとの重
なり合いは、早いエントリがメモリへ書き込まれて書き
込み待ち行列から除かれるまでパイプライン機能停止を
もたらす。しかし、たとえ同一倍長語(の異なる部分)
を変更したとしても、重なり合わない書き込みは待ち行
列内に入力することができる。読み出し操作及び読み出
し・変更・書き込み操作(アドレス読み出し)のための
アドレスも書き込み待ち行列エントリと連想的に比較さ
れる。書き込みと同様に、この比較は読み出しアドレス
のバイト可能ビットと待ち行列エントリの対応「有効」
ビットとの論理積によって決定されるバイト毎に遂行さ
れる。
The addresses are associatively compared (as described for write addresses) with all addresses that were each previously entered in WRESQ (and also in the other two write queues) when extracted from PAdrQ Is done. As mentioned above, the overlap between the incoming write address and the existing WRESQ entry results in a pipeline stall until the early entry is written to memory and removed from the write queue. But even the same doubleword (different part of)
, Non-overlapping writes can be entered in the queue. The addresses for read operations and read / modify / write operations (address reads) are also associatively compared with the write queue entries. Like a write, this comparison is a "valid" correspondence between the byte enable bit of the read address and the queue entry.
Performed on a byte-by-byte basis, determined by logical AND with the bits.

もしが読み出しアドレスによって指定されたバイトを
アドレスするWRESQエントリがなければ、またはもし読
み出しアドレスによって指定されたバイトをアドレスす
る各エントリ(書き込み・待ち行列ビット)の「現行」
ビットがセットされていれば、MCCはDCI 37へ通知して
そのアドレスの正常キャッシュ探索を遂行させる。(ど
のキャッシュアクセスもキャッシュミスの場合の遅延、
及び要求されたデータを検索するための主メモリ操作の
必要をもたらす。) 一方、もし読み出しアドレスが、「現行」ビットがセ
ットされていない1またはそれ以上の書き込み・待ち行
列エントリ内でヒットすれば、PAdrQからのアドレスの
処理はこれらの全てのエントリのためのデータを受信す
るまで中断(パイプライン機能停止)させなければなら
ない。機能停止が解決され、キャッシュデータが使用可
能になると、MCCはDCIに指令して書き込み待ち行列ヒッ
トがセットされた「有効」ビットを有していないバイト
だけをDIOBus 57上へゲートさせる。アドレスをヒット
している全ての書き込み・待ち行列エントリの「有効」
ビットによって選択される他のバイトは書き込み待ち行
列へ、及びMCCによってDIOBus上へ駆動される。従っ
て、未だにメモリへ送られていない書き込みデータは、
後の読み出しへ“短絡”させることができる。書き込み
が書き込み待ち行列内で未済になっているバイトのため
に第2の書き込みを受信するとパイプラインは機能停止
させられるから、データの所与のバイトをアドレスする
1より多いエントリは存在することはできないが、同じ
倍長語の異なるバイトを供給する幾つかのエントリは存
在できる。書き込み待ち行列はこれらの全てからの「有
効」バイトを組合わせてデータを選択し、DIOBus上へ駆
動する。
If there is no WRESQ entry that addresses the byte specified by the read address, or if the "current" of each entry (write / queue bit) that addresses the byte specified by the read address
If the bit is set, the MCC notifies DCI 37 to perform a normal cache search for that address. (Delay if any cache access is a cache miss,
And the need for main memory operations to retrieve the requested data. On the other hand, if the read address hits in one or more write / queue entries where the "current" bit is not set, processing of the address from PAdrQ will cause the data for all these entries to be It must be suspended (pipeline stall) until it is received. When the stall is resolved and the cache data is available, the MCC directs the DCI to gate on DIOBus 57 only those bytes that do not have a "valid" bit with the write queue hit set. "Valid" for all write / queue entries that hit the address
Other bytes selected by the bits are driven into the write queue and on the DIOBus by the MCC. Therefore, write data that has not yet been sent to memory
It can be "short-circuited" for later reading. Since the pipeline is stalled when a second write is received for a byte that is pending in the write queue, there may be more than one entry that addresses a given byte of data. Although not possible, there can be several entries that supply different bytes of the same doubleword. The write queue combines the "valid" bytes from all of these to select data and drive it onto DIOBus.

CPUの他のユニットと同様に、MCCはタグステータスバ
スを介してDECから供給されるタグステータスを追跡し
なければならない。各クロックサイクル中にDECは、最
古の未決p−opタグ(○○Tag)または打ち切りタグ(A
Tag)の助言を得て2つのメッセージ型の1つをタグス
テータスバス上へ送信する。WRESQは「最古のエントリ
ポインタ」(OEP)と呼ぶその最古のエントリを指すポ
インタを維持している。あるエントリは、それが○○Ta
gより古くなるまでメモリへの書き込みに対して無資格
のままである。○○Tagを受信する各サイクルに○○Tag
は、1またはそれ以上の「有効」ビットがセットされ
「解放された」ビットはセットされていない各書き込み
待ち行列エントリのタグCAM内容と比較される。タグ比
較は、4ビットの2の補数演算を使用して、エントリの
4ビットタグから4ビット○○Tagを減ずることによっ
て遂行される。タグは2進計数シーケンス(0000,0001,
0010,…,1110,1111,0000,…)で発行され、一時に7よ
り多くないタグが未決であるから、○○Tagの値は1つ
のサイクルから次のサイクルまで多くとも(もし7つの
未決p−opsが全て引退し、新しいp−opが同じサイク
ルに発行されれば)8までジャンプすることができる。
従ってもしエントリのタグから○○Tagを減じて得られ
た差の最上位ビットの値が“1"であれば、それは○○Ta
gよりも8またはそれ以上若くはなり得ないから、エン
トリのタグは○○Tagより1乃至p−ops古いことを示し
ている。このようにして○○Tagより若いことが見出さ
れた各エントリ毎に、そのエントリの「解放された」ビ
ットがセットされる。エントリは、OEPによって指し示
されているエントリの「解放された」ビットがセットさ
れ、その「現行」ビットがセットされ、そして1または
それ以上の「有効」ビットがセットされている場合に、
そしてその場合にだけ、キャッシュ及び主メモリの両者
または何れか一方へ書き込むことができる。書き込みが
発生すると、エントリの「有効」ビットはクリアされ、
OEPは1またはそれ以上の「有効」ビット(もし存在す
れば)がセットされている次の順次エントリへ前進させ
られる。
Like other units in the CPU, the MCC must keep track of the tag status provided by DEC via the tag status bus. During each clock cycle, DEC sends the oldest pending p-op tag (OOTag) or abort tag (A
Sends one of two message types on the tag status bus with the advice of Tag). WRESQ maintains a pointer to its oldest entry, called the "oldest entry pointer" (OEP). There is an entry that is
Remains unqualified for writing to memory until older than g. XX Tag in each cycle of receiving XX Tag
Is compared to the tag CAM contents of each write queue entry with one or more "valid" bits set and the "released" bits unset. Tag comparison is performed by subtracting the 4-bit OOTag from the 4-bit tag of the entry using a 4-bit two's complement operation. The tag is a binary counting sequence (0000,0001,
0010,…, 1110,1111,0000,…), and tags that are not more than 7 at a time are undecided, so the value of XXTag is at most (if 7 undecided) from one cycle to the next cycle. If all the p-ops have retired and a new p-op is issued in the same cycle, one can jump to 8.
Therefore, if the value of the most significant bit of the difference obtained by subtracting OOTag from the tag of the entry is "1", it is OOTa
Since it cannot be 8 or more younger than g, it indicates that the tag of the entry is 1 to p-ops older than OOTag. Thus, for each entry found to be younger than OOTag, the "released" bit of that entry is set. An entry is set if the "freed" bit of the entry pointed to by the OEP is set, its "current" bit is set, and one or more "valid" bits are set.
Only in that case, the data can be written into the cache and / or the main memory. When a write occurs, the "valid" bit of the entry is cleared,
The OEP is advanced to the next sequential entry with one or more "valid" bits (if present) set.

DECが打ち切りを通知すると、PAdrQ、WRESQ及び他の
2つの書き込み待ち行列を含む全ての待ち行列内のp−
opタグフィールドに対してATagが検査される。この検査
はエントリが解放され得る時点を決定する検査と同じよ
うにして、即ち待ち行列内に指定されているタグフィー
ルドからATagを減ずることによって遂行される。もし待
ち行列エントリのタグフィールドがATagより大きい(古
い)ならばエントリは待ち行列内に維持され、そうでな
ければその(1または複数の)「有効」ビットはクリア
される。待ち行列の制御論理の実施態様に依存してポイ
ンタも調整しなければならないかも知れない。WRESQの
場合、もしエントリが削除され、割り当てポインタが最
も早く削除されたエントリまで戻って移動し、そしてこ
れがOEPを過ぎて移動していれば、OEPは割り当てポイン
タに先行するエントリまで移動する。
When DEC signals the abort, p-p in all queues, including PAdrQ, WRESQ and the other two write queues
ATag is checked against op tag field. This check is performed in a manner similar to the check that determines when an entry can be released, that is, by subtracting the ATag from the tag field specified in the queue. If the tag field of the queue entry is larger (older) than the ATag, the entry is kept in the queue, otherwise its "valid" bit (s) are cleared. The pointer may also need to be adjusted depending on the implementation of the queue's control logic. In the case of WRESQ, if an entry is deleted, the allocation pointer moves back to the earliest deleted entry, and if it has moved past the OEP, the OEP moves to the entry preceding the allocation pointer.

WRESQに組合わされているWBufのエントリ及びタグ値
によってアドレスされる他の類似構造に対しても同じよ
うな検査が行われるが、WBuf内のエントリのアドレスは
単にそのタグの下位3ビットであり、エントリのタグの
最上位ビット(MSB)だけがそのエントリ自身の中に記
憶されているから、ATagの下位3ビットより大きいまた
は等しい3ビットアドレスを有しまたATagのMSBに等し
い記憶されたMSBを有するか、またはATagの下位3ビッ
トより小さいアドレスを有しまたATagのMSBに相対するM
SBを有する全てのエントリの「有効」ビットをリセット
するだけで充分である。
Similar checks are made for entries in WBuf associated with WRESQ and other similar structures addressed by tag values, but the address of the entry in WBuf is simply the lower 3 bits of the tag, Since only the most significant bit (MSB) of the tag of the entry is stored in the entry itself, the stored MSB with a 3-bit address greater than or equal to the lower three bits of the ATag and equal to the MSB of the ATag Has or has an address smaller than the lower 3 bits of the ATag and is relative to the MSB of the ATag
It is sufficient to reset the "valid" bits of all entries with SB.

CPUの全ての機能ユニットと同様に、MCCは打ち切りサ
イクル中に内部バス上に提示されるデータは無視し、打
ち切りの後に未だ適切であれば送っていたデータを再送
信する。従って、ある単一のサイクル中に、MCC(及びC
PUの残余)は未だに発行されたことがないATagより大き
いかまたは等しいタグを担持するp−opが有していた状
態にそれ自信をリセットする。
Like all functional units of the CPU, the MCC ignores data presented on the internal bus during the abort cycle and retransmits the data it was sending after abort if still appropriate. Therefore, during a single cycle, MCC (and C
The PU) resets itself to the state that the p-op carrying a tag greater than or equal to the ATag that has never been issued.

IEUにおける擬似Opの処理 図7はIEU 17のブロック線図である。IEUは2つのデ
ータ経路、即ち単一サイクルデータ経路400及び多重サ
イクルデータ経路405を実現する。単一サイクルデータ
経路は、加算、減算、及びけた送りのような1サイクル
内に完了させることができる全ての整数命令を実行す
る。多重サイクルデータ経路は、乗算、除算、及びASCI
I及び10進数演算機構のような複数のサイクルを必要と
する全ての整数p−opsを実行する。2つのデータ経路
は、レジスタ再割り当てに関して説明したようにして仮
想レジスタが写像される物理レジスタを含む共通レジス
タファイル410を使用する。
FIG. 7 is a block diagram of the IEU 17. The IEU implements two data paths, a single cycle data path 400 and a multi-cycle data path 405. The single cycle data path executes all integer instructions that can be completed in one cycle, such as addition, subtraction, and digit shifting. Multi-cycle data paths include multiplication, division, and ASCI
Perform all integer p-ops that require multiple cycles, such as I and decimal arithmetic. The two data paths use a common register file 410 containing the physical registers to which the virtual registers are mapped as described for register reallocation.

各データ経路は共通バス集合412に結合された要素を
含み、バス結合器415が2つのデータ経路の間を分離し
ている。単一サイクルデータ経路は、汎用ALU420と、バ
レルシフタ422と、符号伝播、先行0及び1方向、等々
のための特別論理425とを含む。多重サイクルデータ経
路は、乗除算回路430(8×32乗算器アレイ)と、ASCII
及び10進数調整のための回路435とを含む。
Each data path includes elements coupled to a common bus set 412, and a bus combiner 415 separates between the two data paths. The single cycle data path includes a general purpose ALU 420, a barrel shifter 422, and special logic 425 for code propagation, leading zero and one directions, and so on. The multi-cycle data path includes a multiplication / division circuit 430 (8 × 32 multiplier array) and an ASCII
And a circuit 435 for decimal adjustment.

入力p−opsはp−opバス52から受信され、p−op待
ち行列450へ導かれる。マルチプレクサ452は待ち行列内
の実行されるp−opを選択し、実行されるp−opは単一
サイクル制御論理455(PLAによって実現)へ通信され
る。単一サイクルp−opの場合、制御論理455は単一サ
イクルデータ経路要素を制御する。多重サイクルデータ
経路p−opの場合、制御論理455はp−opの第1サイク
ルで多重サイクル要素を制御しマイクロコードROM460へ
アドレスを供給する。マイクロコードROM406は多重サイ
クル制御論理462(PLA)と共にp−opの爾後のサイクル
の制御を提供する。
Input p-ops are received from p-op bus 52 and directed to p-op queue 450. Multiplexer 452 selects the executed p-op in the queue, and the executed p-op is communicated to single cycle control logic 455 (implemented by the PLA). For a single cycle p-op, control logic 455 controls the single cycle data path element. In the case of a multi-cycle data path p-op, control logic 455 controls the multi-cycle elements in the first cycle of p-op and provides addresses to microcode ROM 460. Microcode ROM 406 provides control of subsequent cycles of the p-op along with multi-cycle control logic 462 (PLA).

ALU p−opsの場合には、結果はレジスタ内に記憶さ
れ、終了は直ちに終了待ち行列470内へ入力され、終了
待ち行列470の内容はIEU終了バス上へ送り出される。メ
モリ書き込みの場合には、結果が直接DXBusへ進められ
る(この場合終了は終了待ち行列内へ入力される)か、
または出力が爾後の出力のためのDXBus出力待ち行列475
内に配置されるかの何れかである。バスが使用可能にな
ると、終了は終了待ち行列内に入力される。
In the case of ALU p-ops, the result is stored in a register, the termination is immediately entered into the termination queue 470, and the contents of the termination queue 470 are sent out on the IEU termination bus. In the case of a memory write, the result is advanced directly to DXBus (in which case the end is entered into the end queue), or
Or DXBus output queue 475 for subsequent output
Which is either located within. When the bus becomes available, the termination is entered into the termination queue.

P−op待ち行列450の深さは8である。P−op待ち行
列は、複数の読み出しポートと1つの書き込みポートと
を有している。待ち行列制御論理480は待ち行列を制御
して通常はFIFO(先入れ先出し)のように機能させる
が、順不同読み出しをも支援する。待ち行列制御論理は
待ち行列がエントリを有しているか否かを指示する。待
ち行列制御論理は待ち行列内のp−opの位置も識別す
る。
The depth of the P-op queue 450 is eight. The P-op queue has a plurality of read ports and one write port. Queue control logic 480 controls the queue so that it typically functions like a FIFO (first in first out), but also supports out-of-order reads. Queue control logic indicates whether the queue has any entries. Queue control logic also identifies the location of the p-op in the queue.

もしp−op待ち行列が、待ち行列が空の時にp−opを
受信すれば、そのp−opは直ちにデコードされて適切な
制御信号が生成される。p−opのデコードが進行中の時
点に実行準備検査が行われる。この検査はデータオペラ
ンド及びフラグオペランド従属、及び順番実行及び機能
ユニット直列化のような若干の特別な実行基準を含む。
もしp−opが実行準備検査に失敗すれば若干のまたは全
ての制御信号は使用禁止となる。もしp−opが実行され
なければ、そのp−opは待ち行列内に配置される。
If the p-op queue receives a p-op when the queue is empty, the p-op is immediately decoded and an appropriate control signal is generated. An execution readiness check is performed at the time when decoding of the p-op is in progress. This check includes data operand and flag operand dependencies, and some special execution criteria such as sequential execution and functional unit serialization.
If the p-op fails the execution readiness check, some or all control signals are disabled. If the p-op is not executed, the p-op is placed in the queue.

もし待ち行列内にエントリが存在すれば、待ち行列は
FIFOの如く機能する。待ち行列の先頭のp−op、及び待
ち行列内の次に若いp−opが読み出される。実行準備論
理482は両p−opsに対して検査を行う。待ち行列の先頭
のp−opに対する実行準備検査はデータオペランド従属
を含む。もし待ち行列の先頭のp−opが実行準備検査に
合格すれば、そのp−opはデコードされ実行される。も
しそのp−opを実行することができなければ、それは次
の動作サイクルにおける検査のために再発行される。
If there are entries in the queue, the queue
Works like a FIFO. The first p-op in the queue and the next youngest p-op in the queue are read. Execution preparation logic 482 performs a check on both p-ops. The readiness check for the p-op at the head of the queue includes data operand dependencies. If the p-op at the head of the queue passes the execution readiness check, the p-op is decoded and executed. If the p-op cannot be performed, it is reissued for testing in the next cycle of operation.

待ち行列内の次に若いp−opに対する実行準備検査
は、データオペランド及びフラグ従属、待ち行列の先頭
のp−opに対するインタロック、及びそのp−opが(順
番実行のような)特別な実行基準の主体か否かを含む。
例えば、p−opが要求する源レジスタ内に有効ビットが
セットされているかどうかが検査される。もし待ち行列
の先頭のp−opが実行に失敗すれば、待ち行列内の次に
若いp−opが実行準備検査の全てに合格していれば、こ
のp−opがデコードされ実行される。もし待ち行列の先
頭のp−op及び待ち行列内の次の若いp−opを共に成功
裏に実行することができれば、待ち行列の先頭が実行さ
れる。
Execution readiness checks for the next youngest p-op in the queue include data operand and flag dependencies, interlocks for the first p-op in the queue, and special execution (such as sequential execution) for that p-op. Including whether or not the subject of the standard.
For example, it is checked whether a valid bit is set in the source register required by p-op. If the first p-op in the queue fails to execute, if the next youngest p-op in the queue has passed all of the execution readiness checks, this p-op is decoded and executed. If both the p-op at the head of the queue and the next younger p-op in the queue can be successfully executed, the head of the queue is executed.

複数の読み出しポインタ及び1つの書き込みポインタ
は待ち行列の動作を追跡し続ける。もし次に若いp−op
が実行されれば対応する実ポインタは待ち行列内の次の
エントリを指すように更新される。もし待ち行列の先頭
のp−opが実行されれば、第1読み出しポインタは第2
読み出しポインタの値を入手し、第2読み出しポインタ
は待ち行列内の次のエントリを指すように更新される。
書き込みポインタは待ち行列内の第1空位置を指すため
に使用される。打ち切りサイクル中は全てのポインタは
打切りタグと比較され、その結果に基づいて適切な値に
セットされる。
The multiple read pointers and one write pointer keep track of the operation of the queue. If the next young p-op
Is executed, the corresponding real pointer is updated to point to the next entry in the queue. If the p-op at the head of the queue is executed, the first read pointer is
Obtaining the value of the read pointer, the second read pointer is updated to point to the next entry in the queue.
The write pointer is used to point to the first empty position in the queue. During the truncation cycle, all pointers are compared to the truncation tag and set to the appropriate value based on the result.

待ち行列制御論理480は待ち行列内の各エントリ毎に
ステータスビットを有する。ステータスビットは、新し
いp−opを待ち行列内にロードしている間に“有効”に
セットされる。もし打ち切りサイクル中にp−op待ち行
列内のエントリを一掃するのであれば、適切なステータ
スビットが“無効”にセットされる。実行のために識別
されたp−opがデコードされる。もし実行のために識別
されたp−opが単一サイクルp−opであれば、単一サイ
クルデータ経路400(レジスタファイル、ALU、バレルシ
フタ、及び特別論理)のための制御信号が制御論理455
によって生成される。単一サイクルp−opは単一のクロ
ックサイクル中に実行される。この時間中には多重サイ
クルデータ経路405は何らの機能も遂行しない。
Queue control logic 480 has a status bit for each entry in the queue. The status bit is set to "valid" while loading a new p-op into the queue. If the entry in the p-op queue is to be cleared during the abort cycle, the appropriate status bit is set to "invalid". The identified p-op for execution is decoded. If the p-op identified for execution is a single-cycle p-op, the control signals for the single-cycle data path 400 (register file, ALU, barrel shifter, and special logic) are controlled by control logic 455.
Generated by A single cycle p-op is executed during a single clock cycle. During this time, the multi-cycle data path 405 performs no function.

もし実行のために識別されたp−opが多重サイクルp
−opであれば、第1状態制御信号が単一サイクル制御論
理によって生成される。単一サイクル制御論理はマイク
ロコードROM460も賦活する。残余の状態のための制御信
号はマイクロコードROM及び多重サイクル制御論理462か
ら生成される。多重サイクルデータ経路405はこの時間
中に演算を遂行する。多重サイクル動作は単一サイクル
データ経路からレジスタファイル410だけを使用する。
If the p-op identified for execution is a multiple cycle p
If -op, the first state control signal is generated by the single cycle control logic. Single cycle control logic also activates microcode ROM 460. Control signals for the remaining states are generated from the microcode ROM and the multi-cycle control logic 462. Multi-cycle data path 405 performs operations during this time. Multi-cycle operation uses only register file 410 from the single cycle data path.

P−opsの同時(並列)実行を遂行することが可能で
ある。もし実行のために識別されたp−opが多重サイク
ルp−opであれば、考え得る性能利益は、待ち行列から
次の単一サイクルp−opを実行することによって得られ
る。単一サイクルデータ経路を使用して単一サイクルp
−opsをまた多重サイクルデータ経路を使用して多重サ
イクルp−opsを実行することができる。多重サイクル
p−opに対するデータまたはステータスフラグ従属が存
在すれば単一サイクルp−opは実行されない。多重サイ
クルp−opと単一サイクルp−opとの間に資源対立が存
在する時間中(レジスタファイルへの書き込み及びステ
ータスフラグ更新中)も、単一サイクルp−opは実行さ
れない。
It is possible to perform simultaneous (parallel) execution of P-ops. If the p-op identified for execution is a multi-cycle p-op, a possible performance benefit is obtained by executing the next single cycle p-op from the queue. Single cycle p using single cycle data path
Multi-cycle p-ops can also be performed using multi-cycle data paths. If there is data or status flag dependency on multiple cycles p-op, then no single cycle p-op is performed. The single cycle p-op is not executed even during the time when there is a resource conflict between the multi-cycle p-op and the single cycle p-op (during writing to the register file and updating the status flag).

多重サイクル制御論理は動作の状態を識別する状態機
械を有する。整数実行ユニットは4つの状態、即ち単一
サイクル、多重サイクル、同時、または遊びの1つを取
ることができる。
The multi-cycle control logic has a state machine that identifies the state of operation. An integer execution unit can take one of four states: single cycle, multiple cycle, simultaneous, or idle.

単一サイクルデータ経路と多重サイクルデータ経路と
の間のバスは、同時動作中にバス結合器415によって切
り離される。これらのバスは多重サイクル動作中通常は
接続されていて、データファイルからのデータ転送及び
(次のp−opのために、その前の)p−opからの結果の
使用の両方または何れか一方を可能にしている。
The bus between the single cycle data path and the multi cycle data path is disconnected by bus combiner 415 during simultaneous operation. These buses are normally connected during multi-cycle operation to transfer data from the data file and / or use the results from the previous p-op (for the next p-op). Is possible.

もしあるp−opが実行可能であると識別されると、そ
のp−opは単一サイクル制御論理及び多重サイクル制御
論理の両方または何れか一方に提示される。機能ユニッ
トが話中であることを見出せば、p−opは実行されな
い。これはp−op待ち行列制御へ戻して通知され、論理
を実行する準備を整える。多重読み出しポインタに対し
て適切な調節が施される。
If a p-op is identified as feasible, the p-op is presented to single-cycle control logic and / or multi-cycle control logic. If the functional unit finds that it is busy, no p-op is performed. This is signaled back to p-op queuing control, ready to execute the logic. Appropriate adjustments are made to the multiple read pointers.

通常、p−op待ち行列、待ち行列制御論理、及び実行
準備論理は、データオペアンドインタロックの解決及び
特別実行基準に基づいてp−opsの発行を維持しようと
試みる。IEU内の各種機能ユニット(ALU、バレルシフ
タ、特別論理、乗/除算回路)の制御論理はハードウエ
ア資源対立を解決し、単一サイクル、多重サイクル、ま
たは同時の何れかの演算を遂行する。もしQNEXTと呼ぶ
信号によって資源対立が通知され、発行されたp−opを
実行することができなければ、p−op待ち行列制御論理
によって再発行することが要求される。フラグスタック
485を使用してフラグが追跡される。
Typically, the p-op queue, queuing control logic, and readiness logic attempt to maintain the issuance of p-ops based on data op and interlock resolution and special execution criteria. The control logic of the various functional units within the IEU (ALU, barrel shifter, special logic, multiply / divide circuit) resolves hardware resource conflicts and performs either single-cycle, multi-cycle, or simultaneous operations. If a resource conflict is signaled by a signal called QNEXT and the issued p-op cannot be executed, it must be reissued by the p-op queuing control logic. Flag stack
Flags are tracked using 485.

結論 以上に本発明の好ましい実施例を完全に説明したが、
種々の変更、代替、及び等価を使用しても差し支えな
い。例えば、上述の実施例は各機能ユニット毎に分離し
たチップを用いて実現されているが、分離したパイプラ
イン制御を用いる基本アーキテクチャは単一チップ実施
例においても同じように効果的且つ有用であろう。同様
に、この特定の実施例は特定の命令を実行するが、他の
実施例が他の命令集合を実行するように設計可能であ
る。
Conclusion Having described the preferred embodiment of the invention completely,
Various modifications, alternatives, and equivalents may be used. For example, while the embodiments described above have been implemented using separate chips for each functional unit, the basic architecture using separate pipeline control is equally effective and useful in a single chip embodiment. Would. Similarly, while this particular embodiment executes a particular instruction, other embodiments can be designed to execute other instruction sets.

また、タグを機能ユニットへ通信する特定のメカニズ
ム(符号化されたタグを使用する○○TagまたはATagを
用いたタグステータスバス)を説明したが、他の可能性
も存在する。一時に多くともn p−opsを未決にすること
ができるシステムにおける1つの可能性は、タグをNビ
ットベクトル内の単一集合ビットとして表すことである
(但し、Nはnより大きいかもしくは等しい)。未決p
−opsの収集がNビットベクトル内の集合ビットの隣接
(循環的なセンスで)群によって表されるようにこれら
のタグを順次に発行する。このベクトルは機能ユニット
に通信されてステータスが表明され、一方類似の型のベ
クトルによって打ち切りを通知する。
Also, while a specific mechanism for communicating tags to functional units (tag status bus using OOTag or ATag using encoded tags) has been described, other possibilities exist. One possibility in a system where at most np-ops can be pending at a time is to represent the tag as a single set of bits in an N-bit vector, where N is greater than or equal to n. . Undecided p
Issue these tags sequentially so that the collection of ops is represented by the contiguous (in a cyclic sense) group of set bits in the N-bit vector. This vector is communicated to the functional unit to indicate status, while signaling abort by a similar type of vector.

従って上記の説明及び添付図面は、請求の範囲によっ
て限定本発明の範囲を制限するものではない。
Accordingly, the above description and accompanying drawings are not intended to limit the scope of the present invention, which is limited by the appended claims.

フロントページの続き (72)発明者 スティレス デイヴィド アール アメリカ合衆国 カリフォルニア 94087 サニーヴェイル ダートシャー ウェイ 830 (72)発明者 ヴァン ダイク コルビン エス アメリカ合衆国 カリフォルニア 94539 フレモント カユガ コート 45770 (72)発明者 メータ シュレニク アメリカ合衆国 カリフォルニア 95148 サン ホセ マウント イザベ ル コート 3164 (72)発明者 フェイヴァー ジョン グレゴリー アメリカ合衆国 カリフォルニア 95124 サン ホセ レーサ アン コ ート 5246 (72)発明者 グリーンレイ デイル アール アメリカ合衆国 カリフォルニア 95124 サン ホセ レッヂウッド ド ライヴ 1744 (72)発明者 カルグノニ ロバート エー アメリカ合衆国 カリフォルニア 94087 サニーヴェイル ムール レー ン 1594 (56)参考文献 特開 昭61−107471(JP,A) 特開 昭60−129838(JP,A) 特開 昭58−1246(JP,A) 特開 昭58−178464(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/38 Continuing the front page (72) Inventor Stilles David Earl United States of America California 94087 Sunnyvale Dartshire Way 830 (72) Inventor Van Dyke Corvin Es United States of America California 94539 Fremont Kayuga Court 45770 (72) Inventor Meter Shrenik United States of America 95148 San Jose Mount Isabel Court 3164 (72) Inventor Faber John Gregory United States California 95124 San Jose Racer Ancourt 5246 (72) Inventor Greenray Dale Earl United States of America 95124 San Jose Redwood Drive 1744 (72) Inventor Calgnoni Robert A. United States California 94087 Sunnyvale Mourlane 1594 (56) Reference JP-A-61-107471 (JP, A) Open Akira 60-129838 (JP, A) JP Akira 58-1246 (JP, A) JP Akira 58-178464 (JP, A) (58 ) investigated the field (Int.Cl. 7, DB name) G06F 9 / 38

Claims (15)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】発行されるとそれぞれ1つの未済演算の状
態を達成する一連の演算を発行する装置と、 いくつかの未済演算の少なくとも2つ以上をそれぞれが
実行できる発行装置に連結した複数の機能ユニットと、 割り当てられたタグを検査することによって2つの未済
演算の相対年齢を決定するように順序をつけたタグの集
合の一員であるタグを各未済演算に割り当てる装置と、 所与の未済演算がいつ実行されて終了したかを決定する
装置と、 未済タグの独特さを保証するように未済演算の数を制限
する装置と、 を具備することを特徴とするコンピュータプロセッサ
ー。
1. An apparatus for issuing a series of operations each of which achieves a state of one outstanding operation when issued, and a plurality of units connected to an issuing apparatus each capable of executing at least two or more of several outstanding operations. A functional unit; a device for assigning a tag to each outstanding operation that is a member of a set of tags ordered to determine the relative age of the two outstanding operations by examining the assigned tags; A computer processor, comprising: a device for determining when an operation has been performed and completed; and a device for limiting the number of outstanding operations to ensure the uniqueness of the outstanding tag.
【請求項2】上記制限する装置が、一時に多くともn個
の演算を未済可能とすることを許容し、 上記タグが2nより大きいか等しいある範囲に亙って順次
に発行され、 2つの未済演算の相対年齢をそれらのタグの符合付き比
較によって決定できるようにした 請求項1に記載のコンピュータプロッセサ。
2. The method according to claim 1, wherein said limiting device allows at most n operations to be outstanding at a time, and wherein said tags are issued sequentially over a range greater than or equal to 2n. The computer processor of claim 1, wherein the relative age of the outstanding operations can be determined by a signed comparison of their tags.
【請求項3】最古の未済演算を決定する装置と、 未済演算と引退させる演算との間の境界をマークするタ
グを準備することによって、演算の引退が成功したこと
を上記機能ユニットの少なくとも若干へ通知する装置 をも具備する請求項1に記載のコンピュータプロセッ
サ。
3. An apparatus for determining an oldest outstanding operation and a tag marking a boundary between the outstanding operation and the operation to be retired, whereby at least one of the functional units indicates that the operation has been successfully retired. The computer processor of claim 1, further comprising: a notification device.
【請求項4】群内の全ての演算の引退が可能になった時
にのみその群内の何れかの演算の引退が遂行されるよう
に隣接する演算をグループ化する装置 をも具備する請求項3に記載のコンピュータプロセッ
サ。
4. An apparatus for grouping adjacent operations such that retirement of any operation in the group is performed only when all operations in the group can be retired. 4. The computer processor according to claim 3.
【請求項5】少なくともそれらの源演算が未済ではある
が引退はしていない期間の間メモリ書き込みを緩衝する
装置と、 それらの源演算が流出した時に、緩衝されている書き込
みを流出させる装置と、 それらの源演算が引退した時に、緩衝されている書き込
みのキャッシュまたはメモリへの配置を完了させる装置 をも具備する請求項3に記載のコンピュータプロセッ
サ。
5. A device for buffering memory writes at least during periods when their source operations have not yet been completed but are not retired, and a device for releasing buffered writes when those source operations have flowed out. 4. The computer processor of claim 3, further comprising: a device for completing placement of the buffered writes into cache or memory when their source operations have retired.
【請求項6】書き込みデータが流出されるか、またはキ
ャッシュもしくはメモリー内に配置される前に、緩衝さ
れている書き込みデータを以後の読み出し演算へ戻す装
置をも具備する請求項5に記載のコンピュータプロセッ
サ。
6. The computer of claim 5, further comprising a device for returning buffered write data to subsequent read operations before the write data is leaked or placed in a cache or memory. Processor.
【請求項7】上記発行装置がm個のプログラマ可視のレ
ジスタを含む命令集合アーキテクチャを有する入力命令
に応答し、少なくとも若干の演算がこれらのレジスタの
一つを変更し、 未済のレジスタ変更演算の数をnに制限する装置と、 少なくとも(m+n)個の物理レジスタと、 プログラマ可視のレジスタを物理レジスタへ写像する装
置 をも具備する請求項1に記載のコンピュータプロセッ
サ。
7. The issuing device is responsive to an input instruction having an instruction set architecture including m programmer-visible registers, wherein at least some operations modify one of these registers, and The computer processor of claim 1 further comprising: a device for limiting the number to n; at least (m + n) physical registers; and a device for mapping programmer visible registers to physical registers.
【請求項8】物理レジスタを変更した演算が成功裏に引
退してしまうまで物理レジスタが再使用されないことを
保証する装置と、 仮想から物理への写像を異常状態が検出された時の先行
状態に復元し、従ってプログラマ可視のレジスタの内容
を復元する装置 をも具備する請求項7に記載のコンピュータプロセッ
サ。
8. An apparatus for guaranteeing that a physical register is not reused until an operation in which the physical register is changed is successfully retired, and a precedent state when an abnormal state is detected in a virtual-to-physical mapping. 8. The computer processor of claim 7, further comprising: an apparatus for restoring the contents of the programmer-visible registers.
【請求項9】命令を含む入力流に応答してこの入力流内
の命令を一連の演算に変換する装置と、 これらの演算の少なくとも若干をそれぞれが実行できる
複数の機能ユニット、 これらの演算を機能ユニットの2つ以上に通信する(こ
のように通信される演算を未済演算と言う)装置と、 タグを各未済演算にそれらのタグを検査することによっ
て2つの未済演算の相対年齢を決定するような方法で順
次に割り当てる装置と、 機能ユニットによる演算の終了に関する情報を各未済演
算毎に維持する装置と、 各機能ユニットに組み合わされ、通信されて来た各演算
についてそれが何時終了したかを決定し、この終了情報
をその演算のタグと共に前記維持装置に通信する装置
と、 最古の未済演算を決定する装置と、 最古の未済演算の表示を機能ユニットに通信する装置
と、 少なくとも最古の未済演算に関する終了情報に応答し、
その演算の終了情報が全ての機能ユニットがその演算を
正常に終了させたことを示している場合に限ってその演
算の引退を許容する装置と、 少なくとも最古の未済演算の引退に応答し、このように
引退した演算を最早未済でないことを表すように最古の
未済演算の表示を更新する装置と を具備することを特徴とするコンピュータプロセッサ。
9. Apparatus for converting an instruction in an input stream into a series of operations in response to an input stream containing the instructions, a plurality of functional units each capable of executing at least some of these operations, A device that communicates to more than one of the functional units (operations thus communicated are referred to as outstanding operations); and determining the relative age of the two outstanding operations by examining the tags for each outstanding operation. A device that sequentially allocates data in such a manner, a device that maintains information on the completion of operations by functional units for each outstanding operation, and a time when each operation that is combined with each functional unit and communicated is completed A device that communicates the end information together with the tag of the operation to the maintenance device; a device that determines the oldest outstanding operation; and a display of the oldest outstanding operation. Responsive to at least the termination information regarding the oldest pending operation,
A device allowing the retirement of the operation only when the completion information of the operation indicates that all the functional units have completed the operation normally; responding to at least the retirement of the oldest uncompleted operation, A device for updating the display of the oldest unfinished operation so as to indicate that the retired operation is no longer unfinished.
【請求項10】所与の未済演算が異常に終了したことの
情報に応答して、流出させるべき演算の群を指定する打
ち切りタグを機能ユニットへ通信する装置と、 各機能ユニットに組み合わされ、打ち切りタグによって
指令された全ての未済演算を流出させる装置と、 打ち切りタグによって指定された演算から未済演算の指
定を削除する装置と、 流出した最古の演算のタグに等しい値から始まるさらな
るタグの割り当てを前記タグ割り当て装置に開始させる
装置 をも具備する請求項9に記載のコンピュータプロセッ
サ。
10. Apparatus for communicating to a functional unit a censoring tag specifying a group of operations to be evacuated in response to information that a given unfinished operation has been abnormally terminated; A device for flushing all outstanding operations specified by the censoring tag, a device for removing the designation of pending operations from the operation specified by the censoring tag, and a device for further tags starting with a value equal to the tag of the earliest operation leaked. The computer processor of claim 9, further comprising: a device for causing the tag assignment device to initiate assignment.
【請求項11】命令を含む入力流に応答してこの入力流
内の命令を一連の演算に変換する装置と、 これらの演算の少なくとも若干をそれぞれが実行できる
複数の機能ユニットと、これらの演算を機能ユニットの
少なくとも若干に通信する(このように通信される演算
を未済演算と言う)装置と、 未済演算の数を所定の最大数に制限する装置と、 タグを各未済演算に順次に割り当てる装置と、 機能ユニットによる演算の終了に関する情報を各未済演
算毎に維持する装置と、 各機能ユニットに組み合わされ、通信されて来た各演算
についてそれが何時終了したか及びその終了は正常であ
ったかを決定し、この終了情報をその演算のタグと共に
前記維持装置に通信する装置と、 未済演算の表示を機能ユニットに通信する装置と、 機能ユニットからの終了情報に応答して、正常に終了し
た演算を順番に引退させる装置と、 所与の未済演算が異常に終了したことの情報に応答し
て、少なくともこの所与の未済演算と、より遅い全ての
未済演算を流出させることを機能ユニットに命令する装
置と、 機能ユニットに組み合わされ、命令装置によって指定さ
れた全ての未済演算を流出させる装置と、 流出した最も早い未済演算のタグに組み合わされていた
タグから始まるさらなるタグの割り当てを前記タグ割り
当て装置に開始させる装置 を具備することを特徴とするコンピュータプロセッサ。
11. An apparatus for responding to an input stream containing instructions to convert instructions in the input stream into a series of operations, a plurality of functional units each capable of performing at least some of these operations, and these operations. To at least some of the functional units (operations communicated in this way are referred to as pending operations); a device to limit the number of pending operations to a predetermined maximum number; and assigning tags sequentially to each pending operation. A device, a device that maintains information on the end of the operation by the functional unit for each outstanding operation, and when each operation, which is combined with each functional unit and communicated, ends and whether the end is normal A device for communicating the end information together with the tag of the operation to the maintenance device; a device for communicating the indication of the outstanding operation to the functional unit; A device for sequentially retiring normally completed operations in response to the termination information; and at least a given uncompleted operation in response to information that a given pending operation has been abnormally terminated. A device that instructs the functional unit to drain all late outstanding operations, a device that is combined with the functional unit and drains all outstanding operations specified by the instruction device, and a tag of the earliest outstanding operation that flows out A device for causing the tag allocating device to start allocating further tags starting from the tag that was previously assigned.
【請求項12】未済演算の少なくとも若干をそれぞれが
実行できる複数の機能ユニットを含むコンピュータプロ
セッサにおけるパイプライン化演算を制御する方法であ
って、 割り当てられたタグを検査することによって2つの未済
演算の相対年齢を決定できるように順序を付けたタグの
集合の一員であるタグを各未済演算に割り当てる段階
と、 所与の未済演算が完了する時点を決定する段階と、 未済タグの独特さを保証するように未済演算の数を制限
する段階と、 を具備することを特徴とする方法。
12. A method for controlling a pipelined operation in a computer processor including a plurality of functional units each capable of executing at least some of the outstanding operations, the method comprising the steps of: Assigning to each outstanding operation a tag that is a member of a set of tags ordered so that their relative ages can be determined; determining when a given outstanding operation is completed; guaranteeing the uniqueness of the outstanding tags Limiting the number of outstanding operations to perform the method.
【請求項13】上記演算の少なくとも若干が分岐演算で
あり、 未済分岐演算の結果を予測する段階と、 未済分岐演算の誤った予測を検出する段階と、 誤って予測された分岐演算の結果として発行された全て
の未済演算を流出させる段階 をも具備する請求項12に記載の方法。
13. A branch operation in which at least some of the above operations are branch operations, wherein a step of predicting a result of an uncompleted branch operation, a step of detecting an erroneous prediction of an uncompleted branch operation, and 13. The method of claim 12, further comprising draining all outstanding operations issued.
【請求項14】上記発行段階がm個のプログラマ可視の
レジスタを含む命令集合アーキテクチャを有する入力命
令に応答し、少なくとも若干の演算がこれらのレジスタ
の1つを変更し、 未済のレジスタ変更演算の数をn個に制限する段階と、 少なくとも(m+n)個の物理レジスタを準備する段階
と、 プログラマ可視のレジスタを物理レジスタへ写像する段
階 をも具備する請求項12に記載の方法。
14. The method of claim 1, wherein the issuing step is responsive to an input instruction having an instruction set architecture including m programmer-visible registers, wherein at least some operations modify one of these registers, and 13. The method of claim 12, further comprising: limiting the number to n; providing at least (m + n) physical registers; and mapping programmer-visible registers to physical registers.
【請求項15】物理レジスタを変更した演算が成功裏に
引退してしまうまで物理レジスタが再使用されないこと
を保証する段階と、 仮想から物理への写像を異常状態が検出された時の先行
状態に復元し、従ってプログラマ可視のレジスタの内容
を復元する段階 をも具備する請求項14に記載の方法。
15. A step for ensuring that a physical register is not reused until an operation that has changed the physical register has been successfully retired, and a precedent state when an abnormal state is detected in a virtual-to-physical mapping. 15. The method of claim 14, further comprising the step of restoring the contents of the register visible to the programmer, and hence the programmer.
JP50438990A 1989-02-24 1990-02-21 Computer distributed pipeline control apparatus and method Expired - Lifetime JP3153906B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US31535889A 1989-02-24 1989-02-24
US315,358 1989-02-24

Publications (2)

Publication Number Publication Date
JPH04503582A JPH04503582A (en) 1992-06-25
JP3153906B2 true JP3153906B2 (en) 2001-04-09

Family

ID=23224038

Family Applications (1)

Application Number Title Priority Date Filing Date
JP50438990A Expired - Lifetime JP3153906B2 (en) 1989-02-24 1990-02-21 Computer distributed pipeline control apparatus and method

Country Status (2)

Country Link
JP (1) JP3153906B2 (en)
WO (1) WO1990010267A1 (en)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1526446A3 (en) 1991-07-08 2007-04-04 Seiko Epson Corporation Extensible RISC microprocessor architecture
JP3637920B2 (en) 1992-05-01 2005-04-13 セイコーエプソン株式会社 System and method for retirement of instructions in a superscaler microprocessor
US5898882A (en) * 1993-01-08 1999-04-27 International Business Machines Corporation Method and system for enhanced instruction dispatch in a superscalar processor system utilizing independently accessed intermediate storage
CA2107305A1 (en) * 1993-01-08 1994-07-09 James Allen Kahle Method and system for nonsequential instruction dispatch and execution in a superscalar processor system
KR0122528B1 (en) * 1993-01-08 1997-11-20 윌리엄 티.엘리스 Method and system for indexing the assignment of intermediate storage buffers in a superscalar processor system
US5822574A (en) * 1995-04-12 1998-10-13 Advanced Micro Devices, Inc. Functional unit with a pointer for mispredicted resolution, and a superscalar microprocessor employing the same
US5835747A (en) * 1996-01-26 1998-11-10 Advanced Micro Devices, Inc. Hierarchical scan logic for out-of-order load/store execution control
US5944807A (en) 1996-02-06 1999-08-31 Opti Inc. Compact ISA-bus interface
GB2348719B (en) * 1996-03-01 2000-11-22 Hewlett Packard Co Panic trap system and method
US5838942A (en) * 1996-03-01 1998-11-17 Hewlett-Packard Company Panic trap system and method
DE69636484T2 (en) * 1996-07-16 2007-03-29 Advanced Micro Devices Inc., Austin FUNCTIONAL UNIT WITH POINTER FOR WRONG PREPARED BRANCH RESOLUTION AND SUPERSCALAR MICROPROCESSOR TO THEIR APPLICATION

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58178464A (en) * 1982-04-14 1983-10-19 Hitachi Ltd Parallel arithmetic processing unit
US4736288A (en) * 1983-12-19 1988-04-05 Hitachi, Ltd. Data processing device
US4807115A (en) * 1983-10-07 1989-02-21 Cornell Research Foundation, Inc. Instruction issuing mechanism for processors with multiple functional units
US4831515A (en) * 1985-02-08 1989-05-16 Hitachi, Ltd. Information processing apparatus for determining sequence of parallel executing instructions in response to storage requirements thereof
US4908750A (en) * 1985-03-01 1990-03-13 Wang Laboratories, Inc. Data processing system having tunable operating system means
US4916652A (en) * 1987-09-30 1990-04-10 International Business Machines Corporation Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4425617A (en) * 1981-03-23 1984-01-10 Rca Corporation High-speed data sorter
US4794521A (en) * 1985-07-22 1988-12-27 Alliant Computer Systems Corporation Digital computer with cache capable of concurrently handling multiple accesses from parallel processors
US4783736A (en) * 1985-07-22 1988-11-08 Alliant Computer Systems Corporation Digital computer with multisection cache
US4785395A (en) * 1986-06-27 1988-11-15 Honeywell Bull Inc. Multiprocessor coherent cache system including two level shared cache with separately allocated processor storage locations and inter-level duplicate entry replacement

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58178464A (en) * 1982-04-14 1983-10-19 Hitachi Ltd Parallel arithmetic processing unit
US4807115A (en) * 1983-10-07 1989-02-21 Cornell Research Foundation, Inc. Instruction issuing mechanism for processors with multiple functional units
US4736288A (en) * 1983-12-19 1988-04-05 Hitachi, Ltd. Data processing device
US4831515A (en) * 1985-02-08 1989-05-16 Hitachi, Ltd. Information processing apparatus for determining sequence of parallel executing instructions in response to storage requirements thereof
US4908750A (en) * 1985-03-01 1990-03-13 Wang Laboratories, Inc. Data processing system having tunable operating system means
US4916652A (en) * 1987-09-30 1990-04-10 International Business Machines Corporation Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures

Also Published As

Publication number Publication date
WO1990010267A1 (en) 1990-09-07

Similar Documents

Publication Publication Date Title
US5442757A (en) Computer processor with distributed pipeline control that allows functional units to complete operations out of order while maintaining precise interrupts
EP1385085B1 (en) High performance risc microprocessor architecture
EP0547240B1 (en) Risc microprocessor architecture implementing fast trap and exception state
US5471591A (en) Combined write-operand queue and read-after-write dependency scoreboard
EP0547247B1 (en) Extensible risc microprocessor architecture
US5630149A (en) Pipelined processor with register renaming hardware to accommodate multiple size registers
US5721855A (en) Method for pipeline processing of instructions by controlling access to a reorder buffer using a register file outside the reorder buffer
US6240508B1 (en) Decode and execution synchronized pipeline processing using decode generated memory read queue with stop entry to allow execution generated memory read
JP2939003B2 (en) High performance multiprocessor with floating point unit and method for improving its performance
CN101558388B (en) Data cache virtual hint way prediction, and applications thereof
JP2962876B2 (en) Conversion of internal processor register commands to I / O space addresses
US6728845B2 (en) SRAM controller for parallel processor architecture and method for controlling access to a RAM using read and read/write queues
EP0649085B1 (en) Microprocessor pipe control and register translation
JP3588755B2 (en) Computer system
CN101542430A (en) Load/store unit for a processor, and applications thereof
JPH02208729A (en) Control of apparatus having multiple functions by parallel operation in microcode type execution apparatus
JPH07334364A (en) Superscalar microprocessor and method for processing of rop
JPH06103167A (en) Combination queue for invalidate and returned data in multiprocessor system
US6073231A (en) Pipelined processor with microcontrol of register translation hardware
KR100242403B1 (en) Method and system for buffering of data in data-processing system
US20100050178A1 (en) Method and apparatus to implement software to hardware thread priority
JP3153906B2 (en) Computer distributed pipeline control apparatus and method
JPH04503582A (en) Computer distributed pipeline control device and method
KR100431975B1 (en) Multi-instruction dispatch system for pipelined microprocessors with no branch interruption
KR19990064092A (en) A scan chain for quickly recognizing a first or second object of a selected type in a continuous list

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090202

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090202

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100202

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100202

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110202

Year of fee payment: 10

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110202

Year of fee payment: 10