Functional Units
2-6
2.2
Functional Units
The eight functional units in the ’C62x/C67x data paths can be divided into two
groups of four; each functional unit in one data path is almost identical to the
corresponding unit in the other data path. The functional units are described
in Table 2–2.
Table 2–2. Functional Units and Operations Performed
Functional Unit
Fixed-Point Operations
Floating-Point Operations
.L unit (.L1,.L2)
32/40-bit arithmetic and compare operations
Leftmost 1 or 0 bit counting for 32 bits
Normalization count for 32 and 40 bits
32-bit logical operations
Arithmetic operations
DP
→
SP, INT
→
DP, INT
→
SP
conversion operations
.S unit (.S1, .S2)
32-bit arithmetic operations
32/40-bit shifts and 32-bit bit-field operations
32-bit logical operations
Branches
Constant generation
Register transfers to/from the control register file
(.S2 only)
Compare
Reciprocal and reciprocal square-
root operations
Absolute value operations
SP
→
DP conversion operations
.M unit (.M1, .M2)
16
16 bit multiply operations
32
32 bit fixed-point multiply
operations
Floating-point multiply operations
.D unit (.D1, .D2)
32-bit add, subtract, linear and circular address
calculation
Loads and stores with a 5-bit constant offset
Loads and stores with 15-bit constant offset
(.D2 only)
Load doubleword with 5-bit constant
offset
Note:
Fixed-point operations are available on both the ’C62x and the ’C67x. Floating-point operations and 32-bit fixed-point
multiply are available only on the ’C67x.
Most data lines in the CPU support 32-bit operands, and some support long
(40-bit) operands. Each functional unit has its own 32-bit write port into a
general-purpose register file. All units ending in 1 (for example, .L1) write to
register file A and all units ending in 2 write to register file B. Each functional
unit has two 32-bit read ports for source operands
src1 and src2. Four units
(.L1, .L2, .S1, and .S2) have an extra 8-bit-wide port for 40-bit long writes, as
well as an 8-bit input for 40-bit long reads. Because each unit has its own 32-bit
write port, all eight units can be used in parallel every cycle.