Up Next

1  Unité de virtualisation de la mémoire

Le principe de l’unité de virtualisation de la mémoire est de permettre à un logiciel d’intercepter les accès à la mémoire centrale. Le mécanisme de mémoire virtuelle est un dispositif matériel qui se place en coupure entre le microprocesseur et la mémoire physique. Il donne ainsi au système d’exploitation le moyen

La bibliothèque d’émulation matérielle hardware que nous utilisons est capable d’émuler le fonctionnement d’une MMU, Memory Management Unit. On activera la MMU en le précisant dans un fichier hw_config.ini de configuration du matériel :

MMU_ENABLE      = 1

La MMU activée, les défauts d’accès à la mémoire sont reportés sous forme d’interruptions (comme dans un microprocesseur disposant d’une MMU). Le niveau d’interruption associé à la MMU, et le registre matériel contenant l’adresse qui a généré la faute sont précisés dans le fichier de configuration :

MMU_IRQ         = 13
MMU_FAULT_ADDR  = 0xCD

Le matériel émulé gère dans l’espace d’adressage disponible deux zones de mémoire distinctes.

La première zone commence à l’adresse physical_memory et correspond à la zone de mémoire physique. La seconde zone commence à l’adresse virtual_memory et correspond à l’espace d’adressage virtuel. La table 1 décrit plus précisément ces deux zones de mémoire.


Tableau 1: Zones de mémoire physique et virtuelle
 Mémoire physiqueMémoire virtuelle
taille des pagesPAGE_SIZE: 4 koPAGE_SIZE: 4 ko
nombre de pagesPM_PAGES: 1<<8 VM_PAGES: 1<<12
 PM_PAGES: 256 VM_PAGES: 4096
taille PM_SIZE: PM_PAGES * PAGE_SIZE VM_SIZE: VM_PAGES * PAGE_SIZE
  PM_SIZE: 1 Mo VM_SIZE: 16 Mo
adresse de débutphysical_memoryvirtual_memory
adresse de fin physical_memory + PM_SIZE - 1 virtual_memory + VM_SIZE - 1

Cette configuration est proche de celles des microprocesseurs MIPS et ARM. La mémoire physique et la mémoire virtuelle coexistent dans l’espace d’adressage du microprocesseur. Cependant, le microprocesseur distingue deux modes de fonctionnement.

Notons encore que lorsqu’une instruction provoque une interruption MMU, l’instruction n’est pas exécutée par le microprocesseur. Aussi, une fois le traitement de l’interruption terminé, si un simple retour d’interruption est produit, le microprocesseur re-exécute l’instruction fautive.

Nous allons explorer plusieurs utilisations possibles de ce mécanisme de MMU.


Up Next