Intel Processor ユーザーズマニュアル

ページ / 289
4-8
March, 2003
Developer’s Manual
Intel
®
 80200 Processor based on Intel
®
 XScale
 Microarchitecture
Instruction Cache
4.3.4
Locking Instructions in the Instruction Cache
Software has the ability to lock performance critical routines into the instruction cache. Up to 
28 lines in each set can be locked; hardware ignores the lock command if software is trying to lock 
all the lines in a particular set (i.e., ways 28-31can never be locked). When this happens, the line is 
still allocated into the cache, but the lock is ignored. The round-robin pointer stays at way 31 for 
that set. 
Lines can be locked into the instruction cache by initiating a write to coprocessor 15. (See 
 for the exact command.) Register Rd 
contains the virtual address of the line to be locked into the cache. 
There are several requirements for locking down code:
1. The routine used to lock lines down in the cache must be placed in non-cacheable memory, 
which means the MMU is enabled. As a corollary: no fetches of cacheable code should occur 
while locking instructions into the cache.
2. The code being locked into the cache must be cacheable.
3. The instruction cache must be enabled and invalidated prior to locking down lines.
Failure to follow these requirements produces unpredictable results when accessing the instruction 
cache.
System programmers should ensure that the code to lock instructions into the cache does not reside 
closer than 128 bytes to a non-cacheable/cacheable page boundary. If the processor fetches ahead 
into a cacheable page, then the first requirement noted above could be violated.
Lines are locked into a set starting at way 0 and may progress up to way 27; which set a line gets 
locked into depends on the set index of the virtual address. 
 is an example of where lines 
of code may be locked into the cache along with how the round-robin pointer is affected. 
Figure 4-2. 
Locked Line Effect on Round Robin Replacement
way 0
way 1
way 7
way 8
way 22
way 23
way 30
way 31
set 1
set 31
Locked
set 0
Lock
e
d
set 2
Locked
...
set 0: 8 ways locked, 24 ways available for round robin replacement
set 1: 23 ways locked, 9 ways available for round robin replacement
set 2: 28 ways locked, only way28-31 available for replacement
set 31: all 32 ways available for round robin replacement
..
.
..
.
..
.