
2-14
MPC603e & EC603e RISC Microprocessors User's Manual
MOTOROLA
The concept of alignment is also applied more generally to data in memory. For example,
a 12-byte data item is said to be word-aligned if its address is a multiple of four.
Implementation Notes
—The following describes how the 603e handles alignment and
misaligned accesses:
The 603e provides hardware support for some misaligned memory accesses.
However, misaligned accesses will suffer a performance degradation compared to
aligned accesses of the same type.
The 603e does not provide hardware support for floating-point load/store operations
that are not word-aligned. In such a case, the 603e will invoke an alignment
exception and the exception handler must break up the misaligned access. For this
reason, floating-point single- and double-word accesses should always be word-
aligned. Note that a floating-point double-word access on a word-aligned boundary
requires an extra cycle to complete. (Floating-point operations are not supported on
the EC603e microprocessor.)
Any memory access that crosses an alignment boundary must be broken into multiple
discrete accesses. This includes half-word, word, double-word, and string references. For
the case of string accesses, the hardware makes no attempt to get aligned in an effort to
reduce the number of discrete accesses. (Multiword accesses are architecturally required to
be aligned.) The resulting performance degradation depends upon how well each individual
access behaves with respect to the memory hierarchy. At a minimum, additional cache
access cycles are required. More dramatically, for the case of access to a noncacheable
page, each discrete access involves an individual bus operation which will reduce the
effective bandwidth of the bus.
The frequent use of misaligned accesses is discouraged since they can compromise the
overall performance of the processor.
2.2.4 Floating-Point Operand
The 603e provides hardware support for all single- and double-precision floating-point
operations (not supported on the EC603e microprocessor) for most value representations
and all rounding modes. The PowerPC architecture provides for hardware to implement a
floating-point system as defined in ANSI/IEEE standard 754-1985,
IEEE Standard for
Binary Floating Point Arithmetic
. For detailed information about the floating-point
execution model refer to Chapter 3, “Operand Conventions,” in
The Programming
Environments Manual
.
2.2.5 Effect of Operand Placement on Performance
The VEA states that the placement (location and alignment) of operands in memory affect
the relative performance of memory accesses. The best performance is guaranteed if
memory operands are aligned on natural boundaries. To obtain the best performance from
the 603e, the programmer should assume the performance model described in Chapter 3,
“Operand Conventions,” in
The Programming Environments Manual
.