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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Fast Context Switch Extension (FCSE)<br />

Each process is compiled to use the address range 0x00000000 to 0x01FFFFFF. When referring to its own<br />

instructions <strong>and</strong> data, therefore, the program generates VAs whose top seven bits are all zero. The resulting<br />

MVAs have their top seven bits replaced by FCSEIDR.PID, <strong>and</strong> so lie in the process block of the current<br />

process.<br />

The program can also generate VAs whose top seven bits are not all zero. When this happens, the MVA is<br />

equal to the VA. This enables the program to address the process block of another process, provided the<br />

other process does not have process ID 0. Provided access permissions are set correctly, this can be used for<br />

inter-process communication.<br />

Note<br />

<strong>ARM</strong> recommends that only process IDs 1 <strong>and</strong> above are used for general-purpose processes, because the<br />

process with process ID 0 cannot be communicated with in this fashion.<br />

Use of the FCSE therefore reduces the cost of a process swap to:<br />

The cost of a write of the FCSEIDR.PID.<br />

The cost of changing access permissions if they need changing for the new process. In an<br />

MMU-based system, this might involve changing the translation table entries individually, or<br />

pointing to a new translation table by changing one or more of TTBR0, TTBR1, <strong>and</strong> TTBCR. Any<br />

change to the translation tables is likely to involve invalidation of the TLB entries affected. However,<br />

this is usually significantly cheaper than the cache flush that would be required without the FCSE.<br />

Also, in some cases, changes to the translation table, <strong>and</strong> the associated explicit TLB management,<br />

can be avoided by the use of domains. This reduces the cost to that of a write to the Domain Access<br />

Control Register, see Domains on page B3-31.<br />

The FCSE is deprecated. The use of cache, branch predictor <strong>and</strong> TLB operations with MVA based addresses<br />

that, as a result of the Multiprocessing Extensions, would affect other processors as described in section 3.2<br />

is UNPREDICTABLE if FCSEIDR.PID is not zero.<br />

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

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

Saved successfully!

Ooh no, something went wrong!