Memory Management Unit
ARM DDI 0388I
Copyright © 2008-2012 ARM. All rights reserved.
6-4
ID073015
Non-Confidential
6.2
TLB Organization
The following sections describe the organization of the TLB:
•
•
.
6.2.1
Micro TLB
The first level of caching for the page table information is a micro TLB of 32 entries on the data
side, and configurable 32 or 64 entries on the instruction side. These blocks provide a fully
associative lookup of the virtual addresses in a single
CLK
signal cycle.
The micro TLB returns the physical address to the cache for the address comparison, and also
checks the protection attributes to signal either a Prefetch Abort or a Data Abort.
All main TLB related operations affect both the instruction and data micro TLBs, causing them
to be flushed. In the same way, any change of the Context ID Register causes the micro TLBs
to be flushed.
6.2.2
Main TLB
The main TLB catches the misses from the micro TLBs. It also provides a centralized source
for lockable translation entries.
Accesses to the main TLB take a variable number of cycles, according to competing requests
from each of the micro TLBs and other implementation-dependent factors. Entries in the
lockable region of the main TLB are lockable at the granularity of a single entry. As long as the
lockable region does not contain any locked entries, it can be allocated with non-locked entries
to increase overall main TLB storage size.
The main TLB is implemented as a combination of:
•
a fully-associative, lockable array of four elements
•
a 2-way associative structure of 2x32, 2x64,2x128 or 2x256 entries.
TLB match process
Each TLB entry contains a virtual address, a page size, a physical address, and a set of memory
properties. Each is marked as being associated with a particular application space, or as global
for all application spaces. CONTEXIDR determines the selected application space. A TLB
entry matches if bits [31:N] of the modified virtual address match, where N is log
2
of the page
size for the TLB entry. It is either marked as global, or the ASID matched the current ASID.
A TLB entry matches when these conditions are true:
•
its virtual address matches that of the requested address
•
its Non-secure TLB ID (NSTID) matches the Secure or Non-secure state of the MMU
request
•
its ASID matches the current ASID or is global.
The operating system must ensure that, at most, one TLB entry matches at any time.
Supersections, sections, and large pages are supported to permit mapping of a large region of
memory while using only a single entry in a TLB. If no mapping for an address is found in the
TLB, then the translation table is automatically read by hardware and a mapping is placed in the
TLB.