Atmel ARM-Based Evaluation Kit AT91SAM9N12-EK AT91SAM9N12-EK 数据表

产品代码
AT91SAM9N12-EK
下载
页码 248
Programmer’s Model 
2-34
Copyright © 2001-2003 ARM Limited. All rights reserved.
ARM DDI0198D
FCSE PID Register
Addresses issued by the ARM9EJ-S core in the range 0 to 32MB are translated in 
accordance with the value contained in this register. Address A becomes A + (FCSE 
PID x 32MB). It is this modified address that is seen by the caches, MMU, and TCM 
interface. Addresses above 32MB are not modified. The FCSE PID is a seven-bit field, 
enabling 128 x 32MB processes to be mapped.
If the FCSE PID is 0, there is a flat mapping between the virtual addresses output by the 
ARM9EJ-S core and the modified virtual addresses used by the caches, MMU, and 
TCM interface. The FCSE PID is set to 0 at system reset.
If the MMU is disabled, then no FCSE address translation occurs.
FCSE translation is not applied for addresses used for entry based cache or TLB 
maintenance operations. For these operations VA = MVA. 
Table 2-26 shows the ARM instructions that can be used to access the FCSE PID 
Register.
The format of the FCSE PID Register is shown in Figure 2-15.
Figure 2-15 Process ID Register format
Performing a fast context switch
You can perform a fast context switch by writing to CP15 register c13 with Opcode_2 
= 0. The contents of the caches and the TLB do not have to be flushed after a fast context 
switch because they still hold valid address tags. The two instructions after the FCSE 
PID has been written have been fetched with the old FCSE PID, as the following code 
example shows:
Table 2-26 FCSE PID Register operations
Function
Data
ARM Instruction
Read FCSE PID
FCSE PID
MRC p15,0,<Rd>,c13,c0, 0
Write FCSE PID
FCSE PID 
MCR p15,0,<Rd>,c13,c0, 0
FCSE PID
31
25 24
0
SBZ