2 operand conventions, 1 data organization in memory and data transfers, 2 alignment and misaligned accesses – IBM POWERPC 750GL User Manual

Page 82: Table 2-4, Memory operands

Advertising
background image


User’s Manual
IBM PowerPC 750GX and 750GL RISC Microprocessor

Programming Model

Page 82 of 377

gx_02.fm.(1.2)

March 27, 2006

2.2 Operand Conventions

This section describes the operand conventions as they are represented in two levels of the PowerPC Archi-
tecture—UISA and VEA. Detailed descriptions of conventions used for storing values in registers and
memory, accessing PowerPC registers, and representing data in these registers can be found in Chapter 3,
“Operand Conventions” in the PowerPC Microprocessor Family: The Programming Environments Manual.

2.2.1 Data Organization in Memory and Data Transfers

Bytes in memory are numbered consecutively starting with 0. Each number is the address of the corre-
sponding byte.

Memory operands can be bytes, half words, words, or double words, or, for the load/store multiple and
load/store string instructions, a sequence of bytes or words. The address of a memory operand is the address
of its first byte (the lowest-numbered byte). Operand length is implicit for each instruction.

2.2.2 Alignment and Misaligned Accesses

The operand of a single-register memory-access instruction has an alignment boundary equal to its length.
An operand’s address is misaligned if it is not a multiple of its width. Operands for single-register memory-
access instructions have the characteristics shown in Table 2-4. Although not permitted as memory oper-
ands, quadwords are shown because quadword alignment is desirable for certain memory operands.

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.

Some instructions require their memory operands to have a certain alignment. In addition, alignment can
affect performance. For single-register memory-access instructions, the best performance is obtained when
memory operands are aligned. Instructions are 32 bits (one word) long and must be word-aligned.

The 750GX does not provide hardware support for floating-point memory that is not word-aligned. If a
floating-point operand is not aligned, the 750GX invokes an alignment exception, and it is left up to software
to break up the offending storage access operation appropriately. In addition, some non-double-word–aligned
memory accesses suffer performance degradation as compared to an aligned access of the same type.

In general, floating-point word accesses should always be word-aligned, and floating-point double-word
accesses should always be double-word–aligned. Frequent use of misaligned accesses is discouraged since
they can degrade overall performance.

Table 2-4. Memory Operands

Operand

Length

Addr[28-31] If Aligned

Byte

8 bits

xxxx

Half word

2 bytes

xxx0

Word

4 bytes

xx00

Double word

8 bytes

x000

Quadword

16 bytes

0000

Note: An “x” in an address bit position indicates that the bit can be 0 or 1 independent of the state of other bits in the address.

Advertising
This manual is related to the following products: