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.

B3.4 Address mapping restrictions<br />

Virtual Memory System <strong>Architecture</strong> (VMSA)<br />

<strong>ARM</strong>v6 supported a page coloring restriction that, when implemented, required all Virtual Address aliases<br />

of a given Physical Address to have the same value for address bits [13:12]. This page coloring restriction<br />

was required to support Virtually Index Physically Tagged (VIPT) caches with a cache way size larger than<br />

4KBytes. For details of the page coloring restriction see Virtual to physical translation mapping restrictions<br />

on page AppxG-26.<br />

<strong>ARM</strong>v7 does not support page coloring, <strong>and</strong> requires that all data <strong>and</strong> unified caches behave as Physically<br />

Indexed Physically Tagged (PIPT) caches.<br />

Note<br />

An <strong>ARM</strong>v7 implementation might use techniques such as hardware alias avoidance to make a VIPT cache<br />

behave as a PIPT cache, <strong>and</strong> might improve performance by avoiding accesses to frequently alternating<br />

aliases to a physical address. Such approaches give good results, but <strong>ARM</strong> recommends migration to the<br />

use of true PIPT caches for all data <strong>and</strong> unified caches.<br />

In an <strong>ARM</strong>v7 implementation, any data or unified cache maintenance operation that operates on a virtual<br />

address must take account of the fact that the cache behaves as a PIPT cache. This means that the<br />

implementation must perform the appropriate action on the physical address that corresponds to the MVA<br />

targeted by the operation.<br />

The <strong>ARM</strong>v7 requirements for instruction caches are described in Requirements for instruction caches.<br />

B3.4.1 Requirements for instruction caches<br />

In a base VMSAv7 implementation, the following conditions require cache maintenance of an instruction<br />

cache:<br />

writing new data to an instruction address<br />

writing new address mappings to the translation table<br />

changing one or more of the TTBR0, TTBR1 <strong>and</strong> TTBCR registers without changing the ASID<br />

enabling or disabling the MMU, by writing to the SCTLR.<br />

Note<br />

These conditions are consistent with the maintenance required for an ASID-tagged Virtually Indexed<br />

Virtually Tagged (VIVT) instruction cache that also includes a security status bit for each cache entry.<br />

VMSAv7 can be implemented with an optional extension, the IVIPT extension (Instruction cache Virtually<br />

Indexed Physically Tagged extension). The effect of this extension is to reduce the instruction cache<br />

maintenance requirement to a single condition:<br />

writing new data to an instruction address.<br />

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

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

Saved successfully!

Ooh no, something went wrong!