Chapter 1. Overview
1-13
MPC7400 Microprocessor Features
¥
SelectData ow in the vector unit can be controlled without branching by using a
vector compare instruction and the vector select (
vsel
) instruction. In this case, the
compare result vector is used directly as a mask operand to vector select
instructions.The
vsel
instruction selects one Teld from one or the other of two source
operands under control of its mask operand. Use of the TRUE/FALSE compare
result vector with select in this manner produces a two instruction equivalent of
conditional execution on a per-Teld basis.
These instructions are described in detail in Chapter 2, òAddressing Modes and Instruction
Set Summary,ó in the
AltiVec Technology Programming Environments Manual
.
1.2.2.4.2 AltiVec Vector Arithmetic Logic Unit (VALU)
As shown in Figure 1-1, the VALU consists of the following three independent subunits:
¥
Vector simple integer unit (VSIU)executes simple vector integer computational
instructions, such as addition, subtraction, maximum and minimum comparisons,
averaging, rotation, shifting, comparisons, and Boolean operations
Vector complex integer unit (VCIU)executes longer-latency vector integer
instructions, such as multiplication, division, multiplication/addition, and
sum-across with saturation
Vector oating-point unit (VFPU)executes all vector oating-point instructions
¥
¥
Although only one instruction can be dispatched to the VALU per processor clock cycle, all
three subunits can execute simultaneously. For example, if instructions are dispatched one
at a time to the VFPU, VCIU, and VSIU, all three subunits can be executing separate
instructions, and, if enough VR rename resources are available, two of them can write back
their results in the same clock cycle.
1.2.2.4.3 Integer Units (IUs)
The integer units IU1 and IU2 are shown in. The IU1 can execute any integer instruction;
the IU2 can execute any integer instruction except multiplication and division instructions.
Each IU has a single-entry reservation station that can receive instructions from the
dispatch unit and operands from the GPRs or the rename buffers.
Each IU consists of three single-cycle subunitsa fast adder/comparator, a subunit for
logical operations, and a subunit for performing rotates, shifts, and count-leading-zero
operations. These subunits handle all one-cycle arithmetic instructions; only one subunit
can execute an instruction at a time.
The IU1 has a 32-bit integer multiplier/divider as well as the adder, shift, and logical units
of the IU2. The multiplier supports early exit for operations that do not require full 32-
x
32-bit multiplication.
Each IU has a dedicated result bus (not shown in Figure 1-1) that connects to rename
buffers.