La unidad de gestión de
memoria (Esp.) o unidad de manejo de memoria (Lat.) (MMU, del inglés Memory
Management Unit) 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).
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), Bank switching.
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), el procesador
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.
0 comentarios:
Publicar un comentario