PowerPC e500 Core Family Reference Manual, Rev. 1
3-62
Freescale Semiconductor
Instruction Model
Full descriptions of these instructions can be found in the EREF chapter, “Instruction Set.” Note
the following:
•
In the L1 data cache the e500 implements a lock bit for every index and way, allowing a
line locking granularity. Setting CT = 0 specifies the L1 cache.
•
The e500 supports CT = 0 and CT = 1. If CT = 0, the L1 cache is targeted. If CT = 1, the
unified L2 cache is targeted.
•
If the CT value is not supported, the instruction is treated as a no-op.
•
Note that setting L1CSR0[DCLFI] flash invalidates all data cache lock bits and setting
L1CSR0[ICLFI] flash invalidates all instruction cache lock bits, allowing system software
to clear all cache locking in the L1 cache without knowing the addresses of the lines locked.
•
Overlocking occurs when dcbtls, dcbtstls, or icbtls is performed to an index in either the
L1 or L2 cache that already has all ways locked. In the e500, overlocking does not generate
an exception; instead, if a touch and lock set is performed with CT = 0 to an index in which
all cache ways are already locked, the least recently used way is evicted and L1CSR0[CLO]
is set indicating an overlock; the new line is not locked or cached.
To precisely detect an overlock condition in the data cache, system software must perform
the following code sequence:
dcbtls
msync
mfspr (L1CSR0)
(check L1CSR0[CUL] for data cache index unable-to-lock condition)
(check L1CSR0[CLO] for data cache index overlock condition)
The following code sequence is used to precisely detect an overlock in the instruction
cache:
icbtls
msync
mfspr (L1CSR1)
check L1CSR1[ICUL] for instruction cache index unable-to-lock condition
check L1CSR1[ICLO] for instruction cache index overlock condition
•
Touch and lock set instructions (icbtls, dcbtls, and dcbtstls) are always executed and are
not treated as hints. When one of these instructions is performed to an index and the way
cannot be locked, L1CSR1[ICUL] or L1CSR0[CUL] is set to indicate an unable-to-lock
condition. This occurs if the instruction must be no-oped.
The e500 implements a flash clear for all data cache lock bits (using L1CSR0[CLFR]) and in the
instruction cache (using L1CSR1[ICLFR]). This allows system software to clear all data cache
locking bits without knowing the addresses of the lines locked.
Содержание 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...