Access Control
The AP access control bits in each table entry control access to a region of memory
by a given process. A region of memory can be designated as no access, read only, or
read-write. Further, the region can be designated as privileged access only, reserved
for use by the OS and not by applications.
ARM also employs the concept of a domain, which is a collection of sections
and/or pages that have particular access permissions. The ARM architecture supports
16 domains. The domain feature allows multiple processes to use the same
translation tables while maintaining some protection from each other.
Each page table entry and TLB entry contains a field that specifies which domain
the entry is in. A 2-bit field in the Domain Access Control Register controls
access to each domain. Each field allows the access to an entire domain to be enabled
and disabled very quickly, so that whole memory areas can be swapped in and
out of virtual memory very efficiently.
Two kinds of domain access are supported:
• Clients: Users of domains (execute programs and access data) that must observe
the access permissions of the individual sections and/or pages that make
up that domain
• Managers: Control the behavior of the domain (the current sections and pages
in the domain, and the domain access), and bypass the access permissions for
table entries in that domain
One program can be a client of some domains, and a manager of some other
domains, and have no access to the remaining domains. This allows very flexible
memory protection for programs that access different memory resources.