29 September 1997 – Subject To Change
Internal Architecture
2–9
21164PC Microarchitecture
Each interrupt source, or group of sources, is assigned an interrupt priority level
(IPL), as shown in Table 4–11. The current IPL is set using the IPLR register (see
Section 5.1.18). Any interrupts that have an equal or lower IPL are masked. When an
interrupt occurs that has an IPL greater than the value in the IPLR register, program
control passes to the INTERRUPT PALcode entry point. PALcode processes the
interrupt by reading the ISR (see Section 5.1.24) and the INTID register (see
Section 5.1.19).
2.1.2 Integer Execution Unit
The integer execution unit (IEU) contains two 64-bit integer execution pipelines, E0
and E1, which include the following:
•
Two adders
•
Two logic boxes
•
A barrel shifter
•
Byte-manipulation logic
•
An integer multiplier
•
A motion video instruction unit
The IEU also includes the 40-entry, 64-bit integer register file (IRF) that contains the
32 integer registers defined by the Alpha architecture and 8 PAL shadow registers.
The register file has four read ports and two write ports that provide operands to both
integer execution pipelines and accept results from both pipes. The register file also
accepts load instruction results (memory data) on the same two write ports.
2.1.3 Floating-Point Execution Unit
The onchip, pipelined floating-point unit (FPU) can execute both IEEE and VAX
floating-point instructions. The 21164PC supports IEEE S_floating and T_floating
data types, and all rounding modes. It also supports VAX F_floating and G_floating
data types, and provides limited support for the D_floating format. The FPU con-
tains:
•
A 32-entry, 64-bit floating-point register file
•
A user-accessible control register
•
A floating-point multiply pipeline
•
A floating-point add pipeline