Unidade de Gerenciamento de Memória ou
MMU (do
inglês Memory Management Unit) é um dispositivo de
hardware que traduz endereços virtuais em endereços físicos, é geralmente implementada como parte da
Unidade Central de Processamento ou
CPU (Central Processing Unit), mas pode também estar na forma de um circuito integrado separado. Um
MMU é efetivo em gerenciamento de
memória virtual, manipulação e proteção de memória, controle de
cache e, em arquiteturas mais simples de computador, como em sistemas de 8 bits, bank switching.
Em designs anteriores de
microprocessadores, o gerenciamento de memória era feita por um
circuito integrado separado como o do
VLSI VI475 (1986), o
Motorola 68851(1984) usado com a CPU do
Motorola 68020 no Macintosh II, ou o Z8015 (1985) usado com a família de processadores Zilog Z8000. Mais tarde microprocessadores como o do Motorola 68030 a o Zilog Z280 colocaram a
MMU junta com a
CPU um mesmo circuito integrado assim como fez a Intel 80286 e mais tarde os
processadores x86. Na MMU, o valor no registro de re-locação é adicionado a todo o endereço lógico gerado por um processo do utilizador na altura de ser enviado para a
memória.
O programa do utilizador manipula endereços lógicos; ele nunca vê endereços físicos reais.