PowerPC e500 Core Family Reference Manual, Rev. 1
11-14
Freescale Semiconductor
L1 Caches
software should mark guarded space as no-execute (UX = 0 and SX = 0) to prevent inadvertent
instruction fetching from guarded areas of memory. Then, if the effective address of the current
instruction is in guarded, no-execute memory, an execute access control exception occurs,
generating an instruction storage interrupt.
The core complex does not perform speculative stores to guarded memory. However, loads from
guarded memory may be accessed speculatively if one of the following applies:
•
The target location is valid in the data cache.
•
The load is guaranteed to be executed. In this case, the entire cache block containing the
referenced data may be loaded into the cache.
For more information, see the EREF.
NOTE
On the e500 v1, memory areas must never be set up to be both
cacheable and guarded. This is because if the processor detects an
error (such as an uncorrectable L2 ECC error) to an area that is both
cacheable and guarded, the processor may hang (requiring a hard reset
to recover). This is because on the e500v1, if a guarded load
encounters a bus error, the transaction never completes and external
interrupts cannot be recognized. On the e500v2, external interrupts
can be recognized when a guarded load is in progress so the above
precautions do not apply.
11.3.5 Load/Store Operations
Load and store operations are assumed to be weakly ordered on the core complex. The LSU can
perform load operations that occur later in the program ahead of store operations, even when the
data cache is disabled (see
Section 11.3.5.2, “Sequential Consistency of Memory Accesses
”).
11.3.5.1 Performed Loads and Stores
The architecture defines a performed load operation as one that has the addressed memory location
bound to the target register of the load instruction. The architecture defines a performed store
operation as one where the stored value is the value that any other processor will receive when
executing a load operation (that is, of course, until it is changed again). With respect to the core
complex, caching-allowed (WIMGE = 0bx0xxx) loads and caching-allowed, write-back (WIMGE
= 0b00xxx) stores are performed when they have arbitrated to address the cache block in the L1
data cache or the CCB and therefore gained coherency ownership of the cache line (that is, they
have gained M or E, or S rights to the line). The e500 considers caching-inhibited (WIMGE =
0bx1xxx) loads and stores, and write-through (WIMGE = 0b10xxx) stores performed when they
have been successfully presented onto the CCB. Note that loads are considered performed at the
L1 data cache only if the respective cache contains a valid copy of that address. Write-back stores
Содержание PowerPC e500 Core
Страница 1: ...PowerPC e500 Core Family Reference Manual Supports e500v1 e500v2 E500CORERM Rev 1 4 2005...
Страница 36: ...PowerPC e500 Core Family Reference Manual Rev 1 xxxvi Freescale Semiconductor...
Страница 38: ...PowerPC e500 Core Family Reference Manual Rev 1 Part I 2 Freescale Semiconductor...
Страница 316: ...PowerPC e500 Core Family Reference Manual Rev 1 7 18 Freescale Semiconductor Performance Monitor...
Страница 332: ...PowerPC e500 Core Family Reference Manual Rev 1 Part II 2 Freescale Semiconductor...
Страница 362: ...PowerPC e500 Core Family Reference Manual Rev 1 10 26 Freescale Semiconductor Auxiliary Processing Units APUs...
Страница 440: ...PowerPC e500 Core Family Reference Manual Rev 1 A 8 Freescale Semiconductor Programming Examples...
Страница 444: ...PowerPC e500 Core Family Reference Manual Rev 1 B 4 Freescale Semiconductor Guidelines for 32 Bit Book E...
Страница 530: ...Opcode Listings PowerPC e500 Core Family Reference Manual Rev 1 D 50 Freescale Semiconductor...
Страница 534: ...PowerPC e500 Core Family Reference Manual Rev 1 E 4 Freescale Semiconductor Revision History...