Hardware translating virtual addresses to physical address
A memory management unit (MMU), sometimes called paged memory management unit (PMMU),[1] is a computer hardware unit that examines all memory references on the memory bus, translating these requests, known as virtual memory addresses, into physical addresses in main memory.
In modern systems, programs generally have addresses that access the theoretical maximum memory of the computer architecture, 32 or 64 bits. The MMU maps the addresses from each program into separate areas in physical memory, which is generally much smaller than the theoretical maximum. This is possible because programs rarely use large amounts of memory at any one time.
Most modern operating systems (OS) work in concert with the MMU to provide virtual memory (VM) support. The MMU tracks memory use in fixed-size blocks known as pages, and if a program refers to a location in a page that is not in physical memory, the MMU will cause an interrupt to the operating system. The OS will then select a lesser-used block in memory, write it to backing storage such as a hard drive if it's been modified since it was read in, read the page from backing storage into that block, and set up the MMU to map the block to the originally requested page so the program can use it. This is known as demand paging.
Modern MMUs generally perform additional memory-related tasks as well. Memory protection blocks attempts by a program to access memory it has not previously requested, which prevents a misbehaving program from using up all memory or malicious code from reading data from another program. They also often manage a processor cache, which stores recently accessed data in a very fast memory and thus reduces the need to talk to the slower main memory. In some implementations, they are also responsible for bus arbitration, controlling access to the memory bus among the many parts of the computer that desire access.
Prior to VM systems becoming widespread in the 1990s, earlier MMU designs were more varied. Common among these was paged translation, which was similar to modern demand paging in that it used fixed-size blocks, but had a fixed-size list of pages that divided up memory; this meant that the block size was a function of the number of pages and the installed memory. Another common technique, found mostly on larger machines, was segmented translation, which allowed for variable-size blocks of memory that better mapped onto program requests. This was efficient but did not map as well onto virtual memory. Some early systems, especially 8-bit systems, used very simple MMUs to perform bank switching.
^ Memory Management Unit at the Free On-line Dictionary of Computing
and 24 Related for: Memory management unit information
A memorymanagementunit (MMU), sometimes called paged memorymanagementunit (PMMU), is a computer hardware unit that examines all memory references on...
of the central processing unit (CPU). MPU is a trimmed down version of memorymanagementunit (MMU) providing only memory protection support. It is usually...
A memory controller, also known as memory chip controller (MCC) or a memory controller unit (MCU), is a digital circuit that manages the flow of data...
store the results of ALU operations, and a control unit that orchestrates the fetching (from memory), decoding and execution (of instructions) by directing...
assignment of real memory to virtual memory. Address translation hardware in the CPU, often referred to as a memorymanagementunit (MMU), automatically...
the memory model, paged memory functionality is usually hardwired into a CPU/MCU by using a MemoryManagementUnit (MMU) or Memory Protection Unit (MPU)...
quantization for 2D graphics data. The memorymanagementunit, RDRAM controller and DMA controller handle memory access within the system. Communications...
Nios II's basic functionality by, for example, adding a predefined memorymanagementunit, or defining custom instructions and custom peripherals. Similar...
the computer memory can be transferred to storage; a common way of doing this is through a memorymanagement technique called virtual memory. Modern computer...
addresses, or virtual addresses, using the computer's memorymanagementunit and operating system memory mapping; see below. Most modern computers are byte-addressable...
oh-three-oh or oh-thirty). The 68030 is essentially a 68020 with a memorymanagementunit (MMU) and instruction and data caches of 256 bytes each. It added...
In computing, an arithmetic logic unit (ALU) is a combinational digital circuit that performs arithmetic and bitwise operations on integer binary numbers...
BPDU—Bridge Protocol Data Unit BPEL—Business Process Execution Language BPL—Broadband over Power Lines BPM—Business Process Management BPM—Business Process...
a computer memory architecture, a memorymanagementunit (MMU) between the CPU and the memory bus. The physical address of computer memory banks may be...
C dynamic memory allocation refers to performing manual memorymanagement for dynamic memory allocation in the C programming language via a group of functions...
Floating-Point Unit (FPU). It thus included all of the functionality that previously required external chips, namely the FPU and MemoryManagementUnit (MMU),...
also supports direct continuous addressing of 16 MB of memory without a memorymanagementunit, by extending most registers (HL, BC, DE, IX, IY, SP, and...
office suite), and the ad hoc protected memory implementation (due to the lack of a Motorola memorymanagementunit), placed a high demand on the CPU and...
main parts: The control unit and the arithmetic logic unit (ALU). The former controls the flow of data between the CPU and memory, while the latter performs...
or hard fault) is an exception that the memorymanagementunit (MMU) raises when a process accesses a memory page without proper preparations. Accessing...
and Intel processors. The on-chip memorymanagementunit (MMU) has the capability of addressing up to 1 MB of memory. It is possible to configure the Z180...
translation process by the memorymanagementunit or by low-level system software or firmware. In operating systems that use virtual memory, every process is given...