>> Technologie Électronique >  >> Téléphones >> Répondeurs

Comment l'MMU traduit les adresses logiques en adresses physiques

Unité de gestion mémoire (MMU) : Traduction d'adresses

L'MMU active la mémoire virtuelle en associant chaque adresse logique (virtuelle) d'un processus à une trame de RAM physique.

Pas à pas (Table de pages multiniveau style x86)

  1. Découpage adresse logique (ex: 32-bit, pages 4 Ko) :
    • Index répertoire pages (10 bits) → sélectionne PDE dans Répertoire Pages (registre CR3).
    • Index table pages (10 bits) → sélectionne PTE dans Table Pages.
    • Décalage page (12 bits) → décalage octet dans la trame 4 Ko.
  2. Recherche Répertoire Pages : MMU lit PDE. Si Present=0 → Défaut de page (OS charge page depuis disque).
  3. Recherche Table Pages : MMU lit PTE. Si Present=0 → Défaut de page.
  4. Adresse trame physique : PTE contient Numéro Page Physique (PPN) (20 bits de poids fort).
  5. Combinaison : Adresse Physique = (PPN << 12) | Décalage Page.
  6. Cache TLB : Translation Lookaside Buffer met en cache mappings récents (VPN → PPN) pour sauter parcours pages sur hits (~99 % taux hit).

Structures clés

  • CR3 (PDBR) : Adresse physique du Répertoire Pages du processus courant.
  • Drapeaux PDE/PTE : Present, Read/Write, User/Supervisor, Write-Through, Cache-Disable, Accessed, Dirty, Global, NX (No-Execute).
  • Gestionnaire défaut page (OS) : Alloue trame, met à jour PTE, reprend instruction.

Extensions

  • PAE (36-bit) : 3 niveaux, pages grandes 2 Mo/4 Mo.
  • x86-64 (4 niveaux) : PML4 → PDPT → PD → PT → page 4 Ko (virtuel 48-bit).
  • ARMv8 : 4 niveaux similaires (TTBR0/1), granulaires 4 Ko/16 Ko/64 Ko.

Résultat : Chaque processus voit un espace d'adressage contigu 0–4 Go (32-bit) ou 0–256 To (48-bit), isolé et plus grand que la RAM physique.

Répondeurs