Traducción Dirección Lógica a Física vía MMU

Proceso de Traducción de la Unidad de Gestión de Memoria (MMU)

El hardware MMU traduce cada dirección lógica (virtual) generada por la CPU a una dirección física de RAM.

Estructuras Principales

  • Tabla de Páginas: Array por proceso mapeando números de página virtual (VPN) a números de marco físico (PFN) más flags (present, R/W, user/supervisor, dirty, accessed).
  • Translation Lookaside Buffer (TLB): Caché pequeña, totalmente asociativa, de mapeos VPN→PFN recientes para evitar recorridos de tabla de páginas.

Pasos de Traducción

  1. CPU emite dirección lógica → dividir en VPN | offset página.
  2. MMU verifica TLB para VPN.
    • Hit: PFN recuperado; dirección física = PFN + offset.
    • Miss: MMU recorre tabla de páginas (vía registro base/directorio página) para encontrar PTE.
  3. Si bit present PTE = 0 → page fault → SO maneja (cargar desde disco, swap, etc.).
  4. En éxito, MMU carga mapeo en TLB, retorna dirección física.

Paginación Multi-Nivel

ISAs modernas (x86-64, ARMv8) usan tablas de páginas de 4-nivel (o 5-nivel); cada nivel indexa un directorio. MMU los recorre secuencialmente en TLB miss.