
3-12
MPC603e & EC603e RISC Microprocessors User's Manual
MOTOROLA
This “combined access” capability is not implemented on the 603e. Note that the
eieio
is
treated as a no-op by the 603e.
The caching-inhibited (I) bit in the 603e controls whether load and store operations are
strongly or weakly ordered. If an I/O device requires load and store accesses to occur in
program order, then the I bit for the page must be set.
3.5.3 Memory Coherency Attribute (M)
This attribute is provided to allow improved performance in systems where hardware-
enforced coherency is relatively slow, and software is able to enforce the required
coherency. When M = 0, the processor does not enforce data coherency. When M = 1, the
processor enforces data coherency and the corresponding access is considered to be a
global access.
When the M attribute is set, and the access is performed, the global signal is asserted to
indicate that the access is global. Snooping devices affected by the access must then
respond to this global access if their data is modified by asserting ARTRY, and updating the
memory location.
Because instruction memory does not have to be consistent with data memory, the 603e
ignores the M attribute for instruction accesses.
3.5.4 Guarded Attribute (G)
When the guarded bit is set, the memory area (block or page) is designated as guarded,
meaning that the processor will perform out-of-order accesses to this area of memory, only
as follows:
Out-of-order load operations from guarded memory areas are performed only if the
corresponding data is resident in the cache.
The processor prefetches from guarded areas, but only when required, and only
within the memory boundary dictated by the cache block. That is, if an instruction
is certain to be required for execution by the program, it is fetched and the remaining
instructions in the block may be prefetched, even if the area is guarded.
This setting can be used to protect certain memory areas from read accesses made by the
processor that are not dictated directly by the program. If there are areas of memory that are
not fully populated (in other words, there are holes in the memory map within this area),
this setting can protect the system from undesired accesses caused by out-of-order load
operations or instruction prefetches that could lead to the generation of the machine check
exception. Also, the guarded bit can be used to prevent out-of-order load operations or
prefetches from occurring to certain peripheral devices that produce undesired results when
accessed in this way.