![Digital Equipment Alpha 21164PC Hardware Reference Manual Download Page 34](http://html.mh-extra.com/html/digital-equipment/alpha-21164pc/alpha-21164pc_hardware-reference-manual_2498508034.webp)
2–4
Internal Architecture
29 September 1997 – Subject To Change
21164PC Microarchitecture
2.1.1.1 Instruction Decode and Issue
The IDU decodes up to four instructions in parallel and checks that the required
resources are available for each instruction. The IDU issues only the instructions for
which all required resources are available. The IDU does not issue instructions out of
order, even if the resources are available for a later instruction and not for an earlier
one.
In other words:
•
If resources are available, and multiple issue is possible, then all four instruc-
tions are issued.
•
If resources are available only for a later instruction and not for an earlier one,
then only the instructions up to the latest one for which resources are available
are issued.
The IDU handles only NATURALLY ALIGNED groups of four instructions
(INT16). The IDU does not advance to a new group of four instructions until all
instructions in a group are issued. If a branch to the middle of an INT16 group
occurs, then the IDU attempts to issue the instructions from the branch target to the
end of the current INT16; the IDU then proceeds to the next INT16 of instructions
after all the instructions in the target INT16 are issued. Thus, achieving maximum
issue rate and optimal performance requires that code be be scheduled properly and
that floating or integer NOP instructions be used to fill empty slots in the scheduled
instruction stream.
For more information on instruction scheduling and issuing, including detailed rules
governing multiple instruction issue, refer to Section 2.3.
2.1.1.2 Instruction Prefetch
The IDU contains an instruction prefetcher and a four-entry, 32-byte-per-entry,
prefetch buffer called the refill buffer. Each instruction cache (Icache) miss is
checked in the refill buffer. If the refill buffer contains the instruction data, it fills the
Icache and instruction buffer simultaneously. If the refill buffer does not contain the
necessary data, a fetch and a number of prefetches are sent to the MTU. One prefetch
is sent per cycle until each of the four entries in the refill buffer is filled or has a
pending fill. The refill buffer holds all returned fill data until the data is required by
the IDU pipeline or until it is overwritten by a subsequent fetch/prefetch sequence
caused by a future Icache miss.