En el momento del RESET, la MMU suele estar "apagada", es decir, no hace ninguna traducción de las direcciones de memoria. Así que el vector de RESET se recupera de la EPROM/Flash de la BIOS porque la memoria de la BIOS puede estar realmente en esa dirección física.
La CPU acabará encendiendo la MMU cuando se hayan configurado suficientes datos de la misma. Por ejemplo, la MMU puede tener tablas, en matrices de memoria, que convertirán una dirección virtual en una dirección física.
Hay varios tipos de MMU. Las más sencillas tienen una dirección base, que es un desplazamiento en la memoria física, y un límite, que es la dirección más grande a la que puede acceder un programa. Este tipo es común en las MCU de 32 bits.
Las MMU más complejas crearán la ilusión del direccionamiento virtual. El espacio de direcciones de un programa parece ser contiguo para el programa y los datos, pero en realidad no lo es, y parte de él puede estar almacenado en un sistema de almacenamiento externo como un disco o SSD.
La MMU está "en el chip" en las CPU modernas. En algunas CPUs de los años 70 y parte de los 80 eran unidades separadas fuera del chip.
La MMU tiene una relación muy "íntima" con la CPU. Cada acceso a la memoria pasa por la MMU. La MMU puede evitar cualquier instrucción que completa un acceso a la memoria. Por ejemplo, una instrucción de carga o almacenamiento, que transfiere datos entre la CPU y la memoria, podría no completarse porque está utilizando una dirección que no es válida. Por ello, la MMU necesita una integración rápida y sincronizada con la CPU.
En el caso de una CPU con capacidad de direccionamiento virtual, la MMU puede evitar que se complete una instrucción para una página de memoria virtual "perdida" interrumpiendo la CPU en mitad de la instrucción. Ese estado de la CPU se almacena y se inicia el proceso para recuperar la página que falta desde el almacenamiento externo. Mientras tanto, pueden ejecutarse otros programas. Finalmente, la página se carga en la memoria, se "arregla" en las tablas de la MMU para que sea válida y se vuelve a ejecutar la instrucción incompleta hasta su finalización, posiblemente millones de instrucciones más tarde.
Hay que elegir la relación entre la memoria caché y la MMU. Una caché puede estar indexada por direcciones de memoria física, o por direcciones de memoria virtual. Si la caché está indexada por direcciones virtuales, la búsqueda en la caché puede ocurrir en paralelo con la MMU. Si la caché está indexada por direcciones físicas, la búsqueda se realiza después de que la MMU haya traducido una dirección virtual a una dirección física.
Una MMU no podría mapear la memoria de vídeo en el espacio de direcciones de la CPU a menos que la tarjeta de vídeo ya haga que la memoria de vídeo se parezca a la memoria normal. La MMU no realiza ninguna magia, hace la traducción de direcciones entre la CPU y el acceso a la memoria. La MMU se configura para cada proceso lógico (OS), por ejemplo, una aplicación independiente. La MMU puede "ocultar" partes del espacio de direcciones de un proceso, y normalmente lo hace. Así, la MMU puede impedir que un proceso acceda a la memoria de vídeo si ésta forma parte del espacio de direcciones subyacente de la CPU.
Es la MMU la que permite a un SO crear un entorno de memoria virtual para los procesos. El sistema operativo está obligado a utilizar cualquier arquitectura de direcciones virtuales que la MMU proporcione. El SO y la MMU no tienen que ser exactamente alineado, por ejemplo el SO podría utilizar más grande páginas de las que admite la MMU, pero sería muy incómodo para el SO intentar utilizar páginas más pequeñas.
Es la MMU la que permite al SO proporcionar la ilusión de memoria virtual. Sin una MMU adecuada, sería impracticable proporcionar memoria virtual.
(Sin una MMU con capacidad de memoria virtual, la ilusión de la memoria virtual, que contiene en proceso, sería gestionada por un intérprete como la Máquina Virtual Java (JVM), o el runtime de .NET. Estos actúan sobre cada para garantizar que el código del programa Java/C# no pueda dañar a otro programa que se esté ejecutando en el mismo espacio de direcciones).
Normalmente la CPU se ejecuta en un par de "modos" diferentes, y la MMU tratará una dirección de forma diferente dependiendo del modo. El SO se ejecutará en un "modo" más privilegiado que un proceso de usuario.
Una MMU que soporte el direccionamiento virtual interceptará cada acceso del proceso de usuario a la memoria (tanto para instrucciones como para datos) y convertirá la dirección virtual en una dirección física real. Esta traducción no se produce necesariamente. Las tablas de traducción de la MMU también llevan bits de control, que la MMU impone, que permiten al proceso de usuario el permiso para leer, ejecutar o escribir en la dirección física.