1-12
MPC7400 RISC Microprocessor Users Manual
MPC7400 Microprocessor Features
MPC7400 must recover from a mispredicted branch or any exception. Retiring an
instruction removes it from the completion queue.
For a more detailed discussion of instruction completion, see Section 6.3.4, òInstruction
Dispatch and Completion Considerations.ó
1.2.2.4 Independent Execution Units
In addition to the BPU, the MPC7400 provides the seven execution units described in the
following sections.
1.2.2.4.1 AltiVec Vector Permute Unit (VPU)
The VPU performs the following permutations on vector operands:
¥
PackVector pack instructions truncate the contents of two concatenated source
operands (grouped as eight words or sixteen half words) into a single result of eight
half words or sixteen bytes, respectively.
UnpackVector unpack instructions unpack the 8 low or high bytes (or 4 low or
high half words) of one source operand into 8 half words (or 4 words) using sign
extension to Tll the most signiTcant bytes (MSBs).
MergeByte vector merge instructions interleave the 8 low bytes (or 8 high bytes)
from two source operands producing a result of 16 bytes. Similarly, half-word vector
merge instructions interleave the 4 low half words (or 4 high half words) of two
source operands producing a result of 8 half words, and word vector merge
instructions interleave the 2 low words (or 2 high words) from two source operands
producing a result of 4 words. The vector merge instruction has many uses, notable
among them is a way to efTciently transpose SIMD vectors.
SplatVector splat instructions prepare vector data for performing operations for
which one source vector is to consist of elements that all have the same value (for
example, multiplying all elements of a vector register by a constant). Vector splat
instructions also can move data. For example to multiply all elements of a vector
register by a constant, the vector splat instructions can be used to splat the scalar into
a vector register. Likewise, when storing a scalar into an arbitrary memory location,
it must be splatted into a vector register, and that register speciTed as the source of
the store. This guarantees that the data appears in all possible positions of that scalar
size for the store.
PermutePermute instructions allow any byte in any two source vector registers to
be directed to any byte in the destination vector. The Telds in a third source operand
specify from which Teld in the source operands the corresponding destination Teld
is to be taken. The Vector Permute (
vperm
) instruction provides many useful
functions. For example, it can be used efTciently to perform table lookups and data
alignment. An example of how to use the command in aligning data is found in
Section 3.1.6, òQuad-Word Data Alignment,ó in the
AltiVec Technology
Programming Environments Manual
.
¥
¥
¥
¥