![Digital Equipment Alpha 21164PC Hardware Reference Manual Download Page 48](http://html.mh-extra.com/html/digital-equipment/alpha-21164pc/alpha-21164pc_hardware-reference-manual_2498508048.webp)
2–18
Internal Architecture
29 September 1997 – Subject To Change
Pipeline Organization
The nonexception case does not need to drain the pipeline of all outstanding instruc-
tions ahead of the aborting instruction. The pipeline can be restarted immediately at a
redirected address. Examples of nonexception abort conditions are branch mispre-
dictions, subroutine call/return mispredictions, and replay traps. Data cache misses
can cause aborts or issue stalls depending on the cycle-by-cycle timing.
In the event of an exception other than an arithmetic exception, the processor aborts
all instructions issued after the exceptional instruction, as described in the preceding
paragraphs. Due to the nature of some exception conditions, this may occur as late as
the integer register file (IRF) write cycle. In the case of an arithmetic exception, the
processor may execute instructions issued after the exceptional instruction.
After aborting, the address of the exceptional instruction or the immediately subse-
quent instruction is latched in the EXC_ADDR internal processor register (IPR). In
the case of an arithmetic exception, EXC_ADDR contains the address of the instruc-
tion immediately after the last instruction executed. (Every instruction prior to the
last instruction executed was also executed.) For machine check and interrupts,
EXC_ADDR points to the instruction immediately following the last instruction exe-
cuted. For the remaining cases, EXC_ADDR points to the exceptional instruction;
where, in all cases, its execution should naturally restart.
When the pipeline is fully drained, the processor begins instruction execution at the
address given by the PALcode dispatch. The pipeline is drained when all outstanding
write operations to both the IRF and FRF have completed and all outstanding
instructions have passed the point in the pipeline such that they are guaranteed to
complete without an exception in the absence of a machine check.
Replay traps are aborts that occur when an instruction requires a resource that is not
available at some point in the pipeline. These are usually MTU resources whose
availability could not be anticipated accurately at issue time (refer to Section 2.4). If
the necessary resource is not available when the instruction requires it, the instruc-
tion is aborted and the IDU begins fetching at exactly that instruction, thereby
replaying the instruction in the pipeline. A slight variation on this is the load-miss-
and-use replay trap in which an operate instruction is issued just as a Dcache hit is
being evaluated to determine if one of the instruction’s operands is valid. If the result
is a Dcache miss, then the operate instruction is aborted and replayed.