beautypg.com

3 floating-point execution unit, Floating-point execution unit, Floating-point execution units –10 – Compaq 21264 User Manual

Page 38

background image

2–10

Internal Architecture

Alpha 21264/EV67 Hardware Reference Manual

21264/EV67 Microarchitecture

The Ebox has 80 register-file entries that contain storage for the values of the 31 Alpha
integer registers (the value of R31 is not stored), the values of 8 PALshadow registers,
and 41 results written by instructions that have not yet been retired.

Ignoring cross-cluster delay, the two copies of the Ebox register file contain identical
values. Each copy of the Ebox register file contains four read ports and six write ports.
The four read ports are used to source operands to each of the two subclusters within a
cluster. The six write ports are used as follows:

Two write ports are used to write results generated within the cluster.

Two write ports are used to write results generated by the other cluster.

Two write ports are used to write results from load instructions. These two ports
are also used for FTOIx instructions.

2.1.3 Floating-Point Execution Unit

The floating-point execution unit (Fbox) has two paths. The Fbox executes both VAX
and IEEE floating-point instructions. It support IEEE S_floating-point and T_floating-
point data types and all rounding modes. It also supports VAX F_floating-point and
G_floating-point data types, and provides limited support for D_floating-point format.
The basic structure of the floating-point execution unit is shown in Figure 2–7.

Figure 2–7 Floating-Point Execution Units

The Fbox contains the following resources:

72-entry physical register file

Fully-pipelined multiplier with 4-cycle latency

Fully-pipelined adder with 4-cycle latency

Nonpipelined divide unit associated with the adder pipeline

Nonpipelined square root unit associated with the adder pipeline

The 72 Fbox register file entries contain storage for the values of the 31 Alpha floating-
point registers (F31 is not stored) and 41 values written by instructions that have not
been retired.

LK98-0004A

FP Mul

Reg

FP Add

FP Div

SQRT

Floating-Point

Execution Units