Traduzione Indirizzo Logico-Fisico tramite MMU
Processo di Traduzione MMU
L'hardware MMU traduce ogni indirizzo logico (virtuale) generato dalla CPU in un indirizzo RAM fisico.
Strutture Principali
- Tabella Pagine: Array per-processo che mappa numeri pagine virtuali (VPN) a numeri frame fisici (PFN) più flag (presente, R/W, utente/supervisore, dirty, accessed).
- Translation Lookaside Buffer (TLB): Piccola cache completamente associativa di mappe VPN→PFN recenti per evitare page-table walks.
Passaggi di Traduzione
- CPU emette indirizzo logico → suddiviso in VPN | offset pagina.
- MMU controlla TLB per VPN.
- Hit: PFN recuperato; indirizzo fisico = PFN + offset.
- Miss: MMU cammina la tabella pagine (tramite page directory/base register) per trovare PTE.
- Se bit presente PTE = 0 → page fault → OS gestisce (carica da disco, swap, ecc.).
- In caso di successo, MMU carica la mappatura in TLB, restituisce indirizzo fisico.
Paging Multilivello
ISA moderne (x86-64, ARMv8) usano tabelle pagine a 4 livelli (o 5); ogni livello indicizza una directory. Il MMU le percorre sequenzialmente in caso di miss TLB.