05.02.2013 Views

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

E.2 Modified virtual addresses<br />

Fast Context Switch Extension (FCSE)<br />

The 4GB virtual address space is divided into 128 process blocks, each of size 32MB. Each process block<br />

can contain a program that has been compiled to use the address range 0x00000000 to 0x01FFFFFF. For each<br />

of i=0 to 127, process block i runs from address (i × 0x02000000) to address (i × 0x02000000 + 0x01FF FFFF).<br />

The FCSE processes each virtual address for a memory access generated by the <strong>ARM</strong> processor to produce<br />

a modified virtual address, that is sent to the rest of the memory system to be used in place of the normal<br />

virtual address. For an MMU-based memory system, the process is illustrated in Figure E-1:<br />

Processor<br />

core<br />

Virtual<br />

Address<br />

(VA)<br />

FCSE<br />

Modified<br />

Virtual<br />

Address<br />

(MVA)<br />

MMU<br />

Cache<br />

Physical<br />

Address<br />

(PA)<br />

Figure E-1 Address flow in MMU memory system with FCSE<br />

When the <strong>ARM</strong> processor generates a memory access, the translation of the Virtual Address (VA) into the<br />

Modified Virtual Address (MVA) is described by the FCSETranslate() function in FCSE translation on<br />

page B3-156.<br />

When the top seven bits of the address are zero, the translation replaces these bits by the value of<br />

FCSEIDR.PID when they are zero, <strong>and</strong> otherwise the translation leaves the address unchanged. When<br />

FCSEIDR.PID has its reset value of 0b0000000, the translation leaves the address unchanged, meaning that<br />

the FCSE is effectively disabled.<br />

The value of FCSEIDR.PID is also known as the FCSE process ID of the current process. For more<br />

information, see c13, FCSE Process ID Register (FCSEIDR) on page B3-152.<br />

Main<br />

memory<br />

The effect of setting the FCSEIDR to a nonzero value at a time when any translation table entries have<br />

enabled the alternative Context ID, ASID-based support (nG bit == 1) is UNPREDICTABLE. For more<br />

information about ASIDs see About the VMSA on page B3-2.<br />

Note<br />

Virtual addresses are sometimes passed to the memory system as data. For these operations, no address<br />

modification occurs, <strong>and</strong> MVA = VA.<br />

<strong>ARM</strong> DDI 0406B Copyright © 1996-1998, 2000, 2004-2008 <strong>ARM</strong> Limited. All rights reserved. AppxE-3

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!