
Chapter 3. Memory Access Protocol
3-9
3.2.2.1 Address Bus Parity
The 60x processors always generate one bit of correct odd-byte
parity for each of the four
bytes of address when a valid address is on the bus. The calculated values are placed on the
AP[0–3] outputs when the processor is address bus master. If the processor is not the
master, TS and GBL are asserted together, the transaction type is one the processor snoops,
and the calculated values are compared with inputs AP[0–3]. If address bus parity checking
is enabled (refer to the HID description for each processor), a parity error causes a machine
check (checkstop on the 601) if MSR[ME] is set or checkstop if it is cleared. If address bus
parity checking is disabled, no action is taken. In either case, APE is asserted if even parity
is detected. The 603 does not assert APE if address parity checking is disabled.
3.2.2.2 Address Transfer Attribute Signals
The address transfer attribute signals, TT[0–4], TBST, TSIZ[0–2], and TC
n
, are fully
described in Section 2.4, “Address Transfer Attribute Signals,” and are summarized below.
3.2.2.2.1 Transfer Type (TT[0–4]) Signals
Snooping logic should fully decode the transfer type signals if GBL is asserted. Slave
devices can sometimes use individual transfer type signals without fully decoding the
group. Table 2-1 describes encodings for the transfer type signals.
3.2.2.2.2 Transfer Size (TSIZ[0–2]) Signals
The TSIZ[0–2] signals indicate the size of the requested data transfer as shown in Table 2-2.
These signals can be used with TBST and A[29–31] to determine which portion of the data
bus has valid data for a write transaction or which portion of the bus should contain valid
data for a read transaction. In general, processors do not produce 5-, 6-, or 7-byte transfers.
The 601 allows unaligned floating-point operations to produce 5-, 6-, or 7-byte transfers,
but use of this feature is discouraged.
The PowerPC architecture allows storage combining, but it is not supported in the 601 and
603. The 604 combines only stores to adjacent aligned words resulting from a
cache-inhibited store multiple word (
stmw
) instruction. These combined words are
presented to the bus as a normal double-word store in memory order. Storage combining of
other sizes (for example, three adjacent half words to make a 6-byte transfer) are not
implemented.
Coherency size is defined as 32 bytes (one cache block). Data transfers that cross a
32-byte–aligned boundary must present a new address to the bus at that boundary (for
coherency consideration) or must operate as noncoherent data with respect to the processor.