The ARM memory management options are:
The Memory Management Unit (MMU) allows fine-grained control of a memory system, which allows an operating system to provide features such as demand memory paging. Most of the detailed control is provided through translation tables held in memory. Entries in these tables define the properties for different regions of memory. These include:
virtual-to-physical address mapping
memory access permissions
The Memory Protection Unit (MPU) provides a considerably simpler alternative to the MMU. This allows both hardware and software to be simplified in systems that do not require all facilities of the MMU. You can use the MPU to partition external memory into separate contiguous regions with different sizes and attributes. You can also control access permissions and memory characteristics for different regions of memory.
An MPU does not require external memory for translation tables and helps to provide more predictable performance than an MMU.