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.

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

B3.10 Translation Lookaside Buffers (TLBs)<br />

Translation Lookaside Buffers (TLBs) are an implementation technique that caches translations or<br />

translation table entries. TLBs avoid the requirement for every memory access to perform a translation table<br />

lookup. The <strong>ARM</strong> architecture does not specify the exact form of the TLB structures for any design. In a<br />

similar way to the requirements for caches, the architecture only defines certain principles for TLBs:<br />

The architecture has a concept of an entry locked down in the TLB. The method by which lockdown<br />

is achieved is IMPLEMENTATION DEFINED, <strong>and</strong> an implementation might not support lockdown.<br />

An unlocked entry in the TLB is not guaranteed to remain in the TLB.<br />

A locked entry in the TLB is guaranteed to remain in the TLB. However, a locked entry in a TLB<br />

might be updated by subsequent updates to the translation tables. Therefore it is not guaranteed to<br />

remain incoherent with an entry in the translation table if a change is made to the translation tables.<br />

A translation table entry that returns a Translation fault or an Access fault is guaranteed not to be held<br />

in the TLB. However a translation table entry that returns a Domain fault or a Permission fault might<br />

be held in the TLB.<br />

Any translation table entry that does not return a Translation or Access fault might be allocated to an<br />

enabled TLB at any time. The only translation table entries guaranteed not to be held in the TLB are<br />

those that return a Translation or Access fault.<br />

Software can rely on the fact that between disabling <strong>and</strong> re-enabling the MMU, entries in the TLB<br />

have not have been corrupted to give incorrect translations.<br />

B3.10.1 Global <strong>and</strong> non-global regions in the virtual memory map<br />

The VMSA permits the virtual memory map to be divided into global <strong>and</strong> non-global regions, distinguished<br />

by the nG bit in the translation table descriptors:<br />

nG == 0 The translation is global.<br />

nG == 1 The translation is process specific, meaning it relates to the current ASID, as defined by the<br />

CONTEXTIDR.<br />

Each non-global region has an associated Address Space Identifier (ASID). These identifiers enable<br />

different translation table mappings to co-exist in a caching structure such as a TLB. This means that a new<br />

mapping of a non-global memory region can be created without removing previous mappings.<br />

For a symmetric multiprocessor cluster where a single operating system is running on the set of processing<br />

elements, <strong>ARM</strong>v7 requires all ASID values to be assigned uniquely. In other words, each ASID value must<br />

have the same meaning to all processing elements in the system.<br />

The use of non-global pages when FCSEIDR[31:25] is not 0b0000000 is UNPREDICTABLE.<br />

B3-54 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!