Atmel ARM-Based Evaluation Kit AT91SAM9N12-EK AT91SAM9N12-EK Hoja De Datos

Los códigos de productos
AT91SAM9N12-EK
Descargar
Página de 248
Memory Management Unit 
ARM DDI0198D
Copyright © 2001-2003 ARM Limited. All rights reserved.
3-31
3.7
TLB structure
The MMU contains a single unified TLB used for both data accesses and instruction 
fetches. The TLB is divided into two parts:
an eight-entry fully-associative part used exclusively for holding locked down 
TLB entries
a set-associative part for all other entries, 2 way x 32 entry. 
Whether an entry is placed in the set-associative, or lockdown part of the TLB is 
dependent on the state of the TLB lockdown register, when the entry is written into the 
TLB (see TLB Lockdown Register c10 on page 2-32). 
When an entry has been written into the lockdown part of the TLB, it can only be 
removed by being overwritten explicitly, or by an MVA-based TLB invalidate 
operation, where the MVA matches the locked down entry. 
The structure of the set-associative part of the TLB does not form part of the 
programmer's model for the ARM926EJ-S processor. No assumptions must be made 
about the structure, replacement algorithm, or persistence of entries in the 
set-associative part. Specifically:
Any entry written into the set-associative part of the TLB can be removed at any 
time. The set-associative part of the TLB must be considered as a temporary cache 
of translation/page table information. No reliance must be placed on an entry 
either residing or not residing in the set-associative TLB, unless that entry already 
exists in the lockdown TLB. The set-associative part of the TLB can contain 
entries that are defined in the page tables but do not correspond to address values 
that have been accessed since the TLB was invalidated.
The set-associative part of the TLB must be considered as a cache of the 
underlying page table, where memory coherency must be maintained at all times. 
If a level one descriptor is modified in main memory, then to guarantee coherency 
either an invalidate TLB or invalidate TLB by entry operation must be used to 
remove any cached copies of the level one descriptor. This is required regardless 
of the type of level one descriptor (section, level two page table reference, or 
fault).
If any of the subpage permissions for a given page are different, then each of the 
subpages are treated separately. To invalidate all the entries associated with a page 
with subpage permissions then four MVA-based invalidate operations are 
required, one for each subpage.