LanguageEnglishDeutsch
Industrial electronics

MMU

Initialism of memory management unit.

MMU: hardware that translates addresses for safe memory access

A memory management unit is a hardware component, usually integrated into a processor chip, that translates logical (or virtual) memory addresses generated by a running program into physical addresses on actual RAM. When software requests data from memory location 0x1000, the MMU intercepts that request, consults its translation tables, and directs the hardware to retrieve data from the real physical address, which might be 0x5A000 or anywhere else. This translation happens in nanoseconds and is transparent to the application.

The primary job of an MMU is memory protection and address isolation. Each process running on a system gets its own virtual address space, typically starting at address zero. The MMU ensures that one program cannot accidentally (or maliciously) read or write memory belonging to another program or to the kernel. It does this by maintaining page tables, which are lookup structures that map virtual pages to physical frames, each marked with access permissions. If a program tries to write to memory it has no rights to, the MMU signals a fault, and the operating system terminates the offending process.

Physical design and operation

An MMU typically works at the granularity of pages, commonly 4 KB on x86 and ARM processors, though some systems support variable or larger page sizes. Translation happens via a page walk: the processor presents a virtual address, the MMU searches the page tables (often a multi-level tree structure to save memory), and retrieves the corresponding physical address and permission bits. Modern MMUs include a translation lookaside buffer (TLB), a small associative cache that stores recently used translations; a TLB hit returns a physical address in one or two cycles, while a TLB miss requires a full page table walk, which costs tens or hundreds of cycles.

MMUs are essential to modern operating systems. Without one, each program would need to be loaded into a fixed location and must not exceed its bounds; this makes multitasking difficult and security nearly impossible. With an MMU, the OS can load programs anywhere in physical memory, swap inactive pages to disk, and prevent one process from crashing others. Embedded systems without an MMU (such as microcontrollers running bare-metal code or simple RTOS kernels) sacrifice these protections for lower latency and simpler hardware.

When an MMU fails or is misconfigured, memory access becomes unreliable. A faulty TLB or corrupted page table can cause a process to read or write the wrong data silently, or to fault repeatedly on valid addresses. Developers troubleshooting memory corruption or page faults must understand how the MMU is translating addresses, which is why low-level debuggers and kernel tools provide commands to inspect page tables and TLB contents.

More from Industrial electronics

See all

Get the Word of the Day

One industrial term every day, with the trade it belongs to and why it is worth knowing. No advertising.