Présentation PowerPoint
Transcription
Présentation PowerPoint
Plan Copyright © F. Muller 2004 Ch1 - Introduction Ch2 - Structure de l’ordinateur Ch3 - Modèle de Programmation Ch4 - Conception des Processeurs Ch5 - Pipeline Ch6 - Parallélisme d’instructions Ch7 - Systèmes Mémoire Ch8 - Mémoires Caches Ch9 - Mémoire Virtuelle Ch10 - Systèmes Multiprocesseurs Architecture de l’ordinateur – Mémoire Virtuelle Ch9 - 1 - Mémoire Virtuelle Traduction d’adresse Pagination à la demande et permutation Table de pages Tampon de traduction anticipée Copyright © F. Muller 2004 Ch9 - 2 - Introduction (1/2) Objectifs Introduction Copyright © F. Muller 2004 Comprendre la problématique de la mémoire virtuelle, les adresses virtuelles et les adresse physiques Résoudre les problèmes concernant la mémoire virtuelle et la traduction d’adresse Comprendre ce que sont les tampons de traduction anticipée et résoudre les problèmes les concernant Comprendre comment la mémoire virtuelle fournit une protection mémoire pour les ordinateurs actuels La mémoire centrale est insuffisante Solution: stocker sur un support magnétique (disque dur) Problème : impossible d’exécuter un programme sur ce support !! Architecture de l’ordinateur – Mémoire Virtuelle Ch9 - 3 - Introduction (2/2) Principe de la mémoire virtuelle Espace d’adressage d’un programme est divisé en pages Les pages sont stockées sur le support magnétique Les pages sont de taille fixe comprise entre 2Ko et 8Ko programme Mémoire virtuelle Support magnétique Espace d’adressage virtuel (référencé par le programme) Espace d’adressage physique (données en mémoire) Page sur disque Page virtuelle Page physique Page physique Page sur disque Page virtuelle Cadre de pages Page virtuelle Copyright © F. Muller 2004 Page sur disque Architecture de l’ordinateur – Mémoire Virtuelle Ch9 - 4 - Traduction d’adresse (1/3) Termes clés Table de pages Structure de données en mémoire Correspondance adresses virtuelles / adresses physiques Défaillance de pages Lorsque la page n’est pas située en mémoire Recherche d’une adresse virtuelle dans la table de pages ée pp a m se s re Ad Calcul de l’adresse physique La référence mémoire s’exécute Chargement de la page depuis le disque Mise à jour de la table de pages Adresse non mappée Défaillance de page Copyright © F. Muller 2004 Architecture de l’ordinateur – Mémoire Virtuelle Ch9 - 5 - Traduction d’adresse (2/3) Termes clés Longueur différente possible NPP : Numéro de Page Physique PPN : Physical Page Number NPP Décalage NPV : Numéro de Page Virtuelle VPN : Virtual Page Number Pages physiques NPV Pages virtuelles Décalage Longueur identique Décalage Longueur de la page (logarithme en base de 2) Construction NPV Décalage Recherche du NPV dans la table des pages NPP NPP Décalage Adresse physique Copyright © F. Muller 2004 Architecture de l’ordinateur – Mémoire Virtuelle Ch9 - 6 - Traduction d’adresse (3/3) Exemple Solution Copyright © F. Muller 2004 Dans un système utilisant des adresses virtuelles de 64 bits et des adresses physiques de 43 bits, combien de bits sont requis pour les NPV et les NPP si les pages font une taille de 8Ko ? Log2(8Ko) = 13, il faut donc 13 bits pour le décalage 64 bits – 13 bits = 51 bits pour le NPV 43 bits – 13 bits = 30 bits pour le NPP 51 bits 13 bits 30 bits 13 bits NPV Décalage NPP Décalage Architecture de l’ordinateur – Mémoire Virtuelle Ch9 - 7 - Pagination à la demande et permutation Pagination à la demande Les pages de données sont chargées lorsque le programme y accède Lors d’une commutation de contexte, Le plus couramment utilisé Avantage Charge les pages véritablement utilisées Données utilisées réduites = temps de chargement réduit Dépend de la capacité du disque (pas de la mémoire principale) Permutation Copyright © F. Muller 2004 Pas de copie des anciennes pages du programme sur le disque Pas de copie des pages du nouveau programme dans la mémoire Stocke l’état des programmes qui ne sont pas en train de tourner sur le processeur Déplace en une seule fois l’ensemble des données dans ou hors de la mémoire principale Avantage : Pas de défaillance de page => temps d’exécution plus simple à prévoir Inconvénient : Dépend de la mémoire principale (pas du stockage sur disque) Architecture de l’ordinateur – Mémoire Virtuelle Ch9 - 8 - Tables de pages Principe Indique si la page virtuelle correspondant à l’entrée est mappé sur la mémoire physique Si activé, le champ NPP contient le numéro de page physique Bit de modification Copyright © F. Muller 2004 NPV Chaque programme possède son propre jeux de correspondances d’adresses Bit de validité Décalage Bit de validité Bit de modification Entrée de la table de page Indique si la page a été modifié ou non depuis sa mise en mémoire principale Principe du write-back (écriture si besoin sur le disque) Architecture de l’ordinateur – Mémoire Virtuelle NPP pour la page virtuelle NPP pour la page virtuelle NPP pour la page virtuelle NPP pour la page virtuelle NPP pour la page virtuelle NPP pour la page virtuelle NPP pour la page virtuelle NPP pour la page virtuelle NPP Décalage Adresse physique Ch9 - 9 - Tables de pages Multi niveaux (1/3) Contexte Les tables de pages peuvent demander beaucoup de mémoire Exemple Pour un espace d’adressage de 32 bits Demande 220 entrées si les pages font 4Ko Demande 3Mo de mémoire si une entrée prend 3 octets Si la mémoire principale comporte 64Mo, 5% est consacré aux pages Utilisation de pages multi niveaux Stocke une partie de la table de page sur le disque La table est décomposée en pages et organisée en hiérarchie Adresse virtuelle NPV Groupe 1 Groupe 2 Groupe 3 décalage Taille du groupe = log2(nb entrées) Copyright © F. Muller 2004 Architecture de l’ordinateur – Mémoire Virtuelle Ch9 - 10 - Tables de pages Multi niveaux (2/3) Groupe de bits d’adresse (2 bits chacun) Page de niveau supérieur NPV 2 1 3 Entrée 0 Page de second niveau Page de troisième niveau Entrée 0 Entrée 0 Entrée 1 Entrée 1 Entrée 2 Entrée 2 Entrée 3 Entrée 3 Entrée 0 Entrée 0 Entrée 1 Entrée 1 Entrée 2 Entrée 2 Entrée 3 Entrée 3 Entrée 0 Entrée 0 Entrée 1 Entrée 1 Entrée 2 Entrée 2 Entrée 3 Entrée 3 Entrée 0 Entrée 0 Entrée 1 Entrée 1 Entrée 1 Numéro de page physique Entrée 2 Entrée 3 Entrée 2 Entrée 3 Copyright © F. Muller 2004 Architecture de l’ordinateur – Mémoire Virtuelle Ch9 - 11 - Tables de pages Multi niveaux (3/3) Exemple Sur un système avec des adresses de 32 bits et des pages de 4Ko, combien de niveaux sont requis dans une table de pages à plusieurs niveaux ? Nous supposerons que chaque entrée dans la table de pages prend 4 octets de mémoire. Solution NPV Groupe 1 (10 bits) Copyright © F. Muller 2004 Groupe 2 (10 bits) Décalage (12 bits) Architecture de l’ordinateur – Mémoire Virtuelle Ch9 - 12 - Tampons de traduction anticipée Introduction Pourquoi ? Accès à la table à chaque référence mémoire Table à 1 niveau => double le nombre d’accès Table multi niveaux => pire Augmente la latence !! TLB :Translation Lookaside Buffers Joue le rôle d’un cache Implémentation logicielle ou Matérielle Hit Recherche d’une traduction dans le tampon Miss Recherche d’une adresse virtuelle dans la table de pages e pé p ma e s res Ad Calcul de l’adresse physique La référence mémoire s’exécute Chargement de la page depuis le disque Mise à jour de la table de pages Adresse non mappée Défaillance de page Copyright © F. Muller 2004 Architecture de l’ordinateur – Mémoire Virtuelle Ch9 - 13 - Tampons de traduction anticipée Miss TLB et défaillances de page Hit TLB Miss TLB et page mappé Le système accède à la table de pages Copie la traduction dans le TLB Poursuit la référence mémoire Miss TLB et page non mappé Le tampon contient une traduction Ne nécessite pas d’intervention logicielle Le système accède à ta table des pages et émet une défaillance Charge les données situées sur le disque Accès Miss TLB Défaillance de page Copyright © F. Muller 2004 quelques centaines de cycles accès au disque, plusieurs millisecondes La tâche est bloquée … L’OS réalise une commutation de contexte pour ne pas perdre de temps Architecture de l’ordinateur – Mémoire Virtuelle Ch9 - 14 - Tampons de traduction anticipée Structure des TLB Taille des TLB sont représentées par le nombre d’entrées (ou de traductions) Les TLB sont bien plus petit que les caches du système (référence plus de données) Exemple Supposons qu’un TLB possède un taux de hit de 95% et que la pénalité de miss du tampon soit de 150 cycles. Supposons qu’un cas de hit, la traduction d’adresse soit instantanée. Quel est le temps moyen requis pour une traduction d’adresse ? (Tmiss x Phit) + (Tmiss x Pmiss) = 7,5 cycles, soit une réduction par 20 du temps de traduction sans tampon. Bit de modification Bit de validité Numéro de page virtuelle Numéro de page physique Entrée TLB Copyright © F. Muller 2004 Architecture de l’ordinateur – Mémoire Virtuelle Ch9 - 15 - Tampons de traduction anticipée Hyperpages (blocs de pages) Problème La quantité de données référencées par les programmes augmente rapidement en cours d’exécution La taille de page n’évolue pas trop rapidement Compromis entrées / taille de page et TLB Exemple : Solution Copyright © F. Muller 2004 128 entrées de TLB, pages de 4Ko => 512Ko de données 128Mo de mémoire principale => couverture de 0,5% de la mémoire Mapper des blocs de données plus important pour chaque entrée appelé hyperpage Hyperpage de taille variable ou propose 2 tailles dont une > 1Mo par exemple Architecture de l’ordinateur – Mémoire Virtuelle Ch9 - 16 - Conclusion Copyright © F. Muller 2004 Traduction d’adresse Pagination à la demande et permutation Table de pages Tampon de traduction anticipée Architecture de l’ordinateur – Mémoire Virtuelle Ch9 - 17 -