Unidad de gestión de memoria
# Unidad de gestión de memoria

La unidad de gestión de memoria, unidad de administración de memoria o unidad de manejo de memoria (del inglés Memory Management Unit, MMU) es un dispositivo de hardware formado por un grupo de circuitos integrados, responsable del manejo de los accesos a la memoria por parte de la Unidad de Procesamiento Central (CPU) o procesador.

Entre las funciones de este dispositivo se encuentran la traducción de las direcciones lógicas (o virtuales) a direcciones físicas (o reales), la protección de la memoria, el control de caché y, en arquitecturas de computadoras más simples (especialmente en sistemas de 8 bits), la conmutación de bancos de memoria.

Cuando la CPU intenta acceder a una dirección de memoria lógica, la MMU realiza una búsqueda en una memoria caché especial llamada Buffer de Traducción Adelantada (TLB, Translation Lookaside Buffer), que mantiene la parte de la tabla de páginas usada hace menos tiempo.

En esta memoria se mantienen "entradas de la tabla de páginas" (llamadas PTE, por sus siglas en inglés Page Table Entry), donde se pueden rescatar las direcciones físicas correspondientes a algunas direcciones lógicas, de forma directa. Cuando la dirección requerida por la CPU se encuentra en el TLB, su traducción a dirección real o física es entregada, en lo que se conoce como "acierto en el TLB" (TLB hit).

En otro caso, cuando la dirección buscada no se encuentra en el TLB (fallo en el TLB), la MMU busca en la tabla de páginas del proceso utilizando el número de página como entrada a la misma. En la entrada de la tabla de páginas del proceso se encuentra un bit de presencia, que indica si la página buscada está en memoria principal. Si el bit de presencia está activado, se carga esta PTE en el TLB y se devuelve la dirección física. En caso contrario, se informa al sistema operativo de la situación, mediante un "fallo de página".

Es el sistema operativo el encargado de realizar los ajustes necesarios (esto es, cargar la página en memoria física) usando uno de los algoritmos de reemplazo de páginas, para continuar con la ejecución desde la instrucción que causó el fallo. Un beneficio fundamental de la MMU es la posibilidad de implementar protección de memoria, evitando que los programas accedan a porciones de memoria prohibidas. Por ejemplo, se puede evitar que un programa acceda o modifique sectores de memoria de otros programas.

## Notas y referencias

* ↑ Término utilizado en España.
* ↑ Término utilizado en Latinoamérica.
