Memory Management Unit

Also found in: Acronyms, Wikipedia.

Memory Management Unit

(hardware, memory management)
(MMU, "Paged Memory Management Unit", PMMU) A hardware device or circuit that supports virtual memory and paging by translating virtual addresses into physical addresses.

The virtual address space (the range of addresses used by the processor) is divided into pages, whose size is 2^N, usually a few kilobytes. The bottom N bits of the address (the offset within a page) are left unchanged. The upper address bits are the (virtual) page number. The MMU contains a page table which is indexed (possibly associatively) by the page number. Each page table entry (PTE) gives the physical page number corresponding to the virtual one. This is combined with the page offset to give the complete physical address.

A PTE may also include information about whether the page has been written to, when it was last used (for a least recently used replacement algorithm), what kind of processes (user mode, supervisor mode) may read and write it, and whether it should be cached.

It is possible that no physical memory (RAM) has been allocated to a given virtual page, in which case the MMU will signal a "page fault" to the CPU. The operating system will then try to find a spare page of RAM and set up a new PTE to map it to the requested virtual address. If no RAM is free it may be necessary to choose an existing page, using some replacement algorithm, and save it to disk (this is known as "paging"). There may also be a shortage of PTEs, in which case the OS will have to free one for the new mapping.

In a multitasking system all processes compete for the use of memory and of the MMU. Some memory management architectures allow each process to have its own area or configuration of the page table, with a mechanism to switch between different mappings on a process switch. This means that all processes can have the same virtual address space rather than require load-time relocation.

An MMU also solves the problem of fragmentation of memory. After blocks of memory have been allocated and freed, the free memory may become fragmented (discontinuous) so that the largest contiguous block of free memory may be much smaller than the total amount. With virtual memory, a contiguous range of virtual addresses can be mapped to several non-contiguous blocks of physical memory.

In early designs memory management was performed by a separate integrated circuit such as the MC 68851 used with the Motorola 68020 CPU in the Macintosh II or the Z8015 used with the Zilog Z80 family of processors. Later CPUs such as the Motorola 68030 and the ZILOG Z280 have MMUs on the same IC as the CPU.
References in periodicals archive ?
Full debugging is possible when the memory management unit is enabled even when complex virtual to physical memory translation is being used.
The MCF5445x microprocessors are based on the high-performance V4 ColdFire microarchitecture featuring an enhanced multiply-accumulate (eMAC) unit, hardware divide and a memory management unit (MMU).
Embedding an ARM926 processor, memory management unit and Wind River Platform Linux operating system, the OXETHU954 is Oxford's first connectivity platform to offer Ethernet, PCI, USB2.
2 is available for US$495, and includes the MicroBlaze v7 processor core with new optional memory management unit (MMU), Xilinx Platform Studio (XPS) 9.
Combining Ethernet, PCI, serial and USB connectivity with an ARM9 processor, memory management unit and Linux operating system, the OXETHU954 network connectivity controller from Oxford Semiconductor provides a complete silicon and open source software platform for the development of high performance, feature-rich device networking products.
The ARC 750D configurable RISC core includes features such as a high performance 7 stage pipeline, dynamic branch prediction unit and a memory management unit for Embedded Linux and other high-end operating systems.
At the heart of the SH-MobileL3V chip is a SuperH(R) type SH4AL-DSP CPU core with cache memory, a direct memory access controller (DMAC) and a memory management unit (MMU) that achieves high processing performance: 389 MIPS at its maximum operating frequency of 216MHz.
Memory Management Unit (MMU) usage is also optimized to minimize Translation Lookaside Buffer (TLB) overhead while ensuring protection against application faults.
Occupying less than 100 kbytes of memory, OSE enhances reliability and availability by utilizing a processor's memory management unit to build a firewall between kernel and application processes.
The third- generation ST231 core -- which has added a Memory Management Unit (MMU) to provide support for the Linux operating system, as well as other new features -- has been certified at 300MHz by the EEMBC Certification Lab using the STi5300 SoC designed for set-top box, DVD and multimedia applications.
Also included is a memory management unit (MMU) for operating systems such as Linux and 64-bit instruction and data AHB interfaces that enable high-performance access to memory systems.