User guide

7.5 Memory management units
Memory Management Units (MMUs):
translate virtual addresses into physical addresses
control memory access permissions.
If the MMU is disabled, the external address bus outputs addresses without translation.
MMUs are much more versatile than PUs. They can:
provide fine grained control of the memory system
relocate memory at runtime.
You can use an MMU to implement a demand-paged virtual memory system.
7.5.1 Virtual to physical address mapping
Addresses generated by the ARM processor are virtual addresses. When the MMU is enabled, it translates these
virtual addresses into physical addresses. This means that you can access code or data at a chosen virtual address,
when the physical address is at a different location. You can use this for various purposes, for example to allocate
memory to different processes with conflicting address maps.
The translation tables are stored in main memory. In addition to holding address translations, the tables hold fields to
control:
memory access permissions for each region (see Memory access permissions and domains)
flags to control whether accesses to a region are cacheable and bufferable (see Cacheable and bufferable
flags).
Figure 7-2 shows the general principle of virtual to physical address mapping.
Figure 7-2 Virtual to physical address mapping
Warning
Caches contain virtual addresses. It is your responsibility to ensure that virtual addresses from different processes
are not mapped to the same physical address, unless you intend the processes to share an area of memory.
For full details of translation tables see ARM Architecture Reference Manual and the Technical Reference Manual for
your processor.
Caches and Tightly Coupled Memories
Copyright ?1999 2001 ARM Limited 7-8