Memory Management Unit
ARM DDI 0500D
Copyright © 2013-2014 ARM. All rights reserved.
5-3
ID021414
Non-Confidential
5.2
TLB organization
This section describes the organization of the TLB.
5.2.1
Micro TLB
The first level of caching for the translation table information is a micro TLB of ten entries that
is implemented on each of the instruction and data sides.
All main TLB related maintenance operations affect both the instruction and data micro TLBs,
causing them to be flushed.
5.2.2
Main TLB
A unified main TLB handles misses from the micro TLBs. This is a 512-entry, 4-way,
set-associative structure. The main TLB supports all VMSAv8 block sizes, except 1GB. If a
1GB block is fetched, it is split into 512MB blocks and the appropriate block for the lookup
stored.
Accesses to the main TLB take a variable number of cycles, based on:
•
Competing requests from each of the micro TLBs.
•
The TLB maintenance operations in flight.
•
The different page size mappings in use.
5.2.3
IPA cache RAM
The
Intermediate Physical Address
(IPA) cache RAM holds mappings between intermediate
physical addresses and physical addresses. Only Non-secure EL1 and EL0 stage 2 translations
use this cache. When a stage 2 translation is completed it is updated, and checked whenever a
stage 2 translation is required.
Similarly to the main TLB, the IPA cache RAM can hold entries for different sizes.
5.2.4
Walk cache RAM
The walk cache RAM holds the result of a stage 1 translation up to but not including the last
level. If the stage 1 translation results in a section or larger mapping then nothing is placed in
the walk cache.
The walk cache holds entries fetched from Secure and Non-secure state.